From 11d0946616afc68cd5d005f551543f60f02e6442 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 24 Jan 2021 19:52:54 +0100 Subject: [PATCH] all the parts --- src/main/java/assets/hbm/lang/de_DE.lang | 27 ++++- src/main/java/assets/hbm/lang/en_US.lang | 27 ++++- .../gui/machine/gui_armor_modifier.png | Bin 2919 -> 2888 bytes .../hbm/textures/items/armor_polish.png | Bin 0 -> 299 bytes .../hbm/textures/items/attachment_mask.png | Bin 0 -> 335 bytes .../hbm/textures/items/insert_steel.png | Bin 0 -> 251 bytes .../assets/hbm/textures/items/pads_rubber.png | Bin 0 -> 381 bytes .../assets/hbm/textures/items/pads_slime.png | Bin 0 -> 396 bytes .../assets/hbm/textures/items/pads_static.png | Bin 0 -> 401 bytes .../assets/hbm/textures/items/servo_set.png | Bin 0 -> 235 bytes .../hbm/textures/items/servo_set_desh.png | Bin 0 -> 256 bytes .../java/com/hbm/crafting/ArmorRecipes.java | 3 + .../com/hbm/crafting/ConsumableRecipes.java | 21 +++- .../java/com/hbm/crafting/WeaponRecipes.java | 1 + .../java/com/hbm/handler/ArmorModHandler.java | 2 +- .../java/com/hbm/handler/HazmatRegistry.java | 6 +- .../hbm/handler/guncfg/Gun12GaugeFactory.java | 7 +- .../com/hbm/inventory/AssemblerRecipes.java | 20 ++-- .../com/hbm/inventory/OreDictManager.java | 4 + .../container/ContainerArmorTable.java | 2 +- .../com/hbm/inventory/gui/GUIArmorTable.java | 5 +- src/main/java/com/hbm/items/ModItems.java | 47 ++++++++- .../com/hbm/items/armor/ItemArmorMod.java | 41 ++++++++ .../ItemModCladding.java} | 14 ++- .../com/hbm/items/armor/ItemModGasmask.java | 66 ++++++++++++ .../com/hbm/items/armor/ItemModInsert.java | 69 +++++++++++++ .../java/com/hbm/items/armor/ItemModPads.java | 70 +++++++++++++ .../com/hbm/items/armor/ItemModPolish.java | 38 +++++++ .../com/hbm/items/armor/ItemModServos.java | 93 +++++++++++++++++ .../java/com/hbm/items/tool/ItemWandD.java | 16 ++- src/main/java/com/hbm/main/ClientProxy.java | 5 + .../java/com/hbm/main/ModEventHandler.java | 43 ++++++-- .../com/hbm/main/ModEventHandlerClient.java | 28 +++++- .../java/com/hbm/particle/ParticleRift.java | 95 ++++++++++++++++++ src/main/java/com/hbm/util/ArmorUtil.java | 10 ++ 35 files changed, 706 insertions(+), 54 deletions(-) create mode 100644 src/main/java/assets/hbm/textures/items/armor_polish.png create mode 100644 src/main/java/assets/hbm/textures/items/attachment_mask.png create mode 100644 src/main/java/assets/hbm/textures/items/insert_steel.png create mode 100644 src/main/java/assets/hbm/textures/items/pads_rubber.png create mode 100644 src/main/java/assets/hbm/textures/items/pads_slime.png create mode 100644 src/main/java/assets/hbm/textures/items/pads_static.png create mode 100644 src/main/java/assets/hbm/textures/items/servo_set.png create mode 100644 src/main/java/assets/hbm/textures/items/servo_set_desh.png rename src/main/java/com/hbm/items/{special/ItemCladding.java => armor/ItemModCladding.java} (50%) create mode 100644 src/main/java/com/hbm/items/armor/ItemModGasmask.java create mode 100644 src/main/java/com/hbm/items/armor/ItemModInsert.java create mode 100644 src/main/java/com/hbm/items/armor/ItemModPads.java create mode 100644 src/main/java/com/hbm/items/armor/ItemModPolish.java create mode 100644 src/main/java/com/hbm/items/armor/ItemModServos.java create mode 100644 src/main/java/com/hbm/particle/ParticleRift.java diff --git a/src/main/java/assets/hbm/lang/de_DE.lang b/src/main/java/assets/hbm/lang/de_DE.lang index 29474eacd..53fd2f79a 100644 --- a/src/main/java/assets/hbm/lang/de_DE.lang +++ b/src/main/java/assets/hbm/lang/de_DE.lang @@ -146,6 +146,7 @@ container.amsBase=AMS-Basis [WIP] container.amsEmitter=AMS-Emitter [WIP] container.amsLimiter=AMS-Stabilisator [WIP] container.arcFurnace=Lichtbogenofen +container.armorTable=Rüstungsmodifikationstisch container.assembler=Fertigungsmaschine container.barrel=Fass container.battery=Energiespeicher @@ -381,10 +382,14 @@ info.template_out_p=Output: info.template_seconds=Sekunden info.template_time=Produktionszeit: -item.ajr_boots.name=AJR-Powerrüstungsstiefel -item.ajr_helmet.name=AJR-Powerrüstungshelm -item.ajr_legs.name=AJR-Powerrüstungsbeinschutz -item.ajr_plate.name=AJR-Powerrüstungsbrustpanzer +item.ajr_boots.name=Steel Ranger Powerrüstungsstiefel +item.ajr_helmet.name=Steel Ranger Powerrüstungshelm +item.ajr_legs.name=Steel Ranger Powerrüstungsbeinschutz +item.ajr_plate.name=Steel Ranger Powerrüstungsbrustpanzer +item.ajro_boots.name=AJR-Powerrüstungsstiefel +item.ajro_helmet.name=AJR-Powerrüstungshelm +item.ajro_legs.name=AJR-Powerrüstungsbeinschutz +item.ajro_plate.name=AJR-Powerrüstungsbrustpanzer item.alloy_axe.name=Legierungsaxt item.alloy_boots.name=Legierungsstiefel item.alloy_helmet.name=Legierungshelm @@ -556,6 +561,7 @@ item.apple_schrabidium.name=Schrabidiumapfel item.arc_electrode.name=Graphitelektrode item.arc_electrode_burnt.name=Geschmolzene Elektrode item.arc_electrode_desh.name=Desh-Elektrode +item.armor_polish.name=ShiningArmor™ Rüstungspolitur item.asbestos_boots.name=Hitzeschutzstiefel item.asbestos_cloth.name=Hitzeschutzanzugsstoff item.asbestos_helmet.name=Hitzeschutzhelm @@ -578,6 +584,7 @@ item.assembly_smg.name=9mm Patronensatz item.assembly_steel.name=Bleipatronensatz item.assembly_template.name=Fertigungsvorlage: item.assembly_uzi.name=.22 LR Patronensatz +item.attachment_mask.name=Anfügbare Gasmaske item.australium_iii.name=Mark III Lebensverlängerer item.australium_iv.name=Mark IV Lebensverlängerer item.australium_v.name=Mark V Lebensverlängerer @@ -1157,6 +1164,7 @@ item.gun_spark_ammo.name=Elektromagnetische Katusche item.gun_stinger.name=FIM-92 Stinger item.gun_stinger_ammo.name=Stinger-Rakete item.gun_super_shotgun.name=Super Shotgun +item.gun_supershotgun.name=Super Shotgun item.gun_thompson.name=Thompson Maschinenpistole item.gun_uboinik.name=Ubojnik item.gun_uboinik_ammo.name=12x70 Schrotmunition (LEGACY) @@ -1267,6 +1275,11 @@ item.ingot_uranium.name=Uranbarren item.ingot_uranium_fuel.name=Urankernbrennstoffbarren item.ingot_verticium.name=Verticiumbarren item.ingot_weidanium.name=Weidaniumbarren +item.insert_esapi.name=ESAPI-Einlage +item.insert_kevlar.name=Kevlar-Einlage +item.insert_sapi.name=SAPI-Einlage +item.insert_steel.name=Schwere Stahleinlage +item.insert_xsapi.name=XSAPI-Einlage item.jackt.name=Verdammt stylische Kugeljacke item.jackt2.name=Verdammt stylische Kugeljacke 2: Tokyo Drift item.jetpack_boost.name=Boosterrucksack @@ -1568,6 +1581,9 @@ item.padlock.name=Vorhängeschloss item.padlock_reinforced.name=Verstärktes Vorhängeschloss item.padlock_rusty.name=Rostiges Vorhängeschloss item.padlock_unbreakable.name=Unzerstörbares Vorhängeschloss +item.pads_rubber.name=Gummischuhsohlen +item.pads_slime.name=Schleimschuhsohlen +item.pads_static.name=Statische Schuhsolen item.pancake.name=Pfannkuchen aus Altmetall, Nägeln und Edelsteinpulver item.part_beryllium.name=Berylliumstaubkiste item.part_carbon.name=Kohlenstoffstaubkiste @@ -1894,6 +1910,8 @@ item.security_plate.name=Sicherheitsbrustpanzer item.seg_10.name=Größe 10 Bindeglied item.seg_15.name=Größe 15 Bindeglied item.seg_20.name=Größe 20 Bindeglied +item.servo_set.name=Servo-Set +item.servo_set_desh.name=Deshservo-Set item.shimmer_axe.name=Shimmer Axe item.shimmer_axe_head.name=Schwerer Axtkopf item.shimmer_handle.name=Verstärketer Polymergriff @@ -2368,6 +2386,7 @@ tile.lox_barrel.name=LOX-Fass tile.machine_amgen.name=Umgebungsstrahlungs-Generator tile.machine_arc_furnace_off.name=Lichtbogenofen tile.machine_arc_furnace_on.name=Lichtbogenofen +tile.machine_armor_table.name=Rüstungsmodifikationstisch tile.machine_assembler.name=Fertigungsmaschine tile.machine_battery.name=Energiespeicherblock tile.machine_battery_potato.name=Kartoffelbatterieblock diff --git a/src/main/java/assets/hbm/lang/en_US.lang b/src/main/java/assets/hbm/lang/en_US.lang index 7ed3fc186..502845f83 100644 --- a/src/main/java/assets/hbm/lang/en_US.lang +++ b/src/main/java/assets/hbm/lang/en_US.lang @@ -146,6 +146,7 @@ container.amsBase=AMS Base [WIP] container.amsEmitter=AMS Emitter [WIP] container.amsLimiter=AMS Stabilizer [WIP] container.arcFurnace=Arc Furnace +container.armorTable=Armor Modification Table container.assembler=Assembly Machine container.barrel=Barrel container.battery=Energy Storage @@ -381,10 +382,14 @@ info.template_out_p=Outputs: info.template_seconds=seconds info.template_time=Production Time: -item.ajr_boots.name=AJR Power Armor Boots -item.ajr_helmet.name=AJR Power Armor Helmet -item.ajr_legs.name=AJR Power Armor Leggings -item.ajr_plate.name=AJR Power Armor Chestplate +item.ajr_boots.name=Steel Ranger Boots +item.ajr_helmet.name=Steel Ranger Helmet +item.ajr_legs.name=Steel Ranger Leggings +item.ajr_plate.name=Steel Ranger Chestplate +item.ajro_boots.name=AJR Power Armor Boots +item.ajro_helmet.name=AJR Power Armor Helmet +item.ajro_legs.name=AJR Power Armor Leggings +item.ajro_plate.name=AJR Power Armor Chestplate item.alloy_axe.name=Advanced Alloy Axe item.alloy_boots.name=Advanced Alloy Boots item.alloy_helmet.name=Advanced Alloy Helmet @@ -556,6 +561,7 @@ item.apple_schrabidium.name=Schrabidium Apple item.arc_electrode.name=Graphite Electrode item.arc_electrode_burnt.name=Molten Electrode item.arc_electrode_desh.name=Desh Electrode +item.armor_polish.name=ShiningArmor™ Armor Polish item.asbestos_boots.name=Fire Proximity Boots item.asbestos_cloth.name=Fire Proximity Cloth item.asbestos_helmet.name=Fire Proximity Helmet @@ -578,6 +584,7 @@ item.assembly_smg.name=9mm Assembly item.assembly_steel.name=Lead Bullet Assembly item.assembly_template.name=Assembly Template: item.assembly_uzi.name=.22 LR Assembly +item.attachment_mask.name=Gas Mask Attachable item.australium_iii.name=Mark III Life Extender item.australium_iv.name=Mark IV Life Extender item.australium_v.name=Mark V Life Extender @@ -1157,6 +1164,7 @@ item.gun_spark_ammo.name=Electromagnetic Cartridge item.gun_stinger.name=FIM-92 Stinger item.gun_stinger_ammo.name=Stinger Rocket item.gun_super_shotgun.name=Super Shotgun +item.gun_supershotgun.name=Super Shotgun item.gun_thompson.name=Thompson Submachine Gun item.gun_uboinik.name=Uboinik item.gun_uboinik_ammo.name=12x70 Buckshot (LEGACY) @@ -1267,6 +1275,11 @@ 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.insert_esapi.name=ESAPI Insert +item.insert_kevlar.name=Kevlar Insert +item.insert_sapi.name=SAPI Insert +item.insert_steel.name=Heavy Steel Insert +item.insert_xsapi.name=XSAPI Insert item.jackt.name=Damn Stylish Ballistic Jacket item.jackt2.name=Damn Stylish Ballistic Jacket 2: Tokyo Drift item.jetpack_boost.name=Boostpack @@ -1568,6 +1581,9 @@ item.padlock.name=Padlock item.padlock_reinforced.name=Reinforced Padlock item.padlock_rusty.name=Rusty Padlock item.padlock_unbreakable.name=Unbreakable Padlock +item.pads_rubber.name=Rubber Pads +item.pads_slime.name=Slime Pads +item.pads_static.name=Static Pads item.pancake.name=Pancake made from Scrap Metal, Nails and Gem Dust item.part_beryllium.name=Box of Beryllium Dust item.part_carbon.name=Box of Carbon Dust @@ -1894,6 +1910,8 @@ item.security_plate.name=Security Chestplate item.seg_10.name=Size 10 Connector item.seg_15.name=Size 15 Connector item.seg_20.name=Size 20 Connector +item.servo_set.name=Servo Set +item.servo_set_desh.name=Desh Servo Set item.shimmer_axe.name=Shimmer Axe item.shimmer_axe_head.name=Heavy Axe Head item.shimmer_handle.name=Reinforced Polymer Handle @@ -2368,6 +2386,7 @@ tile.lox_barrel.name=LOX Barrel tile.machine_amgen.name=Ambience Radiation Generator tile.machine_arc_furnace_off.name=Arc Furnace tile.machine_arc_furnace_on.name=Arc Furnace +tile.machine_armor_table.name=Armor Modification Table tile.machine_assembler.name=Assembly Machine tile.machine_battery.name=Energy Storage Block tile.machine_battery_potato.name=Potato Battery Block diff --git a/src/main/java/assets/hbm/textures/gui/machine/gui_armor_modifier.png b/src/main/java/assets/hbm/textures/gui/machine/gui_armor_modifier.png index c600c39567eb27b845fa574a3f70c832203a359d..d0492de58438443f10024d098a88ebaf68f9770b 100644 GIT binary patch literal 2888 zcmb7GX;c%&8l8j?BFZL+h(-`<0YQPX3CN-#h-DE&#VvrOtgIubMC!!%H3H` zR$UeVAm?(z@iYJs$r1t(aLIHrsw_}4!J?13cp)U?CgMjT0J35i$D>~Hc{Ag75ge!8 zGVi>Po-ELm8JXL5*;kXnDnBVSv&2Ed>)qPi9;q4KGk30OEq(!c<8p^?ZRQ}LK z8Js0AK932*+e#urbnr%hKb`K-MRB?qL8EG4uT>Xcs4RogI2=xVW3u+!@$uu1T_O?I zF*P68EuM(u+Lrj z^${GBuwN47SthY#prZ(&`Xqwpff!Z>2FHeiI~7MffYFT}cj1=gWf-V`6PxdgXxk66 z8-G1Y$(gd-L?{~Bfjg9VXJq{5dR%VL1C40q1iHQC(#}rNn<`vsDbdh(t-Qbgur#g< z2EO?gXc|Mnoh{&mE3o&6g6$F7}O*{9mtCb52W zu{FG94Tl0J7>!^ujKU_yi`_29t)CK>n_R=5E%B5poOQ7MK%kD%DD3c=B!wR+3xe1d z1=C#zfjkyRSi3?=$j26eXp3GodzAM1YE~NhU9?{Q1qU7cC<(G?9CM~L{q|&#s9T+o zjn5@c@mDQhOhZnIN+JdO=EgKrBG)l}A#DBWC(qubxqSI-*XihZjor_oyG>~YUXH@! zY(F#z1;;7K^tmb*S@#=yOSW(d3E_<+e=M9wI@QrQ*XYlK)-s>-n819seP$j)dbFbU8Jb?WS;dp z;HmU!gAAaX(@SX^(!TxO3GkG~A1kj}P&v!~)D}G)v<+3Mkg#n#@b>m@9P)cD;O{eU zJnU6q>{?|TtJ_Q012;yCbY{{21)b-okz{#FYd zF83LSx>Bc~MNK&?Cy?!KoCcbN9s*%tSx>|8cP+dMq$V?<$)TOJu<#jE{c{+#(|_{o zA+s@!0(}*w!D{ZOp;C+GD(gh$o?9>O7b9@QOApl)E)iLtrXNt|N0BD5Ly7E83%~K1 zIg-v>^oRj)t~8(3a}_`4?6yW3YPu=lhD;AG?XrfYoV%}aLzlnwhgQ>zKr{?Aj(rUq zQ}fBEmRhNBMS?-Q_DqWycZg=~xkb>CC|dhC*UIltT{lBU9w4mh20E>+gx_Kep}H7u zj*d4g`u7;THh^mW(cC?Dtzcn3RP9TsyS2)WdM%FvTQkxUMb9vG6lU)zsvD8;jhFJ| za$+k&%o~v@@~iO)qw8hux9pW;dAD<3|5iYAg%+-*VR;QG%WoE;58sFJ!Tm+(w>y9v zdbO?z<#D_vJRkq5UcNBbMcTg0D7u$Sz97#Bt+n!C`|frbW?*l5R?9?=Yvk2ElHFZ4 zV9eE081q}sIUKh}a_L+iG!OHVbj!Z)3d!;YANU1EX!($*I@_D$Td?(0>f#bkPQMly zFb;}D(&{oa7A(Lj|EnsFMC-(Zj`SIe_$aUen30prIe=s zO2TRjS*qslYP)!L;;X3T)OWg6q{t7?ST1ws^=q@<|biUEX3qb(2AjjAtYOl z70%Wt8ZKU^4hI)dL}|pS<+=3I-n>M{yn@9h%dQ82mi!?7Aq#TNGQ9w0alIcMJN0oY zRm2Cpi0ZwAD_b2hw&JjxBn5t{Oow|O%t)~6u~?ewA*|>}<-sM@$Z`YdT=IN}q=u^x z-v_9c6Z#^7%?rt7mvZTky=|X$kZH3l>=)SBrR$S2xWvIX@p!Be^uO$9TzSW z80(iea!Em2AUOOaU(zNY+8mpOPD)ByrhYX?4myHUmnDBoYa(`(?=F+FZi*aq0?c69 zw6+1?O3M1Os{Tq!!UiumacDja2IlVC-0Hmo--5%$Wm`53Hx42LOPV;0VV=p7$^rVW zr!rTtky;4I zn$daS8e)@x##c<3cc(OCC)fDG^9W|DCmC*#6wl%d`|O@iI#@K6+%|o4dgKpm#nw_i z!lg1xc3fL{3wma2#X>DAzmj1ZJQRIcTxy7i+Y9Mv(UJy7E29bji^HNR z?^xlU>|;3FyRW3CIlIYyQLp`%vmNBBE^|UroeL4>F==h*b@th7IOS}D&9$A5X*KXh z{`$V5+!t+FcI42jYdlz~S~!Y%2%k7*bn9prcFrY6{R?wgv%!og?8le_G?4<}ymMCYw<16HyyJ&sYCO@BcKr z#0pq9YtXK@lNf{ObM;7D6T^@3!%UU9HiDm9fzTwh-&P7NCA z)M?*~`qr0(OdjY_`*U;gSC4J_A7pZ-$!gSLjm_i>+!3Yeo1YQIc`vds&V>SF`2V<+ zzf1J*P6j$_a$P(23{1Tv*&7{?h4IoQp5;F_$NDfL*xQfmT9hZDezAv4>&>}o2`?S& z(fj{lqmv)}3pN#MVjU|z``=e^=k!{|i=1`h*{U;@<8(USV&{Fm>!7l)ug_B-8mg}54s$8cO)P4`{|z;**_`( literal 2919 zcmbtWc|6ox8$Z7>Wym&J(luk4t~H6WWGW^@=!!{tWfwx2Ml@5#Hr~3XNJ5M3ltx(! z*)Bz)QI@I1l!;OH<|5QE);ssT@BO^*`{%vy`R93_^PF?O&vHKJd@mCnY@{WBkOTlo z+u2$<0RV|q2p~3!ghzOBfJne2EbW{Tq7jYozXZT0RXeK#&gZkI1}wt42NhVe;weAn zHj9UK`^>^ly{$NOLsNW6s<+N?;I3ido^%r%wT8NvkX7=|&+?CKBqiT&ZuNzHE7k`W zdRno?8pUC89zI)SZ#3TD&`vnHMofBljBj`=Dwb*0g~=}uS+bZT9=p-r5m;;Tv@U@< zA#ym+T;IDU>$ zEC*8`o(!K@85pe3gN-~>f}M@s3j@}t7$Bz!1JOU9rJTjZnZf|^3c#Q7(1K7co<7;g=+0+YV?W45Vj~X=axM`9V-Oi+5 z8so+W?e(+SV2&%D%7*L53bEK-Wf?5i)QD!~jgNMC^ATk}yX|oz9y6lHyP=8yhNR18 zbp^beKi4q8Z(>}9-Girxtaq+LmbzGA<^N8%PWjH2r>lPNE*vj}(<5&-g?y4m!w}p0 z5zT$iCKvI0JT|FKQ^c>>5+C?>L-xH}V1~FRlDF@UYnHbWfS}8pL#e7?SA!n8m6aYn zF{beT{bZw=Kr7*$K%54bppS;1%Gnr#@n&cTzp1q_yjx@8to`-^0h}$gOqJ>UcNYBg(Z;(sv%MeFVy9@XND_~>YM(kW53=tn_PBEAwK|4U#?SHZk34- zxH;k?OPW&JWTu-%Q3pQ8f|^r?jZbTsF+u&yv%`#A0wJYx5MWsMO&-Ds1Lf?$Q1?atO#QKj6a#-*PTlN_<$PhL(cq+ zQWA${ismdf)P$s2gHFRhHjZAI!H2FM?6UZ9nw;>xd@9pQmj3z}Il@c4dDqzKv1CQ_94{{cd=lC0>Cxu$@eJogS}OYl-cnGYjl`Vf#Xzqz|zhIMh*GIYQe&rh* zZA>5^{ekbt6cngOWvenOI|)jV!M7}b`y<5b&&GS{7?VKZYGrXo2?QbQb?;>s23((I z3*SW6#Mwu=`JXXX`@D<1PT8lL?sjNDs}Oy7Q#=BE+cmSuT`?7`f={v#U{VoAPKfyW zJ}9W*GYbFfb`W#;avKdZ)y?xt-8#PlLu*s6$t>-Z@ zEi3O?Di%{1fO{`bHj5jw;>k5u2L^{Y zwrW4?9Eg}+n;8~)c%wC69)>h%!ok51oMQv-XlXZD<^w6|eCBvvO$Y(_RAw+>yb}J> zlfxQ$0jfBzW=Wg?)^j&tN{k9`i3K$3-aCE6+!Jht6J0 z3}euw;PD@-;sT6S+_fCblrXR4&T9B@M(>QVyZi{|ACKNFNtoEy(0^fXPUZ_rVR=;KQ_2;pLs3Z3v#ueZ@m43K*^@s2k*~QHijeHVZ&TYaqLH%Ld zTknfUY(zFkpEQ6)y(-kko|!Wm zZdQ*z8!@Qt|7GBmNmlZ$DDIo9gVZ|jw&*?ZzlU2fNCPFkhfK1%Mz)AR4rJ;g@AH3A zLe}dv;;q&C?Fw?J*7<)jo{_n&FLH_zR(oI860GxuVKTonn!kbj#}OBVMC2uE8kv!Z zpD)15P5sD|QH&pJG5ed9yYt5pV?FLjge_7re&v&hy!;s+%@O9Lm_c<4VtOhnuMtJ6 z2sgcF{=e7!rIr;-+KZ|nN*&bd5$+07sNEl(G06$@omIL6Vi>eBbWY8n%FtxJC{!|=QR zy2!6DJG}pVs8u=U!O^%amsR0y7sp`(h61a-YhG3P<*ZETy;~J1!g|iqZa-f~&ivz1 z-5ml>C)h2X8ypLmrs{3oZF#I?m67k|w_NL*@73R%VOtVgUieyyKk{qO&1RGDGUmr3 uLPd{BFdQrNS$jt|S?`6^&i*gof3Oy3`HDGl8A$?t%i!ti=d#Wzp$PzQMSR%+ literal 0 HcmV?d00001 diff --git a/src/main/java/assets/hbm/textures/items/attachment_mask.png b/src/main/java/assets/hbm/textures/items/attachment_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..374ecc2d292b08a5b4b1dd316b1bcce386678d55 GIT binary patch literal 335 zcmV-V0kHmwP)cTZC)5sMT0Sk3G$l0iH>>QZNeAV)p_jYz?;J?|EM5RpCo+9(Qy39_n$U|NOBw`&0%e zj%wW#mg!q|`&*v*yoTu=f5rPw!&%%639;8_O^iRYNynev_4YQ#3*Yy0=zZ5pka0JC z$rH*LBqS3iWCa$^E_Ib`OF$Z5+ng2Gv!iNnQ+|Pbb%M|jixa=YLVcEofN2}=T xX^t!v@AZYRX_b01tl4^1^|WR9=hr6kBR(G1MjEAYB|g`qQ0De}mAmLPZfof{jz& z@Mxa4FWZB6$0X-F_i_XOU7qVAiXsyP0RZ>=-T7|jf>)~*d7g8*TmXzKXmT*XNs<6C zpU(kUEEZH%h1S}02E3cK)*tZkcq9x%0Gg(;+-wXdNrKkeh7Ry%vq4J9>2$IqHBIBq z#%93U-{IwQN#FNKDUnhlgg_}}{3wb{Q50;qTWcP}Qc3_jf)Ikbu75^&JRV%HS9ZId zZGCJWN(jN>a6lxJ+8ALhRA3B%Bu&*w8;*LjmIq-kp6IHoL1 z*6THG+kUkDZk}ubzCTJF$L4ms(Y7u7{odZybv=P69Sl_zg#pO(oagh2QtDUO888lV b!GBU;4}P5XAghIt00000NkvXXu0mjfp-!c< literal 0 HcmV?d00001 diff --git a/src/main/java/assets/hbm/textures/items/pads_slime.png b/src/main/java/assets/hbm/textures/items/pads_slime.png new file mode 100644 index 0000000000000000000000000000000000000000..53c58a3cc9a3935754810bf58bd790bd7b4d91a0 GIT binary patch literal 396 zcmV;70dxL|P)O$NfOdD?F?!)O4u|_0EWXM0H$g3`tk-Jbw;@cJC1`8q6Y7FJ2XuLAbgIM zRzTBS+Dq8?ea7Q4`~99cj;kQ0X$C6$C2Uz10J^RNVB0pU)ry9kt^(p(fp)wgY%^?J?ueCDt@{d_@N^d-P(G(rf0s;V_}Q55L9 zUYVmP;;=a>tt)7YzBCMj`FxJ&d4yqDTl>;{^^5@bkGInIeeyhKxm;HLrnxf!zn32d3iw1`P0000jz{ zxO@H7asgR$Y>#2bacH;OtX3;Fn@tj=Wz9fhKZTpkCICW+Xf;jlJ&y~wh3faO==FL? zDGSY6_-!@=KnK|EcKE)}U@%CYe`*fHFzE}^WICB}I2;%+j?ovqE()O0s3WCB*Y%V+ z3`2wviFv(VGhQ6E+!VYns#dEq91bx%9ln;!)U!{`XU7QecwJSF;}8S^H=|L~&zcJZ v0G@9z6@YEq1VO-lzt5R}4af!+!GBUek$RB^CT|Sn00000NkvXXu0mjfY@elJ literal 0 HcmV?d00001 diff --git a/src/main/java/assets/hbm/textures/items/servo_set.png b/src/main/java/assets/hbm/textures/items/servo_set.png new file mode 100644 index 0000000000000000000000000000000000000000..5347451d01a41a80750b53bcd58883a5f459f08d GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfHomejHXvx*o`2t{=Knw0{o-L?e2dx)aS>PFb8jy^+7ivv6cfV(0^8&F zr#(naKD?^%-O=tIkcbWtYna*n{W0<3>GShJB0MrWIz09N{x)YvRs1w+n;yv0bM)x{ r$D2MrcznEqx#q!v3@Zt-mkbQ`9?7$Bw1*x9dV#^y)z4*}Q$iB}p0Z*H literal 0 HcmV?d00001 diff --git a/src/main/java/com/hbm/crafting/ArmorRecipes.java b/src/main/java/com/hbm/crafting/ArmorRecipes.java index 512e91396..b2a14b2f7 100644 --- a/src/main/java/com/hbm/crafting/ArmorRecipes.java +++ b/src/main/java/com/hbm/crafting/ArmorRecipes.java @@ -21,6 +21,9 @@ public class ArmorRecipes { public static void register() { + //Armor mod table + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_armor_table, 1), new Object[] { "PPP", "TCT", "TST", 'P', "plateSteel", 'T', "ingotTungsten", 'C', Blocks.crafting_table, 'S', "blockSteel" })); + //Regular armor GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.steel_helmet, 1), new Object[] { "EEE", "E E", 'E', "ingotSteel" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.steel_plate, 1), new Object[] { "E E", "EEE", "EEE", 'E', "ingotSteel" })); diff --git a/src/main/java/com/hbm/crafting/ConsumableRecipes.java b/src/main/java/com/hbm/crafting/ConsumableRecipes.java index e4ba9ce90..16494c29a 100644 --- a/src/main/java/com/hbm/crafting/ConsumableRecipes.java +++ b/src/main/java/com/hbm/crafting/ConsumableRecipes.java @@ -120,11 +120,30 @@ public class ConsumableRecipes { GameRegistry.addRecipe(new ItemStack(ModItems.radaway_flush, 1), new Object[] { "S", "M", "W", 'S', ModItems.powder_iodine, 'M', ModBlocks.mush, 'W', ModItems.radaway_strong }); //Cladding - GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.cladding_paint, 1), new Object[] { "dustLead", Items.clay_ball, Items.glass_bottle })); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.cladding_paint, 1), new Object[] { "nuggetLead", "nuggetLead", "nuggetLead", "nuggetLead", Items.clay_ball, Items.glass_bottle })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.cladding_rubber, 1), new Object[] { "RCR", "CDC", "RCR", 'R', ModItems.plate_polymer, 'C', "dustCoal", 'D', ModItems.ducttape })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.cladding_lead, 1), new Object[] { "DPD", "PRP", "DPD", 'R', ModItems.cladding_rubber, 'P', "plateLead", 'D', ModItems.ducttape })); GameRegistry.addRecipe(new ItemStack(ModItems.cladding_desh, 1), new Object[] { "DPD", "PRP", "DPD", 'R', ModItems.cladding_lead, 'P', ModItems.plate_desh, 'D', ModItems.ducttape }); + //Inserts + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.insert_steel, 1), new Object[] { "DPD", "PSP", "DPD", 'D', ModItems.ducttape, 'P', "plateIron", 'S', "blockSteel" })); + GameRegistry.addRecipe(new ItemStack(ModItems.insert_kevlar, 1), new Object[] { "KIK", "IDI", "KIK", 'K', ModItems.plate_kevlar, 'I', ModItems.plate_polymer, 'D', ModItems.ducttape }); + GameRegistry.addRecipe(new ItemStack(ModItems.insert_sapi, 1), new Object[] { "PKP", "DPD", "PKP", 'P', ModItems.ingot_polymer, 'K', ModItems.insert_kevlar, 'D', ModItems.ducttape }); + GameRegistry.addRecipe(new ItemStack(ModItems.insert_esapi, 1), new Object[] { "PKP", "DSD", "PKP", 'P', ModItems.ingot_polymer, 'K', ModItems.insert_sapi, 'D', ModItems.ducttape, 'S', ModItems.plate_saturnite }); + GameRegistry.addRecipe(new ItemStack(ModItems.insert_xsapi, 1), new Object[] { "PKP", "DSD", "PKP", 'P', ModItems.ingot_asbestos, 'K', ModItems.insert_esapi, 'D', ModItems.ducttape, 'S', ModItems.ingot_meteorite_forged }); + + //Servos + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.servo_set, 1), new Object[] { "MBM", "PBP", "MBM", 'M', ModItems.motor, 'B', ModItems.bolt_tungsten, 'P', "plateIron" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.servo_set_desh, 1), new Object[] { "MBM", "PSP", "MBM", 'M', ModItems.motor_desh, 'B', ModItems.bolt_dura_steel, 'P', "plateAdvanced", 'S', ModItems.servo_set })); + + //Helmet Mods + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.attachment_mask, 1), new Object[] { "DID", "IGI", " F ", 'D', ModItems.ducttape, 'I', ModItems.plate_polymer, 'G', "paneGlass", 'F', ModItems.gas_mask_filter })); + + //Boot Mods + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.pads_rubber, 1), new Object[] { "P P", "IDI", "P P", 'P', ModItems.plate_polymer, 'I', "plateIron", 'D', ModItems.ducttape })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.pads_slime, 1), new Object[] { "SPS", "DSD", "SPS", 'S', "slimeball", 'P', ModItems.pads_rubber, 'D', ModItems.ducttape })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.pads_static, 1), new Object[] { "CDC", "ISI", "CDC", 'C', "plateCopper", 'D', ModItems.ducttape, 'I', ModItems.plate_polymer, 'S', ModItems.pads_slime })); + //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/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 939e0b490..0497f882b 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -93,6 +93,7 @@ public class WeaponRecipes { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.gun_thompson, 1), new Object[] { "IIM", " SW", " S ", 'S', "plateIron", 'I', "plateSteel", 'W', "plankWood", 'M', ModItems.mechanism_rifle_2 })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.gun_flechette, 1), new Object[] { "PPM", "TIS", "G ", 'P', "plateSteel", 'M', ModItems.mechanism_rifle_2, 'T', ModItems.hull_small_steel, 'I', "ingotSteel", 'S', ModItems.ingot_polymer, 'G', ModItems.mechanism_launcher_1 })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.gun_uboinik, 1), new Object[] { "IIM", "SPW", 'P', "plateSteel", 'I', "ingotSteel", 'W', "plankWood", 'S', Items.stick, 'M', ModItems.mechanism_revolver_2 })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.gun_supershotgun, 1), new Object[] { "BBM", "BBM", "AWL", 'B', ModItems.hull_small_steel, 'M', ModItems.mechanism_rifle_2, 'A', ModItems.plate_dalekanium, 'W', ModItems.wire_gold, 'L', "logWood" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.gun_ks23, 1), new Object[] { "PPM", "SWL", 'P', "plateSteel", 'M', ModItems.mechanism_rifle_1, 'S', Items.stick, 'W', ModItems.wire_tungsten, 'L', "logWood" })); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.gun_sauer, 1), new Object[] { ModItems.ducttape, ModItems.gun_ks23, Blocks.lever, ModItems.gun_ks23 }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.gun_xvl1456, 1), new Object[] { "PBB", "ACC", "PRY", 'P', "plateSteel", 'R', ModItems.redcoil_capacitor, 'A', ModItems.coil_advanced_alloy, 'B', ModItems.battery_generic, 'C', ModItems.coil_advanced_torus, 'Y', ModItems.mechanism_special })); diff --git a/src/main/java/com/hbm/handler/ArmorModHandler.java b/src/main/java/com/hbm/handler/ArmorModHandler.java index 48bba930f..d1e59c615 100644 --- a/src/main/java/com/hbm/handler/ArmorModHandler.java +++ b/src/main/java/com/hbm/handler/ArmorModHandler.java @@ -16,7 +16,7 @@ public class ArmorModHandler { public static final int servos = 4; public static final int cladding = 5; public static final int kevlar = 6; - public static final int plating = 7; + public static final int extra = 7; //The key for the NBTTagCompound that holds the armor mods public static final String MOD_COMPOUND_KEY = "ntm_armor_mods"; diff --git a/src/main/java/com/hbm/handler/HazmatRegistry.java b/src/main/java/com/hbm/handler/HazmatRegistry.java index ee3ef4d52..8d30bf3e4 100644 --- a/src/main/java/com/hbm/handler/HazmatRegistry.java +++ b/src/main/java/com/hbm/handler/HazmatRegistry.java @@ -2,7 +2,7 @@ package com.hbm.handler; import java.util.HashMap; -import com.hbm.items.special.ItemCladding; +import com.hbm.items.armor.ItemModCladding; import com.hbm.potion.HbmPotion; import net.minecraft.entity.player.EntityPlayer; @@ -43,8 +43,8 @@ public class HazmatRegistry { ItemStack[] mods = ArmorModHandler.pryMods(stack); ItemStack cladding = mods[ArmorModHandler.cladding]; - if(cladding != null && cladding.getItem() instanceof ItemCladding) { - return ((ItemCladding)cladding.getItem()).rad; + if(cladding != null && cladding.getItem() instanceof ItemModCladding) { + return ((ItemModCladding)cladding.getItem()).rad; } } diff --git a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java index 3d4249c69..c462517e6 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java @@ -95,10 +95,9 @@ public class Gun12GaugeFactory { ) ); - config.name = "???"; - config.manufacturer = "???"; - config.comment.add("but bOB WhY iS TExtURE no woRk"); - config.comment.add("hoW do I cRAFT PleasE HElp"); + config.name = "Double-Barreled Combat Shotgun"; + config.manufacturer = "Union Aerospace Corporation"; + config.comment.add("God-damned ARCH-VILES!"); config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.G12_NORMAL); diff --git a/src/main/java/com/hbm/inventory/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/AssemblerRecipes.java index 4f69b7c54..1f5b52d69 100644 --- a/src/main/java/com/hbm/inventory/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/AssemblerRecipes.java @@ -283,10 +283,10 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {new OreDictStack("ingotSteel", 16), new OreDictStack("plateSteel", 20), new OreDictStack("plateCopper", 16), new ComparableStack(ModItems.hull_big_steel, 6), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.coil_tungsten, 8), new ComparableStack(ModItems.wire_red_copper, 8), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },350); makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack("plateSteel", 8), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.bolt_tungsten, 4), new ComparableStack(ModItems.coil_copper, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_copper, 1), new ComparableStack(ModItems.canister_canola, 1), },160); makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack("ingotSteel", 8), new OreDictStack("plateCopper", 6), new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.wire_red_copper, 16), new ComparableStack(ModItems.wire_tungsten, 3), new ComparableStack(ModItems.circuit_copper, 4), new ComparableStack(ModItems.circuit_red_copper, 2), new ComparableStack(ModItems.plate_polymer, 8), },200); - makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.pipes_steel, 4), new OreDictStack("ingotDesh", 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.blades_advanced_alloy, 2), new OreDictStack("ingotSteel", 16), new OreDictStack("plateTitanium", 16), new ComparableStack(Blocks.glass, 4), new ComparableStack(ModItems.circuit_gold, 1), },400); + makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack("ingotDesh", 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.blades_advanced_alloy, 2), new OreDictStack("ingotSteel", 16), new OreDictStack("plateTitanium", 16), new ComparableStack(Blocks.glass, 4), new ComparableStack(ModItems.circuit_gold, 1), },400); makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack("ingotSteel", 2), new OreDictStack("plateSteel", 6), new ComparableStack(ModItems.hull_big_steel, 4), },150); makeRecipe(new ComparableStack(ModBlocks.machine_drill, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 6), new OreDictStack("ingotSteel", 4), new ComparableStack(ModItems.wire_red_copper, 4), new ComparableStack(ModItems.circuit_copper, 1), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.ingot_dura_steel, 2), new ComparableStack(ModItems.bolt_dura_steel, 2), new ComparableStack(ModItems.drill_titanium, 1), },200); - makeRecipe(new ComparableStack(ModBlocks.machine_mining_laser, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 3), new OreDictStack("ingotSteel", 8), new OreDictStack("plateSteel", 12), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 5), new ComparableStack(ModItems.ingot_polymer, 4), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.ingot_dura_steel, 4), new ComparableStack(ModItems.bolt_dura_steel, 6), new ComparableStack(ModBlocks.machine_lithium_battery, 1), },400); + makeRecipe(new ComparableStack(ModBlocks.machine_mining_laser, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 3), new OreDictStack("plateSteel", 16), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 3), new ComparableStack(ModItems.ingot_polymer, 4), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.ingot_dura_steel, 4), new ComparableStack(ModItems.bolt_dura_steel, 6), new ComparableStack(ModBlocks.machine_battery, 3), },400); makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.hull_big_titanium, 3), new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.turbine_tungsten, 1), new ComparableStack(ModItems.turbine_titanium, 7), new ComparableStack(ModItems.bolt_compound, 8), new OreDictStack("ingotRedCopperAlloy", 12), new ComparableStack(ModItems.wire_red_copper, 24), },500); makeRecipe(new ComparableStack(ModBlocks.machine_teleporter, 1), new AStack[] {new OreDictStack("ingotTitanium", 6), new ComparableStack(ModItems.plate_advanced_alloy, 12), new ComparableStack(ModItems.plate_combine_steel, 4), new ComparableStack(ModItems.telepad, 1), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModBlocks.machine_battery, 2), new ComparableStack(ModItems.coil_magnetized_tungsten, 4), },300); makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_transmutator, 1), new AStack[] {new ComparableStack(ModItems.ingot_magnetized_tungsten, 1), new OreDictStack("ingotTitanium", 24), new ComparableStack(ModItems.plate_advanced_alloy, 18), new OreDictStack("plateSteel", 12), new ComparableStack(ModItems.plate_desh, 6), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModBlocks.machine_battery, 5), new ComparableStack(ModItems.circuit_gold, 5), },500); @@ -402,19 +402,19 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.mp_thruster_10_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack("ingotTungsten", 4), new OreDictStack("plateSteel", 4), },100); makeRecipe(new ComparableStack(ModItems.mp_thruster_10_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.coil_tungsten, 1), new ComparableStack(ModItems.ingot_dura_steel, 4), new OreDictStack("plateSteel", 4), },100); makeRecipe(new ComparableStack(ModItems.mp_thruster_10_xenon, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack("plateSteel", 4), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.arc_electrode, 4), },100); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.pipes_steel, 4), new OreDictStack("ingotTungsten", 8), new OreDictStack("plateSteel", 6), new OreDictStack("ingotDesh", 4), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_kerosene_dual, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.pipes_steel, 2), new OreDictStack("ingotTungsten", 4), new OreDictStack("plateSteel", 6), new OreDictStack("ingotDesh", 1), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_kerosene_triple, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.pipes_steel, 3), new OreDictStack("ingotTungsten", 6), new OreDictStack("plateSteel", 6), new OreDictStack("ingotDesh", 2), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_15_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack("ingotTungsten", 8), new OreDictStack("plateSteel", 6), new OreDictStack("ingotDesh", 4), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_15_kerosene_dual, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack("ingotTungsten", 4), new OreDictStack("plateSteel", 6), new OreDictStack("ingotDesh", 1), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_15_kerosene_triple, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack("ingotTungsten", 6), new OreDictStack("plateSteel", 6), new OreDictStack("ingotDesh", 2), },500); makeRecipe(new ComparableStack(ModItems.mp_thruster_15_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack("plateSteel", 6), new ComparableStack(ModItems.ingot_dura_steel, 6), new ComparableStack(ModItems.coil_tungsten, 3), },500); makeRecipe(new ComparableStack(ModItems.mp_thruster_15_solid_hexdecuple, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack("plateSteel", 6), new ComparableStack(ModItems.ingot_dura_steel, 12), new ComparableStack(ModItems.coil_tungsten, 6), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_hydrogen, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.pipes_steel, 4), new OreDictStack("ingotTungsten", 8), new OreDictStack("plateSteel", 6), new ComparableStack(ModItems.tank_steel, 1), new OreDictStack("ingotDesh", 4), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_hydrogen_dual, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.pipes_steel, 2), new OreDictStack("ingotTungsten", 4), new OreDictStack("plateSteel", 6), new ComparableStack(ModItems.tank_steel, 1), new OreDictStack("ingotDesh", 1), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_15_hydrogen, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack("ingotTungsten", 8), new OreDictStack("plateSteel", 6), new ComparableStack(ModItems.tank_steel, 1), new OreDictStack("ingotDesh", 4), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_15_hydrogen_dual, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack("ingotTungsten", 4), new OreDictStack("plateSteel", 6), new ComparableStack(ModItems.tank_steel, 1), new OreDictStack("ingotDesh", 1), },500); makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire_short, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModBlocks.reactor_element, 1), new OreDictStack("ingotDesh", 8), new ComparableStack(ModItems.plate_saturnite, 12), new ComparableStack(ModItems.board_copper, 2), new ComparableStack(ModItems.ingot_uranium_fuel, 4), new ComparableStack(ModItems.pipes_steel, 2), },500); makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModBlocks.reactor_element, 2), new OreDictStack("ingotDesh", 16), new ComparableStack(ModItems.plate_saturnite, 24), new ComparableStack(ModItems.board_copper, 4), new ComparableStack(ModItems.ingot_uranium_fuel, 8), new ComparableStack(ModItems.pipes_steel, 2), },500); makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire_large, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModBlocks.reactor_element, 2), new OreDictStack("ingotDesh", 24), new ComparableStack(ModItems.plate_saturnite, 32), new ComparableStack(ModItems.board_copper, 4), new ComparableStack(ModItems.ingot_uranium_fuel, 8), new ComparableStack(ModItems.pipes_steel, 2), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModItems.pipes_steel, 8), new OreDictStack("ingotTungsten", 16), new OreDictStack("plateSteel", 12), new OreDictStack("ingotDesh", 8), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene_dual, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModItems.pipes_steel, 4), new OreDictStack("ingotTungsten", 8), new OreDictStack("plateSteel", 6), new OreDictStack("ingotDesh", 4), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene_triple, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModItems.pipes_steel, 6), new OreDictStack("ingotTungsten", 12), new OreDictStack("plateSteel", 8), new OreDictStack("ingotDesh", 6), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack("ingotTungsten", 16), new OreDictStack("plateSteel", 12), new OreDictStack("ingotDesh", 8), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene_dual, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack("ingotTungsten", 8), new OreDictStack("plateSteel", 6), new OreDictStack("ingotDesh", 4), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene_triple, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack("ingotTungsten", 12), new OreDictStack("plateSteel", 8), new OreDictStack("ingotDesh", 6), },500); makeRecipe(new ComparableStack(ModItems.mp_thruster_20_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModItems.coil_tungsten, 8), new ComparableStack(ModItems.ingot_dura_steel, 16), new OreDictStack("plateSteel", 12), },500); makeRecipe(new ComparableStack(ModItems.mp_thruster_20_solid_multi, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModItems.coil_tungsten, 12), new ComparableStack(ModItems.ingot_dura_steel, 18), new OreDictStack("plateSteel", 12), },500); makeRecipe(new ComparableStack(ModItems.mp_thruster_20_solid_multier, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModItems.coil_tungsten, 16), new ComparableStack(ModItems.ingot_dura_steel, 20), new OreDictStack("plateSteel", 12), },500); diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index ae7d53f27..f27332a11 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -267,9 +267,13 @@ public class OreDictManager { OreDictionary.registerOre("blockPlutonium240", ModBlocks.block_pu240); OreDictionary.registerOre("logWood", ModBlocks.pink_log); + OreDictionary.registerOre("logWoodPink", ModBlocks.pink_log); OreDictionary.registerOre("plankWood", ModBlocks.pink_planks); + OreDictionary.registerOre("plankWoodPink", ModBlocks.pink_planks); OreDictionary.registerOre("slabWood", ModBlocks.pink_slab); + OreDictionary.registerOre("slabWoodPink", ModBlocks.pink_slab); OreDictionary.registerOre("stairWood", ModBlocks.pink_stairs); + OreDictionary.registerOre("stairWoodPink", ModBlocks.pink_stairs); OreDictionary.registerOre("blockGlass", ModBlocks.glass_uranium); OreDictionary.registerOre("blockGlass", ModBlocks.glass_trinitite); diff --git a/src/main/java/com/hbm/inventory/container/ContainerArmorTable.java b/src/main/java/com/hbm/inventory/container/ContainerArmorTable.java index d15c45b61..f0086f3b5 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerArmorTable.java +++ b/src/main/java/com/hbm/inventory/container/ContainerArmorTable.java @@ -27,7 +27,7 @@ public class ContainerArmorTable extends Container { this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.servos, 134, 81)); //servos/frame this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.cladding, 98, 99)); //radiation cladding this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.kevlar, 62, 99)); //kevlar/sapi/(ERA? :) ) - this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.plating, 26, 99)); //explosive/heavy plating + this.addSlotToContainer(new UpgradeSlot(upgrades, ArmorModHandler.extra, 26, 99)); //special parts this.addSlotToContainer(new Slot(armor, 0, 44, 63) { diff --git a/src/main/java/com/hbm/inventory/gui/GUIArmorTable.java b/src/main/java/com/hbm/inventory/gui/GUIArmorTable.java index 02217bf14..47304ce6d 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIArmorTable.java +++ b/src/main/java/com/hbm/inventory/gui/GUIArmorTable.java @@ -7,6 +7,7 @@ import com.hbm.inventory.container.ContainerArmorTable; import com.hbm.lib.RefStrings; import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemArmor; @@ -31,8 +32,8 @@ public class GUIArmorTable extends GuiContainer { protected void drawGuiContainerForegroundLayer(int mX, int mY) { - this.fontRendererObj.drawString("Armor Modification Table", 28, 6, 4210752); - this.fontRendererObj.drawString("Inventory", 8, this.ySize - 96 + 2, 4210752); + this.fontRendererObj.drawString(I18n.format("container.armorTable"), 28, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); } protected void drawGuiContainerBackgroundLayer(float inter, int mX, int mY) { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index f34136b69..4e76bcb91 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1788,10 +1788,22 @@ public class ModItems { public static Item crystal_horn; public static Item crystal_charred; + public static Item attachment_mask; + public static Item servo_set; + public static Item servo_set_desh; + public static Item pads_rubber; + public static Item pads_slime; + public static Item pads_static; public static Item cladding_paint; public static Item cladding_rubber; public static Item cladding_lead; public static Item cladding_desh; + public static Item insert_kevlar; + public static Item insert_sapi; + public static Item insert_esapi; + public static Item insert_xsapi; + public static Item insert_steel; + public static Item armor_polish; public static Item hazmat_helmet; public static Item hazmat_plate; @@ -2672,11 +2684,24 @@ public class ModItems { jetpack_tank = new ItemSyringe().setUnlocalizedName("jetpack_tank").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":jetpack_tank"); gun_kit_1 = new ItemSyringe().setUnlocalizedName("gun_kit_1").setMaxStackSize(16).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":gun_kit_1"); gun_kit_2 = new ItemSyringe().setUnlocalizedName("gun_kit_2").setMaxStackSize(16).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":gun_kit_2"); - cladding_paint = new ItemCladding(0.025F).setUnlocalizedName("cladding_paint").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cladding_paint"); - cladding_rubber = new ItemCladding(0.075F).setUnlocalizedName("cladding_rubber").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cladding_rubber"); - cladding_lead = new ItemCladding(0.2F).setUnlocalizedName("cladding_lead").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cladding_lead"); - cladding_desh = new ItemCladding(0.4F).setUnlocalizedName("cladding_desh").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cladding_desh"); cbt_device = new ItemSyringe().setUnlocalizedName("cbt_device").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":cbt_device"); + + attachment_mask = new ItemModGasmask().setUnlocalizedName("attachment_mask").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":attachment_mask"); + servo_set = new ItemModServos().setUnlocalizedName("servo_set").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":servo_set"); + servo_set_desh = new ItemModServos().setUnlocalizedName("servo_set_desh").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":servo_set_desh"); + pads_rubber = new ItemModPads(0.5F).setUnlocalizedName("pads_rubber").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pads_rubber"); + pads_slime = new ItemModPads(0.25F).setUnlocalizedName("pads_slime").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pads_slime"); + pads_static = new ItemModPads(0.75F).setUnlocalizedName("pads_static").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pads_static"); + cladding_paint = new ItemModCladding(0.025F).setUnlocalizedName("cladding_paint").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cladding_paint"); + cladding_rubber = new ItemModCladding(0.075F).setUnlocalizedName("cladding_rubber").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cladding_rubber"); + cladding_lead = new ItemModCladding(0.2F).setUnlocalizedName("cladding_lead").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cladding_lead"); + cladding_desh = new ItemModCladding(0.4F).setUnlocalizedName("cladding_desh").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cladding_desh"); + insert_kevlar = new ItemModInsert(1F, 0.9F, 1F).setUnlocalizedName("insert_kevlar").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":insert_kevlar"); + insert_sapi = new ItemModInsert(1F, 0.85F, 1F).setUnlocalizedName("insert_sapi").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":insert_sapi"); + insert_esapi = new ItemModInsert(0.95F, 0.8F, 1F).setUnlocalizedName("insert_esapi").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":insert_esapi"); + insert_xsapi = new ItemModInsert(0.9F, 0.75F, 1F).setUnlocalizedName("insert_xsapi").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":insert_xsapi"); + insert_steel = new ItemModInsert(1F, 0.95F, 0.75F).setUnlocalizedName("insert_steel").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":insert_steel"); + armor_polish = new ItemModPolish().setUnlocalizedName("armor_polish").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":armor_polish"); can_empty = new Item().setUnlocalizedName("can_empty").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":can_empty"); can_smart = new ItemEnergy().setUnlocalizedName("can_smart").setContainerItem(ModItems.can_empty).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":can_smart"); @@ -6075,11 +6100,23 @@ public class ModItems { GameRegistry.registerItem(chocolate_milk, chocolate_milk.getUnlocalizedName()); GameRegistry.registerItem(cbt_device, cbt_device.getUnlocalizedName()); - //Cladding + //Armor mods + GameRegistry.registerItem(attachment_mask, attachment_mask.getUnlocalizedName()); + GameRegistry.registerItem(servo_set, servo_set.getUnlocalizedName()); + GameRegistry.registerItem(servo_set_desh, servo_set_desh.getUnlocalizedName()); + GameRegistry.registerItem(pads_rubber, pads_rubber.getUnlocalizedName()); + GameRegistry.registerItem(pads_slime, pads_slime.getUnlocalizedName()); + GameRegistry.registerItem(pads_static, pads_static.getUnlocalizedName()); GameRegistry.registerItem(cladding_paint, cladding_paint.getUnlocalizedName()); GameRegistry.registerItem(cladding_rubber, cladding_rubber.getUnlocalizedName()); GameRegistry.registerItem(cladding_lead, cladding_lead.getUnlocalizedName()); GameRegistry.registerItem(cladding_desh, cladding_desh.getUnlocalizedName()); + GameRegistry.registerItem(insert_kevlar, insert_kevlar.getUnlocalizedName()); + GameRegistry.registerItem(insert_sapi, insert_sapi.getUnlocalizedName()); + GameRegistry.registerItem(insert_esapi, insert_esapi.getUnlocalizedName()); + GameRegistry.registerItem(insert_xsapi, insert_xsapi.getUnlocalizedName()); + GameRegistry.registerItem(insert_steel, insert_steel.getUnlocalizedName()); + GameRegistry.registerItem(armor_polish, armor_polish.getUnlocalizedName()); //The Gadget GameRegistry.registerItem(gadget_explosive, gadget_explosive.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/armor/ItemArmorMod.java b/src/main/java/com/hbm/items/armor/ItemArmorMod.java index 347ad9a19..788e5e367 100644 --- a/src/main/java/com/hbm/items/armor/ItemArmorMod.java +++ b/src/main/java/com/hbm/items/armor/ItemArmorMod.java @@ -1,6 +1,16 @@ package com.hbm.items.armor; +import java.util.List; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraftforge.client.event.RenderPlayerEvent; +import net.minecraftforge.event.entity.living.LivingHurtEvent; public class ItemArmorMod extends Item { @@ -17,4 +27,35 @@ public class ItemArmorMod extends Item { this.leggings = leggings; this.boots = boots; } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + list.add(EnumChatFormatting.DARK_PURPLE + "Applicable to:"); + + if(helmet && chestplate && leggings && boots) { + list.add(" All"); + } else { + + if(helmet) + list.add(" Helmets"); + if(chestplate) + list.add(" Chestplates"); + if(leggings) + list.add(" Leggings"); + if(boots) + list.add(" Boots"); + } + } + + @SideOnly(Side.CLIENT) + public void addDesc(List list, ItemStack stack, ItemStack armor) { + list.add(stack.getDisplayName()); + } + + public void modUpdate(EntityLivingBase entity, ItemStack armor) { } + + public void modDamage(LivingHurtEvent event, ItemStack armor) { } + + @SideOnly(Side.CLIENT) + public void modRender(RenderPlayerEvent.SetArmorModel event, ItemStack armor) { } } diff --git a/src/main/java/com/hbm/items/special/ItemCladding.java b/src/main/java/com/hbm/items/armor/ItemModCladding.java similarity index 50% rename from src/main/java/com/hbm/items/special/ItemCladding.java rename to src/main/java/com/hbm/items/armor/ItemModCladding.java index 9a3bc4d54..2f6a721cf 100644 --- a/src/main/java/com/hbm/items/special/ItemCladding.java +++ b/src/main/java/com/hbm/items/armor/ItemModCladding.java @@ -1,4 +1,4 @@ -package com.hbm.items.special; +package com.hbm.items.armor; import java.util.List; @@ -9,18 +9,24 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; -public class ItemCladding extends ItemArmorMod { +public class ItemModCladding extends ItemArmorMod { public float rad; - public ItemCladding(float rad) { + public ItemModCladding(float rad) { super(ArmorModHandler.cladding, true, true, true, true); this.rad = rad; } @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + list.add(EnumChatFormatting.YELLOW + "+" + rad + " rad-resistance"); + list.add(""); + super.addInformation(itemstack, player, list, bool); + } - list.add(EnumChatFormatting.YELLOW + "Adds " + rad + " rad-resistance to armor pieces."); + @Override + public void addDesc(List list, ItemStack stack, ItemStack armor) { + list.add(EnumChatFormatting.YELLOW + " " + stack.getDisplayName() + " (+" + rad + " radiation resistence)"); } } diff --git a/src/main/java/com/hbm/items/armor/ItemModGasmask.java b/src/main/java/com/hbm/items/armor/ItemModGasmask.java new file mode 100644 index 000000000..fdad58052 --- /dev/null +++ b/src/main/java/com/hbm/items/armor/ItemModGasmask.java @@ -0,0 +1,66 @@ +package com.hbm.items.armor; + +import java.util.List; + +import com.hbm.handler.ArmorModHandler; +import com.hbm.render.model.ModelM65; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.renderer.entity.RenderPlayer; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderPlayerEvent; + +public class ItemModGasmask extends ItemArmorMod { + + private ModelM65 modelM65; + private ResourceLocation tex = new ResourceLocation("hbm:textures/models/ModelM65.png"); + + public ItemModGasmask() { + super(ArmorModHandler.helmet_only, true, false, false, false); + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + list.add(EnumChatFormatting.GREEN + "Gas protection"); + list.add(""); + super.addInformation(itemstack, player, list, bool); + } + + @Override + public void addDesc(List list, ItemStack stack, ItemStack armor) { + list.add(EnumChatFormatting.GREEN + " " + stack.getDisplayName() + " (gas protection)"); + } + + @Override + @SideOnly(Side.CLIENT) + public void modRender(RenderPlayerEvent.SetArmorModel event, ItemStack armor) { + + if(this.modelM65 == null) { + this.modelM65 = new ModelM65(); + } + + RenderPlayer renderer = event.renderer; + ModelBiped model = renderer.modelArmor; + EntityPlayer player = event.entityPlayer; + + modelM65.isSneak = model.isSneak; + + float interp = event.partialRenderTick; + float yawHead = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * interp; + float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * interp; + float yaw = yawHead - yawOffset; + float yawWrapped = MathHelper.wrapAngleTo180_float(yawHead - yawOffset); + float pitch = player.rotationPitch; + + Minecraft.getMinecraft().renderEngine.bindTexture(tex); + modelM65.render(event.entityPlayer, 0.0F, 0.0F, yawWrapped, yaw, pitch, 0.0625F); + } + +} diff --git a/src/main/java/com/hbm/items/armor/ItemModInsert.java b/src/main/java/com/hbm/items/armor/ItemModInsert.java new file mode 100644 index 000000000..edd612e13 --- /dev/null +++ b/src/main/java/com/hbm/items/armor/ItemModInsert.java @@ -0,0 +1,69 @@ +package com.hbm.items.armor; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.handler.ArmorModHandler; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraftforge.event.entity.living.LivingHurtEvent; + +public class ItemModInsert extends ItemArmorMod { + + float damageMod; + float projectileMod; + float explosionMod; + + public ItemModInsert(float damageMod, float projectileMod, float explosionMod) { + super(ArmorModHandler.kevlar, false, true, false, false); + this.damageMod = damageMod; + this.projectileMod = projectileMod; + this.explosionMod = explosionMod; + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + + if(damageMod != 1F) + list.add(EnumChatFormatting.RED + "-" + Math.round((1F - damageMod) * 100) + "% damage"); + if(projectileMod != 1F) + list.add(EnumChatFormatting.YELLOW + "-" + Math.round((1F - projectileMod) * 100) + "% projectile damage"); + if(explosionMod != 1F) + list.add(EnumChatFormatting.YELLOW + "-" + Math.round((1F - explosionMod) * 100) + "% explosion damage"); + + list.add(""); + super.addInformation(itemstack, player, list, bool); + } + + @Override + public void addDesc(List list, ItemStack stack, ItemStack armor) { + + List desc = new ArrayList(); + + if(damageMod != 1F) + desc.add("-" + Math.round((1F - damageMod) * 100) + "% dmg"); + if(projectileMod != 1F) + desc.add("-" + Math.round((1F - projectileMod) * 100) + "% proj"); + if(explosionMod != 1F) + desc.add("-" + Math.round((1F - explosionMod) * 100) + "% exp"); + + String join = String.join(" / ", desc); + + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (" + join + ")"); + } + + @Override + public void modDamage(LivingHurtEvent event, ItemStack armor) { + + event.ammount *= damageMod; + + if(event.source.isProjectile()) + event.ammount *= projectileMod; + + if(event.source.isExplosion()) + event.ammount *= explosionMod; + } + +} diff --git a/src/main/java/com/hbm/items/armor/ItemModPads.java b/src/main/java/com/hbm/items/armor/ItemModPads.java new file mode 100644 index 000000000..1061936cb --- /dev/null +++ b/src/main/java/com/hbm/items/armor/ItemModPads.java @@ -0,0 +1,70 @@ +package com.hbm.items.armor; + +import java.util.List; + +import com.hbm.handler.ArmorModHandler; +import com.hbm.items.ModItems; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; + +public class ItemModPads extends ItemArmorMod { + + float damageMod; + + public ItemModPads(float damageMod) { + super(ArmorModHandler.boots_only, false, false, false, true); + this.damageMod = damageMod; + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + + if(damageMod != 1F) + list.add(EnumChatFormatting.RED + "-" + Math.round((1F - damageMod) * 100) + "% fall damage"); + + if(this == ModItems.pads_static) + list.add(EnumChatFormatting.DARK_PURPLE + "Passively charges electric armmor when walking"); + + list.add(""); + super.addInformation(itemstack, player, list, bool); + } + + @Override + public void addDesc(List list, ItemStack stack, ItemStack armor) { + + if(this == ModItems.pads_static) + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (-" + Math.round((1F - damageMod) * 100) + "% fall dmg / passive charge)"); + else + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (-" + Math.round((1F - damageMod) * 100) + "% fall dmg)"); + } + + @Override + public void modUpdate(EntityLivingBase entity, ItemStack armor) { + + if(!entity.worldObj.isRemote && this == ModItems.pads_static && entity instanceof EntityPlayer) { + + EntityPlayer player = (EntityPlayer) entity; + + if(player.distanceWalkedModified != player.prevDistanceWalkedModified) { + + if(ArmorFSB.hasFSBArmorIgnoreCharge(player)) { + + for(int i = 0; i < 4; i++) { + + ItemStack stack = player.inventory.armorInventory[i]; + + if(stack != null && stack.getItem() instanceof ArmorFSBPowered) { + + ArmorFSBPowered powered = (ArmorFSBPowered) stack.getItem(); + + powered.chargeBattery(stack, Math.max(powered.drain / 2, powered.consumption / 40)); + } + } + } + } + } + } +} diff --git a/src/main/java/com/hbm/items/armor/ItemModPolish.java b/src/main/java/com/hbm/items/armor/ItemModPolish.java new file mode 100644 index 000000000..cb1b27645 --- /dev/null +++ b/src/main/java/com/hbm/items/armor/ItemModPolish.java @@ -0,0 +1,38 @@ +package com.hbm.items.armor; + +import java.util.List; + +import com.hbm.handler.ArmorModHandler; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraftforge.event.entity.living.LivingHurtEvent; + +public class ItemModPolish extends ItemArmorMod { + + public ItemModPolish() { + super(ArmorModHandler.extra, true, true, true, true); + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + + list.add(EnumChatFormatting.BLUE + "5% chance to nullify damage"); + list.add(""); + super.addInformation(itemstack, player, list, bool); + } + + @Override + public void addDesc(List list, ItemStack stack, ItemStack armor) { + list.add(EnumChatFormatting.BLUE + " " + stack.getDisplayName() + " (5% chance to nullify damage)"); + } + + @Override + public void modDamage(LivingHurtEvent event, ItemStack armor) { + + if(event.entity.worldObj.rand.nextInt(20) == 0) + event.ammount = 0; + } + +} diff --git a/src/main/java/com/hbm/items/armor/ItemModServos.java b/src/main/java/com/hbm/items/armor/ItemModServos.java new file mode 100644 index 000000000..d77d72d9b --- /dev/null +++ b/src/main/java/com/hbm/items/armor/ItemModServos.java @@ -0,0 +1,93 @@ +package com.hbm.items.armor; + +import java.util.List; + +import com.hbm.handler.ArmorModHandler; +import com.hbm.items.ModItems; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemArmor; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.EnumChatFormatting; + +public class ItemModServos extends ItemArmorMod { + + public ItemModServos() { + super(ArmorModHandler.servos, false, true, true, false); + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + + if(this == ModItems.servo_set) { + list.add(EnumChatFormatting.DARK_PURPLE + "Chestplate: Haste I / Damage II"); + list.add(EnumChatFormatting.DARK_PURPLE + "Leggings: Speed I / Jump II"); + } + if(this == ModItems.servo_set_desh) { + list.add(EnumChatFormatting.DARK_PURPLE + "Chestplate: Haste III / Damage III"); + list.add(EnumChatFormatting.DARK_PURPLE + "Leggings: Speed II / Jump III"); + } + + list.add(""); + super.addInformation(itemstack, player, list, bool); + } + + @Override + public void addDesc(List list, ItemStack stack, ItemStack armor) { + + ItemArmor item = (ItemArmor)armor.getItem(); + + if(item.armorType == 1) { + + if(this == ModItems.servo_set) { + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (Haste I / Damage II)"); + } + if(this == ModItems.servo_set_desh) { + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (Haste III / Damage III)"); + } + } + + if(item.armorType == 2) { + + if(this == ModItems.servo_set) { + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (Speed I / Jump II)"); + } + if(this == ModItems.servo_set_desh) { + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (Speed II / Jump III)"); + } + } + } + + public void modUpdate(EntityLivingBase entity, ItemStack armor) { + + ItemArmor item = (ItemArmor)armor.getItem(); + + if(item.armorType == 1) { + + if(this == ModItems.servo_set) { + entity.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 60, 0)); + entity.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 60, 1)); + } + if(this == ModItems.servo_set_desh) { + entity.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 60, 2)); + entity.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 60, 2)); + } + } + + if(item.armorType == 2) { + + if(this == ModItems.servo_set) { + entity.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 60, 0)); + entity.addPotionEffect(new PotionEffect(Potion.jump.id, 60, 1)); + } + if(this == ModItems.servo_set_desh) { + entity.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 60, 1)); + entity.addPotionEffect(new PotionEffect(Potion.jump.id, 60, 2)); + } + } + } + +} diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 76e9b022e..0080157a6 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -3,11 +3,13 @@ package com.hbm.items.tool; import java.util.List; import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; import com.hbm.world.generator.CellularDungeonFactory; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; @@ -16,7 +18,7 @@ public class ItemWandD extends Item { @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - if(world.isRemote) + if(!world.isRemote) return stack; MovingObjectPosition pos = Library.rayTrace(player, 500, 1); @@ -27,11 +29,19 @@ public class ItemWandD extends Item { int z = pos.blockZ; int y = world.getHeightValue(x, z); + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "rift"); + data.setDouble("posX", x); + data.setDouble("posY", y + 1); + data.setDouble("posZ", z); + + MainRegistry.proxy.effectNT(data); + //new Ruin001().generate_r0(world, world.rand, x, y - 8, z); - CellularDungeonFactory.jungle.generate(world, x, y, z, world.rand); + /*CellularDungeonFactory.jungle.generate(world, x, y, z, world.rand); CellularDungeonFactory.jungle.generate(world, x, y + 4, z, world.rand); - CellularDungeonFactory.jungle.generate(world, x, y + 8, z, world.rand); + CellularDungeonFactory.jungle.generate(world, x, y + 8, z, world.rand);*/ //new ArcticVault().trySpawn(world, x, y, z); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index d3cb36366..6fd14ba13 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -1075,6 +1075,11 @@ public class ClientProxy extends ServerProxy { Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleHadron(man, world, x, y, z)); } + + if("rift".equals(type)) { + + Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleRift(man, world, x, y, z)); + } } @Override diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index fca62bd13..d5c503f0b 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -14,7 +14,6 @@ import org.apache.commons.lang3.math.NumberUtils; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; import com.hbm.config.MobConfig; -import com.hbm.config.RadiationConfig; import com.hbm.config.WorldConfig; import com.hbm.entity.missile.EntityMissileBaseAdvanced; import com.hbm.entity.missile.EntityMissileCustom; @@ -22,17 +21,18 @@ import com.hbm.entity.mob.EntityDuck; import com.hbm.entity.mob.EntityNuclearCreeper; import com.hbm.entity.mob.EntityQuackos; import com.hbm.entity.mob.EntityTaintedCreeper; -import com.hbm.entity.mob.botprime.EntityBOTPrimeHead; import com.hbm.entity.projectile.EntityBurningFOEQ; import com.hbm.entity.projectile.EntityMeteor; import com.hbm.extprop.HbmLivingProps; import com.hbm.extprop.HbmPlayerProps; +import com.hbm.handler.ArmorModHandler; import com.hbm.handler.BossSpawnHandler; import com.hbm.handler.EntityEffectHandler; import com.hbm.handler.RadiationWorldHandler; import com.hbm.handler.HTTPHandler; import com.hbm.items.ModItems; import com.hbm.items.armor.ArmorFSB; +import com.hbm.items.armor.ItemArmorMod; import com.hbm.items.special.ItemHot; import com.hbm.items.weapon.ItemGunBase; import com.hbm.lib.Library; @@ -40,22 +40,18 @@ import com.hbm.lib.ModDamageSource; import com.hbm.lib.RefStrings; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.PlayerInformPacket; -import com.hbm.packet.ExtPropPacket; import com.hbm.saveddata.AuxSavedData; import com.hbm.saveddata.RadiationSavedData; import com.hbm.util.ArmorUtil; -import com.hbm.util.ContaminationUtil; import com.hbm.util.EnchantmentUtil; import com.hbm.world.generator.TimedGenerator; -import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.PlayerEvent; import cpw.mods.fml.common.gameevent.TickEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.common.gameevent.TickEvent.WorldTickEvent; import cpw.mods.fml.relauncher.ReflectionHelper; -import net.minecraft.block.Block; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.EntityLivingBase; @@ -72,7 +68,6 @@ import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.IRecipe; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; @@ -80,15 +75,12 @@ import net.minecraft.tileentity.TileEntitySign; import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.FoodStats; -import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; -import net.minecraft.world.chunk.Chunk; import net.minecraftforge.event.AnvilUpdateEvent; import net.minecraftforge.event.ServerChatEvent; import net.minecraftforge.event.entity.EntityEvent; import net.minecraftforge.event.entity.EntityEvent.EnteringChunk; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; import net.minecraftforge.event.entity.living.LivingAttackEvent; import net.minecraftforge.event.entity.living.LivingDeathEvent; import net.minecraftforge.event.entity.living.LivingEvent.LivingJumpEvent; @@ -226,6 +218,22 @@ public class ModEventHandler @SubscribeEvent public void onLivingUpdate(LivingUpdateEvent event) { + + for(int i = 1; i < 5; i++) { + + ItemStack armor = event.entityLiving.getEquipmentInSlot(i); + + if(armor != null && ArmorModHandler.hasMods(armor)) { + + for(ItemStack mod : ArmorModHandler.pryMods(armor)) { + + if(mod != null && mod.getItem() instanceof ItemArmorMod) { + ((ItemArmorMod)mod.getItem()).modUpdate(event.entityLiving, armor); + } + } + } + } + EntityEffectHandler.onUpdate(event.entityLiving); } @@ -458,6 +466,21 @@ public class ModEventHandler @SubscribeEvent public void onEntityDamaged(LivingHurtEvent event) { + for(int i = 1; i < 5; i++) { + + ItemStack armor = event.entityLiving.getEquipmentInSlot(i); + + if(armor != null && ArmorModHandler.hasMods(armor)) { + + for(ItemStack mod : ArmorModHandler.pryMods(armor)) { + + if(mod != null && mod.getItem() instanceof ItemArmorMod) { + ((ItemArmorMod)mod.getItem()).modDamage(event, armor); + } + } + } + } + ArmorFSB.handleHurt(event); } diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 711bfddad..c54578a0f 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -19,6 +19,7 @@ import com.hbm.inventory.gui.GUIArmorTable; import com.hbm.items.ModItems; import com.hbm.items.armor.ArmorFSB; import com.hbm.items.armor.ArmorFSBPowered; +import com.hbm.items.armor.ItemArmorMod; import com.hbm.items.armor.JetpackBase; import com.hbm.items.weapon.ItemGunBase; import com.hbm.lib.Library; @@ -226,6 +227,27 @@ public class ModEventHandlerClient { renderer.modelArmorChestplate.aimedBow = true; } } + + @SubscribeEvent + public void onRenderArmorEvent(RenderPlayerEvent.SetArmorModel event) { + + EntityPlayer player = event.entityPlayer; + + for(int i = 0; i < 4; i++) { + + ItemStack armor = player.getCurrentArmor(i); + + if(armor != null && ArmorModHandler.hasMods(armor)) { + + for(ItemStack mod : ArmorModHandler.pryMods(armor)) { + + if(mod != null && mod.getItem() instanceof ItemArmorMod) { + ((ItemArmorMod)mod.getItem()).modRender(event, armor); + } + } + } + } + } @SubscribeEvent public void clickHandler(MouseEvent event) { @@ -363,8 +385,10 @@ public class ModEventHandlerClient { for(int i = 0; i < 8; i++) { - if(mods[i] != null) - list.add(" " + EnumChatFormatting.DARK_RED + mods[i].getDisplayName()); + if(mods[i] != null && mods[i].getItem() instanceof ItemArmorMod) { + + ((ItemArmorMod)mods[i].getItem()).addDesc(list, mods[i], stack); + } } } } diff --git a/src/main/java/com/hbm/particle/ParticleRift.java b/src/main/java/com/hbm/particle/ParticleRift.java new file mode 100644 index 000000000..f56f1025c --- /dev/null +++ b/src/main/java/com/hbm/particle/ParticleRift.java @@ -0,0 +1,95 @@ +package com.hbm.particle; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; +import com.hbm.main.ResourceManager; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.particle.EntityFX; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; + +@SideOnly(Side.CLIENT) +public class ParticleRift extends EntityFX { + + private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/particle/hadron.png"); + private TextureManager theRenderEngine; + + public ParticleRift(TextureManager texman, World world, double x, double y, double z) { + super(world, x, y, z); + this.theRenderEngine = texman; + this.particleMaxAge = 10; + } + + public int getFXLayer() { + return 3; + } + + public void renderParticle(Tessellator tess, float interp, float x, float y, float z, float tx, float tz) { + + this.theRenderEngine.bindTexture(texture); + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_BLEND); + GL11.glAlphaFunc(GL11.GL_GREATER, 0); + GL11.glDepthMask(false); + OpenGlHelper.glBlendFunc(GL11.GL_ONE_MINUS_DST_COLOR, GL11.GL_ONE_MINUS_SRC_COLOR, 1, 0); + RenderHelper.disableStandardItemLighting(); + + float pX = (float) (this.prevPosX + (this.posX - this.prevPosX) * (double) interp - interpPosX); + float pY = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double) interp - interpPosY); + float pZ = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - interpPosZ); + + float scale = (this.particleAge + interp) * 0.5F; + + GL11.glDisable(GL11.GL_TEXTURE_2D); + /*tess.startDrawingQuads(); + + tess.setNormal(0.0F, 1.0F, 0.0F); + tess.setBrightness(240); + + this.particleAlpha = 1 - (((float)this.particleAge + interp) / (float)this.particleMaxAge); + float scale = (this.particleAge + interp) * 0.05F; + + tess.setColorRGBA_F(1.0F, 1.0F, 1.0F, this.particleAlpha); + + float pX = (float) (this.prevPosX + (this.posX - this.prevPosX) * (double) interp - interpPosX); + float pY = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double) interp - interpPosY); + float pZ = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - interpPosZ); + + tess.addVertexWithUV((double)(pX - x * scale - tx * scale), (double)(pY - y * scale), (double)(pZ - z * scale - tz * scale), 1, 1); + tess.addVertexWithUV((double)(pX - x * scale + tx * scale), (double)(pY + y * scale), (double)(pZ - z * scale + tz * scale), 1, 0); + tess.addVertexWithUV((double)(pX + x * scale + tx * scale), (double)(pY + y * scale), (double)(pZ + z * scale + tz * scale), 0, 0); + tess.addVertexWithUV((double)(pX + x * scale - tx * scale), (double)(pY - y * scale), (double)(pZ + z * scale - tz * scale), 0, 1); + tess.draw();*/ + + GL11.glPushMatrix(); + GL11.glTranslated(pX, pY, pZ); + GL11.glColor4f(1F, 1F, 1F, 1F); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glScalef(scale, scale, scale); + ResourceManager.sphere_uv.renderAll(); + GL11.glScalef(1.02F, 1.02F, 1.02F); + ResourceManager.sphere_uv.renderAll(); + GL11.glScalef(1.05F, 1.05F, 1.05F); + ResourceManager.sphere_uv.renderAll(); + GL11.glScalef(1.02F, 1.02F, 1.02F); + ResourceManager.sphere_uv.renderAll(); + GL11.glScalef(1.05F, 1.05F, 1.05F); + ResourceManager.sphere_uv.renderAll(); + GL11.glPopMatrix(); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glPolygonOffset(0.0F, 0.0F); + OpenGlHelper.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, 1, 0); + GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); + GL11.glEnable(GL11.GL_LIGHTING); + } +} diff --git a/src/main/java/com/hbm/util/ArmorUtil.java b/src/main/java/com/hbm/util/ArmorUtil.java index d6214450a..eebf6f469 100644 --- a/src/main/java/com/hbm/util/ArmorUtil.java +++ b/src/main/java/com/hbm/util/ArmorUtil.java @@ -1,5 +1,6 @@ package com.hbm.util; +import com.hbm.handler.ArmorModHandler; import com.hbm.handler.HazmatRegistry; import com.hbm.items.ModItems; import com.hbm.lib.Library; @@ -210,6 +211,15 @@ public class ArmorUtil { if(player.isPotionActive(HbmPotion.mutation)) return true; + ItemStack helmet = player.getCurrentArmor(3); + if(helmet != null && ArmorModHandler.hasMods(helmet)) { + + ItemStack mods[] = ArmorModHandler.pryMods(helmet); + + if(mods[ArmorModHandler.helmet_only] != null && mods[ArmorModHandler.helmet_only].getItem() == ModItems.attachment_mask) + return true; + } + return false; }