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 c600c3956..d0492de58 100644 Binary files a/src/main/java/assets/hbm/textures/gui/machine/gui_armor_modifier.png and b/src/main/java/assets/hbm/textures/gui/machine/gui_armor_modifier.png differ diff --git a/src/main/java/assets/hbm/textures/items/armor_polish.png b/src/main/java/assets/hbm/textures/items/armor_polish.png new file mode 100644 index 000000000..3e886b578 Binary files /dev/null and b/src/main/java/assets/hbm/textures/items/armor_polish.png differ 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 000000000..374ecc2d2 Binary files /dev/null and b/src/main/java/assets/hbm/textures/items/attachment_mask.png differ diff --git a/src/main/java/assets/hbm/textures/items/insert_steel.png b/src/main/java/assets/hbm/textures/items/insert_steel.png new file mode 100644 index 000000000..d690ab860 Binary files /dev/null and b/src/main/java/assets/hbm/textures/items/insert_steel.png differ diff --git a/src/main/java/assets/hbm/textures/items/pads_rubber.png b/src/main/java/assets/hbm/textures/items/pads_rubber.png new file mode 100644 index 000000000..79904fb04 Binary files /dev/null and b/src/main/java/assets/hbm/textures/items/pads_rubber.png differ 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 000000000..53c58a3cc Binary files /dev/null and b/src/main/java/assets/hbm/textures/items/pads_slime.png differ diff --git a/src/main/java/assets/hbm/textures/items/pads_static.png b/src/main/java/assets/hbm/textures/items/pads_static.png new file mode 100644 index 000000000..ce08ea106 Binary files /dev/null and b/src/main/java/assets/hbm/textures/items/pads_static.png differ 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 000000000..5347451d0 Binary files /dev/null and b/src/main/java/assets/hbm/textures/items/servo_set.png differ diff --git a/src/main/java/assets/hbm/textures/items/servo_set_desh.png b/src/main/java/assets/hbm/textures/items/servo_set_desh.png new file mode 100644 index 000000000..30a6353bc Binary files /dev/null and b/src/main/java/assets/hbm/textures/items/servo_set_desh.png differ 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; }