ox08D_|9NkA=aPVd!_Do~bj~0~XQq=f@6U66-8Bw3w|~>3*T>hT{yWOrqoPrD
z10wlI0kRI103^0$o!v@0!26w(tZ_Fd&y^kts*zq+xqL%7QRiq~y~%EE6rgSn$H!?i(PTQF;
zhU?&I_Gk|}BU8}%@*QAgDjWT(kx0=tlMSIrwko7jG8t-n0BXm#B+19;lVky%^^Jk`
zXXkk4a;^@6DLVa7Pg_OowLqWy0}x~Zvh&9l#^GRXzklzzv%W#z39z$OWq|*kq)g`+
zCI!G?MUcsx1sD}zY+-!h>!Kr2qH?S%n8F>Q2*acR*x4;bMj+yVJQ)B$jt+3Jwy*63
z9L~p3N97ou0+>dmtpb#_w}NCGmszp^A?+uJqI^YJ=D;-i0cckLhDiZ9@HP!J-N~a0
z2yN%yB7bwWOMA9dwi1|!K~5f>nNGxy%Qn@G2KO8*({4_bUh}tUPoB;p-%X9`fY
z)BynOE-t0wC(rrMUcBo0T?R^9lsJh2d~kkVbc#?^Da8A*<9$&cb_MXs`68>~TD=@b
zyv+ir*j-#og~ONc-R{2l`CS%EbY8E*h3Aj^Vt)lZLd(W3SMNS0wMPZ30{Afc<y=TpuFFURZXG9pgF+DEd?}wE|GvqoVdxfb3k=4W&Vd!0o~PJ0xwPwnu^U=K)O7
zZEMQP4a0R}8-Zly66j1<9`_#lV
zFs6aL*nR-MJS!IpPO<=BMuCvrJngYL*MF6L4jMSh&csCGu_wD(*Cs5$s6u<=@iKcrXZ6f=+J%P6NxqpZX
z5IB7bfY$*`&kLB|-<{(D0FI%ztOnQ5PhRV}PSGII)Lzqh0^1!=wtE6y#|%ysU@qN)
zxpb>=Il@Q6op=6%ubDH~lgj`AR%NUJ)Nnty@B6+0_8<_CY+aqMJkQs(4DLO9KJEz=
z#2_$moTPzIzWo6JfJc{37bI&&j^c`ItBb1P;3boWJ-m8v(1R
zZWRE2|6EP;o*$v7as?3cJw7gq?mP3-fB!>AR}K~96G51=^;IFhLS6nAZJV!EuPc=+
zfE?*lM*Vpl8@lsriAv_>I@NK=RIUIV2$`4VUhWiCwJQ>dMEv3}8p}e@3lB01b^rhX
M07*qoM6N<$f=JkPa{vGU
From be03467f659aaf30f13616ac0f49944ce9f68a00 Mon Sep 17 00:00:00 2001
From: Bob
Date: Sun, 17 Aug 2025 23:09:50 +0200
Subject: [PATCH 71/72] slunkus the great, lord of death
---
changelog | 7 ++++++-
gradle.properties | 2 +-
src/main/java/com/hbm/blocks/ModBlocks.java | 5 ++---
.../java/com/hbm/blocks/generic/BlockCrate.java | 12 +++---------
src/main/java/com/hbm/lib/RefStrings.java | 2 +-
.../assets/hbm/manual/material/tantalium.json | 2 +-
.../hbm/textures/blocks/trapdoor_steel.png | Bin 790 -> 446 bytes
.../assets/hbm/textures/items/fluid_barrel.png | Bin 305 -> 355 bytes
.../hbm/textures/items/fluid_barrel_overlay.png | Bin 208 -> 175 bytes
9 files changed, 14 insertions(+), 16 deletions(-)
diff --git a/changelog b/changelog
index c910a8ca3..377222992 100644
--- a/changelog
+++ b/changelog
@@ -8,6 +8,9 @@
* Due to the way the RBMK uncrafting handler works, a single autocrafter now correctly supports RBMK fuel of one type of any depletion level, yielding the correct recycling pellets
* Blueprint folders have been added to more loot pools, making them less rare
* Replaced the winnie the pooh plushie with hundun
+* Retextured the universal fluid tanks and barrels again
+* Updated steel trapdoor texture
+* Removed the old hexafluoride tanks from the creative tab
## Fixed
* Fixed QMAW not working at all
@@ -17,4 +20,6 @@
* Fixed shift-click handling on the electric arc furnace not working with upgrades, and putting electrodes in the wrong slot
* Fixed issue with the load order where custom fluids wouldn't work properly for fluid loading/unloading and in custom recipes
* Fixed balefire bomb not rendering the egg when fully loaded
-* Fixed selenium steel 12ga casings having the wrong color
\ No newline at end of file
+* Fixed selenium steel 12ga casings having the wrong color
+* Fixed the buzzsaw sometimes not replanting crops
+* Scrungus
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
index fcfc33a9b..394982cb6 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,6 +1,6 @@
mod_version=1.0.27
# Empty build number makes a release type
-mod_build_number=5418
+mod_build_number=5425
credits=HbMinecraft,\
\ rodolphito (explosion algorithms),\
diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java
index 87269420e..d30f6b619 100644
--- a/src/main/java/com/hbm/blocks/ModBlocks.java
+++ b/src/main/java/com/hbm/blocks/ModBlocks.java
@@ -1825,9 +1825,8 @@ public class ModBlocks {
machine_rotary_furnace = new MachineRotaryFurnace(Material.iron).setBlockName("machine_rotary_furnace").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire");
machine_crystallizer = new MachineCrystallizer(Material.iron).setBlockName("machine_crystallizer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_crystallizer");
- machine_uf6_tank = new MachineUF6Tank(Material.iron).setBlockName("machine_uf6_tank").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
-
- machine_puf6_tank = new MachinePuF6Tank(Material.iron).setBlockName("machine_puf6_tank").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
+ machine_uf6_tank = new MachineUF6Tank(Material.iron).setBlockName("machine_uf6_tank").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null);
+ machine_puf6_tank = new MachinePuF6Tank(Material.iron).setBlockName("machine_puf6_tank").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null);
machine_reactor_breeding = new MachineReactorBreeding(Material.iron).setBlockName("machine_reactor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_reactor");
diff --git a/src/main/java/com/hbm/blocks/generic/BlockCrate.java b/src/main/java/com/hbm/blocks/generic/BlockCrate.java
index e24a62d78..abfebe1d1 100644
--- a/src/main/java/com/hbm/blocks/generic/BlockCrate.java
+++ b/src/main/java/com/hbm/blocks/generic/BlockCrate.java
@@ -5,6 +5,7 @@ import java.util.List;
import java.util.Random;
import com.hbm.blocks.ModBlocks;
+import com.hbm.interfaces.Spaghetti;
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret;
import com.hbm.items.ModItems;
@@ -16,6 +17,7 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
+@Spaghetti("this is implemented in the most braindead fucking way imaginable") // TODO: rework this unholy abomination using configurable loot pools
public class BlockCrate extends BlockFalling {
List crateList;
@@ -69,22 +71,16 @@ public class BlockCrate extends BlockFalling {
// Lead Crate
BlockCrate.addToListWithWeight(leadList, ModItems.ingot_uranium, 10);
- // BlockCrate.addToListWithWeight(leadList, ModItems.ingot_u235, 5);
BlockCrate.addToListWithWeight(leadList, ModItems.ingot_u238, 8);
BlockCrate.addToListWithWeight(leadList, ModItems.ingot_plutonium, 7);
- // BlockCrate.addToListWithWeight(leadList, ModItems.ingot_pu238, 5);
- // BlockCrate.addToListWithWeight(leadList, ModItems.ingot_pu239, 4);
BlockCrate.addToListWithWeight(leadList, ModItems.ingot_pu240, 6);
BlockCrate.addToListWithWeight(leadList, ModItems.ingot_neptunium, 7);
BlockCrate.addToListWithWeight(leadList, ModItems.ingot_uranium_fuel, 8);
BlockCrate.addToListWithWeight(leadList, ModItems.ingot_plutonium_fuel, 7);
BlockCrate.addToListWithWeight(leadList, ModItems.ingot_mox_fuel, 6);
BlockCrate.addToListWithWeight(leadList, ModItems.nugget_uranium, 10);
- // BlockCrate.addToListWithWeight(leadList, ModItems.nugget_u235, 5);
BlockCrate.addToListWithWeight(leadList, ModItems.nugget_u238, 8);
BlockCrate.addToListWithWeight(leadList, ModItems.nugget_plutonium, 7);
- // BlockCrate.addToListWithWeight(leadList, ModItems.nugget_pu238, 5);
- // BlockCrate.addToListWithWeight(leadList, ModItems.nugget_pu239, 4);
BlockCrate.addToListWithWeight(leadList, ModItems.nugget_pu240, 6);
BlockCrate.addToListWithWeight(leadList, ModItems.nugget_neptunium, 7);
BlockCrate.addToListWithWeight(leadList, ModItems.nugget_uranium_fuel, 8);
@@ -96,7 +92,6 @@ public class BlockCrate extends BlockFalling {
BlockCrate.addToListWithWeight(leadList, ModItems.cell_puf6, 8);
BlockCrate.addToListWithWeight(leadList, ModItems.pellet_rtg, 6);
BlockCrate.addToListWithWeight(leadList, ModItems.pellet_rtg_weak, 7);
- BlockCrate.addToListWithWeight(leadList, ModItems.tritium_deuterium_cake, 5);
BlockCrate.addToListWithWeight(leadList, ModItems.powder_yellowcake, 10);
// Metal Crate
@@ -110,14 +105,13 @@ public class BlockCrate extends BlockFalling {
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_battery), 8);
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_lithium_battery), 5);
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_electric_furnace_off), 8);
- BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_assembler), 10);
+ BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_assembly_machine), 10);
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_fluidtank), 7);
BlockCrate.addToListWithWeight(metalList, ModItems.centrifuge_element, 6);
BlockCrate.addToListWithWeight(metalList, ModItems.motor, 8);
BlockCrate.addToListWithWeight(metalList, ModItems.coil_tungsten, 7);
BlockCrate.addToListWithWeight(metalList, ModItems.photo_panel, 3);
BlockCrate.addToListWithWeight(metalList, ModItems.coil_copper, 10);
- BlockCrate.addToListWithWeight(metalList, ModItems.tank_steel, 9);
BlockCrate.addToListWithWeight(metalList, ModItems.blade_titanium, 3);
BlockCrate.addToListWithWeight(metalList, ModItems.piston_selenium, 6);
diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java
index 34f6c299c..b182de6f7 100644
--- a/src/main/java/com/hbm/lib/RefStrings.java
+++ b/src/main/java/com/hbm/lib/RefStrings.java
@@ -3,7 +3,7 @@ package com.hbm.lib;
public class RefStrings {
public static final String MODID = "hbm";
public static final String NAME = "Hbm's Nuclear Tech Mod";
- public static final String VERSION = "1.0.27 BETA (5418)";
+ public static final String VERSION = "1.0.27 BETA (5425)";
//HBM's Beta Naming Convention:
//V T (X)
//V -> next release version
diff --git a/src/main/resources/assets/hbm/manual/material/tantalium.json b/src/main/resources/assets/hbm/manual/material/tantalium.json
index 196550330..e3d0ee9c2 100644
--- a/src/main/resources/assets/hbm/manual/material/tantalium.json
+++ b/src/main/resources/assets/hbm/manual/material/tantalium.json
@@ -7,7 +7,7 @@
"ru_RU": "Тантал"
},
"content": {
- "en_US": "Tantalium ('Tantalum') can be ectracted out of [[coltan|Coltan]] which is only found within one specific area in the world. Used mainly for tantalium capacitors, which are crucial for the control units used by most nuclear bombs.",
+ "en_US": "Tantalium ('Tantalum') can be extracted out of [[coltan|Coltan]] which is only found within one specific area in the world. Used mainly for tantalium capacitors, which are crucial for the control units used by most nuclear bombs.",
"ru_RU": "Тантал ('Tantalum') добывается из [[колтана|Coltan]], который встречается только в одном определенном регионе мира. В основном используется для танталовых конденсаторов, которые критически важны для блоков управления, используемых в большинстве ядерных бомб."
}
}
diff --git a/src/main/resources/assets/hbm/textures/blocks/trapdoor_steel.png b/src/main/resources/assets/hbm/textures/blocks/trapdoor_steel.png
index 23ed483c9f7729883c786aa7848c48f285ba3537..ec80cd8e007f6e10b75f7be63907ae4820da43a4 100644
GIT binary patch
delta 421
zcmV;W0b2f+2EGH3BYyw{b3#c}2nYxWdo81+e#uoc%-oTyfK|HoNxB?%148C*?0aayT3S5RqIILfEVUnx^6Lc;LOqCF-x&i~W8NKv5LT^ZYdinCF=oBOwHwh#(@=
zbLQ3Dt{tES(dnzm?Wh5llB^2*X7uyPA|){k?=1mNpAW&cpFDVHpz+l8cCk2
z{y1@(CWc{P97nF#Yo_eI|0QQFVHk!VBQ;HfwU)MRGmB)`PZK3HP4k|Ds%AakMwg(f
zEX%U#g{tC=F^C9NRdK)HH@B*4eoP?*thIS9A{b-dMjpCcF8SpDebRpb{>arM#%M+=
P00000NkvXXu0mjfI5Eh^
delta 767
zcmVH_m#Kqgef526_Qc97MTwT3gr15)<+D$yuGrv#Y=lTBn
z&37O?kvB}Yas*7vbK>JMZDw{(t9hcD2#qw;rW>w3nHWp*?|*u~A*AYcpX&Ahy+2p|
zV%jwzR4Y7W*p4SG(=f5@*@`!WTaBE)D7-Hmb!0%{3#F$5epH+d_*Jo!jE_QC_0+Ou
zoGN1@=a|C1!d+&*X#C8hz9f>irV~;-WOw2cXPg)sDT*wS$D>cGC7J#0>;LvmQ4o(I
zZ<`eyab(GfH-9Q>QM#t3W<*cRlV?Tc{yR@MGdK`*kHnzr!S`Rfp=Jv{H+}!(!1q57
zq2eCStdhSVISs#wzFE?`_MmAEPR>hOY8y`1q5aO*9sOIXkR8rs;Q1IDW})Q@>gI#2
ze$F|%h2*OIqD$D>g&w)zwD1M(mS_QJK}voA000SaNPkXT000XT0n*)m`~Uy}
zPf0{UR5;6>lhKZXFc3uttQf&432%M^|NlWeX$Zy#R0t?wPP5Y#boXIzVp=+L+nIaE
zAkXtjelU)sUBfW6dsaX8dcDLL<8pwBqDYR%qYT5~l6_(j1a3b~lRO>|+3j}r`*b>q
z>HA*lx_`C-pO_?xODxNBR-sl0*KD_2o6KRBW$uDFj^%tli^dO!gNyC=d%0e(_EDpy
zcU>n-K%@mq_kk8X2-mDuE8$1-5+t>4JJScO*K1Lp@e}+qpU%$
zLSXeRRvRssVIZMtnve3(;G4yW3C9f*H~LekPysia%|{H5b%7!I%|^9~)_faPH@F5{
x)bFaQoQSH8R&lvp?6+?tdpk%)QOJM)(r;~L+{vGC7Q_Gm002ovPDHLkV1l$&atHtb
diff --git a/src/main/resources/assets/hbm/textures/items/fluid_barrel.png b/src/main/resources/assets/hbm/textures/items/fluid_barrel.png
index fdc4318612fa761aed083d119c28fc133ed9d215..d3f440a4b383be28aeb52d7510637dd50f408c95 100644
GIT binary patch
delta 339
zcmV-Z0j&P90^$p5$hK`)fTAciPHT-Z25T+P=QGg!#$qqjT7M&@49tZP0PEf)Fz`YE
zDJA0Ki%cz~yoQ2uu$Rj4@Q(c1({DY~v>7zXBf-gw`euL(Tnc@9#%Ltx+qaict(bN^4^@#%K>
zFoh#NZs1{pcuWdjEQFx0>+cDaQdCt15KO^2$23ieL9$HO>vgr(a=+g(#%%xK^?Cs$
l%XGM+0O#|0-JfHj#~*c8pi1?5T($rJ002ovPDHLkV1flEm6QMg
delta 289
zcmaFNw2^6oWIZzj1A~Sxe=v|@EDmyaVpw-h<|UBBlJ4m1$iT3%pZiZDE08Z2;1l8+
z85!x|;80v#tgWrx)6=tH!2%y2pIy6lUA}x7sAS^Z)9Zm0S4ogx@P8O!*mOqcJW!Og
zz$3Dlfr0NZ2s0kfUy%Y7%<-&uaSYK2F6|5CJD|Yf+^x{}JHBG=i+|USwCr=x_GWHzV=8wj0;t^|@Kk?rY
z3p0N)&18;P_f73ezf*JKIKN1Te7rBxzDnF?D@$bZtp}5V7W1V>c&7RKGH6KwIUGO?
S0+)h8QVgE1elF{r5}E)ufoQ(~
diff --git a/src/main/resources/assets/hbm/textures/items/fluid_barrel_overlay.png b/src/main/resources/assets/hbm/textures/items/fluid_barrel_overlay.png
index 518122010d2046d12f05a8818cded6184e8ccec2..7a1e2b4245899c7a2f3a6a9e84b35a68e05328e0 100644
GIT binary patch
delta 130
zcmV-|0Db?^0j~j&G<#-AL_t(IjqQ-J4S+BV1Rul>nbOl_piB{W?mttQiijYHf{-W>
zSNU!I+cNO;J~2k$>v_~j(n-3iHvMh@N#9Ua9L)f*^a4T%NGVmFbG{dFW;C;AHvEGt
kx)+pEYAqtu(`8>}1%Ngyh`j|%@c;k-07*qoM6N<$f|f=$`v3p{
delta 164
zcmV;V09*gB0nh=EG=GOlL_t(IjqQ=K4Z|=D1Yd!d)jTS=iwgD{K1QekRb5qdz4cAU2o1gytjGa?x!Wp?9A-@zK6EW233s`RRsWuNX&chOX;>K
zkMLD+IbjZ*VP>xjJ|zl>C|zwKB519l)|w72J)4+0K5^V`W*rz~fQT0V4{!(4_(jYF
Sy0`!U0000
Date: Mon, 18 Aug 2025 16:35:50 +0200
Subject: [PATCH 72/72] the glunch
---
changelog | 25 +-
gradle.properties | 2 +-
.../com/hbm/handler/BobmazonOfferFactory.java | 3 +
.../hbm/handler/DispenserBehaviorHandler.java | 313 ++++++++++++++++++
src/main/java/com/hbm/lib/RefStrings.java | 2 +-
src/main/java/com/hbm/main/ClientProxy.java | 2 +
src/main/java/com/hbm/main/MainRegistry.java | 313 +-----------------
7 files changed, 326 insertions(+), 334 deletions(-)
create mode 100644 src/main/java/com/hbm/handler/DispenserBehaviorHandler.java
diff --git a/changelog b/changelog
index 377222992..d3d8a6554 100644
--- a/changelog
+++ b/changelog
@@ -1,25 +1,6 @@
## Changed
-* QMAW now has buttons for returning to previously viewed pages
-* QMAW file detection now includes subfolders to `manual` in folder-based packs (which already worked in zip packs and the mod's jar file)
-* OpenComputers integration for the ZIRNOX should now return values in °C and bar instead of unexplained weird internal units
-* The sodium and strontium autogen ingots now have their correct hazard tags
-* Pattern matchers, like the one used on the automatic crafting table, no longer care about NBT data of an item
- * This means that RBMK fuel rods can now be automatically disassembled without the depletion number having to be a 100% match
- * Due to the way the RBMK uncrafting handler works, a single autocrafter now correctly supports RBMK fuel of one type of any depletion level, yielding the correct recycling pellets
-* Blueprint folders have been added to more loot pools, making them less rare
-* Replaced the winnie the pooh plushie with hundun
-* Retextured the universal fluid tanks and barrels again
-* Updated steel trapdoor texture
-* Removed the old hexafluoride tanks from the creative tab
+* Blueprint folders can now be bought on bobmazon (64 for blue recipes, 256 for beige ones)
## Fixed
-* Fixed QMAW not working at all
-* Potentially fixed a bug where proxy tile entities would reference unloaded core tile entities which would cause bizarre item voiding/duping issues in rare cases
-* Fixed fusion reactor automation being able to remove items other than the breeding output slot
-* Fixed chunkloading transport drones getting stuck due to off-by-one rounding errors
-* Fixed shift-click handling on the electric arc furnace not working with upgrades, and putting electrodes in the wrong slot
-* Fixed issue with the load order where custom fluids wouldn't work properly for fluid loading/unloading and in custom recipes
-* Fixed balefire bomb not rendering the egg when fully loaded
-* Fixed selenium steel 12ga casings having the wrong color
-* Fixed the buzzsaw sometimes not replanting crops
-* Scrungus
\ No newline at end of file
+* Fixed the QMAW loader crashing servers
+ * Oops
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
index 394982cb6..03457ea9b 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,6 +1,6 @@
mod_version=1.0.27
# Empty build number makes a release type
-mod_build_number=5425
+mod_build_number=5426
credits=HbMinecraft,\
\ rodolphito (explosion algorithms),\
diff --git a/src/main/java/com/hbm/handler/BobmazonOfferFactory.java b/src/main/java/com/hbm/handler/BobmazonOfferFactory.java
index e0b3c4560..e53b5f603 100644
--- a/src/main/java/com/hbm/handler/BobmazonOfferFactory.java
+++ b/src/main/java/com/hbm/handler/BobmazonOfferFactory.java
@@ -39,6 +39,9 @@ public class BobmazonOfferFactory {
standard.add(new Offer(new ItemStack(ModItems.gun_kit_1, 1), Requirement.ASSEMBLY, 16));
standard.add(new Offer(new ItemStack(ModItems.geiger_counter, 1), Requirement.NONE, 16));
standard.add(new Offer(new ItemStack(ModItems.matchstick, 16), Requirement.STEEL, 2));
+ //blueprints
+ standard.add(new Offer(new ItemStack(ModItems.blueprint_folder, 1, 0), Requirement.ASSEMBLY, 64));
+ standard.add(new Offer(new ItemStack(ModItems.blueprint_folder, 1, 1), Requirement.OIL, 256));
//plants
standard.add(new Offer(new ItemStack(Blocks.sapling, 1, 3), Requirement.STEEL, 12, 9));
standard.add(new Offer(new ItemStack(ModBlocks.plant_flower, 1, EnumFlowerType.FOXGLOVE.ordinal()), Requirement.STEEL, 16, 5));
diff --git a/src/main/java/com/hbm/handler/DispenserBehaviorHandler.java b/src/main/java/com/hbm/handler/DispenserBehaviorHandler.java
new file mode 100644
index 000000000..b6fba216b
--- /dev/null
+++ b/src/main/java/com/hbm/handler/DispenserBehaviorHandler.java
@@ -0,0 +1,313 @@
+package com.hbm.handler;
+
+import com.hbm.entity.grenade.EntityGrenadeASchrab;
+import com.hbm.entity.grenade.EntityGrenadeBlackHole;
+import com.hbm.entity.grenade.EntityGrenadeBreach;
+import com.hbm.entity.grenade.EntityGrenadeBurst;
+import com.hbm.entity.grenade.EntityGrenadeCloud;
+import com.hbm.entity.grenade.EntityGrenadeCluster;
+import com.hbm.entity.grenade.EntityGrenadeDynamite;
+import com.hbm.entity.grenade.EntityGrenadeElectric;
+import com.hbm.entity.grenade.EntityGrenadeFire;
+import com.hbm.entity.grenade.EntityGrenadeFlare;
+import com.hbm.entity.grenade.EntityGrenadeFrag;
+import com.hbm.entity.grenade.EntityGrenadeGas;
+import com.hbm.entity.grenade.EntityGrenadeGascan;
+import com.hbm.entity.grenade.EntityGrenadeGeneric;
+import com.hbm.entity.grenade.EntityGrenadeIFBouncy;
+import com.hbm.entity.grenade.EntityGrenadeIFBrimstone;
+import com.hbm.entity.grenade.EntityGrenadeIFConcussion;
+import com.hbm.entity.grenade.EntityGrenadeIFGeneric;
+import com.hbm.entity.grenade.EntityGrenadeIFHE;
+import com.hbm.entity.grenade.EntityGrenadeIFHopwire;
+import com.hbm.entity.grenade.EntityGrenadeIFImpact;
+import com.hbm.entity.grenade.EntityGrenadeIFIncendiary;
+import com.hbm.entity.grenade.EntityGrenadeIFMystery;
+import com.hbm.entity.grenade.EntityGrenadeIFNull;
+import com.hbm.entity.grenade.EntityGrenadeIFSpark;
+import com.hbm.entity.grenade.EntityGrenadeIFSticky;
+import com.hbm.entity.grenade.EntityGrenadeIFToxic;
+import com.hbm.entity.grenade.EntityGrenadeImpactGeneric;
+import com.hbm.entity.grenade.EntityGrenadeLemon;
+import com.hbm.entity.grenade.EntityGrenadeMIRV;
+import com.hbm.entity.grenade.EntityGrenadeMk2;
+import com.hbm.entity.grenade.EntityGrenadeNuclear;
+import com.hbm.entity.grenade.EntityGrenadeNuke;
+import com.hbm.entity.grenade.EntityGrenadePC;
+import com.hbm.entity.grenade.EntityGrenadePlasma;
+import com.hbm.entity.grenade.EntityGrenadePoison;
+import com.hbm.entity.grenade.EntityGrenadePulse;
+import com.hbm.entity.grenade.EntityGrenadeSchrabidium;
+import com.hbm.entity.grenade.EntityGrenadeShrapnel;
+import com.hbm.entity.grenade.EntityGrenadeSmart;
+import com.hbm.entity.grenade.EntityGrenadeStrong;
+import com.hbm.entity.grenade.EntityGrenadeTau;
+import com.hbm.entity.grenade.EntityGrenadeZOMG;
+import com.hbm.entity.grenade.EntityWastePearl;
+import com.hbm.items.ModItems;
+import com.hbm.items.tool.ItemFertilizer;
+import com.hbm.items.weapon.ItemGenericGrenade;
+
+import net.minecraft.block.BlockDispenser;
+import net.minecraft.dispenser.BehaviorDefaultDispenseItem;
+import net.minecraft.dispenser.BehaviorProjectileDispense;
+import net.minecraft.dispenser.IBlockSource;
+import net.minecraft.dispenser.IPosition;
+import net.minecraft.entity.IProjectile;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.EnumFacing;
+import net.minecraft.world.World;
+
+public class DispenserBehaviorHandler {
+
+ public static void init() {
+
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_generic, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeGeneric(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_strong, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeStrong(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_frag, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeFrag(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_fire, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeFire(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_cluster, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeCluster(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_flare, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeFlare(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_electric, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeElectric(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_poison, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadePoison(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_gas, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeGas(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_schrabidium, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeSchrabidium(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_nuke, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeNuke(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_nuclear, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeNuclear(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_pulse, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadePulse(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_plasma, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadePlasma(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_tau, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeTau(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_lemon, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeLemon(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_mk2, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeMk2(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_aschrab, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeASchrab(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_zomg, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeZOMG(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_shrapnel, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeShrapnel(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_black_hole, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeBlackHole(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_gascan, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeGascan(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_cloud, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeCloud(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_pink_cloud, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadePC(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_smart, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeSmart(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_mirv, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeMIRV(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_breach, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeBreach(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_burst, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeBurst(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_if_generic, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeIFGeneric(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_if_he, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeIFHE(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_if_bouncy, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeIFBouncy(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_if_sticky, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeIFSticky(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_if_impact, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeIFImpact(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_if_incendiary, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeIFIncendiary(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_if_toxic, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeIFToxic(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_if_concussion, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeIFConcussion(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_if_brimstone, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeIFBrimstone(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_if_mystery, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeIFMystery(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_if_spark, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeIFSpark(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_if_hopwire, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeIFHopwire(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_if_null, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeIFNull(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.nuclear_waste_pearl, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityWastePearl(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.stick_dynamite, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeDynamite(world, position.getX(), position.getY(), position.getZ());
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_kyiv, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeImpactGeneric(world, position.getX(), position.getY(), position.getZ()).setType((ItemGenericGrenade) ModItems.grenade_kyiv);
+ }
+ });
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.stick_dynamite_fishing, new BehaviorProjectileDispense() {
+ protected IProjectile getProjectileEntity(World world, IPosition position) {
+ return new EntityGrenadeImpactGeneric(world, position.getX(), position.getY(), position.getZ()).setType((ItemGenericGrenade) ModItems.stick_dynamite_fishing);
+ }
+ });
+
+ BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.powder_fertilizer, new BehaviorDefaultDispenseItem() {
+
+ private boolean dispenseSound = true;
+ @Override protected ItemStack dispenseStack(IBlockSource source, ItemStack stack) {
+
+ EnumFacing facing = BlockDispenser.func_149937_b(source.getBlockMetadata());
+ World world = source.getWorld();
+ int x = source.getXInt() + facing.getFrontOffsetX();
+ int y = source.getYInt() + facing.getFrontOffsetY();
+ int z = source.getZInt() + facing.getFrontOffsetZ();
+ this.dispenseSound = ItemFertilizer.useFertillizer(stack, world, x, y, z);
+ return stack;
+ }
+ @Override protected void playDispenseSound(IBlockSource source) {
+ if(this.dispenseSound) {
+ source.getWorld().playAuxSFX(1000, source.getXInt(), source.getYInt(), source.getZInt(), 0);
+ } else {
+ source.getWorld().playAuxSFX(1001, source.getXInt(), source.getYInt(), source.getZInt(), 0);
+ }
+ }
+ });
+ }
+}
diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java
index b182de6f7..b5f8b7af2 100644
--- a/src/main/java/com/hbm/lib/RefStrings.java
+++ b/src/main/java/com/hbm/lib/RefStrings.java
@@ -3,7 +3,7 @@ package com.hbm.lib;
public class RefStrings {
public static final String MODID = "hbm";
public static final String NAME = "Hbm's Nuclear Tech Mod";
- public static final String VERSION = "1.0.27 BETA (5425)";
+ public static final String VERSION = "1.0.27 BETA (5426)";
//HBM's Beta Naming Convention:
//V T (X)
//V -> next release version
diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java
index 370772b1d..ef36a2084 100644
--- a/src/main/java/com/hbm/main/ClientProxy.java
+++ b/src/main/java/com/hbm/main/ClientProxy.java
@@ -145,6 +145,8 @@ public class ClientProxy extends ServerProxy {
@Override
public void registerPreRenderInfo() {
AdvancedModelLoader.registerModelHandler(new HmfModelLoader());
+
+ QMAWLoader.registerModFileURL(FMLCommonHandler.instance().findContainerFor(RefStrings.MODID).getSource());
}
/** Runs right after item and block init */
diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java
index d8e10dac7..0db237afe 100644
--- a/src/main/java/com/hbm/main/MainRegistry.java
+++ b/src/main/java/com/hbm/main/MainRegistry.java
@@ -9,15 +9,11 @@ import com.hbm.config.*;
import com.hbm.crafting.RodRecipes;
import com.hbm.creativetabs.*;
import com.hbm.entity.EntityMappings;
-import com.hbm.entity.grenade.*;
import com.hbm.entity.logic.IChunkLoader;
import com.hbm.entity.mob.siege.SiegeTier;
import com.hbm.handler.*;
import com.hbm.handler.ae2.AE2CompatHandler;
-import com.hbm.handler.imc.IMCBlastFurnace;
-import com.hbm.handler.imc.IMCCentrifuge;
-import com.hbm.handler.imc.IMCCrystallizer;
-import com.hbm.handler.imc.IMCHandler;
+import com.hbm.handler.imc.*;
import com.hbm.handler.microblocks.MicroBlocksCompatHandler;
import com.hbm.handler.neutron.NeutronHandler;
import com.hbm.handler.pollution.PollutionHandler;
@@ -33,14 +29,11 @@ import com.hbm.inventory.recipes.anvil.AnvilRecipes;
import com.hbm.inventory.recipes.loader.SerializableRecipe;
import com.hbm.items.ItemEnums.EnumAchievementType;
import com.hbm.items.ModItems;
-import com.hbm.items.tool.ItemFertilizer;
-import com.hbm.items.weapon.ItemGenericGrenade;
import com.hbm.items.weapon.sedna.mods.WeaponModManager;
import com.hbm.lib.HbmWorld;
import com.hbm.lib.RefStrings;
import com.hbm.packet.PacketDispatcher;
import com.hbm.potion.HbmPotion;
-import com.hbm.qmaw.QMAWLoader;
import com.hbm.saveddata.satellites.Satellite;
import com.hbm.tileentity.TileMappings;
import com.hbm.tileentity.bomb.TileEntityLaunchPadBase;
@@ -64,13 +57,7 @@ import cpw.mods.fml.common.event.FMLMissingMappingsEvent.MissingMapping;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
-import net.minecraft.block.BlockDispenser;
import net.minecraft.creativetab.CreativeTabs;
-import net.minecraft.dispenser.BehaviorDefaultDispenseItem;
-import net.minecraft.dispenser.BehaviorProjectileDispense;
-import net.minecraft.dispenser.IBlockSource;
-import net.minecraft.dispenser.IPosition;
-import net.minecraft.entity.IProjectile;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.Item.ToolMaterial;
@@ -81,7 +68,6 @@ import net.minecraft.stats.StatBase;
import net.minecraft.stats.StatBasic;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChatComponentTranslation;
-import net.minecraft.util.EnumFacing;
import net.minecraft.util.WeightedRandomChestContent;
import net.minecraft.world.World;
import net.minecraftforge.common.AchievementPage;
@@ -254,8 +240,6 @@ public class MainRegistry {
@EventHandler
public void PreLoad(FMLPreInitializationEvent PreEvent) {
CrashHelper.init();
-
- QMAWLoader.registerModFileURL(FMLCommonHandler.instance().findContainerFor(RefStrings.MODID).getSource());
startupTime = System.currentTimeMillis();
configDir = PreEvent.getModConfigurationDirectory();
@@ -373,299 +357,8 @@ public class MainRegistry {
}
}
});
-
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_generic, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeGeneric(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_strong, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeStrong(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_frag, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeFrag(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_fire, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeFire(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_cluster, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeCluster(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_flare, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeFlare(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_electric, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeElectric(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_poison, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadePoison(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_gas, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeGas(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_schrabidium, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeSchrabidium(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_nuke, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeNuke(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_nuclear, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeNuclear(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_pulse, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadePulse(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_plasma, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadePlasma(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_tau, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeTau(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_lemon, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeLemon(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_mk2, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeMk2(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_aschrab, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeASchrab(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_zomg, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeZOMG(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_shrapnel, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeShrapnel(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_black_hole, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeBlackHole(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_gascan, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeGascan(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_cloud, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeCloud(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_pink_cloud, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadePC(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_smart, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeSmart(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_mirv, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeMIRV(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_breach, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeBreach(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_burst, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeBurst(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_if_generic, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeIFGeneric(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_if_he, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeIFHE(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_if_bouncy, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeIFBouncy(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_if_sticky, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeIFSticky(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_if_impact, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeIFImpact(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_if_incendiary, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeIFIncendiary(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_if_toxic, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeIFToxic(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_if_concussion, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeIFConcussion(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_if_brimstone, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeIFBrimstone(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_if_mystery, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeIFMystery(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_if_spark, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeIFSpark(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_if_hopwire, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeIFHopwire(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_if_null, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) {
- return new EntityGrenadeIFNull(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.nuclear_waste_pearl, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World world, IPosition position) {
- return new EntityWastePearl(world, position.getX(), position.getY(), position.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.stick_dynamite, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World world, IPosition position) {
- return new EntityGrenadeDynamite(world, position.getX(), position.getY(), position.getZ());
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_kyiv, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World world, IPosition position) {
- return new EntityGrenadeImpactGeneric(world, position.getX(), position.getY(), position.getZ()).setType((ItemGenericGrenade) ModItems.grenade_kyiv);
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.stick_dynamite_fishing, new BehaviorProjectileDispense() {
-
- protected IProjectile getProjectileEntity(World world, IPosition position) {
- return new EntityGrenadeImpactGeneric(world, position.getX(), position.getY(), position.getZ()).setType((ItemGenericGrenade) ModItems.stick_dynamite_fishing);
- }
- });
- BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.powder_fertilizer, new BehaviorDefaultDispenseItem() {
-
- private boolean dispenseSound = true;
- @Override protected ItemStack dispenseStack(IBlockSource source, ItemStack stack) {
-
- EnumFacing facing = BlockDispenser.func_149937_b(source.getBlockMetadata());
- World world = source.getWorld();
- int x = source.getXInt() + facing.getFrontOffsetX();
- int y = source.getYInt() + facing.getFrontOffsetY();
- int z = source.getZInt() + facing.getFrontOffsetZ();
- this.dispenseSound = ItemFertilizer.useFertillizer(stack, world, x, y, z);
- return stack;
- }
- @Override protected void playDispenseSound(IBlockSource source) {
- if(this.dispenseSound) {
- source.getWorld().playAuxSFX(1000, source.getXInt(), source.getYInt(), source.getZInt(), 0);
- } else {
- source.getWorld().playAuxSFX(1001, source.getXInt(), source.getYInt(), source.getZInt(), 0);
- }
- }
- });
-
+
+ DispenserBehaviorHandler.init();
MicroBlocksCompatHandler.preInit();
}