From d3b559bd6165ed4f0125fb1a2d48681f5bf376d4 Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 22 Aug 2023 21:10:24 +0200 Subject: [PATCH 1/8] finished PWR ports, recipes --- .../java/com/hbm/blocks/machine/BlockPWR.java | 176 +++++++++++++++--- .../java/com/hbm/main/CraftingManager.java | 10 + .../hbm/tileentity/TileEntityMachineBase.java | 10 +- .../machine/TileEntityPWRController.java | 16 ++ 4 files changed, 178 insertions(+), 34 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/BlockPWR.java b/src/main/java/com/hbm/blocks/machine/BlockPWR.java index d30541e60..eeecb464a 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockPWR.java +++ b/src/main/java/com/hbm/blocks/machine/BlockPWR.java @@ -17,8 +17,11 @@ import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; +import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; @@ -94,7 +97,7 @@ public class BlockPWR extends BlockContainer implements IBlockCT { super.breakBlock(world, x, y, z, block, meta); } - public static class TileEntityBlockPWR extends TileEntity implements IFluidConnector { + public static class TileEntityBlockPWR extends TileEntity implements IFluidConnector, ISidedInventory { public Block block; public int coreX; @@ -108,18 +111,14 @@ public class BlockPWR extends BlockContainer implements IBlockCT { if(worldObj.getTotalWorldTime() % 20 == 0 && block != null) { - if(worldObj.getChunkProvider().chunkExists(coreX >> 4, coreZ >> 4)) { - - TileEntity tile = worldObj.getTileEntity(coreX, coreY, coreZ); - - if(tile instanceof TileEntityPWRController) { - TileEntityPWRController controller = (TileEntityPWRController) tile; - if(!controller.assembled) { - this.getBlockType().breakBlock(worldObj, xCoord, yCoord, zCoord, this.getBlockType(), this.getBlockMetadata()); - } - } else { + TileEntityPWRController controller = getCore(); + + if(controller != null) { + if(!controller.assembled) { this.getBlockType().breakBlock(worldObj, xCoord, yCoord, zCoord, this.getBlockType(), this.getBlockMetadata()); } + } else if(worldObj.getChunkProvider().chunkExists(coreX >> 4, coreZ >> 4)) { + this.getBlockType().breakBlock(worldObj, xCoord, yCoord, zCoord, this.getBlockType(), this.getBlockMetadata()); } } } @@ -157,21 +156,33 @@ public class BlockPWR extends BlockContainer implements IBlockCT { this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); } } + + public TileEntityPWRController cachedCore; + + protected TileEntityPWRController getCore() { + + if(cachedCore != null && !cachedCore.isInvalid()) return cachedCore; + + if(worldObj.getChunkProvider().chunkExists(coreX >> 4, coreZ >> 4)) { + + TileEntity tile = worldObj.getTileEntity(coreX, coreY, coreZ); + if(tile instanceof TileEntityPWRController) { + TileEntityPWRController controller = (TileEntityPWRController) tile; + cachedCore = controller; + return controller; + } + } + + return null; + } @Override public long transferFluid(FluidType type, int pressure, long fluid) { if(this.getBlockMetadata() != 1) return fluid; if(block == null) return fluid; - - if(worldObj.getChunkProvider().chunkExists(coreX >> 4, coreZ >> 4)) { - - TileEntity tile = worldObj.getTileEntity(coreX, coreY, coreZ); - if(tile instanceof TileEntityPWRController) { - TileEntityPWRController controller = (TileEntityPWRController) tile; - return controller.transferFluid(type, pressure, fluid); - } - } + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.transferFluid(type, pressure, fluid); return fluid; } @@ -181,15 +192,8 @@ public class BlockPWR extends BlockContainer implements IBlockCT { if(this.getBlockMetadata() != 1) return 0; if(block == null) return 0; - - if(worldObj.getChunkProvider().chunkExists(coreX >> 4, coreZ >> 4)) { - - TileEntity tile = worldObj.getTileEntity(coreX, coreY, coreZ); - if(tile instanceof TileEntityPWRController) { - TileEntityPWRController controller = (TileEntityPWRController) tile; - return controller.getDemand(type, pressure); - } - } + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.getDemand(type, pressure); return 0; } @@ -198,5 +202,119 @@ public class BlockPWR extends BlockContainer implements IBlockCT { public boolean canConnect(FluidType type, ForgeDirection dir) { return this.getBlockMetadata() == 1; } + + @Override + public int getSizeInventory() { + + if(this.getBlockMetadata() != 1) return 0; + if(block == null) return 0; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.getSizeInventory(); + + return 0; + } + + @Override + public ItemStack getStackInSlot(int slot) { + + if(this.getBlockMetadata() != 1) return null; + if(block == null) return null; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.getStackInSlot(slot); + + return null; + } + + @Override + public ItemStack decrStackSize(int slot, int amount) { + + if(this.getBlockMetadata() != 1) return null; + if(block == null) return null; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.decrStackSize(slot, amount); + + return null; + } + + @Override + public ItemStack getStackInSlotOnClosing(int slot) { + + if(this.getBlockMetadata() != 1) return null; + if(block == null) return null; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.getStackInSlotOnClosing(slot); + + return null; + } + + @Override + public void setInventorySlotContents(int slot, ItemStack stack) { + + if(this.getBlockMetadata() != 1) return; + if(block == null) return; + TileEntityPWRController controller = this.getCore(); + if(controller != null) controller.setInventorySlotContents(slot, stack); + } + + @Override + public int getInventoryStackLimit() { + + if(this.getBlockMetadata() != 1) return 0; + if(block == null) return 0; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.getInventoryStackLimit(); + + return 0; + } + + @Override public boolean isUseableByPlayer(EntityPlayer player) { return false; } + @Override public void openInventory() { } + @Override public void closeInventory() { } + @Override public String getInventoryName() { return ""; } + @Override public boolean hasCustomInventoryName() { return false; } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + + if(this.getBlockMetadata() != 1) return false; + if(block == null) return false; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.isItemValidForSlot(slot, stack); + + return false; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + + if(this.getBlockMetadata() != 1) return new int[0]; + if(block == null) return new int[0]; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.getAccessibleSlotsFromSide(side); + + return new int[0]; + } + + @Override + public boolean canInsertItem(int slot, ItemStack stack, int side) { + + if(this.getBlockMetadata() != 1) return false; + if(block == null) return false; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.canInsertItem(slot, stack, side); + + return false; + } + + @Override + public boolean canExtractItem(int slot, ItemStack stack, int side) { + + if(this.getBlockMetadata() != 1) return false; + if(block == null) return false; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.canExtractItem(slot, stack, side); + + return false; + } } } diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 90dc90185..9e478904b 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -874,6 +874,16 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.rbmk_steam_outlet, 1), new Object[] { "SCS", "CBC", "SCS", 'S', STEEL.ingot(), 'C', CU.plate(), 'B', ModItems.tank_steel }); //addRecipeAuto(new ItemStack(ModBlocks.rbmk_heatex, 1), new Object[] { "SCS", "CBC", "SCS", 'S', STEEL.ingot(), 'C', CU.plate(), 'B', ModItems.pipes_steel }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_fuel, 4), new Object[] { "LZL", "LZL", "LZL", 'L', PB.plate528(), 'Z', ZR.plateCast() }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_control, 4), new Object[] { "SBS", "MBM", "SBS", 'S', STEEL.plate528(), 'B', B.ingot(), 'M', ModItems.motor }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_channel, 4), new Object[] { "CPC", "BPB", "CPC", 'C', CU.ingot(), 'P', ModBlocks.deco_pipe_quad, 'B', ANY_PLASTIC.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_heatex, 4), new Object[] { "CSC", "SMS", "CSC", 'C', CU.plateCast(), 'S', STEEL.plate528(), 'M', ModItems.motor }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_reflector, 4), new Object[] { "RLR", "LSL", "RLR", 'R', OreDictManager.getReflector(), 'L', PB.plate528(), 'S', STEEL.plateCast() }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_casing, 4), new Object[] { "LCL", "CSC", "LCL", 'L', PB.plate528(), 'C', ANY_CONCRETE.any(), 'S', STEEL.plateCast() }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_controller, 1), new Object[] { "CPC", "PSP", "CPC", 'C', ModBlocks.pwr_casing, 'P', ANY_PLASTIC.ingot(), 'S', ModItems.circuit_gold }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_port, 1), new Object[] { "S", "C", "S", 'S', STEEL.plate(), 'C', ModBlocks.pwr_casing }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_neutron_source, 1), new Object[] { "LRL", "ZRZ", "LRL", 'L', PB.plate528(), 'R', ModItems.billet_ra226be, 'Z', ZR.plateCast() }); + addRecipeAuto(new ItemStack(ModBlocks.deco_rbmk, 8), new Object[] { "R", 'R', ModBlocks.rbmk_blank }); addRecipeAuto(new ItemStack(ModBlocks.deco_rbmk_smooth, 1), new Object[] { "R", 'R', ModBlocks.deco_rbmk }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_blank, 1), new Object[] { "RRR", "R R", "RRR", 'R', ModBlocks.deco_rbmk }); diff --git a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java index 58c6d15e0..996a216b9 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java @@ -96,7 +96,7 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme public void closeInventory() {} @Override - public boolean isItemValidForSlot(int i, ItemStack itemStack) { + public boolean isItemValidForSlot(int slot, ItemStack itemStack) { return false; } @@ -122,17 +122,17 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme } @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); + public boolean canInsertItem(int slot, ItemStack itemStack, int side) { + return this.isItemValidForSlot(slot, itemStack); } @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { + public boolean canExtractItem(int slot, ItemStack itemStack, int side) { return false; } @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { + public int[] getAccessibleSlotsFromSide(int side) { return new int[] { }; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index e50143a6b..44fd69cf8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -350,6 +350,22 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG public double getXOverE(double x, double d) { return 1 - Math.pow(Math.E, -x / d); } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + if(slot == 0) return stack.getItem() == ModItems.pwr_fuel; + return false; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] {0, 1}; + } + + @Override + public boolean canExtractItem(int slot, ItemStack itemStack, int side) { + return slot == 1; + } @Override public void readFromNBT(NBTTagCompound nbt) { From 3ebf9899a417725f66e0884b9e7337f1bc1ab378 Mon Sep 17 00:00:00 2001 From: Vaern Date: Tue, 22 Aug 2023 20:48:17 -0700 Subject: [PATCH 2/8] h --- src/main/java/com/hbm/blocks/ModBlocks.java | 248 ++++++++++---------- 1 file changed, 124 insertions(+), 124 deletions(-) diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 371268c24..a0d0675d5 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1411,40 +1411,40 @@ public class ModBlocks { crystal_robust = new BlockCrystal(Material.glass).setBlockName("crystal_robust").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":crystal_robust"); crystal_trixite = new BlockCrystal(Material.glass).setBlockName("crystal_trixite").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(1.0F).setBlockTextureName(RefStrings.MODID + ":crystal_trixite"); - block_uranium = new BlockHazard().makeBeaconable().setBlockName("block_uranium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_uranium"); - block_u233 = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_u233").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_u233"); - block_u235 = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_u235").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_u235"); - block_u238 = new BlockHazard().makeBeaconable().setBlockName("block_u238").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_u238"); - block_uranium_fuel = new BlockHazard().makeBeaconable().setBlockName("block_uranium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_uranium_fuel"); - block_thorium = new BlockHazard().makeBeaconable().setBlockName("block_thorium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_thorium"); - block_thorium_fuel = new BlockHazard().makeBeaconable().setBlockName("block_thorium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_thorium_fuel"); - block_neptunium = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_neptunium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_neptunium"); - block_polonium = new BlockHotHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_polonium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_polonium"); - block_mox_fuel = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_mox_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_mox_fuel"); - block_plutonium = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_plutonium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_plutonium"); - block_pu238 = new BlockHotHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_pu238").setCreativeTab(MainRegistry.blockTab).setLightLevel(5F/15F).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_pu238"); - block_pu239 = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_pu239").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_pu239"); - block_pu240 = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_pu240").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_pu240"); - block_pu_mix = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_pu_mix").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_pu_mix"); - block_plutonium_fuel = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_plutonium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_plutonium_fuel"); - block_titanium = new BlockBeaconable(Material.iron).setBlockName("block_titanium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_titanium"); + block_uranium = new BlockHazard().makeBeaconable().setBlockName("block_uranium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_uranium"); + block_u233 = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_u233").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_u233"); + block_u235 = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_u235").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_u235"); + block_u238 = new BlockHazard().makeBeaconable().setBlockName("block_u238").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_u238"); + block_uranium_fuel = new BlockHazard().makeBeaconable().setBlockName("block_uranium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_uranium_fuel"); + block_thorium = new BlockHazard().makeBeaconable().setBlockName("block_thorium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_thorium"); + block_thorium_fuel = new BlockHazard().makeBeaconable().setBlockName("block_thorium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_thorium_fuel"); + block_neptunium = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_neptunium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":block_neptunium"); + block_polonium = new BlockHotHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_polonium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_polonium"); + block_mox_fuel = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_mox_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_mox_fuel"); + block_plutonium = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_plutonium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_plutonium"); + block_pu238 = new BlockHotHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_pu238").setCreativeTab(MainRegistry.blockTab).setLightLevel(5F/15F).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_pu238"); + block_pu239 = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_pu239").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_pu239"); + block_pu240 = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_pu240").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_pu240"); + block_pu_mix = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_pu_mix").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_pu_mix"); + block_plutonium_fuel = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_plutonium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_plutonium_fuel"); + block_titanium = new BlockBeaconable(Material.iron).setBlockName("block_titanium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_titanium"); block_sulfur = new BlockBeaconable(Material.iron).setBlockName("block_sulfur").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_sulfur"); block_niter = new BlockBeaconable(Material.iron).setBlockName("block_niter").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_niter"); - block_niter_reinforced = new BlockBeaconable(Material.iron).setBlockName("block_niter_reinforced").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":block_niter_reinforced"); - block_copper = new BlockBeaconable(Material.iron).setBlockName("block_copper").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_copper"); - block_red_copper = new BlockBeaconable(Material.iron).setBlockName("block_red_copper").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_red_copper"); - block_tungsten = new BlockBeaconable(Material.iron).setBlockName("block_tungsten").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_tungsten"); - block_aluminium = new BlockBeaconable(Material.iron).setBlockName("block_aluminium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_aluminium"); + block_niter_reinforced = new BlockBeaconable(Material.iron).setBlockName("block_niter_reinforced").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":block_niter_reinforced"); + block_copper = new BlockBeaconable(Material.iron).setBlockName("block_copper").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":block_copper"); + block_red_copper = new BlockBeaconable(Material.iron).setBlockName("block_red_copper").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(25.0F).setBlockTextureName(RefStrings.MODID + ":block_red_copper"); + block_tungsten = new BlockBeaconable(Material.iron).setBlockName("block_tungsten").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":block_tungsten"); + block_aluminium = new BlockBeaconable(Material.iron).setBlockName("block_aluminium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":block_aluminium"); block_fluorite = new BlockBeaconable(Material.iron).setBlockName("block_fluorite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_fluorite"); - block_steel = new BlockBeaconable(Material.iron).setBlockName("block_steel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); - block_tcalloy = new BlockBeaconable(Material.iron).setBlockName("block_tcalloy").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_tcalloy"); - block_cdalloy = new BlockBeaconable(Material.iron).setBlockName("block_cdalloy").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_cdalloy"); - block_lead = new BlockBeaconable(Material.iron).setBlockName("block_lead").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_lead"); - block_bismuth = new BlockBeaconable(Material.iron).setBlockName("block_bismuth").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_bismuth"); - block_cadmium = new BlockBeaconable(Material.iron).setBlockName("block_cadmium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_cadmium"); - block_coltan = new BlockBeaconable(Material.iron).setBlockName("block_coltan").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_coltan"); - block_tantalium = new BlockBeaconable(Material.iron).setBlockName("block_tantalium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_tantalium"); - block_niobium = new BlockBeaconable(Material.iron).setBlockName("block_niobium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F); + block_steel = new BlockBeaconable(Material.iron).setBlockName("block_steel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); + block_tcalloy = new BlockBeaconable(Material.iron).setBlockName("block_tcalloy").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(70.0F).setBlockTextureName(RefStrings.MODID + ":block_tcalloy"); + block_cdalloy = new BlockBeaconable(Material.iron).setBlockName("block_cdalloy").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(70.0F).setBlockTextureName(RefStrings.MODID + ":block_cdalloy"); + block_lead = new BlockBeaconable(Material.iron).setBlockName("block_lead").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_lead"); + block_bismuth = new BlockBeaconable(Material.iron).setBlockName("block_bismuth").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(90.0F).setBlockTextureName(RefStrings.MODID + ":block_bismuth"); + block_cadmium = new BlockBeaconable(Material.iron).setBlockName("block_cadmium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(90.0F).setBlockTextureName(RefStrings.MODID + ":block_cadmium"); + block_coltan = new BlockBeaconable(Material.iron).setBlockName("block_coltan").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_coltan"); + block_tantalium = new BlockBeaconable(Material.iron).setBlockName("block_tantalium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_tantalium"); + block_niobium = new BlockBeaconable(Material.iron).setBlockName("block_niobium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F); block_trinitite = new BlockHazard().makeBeaconable().setBlockName("block_trinitite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_trinitite"); block_waste = new BlockNuclearWaste().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_waste").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_waste"); block_waste_painted = new BlockNuclearWaste().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_waste_painted").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_waste_painted"); @@ -1454,8 +1454,8 @@ public class ModBlocks { block_corium_cobble = new BlockOutgas(Material.iron, true, 1, true, true).setBlockName("block_corium_cobble").setCreativeTab(MainRegistry.blockTab).setHardness(100.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":block_corium_cobble"); block_scrap = new BlockFalling(Material.sand).setBlockName("block_scrap").setCreativeTab(MainRegistry.blockTab).setHardness(2.5F).setResistance(5.0F).setStepSound(Block.soundTypeGravel).setBlockTextureName(RefStrings.MODID + ":block_scrap"); block_electrical_scrap = new BlockFalling(Material.iron).setBlockName("block_electrical_scrap").setCreativeTab(MainRegistry.blockTab).setHardness(2.5F).setResistance(5.0F).setStepSound(Block.soundTypeMetal).setBlockTextureName(RefStrings.MODID + ":electrical_scrap_alt2"); - block_beryllium = new BlockBeaconable(Material.iron).setBlockName("block_beryllium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_beryllium"); - block_schraranium = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.SCHRAB).setBlockName("block_schraranium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schraranium"); + block_beryllium = new BlockBeaconable(Material.iron).setBlockName("block_beryllium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":block_beryllium"); + block_schraranium = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.SCHRAB).setBlockName("block_schraranium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(250.0F).setBlockTextureName(RefStrings.MODID + ":block_schraranium"); block_schrabidium = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.SCHRAB).setBlockName("block_schrabidium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidium"); block_schrabidate = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.SCHRAB).setBlockName("block_schrabidate").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidate"); block_solinium = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.SCHRAB).setBlockName("block_solinium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_solinium"); @@ -1464,22 +1464,22 @@ public class ModBlocks { block_dineutronium = new BlockBeaconable(Material.iron).setBlockName("block_dineutronium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":block_dineutronium"); block_schrabidium_cluster = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":block_schrabidium_cluster_top").setBlockName("block_schrabidium_cluster").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidium_cluster_side"); block_euphemium_cluster = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":block_euphemium_cluster_top").setBlockName("block_euphemium_cluster").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":block_euphemium_cluster_side"); - block_advanced_alloy = new BlockBeaconable(Material.iron).setBlockName("block_advanced_alloy").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_advanced_alloy"); - block_magnetized_tungsten = new BlockBeaconable(Material.iron).setBlockName("block_magnetized_tungsten").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(35.0F).setBlockTextureName(RefStrings.MODID + ":block_magnetized_tungsten"); + block_advanced_alloy = new BlockBeaconable(Material.iron).setBlockName("block_advanced_alloy").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":block_advanced_alloy"); + block_magnetized_tungsten = new BlockBeaconable(Material.iron).setBlockName("block_magnetized_tungsten").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(75.0F).setBlockTextureName(RefStrings.MODID + ":block_magnetized_tungsten"); block_combine_steel = new BlockBeaconable(Material.iron).setBlockName("block_combine_steel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_combine_steel"); - block_desh = new BlockBeaconable(Material.iron).setBlockName("block_desh").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_desh"); - block_dura_steel = new BlockBeaconable(Material.iron).setBlockName("block_dura_steel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_dura_steel"); - block_starmetal = new BlockBeaconable(Material.iron).setBlockName("block_starmetal").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_starmetal"); + block_desh = new BlockBeaconable(Material.iron).setBlockName("block_desh").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":block_desh"); + block_dura_steel = new BlockBeaconable(Material.iron).setBlockName("block_dura_steel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":block_dura_steel"); + block_starmetal = new BlockBeaconable(Material.iron).setBlockName("block_starmetal").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(400.0F).setBlockTextureName(RefStrings.MODID + ":block_starmetal"); block_polymer = new BlockBeaconable(Material.rock).setBlockName("block_polymer").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypePiston).setHardness(3.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_polymer"); - block_bakelite = new BlockBeaconable(Material.rock).setBlockName("block_bakelite").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypePiston).setHardness(3.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_bakelite"); - block_rubber = new BlockBeaconable(Material.rock).setBlockName("block_rubber").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypePiston).setHardness(3.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_rubber"); - block_yellowcake = new BlockHazardFalling().makeBeaconable().setBlockName("block_yellowcake").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeSand).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_yellowcake"); + block_bakelite = new BlockBeaconable(Material.rock).setBlockName("block_bakelite").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypePiston).setHardness(3.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":block_bakelite"); + block_rubber = new BlockBeaconable(Material.rock).setBlockName("block_rubber").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypePiston).setHardness(3.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":block_rubber"); + block_yellowcake = new BlockHazardFalling().makeBeaconable().setBlockName("block_yellowcake").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeSand).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_yellowcake"); block_insulator = new BlockRotatablePillar(Material.cloth, RefStrings.MODID + ":block_insulator_top").setBlockName("block_insulator").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_insulator_side"); - block_fiberglass = new BlockRotatablePillar(Material.cloth, RefStrings.MODID + ":block_fiberglass_top").setBlockName("block_fiberglass").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_fiberglass_side"); - block_asbestos = new BlockOutgas(Material.cloth, true, 5, true).setBlockName("block_asbestos").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_asbestos"); - block_cobalt = new BlockBeaconable(Material.iron).setBlockName("block_cobalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_cobalt"); + block_fiberglass = new BlockRotatablePillar(Material.cloth, RefStrings.MODID + ":block_fiberglass_top").setBlockName("block_fiberglass").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":block_fiberglass_side"); + block_asbestos = new BlockOutgas(Material.cloth, true, 5, true).setBlockName("block_asbestos").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":block_asbestos"); + block_cobalt = new BlockBeaconable(Material.iron).setBlockName("block_cobalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_cobalt"); block_lithium = new BlockLithium(Material.iron).setBlockName("block_lithium").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_lithium"); - block_zirconium = new BlockBeaconable(Material.iron).setBlockName("block_zirconium").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_zirconium"); + block_zirconium = new BlockBeaconable(Material.iron).setBlockName("block_zirconium").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_zirconium"); block_white_phosphorus = new BlockHazard(Material.rock).makeBeaconable().setBlockName("block_white_phosphorus").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_white_phosphorus"); block_red_phosphorus = new BlockHazardFalling().makeBeaconable().setStepSound(Block.soundTypeSand).setBlockName("block_red_phosphorus").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_red_phosphorus"); block_fallout = new BlockHazardFalling().setStepSound(Block.soundTypeGravel).setBlockName("block_fallout").setCreativeTab(MainRegistry.blockTab).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":ash"); @@ -1501,7 +1501,7 @@ public class ModBlocks { block_tritium = new BlockRotatablePillar(Material.glass, RefStrings.MODID + ":block_tritium_top").setBlockName("block_tritium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGlass).setHardness(3.0F).setResistance(2.0F).setBlockTextureName(RefStrings.MODID + ":block_tritium_side"); block_semtex = new BlockPlasticExplosive(Material.tnt).setBlockName("block_semtex").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(2.0F).setBlockTextureName(RefStrings.MODID + ":block_semtex"); block_c4 = new BlockPlasticExplosive(Material.tnt).setBlockName("block_c4").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(2.0F).setBlockTextureName(RefStrings.MODID + ":block_c4"); - block_smore = new BlockPillar(Material.rock, RefStrings.MODID + ":block_smore_top").setBlockName("block_smore").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":block_smore_side"); + block_smore = new BlockPillar(Material.rock, RefStrings.MODID + ":block_smore_top").setBlockName("block_smore").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_smore_side"); block_slag = new BlockSlag(Material.rock).setBlockName("block_slag").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeStone).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_slag"); block_australium = new BlockBeaconable(Material.iron).setBlockName("block_australium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_australium"); @@ -1528,30 +1528,30 @@ public class ModBlocks { 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"); + deco_rbmk = new BlockGeneric(Material.iron).setBlockName("deco_rbmk").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(100.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(100.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_top"); deco_emitter = new BlockEmitter().setBlockName("deco_emitter").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":emitter"); part_emitter = new PartEmitter().setBlockName("part_emitter").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":part_top"); deco_loot = new BlockLoot().setBlockName("deco_loot").setCreativeTab(null).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); bobblehead = new BlockBobble().setBlockName("bobblehead").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); snowglobe = new BlockSnowglobe().setBlockName("snowglobe").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":glass_boron"); - hazmat = new BlockGeneric(Material.cloth).setBlockName("hazmat").setStepSound(Block.soundTypeCloth).setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":hazmat"); + hazmat = new BlockGeneric(Material.cloth).setBlockName("hazmat").setStepSound(Block.soundTypeCloth).setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":hazmat"); - gravel_obsidian = new BlockFalling(Material.iron).setBlockName("gravel_obsidian").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGravel).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":gravel_obsidian"); + gravel_obsidian = new BlockFalling(Material.iron).setBlockName("gravel_obsidian").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGravel).setHardness(5.0F).setResistance(240.0F).setBlockTextureName(RefStrings.MODID + ":gravel_obsidian"); gravel_diamond = new BlockFalling(Material.sand).setBlockName("gravel_diamond").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGravel).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":gravel_diamond"); - asphalt = new BlockSpeedy(Material.rock, 1.5).setBlockName("asphalt").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":asphalt"); - asphalt_light = new BlockSpeedy(Material.rock, 1.5).setBlockName("asphalt_light").setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(15.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":asphalt_light"); + asphalt = new BlockSpeedy(Material.rock, 1.5).setBlockName("asphalt").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(120.0F).setBlockTextureName(RefStrings.MODID + ":asphalt"); + asphalt_light = new BlockSpeedy(Material.rock, 1.5).setBlockName("asphalt_light").setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(15.0F).setResistance(120.0F).setBlockTextureName(RefStrings.MODID + ":asphalt_light"); - reinforced_brick = new BlockGeneric(Material.rock).setBlockName("reinforced_brick").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(8000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_brick"); - reinforced_glass = new BlockNTMGlassCT(0, RefStrings.MODID + ":reinforced_glass", Material.rock).setBlockName("reinforced_glass").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(200.0F); + reinforced_brick = new BlockGeneric(Material.rock).setBlockName("reinforced_brick").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_brick"); + reinforced_glass = new BlockNTMGlassCT(0, RefStrings.MODID + ":reinforced_glass", Material.rock).setBlockName("reinforced_glass").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(25.0F); reinforced_glass_pane = new BlockNTMGlassPane(0, RefStrings.MODID + ":reinforced_glass_pane", RefStrings.MODID + ":reinforced_glass_pane_edge", Material.rock, false).setBlockName("reinforced_glass_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(1).setHardness(15.0F).setResistance(200.0F); - reinforced_light = new BlockGeneric(Material.rock).setBlockName("reinforced_light").setCreativeTab(MainRegistry.blockTab).setLightLevel(1.0F).setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_light"); - reinforced_sand = new BlockGeneric(Material.rock).setBlockName("reinforced_sand").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(400.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_sand"); - reinforced_lamp_off = new ReinforcedLamp(Material.rock, false).setBlockName("reinforced_lamp_off").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_off"); - reinforced_lamp_on = new ReinforcedLamp(Material.rock, true).setBlockName("reinforced_lamp_on").setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_on"); - reinforced_laminate = new BlockNTMGlassCT(1, RefStrings.MODID + ":reinforced_laminate", Material.rock, true).setBlockName("reinforced_laminate").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(1000.0F); - reinforced_laminate_pane = new BlockNTMGlassPane(1, RefStrings.MODID + ":reinforced_laminate_pane", RefStrings.MODID + ":reinforced_laminate_pane_edge", Material.rock, true).setBlockName("reinforced_laminate_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(1).setHardness(15.0F).setResistance(1000.0F); + reinforced_light = new BlockGeneric(Material.rock).setBlockName("reinforced_light").setCreativeTab(MainRegistry.blockTab).setLightLevel(1.0F).setHardness(15.0F).setResistance(80.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_light"); + reinforced_sand = new BlockGeneric(Material.rock).setBlockName("reinforced_sand").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(40.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_sand"); + reinforced_lamp_off = new ReinforcedLamp(Material.rock, false).setBlockName("reinforced_lamp_off").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(80.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_off"); + reinforced_lamp_on = new ReinforcedLamp(Material.rock, true).setBlockName("reinforced_lamp_on").setHardness(15.0F).setResistance(80.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_on"); + reinforced_laminate = new BlockNTMGlassCT(1, RefStrings.MODID + ":reinforced_laminate", Material.rock, true).setBlockName("reinforced_laminate").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(300.0F); + reinforced_laminate_pane = new BlockNTMGlassPane(1, RefStrings.MODID + ":reinforced_laminate_pane", RefStrings.MODID + ":reinforced_laminate_pane_edge", Material.rock, true).setBlockName("reinforced_laminate_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(1).setHardness(15.0F).setResistance(300.0F); lamp_tritium_green_off = new ReinforcedLamp(Material.redstoneLight, false).setBlockName("lamp_tritium_green_off").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_green_off"); lamp_tritium_green_on = new ReinforcedLamp(Material.redstoneLight, true).setBlockName("lamp_tritium_green_on").setStepSound(Block.soundTypeGlass).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_green_on"); @@ -1564,32 +1564,32 @@ public class ModBlocks { lantern = new BlockLantern().setBlockName("lantern").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); lantern_behemoth = new BlockLanternBehemoth().setBlockName("lantern_behemoth").setStepSound(Block.soundTypeMetal).setCreativeTab(null).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":block_rust"); - reinforced_stone = new BlockGeneric(Material.rock).setBlockName("reinforced_stone").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(3000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_stone"); - concrete_smooth = new BlockRadResistant(Material.rock).setBlockName("concrete_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete"); - concrete_colored = new BlockConcreteColored(Material.rock).setBlockName("concrete_colored").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete"); - concrete_colored_ext = new BlockConcreteColoredExt(Material.rock).setBlockName("concrete_colored_ext").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_colored_ext"); - concrete = new BlockGeneric(Material.rock).setBlockName("concrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_tile"); - concrete_asbestos = new BlockGeneric(Material.rock).setBlockName("concrete_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_asbestos"); - concrete_super = new BlockUberConcrete().setBlockName("concrete_super").setCreativeTab(MainRegistry.blockTab).setHardness(150.0F).setResistance(10000.0F); + reinforced_stone = new BlockGeneric(Material.rock).setBlockName("reinforced_stone").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_stone"); + concrete_smooth = new BlockRadResistant(Material.rock).setBlockName("concrete_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(140.0F).setBlockTextureName(RefStrings.MODID + ":concrete"); + concrete_colored = new BlockConcreteColored(Material.rock).setBlockName("concrete_colored").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(140.0F).setBlockTextureName(RefStrings.MODID + ":concrete"); + concrete_colored_ext = new BlockConcreteColoredExt(Material.rock).setBlockName("concrete_colored_ext").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(140.0F).setBlockTextureName(RefStrings.MODID + ":concrete_colored_ext"); + concrete = new BlockGeneric(Material.rock).setBlockName("concrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(140.0F).setBlockTextureName(RefStrings.MODID + ":concrete_tile"); + concrete_asbestos = new BlockGeneric(Material.rock).setBlockName("concrete_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(150.0F).setBlockTextureName(RefStrings.MODID + ":concrete_asbestos"); + concrete_super = new BlockUberConcrete().setBlockName("concrete_super").setCreativeTab(MainRegistry.blockTab).setHardness(150.0F).setResistance(1000.0F); concrete_super_broken = new BlockFalling(Material.rock).setBlockName("concrete_super_broken").setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":concrete_super_broken"); - concrete_pillar = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":concrete_pillar_top").setBlockName("concrete_pillar").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_pillar_side"); - brick_concrete = new BlockGeneric(Material.rock).setBlockName("brick_concrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(5000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); - brick_concrete_mossy = new BlockGeneric(Material.rock).setBlockName("brick_concrete_mossy").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(5000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_mossy"); - brick_concrete_cracked = new BlockGeneric(Material.rock).setBlockName("brick_concrete_cracked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(2000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_cracked"); - brick_concrete_broken = new BlockGeneric(Material.rock).setBlockName("brick_concrete_broken").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(1500.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_broken"); - brick_concrete_marked = new BlockWriting(Material.rock, RefStrings.MODID + ":brick_concrete").setBlockName("brick_concrete_marked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(1500.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_marked"); - brick_obsidian = new BlockGeneric(Material.rock).setBlockName("brick_obsidian").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(8000.0F).setBlockTextureName(RefStrings.MODID + ":brick_obsidian"); - brick_light = new BlockGeneric(Material.rock).setBlockName("brick_light").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":brick_light"); - brick_compound = new BlockGeneric(Material.rock).setBlockName("brick_compound").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(10000.0F).setBlockTextureName(RefStrings.MODID + ":brick_compound"); - cmb_brick = new BlockGeneric(Material.rock).setBlockName("cmb_brick").setCreativeTab(MainRegistry.blockTab).setHardness(25.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":cmb_brick"); - cmb_brick_reinforced = new BlockGeneric(Material.rock).setBlockName("cmb_brick_reinforced").setCreativeTab(MainRegistry.blockTab).setHardness(25.0F).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":cmb_brick_reinforced"); + concrete_pillar = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":concrete_pillar_top").setBlockName("concrete_pillar").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(180.0F).setBlockTextureName(RefStrings.MODID + ":concrete_pillar_side"); + brick_concrete = new BlockGeneric(Material.rock).setBlockName("brick_concrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(160.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); + brick_concrete_mossy = new BlockGeneric(Material.rock).setBlockName("brick_concrete_mossy").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(160.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_mossy"); + brick_concrete_cracked = new BlockGeneric(Material.rock).setBlockName("brick_concrete_cracked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_cracked"); + brick_concrete_broken = new BlockGeneric(Material.rock).setBlockName("brick_concrete_broken").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(45.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_broken"); + brick_concrete_marked = new BlockWriting(Material.rock, RefStrings.MODID + ":brick_concrete").setBlockName("brick_concrete_marked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(160.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_marked"); + brick_obsidian = new BlockGeneric(Material.rock).setBlockName("brick_obsidian").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(2400.0F).setBlockTextureName(RefStrings.MODID + ":brick_obsidian"); + brick_light = new BlockGeneric(Material.rock).setBlockName("brick_light").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":brick_light"); + brick_compound = new BlockGeneric(Material.rock).setBlockName("brick_compound").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(400.0F).setBlockTextureName(RefStrings.MODID + ":brick_compound"); + cmb_brick = new BlockGeneric(Material.rock).setBlockName("cmb_brick").setCreativeTab(MainRegistry.blockTab).setHardness(25.0F).setResistance(5000.0F).setBlockTextureName(RefStrings.MODID + ":cmb_brick"); + cmb_brick_reinforced = new BlockGeneric(Material.rock).setBlockName("cmb_brick_reinforced").setCreativeTab(MainRegistry.blockTab).setHardness(25.0F).setResistance(50000.0F).setBlockTextureName(RefStrings.MODID + ":cmb_brick_reinforced"); brick_asbestos = new BlockOutgas(Material.rock, true, 5, true).setBlockName("brick_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":brick_asbestos"); - brick_fire = new BlockGeneric(Material.rock).setBlockName("brick_fire").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(160.0F).setBlockTextureName(RefStrings.MODID + ":brick_fire"); + brick_fire = new BlockGeneric(Material.rock).setBlockName("brick_fire").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(35.0F).setBlockTextureName(RefStrings.MODID + ":brick_fire"); - ducrete_smooth = new BlockGeneric(Material.rock).setBlockName("ducrete_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(20.0F).setResistance(8000.0F).setBlockTextureName(RefStrings.MODID + ":ducrete"); - ducrete = new BlockGeneric(Material.rock).setBlockName("ducrete").setCreativeTab(MainRegistry.blockTab).setHardness(20.0F).setResistance(8000.0F).setBlockTextureName(RefStrings.MODID + ":ducrete_tile"); - brick_ducrete = new BlockGeneric(Material.rock).setBlockName("brick_ducrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(12000.0F).setBlockTextureName(RefStrings.MODID + ":brick_ducrete"); - reinforced_ducrete = new BlockGeneric(Material.rock).setBlockName("reinforced_ducrete").setCreativeTab(MainRegistry.blockTab).setHardness(20.0F).setResistance(24000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_ducrete"); + ducrete_smooth = new BlockGeneric(Material.rock).setBlockName("ducrete_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(20.0F).setResistance(500.0F).setBlockTextureName(RefStrings.MODID + ":ducrete"); + ducrete = new BlockGeneric(Material.rock).setBlockName("ducrete").setCreativeTab(MainRegistry.blockTab).setHardness(20.0F).setResistance(500.0F).setBlockTextureName(RefStrings.MODID + ":ducrete_tile"); + brick_ducrete = new BlockGeneric(Material.rock).setBlockName("brick_ducrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(750.0F).setBlockTextureName(RefStrings.MODID + ":brick_ducrete"); + reinforced_ducrete = new BlockGeneric(Material.rock).setBlockName("reinforced_ducrete").setCreativeTab(MainRegistry.blockTab).setHardness(20.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_ducrete"); concrete_slab = new BlockMultiSlab(null, Material.rock, concrete_smooth, concrete, concrete_asbestos, ducrete_smooth, ducrete).setBlockName("concrete_slab").setCreativeTab(MainRegistry.blockTab); concrete_double_slab = new BlockMultiSlab(concrete_slab, Material.rock, concrete_smooth, concrete, concrete_asbestos, ducrete_smooth, ducrete).setBlockName("concrete_double_slab").setCreativeTab(MainRegistry.blockTab); @@ -1616,7 +1616,7 @@ public class ModBlocks { brick_asbestos_stairs = new BlockGenericStairs(brick_asbestos, 0).setBlockName("brick_asbestos_stairs").setCreativeTab(MainRegistry.blockTab); brick_fire_stairs = new BlockGenericStairs(brick_fire, 0).setBlockName("brick_fire_stairs").setCreativeTab(MainRegistry.blockTab); - vinyl_tile = new BlockEnumMulti(Material.rock, TileType.class, true, true).setBlockName("vinyl_tile").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(120.0F).setBlockTextureName(RefStrings.MODID + ":vinyl_tile"); + vinyl_tile = new BlockEnumMulti(Material.rock, TileType.class, true, true).setBlockName("vinyl_tile").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":vinyl_tile"); tile_lab = new BlockOutgas(Material.rock, false, 5, true).setBlockName("tile_lab").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":tile_lab"); tile_lab_cracked = new BlockOutgas(Material.rock, false, 5, true).setBlockName("tile_lab_cracked").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":tile_lab_cracked"); @@ -1628,30 +1628,30 @@ 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).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"); - meteor_brick_cracked = new BlockGeneric(Material.rock).setBlockName("meteor_brick_cracked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_brick_cracked"); - meteor_brick_chiseled = new BlockGeneric(Material.rock).setBlockName("meteor_brick_chiseled").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_brick_chiseled"); - meteor_pillar = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":meteor_pillar_top").setBlockName("meteor_pillar").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_pillar"); - meteor_spawner = new BlockCybercrab(Material.rock).setBlockName("meteor_spawner").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F); - meteor_battery = new BlockPillar(Material.rock, RefStrings.MODID + ":meteor_power").setBlockName("meteor_battery").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_spawner_side"); + block_meteor = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor"); + block_meteor_cobble = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor_cobble").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.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(360.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(360.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(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_treasure"); + meteor_polished = new BlockGeneric(Material.rock).setBlockName("meteor_polished").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_polished"); + meteor_brick = new BlockGeneric(Material.rock).setBlockName("meteor_brick").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_brick"); + meteor_brick_mossy = new BlockGeneric(Material.rock).setBlockName("meteor_brick_mossy").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_brick_mossy"); + meteor_brick_cracked = new BlockGeneric(Material.rock).setBlockName("meteor_brick_cracked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_brick_cracked"); + meteor_brick_chiseled = new BlockGeneric(Material.rock).setBlockName("meteor_brick_chiseled").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_brick_chiseled"); + meteor_pillar = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":meteor_pillar_top").setBlockName("meteor_pillar").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_pillar"); + meteor_spawner = new BlockCybercrab(Material.rock).setBlockName("meteor_spawner").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F); + meteor_battery = new BlockPillar(Material.rock, RefStrings.MODID + ":meteor_power").setBlockName("meteor_battery").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_spawner_side"); moon_turf = new BlockFalling(Material.sand).setBlockName("moon_turf").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":moon_turf"); - brick_jungle = new BlockGeneric(Material.rock).setBlockName("brick_jungle").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle"); - brick_jungle_cracked = new BlockGeneric(Material.rock).setBlockName("brick_jungle_cracked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_cracked"); - brick_jungle_fragile = new FragileBrick(Material.rock).setBlockName("brick_jungle_fragile").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_fragile"); - brick_jungle_lava = new BlockGeneric(Material.rock).setBlockName("brick_jungle_lava").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setLightLevel(5F/15F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_lava"); - brick_jungle_ooze = new BlockOre(Material.rock).setBlockName("brick_jungle_ooze").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setLightLevel(5F/15F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_ooze"); - brick_jungle_mystic = new BlockOre(Material.rock).setBlockName("brick_jungle_mystic").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setLightLevel(5F/15F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_mystic"); - brick_jungle_trap = new TrappedBrick(Material.rock).setBlockName("brick_jungle_trap").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_trap"); - brick_jungle_glyph = new BlockGlyph(Material.rock).setBlockName("brick_jungle_glyph").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F); - brick_jungle_circle = new BlockBallsSpawner(Material.rock).setBlockName("brick_jungle_circle").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_circle"); + brick_jungle = new BlockGeneric(Material.rock).setBlockName("brick_jungle").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle"); + brick_jungle_cracked = new BlockGeneric(Material.rock).setBlockName("brick_jungle_cracked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_cracked"); + brick_jungle_fragile = new FragileBrick(Material.rock).setBlockName("brick_jungle_fragile").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_fragile"); + brick_jungle_lava = new BlockGeneric(Material.rock).setBlockName("brick_jungle_lava").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setLightLevel(5F/15F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_lava"); + brick_jungle_ooze = new BlockOre(Material.rock).setBlockName("brick_jungle_ooze").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setLightLevel(5F/15F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_ooze"); + brick_jungle_mystic = new BlockOre(Material.rock).setBlockName("brick_jungle_mystic").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setLightLevel(5F/15F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_mystic"); + brick_jungle_trap = new TrappedBrick(Material.rock).setBlockName("brick_jungle_trap").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_trap"); + brick_jungle_glyph = new BlockGlyph(Material.rock).setBlockName("brick_jungle_glyph").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F); + brick_jungle_circle = new BlockBallsSpawner(Material.rock).setBlockName("brick_jungle_circle").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_circle"); brick_dungeon = new BlockGeneric(Material.rock).setBlockName("brick_dungeon").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_dungeon"); brick_dungeon_flat = new BlockGeneric(Material.rock).setBlockName("brick_dungeon_flat").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_dungeon_flat"); @@ -1776,27 +1776,27 @@ public class ModBlocks { observer_off = new BlockObserver(Material.iron, false).setBlockName("observer_off").setStepSound(Block.soundTypeStone).setHardness(2.0F); observer_on = new BlockObserver(Material.iron, true).setBlockName("observer_on").setStepSound(Block.soundTypeStone).setHardness(2.0F); - nuke_gadget = new NukeGadget(Material.iron).setBlockName("nuke_gadget").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":theGadget"); - nuke_boy = new NukeBoy(Material.iron).setBlockName("nuke_boy").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":lilBoy"); - nuke_man = new NukeMan(Material.iron).setBlockName("nuke_man").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":fatMan"); - nuke_mike = new NukeMike(Material.iron).setBlockName("nuke_mike").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":ivyMike"); - nuke_tsar = new NukeTsar(Material.iron).setBlockName("nuke_tsar").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":tsarBomba"); - nuke_fleija = new NukeFleija(Material.iron).setBlockName("nuke_fleija").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":fleija"); - nuke_prototype = new NukePrototype(Material.iron).setBlockName("nuke_prototype").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":prototype"); - nuke_custom = new NukeCustom(Material.iron).setBlockName("nuke_custom").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":custom"); - nuke_solinium = new NukeSolinium(Material.iron).setBlockName("nuke_solinium").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":nuke_solinium"); - nuke_n2 = new NukeN2(Material.iron).setBlockName("nuke_n2").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":nuke_n2"); - nuke_n45 = new NukeN45(Material.iron).setBlockName("nuke_n45").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":code"); - nuke_fstbmb = new NukeBalefire(Material.iron).setBlockName("nuke_fstbmb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":nuke_fstbmb"); + nuke_gadget = new NukeGadget(Material.iron).setBlockName("nuke_gadget").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":theGadget"); + nuke_boy = new NukeBoy(Material.iron).setBlockName("nuke_boy").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":lilBoy"); + nuke_man = new NukeMan(Material.iron).setBlockName("nuke_man").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":fatMan"); + nuke_mike = new NukeMike(Material.iron).setBlockName("nuke_mike").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":ivyMike"); + nuke_tsar = new NukeTsar(Material.iron).setBlockName("nuke_tsar").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":tsarBomba"); + nuke_fleija = new NukeFleija(Material.iron).setBlockName("nuke_fleija").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":fleija"); + nuke_prototype = new NukePrototype(Material.iron).setBlockName("nuke_prototype").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200).setBlockTextureName(RefStrings.MODID + ":prototype"); + nuke_custom = new NukeCustom(Material.iron).setBlockName("nuke_custom").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":custom"); + nuke_solinium = new NukeSolinium(Material.iron).setBlockName("nuke_solinium").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":nuke_solinium"); + nuke_n2 = new NukeN2(Material.iron).setBlockName("nuke_n2").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":nuke_n2"); + nuke_n45 = new NukeN45(Material.iron).setBlockName("nuke_n45").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":code"); + nuke_fstbmb = new NukeBalefire(Material.iron).setBlockName("nuke_fstbmb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":nuke_fstbmb"); - bomb_multi = new BombMulti(Material.iron).setBlockName("bomb_multi").setCreativeTab(MainRegistry.nukeTab).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":bomb_multi1"); + bomb_multi = new BombMulti(Material.iron).setBlockName("bomb_multi").setCreativeTab(MainRegistry.nukeTab).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":bomb_multi1"); //bomb_multi_large = new BombMultiLarge(Material.iron).setBlockName("bomb_multi_large").setCreativeTab(MainRegistry.tabNuke).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":bomb_multi_large"); - flame_war = new BombFlameWar(Material.iron).setBlockName("flame_war").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":flame_war"); - float_bomb = new BombFloat(Material.iron).setBlockName("float_bomb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F); - therm_endo = new BombThermo(Material.iron).setBlockName("therm_endo").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F); - therm_exo = new BombThermo(Material.iron).setBlockName("therm_exo").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F); - emp_bomb = new BombFloat(Material.iron).setBlockName("emp_bomb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F); + flame_war = new BombFlameWar(Material.iron).setBlockName("flame_war").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":flame_war"); + float_bomb = new BombFloat(Material.iron).setBlockName("float_bomb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F); + therm_endo = new BombThermo(Material.iron).setBlockName("therm_endo").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F); + therm_exo = new BombThermo(Material.iron).setBlockName("therm_exo").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F); + emp_bomb = new BombFloat(Material.iron).setBlockName("emp_bomb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F); det_cord = new DetCord(Material.iron).setBlockName("det_cord").setCreativeTab(MainRegistry.nukeTab).setHardness(0.1F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":det_cord"); det_charge = new ExplosiveCharge(Material.iron).setBlockName("det_charge").setCreativeTab(MainRegistry.nukeTab).setHardness(0.1F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":det_charge"); det_nuke = new ExplosiveCharge(Material.iron).setBlockName("det_nuke").setCreativeTab(MainRegistry.nukeTab).setHardness(0.1F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":det_nuke"); From fb3f08acd5c3b8fe6098e40091ffdfa38f8293e7 Mon Sep 17 00:00:00 2001 From: Vaern Date: Tue, 22 Aug 2023 21:07:59 -0700 Subject: [PATCH 3/8] it took half an hour cuz gitkraken, the repo, and the av shat themselves what a modern wonder --- src/main/java/com/hbm/main/CraftingManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 9e478904b..18a1e1f49 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -387,7 +387,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.brick_light, 4), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.fence, 'B', Blocks.brick_block }); addRecipeAuto(new ItemStack(ModBlocks.brick_asbestos, 2), new Object[] { " A ", "ABA", " A ", 'B', ModBlocks.brick_light, 'A', ASBESTOS.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.concrete, 4), new Object[] { "CC", "CC", 'C', ModBlocks.concrete_smooth }); - addRecipeAuto(new ItemStack(ModBlocks.concrete_pillar, 8), new Object[] { "CBC", "CBC", "CBC", 'C', ModBlocks.concrete_smooth, 'B', Blocks.iron_bars }); + addRecipeAuto(new ItemStack(ModBlocks.concrete_pillar, 6), new Object[] { "CBC", "CBC", "CBC", 'C', ModBlocks.concrete_smooth, 'B', Blocks.iron_bars }); addRecipeAuto(new ItemStack(ModBlocks.brick_concrete, 4), new Object[] { " C ", "CBC", " C ", 'C', ModBlocks.concrete_smooth, 'B', Items.clay_ball }); addRecipeAuto(new ItemStack(ModBlocks.brick_concrete, 4), new Object[] { " C ", "CBC", " C ", 'C', ModBlocks.concrete, 'B', Items.clay_ball }); addRecipeAuto(new ItemStack(ModBlocks.brick_concrete_mossy, 8), new Object[] { "CCC", "CVC", "CCC", 'C', ModBlocks.brick_concrete, 'V', Blocks.vine }); From 5cc3d389060b230ec3e085c255cc613a714369a7 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 23 Aug 2023 15:50:20 +0200 Subject: [PATCH 4/8] wabba dee --- changelog | 7 +++- src/main/java/com/hbm/blocks/ModBlocks.java | 36 +++++++++--------- .../hbm/blocks/machine/BlockGenericPWR.java | 22 +++++++++++ .../hbm/blocks/machine/BlockPillarPWR.java | 21 ++++++++++ .../blocks/machine/MachinePWRController.java | 9 ++++- .../hbm/entity/effect/EntityNukeTorex.java | 2 +- .../java/com/hbm/inventory/fluid/Fluids.java | 23 ++++++++++- .../inventory/fluid/trait/FT_Coolable.java | 1 + .../inventory/fluid/trait/FT_Heatable.java | 1 + .../inventory/recipes/CentrifugeRecipes.java | 6 +-- .../inventory/recipes/ChemplantRecipes.java | 7 ++++ .../inventory/recipes/CombinationRecipes.java | 1 + .../recipes/LiquefactionRecipes.java | 1 + .../hbm/inventory/recipes/MixerRecipes.java | 3 +- .../recipes/SolidificationRecipes.java | 1 + src/main/resources/assets/hbm/lang/de_DE.lang | 9 ++++- src/main/resources/assets/hbm/lang/en_US.lang | 26 +++++++++++++ .../assets/hbm/textures/gui/fluids/sodium.png | Bin 0 -> 703 bytes .../hbm/textures/gui/fluids/sodium_hot.png | Bin 0 -> 707 bytes .../hbm/textures/gui/fluids/throium_salt.png | Bin 0 -> 748 bytes .../gui/fluids/throium_salt_depleted.png | Bin 0 -> 695 bytes .../textures/gui/fluids/throium_salt_hot.png | Bin 0 -> 697 bytes .../textures/items/chem_icon_THORIUM_SALT.png | Bin 0 -> 394 bytes 23 files changed, 148 insertions(+), 28 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/BlockGenericPWR.java create mode 100644 src/main/java/com/hbm/blocks/machine/BlockPillarPWR.java create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/sodium.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/sodium_hot.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/throium_salt.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/throium_salt_depleted.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/throium_salt_hot.png create mode 100644 src/main/resources/assets/hbm/textures/items/chem_icon_THORIUM_SALT.png diff --git a/changelog b/changelog index 404c55913..868f93cb8 100644 --- a/changelog +++ b/changelog @@ -5,8 +5,11 @@ * Relatively easy to build and safe to operate * Does not use any tile entity rendering and all math is pre-calculated when the reactor is assembled, making this one even more performant than the old large reactor * Sodalite - * A gem that can be extracted from fluorite ore - * Can be heated in the combination oven to make sodium dust and chlorine + * A gem that can be extracted from fluorite or lapis ore + * Can be heated in the combination oven to make sodium and chlorine +* Liquid sodium + * Valid PWR coolant with high efficiency rating + * Made by liquefacting sodium ## Changed * Bedrock fluorite ore now yields actual ore instead of fluorite directly diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 371268c24..0cf1da849 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2047,14 +2047,14 @@ public class ModBlocks { cm_port = new BlockCMPort(Material.iron, EnumCMMaterials.class, true, true).setBlockName("cm_port").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_port"); custom_machine = new BlockCustomMachine().setBlockName("custom_machine").setCreativeTab(MainRegistry.machineTab).setLightLevel(1F).setHardness(5.0F).setResistance(10.0F); - pwr_fuel = new BlockPillar(Material.iron, RefStrings.MODID + ":pwr_fuel_top").setBlockName("pwr_fuel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_fuel_side"); - pwr_control = new BlockPillar(Material.iron, RefStrings.MODID + ":pwr_control_top").setBlockName("pwr_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_control_side"); - pwr_channel = new BlockPillar(Material.iron, RefStrings.MODID + ":pwr_channel_top").setBlockName("pwr_channel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_channel_side"); - pwr_heatex = new BlockGeneric(Material.iron).setBlockName("pwr_heatex").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_heatex"); - pwr_neutron_source = new BlockGeneric(Material.iron).setBlockName("pwr_neutron_source").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_neutron_source"); - pwr_reflector = new BlockGeneric(Material.iron).setBlockName("pwr_reflector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_reflector"); - pwr_casing = new BlockGeneric(Material.iron).setBlockName("pwr_casing").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_casing"); - pwr_port = new BlockGeneric(Material.iron).setBlockName("pwr_port").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_port"); + pwr_fuel = new BlockPillarPWR(Material.iron, RefStrings.MODID + ":pwr_fuel_top").setBlockName("pwr_fuel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_fuel_side"); + pwr_control = new BlockPillarPWR(Material.iron, RefStrings.MODID + ":pwr_control_top").setBlockName("pwr_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_control_side"); + pwr_channel = new BlockPillarPWR(Material.iron, RefStrings.MODID + ":pwr_channel_top").setBlockName("pwr_channel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_channel_side"); + pwr_heatex = new BlockGenericPWR(Material.iron).setBlockName("pwr_heatex").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_heatex"); + pwr_neutron_source = new BlockGenericPWR(Material.iron).setBlockName("pwr_neutron_source").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_neutron_source"); + pwr_reflector = new BlockGenericPWR(Material.iron).setBlockName("pwr_reflector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_reflector"); + pwr_casing = new BlockGenericPWR(Material.iron).setBlockName("pwr_casing").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_casing"); + pwr_port = new BlockGenericPWR(Material.iron).setBlockName("pwr_port").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_port"); pwr_controller = new MachinePWRController(Material.iron).setBlockName("pwr_controller").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_casing_blank"); pwr_block = new BlockPWR(Material.iron).setBlockName("pwr_block").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_block"); @@ -3389,16 +3389,16 @@ public class ModBlocks { register(cm_port); //PWR - GameRegistry.registerBlock(pwr_fuel, pwr_fuel.getUnlocalizedName()); - GameRegistry.registerBlock(pwr_control, pwr_control.getUnlocalizedName()); - GameRegistry.registerBlock(pwr_channel, pwr_channel.getUnlocalizedName()); - GameRegistry.registerBlock(pwr_heatex, pwr_heatex.getUnlocalizedName()); - GameRegistry.registerBlock(pwr_neutron_source, pwr_neutron_source.getUnlocalizedName()); - GameRegistry.registerBlock(pwr_reflector, pwr_reflector.getUnlocalizedName()); - GameRegistry.registerBlock(pwr_casing, pwr_casing.getUnlocalizedName()); - GameRegistry.registerBlock(pwr_port, pwr_port.getUnlocalizedName()); - GameRegistry.registerBlock(pwr_controller, pwr_controller.getUnlocalizedName()); - GameRegistry.registerBlock(pwr_block, pwr_block.getUnlocalizedName()); + register(pwr_fuel); + register(pwr_control); + register(pwr_channel); + register(pwr_heatex); + register(pwr_neutron_source); + register(pwr_reflector); + register(pwr_casing); + register(pwr_port); + register(pwr_controller); + register(pwr_block); //Multiblock Generators GameRegistry.registerBlock(reactor_element, reactor_element.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/BlockGenericPWR.java b/src/main/java/com/hbm/blocks/machine/BlockGenericPWR.java new file mode 100644 index 000000000..d94d06697 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockGenericPWR.java @@ -0,0 +1,22 @@ +package com.hbm.blocks.machine; + +import java.util.List; + +import com.hbm.blocks.ITooltipProvider; +import com.hbm.blocks.generic.BlockGeneric; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + +public class BlockGenericPWR extends BlockGeneric implements ITooltipProvider { + + public BlockGenericPWR(Material material) { + super(material); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/BlockPillarPWR.java b/src/main/java/com/hbm/blocks/machine/BlockPillarPWR.java new file mode 100644 index 000000000..691578a45 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockPillarPWR.java @@ -0,0 +1,21 @@ +package com.hbm.blocks.machine; + +import java.util.List; + +import com.hbm.blocks.ITooltipProvider; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + +public class BlockPillarPWR extends BlockPillar implements ITooltipProvider { + + public BlockPillarPWR(Material mat, String top) { + super(mat, top); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachinePWRController.java b/src/main/java/com/hbm/blocks/machine/MachinePWRController.java index 045822100..1f2580451 100644 --- a/src/main/java/com/hbm/blocks/machine/MachinePWRController.java +++ b/src/main/java/com/hbm/blocks/machine/MachinePWRController.java @@ -1,8 +1,10 @@ package com.hbm.blocks.machine; import java.util.HashMap; +import java.util.List; import java.util.Map.Entry; +import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.BlockPWR.TileEntityBlockPWR; import com.hbm.lib.RefStrings; @@ -30,7 +32,7 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class MachinePWRController extends BlockContainer { +public class MachinePWRController extends BlockContainer implements ITooltipProvider { @SideOnly(Side.CLIENT) private IIcon iconFront; @@ -198,4 +200,9 @@ public class MachinePWRController extends BlockContainer { if(block == ModBlocks.pwr_casing || block == ModBlocks.pwr_reflector || block == ModBlocks.pwr_port) return true; return false; } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java index 8e0ef45f1..71ed35d93 100644 --- a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java +++ b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java @@ -84,7 +84,7 @@ public class EntityNukeTorex extends Entity { if(ticksExisted < 50) { int cloudCount = ticksExisted * 5; - int shockLife = 200 - ticksExisted * 9 / 10; + int shockLife = Math.max(300 - ticksExisted * 20, 50); for(int i = 0; i < cloudCount; i++) { Vec3 vec = Vec3.createVectorHelper((ticksExisted * 2 + rand.nextDouble()) * 2, 0, 0); diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 2ad14ed42..db2c231f5 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -157,6 +157,11 @@ public class Fluids { public static FluidType SMOKE_POISON; public static FluidType HELIUM4; public static FluidType HEAVYWATER_HOT; + public static FluidType SODIUM; + public static FluidType SODIUM_HOT; + public static FluidType THORIUM_SALT; + public static FluidType THORIUM_SALT_HOT; + public static FluidType THORIUM_SALT_DEPLETED; private static final HashMap idMapping = new HashMap(); private static final HashMap nameMapping = new HashMap(); @@ -313,7 +318,12 @@ public class Fluids { SMOKE_LEADED = new FluidType("SMOKE_LEADED", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(GASEOUS, NOID, NOCON); SMOKE_POISON = new FluidType("SMOKE_POISON", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(GASEOUS, NOID, NOCON); HELIUM4 = new FluidType("HELIUM4", 0xE54B0A, 0, 0, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS); - HEAVYWATER_HOT = new FluidType(124, "HEAVYWATER_HOT",0x4D007B, 1, 0, 0, EnumSymbol.NONE).setTemp(600).addTraits(LIQUID); + HEAVYWATER_HOT = new FluidType("HEAVYWATER_HOT", 0x4D007B, 1, 0, 0, EnumSymbol.NONE).setTemp(600).addTraits(LIQUID); + SODIUM = new FluidType("SODIUM", 0xCCD4D5, 1, 2, 3, EnumSymbol.NONE).setTemp(400).addTraits(LIQUID); + SODIUM_HOT = new FluidType("SODIUM_HOT", 0xE2ADC1, 1, 2, 3, EnumSymbol.NONE).setTemp(1200).addTraits(LIQUID); + THORIUM_SALT = new FluidType("THORIUM_SALT", 0x7A5542, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID); + THORIUM_SALT_HOT = new FluidType("THORIUM_SALT_HOT", 0x3E3627, 2, 0, 3, EnumSymbol.NONE).setTemp(1600).addTraits(LIQUID); + THORIUM_SALT_DEPLETED = new FluidType(129, "THORIUM_SALT_DEPLETED", 0x302D1C, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID); // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE @@ -342,6 +352,11 @@ public class Fluids { metaOrder.add(MUG_HOT); metaOrder.add(BLOOD); metaOrder.add(BLOOD_HOT); + metaOrder.add(SODIUM); + metaOrder.add(SODIUM_HOT); + metaOrder.add(THORIUM_SALT); + metaOrder.add(THORIUM_SALT_HOT); + metaOrder.add(THORIUM_SALT_DEPLETED); //pure elements, cyogenic gasses metaOrder.add(HYDROGEN); metaOrder.add(DEUTERIUM); @@ -505,6 +520,12 @@ public class Fluids { HEAVYWATER.addTraits(new FT_Heatable().setEff(HeatingType.PWR, 1.0D).addStep(300, 1, HEAVYWATER_HOT, 1), new FT_PWRModerator(1.25D)); HEAVYWATER_HOT.addTraits(new FT_Coolable(HEAVYWATER, 1, 1, 300).setEff(CoolingType.HEATEXCHANGER, 1.0D)); + SODIUM.addTraits(new FT_Heatable().setEff(HeatingType.PWR, 2.5D).addStep(400, 1, SODIUM_HOT, 1)); + SODIUM_HOT.addTraits(new FT_Coolable(SODIUM, 1, 1, 400).setEff(CoolingType.HEATEXCHANGER, 1.0D)); + + THORIUM_SALT.addTraits(new FT_Heatable().setEff(HeatingType.PWR, 1.0D).addStep(400, 1, THORIUM_SALT_HOT, 1), new FT_PWRModerator(2.5D)); + THORIUM_SALT_HOT.addTraits(new FT_Coolable(THORIUM_SALT_DEPLETED, 1, 1, 400).setEff(CoolingType.HEATEXCHANGER, 1.0D)); + if(idMapping.size() != metaOrder.size()) { throw new IllegalStateException("A severe error has occoured during NTM's fluid registering process! The MetaOrder and Mappings are inconsistent! Mapping size: " + idMapping.size()+ " / MetaOrder size: " + metaOrder.size()); } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java index f25e77c35..0f0404916 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java @@ -42,6 +42,7 @@ public class FT_Coolable extends FluidTrait { @Override public void addInfoHidden(List info) { + info.add(EnumChatFormatting.AQUA + "Thermal capacity: " + heatEnergy + " TU"); for(CoolingType type : CoolingType.values()) { double eff = getEfficiency(type); diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java index a10192c29..989915a46 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java @@ -42,6 +42,7 @@ public class FT_Heatable extends FluidTrait { @Override public void addInfoHidden(List info) { + info.add(EnumChatFormatting.AQUA + "Thermal capacity: " + this.getFirstStep().heatReq + " TU"); for(HeatingType type : HeatingType.values()) { double eff = getEfficiency(type); diff --git a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java index 1f1aa97ea..4f2bfe922 100644 --- a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java @@ -339,9 +339,9 @@ public class CentrifugeRecipes extends SerializableRecipe { new ItemStack(Blocks.end_stone, 1) }); recipes.put(new OreDictStack(LAPIS.ore()), new ItemStack[] { - new ItemStack(ModItems.powder_lapis, 3), - new ItemStack(ModItems.powder_lapis, 3), + new ItemStack(ModItems.powder_lapis, 6), new ItemStack(ModItems.powder_cobalt_tiny, 1), + new ItemStack(ModItems.gem_sodalite, 1), new ItemStack(Blocks.gravel, 1) }); recipes.put(new ComparableStack(ModBlocks.ore_meteor_starmetal), new ItemStack[] { @@ -452,7 +452,7 @@ public class CentrifugeRecipes extends SerializableRecipe { recipes.put(new ComparableStack(ModItems.crystal_iron), new ItemStack[] { new ItemStack(ModItems.powder_iron, 2), new ItemStack(ModItems.powder_iron, 2), new ItemStack(ModItems.powder_titanium, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_gold), new ItemStack[] { new ItemStack(ModItems.powder_gold, 2), new ItemStack(ModItems.powder_gold, 2), new ItemStack(ModItems.ingot_mercury, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_redstone), new ItemStack[] { new ItemStack(Items.redstone, 3), new ItemStack(Items.redstone, 3), new ItemStack(Items.redstone, 3), new ItemStack(ModItems.ingot_mercury, 3) }); - recipes.put(new ComparableStack(ModItems.crystal_lapis), new ItemStack[] { new ItemStack(ModItems.powder_lapis, 3), new ItemStack(ModItems.powder_lapis, 3), new ItemStack(ModItems.powder_lapis, 3), new ItemStack(ModItems.powder_cobalt, 1) }); + recipes.put(new ComparableStack(ModItems.crystal_lapis), new ItemStack[] { new ItemStack(ModItems.powder_lapis, 4), new ItemStack(ModItems.powder_lapis, 4), new ItemStack(ModItems.powder_cobalt, 1), new ItemStack(ModItems.gem_sodalite, 1) }); recipes.put(new ComparableStack(ModItems.crystal_diamond), new ItemStack[] { new ItemStack(ModItems.powder_diamond, 1), new ItemStack(ModItems.powder_diamond, 1), new ItemStack(ModItems.powder_diamond, 1), new ItemStack(ModItems.powder_diamond, 1) }); recipes.put(new ComparableStack(ModItems.crystal_uranium), new ItemStack[] { new ItemStack(ModItems.powder_uranium, 2), new ItemStack(ModItems.powder_uranium, 2), new ItemStack(ModItems.nugget_ra226, 2), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_thorium), new ItemStack[] { new ItemStack(ModItems.powder_thorium, 2), new ItemStack(ModItems.powder_thorium, 2), new ItemStack(ModItems.powder_uranium, 1), new ItemStack(ModItems.nugget_ra226, 1) }); diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index a8a582fe6..c83df558c 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -401,6 +401,13 @@ public class ChemplantRecipes extends SerializableRecipe { recipes.add(new ChemRecipe(101, "CC_CENTRIFUGE", 200) .inputFluids(new FluidStack(Fluids.CHLOROCALCITE_CLEANED, 500), new FluidStack(Fluids.SULFURIC_ACID, 8_000)) .outputFluids(new FluidStack(Fluids.POTASSIUM_CHLORIDE, 250), new FluidStack(Fluids.CALCIUM_CHLORIDE, 250))); + recipes.add(new ChemRecipe(102, "THORIUM_SALT", 60) + .inputFluids(new FluidStack(Fluids.THORIUM_SALT_DEPLETED, 8_000)) + .inputItems(new OreDictStack(TH232.dust(), 1)) + .outputFluids(new FluidStack(Fluids.THORIUM_SALT, 8_000)) + .outputItems( + new ItemStack(ModItems.nugget_u233, 4, 10), + new ItemStack(ModItems.nuclear_waste_tiny, 5, 10))); } public static void registerFuelProcessing() { diff --git a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java index efcd14b13..517229247 100644 --- a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java @@ -48,6 +48,7 @@ public class CombinationRecipes extends SerializableRecipe { recipes.put(new ComparableStack(Items.glowstone_dust), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.CHLORINE, 100))); recipes.put(SODALITE.gem(), new Pair(new ItemStack(ModItems.powder_sodium), new FluidStack(Fluids.CHLORINE, 100))); recipes.put(new ComparableStack(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.BAUXITE)), new Pair(new ItemStack(ModItems.ingot_aluminium, 2), new FluidStack(Fluids.REDMUD, 250))); + recipes.put(NA.dust(), new Pair(null, new FluidStack(Fluids.SODIUM, 100))); recipes.put(KEY_LOG, new Pair(new ItemStack(Items.coal, 1 ,1), new FluidStack(Fluids.WOODOIL, 250))); recipes.put(KEY_SAPLING, new Pair(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.WOOD), new FluidStack(Fluids.WOODOIL, 50))); diff --git a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java index a35f15425..ee093f541 100644 --- a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java @@ -42,6 +42,7 @@ public class LiquefactionRecipes extends SerializableRecipe { recipes.put(KEY_COAL_TAR, new FluidStack(50, Fluids.BITUMEN)); recipes.put(KEY_LOG, new FluidStack(100, Fluids.MUG)); recipes.put(KNO.dust(), new FluidStack(250, Fluids.NITRIC_ACID)); + recipes.put(NA.dust(), new FluidStack(100, Fluids.SODIUM)); //general utility recipes because why not recipes.put(new ComparableStack(Blocks.netherrack), new FluidStack(250, Fluids.LAVA)); recipes.put(new ComparableStack(Blocks.cobblestone), new FluidStack(250, Fluids.LAVA)); diff --git a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java index d47d2289c..dece889df 100644 --- a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java @@ -65,6 +65,8 @@ public class MixerRecipes extends SerializableRecipe { register(Fluids.NITROGLYCERIN, new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.PETROLEUM, 1_000)).setStack2(new FluidStack(Fluids.NITRIC_ACID, 1_000)), new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.FISHOIL, 500)).setStack2(new FluidStack(Fluids.NITRIC_ACID, 500))); + + register(Fluids.THORIUM_SALT, new MixerRecipe(1_000, 30).setStack1(new FluidStack(Fluids.CHLORINE, 1000)).setSolid(new OreDictStack(TH232.dust()))); register(Fluids.SYNGAS, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.COALOIL, 500)).setStack2(new FluidStack(Fluids.STEAM, 500))); register(Fluids.OXYHYDROGEN, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.HYDROGEN, 500)).setStack2(new FluidStack(Fluids.OXYGEN, 500))); @@ -77,7 +79,6 @@ public class MixerRecipes extends SerializableRecipe { register(Fluids.DIESEL_CRACK_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.DIESEL_CRACK, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); register(Fluids.KEROSENE_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.KEROSENE, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); - register(Fluids.CHLOROCALCITE_SOLUTION, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.WATER, 250)).setStack2(new FluidStack(Fluids.NITRIC_ACID, 250)).setSolid(new OreDictStack(CHLOROCALCITE.dust()))); register(Fluids.CHLOROCALCITE_MIX, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.CHLOROCALCITE_SOLUTION, 500)).setStack2(new FluidStack(Fluids.SULFURIC_ACID, 500)).setSolid(new ComparableStack(ModItems.powder_flux))); } diff --git a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java index 2612ba3c3..cba463d6f 100644 --- a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java @@ -68,6 +68,7 @@ public class SolidificationRecipes extends SerializableRecipe { registerRecipe(ENDERJUICE, 100, Items.ender_pearl); registerRecipe(WATZ, 1000, ModItems.ingot_mud); registerRecipe(REDMUD, 1000, Items.iron_ingot); + registerRecipe(SODIUM, 100, ModItems.powder_sodium); registerRecipe(OIL, SF_OIL, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)); registerRecipe(CRACKOIL, SF_CRACK, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRACK)); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index a1fef17c3..de6d9f1ea 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -720,6 +720,8 @@ hbmfluid.smear=Industrieöl hbmfluid.smoke=Abgas hbmfluid.smoke_leaded=Bleiabgas hbmfluid.smoke_poison=Giftige Abgase +hbmfluid.sodium=Flüssiges Natrium +hbmfluid.sodium_hot=Heißes flüssiges Natrium hbmfluid.solvent=Lösungsmittel hbmfluid.sourgas=Saures Gas hbmfluid.spentsteam=Niedrigdruckdampf @@ -728,6 +730,9 @@ hbmfluid.sulfuric_acid=Schwefelsäure hbmfluid.sunfloweroil=Sonnenblumenkernöl hbmfluid.superhotsteam=Superverdichteter Dampf hbmfluid.syngas=Synthesegas +hbmfluid.thorium_salt=Flüssiges Thoriumsalz +hbmfluid.thorium_salt_depleted=Erschöpftes flüssiges Thoriumsalz +hbmfluid.thorium_salt_hot=Heißes flüssiges Thoriumsalz hbmfluid.tritium=Tritium hbmfluid.uf6=Uranhexafluorid hbmfluid.ultrahotsteam=Ultraverdichteter Dampf @@ -1448,7 +1453,7 @@ item.circuit_bismuth_raw.name=Bismuth-Schaltkreisrohling item.circuit_copper.name=Erweiterter Schaltkreis item.circuit_gold.name=Übertakteter Schaltkreis item.circuit_raw.name=Schaltkreisrohling -item.circuit_red_copper.name=Forgeschrittener Schaltkreis +item.circuit_red_copper.name=Fortgeschrittener Schaltkreis item.circuit_schrabidium.name=Leistungsstarker Schaltkreis item.circuit_star.name=StarControl Schalttafel item.circuit_star_component.chipset.name=StarControl Chipset @@ -1815,6 +1820,7 @@ item.gear_large.name=Großes Zahnrad item.gear_large_steel.name=Großes Stahlzahnrad item.geiger_counter.name=Mobiler Geigerzähler item.gem_alexandrite.name=Alexandrit +item.gem_sodalite.name=Sodalith item.gem_tantalium.name=Tantal-Polykristall item.gem_volcanic.name=Vulkanischer Edelstein item.generator_front.name=Generatorfront @@ -2759,6 +2765,7 @@ item.powder_sawdust.name=Sägespäne item.powder_schrabidate.name=Eisenschrabidatstaub item.powder_schrabidium.name=Schrabidiumstaub item.powder_semtex_mix.name=Semtexmischung +item.powder_sodium.name=Natrium item.powder_spark_mix.name=Sparkmischung item.powder_steel.name=Stahlstaub item.powder_steel_tiny.name=Kleiner Haufen Stahlstaub diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 5aae8fd7b..0af7fe0da 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1362,6 +1362,8 @@ hbmfluid.smear=Industrial Oil hbmfluid.smoke=Smoke hbmfluid.smoke_leaded=Leaded Smoke hbmfluid.smoke_poison=Poison Smoke +hbmfluid.sodium=Liquid Sodium +hbmfluid.sodium_hot=Hot Liquid Sodium hbmfluid.solvent=Solvent hbmfluid.sourgas=Sour Gas hbmfluid.spentsteam=Low-Pressure Steam @@ -1370,6 +1372,9 @@ hbmfluid.sulfuric_acid=Sulfuric Acid hbmfluid.sunfloweroil=Sunflower Seed Oil hbmfluid.superhotsteam=Super Dense Steam hbmfluid.syngas=Syngas +hbmfluid.thorium_salt=Liquid Thorium Salt +hbmfluid.thorium_salt_depleted=Depleted Liquid Thorium Salt +hbmfluid.thorium_salt_hot=Hot Liquid Thorium Salt hbmfluid.tritium=Tritium hbmfluid.uf6=Uranium Hexafluoride hbmfluid.ultrahotsteam=Ultra Dense Steam @@ -2527,6 +2532,7 @@ item.gear_large.name=Large Gear item.gear_large_steel.name=Large Steel Gear item.geiger_counter.name=Handheld Geiger Counter item.gem_alexandrite.name=Alexandrite +item.gem_sodalite.name=Sodalite item.gem_tantalium.name=Tantalium Polycrystal item.gem_tantalium.desc='Tantalum' item.gem_tantalium.desc.P11=AKA Tantalum. @@ -3570,6 +3576,7 @@ item.powder_sawdust.name=Sawdust item.powder_schrabidate.name=Ferric Schrabidate Powder item.powder_schrabidium.name=Schrabidium Powder item.powder_semtex_mix.name=Semtex Blend +item.powder_sodium.name=Sodium item.powder_spark_mix.name=Spark Blend item.powder_sr90.name=Strontium-90 Powder item.powder_sr90_tiny.name=Tiny Pile of Strontium-90 Powder @@ -4663,6 +4670,25 @@ tile.deco_computer.ibm_300pl.name=IBM Personal Computer 300PL tile.deco_emitter.name=Deco Light Emitter tile.part_emitter.name=Deco Particle Emitter tile.piston_inserter.name=Inserter +tile.pwr_block.name=PWR +tile.pwr_casing.name=PWR Pressure Vessel +tile.pwr_casing.desc=Needs to cover all internal parts for the reactor to form$Placement: Casing +tile.pwr_channel.name=PWR Coolant Channel +tile.pwr_channel.desc=Uses hull heat to heat up coolant$Placement: Any +tile.pwr_control.name=PWR Control Rod +tile.pwr_control.desc=Allows connected fuel rods to be controlled$Placement: Grid, between control rods +tile.pwr_controller.name=PWR Controller +tile.pwr_controller.desc=Access terminal for the PWR$Placement: Casing, only one per reactor$Right-click to assemble the reactor +tile.pwr_fuel.name=PWR Fuel Rod +tile.pwr_fuel.desc=Increases PWR fuel capacity$Placement: Grid, for increased reactivity +tile.pwr_heatex.name=PWR Heat Exchanger +tile.pwr_heatex.desc=Moves core heat to the hull$Placement: Any +tile.pwr_neutron_source.name=PWR Neutron Source +tile.pwr_neutron_source.desc=Adds 20 flux to the core$Placement: Any$Flux only reaches fuel rods if connections are open +tile.pwr_port.name=PWR Access Port +tile.pwr_port.desc=Allows item and fluid IO$Placement: Casing +tile.pwr_reflector.name=PWR Neutron Reflector +tile.pwr_reflector.desc=Reflects neutrons back to fuel rods$Placement: Grid, for increased reactivity$Valid casing material tile.deco_lead.name=Lead Deco Block tile.deco_rbmk.name=RBMK Deco Block tile.deco_rbmk_smooth.name=Smooth RBMK Deco Block diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/sodium.png b/src/main/resources/assets/hbm/textures/gui/fluids/sodium.png new file mode 100644 index 0000000000000000000000000000000000000000..35a104eb6f839fc35cedc6c51a5535912f9ea4ef GIT binary patch literal 703 zcmV;w0zmzVP)ffvc-40EAKs zAq2)4@;t})ecHAKKq*DnbpQlGz-F^SYt8lbHNNi?h9RQwd#ttOd5+ea?RHBThJ;~= zloF-Xq^_=O*6TF@ec$7p!>g)lQV;|ILI~d9-^sF!rfCpD;CUVZP18*Fq9_8u6GEVr zqVIcNUtc*nIpOm1lCmuMwdeajLI?nS-)FzyqqU~0DnybbXst<-WO@ev*ofnpwrx>L zVXY;KB7EORYmE>>Fbo4qDK?u8&N-x%G);rGmh8jQh@$8xBV!D2Z*MeBL)*5DN9OZ6VHl#d24J;X;T1)JloD$#i^T$KE#o*6h9N~!FrUw<>zbRJ8}|D>hr
K-YCV lK0fmD@&dr;=O;o4{sRm%LVVdFF!%rf002ovPDHLkV1gTGH){X@ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/sodium_hot.png b/src/main/resources/assets/hbm/textures/gui/fluids/sodium_hot.png new file mode 100644 index 0000000000000000000000000000000000000000..61fe27c3f1c65f43e514e24d500a7eddcdbc7cfa GIT binary patch literal 707 zcmV;!0zCbRP)-HtE} z3BwR6B}%DTUDGsdHX8tjVZb?uSJ(BdAP5445WK&?ljk{Y+aiR(^E?3Bww>)oQ3QY| zgg`09FburDzH)YU#`X0zRaNn0&-ZwU#J~@O>YxH9`o%IF2Z#*lxEt=a5p;wk_6LE-x<;LQqu|*4jDTpS^JZJ$>(X zI{=(>07OxQbB_If&)3%%S(Z_jB>?B==Q!txqUdi%#u(n--e}vFuIrel31bXR(~xBu zLI|FppE;dQq-jbRhG?w;Sg+T3WmzJn#9GU8xx`w_G);tINLiMoX-d;H+}+)AI2<@0 zk63GwQc{*B;^EK@c#GBVw^w zuwJhj#}VK6xw^Un;N#}_Ev*ladDJv|Ww z0dXAv!@w{M0MvE;my@<_nWhQn92XZCc%H}o{XKPE6UQ;e7^IX)DH(==JkL=|5yvr} z=ivoGK-YC>t?9as)oO(?h9pTa#>@;TrO5M~#s8?sag1{g;he)5gVuWHAj>kEruiWa pfWGf}e0=2fIKKb@ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/throium_salt.png b/src/main/resources/assets/hbm/textures/gui/fluids/throium_salt.png new file mode 100644 index 0000000000000000000000000000000000000000..93d40f3e95b4c6bd4780982888334d43960a2abe GIT binary patch literal 748 zcmVkjYc1_KMmXp2rxW-0cNlB= z@%=kVlF*K0q*7?DX+lGFI8f|%Oy9o;z&S^Fdqd^h94Q60t4R`zkdpOk$?dy$6h(m) z0$wU)(y3yd}7 zyB#9SdKhcSdf7z`kR%C7yNwi*tlMROIG~lnA3bT>!CH$o1|dWX?>$;6X0sVh2uL9* z$^w7%3qf&O4X3s71! z8V=c46-@|4QA8(ADaw+5{~BWqN-3n2=M#j0$>a|2J=R)oMk4^$s}kmpnf|Go4Ox&M}|QNz?8nG}c<2YZFc<^4$)tHKHgB znh*$0!?52+O37cJK2a0}Y1+lr4yhDUDV%eR$73R`$+}&%)~F;&*dGp9W7!`L+>A!} zWl>5gg6h)8UXgZP*l7$lo3p>W$w2Kz{|Nlidp^IeE6ynB- zZS-MD!)TN)LIi!A3lARL`|g?j_`ZGv@ZQsP9Z?jal)`(@#|*;&z~yqGEL(;FK7U>T zAX;lg1Zypu&4w@xY1~^z=j= z$HZ}rQVOm0Dhrd0j)K=-I{S6QA*J?4bC~Pudfji%Cf{cH$C@5r6>xbD4HtM zT9YIR%jJ@?EV;Y8W53_yz2|f~;l0N>hlsqZwU+1SXPTy=ZCkweSZk^4nmo@D5q|&v z%jII3&*#K(j4=j)^?FTkKA%xa;hf{@>I&x^-h1LW=6pUgpUh*@X^OQLr4&jj`o5aa)3z;96rq&Dd(ZFmeGkC-e5NQ0`o8Dx?hXLa zS|cJ@Ygw&Ugkeb2GyrI=Y10qMEX&bB6h(*#UteG3c}`u|hzLOt08rQU7%xc@00I#~ zYfaa6yuZJ5adE-z?JY%7@Eb1-Lqr6CFbvu6_ZVX+%MzJRrx;_HPN(BB@L!BHO=+42 ztu@X$k|ZGvLyR$qh|u>vT5C3&4Z|>?l%lR{oO4`VT_GYAMS*i}eD1GGp65hSG*+gy zCP@+&iv>kd@bvV=ZnwjG&+&M~dyjJt5&5UqT0TENsq31iY4F}-t);3evMfVHczu24 zd_FUq&4}X|V+;Vx<&xlZI-!)pImhMYCC)j#_r!6`>2zW?n^9F2_xJbg_j?Y91I{^= zQk+gFCabH9AFVYvH#calQA#nN&p8|pG);ps2Im}o-;-q-&bg6+wr!EgWWsW}r0;ve zFy#9B8i4QbZ?Y@{z*;-*cDvo!z-%^S^5@QOD5dDSjy%uNT9c+JK@bo`Q8Z?4 znuf(@1)48s6GmSt2`^-CH6ZQJtv{LI_i f8vw`S5fR}p18_m4*41(X00000NkvXXu0mjfMQJ`( literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/chem_icon_THORIUM_SALT.png b/src/main/resources/assets/hbm/textures/items/chem_icon_THORIUM_SALT.png new file mode 100644 index 0000000000000000000000000000000000000000..734d6b43575555d129666b3f6ab99df3d0c4462d GIT binary patch literal 394 zcmV;50d@X~P)?@RzlbpEceV^aGcL)DQ4k!oI$wn2URID3| zkc0MAjPg58Nb5Jyz!eN!!6vSJ+ZNOzMsX6*Xbfgx?fU>^XA!}DRT~clyIsyQ#b`O8 z?r!=FT+x`|^W&V!G-5K1N>CvwC8h~}2h|2hk_0Iw!EAB#I-chd%%XB1J}t0q!Frox zIG`@Ox-c5u5{4n3=K=7x*TCcj4u=Y8nqXOi)#e*eA74tze6E9!uiCr5svfXVmgTIs zR1;X1F7|pok|g2bId5EJJQQW9&=!pLI~W%S6yzl&%bH<;)g~`Pb-xX;Ofh^kBu!I5 oe`8%ggGc3eP+jyo+5Bhp1zm)Dr*{5=`v3p{07*qoM6N<$f(w77XaE2J literal 0 HcmV?d00001 From 5832d5dc2f77ab091a9d04a8b707aee87d5ad0f5 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 23 Aug 2023 21:42:04 +0200 Subject: [PATCH 5/8] torex condensation ring --- .../hbm/entity/effect/EntityNukeTorex.java | 109 ++++++++++++++++-- .../{throium_salt.png => thorium_salt.png} | Bin ...depleted.png => thorium_salt_depleted.png} | Bin ...oium_salt_hot.png => thorium_salt_hot.png} | Bin 4 files changed, 99 insertions(+), 10 deletions(-) rename src/main/resources/assets/hbm/textures/gui/fluids/{throium_salt.png => thorium_salt.png} (100%) rename src/main/resources/assets/hbm/textures/gui/fluids/{throium_salt_depleted.png => thorium_salt_depleted.png} (100%) rename src/main/resources/assets/hbm/textures/gui/fluids/{throium_salt_hot.png => thorium_salt_hot.png} (100%) diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java index 71ed35d93..574a81992 100644 --- a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java +++ b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java @@ -96,6 +96,14 @@ public class EntityNukeTorex extends Entity { } } + if(ticksExisted < 200) { + for(int i = 0; i < 2; i++) { + Cloudlet cloud = new Cloudlet(posX, posY + coreHeight, posZ, (float)(rand.nextDouble() * 2D * Math.PI), 0, lifetime, TorexType.RING); + cloud.setScale(1F + this.ticksExisted * 0.005F * (float) s * 0.5F, 3F * (float) s); + cloudlets.add(cloud); + } + } + for(Cloudlet cloud : cloudlets) { cloud.update(); } @@ -192,8 +200,13 @@ public class EntityNukeTorex extends Entity { public float colorMod = 1.0F; public Vec3 color; public Vec3 prevColor; + public TorexType type; public Cloudlet(double posX, double posY, double posZ, float angle, int age, int maxAge) { + this(posX, posY, posZ, angle, age, maxAge, TorexType.STANDARD); + } + + public Cloudlet(double posX, double posY, double posZ, float angle, int age, int maxAge, TorexType type) { this.posX = posX; this.posY = posY; this.posZ = posZ; @@ -202,10 +215,9 @@ public class EntityNukeTorex extends Entity { this.angle = angle; this.rangeMod = 0.3F + rand.nextFloat() * 0.7F; this.colorMod = 0.8F + rand.nextFloat() * 0.2F; + this.type = type; this.updateColor(); - - //TODO: add movement types which excludes ground dust from convection sim, then let centered ground dust linger for longer } private void update() { @@ -223,14 +235,21 @@ public class EntityNukeTorex extends Entity { Vec3 simPos = Vec3.createVectorHelper(EntityNukeTorex.this.posX - this.posX, 0, EntityNukeTorex.this.posZ - this.posZ); double simPosX = EntityNukeTorex.this.posX + simPos.lengthVector(); double simPosZ = EntityNukeTorex.this.posZ + 0D; - - Vec3 convection = getConvectionMotion(simPosX, simPosZ); - Vec3 lift = getLiftMotion(simPosX, simPosZ); - double factor = MathHelper.clamp_double((this.posY - EntityNukeTorex.this.posY) / EntityNukeTorex.this.coreHeight, 0, 1); - this.motionX = convection.xCoord * factor + lift.xCoord * (1D - factor); - this.motionY = convection.yCoord * factor + lift.yCoord * (1D - factor); - this.motionZ = convection.zCoord * factor + lift.zCoord * (1D - factor); + if(this.type == TorexType.STANDARD) { + Vec3 convection = getConvectionMotion(simPosX, simPosZ); + Vec3 lift = getLiftMotion(simPosX, simPosZ); + + double factor = MathHelper.clamp_double((this.posY - EntityNukeTorex.this.posY) / EntityNukeTorex.this.coreHeight, 0, 1); + this.motionX = convection.xCoord * factor + lift.xCoord * (1D - factor); + this.motionY = convection.yCoord * factor + lift.yCoord * (1D - factor); + this.motionZ = convection.zCoord * factor + lift.zCoord * (1D - factor); + } else if(this.type == TorexType.RING) { + Vec3 motion = getRingMotion(simPosX, simPosZ); + this.motionX = motion.xCoord; + this.motionY = motion.yCoord; + this.motionZ = motion.zCoord; + } double mult = this.motionMult * getSimulationSpeed(); @@ -241,6 +260,67 @@ public class EntityNukeTorex extends Entity { this.updateColor(); } + private Vec3 getRingMotion(double simPosX, double simPosZ) { + + /*Vec3 targetPos = Vec3.createVectorHelper( + (EntityNukeTorex.this.posX + torusWidth * 1), + (EntityNukeTorex.this.posY + coreHeight * 0.5), + EntityNukeTorex.this.posZ); + + Vec3 delta = Vec3.createVectorHelper(targetPos.xCoord - simPosX, targetPos.yCoord - this.posY, targetPos.zCoord - simPosZ); + + double speed = 0.125D; + delta.xCoord *= speed; + delta.yCoord *= speed; + delta.zCoord *= speed; + + delta.rotateAroundY(this.angle); + return delta;*/ + + if(simPosX > EntityNukeTorex.this.posX + torusWidth * 2) + return Vec3.createVectorHelper(0, 0, 0); + + /* the position of the torus' outer ring center */ + Vec3 torusPos = Vec3.createVectorHelper( + (EntityNukeTorex.this.posX + torusWidth), + (EntityNukeTorex.this.posY + coreHeight * 0.5), + EntityNukeTorex.this.posZ); + + /* the difference between the cloudlet and the torus' ring center */ + Vec3 delta = Vec3.createVectorHelper(torusPos.xCoord - simPosX, torusPos.yCoord - this.posY, torusPos.zCoord - simPosZ); + + /* the distance this cloudlet wants to achieve to the torus' ring center */ + double roller = EntityNukeTorex.this.rollerSize * this.rangeMod * 0.25; + /* the distance between this cloudlet and the torus' outer ring perimeter */ + double dist = delta.lengthVector() / roller - 1D; + + /* euler function based on how far the cloudlet is away from the perimeter */ + double func = 1D - Math.pow(Math.E, -dist); // [0;1] + /* just an approximation, but it's good enough */ + float angle = (float) (func * Math.PI * 0.5D); // [0;90°] + + /* vector going from the ring center in the direction of the cloudlet, stopping at the perimeter */ + Vec3 rot = Vec3.createVectorHelper(-delta.xCoord / dist, -delta.yCoord / dist, -delta.zCoord / dist); + /* rotate by the approximate angle */ + rot.rotateAroundZ(angle); + + /* the direction from the cloudlet to the target position on the perimeter */ + Vec3 motion = Vec3.createVectorHelper( + torusPos.xCoord + rot.xCoord - simPosX, + torusPos.yCoord + rot.yCoord - this.posY, + torusPos.zCoord + rot.zCoord - simPosZ); + + double speed = 0.001D; + motion.xCoord *= speed; + motion.yCoord *= speed; + motion.zCoord *= speed; + + motion = motion.normalize(); + motion.rotateAroundY(this.angle); + + return motion; + } + /* simulated on a 2D-plane along the X/Y axis */ private Vec3 getConvectionMotion(double simPosX, double simPosZ) { @@ -256,7 +336,6 @@ public class EntityNukeTorex extends Entity { /* the difference between the cloudlet and the torus' ring center */ Vec3 delta = Vec3.createVectorHelper(torusPos.xCoord - simPosX, torusPos.yCoord - this.posY, torusPos.zCoord - simPosZ); - /* the distance this cloudlet wants to achieve to the torus' ring center */ double roller = EntityNukeTorex.this.rollerSize * this.rangeMod; /* the distance between this cloudlet and the torus' outer ring perimeter */ @@ -331,6 +410,11 @@ public class EntityNukeTorex extends Entity { public Vec3 getInterpColor(float interp) { double greying = EntityNukeTorex.this.getGreying(); + + if(this.type == TorexType.RING) { + greying += 1; + } + return Vec3.createVectorHelper( (prevColor.xCoord + (color.xCoord - prevColor.xCoord) * interp) * greying, (prevColor.yCoord + (color.yCoord - prevColor.yCoord) * interp) * greying, @@ -361,6 +445,11 @@ public class EntityNukeTorex extends Entity { return this; } } + + public static enum TorexType { + STANDARD, + RING + } @Override protected void readEntityFromNBT(NBTTagCompound nbt) { } diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/throium_salt.png b/src/main/resources/assets/hbm/textures/gui/fluids/thorium_salt.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/fluids/throium_salt.png rename to src/main/resources/assets/hbm/textures/gui/fluids/thorium_salt.png diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/throium_salt_depleted.png b/src/main/resources/assets/hbm/textures/gui/fluids/thorium_salt_depleted.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/fluids/throium_salt_depleted.png rename to src/main/resources/assets/hbm/textures/gui/fluids/thorium_salt_depleted.png diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/throium_salt_hot.png b/src/main/resources/assets/hbm/textures/gui/fluids/thorium_salt_hot.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/fluids/throium_salt_hot.png rename to src/main/resources/assets/hbm/textures/gui/fluids/thorium_salt_hot.png From 549ecc091775678a7f8cecac105bdb75cb83475c Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 24 Aug 2023 16:38:55 +0200 Subject: [PATCH 6/8] fancier PWR gauges, larger PWRs, fixes, finite corium fluid --- changelog | 8 ++ src/main/java/com/hbm/blocks/ModBlocks.java | 2 +- .../com/hbm/blocks/fluid/CoriumFinite.java | 84 ++++++++++++++++++ .../blocks/machine/MachinePWRController.java | 12 ++- .../entity/projectile/EntityThrowableNT.java | 2 +- .../java/com/hbm/extprop/HbmPlayerProps.java | 4 + .../java/com/hbm/inventory/gui/GUIPWR.java | 42 ++++++++- .../java/com/hbm/main/ModEventHandler.java | 7 +- .../machine/TileEntityPWRController.java | 2 +- .../machine/rbmk/TileEntityRBMKRod.java | 8 +- .../hbm/textures/gui/reactors/gui_pwr.png | Bin 5927 -> 5847 bytes 11 files changed, 153 insertions(+), 18 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/fluid/CoriumFinite.java diff --git a/changelog b/changelog index 868f93cb8..3b57b26e4 100644 --- a/changelog +++ b/changelog @@ -10,6 +10,10 @@ * Liquid sodium * Valid PWR coolant with high efficiency rating * Made by liquefacting sodium +* Liquid thorium salt + * Valid PWR coolant + * Has a high flux multiplication rate, boosting fuels + * After cooling, the depleted salt has to be reprocessed using a chemical plant ## Changed * Bedrock fluorite ore now yields actual ore instead of fluorite directly @@ -18,6 +22,7 @@ * The automatic buzzsaw can now use wood oil, ethanol, fish oil and heavy oil to run * Fluorite ore is now centrifugable * Fluorite crystals now centrifuge into slightly less fluorite but also yield sodalite +* Blast resistance values for most resistant blocks have been changed, most blocks now have much lower resistance which means there's now a practical difference between concrete and ducrete. Resistance values also match the block's cost more closely. ## Fixed * Fixed FEnSU's IO limit not working properly @@ -28,3 +33,6 @@ * Fixed blast furnace output overstacking * Fixed potential crash caused by centrifuges trying to create a recipe using non-registered items * Fixed chemplant GUI crashing when too many upgrades are applied to a short duration recipe +* Corium is now a finite fluid, fixing an issue where a single fuel rod can be used to create a giant blob of corium, lagging out the server +* Fixed bullets not being able to pass things like tall grass +* Whether the player has received a guide book is now saved as part of the extprop which might fix an issue where offline mode players get a new book on every start diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index c9ab74c54..ecd81f4fd 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2384,7 +2384,7 @@ public class ModBlocks { corium_fluid = new CoriumFluid().setDensity(600000).setViscosity(12000).setLuminosity(10).setTemperature(1500).setUnlocalizedName("corium_fluid"); FluidRegistry.registerFluid(corium_fluid); - corium_block = new CoriumBlock(corium_fluid, fluidcorium).setBlockName("corium_block").setResistance(500F); + corium_block = new CoriumFinite(corium_fluid, fluidcorium).setBlockName("corium_block").setResistance(500F); volcanic_lava_fluid = new VolcanicFluid().setLuminosity(15).setDensity(3000).setViscosity(3000).setTemperature(1300).setUnlocalizedName("volcanic_lava_fluid"); FluidRegistry.registerFluid(volcanic_lava_fluid); diff --git a/src/main/java/com/hbm/blocks/fluid/CoriumFinite.java b/src/main/java/com/hbm/blocks/fluid/CoriumFinite.java new file mode 100644 index 000000000..1861e41b9 --- /dev/null +++ b/src/main/java/com/hbm/blocks/fluid/CoriumFinite.java @@ -0,0 +1,84 @@ +package com.hbm.blocks.fluid; + +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.lib.ModDamageSource; +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; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.fluids.Fluid; + +public class CoriumFinite extends GenericFiniteFluid { + + public CoriumFinite(Fluid fluid, Material material) { + super(fluid, material, "corium_still", "corium_flowing"); + setQuantaPerBlock(5); + this.tickRate = 30; + } + + @Override + public boolean canDisplace(IBlockAccess world, int x, int y, int z) { + Block b = world.getBlock(x, y, z); + float res = (float) (Math.sqrt(b.getExplosionResistance(null)) * 3); + + if(res < 1) + return true; + Random rand = new Random(); + + return b.getMaterial().isLiquid() || rand.nextInt((int) res) == 0; + } + + @Override + public boolean displaceIfPossible(World world, int x, int y, int z) { + + if(world.getBlock(x, y, z).getMaterial().isLiquid()) { + return false; + } + return canDisplace(world, x, y, z); + } + + @Override + public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) { + entity.setInWeb(); + entity.setFire(3); + entity.attackEntityFrom(ModDamageSource.radiation, 2F); + + if(entity instanceof EntityLivingBase) + ContaminationUtil.contaminate((EntityLivingBase)entity, HazardType.RADIATION, ContaminationType.CREATIVE, 1F); + } + + @Override + public void updateTick(World world, int x, int y, int z, Random rand) { + + super.updateTick(world, x, y, z, rand); + + if(!world.isRemote && rand.nextInt(10) == 0 && world.getBlock(x, y - 1, z) != this) { + + if(rand.nextInt(3) == 0) + world.setBlock(x, y, z, ModBlocks.block_corium); + else + world.setBlock(x, y, z, ModBlocks.block_corium_cobble); + } + } + + @Override + @SideOnly(Side.CLIENT) + public int getRenderBlockPass() { + return 0; + } + + @Override + public boolean isReplaceable(IBlockAccess world, int x, int y, int z) { + return false; + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachinePWRController.java b/src/main/java/com/hbm/blocks/machine/MachinePWRController.java index 1f2580451..e40163c91 100644 --- a/src/main/java/com/hbm/blocks/machine/MachinePWRController.java +++ b/src/main/java/com/hbm/blocks/machine/MachinePWRController.java @@ -94,7 +94,7 @@ public class MachinePWRController extends BlockContainer implements ITooltipProv private static HashMap fuelRods = new HashMap(); private static HashMap sources = new HashMap(); private static boolean errored; - private static final int maxSize = 1024; + private static final int maxSize = 4096; public void assemble(World world, int x, int y, int z, EntityPlayer player) { assembly.clear(); @@ -107,7 +107,15 @@ public class MachinePWRController extends BlockContainer implements ITooltipProv errored = false; floodFill(world, x + dir.offsetX, y, z + dir.offsetZ, player); - if(fuelRods.size() == 0 || sources.size() == 0) errored = true; + if(fuelRods.size() == 0){ + sendError(world, x, y, z, "Fuel rods required", player); + errored = true; + } + + if(sources.size() == 0) { + sendError(world, x, y, z, "Neutron sources required", player); + errored = true; + } TileEntityPWRController controller = (TileEntityPWRController) world.getTileEntity(x, y, z); diff --git a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java index 15cda441f..c07a22bd8 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java @@ -177,7 +177,7 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { Vec3 pos = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); Vec3 nextPos = Vec3.createVectorHelper(this.posX + this.motionX * motionMult(), this.posY + this.motionY * motionMult(), this.posZ + this.motionZ * motionMult()); MovingObjectPosition mop = null; - if(!this.isSpectral()) mop = this.worldObj.rayTraceBlocks(pos, nextPos); + if(!this.isSpectral()) mop = this.worldObj.func_147447_a(pos, nextPos, false, true, false); pos = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); nextPos = Vec3.createVectorHelper(this.posX + this.motionX * motionMult(), this.posY + this.motionY * motionMult(), this.posZ + this.motionZ * motionMult()); diff --git a/src/main/java/com/hbm/extprop/HbmPlayerProps.java b/src/main/java/com/hbm/extprop/HbmPlayerProps.java index 63ee89a86..46d4c4a95 100644 --- a/src/main/java/com/hbm/extprop/HbmPlayerProps.java +++ b/src/main/java/com/hbm/extprop/HbmPlayerProps.java @@ -18,6 +18,8 @@ public class HbmPlayerProps implements IExtendedEntityProperties { public static final String key = "NTM_EXT_PLAYER"; public EntityPlayer player; + public boolean hasReceivedBook = false; + public boolean enableHUD = true; public boolean enableBackpack = true; @@ -150,6 +152,7 @@ public class HbmPlayerProps implements IExtendedEntityProperties { NBTTagCompound props = new NBTTagCompound(); + props.setBoolean("hasReceivedBook", hasReceivedBook); props.setFloat("shield", shield); props.setFloat("maxShield", maxShield); props.setBoolean("enableBackpack", enableBackpack); @@ -164,6 +167,7 @@ public class HbmPlayerProps implements IExtendedEntityProperties { NBTTagCompound props = (NBTTagCompound) nbt.getTag("HbmPlayerProps"); if(props != null) { + this.hasReceivedBook = props.getBoolean("hasReceivedBook"); this.shield = props.getFloat("shield"); this.maxShield = props.getFloat("maxShield"); this.enableBackpack = props.getBoolean("enableBackpack"); diff --git a/src/main/java/com/hbm/inventory/gui/GUIPWR.java b/src/main/java/com/hbm/inventory/gui/GUIPWR.java index b8888ec02..1b88a5084 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIPWR.java +++ b/src/main/java/com/hbm/inventory/gui/GUIPWR.java @@ -9,8 +9,6 @@ import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; -import com.hbm.render.util.GaugeUtil; -import com.hbm.render.util.GaugeUtil.Gauge; import com.hbm.tileentity.machine.TileEntityPWRController; import net.minecraft.client.Minecraft; @@ -18,6 +16,7 @@ import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.GuiTextField; import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; @@ -25,6 +24,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Vec3; public class GUIPWR extends GuiInfoContainer { @@ -118,8 +118,11 @@ public class GUIPWR extends GuiInfoContainer { int c = (int) (controller.rodLevel * 52 / 100); drawTexturedModalRect(guiLeft + 53, guiTop + 54, 176, 40, c, 2); - GaugeUtil.renderGauge(Gauge.ROUND_SMALL, guiLeft + 115, guiTop + 31, this.zLevel, (double) controller.coreHeat / (double) controller.coreHeatCapacity); - GaugeUtil.renderGauge(Gauge.ROUND_SMALL, guiLeft + 151, guiTop + 31, this.zLevel, (double) controller.hullHeat / (double) controller.hullHeatCapacity); + //GaugeUtil.renderGauge(Gauge.ROUND_SMALL, guiLeft + 115, guiTop + 31, this.zLevel, (double) controller.coreHeat / (double) controller.coreHeatCapacity); + //GaugeUtil.renderGauge(Gauge.ROUND_SMALL, guiLeft + 151, guiTop + 31, this.zLevel, (double) controller.hullHeat / (double) controller.hullHeatCapacity); + + drawGauge(guiLeft + 124, guiTop + 40, (double) controller.coreHeat / (double) controller.coreHeatCapacity); + drawGauge(guiLeft + 160, guiTop + 40, (double) controller.hullHeat / (double) controller.hullHeatCapacity); if(controller.typeLoaded != -1 && controller.amountLoaded > 0) { ItemStack display = new ItemStack(ModItems.pwr_fuel, 1, controller.typeLoaded); @@ -135,6 +138,37 @@ public class GUIPWR extends GuiInfoContainer { this.field.drawTextBox(); } + + private void drawGauge(int x, int y, double d) { + GL11.glDisable(GL11.GL_TEXTURE_2D); + + d = MathHelper.clamp_double(d, 0, 1); + + float angle = (float) Math.toRadians(-d * 270 - 45); + Vec3 tip = Vec3.createVectorHelper(0, 5, 0); + Vec3 left = Vec3.createVectorHelper(1, -2, 0); + Vec3 right = Vec3.createVectorHelper(-1, -2, 0); + + tip.rotateAroundZ(angle); + left.rotateAroundZ(angle); + right.rotateAroundZ(angle); + + Tessellator tess = Tessellator.instance; + tess.startDrawing(GL11.GL_TRIANGLES); + tess.setColorOpaque_F(0F, 0F, 0F); + double mult = 1.5; + tess.addVertex(x + tip.xCoord * mult, y + tip.yCoord * mult, this.zLevel); + tess.addVertex(x + left.xCoord * mult, y + left.yCoord * mult, this.zLevel); + tess.addVertex(x + right.xCoord * mult, y + right.yCoord * mult, this.zLevel); + tess.setColorOpaque_F(0.75F, 0F, 0F); + tess.addVertex(x + tip.xCoord, y + tip.yCoord, this.zLevel); + tess.addVertex(x + left.xCoord, y + left.yCoord, this.zLevel); + tess.addVertex(x + right.xCoord, y + right.yCoord, this.zLevel); + tess.draw(); + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glEnable(GL11.GL_TEXTURE_2D); + } @Override protected void mouseClicked(int mouseX, int mouseY, int i) { diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 7197df144..9b99a5f7a 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -176,10 +176,13 @@ public class ModEventHandler { if(MobConfig.enableDucks && event.player instanceof EntityPlayerMP && !event.player.getEntityData().getCompoundTag(EntityPlayer.PERSISTED_NBT_TAG).getBoolean("hasDucked")) PacketDispatcher.wrapper.sendTo(new PlayerInformPacket("Press O to Duck!", MainRegistry.proxy.ID_DUCK, 30_000), (EntityPlayerMP) event.player); - if(event.player instanceof EntityPlayerMP && !event.player.getEntityData().getCompoundTag(EntityPlayer.PERSISTED_NBT_TAG).getBoolean("hasGuide")) { + + HbmPlayerProps props = HbmPlayerProps.getData(event.player); + + if(!props.hasReceivedBook) { event.player.inventory.addItemStackToInventory(new ItemStack(ModItems.book_guide, 1, BookType.STARTER.ordinal())); event.player.inventoryContainer.detectAndSendChanges(); - event.player.getEntityData().getCompoundTag(EntityPlayer.PERSISTED_NBT_TAG).setBoolean("hasGuide", true); + props.hasReceivedBook = true; } } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index 44fd69cf8..113669ab2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -297,7 +297,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG double coolingEff = (double) this.channelCount / (double) this.rodCount * 0.1D; //10% cooling if numbers match if(coolingEff > 1D) coolingEff = 1D; - int heatToUse = (int) (this.hullHeat * coolingEff * trait.getEfficiency(HeatingType.PWR)); + int heatToUse = Math.min(this.hullHeat, (int) (this.hullHeat * coolingEff * trait.getEfficiency(HeatingType.PWR))); HeatingStep step = trait.getFirstStep(); int coolCycles = tanks[0].getFill() / step.amountReq; int hotCycles = (tanks[1].getMaxFill() - tanks[1].getFill()) / step.amountProduced; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index 9ec5ccd87..1b1f607d4 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -22,7 +22,6 @@ import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -305,12 +304,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM if(corium) { for(int i = h; i >= 0; i--) { - - if(i <= h + 1 - reduce) { - worldObj.setBlock(xCoord, yCoord + i, zCoord, ModBlocks.corium_block); - } else { - worldObj.setBlock(xCoord, yCoord + i, zCoord, Blocks.air); - } + worldObj.setBlock(xCoord, yCoord + i, zCoord, ModBlocks.corium_block, 5, 3); worldObj.markBlockForUpdate(xCoord, yCoord + i, zCoord); } diff --git a/src/main/resources/assets/hbm/textures/gui/reactors/gui_pwr.png b/src/main/resources/assets/hbm/textures/gui/reactors/gui_pwr.png index 6910df3ee915d9ac2b1ce46a822bff5d4b139ab1..a90a45e0cb94c64fb42c70e5978afcfd6f8ac843 100644 GIT binary patch literal 5847 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 qRSS}lTzmz3o163hMGO6L3<`F Date: Thu, 24 Aug 2023 22:04:11 +0200 Subject: [PATCH 7/8] fixes, flixes, adjustments https://cdn.discordapp.com/attachments/979089797404565504/1144343034222350386/image.png --- .../com/hbm/blocks/generic/BlockBobble.java | 2 +- .../entity/projectile/EntityBulletBaseNT.java | 4 ++-- .../inventory/recipes/ChemplantRecipes.java | 10 +++++----- .../machine/TileEntityPWRController.java | 2 +- src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../hbm/textures/models/weapons/congolake.png | Bin 3514 -> 10856 bytes 7 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/hbm/blocks/generic/BlockBobble.java b/src/main/java/com/hbm/blocks/generic/BlockBobble.java index 66e1c5bc9..1ec769c03 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBobble.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBobble.java @@ -192,7 +192,7 @@ public class BlockBobble extends BlockContainer implements IGUIProvider { DRILLGON( "Drillgon200", "Drillgon200", "1.12 Port", null, false, ScrapType.CPU_LOGIC), CIRNO( "Cirno", "Cirno", "the only multi layered skin i had", "No brain. Head empty.", true, ScrapType.BOARD_BLANK), MICROWAVE( "Microwave", "Microwave", "OC compat", "they call me the food heater", true, ScrapType.BRIDGE_BIOS), - PEEP( "Peep", "LePeeperSauvage", "Coilgun model", "Fluffy ears can't hide in ash, nor snow.", true, ScrapType.CPU_CLOCK); + PEEP( "Peep", "LePeeperSauvage", "Coilgun, Leadburster and Congo Lake models, BDCL QC", "Fluffy ears can't hide in ash, nor snow.", true, ScrapType.CPU_CLOCK); public String name; //the title of the tooltip public String label; //the name engraved in the socket diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java index a1a3a0961..1a34a8823 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java @@ -216,10 +216,10 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet return; } - if(this.config.bntUpdate != null) this.config.bntUpdate.behaveUpdate(this); - if(this.ticksExisted > config.maxAge) this.setDead(); } + + if(this.config.bntUpdate != null) this.config.bntUpdate.behaveUpdate(this); this.prevPosX = posX; this.prevPosY = posY; diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index c83df558c..f3639536b 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -402,12 +402,12 @@ public class ChemplantRecipes extends SerializableRecipe { .inputFluids(new FluidStack(Fluids.CHLOROCALCITE_CLEANED, 500), new FluidStack(Fluids.SULFURIC_ACID, 8_000)) .outputFluids(new FluidStack(Fluids.POTASSIUM_CHLORIDE, 250), new FluidStack(Fluids.CALCIUM_CHLORIDE, 250))); recipes.add(new ChemRecipe(102, "THORIUM_SALT", 60) - .inputFluids(new FluidStack(Fluids.THORIUM_SALT_DEPLETED, 8_000)) - .inputItems(new OreDictStack(TH232.dust(), 1)) - .outputFluids(new FluidStack(Fluids.THORIUM_SALT, 8_000)) + .inputFluids(new FluidStack(Fluids.THORIUM_SALT_DEPLETED, 16_000)) + .inputItems(new OreDictStack(TH232.nugget(), 2)) + .outputFluids(new FluidStack(Fluids.THORIUM_SALT, 16_000)) .outputItems( - new ItemStack(ModItems.nugget_u233, 4, 10), - new ItemStack(ModItems.nuclear_waste_tiny, 5, 10))); + new ItemStack(ModItems.nugget_u233, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 1))); } public static void registerFuelProcessing() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index 113669ab2..2e92c1ad9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -212,7 +212,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG } /* CORE COOLING */ - double coreCoolingApproachNum = getXOverE((double) this.heatexCount / (double) this.rodCount, 2) / 2D; + double coreCoolingApproachNum = getXOverE((double) this.heatexCount * 5 / (double) this.rodCount, 2) / 2D; int averageCoreHeat = (this.coreHeat + this.hullHeat) / 2; this.coreHeat -= (coreHeat - averageCoreHeat) * coreCoolingApproachNum; this.hullHeat -= (hullHeat - averageCoreHeat) * coreCoolingApproachNum; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index de6d9f1ea..960cb5e02 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -260,6 +260,7 @@ chem.SULFURIC_ACID=Schwefelsäureherstellung chem.TATB=TATB-Synthese chem.TEL=TEL mischen chem.TEST=Test +chem.THORIUM_SALT=Thoriumsalz-Anreicherung chem.TNT=TNT-Synthese chem.UF6=Uranhexafluoridproduktion chem.VIT_GAS=Gas-Atommüllvitrifizierung diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 0af7fe0da..e0c251500 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -611,6 +611,7 @@ chem.SULFURIC_ACID=Sulfuric Acid Production chem.TATB=TATB Synthesis chem.TEL=TEL Mixing chem.TEST=Test +chem.THORIUM_SALT=Thorium Salt Enrichment chem.TNT=TNT Synthesis chem.UF6=Uranium Hexafluoride Production chem.VIT_GAS=Gaseous Nuclear Waste Vitrification diff --git a/src/main/resources/assets/hbm/textures/models/weapons/congolake.png b/src/main/resources/assets/hbm/textures/models/weapons/congolake.png index 04b2d2e8b8c62d1c827d84d33313cd00071f90ea..2d611e459a87a6f8706911613f55227313d70b1e 100644 GIT binary patch literal 10856 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 From 65587e7db73677d8f025b3718a3df76eaf6c085e Mon Sep 17 00:00:00 2001 From: Bob Date: Fri, 25 Aug 2023 21:48:45 +0200 Subject: [PATCH 8/8] PWR breeder rods, rod recycling, creative stirling --- changelog | 4 + src/main/java/com/hbm/blocks/ModBlocks.java | 5 +- .../hbm/blocks/machine/MachineStirling.java | 33 ++++---- .../hbm/inventory/gui/GUIMachinePress.java | 7 +- .../java/com/hbm/inventory/gui/GUIPWR.java | 11 ++- .../inventory/recipes/CentrifugeRecipes.java | 79 +++++++++++++++++- .../com/hbm/items/machine/ItemPWRFuel.java | 34 ++++---- .../java/com/hbm/main/ResourceManager.java | 1 + .../hbm/render/tileentity/RenderStirling.java | 7 +- .../java/com/hbm/render/util/GaugeUtil.java | 34 ++++++++ .../machine/TileEntityPWRController.java | 4 +- .../machine/TileEntityStirling.java | 12 ++- src/main/resources/assets/hbm/lang/de_DE.lang | 2 + src/main/resources/assets/hbm/lang/en_US.lang | 47 +++++++++++ .../assets/hbm/textures/gui/gui_press.png | Bin 4875 -> 2102 bytes .../textures/items/pwr_fuel.bfb_am_mix.png | Bin 0 -> 449 bytes .../hbm/textures/items/pwr_fuel.bfb_pu241.png | Bin 0 -> 438 bytes .../models/machines/stirling_creative.png | Bin 0 -> 3877 bytes 18 files changed, 233 insertions(+), 47 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/pwr_fuel.bfb_am_mix.png create mode 100644 src/main/resources/assets/hbm/textures/items/pwr_fuel.bfb_pu241.png create mode 100644 src/main/resources/assets/hbm/textures/models/machines/stirling_creative.png diff --git a/changelog b/changelog index 3b57b26e4..9862d630b 100644 --- a/changelog +++ b/changelog @@ -14,6 +14,10 @@ * Valid PWR coolant * Has a high flux multiplication rate, boosting fuels * After cooling, the depleted salt has to be reprocessed using a chemical plant +* Creative stirling engine + * A stirling engine with 100% efficiency and no heat cap + * Still has the 10% delta-T heat transfer rate as the other stirlings + * Great for quickly benchmarking reactors without needing to set up a turbine cycle ## Changed * Bedrock fluorite ore now yields actual ore instead of fluorite directly diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index ecd81f4fd..72da33957 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -675,6 +675,7 @@ public class ModBlocks { public static Block furnace_combination; public static Block machine_stirling; public static Block machine_stirling_steel; + public static Block machine_stirling_creative; public static Block machine_sawmill; public static Block machine_crucible; public static Block machine_boiler; @@ -1835,6 +1836,7 @@ public class ModBlocks { furnace_combination = new FurnaceCombination().setBlockName("furnace_combination").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_light_alt"); machine_stirling = new MachineStirling().setBlockName("machine_stirling").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_stirling_steel = new MachineStirling().setBlockName("machine_stirling_steel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_stirling_creative = new MachineStirling().setBlockName("machine_stirling_creative").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_sawmill = new MachineSawmill().setBlockName("machine_sawmill").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_crucible = new MachineCrucible().setBlockName("machine_crucible").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); machine_boiler = new MachineHeatBoiler().setBlockName("machine_boiler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper"); @@ -2056,7 +2058,7 @@ public class ModBlocks { pwr_casing = new BlockGenericPWR(Material.iron).setBlockName("pwr_casing").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_casing"); pwr_port = new BlockGenericPWR(Material.iron).setBlockName("pwr_port").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_port"); pwr_controller = new MachinePWRController(Material.iron).setBlockName("pwr_controller").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_casing_blank"); - pwr_block = new BlockPWR(Material.iron).setBlockName("pwr_block").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_block"); + pwr_block = new BlockPWR(Material.iron).setBlockName("pwr_block").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pwr_block"); reactor_element = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_element_top", RefStrings.MODID + ":reactor_element_base").setBlockName("reactor_element").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_element_side"); reactor_control = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_control_top").setBlockName("reactor_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_control_side"); @@ -3099,6 +3101,7 @@ public class ModBlocks { register(furnace_combination); register(machine_stirling); register(machine_stirling_steel); + register(machine_stirling_creative); register(machine_sawmill); register(machine_crucible); register(machine_boiler); diff --git a/src/main/java/com/hbm/blocks/machine/MachineStirling.java b/src/main/java/com/hbm/blocks/machine/MachineStirling.java index 800b7f361..3cdfde1e7 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineStirling.java +++ b/src/main/java/com/hbm/blocks/machine/MachineStirling.java @@ -7,6 +7,7 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.IBlockMulti; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ITooltipProvider; +import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityStirling; @@ -156,26 +157,28 @@ public class MachineStirling extends BlockDummyable implements ILookOverlay, ITo return; TileEntityStirling stirling = (TileEntityStirling) te; - int maxHeat = stirling.maxHeat(); List text = new ArrayList(); text.add(stirling.heat + "TU/t"); text.add((stirling.hasCog ? stirling.powerBuffer : 0) + "HE/t"); - double percent = (double) stirling.heat / (double) maxHeat; - int color = ((int) (0xFF - 0xFF * percent)) << 16 | ((int)(0xFF * percent) << 8); - - if(percent > 1D) - color = 0xff0000; - - text.add("&[" + color + "&]" + ((stirling.heat * 1000 / maxHeat) / 10D) + "%"); - - if(stirling.heat > maxHeat) { - text.add("&[" + (BobMathUtil.getBlink() ? 0xff0000 : 0xffff00) + "&]! ! ! OVERSPEED ! ! !"); - } - - if(!stirling.hasCog) { - text.add("&[" + 0xff0000 + "&]Gear missing!"); + if(this != ModBlocks.machine_stirling_creative) { + int maxHeat = stirling.maxHeat(); + double percent = (double) stirling.heat / (double) maxHeat; + int color = ((int) (0xFF - 0xFF * percent)) << 16 | ((int)(0xFF * percent) << 8); + + if(percent > 1D) + color = 0xff0000; + + text.add("&[" + color + "&]" + ((stirling.heat * 1000 / maxHeat) / 10D) + "%"); + + if(stirling.heat > maxHeat) { + text.add("&[" + (BobMathUtil.getBlink() ? 0xff0000 : 0xffff00) + "&]! ! ! OVERSPEED ! ! !"); + } + + if(!stirling.hasCog) { + text.add("&[" + 0xff0000 + "&]Gear missing!"); + } } ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachinePress.java b/src/main/java/com/hbm/inventory/gui/GUIMachinePress.java index 19d1e30fb..63e98642b 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachinePress.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachinePress.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachinePress; import com.hbm.lib.RefStrings; +import com.hbm.render.util.GaugeUtil; import com.hbm.tileentity.machine.TileEntityMachinePress; import net.minecraft.client.Minecraft; @@ -46,14 +47,14 @@ public class GUIMachinePress extends GuiInfoContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - int i = press.speed * 12 / press.maxSpeed; - drawTexturedModalRect(guiLeft + 25, guiTop + 16, 176, 14 + 18 * i, 18, 18); - if(press.burnTime >= 20) { this.drawTexturedModalRect(guiLeft + 27, guiTop + 36, 176, 0, 14, 14); } int k = (int) (press.renderPress * 16 / press.maxPress); this.drawTexturedModalRect(guiLeft + 79, guiTop + 35, 194, 0, 18, k); + + double i = (double) press.speed / (double) press.maxSpeed; + GaugeUtil.drawSmoothGauge(guiLeft + 34, guiTop + 25, this.zLevel, i, 5, 2, 1, 0x7f0000); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIPWR.java b/src/main/java/com/hbm/inventory/gui/GUIPWR.java index 1b88a5084..d8549a9e4 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIPWR.java +++ b/src/main/java/com/hbm/inventory/gui/GUIPWR.java @@ -9,6 +9,7 @@ import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.render.util.GaugeUtil; import com.hbm.tileentity.machine.TileEntityPWRController; import net.minecraft.client.Minecraft; @@ -16,7 +17,6 @@ import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.GuiTextField; import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; @@ -24,7 +24,6 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; -import net.minecraft.util.Vec3; public class GUIPWR extends GuiInfoContainer { @@ -121,8 +120,8 @@ public class GUIPWR extends GuiInfoContainer { //GaugeUtil.renderGauge(Gauge.ROUND_SMALL, guiLeft + 115, guiTop + 31, this.zLevel, (double) controller.coreHeat / (double) controller.coreHeatCapacity); //GaugeUtil.renderGauge(Gauge.ROUND_SMALL, guiLeft + 151, guiTop + 31, this.zLevel, (double) controller.hullHeat / (double) controller.hullHeatCapacity); - drawGauge(guiLeft + 124, guiTop + 40, (double) controller.coreHeat / (double) controller.coreHeatCapacity); - drawGauge(guiLeft + 160, guiTop + 40, (double) controller.hullHeat / (double) controller.hullHeatCapacity); + GaugeUtil.drawSmoothGauge(guiLeft + 124, guiTop + 40, this.zLevel, (double) controller.coreHeat / (double) controller.coreHeatCapacity, 5, 2, 1, 0x7F0000); + GaugeUtil.drawSmoothGauge(guiLeft + 160, guiTop + 40, this.zLevel, (double) controller.hullHeat / (double) controller.hullHeatCapacity, 5, 2, 1, 0x7F0000); if(controller.typeLoaded != -1 && controller.amountLoaded > 0) { ItemStack display = new ItemStack(ModItems.pwr_fuel, 1, controller.typeLoaded); @@ -139,7 +138,7 @@ public class GUIPWR extends GuiInfoContainer { this.field.drawTextBox(); } - private void drawGauge(int x, int y, double d) { + /*private void drawGauge(int x, int y, double d) { GL11.glDisable(GL11.GL_TEXTURE_2D); d = MathHelper.clamp_double(d, 0, 1); @@ -168,7 +167,7 @@ public class GUIPWR extends GuiInfoContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glEnable(GL11.GL_TEXTURE_2D); - } + }*/ @Override protected void mouseClicked(int mouseX, int mouseY, int i) { diff --git a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java index 4f2bfe922..ae66e0670 100644 --- a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java @@ -22,6 +22,7 @@ import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemPWRFuel.EnumPWRFuel; import com.hbm.items.machine.ItemWatzPellet.EnumWatzType; import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; import com.hbm.items.special.ItemByproduct.EnumByproduct; @@ -188,6 +189,82 @@ public class CentrifugeRecipes extends SerializableRecipe { new ItemStack(ModItems.nugget_polonium, 12), new ItemStack(ModItems.nugget_pu238, 6), new ItemStack(ModItems.nuclear_waste, 2) }); + + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.MEU)), new ItemStack[] { + new ItemStack(ModItems.nugget_u238, 3), + new ItemStack(ModItems.nugget_plutonium, 4), + new ItemStack(ModItems.nugget_technetium, 2), + new ItemStack(ModItems.nuclear_waste_tiny, 3) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HEU233)), new ItemStack[] { + new ItemStack(ModItems.nugget_u235, 3), + new ItemStack(ModItems.nugget_pu238, 3), + new ItemStack(ModItems.nugget_technetium, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 5) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HEU235)), new ItemStack[] { + new ItemStack(ModItems.nugget_neptunium, 3), + new ItemStack(ModItems.nugget_pu238, 3), + new ItemStack(ModItems.nugget_technetium, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 5) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.MEN)), new ItemStack[] { + new ItemStack(ModItems.nugget_u238, 3), + new ItemStack(ModItems.nugget_pu239, 4), + new ItemStack(ModItems.nugget_technetium, 2), + new ItemStack(ModItems.nuclear_waste_tiny, 3) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HEN237)), new ItemStack[] { + new ItemStack(ModItems.nugget_pu238, 2), + new ItemStack(ModItems.nugget_pu239, 4), + new ItemStack(ModItems.nugget_technetium, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 5) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.MOX)), new ItemStack[] { + new ItemStack(ModItems.nugget_u238, 3), + new ItemStack(ModItems.nugget_pu240, 4), + new ItemStack(ModItems.nugget_technetium, 2), + new ItemStack(ModItems.nuclear_waste_tiny, 3) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.MEP)), new ItemStack[] { + new ItemStack(ModItems.nugget_lead, 2), + new ItemStack(ModItems.nugget_pu_mix, 4), + new ItemStack(ModItems.nugget_technetium, 2), + new ItemStack(ModItems.nuclear_waste_tiny, 3) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HEP239)), new ItemStack[] { + new ItemStack(ModItems.nugget_pu_mix, 2), + new ItemStack(ModItems.nugget_pu240, 4), + new ItemStack(ModItems.nugget_technetium, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 5) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HEP241)), new ItemStack[] { + new ItemStack(ModItems.nugget_lead, 3), + new ItemStack(ModItems.nugget_zirconium, 2), + new ItemStack(ModItems.nugget_technetium, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 6) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.MEA)), new ItemStack[] { + new ItemStack(ModItems.nugget_lead, 3), + new ItemStack(ModItems.nugget_zirconium, 2), + new ItemStack(ModItems.nugget_technetium, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 6) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HEA242)), new ItemStack[] { + new ItemStack(ModItems.nugget_lead, 3), + new ItemStack(ModItems.nugget_zirconium, 2), + new ItemStack(ModItems.nugget_technetium, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 6) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HES326)), new ItemStack[] { + new ItemStack(ModItems.nugget_solinium, 3), + new ItemStack(ModItems.nugget_lead, 2), + new ItemStack(ModItems.nugget_euphemium, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 6) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HES327)), new ItemStack[] { + new ItemStack(ModItems.nugget_australium, 4), + new ItemStack(ModItems.nugget_lead, 1), + new ItemStack(ModItems.nugget_euphemium, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 6) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.BFB_AM_MIX)), new ItemStack[] { + new ItemStack(ModItems.nugget_am_mix, 4), + new ItemStack(ModItems.nugget_pu_mix, 1), + new ItemStack(ModItems.nugget_bismuth, 6), + new ItemStack(ModItems.nuclear_waste_tiny, 1) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.BFB_PU241)), new ItemStack[] { + new ItemStack(ModItems.nugget_pu241, 4), + new ItemStack(ModItems.nugget_pu_mix, 1), + new ItemStack(ModItems.nugget_bismuth, 6), + new ItemStack(ModItems.nuclear_waste_tiny, 1) }); ArrayList naquadriaNuggets = OreDictionary.getOres("nuggetNaquadria"); if(naquadriaNuggets.size() != 0) { @@ -452,7 +529,7 @@ public class CentrifugeRecipes extends SerializableRecipe { recipes.put(new ComparableStack(ModItems.crystal_iron), new ItemStack[] { new ItemStack(ModItems.powder_iron, 2), new ItemStack(ModItems.powder_iron, 2), new ItemStack(ModItems.powder_titanium, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_gold), new ItemStack[] { new ItemStack(ModItems.powder_gold, 2), new ItemStack(ModItems.powder_gold, 2), new ItemStack(ModItems.ingot_mercury, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_redstone), new ItemStack[] { new ItemStack(Items.redstone, 3), new ItemStack(Items.redstone, 3), new ItemStack(Items.redstone, 3), new ItemStack(ModItems.ingot_mercury, 3) }); - recipes.put(new ComparableStack(ModItems.crystal_lapis), new ItemStack[] { new ItemStack(ModItems.powder_lapis, 4), new ItemStack(ModItems.powder_lapis, 4), new ItemStack(ModItems.powder_cobalt, 1), new ItemStack(ModItems.gem_sodalite, 1) }); + recipes.put(new ComparableStack(ModItems.crystal_lapis), new ItemStack[] { new ItemStack(ModItems.powder_lapis, 4), new ItemStack(ModItems.powder_lapis, 4), new ItemStack(ModItems.powder_cobalt, 1), new ItemStack(ModItems.gem_sodalite, 2) }); recipes.put(new ComparableStack(ModItems.crystal_diamond), new ItemStack[] { new ItemStack(ModItems.powder_diamond, 1), new ItemStack(ModItems.powder_diamond, 1), new ItemStack(ModItems.powder_diamond, 1), new ItemStack(ModItems.powder_diamond, 1) }); recipes.put(new ComparableStack(ModItems.crystal_uranium), new ItemStack[] { new ItemStack(ModItems.powder_uranium, 2), new ItemStack(ModItems.powder_uranium, 2), new ItemStack(ModItems.nugget_ra226, 2), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_thorium), new ItemStack[] { new ItemStack(ModItems.powder_thorium, 2), new ItemStack(ModItems.powder_thorium, 2), new ItemStack(ModItems.powder_uranium, 1), new ItemStack(ModItems.nugget_ra226, 1) }); diff --git a/src/main/java/com/hbm/items/machine/ItemPWRFuel.java b/src/main/java/com/hbm/items/machine/ItemPWRFuel.java index d60aca579..db802776a 100644 --- a/src/main/java/com/hbm/items/machine/ItemPWRFuel.java +++ b/src/main/java/com/hbm/items/machine/ItemPWRFuel.java @@ -19,28 +19,34 @@ public class ItemPWRFuel extends ItemEnumMulti { } public static enum EnumPWRFuel { - MEU( 05.0D, new FunctionLogarithmic(25)), - HEU233( 07.5D, new FunctionSqrt(25)), - HEU235( 07.5D, new FunctionSqrt(25)), - MEN( 07.5D, new FunctionLogarithmic(25)), - HEN237( 07.5D, new FunctionSqrt(25)), - MOX( 07.5D, new FunctionLogarithmic(25)), - MEP( 07.5D, new FunctionLogarithmic(25)), - HEP239( 10.0D, new FunctionSqrt(25)), - HEP241( 10.0D, new FunctionSqrt(25)), - MEA( 07.5D, new FunctionLogarithmic(25)), - HEA242( 10.0D, new FunctionSqrt(25)), - HES326( 15.0D, new FunctionSqrt(25)), - HES327( 15.0D, new FunctionSqrt(25)); + MEU( 05.0D, new FunctionLogarithmic(20 * 30).withDiv(2_500)), + HEU233( 07.5D, new FunctionSqrt(25)), + HEU235( 07.5D, new FunctionSqrt(22.5)), + MEN( 07.5D, new FunctionLogarithmic(22.5 * 30).withDiv(2_500)), + HEN237( 07.5D, new FunctionSqrt(27.5)), + MOX( 07.5D, new FunctionLogarithmic(20 * 30).withDiv(2_500)), + MEP( 07.5D, new FunctionLogarithmic(22.5 * 30).withDiv(2_500)), + HEP239( 10.0D, new FunctionSqrt(22.5)), + HEP241( 10.0D, new FunctionSqrt(25)), + MEA( 07.5D, new FunctionLogarithmic(25 * 30).withDiv(2_500)), + HEA242( 10.0D, new FunctionSqrt(25)), + HES326( 12.5D, new FunctionSqrt(27.5)), + HES327( 12.5D, new FunctionSqrt(30)), + BFB_AM_MIX( 2.5D, new FunctionSqrt(15), 250_000_000), + BFB_PU241( 2.5D, new FunctionSqrt(15), 250_000_000); public double yield = 1_000_000_000; public double heatEmission; public Function function; - private EnumPWRFuel(double heatEmission, Function function) { + private EnumPWRFuel(double heatEmission, Function function, double yield) { this.heatEmission = heatEmission; this.function = function; } + + private EnumPWRFuel(double heatEmission, Function function) { + this(heatEmission, function, 1_000_000_000); + } } @Override diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 5959f4f48..fcda9054a 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -398,6 +398,7 @@ public class ResourceManager { //Heat Engines public static final ResourceLocation stirling_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/stirling.png"); public static final ResourceLocation stirling_steel_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/stirling_steel.png"); + public static final ResourceLocation stirling_creative_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/stirling_creative.png"); public static final ResourceLocation sawmill_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/sawmill.png"); public static final ResourceLocation crucible_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/crucible_heat.png"); public static final ResourceLocation boiler_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/boiler.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderStirling.java b/src/main/java/com/hbm/render/tileentity/RenderStirling.java index d1544382d..3957f074e 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderStirling.java +++ b/src/main/java/com/hbm/render/tileentity/RenderStirling.java @@ -47,6 +47,8 @@ public class RenderStirling extends TileEntitySpecialRenderer implements IItemRe if(type == 0) bindTexture(ResourceManager.stirling_tex); + else if(type == 2) + bindTexture(ResourceManager.stirling_creative_tex); else bindTexture(ResourceManager.stirling_steel_tex); @@ -86,7 +88,8 @@ public class RenderStirling extends TileEntitySpecialRenderer implements IItemRe public Item[] getItemsForRenderer() { return new Item[] { Item.getItemFromBlock(ModBlocks.machine_stirling), - Item.getItemFromBlock(ModBlocks.machine_stirling_steel) + Item.getItemFromBlock(ModBlocks.machine_stirling_steel), + Item.getItemFromBlock(ModBlocks.machine_stirling_creative) }; } @@ -100,7 +103,7 @@ public class RenderStirling extends TileEntitySpecialRenderer implements IItemRe public void renderCommonWithStack(ItemStack item) { GL11.glRotatef(90, 0F, 1F, 0F); boolean cog = item.getItemDamage() != 1; - RenderStirling.this.renderCommon(cog ? System.currentTimeMillis() % 3600 * 0.1F : 0, cog, item.getItem() == Item.getItemFromBlock(ModBlocks.machine_stirling) ? 0 : 1); + RenderStirling.this.renderCommon(cog ? System.currentTimeMillis() % 3600 * 0.1F : 0, cog, item.getItem() == Item.getItemFromBlock(ModBlocks.machine_stirling) ? 0 : item.getItem() == Item.getItemFromBlock(ModBlocks.machine_stirling_creative) ? 2 : 1); }}; } diff --git a/src/main/java/com/hbm/render/util/GaugeUtil.java b/src/main/java/com/hbm/render/util/GaugeUtil.java index e31455bac..751edabdf 100644 --- a/src/main/java/com/hbm/render/util/GaugeUtil.java +++ b/src/main/java/com/hbm/render/util/GaugeUtil.java @@ -1,10 +1,14 @@ package com.hbm.render.util; +import org.lwjgl.opengl.GL11; + import com.hbm.lib.RefStrings; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Vec3; public class GaugeUtil { @@ -55,5 +59,35 @@ public class GaugeUtil { tess.addVertexWithUV(x, y, z, 0, frameOffset); tess.draw(); } + + public static void drawSmoothGauge(int x, int y, double z, double progress, double tipLength, double backLength, double backSide, int color) { + GL11.glDisable(GL11.GL_TEXTURE_2D); + + progress = MathHelper.clamp_double(progress, 0, 1); + + float angle = (float) Math.toRadians(-progress * 270 - 45); + Vec3 tip = Vec3.createVectorHelper(0, tipLength, 0); + Vec3 left = Vec3.createVectorHelper(backSide, -backLength, 0); + Vec3 right = Vec3.createVectorHelper(-backSide, -backLength, 0); + tip.rotateAroundZ(angle); + left.rotateAroundZ(angle); + right.rotateAroundZ(angle); + + Tessellator tess = Tessellator.instance; + tess.startDrawing(GL11.GL_TRIANGLES); + tess.setColorOpaque_F(0F, 0F, 0F); + double mult = 1.5; + tess.addVertex(x + tip.xCoord * mult, y + tip.yCoord * mult, z); + tess.addVertex(x + left.xCoord * mult, y + left.yCoord * mult, z); + tess.addVertex(x + right.xCoord * mult, y + right.yCoord * mult, z); + tess.setColorOpaque_I(color); + tess.addVertex(x + tip.xCoord, y + tip.yCoord, z); + tess.addVertex(x + left.xCoord, y + left.yCoord, z); + tess.addVertex(x + right.xCoord, y + right.yCoord, z); + tess.draw(); + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glEnable(GL11.GL_TEXTURE_2D); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index 2e92c1ad9..0b488f113 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -131,13 +131,13 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG connections = connectionsDouble / 2; connectionsControlled = connectionsControlledDouble / 2; - System.out.println("Finalized nuclear reactor!"); + /*System.out.println("Finalized nuclear reactor!"); System.out.println("Rods: " + rodCount); System.out.println("Connections: " + connections); System.out.println("Controlled connections: " + connectionsControlled); System.out.println("Heatex: " + heatexCount); System.out.println("Channels: " + channelCount); - System.out.println("Sources: " + sourceCount); + System.out.println("Sources: " + sourceCount);*/ } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStirling.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStirling.java index 19ecdf379..fc2560845 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityStirling.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityStirling.java @@ -48,12 +48,12 @@ public class TileEntityStirling extends TileEntityLoadedBase implements INBTPack if(hasCog) { tryPullHeat(); - this.powerBuffer = (long) (this.heat * this.efficiency); + this.powerBuffer = (long) (this.heat * (this.isCreative() ? 1 : this.efficiency)); if(warnCooldown > 0) warnCooldown--; - if(heat > maxHeat()) { + if(heat > maxHeat() && !isCreative()) { this.overspeed++; @@ -109,6 +109,8 @@ public class TileEntityStirling extends TileEntityLoadedBase implements INBTPack float momentum = powerBuffer * 50F / ((float) maxHeat()); + if(this.isCreative()) momentum = Math.min(momentum, 45F); + this.lastSpin = this.spin; this.spin += momentum; @@ -120,13 +122,17 @@ public class TileEntityStirling extends TileEntityLoadedBase implements INBTPack } public int getGeatMeta() { - return this.getBlockType() == ModBlocks.machine_stirling ? 0 : 1; + return this.getBlockType() == ModBlocks.machine_stirling ? 0 : this.getBlockType() == ModBlocks.machine_stirling_creative ? 2 : 1; } public int maxHeat() { return this.getBlockType() == ModBlocks.machine_stirling ? 300 : 1500; } + public boolean isCreative() { + return this.getBlockType() == ModBlocks.machine_stirling_creative; + } + protected DirPos[] getConPos() { return new DirPos[] { new DirPos(xCoord + 2, yCoord, zCoord, Library.POS_X), diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 960cb5e02..25ba97821 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -4078,6 +4078,8 @@ tile.machine_steam_engine.name=Dampfmaschine tile.machine_steam_engine.desc=Effizienz: 85%% tile.machine_stirling.name=Stirlingmotor tile.machine_stirling.desc=Erzeugt Energie aus Wärme. Benötigt externe Hitzequelle.$Wärmestransferrate: T*0.1 TU/t$Maximalaufnahme: 300 TU/t$Effizienz: 50%% +tile.machine_stirling_creative.name=Kreativer Stirlingmotor +tile.machine_stirling_creative.desc=Erzeugt Energie aus Wärme. Benötigt externe Hitzequelle.$Wärmestransferrate: T*0.1 TU/t$Keine Maximalaufnahme/t$Effizienz: 100%% tile.machine_stirling_steel.name=Schwerer Stirlingmotor tile.machine_stirling_steel.desc=Erzeugt Energie aus Wärme. Benötigt externe Hitzequelle.$Verwendet ein schwereres Zahnrad und verträgt höhere Temparaturen.$Wärmestransferrate: T*0.1 TU/t$Maximalaufnahme: 1500 TU/t$Effizienz: 50%% tile.machine_storage_drum.name=Atommüll-Lagertrommel diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index e0c251500..87e424890 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3611,6 +3611,51 @@ item.primer_buckshot.name=Buckshot Primer (x12) item.protection_charm.name=Charm of Protection item.prototype_kit.name=Prototype Kit item.pudding.name=Pudding +item.pwr_fuel.bfb_am_mix.name=Fuel Grade Americium PWR ZFB Rod +item.pwr_fuel.bfb_pu241.name=Plutonium-241 PWR ZFB Rod +item.pwr_fuel.hea242.name=HEA-242 PWR Fuel Rod +item.pwr_fuel.hen237.name=HEN-237 PWR Fuel Rod +item.pwr_fuel.hep239.name=HEP-239 PWR Fuel Rod +item.pwr_fuel.hep241.name=HEP-241 PWR Fuel Rod +item.pwr_fuel.hes326.name=HES-326 PWR Fuel Rod +item.pwr_fuel.hes327.name=HES-327 PWR Fuel Rod +item.pwr_fuel.heu233.name=HEU-233 PWR Fuel Rod +item.pwr_fuel.heu235.name=HEU-235 PWR Fuel Rod +item.pwr_fuel.mea.name=MEA PWR Fuel Rod +item.pwr_fuel.men.name=MEN PWR Fuel Rod +item.pwr_fuel.mep.name=MEP PWR Fuel Rod +item.pwr_fuel.meu.name=MEU PWR Fuel Rod +item.pwr_fuel.mox.name=MOX PWR Fuel Rod +item.pwr_fuel_depleted.bfb_am_mix.name=Depleted Fuel Grade Americium PWR ZFB Rod +item.pwr_fuel_depleted.bfb_pu241.name=Depleted Plutonium-241 PWR ZFB Rod +item.pwr_fuel_depleted.hea242.name=Depleted HEA-242 PWR Fuel Rod +item.pwr_fuel_depleted.hen237.name=Depleted HEN-237 PWR Fuel Rod +item.pwr_fuel_depleted.hep239.name=Depleted HEP-239 PWR Fuel Rod +item.pwr_fuel_depleted.hep241.name=Depleted HEP-241 PWR Fuel Rod +item.pwr_fuel_depleted.hes326.name=Depleted HES-326 PWR Fuel Rod +item.pwr_fuel_depleted.hes327.name=Depleted HES-327 PWR Fuel Rod +item.pwr_fuel_depleted.heu233.name=Depleted HEU-233 PWR Fuel Rod +item.pwr_fuel_depleted.heu235.name=Depleted HEU-235 PWR Fuel Rod +item.pwr_fuel_depleted.mea.name=Depleted MEA PWR Fuel Rod +item.pwr_fuel_depleted.men.name=Depleted MEN PWR Fuel Rod +item.pwr_fuel_depleted.mep.name=Depleted MEP PWR Fuel Rod +item.pwr_fuel_depleted.meu.name=Depleted MEU PWR Fuel Rod +item.pwr_fuel_depleted.mox.name=Depleted MOX PWR Fuel Rod +item.pwr_fuel_hot.bfb_am_mix.name=Hot Fuel Grade Americium PWR ZFB Rod +item.pwr_fuel_hot.bfb_pu241.name=Hot Plutonium-241 PWR ZFB Rod +item.pwr_fuel_hot.hea242.name=Hot HEA-242 PWR Fuel Rod +item.pwr_fuel_hot.hen237.name=Hot HEN-237 PWR Fuel Rod +item.pwr_fuel_hot.hep239.name=Hot HEP-239 PWR Fuel Rod +item.pwr_fuel_hot.hep241.name=Hot HEP-241 PWR Fuel Rod +item.pwr_fuel_hot.hes326.name=Hot HES-326 PWR Fuel Rod +item.pwr_fuel_hot.hes327.name=Hot HES-327 PWR Fuel Rod +item.pwr_fuel_hot.heu233.name=Hot HEU-233 PWR Fuel Rod +item.pwr_fuel_hot.heu235.name=Hot HEU-235 PWR Fuel Rod +item.pwr_fuel_hot.mea.name=Hot MEA PWR Fuel Rod +item.pwr_fuel_hot.men.name=Hot MEN PWR Fuel Rod +item.pwr_fuel_hot.mep.name=Hot MEP PWR Fuel Rod +item.pwr_fuel_hot.meu.name=Hot MEU PWR Fuel Rod +item.pwr_fuel_hot.mox.name=Hot MOX PWR Fuel Rod item.quartz_plutonium.name=Plutonic Quartz item.radaway.name=RadAway item.radaway_flush.name=Elite RadAway @@ -5032,6 +5077,8 @@ tile.machine_steam_engine.name=Steam Engine tile.machine_steam_engine.desc=Efficiency: 85%% tile.machine_stirling.name=Stirling Engine tile.machine_stirling.desc=Turns heat into energy. Requires external heat source.$Heat transfer rate: T*0.1 TU/t$Max intake: 300 TU/t$Efficiency: 50%% +tile.machine_stirling_creative.name=Creative Stirling Engine +tile.machine_stirling_creative.desc=Turns heat into energy. Requires external heat source.$Heat transfer rate: T*0.1 TU/t$Infinite intake/t$Efficiency: 100%% tile.machine_stirling_steel.name=Heavy Stirling Engine tile.machine_stirling_steel.desc=Turns heat into energy. Requires external heat source.$Uses a much heavier gear to support higher temperatures.$Heat transfer rate: T*0.1 TU/t$Max intake: 1500 TU/t$Efficiency: 50%% tile.machine_storage_drum.name=Nuclear Waste Disposal Drum diff --git a/src/main/resources/assets/hbm/textures/gui/gui_press.png b/src/main/resources/assets/hbm/textures/gui/gui_press.png index 8c09adbe66983990eb89ef3693dd2d9ddb9c57d1..c1d48e76451b82913c370ba8b3525f9e63c80acb 100644 GIT binary patch literal 2102 zcmcIlSyYqP8a;`CG{{Y{j1py1so_FUsElQvF9Zq%87v_75~LU)41p3z(3KJa15{8{ zA}D20iii+U5C|ee!=y|yg~1e%Au=Ng!{2nRuDjZY-rJYEU%qqJIp5yj+56#KbHmz8 zBaR>d0Md>QHtqnxL`xWuln|Bk#L{3<5sR{N^pq5VEcp!`fP;KT8%xi)JU+L9pgf`^ zG3DCkPn}kNk`^d!=+bxFy)r0^wnQ^gBGjfWF~9*e%XF@4vqYL=;Ab{Yw{*N6n3Xp_ zRd7dSkpkJx@*HWg#skF#4q4fyDygWR_X)?S-rdNIlyRfwJR`lRXR;-Au)!w-P$8E< zT2B1vvb#*8Jlk+-S=7d0Fw&TBYsWNpDCJ)DecwkLGqdJbiJc#Mex}rO2?j4-JX%Su zygJx&ZkabhnoM6Bo^vrLZ<;X}j9G8yqd9DzXHscuZ2i&GvT$ZSKW=+rufurGh4i5& zZTN+gAdK7=cSC|xJQ&)#KG%B@k1tV zZ;1FftC^D2wu~(q8D@_;=CYiwJaBV#{b2uUwd1EG752Ol6#44Lju5m-0`%qABee#j zg8daf#qOM`&;HURgbu1gTLZUC4Z(YnA75FotPF zMT0G?X-hJBOAyHN$4{*~e69*gU-0Pkko{c){A|a?@H^y3dm z(u(xanG}rF)(~WBcmkAG_xn*ZdjI+DS;$y_(9ewghzbhcNx1Axmw^Q6O95}Y8W-_& zcj@6vHy_sMRLl&8lKL_G=i4T*`%cEBvB-^C7n|Lgy!abKQE~;Y!1=ARiTeh_QXQ zTcHx_A1YW|hN|U68<{s!S6C#>MW~(6@xMrW>gS-so)%gT7%WtdEV)1e*QR4W{*&I< zuiB@yhASTTaF7bze&1B*m(g%=?5f6I{MoyhAZXrez&u2pZ7P?fwK6Si&UrhCpbF6X zz>Bn4DY`njzrU=p-b7iqCPT9+dg}`+Uc6iU0NLl)GM%QisYxl5xLH?Uh1}~_Ca|4u zNW`qM-n)n#4r`>dNDZCIJL{AB4i8u4*$ad{r^WJy1f@-6**aIz;c+GiVfn7|RUnxJ zWDPH3PxT%uJkMxOWhfwa<-P7!KB0B=oH9Y;ijj8*Rkf^sQ>sD&Won!*Oc@-e)ZwPQ zEX`<}uxj7(5d9;SAC1-TV1o2&G#}SP(OPHoxAtQ<0`h!J`Eg3F);eDInbdMGtx%Tl z5@h&%4e23JST1%o@o($TOv7!Lvzb`Up~g`UG8NUaHxp_>uC8 z3j3;&^BckJ0eNF}Hym1cTuVzU2Rigiurph!ZXvu!?#+Bmbo7r=*Z(E>n(Eh;5lFmE z6Jz5@&L%6}f`2@x%Ui&$sE+c7fv683%ULgGw)8MQoig9< zTSRVR(I)eZvy`fuHcW^>QXNeuW9Ia})CNNNSdG{JHkpn;N>g(2^U+Ksq0L*IA`t}- z6s%|P<1gWX?)Fo*owx6CdgBr1;?D^EjY}pU^ew;Gy{B##Fw$f#Um{xq5*fm(lC`L; zzVqU_gTg#_!SgOFEUcK>J}B6KhTy@*GgIwy#jk793)?4#dTo!9ei}f>Ch>t_XA(&YF$(H2i2cJ++v3$#I!{Ot(Sd0Hf zt1y8uEz573;Bs*cVzEwpZ%J=&Q7^pf-CPBUM9L}5d)T@9YG&6^{4YoPt7+>aOsPJ5 zyDVb1wUM^1P3;)p&L&SOu9X}5R0ESHRZ2NB_iAHu}cT^JptDk=+`rT?fF?Z~I=Y=F4l#C>& zgKkm9ll@OFI!j{u=qE&uThDeWyNmHva*l_P7>(`C_`3=IL9r07C3>{3xt(}1F&$xQ zf`$DaIJ#(Z7k}0)jb0=Ip`N=nV|8Xvp53>$wq|7@_SpL1R9HGCnM(^3KcCM*iazQ8 c3)tEll+yON5vlF5vfl(8ZLv0wtpcz73L!X~8~^|S literal 4875 zcmbtYc|4Te`+jB&CQD-&5z55KR@u`_YG}e(T5O48LY5RsA^Q-L$WGa_B|@PE(`ZBX zea#@onnaN-Gru$SzTeMp`~LNP{+M|_=Q(qpb6@v;UH5e+^3(}EUM>+X2!eQt`UDdQ zf`MBYgyaBU=dL|+1YZbG9ikZ$T>eOh+YrS6mPpVx^GRPA(RLMe$!u84qIjMhcF*<{ zF4)5zH=UTwwtKcbG@;`!+1uL?Q;K|rp32Tj+XVI+>V#O5NvS0xFT%s!ZUq>4+o=SU zALP4#MC$9Y8JqR7T5{%Np;%{BexaGU#YefbvPGHefps{!B>9VlnL%1BW?DyEi^}A& zqEjul8W|_NmpVs(%#ScNmeNAz_bVv0vyaYS*T|WmTJDRfl;q^(%<1o3XsiB3%NlWe zA^&=<>1~RHbn(d}Oq-~Cj2#-~oD|07_r;ZEdNXPu{h5;ur5@#Qys$eCetc{!H|EH% z&5aI?P#bao9-{qEWx9GNd*=aOMb`(d1*PX}3KkX?N_#YigEpSp9JHDH{2_{FkaDE& zvlH1clr|qFc}{NfqyIPdXz{ZctzpBiH*eIXSGo9PA^hI+>y}-oo#S@0&DeeyC#D>6 z|2pSjkTMSyIGL7tCD2K8hRj=r+{|aKfvz-zQ%e85*v!_j; zzzefOgMF@(qm1!;3@G~yrfqJzJ#e~gikD+|*d4eG)L1J?G+7vBejiwNXMWRTns=T( z;hv&=3oN+ttHMSSwf!4=+wz;?5ZXFbU>(e_WJuQOHPDKC8E79mMZDGwVuyB4doP4~ z!@NdU8P|Fi1%J?v1{U!RSUjBxir!qjx1?1uIgk*HPZsm<>1@_L))j=Z-0@~>8|_Jb5hl3XZ1${ak=corttzYNuS`U0z4+y|f=rH^ew;4~ zTWWyPNz&z?GU-xu3T*J$tQUXbW|QwLM6ygu##DRd8c1&Qv>Vi_kt!Np3v~*#&$Z~C z^IY8CV{>QYP?X6c?7cZnySb=K|7|)cq<^!sUV&KL?q0N6kT_M^T4Lr0b;@1g5vj^I zu*bAIn$FM94^gDgKmIcRt^Q%&TD`4%WuE>QdZnQ}3|V*|U3GA3A{* zI|dtnaD{L_YUTX$Xm7yO^IzT~E%y|iHg$5Y?n6JKImfAW9z$UxF7JaEY*4SdpYC`6 zw9>xjV9b-UE{y-QbN}qMyY0{G-S>U6=ApyhUxdf1b*fkGt|M}eXOrI^7J2cse(URH z*UdL)3(lN7v&dw)InVH%6}X_{AsQQ=xqVn9DA8pT1m|{1D_FZfrxS)ZifN6`Dv4am zw}Ill7M!-~b`_ptr%Fd>x%UM{B;fnr`#8=W2#(I}?oKWol?EuVCT1$ha!oW(EVd?> zL{=Kn`AMHH3ZJJ11>xY)js*u`&tw*Puk^(t6OArqZTGiIFuIq4u?{LNkwDA5>hXmN zjZ-qN`+mtASogfh8;PH|AIV7$?#7~>{qMrC7CTJuQ3%=34*J&YN*CD|hr}F*;Y;@A z?bZ_@AG~BPyBDoLx58s)PU-A=?dEcF=>^aCU_;2#en1S8P3Iyg)Ez@X7BUNoH+*~^ z&BxKhbhP8I`}oW#6sud|;47yflAr*BfAUbt_wd=&hUL02PT-!YAQxML<2A zD4lP*asE8jLp>3~90zE@f&~pUFD7|4X#_E9GqnOf3x)XR-ni^VqI8=4GA2?N_Zhpm zJ8`B!<+_UWhL)`|b*pP)(mkRw7_L8fva7HkdVq8|!d;gKV?U;i<0rpF1gnKh!S9DF zfb0=q_yQ>+0tno;NIV(?S%wj^9faBNQ*lVu*E#GY6Y(HQMa4U>fwqC+o%D(BwAO+< zAM7sk>0_ctJ?&5={{Q~GDkmP9CUDC zBYfWup-RhhGg9y?>(Qfzh~+8v#C`*-fIvgP_UC5%b`-vvH`N0vJlCIu3tAnWh)_RP zgvY_dP6G^c4%cNo%VNj6kg$!qPaad6)8wc*LfF#~39Z68mM4LYLpp#huqPm|PnX$n zmCM4zbjXD4J)ov^Rp|{55J7;<@g(icCyrZ!0FCpne65|@(wCy@`far&(2pW^LnY`G zB!*|3T67ixi(-fF>q>OYf)$fq60j<}@e-#7I+TKm0h?;W7c|BBL3O1i^elMQ#K*KJ z?M2^SXnE`PFcR;`-@dx~Tq7ffx~Uq8Z*Fe(ETj$cNU)x7dg&w9ufF6(76V*(04@?} zXVt$G05-`1AOyjLkt90oJhZz)0=3psK=Q)JwXqI1iUQfS7R#axI}Z?&KnGi}`A||o zQh(F65g`rFDI*zPeZb{AyCLQM50I69UWTB}F=rN&ieDU?Pe5XHVZmw-Js~5x4(t#3 zVera550JQ<0>Ks*7NDj>K&Ia3Z}M23kcf?dL-L??`fjD1Y2erb{H6qK9K>vUe!6(B zciEL<6_~N=)+WaF8!Csc;Fe%)BtGC12cdwy0y<#6+IwV~i~MTZJ+%hDqH9<@t&dQi zfz`={@{^4wQuGmb{>I^ijzq_rKEh5@g}RHMd_;_&JkZwS9zn=PMQG!H7bL&~Ae@`? zFRrQqR>y$NAq2>{1V(q?_;?O=dnCSL3CpLf0HRr$+G2jrSUBG=g_hv}*e>yt4W2H7 z*z2YKfO5LnAnqol4S-qwpJD~_t~6sxp6KBI25=Q@F&hJ>rwIZ0)X?`t-Rf~MuEFES z+OLCf4GWGns&ei{d~+TB@#Pccd#@jwhn-v8CA z)($vcPI35t*aE?n9I*#2v(tn;2!M0yant-QRgnC9DL8R!njsX$eQjje_ve&WBwmX} zJ<((&#%;5dM!9)X;uNr`7Lj}5T7f<)s#>XF3kP7aF1a}PeWLc%F&!de4#?&|+y%;Q zJ|sKeW=lox2T~)4;mWy(WZh6@XMbkoS9*I+0gABpYR>~%2qz*jlvQ>8KTCjIg}C5P z{~iAapg^kGBupw$Ka3V+DfIw}SzxfL69wJZ0|f!l15MV4Mc$np@i&7PzNk& ziREhXatzd*07{~o2bc8xY(maY5Fmd&x~5#o8)` zD^_J9@qX0Hmw*=otYUh(WfHP8NA(}1rKQb#Y3!;dG#*w!KPri)4cII4&a6k*m<|;W z3W}}G*wlDkxugllJ*80g6Fr3voSWHgh!Ck$4OG!Ar#XjBv9+|e(gXRfy7~FlXjW;# z;{WO+4JU1p@4@s$sRW5w^e(p4iKw!>{$c3=l*^j{1tsKdqmA(h@l88E<6lZF3mMbO zh5NJBp)hWtYLi1~nL`6VKY!o`yw3(nNF`teIFx0!8v%CT24@i0gK5>wF~fz-5tEu{ zWrljLkJYUL(YL{8JfIo?%RmwB+%cF%$S$|fEy5>X*T^WvWO6D#9veJbmOy4949YB` z=3iRyR+q=B z>hW*|;$k1I@VRZpU7!Q0MRnew?a|dMm`3l^ZwAxVZDblJnr9d1_knms_R^(=ktQ;j zKl1ilHOi1LOEs?=1rxH5e1+GEOey2W^R{*m}TEE?Iklb;+cCW)T84*IZp zEz3$>qRo%>kczU9h?57h0zfgjY85-Db4El3ZXZY^%_h4XSF;(81bzQz(A zmEKTlBG^3fpPtrt`QQ!ao0K7~ntZQ|wka`vo47IU7Qa8UhpQC z0D(@REx{M7f`h~UVztYw+aOkVGx{CYXMS?&=*!|VsxM|E0KCD6pRezB8%#KvWeeX) zK_z@f2;Ys>C*qKuBa^)XJ|CStC->0O)MAaopIA+bnIa&uu8>E4A%e7v10Ss$_d4TmkcFa@R7 zFIJZxMWg!;wlpgsYnbsRkDl#$WIw_ zdCrn&4cHy=pv}`J%q|kpv0{3^Z`G#8%2v7>XyuXz(2Y14(FSb^ToheBAM=x^juRcQ zz3wnK>FWk3b!vLLhMSvvna{DSvNo5km03N2Ae*-#dE@^MVfc%hJqn{r0gZ^CoL%Isbc|f`f(!!pOijHUCQFsRmYN~w!I%?j4 z-U1U6Ag8%oZej8GE7rnbAT9*8agxa<^YhJQb_V{NILDkq2or`OQc9$hv|6o$@dq7^ zM#FSE9kkY8S}vDqx7$aH?@7I0H>Fa^0DJ1XuBlWi#+GwtGy1+ytycSHuU4yQt*ylq zHsix%fzfD$5Q5zq_4|F+jD3$Uk7V-=R1C&xIrI=2qT)3AcR~M&)(&-d;H`f#k zIfmm`hGU=M_#7EcNzUWbK>*oo2KVZc<$A+BUZC_li}mJExP91L$>;CMW;3MIDQ<6X zj)mGmlSybvj1a={JkJyhIf6hEMG8IBtmaF4y`Gh{_iN@EvxPOAO~>;*v%5##Zuj_|Z9Ce& gzmcyQ{RIN>0r{-C{pe9gng9R*07*qoM6N<$f_;s^sQ>@~ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/machines/stirling_creative.png b/src/main/resources/assets/hbm/textures/models/machines/stirling_creative.png new file mode 100644 index 0000000000000000000000000000000000000000..9ba16b6a329276bda09ce0f338dbce939afd6b4e GIT binary patch literal 3877 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 literal 0 HcmV?d00001