From 43ab1f31347466025df02f42e0d2f3ede1294a53 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 12 Mar 2023 19:31:56 +0100 Subject: [PATCH] i'm stealing your catalytic converter so i can sell it to buy crack. please don't ask such feeble-minded questions. it's rude. --- gradle.properties | 2 +- src/main/java/com/hbm/blocks/ModBlocks.java | 6 - .../hbm/blocks/machine/MachineFluidTank.java | 7 +- .../hbm/blocks/machine/MachineTurbofan.java | 325 +++--------------- .../com/hbm/blocks/turret/TurretBaseNT.java | 16 +- .../com/hbm/blocks/turret/TurretBrandon.java | 5 - .../com/hbm/blocks/turret/TurretChekhov.java | 20 -- .../com/hbm/blocks/turret/TurretFriendly.java | 20 -- .../com/hbm/blocks/turret/TurretFritz.java | 8 - .../com/hbm/blocks/turret/TurretHoward.java | 17 - .../blocks/turret/TurretHowardDamaged.java | 6 + .../com/hbm/blocks/turret/TurretJeremy.java | 20 -- .../com/hbm/blocks/turret/TurretMaxwell.java | 5 - .../com/hbm/blocks/turret/TurretRichard.java | 20 -- .../com/hbm/blocks/turret/TurretSentry.java | 2 +- .../com/hbm/blocks/turret/TurretTauon.java | 20 -- .../com/hbm/crafting/ConsumableRecipes.java | 1 + .../java/com/hbm/hazard/HazardRegistry.java | 1 + .../com/hbm/inventory/OreDictManager.java | 43 ++- src/main/java/com/hbm/inventory/OreNames.java | 1 + .../ContainerMachineCatalyticReformer.java | 31 +- .../container/ContainerMachineTurbofan.java | 51 ++- .../java/com/hbm/inventory/fluid/Fluids.java | 31 +- .../hbm/inventory/gui/GUIMachineTurbofan.java | 42 +-- .../com/hbm/inventory/gui/GUITurretBase.java | 8 +- .../com/hbm/inventory/gui/GUITurretFritz.java | 3 +- .../inventory/material/MaterialShapes.java | 1 + .../java/com/hbm/inventory/material/Mats.java | 25 +- .../hbm/inventory/material/NTMMaterial.java | 7 +- .../inventory/recipes/AssemblerRecipes.java | 3 +- .../inventory/recipes/ChemplantRecipes.java | 4 +- .../inventory/recipes/CrackingRecipes.java | 20 +- .../hbm/inventory/recipes/MixerRecipes.java | 1 + .../recipes/SolidificationRecipes.java | 31 +- .../inventory/recipes/anvil/AnvilRecipes.java | 3 +- src/main/java/com/hbm/items/ModItems.java | 66 +--- .../java/com/hbm/items/machine/ItemMold.java | 6 +- .../com/hbm/items/machine/ItemScraps.java | 2 +- .../com/hbm/items/special/ItemCigarette.java | 42 ++- .../com/hbm/items/special/ItemPlateCast.java | 84 +++++ src/main/java/com/hbm/lib/Library.java | 6 - .../java/com/hbm/main/CraftingManager.java | 19 +- src/main/java/com/hbm/main/MainRegistry.java | 19 + src/main/java/com/hbm/main/NEIConfig.java | 3 - .../tileentity/RenderCatalyticReformer.java | 65 ++-- .../hbm/render/tileentity/RenderTurbofan.java | 5 +- .../machine/TileEntityMachineTurbofan.java | 108 ++++-- .../TileEntityMachineCatalyticReformer.java | 2 + .../machine/rbmk/TileEntityCraneConsole.java | 4 + src/main/resources/assets/hbm/lang/de_DE.lang | 7 + src/main/resources/assets/hbm/lang/en_US.lang | 6 + src/main/resources/assets/hbm/sounds.json | 1 + .../hbm/textures/blocks/tatb_bottom.png | Bin 0 -> 329 bytes .../assets/hbm/textures/blocks/tatb_side.png | Bin 0 -> 313 bytes .../assets/hbm/textures/blocks/tatb_top.png | Bin 0 -> 603 bytes .../gui/processing/gui_catalytic_reformer.png | Bin 5181 -> 5357 bytes .../textures/items/catalytic_converter.png | Bin 0 -> 311 bytes .../assets/hbm/textures/items/crackpipe.png | Bin 344 -> 316 bytes .../hbm/textures/items/ingot_silicon.png | Bin 159 -> 0 bytes .../assets/hbm/textures/items/mold_gem.png | Bin 478 -> 484 bytes .../hbm/textures/items/mold_plate_cast.png | Bin 0 -> 429 bytes .../assets/hbm/textures/items/plate_cast.png | Bin 0 -> 350 bytes .../hbm/textures/items/plate_cast_alt.png | Bin 0 -> 321 bytes .../hbm/textures/items/plate_cast_dark.png | Bin 0 -> 344 bytes 64 files changed, 519 insertions(+), 732 deletions(-) create mode 100644 src/main/java/com/hbm/items/special/ItemPlateCast.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/tatb_bottom.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/tatb_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/tatb_top.png create mode 100644 src/main/resources/assets/hbm/textures/items/catalytic_converter.png delete mode 100644 src/main/resources/assets/hbm/textures/items/ingot_silicon.png create mode 100644 src/main/resources/assets/hbm/textures/items/mold_plate_cast.png create mode 100644 src/main/resources/assets/hbm/textures/items/plate_cast.png create mode 100644 src/main/resources/assets/hbm/textures/items/plate_cast_alt.png create mode 100644 src/main/resources/assets/hbm/textures/items/plate_cast_dark.png diff --git a/gradle.properties b/gradle.properties index 6efd5257d..2ed57bf47 100644 --- a/gradle.properties +++ b/gradle.properties @@ -10,5 +10,5 @@ credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion al \ Pashtet (russian localization), MartinTheDragon (calculator, chunk-based fallout), haru315 (spiral point algorithm),\ \ Sten89 (models), Pixelguru26 (textures), TheBlueHat (textures), Alcater (GUI textures, porting), impbk2002 (project settings),\ \ OvermindDL1 (project settings), TehTemmie (reacher radiation function), Toshayo (satellite loot system, project settings), Silly541 (config for safe ME drives),\ - \ Voxelstice (OpenComputers integration, turbine spinup), martemen (project settings), Pvndols (thorium fuel recipe, gas turbine), JamesH2 (blood, nitric acid),\ + \ Voxelstice (OpenComputers integration, turbine spinup), martemen (project settings), Pvndols (thorium fuel recipe, gas turbine), JamesH2 (blood mechanics, nitric acid),\ \ sdddddf80 (recipe configs), SuperCraftAlex (tooltips) \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index df260fd8e..2aa90a336 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1168,8 +1168,6 @@ public class ModBlocks { public static Block dummy_port_drill; public static Block dummy_block_assembler; public static Block dummy_port_assembler; - public static Block dummy_block_turbofan; - public static Block dummy_port_turbofan; public static Block dummy_block_ams_limiter; public static Block dummy_port_ams_limiter; public static Block dummy_block_ams_emitter; @@ -2286,8 +2284,6 @@ public class ModBlocks { dummy_port_drill = new DummyBlockDrill(Material.iron, true).setBlockName("dummy_port_drill").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_lead"); dummy_block_assembler = new DummyBlockAssembler(Material.iron, false).setBlockName("dummy_block_assembler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); dummy_port_assembler = new DummyBlockAssembler(Material.iron, true).setBlockName("dummy_port_assembler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); - dummy_block_turbofan = new DummyBlockTurbofan(Material.iron, false).setBlockName("dummy_block_turbofan").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); - dummy_port_turbofan = new DummyBlockTurbofan(Material.iron, true).setBlockName("dummy_port_turbofan").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); dummy_block_ams_limiter = new DummyBlockAMSLimiter(Material.iron).setBlockName("dummy_block_ams_limiter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_copper"); dummy_port_ams_limiter = new DummyBlockAMSLimiter(Material.iron).setBlockName("dummy_port_ams_limiter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_copper"); dummy_block_ams_emitter = new DummyBlockAMSEmitter(Material.iron).setBlockName("dummy_block_ams_emitter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_copper"); @@ -3345,8 +3341,6 @@ public class ModBlocks { GameRegistry.registerBlock(dummy_port_drill, dummy_port_drill.getUnlocalizedName()); GameRegistry.registerBlock(dummy_block_assembler, dummy_block_assembler.getUnlocalizedName()); GameRegistry.registerBlock(dummy_port_assembler, dummy_port_assembler.getUnlocalizedName()); - GameRegistry.registerBlock(dummy_block_turbofan, dummy_block_turbofan.getUnlocalizedName()); - GameRegistry.registerBlock(dummy_port_turbofan, dummy_port_turbofan.getUnlocalizedName()); GameRegistry.registerBlock(dummy_block_ams_limiter, dummy_block_ams_limiter.getUnlocalizedName()); GameRegistry.registerBlock(dummy_port_ams_limiter, dummy_port_ams_limiter.getUnlocalizedName()); GameRegistry.registerBlock(dummy_block_ams_emitter, dummy_block_ams_emitter.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java b/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java index 9e1641ca2..8b5071525 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java @@ -70,9 +70,10 @@ public class MachineFluidTank extends BlockDummyable implements IPersistentInfoP TileEntityMachineFluidTank tank = (TileEntityMachineFluidTank) world.getTileEntity(pos[0], pos[1], pos[2]); - if(tank.hasExploded) return false; - - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); + if(tank != null) { + if(tank.hasExploded) return false; + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); + } return true; } else { return true; diff --git a/src/main/java/com/hbm/blocks/machine/MachineTurbofan.java b/src/main/java/com/hbm/blocks/machine/MachineTurbofan.java index 3e83e4cf1..fb8a30c88 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTurbofan.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTurbofan.java @@ -1,329 +1,82 @@ package com.hbm.blocks.machine; import java.util.List; -import java.util.Random; +import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ITooltipProvider; -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.MultiblockHandler; -import com.hbm.interfaces.IMultiblock; import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade; -import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityDummy; +import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityMachineTurbofan; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; -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.EnumChatFormatting; -import net.minecraft.util.MathHelper; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class MachineTurbofan extends BlockContainer implements IMultiblock, ITooltipProvider { +public class MachineTurbofan extends BlockDummyable implements ITooltipProvider { - public MachineTurbofan(Material p_i45386_1_) { - super(p_i45386_1_); + public MachineTurbofan(Material mat) { + super(mat); } @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineTurbofan(); - + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineTurbofan(); + if(meta >= 6) return new TileEntityProxyCombo().fluid().power(); + return null; } @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { - return Item.getItemFromBlock(ModBlocks.machine_turbofan); + public int[] getDimensions() { + return new int[] {2, 0, 1, 1, 3, 3}; } @Override - public int getRenderType() { - return -1; + public int getOffset() { + return 1; } - + @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if (i == 0) { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.turbofanDimensionEast)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.turbofanDimensionEast, ModBlocks.dummy_block_turbofan); - - // - DummyBlockTurbofan.safeBreak = true; - world.setBlock(x, y, z + 1, ModBlocks.dummy_port_turbofan); - TileEntity te = world.getTileEntity(x, y, z + 1); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 1, y, z - 1, ModBlocks.dummy_port_turbofan); - TileEntity te2 = world.getTileEntity(x - 1, y, z - 1); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x, y, z - 1, ModBlocks.dummy_port_turbofan); - TileEntity te3 = world.getTileEntity(x, y, z - 1); - if(te3 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te3; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 1, y, z + 1, ModBlocks.dummy_port_turbofan); - TileEntity te4 = world.getTileEntity(x - 1, y, z + 1); - if(te4 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te4; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockTurbofan.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - if (i == 1) { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.turbofanDimensionSouth)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.turbofanDimensionSouth, ModBlocks.dummy_block_turbofan); - - // - DummyBlockTurbofan.safeBreak = true; - world.setBlock(x + 1, y, z, ModBlocks.dummy_port_turbofan); - TileEntity te = world.getTileEntity(x + 1, y, z); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 1, y, z - 1, ModBlocks.dummy_port_turbofan); - TileEntity te2 = world.getTileEntity(x - 1, y, z - 1); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x + 1, y, z - 1, ModBlocks.dummy_port_turbofan); - TileEntity te3 = world.getTileEntity(x + 1, y, z - 1); - if(te3 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te3; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 1, y, z, ModBlocks.dummy_port_turbofan); - TileEntity te4 = world.getTileEntity(x - 1, y, z); - if(te4 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te4; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockTurbofan.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - if (i == 2) { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.turbofanDimensionWest)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.turbofanDimensionWest, ModBlocks.dummy_block_turbofan); - - // - DummyBlockTurbofan.safeBreak = true; - world.setBlock(x + 1, y, z + 1, ModBlocks.dummy_port_turbofan); - TileEntity te = world.getTileEntity(x + 1, y, z + 1); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x, y, z - 1, ModBlocks.dummy_port_turbofan); - TileEntity te2 = world.getTileEntity(x, y, z - 1); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x + 1, y, z - 1, ModBlocks.dummy_port_turbofan); - TileEntity te3 = world.getTileEntity(x + 1, y, z - 1); - if(te3 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te3; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x, y, z + 1, ModBlocks.dummy_port_turbofan); - TileEntity te4 = world.getTileEntity(x, y, z + 1); - if(te4 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te4; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockTurbofan.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - if (i == 3) { - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.turbofanDimensionNorth)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.turbofanDimensionNorth, ModBlocks.dummy_block_turbofan); - - // - DummyBlockTurbofan.safeBreak = true; - world.setBlock(x + 1, y, z + 1, ModBlocks.dummy_port_turbofan); - TileEntity te = world.getTileEntity(x + 1, y, z + 1); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 1, y, z, ModBlocks.dummy_port_turbofan); - TileEntity te2 = world.getTileEntity(x - 1, y, z); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x + 1, y, z, ModBlocks.dummy_port_turbofan); - TileEntity te3 = world.getTileEntity(x + 1, y, z); - if(te3 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te3; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 1, y, z + 1, ModBlocks.dummy_port_turbofan); - TileEntity te4 = world.getTileEntity(x - 1, y, z + 1); - if(te4 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te4; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockTurbofan.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, - float hitY, float hitZ) { - if (world.isRemote) { + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(world.isRemote) { return true; - } else if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.linker) { - return false; - }else if (!player.isSneaking()) { - TileEntityMachineTurbofan entity = (TileEntityMachineTurbofan) world.getTileEntity(x, y, z); - if (entity != null) { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, - y, z); + } else if(!player.isSneaking()) { + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return false; + + TileEntityMachineTurbofan turbofan = (TileEntityMachineTurbofan) world.getTileEntity(pos[0], pos[1], pos[2]); + + if(turbofan != null) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); } return true; } else { - return false; + return true; } } - - private final Random field_149933_a = new Random(); - private static boolean keepInventory; - + @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) - { - if (!keepInventory) - { - ISidedInventory tileentityfurnace = (ISidedInventory)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - if (tileentityfurnace != null) - { - for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) - { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if (itemstack != null) - { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while (itemstack.stackSize > 0) - { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if (j1 > itemstack.stackSize) - { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if (itemstack.hasTagCompound()) - { - entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } + this.makeExtra(world, x, y, z); + this.makeExtra(world, x - rot.offsetX, y, z - rot.offsetZ); + this.makeExtra(world, x - dir.offsetX * 2, y, z - dir.offsetZ * 2); + this.makeExtra(world, x - dir.offsetX * 2 - rot.offsetX, y, z - dir.offsetZ * 2 - rot.offsetZ); + } @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - list.add(EnumChatFormatting.YELLOW + "Fuel efficiency:"); list.add(EnumChatFormatting.YELLOW + "-" + FuelGrade.AERO.getGrade() + ": " + EnumChatFormatting.RED + "100%"); } diff --git a/src/main/java/com/hbm/blocks/turret/TurretBaseNT.java b/src/main/java/com/hbm/blocks/turret/TurretBaseNT.java index 2cadcd2a5..1124e4c9e 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretBaseNT.java +++ b/src/main/java/com/hbm/blocks/turret/TurretBaseNT.java @@ -37,20 +37,6 @@ public abstract class TurretBaseNT extends BlockDummyable { @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) { - return true; - } else if(!player.isSneaking()) { - int[] pos = this.findCore(world, x, y, z); - - if(pos == null) - return false; - - openGUI(world, player, pos[0], pos[1], pos[2]); - return true; - } else { - return false; - } + return this.standardOpenBehavior(world, x, y, z, player, 0); } - - public abstract void openGUI(World world, EntityPlayer player, int x, int y, int z); } diff --git a/src/main/java/com/hbm/blocks/turret/TurretBrandon.java b/src/main/java/com/hbm/blocks/turret/TurretBrandon.java index abd60db0a..29518386a 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretBrandon.java +++ b/src/main/java/com/hbm/blocks/turret/TurretBrandon.java @@ -23,9 +23,4 @@ public class TurretBrandon extends TurretBaseNT { return new TileEntityTurretBrandon(); return new TileEntityProxyCombo().inventory().power(); } - - @Override - public void openGUI(World world, EntityPlayer player, int x, int y, int z) { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } } diff --git a/src/main/java/com/hbm/blocks/turret/TurretChekhov.java b/src/main/java/com/hbm/blocks/turret/TurretChekhov.java index d04fa2532..a564148bb 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretChekhov.java +++ b/src/main/java/com/hbm/blocks/turret/TurretChekhov.java @@ -1,13 +1,10 @@ package com.hbm.blocks.turret; import com.hbm.blocks.BlockDummyable; -import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.turret.TileEntityTurretChekhov; -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.IBlockAccess; @@ -48,21 +45,4 @@ public class TurretChekhov extends BlockDummyable { this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) { - return true; - } else if(!player.isSneaking()) { - int[] pos = this.findCore(world, x, y, z); - - if(pos == null) - return false; - - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); - return true; - } else { - return false; - } - } } diff --git a/src/main/java/com/hbm/blocks/turret/TurretFriendly.java b/src/main/java/com/hbm/blocks/turret/TurretFriendly.java index 655f9814e..db9a51f44 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretFriendly.java +++ b/src/main/java/com/hbm/blocks/turret/TurretFriendly.java @@ -1,13 +1,10 @@ package com.hbm.blocks.turret; import com.hbm.blocks.BlockDummyable; -import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.turret.TileEntityTurretFriendly; -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.IBlockAccess; @@ -47,21 +44,4 @@ public class TurretFriendly extends BlockDummyable { this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) { - return true; - } else if(!player.isSneaking()) { - int[] pos = this.findCore(world, x, y, z); - - if(pos == null) - return false; - - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); - return true; - } else { - return false; - } - } } diff --git a/src/main/java/com/hbm/blocks/turret/TurretFritz.java b/src/main/java/com/hbm/blocks/turret/TurretFritz.java index b43858658..0c291c4af 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretFritz.java +++ b/src/main/java/com/hbm/blocks/turret/TurretFritz.java @@ -1,12 +1,9 @@ package com.hbm.blocks.turret; -import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.turret.TileEntityTurretFritz; -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; @@ -23,9 +20,4 @@ public class TurretFritz extends TurretBaseNT { return new TileEntityTurretFritz(); return new TileEntityProxyCombo().inventory().power().fluid(); } - - @Override - public void openGUI(World world, EntityPlayer player, int x, int y, int z) { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } } diff --git a/src/main/java/com/hbm/blocks/turret/TurretHoward.java b/src/main/java/com/hbm/blocks/turret/TurretHoward.java index 155364774..24ca9dfb8 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretHoward.java +++ b/src/main/java/com/hbm/blocks/turret/TurretHoward.java @@ -47,21 +47,4 @@ public class TurretHoward extends BlockDummyable { this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) { - return true; - } else if(!player.isSneaking()) { - int[] pos = this.findCore(world, x, y, z); - - if(pos == null) - return false; - - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); - return true; - } else { - return false; - } - } } diff --git a/src/main/java/com/hbm/blocks/turret/TurretHowardDamaged.java b/src/main/java/com/hbm/blocks/turret/TurretHowardDamaged.java index 42eff5702..236194b49 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretHowardDamaged.java +++ b/src/main/java/com/hbm/blocks/turret/TurretHowardDamaged.java @@ -4,6 +4,7 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.tileentity.turret.TileEntityTurretHowardDamaged; import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.IBlockAccess; @@ -43,4 +44,9 @@ public class TurretHowardDamaged extends BlockDummyable { this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float fX, float fY, float fZ) { + return false; + } } diff --git a/src/main/java/com/hbm/blocks/turret/TurretJeremy.java b/src/main/java/com/hbm/blocks/turret/TurretJeremy.java index 051b6037f..68dadbdfd 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretJeremy.java +++ b/src/main/java/com/hbm/blocks/turret/TurretJeremy.java @@ -1,13 +1,10 @@ package com.hbm.blocks.turret; import com.hbm.blocks.BlockDummyable; -import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.turret.TileEntityTurretJeremy; -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.IBlockAccess; @@ -47,21 +44,4 @@ public class TurretJeremy extends BlockDummyable { this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) { - return true; - } else if(!player.isSneaking()) { - int[] pos = this.findCore(world, x, y, z); - - if(pos == null) - return false; - - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); - return true; - } else { - return false; - } - } } diff --git a/src/main/java/com/hbm/blocks/turret/TurretMaxwell.java b/src/main/java/com/hbm/blocks/turret/TurretMaxwell.java index f3026cf58..7cd63716f 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretMaxwell.java +++ b/src/main/java/com/hbm/blocks/turret/TurretMaxwell.java @@ -23,9 +23,4 @@ public class TurretMaxwell extends TurretBaseNT { return new TileEntityTurretMaxwell(); return new TileEntityProxyCombo().inventory().power(); } - - @Override - public void openGUI(World world, EntityPlayer player, int x, int y, int z) { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } } \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/turret/TurretRichard.java b/src/main/java/com/hbm/blocks/turret/TurretRichard.java index f05c52385..0ced65b81 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretRichard.java +++ b/src/main/java/com/hbm/blocks/turret/TurretRichard.java @@ -1,13 +1,10 @@ package com.hbm.blocks.turret; import com.hbm.blocks.BlockDummyable; -import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.turret.TileEntityTurretRichard; -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.IBlockAccess; @@ -47,21 +44,4 @@ public class TurretRichard extends BlockDummyable { this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) { - return true; - } else if(!player.isSneaking()) { - int[] pos = this.findCore(world, x, y, z); - - if(pos == null) - return false; - - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); - return true; - } else { - return false; - } - } } diff --git a/src/main/java/com/hbm/blocks/turret/TurretSentry.java b/src/main/java/com/hbm/blocks/turret/TurretSentry.java index ecf9fe180..99fe28475 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretSentry.java +++ b/src/main/java/com/hbm/blocks/turret/TurretSentry.java @@ -36,7 +36,7 @@ public class TurretSentry extends BlockContainer { FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); return true; } else { - return true; + return false; } } diff --git a/src/main/java/com/hbm/blocks/turret/TurretTauon.java b/src/main/java/com/hbm/blocks/turret/TurretTauon.java index 5a8d044a2..e9e7a17e4 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretTauon.java +++ b/src/main/java/com/hbm/blocks/turret/TurretTauon.java @@ -1,13 +1,10 @@ package com.hbm.blocks.turret; import com.hbm.blocks.BlockDummyable; -import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.turret.TileEntityTurretTauon; -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.IBlockAccess; @@ -47,21 +44,4 @@ public class TurretTauon extends BlockDummyable { this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) { - return true; - } else if(!player.isSneaking()) { - int[] pos = this.findCore(world, x, y, z); - - if(pos == null) - return false; - - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); - return true; - } else { - return false; - } - } } diff --git a/src/main/java/com/hbm/crafting/ConsumableRecipes.java b/src/main/java/com/hbm/crafting/ConsumableRecipes.java index 3474dc44f..d4dd9d69c 100644 --- a/src/main/java/com/hbm/crafting/ConsumableRecipes.java +++ b/src/main/java/com/hbm/crafting/ConsumableRecipes.java @@ -120,6 +120,7 @@ public class ConsumableRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.fmn, 1), new Object[] { COAL.dust(), PO210.dust(), ST.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.five_htp, 1), new Object[] { COAL.dust(), EUPH.dust(), ModItems.canteen_fab }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.cigarette, 16), new Object[] { ASBESTOS.ingot(), ANY_TAR.any(), PO210.nugget(), DictFrame.fromOne(ModItems.plant_item, ItemEnums.EnumPlantType.TOBACCO) }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.crackpipe, 1), new Object[] { ModItems.catalytic_converter }); if(GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleMedicineRecipes) { CraftingManager.addShapelessAuto(new ItemStack(ModItems.siox, 8), new Object[] { COAL.dust(), ASBESTOS.dust(), GOLD.nugget() }); diff --git a/src/main/java/com/hbm/hazard/HazardRegistry.java b/src/main/java/com/hbm/hazard/HazardRegistry.java index a105d4e87..0031d4a30 100644 --- a/src/main/java/com/hbm/hazard/HazardRegistry.java +++ b/src/main/java/com/hbm/hazard/HazardRegistry.java @@ -127,6 +127,7 @@ public class HazardRegistry { public static final float ingot = 1.0F; public static final float gem = 1.0F; public static final float plate = 1.0F; + public static final float plateCast = 3.0F; public static final float powder_mult = 3.0F; public static final float powder = ingot * powder_mult; public static final float powder_tiny = nugget * powder_mult; diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 803de8b08..e46eaf7be 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -19,6 +19,8 @@ import com.hbm.hazard.HazardEntry; import com.hbm.hazard.HazardRegistry; import com.hbm.hazard.HazardSystem; import com.hbm.inventory.material.MaterialShapes; +import com.hbm.inventory.material.Mats; +import com.hbm.inventory.material.NTMMaterial; import com.hbm.items.ModItems; import com.hbm.items.ItemEnums.EnumBriquetteType; import com.hbm.items.ItemEnums.EnumCokeType; @@ -170,6 +172,8 @@ public class OreDictManager { public static final DictFrame DURA = new DictFrame("DuraSteel"); public static final DictFrame POLYMER = new DictFrame("Polymer"); public static final DictFrame BAKELITE = new DictFrame("Bakelite"); + public static final DictFrame PET = new DictFrame("PET"); + public static final DictFrame PVC = new DictFrame("PVC"); public static final DictFrame RUBBER = new DictFrame("Rubber"); public static final DictFrame MAGTUNG = new DictFrame("MagnetizedTungsten"); public static final DictFrame CMB = new DictFrame("CMBSteel"); @@ -260,6 +264,8 @@ public class OreDictManager { */ /** Any post oil polymer like teflon ("polymer") or bakelite */ public static final DictGroup ANY_PLASTIC = new DictGroup("AnyPlastic", POLYMER, BAKELITE); //using the Any prefix means that it's just the secondary prefix, and that shape prefixes are applicable + /** Any post vacuum polymer like PET or PVC */ + public static final DictGroup ANY_HARDPLASTIC = new DictGroup("AnyHardPlastic", PET, PVC); /** Any "powder" propellant like gunpowder, ballistite and cordite */ public static final DictFrame ANY_GUNPOWDER = new DictFrame("AnyPropellant"); /** Any smokeless powder like ballistite and cordite */ @@ -344,6 +350,8 @@ public class OreDictManager { POLYMER .ingot(ingot_polymer) .dust(powder_polymer) .block(block_polymer); BAKELITE .ingot(ingot_bakelite) .dust(powder_bakelite) .block(block_bakelite); RUBBER .ingot(ingot_rubber) .block(block_rubber); + PET .ingot(ingot_pet); + PVC .ingot(ingot_pvc); MAGTUNG .ingot(ingot_magnetized_tungsten) .dust(powder_magnetized_tungsten) .block(block_magnetized_tungsten); CMB .ingot(ingot_combine_steel) .dust(powder_combine_steel) .plate(plate_combine_steel) .block(block_combine_steel); DESH .nugget(nugget_desh) .ingot(ingot_desh) .dust(powder_desh) .block(block_desh); @@ -452,6 +460,10 @@ public class OreDictManager { OreDictionary.registerOre(KEY_CIRCUIT_BISMUTH, circuit_bismuth); OreDictionary.registerOre(KEY_CIRCUIT_BISMUTH, circuit_arsenic); + for(NTMMaterial mat : Mats.orderedList) { + for(String name : mat.names) OreDictionary.registerOre("plateTriple" + name, new ItemStack(ModItems.plate_cast, 1, mat.id)); + } + for(EnumBedrockOre ore : EnumBedrockOre.values()) { OreDictionary.registerOre("ore" + ore.oreName, new ItemStack(ModItems.ore_enriched, 1, ore.ordinal())); } @@ -535,6 +547,7 @@ public class OreDictManager { public static void registerGroups() { ANY_PLASTIC.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(BLOCK, true); + ANY_HARDPLASTIC.addPrefix(INGOT, true); ANY_TAR.addPrefix(ANY, false); } @@ -572,18 +585,19 @@ public class OreDictManager { /* * Quick access methods to grab ore names for recipes. */ - public String any() { return ANY + mats[0]; } - public String nugget() { return NUGGET + mats[0]; } - public String tiny() { return TINY + mats[0]; } - public String ingot() { return INGOT + mats[0]; } - public String dustTiny() { return DUSTTINY + mats[0]; } - public String dust() { return DUST + mats[0]; } - public String gem() { return GEM + mats[0]; } - public String crystal() { return CRYSTAL + mats[0]; } - public String plate() { return PLATE + mats[0]; } - public String billet() { return BILLET + mats[0]; } - public String block() { return BLOCK + mats[0]; } - public String ore() { return ORE + mats[0]; } + public String any() { return ANY + mats[0]; } + public String nugget() { return NUGGET + mats[0]; } + public String tiny() { return TINY + mats[0]; } + public String ingot() { return INGOT + mats[0]; } + public String dustTiny() { return DUSTTINY + mats[0]; } + public String dust() { return DUST + mats[0]; } + public String gem() { return GEM + mats[0]; } + public String crystal() { return CRYSTAL + mats[0]; } + public String plate() { return PLATE + mats[0]; } + public String plateCast() { return PLATECAST + mats[0]; } + public String billet() { return BILLET + mats[0]; } + public String block() { return BLOCK + mats[0]; } + public String ore() { return ORE + mats[0]; } public String[] anys() { return appendToAll(ANY); } public String[] nuggets() { return appendToAll(NUGGET); } public String[] tinys() { return appendToAll(TINY); } @@ -594,6 +608,7 @@ public class OreDictManager { public String[] gems() { return appendToAll(GEM); } public String[] crystals() { return appendToAll(CRYSTAL); } public String[] plates() { return appendToAll(PLATE); } + public String[] plateCasts() { return appendToAll(PLATECAST); } public String[] billets() { return appendToAll(BILLET); } public String[] blocks() { return appendToAll(BLOCK); } public String[] ores() { return appendToAll(ORE); } @@ -685,6 +700,10 @@ public class OreDictManager { hazMult = HazardRegistry.plate; return makeObject(PLATE, plate); } + public DictFrame plateCast(Object... plate) { + hazMult = HazardRegistry.plateCast; + return makeObject(PLATECAST, plate); + } public DictFrame billet(Object... billet) { hazMult = HazardRegistry.billet; return makeObject(BILLET, billet); diff --git a/src/main/java/com/hbm/inventory/OreNames.java b/src/main/java/com/hbm/inventory/OreNames.java index ab7653b78..5aaa55a62 100644 --- a/src/main/java/com/hbm/inventory/OreNames.java +++ b/src/main/java/com/hbm/inventory/OreNames.java @@ -14,6 +14,7 @@ public class OreNames { public static final String GEM = "gem"; public static final String CRYSTAL = "crystal"; public static final String PLATE = "plate"; + public static final String PLATECAST = "plateTriple"; public static final String BILLET = "billet"; public static final String BLOCK = "block"; public static final String ORE = "ore"; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineCatalyticReformer.java b/src/main/java/com/hbm/inventory/container/ContainerMachineCatalyticReformer.java index ceb23c863..d8b0842ae 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineCatalyticReformer.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineCatalyticReformer.java @@ -1,8 +1,11 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotMachineOutput; +import com.hbm.items.ModItems; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.machine.oil.TileEntityMachineCatalyticReformer; +import api.hbm.energy.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -70,14 +73,28 @@ public class ContainerMachineCatalyticReformer extends Container { if(!this.mergeItemStack(var5, 11, this.inventorySlots.size(), true)) { return null; } - } else if(!this.mergeItemStack(var5, 0, 1, false)) - if(!this.mergeItemStack(var5, 1, 2, false)) - if(!this.mergeItemStack(var5, 3, 4, false)) - if(!this.mergeItemStack(var5, 5, 6, false)) - if(!this.mergeItemStack(var5, 7, 8, false)) - if(!this.mergeItemStack(var5, 9, 11, false)) { + } else { + + if(var3.getItem() instanceof IBatteryItem) { + if(!this.mergeItemStack(var5, 0, 1, false)) { + return null; + } + } else if(var3.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(var5, 9, 10, false)) { + return null; + } + } else if(var3.getItem() == ModItems.catalytic_converter) { + if(!this.mergeItemStack(var5, 10, 11, false)) { + return null; + } + } else { + if(!this.mergeItemStack(var5, 1, 2, false)) + if(!this.mergeItemStack(var5, 3, 4, false)) + if(!this.mergeItemStack(var5, 5, 6, false)) + if(!this.mergeItemStack(var5, 7, 8, false)) return null; - } + } + } if(var5.stackSize == 0) { var4.putStack((ItemStack) null); diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineTurbofan.java b/src/main/java/com/hbm/inventory/container/ContainerMachineTurbofan.java index 2c7e09615..a01e1aced 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineTurbofan.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineTurbofan.java @@ -22,19 +22,18 @@ public class ContainerMachineTurbofan extends Container { this.addSlotToContainer(new Slot(tedf, 0, 17, 17)); this.addSlotToContainer(new SlotMachineOutput(tedf, 1, 17, 53)); - this.addSlotToContainer(new Slot(tedf, 2, 107, 17)); + this.addSlotToContainer(new Slot(tedf, 2, 98, 71)); + this.addSlotToContainer(new Slot(tedf, 3, 143, 71)); + this.addSlotToContainer(new Slot(tedf, 4, 44, 71)); - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 121 + i * 18)); } } - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 179)); } } @@ -45,40 +44,32 @@ public class ContainerMachineTurbofan extends Container { } @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { ItemStack var3 = null; Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { + + if(var4 != null && var4.getHasStack()) { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - - if (par2 <= 2) { - if (!this.mergeItemStack(var5, 3, this.inventorySlots.size(), true)) - { + + if(par2 <= 4) { + if(!this.mergeItemStack(var5, 5, this.inventorySlots.size(), true)) { return null; } - } - else if (!this.mergeItemStack(var5, 0, 1, false)) - { - if (!this.mergeItemStack(var5, 2, 3, false)) + } else if(!this.mergeItemStack(var5, 0, 1, false)) { + if(!this.mergeItemStack(var5, 2, 3, false)) return null; } - - if (var5.stackSize == 0) - { + + if(var5.stackSize == 0) { var4.putStack((ItemStack) null); - } - else - { + } else { var4.onSlotChanged(); } } - + return var3; - } + } @Override public boolean canInteractWith(EntityPlayer player) { diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 98f41b41b..459ca6658 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -234,15 +234,15 @@ public class Fluids { OXYHYDROGEN = new FluidType("OXYHYDROGEN", 0x483FC1, 0, 4, 2, EnumSymbol.NONE).addTraits(GASEOUS); RADIOSOLVENT = new FluidType("RADIOSOLVENT", 0xA4D7DD, 3, 3, 0, EnumSymbol.NONE).addTraits(LIQUID, LEADCON, new FT_Corrosive(50), new FT_VentRadiation(0.01F)); CHLORINE = new FluidType("CHLORINE", 0xBAB572, 4, 0, 0, EnumSymbol.OXIDIZER).addTraits(GASEOUS, new FT_Corrosive(25), new FT_Poison(true, 1)); - HEAVYOIL_VACUUM = new FluidType("HEAVYOIL_VACUUM", 0x131214, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); - REFORMATE = new FluidType("REFORMATE", 0x835472, 2, 2, 0, EnumSymbol.NONE).addTraits(LIQUID); - LIGHTOIL_VACUUM = new FluidType("LIGHTOIL_VACUUM", 0x8C8851, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID); + HEAVYOIL_VACUUM = new FluidType("HEAVYOIL_VACUUM", 0x131214, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(0x513F39, ExtContainer.CANISTER); + REFORMATE = new FluidType("REFORMATE", 0x835472, 2, 2, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(0xD180D6, ExtContainer.CANISTER); + LIGHTOIL_VACUUM = new FluidType("LIGHTOIL_VACUUM", 0x8C8851, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(0xB46B52, ExtContainer.CANISTER); SOURGAS = new FluidType("SOURGAS", 0xC9BE0D, 4, 4, 0, EnumSymbol.ACID).addTraits(GASEOUS, new FT_Corrosive(10)); - XYLENE = new FluidType("XYLENE", 0x5C4E76, 2, 3, 0, EnumSymbol.NONE).addTraits(LIQUID); - HEATINGOIL_VACUUM = new FluidType("HEATINGOIL_VACUUM", 0x211D06, 2, 2, 0, EnumSymbol.NONE).addTraits(LIQUID); - DIESEL_REFORM = new FluidType("DIESEL_REFORM", 0xCDC3C6, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID); - DIESEL_CRACK_REFORM = new FluidType("DIESEL_CRACK_REFORM",0xCDC3CC, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID); - KEROSENE_REFORM = new FluidType("KEROSENE_REFORM", 0xFFA5F3, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID); + XYLENE = new FluidType("XYLENE", 0x5C4E76, 2, 3, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(0xA380D6, ExtContainer.CANISTER); + HEATINGOIL_VACUUM = new FluidType("HEATINGOIL_VACUUM", 0x211D06, 2, 2, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(0x694235, ExtContainer.CANISTER); + DIESEL_REFORM = new FluidType("DIESEL_REFORM", 0xCDC3C6, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(0xFFC500, ExtContainer.CANISTER); + DIESEL_CRACK_REFORM = new FluidType("DIESEL_CRACK_REFORM",0xCDC3CC, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(0xFFC500, ExtContainer.CANISTER); + KEROSENE_REFORM = new FluidType("KEROSENE_REFORM", 0xFFA5F3, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(0xFF377D, ExtContainer.CANISTER); REFORMGAS = new FluidType(99, "REFORMGAS", 0x6362AE, 1, 4, 1, EnumSymbol.NONE).addTraits(GASEOUS); @@ -417,6 +417,8 @@ public class Fluids { double complexityChemplant = 1.1D; double complexityLubed = 1.15D; double complexityLeaded = 1.5D; + double complexityVacuum = 3.0D; + double complexityReform = 2.5D; double flammabilityLow = 0.25D; double flammabilityNormal = 1.0D; double flammabilityHigh = 2.0D; @@ -430,7 +432,7 @@ public class Fluids { registerCalculatedFuel(RECLAIMED, (baseline / 0.28 * flammabilityLow * demandLow * complexityRefinery * complexityFraction * complexityChemplant), 1.25D, FuelGrade.LOW); registerCalculatedFuel(PETROIL, (baseline / 0.28 * flammabilityLow * demandLow * complexityRefinery * complexityFraction * complexityChemplant * complexityLubed), 1.5D, FuelGrade.MEDIUM); registerCalculatedFuel(PETROIL_LEADED, (baseline / 0.28 * flammabilityLow * demandLow * complexityRefinery * complexityFraction * complexityChemplant * complexityLubed * complexityLeaded), 1.5D, FuelGrade.MEDIUM); - registerCalculatedFuel(HEATINGOIL, (baseline / 0.31 * flammabilityNormal * demandLow * complexityRefinery * complexityFraction * complexityFraction), 1.0D, FuelGrade.LOW); + registerCalculatedFuel(HEATINGOIL, (baseline / 0.31 * flammabilityNormal * demandLow * complexityRefinery * complexityFraction * complexityFraction), 1.25D, FuelGrade.LOW); registerCalculatedFuel(NAPHTHA, (baseline / 0.25 * flammabilityLow * demandLow * complexityRefinery), 1.5D, FuelGrade.MEDIUM); registerCalculatedFuel(NAPHTHA_CRACK, (baseline / 0.40 * flammabilityLow * demandLow * complexityRefinery * complexityCracking), 1.5D, FuelGrade.MEDIUM); registerCalculatedFuel(GASOLINE, (baseline / 0.20 * flammabilityNormal * demandLow * complexityRefinery * complexityChemplant), 2.5D, FuelGrade.HIGH); @@ -446,8 +448,17 @@ public class Fluids { registerCalculatedFuel(LPG, (baseline / 0.05 * flammabilityNormal * demandMedium * complexityRefinery * complexityChemplant), 2.5, FuelGrade.HIGH); registerCalculatedFuel(NITAN, KEROSENE.getTrait(FT_Flammable.class).getHeatEnergy() * 25L, 2.5, FuelGrade.HIGH); registerCalculatedFuel(BALEFIRE, KEROSENE.getTrait(FT_Flammable.class).getHeatEnergy() * 100L, 2.5, FuelGrade.HIGH); + registerCalculatedFuel(HEAVYOIL_VACUUM, (baseline / 0.4 * flammabilityLow * demandLow * complexityVacuum), 1.25D, FuelGrade.LOW); + registerCalculatedFuel(REFORMATE, (baseline / 0.25 * flammabilityNormal * demandHigh * complexityVacuum), 2.5D, FuelGrade.HIGH); + registerCalculatedFuel(LIGHTOIL_VACUUM, (baseline / 0.20 * flammabilityNormal * demandHigh * complexityVacuum), 1.5D, FuelGrade.MEDIUM); + registerCalculatedFuel(SOURGAS, (baseline / 0.15 * flammabilityLow * demandVeryLow * complexityVacuum), 0, null); + registerCalculatedFuel(XYLENE, (baseline / 0.15 * flammabilityNormal * demandMedium * complexityVacuum * complexityFraction), 2.5D, FuelGrade.HIGH); + registerCalculatedFuel(HEATINGOIL_VACUUM, (baseline / 0.24 * flammabilityNormal * demandLow * complexityVacuum * complexityFraction), 1.25D, FuelGrade.LOW); + registerCalculatedFuel(DIESEL_REFORM, DIESEL.getTrait(FT_Flammable.class).getHeatEnergy() * complexityReform, 2.5D, FuelGrade.HIGH); + registerCalculatedFuel(DIESEL_CRACK_REFORM, DIESEL_CRACK.getTrait(FT_Flammable.class).getHeatEnergy() * complexityReform, 2.5D, FuelGrade.HIGH); + registerCalculatedFuel(KEROSENE_REFORM, KEROSENE.getTrait(FT_Flammable.class).getHeatEnergy() * complexityReform, 1.5D, FuelGrade.AERO); + registerCalculatedFuel(REFORMGAS, (baseline / 0.06 * flammabilityHigh * demandLow * complexityVacuum * complexityFraction), 1.25D, FuelGrade.GAS); - //TODO: consult the spreadsheet for the values of the vacuum oils //all hail the spreadsheet //the spreadsheet must not be questioned //none may enter the orb- i mean the spreadsheet diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineTurbofan.java b/src/main/java/com/hbm/inventory/gui/GUIMachineTurbofan.java index 27fbdedb4..60b4fe459 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineTurbofan.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineTurbofan.java @@ -4,6 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineTurbofan; import com.hbm.lib.RefStrings; +import com.hbm.render.util.GaugeUtil; +import com.hbm.render.util.GaugeUtil.Gauge; import com.hbm.tileentity.machine.TileEntityMachineTurbofan; import net.minecraft.client.Minecraft; @@ -13,55 +15,49 @@ import net.minecraft.util.ResourceLocation; public class GUIMachineTurbofan extends GuiInfoContainer { - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_turbofan.png"); - private TileEntityMachineTurbofan diFurnace; + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/generators/gui_turbofan.png"); + private TileEntityMachineTurbofan turbofan; public GUIMachineTurbofan(InventoryPlayer invPlayer, TileEntityMachineTurbofan tedf) { super(new ContainerMachineTurbofan(invPlayer, tedf)); - diFurnace = tedf; + turbofan = tedf; this.xSize = 176; - this.ySize = 166; + this.ySize = 203; } @Override public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); - diFurnace.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 53, guiTop + 69 - 52, 34, 52); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152 - 9, guiTop + 69 - 52, 16, 52, diFurnace.power, diFurnace.maxPower); - - String[] text = new String[] { "Acceptable upgrades:", - " -Pink (afterburner)" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 96, guiTop + 21, 8, 8, guiLeft + 96, guiTop + 21 + 16, text); + turbofan.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 35, guiTop + 17, 34, 52); + if(turbofan.showBlood) turbofan.blood.renderTankInfo(this, mouseX, mouseY, guiLeft + 98, guiTop + 17, 16, 16); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 143, guiTop + 17, 16, 52, turbofan.power, turbofan.maxPower); } @Override protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); + String name = this.turbofan.hasCustomInventoryName() ? this.turbofan.getInventoryName() : I18n.format(this.turbofan.getInventoryName()); - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(name, 43 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); } @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - if(diFurnace.power > 0) { - int i = (int)diFurnace.getPowerScaled(52); - drawTexturedModalRect(guiLeft + 152 - 9, guiTop + 69 - i, 176 + 16, 52 - i, 16, i); - } + int i = (int)turbofan.getPowerScaled(52); + drawTexturedModalRect(guiLeft + 152 - 9, guiTop + 69 - i, 176 + 16, 52 - i, 16, i); - if(diFurnace.afterburner > 0) { - int i = Math.min(diFurnace.afterburner, 6); - drawTexturedModalRect(guiLeft + 107, guiTop + 53, 176, (i - 1) * 16, 16, 16); + if(turbofan.afterburner > 0) { + int a = Math.min(turbofan.afterburner, 6); + drawTexturedModalRect(guiLeft + 98, guiTop + 44, 176, (a - 1) * 16, 16, 16); } - this.drawInfoPanel(guiLeft + 96, guiTop + 21, 8, 8, 8); - - diFurnace.tank.renderTank(guiLeft + 53, guiTop + 69, this.zLevel, 34, 52); + if(turbofan.showBlood) GaugeUtil.renderGauge(Gauge.ROUND_SMALL, guiLeft + 97, guiTop + 16, this.zLevel, (double) turbofan.blood.getFill() / (double) turbofan.blood.getMaxFill()); + turbofan.tank.renderTank(guiLeft + 35, guiTop + 69, this.zLevel, 34, 52); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUITurretBase.java b/src/main/java/com/hbm/inventory/gui/GUITurretBase.java index 7624ac28a..c4c79e551 100644 --- a/src/main/java/com/hbm/inventory/gui/GUITurretBase.java +++ b/src/main/java/com/hbm/inventory/gui/GUITurretBase.java @@ -93,9 +93,11 @@ public abstract class GUITurretBase extends GuiInfoContainer { lines.add(list.subList(0, list.size() / 2).toArray()); lines.add(list.subList(list.size() / 2, list.size()).toArray()); } else { - lines.add(list.subList(0, list.size() / 3).toArray()); - lines.add(list.subList(list.size() / 3, list.size() / 3 * 2).toArray()); - lines.add(list.subList(list.size() / 3 * 2, list.size()).toArray()); + int bound0 = (int) Math.ceil(list.size() / 3D); + int bound1 = (int) Math.ceil(list.size() / 3D * 2D); + lines.add(list.subList(0, bound0).toArray()); + lines.add(list.subList(bound0, bound1).toArray()); + lines.add(list.subList(bound1, list.size()).toArray()); } lines.add(new Object[] {I18nUtil.resolveKey(selected.getDisplayName())}); diff --git a/src/main/java/com/hbm/inventory/gui/GUITurretFritz.java b/src/main/java/com/hbm/inventory/gui/GUITurretFritz.java index 30dc93484..6bb6eefde 100644 --- a/src/main/java/com/hbm/inventory/gui/GUITurretFritz.java +++ b/src/main/java/com/hbm/inventory/gui/GUITurretFritz.java @@ -28,8 +28,7 @@ public class GUITurretFritz extends GUITurretBase { super.drawGuiContainerBackgroundLayer(p_146976_1_, mX, mY); FluidTank tank = ((TileEntityTurretFritz)this.turret).tank; - - tank.renderTank(guiLeft + 134, guiTop + 116, this.zLevel, 7, 52); + tank.renderTank(guiLeft + 134, guiTop + 115, this.zLevel, 7, 52); } protected ResourceLocation getTexture() { diff --git a/src/main/java/com/hbm/inventory/material/MaterialShapes.java b/src/main/java/com/hbm/inventory/material/MaterialShapes.java index 773a4aafb..4a21f6c2a 100644 --- a/src/main/java/com/hbm/inventory/material/MaterialShapes.java +++ b/src/main/java/com/hbm/inventory/material/MaterialShapes.java @@ -19,6 +19,7 @@ public class MaterialShapes { public static final MaterialShapes CRYSTAL = new MaterialShapes(INGOT.quantity, "crystal"); public static final MaterialShapes DUST = new MaterialShapes(INGOT.quantity, "dust"); public static final MaterialShapes PLATE = new MaterialShapes(INGOT.quantity, "plate"); + public static final MaterialShapes CASTPLATE = new MaterialShapes(INGOT.quantity * 3, "plateTriple"); public static final MaterialShapes QUART = new MaterialShapes(162); public static final MaterialShapes BLOCK = new MaterialShapes(INGOT.quantity * 9, "block"); diff --git a/src/main/java/com/hbm/inventory/material/Mats.java b/src/main/java/com/hbm/inventory/material/Mats.java index cc979d2b4..a25c822da 100644 --- a/src/main/java/com/hbm/inventory/material/Mats.java +++ b/src/main/java/com/hbm/inventory/material/Mats.java @@ -47,7 +47,7 @@ public class Mats { public static final int _AS = 30; //Vanilla and vanilla-like - public static final NTMMaterial MAT_STONE = makeSmeltable(_VS + 00, df("Stone"), 0x4D2F23).omitAutoGen(); + public static final NTMMaterial MAT_STONE = makeSmeltable(_VS + 00, df("Stone"), 0x808080, 0x4D2F23).omitAutoGen(); public static final NTMMaterial MAT_CARBON = makeAdditive( 1499, df("Carbon"), 0x404040).omitAutoGen(); public static final NTMMaterial MAT_COAL = make( 1400, COAL) .setConversion(MAT_CARBON, 2, 1).omitAutoGen(); public static final NTMMaterial MAT_LIGNITE = make( 1401, LIGNITE) .setConversion(MAT_CARBON, 3, 1); @@ -55,7 +55,7 @@ public class Mats { public static final NTMMaterial MAT_PETCOKE = make( 1411, PETCOKE) .setConversion(MAT_CARBON, 4, 3); public static final NTMMaterial MAT_LIGCOKE = make( 1412, LIGCOKE) .setConversion(MAT_CARBON, 4, 3); public static final NTMMaterial MAT_GRAPHITE = make( 1420, GRAPHITE) .setConversion(MAT_CARBON, 1, 1); - public static final NTMMaterial MAT_IRON = makeSmeltable(2600, IRON, 0xFFA259).omitAutoGen(); + public static final NTMMaterial MAT_IRON = makeSmeltable(2600, IRON, 0xFFFFFF, 0xFFA259).omitAutoGen(); public static final NTMMaterial MAT_GOLD = makeSmeltable(7900, GOLD, 0xE8D754).omitAutoGen(); public static final NTMMaterial MAT_REDSTONE = makeSmeltable(_VS + 01, REDSTONE, 0xFF1000).omitAutoGen(); public static final NTMMaterial MAT_OBSIDIAN = makeSmeltable(_VS + 02, df("Obsidian"), 0x3D234D).omitAutoGen(); @@ -85,7 +85,7 @@ public class Mats { public static final NTMMaterial MAT_TECHNIETIUM = makeSmeltable(4399, TC99, 0xCADFDF).setShapes(NUGGET, BILLET, INGOT, BLOCK); public static final NTMMaterial MAT_RADIUM = makeSmeltable(8826, RA226, 0xE9FAF6).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_ACTINIUM = makeSmeltable(8927, AC227, 0x958989).setShapes(NUGGET, BILLET, INGOT); - public static final NTMMaterial MAT_CO60 = makeSmeltable(2760, CO60, 0x8F72AE).setShapes(NUGGET, BILLET, INGOT, DUST); + public static final NTMMaterial MAT_CO60 = makeSmeltable(2760, CO60, 0x92A1C0, 0x8F72AE).setShapes(NUGGET, BILLET, INGOT, DUST); public static final NTMMaterial MAT_AU198 = makeSmeltable(7998, AU198, 0xE8D754).setShapes(NUGGET, BILLET, INGOT, DUST); public static final NTMMaterial MAT_PB209 = makeSmeltable(8209, PB209, 0x7B535D).setShapes(NUGGET, BILLET, INGOT, DUST); public static final NTMMaterial MAT_SCHRABIDIUM = makeSmeltable(12626, SA326, 0x32FFFF).setShapes(NUGGET, WIRE, BILLET, INGOT, DUST, PLATE, BLOCK); @@ -97,16 +97,16 @@ public class Mats { //Base metals public static final NTMMaterial MAT_TITANIUM = makeSmeltable(2200, TI, 0xA99E79).setShapes(INGOT, DUST, PLATE, BLOCK); public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xC18336).setShapes(WIRE, INGOT, DUST, PLATE, BLOCK); - public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x977474).setShapes(WIRE, INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xD0B8EB).setShapes(WIRE, INGOT, DUST, PLATE, BLOCK); + public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x565656, 0x977474).setShapes(WIRE, INGOT, DUST, BLOCK); + public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xE8F2F9, 0xD0B8EB).setShapes(WIRE, INGOT, DUST, PLATE, BLOCK); public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0x646470).setShapes(NUGGET, INGOT, DUST, PLATE, BLOCK); public static final NTMMaterial MAT_BISMUTH = makeSmeltable(8300, df("Bismuth"), 0xB200FF).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_ARSENIC = makeSmeltable(3300, AS, 0x558080).setShapes(NUGGET, INGOT); public static final NTMMaterial MAT_TANTALIUM = makeSmeltable(7300, TA, 0xA89B74).setShapes(NUGGET, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_NIOBIUM = makeSmeltable(4100, NB, 0xD576B1).setShapes(NUGGET, DUSTTINY, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_BERYLLIUM = makeSmeltable(400, BE, 0xAE9572).setShapes(NUGGET, INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_COBALT = makeSmeltable(2700, CO, 0x8F72AE).setShapes(NUGGET, DUSTTINY, BILLET, INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_BORON = makeSmeltable(500, B, 0xAD72AE).setShapes(DUSTTINY, INGOT, DUST, BLOCK); + public static final NTMMaterial MAT_COBALT = makeSmeltable(2700, CO, 0x92A1C0, 0x8F72AE).setShapes(NUGGET, DUSTTINY, BILLET, INGOT, DUST, BLOCK); + public static final NTMMaterial MAT_BORON = makeSmeltable(500, B, 0x8D98A2, 0xAD72AE).setShapes(DUSTTINY, INGOT, DUST, BLOCK); //Alloys public static final NTMMaterial MAT_STEEL = makeSmeltable(_AS + 0, STEEL, 0x4A4A4A).setShapes(DUSTTINY, INGOT, DUST, PLATE, BLOCK); @@ -121,17 +121,20 @@ public class Mats { public static final NTMMaterial MAT_CMB = makeSmeltable(_AS + 9, CMB, 0x6F6FB4).setShapes(INGOT, DUST, PLATE, BLOCK); public static final NTMMaterial MAT_FLUX = makeAdditive(_AS + 10, df("Flux"), 0xDECCAD).setShapes(DUST); public static final NTMMaterial MAT_SLAG = makeSmeltable(_AS + 11, SLAG, 0x6C6562).setShapes(BLOCK); + + public static NTMMaterial makeSmeltable(int id, DictFrame dict, int color) { return makeSmeltable(id, dict, color, color); } + public static NTMMaterial makeAdditive(int id, DictFrame dict, int color) { return makeAdditive(id, dict, color, color); } public static NTMMaterial make(int id, DictFrame dict) { return new NTMMaterial(id, dict); } - public static NTMMaterial makeSmeltable(int id, DictFrame dict, int color) { - return new NTMMaterial(id, dict).smeltable(SmeltingBehavior.SMELTABLE).setMoltenColor(color); + public static NTMMaterial makeSmeltable(int id, DictFrame dict, int solidColor, int moltenColor) { + return new NTMMaterial(id, dict).smeltable(SmeltingBehavior.SMELTABLE).setSolidColor(solidColor).setMoltenColor(moltenColor); } - public static NTMMaterial makeAdditive(int id, DictFrame dict, int color) { - return new NTMMaterial(id, dict).smeltable(SmeltingBehavior.ADDITIVE).setMoltenColor(color); + public static NTMMaterial makeAdditive(int id, DictFrame dict, int solidColor, int moltenColor) { + return new NTMMaterial(id, dict).smeltable(SmeltingBehavior.ADDITIVE).setSolidColor(solidColor).setMoltenColor(moltenColor); } public static DictFrame df(String string) { diff --git a/src/main/java/com/hbm/inventory/material/NTMMaterial.java b/src/main/java/com/hbm/inventory/material/NTMMaterial.java index 9fd26a97e..3df654ff4 100644 --- a/src/main/java/com/hbm/inventory/material/NTMMaterial.java +++ b/src/main/java/com/hbm/inventory/material/NTMMaterial.java @@ -14,7 +14,7 @@ public class NTMMaterial { public MaterialShapes[] shapes = new MaterialShapes[0]; public boolean omitItemGen = false; public SmeltingBehavior smeltable = SmeltingBehavior.NOT_SMELTABLE; - public int solidColor = 0xFF4A00; //TODO + public int solidColor = 0xFF4A00; public int moltenColor = 0xFF4A00; public NTMMaterial smeltsInto; @@ -67,6 +67,11 @@ public class NTMMaterial { return this; } + public NTMMaterial setSolidColor(int color) { + this.solidColor = color; + return this; + } + public NTMMaterial setMoltenColor(int color) { this.moltenColor = color; return this; diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 7ce2a4fb2..3f6afa76a 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -170,7 +170,6 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.asbestos_cloth, 4), new AStack[] {new OreDictStack(ASBESTOS.ingot(), 2), new ComparableStack(Items.string, 6), new ComparableStack(Blocks.wool, 1), },50); makeRecipe(new ComparableStack(ModItems.filter_coal, 1), new AStack[] {new OreDictStack(COAL.dust(), 4), new ComparableStack(Items.string, 6), new ComparableStack(Items.paper, 1), },50); makeRecipe(new ComparableStack(ModItems.centrifuge_element, 1), new AStack[] {new OreDictStack(STEEL.plate(), 4), new OreDictStack(TI.plate(), 4), new ComparableStack(ModItems.motor, 1), }, 100); - //makeRecipe(new ComparableStack(ModItems.centrifuge_tower, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 4), new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },150); makeRecipe(new ComparableStack(ModItems.magnet_circular, 1), new AStack[] {new ComparableStack(ModBlocks.fusion_conductor, 5), new OreDictStack(STEEL.ingot(), 4), new OreDictStack(ALLOY.plate(), 6), },150); makeRecipe(new ComparableStack(ModItems.reactor_core, 1), new AStack[] {new OreDictStack(PB.ingot(), 8), new OreDictStack(BE.ingot(), 6), new OreDictStack(STEEL.plate(), 16), new OreDictStack(OreDictManager.getReflector(), 8), new OreDictStack(FIBER.ingot(), 2) },100); makeRecipe(new ComparableStack(ModItems.rtg_unit, 1), new AStack[] {new ComparableStack(ModItems.thermo_element, 2), new ComparableStack(ModItems.board_copper, 1), new OreDictStack(PB.ingot(), 2), new OreDictStack(STEEL.plate(), 2), new ComparableStack(ModItems.circuit_copper, 1), },100); @@ -193,7 +192,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.warhead_buster_medium, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_medium, 1), new ComparableStack(ModBlocks.det_cord, 4), new ComparableStack(ModBlocks.det_charge, 4), },150); makeRecipe(new ComparableStack(ModItems.warhead_buster_large, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_large, 1), new ComparableStack(ModBlocks.det_charge, 8), },200); makeRecipe(new ComparableStack(ModItems.warhead_nuclear, 1), new AStack[] {new ComparableStack(ModItems.boy_shielding, 1), new ComparableStack(ModItems.boy_target, 1), new ComparableStack(ModItems.boy_bullet, 1), new ComparableStack(ModItems.boy_propellant, 1), new ComparableStack(ModItems.wire_red_copper, 6), new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 12), },300); - makeRecipe(new ComparableStack(ModItems.warhead_mirv, 1), new AStack[] {new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 12), new OreDictStack(PU239.ingot(), 1), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8), new OreDictStack(BE.ingot(), 4), new OreDictStack(LI.ingot(), 4), new ComparableStack(ModItems.cell_deuterium, 6), },500); + makeRecipe(new ComparableStack(ModItems.warhead_mirv, 1), new AStack[] {new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 12), new OreDictStack(PU239.ingot(), 1), new ComparableStack(ModItems.ball_tatb, 8), new OreDictStack(BE.ingot(), 4), new OreDictStack(LI.ingot(), 4), new ComparableStack(ModItems.cell_deuterium, 6), },500); makeRecipe(new ComparableStack(ModItems.warhead_volcano, 1), new AStack[] {new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModBlocks.det_nuke, 3), new OreDictStack(U238.block(), 24), new ComparableStack(ModItems.circuit_tantalium, 5) }, 600); makeRecipe(new ComparableStack(ModItems.warhead_thermo_endo, 1), new AStack[] {new ComparableStack(ModBlocks.therm_endo, 2), new OreDictStack(TI.plate(), 12), new OreDictStack(STEEL.plate(), 6), },300); makeRecipe(new ComparableStack(ModItems.warhead_thermo_exo, 1), new AStack[] {new ComparableStack(ModBlocks.therm_exo, 2), new OreDictStack(TI.plate(), 12), new OreDictStack(STEEL.plate(), 6), },300); diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index b9598c739..018a06ff6 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -110,7 +110,9 @@ public class ChemplantRecipes extends SerializableRecipe { .outputItems(new ItemStack(ModItems.ingot_rubber))); recipes.add(new ChemRecipe(94, "PET", 100) .inputItems(new OreDictStack(AL.dust())) - .inputFluids(new FluidStack(Fluids.XYLENE, 500)) + .inputFluids( + new FluidStack(Fluids.XYLENE, 500), + new FluidStack(Fluids.OXYGEN, 100)) .outputItems(new ItemStack(ModItems.ingot_pet))); recipes.add(new ChemRecipe(89, "DYNAMITE", 50) .inputItems( diff --git a/src/main/java/com/hbm/inventory/recipes/CrackingRecipes.java b/src/main/java/com/hbm/inventory/recipes/CrackingRecipes.java index b8cfd357c..7bfe680ec 100644 --- a/src/main/java/com/hbm/inventory/recipes/CrackingRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CrackingRecipes.java @@ -40,15 +40,17 @@ public class CrackingRecipes extends SerializableRecipe { @Override public void registerDefaults() { - cracking.put(Fluids.OIL, new Pair(new FluidStack(Fluids.CRACKOIL, oil_crack_oil), new FluidStack(Fluids.PETROLEUM, oil_crack_petro))); - cracking.put(Fluids.BITUMEN, new Pair(new FluidStack(Fluids.OIL, bitumen_crack_oil), new FluidStack(Fluids.AROMATICS, bitumen_crack_aroma))); - cracking.put(Fluids.SMEAR, new Pair(new FluidStack(Fluids.NAPHTHA, smear_crack_napht), new FluidStack(Fluids.PETROLEUM, smear_crack_petro))); - cracking.put(Fluids.GAS, new Pair(new FluidStack(Fluids.PETROLEUM, gas_crack_petro), new FluidStack(Fluids.UNSATURATEDS, gas_crack_unsat))); - cracking.put(Fluids.DIESEL, new Pair(new FluidStack(Fluids.KEROSENE, diesel_crack_kero), new FluidStack(Fluids.PETROLEUM, diesel_crack_petro))); - cracking.put(Fluids.DIESEL_CRACK, new Pair(new FluidStack(Fluids.KEROSENE, diesel_crack_kero), new FluidStack(Fluids.PETROLEUM, diesel_crack_petro))); - cracking.put(Fluids.KEROSENE, new Pair(new FluidStack(Fluids.PETROLEUM, kero_crack_petro), new FluidStack(Fluids.NONE, 0))); - cracking.put(Fluids.WOODOIL, new Pair(new FluidStack(Fluids.HEATINGOIL, wood_crack_heat), new FluidStack(Fluids.AROMATICS, wood_crack_aroma))); - cracking.put(Fluids.XYLENE, new Pair(new FluidStack(Fluids.AROMATICS, xyl_crack_aroma), new FluidStack(Fluids.PETROLEUM, xyl_crack_petro))); + cracking.put(Fluids.OIL, new Pair(new FluidStack(Fluids.CRACKOIL, oil_crack_oil), new FluidStack(Fluids.PETROLEUM, oil_crack_petro))); + cracking.put(Fluids.BITUMEN, new Pair(new FluidStack(Fluids.OIL, bitumen_crack_oil), new FluidStack(Fluids.AROMATICS, bitumen_crack_aroma))); + cracking.put(Fluids.SMEAR, new Pair(new FluidStack(Fluids.NAPHTHA, smear_crack_napht), new FluidStack(Fluids.PETROLEUM, smear_crack_petro))); + cracking.put(Fluids.GAS, new Pair(new FluidStack(Fluids.PETROLEUM, gas_crack_petro), new FluidStack(Fluids.UNSATURATEDS, gas_crack_unsat))); + cracking.put(Fluids.DIESEL, new Pair(new FluidStack(Fluids.KEROSENE, diesel_crack_kero), new FluidStack(Fluids.PETROLEUM, diesel_crack_petro))); + cracking.put(Fluids.DIESEL_CRACK, new Pair(new FluidStack(Fluids.KEROSENE, diesel_crack_kero), new FluidStack(Fluids.PETROLEUM, diesel_crack_petro))); + cracking.put(Fluids.KEROSENE, new Pair(new FluidStack(Fluids.PETROLEUM, kero_crack_petro), new FluidStack(Fluids.NONE, 0))); + cracking.put(Fluids.WOODOIL, new Pair(new FluidStack(Fluids.HEATINGOIL, wood_crack_heat), new FluidStack(Fluids.AROMATICS, wood_crack_aroma))); + cracking.put(Fluids.XYLENE, new Pair(new FluidStack(Fluids.AROMATICS, xyl_crack_aroma), new FluidStack(Fluids.PETROLEUM, xyl_crack_petro))); + cracking.put(Fluids.HEATINGOIL_VACUUM, new Pair(new FluidStack(Fluids.HEATINGOIL, 80), new FluidStack(Fluids.REFORMGAS, 20))); + cracking.put(Fluids.REFORMATE, new Pair(new FluidStack(Fluids.UNSATURATEDS, 40), new FluidStack(Fluids.REFORMGAS, 60))); } public static Pair getCracking(FluidType oil) { diff --git a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java index 9a9f3cbcd..608e6f39e 100644 --- a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java @@ -33,6 +33,7 @@ public class MixerRecipes extends SerializableRecipe { recipes.put(Fluids.NITAN, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.KEROSENE, 600)).setStack2(new FluidStack(Fluids.MERCURY, 200)).setSolid(new ComparableStack(ModItems.powder_nitan_mix))); recipes.put(Fluids.FRACKSOL, new MixerRecipe(1_000, 20).setStack1(new FluidStack(Fluids.WATER, 1_000)).setStack2(new FluidStack(Fluids.PETROLEUM, 100)).setSolid(new OreDictStack(OreDictManager.S.dust()))); recipes.put(Fluids.ENDERJUICE, new MixerRecipe(100, 100).setStack1(new FluidStack(Fluids.XPJUICE, 500)).setSolid(new OreDictStack(OreDictManager.DIAMOND.dust()))); + recipes.put(Fluids.SALIENT, new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.SEEDSLURRY, 500)).setStack2(new FluidStack(Fluids.BLOOD, 500))); recipes.put(Fluids.SOLVENT, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.NAPHTHA, 500)).setStack2(new FluidStack(Fluids.AROMATICS, 500))); recipes.put(Fluids.SULFURIC_ACID, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.ACID, 800)).setSolid(new OreDictStack(OreDictManager.S.dust()))); diff --git a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java index f39f48c4e..05385ff54 100644 --- a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java @@ -71,51 +71,40 @@ public class SolidificationRecipes extends SerializableRecipe { registerRecipe(CRACKOIL, SF_CRACK, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRACK)); registerRecipe(COALOIL, SF_COALOIL, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.COAL)); registerRecipe(HEAVYOIL, SF_HEAVY, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)); + registerRecipe(HEAVYOIL_VACUUM, SF_HEAVY, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)); registerRecipe(BITUMEN, SF_BITUMEN, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)); registerRecipe(COALCREOSOTE, SF_CREOSOTE, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.COAL)); registerRecipe(WOODOIL, SF_WOOD, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.WOOD)); - registerRecipe(SMEAR, SF_SMEAR, ModItems.solid_fuel); - registerRecipe(HEATINGOIL, SF_HEATING, ModItems.solid_fuel); - registerRecipe(RECLAIMED, SF_RECLAIMED, ModItems.solid_fuel); - registerRecipe(PETROIL, SF_PETROIL, ModItems.solid_fuel); - registerRecipe(LUBRICANT, SF_LUBE, ModItems.solid_fuel); - registerRecipe(NAPHTHA, SF_NAPH, ModItems.solid_fuel); - registerRecipe(NAPHTHA_CRACK, SF_NAPH, ModItems.solid_fuel); - registerRecipe(DIESEL, SF_DIESEL, ModItems.solid_fuel); - registerRecipe(DIESEL_CRACK, SF_DIESEL, ModItems.solid_fuel); - registerRecipe(LIGHTOIL, SF_LIGHT, ModItems.solid_fuel); - registerRecipe(LIGHTOIL_CRACK, SF_LIGHT, ModItems.solid_fuel); - registerRecipe(KEROSENE, SF_KEROSENE, ModItems.solid_fuel); - registerRecipe(GAS, SF_GAS, ModItems.solid_fuel); - registerRecipe(PETROLEUM, SF_PETROLEUM, ModItems.solid_fuel); - registerRecipe(LPG, SF_LPG, ModItems.solid_fuel); - registerRecipe(BIOGAS, SF_BIOGAS, ModItems.solid_fuel); - registerRecipe(BIOFUEL, SF_BIOFUEL, ModItems.solid_fuel); - registerRecipe(AROMATICS, SF_AROMA, ModItems.solid_fuel); - registerRecipe(UNSATURATEDS, SF_UNSAT, ModItems.solid_fuel); - registerRecipe(BALEFIRE, 250, ModItems.solid_fuel_bf); registerSFAuto(SMEAR); registerSFAuto(HEATINGOIL); + registerSFAuto(HEATINGOIL_VACUUM); registerSFAuto(RECLAIMED); registerSFAuto(PETROIL); - //registerSFAuto(LUBRICANT); registerSFAuto(NAPHTHA); registerSFAuto(NAPHTHA_CRACK); registerSFAuto(DIESEL); + registerSFAuto(DIESEL_REFORM); registerSFAuto(DIESEL_CRACK); + registerSFAuto(DIESEL_CRACK_REFORM); registerSFAuto(LIGHTOIL); registerSFAuto(LIGHTOIL_CRACK); + registerSFAuto(LIGHTOIL_VACUUM); registerSFAuto(KEROSENE); registerSFAuto(GAS); + registerSFAuto(SOURGAS); + registerSFAuto(REFORMGAS); + registerSFAuto(SYNGAS); registerSFAuto(PETROLEUM); registerSFAuto(LPG); registerSFAuto(BIOGAS); registerSFAuto(BIOFUEL); registerSFAuto(AROMATICS); registerSFAuto(UNSATURATEDS); + registerSFAuto(REFORMATE); + registerSFAuto(XYLENE); registerSFAuto(BALEFIRE, 24000000L, ModItems.solid_fuel_bf); //holy shit this is energy dense*/ } diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 4042ead8f..635d6a3af 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -10,6 +10,7 @@ import static com.hbm.inventory.OreDictManager.*; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.AssemblerRecipes; import com.hbm.items.ItemAmmoEnums.*; import com.hbm.items.ModItems; @@ -389,7 +390,7 @@ public class AnvilRecipes { new ComparableStack(ModBlocks.concrete_asbestos, 4), new ComparableStack(ModBlocks.steel_scaffold, 16), new ComparableStack(ModBlocks.deco_pipe_quad, 12), - new OreDictStack("dustSulfur", 32), + new OreDictStack(Fluids.SOURGAS.getDict(1_000), 8), }, new AnvilOutput(new ItemStack(ModBlocks.machine_deuterium_tower))).setTier(4)); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index e041649d6..b3c69cab1 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -763,6 +763,7 @@ public class ModItems { public static Item mold_base; public static Item mold; public static Item scraps; + public static Item plate_cast; public static Item part_lithium; public static Item part_beryllium; @@ -777,7 +778,9 @@ public class ModItems { public static Item laser_crystal_digamma; public static Item thermo_element; - //public static Item limiter; + + public static Item catalytic_converter; + public static Item crackpipe; public static Item pellet_rtg_depleted; @@ -898,25 +901,7 @@ public class ModItems { public static Item canister_empty; public static Item canister_full; - @Deprecated public static Item canister_smear; - @Deprecated public static Item canister_canola; - @Deprecated public static Item canister_oil; - @Deprecated public static Item canister_fuel; - @Deprecated public static Item canister_kerosene; - @Deprecated public static Item canister_reoil; - @Deprecated public static Item canister_petroil; public static Item canister_napalm; - @Deprecated public static Item canister_gasoline; - @Deprecated public static Item canister_NITAN; - @Deprecated public static Item canister_fracksol; - - @Deprecated public static Item canister_heavyoil; - @Deprecated public static Item canister_bitumen; - @Deprecated public static Item canister_heatingoil; - @Deprecated public static Item canister_naphtha; - @Deprecated public static Item canister_lightoil; - @Deprecated public static Item canister_biofuel; - @Deprecated public static Item canister_ethanol; public static Item gas_empty; public static Item gas_full; @@ -3415,6 +3400,7 @@ public class ModItems { mold_base = new Item().setUnlocalizedName("mold_base").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":mold_base"); mold = new ItemMold().setUnlocalizedName("mold").setCreativeTab(MainRegistry.controlTab); scraps = new ItemScraps().setUnlocalizedName("scraps").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scraps"); + plate_cast = new ItemPlateCast().setUnlocalizedName("plate_cast").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_cast"); part_lithium = new Item().setUnlocalizedName("part_lithium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":part_lithium"); part_beryllium = new Item().setUnlocalizedName("part_beryllium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":part_beryllium"); @@ -3430,29 +3416,13 @@ public class ModItems { thermo_element = new Item().setUnlocalizedName("thermo_element").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":thermo_element"); //limiter = new Item().setUnlocalizedName("limiter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":limiter"); + catalytic_converter = new Item().setUnlocalizedName("catalytic_converter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":catalytic_converter"); antiknock = new Item().setUnlocalizedName("antiknock").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":antiknock"); canister_empty = new ItemCustomLore().setUnlocalizedName("canister_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":canister_empty"); canister_full = new ItemCanister().setUnlocalizedName("canister_full").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_empty"); - canister_smear = new ItemCustomLore().setUnlocalizedName("canister_smear").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_smear"); - canister_canola = new ItemCustomLore().setUnlocalizedName("canister_canola").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_canola"); - canister_oil = new ItemCustomLore().setUnlocalizedName("canister_oil").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_oil"); - canister_fuel = new ItemCustomLore().setUnlocalizedName("canister_fuel").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_fuel"); - canister_kerosene = new ItemCustomLore().setUnlocalizedName("canister_kerosene").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_kerosene"); - canister_reoil = new ItemCustomLore().setUnlocalizedName("canister_reoil").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_reoil"); - canister_petroil = new ItemCustomLore().setUnlocalizedName("canister_petroil").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_petroil"); canister_napalm = new ItemCustomLore().setUnlocalizedName("canister_napalm").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_napalm"); - canister_gasoline = new ItemCustomLore().setUnlocalizedName("canister_gasoline").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_gasoline"); - canister_fracksol = new ItemCustomLore().setUnlocalizedName("canister_fracksol").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_fracksol"); - canister_NITAN = new ItemCustomLore().setUnlocalizedName("canister_NITAN").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_superfuel"); - canister_heavyoil = new ItemCustomLore().setUnlocalizedName("canister_heavyoil").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_heavyoil"); - canister_bitumen = new ItemCustomLore().setUnlocalizedName("canister_bitumen").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_bitumen"); - canister_heatingoil = new ItemCustomLore().setUnlocalizedName("canister_heatingoil").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_heatingoil"); - canister_naphtha = new ItemCustomLore().setUnlocalizedName("canister_naphtha").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_naphtha"); - canister_lightoil = new ItemCustomLore().setUnlocalizedName("canister_lightoil").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_lightoil"); - canister_biofuel = new ItemCustomLore().setUnlocalizedName("canister_biofuel").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_biofuel"); - canister_ethanol = new ItemCustomLore().setUnlocalizedName("canister_ethanol").setCreativeTab(null).setTextureName(RefStrings.MODID + ":canister_ethanol"); gas_empty = new Item().setUnlocalizedName("gas_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":gas_empty"); gas_full = new Item().setUnlocalizedName("gas_full").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.gas_empty).setTextureName(RefStrings.MODID + ":gas_full"); gas_petroleum = new Item().setUnlocalizedName("gas_petroleum").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.gas_empty).setTextureName(RefStrings.MODID + ":gas_petroleum"); @@ -3532,6 +3502,7 @@ public class ModItems { gun_kit_2 = new ItemSyringe().setUnlocalizedName("gun_kit_2").setMaxStackSize(16).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":gun_kit_2"); cbt_device = new ItemSyringe().setUnlocalizedName("cbt_device").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":cbt_device"); cigarette = new ItemCigarette().setUnlocalizedName("cigarette").setFull3D().setMaxStackSize(16).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cigarette"); + crackpipe = new ItemCigarette().setUnlocalizedName("crackpipe").setFull3D().setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":crackpipe"); attachment_mask = new ItemModGasmask().setUnlocalizedName("attachment_mask").setTextureName(RefStrings.MODID + ":attachment_mask"); attachment_mask_mono = new ItemModGasmask().setUnlocalizedName("attachment_mask_mono").setTextureName(RefStrings.MODID + ":attachment_mask_mono"); @@ -6310,6 +6281,9 @@ public class ModItems { GameRegistry.registerItem(plate_armor_fau, plate_armor_fau.getUnlocalizedName()); GameRegistry.registerItem(plate_armor_dnt, plate_armor_dnt.getUnlocalizedName()); + //Heavy/Cast Plate + GameRegistry.registerItem(plate_cast, plate_cast.getUnlocalizedName()); + //Boards GameRegistry.registerItem(board_copper, board_copper.getUnlocalizedName()); @@ -6644,24 +6618,7 @@ public class ModItems { GameRegistry.registerItem(antiknock, antiknock.getUnlocalizedName()); GameRegistry.registerItem(canister_empty, canister_empty.getUnlocalizedName()); GameRegistry.registerItem(canister_full, canister_full.getUnlocalizedName()); - GameRegistry.registerItem(canister_oil, canister_oil.getUnlocalizedName()); - GameRegistry.registerItem(canister_heavyoil, canister_heavyoil.getUnlocalizedName()); - GameRegistry.registerItem(canister_bitumen, canister_bitumen.getUnlocalizedName()); - GameRegistry.registerItem(canister_smear, canister_smear.getUnlocalizedName()); - GameRegistry.registerItem(canister_heatingoil, canister_heatingoil.getUnlocalizedName()); - GameRegistry.registerItem(canister_canola, canister_canola.getUnlocalizedName()); - GameRegistry.registerItem(canister_naphtha, canister_naphtha.getUnlocalizedName()); - GameRegistry.registerItem(canister_fuel, canister_fuel.getUnlocalizedName()); - GameRegistry.registerItem(canister_kerosene, canister_kerosene.getUnlocalizedName()); - GameRegistry.registerItem(canister_lightoil, canister_lightoil.getUnlocalizedName()); - GameRegistry.registerItem(canister_reoil, canister_reoil.getUnlocalizedName()); - GameRegistry.registerItem(canister_petroil, canister_petroil.getUnlocalizedName()); - GameRegistry.registerItem(canister_biofuel, canister_biofuel.getUnlocalizedName()); - GameRegistry.registerItem(canister_ethanol, canister_ethanol.getUnlocalizedName()); GameRegistry.registerItem(canister_napalm, canister_napalm.getUnlocalizedName()); - GameRegistry.registerItem(canister_gasoline, canister_gasoline.getUnlocalizedName()); - GameRegistry.registerItem(canister_fracksol, canister_fracksol.getUnlocalizedName()); - GameRegistry.registerItem(canister_NITAN, canister_NITAN.getUnlocalizedName()); //Gas Tanks GameRegistry.registerItem(gas_empty, gas_empty.getUnlocalizedName()); @@ -6896,7 +6853,7 @@ public class ModItems { //Generator Stuff GameRegistry.registerItem(thermo_element, thermo_element.getUnlocalizedName()); - //GameRegistry.registerItem(limiter, limiter.getUnlocalizedName()); + GameRegistry.registerItem(catalytic_converter, catalytic_converter.getUnlocalizedName()); //AMS Components GameRegistry.registerItem(ams_focus_blank, ams_focus_blank.getUnlocalizedName()); @@ -7974,6 +7931,7 @@ public class ModItems { GameRegistry.registerItem(chocolate_milk, chocolate_milk.getUnlocalizedName()); GameRegistry.registerItem(cbt_device, cbt_device.getUnlocalizedName()); GameRegistry.registerItem(cigarette, cigarette.getUnlocalizedName()); + GameRegistry.registerItem(crackpipe, crackpipe.getUnlocalizedName()); //Armor mods GameRegistry.registerItem(attachment_mask, attachment_mask.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/machine/ItemMold.java b/src/main/java/com/hbm/items/machine/ItemMold.java index f01ddeb26..6da8ca650 100644 --- a/src/main/java/com/hbm/items/machine/ItemMold.java +++ b/src/main/java/com/hbm/items/machine/ItemMold.java @@ -47,6 +47,8 @@ public class ItemMold extends Item { registerMold(new MoldShape( 3, S, "plate", MaterialShapes.PLATE)); registerMold(new MoldWire( 4, S, "wire")); + registerMold(new MoldShape( 19, S, "plate_cast", MaterialShapes.CASTPLATE)); + registerMold(new MoldMulti( 5, S, "blade", MaterialShapes.INGOT.q(3), Mats.MAT_TITANIUM, new ItemStack(ModItems.blade_titanium), Mats.MAT_TUNGSTEN, new ItemStack(ModItems.blade_tungsten))); @@ -173,7 +175,7 @@ public class ItemMold extends Item { public ItemStack getOutput(NTMMaterial mat) { for(String name : mat.names) { - String od = shape.name().toLowerCase() + name; + String od = shape.name() + name; List ores = OreDictionary.getOres(od); if(!ores.isEmpty()) { ItemStack copy = ores.get(0).copy(); @@ -192,7 +194,7 @@ public class ItemMold extends Item { @Override public String getTitle() { - return I18nUtil.resolveKey("shape." + shape.name().toLowerCase()) + " x" + amount; + return I18nUtil.resolveKey("shape." + shape.name()) + " x" + amount; } } diff --git a/src/main/java/com/hbm/items/machine/ItemScraps.java b/src/main/java/com/hbm/items/machine/ItemScraps.java index f192407a1..bba193c51 100644 --- a/src/main/java/com/hbm/items/machine/ItemScraps.java +++ b/src/main/java/com/hbm/items/machine/ItemScraps.java @@ -51,7 +51,7 @@ public class ItemScraps extends Item { NTMMaterial mat = Mats.matById.get(stack.getItemDamage()); if(mat != null) { - return mat.moltenColor; + return mat.solidColor; } return 0xffffff; diff --git a/src/main/java/com/hbm/items/special/ItemCigarette.java b/src/main/java/com/hbm/items/special/ItemCigarette.java index 5e960f35d..458f9dc24 100644 --- a/src/main/java/com/hbm/items/special/ItemCigarette.java +++ b/src/main/java/com/hbm/items/special/ItemCigarette.java @@ -3,6 +3,7 @@ package com.hbm.items.special; import java.util.List; import com.hbm.extprop.HbmLivingProps; +import com.hbm.items.ModItems; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; @@ -14,6 +15,8 @@ import net.minecraft.item.EnumAction; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; @@ -40,9 +43,18 @@ public class ItemCigarette extends Item { stack.stackSize--; if(!world.isRemote) { - HbmLivingProps.incrementBlackLung(player, 2000); - HbmLivingProps.incrementAsbestos(player, 2000); - HbmLivingProps.incrementRadiation(player, 100F); + + if(this == ModItems.cigarette) { + HbmLivingProps.incrementBlackLung(player, 2000); + HbmLivingProps.incrementAsbestos(player, 2000); + HbmLivingProps.incrementRadiation(player, 100F); + } + + if(this == ModItems.crackpipe) { + HbmLivingProps.incrementBlackLung(player, 500); + player.addPotionEffect(new PotionEffect(Potion.confusion.id, 200, 0)); + player.heal(10F); + } world.playSoundEffect(player.posX, player.posY, player.posZ, "hbm:player.cough", 1.0F, 1.0F); @@ -60,9 +72,25 @@ public class ItemCigarette extends Item { @Override @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - list.add(EnumChatFormatting.RED + "✓ Asbestos filter"); - list.add(EnumChatFormatting.RED + "✓ High in tar"); - list.add(EnumChatFormatting.RED + "✓ Tobacco contains 100% Polonium-210"); - list.add(EnumChatFormatting.RED + "✓ Yum"); + + if(this == ModItems.cigarette) { + list.add(EnumChatFormatting.RED + "✓ Asbestos filter"); + list.add(EnumChatFormatting.RED + "✓ High in tar"); + list.add(EnumChatFormatting.RED + "✓ Tobacco contains 100% Polonium-210"); + list.add(EnumChatFormatting.RED + "✓ Yum"); + } else { + String[] colors = new String[] { + EnumChatFormatting.RED + "", + EnumChatFormatting.GOLD + "", + EnumChatFormatting.YELLOW + "", + EnumChatFormatting.GREEN + "", + EnumChatFormatting.AQUA + "", + EnumChatFormatting.BLUE + "", + EnumChatFormatting.DARK_PURPLE + "", + EnumChatFormatting.LIGHT_PURPLE + "", + }; + int len = 2000; + list.add("This can't be good for me, but I feel " + colors[(int)(System.currentTimeMillis() % len * colors.length / len)] + "GREAT"); + } } } diff --git a/src/main/java/com/hbm/items/special/ItemPlateCast.java b/src/main/java/com/hbm/items/special/ItemPlateCast.java new file mode 100644 index 000000000..79b602774 --- /dev/null +++ b/src/main/java/com/hbm/items/special/ItemPlateCast.java @@ -0,0 +1,84 @@ +package com.hbm.items.special; + +import java.util.List; + +import com.hbm.inventory.material.MaterialShapes; +import com.hbm.inventory.material.Mats; +import com.hbm.inventory.material.NTMMaterial; +import com.hbm.inventory.material.Mats.MaterialStack; +import com.hbm.items.ModItems; +import com.hbm.util.I18nUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.StatCollector; + +public class ItemPlateCast extends Item { + + public ItemPlateCast() { + this.setHasSubtypes(true); + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tab, List list) { + list.add(new ItemStack(item, 1, Mats.MAT_IRON.id)); + list.add(new ItemStack(item, 1, Mats.MAT_STEEL.id)); + list.add(new ItemStack(item, 1, Mats.MAT_COPPER.id)); + } + + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int layer) { + + NTMMaterial mat = Mats.matById.get(stack.getItemDamage()); + + if(mat != null) { + return mat.solidColor; + } + + return 0xffffff; + } + + @Override + public String getItemStackDisplayName(ItemStack stack) { + + NTMMaterial mat = Mats.matById.get(stack.getItemDamage()); + + if(mat == null) { + return "UNDEFINED"; + } + + String matName = I18nUtil.resolveKey(mat.getUnlocalizedName()); + return StatCollector.translateToLocalFormatted(this.getUnlocalizedNameInefficiently(stack) + ".name", matName); + } + + public static MaterialStack getMats(ItemStack stack) { + + if(stack.getItem() != ModItems.plate_cast) return null; + + NTMMaterial mat = Mats.matById.get(stack.getItemDamage()); + if(mat == null) return null; + + int amount = MaterialShapes.INGOT.q(1); + + if(stack.hasTagCompound()) { + amount = stack.getTagCompound().getInteger("amount"); + } + + return new MaterialStack(mat, amount); + } + + public static ItemStack create(MaterialStack stack) { + if(stack.material == null) + return new ItemStack(ModItems.nothing); //why do i bother adding checks for fucking everything when they don't work + ItemStack scrap = new ItemStack(ModItems.plate_cast, 1, stack.material.id); + scrap.stackTagCompound = new NBTTagCompound(); + scrap.stackTagCompound.setInteger("amount", stack.amount); + return scrap; + } +} diff --git a/src/main/java/com/hbm/lib/Library.java b/src/main/java/com/hbm/lib/Library.java index 3fb4c0c6b..bd96c150b 100644 --- a/src/main/java/com/hbm/lib/Library.java +++ b/src/main/java/com/hbm/lib/Library.java @@ -167,7 +167,6 @@ public class Library { return true; if((tileentity != null && (tileentity instanceof IFluidAcceptor || tileentity instanceof IFluidSource)) || - world.getBlock(x, y, z) == ModBlocks.dummy_port_turbofan || world.getBlock(x, y, z) == ModBlocks.reactor_hatch || world.getBlock(x, y, z) == ModBlocks.reactor_conductor || world.getBlock(x, y, z) == ModBlocks.fusion_hatch || @@ -394,11 +393,6 @@ public class Library { Block block = worldObj.getBlock(x, y, z); TileEntity tileentity = worldObj.getTileEntity(x, y, z); - //Turbofan - if(block == ModBlocks.dummy_port_turbofan) - { - tileentity = worldObj.getTileEntity(((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetX, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetY, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetZ); - } //Large Nuclear Reactor if(block == ModBlocks.reactor_hatch && worldObj.getBlock(x, y, z + 2) == ModBlocks.reactor_computer) { diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 75fc1c7c4..d63b923e3 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -765,6 +765,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.struct_plasma_core, 1), new Object[] { "CBC", "BHB", "CBC", 'C', ModItems.circuit_gold, 'B', ModBlocks.machine_lithium_battery, 'H', ModBlocks.fusion_heater }); addShapelessAuto(new ItemStack(ModBlocks.fusion_heater), new Object[] { ModBlocks.fusion_hatch }); addShapelessAuto(new ItemStack(ModItems.energy_core), new Object[] { ModItems.fusion_core, ModItems.fuse }); + addRecipeAuto(new ItemStack(ModItems.catalytic_converter, 1), new Object[] { "PCP", "PBP", "PCP", 'P', ANY_HARDPLASTIC.ingot(), 'C', CO.dust(), 'B', BI.ingot() }); addRecipeAuto(new ItemStack(ModItems.upgrade_nullifier, 1), new Object[] { "SPS", "PUP", "SPS", 'S', STEEL.plate(), 'P', ModItems.powder_fire, 'U', ModItems.upgrade_template }); addRecipeAuto(new ItemStack(ModItems.upgrade_smelter, 1), new Object[] { "PHP", "CUC", "DTD", 'P', CU.plate(), 'H', Blocks.hopper, 'C', ModItems.coil_tungsten, 'U', ModItems.upgrade_template, 'D', ModItems.coil_copper, 'T', ModBlocks.machine_transformer }); @@ -913,24 +914,6 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.holotape_image, 1, EnumHoloImage.HOLO_RESTORED.ordinal()), new Object[] { new ItemStack(ModItems.holotape_image, 1, EnumHoloImage.HOLO_DIGAMMA.ordinal()), KEY_TOOL_SCREWDRIVER, ModItems.ducttape, ModItems.armor_polish }); addShapelessAuto(new ItemStack(ModItems.holotape_damaged), new Object[] { DictFrame.fromOne(ModItems.holotape_image, EnumHoloImage.HOLO_RESTORED), ModBlocks.muffler, ModItems.crt_display, ModItems.gem_alexandrite /* placeholder for amplifier */ }); - addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.SMEAR.getID()), new Object[] { ModItems.canister_smear }); - addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.LUBRICANT.getID()), new Object[] { ModItems.canister_canola }); - addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.OIL.getID()), new Object[] { ModItems.canister_oil }); - addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.DIESEL.getID()), new Object[] { ModItems.canister_fuel }); - addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.KEROSENE.getID()), new Object[] { ModItems.canister_kerosene }); - addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.RECLAIMED.getID()), new Object[] { ModItems.canister_reoil }); - addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.PETROIL.getID()), new Object[] { ModItems.canister_petroil }); - addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.GASOLINE_LEADED.getID()), new Object[] { ModItems.canister_gasoline }); - addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.FRACKSOL.getID()), new Object[] { ModItems.canister_fracksol }); - addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.NITAN.getID()), new Object[] { ModItems.canister_NITAN }); - addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.HEAVYOIL.getID()), new Object[] { ModItems.canister_heavyoil }); - addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.BITUMEN.getID()), new Object[] { ModItems.canister_bitumen }); - addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.HEATINGOIL.getID()), new Object[] { ModItems.canister_heatingoil }); - addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.NAPHTHA.getID()), new Object[] { ModItems.canister_naphtha }); - addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.LIGHTOIL.getID()), new Object[] { ModItems.canister_lightoil }); - addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.BIOFUEL.getID()), new Object[] { ModItems.canister_biofuel }); - addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.ETHANOL.getID()), new Object[] { ModItems.canister_ethanol }); - addRecipeAuto(DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC, 4), new Object[] { " I ", "CPC", " I ", 'I', IRON.ingot(), 'C', CU.ingot(), 'P', IRON.plate() }); addRecipeAuto(DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_HYDRAULIC, 4), new Object[] { " I ", "CPC", " I ", 'I', STEEL.ingot(), 'C', TI.ingot(), 'P', Fluids.LUBRICANT.getDict(1000) }); addRecipeAuto(DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_ELECTRIC, 4), new Object[] { " I ", "CPC", " I ", 'I', TCALLOY.ingot(), 'C', ANY_PLASTIC.ingot(), 'P', ModItems.motor }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 1b3af8b6b..3fb2c196c 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1014,6 +1014,25 @@ public class MainRegistry { ignoreMappings.add("hbm:item.gun_revolver_iron"); ignoreMappings.add("hbm:item.gun_calamity_dual"); ignoreMappings.add("hbm:item.gun_revolver_lead"); + ignoreMappings.add("hbm:tile.dummy_block_turbofan"); + ignoreMappings.add("hbm:tile.dummy_port_turbofan"); + ignoreMappings.add("hbm:item.canister_smear"); + ignoreMappings.add("hbm:item.canister_canola"); + ignoreMappings.add("hbm:item.canister_oil"); + ignoreMappings.add("hbm:item.canister_fuel"); + ignoreMappings.add("hbm:item.canister_kerosene"); + ignoreMappings.add("hbm:item.canister_reoil"); + ignoreMappings.add("hbm:item.canister_petroil"); + ignoreMappings.add("hbm:item.canister_gasoline"); + ignoreMappings.add("hbm:item.canister_fracksol"); + ignoreMappings.add("hbm:item.canister_NITAN"); + ignoreMappings.add("hbm:item.canister_heavyoil"); + ignoreMappings.add("hbm:item.canister_bitumen"); + ignoreMappings.add("hbm:item.canister_heatingoil"); + ignoreMappings.add("hbm:item.canister_naphtha"); + ignoreMappings.add("hbm:item.canister_lightoil"); + ignoreMappings.add("hbm:item.canister_biofuel"); + ignoreMappings.add("hbm:item.canister_ethanol"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index ae26d9693..29e4cc9de 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -100,7 +100,6 @@ public class NEIConfig implements IConfigureNEI { } API.hideItem(new ItemStack(ModBlocks.dummy_block_assembler)); API.hideItem(new ItemStack(ModBlocks.dummy_block_drill)); - API.hideItem(new ItemStack(ModBlocks.dummy_block_turbofan)); API.hideItem(new ItemStack(ModBlocks.dummy_block_ams_base)); API.hideItem(new ItemStack(ModBlocks.dummy_block_ams_emitter)); API.hideItem(new ItemStack(ModBlocks.dummy_block_ams_limiter)); @@ -110,7 +109,6 @@ public class NEIConfig implements IConfigureNEI { API.hideItem(new ItemStack(ModBlocks.dummy_block_puf6)); API.hideItem(new ItemStack(ModBlocks.dummy_port_assembler)); API.hideItem(new ItemStack(ModBlocks.dummy_port_drill)); - API.hideItem(new ItemStack(ModBlocks.dummy_port_turbofan)); API.hideItem(new ItemStack(ModBlocks.dummy_port_ams_base)); API.hideItem(new ItemStack(ModBlocks.dummy_port_ams_emitter)); API.hideItem(new ItemStack(ModBlocks.dummy_port_ams_limiter)); @@ -166,5 +164,4 @@ public class NEIConfig implements IConfigureNEI { public String getVersion() { return RefStrings.VERSION; } - } diff --git a/src/main/java/com/hbm/render/tileentity/RenderCatalyticReformer.java b/src/main/java/com/hbm/render/tileentity/RenderCatalyticReformer.java index 1fb51904a..602e1d30a 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderCatalyticReformer.java +++ b/src/main/java/com/hbm/render/tileentity/RenderCatalyticReformer.java @@ -7,6 +7,7 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; import com.hbm.main.ResourceManager; import com.hbm.render.item.ItemRenderBase; import com.hbm.render.util.HorsePronter; @@ -46,37 +47,39 @@ public class RenderCatalyticReformer extends TileEntitySpecialRenderer implement ResourceManager.catalytic_reformer.renderAll(); GL11.glShadeModel(GL11.GL_FLAT); - /// rapidly spinning dicks /// - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glTranslated(-1.125, 1.375, 1); - double s = 0.125D; - GL11.glScaled(s, s, s); - GL11.glRotated(System.currentTimeMillis() / 5D % 360D, 0, -1, 0); - GL11.glTranslated(0, 0.1, -0.5); - - this.bindTexture(extra); - HorsePronter.reset(); - double r = 60; - HorsePronter.pose(HorsePronter.id_body, 0, -r, 0); - HorsePronter.pose(HorsePronter.id_tail, 0, 45, 90); - HorsePronter.pose(HorsePronter.id_lbl, 0, -90 + r, 35); - HorsePronter.pose(HorsePronter.id_rbl, 0, -90 + r, -35); - HorsePronter.pose(HorsePronter.id_lfl, 0, r - 10, 5); - HorsePronter.pose(HorsePronter.id_rfl, 0, r - 10, -5); - HorsePronter.pose(HorsePronter.id_head, 0, r, 0); - HorsePronter.enableHorn(); - HorsePronter.enableWings(); - HorsePronter.pront(); - - ItemStack stack = new ItemStack(ModItems.cigarette); - double scale = 0.25; - GL11.glTranslated(0.02, 1.13, -0.42); - GL11.glScaled(scale, scale, scale); - GL11.glRotated(90, 0, -1, 0); - GL11.glRotated(60, 0, 0, -1); - bindTexture(TextureMap.locationItemsTexture); - IIcon icon = stack.getIconIndex(); - ItemRenderer.renderItemIn2D(Tessellator.instance, icon.getMaxU(), icon.getMinV(), icon.getMinU(), icon.getMaxV(), icon.getIconWidth(), icon.getIconHeight(), 0.0625F); + if(MainRegistry.polaroidID == 11) { + /// rapidly spinning dicks /// + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + GL11.glTranslated(-1.125, 1.375, 1); + double s = 0.125D; + GL11.glScaled(s, s, s); + GL11.glRotated(System.currentTimeMillis() / 5D % 360D, 0, -1, 0); + GL11.glTranslated(0, 0.1, -0.5); + + this.bindTexture(extra); + HorsePronter.reset(); + double r = 60; + HorsePronter.pose(HorsePronter.id_body, 0, -r, 0); + HorsePronter.pose(HorsePronter.id_tail, 0, 45, 90); + HorsePronter.pose(HorsePronter.id_lbl, 0, -90 + r, 35); + HorsePronter.pose(HorsePronter.id_rbl, 0, -90 + r, -35); + HorsePronter.pose(HorsePronter.id_lfl, 0, r - 10, 5); + HorsePronter.pose(HorsePronter.id_rfl, 0, r - 10, -5); + HorsePronter.pose(HorsePronter.id_head, 0, r, 0); + HorsePronter.enableHorn(); + HorsePronter.enableWings(); + HorsePronter.pront(); + + ItemStack stack = new ItemStack(ModItems.cigarette); + double scale = 0.25; + GL11.glTranslated(0.02, 1.13, -0.42); + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, -1, 0); + GL11.glRotated(60, 0, 0, -1); + bindTexture(TextureMap.locationItemsTexture); + IIcon icon = stack.getIconIndex(); + ItemRenderer.renderItemIn2D(Tessellator.instance, icon.getMaxU(), icon.getMinV(), icon.getMinU(), icon.getMaxV(), icon.getIconWidth(), icon.getIconHeight(), 0.0625F); + } GL11.glEnable(GL11.GL_CULL_FACE); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/render/tileentity/RenderTurbofan.java b/src/main/java/com/hbm/render/tileentity/RenderTurbofan.java index 7f322a458..72f226c48 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderTurbofan.java +++ b/src/main/java/com/hbm/render/tileentity/RenderTurbofan.java @@ -20,10 +20,7 @@ public class RenderTurbofan extends TileEntitySpecialRenderer { GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glRotatef(180, 0F, 1F, 0F); - GL11.glRotatef(270, 0F, 1F, 0F); - - switch(tileEntity.getBlockMetadata()) { + switch(tileEntity.getBlockMetadata() - 10) { case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index cbff3354f..262bfb654 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -2,6 +2,9 @@ package com.hbm.tileentity.machine; import java.util.List; +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.handler.MultiblockHandlerXR; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.UpgradeManager; @@ -14,6 +17,7 @@ import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade; import com.hbm.inventory.gui.GUIMachineTurbofan; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.lib.Library; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; @@ -24,7 +28,7 @@ import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyGenerator; -import api.hbm.fluid.IFluidStandardReceiver; +import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -33,7 +37,6 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; @@ -41,14 +44,16 @@ import net.minecraft.util.DamageSource; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineTurbofan extends TileEntityMachineBase implements ISidedInventory, IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider { +public class TileEntityMachineTurbofan extends TileEntityMachineBase implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardTransceiver, IGUIProvider { public long power; - public static final long maxPower = 500_000; + public static final long maxPower = 1_000_000; public FluidTank tank; + public FluidTank blood; public int afterburner; public boolean wasOn; + public boolean showBlood = false; public float spin; public float lastSpin; @@ -57,8 +62,9 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements private AudioWrapper audio; public TileEntityMachineTurbofan() { - super(3); - tank = new FluidTank(Fluids.KEROSENE, 24000, 0); + super(5); + tank = new FluidTank(Fluids.KEROSENE, 24000); + blood = new FluidTank(Fluids.BLOOD, 24000); } @Override @@ -72,6 +78,8 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements this.power = nbt.getLong("powerTime"); tank.readFromNBT(nbt, "fuel"); + blood.readFromNBT(nbt, "blood"); + this.showBlood = nbt.getBoolean("showBlood"); } @Override @@ -80,6 +88,8 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements nbt.setLong("powerTime", power); tank.writeToNBT(nbt, "fuel"); + blood.writeToNBT(nbt, "blood"); + nbt.setBoolean("showBlood", showBlood); } public long getPowerScaled(long i) { @@ -88,7 +98,7 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements protected DirPos[] getConPos() { - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10).getRotation(ForgeDirection.UP); ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); return new DirPos[] { @@ -104,12 +114,31 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements if(!worldObj.isRemote) { - for(DirPos pos : getConPos()) { - this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + //meta below 12 means that it's an old multiblock configuration + if(this.getBlockMetadata() < 12) { + //get old direction + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + //remove tile from the world to prevent inventory dropping + worldObj.removeTileEntity(xCoord, yCoord, zCoord); + //use fillspace to create a new multiblock configuration + worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.machine_turbofan, dir.ordinal() + 10, 3); + MultiblockHandlerXR.fillSpace(worldObj, xCoord, yCoord, zCoord, ((BlockDummyable) ModBlocks.machine_turbofan).getDimensions(), ModBlocks.machine_turbofan, dir); + //restore connections + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + ((BlockDummyable) ModBlocks.machine_turbofan).makeExtra(worldObj, xCoord + dir.offsetX, yCoord, zCoord + dir.offsetZ); + ((BlockDummyable) ModBlocks.machine_turbofan).makeExtra(worldObj, xCoord + dir.offsetX - rot.offsetX, yCoord, zCoord + dir.offsetZ - rot.offsetZ); + ((BlockDummyable) ModBlocks.machine_turbofan).makeExtra(worldObj, xCoord - dir.offsetX, yCoord, zCoord - dir.offsetZ); + ((BlockDummyable) ModBlocks.machine_turbofan).makeExtra(worldObj, xCoord - dir.offsetX - rot.offsetX, yCoord, zCoord - dir.offsetZ - rot.offsetZ); + //load the tile data to restore the old values + NBTTagCompound data = new NBTTagCompound(); + this.writeToNBT(data); + worldObj.getTileEntity(xCoord, yCoord, zCoord).readFromNBT(data); + return; } + tank.setType(4, slots); tank.loadTank(0, 1, slots); + blood.setTankType(Fluids.BLOOD); this.wasOn = false; @@ -119,27 +148,32 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements if(slots[2] != null && slots[2].getItem() == ModItems.flame_pony) this.afterburner = 100; - long burn = 0; + long burnValue = 0; int amount = 1 + this.afterburner; if(tank.getTankType().hasTrait(FT_Combustible.class) && tank.getTankType().getTrait(FT_Combustible.class).getGrade() == FuelGrade.AERO) { - burn = tank.getTankType().getTrait(FT_Combustible.class).getCombustionEnergy() / 1_000; + burnValue = tank.getTankType().getTrait(FT_Combustible.class).getCombustionEnergy() / 1_000; } - int toBurn = Math.min(amount, this.tank.getFill()); + int amountToBurn = Math.min(amount, this.tank.getFill()); - if(toBurn > 0) { + if(amountToBurn > 0) { this.wasOn = true; - this.tank.setFill(this.tank.getFill() - toBurn); - this.power += burn * toBurn; - if(this.power > this.maxPower) { - this.power = this.maxPower; - } + this.tank.setFill(this.tank.getFill() - amountToBurn); + this.power += burnValue * amountToBurn; } - if(toBurn > 0) { + power = Library.chargeItemsFromTE(slots, 3, power, power); + + for(DirPos pos : getConPos()) { + this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(this.blood.getFill() > 0) this.sendFluid(blood.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + + if(burnValue > 0 && amountToBurn > 0) { - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10).getRotation(ForgeDirection.UP); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); if(this.afterburner > 0) { @@ -155,10 +189,14 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, this.xCoord + 0.5F - dir.offsetX * (3 - i), this.yCoord + 1.5F, this.zCoord + 0.5F - dir.offsetZ * (3 - i)), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); } - /*if(this.afterburner > 90 && worldObj.rand.nextInt(30) == 0) { + /*if(this.afterburner > 90 && worldObj.rand.nextInt(60) == 0) { worldObj.newExplosion(null, xCoord + 0.5 + dir.offsetX * 3.5, yCoord + 0.5, zCoord + 0.5 + dir.offsetZ * 3.5, 3F, false, false); }*/ + if(this.afterburner > 90 && worldObj.rand.nextInt(30) == 0) { + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 1.5, zCoord + 0.5, "hbm:block.damage", 3.0F, 0.95F + worldObj.rand.nextFloat() * 0.2F); + } + if(this.afterburner > 90) { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "gasfire"); @@ -220,15 +258,27 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(vdat, e.posX, e.posY + e.height * 0.5, e.posZ), new TargetPoint(e.dimension, e.posX, e.posY + e.height * 0.5, e.posZ, 150)); worldObj.playSoundEffect(e.posX, e.posY, e.posZ, "mob.zombie.woodbreak", 2.0F, 0.95F + worldObj.rand.nextFloat() * 0.2F); + + blood.setFill(blood.getFill() + 50); + if(blood.getFill() > blood.getMaxFill()) { + blood.setFill(blood.getMaxFill()); + } + this.showBlood = true; } } } + if(this.power > this.maxPower) { + this.power = this.maxPower; + } + NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); data.setByte("after", (byte) afterburner); data.setBoolean("wasOn", wasOn); + data.setBoolean("showBlood", showBlood); tank.writeToNBT(data, "tank"); + blood.writeToNBT(data, "blood"); this.networkPack(data, 150); } else { @@ -326,7 +376,9 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements this.power = nbt.getLong("power"); this.afterburner = nbt.getByte("after"); this.wasOn = nbt.getBoolean("wasOn"); + this.showBlood = nbt.getBoolean("showBlood"); tank.readFromNBT(nbt, "tank"); + blood.readFromNBT(nbt, "blood"); } public AudioWrapper createAudioLoop() { @@ -398,11 +450,10 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; } - + @Override @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { + public double getMaxRenderDistanceSquared() { return 65536.0D; } @@ -411,9 +462,14 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements return new FluidTank[] { tank }; } + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] { blood }; + } + @Override public FluidTank[] getAllTanks() { - return new FluidTank[] { tank }; + return new FluidTank[] { tank, blood }; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticReformer.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticReformer.java index ee9c6d1ba..d8f19c079 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticReformer.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticReformer.java @@ -8,6 +8,7 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineCatalyticReformer; import com.hbm.inventory.recipes.ReformingRecipes; +import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IPersistentNBT; @@ -102,6 +103,7 @@ public class TileEntityMachineCatalyticReformer extends TileEntityMachineBase im if(power < 20_000) return; if(tanks[0].getFill() < 100) return; + if(slots[10] == null || slots[10].getItem() != ModItems.catalytic_converter) return; if(tanks[1].getFill() + out.getX().fill > tanks[1].getMaxFill()) return; if(tanks[2].getFill() + out.getY().fill > tanks[2].getMaxFill()) return; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java index fc17810ae..3a8f715f1 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java @@ -351,15 +351,19 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece case "up": tiltFront = 30; if(!worldObj.isRemote) posFront += speed; + break; case "down": tiltFront = -30; if(!worldObj.isRemote) posFront -= speed; + break; case "left": tiltLeft = 30; if(!worldObj.isRemote) posLeft += speed; + break; case "right": tiltLeft = -30; if(!worldObj.isRemote) posLeft -= speed; + break; } return new Object[] {}; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 79b046e75..065a09faf 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1313,6 +1313,7 @@ item.casing_50.name=Großkaliberhülse (x12) item.casing_9.name=Kleinkaliberhülse (x32) item.casing_buckshot.name=Schrothülse (x12) item.catalyst_clay.name=Tonerde-Katalysator +item.catalytic_converter.name=Katalytischer Konverter item.cbt_device.name=CBT-Gerät item.cell_anti_schrabidium.name=Antischrabidiumzelle item.cell_antimatter.name=Antimaterienzelle @@ -1492,6 +1493,7 @@ item.component_limiter.name=Stabilisatorkomponente item.containment_box.name=Sicherheitsbehälter item.cordite.name=Kordit item.cotton_candy.name=Radioaktive Zuckerwatte +item.crackpipe.name=Gesundheitspfeife item.crate_caller.name=Nachschub-Requester item.crayon.black.name=Schwarzer Wachsmalstift item.crayon.blue.name=Blauer Wachsmalstift @@ -1995,6 +1997,8 @@ item.ingot_neptunium.name=Neptuniumbarren item.ingot_neptunium_fuel.name=Neptuniumkernbrennstoffbarren item.ingot_niobium.name=Niobbarren item.ingot_osmiridium.name=Osmiridiumbarren +item.ingot_pb209.name=Blei-209-Barren +item.ingot_pet.name=Aluminiumverstärkte PET-Tafel item.ingot_phosphorus.name=Weiße Phosphortafel item.ingot_plutonium.name=Plutoniumbarren item.ingot_plutonium_fuel.name=Plutoniumkernbrennstoffbarren @@ -2005,6 +2009,7 @@ item.ingot_pu238.name=Plutonium-238-Barren item.ingot_pu239.name=Plutonium-239-Barren item.ingot_pu240.name=Plutonium-240-Barren item.ingot_pu241.name=Plutonium-241-Barren +item.ingot_pvc.name=PVC-Tafel item.ingot_red_copper.name=Minecraft-Kupfer item.ingot_reiium.name=Reiiumbarren item.ingot_rubber.name=Gummitafel @@ -2544,6 +2549,7 @@ item.plate_armor_fau.name=Fau-Panzerplatte item.plate_armor_hev.name=Reaktive Panzerplatte item.plate_armor_lunar.name=Lunare Panzerplatte item.plate_armor_titanium.name=Titan-Panzerplatte +item.plate_cast.name=Gegossene %splatte item.plate_combine_steel.name=CMB-Stahlplatte item.plate_copper.name=Kupferplatte item.plate_dalekanium.name=Wütendes Metall @@ -3281,6 +3287,7 @@ shape.nugget=Nugget shape.quantum=Quantum shape.quart=Viertel Block shape.plate=Platte +shape.plateTriple=Gussplatte shape.stamp=Stempel shape.wire=Draht diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index c71c8167a..2dac0fbe3 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1916,6 +1916,7 @@ item.casing_50.name=Large Caliber Casing (x12) item.casing_9.name=Small Caliber Casing (x32) item.casing_buckshot.name=Buckshot Casing (x12) item.catalyst_clay.name=Clay Catalyst +item.catalytic_converter.name=Catalytic Converter item.cbt_device.name=CBT Device item.cell_anti_schrabidium.name=Antischrabidium Cell item.cell_antimatter.name=Antimatter Cell @@ -2097,6 +2098,7 @@ item.component_limiter.name=Stabilizer Component item.containment_box.name=Containment Box item.cordite.name=Cordite item.cotton_candy.name=Radioactive Cotton Candy +item.crackpipe.name=Health Pipe item.crate_caller.name=Supply Drop Requester item.crayon.black.name=Black Crayon item.crayon.blue.name=Blue Crayon @@ -2635,6 +2637,7 @@ item.ingot_neptunium_fuel.name=Neptunium Fuel Ingot item.ingot_niobium.name=Niobium Ingot item.ingot_osmiridium.name=Osmiridium Ingot item.ingot_pb209.name=Lead-209 Ingot +item.ingot_pet.name=Aluminium-Metallized PET Bar item.ingot_phosphorus.name=Bar of White Phosphorus item.ingot_plutonium.name=Plutonium Ingot item.ingot_plutonium_fuel.name=Ingot of Plutonium Fuel @@ -2645,6 +2648,7 @@ item.ingot_pu238.name=Plutonium-238 Ingot item.ingot_pu239.name=Plutonium-239 Ingot item.ingot_pu240.name=Plutonium-240 Ingot item.ingot_pu241.name=Plutonium-241 Ingot +item.ingot_pvc.name=PVC Bar item.ingot_ra226.name=Radium-226 Ingot item.ingot_red_copper.name=Minecraft Grade Copper item.ingot_reiium.name=Reiium Ingot @@ -3247,6 +3251,7 @@ item.plate_armor_lunar.name=Lunar Plating item.plate_armor_titanium.name=Titanium Armor Plate item.plate_bismuth.name=Bismuth Compound Plate item.plate_bismuth.desc=Guys, It's Bismuth's alchemical symbol, I swear. +item.plate_cast.name=Cast %s Plate item.plate_combine_steel.name=CMB Steel Plate item.plate_copper.name=Copper Plate item.plate_dalekanium.name=Angry Metal @@ -4075,6 +4080,7 @@ shape.nugget=Nugget shape.quantum=Quantum shape.quart=Quarter Block shape.plate=Plate +shape.plateTriple=Cast Plate shape.stamp=Press Stamp shape.wire=Wire diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index 52350fe67..986c8077d 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -51,6 +51,7 @@ "block.turbinegasStartup": {"category": "block", "sounds": [{"name": "block/turbinegasStartup", "stream": true}]}, "block.turbinegasRunning": {"category": "block", "sounds": [{"name": "block/turbinegasRunning", "stream": false}]}, "block.turbinegasShutdown": {"category": "block", "sounds": [{"name": "block/turbinegasShutdown", "stream": true}]}, + "block.damage": {"category": "block", "sounds": ["block/dam1", "block/dam2", "block/dam3", "block/dam4"]}, "door.TransitionSealOpen": {"category": "block", "sounds": [{"name": "block/door/transition_seal_open", "stream": true}]}, "door.wghStart": {"category": "block", "sounds": [{"name": "block/door/wgh_start", "stream": true}]}, diff --git a/src/main/resources/assets/hbm/textures/blocks/tatb_bottom.png b/src/main/resources/assets/hbm/textures/blocks/tatb_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbafa97e48d1e5d7d89e21425b08f763c88b274 GIT binary patch literal 329 zcmV-P0k-~$P)40@rZKRM2`t15L?p2ZE+p7kdx2o<0X%|5ynuRu zbe=-6)y5#f5F0CtD9b<9Y>}}Ti{J>^S=jVW`SA=4FQabHPW}186U*E)ox^7isyD>H zKGII1--W$YFqk?w&cUigOb1%bq{cgwg?#9el4*dWxEASfklx04D ztp69Nr^AWe>j(A?4ktLi!}1r*OOnK;Hft?G5EMG(nY9+6a8_v`ilR~@Ypn}XKQ(Es zv%s}gL=cf|nv0JpA{Qsfmk(f!!5DKjcrH%!UL3~`APmC{=J!9{so8Kqt2*L&1CuGN zw=iqAX;nw8H}E)x@fPaeET5}4+bDoWO)>W!`vp{vU*@vx2EOtqHA~cu|8Xh900000 LNkvXXu0mjfZ{dFv literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/tatb_top.png b/src/main/resources/assets/hbm/textures/blocks/tatb_top.png new file mode 100644 index 0000000000000000000000000000000000000000..36a58d23fd4be7608bafba3e50c5433447bba622 GIT binary patch literal 603 zcmV-h0;K(kP)A!bN*lNgUhp6Vrywb%i9<1PO%SAwi!Oq2!Ns9t zK`ViR(vYEczBXQU1bs{I9m}9K+4R}?GAYV#=}1^ zc0+W#142K8(G^bk^<4IDKMt{TvH^hl_Z5w*gti$%SZM)pv^|Z|mYBqe$2I772LPC+ ziEX4J;TnWhO4a6&05djP3iAKP}>Yig7ehXAaeXL)wZ;G!b4e%1@p z*tX048xa6RA+ZENqbf0XDN{}y5-!>R7=}UrhaBu*O3I`QE_0W|S-Gx`68taBekf9DhHIF0tB2BPhD-|+J2Tyy#m13`3D$=G4{LnWp=EIVyojJWoFnp z*^002ovPDHLkV1lQS1sDJT literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_catalytic_reformer.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_catalytic_reformer.png index 31abebbce5c600437dfa45a58189be5cef326678..27b5d21fd3b8d4301307a7b7994b6e6a11551891 100644 GIT binary patch literal 5357 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 diff --git a/src/main/resources/assets/hbm/textures/items/catalytic_converter.png b/src/main/resources/assets/hbm/textures/items/catalytic_converter.png new file mode 100644 index 0000000000000000000000000000000000000000..98c77d5818228a129502aa1aa9f8935e11f7dd98 GIT binary patch literal 311 zcmV-70m%M|P)maIZrA$?r*sKJwcoGM;qd2P*qhYrHuA( zi~%#FD2fCCRzs(?HYyM@8DbAJLkIyO#Qz1D8B$7EYhjF;75P{}4-w6_78U4Q8Pc}x zyZ{mT()(71lx69+=eOXT0}(|_cg~I8qg$x!I(kTXo=*<&D_*+^XZ*|K&%Y*QziFH-@-C2s$EdXLL&vHpC>wod|x+=Ueny2E0^Q(tI zUMTJkeH14|aYE-xI#<#+3TqTc=}qt*J~=%T^AKPi{(O8J{do+Q2Ilp`5AgPMN#7^{ ztWn^RVTao5+5+fYxoR*i1qQIyYN$=H7({Wx$Ksa0QPRK~#pD3lV3R^%9Nt?>gTJjW Y2KkTqZu)rc01E&B07*qoM6N<$f_g!Q!Th4lR$1Wli$G(9y5(gEUCb>{S2q_t^gCs^w2XS!mTkrY*^PLO-{2Bpp<#&|r znzT=bqG_mnPooSOWjw}n`lE>e&;VqVvD)#OO#}5)0}Y@z7=Me0;E6bn8cVwUQDqj+ zKDSpVlw4n4sIAr}j^nbv(Gmc`?Vd6$55w}vWk@bVibN-kb=v+=X!U}F!{f^2?rdKH z)WdK0FW*jR{Iv6<9c8&DwrjH8-L1kaYYU1*2WU1Z=?%t0Mj2_8k;@Rn^1g%t(rLEb zpicaJs$M5I6eo#Zm89`U(NcptO<~(vR0e;~I|}85$O?+Bwg3PC07*qoM6N<$g2ojv;#3tX$nVrHeOX)#QbMc!z!uM9;&WEOO&ThTrZT6_L#4uBez7Q z;qwE*4nh5jlarakQ`ELFYipi$-s9%I>fSx}s7tpQ-hMvlXEbHe^dud=sX!YUJYD@< J);T3K0RZkAJW>Dv diff --git a/src/main/resources/assets/hbm/textures/items/mold_gem.png b/src/main/resources/assets/hbm/textures/items/mold_gem.png index 7009021415b53d56eee330adeb5ffd9fde3c866a..9ae259d8a050ce55fae01f220f717a87565c1e75 100644 GIT binary patch delta 442 zcmV;r0Y(1a1LOmcG=G~(L_t(IjdfEoYr;?v{*t`(1sp^u2#y^D1BEViZBZP%ROnpr zA4#_&bSZT42Na8oo25_@5(vd5U=i9z3Bog)+9BR+URrOtm+$Voe0T4jc5`{Y<;+0d z;#i0k04QfN!m=^OnE^it@x=v}t2J`mgdc=5A;(QDS8Mo4Fn=GR#O5LbqeLQ;Zx2SY zh@ok?KCK{~D;1<=QlLE;;iPnkD2`>UGj!0Z+Q^!ox3~gyh7Rmv0k6{!i8-?XcCmoY z(1D0IYJr7VA;(RHywB`n0rxMSQiSC#4nGKS_w2$h7U0YRnVdd18?}Vd>*J_$jEOr= z3Xp<$yOqgl*?$1gY}C;0_2plq?--WBAl4Cd8lItPd!=XXKsRI?@)k(Jf3my1zH$a2 z6)+%KmR8k9sayee32E8QMhy>-PcU^I7xgntJy)ucE#$a~sptL8RWZKGQQ>ReeSu_bGoz6etcaS z*P&4}yrv6)QYueH7WDOlDhGTlbI6g#$&!%5`R-*F*C*fr5UaerC9vw z{gXCvEQ_DVZ8o{8U{j_fPVb*M+WSnF=b9S~1NtXERkIs4QvwFV0Ke7b*LbQ}uiL?I zH5m*8()_L5;5A)PH(sfDm-($G7mrb?iQA|d;$+78Lx|sM5=;^$OU%t(3EyuY@)C}U z2BIKet&{)|On(xMd)*G)-04@d_neyJk}flB`FW0I?UY`%Pqw3D=oUmluiH`C5?@tf zKoz)9983SiXYZh`gkX}W>|VFS<@GI|ZS(!x7sgSjYIKCU@fb(pe+3nj;^}i#!fgqv zO*YplBTS#8tve{zxW03_#FucirDPn1r1@Jh``W{LjV-`dQs%7Uo5cX`==UFeq|2=2 ecj4ka+u{T0+v%UiqoCga0000NXj(k5$t^!u@!s) zD@#!jJFO&;g&=7H5kZY11oo2MwOD47O}wmlniz4|x|ZBQKyJOuGG{3MdGZkr&V<;kpbJ_u={&GVtW?5j~e9jAM@XwitN< zfD#>f0cZCu0PJ#!-L>V!!L-edrG+`MY1riw0F7FeUfW3oik49JW&^W88@L_?VRE!% z(|YOudZAIP(s7y-fubc;o>^h(25vY`JCH@o0yi9E=}GxC;C~Jz`4>vz0dO)bYK X6_c>clE+cf00000NkvXXu0mjfTl%&gQ-44>g#K&B4_skdxg1DU+NpEs+r#d z#Fv@bQkdOrry91lx$43_5D4eb_Z`B4|E|CnXsyTneh)xV6yA5Mf!2DA?7yA;DeOU0bIldJzQJS{r+9+lr!x z1Z%BhKgiyR5(!pH0dO2g6s_xu)*53B&N=$N|JvXRS5?Jv95*n?lu{H$fwdOzJpf67 zr)jzk2Z2&5o{ceBYgv|secwsbl#lSnaU3zmP!z?lu=hT~!!RUCUDs!x=Kz#tiT9qS zX#jA}0mQYh$-^)t@cohMx;_CUQAnQW`36TpC`q(!+e`9Wfh3Y(QSehF!GBVpg`B4O T`ucq_00000NkvXXu0mjf?52j5 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/plate_cast_dark.png b/src/main/resources/assets/hbm/textures/items/plate_cast_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..f206d27c578e07d593fd3590309eac1df8ecdb32 GIT binary patch literal 344 zcmV-e0jK_nP)U5JjK08;L5i#0A`?#7#PyIYF9SfK%lT={UhCCkS-V zIduX`nU1YM1mdk$+L0_-^Znk)8u;%ru|PzI?RE=5S(edv9|I8?_WM0qmQmL=ZQDjg ztHvCDKA%`?0iq)F8$2)X{RqE_%o08v4pdb&O`eOawK(Sh2qADfo%mY9Ap~Bp*K|fO zNfH1qmkUXfpsG9`4~&Qm$Kw(2J!M$}ynVr1JKb-$8(EfdKA-8jj?HGn_ZVESS40Ho z+(*#}tLg-+sxf(<4{4eLu-onE`+g-FW%J3ZYNjpZc|HIvMMY5%LI6NjX`1E@Uac`E qy5H}s$sYwVQ4Ed>mZBK^C-npUc&+xkOm|oS0000< literal 0 HcmV?d00001