diff --git a/src/main/java/api/hbm/energy/IEnergyConductor.java b/src/main/java/api/hbm/energy/IEnergyConductor.java index 1744c5f79..6fc2e5206 100644 --- a/src/main/java/api/hbm/energy/IEnergyConductor.java +++ b/src/main/java/api/hbm/energy/IEnergyConductor.java @@ -52,7 +52,7 @@ public interface IEnergyConductor extends IEnergyConnector { * Each link has to decide what other links will join the same net. * @param copy */ - public default void reevaluate(HashMap copy) { + public default void reevaluate(HashMap copy, HashMap proxies) { for(int[] pos : getConnectionPoints()) { int newX = pos[0]; @@ -62,14 +62,41 @@ public interface IEnergyConductor extends IEnergyConnector { IEnergyConductor neighbor = copy.get(id); - if(neighbor != null && neighbor.getPowerNet() != null && this.canReevaluate() && neighbor.canReevaluate()) { + if(neighbor == null) { + Integer newId = proxies.get(id); - if(this.getPowerNet() == null) { - neighbor.getPowerNet().joinLink(this); - } else { - this.getPowerNet().joinNetworks(neighbor.getPowerNet()); + if(newId != null) { + neighbor = copy.get(newId); } } + + if(neighbor != null && this.canReevaluate() && neighbor.canReevaluate()) { + + if(neighbor.getPowerNet() != null) { + + //neighbor net and no self net + if(this.getPowerNet() == null) { + neighbor.getPowerNet().joinLink(this); + //neighbor net and self net + } else { + this.getPowerNet().joinNetworks(neighbor.getPowerNet()); + } + + //bidirectional re-eval, experimental and technically optional, only useful as a fallback + } /*else { + + //no neighbor net and no self net + if(this.getPowerNet() == null) { + this.setPowerNet(new PowerNet().joinLink(this)); + neighbor.setPowerNet(this.getPowerNet().joinLink(neighbor)); + //no neighbor net and self net + } else { + neighbor.setPowerNet(this.getPowerNet().joinLink(neighbor)); + } + }*/ + + //extensive debugging has shown that bidirectional re-eval ic complete shit + } } } @@ -114,4 +141,20 @@ public interface IEnergyConductor extends IEnergyConnector { return this.getPowerNet().transferPower(power); } + + /** + * Returns whether the conductor has mutliblock proxies which need to be taken into consideration for re-eval. + * @return + */ + public default boolean hasProxies() { + return false; + } + + /** + * Returns the identities (position-based) of proxies which resolve into the conductor's own identity. + * @return + */ + public default List getProxies() { + return new ArrayList(); + } } diff --git a/src/main/java/api/hbm/energy/IEnergyConnector.java b/src/main/java/api/hbm/energy/IEnergyConnector.java index 40ad4e647..663ed8c7b 100644 --- a/src/main/java/api/hbm/energy/IEnergyConnector.java +++ b/src/main/java/api/hbm/energy/IEnergyConnector.java @@ -6,6 +6,7 @@ import com.hbm.packet.PacketDispatcher; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -94,4 +95,10 @@ public interface IEnergyConnector extends ILoadedTile { } public static final boolean particleDebug = false; + + public default Vec3 getDebugParticlePos() { + TileEntity te = (TileEntity) this; + Vec3 vec = Vec3.createVectorHelper(te.xCoord + 0.5, te.yCoord + 1, te.zCoord + 0.5); + return vec; + } } diff --git a/src/main/java/api/hbm/energy/PowerNet.java b/src/main/java/api/hbm/energy/PowerNet.java index 2969e9e4d..89efb819c 100644 --- a/src/main/java/api/hbm/energy/PowerNet.java +++ b/src/main/java/api/hbm/energy/PowerNet.java @@ -15,6 +15,7 @@ public class PowerNet implements IPowerNet { private boolean valid = true; private HashMap links = new HashMap(); + private HashMap proxies = new HashMap(); private List subscribers = new ArrayList(); @Override @@ -42,14 +43,29 @@ public class PowerNet implements IPowerNet { conductor.getPowerNet().leaveLink(conductor); conductor.setPowerNet(this); - this.links.put(conductor.getIdentity(), conductor); + int identity = conductor.getIdentity(); + this.links.put(identity, conductor); + + if(conductor.hasProxies()) { + for(Integer i : conductor.getProxies()) { + this.proxies.put(i, identity); + } + } + return this; } @Override public void leaveLink(IEnergyConductor conductor) { conductor.setPowerNet(null); - this.links.remove(conductor.getIdentity()); + int identity = conductor.getIdentity(); + this.links.remove(identity); + + if(conductor.hasProxies()) { + for(Integer i : conductor.getProxies()) { + this.proxies.remove(i); + } + } } @Override @@ -74,6 +90,11 @@ public class PowerNet implements IPowerNet { return linkList; } + public HashMap getProxies() { + HashMap proxyCopy = new HashMap(proxies); + return proxyCopy; + } + @Override public List getSubscribers() { return this.subscribers; @@ -144,7 +165,10 @@ public class PowerNet implements IPowerNet { @Override public void reevaluate() { + //this.destroy();// + HashMap copy = new HashMap(links); + HashMap proxyCopy = new HashMap(proxies); for(IEnergyConductor link : copy.values()) { this.leaveLink(link); @@ -153,7 +177,7 @@ public class PowerNet implements IPowerNet { for(IEnergyConductor link : copy.values()) { link.setPowerNet(null); - link.reevaluate(copy); + link.reevaluate(copy, proxyCopy); if(link.getPowerNet() == null) { link.setPowerNet(new PowerNet().joinLink(link)); diff --git a/src/main/java/api/hbm/fluid/IFluidConnector.java b/src/main/java/api/hbm/fluid/IFluidConnector.java index 9ec663305..f8f1034d8 100644 --- a/src/main/java/api/hbm/fluid/IFluidConnector.java +++ b/src/main/java/api/hbm/fluid/IFluidConnector.java @@ -80,5 +80,5 @@ public interface IFluidConnector { } } - public static final boolean particleDebug = false; + public static final boolean particleDebug = true; } diff --git a/src/main/java/api/hbm/fluid/IFluidStandardSender.java b/src/main/java/api/hbm/fluid/IFluidStandardSender.java index 83a0a9d98..6f6ef8238 100644 --- a/src/main/java/api/hbm/fluid/IFluidStandardSender.java +++ b/src/main/java/api/hbm/fluid/IFluidStandardSender.java @@ -37,4 +37,14 @@ public interface IFluidStandardSender extends IFluidUser { } } } + + @Override + public default long transferFluid(FluidType type, long fluid) { + return fluid; + } + + @Override + public default long getDemand(FluidType type) { + return 0; + } } diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index ec06e13b4..e54849cab 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -463,6 +463,7 @@ public class ModBlocks { public static Block dirt_oily; public static Block sand_dirty; public static Block sand_dirty_red; + public static Block stone_cracked; public static Block burning_earth; public static Block tektite; public static Block ore_tektite_osmiridium; @@ -471,6 +472,8 @@ public class ModBlocks { public static Block fallout; public static Block foam_layer; public static Block sand_boron_layer; + public static Block leaves_layer; + public static Block sellafield_slaked; public static Block sellafield_0; @@ -1498,14 +1501,14 @@ public class ModBlocks { block_cap_sunset = new BlockCap(Material.iron, RefStrings.MODID + ":block_cap_sunset_top").setStepSound(Block.soundTypeMetal).setBlockName("block_cap_sunset").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":block_cap_sunset"); block_cap_star = new BlockCap(Material.iron, RefStrings.MODID + ":block_cap_star_top").setStepSound(Block.soundTypeMetal).setBlockName("block_cap_star").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":block_cap_star"); - deco_titanium = new BlockOre(Material.iron).setBlockName("deco_titanium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_titanium"); - deco_red_copper = new BlockDecoCT(Material.iron).setBlockName("deco_red_copper").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_red_copper"); - deco_tungsten = new BlockDecoCT(Material.iron).setBlockName("deco_tungsten").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_tungsten"); - deco_aluminium = new BlockDecoCT(Material.iron).setBlockName("deco_aluminium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_aluminium"); - deco_steel = new BlockDecoCT(Material.iron).setBlockName("deco_steel").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_steel"); - deco_lead = new BlockDecoCT(Material.iron).setBlockName("deco_lead").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_lead"); - deco_beryllium = new BlockDecoCT(Material.iron).setBlockName("deco_beryllium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_beryllium"); - deco_asbestos = new BlockOutgas(Material.cloth, true, 5, true).setBlockName("deco_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_asbestos"); + deco_titanium = new BlockOre(Material.iron).noFortune().setBlockName("deco_titanium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_titanium"); + deco_red_copper = new BlockDecoCT(Material.iron).noFortune().setBlockName("deco_red_copper").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_red_copper"); + deco_tungsten = new BlockDecoCT(Material.iron).noFortune().setBlockName("deco_tungsten").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_tungsten"); + deco_aluminium = new BlockDecoCT(Material.iron).noFortune().setBlockName("deco_aluminium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_aluminium"); + deco_steel = new BlockDecoCT(Material.iron).noFortune().setBlockName("deco_steel").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_steel"); + deco_lead = new BlockDecoCT(Material.iron).noFortune().setBlockName("deco_lead").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_lead"); + deco_beryllium = new BlockDecoCT(Material.iron).noFortune().setBlockName("deco_beryllium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_beryllium"); + deco_asbestos = new BlockOutgas(Material.cloth, true, 5, true).noFortune().setBlockName("deco_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_asbestos"); deco_rbmk = new BlockGeneric(Material.iron).setBlockName("deco_rbmk").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_side"); deco_rbmk_smooth = new BlockGeneric(Material.iron).setBlockName("deco_rbmk_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_top"); @@ -1569,11 +1572,11 @@ public class ModBlocks { siege_emergency = new BlockBase(Material.iron).setBlockName("siege_emergency").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(20000.0F).setBlockTextureName(RefStrings.MODID + ":siege_emergency"); siege_hole = new SiegeHole(Material.iron).setBlockName("siege_hole").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":siege_hole"); - block_meteor = new BlockOre(Material.rock).setBlockName("block_meteor").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor"); - block_meteor_cobble = new BlockOre(Material.rock).setBlockName("block_meteor_cobble").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_cobble"); - block_meteor_broken = new BlockOre(Material.rock).setBlockName("block_meteor_broken").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_crushed"); - block_meteor_molten = new BlockOre(Material.rock, true).setBlockName("block_meteor_molten").setLightLevel(0.75F).setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_cobble_molten"); - block_meteor_treasure = new BlockOre(Material.rock).setBlockName("block_meteor_treasure").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_treasure"); + block_meteor = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor"); + block_meteor_cobble = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor_cobble").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_cobble"); + block_meteor_broken = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor_broken").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_crushed"); + block_meteor_molten = new BlockOre(Material.rock, true).noFortune().setBlockName("block_meteor_molten").setLightLevel(0.75F).setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_cobble_molten"); + block_meteor_treasure = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor_treasure").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_treasure"); meteor_polished = new BlockGeneric(Material.rock).setBlockName("meteor_polished").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_polished"); meteor_brick = new BlockGeneric(Material.rock).setBlockName("meteor_brick").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_brick"); meteor_brick_mossy = new BlockGeneric(Material.rock).setBlockName("meteor_brick_mossy").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_brick_mossy"); @@ -1665,8 +1668,8 @@ public class ModBlocks { waste_earth = new WasteEarth(Material.ground, true).setBlockName("waste_earth").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":waste_earth"); waste_mycelium = new WasteEarth(Material.ground, true).setBlockName("waste_mycelium").setStepSound(Block.soundTypeGrass).setLightLevel(1F).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":waste_mycelium_side"); - waste_trinitite = new BlockOre(Material.sand).setBlockName("waste_trinitite").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_trinitite"); - waste_trinitite_red = new BlockOre(Material.sand).setBlockName("waste_trinitite_red").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_trinitite_red"); + waste_trinitite = new BlockOre(Material.sand).noFortune().setBlockName("waste_trinitite").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_trinitite"); + waste_trinitite_red = new BlockOre(Material.sand).noFortune().setBlockName("waste_trinitite_red").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_trinitite_red"); waste_log = new WasteLog(Material.wood).setBlockName("waste_log").setStepSound(Block.soundTypeWood).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(2.5F); waste_leaves = new WasteLeaves(Material.leaves).setBlockName("waste_leaves").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setBlockTextureName(RefStrings.MODID + ":waste_leaves"); waste_planks = new BlockOre(Material.wood).setBlockName("waste_planks").setStepSound(Block.soundTypeWood).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_planks"); @@ -1677,15 +1680,17 @@ public class ModBlocks { fallout = new BlockFallout(Material.snow).setBlockName("fallout").setStepSound(Block.soundTypeGravel).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":ash"); foam_layer = new BlockLayering(Material.snow).setBlockName("foam_layer").setStepSound(Block.soundTypeSnow).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":foam"); sand_boron_layer = new BlockLayering(Material.sand).setBlockName("sand_boron_layer").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":sand_boron"); + leaves_layer = new BlockLayering(Material.leaves).setBlockName("leaves_layer").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":waste_leaves"); burning_earth = new WasteEarth(Material.ground, true).setBlockName("burning_earth").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":burning_earth"); tektite = new BlockGeneric(Material.sand).setBlockName("tektite").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":tektite"); ore_tektite_osmiridium = new BlockGeneric(Material.sand).setBlockName("ore_tektite_osmiridium").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":ore_tektite_osmiridium"); impact_dirt = new BlockDirt(Material.ground, true).setBlockName("impact_dirt").setStepSound(Block.soundTypeGravel).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":waste_earth_bottom"); - dirt_dead = new BlockGeneric(Material.ground).setBlockName("dirt_dead").setStepSound(Block.soundTypeGravel).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":dirt_dead"); - dirt_oily = new BlockGeneric(Material.ground).setBlockName("dirt_oily").setStepSound(Block.soundTypeGravel).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":dirt_oily"); + dirt_dead = new BlockFalling(Material.ground).setBlockName("dirt_dead").setStepSound(Block.soundTypeGravel).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":dirt_dead"); + dirt_oily = new BlockFalling(Material.ground).setBlockName("dirt_oily").setStepSound(Block.soundTypeGravel).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":dirt_oily"); sand_dirty = new BlockFalling(Material.sand).setBlockName("sand_dirty").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_dirty"); sand_dirty_red = new BlockFalling(Material.sand).setBlockName("sand_dirty_red").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_dirty_red"); + stone_cracked = new BlockFalling(Material.rock).setBlockName("stone_cracked").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":stone_cracked"); sellafield_slaked = new BlockGeneric(Material.rock).setBlockName("sellafield_slaked").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_slaked"); sellafield_0 = new BlockHazard(Material.rock).setBlockName("sellafield_0").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_0"); @@ -2704,9 +2709,11 @@ public class ModBlocks { GameRegistry.registerBlock(dirt_oily, dirt_oily.getUnlocalizedName()); GameRegistry.registerBlock(sand_dirty, sand_dirty.getUnlocalizedName()); GameRegistry.registerBlock(sand_dirty_red, sand_dirty_red.getUnlocalizedName()); + GameRegistry.registerBlock(stone_cracked, stone_cracked.getUnlocalizedName()); GameRegistry.registerBlock(fallout, fallout.getUnlocalizedName()); GameRegistry.registerBlock(foam_layer, foam_layer.getUnlocalizedName()); GameRegistry.registerBlock(sand_boron_layer, sand_boron_layer.getUnlocalizedName()); + GameRegistry.registerBlock(leaves_layer, leaves_layer.getUnlocalizedName()); GameRegistry.registerBlock(burning_earth, burning_earth.getUnlocalizedName()); GameRegistry.registerBlock(tektite, tektite.getUnlocalizedName()); GameRegistry.registerBlock(ore_tektite_osmiridium, ore_tektite_osmiridium.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/fluid/GenericFluidBlock.java b/src/main/java/com/hbm/blocks/fluid/GenericFluidBlock.java index ebd04d324..d4d61c72b 100644 --- a/src/main/java/com/hbm/blocks/fluid/GenericFluidBlock.java +++ b/src/main/java/com/hbm/blocks/fluid/GenericFluidBlock.java @@ -2,9 +2,7 @@ package com.hbm.blocks.fluid; import java.util.Random; -import com.hbm.lib.ModDamageSource; import com.hbm.lib.RefStrings; -import com.hbm.util.ArmorUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -12,8 +10,6 @@ import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.passive.EntitySquid; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.DamageSource; import net.minecraft.util.IIcon; import net.minecraft.world.World; @@ -61,6 +57,7 @@ public class GenericFluidBlock extends BlockFluidClassic { flowingIcon = register.registerIcon(RefStrings.MODID + ":" + flowingName); } + /** Only temporary, will be moved into a subclass */ @Override public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) { diff --git a/src/main/java/com/hbm/blocks/gas/BlockGasAsbestos.java b/src/main/java/com/hbm/blocks/gas/BlockGasAsbestos.java index 84883a519..38dcfdc7d 100644 --- a/src/main/java/com/hbm/blocks/gas/BlockGasAsbestos.java +++ b/src/main/java/com/hbm/blocks/gas/BlockGasAsbestos.java @@ -5,9 +5,6 @@ import java.util.Random; import com.hbm.extprop.HbmLivingProps; import com.hbm.util.ArmorRegistry; import com.hbm.util.ArmorRegistry.HazardClass; -import com.hbm.util.ContaminationUtil; -import com.hbm.util.ContaminationUtil.ContaminationType; -import com.hbm.util.ContaminationUtil.HazardType; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/blocks/gas/BlockGasClorine.java b/src/main/java/com/hbm/blocks/gas/BlockGasClorine.java index 52dc30b48..19033a933 100644 --- a/src/main/java/com/hbm/blocks/gas/BlockGasClorine.java +++ b/src/main/java/com/hbm/blocks/gas/BlockGasClorine.java @@ -10,7 +10,6 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.world.IBlockAccess; diff --git a/src/main/java/com/hbm/blocks/gas/BlockGasMeltdown.java b/src/main/java/com/hbm/blocks/gas/BlockGasMeltdown.java index 83088aa31..65f248873 100644 --- a/src/main/java/com/hbm/blocks/gas/BlockGasMeltdown.java +++ b/src/main/java/com/hbm/blocks/gas/BlockGasMeltdown.java @@ -15,7 +15,6 @@ import com.hbm.util.ContaminationUtil.HazardType; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.material.Material; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.init.Blocks; diff --git a/src/main/java/com/hbm/blocks/gas/BlockGasMonoxide.java b/src/main/java/com/hbm/blocks/gas/BlockGasMonoxide.java index 1cf3f1511..71ea675a3 100644 --- a/src/main/java/com/hbm/blocks/gas/BlockGasMonoxide.java +++ b/src/main/java/com/hbm/blocks/gas/BlockGasMonoxide.java @@ -6,9 +6,6 @@ import com.hbm.lib.ModDamageSource; import com.hbm.util.ArmorRegistry; import com.hbm.util.ArmorRegistry.HazardClass; import com.hbm.util.ArmorUtil; -import com.hbm.util.ContaminationUtil; -import com.hbm.util.ContaminationUtil.ContaminationType; -import com.hbm.util.ContaminationUtil.HazardType; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; diff --git a/src/main/java/com/hbm/blocks/gas/BlockGasRadon.java b/src/main/java/com/hbm/blocks/gas/BlockGasRadon.java index fdf44479f..4ac7bab3f 100644 --- a/src/main/java/com/hbm/blocks/gas/BlockGasRadon.java +++ b/src/main/java/com/hbm/blocks/gas/BlockGasRadon.java @@ -12,7 +12,6 @@ import com.hbm.util.ContaminationUtil.HazardType; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; diff --git a/src/main/java/com/hbm/blocks/gas/BlockGasRadonDense.java b/src/main/java/com/hbm/blocks/gas/BlockGasRadonDense.java index 21a24186f..7977d0da6 100644 --- a/src/main/java/com/hbm/blocks/gas/BlockGasRadonDense.java +++ b/src/main/java/com/hbm/blocks/gas/BlockGasRadonDense.java @@ -4,7 +4,6 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.extprop.HbmLivingProps; -import com.hbm.lib.ModDamageSource; import com.hbm.potion.HbmPotion; import com.hbm.util.ArmorRegistry; import com.hbm.util.ArmorUtil; diff --git a/src/main/java/com/hbm/blocks/gas/BlockGasRadonTomb.java b/src/main/java/com/hbm/blocks/gas/BlockGasRadonTomb.java index 8dcc6bdb6..3e58249cb 100644 --- a/src/main/java/com/hbm/blocks/gas/BlockGasRadonTomb.java +++ b/src/main/java/com/hbm/blocks/gas/BlockGasRadonTomb.java @@ -4,6 +4,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.extprop.HbmLivingProps; +import com.hbm.potion.HbmPotion; import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.HazardType; @@ -52,8 +53,13 @@ public class BlockGasRadonTomb extends BlockGasBase { public void onEntityCollidedWithBlock(World world, int p_149670_2_, int p_149670_3_, int p_149670_4_, Entity entity) { if(entity instanceof EntityLivingBase) { - ContaminationUtil.contaminate((EntityLivingBase)entity, HazardType.RADIATION, ContaminationType.RAD_BYPASS, 0.5F); - HbmLivingProps.incrementFibrosis((EntityLivingBase)entity, 10); + EntityLivingBase living = (EntityLivingBase) entity; + + living.removePotionEffect(HbmPotion.radaway.id); //get fucked + living.removePotionEffect(HbmPotion.radx.id); + + ContaminationUtil.contaminate(living, HazardType.RADIATION, ContaminationType.RAD_BYPASS, 0.5F); + HbmLivingProps.incrementFibrosis(living, 10); } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockLayering.java b/src/main/java/com/hbm/blocks/generic/BlockLayering.java index fa039eff3..21d6ed749 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockLayering.java +++ b/src/main/java/com/hbm/blocks/generic/BlockLayering.java @@ -84,9 +84,9 @@ public class BlockLayering extends Block { } public void updateTick(World p_149674_1_, int p_149674_2_, int p_149674_3_, int p_149674_4_, Random p_149674_5_) { - if(p_149674_1_.getSavedLightValue(EnumSkyBlock.Block, p_149674_2_, p_149674_3_, p_149674_4_) > 11) { + /*if(p_149674_1_.getSavedLightValue(EnumSkyBlock.Block, p_149674_2_, p_149674_3_, p_149674_4_) > 11) { p_149674_1_.setBlockToAir(p_149674_2_, p_149674_3_, p_149674_4_); - } + }*/ } @SideOnly(Side.CLIENT) diff --git a/src/main/java/com/hbm/blocks/generic/BlockOre.java b/src/main/java/com/hbm/blocks/generic/BlockOre.java index 6f643733b..93b95e163 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockOre.java +++ b/src/main/java/com/hbm/blocks/generic/BlockOre.java @@ -241,10 +241,17 @@ public class BlockOre extends Block { return 1; } + public boolean allowFortune = true; + + public BlockOre noFortune() { + this.allowFortune = false; + return this; + } + @Override public int quantityDroppedWithBonus(int fortune, Random rand) { - if(fortune > 0 && Item.getItemFromBlock(this) != this.getItemDropped(0, rand, fortune)) { + if(fortune > 0 && Item.getItemFromBlock(this) != this.getItemDropped(0, rand, fortune) && allowFortune) { int mult = rand.nextInt(fortune + 2) - 1; if(mult < 0) { diff --git a/src/main/java/com/hbm/blocks/generic/WasteEarth.java b/src/main/java/com/hbm/blocks/generic/WasteEarth.java index e6e876f24..419574181 100644 --- a/src/main/java/com/hbm/blocks/generic/WasteEarth.java +++ b/src/main/java/com/hbm/blocks/generic/WasteEarth.java @@ -4,8 +4,8 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; +import com.hbm.config.RadiationConfig; import com.hbm.lib.RefStrings; -import com.hbm.main.MainRegistry; import com.hbm.potion.HbmPotion; import cpw.mods.fml.relauncher.Side; @@ -159,7 +159,7 @@ public class WasteEarth extends Block { if(this == ModBlocks.waste_earth || this == ModBlocks.waste_mycelium) { - if(GeneralConfig.enableAutoCleanup || (world.getBlockLightValue(x, y + 1, z) < 4 && world.getBlockLightOpacity(x, y + 1, z) > 2)) { + if(RadiationConfig.cleanupDeadDirt || (world.getBlockLightValue(x, y + 1, z) < 4 && world.getBlockLightOpacity(x, y + 1, z) > 2)) { world.setBlock(x, y, z, Blocks.dirt); } diff --git a/src/main/java/com/hbm/blocks/generic/WasteLeaves.java b/src/main/java/com/hbm/blocks/generic/WasteLeaves.java index 57571f249..8ffadba81 100644 --- a/src/main/java/com/hbm/blocks/generic/WasteLeaves.java +++ b/src/main/java/com/hbm/blocks/generic/WasteLeaves.java @@ -2,6 +2,7 @@ package com.hbm.blocks.generic; import java.util.Random; +import com.hbm.blocks.ModBlocks; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; @@ -10,16 +11,17 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityFallingBlock; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.IIcon; import net.minecraft.world.World; public class WasteLeaves extends Block { public WasteLeaves(Material mat) { super(mat); + this.setTickRandomly(true); } @Override @@ -36,8 +38,15 @@ public class WasteLeaves extends Block { @Override public void updateTick(World world, int x, int y, int z, Random rand) { - if(rand.nextInt(60) == 0) { + if(rand.nextInt(30) == 0) { world.setBlockToAir(x, y, z); + + if(world.getBlock(x, y - 1, z).getMaterial() == Material.air) { + EntityFallingBlock leaves = new EntityFallingBlock(world, x + 0.5, y + 0.5, z + 0.5, ModBlocks.leaves_layer); + leaves.field_145812_b = 2; + leaves.field_145813_c = false; + world.spawnEntityInWorld(leaves); + } } super.updateTick(world, x, y, z, rand); diff --git a/src/main/java/com/hbm/config/BombConfig.java b/src/main/java/com/hbm/config/BombConfig.java index 8e325df4f..3ad1da586 100644 --- a/src/main/java/com/hbm/config/BombConfig.java +++ b/src/main/java/com/hbm/config/BombConfig.java @@ -25,10 +25,12 @@ public class BombConfig { public static int falloutRange = 100; public static int fDelay = 4; public static int limitExplosionLifespan = 0; + public static int rain = 0; + public static int cont = 0; public static void loadFromConfig(Configuration config) { - final String CATEGORY_NUKES = "03_nukes"; + final String CATEGORY_NUKES = CommonConfig.CATEGORY_NUKES; Property propGadget = config.get(CATEGORY_NUKES, "3.00_gadgetRadius", 150); propGadget.comment = "Radius of the Gadget"; gadgetRadius = propGadget.getInt(); @@ -72,7 +74,7 @@ public class BombConfig { propN2.comment = "Radius of the N2 mine"; n2Radius = propN2.getInt(); - final String CATEGORY_NUKE = "06_explosions"; + final String CATEGORY_NUKE = CommonConfig.CATEGORY_EXPLOSIONS; Property propLimitExplosionLifespan = config.get(CATEGORY_NUKE, "6.00_limitExplosionLifespan", 0); propLimitExplosionLifespan.comment = "How long an explosion can be unloaded until it dies in seconds. Based of system time. 0 disables the effect"; limitExplosionLifespan = propLimitExplosionLifespan.getInt(); @@ -91,5 +93,12 @@ public class BombConfig { Property falloutDelayProp = config.get(CATEGORY_NUKE, "6.04_falloutDelay", 4); falloutDelayProp.comment = "How many ticks to wait for the next fallout chunk computation"; fDelay = falloutDelayProp.getInt(); + + Property radRain = config.get(CATEGORY_NUKE, "6.05_falloutRainDuration", 0); + radRain.comment = "Duration of the thunderstorm after fallout in ticks (only large explosions)"; + rain = radRain.getInt(); + Property rainCont = config.get(CATEGORY_NUKE, "6.06_falloutRainRadiation", 0); + rainCont.comment = "Radiation in 100th RADs created by fallout rain"; + cont = rainCont.getInt(); } } diff --git a/src/main/java/com/hbm/config/CommonConfig.java b/src/main/java/com/hbm/config/CommonConfig.java index 59cc4f297..2c9b88e1e 100644 --- a/src/main/java/com/hbm/config/CommonConfig.java +++ b/src/main/java/com/hbm/config/CommonConfig.java @@ -6,6 +6,22 @@ import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.config.Property; public class CommonConfig { + + public static final String CATEGORY_GENERAL = "01_general"; + public static final String CATEGORY_ORES = "02_ores"; + public static final String CATEGORY_NUKES = "03_nukes"; + public static final String CATEGORY_DUNGEONS = "04_dungeons"; + public static final String CATEGORY_METEORS = "05_meteors"; + public static final String CATEGORY_EXPLOSIONS = "06_explosions"; + public static final String CATEGORY_MISSILE = "07_missile_machines"; + public static final String CATEGORY_POTION = "08_potion_effects"; + public static final String CATEGORY_MACHINES = "09_machines"; + public static final String CATEGORY_DROPS = "10_dangerous_drops"; + public static final String CATEGORY_TOOLS = "11_tools"; + public static final String CATEGORY_MOBS = "12_mobs"; + public static final String CATEGORY_RADIATION = "13_radiation"; + + public static final String CATEGORY_528 = "528"; public static int setDefZero(int value, int def) { @@ -30,28 +46,30 @@ public class CommonConfig { } public static int createConfigInt(Configuration config, String category, String name, String comment, int def) { - Property prop = config.get(category, name, def); prop.comment = comment; return prop.getInt(); } - public static boolean createConfigBool(Configuration config, String category, String name, String comment, boolean def) { + public static double createConfigDouble(Configuration config, String category, String name, String comment, double def) { + Property prop = config.get(category, name, def); + prop.comment = comment; + return prop.getDouble(); + } + public static boolean createConfigBool(Configuration config, String category, String name, String comment, boolean def) { Property prop = config.get(category, name, def); prop.comment = comment; return prop.getBoolean(); } public static String createConfigString(Configuration config, String category, String name, String comment, String def) { - Property prop = config.get(category, name, def); prop.comment = comment; return prop.getString(); } public static String[] createConfigStringList(Configuration config, String category, String name, String comment) { - Property prop = config.get(category, name, new String[] { "PLACEHOLDER" }); prop.comment = comment; return prop.getStringList(); diff --git a/src/main/java/com/hbm/config/GeneralConfig.java b/src/main/java/com/hbm/config/GeneralConfig.java index 391ad8516..8330e60c2 100644 --- a/src/main/java/com/hbm/config/GeneralConfig.java +++ b/src/main/java/com/hbm/config/GeneralConfig.java @@ -13,14 +13,8 @@ public class GeneralConfig { public static boolean enableRad = true; public static boolean enableNITAN = true; public static boolean enableNukeClouds = true; - public static boolean enableAutoCleanup = false; - public static boolean enableMeteorStrikes = true; - public static boolean enableMeteorShowers = true; - public static boolean enableMeteorTails = true; - public static boolean enableSpecialMeteors = true; public static boolean enableBomberShortMode = false; public static boolean enableVaults = true; - public static boolean enableRads = true; public static boolean enableCataclysm = false; public static boolean enableExtendedLogging = false; public static boolean enableHardcoreTaint = false; @@ -42,7 +36,7 @@ public class GeneralConfig { public static void loadFromConfig(Configuration config) { - final String CATEGORY_GENERAL = "01_general"; + final String CATEGORY_GENERAL = CommonConfig.CATEGORY_GENERAL; enableDebugMode = config.get(CATEGORY_GENERAL, "1.00_enableDebugMode", false).getBoolean(false); enableMycelium = config.get(CATEGORY_GENERAL, "1.01_enableMyceliumSpread", false).getBoolean(false); enablePlutoniumOre = config.get(CATEGORY_GENERAL, "1.02_enablePlutoniumNetherOre", false).getBoolean(false); @@ -52,14 +46,8 @@ public class GeneralConfig { enableRad = config.get(CATEGORY_GENERAL, "1.06_enableRadHotspotSpawn", true).getBoolean(true); enableNITAN = config.get(CATEGORY_GENERAL, "1.07_enableNITANChestSpawn", true).getBoolean(true); enableNukeClouds = config.get(CATEGORY_GENERAL, "1.08_enableMushroomClouds", true).getBoolean(true); - enableAutoCleanup = config.get(CATEGORY_GENERAL, "1.09_enableAutomaticRadCleanup", false).getBoolean(false); - enableMeteorStrikes = config.get(CATEGORY_GENERAL, "1.10_enableMeteorStrikes", true).getBoolean(true); - enableMeteorShowers = config.get(CATEGORY_GENERAL, "1.11_enableMeteorShowers", true).getBoolean(true); - enableMeteorTails = config.get(CATEGORY_GENERAL, "1.12_enableMeteorTails", true).getBoolean(true); - enableSpecialMeteors = config.get(CATEGORY_GENERAL, "1.13_enableSpecialMeteors", false).getBoolean(false); enableBomberShortMode = config.get(CATEGORY_GENERAL, "1.14_enableBomberShortMode", false).getBoolean(false); enableVaults = config.get(CATEGORY_GENERAL, "1.15_enableVaultSpawn", true).getBoolean(true); - enableRads = config.get(CATEGORY_GENERAL, "1.16_enableNewRadiation", true).getBoolean(true); enableCataclysm = config.get(CATEGORY_GENERAL, "1.17_enableCataclysm", false).getBoolean(false); enableExtendedLogging = config.get(CATEGORY_GENERAL, "1.18_enableExtendedLogging", false).getBoolean(false); enableHardcoreTaint = config.get(CATEGORY_GENERAL, "1.19_enableHardcoreTaint", false).getBoolean(false); @@ -70,7 +58,7 @@ public class GeneralConfig { enableReflectorCompat = config.get(CATEGORY_GENERAL, "1.24_enableReflectorCompat", false).getBoolean(false); enableRenderDistCheck = config.get(CATEGORY_GENERAL, "1.25_enableRenderDistCheck", true).getBoolean(true); - final String CATEGORY_528 = "528"; + final String CATEGORY_528 = CommonConfig.CATEGORY_528; config.addCustomCategoryComment(CATEGORY_528, "CAUTION\n" + "528 Mode: Please proceed with caution!\n" diff --git a/src/main/java/com/hbm/config/MachineConfig.java b/src/main/java/com/hbm/config/MachineConfig.java index 555bfd4a8..ffa932dde 100644 --- a/src/main/java/com/hbm/config/MachineConfig.java +++ b/src/main/java/com/hbm/config/MachineConfig.java @@ -9,7 +9,7 @@ public class MachineConfig { public static void loadFromConfig(Configuration config) { - final String CATEGORY_MACHINE = "09_machines"; + final String CATEGORY_MACHINE = CommonConfig.CATEGORY_MACHINES; scaleRTGPower = CommonConfig.createConfigBool(config, CATEGORY_MACHINE, "9.00_scaleRTGPower", "Should RTG/Betavoltaic fuel power scale down as it decays?", false); doRTGsDecay = CommonConfig.createConfigBool(config, CATEGORY_MACHINE, "9.01_doRTGsDecay", "Should RTG/Betavoltaic fuel decay at all?", true); diff --git a/src/main/java/com/hbm/config/MobConfig.java b/src/main/java/com/hbm/config/MobConfig.java index c98ee9c95..cd01ac0c8 100644 --- a/src/main/java/com/hbm/config/MobConfig.java +++ b/src/main/java/com/hbm/config/MobConfig.java @@ -29,7 +29,7 @@ public class MobConfig { public static void loadFromConfig(Configuration config) { - final String CATEGORY = "12_mobs"; + final String CATEGORY = CommonConfig.CATEGORY_MOBS; enableMaskman = CommonConfig.createConfigBool(config, CATEGORY, "12.M00_enableMaskman", "Whether mask man should spawn", true); maskmanDelay = CommonConfig.createConfigInt(config, CATEGORY, "12.M01_maskmanDelay", "How many world ticks need to pass for a check to be performed", 60 * 60 * 60); diff --git a/src/main/java/com/hbm/config/PotionConfig.java b/src/main/java/com/hbm/config/PotionConfig.java index 415c77e3f..cf235cd68 100644 --- a/src/main/java/com/hbm/config/PotionConfig.java +++ b/src/main/java/com/hbm/config/PotionConfig.java @@ -20,7 +20,7 @@ public class PotionConfig { public static void loadFromConfig(Configuration config) { - final String CATEGORY_POTION = "08_potion_effects"; + final String CATEGORY_POTION = CommonConfig.CATEGORY_POTION; taintID = CommonConfig.createConfigInt(config, CATEGORY_POTION, "8.00_taintPotionID", "What potion ID the taint effect will have", 62); radiationID = CommonConfig.createConfigInt(config, CATEGORY_POTION, "8.01_radiationPotionID", "What potion ID the radiation effect will have", 63); bangID = CommonConfig.createConfigInt(config, CATEGORY_POTION, "8.02_bangPotionID", "What potion ID the B93 timebomb effect will have", 64); diff --git a/src/main/java/com/hbm/config/RadiationConfig.java b/src/main/java/com/hbm/config/RadiationConfig.java index 446497037..9723b9001 100644 --- a/src/main/java/com/hbm/config/RadiationConfig.java +++ b/src/main/java/com/hbm/config/RadiationConfig.java @@ -5,37 +5,31 @@ import net.minecraftforge.common.config.Property; public class RadiationConfig { - public static int rain = 0; - public static int cont = 0; public static int fogRad = 100; public static int fogCh = 20; - public static float hellRad = 0.1F; + public static double hellRad = 0.1; public static int worldRad = 10; public static int worldRadThreshold = 20; public static boolean worldRadEffects = true; + public static boolean cleanupDeadDirt = false; + + public static boolean enableContamination = true; + public static boolean enableChunkRads = true; public static void loadFromConfig(Configuration config) { - final String CATEGORY_NUKE = "06_explosions"; + final String CATEGORY_NUKE = CommonConfig.CATEGORY_RADIATION; - Property radRain = config.get(CATEGORY_NUKE, "6.05_falloutRainDuration", 0); - radRain.comment = "Duration of the thunderstorm after fallout in ticks (only large explosions)"; - rain = radRain.getInt(); - Property rainCont = config.get(CATEGORY_NUKE, "6.06_falloutRainRadiation", 0); - rainCont.comment = "Radiation in 100th RADs created by fallout rain"; - cont = rainCont.getInt(); - Property fogThresh = config.get(CATEGORY_NUKE, "6.07_fogThreshold", 100); - fogThresh.comment = "Radiation in RADs required for fog to spawn"; - fogRad = fogThresh.getInt(); - Property fogChance = config.get(CATEGORY_NUKE, "6.08_fogChance", 10); - fogChance.comment = "1:n chance of fog spawning every second"; - fogCh = fogChance.getInt(); - Property netherRad = config.get(CATEGORY_NUKE, "6.09_netherRad", 10); - netherRad.comment = "RAD/s in the nether in hundredths"; - hellRad = netherRad.getInt() * 0.01F; - worldRad = CommonConfig.createConfigInt(config, CATEGORY_NUKE, "6.10_worldRadCount", "How many block operations radiation can perform per tick", 10); - worldRadThreshold = CommonConfig.createConfigInt(config, CATEGORY_NUKE, "6.11_worldRadThreshold", "The least amount of RADs required for block modification to happen", 20); - worldRadEffects = CommonConfig.createConfigBool(config, CATEGORY_NUKE, "6.12_worldRadEffects", "Whether high radiation levels should perform changes in the world", true); + fogRad = CommonConfig.createConfigInt(config, CATEGORY_NUKE, "FOG_00_threshold", "Radiation in RADs required for fog to spawn", 100); + fogCh = CommonConfig.createConfigInt(config, CATEGORY_NUKE, "FOG_01_threshold", "1:n chance of fog spawning every second", 20); + hellRad = CommonConfig.createConfigDouble(config, CATEGORY_NUKE, "AMBIENT_00_nether", "RAD/s in the nether", 0.1D); + worldRadEffects = CommonConfig.createConfigBool(config, CATEGORY_NUKE, "RADWORLD_00_toggle", "Whether high radiation levels should perform changes in the world", true); + worldRad = CommonConfig.createConfigInt(config, CATEGORY_NUKE, "RADWORLD_01_amount", "How many block operations radiation can perform per tick", 10); + worldRadThreshold = CommonConfig.createConfigInt(config, CATEGORY_NUKE, "RADWORLD_02_minimum", "The least amount of RADs required for block modification to happen", 20); + cleanupDeadDirt = CommonConfig.createConfigBool(config, CATEGORY_NUKE, "RADWORLD_03_regrow", "Whether dead grass and mycelium should decay into dirt", false); + + enableContamination = CommonConfig.createConfigBool(config, CATEGORY_NUKE, "RADIATION_00_enableContamination", "Toggles player contamination (and negative effects from radiation poisoning)", true); + enableChunkRads = CommonConfig.createConfigBool(config, CATEGORY_NUKE, "RADIATION_01_enableChunkRads", "Toggles the world radiation system (chunk radiation only, some blocks use an AoE!)", true); fogCh = CommonConfig.setDef(fogCh, 20); } diff --git a/src/main/java/com/hbm/config/ToolConfig.java b/src/main/java/com/hbm/config/ToolConfig.java index c20bb03d5..fd03a0fe7 100644 --- a/src/main/java/com/hbm/config/ToolConfig.java +++ b/src/main/java/com/hbm/config/ToolConfig.java @@ -21,7 +21,7 @@ public class ToolConfig { public static void loadFromConfig(Configuration config) { - final String CATEGORY_TOOLS = "11_tools"; + final String CATEGORY_TOOLS = CommonConfig.CATEGORY_TOOLS; recursionDepth = CommonConfig.createConfigInt(config, CATEGORY_TOOLS, "11.00_recursionDepth", "Limits veinminer's recursive function. Usually not an issue, unless you're using bukkit which is especially sensitive for some reason.", 1000); recursiveStone = CommonConfig.createConfigBool(config, CATEGORY_TOOLS, "11.01_recursionStone", "Determines whether veinminer can break stone", false); recursiveNetherrack = CommonConfig.createConfigBool(config, CATEGORY_TOOLS, "11.02_recursionNetherrack", "Determines whether veinminer can break netherrack", false); diff --git a/src/main/java/com/hbm/config/WeaponConfig.java b/src/main/java/com/hbm/config/WeaponConfig.java index c523cef48..88c3dbdae 100644 --- a/src/main/java/com/hbm/config/WeaponConfig.java +++ b/src/main/java/com/hbm/config/WeaponConfig.java @@ -18,7 +18,7 @@ public class WeaponConfig { public static void loadFromConfig(Configuration config) { - final String CATEGORY_MISSILE = "07_missile_machines"; + final String CATEGORY_MISSILE = CommonConfig.CATEGORY_MISSILE; Property propRadarRange = config.get(CATEGORY_MISSILE, "7.00_radarRange", 1000); propRadarRange.comment = "Range of the radar, 50 will result in 100x100 block area covered"; radarRange = propRadarRange.getInt(); @@ -32,7 +32,7 @@ public class WeaponConfig { propCiwsHitrate.comment = "Additional modifier for CIWS accuracy"; ciwsHitrate = propRadarAltitude.getInt(); - final String CATEGORY_DROPS = "10_dangerous_drops"; + final String CATEGORY_DROPS = CommonConfig.CATEGORY_DROPS; dropCell = CommonConfig.createConfigBool(config, CATEGORY_DROPS, "10.00_dropCell", "Whether antimatter cells should explode when dropped", true); dropSing = CommonConfig.createConfigBool(config, CATEGORY_DROPS, "10.01_dropBHole", "Whether singularities and black holes should spawn when dropped", true); dropStar = CommonConfig.createConfigBool(config, CATEGORY_DROPS, "10.02_dropStar", "Whether rigged star blaster cells should explode when dropped", true); diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index 34e6d18a1..5944049ed 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -1,7 +1,6 @@ package com.hbm.config; import net.minecraftforge.common.config.Configuration; -import net.minecraftforge.common.config.Property; public class WorldConfig { @@ -77,13 +76,17 @@ public class WorldConfig { public static int radfreq = 5000; public static int vaultfreq = 2500; + public static boolean enableMeteorStrikes = true; + public static boolean enableMeteorShowers = true; + public static boolean enableMeteorTails = true; + public static boolean enableSpecialMeteors = true; public static int meteorStrikeChance = 20 * 60 * 180; public static int meteorShowerChance = 20 * 60 * 5; public static int meteorShowerDuration = 6000; public static void loadFromConfig(Configuration config) { - final String CATEGORY_OREGEN = "02_ores"; + final String CATEGORY_OREGEN = CommonConfig.CATEGORY_ORES; overworldOre = CommonConfig.createConfigBool(config, CATEGORY_OREGEN, "2.D00_overworldOres", "General switch for whether overworld ores should be generated. Does not include special structures like oil.", true); netherOre = CommonConfig.createConfigBool(config, CATEGORY_OREGEN, "2.D01_netherOres", "General switch for whether nether ores should be generated.", true); @@ -130,7 +133,7 @@ public class WorldConfig { enableRandom = CommonConfig.createConfigBool(config, CATEGORY_OREGEN, "2.R00_enableRandomOre", "Amount of random ore per chunk", false); randomSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.R01_randomOreSpawnrate", "Amount of random ore per chunk", 0); - final String CATEGORY_DUNGEON = "04_dungeons"; + final String CATEGORY_DUNGEON = CommonConfig.CATEGORY_DUNGEONS; radioStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.00_radioSpawn", "Spawn radio station on every nTH chunk", 500); antennaStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.01_antennaSpawn", "Spawn antenna on every nTH chunk", 250); atomStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.02_atomSpawn", "Spawn power plant on every nTH chunk", 500); @@ -157,16 +160,14 @@ public class WorldConfig { jungleStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.23_jungleDungeonSpawn", "Spawn jungle dungeon on every nTH chunk", 2000); pyramidStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.24_pyramidSpawn", "Spawn pyramid on every nTH chunk", 4000); - final String CATEGORY_METEOR = "05_meteors"; - Property propMeteorStrikeChance = config.get(CATEGORY_METEOR, "5.00_meteorStrikeChance", 20 * 60 * 60 * 5); - propMeteorStrikeChance.comment = "The probability of a meteor spawning (an average of once every nTH ticks)"; - meteorStrikeChance = propMeteorStrikeChance.getInt(); - Property propMeteorShowerChance = config.get(CATEGORY_METEOR, "5.01_meteorShowerChance", 20 * 60 * 15); - propMeteorShowerChance.comment = "The probability of a meteor spawning during meteor shower (an average of once every nTH ticks)"; - meteorShowerChance = propMeteorShowerChance.getInt(); - Property propMeteorShowerDuration = config.get(CATEGORY_METEOR, "5.02_meteorShowerDuration", 20 * 60 * 30); - propMeteorShowerDuration.comment = "Max duration of meteor shower in ticks"; - meteorShowerDuration = propMeteorShowerDuration.getInt(); + final String CATEGORY_METEOR = CommonConfig.CATEGORY_METEORS; + enableMeteorStrikes = CommonConfig.createConfigBool(config, CATEGORY_METEOR, "5.00_enableMeteorStrikes", "Toggles the spawning of meteors", true); + enableMeteorShowers = CommonConfig.createConfigBool(config, CATEGORY_METEOR, "5.01_enableMeteorShowers", "Toggles meteor showers, which start with a 1% chance for every spawned meteor", true); + enableMeteorTails = CommonConfig.createConfigBool(config, CATEGORY_METEOR, "5.02_enableMeteorTails", "Toggles the particle effect created by falling meteors", true); + enableSpecialMeteors = CommonConfig.createConfigBool(config, CATEGORY_METEOR, "5.03_enableSpecialMeteors", "Toggles rare, special meteor types with different impact effects", true); + meteorStrikeChance = CommonConfig.createConfigInt(config, CATEGORY_METEOR, "5.03_meteorStrikeChance", "The probability of a meteor spawning (an average of once every nTH ticks)", 20 * 60 * 60 * 5); + meteorShowerChance = CommonConfig.createConfigInt(config, CATEGORY_METEOR, "5.04_meteorShowerChance", "The probability of a meteor spawning during meteor shower (an average of once every nTH ticks)", 20 * 60 * 15); + meteorShowerDuration = CommonConfig.createConfigInt(config, CATEGORY_METEOR, "5.05_meteorShowerDuration", "Max duration of meteor shower in ticks", 20 * 60 * 30); radioStructure = CommonConfig.setDefZero(radioStructure, 1000); antennaStructure = CommonConfig.setDefZero(antennaStructure, 1000); diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index 1b20fba59..d7875c8ac 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -67,6 +67,7 @@ public class MineralRecipes { add1To9Pair(ModItems.ingot_pb209, ModItems.nugget_pb209); add1To9Pair(ModItems.ingot_ra226, ModItems.nugget_ra226); add1To9Pair(ModItems.ingot_actinium, ModItems.nugget_actinium); + add1To9Pair(ModItems.ingot_arsenic, ModItems.nugget_arsenic); add1To9Pair(ModItems.ingot_pu241, ModItems.nugget_pu241); add1To9Pair(ModItems.ingot_am241, ModItems.nugget_am241); diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index b37cb4b44..b5b4d4312 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -137,6 +137,7 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.mirror_tool), new Object[] { " A ", " IA", "I ", 'A', AL.ingot(), 'I', IRON.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.rbmk_tool), new Object[] { " A ", " IA", "I ", 'A', PB.ingot(), 'I', IRON.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.power_net_tool), new Object[] { "WRW", " I ", " B ", 'W', ModItems.wire_red_copper, 'R', REDSTONE.dust(), 'I', IRON.ingot(), 'B', ModItems.battery_su }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.kit_toolbox_empty), new Object[] { "CCC", "CIC", 'C', CU.plate(), 'I', IRON.ingot() }); diff --git a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java index 67963d3ef..b875bcd87 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java +++ b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java @@ -65,12 +65,12 @@ public class EntityFalloutRain extends Entity { tickDelay--; if(this.isDead) { - if(RadiationConfig.rain > 0 && getScale() > 150) { + if(BombConfig.rain > 0 && getScale() > 150) { worldObj.getWorldInfo().setRaining(true); worldObj.getWorldInfo().setThundering(true); - worldObj.getWorldInfo().setRainTime(RadiationConfig.rain); - worldObj.getWorldInfo().setThunderTime(RadiationConfig.rain); - AuxSavedData.setThunder(worldObj, RadiationConfig.rain); + worldObj.getWorldInfo().setRainTime(BombConfig.rain); + worldObj.getWorldInfo().setThunderTime(BombConfig.rain); + AuxSavedData.setThunder(worldObj, BombConfig.rain); } } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityMeteor.java b/src/main/java/com/hbm/entity/projectile/EntityMeteor.java index f0dd248ff..9686b6d23 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityMeteor.java +++ b/src/main/java/com/hbm/entity/projectile/EntityMeteor.java @@ -1,6 +1,6 @@ package com.hbm.entity.projectile; -import com.hbm.config.GeneralConfig; +import com.hbm.config.WorldConfig; import com.hbm.explosion.ExplosionLarge; import com.hbm.main.MainRegistry; import com.hbm.world.feature.Meteorite; @@ -36,7 +36,7 @@ public class EntityMeteor extends Entity { if(!this.worldObj.isRemote && this.onGround && this.posY < 260) { worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 5 + rand.nextFloat(), true); - if(GeneralConfig.enableMeteorTails) { + if(WorldConfig.enableMeteorTails) { ExplosionLarge.spawnParticles(worldObj, posX, posY + 5, posZ, 75); ExplosionLarge.spawnParticles(worldObj, posX + 5, posY, posZ, 75); ExplosionLarge.spawnParticles(worldObj, posX - 5, posY, posZ, 75); @@ -49,7 +49,7 @@ public class EntityMeteor extends Entity { this.setDead(); } - if(GeneralConfig.enableMeteorTails && worldObj.isRemote) { + if(WorldConfig.enableMeteorTails && worldObj.isRemote) { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "exhaust"); diff --git a/src/main/java/com/hbm/extprop/HbmLivingProps.java b/src/main/java/com/hbm/extprop/HbmLivingProps.java index 99add36c4..9b691a3cb 100644 --- a/src/main/java/com/hbm/extprop/HbmLivingProps.java +++ b/src/main/java/com/hbm/extprop/HbmLivingProps.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import java.util.UUID; +import com.hbm.config.RadiationConfig; import com.hbm.entity.mob.EntityDuck; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; @@ -63,14 +64,22 @@ public class HbmLivingProps implements IExtendedEntityProperties { /// RADIATION /// public static float getRadiation(EntityLivingBase entity) { + if(!RadiationConfig.enableContamination) + return 0; + return getData(entity).radiation; } public static void setRadiation(EntityLivingBase entity, float rad) { - getData(entity).radiation = rad; + if(RadiationConfig.enableContamination) + getData(entity).radiation = rad; } public static void incrementRadiation(EntityLivingBase entity, float rad) { + + if(!RadiationConfig.enableContamination) + return; + HbmLivingProps data = getData(entity); float radiation = getData(entity).radiation + rad; diff --git a/src/main/java/com/hbm/handler/BossSpawnHandler.java b/src/main/java/com/hbm/handler/BossSpawnHandler.java index bcfe40033..65b042a1d 100644 --- a/src/main/java/com/hbm/handler/BossSpawnHandler.java +++ b/src/main/java/com/hbm/handler/BossSpawnHandler.java @@ -117,7 +117,7 @@ public class BossSpawnHandler { } } - if(GeneralConfig.enableMeteorStrikes && !world.isRemote) { + if(WorldConfig.enableMeteorStrikes && !world.isRemote) { meteorUpdate(world); } @@ -198,7 +198,7 @@ public class BossSpawnHandler { MainRegistry.logger.info("Ended meteor shower."); } - if(meteorRand.nextInt(WorldConfig.meteorStrikeChance * 100) == 0 && GeneralConfig.enableMeteorShowers) { + if(meteorRand.nextInt(WorldConfig.meteorStrikeChance * 100) == 0 && WorldConfig.enableMeteorShowers) { meteorShower = (int)(WorldConfig.meteorShowerDuration * 0.75 + WorldConfig.meteorShowerDuration * 0.25 * meteorRand.nextFloat()); if(GeneralConfig.enableDebugMode) diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index c3cb37de1..49fa4f22d 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Random; +import com.hbm.config.BombConfig; import com.hbm.config.GeneralConfig; import com.hbm.config.RadiationConfig; import com.hbm.explosion.ExplosionNukeSmall; @@ -121,15 +122,14 @@ public class EntityEffectHandler { float rad = ChunkRadiationManager.proxy.getRadiation(world, ix, iy, iz); if(world.provider.isHellWorld && RadiationConfig.hellRad > 0 && rad < RadiationConfig.hellRad) - rad = RadiationConfig.hellRad; + rad = (float) RadiationConfig.hellRad; if(rad > 0) { ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, rad / 20F); } - if(entity.worldObj.isRaining() && RadiationConfig.cont > 0 && AuxSavedData.getThunder(entity.worldObj) > 0 && entity.worldObj.canBlockSeeTheSky(ix, iy, iz)) { - - ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, RadiationConfig.cont * 0.0005F); + if(entity.worldObj.isRaining() && BombConfig.cont > 0 && AuxSavedData.getThunder(entity.worldObj) > 0 && entity.worldObj.canBlockSeeTheSky(ix, iy, iz)) { + ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, BombConfig.cont * 0.0005F); } if(entity instanceof EntityPlayer && ((EntityPlayer)entity).capabilities.isCreativeMode) diff --git a/src/main/java/com/hbm/handler/nei/BreederRecipeHandler.java b/src/main/java/com/hbm/handler/nei/BreederRecipeHandler.java index ed488b371..8f91f8d75 100644 --- a/src/main/java/com/hbm/handler/nei/BreederRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/BreederRecipeHandler.java @@ -1,7 +1,6 @@ package com.hbm.handler.nei; import java.awt.Rectangle; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; diff --git a/src/main/java/com/hbm/handler/nei/CrackingHandler.java b/src/main/java/com/hbm/handler/nei/CrackingHandler.java index b0ef1c4eb..15452f21c 100644 --- a/src/main/java/com/hbm/handler/nei/CrackingHandler.java +++ b/src/main/java/com/hbm/handler/nei/CrackingHandler.java @@ -6,6 +6,11 @@ import com.hbm.inventory.recipes.RefineryRecipes; public class CrackingHandler extends NEIUniversalHandler { public CrackingHandler() { - super("ntmCracking", "Cracking", ModBlocks.machine_catalytic_cracker, RefineryRecipes.getCrackingRecipesForNEI()); + super("Cracking", ModBlocks.machine_catalytic_cracker, RefineryRecipes.getCrackingRecipesForNEI()); + } + + @Override + public String getKey() { + return "ntmCracking"; } } diff --git a/src/main/java/com/hbm/handler/nei/CrystallizerRecipeHandler.java b/src/main/java/com/hbm/handler/nei/CrystallizerRecipeHandler.java index 358aac421..7785087e0 100644 --- a/src/main/java/com/hbm/handler/nei/CrystallizerRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/CrystallizerRecipeHandler.java @@ -31,7 +31,7 @@ public class CrystallizerRecipeHandler extends TemplateRecipeHandler { 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, Fluids.ACID.ordinal()), TileEntityMachineCrystallizer.acidRequired), 39, 24); + this.acid = new PositionedStack(ItemFluidIcon.addQuantity(new ItemStack(ModItems.fluid_icon, 1, Fluids.ACID.getID()), TileEntityMachineCrystallizer.acidRequired), 39, 24); this.result = new PositionedStack(result, 135, 24); } @@ -78,6 +78,10 @@ public class CrystallizerRecipeHandler extends TemplateRecipeHandler { Map recipes = CrystallizerRecipes.getRecipes(); for (Map.Entry recipe : recipes.entrySet()) { + + if(recipe.getKey() instanceof ItemStack && ((ItemStack)recipe.getKey()).getItem() == ModItems.scrap_plastic) + continue; + this.arecipes.add(new RecipeSet(recipe.getKey(), (ItemStack)recipe.getValue())); } @@ -126,7 +130,7 @@ public class CrystallizerRecipeHandler extends TemplateRecipeHandler { for (Map.Entry recipe : recipes.entrySet()) { if(NEIServerUtils.areStacksSameTypeCrafting(ingredient, ItemFluidIcon.addQuantity( - new ItemStack(ModItems.fluid_icon, 1, Fluids.ACID.ordinal()), TileEntityMachineCrystallizer.acidRequired))) { + new ItemStack(ModItems.fluid_icon, 1, Fluids.ACID.getID()), TileEntityMachineCrystallizer.acidRequired))) { if(recipe.getKey() instanceof ItemStack) { this.arecipes.add(new RecipeSet(recipe.getKey(), (ItemStack)recipe.getValue())); diff --git a/src/main/java/com/hbm/handler/nei/FractioningHandler.java b/src/main/java/com/hbm/handler/nei/FractioningHandler.java index 282e99ec0..b7a254cb8 100644 --- a/src/main/java/com/hbm/handler/nei/FractioningHandler.java +++ b/src/main/java/com/hbm/handler/nei/FractioningHandler.java @@ -6,6 +6,11 @@ import com.hbm.inventory.recipes.RefineryRecipes; public class FractioningHandler extends NEIUniversalHandler { public FractioningHandler() { - super("ntmFractioning", "Fractioning", ModBlocks.machine_fraction_tower, RefineryRecipes.getFractionRecipesForNEI()); + super("Fractioning", ModBlocks.machine_fraction_tower, RefineryRecipes.getFractionRecipesForNEI()); + } + + @Override + public String getKey() { + return "ntmFractioning"; } } diff --git a/src/main/java/com/hbm/handler/nei/LiquefactionHandler.java b/src/main/java/com/hbm/handler/nei/LiquefactionHandler.java index 076bdcf11..b3f31e9cb 100644 --- a/src/main/java/com/hbm/handler/nei/LiquefactionHandler.java +++ b/src/main/java/com/hbm/handler/nei/LiquefactionHandler.java @@ -6,6 +6,11 @@ import com.hbm.inventory.recipes.LiquefactionRecipes; public class LiquefactionHandler extends NEIUniversalHandler { public LiquefactionHandler() { - super("ntmLiquefaction", "Liquefaction", ModBlocks.machine_liquefactor, LiquefactionRecipes.getRecipes()); + super("Liquefaction", ModBlocks.machine_liquefactor, LiquefactionRecipes.getRecipes()); + } + + @Override + public String getKey() { + return "ntmLiquefaction"; } } diff --git a/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java b/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java index 7cba240f0..96a1c667e 100644 --- a/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java +++ b/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java @@ -2,11 +2,12 @@ package com.hbm.handler.nei; import static codechicken.lib.gui.GuiDraw.drawTexturedModalRect; +import java.awt.Rectangle; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; +import java.util.LinkedList; import java.util.List; -import java.util.Map; import java.util.Map.Entry; import com.hbm.lib.RefStrings; @@ -16,28 +17,32 @@ import codechicken.nei.NEIServerUtils; import codechicken.nei.PositionedStack; import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.block.Block; +import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public abstract class NEIUniversalHandler extends TemplateRecipeHandler { + public LinkedList transferRectsRec = new LinkedList(); + public LinkedList transferRectsGui = new LinkedList(); + public LinkedList> guiRec = new LinkedList>(); + public LinkedList> guiGui = new LinkedList>(); + /// SETUP /// public final String display; - public final String key; public final ItemStack[] machine; public final HashMap recipes; /// SETUP /// - public NEIUniversalHandler(String key, String display, ItemStack machine[], HashMap recipes) { - this.key = key; + public NEIUniversalHandler(String display, ItemStack machine[], HashMap recipes) { this.display = display; this.machine = machine; this.recipes = recipes; } - public NEIUniversalHandler(String key, String display, ItemStack machine, HashMap recipes) { this(key, display, new ItemStack[]{machine}, recipes); } - public NEIUniversalHandler(String key, String display, Item machine, HashMap recipes) { this(key, display, new ItemStack(machine), recipes); } - public NEIUniversalHandler(String key, String display, Block machine, HashMap recipes) { this(key, display, new ItemStack(machine), recipes); } + public NEIUniversalHandler(String display, ItemStack machine, HashMap recipes) { this(display, new ItemStack[]{machine}, recipes); } + public NEIUniversalHandler(String display, Item machine, HashMap recipes) { this(display, new ItemStack(machine), recipes); } + public NEIUniversalHandler(String display, Block machine, HashMap recipes) { this(display, new ItemStack(machine), recipes); } public class RecipeSet extends TemplateRecipeHandler.CachedRecipe { @@ -109,7 +114,7 @@ public abstract class NEIUniversalHandler extends TemplateRecipeHandler { @Override public void loadCraftingRecipes(String outputId, Object... results) { - if(outputId.equals(key)) { + if(outputId.equals(getKey())) { for(Entry recipe : recipes.entrySet()) { ItemStack[][] ins = InventoryUtil.extractObject(recipe.getKey()); @@ -143,9 +148,8 @@ public abstract class NEIUniversalHandler extends TemplateRecipeHandler { @Override public void loadUsageRecipes(String inputId, Object... ingredients) { - - if(inputId.equals(key)) { - loadCraftingRecipes(key, new Object[0]); + if(inputId.equals(getKey())) { + loadCraftingRecipes(getKey(), new Object[0]); } else { super.loadUsageRecipes(inputId, ingredients); } @@ -169,4 +173,18 @@ public abstract class NEIUniversalHandler extends TemplateRecipeHandler { } } } + + @Override + public void loadTransferRects() { + transferRectsGui = new LinkedList(); + //guiGui = new LinkedList>(); + + transferRects.add(new RecipeTransferRect(new Rectangle(147, 1, 18, 18), getKey())); + //transferRectsGui.add(new RecipeTransferRect(new Rectangle(18 * 2 + 2, 89 - 7 - 11, 18 * 5 - 4, 18 + 16), key)); + //guiGui.add(GUIMachineAssembler.class); + RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); + //RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); + } + + public abstract String getKey(); } diff --git a/src/main/java/com/hbm/handler/nei/RTGRecipeHandler.java b/src/main/java/com/hbm/handler/nei/RTGRecipeHandler.java index d11186c53..77ea8225c 100644 --- a/src/main/java/com/hbm/handler/nei/RTGRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/RTGRecipeHandler.java @@ -8,11 +8,16 @@ import net.minecraft.item.ItemStack; public class RTGRecipeHandler extends NEIUniversalHandler { public RTGRecipeHandler() { - super("ntmRTG", "RTG", new ItemStack[] { + super("RTG", new ItemStack[] { new ItemStack(ModBlocks.machine_rtg_grey), new ItemStack(ModBlocks.machine_difurnace_rtg_off), new ItemStack(ModBlocks.machine_industrial_generator), new ItemStack(ModBlocks.machine_rtg_furnace_off) }, ItemRTGPellet.getRecipeMap()); } + + @Override + public String getKey() { + return "ntmRTG"; + } } diff --git a/src/main/java/com/hbm/handler/nei/RadiolysisRecipeHandler.java b/src/main/java/com/hbm/handler/nei/RadiolysisRecipeHandler.java index edd81d147..9d5d619d4 100644 --- a/src/main/java/com/hbm/handler/nei/RadiolysisRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/RadiolysisRecipeHandler.java @@ -8,7 +8,6 @@ import java.util.LinkedList; import java.util.List; import java.util.Map.Entry; -import com.hbm.blocks.ModBlocks; import com.hbm.inventory.gui.GUIRadiolysis; import com.hbm.inventory.recipes.RadiolysisRecipes; import com.hbm.lib.RefStrings; @@ -16,8 +15,6 @@ import com.hbm.lib.RefStrings; import codechicken.nei.NEIServerUtils; import codechicken.nei.PositionedStack; import codechicken.nei.recipe.TemplateRecipeHandler; -import codechicken.nei.recipe.TemplateRecipeHandler.RecipeTransferRect; -import codechicken.nei.recipe.TemplateRecipeHandler.RecipeTransferRectHandler; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java b/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java index dd624fc18..ed1132d76 100644 --- a/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java @@ -10,12 +10,10 @@ import java.util.Map; import com.hbm.inventory.gui.GUISILEX; import com.hbm.inventory.recipes.SILEXRecipes; import com.hbm.inventory.recipes.SILEXRecipes.SILEXRecipe; -import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.lib.RefStrings; import com.hbm.util.I18nUtil; import com.hbm.util.WeightedRandomObject; -import com.hbm.inventory.RecipesCommon.ComparableStack; import codechicken.nei.NEIServerUtils; import codechicken.nei.PositionedStack; @@ -23,7 +21,6 @@ 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.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; diff --git a/src/main/java/com/hbm/handler/nei/SolidificationHandler.java b/src/main/java/com/hbm/handler/nei/SolidificationHandler.java index 42750936c..96a066b03 100644 --- a/src/main/java/com/hbm/handler/nei/SolidificationHandler.java +++ b/src/main/java/com/hbm/handler/nei/SolidificationHandler.java @@ -3,9 +3,16 @@ package com.hbm.handler.nei; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.recipes.SolidificationRecipes; +import codechicken.nei.recipe.TemplateRecipeHandler; + public class SolidificationHandler extends NEIUniversalHandler { public SolidificationHandler() { - super("ntmSolidification", "Solidification", ModBlocks.machine_solidifier, SolidificationRecipes.getRecipes()); + super("Solidification", ModBlocks.machine_solidifier, SolidificationRecipes.getRecipes()); + } + + @Override + public String getKey() { + return "ntmSolidification"; } } diff --git a/src/main/java/com/hbm/handler/nei/ZirnoxRecipeHandler.java b/src/main/java/com/hbm/handler/nei/ZirnoxRecipeHandler.java index b3f0b072e..a39208d98 100644 --- a/src/main/java/com/hbm/handler/nei/ZirnoxRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/ZirnoxRecipeHandler.java @@ -6,6 +6,11 @@ import com.hbm.tileentity.machine.TileEntityReactorZirnox; public class ZirnoxRecipeHandler extends NEIUniversalHandler { public ZirnoxRecipeHandler() { - super("ntmZirnox", "ZIRNOX", ModBlocks.reactor_zirnox, TileEntityReactorZirnox.fuelMap); + super("ZIRNOX", ModBlocks.reactor_zirnox, TileEntityReactorZirnox.fuelMap); + } + + @Override + public String getKey() { + return "ntmZirnox"; } } diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationManager.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationManager.java index 2a327f1fe..4eea00856 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationManager.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationManager.java @@ -16,27 +16,27 @@ public class ChunkRadiationManager { @SubscribeEvent public void onWorldLoad(WorldEvent.Load event) { - proxy.receiveWorldLoad(event); + if(RadiationConfig.enableChunkRads) proxy.receiveWorldLoad(event); } @SubscribeEvent public void onWorldUnload(WorldEvent.Unload event) { - proxy.receiveWorldUnload(event); + if(RadiationConfig.enableChunkRads) proxy.receiveWorldUnload(event); } @SubscribeEvent public void onChunkLoad(ChunkDataEvent.Load event) { - proxy.receiveChunkLoad(event); + if(RadiationConfig.enableChunkRads) proxy.receiveChunkLoad(event); } @SubscribeEvent public void onChunkSave(ChunkDataEvent.Save event) { - proxy.receiveChunkSave(event); + if(RadiationConfig.enableChunkRads) proxy.receiveChunkSave(event); } @SubscribeEvent public void onChunkUnload(ChunkEvent.Unload event) { - proxy.receiveChunkUnload(event); + if(RadiationConfig.enableChunkRads) proxy.receiveChunkUnload(event); } int eggTimer = 0; @@ -44,7 +44,7 @@ public class ChunkRadiationManager { @SubscribeEvent public void updateSystem(TickEvent.ServerTickEvent event) { - if(event.side == Side.SERVER && event.phase == Phase.END) { + if(RadiationConfig.enableChunkRads && event.side == Side.SERVER && event.phase == Phase.END) { eggTimer++; diff --git a/src/main/java/com/hbm/hazard/HazardRegistry.java b/src/main/java/com/hbm/hazard/HazardRegistry.java index 4c8e4838c..d13c83de2 100644 --- a/src/main/java/com/hbm/hazard/HazardRegistry.java +++ b/src/main/java/com/hbm/hazard/HazardRegistry.java @@ -6,7 +6,7 @@ import static com.hbm.inventory.OreDictManager.*; import com.hbm.blocks.ModBlocks; import com.hbm.hazard.modifier.*; -import com.hbm.hazard.transformer.HazardTransformerRadiationNBT; +import com.hbm.hazard.transformer.*; import com.hbm.hazard.type.*; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBreedingRod.BreedingRodType; @@ -469,6 +469,7 @@ public class HazardRegistry { public static void registerTrafos() { HazardSystem.trafos.add(new HazardTransformerRadiationNBT()); + HazardSystem.trafos.add(new HazardTransformerRadiationME()); } private static HazardData makeData() { return new HazardData(); } diff --git a/src/main/java/com/hbm/hazard/transformer/HazardTransformerRadiationME.java b/src/main/java/com/hbm/hazard/transformer/HazardTransformerRadiationME.java new file mode 100644 index 000000000..df387ac6c --- /dev/null +++ b/src/main/java/com/hbm/hazard/transformer/HazardTransformerRadiationME.java @@ -0,0 +1,33 @@ +package com.hbm.hazard.transformer; + +import java.util.List; + +import com.hbm.hazard.HazardEntry; +import com.hbm.hazard.HazardRegistry; +import com.hbm.hazard.HazardSystem; +import com.hbm.util.Compat; + +import net.minecraft.item.ItemStack; + +public class HazardTransformerRadiationME extends HazardTransformerBase { + + @Override + public void transformPre(ItemStack stack, List entries) { } + + @Override + public void transformPost(ItemStack stack, List entries) { + + if(stack.getItem().getClass().getName().equals("appeng.items.storage.ItemBasicStorageCell")) { + List stacks = Compat.scrapeItemFromME(stack); + float radiation = 0; + + for(ItemStack held : stacks) { + radiation += HazardSystem.getHazardLevelFromStack(held, HazardRegistry.RADIATION); + } + + if(radiation > 0) { + entries.add(new HazardEntry(HazardRegistry.RADIATION, radiation)); + } + } + } +} diff --git a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java index a78097093..1e53bb223 100644 --- a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java +++ b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java @@ -23,6 +23,7 @@ public class FluidContainerRegistry { FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(Items.lava_bucket), new ItemStack(Items.bucket), Fluids.LAVA, 1000)); FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.bucket_mud), new ItemStack(Items.bucket), Fluids.WATZ, 1000)); FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.bucket_schrabidic_acid), new ItemStack(Items.bucket), Fluids.SCHRABIDIC, 1000)); + FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.bucket_sulfuric_acid), new ItemStack(Items.bucket), Fluids.SULFURIC_ACID, 1000)); FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.gas_full), new ItemStack(ModItems.gas_empty), Fluids.GAS, 1000)); FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.gas_petroleum), new ItemStack(ModItems.gas_empty), Fluids.PETROLEUM, 1000)); @@ -98,7 +99,7 @@ public class FluidContainerRegistry { sta.stackSize = 1; for(FluidContainer container : allContainers) { - if(container.type.name().equals(type.name()) && + if(container.type == type && ItemStack.areItemStacksEqual(container.fullContainer, sta) && ItemStack.areItemStackTagsEqual(container.fullContainer, sta)) return container.content; @@ -131,7 +132,7 @@ public class FluidContainerRegistry { sta.stackSize = 1; for(FluidContainer container : allContainers) { - if(ItemStack.areItemStacksEqual(container.emptyContainer, sta) && ItemStack.areItemStackTagsEqual(container.emptyContainer, sta) && container.type.name().equals(type.name())) + if(ItemStack.areItemStacksEqual(container.emptyContainer, sta) && ItemStack.areItemStackTagsEqual(container.emptyContainer, sta) && container.type == type) return container.fullContainer.copy(); } diff --git a/src/main/java/com/hbm/inventory/FluidTank.java b/src/main/java/com/hbm/inventory/FluidTank.java index 497d122b5..f2fac384b 100644 --- a/src/main/java/com/hbm/inventory/FluidTank.java +++ b/src/main/java/com/hbm/inventory/FluidTank.java @@ -8,27 +8,22 @@ import org.lwjgl.opengl.GL11; import com.hbm.handler.ArmorModHandler; import com.hbm.interfaces.IPartiallyFillable; import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.FluidType.FluidTrait; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.gui.GuiInfoContainer; import com.hbm.items.ModItems; import com.hbm.items.armor.ItemArmorMod; import com.hbm.items.machine.ItemFluidIdentifier; -import com.hbm.lib.RefStrings; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.TEFluidPacket; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.resources.I18n; import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; public class FluidTank { diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 2a5eb7b1f..ad0448d8f 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -79,6 +79,8 @@ public class OreDictManager { public static final String KEY_TOOL_SCREWDRIVER = "ntmscrewdriver"; public static final String KEY_TOOL_HANDDRILL = "ntmhanddrill"; public static final String KEY_TOOL_CHEMISTRYSET = "ntmchemistryset"; + + public static final String KEY_CIRCUIT_BISMUTH = "circuitVersatile"; /* * PREFIXES @@ -433,6 +435,9 @@ public class OreDictManager { OreDictionary.registerOre(KEY_TOOL_HANDDRILL, new ItemStack(hand_drill_desh, 1, OreDictionary.WILDCARD_VALUE)); OreDictionary.registerOre(KEY_TOOL_CHEMISTRYSET, new ItemStack(chemistry_set, 1, OreDictionary.WILDCARD_VALUE)); OreDictionary.registerOre(KEY_TOOL_CHEMISTRYSET, new ItemStack(chemistry_set_boron, 1, OreDictionary.WILDCARD_VALUE)); + + OreDictionary.registerOre(KEY_CIRCUIT_BISMUTH, circuit_bismuth); + OreDictionary.registerOre(KEY_CIRCUIT_BISMUTH, circuit_arsenic); OreDictionary.registerOre(getReflector(), neutron_reflector); OreDictionary.registerOre("oreRareEarth", ore_rare); diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index abc94ef59..b3a6f77fc 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -86,6 +86,7 @@ public class Fluids { public static FluidType SALIENT; public static FluidType XPJUICE; public static FluidType ENDERJUICE; + public static FluidType SULFURIC_ACID; private static final HashMap idMapping = new HashMap(); private static final HashMap nameMapping = new HashMap(); @@ -181,6 +182,7 @@ public class Fluids { PETROIL_LEADED = new FluidTypeCombustible( "PETROIL_LEADED", 0x44413d, 1, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 450_000).setHeatEnergy(((FluidTypeFlammable)PETROIL).getHeatEnergy()); GASOLINE_LEADED = new FluidTypeCombustible( "GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_500_000).setHeatEnergy(((FluidTypeFlammable)GASOLINE).getHeatEnergy()); COALGAS_LEADED = new FluidTypeCombustible( "COALGAS_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 250_000).setHeatEnergy(((FluidTypeFlammable)COALGAS).getHeatEnergy()); + SULFURIC_ACID = new FluidType( "SULFURIC_ACID", 0xB0AA64, 3, 0, 2, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE); // ^ ^ ^ ^ ^ ^ ^ ^ @@ -250,10 +252,12 @@ public class Fluids { //processing fluids metaOrder.add(SALIENT); metaOrder.add(ACID); + metaOrder.add(SULFURIC_ACID); + //NITRIC_ACID + metaOrder.add(SCHRABIDIC); metaOrder.add(UF6); metaOrder.add(PUF6); metaOrder.add(SAS3); - metaOrder.add(SCHRABIDIC); metaOrder.add(PAIN); metaOrder.add(DEATH); metaOrder.add(WATZ); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 8b7518cb3..c28691d1e 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -164,7 +164,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.entanglement_kit, 1), new AStack[] {new ComparableStack(ModItems.coil_magnetized_tungsten, 6), new OreDictStack(PB.plate(), 16), new OreDictStack(OreDictManager.getReflector(), 4), new ComparableStack(ModItems.singularity_counter_resonant, 1), new ComparableStack(ModItems.singularity_super_heated, 1), new ComparableStack(ModItems.powder_power, 4), },200); makeRecipe(new ComparableStack(ModItems.dysfunctional_reactor, 1), new AStack[] {new OreDictStack(STEEL.plate(), 15), new OreDictStack(PB.ingot(), 5), new ComparableStack(ModItems.rod_quad_empty, 10), new OreDictStack("dyeBrown", 3), },200); makeRecipe(new ComparableStack(ModItems.missile_assembly, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.hull_small_aluminium, 4), new OreDictStack(STEEL.ingot(), 2), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.wire_aluminium, 6), new ComparableStack(ModItems.canister_full, 3, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); - makeRecipe(new ComparableStack(ModItems.missile_carrier, 1), new AStack[] {new ComparableStack(ModItems.fluid_barrel_full, 16, Fluids.KEROSENE.ordinal()), new ComparableStack(ModItems.thruster_medium, 4), new ComparableStack(ModItems.thruster_large, 1), new ComparableStack(ModItems.hull_big_titanium, 6), new ComparableStack(ModItems.hull_big_steel, 2), new ComparableStack(ModItems.hull_small_aluminium, 12), new OreDictStack(TI.plate(), 24), new ComparableStack(ModItems.plate_polymer, 128), new ComparableStack(ModBlocks.det_cord, 8), new ComparableStack(ModItems.circuit_targeting_tier3, 12), new ComparableStack(ModItems.circuit_targeting_tier4, 3), },4800); + makeRecipe(new ComparableStack(ModItems.missile_carrier, 1), new AStack[] {new ComparableStack(ModItems.fluid_barrel_full, 16, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.thruster_medium, 4), new ComparableStack(ModItems.thruster_large, 1), new ComparableStack(ModItems.hull_big_titanium, 6), new ComparableStack(ModItems.hull_big_steel, 2), new ComparableStack(ModItems.hull_small_aluminium, 12), new OreDictStack(TI.plate(), 24), new ComparableStack(ModItems.plate_polymer, 128), new ComparableStack(ModBlocks.det_cord, 8), new ComparableStack(ModItems.circuit_targeting_tier3, 12), new ComparableStack(ModItems.circuit_targeting_tier4, 3), },4800); makeRecipe(new ComparableStack(ModItems.warhead_generic_small, 1), new AStack[] {new OreDictStack(TI.plate(), 5), new OreDictStack(STEEL.plate(), 3), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 2), },100); makeRecipe(new ComparableStack(ModItems.warhead_generic_medium, 1), new AStack[] {new OreDictStack(TI.plate(), 8), new OreDictStack(STEEL.plate(), 5), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), },150); makeRecipe(new ComparableStack(ModItems.warhead_generic_large, 1), new AStack[] {new OreDictStack(TI.plate(), 15), new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8), },200); @@ -189,15 +189,15 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.thruster_medium, 1), new AStack[] {new ComparableStack(ModItems.thruster_small, 1), new OreDictStack(STEEL.plate(), 2), new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.wire_copper, 4), },150); makeRecipe(new ComparableStack(ModItems.thruster_large, 1), new AStack[] {new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.hull_big_steel, 2), new ComparableStack(ModItems.wire_red_copper, 4), },200); makeRecipe(new ComparableStack(ModItems.thruster_nuclear, 1), new AStack[] {new ComparableStack(ModItems.thruster_large, 1), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModBlocks.deco_pipe_quad, 3), new ComparableStack(ModItems.board_copper, 6), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModBlocks.reactor_research, 1), },600); - makeRecipe(new ComparableStack(ModItems.sat_base, 1), new AStack[] {new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.hull_big_titanium, 3), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.ordinal()), new ComparableStack(ModItems.photo_panel, 24), new ComparableStack(ModItems.board_copper, 12), new ComparableStack(ModItems.circuit_gold, 6), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },500); + makeRecipe(new ComparableStack(ModItems.sat_base, 1), new AStack[] {new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.hull_big_titanium, 3), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.photo_panel, 24), new ComparableStack(ModItems.board_copper, 12), new ComparableStack(ModItems.circuit_gold, 6), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },500); makeRecipe(new ComparableStack(ModItems.sat_head_mapper, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.hull_small_steel, 3), new ComparableStack(ModItems.plate_desh, 2), new ComparableStack(ModItems.circuit_gold, 2), new ComparableStack(ModItems.plate_polymer, 12), new OreDictStack(REDSTONE.dust(), 6), new ComparableStack(Items.diamond, 1), new ComparableStack(Blocks.glass_pane, 6), },400); makeRecipe(new ComparableStack(ModItems.sat_head_scanner, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 6), new OreDictStack(TI.plate(), 32), new ComparableStack(ModItems.plate_desh, 6), new ComparableStack(ModItems.magnetron, 6), new ComparableStack(ModItems.coil_advanced_torus, 2), new ComparableStack(ModItems.circuit_gold, 6), new ComparableStack(ModItems.plate_polymer, 6), new ComparableStack(Items.diamond, 1), },400); makeRecipe(new ComparableStack(ModItems.sat_head_radar, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(TI.plate(), 32), new ComparableStack(ModItems.magnetron, 12), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModItems.wire_red_copper, 16), new ComparableStack(ModItems.coil_gold, 3), new ComparableStack(ModItems.circuit_gold, 5), new ComparableStack(Items.diamond, 1), },400); makeRecipe(new ComparableStack(ModItems.sat_head_laser, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(W.ingot(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 6), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModItems.board_copper, 24), new ComparableStack(ModItems.circuit_targeting_tier5, 2), new OreDictStack(REDSTONE.dust(), 16), new ComparableStack(Items.diamond, 5), new ComparableStack(Blocks.glass_pane, 16), },450); makeRecipe(new ComparableStack(ModItems.sat_head_resonator, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 32), new OreDictStack(ANY_PLASTIC.ingot(), 48), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.crystal_xen, 1), new OreDictStack(STAR.ingot(), 7), new ComparableStack(ModItems.circuit_targeting_tier5, 6), new ComparableStack(ModItems.circuit_targeting_tier6, 2), },1000); - makeRecipe(new ComparableStack(ModItems.sat_foeq, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.plate_desh, 8), new ComparableStack(ModItems.hull_big_titanium, 3), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.HYDROGEN.ordinal()), new ComparableStack(ModItems.photo_panel, 16), new ComparableStack(ModItems.thruster_nuclear, 1), new ComparableStack(ModItems.ingot_uranium_fuel, 6), new ComparableStack(ModItems.circuit_targeting_tier5, 6), new ComparableStack(ModItems.magnetron, 3), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },1200); - makeRecipe(new ComparableStack(ModItems.sat_miner, 1), new AStack[] {new OreDictStack(BIGMT.plate(), 24), new ComparableStack(ModItems.plate_desh, 8), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.drill_titanium, 2), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.ordinal()), new ComparableStack(ModItems.thruster_small, 1), new ComparableStack(ModItems.photo_panel, 12), new ComparableStack(ModItems.centrifuge_element, 4), new ComparableStack(ModItems.magnetron, 3), new ComparableStack(ModItems.plate_polymer, 12), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },600); - makeRecipe(new ComparableStack(ModItems.sat_lunar_miner, 1), new AStack[] {new ComparableStack(ModItems.ingot_meteorite, 4), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.drill_titanium, 2), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.ordinal()), new ComparableStack(ModItems.thruster_small, 1), new ComparableStack(ModItems.photo_panel, 12), new ComparableStack(ModItems.magnetron, 3), new ComparableStack(ModItems.plate_polymer, 12), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },600); + makeRecipe(new ComparableStack(ModItems.sat_foeq, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.plate_desh, 8), new ComparableStack(ModItems.hull_big_titanium, 3), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.HYDROGEN.getID()), new ComparableStack(ModItems.photo_panel, 16), new ComparableStack(ModItems.thruster_nuclear, 1), new ComparableStack(ModItems.ingot_uranium_fuel, 6), new ComparableStack(ModItems.circuit_targeting_tier5, 6), new ComparableStack(ModItems.magnetron, 3), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },1200); + makeRecipe(new ComparableStack(ModItems.sat_miner, 1), new AStack[] {new OreDictStack(BIGMT.plate(), 24), new ComparableStack(ModItems.plate_desh, 8), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.drill_titanium, 2), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.thruster_small, 1), new ComparableStack(ModItems.photo_panel, 12), new ComparableStack(ModItems.centrifuge_element, 4), new ComparableStack(ModItems.magnetron, 3), new ComparableStack(ModItems.plate_polymer, 12), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },600); + makeRecipe(new ComparableStack(ModItems.sat_lunar_miner, 1), new AStack[] {new ComparableStack(ModItems.ingot_meteorite, 4), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.drill_titanium, 2), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.thruster_small, 1), new ComparableStack(ModItems.photo_panel, 12), new ComparableStack(ModItems.magnetron, 3), new ComparableStack(ModItems.plate_polymer, 12), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },600); makeRecipe(new ComparableStack(ModItems.chopper_head, 1), new AStack[] {new ComparableStack(ModBlocks.reinforced_glass, 2), new ComparableStack(ModBlocks.fwatz_computer, 1), new OreDictStack(CMB.ingot(), 22), new ComparableStack(ModItems.wire_magnetized_tungsten, 4), },300); makeRecipe(new ComparableStack(ModItems.chopper_gun, 1), new AStack[] {new OreDictStack(CMB.plate(), 4), new OreDictStack(CMB.ingot(), 2), new ComparableStack(ModItems.wire_tungsten, 6), new ComparableStack(ModItems.coil_magnetized_tungsten, 1), new ComparableStack(ModItems.motor, 1), },150); makeRecipe(new ComparableStack(ModItems.chopper_torso, 1), new AStack[] {new OreDictStack(CMB.ingot(), 26), new ComparableStack(ModBlocks.fwatz_computer, 1), new ComparableStack(ModItems.wire_magnetized_tungsten, 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.chopper_blades, 2), },350); @@ -241,7 +241,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.upgrade_health, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new ComparableStack(Items.glowstone_dust, 6), new OreDictStack(TI.dust(), 4), },500); makeRecipe(new ComparableStack(ModItems.upgrade_overdrive_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_speed_3, 1), new ComparableStack(ModItems.upgrade_effect_3, 1), new OreDictStack(DESH.ingot(), 8), new ComparableStack(ModItems.powder_power, 16), new ComparableStack(ModItems.crystal_lithium, 4), new ComparableStack(ModItems.circuit_schrabidium, 1), }, 200); makeRecipe(new ComparableStack(ModItems.upgrade_overdrive_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_overdrive_1, 1), new ComparableStack(ModItems.upgrade_afterburn_1, 1), new ComparableStack(ModItems.upgrade_speed_3, 1), new ComparableStack(ModItems.upgrade_effect_3, 1), new ComparableStack(ModItems.crystal_lithium, 8), new ComparableStack(ModItems.circuit_tantalium, 16), }, 300); - makeRecipe(new ComparableStack(ModItems.upgrade_overdrive_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_overdrive_2, 1), new ComparableStack(ModItems.upgrade_afterburn_1, 1), new ComparableStack(ModItems.upgrade_speed_3, 1), new ComparableStack(ModItems.upgrade_effect_3, 1), new ComparableStack(ModItems.crystal_lithium, 16), new ComparableStack(ModItems.circuit_bismuth, 1), }, 500); + makeRecipe(new ComparableStack(ModItems.upgrade_overdrive_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_overdrive_2, 1), new ComparableStack(ModItems.upgrade_afterburn_1, 1), new ComparableStack(ModItems.upgrade_speed_3, 1), new ComparableStack(ModItems.upgrade_effect_3, 1), new ComparableStack(ModItems.crystal_lithium, 16), new OreDictStack(KEY_CIRCUIT_BISMUTH), }, 500); makeRecipe(new ComparableStack(ModItems.fuse, 1), new AStack[] {new OreDictStack(STEEL.plate(), 2), new ComparableStack(Blocks.glass_pane, 1), new ComparableStack(ModItems.wire_aluminium, 1), },100); makeRecipe(new ComparableStack(ModItems.redcoil_capacitor, 1), new AStack[] {new OreDictStack(GOLD.plate(), 3), new ComparableStack(ModItems.fuse, 1), new ComparableStack(ModItems.wire_advanced_alloy, 4), new ComparableStack(ModItems.coil_advanced_alloy, 6), new ComparableStack(Blocks.redstone_block, 2), },200); makeRecipe(new ComparableStack(ModItems.titanium_filter, 1), new AStack[] {new OreDictStack(PB.plate(), 3), new ComparableStack(ModItems.fuse, 1), new ComparableStack(ModItems.wire_tungsten, 4), new OreDictStack(TI.plate(), 6), new OreDictStack(U238.ingot(), 2), },200); @@ -303,7 +303,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.fwatz_hatch, 1), new AStack[] {new OreDictStack(W.ingot(), 6), new OreDictStack(CMB.plate(), 4), },250); makeRecipe(new ComparableStack(ModBlocks.fwatz_conductor, 1), new AStack[] {new OreDictStack(CMB.plate(), 2), new ComparableStack(ModItems.coil_magnetized_tungsten, 5), },250); makeRecipe(new ComparableStack(ModBlocks.fwatz_computer, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), new ComparableStack(ModItems.wire_magnetized_tungsten, 16), new OreDictStack(DIAMOND.dust(), 6), new OreDictStack(MAGTUNG.dust(), 6), new OreDictStack(DESH.dust(), 4), },300); - makeRecipe(new ComparableStack(ModBlocks.fwatz_core, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), new ComparableStack(ModItems.wire_magnetized_tungsten, 24), new OreDictStack(DIAMOND.dust(), 8), new OreDictStack(MAGTUNG.dust(), 12), new OreDictStack(DESH.dust(), 8), new ComparableStack(ModItems.upgrade_power_3, 1), new ComparableStack(ModItems.upgrade_speed_3, 1), new ComparableStack(ModItems.circuit_bismuth, 8)},450); + makeRecipe(new ComparableStack(ModBlocks.fwatz_core, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), new ComparableStack(ModItems.wire_magnetized_tungsten, 24), new OreDictStack(DIAMOND.dust(), 8), new OreDictStack(MAGTUNG.dust(), 12), new OreDictStack(DESH.dust(), 8), new ComparableStack(ModItems.upgrade_power_3, 1), new ComparableStack(ModItems.upgrade_speed_3, 1), new OreDictStack(KEY_CIRCUIT_BISMUTH, 8)},450); makeRecipe(new ComparableStack(ModBlocks.nuke_gadget, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.fins_flat, 2), new ComparableStack(ModItems.pedestal_steel, 1), new ComparableStack(ModItems.circuit_targeting_tier3, 1), new ComparableStack(ModItems.wire_gold, 6), new OreDictStack("dyeGray", 6), },300); makeRecipe(new ComparableStack(ModBlocks.nuke_boy, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.fins_small_steel, 1), new ComparableStack(ModItems.circuit_targeting_tier2, 1), new ComparableStack(ModItems.wire_aluminium, 6), new OreDictStack("dyeBlue", 4), },300); makeRecipe(new ComparableStack(ModBlocks.nuke_man, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.hull_big_steel, 2), new ComparableStack(ModItems.fins_big_steel, 1), new ComparableStack(ModItems.circuit_targeting_tier2, 2), new ComparableStack(ModItems.wire_copper, 6), new OreDictStack("dyeYellow", 6), },300); @@ -460,7 +460,7 @@ public class AssemblerRecipes { new ComparableStack(ModItems.coil_advanced_alloy, 12), new OreDictStack(ANY_PLASTIC.ingot(), 8), new ComparableStack(ModItems.circuit_red_copper, 8), - new ComparableStack(ModItems.circuit_bismuth, 1) + new OreDictStack(KEY_CIRCUIT_BISMUTH, 1) }, 600); makeRecipe(new ComparableStack(ModBlocks.machine_large_turbine, 1), new AStack[] { new ComparableStack(ModItems.hull_big_steel, 1), diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index 3a4a67f97..348a91b1c 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -58,6 +58,10 @@ public class ChemplantRecipes { recipes.add(new ChemRecipe(40, "PEROXIDE", 50) .inputFluids(new FluidStack(Fluids.WATER, 1000)) .outputFluids(new FluidStack(Fluids.ACID, 800))); + recipes.add(new ChemRecipe(90, "SULFURIC_ACID", 50) + .inputItems(new OreDictStack(S.dust())) + .inputFluids(new FluidStack(Fluids.ACID, 800)) + .outputFluids(new FluidStack(Fluids.SULFURIC_ACID, 500))); recipes.add(new ChemRecipe(41, "CIRCUIT_4", 200) .inputItems( new ComparableStack(ModItems.circuit_red_copper), @@ -265,6 +269,13 @@ public class ChemplantRecipes { new ItemStack(ModItems.gem_tantalium), new ItemStack(ModItems.dust, 3)) .outputFluids(new FluidStack(Fluids.WATER, 250))); + recipes.add(new ChemRecipe(91, "ARSENIC", 1200) + .inputItems(new ComparableStack(ModItems.scrap_oil, 256)) + .inputFluids(new FluidStack(Fluids.SULFURIC_ACID, 1000)) + .outputItems( + new ItemStack(ModItems.nugget_arsenic), + new ItemStack(ModItems.sulfur, 2)) + .outputFluids(new FluidStack(Fluids.HEAVYOIL, 1500))); recipes.add(new ChemRecipe(68, "VIT_LIQUID", 100) .inputItems(new ComparableStack(ModBlocks.sand_lead)) .inputFluids(new FluidStack(Fluids.WASTEFLUID, 1000)) diff --git a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java index 9076afe63..9983b8613 100644 --- a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java @@ -75,6 +75,7 @@ public class PressRecipes { makeRecipe(StampType.CIRCUIT, new ComparableStack(ModItems.circuit_raw), ModItems.circuit_aluminium); makeRecipe(StampType.CIRCUIT, new ComparableStack(ModItems.circuit_bismuth_raw), ModItems.circuit_bismuth); + makeRecipe(StampType.CIRCUIT, new ComparableStack(ModItems.circuit_arsenic_raw), ModItems.circuit_arsenic); makeRecipe(StampType.CIRCUIT, new ComparableStack(ModItems.circuit_tantalium_raw), ModItems.circuit_tantalium); makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_iron), ModItems.gun_revolver_iron_ammo); diff --git a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java index a584ef210..fe88e9395 100644 --- a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java @@ -257,6 +257,16 @@ public class ShredderRecipes { ShredderRecipes.setRecipe(ModBlocks.sellafield_3, new ItemStack(ModItems.scrap_nuclear, 5)); ShredderRecipes.setRecipe(ModBlocks.sellafield_4, new ItemStack(ModItems.scrap_nuclear, 7)); ShredderRecipes.setRecipe(ModBlocks.sellafield_core, new ItemStack(ModItems.scrap_nuclear, 15)); + + /* + * Fracking debris scrapping + */ + ShredderRecipes.setRecipe(ModBlocks.dirt_dead, new ItemStack(ModItems.scrap_oil, 1)); + ShredderRecipes.setRecipe(ModBlocks.dirt_oily, new ItemStack(ModItems.scrap_oil, 1)); + ShredderRecipes.setRecipe(ModBlocks.sand_dirty, new ItemStack(ModItems.scrap_oil, 1)); + ShredderRecipes.setRecipe(ModBlocks.sand_dirty_red, new ItemStack(ModItems.scrap_oil, 1)); + ShredderRecipes.setRecipe(ModBlocks.stone_cracked, new ItemStack(ModItems.scrap_oil, 1)); + ShredderRecipes.setRecipe(ModBlocks.stone_porous, new ItemStack(ModItems.scrap_oil, 1)); /* * Deco pipe recycling diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 138069726..b066e168a 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -252,7 +252,7 @@ public class AnvilRecipes { }, new AnvilOutput(new ItemStack(ModItems.demon_core_open))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe( - new AStack[] {new OreDictStack(DESH.ingot(), 4), new OreDictStack(POLYMER.dust(), 2), new OreDictStack(DURA.ingot(), 1)}, + new AStack[] {new OreDictStack(DESH.ingot(), 4), new OreDictStack(ANY_PLASTIC.dust(), 2), new OreDictStack(DURA.ingot(), 1)}, new AnvilOutput(new ItemStack(ModItems.plate_desh, 4))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] {new ComparableStack(ModItems.nugget_bismuth, 2), new OreDictStack(U238.billet(), 2), new OreDictStack(NB.dust(), 1)}, diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 469c370a2..0eb26e504 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -271,6 +271,8 @@ public class ModItems { public static Item nugget_lead; public static Item ingot_bismuth; public static Item nugget_bismuth; + public static Item ingot_arsenic; + public static Item nugget_arsenic; public static Item ingot_tantalium; public static Item nugget_tantalium; public static Item ingot_niobium; @@ -544,6 +546,8 @@ public class ModItems { public static Item circuit_schrabidium; public static Item circuit_bismuth_raw; public static Item circuit_bismuth; + public static Item circuit_arsenic_raw; + public static Item circuit_arsenic; public static Item circuit_tantalium_raw; public static Item circuit_tantalium; public static Item crt_display; @@ -1130,6 +1134,7 @@ public class ModItems { public static Item scrap_plastic; public static Item scrap; + public static Item scrap_oil; public static Item scrap_nuclear; public static Item trinitite; public static Item nuclear_waste_long; @@ -1209,6 +1214,7 @@ public class ModItems { public static Item mirror_tool; public static Item rbmk_tool; public static Item coltan_tool; + public static Item power_net_tool; public static Item template_folder; public static Item journal_pip; @@ -2388,6 +2394,7 @@ public class ModItems { public static Item bucket_acid; public static Item bucket_toxic; public static Item bucket_schrabidic_acid; + public static Item bucket_sulfuric_acid; public static Item door_metal; public static Item door_office; @@ -2812,6 +2819,8 @@ public class ModItems { nugget_lead = new Item().setUnlocalizedName("nugget_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_lead"); ingot_bismuth = new ItemCustomLore().setUnlocalizedName("ingot_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_bismuth"); nugget_bismuth = new Item().setUnlocalizedName("nugget_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_bismuth"); + ingot_arsenic = new ItemCustomLore().setUnlocalizedName("ingot_arsenic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_arsenic"); + nugget_arsenic = new Item().setUnlocalizedName("nugget_arsenic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_arsenic"); ingot_tantalium = new ItemCustomLore().setUnlocalizedName("ingot_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_tantalium"); nugget_tantalium = new ItemCustomLore().setUnlocalizedName("nugget_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_tantalium"); ingot_niobium = new Item().setUnlocalizedName("ingot_niobium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_niobium"); @@ -3099,6 +3108,8 @@ public class ModItems { circuit_schrabidium = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("circuit_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_schrabidium"); circuit_bismuth_raw = new Item().setUnlocalizedName("circuit_bismuth_raw").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_bismuth_raw"); circuit_bismuth = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("circuit_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_bismuth"); + circuit_arsenic_raw = new Item().setUnlocalizedName("circuit_arsenic_raw").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_arsenic_raw"); + circuit_arsenic = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("circuit_arsenic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_arsenic"); circuit_tantalium_raw = new Item().setUnlocalizedName("circuit_tantalium_raw").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_tantalium_raw"); circuit_tantalium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("circuit_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit_tantalium"); crt_display = new Item().setUnlocalizedName("crt_display").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crt_display"); @@ -3865,6 +3876,7 @@ public class ModItems { nuclear_waste_vitrified_tiny = new ItemNuclearWaste().setUnlocalizedName("nuclear_waste_vitrified_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_vitrified_tiny"); scrap_plastic = new ItemPlasticScrap().setUnlocalizedName("scrap_plastic").setTextureName(RefStrings.MODID + ":scrap_plastic"); scrap = new Item().setUnlocalizedName("scrap").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scrap"); + scrap_oil = new Item().setUnlocalizedName("scrap_oil").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scrap_oil"); scrap_nuclear = new Item().setUnlocalizedName("scrap_nuclear").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scrap_nuclear"); containment_box = new ItemLeadBox().setUnlocalizedName("containment_box").setCreativeTab(null).setTextureName(RefStrings.MODID + ":containment_box"); @@ -4732,6 +4744,7 @@ public class ModItems { mirror_tool = new ItemMirrorTool().setUnlocalizedName("mirror_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":mirror_tool"); rbmk_tool = new ItemRBMKTool().setUnlocalizedName("rbmk_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":rbmk_tool"); coltan_tool = new ItemColtanCompass().setUnlocalizedName("coltan_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coltass"); + power_net_tool = new ItemPowerNetTool().setUnlocalizedName("power_net_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":power_net_tool"); key = new ItemKey().setUnlocalizedName("key").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":key"); key_red = new ItemCustomLore().setUnlocalizedName("key_red").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":key_red"); @@ -5472,6 +5485,7 @@ public class ModItems { bucket_acid = new ItemModBucket(ModBlocks.acid_block).setUnlocalizedName("bucket_acid").setContainerItem(Items.bucket).setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":bucket_acid"); bucket_toxic = new ItemModBucket(ModBlocks.toxic_block).setUnlocalizedName("bucket_toxic").setContainerItem(Items.bucket).setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":bucket_toxic"); bucket_schrabidic_acid = new ItemModBucket(ModBlocks.schrabidic_block).setUnlocalizedName("bucket_schrabidic_acid").setContainerItem(Items.bucket).setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":bucket_schrabidic_acid"); + bucket_sulfuric_acid = new ItemModBucket(ModBlocks.sulfuric_acid_block).setUnlocalizedName("bucket_sulfuric_acid").setContainerItem(Items.bucket).setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":bucket_sulfuric_acid"); door_metal = new ItemModDoor().setUnlocalizedName("door_metal").setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":door_metal"); door_office = new ItemModDoor().setUnlocalizedName("door_office").setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":door_office"); @@ -5621,6 +5635,7 @@ public class ModItems { BucketHandler.INSTANCE.buckets.put(ModBlocks.acid_block, ModItems.bucket_acid); BucketHandler.INSTANCE.buckets.put(ModBlocks.toxic_block, ModItems.bucket_toxic); BucketHandler.INSTANCE.buckets.put(ModBlocks.schrabidic_block, ModItems.bucket_schrabidic_acid); + BucketHandler.INSTANCE.buckets.put(ModBlocks.sulfuric_acid_block, ModItems.bucket_sulfuric_acid); MinecraftForge.EVENT_BUS.register(BucketHandler.INSTANCE); } @@ -5680,6 +5695,7 @@ public class ModItems { GameRegistry.registerItem(ingot_tcalloy, ingot_tcalloy.getUnlocalizedName()); GameRegistry.registerItem(ingot_lead, ingot_lead.getUnlocalizedName()); GameRegistry.registerItem(ingot_bismuth, ingot_bismuth.getUnlocalizedName()); + GameRegistry.registerItem(ingot_arsenic, ingot_arsenic.getUnlocalizedName()); GameRegistry.registerItem(ingot_tantalium, ingot_tantalium.getUnlocalizedName()); GameRegistry.registerItem(ingot_niobium, ingot_niobium.getUnlocalizedName()); GameRegistry.registerItem(ingot_beryllium, ingot_beryllium.getUnlocalizedName()); @@ -6000,6 +6016,7 @@ public class ModItems { GameRegistry.registerItem(nugget_actinium, nugget_actinium.getUnlocalizedName()); GameRegistry.registerItem(nugget_lead, nugget_lead.getUnlocalizedName()); GameRegistry.registerItem(nugget_bismuth, nugget_bismuth.getUnlocalizedName()); + GameRegistry.registerItem(nugget_arsenic, nugget_arsenic.getUnlocalizedName()); GameRegistry.registerItem(nugget_tantalium, nugget_tantalium.getUnlocalizedName()); GameRegistry.registerItem(nugget_beryllium, nugget_beryllium.getUnlocalizedName()); GameRegistry.registerItem(nugget_schrabidium, nugget_schrabidium.getUnlocalizedName()); @@ -6212,6 +6229,8 @@ public class ModItems { GameRegistry.registerItem(circuit_schrabidium, circuit_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(circuit_bismuth_raw, circuit_bismuth_raw.getUnlocalizedName()); GameRegistry.registerItem(circuit_bismuth, circuit_bismuth.getUnlocalizedName()); + GameRegistry.registerItem(circuit_arsenic_raw, circuit_arsenic_raw.getUnlocalizedName()); + GameRegistry.registerItem(circuit_arsenic, circuit_arsenic.getUnlocalizedName()); GameRegistry.registerItem(circuit_tantalium_raw, circuit_tantalium_raw.getUnlocalizedName()); GameRegistry.registerItem(circuit_tantalium, circuit_tantalium.getUnlocalizedName()); GameRegistry.registerItem(crt_display, crt_display.getUnlocalizedName()); @@ -6803,6 +6822,7 @@ public class ModItems { GameRegistry.registerItem(scrap_plastic, scrap_plastic.getUnlocalizedName()); GameRegistry.registerItem(scrap, scrap.getUnlocalizedName()); + GameRegistry.registerItem(scrap_oil, scrap_oil.getUnlocalizedName()); GameRegistry.registerItem(scrap_nuclear, scrap_nuclear.getUnlocalizedName()); GameRegistry.registerItem(trinitite, trinitite.getUnlocalizedName()); GameRegistry.registerItem(nuclear_waste_long, nuclear_waste_long.getUnlocalizedName()); @@ -6838,6 +6858,7 @@ public class ModItems { GameRegistry.registerItem(mirror_tool, mirror_tool.getUnlocalizedName()); GameRegistry.registerItem(rbmk_tool, rbmk_tool.getUnlocalizedName()); GameRegistry.registerItem(coltan_tool, coltan_tool.getUnlocalizedName()); + GameRegistry.registerItem(power_net_tool, power_net_tool.getUnlocalizedName()); GameRegistry.registerItem(dosimeter, dosimeter.getUnlocalizedName()); GameRegistry.registerItem(geiger_counter, geiger_counter.getUnlocalizedName()); GameRegistry.registerItem(digamma_diagnostic, digamma_diagnostic.getUnlocalizedName()); @@ -8003,6 +8024,7 @@ public class ModItems { GameRegistry.registerItem(bucket_acid, bucket_acid.getUnlocalizedName()); GameRegistry.registerItem(bucket_toxic, bucket_toxic.getUnlocalizedName()); GameRegistry.registerItem(bucket_schrabidic_acid, bucket_schrabidic_acid.getUnlocalizedName()); + GameRegistry.registerItem(bucket_sulfuric_acid, bucket_sulfuric_acid.getUnlocalizedName()); //Door Items GameRegistry.registerItem(door_metal, door_metal.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/armor/ArmorFSB.java b/src/main/java/com/hbm/items/armor/ArmorFSB.java index be08d063c..d86dd00bb 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSB.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSB.java @@ -27,6 +27,7 @@ import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.resources.I18n; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; @@ -530,6 +531,9 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { List entities = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, player.boundingBox.expand(3, 0, 3)); for(Entity e : entities) { + + if(e instanceof EntityItem) + continue; Vec3 vec = Vec3.createVectorHelper(player.posX - e.posX, 0, player.posZ - e.posZ); diff --git a/src/main/java/com/hbm/items/tool/ItemPowerNetTool.java b/src/main/java/com/hbm/items/tool/ItemPowerNetTool.java new file mode 100644 index 000000000..d1e5eef45 --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemPowerNetTool.java @@ -0,0 +1,110 @@ +package com.hbm.items.tool; + +import java.util.List; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; +import com.hbm.util.ChatBuilder; + +import api.hbm.energy.IEnergyConductor; +import api.hbm.energy.IEnergyConnector; +import api.hbm.energy.IPowerNet; +import api.hbm.energy.PowerNet; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class ItemPowerNetTool extends Item { + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float fX, float fY, float fZ) { + + Block b = world.getBlock(x, y, z); + + if(b instanceof BlockDummyable) { + int[] pos = ((BlockDummyable) b).findCore(world, x, y, z); + + if(pos != null) { + x = pos[0]; + y = pos[1]; + z = pos[2]; + } + } + + TileEntity te = world.getTileEntity(x, y, z); + + if(!(te instanceof IEnergyConductor)) + return false; + + if(world.isRemote) + return true; + + IEnergyConductor con = (IEnergyConductor) te; + IPowerNet net = con.getPowerNet(); + + if(net == null) { + player.addChatComponentMessage(ChatBuilder.start("Error: No network found! This should be impossible!").color(EnumChatFormatting.RED).flush()); + return true; + } + + if(!(net instanceof PowerNet)) { + player.addChatComponentMessage(ChatBuilder.start("Error: Cannot print diagnostic for non-standard power net implementation!").color(EnumChatFormatting.RED).flush()); + } + + PowerNet network = (PowerNet) net; + String id = Integer.toHexString(net.hashCode()); + + player.addChatComponentMessage(ChatBuilder.start("Start of diagnostic for network " + id).color(EnumChatFormatting.GOLD).flush()); + player.addChatComponentMessage(ChatBuilder.start("Links: " + network.getLinks().size()).color(EnumChatFormatting.YELLOW).flush()); + player.addChatComponentMessage(ChatBuilder.start("Proxies: " + network.getProxies().size()).color(EnumChatFormatting.YELLOW).flush()); + player.addChatComponentMessage(ChatBuilder.start("Subscribers: " + network.getSubscribers().size()).color(EnumChatFormatting.YELLOW).flush()); + player.addChatComponentMessage(ChatBuilder.start("End of diagnostic for network " + id).color(EnumChatFormatting.GOLD).flush()); + + for(IEnergyConductor link : network.getLinks()) { + Vec3 pos = link.getDebugParticlePos(); + + boolean errored = link.getPowerNet() != net; + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "debug"); + data.setInteger("color", errored ? 0xff0000 : 0xffff00); + data.setFloat("scale", 0.5F); + data.setString("text", id); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.xCoord, pos.yCoord, pos.zCoord), new TargetPoint(world.provider.dimensionId, pos.xCoord, pos.yCoord, pos.zCoord, radius)); + } + + for(IEnergyConnector subscriber : network.getSubscribers()) { + Vec3 pos = subscriber.getDebugParticlePos(); + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "debug"); + data.setInteger("color", 0x0000ff); + data.setFloat("scale", 1.5F); + data.setString("text", id); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.xCoord, pos.yCoord, pos.zCoord), new TargetPoint(world.provider.dimensionId, pos.xCoord, pos.yCoord, pos.zCoord, radius)); + } + + return true; + } + + private static final int radius = 20; + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + list.add(EnumChatFormatting.RED + "Right-click cable to analyze the power net."); + list.add(EnumChatFormatting.RED + "Links (cables, poles, etc.) are YELLOW"); + list.add(EnumChatFormatting.RED + "Subscribers (any receiver) are BLUE"); + list.add(EnumChatFormatting.RED + "Links with mismatching network info (BUGGED!) are RED"); + list.add(EnumChatFormatting.RED + "Displays stats such as link and subscriber count"); + list.add(EnumChatFormatting.RED + "Proxies are connection points for multiblock links (e.g. 4 for substations)"); + list.add(EnumChatFormatting.RED + "Particles only spawn in a " + radius + " block radius!"); + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemRBMKTool.java b/src/main/java/com/hbm/items/tool/ItemRBMKTool.java index e5f1da2c3..34f5ef405 100644 --- a/src/main/java/com/hbm/items/tool/ItemRBMKTool.java +++ b/src/main/java/com/hbm/items/tool/ItemRBMKTool.java @@ -17,7 +17,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ChatComponentText; import net.minecraft.util.ChatComponentTranslation; import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index ce28cc008..ac1474ef8 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -1571,6 +1571,15 @@ public class ClientProxy extends ServerProxy { if("amat".equals(type)) { Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleAmatFlash(world, x, y, z, data.getFloat("scale"))); } + + if("debug".equals(type)) { + String t = data.getString("text"); + int color = data.getInteger("color"); + float scale = data.getFloat("scale"); + ParticleText text = new ParticleText(world, x, y, z, color, t); + text.multipleParticleScaleBy(scale); + Minecraft.getMinecraft().effectRenderer.addEffect(text); + } } private HashMap vanished = new HashMap(); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 118a58068..43ec20b93 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -729,7 +729,7 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.ams_catalyst_euphemium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_dagaz, ModItems.rune_dagaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, EUPH.dust(), EUPH.dust(), EUPH.dust(), EUPH.dust() }); addShapelessAuto(new ItemStack(ModItems.ams_catalyst_schrabidium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_dagaz, ModItems.rune_hagalaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, SA326.dust(), SA326.dust(), SA326.dust(), SA326.dust() }); addShapelessAuto(new ItemStack(ModItems.ams_catalyst_dineutronium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_hagalaz, ModItems.rune_hagalaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, DNT.dust(), DNT.dust(), DNT.dust(), DNT.dust() }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_core, 1), new Object[] { "DLD", "LML", "DLD", 'D', ModItems.ingot_bismuth, 'L', DNT.block(), 'M', ModItems.circuit_bismuth }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_core, 1), new Object[] { "DLD", "LML", "DLD", 'D', ModItems.ingot_bismuth, 'L', DNT.block(), 'M', KEY_CIRCUIT_BISMUTH }); addRecipeAuto(new ItemStack(ModBlocks.dfc_emitter, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.ingot(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModItems.crystal_xen, 'L', ModItems.sat_head_laser }); addRecipeAuto(new ItemStack(ModBlocks.dfc_receiver, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.ingot(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModBlocks.sellafield_core, 'L', ModItems.hull_small_steel }); addRecipeAuto(new ItemStack(ModBlocks.dfc_injector, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.ingot(), 'D', CMB.plate(), 'T', ModBlocks.machine_fluidtank, 'X', ModItems.motor, 'L', ModItems.pipes_steel }); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 7cce6df80..fb18842c8 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -62,7 +62,6 @@ import com.hbm.util.EntityDamageUtil; import com.hbm.world.WorldProviderNTM; import com.hbm.world.generator.TimedGenerator; -import api.hbm.energy.IEnergyConductor; import cpw.mods.fml.common.eventhandler.Event.Result; import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; @@ -743,7 +742,7 @@ public class ModEventHandler { /// TOM IMPACT END/// /// RADIATION STUFF START /// - if(event.world != null && !event.world.isRemote && GeneralConfig.enableRads) { + if(event.world != null && !event.world.isRemote) { int thunder = AuxSavedData.getThunder(event.world); @@ -1171,7 +1170,7 @@ public class ModEventHandler { /// PU RADIATION END /// - if(player instanceof EntityPlayerMP) { + /*if(player instanceof EntityPlayerMP) { int x = (int) Math.floor(player.posX); int y = (int) Math.floor(player.posY - 0.01); @@ -1180,7 +1179,7 @@ public class ModEventHandler { if(player.worldObj.getTileEntity(x, y, z) instanceof IEnergyConductor) { PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(((IEnergyConductor) player.worldObj.getTileEntity(x, y, z)).getPowerNet() + ""), (EntityPlayerMP) player); } - } + }*/ /// NEW ITEM SYS START /// HazardSystem.updatePlayerInventory(player); diff --git a/src/main/java/com/hbm/particle/ParticleText.java b/src/main/java/com/hbm/particle/ParticleText.java new file mode 100644 index 000000000..34ad3e928 --- /dev/null +++ b/src/main/java/com/hbm/particle/ParticleText.java @@ -0,0 +1,65 @@ +package com.hbm.particle; + +import org.lwjgl.opengl.GL11; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.particle.EntityFX; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.World; + +public class ParticleText extends EntityFX { + + int color; + String text; + + public ParticleText(World world, double x, double y, double z, int color, String text) { + super(world, x, y, z); + this.particleMaxAge = 100; + this.color = color; + this.text = text; + + this.motionY = 0.01D; + this.noClip = true; + } + + public int getFXLayer() { + return 3; + } + + public void renderParticle(Tessellator tess, float interp, float x, float y, float z, float tx, float tz) { + + GL11.glPushMatrix(); + + GL11.glDisable(GL11.GL_LIGHTING); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240.0F, 0.0F); + RenderHelper.disableStandardItemLighting(); + + Minecraft mc = Minecraft.getMinecraft(); + FontRenderer font = mc.fontRenderer; + + this.rotationYaw = -mc.thePlayer.rotationYaw; + this.rotationPitch = mc.thePlayer.rotationPitch; + + float pX = (float) (this.prevPosX + (this.posX - this.prevPosX) * (double) interp - interpPosX); + float pY = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double) interp - interpPosY); + float pZ = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - interpPosZ); + + GL11.glTranslatef(pX, pY, pZ); + GL11.glRotatef(this.rotationYaw, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(this.rotationPitch, 1.0F, 0.0F, 0.0F); + GL11.glScalef(-1.0F, -1.0F, 1.0F); + + GL11.glScaled(particleScale * 0.01, particleScale * 0.01, particleScale * 0.01); + + font.drawStringWithShadow(text, -(int) (font.getStringWidth(text) * 0.5F), -(int) (font.FONT_HEIGHT * 0.5F), color); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + + GL11.glPolygonOffset(0.0F, 0.0F); + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java b/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java index f297b315e..99195b6d5 100644 --- a/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java +++ b/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java @@ -1,7 +1,3 @@ package com.hbm.saveddata.satellites; -import net.minecraft.nbt.NBTTagCompound; - -public class SatelliteLunarMiner extends SatelliteMiner { - -} \ No newline at end of file +public class SatelliteLunarMiner extends SatelliteMiner { } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyConductor.java b/src/main/java/com/hbm/tileentity/TileEntityProxyConductor.java index 1c458df9d..1bcbaa6cb 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyConductor.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyConductor.java @@ -1,5 +1,8 @@ package com.hbm.tileentity; +import java.util.ArrayList; +import java.util.List; + import api.hbm.energy.IEnergyConductor; import api.hbm.energy.IPowerNet; import net.minecraft.tileentity.TileEntity; @@ -68,4 +71,17 @@ public class TileEntityProxyConductor extends TileEntityProxyBase implements IEn ((IEnergyConductor)te).setPowerNet(network); } } + + @Override + public List getConnectionPoints() { + + /*TileEntity te = this.getTE(); + + if(te instanceof IEnergyConductor) { + return ((IEnergyConductor)te).getConnectionPoints(); + }*/ + + /* Proxy TE doesn't need to implement proxying here because the conductor main TE already has a network-specific proxying system */ + return new ArrayList(); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java index 878d3ad21..ac6e0f679 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java @@ -25,9 +25,10 @@ import com.hbm.tileentity.TileEntityLoadedBase; import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyGenerator; +import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -public class TileEntityMachineCoal extends TileEntityLoadedBase implements ISidedInventory, IEnergyGenerator, IFluidContainer, IFluidAcceptor { +public class TileEntityMachineCoal extends TileEntityLoadedBase implements ISidedInventory, IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver { private ItemStack slots[]; @@ -224,6 +225,8 @@ public class TileEntityMachineCoal extends TileEntityLoadedBase implements ISide for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + + this.updateStandardPipes(Fluids.WATER, worldObj, xCoord, yCoord, zCoord); //Water tank.loadTank(0, 3, slots); @@ -335,4 +338,9 @@ public class TileEntityMachineCoal extends TileEntityLoadedBase implements ISide public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] {tank}; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java index 8449ef2c6..780abe209 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java @@ -83,6 +83,9 @@ public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implement recipes.put("ingotGold", new ItemStack(ModItems.ingot_au198)); recipes.put("nuggetGold", new ItemStack(ModItems.nugget_au198)); recipes.put("dustGold", new ItemStack(ModItems.powder_au198)); + recipes.put("ingotThorium", new ItemStack(ModItems.ingot_thorium_fuel)); + recipes.put("nuggetThorium", new ItemStack(ModItems.nugget_thorium_fuel)); + recipes.put("billetThorium", new ItemStack(ModItems.billet_thorium_fuel)); recipes.put(new ComparableStack(Blocks.brown_mushroom), new ItemStack(ModBlocks.mush)); recipes.put(new ComparableStack(Blocks.red_mushroom), new ItemStack(ModBlocks.mush)); recipes.put(new ComparableStack(Items.mushroom_stew), new ItemStack(ModItems.glowing_stew)); diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index 22d291929..3759d41db 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -14,12 +14,14 @@ import com.hbm.lib.Library; import com.hbm.main.ModEventHandler; import com.hbm.tileentity.TileEntityMachineBase; +import api.hbm.fluid.IFluidStandardSender; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.EnumSkyBlock; +import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcceptor, IFluidSource { +public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcceptor, IFluidSource, IFluidStandardSender { public FluidTank tank; public short mode = 0; @@ -52,6 +54,8 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc tank.unloadTank(4, 5, slots); tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); + this.sendFluid(tank.getTankType(), worldObj, xCoord, yCoord - 1, zCoord, ForgeDirection.DOWN); + age++; if(age >= 20) age = 0; @@ -200,4 +204,9 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc nbt.setShort("mode", mode); tank.writeToNBT(nbt, "tank"); } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] {tank}; + } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityConnector.java b/src/main/java/com/hbm/tileentity/network/TileEntityConnector.java index 122e71ae5..18908ba92 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityConnector.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityConnector.java @@ -3,8 +3,6 @@ package com.hbm.tileentity.network; import java.util.ArrayList; import java.util.List; -import api.hbm.energy.IEnergyConductor; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Vec3; import net.minecraftforge.common.util.ForgeDirection; diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPipeBaseNT.java b/src/main/java/com/hbm/tileentity/network/TileEntityPipeBaseNT.java index 826a62809..0f43b2c2e 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityPipeBaseNT.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPipeBaseNT.java @@ -12,7 +12,7 @@ import net.minecraftforge.common.util.ForgeDirection; public class TileEntityPipeBaseNT extends TileEntity implements IFluidConductor { private IPipeNet network; - protected FluidType type = Fluids.NONE; + protected FluidType type = Fluids.WATER; @Override public void updateEntity() { diff --git a/src/main/java/com/hbm/tileentity/network/TileEntitySubstation.java b/src/main/java/com/hbm/tileentity/network/TileEntitySubstation.java index bcb29c5e0..6f4235e38 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntitySubstation.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntitySubstation.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; +import api.hbm.energy.IEnergyConductor; import net.minecraft.util.Vec3; public class TileEntitySubstation extends TileEntityPylonBase { @@ -58,4 +59,19 @@ public class TileEntitySubstation extends TileEntityPylonBase { pos.add(new int[] {xCoord + 1, yCoord, zCoord - 2}); return pos; } + + @Override + public boolean hasProxies() { + return true; + } + + @Override + public List getProxies() { + List proxies = new ArrayList(); + proxies.add(IEnergyConductor.getIdentityFromPos(xCoord + 1, yCoord, zCoord + 1)); + proxies.add(IEnergyConductor.getIdentityFromPos(xCoord + 1, yCoord, zCoord - 1)); + proxies.add(IEnergyConductor.getIdentityFromPos(xCoord - 1, yCoord, zCoord + 1)); + proxies.add(IEnergyConductor.getIdentityFromPos(xCoord - 1, yCoord, zCoord - 1)); + return proxies; + } } diff --git a/src/main/java/com/hbm/util/ChatBuilder.java b/src/main/java/com/hbm/util/ChatBuilder.java index 6ed56f8ee..0140af364 100644 --- a/src/main/java/com/hbm/util/ChatBuilder.java +++ b/src/main/java/com/hbm/util/ChatBuilder.java @@ -21,6 +21,11 @@ public class ChatBuilder { return builder; } + public static ChatBuilder startTranslation(String text) { + ChatBuilder builder = new ChatBuilder("").nextTranslation(text); + return builder; + } + public ChatBuilder next(String text) { ChatComponentText append = new ChatComponentText(text); this.last.appendSibling(append); diff --git a/src/main/java/com/hbm/util/Compat.java b/src/main/java/com/hbm/util/Compat.java index 643ef1f91..ed5eb304d 100644 --- a/src/main/java/com/hbm/util/Compat.java +++ b/src/main/java/com/hbm/util/Compat.java @@ -1,8 +1,14 @@ package com.hbm.util; +import java.util.ArrayList; +import java.util.List; + import com.hbm.hazard.HazardRegistry; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTBase; +import net.minecraft.nbt.NBTTagCompound; public class Compat { @@ -62,4 +68,29 @@ public class Compat { return this.rads; } } + + public static List scrapeItemFromME(ItemStack meDrive) { + List stacks = new ArrayList(); + + if(meDrive != null && meDrive.hasTagCompound()) { + NBTTagCompound nbt = meDrive.getTagCompound(); + int types = nbt.getShort("it"); //ITEM_TYPE_TAG + + for(int i = 0; i < types; i++) { + NBTBase stackTag = nbt.getTag("#" + i); + + if(stackTag instanceof NBTTagCompound) { + NBTTagCompound compound = (NBTTagCompound) stackTag; + ItemStack stack = ItemStack.loadItemStackFromNBT(compound); + + int count = nbt.getInteger("@" + i); + stack.stackSize = count; + + stacks.add(stack); + } + } + } + + return stacks; + } } diff --git a/src/main/java/com/hbm/util/ContaminationUtil.java b/src/main/java/com/hbm/util/ContaminationUtil.java index 6e8705b86..1710ff5cf 100644 --- a/src/main/java/com/hbm/util/ContaminationUtil.java +++ b/src/main/java/com/hbm/util/ContaminationUtil.java @@ -1,6 +1,5 @@ package com.hbm.util; -import com.hbm.config.GeneralConfig; import com.hbm.entity.mob.EntityDuck; import com.hbm.entity.mob.EntityNuclearCreeper; import com.hbm.entity.mob.EntityQuackos; @@ -274,7 +273,7 @@ public class ContaminationUtil { return false; } - if(hazard == HazardType.RADIATION && (isRadImmune(entity) || !GeneralConfig.enableRads)) + if(hazard == HazardType.RADIATION && isRadImmune(entity)) return false; switch(hazard) { diff --git a/src/main/java/com/hbm/world/feature/Meteorite.java b/src/main/java/com/hbm/world/feature/Meteorite.java index 17a09054e..3bbd1612a 100644 --- a/src/main/java/com/hbm/world/feature/Meteorite.java +++ b/src/main/java/com/hbm/world/feature/Meteorite.java @@ -6,6 +6,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; +import com.hbm.config.WorldConfig; import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNT; import com.hbm.explosion.ExplosionNukeGeneric; @@ -37,7 +38,7 @@ public class Meteorite { e.attackEntityFrom(ModDamageSource.meteorite, 1000); } - if(GeneralConfig.enableSpecialMeteors) + if(WorldConfig.enableSpecialMeteors) switch(rand.nextInt(300)) { case 0: // Meteor-only tiny meteorite diff --git a/src/main/java/com/hbm/world/feature/OilSpot.java b/src/main/java/com/hbm/world/feature/OilSpot.java index 8b6d0d52b..35fc16e2d 100644 --- a/src/main/java/com/hbm/world/feature/OilSpot.java +++ b/src/main/java/com/hbm/world/feature/OilSpot.java @@ -14,22 +14,32 @@ public class OilSpot { for(int i = 0; i < count; i++) { int rX = x + (int)(world.rand.nextGaussian() * width); int rZ = z + (int)(world.rand.nextGaussian() * width); - int rY = world.getHeightValue(rX, rZ) - 1; + int rY = world.getHeightValue(rX, rZ); - Block ground = world.getBlock(rX, rY, rZ); - - if(ground == Blocks.grass || ground == Blocks.dirt) { - world.setBlock(rX, rY, rZ, world.rand.nextInt(10) == 0 ? ModBlocks.dirt_oily : ModBlocks.dirt_dead); + for(int y = rY; y > rY - 4; y--) { - } else if(ground == Blocks.sand || ground == ModBlocks.ore_oil_sand) { + Block ground = world.getBlock(rX, y, rZ); - if(world.getBlockMetadata(rX, rY, rZ) == 1) - world.setBlock(rX, rY, rZ, ModBlocks.sand_dirty_red); - else - world.setBlock(rX, rY, rZ, ModBlocks.sand_dirty); - - } else if(ground.getMaterial() == Material.leaves) { - world.setBlockToAir(rX, rY, rZ); + if(ground == Blocks.grass || ground == Blocks.dirt) { + world.setBlock(rX, y, rZ, world.rand.nextInt(10) == 0 ? ModBlocks.dirt_oily : ModBlocks.dirt_dead); + break; + + } else if(ground == Blocks.sand || ground == ModBlocks.ore_oil_sand) { + + if(world.getBlockMetadata(rX, y, rZ) == 1) + world.setBlock(rX, y, rZ, ModBlocks.sand_dirty_red); + else + world.setBlock(rX, y, rZ, ModBlocks.sand_dirty); + break; + + } else if(ground == Blocks.stone) { + world.setBlock(rX, y, rZ, ModBlocks.stone_cracked); + break; + + } else if(ground.getMaterial() == Material.leaves) { + world.setBlockToAir(rX, y, rZ); + break; + } } } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 0417bff05..2239157eb 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1061,6 +1061,8 @@ item.chopper_wing.name=Jagdschrauber Seitentragfläche item.cigarette.name=FFI-Markenzigarette item.cinnebar.name=Zinnober item.circuit_aluminium.name=Einfacher Schaltkreis +item.circuit_arsenic.name=Adaptives Chipset +item.circuit_arsenic_raw.name=Arsen-Schaltkreisrohling item.circuit_bismuth.name=Vielfältiges Chipset item.circuit_bismuth_raw.name=Bismuth-Schaltkreisrohling item.circuit_copper.name=Erweiterter Schaltkreis @@ -1608,6 +1610,7 @@ item.ingot_am_mix.name=Reaktorfähiger Americiumbarren item.ingot_am241.name=Americium-241-Barren item.ingot_am242.name=Americium-242-Barren item.ingot_americium_fuel.name=Americiumkernbrennstoffbarren +item.ingot_arsenic.name=Arsenbarren item.ingot_asbestos.name=Asbestplatte item.ingot_au198.name=Gold-198-Barren item.ingot_australium.name=Australiumbarren @@ -1996,6 +1999,7 @@ item.nugget.name=Chicken Nugget item.nugget_am_mix.name=Reaktorfähiges Americiumnugget item.nugget_am241.name=Americium-241-Nugget item.nugget_am242.name=Americium-242-Nugget +item.nugget_arsenic.name=Arsennugget item.nugget_au198.name=Gold-198-Nugget item.nugget_americium_fuel.name=Americiumkernbrennstoffnugget item.nugget_australium.name=Australiumnugget @@ -2262,6 +2266,7 @@ item.powder_xe135.name=Xenon-135-Staub item.powder_xe135_tiny.name=Kleiner Haufen Xenon-135-Staub item.powder_yellowcake.name=Yellowcake item.powder_zirconium.name=Zirkoniumstaub +item.power_net_tool.name=Stromnetz-Analysewerkzeug item.primer_357.name=.357 Magnum-Zündhütchen (x24) item.primer_44.name=.44 Magnum-Zündhütchen (x24) item.primer_50.name=Großkaliber-Zündhütchen (x12) @@ -2536,6 +2541,7 @@ item.schrabidium_shovel.name=Schrabidiumschaufel item.schrabidium_sword.name=Schrabidiumschwert item.scrap.name=Schrott item.scrap_nuclear.name=Radioaktiver Schutt +item.scrap_oil.name=Öliger Schutt item.scrap_plastic.name=Geschreddertes Plastik item.screwdriver.name=Schraubenzieher item.screwdriver_desh.name=Desh-Schraubenzieher diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index d913ffc38..ab6cf8bda 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1272,6 +1272,8 @@ item.chopper_wing.name=Hunter Chopper Wing item.cigarette.name=FFI-Brand Cigarette item.cinnebar.name=Cinnabar item.circuit_aluminium.name=Basic Circuit +item.circuit_arsenic.name=Adaptable Circuit +item.circuit_arsenic_raw.name=Adaptable Circuit Assembly item.circuit_bismuth.name=Versatile Chipset item.circuit_bismuth_raw.name=Versatile Chipset Assembly item.circuit_copper.name=Enhanced Circuit @@ -1839,6 +1841,7 @@ item.ingot_am_mix.name=Reactor Grade Americium Ingot item.ingot_am241.name=Americium-241 Ingot item.ingot_am242.name=Americium-242 Ingot item.ingot_americium_fuel.name=Ingot of Americium Fuel +item.ingot_arsenic.name=Arsenic Ingot item.ingot_asbestos.name=Asbestos Sheet item.ingot_asbestos.desc=§o"Filled with life, self-doubt and asbestos. That comes with the air."§r item.ingot_au198.name=Gold-198 Ingot @@ -2256,6 +2259,7 @@ item.nugget_am_mix.name=Reactor Grade Americium Nugget item.nugget_am241.name=Americium-241 Nugget item.nugget_am242.name=Americium-242 Nugget item.nugget_americium_fuel.name=Americium Fuel Nugget +item.nugget_arsenic.name=Arsenic Nugget item.nugget_au198.name=Gold-198 Nugget item.nugget_australium.name=Australium Nugget item.nugget_australium_greater.name=Greater Australium Nugget @@ -2570,6 +2574,7 @@ item.powder_xe135.name=Xenon-135 Powder item.powder_xe135_tiny.name=Tiny Pile of Xenon-135 Powder item.powder_yellowcake.name=Yellowcake item.powder_zirconium.name=Zirconium Powder +item.power_net_tool.name=Cable Network Analysis Tool item.primer_357.name=.357 Magnum Primer (x24) item.primer_44.name=.44 Magnum Primer (x24) item.primer_50.name=Large Caliber Primer (x12) @@ -2896,6 +2901,7 @@ item.schrabidium_shovel.name=Schrabidium Shovel item.schrabidium_sword.name=Schrabidium Sword item.scrap.name=Scrap item.scrap_nuclear.name=Radioactive Scraps +item.scrap_oil.name=Oily Scraps item.scrap_plastic.name=Plastic Scraps item.screwdriver.name=Screwdriver item.screwdriver.desc=Could be used instead of a fuse... diff --git a/src/main/resources/assets/hbm/lang/ru_RU.lang b/src/main/resources/assets/hbm/lang/ru_RU.lang index a712dae2f..82e173fce 100644 --- a/src/main/resources/assets/hbm/lang/ru_RU.lang +++ b/src/main/resources/assets/hbm/lang/ru_RU.lang @@ -2238,6 +2238,7 @@ tile.ore_bedrock_coltan.name=Бедроковая колтановая руда tile.ore_bedrock_oil.name=Бедроковый нефтяной пласт tile.ore_cobalt.name=Кобальтовая руда tile.stone_porous.name=Пористый камень +tile.ore_random.name=%s руды tile.bobblehead.name=Болванчик tile.deco_titanium.name=Титановый декоративный блок @@ -2369,6 +2370,9 @@ tile.tile_lab_cracked.name=Треснувшая лабораторная пли tile.spikes.name=Шипы tile.stalactite.sulfur.name=Сернистый сталактит tile.stalagmite.sulfur.name=Сернистый сталагмит +tile.stalactite.asbestos.name=Асбестовый сталактит +tile.stalagmite.asbestos.name=Асбестовый сталагмит +tile.stone_resource.asbestos.name=Хризотил tile.stone_resource.sulfur.name=Сернистый камень tile.gas_asbestos.name=Частицы асбеста в воздухе tile.gas_flammable.name=Горючий газ @@ -4172,6 +4176,7 @@ item.crucible.name="Горнило Палача" item.bismuth_pickaxe.name=Висмутовая кирка tile.red_cable.name=Провод из красной меди +tile.red_cable_classic.name=Провод из красной меди (Старый) tile.red_connector.name=Электрический коннектор tile.block_meteor.name=Блок метеорита @@ -4357,6 +4362,7 @@ item.canned_kerosene.name=Консервированный керосин item.canned_recursion.name=Консервированная рекурсия item.canned_bark.name=Консервы вяленой сосновой коры item.spongebob_macaroni.name=Сырные макаронны "Губка Боб" +item.can_mug.name=MUG Root Beer item.can_key.name=Винтовой ключ item.nugget.name=Куриный наггетс item.marshmallow.name=Зефир на палочке diff --git a/src/main/resources/assets/hbm/textures/blocks/stone_cracked.png b/src/main/resources/assets/hbm/textures/blocks/stone_cracked.png new file mode 100644 index 000000000..2e76ed911 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/stone_cracked.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/nei/gui_nei.png b/src/main/resources/assets/hbm/textures/gui/nei/gui_nei.png index 48188cfd4..ecdd69550 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/nei/gui_nei.png and b/src/main/resources/assets/hbm/textures/gui/nei/gui_nei.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bucket_sulfuric_acid.png b/src/main/resources/assets/hbm/textures/items/bucket_sulfuric_acid.png new file mode 100644 index 000000000..d1863b06d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bucket_sulfuric_acid.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_arsenic.png b/src/main/resources/assets/hbm/textures/items/circuit_arsenic.png new file mode 100644 index 000000000..142a7f4a4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit_arsenic.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_arsenic_raw.png b/src/main/resources/assets/hbm/textures/items/circuit_arsenic_raw.png new file mode 100644 index 000000000..55b308cf7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/circuit_arsenic_raw.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_arsenic.png b/src/main/resources/assets/hbm/textures/items/ingot_arsenic.png new file mode 100644 index 000000000..6b4123871 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ingot_arsenic.png differ diff --git a/src/main/resources/assets/hbm/textures/items/nugget_arsenic.png b/src/main/resources/assets/hbm/textures/items/nugget_arsenic.png new file mode 100644 index 000000000..a59ba3521 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/nugget_arsenic.png differ diff --git a/src/main/resources/assets/hbm/textures/items/power_net_tool.png b/src/main/resources/assets/hbm/textures/items/power_net_tool.png new file mode 100644 index 000000000..8a333cbf0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/power_net_tool.png differ diff --git a/src/main/resources/assets/hbm/textures/items/scrap_oil.png b/src/main/resources/assets/hbm/textures/items/scrap_oil.png new file mode 100644 index 000000000..ede661e8f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/scrap_oil.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_speed_1.png b/src/main/resources/assets/hbm/textures/items/upgrade_speed_1.png index 902d2c17c..8c34c4fbf 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_speed_1.png and b/src/main/resources/assets/hbm/textures/items/upgrade_speed_1.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_speed_2.png b/src/main/resources/assets/hbm/textures/items/upgrade_speed_2.png index 5268b5b2c..e26b47aa6 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_speed_2.png and b/src/main/resources/assets/hbm/textures/items/upgrade_speed_2.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_speed_3.png b/src/main/resources/assets/hbm/textures/items/upgrade_speed_3.png index 3ff8c0fcc..33a2f865f 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_speed_3.png and b/src/main/resources/assets/hbm/textures/items/upgrade_speed_3.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_template.png b/src/main/resources/assets/hbm/textures/items/upgrade_template.png index 7521f2a9b..2440ecca9 100644 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_template.png and b/src/main/resources/assets/hbm/textures/items/upgrade_template.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_template_alt.png b/src/main/resources/assets/hbm/textures/items/upgrade_template_alt.png new file mode 100644 index 000000000..7521f2a9b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/upgrade_template_alt.png differ