From fe3a1adfea6edb205f4cd7622c2d5eb6bdb28270 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 28 Mar 2021 02:35:25 +0100 Subject: [PATCH] NEI SILEX handler, rebalanced hazmats, liquidator suit, more block rads --- src/main/java/com/hbm/blocks/ModBlocks.java | 12 +- .../com/hbm/blocks/generic/BlockFallout.java | 1 + .../com/hbm/blocks/generic/BlockHazard.java | 103 +++++---- .../hbm/blocks/generic/BlockNuclearWaste.java | 7 +- .../java/com/hbm/extprop/HbmLivingProps.java | 12 ++ .../java/com/hbm/handler/ArmorModHandler.java | 7 + .../com/hbm/handler/EntityEffectHandler.java | 10 +- .../java/com/hbm/handler/HazmatRegistry.java | 170 ++++++++++++++- .../java/com/hbm/handler/WeaponAbility.java | 2 +- .../handler/nei/AssemblerRecipeHandler.java | 2 +- .../hbm/handler/nei/BoilerRecipeHandler.java | 2 +- .../handler/nei/CMBFurnaceRecipeHandler.java | 2 +- .../handler/nei/ChemplantRecipeHandler.java | 2 +- .../nei/CrystallizerRecipeHandler.java | 110 +++++----- .../handler/nei/CyclotronRecipeHandler.java | 2 +- .../hbm/handler/nei/FluidRecipeHandler.java | 2 +- .../hbm/handler/nei/FusionRecipeHandler.java | 2 +- .../hbm/handler/nei/HadronRecipeHandler.java | 134 ++++++------ .../hbm/handler/nei/PressRecipeHandler.java | 179 ++++++++-------- .../hbm/handler/nei/ReactorRecipeHandler.java | 138 ++++++------ .../handler/nei/RefineryRecipeHandler.java | 127 ++++++----- .../hbm/handler/nei/SILEXRecipeHandler.java | 180 ++++++++++++++++ .../handler/nei/ShredderRecipeHandler.java | 199 +++++++++--------- .../java/com/hbm/interfaces/IItemHazard.java | 5 + .../java/com/hbm/inventory/SILEXRecipes.java | 21 ++ src/main/java/com/hbm/items/ModItems.java | 37 +++- .../com/hbm/items/armor/ArmorLiquidator.java | 49 +++++ .../com/hbm/items/armor/ItemModCladding.java | 6 +- .../com/hbm/items/special/ItemHazard.java | 8 +- .../com/hbm/items/special/ItemSyringe.java | 18 +- src/main/java/com/hbm/main/ClientProxy.java | 7 + src/main/java/com/hbm/main/MainRegistry.java | 120 +---------- .../com/hbm/main/ModEventHandlerClient.java | 6 +- src/main/java/com/hbm/main/NEIConfig.java | 17 +- .../hbm/render/tileentity/RenderFENSU.java | 48 ++--- .../com/hbm/render/tileentity/RenderITER.java | 112 +++++----- .../render/tileentity/RenderTurretTauon.java | 4 + .../machine/TileEntityFWatzCore.java | 3 +- .../TileEntityMachinePlasmaHeater.java | 2 + .../turret/TileEntityTurretTauon.java | 7 +- src/main/java/com/hbm/util/ArmorUtil.java | 10 + src/main/resources/assets/hbm/lang/de_DE.lang | 2 +- src/main/resources/assets/hbm/lang/en_US.lang | 2 +- .../hbm/textures/armor/liquidator_1.png | Bin 0 -> 572 bytes .../hbm/textures/armor/liquidator_2.png | Bin 0 -> 384 bytes .../hbm/textures/armor/liquidator_helmet.png | Bin 0 -> 880 bytes .../hbm/textures/blocks/rbmk_element.png | Bin 0 -> 866 bytes .../hbm/textures/blocks/rbmk_reflector.png | Bin 0 -> 832 bytes .../assets/hbm/textures/blocks/rbmk_rods.png | Bin 0 -> 892 bytes .../assets/hbm/textures/blocks/rbmk_side.png | Bin 0 -> 467 bytes .../assets/hbm/textures/blocks/rbmk_top.png | Bin 0 -> 397 bytes .../hbm/textures/gui/{ => nei}/gui_nei.png | Bin .../gui/{ => nei}/gui_nei_assembler.png | Bin .../textures/gui/{ => nei}/gui_nei_boiler.png | Bin .../gui/{ => nei}/gui_nei_chemplant.png | Bin .../textures/gui/{ => nei}/gui_nei_cmb.png | Bin .../gui/{ => nei}/gui_nei_cyclotron.png | Bin .../gui/{ => nei}/gui_nei_deuterium.png | Bin .../textures/gui/{ => nei}/gui_nei_fluid.png | Bin .../textures/gui/{ => nei}/gui_nei_fusion.png | Bin .../textures/gui/{ => nei}/gui_nei_hadron.png | Bin .../textures/gui/{ => nei}/gui_nei_nuke.png | Bin .../textures/gui/{ => nei}/gui_nei_press.png | Bin .../gui/{ => nei}/gui_nei_refinery.png | Bin .../gui/{ => nei}/gui_nei_schrabidium.png | Bin .../gui/{ => nei}/gui_nei_shredder.png | Bin .../hbm/textures/gui/nei/gui_nei_silex.png | Bin 0 -> 767 bytes .../hbm/textures/items/cladding_iron.png | Bin 0 -> 260 bytes .../textures/models/machines/rbmk_control.png | Bin 0 -> 3677 bytes 69 files changed, 1114 insertions(+), 775 deletions(-) create mode 100644 src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java create mode 100644 src/main/java/com/hbm/items/armor/ArmorLiquidator.java create mode 100644 src/main/resources/assets/hbm/textures/armor/liquidator_1.png create mode 100644 src/main/resources/assets/hbm/textures/armor/liquidator_2.png create mode 100644 src/main/resources/assets/hbm/textures/armor/liquidator_helmet.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk_element.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk_reflector.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk_rods.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk_top.png rename src/main/resources/assets/hbm/textures/gui/{ => nei}/gui_nei.png (100%) rename src/main/resources/assets/hbm/textures/gui/{ => nei}/gui_nei_assembler.png (100%) rename src/main/resources/assets/hbm/textures/gui/{ => nei}/gui_nei_boiler.png (100%) rename src/main/resources/assets/hbm/textures/gui/{ => nei}/gui_nei_chemplant.png (100%) rename src/main/resources/assets/hbm/textures/gui/{ => nei}/gui_nei_cmb.png (100%) rename src/main/resources/assets/hbm/textures/gui/{ => nei}/gui_nei_cyclotron.png (100%) rename src/main/resources/assets/hbm/textures/gui/{ => nei}/gui_nei_deuterium.png (100%) rename src/main/resources/assets/hbm/textures/gui/{ => nei}/gui_nei_fluid.png (100%) rename src/main/resources/assets/hbm/textures/gui/{ => nei}/gui_nei_fusion.png (100%) rename src/main/resources/assets/hbm/textures/gui/{ => nei}/gui_nei_hadron.png (100%) rename src/main/resources/assets/hbm/textures/gui/{ => nei}/gui_nei_nuke.png (100%) rename src/main/resources/assets/hbm/textures/gui/{ => nei}/gui_nei_press.png (100%) rename src/main/resources/assets/hbm/textures/gui/{ => nei}/gui_nei_refinery.png (100%) rename src/main/resources/assets/hbm/textures/gui/{ => nei}/gui_nei_schrabidium.png (100%) rename src/main/resources/assets/hbm/textures/gui/{ => nei}/gui_nei_shredder.png (100%) create mode 100644 src/main/resources/assets/hbm/textures/gui/nei/gui_nei_silex.png create mode 100644 src/main/resources/assets/hbm/textures/items/cladding_iron.png create mode 100644 src/main/resources/assets/hbm/textures/models/machines/rbmk_control.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 75c0a19d7..d49f8ca72 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1042,8 +1042,8 @@ public class ModBlocks { block_steel = new BlockGeneric(Material.iron).setBlockName("block_steel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); block_lead = new BlockGeneric(Material.iron).setBlockName("block_lead").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_lead"); block_trinitite = new BlockHazard().addRadiation(ItemHazard.trn * ItemHazard.block).toBlock().setBlockName("block_trinitite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_trinitite"); - block_waste = new BlockNuclearWaste(Material.iron, 5F, 60F).setBlockName("block_waste").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_waste"); - block_waste_painted = new BlockNuclearWaste(Material.iron, 5F, 60F).setBlockName("block_waste_painted").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_waste_painted"); + block_waste = new BlockNuclearWaste().setDisplayEffect(ExtDisplayEffect.RADFOG).addRadiation(ItemHazard.wst * ItemHazard.block).toBlock().setBlockName("block_waste").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_waste"); + block_waste_painted = new BlockNuclearWaste().setDisplayEffect(ExtDisplayEffect.RADFOG).addRadiation(ItemHazard.wst * ItemHazard.block).toBlock().setBlockName("block_waste_painted").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_waste_painted"); ancient_scrap = new BlockOutgas(Material.iron, true, 1, true, true).addRadiation(150F).toBlock().setBlockName("ancient_scrap").setCreativeTab(MainRegistry.blockTab).setHardness(100.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":ancient_scrap"); block_scrap = new BlockFalling(Material.sand).setBlockName("block_scrap").setCreativeTab(MainRegistry.blockTab).setHardness(2.5F).setResistance(5.0F).setStepSound(Block.soundTypeGravel).setBlockTextureName(RefStrings.MODID + ":block_scrap"); block_electrical_scrap = new BlockFalling(Material.iron).setBlockName("block_electrical_scrap").setCreativeTab(MainRegistry.blockTab).setHardness(2.5F).setResistance(5.0F).setStepSound(Block.soundTypeMetal).setBlockTextureName(RefStrings.MODID + ":electrical_scrap_alt2"); @@ -1226,7 +1226,7 @@ public class ModBlocks { nuke_solinium = new NukeSolinium(Material.iron).setBlockName("nuke_solinium").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":nuke_solinium"); nuke_n2 = new NukeN2(Material.iron).setBlockName("nuke_n2").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":nuke_n2"); nuke_n45 = new NukeN45(Material.iron).setBlockName("nuke_n45").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":code"); - nuke_fstbmb = new NukeBalefire(Material.iron, guiID_nuke_fstbmb).addDigamma(0.1F).toBlock().setBlockName("nuke_fstbmb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":nuke_fstbmb"); + nuke_fstbmb = new NukeBalefire(Material.iron, guiID_nuke_fstbmb).addDigamma(0.01F).toBlock().setBlockName("nuke_fstbmb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":nuke_fstbmb"); cel_prime = new CelPrime(Material.iron).setBlockName("cel_prime").setCreativeTab(null).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":code"); cel_prime_terminal = new CelPrimePart(Material.iron).setBlockName("cel_prime_terminal").setCreativeTab(null).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":code"); @@ -1324,9 +1324,9 @@ public class ModBlocks { machine_battery_potato = new MachineBattery(Material.iron, 10000).setBlockName("machine_battery_potato").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_battery = new MachineBattery(Material.iron, 1000000).setBlockName("machine_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_lithium_battery = new MachineBattery(Material.iron, 15000000).setBlockName("machine_lithium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_schrabidium_battery = new MachineBattery(Material.iron, 500000000).setBlockName("machine_schrabidium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_dineutronium_battery = new MachineBattery(Material.iron, 150000000000L).setBlockName("machine_dineutronium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_lithium_battery = new MachineBattery(Material.iron, 50000000).setBlockName("machine_lithium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_schrabidium_battery = new MachineBattery(Material.iron, 25000000000L).setBlockName("machine_schrabidium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_dineutronium_battery = new MachineBattery(Material.iron, 1000000000000L).setBlockName("machine_dineutronium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_fensu = new MachineFENSU(Material.iron).setBlockName("machine_fensu").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_fensu"); machine_coal_off = new MachineCoal(false).setBlockName("machine_coal_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); diff --git a/src/main/java/com/hbm/blocks/generic/BlockFallout.java b/src/main/java/com/hbm/blocks/generic/BlockFallout.java index 08570130d..eb00fb56a 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockFallout.java +++ b/src/main/java/com/hbm/blocks/generic/BlockFallout.java @@ -25,6 +25,7 @@ public class BlockFallout extends Block implements IItemHazard { public BlockFallout(Material mat) { super(mat); + this.module = new ItemHazardModule(); this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.125F, 1.0F); } diff --git a/src/main/java/com/hbm/blocks/generic/BlockHazard.java b/src/main/java/com/hbm/blocks/generic/BlockHazard.java index 5eb550353..aece18c93 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockHazard.java +++ b/src/main/java/com/hbm/blocks/generic/BlockHazard.java @@ -3,6 +3,7 @@ package com.hbm.blocks.generic; import java.util.Random; import com.hbm.interfaces.IItemHazard; +import com.hbm.main.MainRegistry; import com.hbm.modules.ItemHazardModule; import com.hbm.saveddata.RadiationSavedData; @@ -10,6 +11,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -24,6 +26,11 @@ public class BlockHazard extends Block implements IItemHazard { public BlockHazard() { this(Material.iron); } + + public BlockHazard(Material mat) { + super(mat); + this.module = new ItemHazardModule(); + } public BlockHazard setDisplayEffect(ExtDisplayEffect extEffect) { this.extEffect = extEffect; @@ -39,61 +46,14 @@ public class BlockHazard extends Block implements IItemHazard { switch(extEffect) { case RADFOG: - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - - if(dir == ForgeDirection.DOWN) - continue; - - if(world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ).getMaterial() == Material.air) { - - double ix = x + 0.5F + dir.offsetX + rand.nextDouble() - 0.5D; - double iy = y + 0.5F + dir.offsetY + rand.nextDouble() - 0.5D; - double iz = z + 0.5F + dir.offsetZ + rand.nextDouble() - 0.5D; - - if(dir.offsetX != 0) - ix = x + 0.5F + dir.offsetX * 0.5 + rand.nextDouble() * 0.25 * dir.offsetX; - if(dir.offsetY != 0) - iy = y + 0.5F + dir.offsetY * 0.5 + rand.nextDouble() * 0.25 * dir.offsetY; - if(dir.offsetZ != 0) - iz = z + 0.5F + dir.offsetZ * 0.5 + rand.nextDouble() * 0.25 * dir.offsetZ; - - world.spawnParticle("townura", ix, iy, iz, 0.0, 0.0, 0.0); - } - } - break; - case SCHRAB: + case FLAMES: + sPart(world, x, y, z, rand); break; case SPARKS: break; - case FLAMES: - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - - if(dir == ForgeDirection.DOWN) - continue; - - if(world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ).getMaterial() == Material.air) { - - double ix = x + 0.5F + dir.offsetX + rand.nextDouble() - 0.5D; - double iy = y + 0.5F + dir.offsetY + rand.nextDouble() - 0.5D; - double iz = z + 0.5F + dir.offsetZ + rand.nextDouble() - 0.5D; - - if(dir.offsetX != 0) - ix = x + 0.5F + dir.offsetX * 0.5 + rand.nextDouble() * 0.25 * dir.offsetX; - if(dir.offsetY != 0) - iy = y + 0.5F + dir.offsetY * 0.5 + rand.nextDouble() * 0.25 * dir.offsetY; - if(dir.offsetZ != 0) - iz = z + 0.5F + dir.offsetZ * 0.5 + rand.nextDouble() * 0.25 * dir.offsetZ; - - world.spawnParticle("flame", ix, iy, iz, 0.0, 0.0, 0.0); - world.spawnParticle("smoke", ix, iy, iz, 0.0, 0.0, 0.0); - world.spawnParticle("smoke", ix, iy, iz, 0.0, 0.1, 0.0); - } - } - break; - case LAVAPOP: world.spawnParticle("lava", x + rand.nextFloat(), y + 1.1F, z + rand.nextFloat(), 0.0D, 0.0D, 0.0D); break; @@ -101,10 +61,45 @@ public class BlockHazard extends Block implements IItemHazard { default: break; } } + + private void sPart(World world, int x, int y, int z, Random rand) { - public BlockHazard(Material mat) { - super(mat); - this.module = new ItemHazardModule(); + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + + if(dir == ForgeDirection.DOWN && this.extEffect == ExtDisplayEffect.FLAMES) + continue; + + if(world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ).getMaterial() == Material.air) { + + double ix = x + 0.5F + dir.offsetX + rand.nextDouble() * 3 - 1.5D; + double iy = y + 0.5F + dir.offsetY + rand.nextDouble() * 3 - 1.5D; + double iz = z + 0.5F + dir.offsetZ + rand.nextDouble() * 3 - 1.5D; + + if(dir.offsetX != 0) + ix = x + 0.5F + dir.offsetX * 0.5 + rand.nextDouble() * dir.offsetX; + if(dir.offsetY != 0) + iy = y + 0.5F + dir.offsetY * 0.5 + rand.nextDouble() * dir.offsetY; + if(dir.offsetZ != 0) + iz = z + 0.5F + dir.offsetZ * 0.5 + rand.nextDouble() * dir.offsetZ; + + if(this.extEffect == ExtDisplayEffect.RADFOG) { + world.spawnParticle("townaura", ix, iy, iz, 0.0, 0.0, 0.0); + } + if(this.extEffect == ExtDisplayEffect.SCHRAB) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "schrabfog"); + data.setDouble("posX", ix); + data.setDouble("posY", iy); + data.setDouble("posZ", iz); + MainRegistry.proxy.effectNT(data); + } + if(this.extEffect == ExtDisplayEffect.FLAMES) { + world.spawnParticle("flame", ix, iy, iz, 0.0, 0.0, 0.0); + world.spawnParticle("smoke", ix, iy, iz, 0.0, 0.0, 0.0); + world.spawnParticle("smoke", ix, iy, iz, 0.0, 0.1, 0.0); + } + } + } } @Override @@ -115,8 +110,8 @@ public class BlockHazard extends Block implements IItemHazard { @Override public IItemHazard addRadiation(float radiation) { this.getModule().addRadiation(radiation); - this.radIn = radiation; - this.radMax = radiation * 10; + this.radIn = radiation * 0.1F; + this.radMax = radiation; return this; } diff --git a/src/main/java/com/hbm/blocks/generic/BlockNuclearWaste.java b/src/main/java/com/hbm/blocks/generic/BlockNuclearWaste.java index dd90aa3a7..48a5f9585 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockNuclearWaste.java +++ b/src/main/java/com/hbm/blocks/generic/BlockNuclearWaste.java @@ -4,16 +4,11 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; -import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class BlockNuclearWaste extends BlockOre { - - public BlockNuclearWaste(Material mat, float rad, float max) { - super(mat, rad, max); - } +public class BlockNuclearWaste extends BlockHazard { @Override public void updateTick(World world, int x, int y, int z, Random rand) { diff --git a/src/main/java/com/hbm/extprop/HbmLivingProps.java b/src/main/java/com/hbm/extprop/HbmLivingProps.java index efeae04c8..6b5523ef4 100644 --- a/src/main/java/com/hbm/extprop/HbmLivingProps.java +++ b/src/main/java/com/hbm/extprop/HbmLivingProps.java @@ -4,13 +4,18 @@ import java.util.UUID; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.ai.attributes.IAttributeInstance; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraftforge.common.IExtendedEntityProperties; @@ -92,6 +97,13 @@ public class HbmLivingProps implements IExtendedEntityProperties { entity.attackEntityFrom(ModDamageSource.digamma, 500F); entity.setHealth(0); entity.onDeath(ModDamageSource.digamma); + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "sweat"); + data.setInteger("count", 50); + data.setInteger("block", Block.getIdFromBlock(Blocks.soul_sand)); + data.setInteger("entity", entity.getEntityId()); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, 0, 0, 0), new TargetPoint(entity.dimension, entity.posX, entity.posY, entity.posZ, 50)); } if(entity instanceof EntityPlayer) { diff --git a/src/main/java/com/hbm/handler/ArmorModHandler.java b/src/main/java/com/hbm/handler/ArmorModHandler.java index 98a5a0b35..2481dab81 100644 --- a/src/main/java/com/hbm/handler/ArmorModHandler.java +++ b/src/main/java/com/hbm/handler/ArmorModHandler.java @@ -26,6 +26,13 @@ public class ArmorModHandler { UUID.fromString("426ee0d0-7587-4697-aaef-4772ab202e78") }; + public static final UUID[] fixedUUIDs = new UUID[] { + UUID.fromString("e572caf4-3e65-4152-bc79-c4d4048cbd29"), + UUID.fromString("bed30902-8a6a-4769-9f65-2a9b67469fff"), + UUID.fromString("baebf7b3-1eda-4a14-b233-068e2493e9a2"), + UUID.fromString("28016c1b-d992-4324-9409-a9f9f0ffb85c") + }; + //The key for the NBTTagCompound that holds the armor mods public static final String MOD_COMPOUND_KEY = "ntm_armor_mods"; //The key for the specific slot inside the armor mod NBT Tag diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index ea80d7b0a..30a905db8 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -1,5 +1,7 @@ package com.hbm.handler; +import java.util.Random; + import com.hbm.config.RadiationConfig; import com.hbm.extprop.HbmLivingProps; import com.hbm.main.MainRegistry; @@ -67,7 +69,9 @@ public class EntityEffectHandler { ContaminationUtil.applyRadData(entity, RadiationConfig.cont * 0.0005F); } - if(HbmLivingProps.getRadiation(entity) > 600 && world.getTotalWorldTime() % 600 == 0) { + Random rand = new Random(entity.getEntityId()); + + if(HbmLivingProps.getRadiation(entity) > 600 && (world.getTotalWorldTime() + rand.nextInt(600)) % 600 == 0) { NBTTagCompound nbt = new NBTTagCompound(); nbt.setString("type", "bloodvomit"); @@ -76,7 +80,7 @@ public class EntityEffectHandler { world.playSoundEffect(ix, iy, iz, "hbm:entity.vomit", 1.0F, 1.0F); entity.addPotionEffect(new PotionEffect(Potion.hunger.id, 60, 19)); - } else if(HbmLivingProps.getRadiation(entity) > 200 && world.getTotalWorldTime() % 1200 == 0) { + } else if(HbmLivingProps.getRadiation(entity) > 200 && (world.getTotalWorldTime() + rand.nextInt(1200)) % 1200 == 0) { NBTTagCompound nbt = new NBTTagCompound(); nbt.setString("type", "vomit"); @@ -88,7 +92,7 @@ public class EntityEffectHandler { } - if(HbmLivingProps.getRadiation(entity) > 900 && world.getTotalWorldTime() % 10 == 0) { + if(HbmLivingProps.getRadiation(entity) > 900 && (world.getTotalWorldTime() + rand.nextInt(10)) % 10 == 0) { NBTTagCompound nbt = new NBTTagCompound(); nbt.setString("type", "sweat"); diff --git a/src/main/java/com/hbm/handler/HazmatRegistry.java b/src/main/java/com/hbm/handler/HazmatRegistry.java index e792ab2e2..30b8b6d8a 100644 --- a/src/main/java/com/hbm/handler/HazmatRegistry.java +++ b/src/main/java/com/hbm/handler/HazmatRegistry.java @@ -2,31 +2,189 @@ package com.hbm.handler; import java.util.HashMap; +import com.hbm.items.ModItems; import com.hbm.items.armor.ItemModCladding; import com.hbm.lib.Library; import com.hbm.potion.HbmPotion; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public class HazmatRegistry { - private static HashMap entries = new HashMap(); + public static void registerHazmats() { + + //assuming coefficient of 10 + //real coefficient turned out to be 5 + //oops + + double helmet = 0.2D; + double chest = 0.4D; + double legs = 0.3D; + double boots = 0.1D; + + double iron = 0.0225D; // 5% + double gold = 0.0225D; // 5% + double steel = 0.045D; // 10% + double titanium = 0.045D; // 10% + double alloy = 0.07D; // 15% + double cobalt = 0.125D; // 25% + + double hazYellow = 0.3D; // 50% + double hazRed = 0.7D; // 80% + double hazGray = 1.3D; // 95% + double paa = 2D; // 99% + double liquidator = 3D; // 99.9% + + double t45 = 1D; // 90% + double ajr = 2D; // 99% + double bj = 1.3D; // 95% + double hev = 2.3D; // 99.5% + double fau = 4D; // 99.99% + double security = 0.825D; // 85% + double star = 1.3D; // 95% + double cmb = 2D; // 99% + double schrab = 2.3D; // 99.5% + double euph = 10D; // <100% + + HazmatRegistry.registerHazmat(ModItems.hazmat_helmet, hazYellow * helmet); + HazmatRegistry.registerHazmat(ModItems.hazmat_plate, hazYellow * chest); + HazmatRegistry.registerHazmat(ModItems.hazmat_legs, hazYellow * legs); + HazmatRegistry.registerHazmat(ModItems.hazmat_boots, hazYellow * boots); + + HazmatRegistry.registerHazmat(ModItems.hazmat_helmet_red, hazRed * helmet); + HazmatRegistry.registerHazmat(ModItems.hazmat_plate_red, hazRed * chest); + HazmatRegistry.registerHazmat(ModItems.hazmat_legs_red, hazRed * legs); + HazmatRegistry.registerHazmat(ModItems.hazmat_boots_red, hazRed * boots); + + HazmatRegistry.registerHazmat(ModItems.hazmat_helmet_grey, hazGray * helmet); + HazmatRegistry.registerHazmat(ModItems.hazmat_plate_grey, hazGray * chest); + HazmatRegistry.registerHazmat(ModItems.hazmat_legs_grey, hazGray * legs); + HazmatRegistry.registerHazmat(ModItems.hazmat_boots_grey, hazGray * boots); + + HazmatRegistry.registerHazmat(ModItems.liquidator_helmet, liquidator * helmet); + HazmatRegistry.registerHazmat(ModItems.liquidator_plate, liquidator * chest); + HazmatRegistry.registerHazmat(ModItems.liquidator_legs, liquidator * legs); + HazmatRegistry.registerHazmat(ModItems.liquidator_boots, liquidator * boots); + + HazmatRegistry.registerHazmat(ModItems.t45_helmet, t45 * helmet); + HazmatRegistry.registerHazmat(ModItems.t45_plate, t45 * chest); + HazmatRegistry.registerHazmat(ModItems.t45_legs, t45 * legs); + HazmatRegistry.registerHazmat(ModItems.t45_boots, t45 * boots); + + HazmatRegistry.registerHazmat(ModItems.ajr_helmet, ajr * helmet); + HazmatRegistry.registerHazmat(ModItems.ajr_plate, ajr * chest); + HazmatRegistry.registerHazmat(ModItems.ajr_legs, ajr * legs); + HazmatRegistry.registerHazmat(ModItems.ajr_boots, ajr * boots); + HazmatRegistry.registerHazmat(ModItems.ajro_helmet, ajr * helmet); + HazmatRegistry.registerHazmat(ModItems.ajro_plate, ajr * chest); + HazmatRegistry.registerHazmat(ModItems.ajro_legs, ajr * legs); + HazmatRegistry.registerHazmat(ModItems.ajro_boots, ajr * boots); + + HazmatRegistry.registerHazmat(ModItems.bj_helmet, bj * helmet); + HazmatRegistry.registerHazmat(ModItems.bj_plate, bj * chest); + HazmatRegistry.registerHazmat(ModItems.bj_plate_jetpack, bj * chest); + HazmatRegistry.registerHazmat(ModItems.bj_legs, bj * legs); + HazmatRegistry.registerHazmat(ModItems.bj_boots, bj * boots); + + HazmatRegistry.registerHazmat(ModItems.hev_helmet, hev * helmet); + HazmatRegistry.registerHazmat(ModItems.hev_plate, hev * chest); + HazmatRegistry.registerHazmat(ModItems.hev_legs, hev * legs); + HazmatRegistry.registerHazmat(ModItems.hev_boots, hev * boots); + + HazmatRegistry.registerHazmat(ModItems.fau_helmet, fau * helmet); + HazmatRegistry.registerHazmat(ModItems.fau_plate, fau * chest); + HazmatRegistry.registerHazmat(ModItems.fau_legs, fau * legs); + HazmatRegistry.registerHazmat(ModItems.fau_boots, fau * boots); + + HazmatRegistry.registerHazmat(ModItems.paa_plate, paa * chest); + HazmatRegistry.registerHazmat(ModItems.paa_legs, paa * legs); + HazmatRegistry.registerHazmat(ModItems.paa_boots, paa * boots); + + HazmatRegistry.registerHazmat(ModItems.hazmat_paa_helmet, paa * helmet); + HazmatRegistry.registerHazmat(ModItems.hazmat_paa_plate, paa * chest); + HazmatRegistry.registerHazmat(ModItems.hazmat_paa_legs, paa * legs); + HazmatRegistry.registerHazmat(ModItems.hazmat_paa_boots, paa * boots); + + HazmatRegistry.registerHazmat(ModItems.security_helmet, security * helmet); + HazmatRegistry.registerHazmat(ModItems.security_plate, security * chest); + HazmatRegistry.registerHazmat(ModItems.security_legs, security * legs); + HazmatRegistry.registerHazmat(ModItems.security_boots, security * boots); + + HazmatRegistry.registerHazmat(ModItems.starmetal_helmet, star * helmet); + HazmatRegistry.registerHazmat(ModItems.starmetal_plate, star * chest); + HazmatRegistry.registerHazmat(ModItems.starmetal_legs, star * legs); + HazmatRegistry.registerHazmat(ModItems.starmetal_boots, star * boots); + + HazmatRegistry.registerHazmat(ModItems.jackt, 0.1); + HazmatRegistry.registerHazmat(ModItems.jackt2, 0.1); + + HazmatRegistry.registerHazmat(ModItems.gas_mask, 0.07); + HazmatRegistry.registerHazmat(ModItems.gas_mask_m65, 0.095); + + HazmatRegistry.registerHazmat(ModItems.steel_helmet, steel * helmet); + HazmatRegistry.registerHazmat(ModItems.steel_plate, steel * chest); + HazmatRegistry.registerHazmat(ModItems.steel_legs, steel * legs); + HazmatRegistry.registerHazmat(ModItems.steel_boots, steel * boots); + + HazmatRegistry.registerHazmat(ModItems.titanium_helmet, titanium * helmet); + HazmatRegistry.registerHazmat(ModItems.titanium_plate, titanium * chest); + HazmatRegistry.registerHazmat(ModItems.titanium_legs, titanium * legs); + HazmatRegistry.registerHazmat(ModItems.titanium_boots, titanium * boots); + + HazmatRegistry.registerHazmat(ModItems.cobalt_helmet, cobalt * helmet); + HazmatRegistry.registerHazmat(ModItems.cobalt_plate, cobalt * chest); + HazmatRegistry.registerHazmat(ModItems.cobalt_legs, cobalt * legs); + HazmatRegistry.registerHazmat(ModItems.cobalt_boots, cobalt * boots); + + HazmatRegistry.registerHazmat(Items.iron_helmet, iron * helmet); + HazmatRegistry.registerHazmat(Items.iron_chestplate, iron * chest); + HazmatRegistry.registerHazmat(Items.iron_leggings, iron * legs); + HazmatRegistry.registerHazmat(Items.iron_boots, iron * boots); + + HazmatRegistry.registerHazmat(Items.golden_helmet, gold * helmet); + HazmatRegistry.registerHazmat(Items.golden_chestplate, gold * chest); + HazmatRegistry.registerHazmat(Items.golden_leggings, gold * legs); + HazmatRegistry.registerHazmat(Items.golden_boots, gold * boots); + + HazmatRegistry.registerHazmat(ModItems.alloy_helmet, alloy * helmet); + HazmatRegistry.registerHazmat(ModItems.alloy_plate, alloy * chest); + HazmatRegistry.registerHazmat(ModItems.alloy_legs, alloy * legs); + HazmatRegistry.registerHazmat(ModItems.alloy_boots, alloy * boots); + + HazmatRegistry.registerHazmat(ModItems.cmb_helmet, cmb * helmet); + HazmatRegistry.registerHazmat(ModItems.cmb_plate, cmb * chest); + HazmatRegistry.registerHazmat(ModItems.cmb_legs, cmb * legs); + HazmatRegistry.registerHazmat(ModItems.cmb_boots, cmb * boots); + + HazmatRegistry.registerHazmat(ModItems.schrabidium_helmet, schrab * helmet); + HazmatRegistry.registerHazmat(ModItems.schrabidium_plate, schrab * chest); + HazmatRegistry.registerHazmat(ModItems.schrabidium_legs, schrab * legs); + HazmatRegistry.registerHazmat(ModItems.schrabidium_boots, schrab * boots); + + HazmatRegistry.registerHazmat(ModItems.euphemium_helmet, euph * helmet); + HazmatRegistry.registerHazmat(ModItems.euphemium_plate, euph * chest); + HazmatRegistry.registerHazmat(ModItems.euphemium_legs, euph * legs); + HazmatRegistry.registerHazmat(ModItems.euphemium_boots, euph * boots); + } - public static void registerHazmat(Item item, float resistance) { + private static HashMap entries = new HashMap(); + + public static void registerHazmat(Item item, double resistance) { entries.put(item, resistance); } - public static float getResistance(ItemStack stack) { + public static double getResistance(ItemStack stack) { if(stack == null) return 0; - float cladding = getCladding(stack); + double cladding = getCladding(stack); - Float f = entries.get(stack.getItem()); + Double f = entries.get(stack.getItem()); if(f != null) return f + cladding; @@ -34,7 +192,7 @@ public class HazmatRegistry { return cladding; } - public static float getCladding(ItemStack stack) { + public static double getCladding(ItemStack stack) { if(stack.hasTagCompound() && stack.stackTagCompound.getFloat("hfr_cladding") > 0) return stack.stackTagCompound.getFloat("hfr_cladding"); diff --git a/src/main/java/com/hbm/handler/WeaponAbility.java b/src/main/java/com/hbm/handler/WeaponAbility.java index 097dfab39..5b473ded9 100644 --- a/src/main/java/com/hbm/handler/WeaponAbility.java +++ b/src/main/java/com/hbm/handler/WeaponAbility.java @@ -247,7 +247,7 @@ public abstract class WeaponAbility { if(world.rand.nextInt(20) == 0) living.entityDropItem(new ItemStack(Items.skull, 1, 1), 0.0F); else - living.entityDropItem(new ItemStack(Items.coal, 1, 3), 0.0F); + living.entityDropItem(new ItemStack(Items.coal, 3), 0.0F); } } else if(living instanceof EntityZombie) { diff --git a/src/main/java/com/hbm/handler/nei/AssemblerRecipeHandler.java b/src/main/java/com/hbm/handler/nei/AssemblerRecipeHandler.java index a67980291..b8ef3b29a 100644 --- a/src/main/java/com/hbm/handler/nei/AssemblerRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/AssemblerRecipeHandler.java @@ -64,7 +64,7 @@ public class AssemblerRecipeHandler extends TemplateRecipeHandler { @Override public String getGuiTexture() { - return RefStrings.MODID + ":textures/gui/gui_nei_assembler.png"; + return RefStrings.MODID + ":textures/gui/nei/gui_nei_assembler.png"; } @Override diff --git a/src/main/java/com/hbm/handler/nei/BoilerRecipeHandler.java b/src/main/java/com/hbm/handler/nei/BoilerRecipeHandler.java index b366917ff..477735831 100644 --- a/src/main/java/com/hbm/handler/nei/BoilerRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/BoilerRecipeHandler.java @@ -52,7 +52,7 @@ public class BoilerRecipeHandler extends TemplateRecipeHandler { @Override public String getGuiTexture() { - return RefStrings.MODID + ":textures/gui/gui_nei_boiler.png"; + return RefStrings.MODID + ":textures/gui/nei/gui_nei_boiler.png"; } @Override diff --git a/src/main/java/com/hbm/handler/nei/CMBFurnaceRecipeHandler.java b/src/main/java/com/hbm/handler/nei/CMBFurnaceRecipeHandler.java index 0786dfd8b..b0f44c25a 100644 --- a/src/main/java/com/hbm/handler/nei/CMBFurnaceRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/CMBFurnaceRecipeHandler.java @@ -54,7 +54,7 @@ public class CMBFurnaceRecipeHandler extends TemplateRecipeHandler { @Override public String getGuiTexture() { - return RefStrings.MODID + ":textures/gui/gui_nei_cmb.png"; + return RefStrings.MODID + ":textures/gui/nei/gui_nei_cmb.png"; } @Override diff --git a/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java b/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java index 8a68fd72a..4d4bdb8f2 100644 --- a/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java @@ -89,7 +89,7 @@ public class ChemplantRecipeHandler extends TemplateRecipeHandler { @Override public String getGuiTexture() { - return RefStrings.MODID + ":textures/gui/gui_nei_chemplant.png"; + return RefStrings.MODID + ":textures/gui/nei/gui_nei_chemplant.png"; } @Override diff --git a/src/main/java/com/hbm/handler/nei/CrystallizerRecipeHandler.java b/src/main/java/com/hbm/handler/nei/CrystallizerRecipeHandler.java index 15111ec18..829521582 100644 --- a/src/main/java/com/hbm/handler/nei/CrystallizerRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/CrystallizerRecipeHandler.java @@ -22,45 +22,43 @@ import net.minecraft.item.ItemStack; public class CrystallizerRecipeHandler extends TemplateRecipeHandler { - public static ArrayList batteries; + public static ArrayList batteries; - public class RecipeSet extends TemplateRecipeHandler.CachedRecipe - { - PositionedStack input; - PositionedStack acid; - PositionedStack result; - - public RecipeSet(Object input, ItemStack result) { - this.input = new PositionedStack(input, 75, 24); - this.acid = new PositionedStack(ItemFluidIcon.addQuantity(new ItemStack(ModItems.fluid_icon, 1, FluidType.ACID.ordinal()), TileEntityMachineCrystallizer.acidRequired), 39, 24); - this.result = new PositionedStack(result, 135, 24); - } + public class RecipeSet extends TemplateRecipeHandler.CachedRecipe { + PositionedStack input; + PositionedStack acid; + PositionedStack result; - @Override + public RecipeSet(Object input, ItemStack result) { + this.input = new PositionedStack(input, 75, 24); + this.acid = new PositionedStack(ItemFluidIcon.addQuantity(new ItemStack(ModItems.fluid_icon, 1, FluidType.ACID.ordinal()), TileEntityMachineCrystallizer.acidRequired), 39, 24); + this.result = new PositionedStack(result, 135, 24); + } + + @Override public List getIngredients() { - return getCycledIngredients(cycleticks / 48, Arrays.asList(input, acid)); - } + return getCycledIngredients(cycleticks / 48, Arrays.asList(input, acid)); + } - @Override + @Override public PositionedStack getOtherStack() { - return batteries.get((cycleticks / 48) % batteries.size()).stack; - } + return batteries.get((cycleticks / 48) % batteries.size()).stack; + } - @Override + @Override public PositionedStack getResult() { - return result; - } - } + return result; + } + } - public static class Fuel - { - public Fuel(ItemStack ingred) { - - this.stack = new PositionedStack(ingred, 3, 42, false); - } + public static class Fuel { + public Fuel(ItemStack ingred) { - public PositionedStack stack; - } + this.stack = new PositionedStack(ingred, 3, 42, false); + } + + public PositionedStack stack; + } @Override public String getRecipeName() { @@ -149,33 +147,33 @@ public class CrystallizerRecipeHandler extends TemplateRecipeHandler { } } - @Override - public Class getGuiClass() { - return GUICrystallizer.class; - } - - @Override - public void loadTransferRects() { - transferRects.add(new RecipeTransferRect(new Rectangle(104 - 5, 34 - 11, 24, 18), "hbm_crystallizer")); - } + @Override + public Class getGuiClass() { + return GUICrystallizer.class; + } - @Override - public void drawExtras(int recipe) { - - drawProgressBar(99, 23, 192, 0, 22, 16, 600, 0); - drawProgressBar(3, 6, 176, 0, 16, 34, 60, 7); - } + @Override + public void loadTransferRects() { + transferRects.add(new RecipeTransferRect(new Rectangle(104 - 5, 34 - 11, 24, 18), "hbm_crystallizer")); + } - @Override - public TemplateRecipeHandler newInstance() { - - if (batteries == null) - batteries = new ArrayList(); - - for(ItemStack i : MachineRecipes.instance().getBatteries()) { - batteries.add(new Fuel(i)); - } - return super.newInstance(); - } + @Override + public void drawExtras(int recipe) { + + drawProgressBar(99, 23, 192, 0, 22, 16, 600, 0); + drawProgressBar(3, 6, 176, 0, 16, 34, 60, 7); + } + + @Override + public TemplateRecipeHandler newInstance() { + + if(batteries == null) + batteries = new ArrayList(); + + for(ItemStack i : MachineRecipes.instance().getBatteries()) { + batteries.add(new Fuel(i)); + } + return super.newInstance(); + } } diff --git a/src/main/java/com/hbm/handler/nei/CyclotronRecipeHandler.java b/src/main/java/com/hbm/handler/nei/CyclotronRecipeHandler.java index 25a374c9d..10da7763b 100644 --- a/src/main/java/com/hbm/handler/nei/CyclotronRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/CyclotronRecipeHandler.java @@ -55,7 +55,7 @@ public class CyclotronRecipeHandler extends TemplateRecipeHandler { @Override public String getGuiTexture() { - return RefStrings.MODID + ":textures/gui/gui_nei_cyclotron.png"; + return RefStrings.MODID + ":textures/gui/nei/gui_nei_cyclotron.png"; } @Override diff --git a/src/main/java/com/hbm/handler/nei/FluidRecipeHandler.java b/src/main/java/com/hbm/handler/nei/FluidRecipeHandler.java index 32ad101e9..624bec4e2 100644 --- a/src/main/java/com/hbm/handler/nei/FluidRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/FluidRecipeHandler.java @@ -45,7 +45,7 @@ public class FluidRecipeHandler extends TemplateRecipeHandler { @Override public String getGuiTexture() { - return RefStrings.MODID + ":textures/gui/gui_nei_fluid.png"; + return RefStrings.MODID + ":textures/gui/nei/gui_nei_fluid.png"; } @Override diff --git a/src/main/java/com/hbm/handler/nei/FusionRecipeHandler.java b/src/main/java/com/hbm/handler/nei/FusionRecipeHandler.java index bc03afa97..5e70b227d 100644 --- a/src/main/java/com/hbm/handler/nei/FusionRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/FusionRecipeHandler.java @@ -117,6 +117,6 @@ public class FusionRecipeHandler extends TemplateRecipeHandler { @Override public String getGuiTexture() { - return RefStrings.MODID + ":textures/gui/gui_nei_fusion.png"; + return RefStrings.MODID + ":textures/gui/nei/gui_nei_fusion.png"; } } diff --git a/src/main/java/com/hbm/handler/nei/HadronRecipeHandler.java b/src/main/java/com/hbm/handler/nei/HadronRecipeHandler.java index 027bc9bd1..ef1958991 100644 --- a/src/main/java/com/hbm/handler/nei/HadronRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/HadronRecipeHandler.java @@ -21,63 +21,63 @@ import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; public class HadronRecipeHandler extends TemplateRecipeHandler { - - public LinkedList transferRectsRec = new LinkedList(); - public LinkedList transferRectsGui = new LinkedList(); - public LinkedList> guiRec = new LinkedList>(); - public LinkedList> guiGui = new LinkedList>(); - public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe { + public LinkedList transferRectsRec = new LinkedList(); + public LinkedList transferRectsGui = new LinkedList(); + public LinkedList> guiRec = new LinkedList>(); + public LinkedList> guiGui = new LinkedList>(); + + public class RecipeSet extends TemplateRecipeHandler.CachedRecipe { PositionedStack input1; PositionedStack input2; - PositionedStack output1; - PositionedStack output2; - int momentum; - boolean analysisOnly; - - public SmeltingSet(HadronRecipe recipe) { + PositionedStack output1; + PositionedStack output2; + int momentum; + boolean analysisOnly; - this.input1 = new PositionedStack(recipe.in1.toStack(), 12, 24); - this.input2 = new PositionedStack(recipe.in2.toStack(), 30, 24); - this.output1 = new PositionedStack(recipe.out1, 84, 24); - this.output2 = new PositionedStack(recipe.out2, 102, 24); - this.momentum = recipe.momentum; - this.analysisOnly = recipe.analysisOnly; - } + public RecipeSet(HadronRecipe recipe) { - @Override + this.input1 = new PositionedStack(recipe.in1.toStack(), 12, 24); + this.input2 = new PositionedStack(recipe.in2.toStack(), 30, 24); + this.output1 = new PositionedStack(recipe.out1, 84, 24); + this.output2 = new PositionedStack(recipe.out2, 102, 24); + this.momentum = recipe.momentum; + this.analysisOnly = recipe.analysisOnly; + } + + @Override public List getIngredients() { - return Arrays.asList(new PositionedStack[] {input1, input2}); - } + return Arrays.asList(new PositionedStack[] { input1, input2 }); + } - @Override + @Override public List getOtherStacks() { - return Arrays.asList(new PositionedStack[] {output1, output2}); - } + return Arrays.asList(new PositionedStack[] { output1, output2 }); + } @Override public PositionedStack getResult() { return output1; } - } - + } + @Override public String getRecipeName() { return "Particle Accelerator"; } - + @Override public void loadCraftingRecipes(String outputId, Object... results) { - + if(outputId.equals("hadron") && getClass() == HadronRecipeHandler.class) { - + List recipes = HadronRecipes.getRecipes(); - + for(HadronRecipe recipe : recipes) { - this.arecipes.add(new SmeltingSet(recipe)); + this.arecipes.add(new RecipeSet(recipe)); } - + } else { super.loadCraftingRecipes(outputId, results); } @@ -85,20 +85,20 @@ public class HadronRecipeHandler extends TemplateRecipeHandler { @Override public void loadCraftingRecipes(ItemStack result) { - + List recipes = HadronRecipes.getRecipes(); - + for(HadronRecipe recipe : recipes) { - + if(NEIServerUtils.areStacksSameTypeCrafting(recipe.out1, result) || NEIServerUtils.areStacksSameTypeCrafting(recipe.out2, result)) { - this.arecipes.add(new SmeltingSet(recipe)); + this.arecipes.add(new RecipeSet(recipe)); } } } @Override public void loadUsageRecipes(String inputId, Object... ingredients) { - + if(inputId.equals("hadron") && getClass() == HadronRecipeHandler.class) { loadCraftingRecipes("hadron", new Object[0]); } else { @@ -108,45 +108,45 @@ public class HadronRecipeHandler extends TemplateRecipeHandler { @Override public void loadUsageRecipes(ItemStack ingredient) { - + List recipes = HadronRecipes.getRecipes(); - + for(HadronRecipe recipe : recipes) { - + if(NEIServerUtils.areStacksSameTypeCrafting(recipe.in1.toStack(), ingredient) || NEIServerUtils.areStacksSameTypeCrafting(recipe.in2.toStack(), ingredient)) { - this.arecipes.add(new SmeltingSet(recipe)); + this.arecipes.add(new RecipeSet(recipe)); } } } - - @Override - public void loadTransferRects() { - transferRectsGui = new LinkedList(); - guiGui = new LinkedList>(); - transferRects.add(new RecipeTransferRect(new Rectangle(58 - 5, 34 - 11, 24, 18), "hadron")); - transferRectsGui.add(new RecipeTransferRect(new Rectangle(72 - 5, 28 - 11, 30, 30), "hadron")); - guiGui.add(GUIHadron.class); - RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); - RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); - } + @Override + public void loadTransferRects() { + transferRectsGui = new LinkedList(); + guiGui = new LinkedList>(); - @Override - public void drawExtras(int recipe) { - - SmeltingSet rec = (SmeltingSet)this.arecipes.get(recipe); - - if(rec.analysisOnly) - drawTexturedModalRect(128, 23, 0, 86, 18, 18); - - FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; - - String mom = "" + rec.momentum; - fontRenderer.drawString(mom, -fontRenderer.getStringWidth(mom) / 2 + 30, 42, 0x404040); - } + transferRects.add(new RecipeTransferRect(new Rectangle(58 - 5, 34 - 11, 24, 18), "hadron")); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(72 - 5, 28 - 11, 30, 30), "hadron")); + guiGui.add(GUIHadron.class); + RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); + RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); + } + + @Override + public void drawExtras(int recipe) { + + RecipeSet rec = (RecipeSet) this.arecipes.get(recipe); + + if(rec.analysisOnly) + drawTexturedModalRect(128, 23, 0, 86, 18, 18); + + FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; + + String mom = "" + rec.momentum; + fontRenderer.drawString(mom, -fontRenderer.getStringWidth(mom) / 2 + 30, 42, 0x404040); + } @Override public String getGuiTexture() { - return RefStrings.MODID + ":textures/gui/gui_nei_hadron.png"; + return RefStrings.MODID + ":textures/gui/nei/gui_nei_hadron.png"; } } diff --git a/src/main/java/com/hbm/handler/nei/PressRecipeHandler.java b/src/main/java/com/hbm/handler/nei/PressRecipeHandler.java index becb5e6de..2fb5fb0de 100644 --- a/src/main/java/com/hbm/handler/nei/PressRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/PressRecipeHandler.java @@ -21,58 +21,56 @@ import net.minecraft.item.ItemStack; public class PressRecipeHandler extends TemplateRecipeHandler { - public LinkedList transferRectsRec = new LinkedList(); - public LinkedList transferRectsGui = new LinkedList(); - public LinkedList> guiRec = new LinkedList>(); - public LinkedList> guiGui = new LinkedList>(); + public LinkedList transferRectsRec = new LinkedList(); + public LinkedList transferRectsGui = new LinkedList(); + public LinkedList> guiRec = new LinkedList>(); + public LinkedList> guiGui = new LinkedList>(); - public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe - { - PositionedStack input; - PositionedStack result; + public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe { + PositionedStack input; + PositionedStack result; - public ArrayList fuels = new ArrayList(); - - public SmeltingSet(List stamp, ItemStack input, ItemStack result) { - input.stackSize = 1; - this.input = new PositionedStack(input, 83 - 35, 5 + 36 + 1); - this.result = new PositionedStack(result, 83 + 28, 5 + 18 + 1); - - if(stamp.isEmpty()) - fuels.add(new Fuel(new ItemStack(ModItems.nothing))); - else - for(ItemStack sta : stamp) - fuels.add(new Fuel(sta)); - } + public ArrayList fuels = new ArrayList(); - @Override + public SmeltingSet(List stamp, ItemStack input, ItemStack result) { + input.stackSize = 1; + this.input = new PositionedStack(input, 83 - 35, 5 + 36 + 1); + this.result = new PositionedStack(result, 83 + 28, 5 + 18 + 1); + + if(stamp.isEmpty()) + fuels.add(new Fuel(new ItemStack(ModItems.nothing))); + else + for(ItemStack sta : stamp) + fuels.add(new Fuel(sta)); + } + + @Override public List getIngredients() { - return getCycledIngredients(cycleticks / 48, Arrays.asList(new PositionedStack[] {input})); - } + return getCycledIngredients(cycleticks / 48, Arrays.asList(new PositionedStack[] { input })); + } - @Override + @Override public List getOtherStacks() { - List stacks = new ArrayList(); - stacks.add(fuels.get((cycleticks / 24) % fuels.size()).stack); - return stacks; - } + List stacks = new ArrayList(); + stacks.add(fuels.get((cycleticks / 24) % fuels.size()).stack); + return stacks; + } - @Override + @Override public PositionedStack getResult() { - return result; - } - } + return result; + } + } - public static class Fuel - { - public Fuel(ItemStack ingred) { + public static class Fuel { + public Fuel(ItemStack ingred) { - this.stack = new PositionedStack(ingred, 83 - 35, 6, false); - } + this.stack = new PositionedStack(ingred, 83 - 35, 6, false); + } + + public PositionedStack stack; + } - public PositionedStack stack; - } - @Override public String getRecipeName() { return "Press"; @@ -80,15 +78,15 @@ public class PressRecipeHandler extends TemplateRecipeHandler { @Override public String getGuiTexture() { - return RefStrings.MODID + ":textures/gui/gui_nei_press.png"; + return RefStrings.MODID + ":textures/gui/nei/gui_nei_press.png"; } - + @Override public void loadCraftingRecipes(String outputId, Object... results) { - if ((outputId.equals("pressing")) && getClass() == PressRecipeHandler.class) { + if((outputId.equals("pressing")) && getClass() == PressRecipeHandler.class) { Map recipes = MachineRecipes.instance().getPressRecipes(); - for (Map.Entry recipe : recipes.entrySet()) { - this.arecipes.add(new SmeltingSet((List)recipe.getKey()[0], (ItemStack)recipe.getKey()[1], (ItemStack)recipe.getValue())); + for(Map.Entry recipe : recipes.entrySet()) { + this.arecipes.add(new SmeltingSet((List) recipe.getKey()[0], (ItemStack) recipe.getKey()[1], (ItemStack) recipe.getValue())); } } else { super.loadCraftingRecipes(outputId, results); @@ -98,15 +96,15 @@ public class PressRecipeHandler extends TemplateRecipeHandler { @Override public void loadCraftingRecipes(ItemStack result) { Map recipes = MachineRecipes.instance().getPressRecipes(); - for (Map.Entry recipe : recipes.entrySet()) { - if (NEIServerUtils.areStacksSameType((ItemStack)recipe.getValue(), result)) - this.arecipes.add(new SmeltingSet((List)recipe.getKey()[0], (ItemStack)recipe.getKey()[1], (ItemStack)recipe.getValue())); + for(Map.Entry recipe : recipes.entrySet()) { + if(NEIServerUtils.areStacksSameType((ItemStack) recipe.getValue(), result)) + this.arecipes.add(new SmeltingSet((List) recipe.getKey()[0], (ItemStack) recipe.getKey()[1], (ItemStack) recipe.getValue())); } } @Override public void loadUsageRecipes(String inputId, Object... ingredients) { - if ((inputId.equals("pressing")) && getClass() == PressRecipeHandler.class) { + if((inputId.equals("pressing")) && getClass() == PressRecipeHandler.class) { loadCraftingRecipes("pressing", new Object[0]); } else { super.loadUsageRecipes(inputId, ingredients); @@ -116,54 +114,55 @@ public class PressRecipeHandler extends TemplateRecipeHandler { @Override public void loadUsageRecipes(ItemStack ingredient) { Map recipes = MachineRecipes.instance().getPressRecipes(); - for (Map.Entry recipe : recipes.entrySet()) { - + for(Map.Entry recipe : recipes.entrySet()) { + boolean b = false; - for(int i = 0; i < ((List)recipe.getKey()[0]).size(); i++) { - if(NEIServerUtils.areStacksSameType(((List)recipe.getKey()[0]).get(i), ingredient)) { + for(int i = 0; i < ((List) recipe.getKey()[0]).size(); i++) { + if(NEIServerUtils.areStacksSameType(((List) recipe.getKey()[0]).get(i), ingredient)) { b = true; break; } } - - if (b || NEIServerUtils.areStacksSameType(ingredient, (ItemStack)recipe.getKey()[1])) - this.arecipes.add(new SmeltingSet((List)recipe.getKey()[0], (ItemStack)recipe.getKey()[1], (ItemStack)recipe.getValue())); + + if(b || NEIServerUtils.areStacksSameType(ingredient, (ItemStack) recipe.getKey()[1])) + this.arecipes.add(new SmeltingSet((List) recipe.getKey()[0], (ItemStack) recipe.getKey()[1], (ItemStack) recipe.getValue())); } } - @Override - public Class getGuiClass() { - //return GUIMachineShredder.class; - return null; - } - - @Override - public void loadTransferRects() { - //transferRectsRec = new LinkedList(); - transferRectsGui = new LinkedList(); - //guiRec = new LinkedList>(); - guiGui = new LinkedList>(); - - transferRects.add(new RecipeTransferRect(new Rectangle(74 + 6, 23, 24, 18), "pressing")); - transferRectsGui.add(new RecipeTransferRect(new Rectangle(74 + 6 + 18, 23, 24, 18), "pressing")); - //guiRec.add(GuiRecipe.class); - guiGui.add(GUIMachinePress.class); - guiGui.add(GUIMachineEPress.class); - RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); - //RecipeTransferRectHandler.registerRectsToGuis(guiRec, transferRectsRec); - RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); - - //for(Class r : getRecipeTransferRectGuis()) - // System.out.println(r.toString()); - } + @Override + public Class getGuiClass() { + // return GUIMachineShredder.class; + return null; + } - @Override - public void drawExtras(int recipe) { - drawProgressBar(47, 24, 0, 86, 18, 18, 20, 1); - } + @Override + public void loadTransferRects() { + // transferRectsRec = new LinkedList(); + transferRectsGui = new LinkedList(); + // guiRec = new LinkedList>(); + guiGui = new LinkedList>(); - @Override - public TemplateRecipeHandler newInstance() { - return super.newInstance(); - } + transferRects.add(new RecipeTransferRect(new Rectangle(74 + 6, 23, 24, 18), "pressing")); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(74 + 6 + 18, 23, 24, 18), "pressing")); + // guiRec.add(GuiRecipe.class); + guiGui.add(GUIMachinePress.class); + guiGui.add(GUIMachineEPress.class); + RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); + // RecipeTransferRectHandler.registerRectsToGuis(guiRec, + // transferRectsRec); + RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); + + // for(Class r : getRecipeTransferRectGuis()) + // System.out.println(r.toString()); + } + + @Override + public void drawExtras(int recipe) { + drawProgressBar(47, 24, 0, 86, 18, 18, 20, 1); + } + + @Override + public TemplateRecipeHandler newInstance() { + return super.newInstance(); + } } diff --git a/src/main/java/com/hbm/handler/nei/ReactorRecipeHandler.java b/src/main/java/com/hbm/handler/nei/ReactorRecipeHandler.java index fd09fa9a3..1fd8a4198 100644 --- a/src/main/java/com/hbm/handler/nei/ReactorRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/ReactorRecipeHandler.java @@ -17,52 +17,52 @@ import net.minecraft.item.ItemStack; public class ReactorRecipeHandler extends TemplateRecipeHandler { - public class BreedingSet extends TemplateRecipeHandler.CachedRecipe { - - PositionedStack input; - PositionedStack result; - public int heat; - public ArrayList fuels; - - public BreedingSet(ItemStack input, ItemStack result, int heat) { - input.stackSize = 1; - this.input = new PositionedStack(input, 51, 6); - this.result = new PositionedStack(result, 111, 24); - this.heat = heat; - - fuels = new ArrayList(); - - for(ItemStack sta : BreederRecipes.getAllFuelsFromHEAT(heat)) { - fuels.add(new Fuel(sta)); - } - } + public class BreedingSet extends TemplateRecipeHandler.CachedRecipe { - @Override + PositionedStack input; + PositionedStack result; + public int heat; + public ArrayList fuels; + + public BreedingSet(ItemStack input, ItemStack result, int heat) { + input.stackSize = 1; + this.input = new PositionedStack(input, 51, 6); + this.result = new PositionedStack(result, 111, 24); + this.heat = heat; + + fuels = new ArrayList(); + + for(ItemStack sta : BreederRecipes.getAllFuelsFromHEAT(heat)) { + fuels.add(new Fuel(sta)); + } + } + + @Override public List getIngredients() { - return getCycledIngredients(cycleticks / 48, Arrays.asList(new PositionedStack[] {input})); - } + return getCycledIngredients(cycleticks / 48, Arrays.asList(new PositionedStack[] { input })); + } - @Override + @Override public PositionedStack getOtherStack() { - return fuels.get((cycleticks / 48) % fuels.size()).stack; - } + return fuels.get((cycleticks / 48) % fuels.size()).stack; + } - @Override + @Override public PositionedStack getResult() { - return result; - } - } + return result; + } + } - public static class Fuel { - - public Fuel(ItemStack ingred) { - - this.stack = new PositionedStack(ingred, 51, 42, false); - } + public static class Fuel { + + public Fuel(ItemStack ingred) { + + this.stack = new PositionedStack(ingred, 51, 42, false); + } + + public PositionedStack stack; + } - public PositionedStack stack; - } - @Override public String getRecipeName() { return "Breeding Reactor"; @@ -72,15 +72,15 @@ public class ReactorRecipeHandler extends TemplateRecipeHandler { public String getGuiTexture() { return GUIMachineReactor.texture.toString(); } - + @Override public void loadCraftingRecipes(String outputId, Object... results) { - - if ((outputId.equals("breeding")) && getClass() == ReactorRecipeHandler.class) { - + + if((outputId.equals("breeding")) && getClass() == ReactorRecipeHandler.class) { + Map recipes = BreederRecipes.getAllRecipes(); - - for (Map.Entry recipe : recipes.entrySet()) { + + for(Map.Entry recipe : recipes.entrySet()) { this.arecipes.add(new BreedingSet(recipe.getKey(), recipe.getValue().output, recipe.getValue().heat)); } } else { @@ -90,18 +90,18 @@ public class ReactorRecipeHandler extends TemplateRecipeHandler { @Override public void loadCraftingRecipes(ItemStack result) { - + Map recipes = BreederRecipes.getAllRecipes(); - for (Map.Entry recipe : recipes.entrySet()) { - if (NEIServerUtils.areStacksSameType(recipe.getValue().output, result)) + for(Map.Entry recipe : recipes.entrySet()) { + if(NEIServerUtils.areStacksSameType(recipe.getValue().output, result)) this.arecipes.add(new BreedingSet(recipe.getKey(), recipe.getValue().output, recipe.getValue().heat)); } } @Override public void loadUsageRecipes(String inputId, Object... ingredients) { - if ((inputId.equals("breeding")) && getClass() == ReactorRecipeHandler.class) { + if((inputId.equals("breeding")) && getClass() == ReactorRecipeHandler.class) { loadCraftingRecipes("breeding", new Object[0]); } else { super.loadUsageRecipes(inputId, ingredients); @@ -110,31 +110,31 @@ public class ReactorRecipeHandler extends TemplateRecipeHandler { @Override public void loadUsageRecipes(ItemStack ingredient) { - + Map recipes = BreederRecipes.getAllRecipes(); - for (Map.Entry recipe : recipes.entrySet()) { - if (NEIServerUtils.areStacksSameType(ingredient, (ItemStack)recipe.getKey())) - this.arecipes.add(new BreedingSet(recipe.getKey(), recipe.getValue().output, recipe.getValue().heat)); + for(Map.Entry recipe : recipes.entrySet()) { + if(NEIServerUtils.areStacksSameType(ingredient, (ItemStack) recipe.getKey())) + this.arecipes.add(new BreedingSet(recipe.getKey(), recipe.getValue().output, recipe.getValue().heat)); } } - @Override - public Class getGuiClass() { - return GUIMachineReactor.class; - } - - @Override - public void loadTransferRects() { - transferRects.add(new RecipeTransferRect(new Rectangle(74, 23, 24, 18), "breeding")); - } + @Override + public Class getGuiClass() { + return GUIMachineReactor.class; + } - @Override - public void drawExtras(int recipe) { - drawProgressBar(50, 24, 176, 0, 14, 14, 48 * 3, 7); - drawProgressBar(75, 23, 176, 16, 24, 16, 48, 0); - - int heat = ((BreedingSet)this.arecipes.get(recipe)).heat; - drawProgressBar(43, 24, 194, 0, 4, 16, (float) 1 - heat / 4F, 7); - } + @Override + public void loadTransferRects() { + transferRects.add(new RecipeTransferRect(new Rectangle(74, 23, 24, 18), "breeding")); + } + + @Override + public void drawExtras(int recipe) { + drawProgressBar(50, 24, 176, 0, 14, 14, 48 * 3, 7); + drawProgressBar(75, 23, 176, 16, 24, 16, 48, 0); + + int heat = ((BreedingSet) this.arecipes.get(recipe)).heat; + drawProgressBar(43, 24, 194, 0, 4, 16, (float) 1 - heat / 4F, 7); + } } diff --git a/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java b/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java index 113181536..92916c76b 100644 --- a/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/RefineryRecipeHandler.java @@ -17,51 +17,50 @@ import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; public class RefineryRecipeHandler extends TemplateRecipeHandler { - - public LinkedList transferRectsRec = new LinkedList(); - public LinkedList transferRectsGui = new LinkedList(); - public LinkedList> guiRec = new LinkedList>(); - public LinkedList> guiGui = new LinkedList>(); - public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe - { - PositionedStack input; - PositionedStack result1; - PositionedStack result2; - PositionedStack result3; - PositionedStack result4; - PositionedStack result5; - - public SmeltingSet(ItemStack input, ItemStack result1, ItemStack result2, ItemStack result3, ItemStack result4, ItemStack result5) { - input.stackSize = 1; - this.input = new PositionedStack(input, 21 + 27, 6 + 18); - this.result1 = new PositionedStack(result1, 129 - 18, 6); - this.result2 = new PositionedStack(result2, 147 - 18, 6 + 9); - this.result3 = new PositionedStack(result3, 129 - 18, 42 - 18); - this.result4 = new PositionedStack(result4, 147 - 18, 42 - 9); - this.result5 = new PositionedStack(result5, 147 - 36, 42); - } + public LinkedList transferRectsRec = new LinkedList(); + public LinkedList transferRectsGui = new LinkedList(); + public LinkedList> guiRec = new LinkedList>(); + public LinkedList> guiGui = new LinkedList>(); - @Override + public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe { + PositionedStack input; + PositionedStack result1; + PositionedStack result2; + PositionedStack result3; + PositionedStack result4; + PositionedStack result5; + + public SmeltingSet(ItemStack input, ItemStack result1, ItemStack result2, ItemStack result3, ItemStack result4, ItemStack result5) { + input.stackSize = 1; + this.input = new PositionedStack(input, 21 + 27, 6 + 18); + this.result1 = new PositionedStack(result1, 129 - 18, 6); + this.result2 = new PositionedStack(result2, 147 - 18, 6 + 9); + this.result3 = new PositionedStack(result3, 129 - 18, 42 - 18); + this.result4 = new PositionedStack(result4, 147 - 18, 42 - 9); + this.result5 = new PositionedStack(result5, 147 - 36, 42); + } + + @Override public List getIngredients() { - return getCycledIngredients(cycleticks / 48, Arrays.asList(new PositionedStack[] {input})); - } + return getCycledIngredients(cycleticks / 48, Arrays.asList(new PositionedStack[] { input })); + } - @Override + @Override public List getOtherStacks() { - List stacks = new ArrayList(); - stacks.add(result2); - stacks.add(result3); - stacks.add(result4); - stacks.add(result5); - return stacks; - } + List stacks = new ArrayList(); + stacks.add(result2); + stacks.add(result3); + stacks.add(result4); + stacks.add(result5); + return stacks; + } - @Override + @Override public PositionedStack getResult() { - return result1; - } - } + return result1; + } + } @Override public String getRecipeName() { @@ -70,18 +69,18 @@ public class RefineryRecipeHandler extends TemplateRecipeHandler { @Override public String getGuiTexture() { - return RefStrings.MODID + ":textures/gui/gui_nei_refinery.png"; + return RefStrings.MODID + ":textures/gui/nei/gui_nei_refinery.png"; } - @Override - public Class getGuiClass() { - return null; - } + @Override + public Class getGuiClass() { + return null; + } - @Override - public TemplateRecipeHandler newInstance() { - return super.newInstance(); - } + @Override + public TemplateRecipeHandler newInstance() { + return super.newInstance(); + } @Override public void loadCraftingRecipes(String outputId, Object... results) { @@ -139,23 +138,23 @@ public class RefineryRecipeHandler extends TemplateRecipeHandler { return sta1.getItem() == sta2.getItem() && sta1.getItemDamage() == sta2.getItemDamage(); } - @Override - public void drawExtras(int recipe) { - drawProgressBar(83 - (18 * 4) - 9 + 1, 6, 0, 86, 16, 18 * 3 - 2, 480, 7); - - drawProgressBar(56 + 22, 5 + 19, 16, 86, 24, 17, 48, 0); - } - - @Override - public void loadTransferRects() { - transferRectsGui = new LinkedList(); - guiGui = new LinkedList>(); + @Override + public void drawExtras(int recipe) { + drawProgressBar(83 - (18 * 4) - 9 + 1, 6, 0, 86, 16, 18 * 3 - 2, 480, 7); - transferRects.add(new RecipeTransferRect(new Rectangle(138 - 1 - 36 - 27, 23, 36, 18), "refinery")); - transferRectsGui.add(new RecipeTransferRect(new Rectangle(18 * 2 + 2 + 36, 89 - 7 - 11 - 11, 18 * 4, 18), "refinery")); - guiGui.add(GUIMachineRefinery.class); - RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); - RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); - } + drawProgressBar(56 + 22, 5 + 19, 16, 86, 24, 17, 48, 0); + } + + @Override + public void loadTransferRects() { + transferRectsGui = new LinkedList(); + guiGui = new LinkedList>(); + + transferRects.add(new RecipeTransferRect(new Rectangle(138 - 1 - 36 - 27, 23, 36, 18), "refinery")); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(18 * 2 + 2 + 36, 89 - 7 - 11 - 11, 18 * 4, 18), "refinery")); + guiGui.add(GUIMachineRefinery.class); + RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); + RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); + } } diff --git a/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java b/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java new file mode 100644 index 000000000..d937f0acc --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java @@ -0,0 +1,180 @@ +package com.hbm.handler.nei; + +import java.awt.Rectangle; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +import com.hbm.inventory.SILEXRecipes; +import com.hbm.inventory.SILEXRecipes.SILEXRecipe; +import com.hbm.inventory.gui.GUISILEX; +import com.hbm.lib.RefStrings; +import com.hbm.util.WeightedRandomObject; + +import codechicken.nei.NEIServerUtils; +import codechicken.nei.PositionedStack; +import codechicken.nei.recipe.TemplateRecipeHandler; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.item.ItemStack; + +public class SILEXRecipeHandler extends TemplateRecipeHandler { + + public LinkedList transferRectsRec = new LinkedList(); + public LinkedList transferRectsGui = new LinkedList(); + public LinkedList> guiRec = new LinkedList>(); + public LinkedList> guiGui = new LinkedList>(); + + public class RecipeSet extends TemplateRecipeHandler.CachedRecipe { + + PositionedStack input; + List outputs; + List chances; + + public RecipeSet(Object input, SILEXRecipe recipe) { + + this.input = new PositionedStack(input, 30, 24); + this.outputs = new ArrayList(); + this.chances = new ArrayList(); + + double weight = 0; + + for(WeightedRandomObject obj : recipe.outputs) { + weight += obj.itemWeight; + } + + int off = 0; + + for(WeightedRandomObject obj : recipe.outputs) { + outputs.add(new PositionedStack(obj.asStack(), 93, 24 + off - 9 * ((recipe.outputs.size() + 1) / 2))); + chances.add(100 * obj.itemWeight / weight); + off += 18; + } + } + + @Override + public List getIngredients() { + return getCycledIngredients(cycleticks / 48, Arrays.asList(input)); + } + + @Override + public List getOtherStacks() { + return outputs; + } + + @Override + public PositionedStack getResult() { + return outputs.get(0); + } + } + + @Override + public String getRecipeName() { + return "SILEX"; + } + + @Override + public void loadCraftingRecipes(String outputId, Object... results) { + + if(outputId.equals("silex") && getClass() == SILEXRecipeHandler.class) { + + Map recipes = SILEXRecipes.getRecipes(); + + for (Map.Entry recipe : recipes.entrySet()) { + this.arecipes.add(new RecipeSet(recipe.getKey(), recipe.getValue())); + } + + } else { + super.loadCraftingRecipes(outputId, results); + } + } + + @Override + public void loadCraftingRecipes(ItemStack result) { + + Map recipes = SILEXRecipes.getRecipes(); + + for(Map.Entry recipe : recipes.entrySet()) { + + for(WeightedRandomObject out : recipe.getValue().outputs) { + + if(NEIServerUtils.areStacksSameTypeCrafting(out.asStack(), result)) { + this.arecipes.add(new RecipeSet(recipe.getKey(), recipe.getValue())); + } + } + } + } + + @Override + public void loadUsageRecipes(String inputId, Object... ingredients) { + + if(inputId.equals("silex") && getClass() == SILEXRecipeHandler.class) { + loadCraftingRecipes("silex", new Object[0]); + } else { + super.loadUsageRecipes(inputId, ingredients); + } + } + + @Override + public void loadUsageRecipes(ItemStack ingredient) { + + Map recipes = SILEXRecipes.getRecipes(); + + for(Map.Entry recipe : recipes.entrySet()) { + + if(recipe.getKey() instanceof ItemStack) { + + if (NEIServerUtils.areStacksSameType(ingredient, (ItemStack)recipe.getKey())) + this.arecipes.add(new RecipeSet(recipe.getKey(), recipe.getValue())); + + } else if (recipe.getKey() instanceof ArrayList) { + + for(Object o : (ArrayList)recipe.getKey()) { + ItemStack stack = (ItemStack)o; + + if (NEIServerUtils.areStacksSameType(ingredient, stack)) + this.arecipes.add(new RecipeSet(stack, recipe.getValue())); + } + } + } + } + + @Override + public void loadTransferRects() { + transferRectsGui = new LinkedList(); + guiGui = new LinkedList>(); + + transferRects.add(new RecipeTransferRect(new Rectangle(60, 34 - 11, 24, 18), "silex")); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(72 - 5, 28 - 11, 30, 30), "silex")); + guiGui.add(GUISILEX.class); + RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); + RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); + } + + @Override + public void drawExtras(int recipe) { + + RecipeSet rec = (RecipeSet) this.arecipes.get(recipe); + + FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; + + int off = 0; + for(Double chance : rec.chances) { + fontRenderer.drawString(((int)(chance * 10D) / 10D) + "%", 112, 28 + off - 9 * ((rec.chances.size() + 1) / 2), 0x404040); + off += 18; + } + } + + @Override + public int recipiesPerPage() { + return 2; + } + + @Override + public String getGuiTexture() { + return RefStrings.MODID + ":textures/gui/nei/gui_nei_silex.png"; + } +} diff --git a/src/main/java/com/hbm/handler/nei/ShredderRecipeHandler.java b/src/main/java/com/hbm/handler/nei/ShredderRecipeHandler.java index ff06d6673..71c758f9e 100644 --- a/src/main/java/com/hbm/handler/nei/ShredderRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/ShredderRecipeHandler.java @@ -21,55 +21,53 @@ import net.minecraft.item.ItemStack; public class ShredderRecipeHandler extends TemplateRecipeHandler { - public static ArrayList fuels; + public static ArrayList fuels; - public LinkedList transferRectsRec = new LinkedList(); - public LinkedList transferRectsGui = new LinkedList(); - public LinkedList> guiRec = new LinkedList>(); - public LinkedList> guiGui = new LinkedList>(); + public LinkedList transferRectsRec = new LinkedList(); + public LinkedList transferRectsGui = new LinkedList(); + public LinkedList> guiRec = new LinkedList>(); + public LinkedList> guiGui = new LinkedList>(); - public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe - { - PositionedStack input; - PositionedStack result; - - public SmeltingSet(ItemStack input, ItemStack result) { - input.stackSize = 1; - this.input = new PositionedStack(input, 83 - 27 - 18 + 1, 5 + 18 + 1); - this.result = new PositionedStack(result, 83 + 27 + 18 + 1, 5 + 18 + 1); - } + public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe { + PositionedStack input; + PositionedStack result; - @Override + public SmeltingSet(ItemStack input, ItemStack result) { + input.stackSize = 1; + this.input = new PositionedStack(input, 83 - 27 - 18 + 1, 5 + 18 + 1); + this.result = new PositionedStack(result, 83 + 27 + 18 + 1, 5 + 18 + 1); + } + + @Override public List getIngredients() { - return getCycledIngredients(cycleticks / 48, Arrays.asList(new PositionedStack[] {input})); - } + return getCycledIngredients(cycleticks / 48, Arrays.asList(new PositionedStack[] { input })); + } - @Override + @Override public List getOtherStacks() { - List stacks = new ArrayList(); - stacks.add(fuels.get((cycleticks / 24) % fuels.size()).stack0); - stacks.add(fuels.get((cycleticks / 24) % fuels.size()).stack1); - return stacks; - } + List stacks = new ArrayList(); + stacks.add(fuels.get((cycleticks / 24) % fuels.size()).stack0); + stacks.add(fuels.get((cycleticks / 24) % fuels.size()).stack1); + return stacks; + } - @Override + @Override public PositionedStack getResult() { - return result; - } - } + return result; + } + } - public static class Fuel - { - public Fuel(ItemStack ingred) { + public static class Fuel { + public Fuel(ItemStack ingred) { - this.stack0 = new PositionedStack(ingred, 83 + 1, 5 + 1, false); - this.stack1 = new PositionedStack(ingred, 83 + 1, 5 + 36 + 1, false); - } + this.stack0 = new PositionedStack(ingred, 83 + 1, 5 + 1, false); + this.stack1 = new PositionedStack(ingred, 83 + 1, 5 + 36 + 1, false); + } + + public PositionedStack stack0; + public PositionedStack stack1; + } - public PositionedStack stack0; - public PositionedStack stack1; - } - @Override public String getRecipeName() { return "Shredder"; @@ -77,15 +75,15 @@ public class ShredderRecipeHandler extends TemplateRecipeHandler { @Override public String getGuiTexture() { - return RefStrings.MODID + ":textures/gui/gui_nei_shredder.png"; + return RefStrings.MODID + ":textures/gui/nei/gui_nei_shredder.png"; } - + @Override public void loadCraftingRecipes(String outputId, Object... results) { - if ((outputId.equals("shredding")) && getClass() == ShredderRecipeHandler.class) { + if((outputId.equals("shredding")) && getClass() == ShredderRecipeHandler.class) { Map recipes = ShredderRecipes.getShredderRecipes(); - for (Map.Entry recipe : recipes.entrySet()) { - this.arecipes.add(new SmeltingSet(((ComparableStack)recipe.getKey()).toStack(), (ItemStack)recipe.getValue())); + for(Map.Entry recipe : recipes.entrySet()) { + this.arecipes.add(new SmeltingSet(((ComparableStack) recipe.getKey()).toStack(), (ItemStack) recipe.getValue())); } } else { super.loadCraftingRecipes(outputId, results); @@ -95,15 +93,15 @@ public class ShredderRecipeHandler extends TemplateRecipeHandler { @Override public void loadCraftingRecipes(ItemStack result) { Map recipes = ShredderRecipes.getShredderRecipes(); - for (Map.Entry recipe : recipes.entrySet()) { - if (NEIServerUtils.areStacksSameType((ItemStack)recipe.getValue(), result)) - this.arecipes.add(new SmeltingSet(((ComparableStack)recipe.getKey()).toStack(), (ItemStack)recipe.getValue())); + for(Map.Entry recipe : recipes.entrySet()) { + if(NEIServerUtils.areStacksSameType((ItemStack) recipe.getValue(), result)) + this.arecipes.add(new SmeltingSet(((ComparableStack) recipe.getKey()).toStack(), (ItemStack) recipe.getValue())); } } @Override public void loadUsageRecipes(String inputId, Object... ingredients) { - if ((inputId.equals("shredding")) && getClass() == ShredderRecipeHandler.class) { + if((inputId.equals("shredding")) && getClass() == ShredderRecipeHandler.class) { loadCraftingRecipes("shredding", new Object[0]); } else { super.loadUsageRecipes(inputId, ingredients); @@ -113,65 +111,62 @@ public class ShredderRecipeHandler extends TemplateRecipeHandler { @Override public void loadUsageRecipes(ItemStack ingredient) { Map recipes = ShredderRecipes.getShredderRecipes(); - for (Map.Entry recipe : recipes.entrySet()) { - if (NEIServerUtils.areStacksSameType(ingredient, ((ComparableStack)recipe.getKey()).toStack())) - this.arecipes.add(new SmeltingSet(((ComparableStack)recipe.getKey()).toStack(), (ItemStack)recipe.getValue())); + for(Map.Entry recipe : recipes.entrySet()) { + if(NEIServerUtils.areStacksSameType(ingredient, ((ComparableStack) recipe.getKey()).toStack())) + this.arecipes.add(new SmeltingSet(((ComparableStack) recipe.getKey()).toStack(), (ItemStack) recipe.getValue())); } } - @Override - public Class getGuiClass() { - //return GUIMachineShredder.class; - return null; - } - - @Override - public void loadTransferRects() { - //transferRectsRec = new LinkedList(); - transferRectsGui = new LinkedList(); - //guiRec = new LinkedList>(); - guiGui = new LinkedList>(); - - transferRects.add(new RecipeTransferRect(new Rectangle(74 + 6, 23, 24, 18), "shredding")); - transferRectsGui.add(new RecipeTransferRect(new Rectangle(63 - 7 + 4, 89 - 11, 34, 18), "shredding")); - //guiRec.add(GuiRecipe.class); - guiGui.add(GUIMachineShredder.class); - RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); - //RecipeTransferRectHandler.registerRectsToGuis(guiRec, transferRectsRec); - RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); - - //for(Class r : getRecipeTransferRectGuis()) - // System.out.println(r.toString()); - } + @Override + public Class getGuiClass() { + // return GUIMachineShredder.class; + return null; + } - @Override - public void drawExtras(int recipe) { - /*//Top - drawTexturedModalRect(83, 5, 0, 140, 18, 18); - //Bottom - drawTexturedModalRect(83, 5 + 36, 0, 140, 18, 18); - //Right - drawTexturedModalRect(83 + 27 + 18, 5 + 18, 0, 140, 18, 18); - //Left - drawTexturedModalRect(83 - 27 - 18, 5 + 18, 0, 140, 18, 18); - //Progress - drawTexturedModalRect(83 - 3, 5 + 19, 100, 102, 24, 16); - //Power - drawTexturedModalRect(83 - (18 * 4) - 9, 5, 0, 86, 18, 18 * 3);*/ + @Override + public void loadTransferRects() { + // transferRectsRec = new LinkedList(); + transferRectsGui = new LinkedList(); + // guiRec = new LinkedList>(); + guiGui = new LinkedList>(); - drawProgressBar(83 - (18 * 4) - 9 + 1, 6, 36, 86, 16, 18 * 3 - 2, 480, 7); - - drawProgressBar(83 - 3, 5 + 18, 100, 118, 24, 16, 48, 0); - } + transferRects.add(new RecipeTransferRect(new Rectangle(74 + 6, 23, 24, 18), "shredding")); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(63 - 7 + 4, 89 - 11, 34, 18), "shredding")); + // guiRec.add(GuiRecipe.class); + guiGui.add(GUIMachineShredder.class); + RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); + // RecipeTransferRectHandler.registerRectsToGuis(guiRec, + // transferRectsRec); + RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); - @Override - public TemplateRecipeHandler newInstance() { - if (fuels == null || fuels.isEmpty()) - fuels = new ArrayList(); - for(ItemStack i : MachineRecipes.instance().getBlades()) - { - fuels.add(new Fuel(i)); - } - return super.newInstance(); - } + // for(Class r : getRecipeTransferRectGuis()) + // System.out.println(r.toString()); + } + + @Override + public void drawExtras(int recipe) { + /* + * //Top drawTexturedModalRect(83, 5, 0, 140, 18, 18); //Bottom + * drawTexturedModalRect(83, 5 + 36, 0, 140, 18, 18); //Right + * drawTexturedModalRect(83 + 27 + 18, 5 + 18, 0, 140, 18, 18); //Left + * drawTexturedModalRect(83 - 27 - 18, 5 + 18, 0, 140, 18, 18); + * //Progress drawTexturedModalRect(83 - 3, 5 + 19, 100, 102, 24, 16); + * //Power drawTexturedModalRect(83 - (18 * 4) - 9, 5, 0, 86, 18, 18 * + * 3); + */ + + drawProgressBar(83 - (18 * 4) - 9 + 1, 6, 36, 86, 16, 18 * 3 - 2, 480, 7); + + drawProgressBar(83 - 3, 5 + 18, 100, 118, 24, 16, 48, 0); + } + + @Override + public TemplateRecipeHandler newInstance() { + if(fuels == null || fuels.isEmpty()) + fuels = new ArrayList(); + for(ItemStack i : MachineRecipes.instance().getBlades()) { + fuels.add(new Fuel(i)); + } + return super.newInstance(); + } } diff --git a/src/main/java/com/hbm/interfaces/IItemHazard.java b/src/main/java/com/hbm/interfaces/IItemHazard.java index a1c81637e..a89277278 100644 --- a/src/main/java/com/hbm/interfaces/IItemHazard.java +++ b/src/main/java/com/hbm/interfaces/IItemHazard.java @@ -29,6 +29,11 @@ public interface IItemHazard { return this; } + public default IItemHazard addBlinding() { + this.getModule().addBlinding(); + return this; + } + public default IItemHazard addHydroReactivity() { this.getModule().addHydroReactivity(); return this; diff --git a/src/main/java/com/hbm/inventory/SILEXRecipes.java b/src/main/java/com/hbm/inventory/SILEXRecipes.java index da5880bc2..82c2320cc 100644 --- a/src/main/java/com/hbm/inventory/SILEXRecipes.java +++ b/src/main/java/com/hbm/inventory/SILEXRecipes.java @@ -3,13 +3,17 @@ package com.hbm.inventory; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import com.hbm.inventory.HadronRecipes.HadronRecipe; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; import com.hbm.util.WeightedRandomObject; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; public class SILEXRecipes { @@ -71,6 +75,23 @@ public class SILEXRecipes { return null; } + + public static Map getRecipes() { + + Map recipes = new HashMap(); + + for(Entry entry : SILEXRecipes.recipes.entrySet()) { + + if(entry.getKey() instanceof String) { + List ingredients = OreDictionary.getOres((String)entry.getKey()); + recipes.put(ingredients, entry.getValue()); + } else { + recipes.put(((ComparableStack)entry.getKey()).toStack(), entry.getValue()); + } + } + + return recipes; + } public static class SILEXRecipe { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 565d6ef57..3d0a3681a 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -133,6 +133,7 @@ public class ModItems { public static Item ingot_saturnite; public static Item plate_saturnite; public static Item ingot_electronium; + public static Item nugget_zirconium; public static Item nugget_mercury; public static Item bottle_mercury; @@ -1919,6 +1920,10 @@ public class ModItems { public static Item hazmat_plate_grey; public static Item hazmat_legs_grey; public static Item hazmat_boots_grey; + public static Item liquidator_helmet; + public static Item liquidator_plate; + public static Item liquidator_legs; + public static Item liquidator_boots; public static Item hazmat_paa_helmet; public static Item hazmat_paa_plate; @@ -2325,6 +2330,7 @@ public class ModItems { ingot_asbestos = new ItemHazard().addAsbestos().toItem().setUnlocalizedName("ingot_asbestos").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_asbestos"); powder_asbestos = new ItemHazard().addAsbestos().toItem().setUnlocalizedName("powder_asbestos").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_asbestos"); ingot_electronium = new ItemCustomLore().setUnlocalizedName("ingot_electronium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_electronium"); + nugget_zirconium = new ItemCustomLore().setUnlocalizedName("nugget_zirconium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_zirconium"); nugget_mercury = new ItemCustomLore().setUnlocalizedName("nugget_mercury").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_mercury"); bottle_mercury = new ItemCustomLore().setUnlocalizedName("bottle_mercury").setContainerItem(Items.glass_bottle).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bottle_mercury"); @@ -2840,9 +2846,9 @@ public class ModItems { 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"); + cladding_rubber = new ItemModCladding(0.005F).setUnlocalizedName("cladding_rubber").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cladding_rubber"); + cladding_lead = new ItemModCladding(0.1F).setUnlocalizedName("cladding_lead").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cladding_lead"); + cladding_desh = new ItemModCladding(0.2F).setUnlocalizedName("cladding_desh").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cladding_desh"); cladding_obsidian = new ItemModObsidian().setUnlocalizedName("cladding_obsidian").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cladding_obsidian"); insert_kevlar = new ItemModInsert(1500, 1F, 0.9F, 1F, 1F).setUnlocalizedName("insert_kevlar").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":insert_kevlar"); insert_sapi = new ItemModInsert(1750, 1F, 0.85F, 1F, 1F).setUnlocalizedName("insert_sapi").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":insert_sapi"); @@ -3736,13 +3742,13 @@ public class ModItems { arc_electrode_desh = new ItemCustomLore().setUnlocalizedName("arc_electrode_desh").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setFull3D().setTextureName(RefStrings.MODID + ":arc_electrode_desh"); dynosphere_base = new Item().setUnlocalizedName("dynosphere_base").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":dynosphere_base"); - dynosphere_desh = new ItemBattery(1000000L, 10000, 0).setUnlocalizedName("dynosphere_desh").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":dynosphere_desh"); + dynosphere_desh = new ItemBattery(1000000L, 10000L, 0).setUnlocalizedName("dynosphere_desh").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":dynosphere_desh"); dynosphere_desh_charged = new Item().setUnlocalizedName("dynosphere_desh_charged").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":dynosphere_desh_charged"); - dynosphere_schrabidium = new ItemBattery(100000000L, 100000, 0).setUnlocalizedName("dynosphere_schrabidium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":dynosphere_schrabidium"); + dynosphere_schrabidium = new ItemBattery(100000000L, 500000L, 0).setUnlocalizedName("dynosphere_schrabidium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":dynosphere_schrabidium"); dynosphere_schrabidium_charged = new Item().setUnlocalizedName("dynosphere_schrabidium_charged").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":dynosphere_schrabidium_charged"); - dynosphere_euphemium = new ItemBattery(10000000000L, 1000000, 0).setUnlocalizedName("dynosphere_euphemium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":dynosphere_euphemium"); + dynosphere_euphemium = new ItemBattery(10000000000L, 25000000L, 0).setUnlocalizedName("dynosphere_euphemium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":dynosphere_euphemium"); dynosphere_euphemium_charged = new Item().setUnlocalizedName("dynosphere_euphemium_charged").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":dynosphere_euphemium_charged"); - dynosphere_dineutronium = new ItemBattery(1000000000000L, 10000000, 0).setUnlocalizedName("dynosphere_dineutronium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":dynosphere_dineutronium"); + dynosphere_dineutronium = new ItemBattery(1000000000000L, 1250000000L, 0).setUnlocalizedName("dynosphere_dineutronium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":dynosphere_dineutronium"); dynosphere_dineutronium_charged = new Item().setUnlocalizedName("dynosphere_dineutronium_charged").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":dynosphere_dineutronium_charged"); factory_core_titanium = new ItemBattery(7040000, 1000, 0).setUnlocalizedName("factory_core_titanium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":factory_core_titanium"); @@ -4411,6 +4417,18 @@ public class ModItems { hazmat_paa_plate = new ArmorHazmat(MainRegistry.aMatPaa, 9, 1).setUnlocalizedName("hazmat_paa_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":hazmat_paa_plate"); hazmat_paa_legs = new ArmorHazmat(MainRegistry.aMatPaa, 9, 2).setUnlocalizedName("hazmat_paa_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":hazmat_paa_legs"); hazmat_paa_boots = new ArmorHazmat(MainRegistry.aMatPaa, 9, 3).setUnlocalizedName("hazmat_paa_boots").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":hazmat_paa_boots"); + + ArmorMaterial aMatLiquidator = EnumHelper.addArmorMaterial("HBM_LIQUIDATOR", 10, new int[] { 3, 8, 6, 3 }, 10); + aMatLiquidator.customCraftingMaterial = ModItems.plate_lead; + liquidator_helmet = new ArmorLiquidator(aMatLiquidator, 9, 0, RefStrings.MODID + ":textures/armor/liquidator_helmet.png") + .setThreshold(1.0F) + .setBlastProtection(0.25F) + .setStep("hbm:step.metal") + .setJump("hbm:step.iron_jump") + .setFall("hbm:step.iron_land").setUnlocalizedName("liquidator_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":liquidator_helmet"); + liquidator_plate = new ArmorLiquidator(aMatLiquidator, 9, 1, RefStrings.MODID + ":textures/armor/liquidator_1.png").cloneStats((ArmorFSB) liquidator_helmet).setUnlocalizedName("liquidator_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":liquidator_plate"); + liquidator_legs = new ArmorLiquidator(aMatLiquidator, 9, 2, RefStrings.MODID + ":textures/armor/liquidator_2.png").cloneStats((ArmorFSB) liquidator_helmet).setUnlocalizedName("liquidator_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":liquidator_legs"); + liquidator_boots = new ArmorLiquidator(aMatLiquidator, 9, 3, RefStrings.MODID + ":textures/armor/liquidator_1.png").cloneStats((ArmorFSB) liquidator_helmet).setUnlocalizedName("liquidator_boots").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":liquidator_boots"); australium_iii = new ArmorAustralium(MainRegistry.aMatAus3, 9, 1).setUnlocalizedName("australium_iii").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":australium_iii"); @@ -4902,6 +4920,7 @@ public class ModItems { GameRegistry.registerItem(nugget_schrabidium_fuel, nugget_schrabidium_fuel.getUnlocalizedName()); GameRegistry.registerItem(nugget_hes, nugget_hes.getUnlocalizedName()); GameRegistry.registerItem(nugget_les, nugget_les.getUnlocalizedName()); + GameRegistry.registerItem(nugget_zirconium, nugget_zirconium.getUnlocalizedName()); GameRegistry.registerItem(nugget_australium, nugget_australium.getUnlocalizedName()); GameRegistry.registerItem(nugget_weidanium, nugget_weidanium.getUnlocalizedName()); GameRegistry.registerItem(nugget_reiium, nugget_reiium.getUnlocalizedName()); @@ -6615,6 +6634,10 @@ public class ModItems { GameRegistry.registerItem(hazmat_paa_plate, hazmat_paa_plate.getUnlocalizedName()); GameRegistry.registerItem(hazmat_paa_legs, hazmat_paa_legs.getUnlocalizedName()); GameRegistry.registerItem(hazmat_paa_boots, hazmat_paa_boots.getUnlocalizedName()); + GameRegistry.registerItem(liquidator_helmet, liquidator_helmet.getUnlocalizedName()); + GameRegistry.registerItem(liquidator_plate, liquidator_plate.getUnlocalizedName()); + GameRegistry.registerItem(liquidator_legs, liquidator_legs.getUnlocalizedName()); + GameRegistry.registerItem(liquidator_boots, liquidator_boots.getUnlocalizedName()); GameRegistry.registerItem(cmb_helmet, cmb_helmet.getUnlocalizedName()); GameRegistry.registerItem(cmb_plate, cmb_plate.getUnlocalizedName()); GameRegistry.registerItem(cmb_legs, cmb_legs.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/armor/ArmorLiquidator.java b/src/main/java/com/hbm/items/armor/ArmorLiquidator.java new file mode 100644 index 000000000..3069295e5 --- /dev/null +++ b/src/main/java/com/hbm/items/armor/ArmorLiquidator.java @@ -0,0 +1,49 @@ +package com.hbm.items.armor; + +import com.google.common.collect.HashMultimap; +import com.google.common.collect.Multimap; +import com.hbm.handler.ArmorModHandler; +import com.hbm.items.ModItems; +import com.hbm.render.model.ModelM65; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.attributes.AttributeModifier; +import net.minecraft.item.ItemStack; + +public class ArmorLiquidator extends ArmorFSB { + + private ModelM65 model; + + public ArmorLiquidator(ArmorMaterial material, int layer, int slot, String texture) { + super(material, layer, slot, texture); + } + + @Override + @SideOnly(Side.CLIENT) + public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot) { + + if (this == ModItems.liquidator_helmet) { + if (armorSlot == 0) { + if (this.model == null) { + this.model = new ModelM65(); + } + return this.model; + } + } + + return super.getArmorModel(entityLiving, itemStack, armorSlot); + } + + @Override + public Multimap getItemAttributeModifiers() { + + Multimap multimap = HashMultimap.create(); + multimap.put(SharedMonsterAttributes.knockbackResistance.getAttributeUnlocalizedName(), new AttributeModifier(ArmorModHandler.fixedUUIDs[this.armorType], "Armor modifier", 100D, 0)); + multimap.put(SharedMonsterAttributes.movementSpeed.getAttributeUnlocalizedName(), new AttributeModifier(ArmorModHandler.fixedUUIDs[this.armorType], "Armor modifier", -0.1D, 1)); + return multimap; + } +} diff --git a/src/main/java/com/hbm/items/armor/ItemModCladding.java b/src/main/java/com/hbm/items/armor/ItemModCladding.java index 2f6a721cf..a71b8cb28 100644 --- a/src/main/java/com/hbm/items/armor/ItemModCladding.java +++ b/src/main/java/com/hbm/items/armor/ItemModCladding.java @@ -11,13 +11,13 @@ import net.minecraft.util.EnumChatFormatting; public class ItemModCladding extends ItemArmorMod { - public float rad; + public double rad; - public ItemModCladding(float rad) { + public ItemModCladding(double 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"); diff --git a/src/main/java/com/hbm/items/special/ItemHazard.java b/src/main/java/com/hbm/items/special/ItemHazard.java index bf4118397..82e52eebf 100644 --- a/src/main/java/com/hbm/items/special/ItemHazard.java +++ b/src/main/java/com/hbm/items/special/ItemHazard.java @@ -3,19 +3,12 @@ package com.hbm.items.special; import java.util.List; import com.hbm.interfaces.IItemHazard; -import com.hbm.inventory.BreederRecipes; import com.hbm.modules.ItemHazardModule; -import com.hbm.util.ArmorUtil; -import com.hbm.util.ContaminationUtil; -import com.hbm.util.I18nUtil; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; public class ItemHazard extends ItemCustomLore implements IItemHazard { @@ -55,6 +48,7 @@ public class ItemHazard extends ItemCustomLore implements IItemHazard { public static final float sr = sa326 * 0.1F; public static final float trx = 25.0F; public static final float trn = 0.1F; + public static final float wst = 15.0F; public static final float yc = u; public static final float fo = 10F; diff --git a/src/main/java/com/hbm/items/special/ItemSyringe.java b/src/main/java/com/hbm/items/special/ItemSyringe.java index 1b72b925b..169eb497a 100644 --- a/src/main/java/com/hbm/items/special/ItemSyringe.java +++ b/src/main/java/com/hbm/items/special/ItemSyringe.java @@ -364,9 +364,10 @@ public class ItemSyringe extends Item { public boolean hitEntity(ItemStack stack, EntityLivingBase entity, EntityLivingBase entityPlayer) { World world = entity.worldObj; - if(this == ModItems.syringe_antidote) { + if(this == ModItems.syringe_antidote && !VersatileConfig.hasPotionSickness(entity)) { if(!world.isRemote) { entity.clearActivePotions(); + VersatileConfig.applyPotionSickness(entity, 5); stack.stackSize--; world.playSoundAtEntity(entity, "hbm:item.syringe", 1.0F, 1.0F); @@ -380,7 +381,7 @@ public class ItemSyringe extends Item { } } - if(this == ModItems.syringe_awesome) { + if(this == ModItems.syringe_awesome && !VersatileConfig.hasPotionSickness(entity)) { if(!world.isRemote) { entity.addPotionEffect(new PotionEffect(Potion.regeneration.id, 50 * 20, 9)); entity.addPotionEffect(new PotionEffect(Potion.resistance.id, 50 * 20, 9)); @@ -392,6 +393,7 @@ public class ItemSyringe extends Item { entity.addPotionEffect(new PotionEffect(Potion.field_76434_w.id, 50 * 20, 9)); entity.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 50 * 20, 4)); entity.addPotionEffect(new PotionEffect(Potion.confusion.id, 5 * 20, 4)); + VersatileConfig.applyPotionSickness(entity, 50); stack.stackSize--; world.playSoundAtEntity(entity, "hbm:item.syringe", 1.0F, 1.0F); @@ -421,9 +423,10 @@ public class ItemSyringe extends Item { } } - if(this == ModItems.syringe_metal_stimpak) { + if(this == ModItems.syringe_metal_stimpak && !VersatileConfig.hasPotionSickness(entity)) { if(!world.isRemote) { entity.heal(5); + VersatileConfig.applyPotionSickness(entity, 5); stack.stackSize--; world.playSoundAtEntity(entity, "hbm:item.syringe", 1.0F, 1.0F); @@ -437,9 +440,10 @@ public class ItemSyringe extends Item { } } - if(this == ModItems.syringe_metal_medx) { + if(this == ModItems.syringe_metal_medx && !VersatileConfig.hasPotionSickness(entity)) { if(!world.isRemote) { entity.addPotionEffect(new PotionEffect(Potion.resistance.id, 4 * 60 * 20, 2)); + VersatileConfig.applyPotionSickness(entity, 5); stack.stackSize--; world.playSoundAtEntity(entity, "hbm:item.syringe", 1.0F, 1.0F); @@ -453,10 +457,11 @@ public class ItemSyringe extends Item { } } - if(this == ModItems.syringe_metal_psycho) { + if(this == ModItems.syringe_metal_psycho && !VersatileConfig.hasPotionSickness(entity)) { if(!world.isRemote) { entity.addPotionEffect(new PotionEffect(Potion.resistance.id, 2 * 60 * 20, 0)); entity.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 2 * 60 * 20, 0)); + VersatileConfig.applyPotionSickness(entity, 5); stack.stackSize--; world.playSoundAtEntity(entity, "hbm:item.syringe", 1.0F, 1.0F); @@ -470,10 +475,11 @@ public class ItemSyringe extends Item { } } - if(this == ModItems.syringe_metal_super) { + if(this == ModItems.syringe_metal_super && !VersatileConfig.hasPotionSickness(entity)) { if(!world.isRemote) { entity.heal(25); entity.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 10 * 20, 0)); + VersatileConfig.applyPotionSickness(entity, 15); stack.stackSize--; world.playSoundAtEntity(entity, "hbm:item.syringe", 1.0F, 1.0F); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 134aeebc9..b8b9245b2 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -1164,6 +1164,13 @@ public class ClientProxy extends ServerProxy { } } + if("schrabfog".equals(type)) { + + EntityAuraFX flash = new EntityAuraFX(world, x, y, z, 0, 0, 0); + flash.setRBGColorF(0F, 1F, 1F); + Minecraft.getMinecraft().effectRenderer.addEffect(flash); + } + if("hadron".equals(type)) { Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleHadron(man, world, x, y, z)); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 79137e7c6..123c5d765 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1062,125 +1062,7 @@ public class MainRegistry { FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_barrel_full, 1, i), new ItemStack(ModItems.fluid_barrel_empty), FluidType.getEnum(i), 16000)); } - HazmatRegistry.registerHazmat(ModItems.hazmat_helmet, 0.2F); - HazmatRegistry.registerHazmat(ModItems.hazmat_plate, 0.4F); - HazmatRegistry.registerHazmat(ModItems.hazmat_legs, 0.3F); - HazmatRegistry.registerHazmat(ModItems.hazmat_boots, 0.1F); - - HazmatRegistry.registerHazmat(ModItems.hazmat_helmet_red, 0.3F); - HazmatRegistry.registerHazmat(ModItems.hazmat_plate_red, 0.6F); - HazmatRegistry.registerHazmat(ModItems.hazmat_legs_red, 0.45F); - HazmatRegistry.registerHazmat(ModItems.hazmat_boots_red, 0.15F); - - HazmatRegistry.registerHazmat(ModItems.hazmat_helmet_grey, 0.4F); - HazmatRegistry.registerHazmat(ModItems.hazmat_plate_grey, 0.8F); - HazmatRegistry.registerHazmat(ModItems.hazmat_legs_grey, 0.6F); - HazmatRegistry.registerHazmat(ModItems.hazmat_boots_grey, 0.2F); - - HazmatRegistry.registerHazmat(ModItems.t45_helmet, 0.4F); - HazmatRegistry.registerHazmat(ModItems.t45_plate, 0.8F); - HazmatRegistry.registerHazmat(ModItems.t45_legs, 0.6F); - HazmatRegistry.registerHazmat(ModItems.t45_boots, 0.2F); - - HazmatRegistry.registerHazmat(ModItems.ajr_helmet, 0.4F); - HazmatRegistry.registerHazmat(ModItems.ajr_plate, 0.8F); - HazmatRegistry.registerHazmat(ModItems.ajr_legs, 0.6F); - HazmatRegistry.registerHazmat(ModItems.ajr_boots, 0.2F); - HazmatRegistry.registerHazmat(ModItems.ajro_helmet, 0.4F); - HazmatRegistry.registerHazmat(ModItems.ajro_plate, 0.8F); - HazmatRegistry.registerHazmat(ModItems.ajro_legs, 0.6F); - HazmatRegistry.registerHazmat(ModItems.ajro_boots, 0.2F); - - HazmatRegistry.registerHazmat(ModItems.bj_helmet, 0.4F); - HazmatRegistry.registerHazmat(ModItems.bj_plate, 0.8F); - HazmatRegistry.registerHazmat(ModItems.bj_plate_jetpack, 0.8F); - HazmatRegistry.registerHazmat(ModItems.bj_legs, 0.6F); - HazmatRegistry.registerHazmat(ModItems.bj_boots, 0.2F); - - HazmatRegistry.registerHazmat(ModItems.hev_helmet, 0.5F); - HazmatRegistry.registerHazmat(ModItems.hev_plate, 1.0F); - HazmatRegistry.registerHazmat(ModItems.hev_legs, 0.7F); - HazmatRegistry.registerHazmat(ModItems.hev_boots, 0.3F); - - HazmatRegistry.registerHazmat(ModItems.fau_helmet, 0.6F); - HazmatRegistry.registerHazmat(ModItems.fau_plate, 1.2F); - HazmatRegistry.registerHazmat(ModItems.fau_legs, 0.9F); - HazmatRegistry.registerHazmat(ModItems.fau_boots, 0.3F); - - HazmatRegistry.registerHazmat(ModItems.paa_plate, 0.8F); - HazmatRegistry.registerHazmat(ModItems.paa_legs, 0.6F); - HazmatRegistry.registerHazmat(ModItems.paa_boots, 0.2F); - - HazmatRegistry.registerHazmat(ModItems.hazmat_paa_helmet, 0.6F); - HazmatRegistry.registerHazmat(ModItems.hazmat_paa_plate, 1.2F); - HazmatRegistry.registerHazmat(ModItems.hazmat_paa_legs, 0.9F); - HazmatRegistry.registerHazmat(ModItems.hazmat_paa_boots, 0.3F); - - HazmatRegistry.registerHazmat(ModItems.security_helmet, 0.2F); - HazmatRegistry.registerHazmat(ModItems.security_plate, 0.4F); - HazmatRegistry.registerHazmat(ModItems.security_legs, 0.3F); - HazmatRegistry.registerHazmat(ModItems.security_boots, 0.1F); - - HazmatRegistry.registerHazmat(ModItems.starmetal_helmet, 0.6F); - HazmatRegistry.registerHazmat(ModItems.starmetal_plate, 1.2F); - HazmatRegistry.registerHazmat(ModItems.starmetal_legs, 0.9F); - HazmatRegistry.registerHazmat(ModItems.starmetal_boots, 0.3F); - - HazmatRegistry.registerHazmat(ModItems.jackt, 0.3F); - HazmatRegistry.registerHazmat(ModItems.jackt2, 0.3F); - - HazmatRegistry.registerHazmat(ModItems.gas_mask, 0.15F); - HazmatRegistry.registerHazmat(ModItems.gas_mask_m65, 0.175F); - - HazmatRegistry.registerHazmat(ModItems.steel_helmet, 0.04F); - HazmatRegistry.registerHazmat(ModItems.steel_plate, 0.08F); - HazmatRegistry.registerHazmat(ModItems.steel_legs, 0.06F); - HazmatRegistry.registerHazmat(ModItems.steel_boots, 0.02F); - - HazmatRegistry.registerHazmat(ModItems.titanium_helmet, 0.06F); - HazmatRegistry.registerHazmat(ModItems.titanium_plate, 0.12F); - HazmatRegistry.registerHazmat(ModItems.titanium_legs, 0.1F); - HazmatRegistry.registerHazmat(ModItems.titanium_boots, 0.03F); - - HazmatRegistry.registerHazmat(ModItems.cobalt_helmet, 0.1F); - HazmatRegistry.registerHazmat(ModItems.cobalt_plate, 0.2F); - HazmatRegistry.registerHazmat(ModItems.cobalt_legs, 0.15F); - HazmatRegistry.registerHazmat(ModItems.cobalt_boots, 0.05F); - - HazmatRegistry.registerHazmat(Items.iron_helmet, 0.04F); - HazmatRegistry.registerHazmat(Items.iron_chestplate, 0.08F); - HazmatRegistry.registerHazmat(Items.iron_leggings, 0.06F); - HazmatRegistry.registerHazmat(Items.iron_boots, 0.02F); - - HazmatRegistry.registerHazmat(Items.golden_helmet, 0.04F); - HazmatRegistry.registerHazmat(Items.golden_chestplate, 0.08F); - HazmatRegistry.registerHazmat(Items.golden_leggings, 0.06F); - HazmatRegistry.registerHazmat(Items.golden_boots, 0.02F); - - HazmatRegistry.registerHazmat(Items.diamond_helmet, 0.05F); - HazmatRegistry.registerHazmat(Items.diamond_chestplate, 0.09F); - HazmatRegistry.registerHazmat(Items.diamond_leggings, 0.07F); - HazmatRegistry.registerHazmat(Items.diamond_boots, 0.03F); - - HazmatRegistry.registerHazmat(ModItems.alloy_helmet, 0.08F); - HazmatRegistry.registerHazmat(ModItems.alloy_plate, 0.16F); - HazmatRegistry.registerHazmat(ModItems.alloy_legs, 0.12F); - HazmatRegistry.registerHazmat(ModItems.alloy_boots, 0.04F); - - HazmatRegistry.registerHazmat(ModItems.cmb_helmet, 0.5F); - HazmatRegistry.registerHazmat(ModItems.cmb_plate, 1.1F); - HazmatRegistry.registerHazmat(ModItems.cmb_legs, 0.8F); - HazmatRegistry.registerHazmat(ModItems.cmb_boots, 0.2F); - - HazmatRegistry.registerHazmat(ModItems.schrabidium_helmet, 0.6F); - HazmatRegistry.registerHazmat(ModItems.schrabidium_plate, 1.2F); - HazmatRegistry.registerHazmat(ModItems.schrabidium_legs, 0.9F); - HazmatRegistry.registerHazmat(ModItems.schrabidium_boots, 0.3F); - - HazmatRegistry.registerHazmat(ModItems.euphemium_helmet, 6F); - HazmatRegistry.registerHazmat(ModItems.euphemium_plate, 12F); - HazmatRegistry.registerHazmat(ModItems.euphemium_legs, 9F); - HazmatRegistry.registerHazmat(ModItems.euphemium_boots, 3F); + HazmatRegistry.registerHazmats(); TileEntityMachineReactorLarge.registerFuelEntry(1, ReactorFuelType.URANIUM, ModItems.nugget_uranium_fuel); TileEntityMachineReactorLarge.registerFuelEntry(9, ReactorFuelType.URANIUM, ModItems.ingot_uranium_fuel); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index dfa04214a..f60c827d6 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -379,14 +379,14 @@ public class ModEventHandlerClient { } @SubscribeEvent - public void drawTooltip(ItemTooltipEvent event) { + public void drawTooltip(ItemTooltipEvent event) { ItemStack stack = event.itemStack; List list = event.toolTip; - float rad = HazmatRegistry.getResistance(stack); + double rad = HazmatRegistry.getResistance(stack); - rad = ((int)(rad * 1000)) / 1000F; + rad = ((int)(rad * 1000)) / 1000D; if(rad > 0) list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.radResistance", rad)); diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index 751e676d2..aa35ec1ad 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -3,6 +3,7 @@ package com.hbm.main; import com.hbm.blocks.ModBlocks; import com.hbm.handler.nei.*; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemBattery; import com.hbm.lib.RefStrings; import codechicken.nei.api.API; @@ -47,9 +48,12 @@ public class NEIConfig implements IConfigureNEI { API.registerUsageHandler(new FusionRecipeHandler()); API.registerRecipeHandler(new HadronRecipeHandler()); API.registerUsageHandler(new HadronRecipeHandler()); + API.registerRecipeHandler(new SILEXRecipeHandler()); + API.registerUsageHandler(new SILEXRecipeHandler()); //Some things are even beyond my control...or are they? - API.hideItem(new ItemStack(ModItems.memory)); + API.hideItem(ItemBattery.getEmptyBattery(ModItems.memory)); + API.hideItem(ItemBattery.getFullBattery(ModItems.memory)); API.hideItem(new ItemStack(ModBlocks.machine_coal_on)); API.hideItem(new ItemStack(ModBlocks.machine_electric_furnace_on)); @@ -63,18 +67,7 @@ public class NEIConfig implements IConfigureNEI { API.hideItem(new ItemStack(ModBlocks.statue_elb_f)); API.hideItem(new ItemStack(ModBlocks.cheater_virus)); API.hideItem(new ItemStack(ModBlocks.cheater_virus_seed)); - //API.hideItem(new ItemStack(ModItems.euphemium_helmet)); - //API.hideItem(new ItemStack(ModItems.euphemium_plate)); - //API.hideItem(new ItemStack(ModItems.euphemium_legs)); - //API.hideItem(new ItemStack(ModItems.euphemium_boots)); - //API.hideItem(new ItemStack(ModItems.apple_euphemium)); - //API.hideItem(new ItemStack(ModItems.ingot_euphemium)); - //API.hideItem(new ItemStack(ModItems.nugget_euphemium)); API.hideItem(new ItemStack(ModItems.euphemium_kit)); - //API.hideItem(new ItemStack(ModItems.euphemium_stopper)); - //API.hideItem(new ItemStack(ModItems.watch)); - //API.hideItem(new ItemStack(ModItems.rod_quad_euphemium)); - //API.hideItem(new ItemStack(ModItems.rod_euphemium)); API.hideItem(new ItemStack(ModItems.bobmazon_hidden)); if(MainRegistry.polaroidID != 11) { API.hideItem(new ItemStack(ModItems.book_secret)); diff --git a/src/main/java/com/hbm/render/tileentity/RenderFENSU.java b/src/main/java/com/hbm/render/tileentity/RenderFENSU.java index 806ffbdfe..9fccc8ade 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderFENSU.java +++ b/src/main/java/com/hbm/render/tileentity/RenderFENSU.java @@ -20,7 +20,7 @@ public class RenderFENSU extends TileEntitySpecialRenderer { GL11.glTranslatef((float)x + 0.5F, (float)y, (float)z + 0.5F); GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_LIGHTING); GL11.glShadeModel(GL11.GL_SMOOTH); @@ -30,30 +30,30 @@ public class RenderFENSU extends TileEntitySpecialRenderer { case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; } - - bindTexture(ResourceManager.fensu_tex); - ResourceManager.fensu.renderPart("Base"); - TileEntityMachineFENSU fensu = (TileEntityMachineFENSU)te; - float rot = fensu.prevRotation + (fensu.rotation - fensu.prevRotation) * f; - - GL11.glTranslated(0, 2.5, 0); - GL11.glRotated(rot, 1, 0, 0); - GL11.glTranslated(0, -2.5, 0); - ResourceManager.fensu.renderPart("Disc"); - - GL11.glPushMatrix(); - GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); - - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); - ResourceManager.fensu.renderPart("Lights"); - GL11.glEnable(GL11.GL_LIGHTING); - - GL11.glPopAttrib(); - GL11.glPopMatrix(); - + bindTexture(ResourceManager.fensu_tex); + ResourceManager.fensu.renderPart("Base"); + + TileEntityMachineFENSU fensu = (TileEntityMachineFENSU) te; + float rot = fensu.prevRotation + (fensu.rotation - fensu.prevRotation) * f; + + GL11.glTranslated(0, 2.5, 0); + GL11.glRotated(rot, 1, 0, 0); + GL11.glTranslated(0, -2.5, 0); + ResourceManager.fensu.renderPart("Disc"); + + GL11.glPushMatrix(); + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + ResourceManager.fensu.renderPart("Lights"); + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glPopAttrib(); + GL11.glPopMatrix(); + GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/render/tileentity/RenderITER.java b/src/main/java/com/hbm/render/tileentity/RenderITER.java index 595cf35a1..cd2f5f395 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderITER.java +++ b/src/main/java/com/hbm/render/tileentity/RenderITER.java @@ -12,76 +12,76 @@ public class RenderITER extends TileEntitySpecialRenderer { @Override public void renderTileEntityAt(TileEntity te, double x, double y, double z, float f) { - - TileEntityITER iter = (TileEntityITER)te; + + TileEntityITER iter = (TileEntityITER) te; GL11.glPushMatrix(); - - GL11.glTranslatef((float)x + 0.5F, (float)y - 2, (float)z + 0.5F); - + + GL11.glTranslatef((float) x + 0.5F, (float) y - 2, (float) z + 0.5F); + GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_LIGHTING); GL11.glShadeModel(GL11.GL_SMOOTH); - bindTexture(ResourceManager.iter_glass); - ResourceManager.iter.renderPart("Windows"); - bindTexture(ResourceManager.iter_motor); - ResourceManager.iter.renderPart("Motors"); - bindTexture(ResourceManager.iter_rails); - ResourceManager.iter.renderPart("Rails"); - bindTexture(ResourceManager.iter_toroidal); - ResourceManager.iter.renderPart("Toroidal"); - - switch(iter.blanket) { - case 0: bindTexture(ResourceManager.iter_torus); break; - case 1: bindTexture(ResourceManager.iter_torus_tungsten); break; - case 2: bindTexture(ResourceManager.iter_torus_desh); break; - case 3: bindTexture(ResourceManager.iter_torus_chlorophyte); break; - case 4: bindTexture(ResourceManager.iter_torus_vaporwave); break; - default: bindTexture(ResourceManager.iter_torus); break; - } - ResourceManager.iter.renderPart("Torus"); - - GL11.glPushMatrix(); - GL11.glRotated(iter.lastRotor + (iter.rotor - iter.lastRotor) * f, 0, 1, 0); - bindTexture(ResourceManager.iter_solenoid); - ResourceManager.iter.renderPart("Solenoid"); + bindTexture(ResourceManager.iter_glass); + ResourceManager.iter.renderPart("Windows"); + bindTexture(ResourceManager.iter_motor); + ResourceManager.iter.renderPart("Motors"); + bindTexture(ResourceManager.iter_rails); + ResourceManager.iter.renderPart("Rails"); + bindTexture(ResourceManager.iter_toroidal); + ResourceManager.iter.renderPart("Toroidal"); + + switch(iter.blanket) { + case 0: bindTexture(ResourceManager.iter_torus); break; + case 1: bindTexture(ResourceManager.iter_torus_tungsten); break; + case 2: bindTexture(ResourceManager.iter_torus_desh); break; + case 3: bindTexture(ResourceManager.iter_torus_chlorophyte); break; + case 4: bindTexture(ResourceManager.iter_torus_vaporwave); break; + default: bindTexture(ResourceManager.iter_torus); break; + } + ResourceManager.iter.renderPart("Torus"); + + GL11.glPushMatrix(); + GL11.glRotated(iter.lastRotor + (iter.rotor - iter.lastRotor) * f, 0, 1, 0); + bindTexture(ResourceManager.iter_solenoid); + ResourceManager.iter.renderPart("Solenoid"); GL11.glPopMatrix(); if(iter.plasma.getFill() > 0) { - GL11.glPushMatrix(); - GL11.glRotated(System.currentTimeMillis() / 50D % 360, 0, 1, 0); - - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_ALPHA_TEST); - GL11.glEnable(GL11.GL_BLEND); + GL11.glPushMatrix(); + GL11.glRotated(System.currentTimeMillis() / 50D % 360, 0, 1, 0); + + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - GL11.glDepthMask(false); - - int color = iter.plasma.getTankType().getColor(); - double alpha = (double)iter.plasma.getFill() / (double)iter.plasma.getMaxFill(); - - int r = (int)(((color & 0xFF0000) >> 16) / 2 * alpha); - int g = (int)(((color & 0xFF00) >> 8) / 2 * alpha); - int b = (int)((color & 0xFF) / 2 * alpha); - - GL11.glColor3b((byte) r, (byte) g, (byte) b); + GL11.glDepthMask(false); + + int color = iter.plasma.getTankType().getColor(); + double alpha = (double) iter.plasma.getFill() / (double) iter.plasma.getMaxFill(); + + int r = (int) (((color & 0xFF0000) >> 16) / 2 * alpha); + int g = (int) (((color & 0xFF00) >> 8) / 2 * alpha); + int b = (int) ((color & 0xFF) / 2 * alpha); + + GL11.glColor3b((byte) r, (byte) g, (byte) b); GL11.glTranslatef(0, 2.5F, 0); - GL11.glScaled(1, alpha, 1); + GL11.glScaled(1, alpha, 1); GL11.glTranslatef(0, -2.5F, 0); - - bindTexture(ResourceManager.iter_plasma); - ResourceManager.iter.renderPart("Plasma"); - - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_ALPHA_TEST); - GL11.glDisable(GL11.GL_BLEND); - GL11.glDepthMask(true); - + + bindTexture(ResourceManager.iter_plasma); + ResourceManager.iter.renderPart("Plasma"); + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glDisable(GL11.GL_BLEND); + GL11.glDepthMask(true); + GL11.glPopMatrix(); } - + GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/render/tileentity/RenderTurretTauon.java b/src/main/java/com/hbm/render/tileentity/RenderTurretTauon.java index 12b3f205e..2e2b071f6 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderTurretTauon.java +++ b/src/main/java/com/hbm/render/tileentity/RenderTurretTauon.java @@ -9,6 +9,7 @@ import com.hbm.render.util.BeamPronter.EnumBeamType; import com.hbm.render.util.BeamPronter.EnumWaveType; import com.hbm.tileentity.turret.TileEntityTurretTauon; +import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Vec3; @@ -46,8 +47,11 @@ public class RenderTurretTauon extends RenderTurretBase { if(turret.beam > 0) { GL11.glPushMatrix(); + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); GL11.glTranslated(0, 1.5D, 0); BeamPronter.prontBeam(Vec3.createVectorHelper(turret.lastDist, 0, 0), EnumWaveType.RANDOM, EnumBeamType.LINE, 0xffa200, 0xffd000, (int)te.getWorldObj().getTotalWorldTime() / 5 % 360, (int)turret.lastDist + 1, 0.1F, 0, 0); + GL11.glPopAttrib(); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFWatzCore.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFWatzCore.java index 61ffb7e2c..607e9816d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFWatzCore.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFWatzCore.java @@ -357,7 +357,8 @@ public class TileEntityFWatzCore extends TileEntity implements ISidedInventory, if(!this.isRunning() && tanks[1].getFill() >= 100 && tanks[2].getFill() >= 100 && hasFuse() && getSingularityType() > 0 && !cooldown && this.isStructureValid(worldObj)) this.fillPlasma(); - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + if(!worldObj.isRemote) + PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); } public void fillPlasma() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java index b19007ad7..a27d2c70b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java @@ -165,6 +165,7 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); + this.power = nbt.getLong("power"); tanks[0].readFromNBT(nbt, "fuel_1"); tanks[1].readFromNBT(nbt, "fuel_2"); plasma.readFromNBT(nbt, "plasma"); @@ -174,6 +175,7 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); + nbt.setLong("power", power); tanks[0].writeToNBT(nbt, "fuel_1"); tanks[1].writeToNBT(nbt, "fuel_2"); plasma.writeToNBT(nbt, "plasma"); diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretTauon.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretTauon.java index c10dd3b8b..d3d8d7f27 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretTauon.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretTauon.java @@ -87,10 +87,9 @@ public class TileEntityTurretTauon extends TileEntityTurretBaseNT { if(worldObj.isRemote) { - if(this.target != null) { + if(this.tPos != null) { Vec3 pos = this.getTurretPos(); - Vec3 ent = this.getEntityPos(this.target); - double length = Vec3.createVectorHelper(ent.xCoord - pos.xCoord, ent.yCoord - pos.yCoord, ent.zCoord - pos.zCoord).lengthVector(); + double length = Vec3.createVectorHelper(tPos.xCoord - pos.xCoord, tPos.yCoord - pos.yCoord, tPos.zCoord - pos.zCoord).lengthVector(); this.lastDist = length; } @@ -99,7 +98,7 @@ public class TileEntityTurretTauon extends TileEntityTurretBaseNT { this.lastSpin = this.spin; - if(this.target != null) { + if(this.tPos != null) { this.spin += 45; } diff --git a/src/main/java/com/hbm/util/ArmorUtil.java b/src/main/java/com/hbm/util/ArmorUtil.java index 028f75bb8..d1605b71e 100644 --- a/src/main/java/com/hbm/util/ArmorUtil.java +++ b/src/main/java/com/hbm/util/ArmorUtil.java @@ -85,6 +85,7 @@ public class ArmorUtil { public static boolean checkForHaz2(EntityPlayer player) { if(checkArmor(player, ModItems.hazmat_paa_helmet, ModItems.hazmat_paa_plate, ModItems.hazmat_paa_legs, ModItems.hazmat_paa_boots) || + checkArmor(player, ModItems.liquidator_helmet, ModItems.liquidator_plate, ModItems.liquidator_legs, ModItems.liquidator_boots) || checkArmor(player, ModItems.euphemium_helmet, ModItems.euphemium_plate, ModItems.euphemium_legs, ModItems.euphemium_boots)) { return true; @@ -136,6 +137,7 @@ public class ArmorUtil { "platinum", "tin", "lead", + "liquidator", "schrabidium", "euphemium", "steel", @@ -189,6 +191,10 @@ public class ArmorUtil { { return true; } + if(checkArmorPiece(player, ModItems.liquidator_helmet, 3)) + { + return true; + } if(checkArmorPiece(player, ModItems.gas_mask, 3)) { return true; @@ -247,6 +253,10 @@ public class ArmorUtil { { return true; } + if(checkArmorPiece(player, ModItems.liquidator_helmet, 3)) + { + return true; + } if(checkArmorPiece(player, ModItems.gas_mask, 3)) { return true; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index c42de06f3..1d96ac5de 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2853,7 +2853,7 @@ trait.heat=Erzeugt %s HEAT trait.hlParticle=Partikel-Halbwertszeit: %s trait.hlPlayer=Spieler-Halbwertszeit: %s trait.hot=Pyrophorisch / Heiß -trait.hydro=Hydro-Reaktivität +trait.hydro=Hydro-Reaktiv trait.radioactive=Radioaktiv trait.radResistance=Strahlungs-Resistenz: %s diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index ba4acafae..9ac69df4a 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2853,7 +2853,7 @@ trait.heat=Provides %s HEAT trait.hlParticle=Particle Half-Life: %s trait.hlPlayer=Player Half-Life: %s trait.hot=Pyrophoric / Hot -trait.hydro=Hydroreactivity +trait.hydro=Hydroreactive trait.radioactive=Radioactive trait.radResistance=Radiation resistance: %s diff --git a/src/main/resources/assets/hbm/textures/armor/liquidator_1.png b/src/main/resources/assets/hbm/textures/armor/liquidator_1.png new file mode 100644 index 0000000000000000000000000000000000000000..ae1eee7c2883995bdc67b4849b8b72d22ddd45e4 GIT binary patch literal 572 zcmV-C0>k}@P)4}06vuxV*5pW+GD#upt>dsW?`BhFejxbY_n%?hdG9#`kw_#Gi9{liNF)-8M7|nF zF2lve)q7PxJ^ij7b93|Ky)N$J{{Buh|7Np^&6wn2!Q!~ zz8708768t;@BHKO7_Bv(P6vSHa_Jmz;`IU~v|7iUo}Q8CIVUII4q|{a?mK_0b&OJq zB-#E9rIdKRjhDdn_4l9>czF0FnmjbuQUrMvF{FE4*ttzNBOAlNU} zbu^Lz<<9wLK&W4;>u4kc%H1<}z~%*l{Zd^=V*brZv1LHNKOoO@s}~M;Na}Ag1C-X9 z+uNVC+ikSgNOhS3tJN#(_1mr|l+UW4G9K!eXcvi6ipR&4BuREBDT%gafUTZ=c1-GT zqz7oN*=#ldXsrQ6+SUVX9o-i9@uz9VbUNL8F4c7;)w6W3*P|#3hQlF~$pod;?ji*L z&f3+p_h)B7bq(cZOseZRIzPV*YJ!77KV-O*G|difdlK!s8+-tvEbbF+w1Tt%0000< KMNUMnLSTX*Z3~0| literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/armor/liquidator_2.png b/src/main/resources/assets/hbm/textures/armor/liquidator_2.png new file mode 100644 index 0000000000000000000000000000000000000000..07ef3f4fa53901a84ebee8b48a602b6d233647fb GIT binary patch literal 384 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 KMNUMnLSTX{=5oFO literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk_rods.png b/src/main/resources/assets/hbm/textures/blocks/rbmk_rods.png new file mode 100644 index 0000000000000000000000000000000000000000..921051099b4da6908d216f009d706c03d256d687 GIT binary patch literal 892 zcmV-?1B3jDP)0@JSpZkZf@X z%FSzg9(!QB8OJt>4JBEz$5u~u_jGqf+}_?sB(T2mxhT^7lea+P6y}%Q9qH1}P=K2q6Ff z>bizfiV21g5MzXM4ge5i958!4BmhV$5o6>{X^lK5?}ZRB#z1S$9((WMy`N1)1K_Zx zDIm~BZQCM*0AmbdjPTyWT8qEQ=4k|vCSa{ajFCMgGC()H6dkSgD9Jg{0N|X1F$Pjf zc<$-mBLHmq-vnrPqAMq=`||?bO@;u0HA4_-pAAhz4vI_mWfL#XCFdI1gN}H z57S@r);Wi!X_x?QPVc9JJ7Hbd0KmDg>$*cqDTNp#+P3AcNJy(@7J=vIXI^-390S86 z8JItmdNoy5)j<*|{`~$mzX{+7J+R$wk>~kAJunv%crGo^dlvuCVgL-Xk6! z9y-rgS64@Q&jfb69d^4NFQ(0Ayor$7Thp64AsK=OOD*+40UqA0Lj zE=To1&*%hF+y|_++>FYyx-IZpb3N;J(oVQ6iXEZwAfV6|FtPdKCpfN443 z2ajV?KgJjsV+LnCZS0)mam=3l5Bt^uWo<3FrCp^0H%)O7;5sdaz^dkMo`$NR0r%cDp@jWdGfi8SxLABV$l} SltCf@0000&yb`5 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk_side.png b/src/main/resources/assets/hbm/textures/blocks/rbmk_side.png new file mode 100644 index 0000000000000000000000000000000000000000..2e09c3919768ec1697503f8ef49df4e6564a166a GIT binary patch literal 467 zcmV;^0WAKBP)6XhWnWh;C|y|GiAIyVxa6R>_dpgV zCub%zqk2A{i9hAN|GOnM&-3Zq0^IL+oO2js6Jul; z1~hQMp8=b`~C~$y(gt42r))!J`Nm);a?C9ux*>rPARc% z8(r5CLLf7&s*2pZuB+U!nVz+ll#;C5?Iula+XDaFYXPQdVwxt|JbK+U4O(k?v$YmL zEVck;Sqg(}Ta1ymZ865s_dQirVXc(`Ck?X4IZVSaNT{^d)OAf!6j*D~TAwVIaY`wy zwJ4>i>sm6Ay+2mA{Y%86D9~C1u&(QuV8;w(hx9zpgb?VuPEa#~_g-=jh{dnhO9t3{ zp)5<5Wx*IDKT=jZ3!73RguwNBJ?G&4exIlw{T|2h>nTT@e*h7M2GJ@RHx(5N8qV*}5odC#QLSQ%yppx5i= z*j8%|f35R8Z+8L!&*u}hRxoq^Ff;VtVP;@vFf)h?SK-(P@QD{8GMr6j;w z3jol22Qz1awHDkRstN!o08mPSyJt|`Mdrv(L^zHEA_5}%1qfR17drqTAI>>3=S&7> zhSnOSwFY<33;_n<0vPN>;y4bJQeb9K)sz&0;g70ft(6`~&=V23dwyn?Oo%8Y z#(n{CcZ@NhswpMti%2pfqLh%5;!!Zz=@L=)1~ccon+LU4JRXnKAAx3uQc40c^W}V= zCnVZ4=tbG08d3Xw?UlNi7?l8kF~+SY_8ypXe&q&0lxNSd?_sv8VvLah5&^yU)E0xZ rgEBMR{nC*M@cDd_=6~Z1+(-HcT-_U*z?xz$00000NkvXXu0mjfdg!8J literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/gui_nei.png b/src/main/resources/assets/hbm/textures/gui/nei/gui_nei.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/gui_nei.png rename to src/main/resources/assets/hbm/textures/gui/nei/gui_nei.png diff --git a/src/main/resources/assets/hbm/textures/gui/gui_nei_assembler.png b/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_assembler.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/gui_nei_assembler.png rename to src/main/resources/assets/hbm/textures/gui/nei/gui_nei_assembler.png diff --git a/src/main/resources/assets/hbm/textures/gui/gui_nei_boiler.png b/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_boiler.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/gui_nei_boiler.png rename to src/main/resources/assets/hbm/textures/gui/nei/gui_nei_boiler.png diff --git a/src/main/resources/assets/hbm/textures/gui/gui_nei_chemplant.png b/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_chemplant.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/gui_nei_chemplant.png rename to src/main/resources/assets/hbm/textures/gui/nei/gui_nei_chemplant.png diff --git a/src/main/resources/assets/hbm/textures/gui/gui_nei_cmb.png b/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_cmb.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/gui_nei_cmb.png rename to src/main/resources/assets/hbm/textures/gui/nei/gui_nei_cmb.png diff --git a/src/main/resources/assets/hbm/textures/gui/gui_nei_cyclotron.png b/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_cyclotron.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/gui_nei_cyclotron.png rename to src/main/resources/assets/hbm/textures/gui/nei/gui_nei_cyclotron.png diff --git a/src/main/resources/assets/hbm/textures/gui/gui_nei_deuterium.png b/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_deuterium.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/gui_nei_deuterium.png rename to src/main/resources/assets/hbm/textures/gui/nei/gui_nei_deuterium.png diff --git a/src/main/resources/assets/hbm/textures/gui/gui_nei_fluid.png b/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_fluid.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/gui_nei_fluid.png rename to src/main/resources/assets/hbm/textures/gui/nei/gui_nei_fluid.png diff --git a/src/main/resources/assets/hbm/textures/gui/gui_nei_fusion.png b/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_fusion.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/gui_nei_fusion.png rename to src/main/resources/assets/hbm/textures/gui/nei/gui_nei_fusion.png diff --git a/src/main/resources/assets/hbm/textures/gui/gui_nei_hadron.png b/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_hadron.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/gui_nei_hadron.png rename to src/main/resources/assets/hbm/textures/gui/nei/gui_nei_hadron.png diff --git a/src/main/resources/assets/hbm/textures/gui/gui_nei_nuke.png b/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_nuke.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/gui_nei_nuke.png rename to src/main/resources/assets/hbm/textures/gui/nei/gui_nei_nuke.png diff --git a/src/main/resources/assets/hbm/textures/gui/gui_nei_press.png b/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_press.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/gui_nei_press.png rename to src/main/resources/assets/hbm/textures/gui/nei/gui_nei_press.png diff --git a/src/main/resources/assets/hbm/textures/gui/gui_nei_refinery.png b/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_refinery.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/gui_nei_refinery.png rename to src/main/resources/assets/hbm/textures/gui/nei/gui_nei_refinery.png diff --git a/src/main/resources/assets/hbm/textures/gui/gui_nei_schrabidium.png b/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_schrabidium.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/gui_nei_schrabidium.png rename to src/main/resources/assets/hbm/textures/gui/nei/gui_nei_schrabidium.png diff --git a/src/main/resources/assets/hbm/textures/gui/gui_nei_shredder.png b/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_shredder.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/gui_nei_shredder.png rename to src/main/resources/assets/hbm/textures/gui/nei/gui_nei_shredder.png diff --git a/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_silex.png b/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_silex.png new file mode 100644 index 0000000000000000000000000000000000000000..58381ef207222d19dfb033e8f0d14fe804ddcb5b GIT binary patch literal 767 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6%N?Bp530R%N1DIE+9OxrwN z978JRyuF*)bt^%n?V|L|(3!a@%1+-Vwx-CQ)Y1NX(d)EBrtD*t`+J`M5q8l#RQt!t zW%sXK?F{GgFAVpO{_VZ9?d-qHZR=jIa!C-MzUhxiTI_W#^=q*uUlkeNzkh$+m-&C< ztYxcK&3eA`l;;D@>Gtvwbtj5`eh+SV@5P`ngTcXou_1wp;UEh`6DI?UFaw7ggMbfZ z68HM#9=t2tZTna1utCWE@76xdl77MstLAh6=_!=?d(_hAfa-zC(^4&~Sbmr=-e}~w zpv8EjljDLCU8C4qg~{II#t z^bQ#CnD#xsm}~=7vFS3)g7?+-&luy+s8Y$#*n=-W^lEAB_O-90E}O{O@_%T3r{3_c zYOkCXhfUJF=c`t|dtn*%{Uh%kzL`vN=|4eDie8 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/cladding_iron.png b/src/main/resources/assets/hbm/textures/items/cladding_iron.png new file mode 100644 index 0000000000000000000000000000000000000000..a790f5875c35a301eb323a1ef8a81aabeed8d9e9 GIT binary patch literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf_aomx9;_Ji_dSQ}ONvt^IvBD*}(ZBZXZ@6soaPM=Q^A$4glPsD)|2=G=vccrA z%E^>Te;B=u^LV```6mQ2C@2};k7rsfI8j4s|Np=0mCUo|FSH3#S#=rc4F*qFKbLh* G2~7YpE@I^X literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/machines/rbmk_control.png b/src/main/resources/assets/hbm/textures/models/machines/rbmk_control.png new file mode 100644 index 0000000000000000000000000000000000000000..828096a64a5cd262f9574c376b4759303d6dae13 GIT binary patch literal 3677 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 O*^F+Q8