From 0bbf99b47f08b99ed8b76785a3fb4005529c4db8 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 31 Jan 2021 21:18:24 +0100 Subject: [PATCH] finishing up the armor mods, some new radiation funnies --- .../hbm/entity}/IRadiationImmune.java | 2 +- src/main/java/assets/hbm/lang/de_DE.lang | 9 + src/main/java/assets/hbm/lang/en_US.lang | 9 + src/main/java/assets/hbm/sounds.json | 1 + .../java/assets/hbm/sounds/entity/vomit.ogg | Bin 0 -> 18044 bytes .../assets/hbm/textures/armor/fau_arm.png | Bin 409 -> 638 bytes .../assets/hbm/textures/armor/fau_chest.png | Bin 964 -> 1345 bytes .../assets/hbm/textures/armor/fau_helmet.png | Bin 1222 -> 1275 bytes .../assets/hbm/textures/armor/fau_leg.png | Bin 455 -> 765 bytes .../assets/hbm/textures/items/fallout.png | Bin 0 -> 477 bytes .../java/assets/hbm/textures/items/ink.png | Bin 0 -> 382 bytes src/main/java/com/hbm/blocks/ModBlocks.java | 11 +- .../com/hbm/blocks/generic/BlockFallout.java | 74 ++ .../com/hbm/blocks/generic/WasteEarth.java | 235 ++--- .../com/hbm/blocks/test/TestEventTester.java | 2 - .../java/com/hbm/crafting/ArmorRecipes.java | 5 + .../com/hbm/crafting/ConsumableRecipes.java | 3 + .../java/com/hbm/crafting/MineralRecipes.java | 4 + .../hbm/entity/effect/EntityFalloutRain.java | 10 + .../com/hbm/entity/mob/EntityCyberCrab.java | 2 +- .../hbm/entity/mob/EntityHunterChopper.java | 3 +- .../com/hbm/entity/mob/EntityMaskMan.java | 2 +- .../com/hbm/entity/mob/EntityRADBeast.java | 2 +- .../hbm/entity/mob/EntityTaintedCreeper.java | 2 +- .../mob/botprime/EntityBOTPrimeBase.java | 2 +- .../com/hbm/handler/EntityEffectHandler.java | 10 + .../hbm/handler/RadiationWorldHandler.java | 52 +- .../java/com/hbm/inventory/FluidTank.java | 31 +- .../container/ContainerArmorTable.java | 45 + .../container/ContainerCrystallizer.java | 56 +- src/main/java/com/hbm/items/ModItems.java | 16 +- .../java/com/hbm/items/armor/ArmorFSB.java | 1 - .../com/hbm/items/armor/ArmorFSBPowered.java | 2 + .../java/com/hbm/items/armor/ItemModInk.java | 48 + .../com/hbm/items/special/ItemSyringe.java | 985 ++++++++---------- src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 20 + src/main/java/com/hbm/main/MainRegistry.java | 9 + .../java/com/hbm/main/ModEventHandler.java | 20 + .../com/hbm/main/ModEventHandlerClient.java | 2 +- .../tileentity/machine/TileEntityDecon.java | 2 + .../machine/TileEntityMachineRadGen.java | 3 +- .../java/com/hbm/util/ContaminationUtil.java | 2 +- src/main/resources/mcmod.info | 2 +- 44 files changed, 928 insertions(+), 758 deletions(-) rename src/main/java/{com/hbm/interfaces => api/hbm/entity}/IRadiationImmune.java (58%) create mode 100644 src/main/java/assets/hbm/sounds/entity/vomit.ogg create mode 100644 src/main/java/assets/hbm/textures/items/fallout.png create mode 100644 src/main/java/assets/hbm/textures/items/ink.png create mode 100644 src/main/java/com/hbm/blocks/generic/BlockFallout.java create mode 100644 src/main/java/com/hbm/items/armor/ItemModInk.java diff --git a/src/main/java/com/hbm/interfaces/IRadiationImmune.java b/src/main/java/api/hbm/entity/IRadiationImmune.java similarity index 58% rename from src/main/java/com/hbm/interfaces/IRadiationImmune.java rename to src/main/java/api/hbm/entity/IRadiationImmune.java index 575d41a5a..d7150807e 100644 --- a/src/main/java/com/hbm/interfaces/IRadiationImmune.java +++ b/src/main/java/api/hbm/entity/IRadiationImmune.java @@ -1,4 +1,4 @@ -package com.hbm.interfaces; +package api.hbm.entity; public interface IRadiationImmune { diff --git a/src/main/java/assets/hbm/lang/de_DE.lang b/src/main/java/assets/hbm/lang/de_DE.lang index f0d6c2fe2..78e630567 100644 --- a/src/main/java/assets/hbm/lang/de_DE.lang +++ b/src/main/java/assets/hbm/lang/de_DE.lang @@ -971,6 +971,11 @@ item.euphemium_plate.name=Euphemiumbrustpanzer item.euphemium_stopper.name=Stopper item.factory_core_advanced.name=Fortgeschrittener Fabrikenergiecluster item.factory_core_titanium.name=Einfacher Fabrikenergiecluster +item.fallout.name=Fallouthäufchen +item.fau_boots.name=Fau-Stiefel +item.fau_helmet.name=Fau-Helm +item.fau_legs.name=Fau-Beinschienen +item.fau_plate.name=Fau-Brustpanzer item.filter_coal.name=Aktivkohlefilter item.fins_big_steel.name=Große Stahlgitterfinnen item.fins_flat.name=Flache Stahlabdeckung @@ -1086,6 +1091,7 @@ item.gun_bolt_action_ammo.name=12x74 Brenneke (LEGACY) item.gun_bolt_action_green.name=Dream-Repetiergewehr (Grün) item.gun_bolt_action_saturnite.name=Saturnitbüchse item.gun_bolter.name=Boltergewehr +item.gun_bolter_digamma.name=Digammagewehr item.gun_calamity.name=Calamity item.gun_calamity_ammo.name=.50 BMG Patrone (LEGACY) item.gun_calamity_dual.name=Sattelkanone @@ -1287,6 +1293,7 @@ item.ingot_uranium.name=Uranbarren item.ingot_uranium_fuel.name=Urankernbrennstoffbarren item.ingot_verticium.name=Verticiumbarren item.ingot_weidanium.name=Weidaniumbarren +item.ink.name=林-Tinte item.insert_du.name=DU-Einlage item.insert_era.name=Explosive Reaktivpaanzerungseinlage item.insert_esapi.name=ESAPI-Einlage @@ -2219,6 +2226,7 @@ tile.block_dura_steel.name=Verstärketer Schnellarbeitsstahlblock tile.block_electrical_scrap.name=Elektroschrottblock tile.block_euphemium.name=Euphemiumblock tile.block_euphemium_cluster.name=Euphemiumgeätzter Schrabidium-Cluster +tile.block_fallout.name=Fallout-Block tile.block_fiberglass.name=Fiberglasrolle tile.block_fluorite.name=Fluoritblock tile.block_insulator.name=Isolatorrolle @@ -2351,6 +2359,7 @@ tile.factory_titanium_conductor.name=Einfacher Fabriksstromanschluss tile.factory_titanium_core.name=Einfache Fabrikkernkomponente tile.factory_titanium_furnace.name=Einfache Fabrikzugriffsluke tile.factory_titanium_hull.name=Einfache Fabrikshülle +tile.fallout.name=Fallout tile.fence_metal.name=Maschendrahtzaun tile.fireworks.name=Feuerwerksbatterie tile.fireworks.charges=Ladungen: %s diff --git a/src/main/java/assets/hbm/lang/en_US.lang b/src/main/java/assets/hbm/lang/en_US.lang index 2248d7729..418a470de 100644 --- a/src/main/java/assets/hbm/lang/en_US.lang +++ b/src/main/java/assets/hbm/lang/en_US.lang @@ -971,6 +971,11 @@ item.euphemium_plate.name=Euphemium Chestplate item.euphemium_stopper.name=Stopper item.factory_core_advanced.name=Advanced Factory Energy Cluster item.factory_core_titanium.name=Basic Factory Energy Cluster +item.fallout.name=Pile of Fallout +item.fau_boots.name=Fau Boots +item.fau_helmet.name=Fau Helmet +item.fau_legs.name=Fau Leggins +item.fau_plate.name=Fau Chestplate item.filter_coal.name=Activated Carbon Filter item.fins_big_steel.name=Big Steel Grid Fins item.fins_flat.name=Flat Steel Casing @@ -1086,6 +1091,7 @@ item.gun_bolt_action_ammo.name=12x74 Slug (LEGACY) item.gun_bolt_action_green.name=Dream Bolt-Action Rifle (Green) item.gun_bolt_action_saturnite.name=Saturnite Rifle item.gun_bolter.name=Bolter +item.gun_bolter_digamma.name=Digamma Gun item.gun_calamity.name=Calamity item.gun_calamity_ammo.name=.50 BMG Round (LEGACY) item.gun_calamity_dual.name=Saddle Gun @@ -1287,6 +1293,7 @@ item.ingot_uranium.name=Uranium Ingot item.ingot_uranium_fuel.name=Ingot of Uranium Fuel item.ingot_verticium.name=Verticium Ingot item.ingot_weidanium.name=Weidanium Ingot +item.ink.name=林 Ink item.insert_du.name=DU Insert item.insert_era.name=Explosive Reactive Armor Insert item.insert_esapi.name=ESAPI Insert @@ -2219,6 +2226,7 @@ tile.block_dura_steel.name=Reinforced Block of High-Speed Steel tile.block_electrical_scrap.name=Block of Electrical Scrap tile.block_euphemium.name=Block of Euphemium tile.block_euphemium_cluster.name=Euphemium-Etched Schrabidium Cluster +tile.block_fallout.name=Block of Fallout tile.block_fiberglass.name=Roll of Fiberglass tile.block_fluorite.name=Block of Fluorite tile.block_insulator.name=Roll of Insulation @@ -2351,6 +2359,7 @@ tile.factory_titanium_conductor.name=Basic Factory Electricity Port tile.factory_titanium_core.name=Basic Factory Core Component tile.factory_titanium_furnace.name=Basic Factory Access Hatch tile.factory_titanium_hull.name=Basic Factory Casing +tile.fallout.name=Fallout tile.fence_metal.name=Chainlink Fence tile.fireworks.name=Firework Battery tile.fireworks.charges=Charges Loaded: %s diff --git a/src/main/java/assets/hbm/sounds.json b/src/main/java/assets/hbm/sounds.json index db82bb773..828acfe7a 100644 --- a/src/main/java/assets/hbm/sounds.json +++ b/src/main/java/assets/hbm/sounds.json @@ -166,6 +166,7 @@ "entity.ducc": {"category": "neutral", "sounds": ["entity/ducc1", "entity/ducc2"]}, "entity.slicer": {"category": "neutral", "sounds": ["entity/slicer1", "entity/slicer2", "entity/slicer3", "entity/slicer4"]}, "entity.megaquacc": {"category": "hostile", "sounds": [{"name": "entity/megaquacc", "stream": false}]}, + "entity.vomit": {"category": "player", "sounds": [{"name": "entity/vomit", "stream": false}]}, "step.metal": {"category": "player", "sounds": [{"name": "footsteps/metal", "stream": false}]}, "step.iron_jump": {"category": "player", "sounds": [{"name": "footsteps/iron_jump", "stream": false}]}, diff --git a/src/main/java/assets/hbm/sounds/entity/vomit.ogg b/src/main/java/assets/hbm/sounds/entity/vomit.ogg new file mode 100644 index 0000000000000000000000000000000000000000..bdfbbf513dabd08f18efb044ed11c80af47031c6 GIT binary patch literal 18044 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 delta 382 zcmV-^0fGMh1epVnB!2{RLP=Bz2nYy#2xN!=00B@*L_t(&f$f_8je{@@#a|EuFhWLP zgp9xlY|@O9+kg==0wXX28_+-6J8=l*vpLHr|D>v_5<7W)#)+z`2XI)tu%}n*=P&0F zVxDIeoKQ*EGWlO10;mxI)QA9T6aYBq4&c?Zt+huez*_s$*MFUJ$F^<31+><`&VrQu zIr}Mg;Cqoz&&{PfCr@3dWJ4vnQ)03msQETqIMH8gSZf^&h}C>-es2EQeD+;P1W+Ra zs1X6w^w&Nc>+|QkPzkZSP40f!JJ6kPimiV^NFjGW>>W_Xm|#ur`yNa%3`1}{7Qe1* zmFw&s5CPQmt#@lY7GDc{2NVE|<9OSNrfC8Ic<*n6jWGa#Wm#^=Q{!t+_y6I*1Gsg- zUfx@ctM@)iVDA8X0qn05?9YL|^#)_{wa7U@jXcEE4>A7|s!b3pLGQi%)gXijphg5x cBLb*-0=uQN!{;#bG5`Po07*qoM6N<$g14Qm%m4rY diff --git a/src/main/java/assets/hbm/textures/armor/fau_chest.png b/src/main/java/assets/hbm/textures/armor/fau_chest.png index 4d01c27841609f7991802a5fb49fc385c3b1c8b0..7340f6e3b7441b230503a9eb4772a1baa809a563 100644 GIT binary patch delta 1326 zcmV+}1=0G%2f+%EB!2;OQb$4nuFf3k00004XF*Lt006O%3;baP00009a7bBm000id z000id0mpBsWB>pF7<5HgbW?9;ba!ELWdLwtX>N2bZe?^JG%hhNHDpIvQUCx1vPnci zRCr$PmEUSzMHI&K21hl-^kc5lZi(y{r$B zN6BOOG%oY)&UaW@nb~{onG?@(cRu*o^KY%0S-(uq!k-^($TYnW(Qo62(#IjJY8r|` z>f?|mD$L72;&NB6l(x6GMLP^nU48fYYvn7Ue;(a$?uS2KwDp{J+q#g}FC@|l`nU@Q z*AbqMjm?FyUVmC&Ul;8#JazTmN8fQKVB3UEO3XvGfrWFx;?>w<)1DXQRqj5z4i=c6 z({5WA(oRQAYC&|_#&vI?8AG*VW<%xX@}t}YFn4eoh2lR0q|JI z60Ege4~K1C(gl{k7aFGuUZOtx=;CVw622ubRy%B$FMlMl#rImr#z1<(o}Zt~+1c5Z zITjp+zUW>m`gMTy?8AEy0Q(jg$E{QAY`(BvzI3v_*0HGw!rK>?OhkP zYh=$q2(T%KJ2yhV1T3U;TZbi$^qsUTSf>%g!hZsUwk3Ai&y7!7(rxi>-~hPrP0S@jh(xycMj|h(S^9rQlhE4b5u- z3+Xmw&s4!CT)}qOn?Gj{#Gt75Qt&LnreuMI;Vbg4)3Rr(U=z*(ySuw9hlhvF7{2Il zZhvkzbNHg4W9C3Rm0zC+u3!`H3l;@VnE(JI$2Ole^4l|2unG4COL*uXA0Nxn(UI)$ z?>A$FW8=Igyte!{rh-klFId9UMc>=oo4_D|95c2pzxCk35>6YKm^E1DX#Ci z@dfrZV{JZdd!|8yg*BjDuw8LjgO`m00|5Uu;)_1#(9bbqyYlPvz!hx5IbhoqdsSW& zY@2LM1)K17fYqP-w1b;U6 z`{{8J*#E0_@nhyZ*VqE29E**a^P#>;0ZwcmkF&sfgaXE1jK_%mesNWP8h;|smOhgg zcOJ^i&CKdyuT!C?=AWc*&!4^7wj|yII-VPkKf4`>(xAfEpbSb zls$hKZdZM=WhsCaB|=>uD;kg{wIwsaY!>$ k%>&pHhcroDKL3gQ3$b71Irk@QS^xk507*qoM6N<$fOV delta 942 zcmV;f15y0J3d9GHB!2{RLP=Bz2nYy#2xN!=00VnTL_t(|ob8)GZrd;v#y=K0K!5<9 zHMBrR6&V6#a!-*Vi{}6}asz$3LJH&r?VcM%YX+kl12jYC6amr`ybh9VT7RiOmMoS( zzz|JRPqd#tihQJ$JV5|}x99~|$x)p`<;w)gHB3<`+HkaE^M40s4(@EI#GxD8fP7sn zjO;u_Q76Y<1-tG48Sd%kI0<(Dr?;^7I>FhtT|5W)SWM@ss~4`#e%Fynr6G8TB4o~e zh@wKdspB1HY#dvsH~{c{zgE${U#|E#j*adx-SKV6l=_#s{IvTYOu3m-Pna)B@*9*p zHb#nVa%$tbaer)7w@k@%M6My>M*;vy>JAs4CkZ~*cB_^3ND2T1uY|g*zG+A6igohJ zw8f!1!7Bj(QuB;O#h|jTUS_w6NgS&?(zN@{?$n$D92I<+x&bC?B`Kcg!SlS0gWDia zkl-4!IRX+uJ2sSe`CU^pxnmvsVUn(RY}6@Ka0cO3@_(IY=`k(eA2&KnPn(G;sc zOWmAx|BM=-=n6?yH+cH2h~H!}PnfUT3w~4Jcb4Q${}>Jc3AKpb(PFWX_xJbOla7y% zdtLO4?>E}l+u)ZBSnludld{5`+H8(&J4_D3H0=gYmf{?1DYG9H|M&xJ$G2O;kGpZ= zEJW9qaDSa9-a-XX*I z1)O6CMer=d?yf*$1%*#4z)G+NxZajkt{j!r3x9E|>g?xDxUP601kaVD=DM{Q^ zh)hYu$|!$$`@1;BT8j0GB`G9TpU4wQft$xV4gu>G3-nW*X(%y!_LYrV%ko>dqrpCM z`A)F|Q8wi;DchHQHO4}_iT$QJRs6azTWIeZD>i*LHw6s(PI;Pc4$&6b38z?VagMbV z=YLpB`7cJrhd|#^aa){XEya4pmhC<2a(>?(6n$gGVN1myMN!l^$LjNbECAfx+!XR& zUS3M;dY)IvTP~N?ZMieirr721ow=! zl-VnGF1S&#V-TETM`G+zu~V$2ILBIwQ72a%$Fb@livR!s diff --git a/src/main/java/assets/hbm/textures/armor/fau_helmet.png b/src/main/java/assets/hbm/textures/armor/fau_helmet.png index 8fa22039563c82973eeb28b3e0023826dc4842cc..dc97c0fc6e7a8c611c3484df3ad7738a72fcf58c 100644 GIT binary patch delta 1255 zcmVpF7<5HgbW?9;ba!ELWdLwtX>N2bZe?^JG%hhNHDpIvQUCx1Y)M2x zRCr$PnqNv=K@`SaKp$F=J{9}accCRH2r3971O!0@k>U=z1%K(Yi?Cbh3VdnT(C2Ps z+Hd^6WO8%v&7EXsauer+k2!b#oO9-vM1{CB1pWB@+5H-g+@FI3S2~v2%66&i;<;m) zt>hPqp*Whz6>C(CwOlc;wO*kiG=rvc#u^o4EoaQ@l@}U7BWR*TtWh!6O2oWw8KE$W zqIjuTqhhR;ihp_Syh1?~L(!74M#Wew8T0yighD8SVx?n^im_HYCWiDvauh+a(y>Ox zSSuY9LwX@OilA8OSfgUBm5zyF^E7_D=PYwMxlT?_h6xLo{<`~V#+dv0cHCK-ZWRM;Xr^7SaN$K@(d_;G{hZq_u`Jlfy?=u!>s+%hrd_{=0M-K6$Abln z3s<<{q0k+v!3H!@Px^x#<9c=!LY@2W9)H6%YDK*%zx02>{rV1g1 zFha0`*Mw-zx8-BGIpqS|>@Bx>ofqN46>J*wI#cxl8#b!vwt1WlbLyGp<^(v)z}2}n zu%*rGyr>Bwgi-RB*DBTvDy>tj_tH8I7@N>)8JF~!SDRy}K? zij$S7de%f0Co56)tcfaKRlGbs}p|XsgDuX32P2 z$$y4mL1LS8$^p?b%f-t|HUxJ;l`7aJT)}2?1)IqgY$k6sSS!&`3}}69olR+?ij&o7 z_0+_)`LZq-W8}cU5n1*H8ft#43v+3^BtX_jvdcPW0S(PEUIH1e4<4@dm2j7NY^7gD zI4dxVj9M50^ZEJNJv}{n3$AZwh-!YnzkkR)wlY|z@v`cK7FYlk+`)qlrAstNF3)IP zUM* zE7%sP*}gzE!Z^D%VA0IMoA*hKTxzy2P>nForUtvn+D{zmgl0az+ciPKSZi~0&k(@! zT3#VQ%iNYvA*`mkWg=^j%q?Dm)z>`cU+87v>KxN}S#?5lTV8cRvb1Qw^$zJWk4?ZX zYo_tCV20+lJib@bJ*p=hz002ovPDHLkV1h4ZVC(<@ delta 1202 zcmV;j1Wo(<3C0PKB!2{RLP=Bz2nYy#2xN!=00ezWL_t(|ob8;yYTPg!$G-~q0D(Z~ zI|yyYgA7@F(4iEXwL=!qf!-@vdVvl%WOgYTGA2Xl&>>UdhJ%c030z(vkQXSw4z_%@ zEdQ6z^2HxGa+YLS`rgk!{bb2uZ~z~my6131vVje`zY;}O#4A=* zwVdvpHs@9?XWAmm&{`}txHVm8+kF~!dGT!{`?n42jV*T9MNP7ezV2=7Lat%E&wH;? zREf>L58;+224O8>eRP~or`p@?{{G&|wF#hY$E-R=YQhbO0N_#y!Ox=OQ!uNI4uYVS z-{YPK0*E7=9Dj5ra!S}Q@XI^pC(3Z1{wqZ1mf{L2VXq(4&w7Loi6}! z5zcP>V-P=y(wBf(fi;-Y8vk)`36wVhn-^T~lIPcXR*(lYh-3ZpY(xBW5SE&<$Dr$f z#SO5{Eq{TE1S+CPys|oL``FL(FjnP@FkM1+nNKun9pQwq;tdA? zaL!X$R^Q2gHH>p1={!y&PPtcL(#jP7tkSV=61X3!}TU4Az)=$N7xgO@HqZ#swH z7JtqQTO^>%;yN#EUm1k8#2~CC24O8R0^EB{m#nAkk!G^2t@bowSehxRr)lKjT)5Kq z9R$zw7)6Vn>K+Gnk?k)%WEUFQQF~pSnt7RkG&^;Yc}a2U0TeIaC(Av6+KOvW*tg0i zv}c~qKTwYU+I<^GBA4jJ%I@82PuMac)qi|LBrP)j&mF5xK94?4{;NkFEDF2XdLHgV z6yVFy-|;2DKj?klu3$ZmE%JHl&Y4}p>flvHICVfVi2#@%y``wj6G!%<0&5mqWT`5) zEH~*#1;7Nd{+AtrsUH*9HZSafPnn3I3Qf+@Kmf^)OiK!y{H`l&3b&pW9GKsqD}OYT zAYGbi+!A(&7=*RNi10`}dVzprUQ%37@_dFL#u{e=+Y^C2cJ5gLQwFE1Wlb|;IAlKN zxeZ`AOkJGtSX}lQz_S30-o6pP!o0G-n`Z^>o^H9q2mk~Y8F5uX)pS*0fknE!rDp+s zfvLfHrL8pF7<5HgbW?9;ba!ELWdLwtX>N2bZe?^JG%hhNHDpIvQUCw~Zb?Kz zRA@u(lR<7=F$_cJ2wikpWY-&X(L?kMJxtfVa|#;dhx#qaa)0W^8NdV{CjXO?I2h!y zO258*d#%9uKB2_#m+vX3=!{O$)jCC2>#2%nW#u!zS1J?1*xTeS+zD&-g6aKK7A^5S zAV12Dd;yQOdS!#6a=LXFv2bs9KVEj-mE2>v+#AVdvFBD zI>GbGSw{1jzfAvH^xbrduGT5KS}0M0@p)m``}RP~Gk?$XGfzIx*A*=TqhpbudGdL_ zu4ow;9gFS_VePB0uxw^L$;=GB7$8`I#r5=lANzrc7vA90z!*D56I`uYo|A3J;tvucF&5I%>rVy2q>e& zdgtZzSt$uxb`%1YWk5M)y&3D-Yz8t*ivpYVW?ro4`5wqUSJ7-h{wN3TSua2GJ&?PK zesu7U_g~~4voN+-D&zf(;KP*7N{Ul-MyKd%ouaFCimujE70t@ZXMCSjWCY^{Jsy7m X{#U`Mx0wv500000NkvXXu0mjfMkr+f delta 429 zcmey%dYpNJNUt;PhqDuiA6s-%nZ^W6W*1zjWTaxczh2eAh0C zet4xnZed>tb%L+XQj!?{hQF$cjLVLt(jiGf9k*WInBASeD<=`Iq#~cC{C9y-+l3- zj+K{zslUiNvD&E#S@)PV--R<;Nx+L`~ILG06hTqIH@PF5%Csnam zmgR36eXe=EDs!_1EF;N4d9w9(OO4VQqndWLEVFlR(GwTX^Tp*UqEF8THO}bL4v~kZH|;LAK!fnk%R~;k1J9tJzyXn{h&|d=Wmp!2*z9@DTDmA zDeP)FL~=?{wwI((n4x~yAY~+QT!(1d!c-QA-&|aAFhw(0ETXk38?WA|5P>KmnzYEo zE@A`*=~x=mFmas$DJw-Ldx>`UfL^bQbM$9;1s&5gf9!J{_1ULQtzDztX^~7=c>Msk z(_{Q{2Hy-2F;54C4zjSiAo=MWli4Yv35#a4$=B~+IF7)?l?ftBv$MU+*+_@7efIpR z>~%Waym1{cX#A=(nY+r)=UoQA$NS9>AD$R2jxF_7KmfL#3yI=r zaRN83hu=^AgzGmX&4gsgi$y`=T!dcEke8|#$OzLi&b*8<_cIaKZ-_-fs$L+Y%u0?$ znPf?(Se7hBMI>|!DNF#;WYN$`kU~SJ&l`E`du&RGcU?ipq+)N9!W>kZt=b+53}u+& z;Jn`Eoo7re66o}3qYY?D44R#OyaRw$=a5&ryzod8gPqzw&e{Ph&aT3Ze9B>oAC(tk c|IVNA0Y{f-YDx|)3IG5A07*qoM6N<$f^K`HJpcdz literal 0 HcmV?d00001 diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 4f8f8439e..597d0fd37 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -18,6 +18,7 @@ import net.minecraft.block.Block; import net.minecraft.block.BlockFalling; import net.minecraft.block.material.*; import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.init.Blocks; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; @@ -159,6 +160,7 @@ public class ModBlocks { public static Block block_lithium; public static Block block_white_phosphorus; public static Block block_red_phosphorus; + public static Block block_fallout; public static Block block_australium; public static Block block_weidanium; @@ -282,6 +284,7 @@ public class ModBlocks { public static Block frozen_grass; public static Block frozen_log; public static Block frozen_planks; + public static Block fallout; public static Block sellafield_slaked; public static Block sellafield_0; @@ -1016,6 +1019,7 @@ public class ModBlocks { block_lithium = new BlockLithium(Material.iron).setBlockName("block_lithium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_lithium"); block_white_phosphorus = new BlockGeneric(Material.rock).setBlockName("block_white_phosphorus").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_white_phosphorus"); block_red_phosphorus = new BlockFalling(Material.sand).setStepSound(Block.soundTypeSand).setBlockName("block_red_phosphorus").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_red_phosphorus"); + block_fallout = new BlockFalling(Material.ground).setStepSound(Block.soundTypeGravel).setBlockName("block_fallout").setCreativeTab(MainRegistry.blockTab).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":ash"); block_australium = new BlockGeneric(Material.iron).setBlockName("block_australium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_australium"); block_weidanium = new BlockGeneric(Material.iron).setBlockName("block_weidanium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_weidanium"); @@ -1128,8 +1132,8 @@ public class ModBlocks { mush_block = new BlockMushHuge(Material.plants).setBlockName("mush_block").setLightLevel(1.0F).setStepSound(Block.soundTypeGrass).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":mush_block_skin"); mush_block_stem = new BlockMushHuge(Material.plants).setBlockName("mush_block_stem").setLightLevel(1.0F).setStepSound(Block.soundTypeGrass).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":mush_block_stem"); - waste_earth = new WasteEarth(Material.ground, true).setBlockName("waste_earth").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(1.0F).setBlockTextureName(RefStrings.MODID + ":waste_earth"); - waste_mycelium = new WasteEarth(Material.ground, true).setBlockName("waste_mycelium").setStepSound(Block.soundTypeGrass).setLightLevel(1F).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(1.0F).setBlockTextureName(RefStrings.MODID + ":waste_mycelium_side"); + waste_earth = new WasteEarth(Material.ground, false).setBlockName("waste_earth").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":waste_earth"); + waste_mycelium = new WasteEarth(Material.ground, true).setBlockName("waste_mycelium").setStepSound(Block.soundTypeGrass).setLightLevel(1F).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":waste_mycelium_side"); waste_trinitite = new BlockOre(Material.sand).setBlockName("waste_trinitite").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_trinitite"); waste_trinitite_red = new BlockOre(Material.sand).setBlockName("waste_trinitite_red").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_trinitite_red"); waste_log = new WasteLog(Material.wood).setBlockName("waste_log").setStepSound(Block.soundTypeWood).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(2.5F); @@ -1138,6 +1142,7 @@ public class ModBlocks { frozen_grass = new WasteEarth(Material.ground, false).setBlockName("frozen_grass").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F); frozen_log = new WasteLog(Material.wood).setBlockName("frozen_log").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F); frozen_planks = new BlockOre(Material.wood).setBlockName("frozen_planks").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":frozen_planks"); + fallout = new BlockFallout(Material.snow).setBlockName("fallout").setStepSound(Block.soundTypeGravel).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":ash"); sellafield_slaked = new BlockGeneric(Material.rock).setBlockName("sellafield_slaked").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_slaked"); sellafield_0 = new BlockOre(Material.rock, 0.5F, 10F).setBlockName("sellafield_0").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_0"); @@ -1717,6 +1722,7 @@ public class ModBlocks { GameRegistry.registerBlock(block_yellowcake, block_yellowcake.getUnlocalizedName()); GameRegistry.registerBlock(block_scrap, block_scrap.getUnlocalizedName()); GameRegistry.registerBlock(block_electrical_scrap, block_electrical_scrap.getUnlocalizedName()); + GameRegistry.registerBlock(block_fallout, block_fallout.getUnlocalizedName()); GameRegistry.registerBlock(block_insulator, block_insulator.getUnlocalizedName()); GameRegistry.registerBlock(block_fiberglass, block_fiberglass.getUnlocalizedName()); GameRegistry.registerBlock(block_asbestos, block_asbestos.getUnlocalizedName()); @@ -1862,6 +1868,7 @@ public class ModBlocks { GameRegistry.registerBlock(frozen_dirt, frozen_dirt.getUnlocalizedName()); GameRegistry.registerBlock(frozen_log, frozen_log.getUnlocalizedName()); GameRegistry.registerBlock(frozen_planks, frozen_planks.getUnlocalizedName()); + GameRegistry.registerBlock(fallout, fallout.getUnlocalizedName()); //RAD GameRegistry.registerBlock(sellafield_slaked, sellafield_slaked.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockFallout.java b/src/main/java/com/hbm/blocks/generic/BlockFallout.java new file mode 100644 index 000000000..0701219f3 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockFallout.java @@ -0,0 +1,74 @@ +package com.hbm.blocks.generic; + +import java.util.Random; + +import com.hbm.items.ModItems; +import com.hbm.potion.HbmPotion; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.potion.PotionEffect; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockFallout extends Block { + + public BlockFallout(Material mat) { + super(mat); + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.125F, 1.0F); + } + + public boolean isOpaqueCube() { + return false; + } + + public boolean renderAsNormalBlock() { + return false; + } + + public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { + return ModItems.fallout; + } + + public boolean canPlaceBlockAt(World world, int x, int y, int z) { + Block block = world.getBlock(x, y - 1, z); + return block != Blocks.ice && block != Blocks.packed_ice ? (block.isLeaves(world, x, y - 1, z) ? true : (block == this && (world.getBlockMetadata(x, y - 1, z) & 7) == 7 ? true : block.isOpaqueCube() && block.getMaterial().blocksMovement())) : false; + } + + @Override + public void onEntityWalking(World world, int x, int y, int z, Entity entity) { + + if(!world.isRemote && entity instanceof EntityLivingBase) { + ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 30 * 20, 1)); + } + } + + public void onBlockClicked(World world, int x, int y, int z, EntityPlayer player) { + + if(!world.isRemote) { + player.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 15 * 20, 1)); + } + } + + public void onNeighborBlockChange(World world, int x, int y, int z, Block b) { + this.func_150155_m(world, x, y, z); + } + + private boolean func_150155_m(World world, int x, int y, int z) { + if(!this.canPlaceBlockAt(world, x, y, z)) { + world.setBlockToAir(x, y, z); + return false; + } else { + return true; + } + } + + public boolean isReplaceable(IBlockAccess world, int x, int y, int z) { + return true; + } +} diff --git a/src/main/java/com/hbm/blocks/generic/WasteEarth.java b/src/main/java/com/hbm/blocks/generic/WasteEarth.java index c419c1552..0062fcc5d 100644 --- a/src/main/java/com/hbm/blocks/generic/WasteEarth.java +++ b/src/main/java/com/hbm/blocks/generic/WasteEarth.java @@ -25,7 +25,7 @@ import net.minecraft.util.IIcon; import net.minecraft.world.World; public class WasteEarth extends Block { - + @SideOnly(Side.CLIENT) private IIcon iconTop; @SideOnly(Side.CLIENT) @@ -33,15 +33,15 @@ public class WasteEarth extends Block { public WasteEarth(Material mat, boolean tick) { super(mat); - this.setTickRandomly(tick); + this.setTickRandomly(tick); } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { - this.iconTop = iconRegister.registerIcon(RefStrings.MODID + (this == ModBlocks.waste_earth ? ":waste_earth_top" : (this == ModBlocks.waste_mycelium ? ":waste_mycelium_top" : ":frozen_grass_top"))); + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + (this == ModBlocks.waste_earth ? ":waste_grass_top" : (this == ModBlocks.waste_mycelium ? ":waste_mycelium_top" : ":frozen_grass_top"))); this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + (this == ModBlocks.waste_earth ? ":waste_earth_bottom" : (this == ModBlocks.waste_mycelium ? ":waste_earth_bottom" : ":frozen_dirt"))); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + (this == ModBlocks.waste_earth ? ":waste_earth_side" : (this == ModBlocks.waste_mycelium ? ":waste_mycelium_side" : ":frozen_grass_side"))); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + (this == ModBlocks.waste_earth ? ":waste_grass_side" : (this == ModBlocks.waste_mycelium ? ":waste_mycelium_side" : ":frozen_grass_side"))); } @Override @@ -51,148 +51,105 @@ public class WasteEarth extends Block { } @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - if(this == ModBlocks.waste_earth || this == ModBlocks.waste_mycelium) - { + public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { + if(this == ModBlocks.waste_earth || this == ModBlocks.waste_mycelium) { return Item.getItemFromBlock(Blocks.dirt); } - - if(this == ModBlocks.frozen_grass) - { + + if(this == ModBlocks.frozen_grass) { return Items.snowball; } - + return Item.getItemFromBlock(this); - } - - @Override - public int quantityDropped(Random p_149745_1_) - { - return 1; - } + } - @Override - public void onEntityWalking(World p_149724_1_, int p_149724_2_, int p_149724_3_, int p_149724_4_, Entity entity) - { - if (entity instanceof EntityLivingBase && this == ModBlocks.waste_earth) { + @Override + public int quantityDropped(Random p_149745_1_) { + return 1; + } - ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 15 * 20, 0)); - } - - if (entity instanceof EntityLivingBase && this == ModBlocks.frozen_grass) { - - ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 2 * 60 * 20, 2)); - } - if (entity instanceof EntityLivingBase && this == ModBlocks.waste_mycelium) { - - ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 30 * 20, 3)); - } - } - - @Override + @Override + public void onEntityWalking(World p_149724_1_, int p_149724_2_, int p_149724_3_, int p_149724_4_, Entity entity) { + if(entity instanceof EntityLivingBase && this == ModBlocks.frozen_grass) { + + ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 2 * 60 * 20, 2)); + } + if(entity instanceof EntityLivingBase && this == ModBlocks.waste_mycelium) { + + ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 30 * 20, 3)); + } + } + + @Override @SideOnly(Side.CLIENT) - public void randomDisplayTick(World p_149734_1_, int p_149734_2_, int p_149734_3_, int p_149734_4_, Random p_149734_5_) - { - super.randomDisplayTick(p_149734_1_, p_149734_2_, p_149734_3_, p_149734_4_, p_149734_5_); + public void randomDisplayTick(World p_149734_1_, int p_149734_2_, int p_149734_3_, int p_149734_4_, Random p_149734_5_) { + super.randomDisplayTick(p_149734_1_, p_149734_2_, p_149734_3_, p_149734_4_, p_149734_5_); + if(this == ModBlocks.waste_mycelium) { + p_149734_1_.spawnParticle("townaura", p_149734_2_ + p_149734_5_.nextFloat(), p_149734_3_ + 1.1F, p_149734_4_ + p_149734_5_.nextFloat(), 0.0D, 0.0D, 0.0D); + } + } - if (this == ModBlocks.waste_earth) - { - p_149734_1_.spawnParticle("townaura", p_149734_2_ + p_149734_5_.nextFloat(), p_149734_3_ + 1.1F, p_149734_4_ + p_149734_5_.nextFloat(), 0.0D, 0.0D, 0.0D); - } - if (this == ModBlocks.waste_mycelium) - { - p_149734_1_.spawnParticle("townaura", p_149734_2_ + p_149734_5_.nextFloat(), p_149734_3_ + 1.1F, p_149734_4_ + p_149734_5_.nextFloat(), 0.0D, 0.0D, 0.0D); - } - } - - @Override - public void updateTick(World world, int x, int y, int z, Random rand) { - - if((this == ModBlocks.waste_earth || this == ModBlocks.waste_mycelium) && world.getBlock(x, y + 1, z) == Blocks.air && rand.nextInt(10) == 0) - { - Block b0; - int count = 0; - for(int i = -5; i < 5; i++) { - for(int j = -5; j < 6; j++) { - for(int k = -5; k < 5; k++) { - b0 = world.getBlock(x + i, y + j, z + k); - if((b0 instanceof BlockMushroom) || b0 == ModBlocks.mush) - { - count++; - } - } - } - } - if(count > 0 && count < 5) - world.setBlock(x, y + 1, z, ModBlocks.mush); - } - - if(this == ModBlocks.waste_mycelium && GeneralConfig.enableMycelium) - { - for(int i = -1; i < 2; i++) { - for(int j = -1; j < 2; j++) { - for(int k = -1; k < 2; k++) { - Block b0 = world.getBlock(x + i, y + j, z + k); - Block b1 = world.getBlock(x + i, y + j + 1, z + k); - if(!b1.isOpaqueCube() && (b0 == Blocks.dirt || b0 == Blocks.grass || b0 == Blocks.mycelium || b0 == ModBlocks.waste_earth)) - { - world.setBlock(x + i, y + j, z + k, ModBlocks.waste_mycelium); - } - } - } - } - - if(rand.nextInt(10) == 0) { - Block b0; - int count = 0; - for(int i = -5; i < 5; i++) { - for(int j = -5; j < 6; j++) { - for(int k = -5; k < 5; k++) { - b0 = world.getBlock(x + i, y + j, z + k); - if(b0 == ModBlocks.mush) - { - count++; - } - } - } - } - if(count < 5) - world.setBlock(x, y + 1, z, ModBlocks.mush); - } - } - - if(this == ModBlocks.waste_earth || this == ModBlocks.waste_mycelium) - { - if (!world.isRemote) - { - if (world.getBlockLightValue(x, y + 1, z) < 4 && world.getBlockLightOpacity(x, y + 1, z) > 2) - { - world.setBlock(x, y, z, Blocks.dirt); - } - } - } - - if(GeneralConfig.enableAutoCleanup && (this == ModBlocks.waste_earth | this == ModBlocks.waste_mycelium)) - if(!world.isRemote) - world.setBlock(x, y, z, Blocks.dirt); - } - - /*@Override - public int tickRate(World world) { - - if(this.radIn > 0) - return 20; - - return 100; - } - - public void onBlockAdded(World world, int x, int y, int z) - { - super.onBlockAdded(world, x, y, z); - - if(this.radIn > 0) - world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); - }*/ + @Override + public void updateTick(World world, int x, int y, int z, Random rand) { + if((this == ModBlocks.waste_earth || this == ModBlocks.waste_mycelium) && world.getBlock(x, y + 1, z) == Blocks.air && rand.nextInt(10) == 0) { + Block b0; + int count = 0; + for(int i = -5; i < 5; i++) { + for(int j = -5; j < 6; j++) { + for(int k = -5; k < 5; k++) { + b0 = world.getBlock(x + i, y + j, z + k); + if((b0 instanceof BlockMushroom) || b0 == ModBlocks.mush) { + count++; + } + } + } + } + if(count > 0 && count < 5) + world.setBlock(x, y + 1, z, ModBlocks.mush); + } + + if(this == ModBlocks.waste_mycelium && GeneralConfig.enableMycelium) { + for(int i = -1; i < 2; i++) { + for(int j = -1; j < 2; j++) { + for(int k = -1; k < 2; k++) { + Block b0 = world.getBlock(x + i, y + j, z + k); + Block b1 = world.getBlock(x + i, y + j + 1, z + k); + if(!b1.isOpaqueCube() && (b0 == Blocks.dirt || b0 == Blocks.grass || b0 == Blocks.mycelium || b0 == ModBlocks.waste_earth)) { + world.setBlock(x + i, y + j, z + k, ModBlocks.waste_mycelium); + } + } + } + } + + if(rand.nextInt(10) == 0) { + Block b0; + int count = 0; + for(int i = -5; i < 5; i++) { + for(int j = -5; j < 6; j++) { + for(int k = -5; k < 5; k++) { + b0 = world.getBlock(x + i, y + j, z + k); + if(b0 == ModBlocks.mush) { + count++; + } + } + } + } + if(count < 5) + world.setBlock(x, y + 1, z, ModBlocks.mush); + } + } + + if(this == ModBlocks.waste_earth || this == ModBlocks.waste_mycelium) { + if(!world.isRemote) { + if(world.getBlockLightValue(x, y + 1, z) < 4 && world.getBlockLightOpacity(x, y + 1, z) > 2) { + world.setBlock(x, y, z, Blocks.dirt); + } + } + } + + if(GeneralConfig.enableAutoCleanup && (this == ModBlocks.waste_earth | this == ModBlocks.waste_mycelium)) + if(!world.isRemote) + world.setBlock(x, y, z, Blocks.dirt); + } } diff --git a/src/main/java/com/hbm/blocks/test/TestEventTester.java b/src/main/java/com/hbm/blocks/test/TestEventTester.java index 146a581ac..1905eadc8 100644 --- a/src/main/java/com/hbm/blocks/test/TestEventTester.java +++ b/src/main/java/com/hbm/blocks/test/TestEventTester.java @@ -8,8 +8,6 @@ import java.util.Map.Entry; import com.hbm.blocks.ModBlocks; import com.hbm.entity.effect.EntityNukeCloudSmall; -import com.hbm.explosion.ExplosionNT; -import com.hbm.explosion.ExplosionNT.ExAttrib; import com.hbm.saveddata.RadiationSavedData; import net.minecraft.block.Block; diff --git a/src/main/java/com/hbm/crafting/ArmorRecipes.java b/src/main/java/com/hbm/crafting/ArmorRecipes.java index b2a14b2f7..1fe6f3666 100644 --- a/src/main/java/com/hbm/crafting/ArmorRecipes.java +++ b/src/main/java/com/hbm/crafting/ArmorRecipes.java @@ -12,6 +12,7 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.ShapedOreRecipe; +import net.minecraftforge.oredict.ShapelessOreRecipe; /** * For player armor @@ -59,6 +60,10 @@ public class ArmorRecipes { GameRegistry.addRecipe(new ItemStack(ModItems.ajr_plate, 1), new Object[] { "MPM", "TBT", "PPP", 'M', ModItems.motor_desh, 'P', ModItems.plate_armor_ajr, 'T', ModItems.gas_empty, 'B', ModItems.alloy_plate }); GameRegistry.addRecipe(new ItemStack(ModItems.ajr_legs, 1), new Object[] { "MPM", "PBP", "P P", 'M', ModItems.motor_desh, 'P', ModItems.plate_armor_ajr, 'B', ModItems.alloy_legs }); GameRegistry.addRecipe(new ItemStack(ModItems.ajr_boots, 1), new Object[] { "P P", "PBP", 'P', ModItems.plate_armor_ajr, 'B', ModItems.alloy_boots }); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ajro_helmet, 1), new Object[] { ModItems.ajr_helmet, "dyeRed", "dyeBlack" })); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ajro_plate, 1), new Object[] { ModItems.ajr_plate, "dyeRed", "dyeBlack" })); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ajro_legs, 1), new Object[] { ModItems.ajr_legs, "dyeRed", "dyeBlack" })); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ajro_boots, 1), new Object[] { ModItems.ajr_boots, "dyeRed", "dyeBlack" })); GameRegistry.addRecipe(new ItemStack(ModItems.bj_helmet, 1), new Object[] { "SBS", " C ", " I ", 'S', Items.string, 'B', new ItemStack(Blocks.wool, 1, 15), 'C', ModItems.circuit_targeting_tier4, 'I', ModItems.ingot_starmetal }); GameRegistry.addRecipe(new ItemStack(ModItems.bj_plate, 1), new Object[] { "N N", "MSM", "NCN", 'N', ModItems.plate_armor_lunar, 'M', ModItems.motor_desh, 'S', ModItems.starmetal_plate, 'C', ModItems.circuit_targeting_tier5 }); GameRegistry.addRecipe(new ItemStack(ModItems.bj_plate_jetpack, 1), new Object[] { "NFN", "TPT", "ICI", 'N', ModItems.plate_armor_lunar, 'F', ModItems.fins_quad_titanium, 'T', new ItemStack(ModItems.fluid_tank_full, 1, FluidType.XENON.ordinal()), 'P', ModItems.bj_plate, 'I', ModItems.mp_thruster_10_xenon, 'C', ModItems.crystal_phosphorus }); diff --git a/src/main/java/com/hbm/crafting/ConsumableRecipes.java b/src/main/java/com/hbm/crafting/ConsumableRecipes.java index cc0c42b95..758571ce8 100644 --- a/src/main/java/com/hbm/crafting/ConsumableRecipes.java +++ b/src/main/java/com/hbm/crafting/ConsumableRecipes.java @@ -8,6 +8,7 @@ import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.ShapedOreRecipe; import net.minecraftforge.oredict.ShapelessOreRecipe; @@ -156,6 +157,8 @@ public class ConsumableRecipes { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.industrial_magnet, 1), new Object[] { "SMS", " B ", "SMS", 'S', "ingotSteel", 'M', ModItems.horseshoe_magnet, 'B', ModBlocks.fusion_conductor })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.heart_container, 1), new Object[] { "HAH", "ACA", "HAH", 'H', ModItems.heart_piece, 'A', "ingotAluminum", 'C', ModItems.coin_creeper })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.heart_booster, 1), new Object[] { "GHG", "MCM", "GHG", 'G', "ingotGold", 'H', ModItems.heart_container, 'M', ModItems.morning_glory, 'C', ModItems.coin_maskman })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ink, 1), new Object[] { "FPF", "PIP", "FPF", 'F', new ItemStack(Blocks.red_flower, 1, OreDictionary.WILDCARD_VALUE), 'P', ModItems.armor_polish, 'I', "dyeBlack" })); + GameRegistry.addRecipe(new ItemStack(ModItems.bathwater_mk2, 1), new Object[] { "MWM", "WBW", "MWM", 'M', ModItems.bottle_mercury, 'W', ModItems.nuclear_waste, 'B', ModItems.bathwater }); //Stealth boy GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.stealth_boy, 1), new Object[] { " B", "LI", "LC", 'B', Item.getItemFromBlock(Blocks.stone_button), 'L', Items.leather, 'I', "ingotSteel", 'C', ModItems.circuit_red_copper })); diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index 631e320a1..4511b40ec 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -29,6 +29,10 @@ public class MineralRecipes { RecipesCommon.add9To1(ModItems.ingot_dineutronium, ModBlocks.block_dineutronium); RecipesCommon.add1To9(ModBlocks.block_dineutronium, ModItems.ingot_dineutronium); + RecipesCommon.add9To1(ModItems.fallout, ModBlocks.block_fallout); + RecipesCommon.add1To9(ModBlocks.block_fallout, ModItems.fallout); + GameRegistry.addRecipe(new ItemStack(ModBlocks.fallout, 2), new Object[] { "##", '#', ModItems.fallout }); + GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.block_copper), 1), new Object[] { "###", "###", "###", '#', ModItems.ingot_copper }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.block_fluorite), 1), new Object[] { "###", "###", "###", '#', ModItems.fluorite }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.block_niter), 1), new Object[] { "###", "###", "###", '#', ModItems.niter }); diff --git a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java index e804a555a..b4f6ccbd1 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java +++ b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java @@ -101,6 +101,16 @@ public class EntityFalloutRain extends Entity { if(b.getMaterial() == Material.air) continue; + if(b != ModBlocks.fallout && (worldObj.getBlock(x, y + 1, z) == Blocks.air || worldObj.getBlock(x, y + 1, z).isReplaceable(worldObj, x, y + 1, z))) { + + double d = (double) radProgress / (double) getScale() * 0.5; + + double chance = 0.05 - Math.pow((d - 0.6) * 0.5, 2); + + if(chance >= rand.nextDouble() && ModBlocks.fallout.canPlaceBlockAt(worldObj, x, y + 1, z)) + worldObj.setBlock(x, y + 1, z, ModBlocks.fallout); + } + if(b.isFlammable(worldObj, x, y, z, ForgeDirection.UP)) { if(rand.nextInt(5) == 0) worldObj.setBlock(x, y + 1, z, Blocks.fire); diff --git a/src/main/java/com/hbm/entity/mob/EntityCyberCrab.java b/src/main/java/com/hbm/entity/mob/EntityCyberCrab.java index c967e2782..4d6da1f3e 100644 --- a/src/main/java/com/hbm/entity/mob/EntityCyberCrab.java +++ b/src/main/java/com/hbm/entity/mob/EntityCyberCrab.java @@ -1,10 +1,10 @@ package com.hbm.entity.mob; import com.hbm.entity.projectile.EntityBullet; -import com.hbm.interfaces.IRadiationImmune; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; +import api.hbm.entity.IRadiationImmune; import net.minecraft.command.IEntitySelector; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; diff --git a/src/main/java/com/hbm/entity/mob/EntityHunterChopper.java b/src/main/java/com/hbm/entity/mob/EntityHunterChopper.java index 445be4e5a..de95dfbd6 100644 --- a/src/main/java/com/hbm/entity/mob/EntityHunterChopper.java +++ b/src/main/java/com/hbm/entity/mob/EntityHunterChopper.java @@ -3,10 +3,11 @@ package com.hbm.entity.mob; import com.hbm.entity.particle.EntitySmokeFX; import com.hbm.entity.projectile.EntityBullet; import com.hbm.entity.projectile.EntityChopperMine; -import com.hbm.interfaces.IRadiationImmune; import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.lib.ModDamageSource; + +import api.hbm.entity.IRadiationImmune; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; diff --git a/src/main/java/com/hbm/entity/mob/EntityMaskMan.java b/src/main/java/com/hbm/entity/mob/EntityMaskMan.java index 8cb4b3db7..6d3683030 100644 --- a/src/main/java/com/hbm/entity/mob/EntityMaskMan.java +++ b/src/main/java/com/hbm/entity/mob/EntityMaskMan.java @@ -5,10 +5,10 @@ import java.util.List; import com.hbm.entity.mob.ai.EntityAIMaskmanCasualApproach; import com.hbm.entity.mob.ai.EntityAIMaskmanLasergun; import com.hbm.entity.mob.ai.EntityAIMaskmanMinigun; -import com.hbm.interfaces.IRadiationImmune; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; +import api.hbm.entity.IRadiationImmune; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.EntityAIHurtByTarget; import net.minecraft.entity.ai.EntityAILookIdle; diff --git a/src/main/java/com/hbm/entity/mob/EntityRADBeast.java b/src/main/java/com/hbm/entity/mob/EntityRADBeast.java index 44200eb25..d595f3377 100644 --- a/src/main/java/com/hbm/entity/mob/EntityRADBeast.java +++ b/src/main/java/com/hbm/entity/mob/EntityRADBeast.java @@ -2,12 +2,12 @@ package com.hbm.entity.mob; import java.util.List; -import com.hbm.interfaces.IRadiationImmune; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; import com.hbm.saveddata.RadiationSavedData; +import api.hbm.entity.IRadiationImmune; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; diff --git a/src/main/java/com/hbm/entity/mob/EntityTaintedCreeper.java b/src/main/java/com/hbm/entity/mob/EntityTaintedCreeper.java index cb3f45ef1..12db53858 100644 --- a/src/main/java/com/hbm/entity/mob/EntityTaintedCreeper.java +++ b/src/main/java/com/hbm/entity/mob/EntityTaintedCreeper.java @@ -3,8 +3,8 @@ package com.hbm.entity.mob; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; import com.hbm.entity.mob.ai.EntityAITaintedCreeperSwell; -import com.hbm.interfaces.IRadiationImmune; +import api.hbm.entity.IRadiationImmune; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; diff --git a/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeBase.java b/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeBase.java index fae13f40d..56442b50f 100644 --- a/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeBase.java +++ b/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeBase.java @@ -2,8 +2,8 @@ package com.hbm.entity.mob.botprime; import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.interfaces.IRadiationImmune; +import api.hbm.entity.IRadiationImmune; import net.minecraft.command.IEntitySelector; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index bc93d2745..095310258 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -68,6 +68,16 @@ public class EntityEffectHandler { ContaminationUtil.applyRadData(entity, RadiationConfig.cont * 0.01F); } } + + if(HbmLivingProps.getRadiation(entity) > 600 && world.getTotalWorldTime() % 600 == 0) { + + NBTTagCompound nbt = new NBTTagCompound(); + nbt.setString("type", "vomit"); + nbt.setInteger("entity", entity.getEntityId()); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(nbt, 0, 0, 0), new TargetPoint(entity.dimension, entity.posX, entity.posY, entity.posZ, 25)); + + world.playSoundEffect(ix, iy, iz, "hbm:entity.vomit", 1.0F, 1.0F); + } } private static void handleDigamma(EntityLivingBase entity) { diff --git a/src/main/java/com/hbm/handler/RadiationWorldHandler.java b/src/main/java/com/hbm/handler/RadiationWorldHandler.java index ae7242a2c..dca7a0e54 100644 --- a/src/main/java/com/hbm/handler/RadiationWorldHandler.java +++ b/src/main/java/com/hbm/handler/RadiationWorldHandler.java @@ -2,62 +2,66 @@ package com.hbm.handler; import java.util.Map.Entry; +import com.hbm.blocks.ModBlocks; import com.hbm.config.RadiationConfig; import com.hbm.saveddata.RadiationSavedData; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; +import net.minecraft.network.play.server.S21PacketChunkData; +import net.minecraft.network.play.server.S23PacketBlockChange; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; import net.minecraft.world.WorldServer; +import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.gen.ChunkProviderServer; public class RadiationWorldHandler { - + public static void handleWorldDestruction(World world) { - + if(!(world instanceof WorldServer)) return; - + if(!RadiationConfig.worldRadEffects) return; - - WorldServer serv = (WorldServer)world; - + + WorldServer serv = (WorldServer) world; + RadiationSavedData data = RadiationSavedData.getData(serv); ChunkProviderServer provider = (ChunkProviderServer) serv.getChunkProvider(); - - int count = 50;//MainRegistry.worldRad; - int threshold = 5;//MainRegistry.worldRadThreshold; - + + int count = 50;// MainRegistry.worldRad; + int threshold = 5;// MainRegistry.worldRadThreshold; + Object[] entries = data.contamination.entrySet().toArray(); - + if(entries.length == 0) return; - + Entry randEnt = (Entry) entries[world.rand.nextInt(entries.length)]; - + ChunkCoordIntPair coords = randEnt.getKey(); - + for(int i = 0; i < 1; i++) { - - + if(randEnt == null || randEnt.getValue() < threshold) continue; - - if(provider.chunkExists(coords.chunkXPos, coords.chunkZPos)) { - for(int a = 0; a < 16; a ++) { - for(int b = 0; b < 16; b ++) { - + if(provider.chunkExists(coords.chunkXPos, coords.chunkZPos)) { + + for(int a = 0; a < 16; a++) { + for(int b = 0; b < 16; b++) { + if(world.rand.nextInt(3) != 0) continue; - + int x = coords.getCenterXPos() - 8 + a; int z = coords.getCenterZPosition() - 8 + b; int y = world.getHeightValue(x, z) - world.rand.nextInt(2); - + if(world.getBlock(x, y, z) == Blocks.grass) { - world.setBlock(x, y, z, Blocks.dirt); + world.setBlock(x, y, z, ModBlocks.waste_earth); } else if(world.getBlock(x, y, z) == Blocks.tallgrass) { world.setBlock(x, y, z, Blocks.air); } else if(world.getBlock(x, y, z) == Blocks.leaves) { diff --git a/src/main/java/com/hbm/inventory/FluidTank.java b/src/main/java/com/hbm/inventory/FluidTank.java index 561a2f4db..d15504e2c 100644 --- a/src/main/java/com/hbm/inventory/FluidTank.java +++ b/src/main/java/com/hbm/inventory/FluidTank.java @@ -1,10 +1,10 @@ package com.hbm.inventory; +import com.hbm.handler.ArmorModHandler; import com.hbm.handler.FluidTypeHandler.FluidType; import com.hbm.interfaces.IPartiallyFillable; import com.hbm.inventory.gui.GuiInfoContainer; import com.hbm.items.ModItems; -import com.hbm.items.armor.JetpackBase; import com.hbm.items.machine.ItemFluidIdentifier; import com.hbm.lib.RefStrings; import com.hbm.packet.PacketDispatcher; @@ -13,6 +13,7 @@ import com.hbm.packet.TEFluidPacket; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.resources.I18n; +import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; @@ -128,22 +129,36 @@ public class FluidTank { ItemStack full = null; if(slots[in] != null) { - if(slots[in].getItem() instanceof IPartiallyFillable) { - IPartiallyFillable fillable = (IPartiallyFillable)slots[in].getItem(); - int speed = fillable.getLoadSpeed(slots[in]); + ItemStack partial = slots[in]; + + if(partial.getItem() instanceof ItemArmor && ArmorModHandler.hasMods(partial)) { - if(fillable.getType(slots[in]) == this.type && speed > 0) { + partial = ArmorModHandler.pryMods(partial)[ArmorModHandler.plate_only]; + + if(partial == null) + return; + } + + if(partial.getItem() instanceof IPartiallyFillable) { + IPartiallyFillable fillable = (IPartiallyFillable)partial.getItem(); + int speed = fillable.getLoadSpeed(partial); + + if(fillable.getType(partial) == this.type && speed > 0) { int toLoad = Math.min(this.fluid, speed); - int fill = fillable.getFill(slots[in]); - toLoad = Math.min(toLoad, fillable.getMaxFill(slots[in]) - fill); + int fill = fillable.getFill(partial); + toLoad = Math.min(toLoad, fillable.getMaxFill(partial) - fill); if(toLoad > 0) { this.fluid -= toLoad; - fillable.setFill(slots[in], fill + toLoad); + fillable.setFill(partial, fill + toLoad); } } + if(slots[in].getItem() instanceof ItemArmor) { + ArmorModHandler.applyMod(slots[in], partial); + } + return; } diff --git a/src/main/java/com/hbm/inventory/container/ContainerArmorTable.java b/src/main/java/com/hbm/inventory/container/ContainerArmorTable.java index f0086f3b5..1c80d3fbc 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerArmorTable.java +++ b/src/main/java/com/hbm/inventory/container/ContainerArmorTable.java @@ -93,6 +93,51 @@ public class ContainerArmorTable extends Container { return true; } + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= 8) { + if(!this.mergeItemStack(var5, 9, this.inventorySlots.size(), true)) { + return null; + } else { + var4.onPickupFromSlot(p_82846_1_, var5); + } + } else { + + if(var5.getItem() instanceof ItemArmor) { + if(!this.mergeItemStack(var5, 8, 9, false)) + return null; + + } else if(this.inventorySlots.get(8) != null && var5.getItem() instanceof ItemArmorMod) { + + ItemArmorMod mod = (ItemArmorMod)var5.getItem(); + int slot = mod.type; + + if(((Slot) this.inventorySlots.get(slot)).isItemValid(var5)) { + if(!this.mergeItemStack(var5, slot, slot + 1, false)) + return null; + } else { + return null; + } + } + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; + } + @Override public void onContainerClosed(EntityPlayer player) { super.onContainerClosed(player); diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrystallizer.java b/src/main/java/com/hbm/inventory/container/ContainerCrystallizer.java index bae2fa4b9..374d5aad2 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrystallizer.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrystallizer.java @@ -11,13 +11,12 @@ import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; public class ContainerCrystallizer extends Container { - + private TileEntityMachineCrystallizer diFurnace; - + public ContainerCrystallizer(InventoryPlayer invPlayer, TileEntityMachineCrystallizer tedf) { diFurnace = tedf; - this.addSlotToContainer(new Slot(tedf, 0, 80, 35)); this.addSlotToContainer(new Slot(tedf, 1, 8, 53)); this.addSlotToContainer(new SlotMachineOutput(tedf, 2, 140, 35)); @@ -25,57 +24,48 @@ public class ContainerCrystallizer extends Container { this.addSlotToContainer(new SlotMachineOutput(tedf, 4, 26, 53)); this.addSlotToContainer(new SlotUpgrade(tedf, 5, 98, 17)); this.addSlotToContainer(new SlotUpgrade(tedf, 6, 116, 17)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); } } - - for(int i = 0; i < 9; i++) - { + + for(int i = 0; i < 9; i++) { this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); } } - + @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { ItemStack var3 = null; Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { + + if(var4 != null && var4.getHasStack()) { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - - if (par2 <= diFurnace.getSizeInventory() - 1) { - if (!this.mergeItemStack(var5, diFurnace.getSizeInventory(), this.inventorySlots.size(), true)) - { + + if(par2 <= diFurnace.getSizeInventory() - 1) { + if(!this.mergeItemStack(var5, diFurnace.getSizeInventory(), this.inventorySlots.size(), true)) { return null; } } else { - - if (!this.mergeItemStack(var5, 0, 2, false)) - if (!this.mergeItemStack(var5, 3, 4, false)) - if (!this.mergeItemStack(var5, 5, 7, false)) + + if(!this.mergeItemStack(var5, 0, 2, false)) + if(!this.mergeItemStack(var5, 3, 4, false)) + if(!this.mergeItemStack(var5, 5, 7, false)) return null; } - - if (var5.stackSize == 0) - { + + if(var5.stackSize == 0) { var4.putStack((ItemStack) null); - } - else - { + } else { var4.onSlotChanged(); } } - + return var3; - } + } @Override public boolean canInteractWith(EntityPlayer player) { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index d0261dfe2..d11e1268a 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -249,6 +249,7 @@ public class ModItems { public static Item powder_uranium; public static Item powder_plutonium; public static Item dust; + public static Item fallout; public static Item powder_power; public static Item powder_thorium; @@ -1825,6 +1826,7 @@ public class ModItems { public static Item bathwater; public static Item bathwater_mk2; public static Item spider_milk; + public static Item ink; public static Item heart_piece; public static Item heart_container; public static Item heart_booster; @@ -2321,6 +2323,7 @@ public class ModItems { powder_uranium = new ItemRadioactive(0.5F, true).setUnlocalizedName("powder_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_uranium"); powder_plutonium = new ItemRadioactive(2.5F, true).setUnlocalizedName("powder_plutonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_plutonium"); dust = new ItemCustomLore().setUnlocalizedName("dust").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":dust"); + fallout = new ItemRadioactive(0.1F).setUnlocalizedName("fallout").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fallout"); powder_advanced_alloy = new Item().setUnlocalizedName("powder_advanced_alloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_advanced_alloy"); powder_coal = new Item().setUnlocalizedName("powder_coal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_coal"); powder_combine_steel = new Item().setUnlocalizedName("powder_combine_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_combine_steel"); @@ -2746,6 +2749,7 @@ public class ModItems { bathwater = new ItemModBathwater().setUnlocalizedName("bathwater").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":bathwater"); bathwater_mk2 = new ItemModBathwater().setUnlocalizedName("bathwater_mk2").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":bathwater_mk2"); spider_milk = new ItemModMilk().setUnlocalizedName("spider_milk").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":spider_milk"); + ink = new ItemModInk().setUnlocalizedName("ink").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":ink"); heart_piece = new ItemModHealth(5F).setUnlocalizedName("heart_piece").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":heart_piece"); heart_container = new ItemModHealth(20F).setUnlocalizedName("heart_container").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":heart_container"); heart_booster = new ItemModHealth(40F).setUnlocalizedName("heart_booster").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":heart_booster"); @@ -3938,12 +3942,16 @@ public class ModItems { fau_helmet = new ArmorDigamma(aMatFau, 7, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0).setMod(0.25F).setCap(4.0F).setThreshold(2.0F) .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 1)) .addEffect(new PotionEffect(Potion.jump.id, 20, 0)) - .setBlastProtection(0.25F) - .setMod(0.2F) + .setBlastProtection(0.1F) + .setMod(0.1F) .setHasGeigerSound(true) .setHasCustomGeiger(true) + .enableThermalSight(true) + .setStep("hbm:step.metal") + .setJump("hbm:step.iron_jump") + .setFall("hbm:step.iron_land") .addResistance("fall", 0.5F) - .addResistance("onFire", 0F).setUnlocalizedName("fau_helmet").setTextureName(RefStrings.MODID + ":fau_helmet"); + .setFireproof(true).setUnlocalizedName("fau_helmet").setTextureName(RefStrings.MODID + ":fau_helmet"); fau_plate = new ArmorDigamma(aMatFau, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).setUnlocalizedName("fau_plate").setTextureName(RefStrings.MODID + ":fau_plate"); fau_legs = new ArmorDigamma(aMatFau, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).setUnlocalizedName("fau_legs").setTextureName(RefStrings.MODID + ":fau_legs"); fau_boots = new ArmorDigamma(aMatFau, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).setUnlocalizedName("fau_boots").setTextureName(RefStrings.MODID + ":fau_boots"); @@ -4574,6 +4582,7 @@ public class ModItems { GameRegistry.registerItem(powder_dineutronium, powder_dineutronium.getUnlocalizedName()); GameRegistry.registerItem(redstone_depleted, redstone_depleted.getUnlocalizedName()); GameRegistry.registerItem(dust, dust.getUnlocalizedName()); + GameRegistry.registerItem(fallout, fallout.getUnlocalizedName()); GameRegistry.registerItem(powder_steel_tiny, powder_steel_tiny.getUnlocalizedName()); GameRegistry.registerItem(powder_lithium_tiny, powder_lithium_tiny.getUnlocalizedName()); GameRegistry.registerItem(powder_neodymium_tiny, powder_neodymium_tiny.getUnlocalizedName()); @@ -6189,6 +6198,7 @@ public class ModItems { GameRegistry.registerItem(bathwater, bathwater.getUnlocalizedName()); GameRegistry.registerItem(bathwater_mk2, bathwater_mk2.getUnlocalizedName()); GameRegistry.registerItem(spider_milk, spider_milk.getUnlocalizedName()); + GameRegistry.registerItem(ink, ink.getUnlocalizedName()); GameRegistry.registerItem(heart_piece, heart_piece.getUnlocalizedName()); GameRegistry.registerItem(heart_container, heart_container.getUnlocalizedName()); GameRegistry.registerItem(heart_booster, heart_booster.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/armor/ArmorFSB.java b/src/main/java/com/hbm/items/armor/ArmorFSB.java index 172e88c78..166ecc014 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSB.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSB.java @@ -25,7 +25,6 @@ import net.minecraft.client.resources.I18n; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; diff --git a/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java b/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java index c23e22600..41bda725e 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java @@ -130,6 +130,8 @@ public class ArmorFSBPowered extends ArmorFSB implements IBatteryItem { public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack) { + super.onArmorTick(world, player, itemStack); + if(this.drain > 0 && ArmorFSB.hasFSBArmor(player) && !player.capabilities.isCreativeMode) { this.dischargeBattery(itemStack, drain); } diff --git a/src/main/java/com/hbm/items/armor/ItemModInk.java b/src/main/java/com/hbm/items/armor/ItemModInk.java new file mode 100644 index 000000000..f8604c8f2 --- /dev/null +++ b/src/main/java/com/hbm/items/armor/ItemModInk.java @@ -0,0 +1,48 @@ +package com.hbm.items.armor; + +import java.util.List; + +import com.hbm.handler.ArmorModHandler; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraftforge.event.entity.living.LivingHurtEvent; + +public class ItemModInk extends ItemArmorMod { + + public ItemModInk() { + super(ArmorModHandler.extra, true, true, true, true); + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + + list.add(EnumChatFormatting.LIGHT_PURPLE + "10% chance to nullify damage"); + list.add(EnumChatFormatting.LIGHT_PURPLE + "Flowers!"); + list.add(""); + super.addInformation(itemstack, player, list, bool); + } + + @Override + public void addDesc(List list, ItemStack stack, ItemStack armor) { + list.add(EnumChatFormatting.LIGHT_PURPLE + " " + stack.getDisplayName() + " (10% chance to nullify damage)"); + } + + @Override + public void modDamage(LivingHurtEvent event, ItemStack armor) { + + if(event.entity.worldObj.rand.nextInt(10) == 0) { + event.ammount = 0; + + if(!event.entity.worldObj.isRemote) { + + if(event.entity.worldObj.rand.nextInt(10) == 0) + event.entity.entityDropItem(new ItemStack(Blocks.yellow_flower), 1.0F); + + event.entity.entityDropItem(new ItemStack(Blocks.red_flower, 1, event.entity.worldObj.rand.nextInt(9)), 1.0F); + } + } + } +} diff --git a/src/main/java/com/hbm/items/special/ItemSyringe.java b/src/main/java/com/hbm/items/special/ItemSyringe.java index 4eea86d1f..4467986be 100644 --- a/src/main/java/com/hbm/items/special/ItemSyringe.java +++ b/src/main/java/com/hbm/items/special/ItemSyringe.java @@ -3,9 +3,9 @@ package com.hbm.items.special; import java.util.List; import java.util.Random; -import com.hbm.handler.FluidTypeHandler.FluidType; +import com.hbm.handler.ArmorModHandler; +import com.hbm.interfaces.IPartiallyFillable; import com.hbm.items.ModItems; -import com.hbm.items.armor.JetpackBase; import com.hbm.items.weapon.ItemGunBase; import com.hbm.lib.ModDamageSource; import com.hbm.potion.HbmPotion; @@ -16,578 +16,495 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; import net.minecraft.item.Item; +import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.world.World; public class ItemSyringe extends Item { - + Random rand = new Random(); @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - - if(this == ModItems.syringe_antidote) - { - if (!world.isRemote) - { - player.clearActivePotions(); - - stack.stackSize--; - world.playSoundAtEntity(player, "hbm:item.syringe", 1.0F, 1.0F); - if (stack.stackSize <= 0) - { - return new ItemStack(ModItems.syringe_empty); - } + if(this == ModItems.syringe_antidote) { + if(!world.isRemote) { + player.clearActivePotions(); - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_empty))) - { - player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_empty, 1, 0), false); - } - } + stack.stackSize--; + world.playSoundAtEntity(player, "hbm:item.syringe", 1.0F, 1.0F); + + if(stack.stackSize <= 0) { + return new ItemStack(ModItems.syringe_empty); + } + + if(!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_empty))) { + player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_empty, 1, 0), false); + } + } } - - if(this == ModItems.syringe_awesome) - { - if (!world.isRemote) - { - player.addPotionEffect(new PotionEffect(Potion.regeneration.id, 50 * 20, 9)); - player.addPotionEffect(new PotionEffect(Potion.resistance.id, 50 * 20, 9)); - player.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 50 * 20, 0)); - player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 50 * 20, 24)); - player.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 50 * 20, 9)); - player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 50 * 20, 6)); - player.addPotionEffect(new PotionEffect(Potion.jump.id, 50 * 20, 9)); - player.addPotionEffect(new PotionEffect(Potion.field_76434_w.id, 50 * 20, 9)); - player.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 50 * 20, 4)); - player.addPotionEffect(new PotionEffect(Potion.confusion.id, 5 * 20, 4)); - player.addPotionEffect(new PotionEffect(HbmPotion.radx.id, 50 * 20, 9)); - - stack.stackSize--; - world.playSoundAtEntity(player, "hbm:item.syringe", 1.0F, 1.0F); - if (stack.stackSize <= 0) - { - return new ItemStack(ModItems.syringe_empty); - } + if(this == ModItems.syringe_awesome) { + if(!world.isRemote) { + player.addPotionEffect(new PotionEffect(Potion.regeneration.id, 50 * 20, 9)); + player.addPotionEffect(new PotionEffect(Potion.resistance.id, 50 * 20, 9)); + player.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 50 * 20, 0)); + player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 50 * 20, 24)); + player.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 50 * 20, 9)); + player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 50 * 20, 6)); + player.addPotionEffect(new PotionEffect(Potion.jump.id, 50 * 20, 9)); + player.addPotionEffect(new PotionEffect(Potion.field_76434_w.id, 50 * 20, 9)); + player.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 50 * 20, 4)); + player.addPotionEffect(new PotionEffect(Potion.confusion.id, 5 * 20, 4)); + player.addPotionEffect(new PotionEffect(HbmPotion.radx.id, 50 * 20, 9)); - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_empty))) - { - player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_empty, 1, 0), false); - } - } + stack.stackSize--; + world.playSoundAtEntity(player, "hbm:item.syringe", 1.0F, 1.0F); + + if(stack.stackSize <= 0) { + return new ItemStack(ModItems.syringe_empty); + } + + if(!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_empty))) { + player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_empty, 1, 0), false); + } + } } - - if(this == ModItems.syringe_poison) - { - if (!world.isRemote) - { - if(rand.nextInt(2) == 0) - player.attackEntityFrom(ModDamageSource.euthanizedSelf, 30); - else - player.attackEntityFrom(ModDamageSource.euthanizedSelf2, 30); - - stack.stackSize--; - world.playSoundAtEntity(player, "hbm:item.syringe", 1.0F, 1.0F); - if (stack.stackSize <= 0) - { - return new ItemStack(ModItems.syringe_empty); - } + if(this == ModItems.syringe_poison) { + if(!world.isRemote) { + if(rand.nextInt(2) == 0) + player.attackEntityFrom(ModDamageSource.euthanizedSelf, 30); + else + player.attackEntityFrom(ModDamageSource.euthanizedSelf2, 30); - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_empty))) - { - player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_empty, 1, 0), false); - } - } - } - - if(this == ModItems.syringe_metal_stimpak) - { - if (!world.isRemote) - { - player.heal(5); - - stack.stackSize--; - world.playSoundAtEntity(player, "hbm:item.syringe", 1.0F, 1.0F); + stack.stackSize--; + world.playSoundAtEntity(player, "hbm:item.syringe", 1.0F, 1.0F); - if (stack.stackSize <= 0) - { - return new ItemStack(ModItems.syringe_metal_empty); - } + if(stack.stackSize <= 0) { + return new ItemStack(ModItems.syringe_empty); + } - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_metal_empty))) - { - player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_metal_empty, 1, 0), false); - } - } + if(!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_empty))) { + player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_empty, 1, 0), false); + } + } } - - if(this == ModItems.syringe_metal_medx) - { - if (!world.isRemote) - { - player.addPotionEffect(new PotionEffect(Potion.resistance.id, 4 * 60 * 20, 2)); - - stack.stackSize--; - world.playSoundAtEntity(player, "hbm:item.syringe", 1.0F, 1.0F); - if (stack.stackSize <= 0) - { - return new ItemStack(ModItems.syringe_metal_empty); - } + if(this == ModItems.syringe_metal_stimpak) { + if(!world.isRemote) { + player.heal(5); - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_metal_empty))) - { - player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_metal_empty, 1, 0), false); - } - } - } - - if(this == ModItems.syringe_metal_psycho) - { - if (!world.isRemote) - { - player.addPotionEffect(new PotionEffect(Potion.resistance.id, 2 * 60 * 20, 0)); - player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 2 * 60 * 20, 0)); - - stack.stackSize--; - world.playSoundAtEntity(player, "hbm:item.syringe", 1.0F, 1.0F); + stack.stackSize--; + world.playSoundAtEntity(player, "hbm:item.syringe", 1.0F, 1.0F); - if (stack.stackSize <= 0) - { - return new ItemStack(ModItems.syringe_metal_empty); - } + if(stack.stackSize <= 0) { + return new ItemStack(ModItems.syringe_metal_empty); + } - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_metal_empty))) - { - player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_metal_empty, 1, 0), false); - } - } + if(!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_metal_empty))) { + player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_metal_empty, 1, 0), false); + } + } } - - if(this == ModItems.syringe_metal_super) - { - if (!world.isRemote) - { - player.heal(25); - player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 10 * 20, 0)); - - stack.stackSize--; - world.playSoundAtEntity(player, "hbm:item.syringe", 1.0F, 1.0F); - if (stack.stackSize <= 0) - { - return new ItemStack(ModItems.syringe_metal_empty); - } + if(this == ModItems.syringe_metal_medx) { + if(!world.isRemote) { + player.addPotionEffect(new PotionEffect(Potion.resistance.id, 4 * 60 * 20, 2)); - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_metal_empty))) - { - player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_metal_empty, 1, 0), false); - } - } - } - - if(this == ModItems.med_bag) - { - if (!world.isRemote) - { - player.setHealth(player.getMaxHealth()); - - player.removePotionEffect(Potion.blindness.id); - player.removePotionEffect(Potion.confusion.id); - player.removePotionEffect(Potion.digSlowdown.id); - player.removePotionEffect(Potion.hunger.id); - player.removePotionEffect(Potion.moveSlowdown.id); - player.removePotionEffect(Potion.poison.id); - player.removePotionEffect(Potion.weakness.id); - player.removePotionEffect(Potion.wither.id); - player.removePotionEffect(HbmPotion.radiation.id); - - stack.stackSize--; - } - } - - if(this == ModItems.radaway) - { - if (!world.isRemote) - { - player.addPotionEffect(new PotionEffect(HbmPotion.radaway.id, 14, 9)); - - stack.stackSize--; - world.playSoundAtEntity(player, "hbm:item.radaway", 1.0F, 1.0F); - } - } - - if(this == ModItems.radaway_strong) - { - if (!world.isRemote) - { - int duration = 35; - int level = 9; - - if(!player.isPotionActive(HbmPotion.radaway)) { - player.addPotionEffect(new PotionEffect(HbmPotion.radaway.id, duration, level)); - } else { - - int d = player.getActivePotionEffect(HbmPotion.radaway).getDuration() + duration; - player.addPotionEffect(new PotionEffect(HbmPotion.radaway.id, d, level)); - } - - stack.stackSize--; - world.playSoundAtEntity(player, "hbm:item.radaway", 1.0F, 1.0F); - } - } - - if(this == ModItems.radaway_flush) - { - if (!world.isRemote) - { - player.addPotionEffect(new PotionEffect(HbmPotion.radaway.id, 50, 19)); - - stack.stackSize--; - world.playSoundAtEntity(player, "hbm:item.radaway", 1.0F, 1.0F); - } - } - - if(this == ModItems.syringe_taint) - { - if (!world.isRemote) - { - player.addPotionEffect(new PotionEffect(HbmPotion.taint.id, 60 * 20, 0)); - player.addPotionEffect(new PotionEffect(Potion.confusion.id, 5 * 20, 0)); - - stack.stackSize--; - world.playSoundAtEntity(player, "hbm:item.syringe", 1.0F, 1.0F); - } + stack.stackSize--; + world.playSoundAtEntity(player, "hbm:item.syringe", 1.0F, 1.0F); - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_metal_empty))) - { - player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_metal_empty, 1, 0), false); - } + if(stack.stackSize <= 0) { + return new ItemStack(ModItems.syringe_metal_empty); + } - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.bottle2_empty))) - { - player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.bottle2_empty, 1, 0), false); - } + if(!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_metal_empty))) { + player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_metal_empty, 1, 0), false); + } + } } - - if(this == ModItems.gas_mask_filter && player.inventory.armorInventory[3] != null && - (player.inventory.armorInventory[3].getItem() == ModItems.gas_mask || player.inventory.armorInventory[3].getItem() == ModItems.gas_mask_m65)) - { - if (!world.isRemote) - { - if(player.inventory.armorInventory[3].getItemDamage() == 0) - return stack; - - player.inventory.armorInventory[3].setItemDamage(0); - world.playSoundAtEntity(player, "hbm:item.gasmaskScrew", 1.0F, 1.0F); - stack.stackSize--; - } - } - - if(this == ModItems.jetpack_tank && player.inventory.armorInventory[2] != null && player.inventory.armorInventory[2].getItem() instanceof JetpackBase) { - if (!world.isRemote) - { - ItemStack jetpack = player.inventory.armorInventory[2]; - JetpackBase jetItem = (JetpackBase) jetpack.getItem(); - - if(jetItem.fuel != FluidType.KEROSENE) - return stack; - - int fill = JetpackBase.getFuel(jetpack) + 1000; + if(this == ModItems.syringe_metal_psycho) { + if(!world.isRemote) { + player.addPotionEffect(new PotionEffect(Potion.resistance.id, 2 * 60 * 20, 0)); + player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 2 * 60 * 20, 0)); - if(fill > jetItem.maxFuel) - fill = jetItem.maxFuel; - - if(JetpackBase.getFuel(jetpack) == fill) - return stack; - - JetpackBase.setFuel(jetpack, fill); - world.playSoundAtEntity(player, "hbm:item.jetpackTank", 1.0F, 1.0F); - - stack.stackSize--; - } + stack.stackSize--; + world.playSoundAtEntity(player, "hbm:item.syringe", 1.0F, 1.0F); + + if(stack.stackSize <= 0) { + return new ItemStack(ModItems.syringe_metal_empty); + } + + if(!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_metal_empty))) { + player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_metal_empty, 1, 0), false); + } + } } - - if(this == ModItems.gun_kit_1 || this == ModItems.gun_kit_2) - { - if (!world.isRemote) - { - float repair = 0; - - if(this == ModItems.gun_kit_1) { - repair = 0.1F; - world.playSoundAtEntity(player, "hbm:item.spray", 1.0F, 1.0F); - } - if(this == ModItems.gun_kit_2) { - repair = 0.5F; - world.playSoundAtEntity(player, "hbm:item.repair", 1.0F, 1.0F); - } - - for(int i = 0; i < 9; i++) { - - ItemStack gun = player.inventory.mainInventory[i]; - - if(gun != null && gun.getItem() instanceof ItemGunBase) { - - int full = ((ItemGunBase)gun.getItem()).mainConfig.durability; - int wear = ItemGunBase.getItemWear(gun); - - int nWear = (int) (wear - (full * repair)); - - if(nWear < 0) - nWear = 0; - - ItemGunBase.setItemWear(gun, nWear); - } - } - - stack.stackSize--; - } + + if(this == ModItems.syringe_metal_super) { + if(!world.isRemote) { + player.heal(25); + player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 10 * 20, 0)); + + stack.stackSize--; + world.playSoundAtEntity(player, "hbm:item.syringe", 1.0F, 1.0F); + + if(stack.stackSize <= 0) { + return new ItemStack(ModItems.syringe_metal_empty); + } + + if(!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_metal_empty))) { + player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_metal_empty, 1, 0), false); + } + } } - - if(this == ModItems.cbt_device) - { - if (!world.isRemote) - { - player.addPotionEffect(new PotionEffect(HbmPotion.bang.id, 30, 0)); - - stack.stackSize--; - world.playSoundAtEntity(player, "hbm:item.vice", 1.0F, 1.0F); - } + + if(this == ModItems.med_bag) { + if(!world.isRemote) { + player.setHealth(player.getMaxHealth()); + + player.removePotionEffect(Potion.blindness.id); + player.removePotionEffect(Potion.confusion.id); + player.removePotionEffect(Potion.digSlowdown.id); + player.removePotionEffect(Potion.hunger.id); + player.removePotionEffect(Potion.moveSlowdown.id); + player.removePotionEffect(Potion.poison.id); + player.removePotionEffect(Potion.weakness.id); + player.removePotionEffect(Potion.wither.id); + player.removePotionEffect(HbmPotion.radiation.id); + + stack.stackSize--; + } } - + + if(this == ModItems.radaway) { + if(!world.isRemote) { + player.addPotionEffect(new PotionEffect(HbmPotion.radaway.id, 14, 9)); + + stack.stackSize--; + world.playSoundAtEntity(player, "hbm:item.radaway", 1.0F, 1.0F); + } + } + + if(this == ModItems.radaway_strong) { + if(!world.isRemote) { + int duration = 35; + int level = 9; + + if(!player.isPotionActive(HbmPotion.radaway)) { + player.addPotionEffect(new PotionEffect(HbmPotion.radaway.id, duration, level)); + } else { + + int d = player.getActivePotionEffect(HbmPotion.radaway).getDuration() + duration; + player.addPotionEffect(new PotionEffect(HbmPotion.radaway.id, d, level)); + } + + stack.stackSize--; + world.playSoundAtEntity(player, "hbm:item.radaway", 1.0F, 1.0F); + } + } + + if(this == ModItems.radaway_flush) { + if(!world.isRemote) { + player.addPotionEffect(new PotionEffect(HbmPotion.radaway.id, 50, 19)); + + stack.stackSize--; + world.playSoundAtEntity(player, "hbm:item.radaway", 1.0F, 1.0F); + } + } + + if(this == ModItems.syringe_taint) { + if(!world.isRemote) { + player.addPotionEffect(new PotionEffect(HbmPotion.taint.id, 60 * 20, 0)); + player.addPotionEffect(new PotionEffect(Potion.confusion.id, 5 * 20, 0)); + + stack.stackSize--; + world.playSoundAtEntity(player, "hbm:item.syringe", 1.0F, 1.0F); + } + + if(!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_metal_empty))) { + player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_metal_empty, 1, 0), false); + } + + if(!player.inventory.addItemStackToInventory(new ItemStack(ModItems.bottle2_empty))) { + player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.bottle2_empty, 1, 0), false); + } + } + + if(this == ModItems.gas_mask_filter && player.inventory.armorInventory[3] != null && (player.inventory.armorInventory[3].getItem() == ModItems.gas_mask || player.inventory.armorInventory[3].getItem() == ModItems.gas_mask_m65)) { + if(!world.isRemote) { + if(player.inventory.armorInventory[3].getItemDamage() == 0) + return stack; + + player.inventory.armorInventory[3].setItemDamage(0); + + world.playSoundAtEntity(player, "hbm:item.gasmaskScrew", 1.0F, 1.0F); + stack.stackSize--; + } + } + + if(this == ModItems.jetpack_tank && player.inventory.armorInventory[2] != null) { + + if(!world.isRemote) { + + ItemStack jetpack = player.inventory.armorInventory[2]; + + if(jetpack == null) + return stack; + + if(jetpack.getItem() instanceof ItemArmor && ArmorModHandler.hasMods(jetpack)) { + jetpack = ArmorModHandler.pryMods(jetpack)[ArmorModHandler.plate_only]; + + if(jetpack == null || !(jetpack.getItem() instanceof IPartiallyFillable)) + return stack; + } + + IPartiallyFillable fillable = (IPartiallyFillable) jetpack.getItem(); + int fill = Math.min(fillable.getFill(jetpack) + 1000, fillable.getMaxFill(jetpack)); + fillable.setFill(jetpack, fill); + + if(jetpack.getItem() != player.inventory.armorInventory[2].getItem()) + ArmorModHandler.applyMod(player.inventory.armorInventory[2], jetpack); + + world.playSoundAtEntity(player, "hbm:item.jetpackTank", 1.0F, 1.0F); + + stack.stackSize--; + } + } + + if(this == ModItems.gun_kit_1 || this == ModItems.gun_kit_2) { + if(!world.isRemote) { + float repair = 0; + + if(this == ModItems.gun_kit_1) { + repair = 0.1F; + world.playSoundAtEntity(player, "hbm:item.spray", 1.0F, 1.0F); + } + if(this == ModItems.gun_kit_2) { + repair = 0.5F; + world.playSoundAtEntity(player, "hbm:item.repair", 1.0F, 1.0F); + } + + for(int i = 0; i < 9; i++) { + + ItemStack gun = player.inventory.mainInventory[i]; + + if(gun != null && gun.getItem() instanceof ItemGunBase) { + + int full = ((ItemGunBase) gun.getItem()).mainConfig.durability; + int wear = ItemGunBase.getItemWear(gun); + + int nWear = (int) (wear - (full * repair)); + + if(nWear < 0) + nWear = 0; + + ItemGunBase.setItemWear(gun, nWear); + } + } + + stack.stackSize--; + } + } + + if(this == ModItems.cbt_device) { + if(!world.isRemote) { + player.addPotionEffect(new PotionEffect(HbmPotion.bang.id, 30, 0)); + + stack.stackSize--; + world.playSoundAtEntity(player, "hbm:item.vice", 1.0F, 1.0F); + } + } + return stack; } - @Override - @SideOnly(Side.CLIENT) - public boolean hasEffect(ItemStack p_77636_1_) - { - if(this == ModItems.syringe_awesome) - { - return true; - } - - return false; - } - - @Override - public EnumRarity getRarity(ItemStack p_77613_1_) - { - if(this == ModItems.syringe_awesome) - { - return EnumRarity.uncommon; - } - if(this == ModItems.euphemium_stopper) - { - return EnumRarity.epic; - } - - return EnumRarity.common; - } - - @Override - public boolean hitEntity(ItemStack stack, EntityLivingBase entity, EntityLivingBase entityPlayer) - { - World world = entity.worldObj; - - if(this == ModItems.syringe_antidote) - { - if (!world.isRemote) - { - entity.clearActivePotions(); - - stack.stackSize--; - world.playSoundAtEntity(entity, "hbm:item.syringe", 1.0F, 1.0F); - - if(entityPlayer instanceof EntityPlayer) - { - EntityPlayer player = (EntityPlayer)entityPlayer; - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_empty))) - { - player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_empty, 1, 0), false); - } - } - } - } - - if(this == ModItems.syringe_awesome) - { - if (!world.isRemote) - { - entity.addPotionEffect(new PotionEffect(Potion.regeneration.id, 50 * 20, 9)); - entity.addPotionEffect(new PotionEffect(Potion.resistance.id, 50 * 20, 9)); - entity.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 50 * 20, 0)); - entity.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 50 * 20, 24)); - entity.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 50 * 20, 9)); - entity.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 50 * 20, 6)); - entity.addPotionEffect(new PotionEffect(Potion.jump.id, 50 * 20, 9)); - entity.addPotionEffect(new PotionEffect(Potion.field_76434_w.id, 50 * 20, 9)); - entity.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 50 * 20, 4)); - entity.addPotionEffect(new PotionEffect(Potion.confusion.id, 5 * 20, 4)); - - stack.stackSize--; - world.playSoundAtEntity(entity, "hbm:item.syringe", 1.0F, 1.0F); - - if(entityPlayer instanceof EntityPlayer) - { - EntityPlayer player = (EntityPlayer)entityPlayer; - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_empty))) - { - player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_empty, 1, 0), false); - } - } - } - } - - if(this == ModItems.syringe_poison) - { - if (!world.isRemote) - { - entity.attackEntityFrom(ModDamageSource.euthanized(entityPlayer, entityPlayer), 30); - - stack.stackSize--; - world.playSoundAtEntity(entity, "hbm:item.syringe", 1.0F, 1.0F); - - if(entityPlayer instanceof EntityPlayer) - { - EntityPlayer player = (EntityPlayer)entityPlayer; - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_empty))) - { - player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_empty, 1, 0), false); - } - } - } - } - - if(this == ModItems.syringe_metal_stimpak) - { - if (!world.isRemote) - { - entity.heal(5); - - stack.stackSize--; - world.playSoundAtEntity(entity, "hbm:item.syringe", 1.0F, 1.0F); - - if(entityPlayer instanceof EntityPlayer) - { - EntityPlayer player = (EntityPlayer)entityPlayer; - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_metal_empty))) - { - player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_metal_empty, 1, 0), false); - } - } - } - } - - if(this == ModItems.syringe_metal_medx) - { - if (!world.isRemote) - { - entity.addPotionEffect(new PotionEffect(Potion.resistance.id, 4 * 60 * 20, 2)); - - stack.stackSize--; - world.playSoundAtEntity(entity, "hbm:item.syringe", 1.0F, 1.0F); - - if(entityPlayer instanceof EntityPlayer) - { - EntityPlayer player = (EntityPlayer)entityPlayer; - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_metal_empty))) - { - player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_metal_empty, 1, 0), false); - } - } - } - } - - if(this == ModItems.syringe_metal_psycho) - { - if (!world.isRemote) - { - entity.addPotionEffect(new PotionEffect(Potion.resistance.id, 2 * 60 * 20, 0)); - entity.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 2 * 60 * 20, 0)); - - stack.stackSize--; - world.playSoundAtEntity(entity, "hbm:item.syringe", 1.0F, 1.0F); - - if(entityPlayer instanceof EntityPlayer) - { - EntityPlayer player = (EntityPlayer)entityPlayer; - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_metal_empty))) - { - player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_metal_empty, 1, 0), false); - } - } - } - } - - if(this == ModItems.syringe_metal_super) - { - if (!world.isRemote) - { - entity.heal(25); - entity.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 10 * 20, 0)); - - stack.stackSize--; - world.playSoundAtEntity(entity, "hbm:item.syringe", 1.0F, 1.0F); - - if(entityPlayer instanceof EntityPlayer) - { - EntityPlayer player = (EntityPlayer)entityPlayer; - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_metal_empty))) - { - player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_metal_empty, 1, 0), false); - } - } - } - } - - if(this == ModItems.syringe_taint) - { - if (!world.isRemote) - { - entity.addPotionEffect(new PotionEffect(HbmPotion.taint.id, 60 * 20, 0)); - entity.addPotionEffect(new PotionEffect(Potion.confusion.id, 5 * 20, 0)); - - stack.stackSize--; - world.playSoundAtEntity(entity, "hbm:item.syringe", 1.0F, 1.0F); - - if(entityPlayer instanceof EntityPlayer) - { - EntityPlayer player = (EntityPlayer)entityPlayer; - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_metal_empty))) - { - player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_metal_empty, 1, 0), false); - } - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.bottle2_empty))) - { - player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.bottle2_empty, 1, 0), false); - } - } - } - } - - if(this == ModItems.euphemium_stopper) - { - if (!world.isRemote) - { - entity.addPotionEffect(new PotionEffect(Potion.weakness.id, 30 * 20, 9)); - entity.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 30 * 20, 9)); - entity.addPotionEffect(new PotionEffect(Potion.digSlowdown.id, 30 * 20, 9)); - } - } - - return false; - } - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) - { + @SideOnly(Side.CLIENT) + public boolean hasEffect(ItemStack p_77636_1_) { + if(this == ModItems.syringe_awesome) { + return true; + } + + return false; + } + + @Override + public EnumRarity getRarity(ItemStack p_77613_1_) { + if(this == ModItems.syringe_awesome) { + return EnumRarity.uncommon; + } + if(this == ModItems.euphemium_stopper) { + return EnumRarity.epic; + } + + return EnumRarity.common; + } + + @Override + public boolean hitEntity(ItemStack stack, EntityLivingBase entity, EntityLivingBase entityPlayer) { + World world = entity.worldObj; + + if(this == ModItems.syringe_antidote) { + if(!world.isRemote) { + entity.clearActivePotions(); + + stack.stackSize--; + world.playSoundAtEntity(entity, "hbm:item.syringe", 1.0F, 1.0F); + + if(entityPlayer instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) entityPlayer; + if(!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_empty))) { + player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_empty, 1, 0), false); + } + } + } + } + + if(this == ModItems.syringe_awesome) { + if(!world.isRemote) { + entity.addPotionEffect(new PotionEffect(Potion.regeneration.id, 50 * 20, 9)); + entity.addPotionEffect(new PotionEffect(Potion.resistance.id, 50 * 20, 9)); + entity.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 50 * 20, 0)); + entity.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 50 * 20, 24)); + entity.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 50 * 20, 9)); + entity.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 50 * 20, 6)); + entity.addPotionEffect(new PotionEffect(Potion.jump.id, 50 * 20, 9)); + entity.addPotionEffect(new PotionEffect(Potion.field_76434_w.id, 50 * 20, 9)); + entity.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 50 * 20, 4)); + entity.addPotionEffect(new PotionEffect(Potion.confusion.id, 5 * 20, 4)); + + stack.stackSize--; + world.playSoundAtEntity(entity, "hbm:item.syringe", 1.0F, 1.0F); + + if(entityPlayer instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) entityPlayer; + if(!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_empty))) { + player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_empty, 1, 0), false); + } + } + } + } + + if(this == ModItems.syringe_poison) { + if(!world.isRemote) { + entity.attackEntityFrom(ModDamageSource.euthanized(entityPlayer, entityPlayer), 30); + + stack.stackSize--; + world.playSoundAtEntity(entity, "hbm:item.syringe", 1.0F, 1.0F); + + if(entityPlayer instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) entityPlayer; + if(!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_empty))) { + player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_empty, 1, 0), false); + } + } + } + } + + if(this == ModItems.syringe_metal_stimpak) { + if(!world.isRemote) { + entity.heal(5); + + stack.stackSize--; + world.playSoundAtEntity(entity, "hbm:item.syringe", 1.0F, 1.0F); + + if(entityPlayer instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) entityPlayer; + if(!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_metal_empty))) { + player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_metal_empty, 1, 0), false); + } + } + } + } + + if(this == ModItems.syringe_metal_medx) { + if(!world.isRemote) { + entity.addPotionEffect(new PotionEffect(Potion.resistance.id, 4 * 60 * 20, 2)); + + stack.stackSize--; + world.playSoundAtEntity(entity, "hbm:item.syringe", 1.0F, 1.0F); + + if(entityPlayer instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) entityPlayer; + if(!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_metal_empty))) { + player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_metal_empty, 1, 0), false); + } + } + } + } + + if(this == ModItems.syringe_metal_psycho) { + if(!world.isRemote) { + entity.addPotionEffect(new PotionEffect(Potion.resistance.id, 2 * 60 * 20, 0)); + entity.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 2 * 60 * 20, 0)); + + stack.stackSize--; + world.playSoundAtEntity(entity, "hbm:item.syringe", 1.0F, 1.0F); + + if(entityPlayer instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) entityPlayer; + if(!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_metal_empty))) { + player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_metal_empty, 1, 0), false); + } + } + } + } + + if(this == ModItems.syringe_metal_super) { + if(!world.isRemote) { + entity.heal(25); + entity.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 10 * 20, 0)); + + stack.stackSize--; + world.playSoundAtEntity(entity, "hbm:item.syringe", 1.0F, 1.0F); + + if(entityPlayer instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) entityPlayer; + if(!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_metal_empty))) { + player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_metal_empty, 1, 0), false); + } + } + } + } + + if(this == ModItems.syringe_taint) { + if(!world.isRemote) { + entity.addPotionEffect(new PotionEffect(HbmPotion.taint.id, 60 * 20, 0)); + entity.addPotionEffect(new PotionEffect(Potion.confusion.id, 5 * 20, 0)); + + stack.stackSize--; + world.playSoundAtEntity(entity, "hbm:item.syringe", 1.0F, 1.0F); + + if(entityPlayer instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) entityPlayer; + if(!player.inventory.addItemStackToInventory(new ItemStack(ModItems.syringe_metal_empty))) { + player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.syringe_metal_empty, 1, 0), false); + } + if(!player.inventory.addItemStackToInventory(new ItemStack(ModItems.bottle2_empty))) { + player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.bottle2_empty, 1, 0), false); + } + } + } + } + + if(this == ModItems.euphemium_stopper) { + if(!world.isRemote) { + entity.addPotionEffect(new PotionEffect(Potion.weakness.id, 30 * 20, 9)); + entity.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 30 * 20, 9)); + entity.addPotionEffect(new PotionEffect(Potion.digSlowdown.id, 30 * 20, 9)); + } + } + + return false; + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { if(this == ModItems.syringe_antidote) { list.add("Removes all potion effects"); } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 68d3ae7c2..ae208adc3 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 (3745)"; + public static final String VERSION = "1.0.27 BETA (3766)"; //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 813bf18da..da590c660 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -1072,6 +1072,26 @@ public class ClientProxy extends ServerProxy { } } + if("vomit".equals(type)) { + + Entity e = world.getEntityByID(data.getInteger("entity")); + + if(e instanceof EntityLivingBase) { + + double ix = e.posX; + double iy = e.posY - e.getYOffset() + e.getEyeHeight() + 1; + double iz = e.posZ; + + Vec3 vec = e.getLookVec(); + + for(int i = 0; i < 25; i++) { + EntityFX fx = new net.minecraft.client.particle.EntityBlockDustFX(world, ix, iy, iz, (vec.xCoord + rand.nextGaussian() * 0.2) * 0.2, (vec.yCoord + rand.nextGaussian() * 0.2) * 0.2, (vec.zCoord + rand.nextGaussian() * 0.2) * 0.2, Blocks.redstone_block, 0); + ReflectionHelper.setPrivateValue(EntityFX.class, fx, 150 + rand.nextInt(50), "particleMaxAge", "field_70547_e"); + Minecraft.getMinecraft().effectRenderer.addEffect(fx); + } + } + } + if("hadron".equals(type)) { Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleHadron(man, world, x, y, z)); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index da4b9a32d..d5cb6d914 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1052,6 +1052,10 @@ public class MainRegistry { HazmatRegistry.registerHazmat(ModItems.ajr_plate, 0.8F); HazmatRegistry.registerHazmat(ModItems.ajr_legs, 0.6F); HazmatRegistry.registerHazmat(ModItems.ajr_boots, 0.2F); + HazmatRegistry.registerHazmat(ModItems.ajro_helmet, 0.4F); + HazmatRegistry.registerHazmat(ModItems.ajro_plate, 0.8F); + HazmatRegistry.registerHazmat(ModItems.ajro_legs, 0.6F); + HazmatRegistry.registerHazmat(ModItems.ajro_boots, 0.2F); HazmatRegistry.registerHazmat(ModItems.bj_helmet, 0.4F); HazmatRegistry.registerHazmat(ModItems.bj_plate, 0.8F); @@ -1064,6 +1068,11 @@ public class MainRegistry { HazmatRegistry.registerHazmat(ModItems.hev_legs, 0.7F); HazmatRegistry.registerHazmat(ModItems.hev_boots, 0.3F); + HazmatRegistry.registerHazmat(ModItems.fau_helmet, 0.5F); + HazmatRegistry.registerHazmat(ModItems.fau_plate, 1.0F); + HazmatRegistry.registerHazmat(ModItems.fau_legs, 0.7F); + HazmatRegistry.registerHazmat(ModItems.fau_boots, 0.3F); + HazmatRegistry.registerHazmat(ModItems.paa_plate, 0.8F); HazmatRegistry.registerHazmat(ModItems.paa_legs, 0.6F); HazmatRegistry.registerHazmat(ModItems.paa_boots, 0.2F); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 3bd6ad391..85ddff0c1 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -18,6 +18,7 @@ import com.hbm.config.MobConfig; import com.hbm.config.WorldConfig; import com.hbm.entity.missile.EntityMissileBaseAdvanced; import com.hbm.entity.missile.EntityMissileCustom; +import com.hbm.entity.mob.EntityCyberCrab; import com.hbm.entity.mob.EntityDuck; import com.hbm.entity.mob.EntityNuclearCreeper; import com.hbm.entity.mob.EntityQuackos; @@ -62,6 +63,7 @@ import net.minecraft.entity.monster.EntityCreeper; import net.minecraft.entity.monster.EntitySkeleton; import net.minecraft.entity.monster.EntitySpider; import net.minecraft.entity.monster.EntityZombie; +import net.minecraft.entity.passive.EntityAnimal; import net.minecraft.entity.passive.EntityCow; import net.minecraft.entity.passive.EntityMooshroom; import net.minecraft.entity.passive.EntityVillager; @@ -185,10 +187,20 @@ public class ModEventHandler event.entityLiving.dropItem(ModItems.spider_milk, 1); } + if(event.entityLiving instanceof EntityAnimal && event.entityLiving.getRNG().nextInt(5) == 0) { + + event.entityLiving.dropItem(ModItems.bandaid, 1); + } + if(event.entityLiving instanceof EntitySpider && event.entityLiving.getRNG().nextInt(1000) == 0) { event.entityLiving.dropItem(ModItems.heart_piece, 1); } + + if(event.entityLiving instanceof EntityCyberCrab && event.entityLiving.getRNG().nextInt(500) == 0) { + + event.entityLiving.dropItem(ModItems.wd40, 1); + } } } } @@ -707,6 +719,14 @@ public class ModEventHandler else e.player.inventoryContainer.detectAndSendChanges(); } + + if(!e.player.worldObj.isRemote && e.smelting.getItem() == ModItems.ingot_uranium && e.player.getRNG().nextInt(64) == 0) { + + if(!e.player.inventory.addItemStackToInventory(new ItemStack(ModItems.quartz_plutonium))) + e.player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.quartz_plutonium), false); + else + e.player.inventoryContainer.detectAndSendChanges(); + } } @SubscribeEvent diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 1601fb9a4..cbafd5fd1 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -181,7 +181,7 @@ public class ModEventHandlerClient { ItemStack stack = player.inventory.armorInventory[2]; float tot = (float) ((JetpackBase)stack.getItem()).getFuel(stack) / (float) ((JetpackBase)stack.getItem()).getMaxFill(stack); - top -= 3; + top -= 3; GL11.glDisable(GL11.GL_TEXTURE_2D); tess.startDrawingQuads(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDecon.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDecon.java index 32cc4d457..83ccc73c2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDecon.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDecon.java @@ -3,6 +3,7 @@ package com.hbm.tileentity.machine; import java.util.List; import com.hbm.extprop.HbmLivingProps; +import com.hbm.potion.HbmPotion; import net.minecraft.entity.EntityLivingBase; import net.minecraft.tileentity.TileEntity; @@ -20,6 +21,7 @@ public class TileEntityDecon extends TileEntity { if(!entities.isEmpty()) { for(EntityLivingBase e : entities) { HbmLivingProps.incrementRadiation(e, -0.5F); + e.removePotionEffect(HbmPotion.radiation.id); } } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java index c41262b49..7398b1acf 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java @@ -377,7 +377,8 @@ public class TileEntityMachineRadGen extends TileEntity implements ISidedInvento if(item == Item.getItemFromBlock(ModBlocks.block_yellowcake)) return 1000; if(item == Item.getItemFromBlock(ModBlocks.mush)) return 10; - if(item == Item.getItemFromBlock(ModBlocks.waste_earth)) return 25; + if(item == ModItems.fallout) return 25; + if(item == Item.getItemFromBlock(ModBlocks.block_fallout)) return 250; if(item == Item.getItemFromBlock(ModBlocks.waste_mycelium)) return 150; return 0; diff --git a/src/main/java/com/hbm/util/ContaminationUtil.java b/src/main/java/com/hbm/util/ContaminationUtil.java index 013b23b8b..9fcdde767 100644 --- a/src/main/java/com/hbm/util/ContaminationUtil.java +++ b/src/main/java/com/hbm/util/ContaminationUtil.java @@ -2,10 +2,10 @@ package com.hbm.util; import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.HazmatRegistry; -import com.hbm.interfaces.IRadiationImmune; import com.hbm.potion.HbmPotion; import com.hbm.saveddata.RadiationSavedData; +import api.hbm.entity.IRadiationImmune; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index 8c9559dc3..97ca10cb2 100755 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "modid": "hbm", "name": "Hbm's Nuclear Tech", "description": "A mod that adds weapons, nuclear themed stuff and machines", - "version":"1.0.27-3735", + "version":"1.0.27-3766", "mcversion": "1.7.10", "url": "", "updateUrl": "",