diff --git a/changelog b/changelog index f2a83e6b9..9499242c7 100644 --- a/changelog +++ b/changelog @@ -1,11 +1,12 @@ ## Changed -* Removed a ton of unused projectile entities -* Removed the old ZOMG beams, negative energy type explosions now use DFC-like effects instead -* Removed the old multitool (it sucked) +* New fusion reactor and particle accelerator parts now have OpenComputers compat +* Irradiation recipe config now has the `fusionOnly` flag, preventing the recipe from being done in the RBMK irradiation channel +* Removed legacy fusion reactor parts from the creative inventory +* Removed the legacy fusion reactor core components +* If a legacy fusion reactor explodes, it is now destroyed forever and cannot be reassembled +* Legacy fusion reactors no longer disassemble when being mined, rather they drop as one block +* Legacy templates are no longer listed in the creative tab +* Removed the old meltdown achievement ## Fixed -* Fixed ore acidizer recipe config just straight up not working with ore dictionary keys -* Fixed logistic network nodes disabled via redstone not re-enabling when redstone is cut -* Added provisional emergency brake to drone pathfinding, pathfinding will simply fail if it goes on for too long -* Fixed ore acidizer partitioner freezing the game -* Fixed ore acidizer partitioner trash slots not being accessible via automation \ No newline at end of file +* Fixed gamebreaking issue causing crashes and world corruption where the multi detonator had its tooltip misspelled \ 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 55b3c4ad3..e25ea9a61 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -870,8 +870,6 @@ public class ModBlocks { public static Block struct_launcher_core; public static Block struct_launcher_core_large; public static Block struct_soyuz_core; - public static Block struct_iter_core; - public static Block struct_plasma_core; public static Block struct_torus_core; public static Block struct_watz_core; public static Block struct_icf_core; @@ -2021,8 +2019,6 @@ public class ModBlocks { struct_launcher_core = new BlockStruct(Material.iron).setBlockName("struct_launcher_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":struct_launcher_core"); struct_launcher_core_large = new BlockStruct(Material.iron).setBlockName("struct_launcher_core_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":struct_launcher_core_large"); struct_soyuz_core = new BlockSoyuzStruct(Material.iron).setBlockName("struct_soyuz_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":struct_soyuz_core"); - struct_iter_core = new BlockITERStruct(Material.iron).setBlockName("struct_iter_core").setLightLevel(1F).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":struct_iter_core"); - struct_plasma_core = new BlockPlasmaStruct(Material.iron).setBlockName("struct_plasma_core").setLightLevel(1F).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":struct_plasma_core"); struct_torus_core = new BlockFusionTorusStruct(Material.iron).setBlockName("struct_torus_core").setLightLevel(1F).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":struct_torus_core"); struct_watz_core = new BlockWatzStruct(Material.iron).setBlockName("struct_watz_core").setLightLevel(1F).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":struct_watz_core"); struct_icf_core = new BlockICFStruct(Material.iron).setBlockName("struct_icf_core").setLightLevel(1F).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":struct_icf_core"); @@ -2053,14 +2049,14 @@ public class ModBlocks { pwr_controller = new MachinePWRController(Material.iron).setBlockName("pwr_controller").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_casing_blank"); pwr_block = new BlockPWR(Material.iron).setBlockName("pwr_block").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pwr_block"); - fusion_conductor = new BlockToolConversionPillar(Material.iron).addVariant("_welded").setBlockName("fusion_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_conductor"); - fusion_center = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_center_top_alt").setBlockName("fusion_center").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_center_side_alt"); - fusion_motor = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_motor_top_alt").setBlockName("fusion_motor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_motor_side_alt"); - fusion_heater = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_heater_top").setBlockName("fusion_heater").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_heater_side"); - fusion_hatch = new FusionHatch(Material.iron).setBlockName("fusion_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_hatch"); - plasma = new BlockPlasma(Material.iron).setBlockName("plasma").setHardness(5.0F).setResistance(6000.0F).setLightLevel(1.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":plasma"); - iter = new MachineITER().setBlockName("iter").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":iter"); - plasma_heater = new MachinePlasmaHeater().setBlockName("plasma_heater").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":plasma_heater"); + fusion_conductor = new BlockToolConversionPillar(Material.iron).addVariant("_welded").setBlockName("fusion_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fusion_conductor"); + fusion_center = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_center_top_alt").setBlockName("fusion_center").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fusion_center_side_alt"); + fusion_motor = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_motor_top_alt").setBlockName("fusion_motor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fusion_motor_side_alt"); + fusion_heater = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_heater_top").setBlockName("fusion_heater").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fusion_heater_side"); + fusion_hatch = new FusionHatch(Material.iron).setBlockName("fusion_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fusion_hatch"); + plasma = new BlockPlasma(Material.iron).setBlockName("plasma").setHardness(5.0F).setResistance(6000.0F).setLightLevel(1.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":plasma"); + iter = new MachineITER().setBlockName("iter").setHardness(5.0F).setResistance(60.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":iter"); + plasma_heater = new MachinePlasmaHeater().setBlockName("plasma_heater").setHardness(5.0F).setResistance(60.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":plasma_heater"); fusion_component = new BlockFusionComponent().setBlockName("fusion_component").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_component"); fusion_torus = new MachineFusionTorus().setBlockName("fusion_torus").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -3399,8 +3395,6 @@ public class ModBlocks { GameRegistry.registerBlock(struct_launcher_core, struct_launcher_core.getUnlocalizedName()); GameRegistry.registerBlock(struct_launcher_core_large, struct_launcher_core_large.getUnlocalizedName()); GameRegistry.registerBlock(struct_soyuz_core, struct_soyuz_core.getUnlocalizedName()); - GameRegistry.registerBlock(struct_iter_core, struct_iter_core.getUnlocalizedName()); - GameRegistry.registerBlock(struct_plasma_core, struct_plasma_core.getUnlocalizedName()); register(struct_torus_core); GameRegistry.registerBlock(struct_watz_core, struct_watz_core.getUnlocalizedName()); GameRegistry.registerBlock(struct_icf_core, struct_icf_core.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/BlockITERStruct.java b/src/main/java/com/hbm/blocks/machine/BlockITERStruct.java deleted file mode 100644 index c53723bc6..000000000 --- a/src/main/java/com/hbm/blocks/machine/BlockITERStruct.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.tileentity.machine.TileEntityITERStruct; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class BlockITERStruct extends BlockContainer { - - public BlockITERStruct(Material mat) { - super(mat); - } - - @Override - public TileEntity createNewTileEntity(World world, int meta) { - return new TileEntityITERStruct(); - } - - @Override - public boolean isOpaqueCube() { - return false; - } -} diff --git a/src/main/java/com/hbm/blocks/machine/BlockPlasmaStruct.java b/src/main/java/com/hbm/blocks/machine/BlockPlasmaStruct.java deleted file mode 100644 index dd796e51e..000000000 --- a/src/main/java/com/hbm/blocks/machine/BlockPlasmaStruct.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.tileentity.machine.TileEntityPlasmaStruct; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.MathHelper; -import net.minecraft.world.World; - -public class BlockPlasmaStruct extends BlockContainer { - - public BlockPlasmaStruct(Material mat) { - super(mat); - } - - @Override - public TileEntity createNewTileEntity(World world, int meta) { - return new TileEntityPlasmaStruct(); - } - - public boolean isOpaqueCube() { - - 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, 2, 2); - } - if(i == 1) - { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - } - if(i == 2) - { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - } - if(i == 3) - { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - } - } - -} diff --git a/src/main/java/com/hbm/blocks/machine/MachineITER.java b/src/main/java/com/hbm/blocks/machine/MachineITER.java index f049e058f..3a4aaba1d 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineITER.java +++ b/src/main/java/com/hbm/blocks/machine/MachineITER.java @@ -1,21 +1,14 @@ package com.hbm.blocks.machine; -import java.util.Random; - import com.hbm.blocks.BlockDummyable; -import com.hbm.blocks.ModBlocks; -import com.hbm.inventory.material.Mats; -import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityITER; import com.hbm.tileentity.machine.TileEntityITERStruct; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import net.minecraft.block.Block; 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.item.Item; import net.minecraft.item.ItemStack; @@ -43,11 +36,6 @@ public class MachineITER extends BlockDummyable { return null; } - @Override - public Item getItemDropped(int i, Random rand, int j) { - return null; - } - @Override public int[] getDimensions() { //because we'll implement our own gnarly behavior here @@ -238,28 +226,5 @@ public class MachineITER extends BlockDummyable { public int getOffset() { return 7; } - - public static boolean drop = true; - - @Override - public void breakBlock(World world, int x, int y, int z, Block block, int i) { - - if(i >= 12 && drop) { - - for(int l = 0; l < 4; l++) { - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.fusion_conductor, 64))); - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.plate_cast, 64, Mats.MAT_STEEL.id))); - } - - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.fusion_conductor, 36))); - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.plate_cast, 36, Mats.MAT_STEEL.id))); - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.fusion_center, 64))); - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.fusion_motor, 4))); - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.reinforced_glass, 8))); - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_iter_core, 1))); - } - - super.breakBlock(world, x, y, z, block, i); - } } diff --git a/src/main/java/com/hbm/blocks/machine/MachinePlasmaHeater.java b/src/main/java/com/hbm/blocks/machine/MachinePlasmaHeater.java index 1c138339a..18d36e0de 100644 --- a/src/main/java/com/hbm/blocks/machine/MachinePlasmaHeater.java +++ b/src/main/java/com/hbm/blocks/machine/MachinePlasmaHeater.java @@ -1,26 +1,19 @@ package com.hbm.blocks.machine; import com.hbm.blocks.BlockDummyable; -import com.hbm.blocks.ModBlocks; import com.hbm.handler.MultiblockHandlerXR; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityMachinePlasmaHeater; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import net.minecraft.block.Block; import net.minecraft.block.material.Material; -import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -import java.util.Random; - public class MachinePlasmaHeater extends BlockDummyable { public MachinePlasmaHeater() { @@ -39,11 +32,6 @@ public class MachinePlasmaHeater extends BlockDummyable { return null; } - @Override - public Item getItemDropped(int i, Random rand, int j) { - return null; - } - @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) @@ -133,19 +121,4 @@ public class MachinePlasmaHeater extends BlockDummyable { public int getOffset() { return 1; } - - @Override - public void breakBlock(World world, int x, int y, int z, Block block, int i) { - - if(i >= 12) { - - for(int l = 0; l < 2; l++) - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.fusion_heater, 64))); - - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.fusion_heater, 7))); - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_plasma_core, 1))); - } - - super.breakBlock(world, x, y, z, block, i); - } } diff --git a/src/main/java/com/hbm/handler/nei/ConstructionHandler.java b/src/main/java/com/hbm/handler/nei/ConstructionHandler.java index 023178fd6..86635e8b4 100644 --- a/src/main/java/com/hbm/handler/nei/ConstructionHandler.java +++ b/src/main/java/com/hbm/handler/nei/ConstructionHandler.java @@ -53,29 +53,6 @@ public class ConstructionHandler extends NEIUniversalHandler { bufferedRecipes.put(watz, new ItemStack(ModBlocks.watz)); bufferedTools.put(watz, new ItemStack(ModBlocks.struct_watz_core)); - /* ITER */ - ItemStack[] iter = new ItemStack[] { - new ItemStack(ModBlocks.fusion_conductor, 36), - ItemStackUtil.addStackSizeLabel(new ItemStack(ModBlocks.fusion_conductor, 256)), - new ItemStack(ModItems.plate_cast, 36, Mats.MAT_STEEL.id), - ItemStackUtil.addStackSizeLabel(new ItemStack(ModItems.plate_cast, 256, Mats.MAT_STEEL.id)), - new ItemStack(ModBlocks.fusion_center, 64), - new ItemStack(ModBlocks.fusion_motor, 4), - new ItemStack(ModBlocks.reinforced_glass, 8), - new ItemStack(ModItems.blowtorch)}; - - bufferedRecipes.put(iter, new ItemStack(ModBlocks.iter)); - bufferedTools.put(iter, new ItemStack(ModBlocks.struct_iter_core)); - - /* PLASMA HEATER */ - ItemStack[] heater = new ItemStack[] { - new ItemStack(ModBlocks.fusion_heater, 7), - new ItemStack(ModBlocks.fusion_heater, 64), - new ItemStack(ModBlocks.fusion_heater, 64) }; - - bufferedRecipes.put(heater, new ItemStack(ModBlocks.plasma_heater)); - bufferedTools.put(heater, new ItemStack(ModBlocks.struct_plasma_core)); - /* COMPACT LAUNCHER */ ItemStack[] launcher = new ItemStack[] { new ItemStack(ModBlocks.struct_launcher, 8) }; diff --git a/src/main/java/com/hbm/handler/nei/NEIGenericRecipeHandler.java b/src/main/java/com/hbm/handler/nei/NEIGenericRecipeHandler.java index 843381b59..fbffcdeb3 100644 --- a/src/main/java/com/hbm/handler/nei/NEIGenericRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/NEIGenericRecipeHandler.java @@ -10,6 +10,7 @@ import java.util.List; import com.hbm.config.ClientConfig; import com.hbm.handler.imc.ICompatNHNEI; +import com.hbm.interfaces.NotableComments; import com.hbm.inventory.FluidStack; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.recipes.loader.GenericRecipe; @@ -27,6 +28,7 @@ import net.minecraft.block.Block; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; +@NotableComments public abstract class NEIGenericRecipeHandler extends TemplateRecipeHandler implements ICompatNHNEI { public LinkedList transferRectsRec = new LinkedList(); diff --git a/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java b/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java index 3fb477547..471469d49 100644 --- a/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java +++ b/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java @@ -23,6 +23,7 @@ import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +@Deprecated public abstract class NEIUniversalHandler extends TemplateRecipeHandler implements ICompatNHNEI { public LinkedList transferRectsRec = new LinkedList(); diff --git a/src/main/java/com/hbm/handler/nei/OutgasserHandler.java b/src/main/java/com/hbm/handler/nei/OutgasserHandler.java index 0e7a79f35..66dfb12f1 100644 --- a/src/main/java/com/hbm/handler/nei/OutgasserHandler.java +++ b/src/main/java/com/hbm/handler/nei/OutgasserHandler.java @@ -1,10 +1,14 @@ package com.hbm.handler.nei; import java.awt.Rectangle; +import java.util.HashMap; +import java.util.Map.Entry; import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.gui.GUIRBMKOutgasser; import com.hbm.inventory.recipes.OutgasserRecipes; +import com.hbm.inventory.recipes.OutgasserRecipes.OutgasserRecipe; import net.minecraft.item.ItemStack; @@ -12,6 +16,14 @@ public class OutgasserHandler extends NEIUniversalHandler { public OutgasserHandler() { super(ModBlocks.rbmk_outgasser.getLocalizedName(), new ItemStack[] {new ItemStack(ModBlocks.rbmk_outgasser), new ItemStack(ModBlocks.fusion_breeder)}, OutgasserRecipes.getRecipes()); + + // god i hate this class, just hacks upon hacks to add more stupid crap + this.machineOverrides = new HashMap(); + for(Entry entry : OutgasserRecipes.recipes.entrySet()) { + if(entry.getValue().fusionOnly) { + this.machineOverrides.put(entry.getKey(), new ItemStack(ModBlocks.fusion_breeder)); + } + } } @Override diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 6313635ad..1d044fea2 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -371,14 +371,6 @@ import net.minecraft.item.ItemStack; new ComparableStack(ModItems.ingot_u238m2), new ComparableStack(ModItems.ingot_cft, 128) }, 1200); - makeRecipe(new ComparableStack(ModBlocks.struct_iter_core, 1), new AStack[] { - !exp ? new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 6) : new OreDictStack(ANY_RESISTANTALLOY.heavyComp(), 2), - !exp ? new OreDictStack(W.plateWelded(), 6) : new OreDictStack(W.heavyComp(), 1), - new OreDictStack(OreDictManager.getReflector(), 12), - new ComparableStack(ModItems.coil_advanced_alloy, 12), - new OreDictStack(ANY_PLASTIC.ingot(), 8), - new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), - }, 600); makeRecipe(new ComparableStack(ModBlocks.machine_combustion_engine, 1), new AStack[] { new OreDictStack(STEEL.plate528(), 16), new OreDictStack(CU.ingot(), 12), diff --git a/src/main/java/com/hbm/inventory/recipes/OutgasserRecipes.java b/src/main/java/com/hbm/inventory/recipes/OutgasserRecipes.java index 491a8595f..cc7629210 100644 --- a/src/main/java/com/hbm/inventory/recipes/OutgasserRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/OutgasserRecipes.java @@ -19,7 +19,6 @@ import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ModItems; import com.hbm.items.ItemEnums.EnumTarType; import com.hbm.items.machine.ItemFluidIcon; -import com.hbm.util.Tuple.Pair; import net.minecraft.init.Blocks; import net.minecraft.init.Items; @@ -27,43 +26,43 @@ import net.minecraft.item.ItemStack; public class OutgasserRecipes extends SerializableRecipe { - public static Map> recipes = new HashMap(); + public static Map recipes = new HashMap(); @Override public void registerDefaults() { /* lithium to tritium */ - recipes.put(new OreDictStack(LI.block()), new Pair(null, new FluidStack(Fluids.TRITIUM, 10_000))); - recipes.put(new OreDictStack(LI.ingot()), new Pair(null, new FluidStack(Fluids.TRITIUM, 1_000))); - recipes.put(new OreDictStack(LI.dust()), new Pair(null, new FluidStack(Fluids.TRITIUM, 1_000))); - recipes.put(new OreDictStack(LI.dustTiny()), new Pair(null, new FluidStack(Fluids.TRITIUM, 100))); + recipes.put(new OreDictStack(LI.block()), new OutgasserRecipe(null, new FluidStack(Fluids.TRITIUM, 10_000))); + recipes.put(new OreDictStack(LI.ingot()), new OutgasserRecipe(null, new FluidStack(Fluids.TRITIUM, 1_000))); + recipes.put(new OreDictStack(LI.dust()), new OutgasserRecipe(null, new FluidStack(Fluids.TRITIUM, 1_000))); + recipes.put(new OreDictStack(LI.dustTiny()), new OutgasserRecipe(null, new FluidStack(Fluids.TRITIUM, 100))); /* gold to gold-198 */ - recipes.put(new OreDictStack(GOLD.ingot()), new Pair(new ItemStack(ModItems.ingot_au198), null)); - recipes.put(new OreDictStack(GOLD.nugget()), new Pair(new ItemStack(ModItems.nugget_au198), null)); - recipes.put(new OreDictStack(GOLD.dust()), new Pair(new ItemStack(ModItems.powder_au198), null)); + recipes.put(new OreDictStack(GOLD.ingot()), new OutgasserRecipe(new ItemStack(ModItems.ingot_au198), null)); + recipes.put(new OreDictStack(GOLD.nugget()), new OutgasserRecipe(new ItemStack(ModItems.nugget_au198), null)); + recipes.put(new OreDictStack(GOLD.dust()), new OutgasserRecipe(new ItemStack(ModItems.powder_au198), null)); /* thorium to thorium fuel */ - recipes.put(new OreDictStack(TH232.ingot()), new Pair(new ItemStack(ModItems.ingot_thorium_fuel), null)); - recipes.put(new OreDictStack(TH232.nugget()), new Pair(new ItemStack(ModItems.nugget_thorium_fuel), null)); - recipes.put(new OreDictStack(TH232.billet()), new Pair(new ItemStack(ModItems.billet_thorium_fuel), null)); + recipes.put(new OreDictStack(TH232.ingot()), new OutgasserRecipe(new ItemStack(ModItems.ingot_thorium_fuel), null)); + recipes.put(new OreDictStack(TH232.nugget()), new OutgasserRecipe(new ItemStack(ModItems.nugget_thorium_fuel), null)); + recipes.put(new OreDictStack(TH232.billet()), new OutgasserRecipe(new ItemStack(ModItems.billet_thorium_fuel), null)); /* mushrooms to glowing mushrooms */ - recipes.put(new ComparableStack(Blocks.brown_mushroom), new Pair(new ItemStack(ModBlocks.mush), null)); - recipes.put(new ComparableStack(Blocks.red_mushroom), new Pair(new ItemStack(ModBlocks.mush), null)); - recipes.put(new ComparableStack(Items.mushroom_stew), new Pair(new ItemStack(ModItems.glowing_stew), null)); + recipes.put(new ComparableStack(Blocks.brown_mushroom), new OutgasserRecipe(new ItemStack(ModBlocks.mush), null)); + recipes.put(new ComparableStack(Blocks.red_mushroom), new OutgasserRecipe(new ItemStack(ModBlocks.mush), null)); + recipes.put(new ComparableStack(Items.mushroom_stew), new OutgasserRecipe(new ItemStack(ModItems.glowing_stew), null)); - recipes.put(new OreDictStack(COAL.gem()), new Pair(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.COAL, 1), new FluidStack(Fluids.SYNGAS, 50))); - recipes.put(new OreDictStack(COAL.dust()), new Pair(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.COAL, 1), new FluidStack(Fluids.SYNGAS, 50))); - recipes.put(new OreDictStack(COAL.block()), new Pair(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.COAL, 9), new FluidStack(Fluids.SYNGAS, 500))); + recipes.put(new OreDictStack(COAL.gem()), new OutgasserRecipe(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.COAL, 1), new FluidStack(Fluids.SYNGAS, 50))); + recipes.put(new OreDictStack(COAL.dust()), new OutgasserRecipe(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.COAL, 1), new FluidStack(Fluids.SYNGAS, 50))); + recipes.put(new OreDictStack(COAL.block()), new OutgasserRecipe(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.COAL, 9), new FluidStack(Fluids.SYNGAS, 500))); - recipes.put(new OreDictStack(PVC.ingot()), new Pair(new ItemStack(ModItems.ingot_c4), new FluidStack(Fluids.COLLOID, 250))); + recipes.put(new OreDictStack(PVC.ingot()), new OutgasserRecipe(new ItemStack(ModItems.ingot_c4), new FluidStack(Fluids.COLLOID, 250))); - recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.COAL)), new Pair(null, new FluidStack(Fluids.COALOIL, 100))); - recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.WAX)), new Pair(null, new FluidStack(Fluids.RADIOSOLVENT, 100))); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.COAL)), new OutgasserRecipe(null, new FluidStack(Fluids.COALOIL, 100))); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.WAX)), new OutgasserRecipe(null, new FluidStack(Fluids.RADIOSOLVENT, 100))); } - public static Pair getOutput(ItemStack input) { + public static OutgasserRecipe getOutput(ItemStack input) { ComparableStack comp = new ComparableStack(input).makeSingular(); @@ -87,11 +86,11 @@ public class OutgasserRecipes extends SerializableRecipe { HashMap recipes = new HashMap(); - for(Entry> entry : OutgasserRecipes.recipes.entrySet()) { + for(Entry entry : OutgasserRecipes.recipes.entrySet()) { AStack input = entry.getKey(); - ItemStack solidOutput = entry.getValue().getKey(); - FluidStack fluidOutput = entry.getValue().getValue(); + ItemStack solidOutput = entry.getValue().solidOutput; + FluidStack fluidOutput = entry.getValue().liquidOutput; if(solidOutput != null && fluidOutput != null) recipes.put(input, new Object[] {solidOutput, ItemFluidIcon.make(fluidOutput)}); if(solidOutput != null && fluidOutput == null) recipes.put(input, new Object[] {solidOutput}); @@ -119,39 +118,56 @@ public class OutgasserRecipes extends SerializableRecipe { ItemStack solidOutput = null; FluidStack fluidOutput = null; - if(obj.has("solidOutput")) { - solidOutput = this.readItemStack(obj.get("solidOutput").getAsJsonArray()); - } + if(obj.has("solidOutput")) solidOutput = this.readItemStack(obj.get("solidOutput").getAsJsonArray()); + if(obj.has("fluidOutput")) fluidOutput = this.readFluidStack(obj.get("fluidOutput").getAsJsonArray()); - if(obj.has("fluidOutput")) { - fluidOutput = this.readFluidStack(obj.get("fluidOutput").getAsJsonArray()); - } + OutgasserRecipe or = new OutgasserRecipe(solidOutput, fluidOutput); + if(obj.has("fusionOnly") && obj.get("fusionOnly").getAsBoolean()) or.fusionOnly(); if(solidOutput != null || fluidOutput != null) { - this.recipes.put(input, new Pair(solidOutput, fluidOutput)); + this.recipes.put(input, or); } } @Override public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { - Entry> rec = (Entry>) recipe; + Entry rec = (Entry) recipe; writer.name("input"); this.writeAStack(rec.getKey(), writer); - if(rec.getValue().getKey() != null) { + if(rec.getValue().solidOutput != null) { writer.name("solidOutput"); - this.writeItemStack(rec.getValue().getKey(), writer); + this.writeItemStack(rec.getValue().solidOutput, writer); } - if(rec.getValue().getValue() != null) { + if(rec.getValue().liquidOutput != null) { writer.name("fluidOutput"); - this.writeFluidStack(rec.getValue().getValue(), writer); + this.writeFluidStack(rec.getValue().liquidOutput, writer); } + + writer.name("fusionOnly").value(rec.getValue().fusionOnly); } @Override public void deleteRecipes() { recipes.clear(); } + + public static class OutgasserRecipe { + + public ItemStack solidOutput; + public FluidStack liquidOutput; + public boolean fusionOnly = false; + + public OutgasserRecipe(ItemStack solid, FluidStack liquid) { + this.solidOutput = solid; + this.liquidOutput = liquid; + } + + public OutgasserRecipe fusionOnly() { + this.fusionOnly = true; + return this; + } + } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 2a7601c5f..1eefae8a5 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -4052,9 +4052,7 @@ public class ModItems { linker = new ItemTeleLink().setUnlocalizedName("linker").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":linker"); reactor_sensor = new ItemReactorSensor().setUnlocalizedName("reactor_sensor").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":reactor_sensor"); oil_detector = new ItemOilDetector().setUnlocalizedName("oil_detector").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":oil_detector"); - //turret_control = new ItemTurretControl().setUnlocalizedName("turret_control").setFull3D().setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":turret_control"); turret_chip = new ItemTurretChip().setUnlocalizedName("turret_chip").setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":turret_chip"); - //turret_biometry = new ItemTurretBiometry().setUnlocalizedName("turret_biometry").setFull3D().setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":rei_scanner"); dosimeter = new ItemDosimeter().setUnlocalizedName("dosimeter").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":dosimeter"); geiger_counter = new ItemGeigerCounter().setUnlocalizedName("geiger_counter").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":geiger_counter"); digamma_diagnostic = new ItemDigammaDiagnostic().setUnlocalizedName("digamma_diagnostic").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":digamma_diagnostic"); @@ -4087,8 +4085,8 @@ public class ModItems { blueprints = new ItemBlueprints().setUnlocalizedName("blueprints").setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":blueprints"); blueprint_folder = new ItemBlueprintFolder().setUnlocalizedName("blueprint_folder").setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":blueprint_folder"); template_folder = new ItemTemplateFolder().setUnlocalizedName("template_folder").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":template_folder"); - assembly_template = new ItemAssemblyTemplate().setUnlocalizedName("assembly_template").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":assembly_template"); - chemistry_template = new ItemChemistryTemplate().setUnlocalizedName("chemistry_template").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":chemistry_template"); + assembly_template = new ItemAssemblyTemplate().setUnlocalizedName("assembly_template").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":assembly_template"); + chemistry_template = new ItemChemistryTemplate().setUnlocalizedName("chemistry_template").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":chemistry_template"); chemistry_icon = new ItemChemistryIcon().setUnlocalizedName("chemistry_icon").setMaxStackSize(1).setCreativeTab(null); crucible_template = new ItemCrucibleTemplate().setUnlocalizedName("crucible_template").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":crucible_template"); fluid_identifier_multi = new ItemFluidIDMulti().setUnlocalizedName("fluid_identifier_multi").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":fluid_identifier_multi"); diff --git a/src/main/java/com/hbm/items/tool/ItemMultiDetonator.java b/src/main/java/com/hbm/items/tool/ItemMultiDetonator.java index 45adee13f..9ff40b096 100644 --- a/src/main/java/com/hbm/items/tool/ItemMultiDetonator.java +++ b/src/main/java/com/hbm/items/tool/ItemMultiDetonator.java @@ -24,7 +24,7 @@ public class ItemMultiDetonator extends Item { public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { list.add("Shift right-click block to add position,"); list.add("right-click to detonate!"); - list.add("Shift right-click in the air to clear postitions."); + list.add("Shift right-click in the air to clear positions."); if(itemstack.getTagCompound() == null || getLocations(itemstack) == null) { list.add(EnumChatFormatting.RED + "No position set!"); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index e662f64e4..b57d0becf 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -397,8 +397,6 @@ public class ClientProxy extends ServerProxy { //multiblocks ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMultiblock.class, new RenderMultiblock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySoyuzStruct.class, new RenderSoyuzMultiblock()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityITERStruct.class, new RenderITERMultiblock()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPlasmaStruct.class, new RenderPlasmaMultiblock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWatzStruct.class, new RenderWatzMultiblock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityICFStruct.class, new RenderICFMultiblock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCustomMachine.class, new RenderCustomMachine()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index c2820b3ba..7920e59c5 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -771,9 +771,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.barrel_tcalloy, 1), new Object[] { "IPI", "I I", "IPI", 'I', "ingotTcAlloy", 'P', TI.plate() }); addRecipeAuto(new ItemStack(ModBlocks.barrel_antimatter, 1), new Object[] { "IPI", "IBI", "IPI", 'I', BIGMT.plate(), 'P', ModItems.coil_advanced_torus, 'B', ModItems.battery_sc_technetium }); addRecipeAuto(new ItemStack(ModBlocks.tesla, 1), new Object[] { "CCC", "PIP", "WTW", 'C', ModItems.coil_copper, 'I', IRON.ingot(), 'P', ANY_PLASTIC.ingot(), 'T', ModBlocks.machine_transformer, 'W', KEY_PLANKS }); - addRecipeAuto(new ItemStack(ModBlocks.struct_plasma_core, 1), new Object[] { "CBC", "BHB", "CBC", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'B', ModBlocks.machine_lithium_battery, 'H', ModBlocks.fusion_heater }); addRecipeAuto(new ItemStack(ModBlocks.struct_watz_core, 1), new Object[] { "CBC", "BHB", "CBC", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'B', ANY_RESISTANTALLOY.plateCast(), 'H', ModBlocks.watz_cooler }); - 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', ANY_BISMOID.ingot() }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index aa0e81954..ca2a7fcc8 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -226,7 +226,6 @@ public class MainRegistry { public static Achievement achBismuth; public static Achievement achBreeding; public static Achievement achFusion; - public static Achievement achMeltdown; public static int generalOverride = 0; public static int polaroidID = 1; @@ -442,7 +441,6 @@ public class MainRegistry { achBismuth = new Achievement("achievement.bismuth", "bismuth", 11, -6, ModItems.ingot_bismuth, achRBMK).initIndependentStat().registerStat(); achBreeding = new Achievement("achievement.breeding", "breeding", 7, -6, ModItems.ingot_am_mix, achRBMK).initIndependentStat().setSpecial().registerStat(); achFusion = new Achievement("achievement.fusion", "fusion", 13, -7, new ItemStack(ModBlocks.iter), achBismuth).initIndependentStat().setSpecial().registerStat(); - achMeltdown = new Achievement("achievement.meltdown", "meltdown", 15, -7, ModItems.powder_balefire, achFusion).initIndependentStat().setSpecial().registerStat(); achRedBalloons = new Achievement("achievement.redBalloons", "redBalloons", 11, 0, ModItems.missile_nuclear, achPolymer).initIndependentStat().setSpecial().registerStat(); achManhattan = new Achievement("achievement.manhattan", "manhattan", 11, -4, new ItemStack(ModBlocks.nuke_boy), achPolymer).initIndependentStat().setSpecial().registerStat(); @@ -508,7 +506,6 @@ public class MainRegistry { achBismuth, achBreeding, achFusion, - achMeltdown, achRedBalloons, achManhattan })); @@ -1457,6 +1454,8 @@ public class MainRegistry { ignoreMappings.add("hbm:item.multitool_mega"); ignoreMappings.add("hbm:item.multitool_joule"); ignoreMappings.add("hbm:item.multitool_decon"); + ignoreMappings.add("hbm:tile.struct_iter_core"); + ignoreMappings.add("hbm:tile.struct_plasma_core"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/render/tileentity/RenderITERMultiblock.java b/src/main/java/com/hbm/render/tileentity/RenderITERMultiblock.java deleted file mode 100644 index c4cad00da..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderITERMultiblock.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.blocks.ModBlocks; -import com.hbm.render.util.SmallBlockPronter; -import com.hbm.tileentity.machine.TileEntityITERStruct; - -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; - -public class RenderITERMultiblock extends TileEntitySpecialRenderer { - - @Override - public void renderTileEntityAt(TileEntity te, double x, double y, double z, float f) { - - GL11.glPushMatrix(); - - GL11.glTranslated(x, y, z); - - bindTexture(TextureMap.locationBlocksTexture); - SmallBlockPronter.startDrawing(); - - int[][][] layout = TileEntityITERStruct.layout; - - for(int iy = -2; iy <= 2; iy++) { - int iny = 2 - Math.abs(iy); - - for(int ix = 0; ix < layout[0].length; ix++) { - for(int iz = 0; iz < layout[0][0].length; iz++) { - - int block = layout[iny][ix][iz]; - - switch(block) { - case 0: - continue; - case 1: SmallBlockPronter.drawSmolBlockAt(ModBlocks.fusion_conductor, 1, ix - 7F, iy + 2, iz - 7F); break; - case 2: SmallBlockPronter.drawSmolBlockAt(ModBlocks.fusion_center, 0, ix - 7F, iy + 2, iz - 7F); break; - case 3: SmallBlockPronter.drawSmolBlockAt(ModBlocks.fusion_motor, 0, ix - 7F, iy + 2, iz - 7F); break; - case 4: SmallBlockPronter.drawSmolBlockAt(ModBlocks.reinforced_glass, 0, ix - 7F, iy + 2, iz - 7F); break; - } - } - } - } - - SmallBlockPronter.draw(); - - GL11.glPopMatrix(); - } - -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderPlasmaMultiblock.java b/src/main/java/com/hbm/render/tileentity/RenderPlasmaMultiblock.java deleted file mode 100644 index 2e0ef8a76..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderPlasmaMultiblock.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.blocks.ModBlocks; -import com.hbm.render.util.IconUtil; -import com.hbm.render.util.SmallBlockPronter; - -import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; - -public class RenderPlasmaMultiblock extends TileEntitySpecialRenderer { - - @Override - public void renderTileEntityAt(TileEntity te, double x, double y, double z, float f) { - - GL11.glPushMatrix(); - - GL11.glTranslatef((float)x + 0.5F, (float)y, (float)z + 0.5F); - - switch(te.getBlockMetadata()) { - case 2: GL11.glRotatef(270, 0F, 1F, 0F); break; - case 4: GL11.glRotatef(0, 0F, 1F, 0F); break; - case 3: GL11.glRotatef(90, 0F, 1F, 0F); break; - case 5: GL11.glRotatef(180, 0F, 1F, 0F); break; - } - - GL11.glTranslatef(-0.5F, 0, -0.5F); - - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL11.GL_CULL_FACE); - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 0.75F); - GL11.glDisable(GL11.GL_ALPHA_TEST); - GL11.glDepthMask(false); - - ResourceLocation heater = IconUtil.getTextureFromBlockAndSide(ModBlocks.fusion_heater, 2); - bindTexture(heater); - - for(int iy = 1; iy < 6; iy ++) { - - for(int ix = 0; ix < 10; ix++) { - - for(int iz = -1; iz < 2; iz++) { - - if(iy == 5 && ix > 3) - break; - - SmallBlockPronter.renderSmolBlockAt(ix, iy, iz); - } - } - } - - for(int i = 10; i <= 11; i++) - for(int j = 2; j <= 3; j++) - SmallBlockPronter.renderSmolBlockAt(i, j, 0); - - GL11.glDisable(GL11.GL_BLEND); - GL11.glEnable(GL11.GL_ALPHA_TEST); - GL11.glDepthMask(true); - - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index e0598f326..caf2588aa 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -169,7 +169,6 @@ public class TileMappings { put(TileEntityMachineRotaryFurnace.class, "tileentity_rotary_furnace"); put(TileEntityMachineCrystallizer.class, "tileentity_acidomatic"); put(TileEntitySoyuzStruct.class, "tileentity_soyuz_struct"); - put(TileEntityITERStruct.class, "tileentity_iter_struct"); put(TileEntityMachineMiningLaser.class, "tileentity_mining_laser"); put(TileEntityNukeBalefire.class, "tileentity_nuke_fstbmb"); put(TileEntityMicrowave.class, "tileentity_microwave"); @@ -182,7 +181,6 @@ public class TileMappings { put(TileEntityMachinePlasmaHeater.class, "tileentity_plasma_heater"); put(TileEntityMachineFENSU.class, "tileentity_fensu"); put(TileEntityTrappedBrick.class, "tileentity_trapped_brick"); - put(TileEntityPlasmaStruct.class, "tileentity_plasma_struct"); put(TileEntityWatzStruct.class, "tileentity_watz_struct"); put(TileEntityICFStruct.class, "tileentity_icf_struct"); put(TileEntityHadronDiode.class, "tileentity_hadron_diode"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java index 279bc8033..872e01f2c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java @@ -3,8 +3,6 @@ package com.hbm.tileentity.machine; import java.util.ArrayList; import java.util.List; -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.machine.MachineITER; import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNT; import com.hbm.explosion.ExplosionNT.ExAttrib; @@ -477,37 +475,8 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyRece } public void disassemble() { - - MachineITER.drop = false; - - int[][][] layout = TileEntityITERStruct.layout; - - for(int y = 0; y < 5; y++) { - for(int x = 0; x < layout[0].length; x++) { - for(int z = 0; z < layout[0][0].length; z++) { - - int ly = y > 2 ? 4 - y : y; - - int width = 7; - - if(x == width && y == 0 && z == width) - continue; - - int b = layout[ly][x][z]; - - switch(b) { - case 1: worldObj.setBlock(xCoord - width + x, yCoord + y - 2, zCoord - width + z, ModBlocks.fusion_conductor, 1, 3); break; - case 2: worldObj.setBlock(xCoord - width + x, yCoord + y - 2, zCoord - width + z, ModBlocks.fusion_center); break; - case 3: worldObj.setBlock(xCoord - width + x, yCoord + y - 2, zCoord - width + z, ModBlocks.fusion_motor); break; - case 4: worldObj.setBlock(xCoord - width + x, yCoord + y - 2, zCoord - width + z, ModBlocks.reinforced_glass); break; - } - } - } - } - - worldObj.setBlock(xCoord, yCoord - 2, zCoord, ModBlocks.struct_iter_core); - - MachineITER.drop = true; + + worldObj.func_147480_a(xCoord, yCoord, zCoord, false); List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5).expand(50, 10, 50)); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPlasmaStruct.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPlasmaStruct.java deleted file mode 100644 index 49b87715a..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPlasmaStruct.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.hbm.tileentity.machine; - -import com.hbm.blocks.BlockDummyable; -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.machine.MachinePlasmaHeater; -import com.hbm.handler.MultiblockHandlerXR; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraftforge.common.util.ForgeDirection; - -public class TileEntityPlasmaStruct extends TileEntity { - - int age; - - @Override - public void updateEntity() { - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); - - if(worldObj.isRemote) { - worldObj.spawnParticle("reddust", - xCoord + 0.5 + dir.offsetX * -11 + worldObj.rand.nextGaussian() * 0.1, - yCoord + 2.5 + worldObj.rand.nextGaussian() * 0.1, - zCoord + 0.5 + dir.offsetZ * -11 + worldObj.rand.nextGaussian() * 0.1, - 0.9, 0.3, 0.7); - return; - } - - age++; - - if(age < 20) - return; - - age = 0; - - MachinePlasmaHeater plas = (MachinePlasmaHeater)ModBlocks.plasma_heater; - - int[] rot = MultiblockHandlerXR.rotate(plas.getDimensions(), dir); - - for(int a = xCoord - rot[4]; a <= xCoord + rot[5]; a++) { - for(int b = yCoord - rot[1]; b <= yCoord + rot[0]; b++) { - for(int c = zCoord - rot[2]; c <= zCoord + rot[3]; c++) { - - if(a == xCoord && b == yCoord && c == zCoord) - continue; - - if(worldObj.getBlock(a, b, c) != ModBlocks.fusion_heater) - return; - } - } - } - - rot = MultiblockHandlerXR.rotate(new int[] {4, -3, 2, 1, 1, 1}, dir); - - for(int a = xCoord - rot[4]; a <= xCoord + rot[5]; a++) { - for(int b = yCoord - rot[1]; b <= yCoord + rot[0]; b++) { - for(int c = zCoord - rot[2]; c <= zCoord + rot[3]; c++) { - - if(a == xCoord && b == yCoord && c == zCoord) - continue; - - if(worldObj.getBlock(a, b, c) != ModBlocks.fusion_heater) - return; - } - } - } - - - for(int i = 9; i <= 10; i++) - for(int j = 1; j <= 2; j++) - if(worldObj.getBlock(xCoord - dir.offsetX * i, yCoord + j, zCoord - dir.offsetZ * i) != ModBlocks.fusion_heater) - return; - - BlockDummyable.safeRem = true; - worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.plasma_heater, this.getBlockMetadata() + BlockDummyable.offset, 3); - plas.fillSpace(worldObj, xCoord + dir.offsetX, yCoord, zCoord + dir.offsetZ, dir, -plas.getOffset()); - BlockDummyable.safeRem = false; - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() { - return 65536.0D; - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionBreeder.java b/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionBreeder.java index e06099d3f..61eeeaf27 100644 --- a/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionBreeder.java +++ b/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionBreeder.java @@ -8,6 +8,7 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIFusionBreeder; import com.hbm.inventory.recipes.FluidBreederRecipes; import com.hbm.inventory.recipes.OutgasserRecipes; +import com.hbm.inventory.recipes.OutgasserRecipes.OutgasserRecipe; import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; @@ -104,10 +105,10 @@ public class TileEntityFusionBreeder extends TileEntityMachineBase implements IF public boolean canProcessSolid() { if(slots[1] == null) return false; - Pair output = OutgasserRecipes.getOutput(slots[1]); + OutgasserRecipe output = OutgasserRecipes.getOutput(slots[1]); if(output == null) return false; - FluidStack fluid = output.getValue(); + FluidStack fluid = output.liquidOutput; if(fluid != null) { if(tanks[1].getTankType() != fluid.type && tanks[1].getFill() > 0) return false; @@ -115,7 +116,7 @@ public class TileEntityFusionBreeder extends TileEntityMachineBase implements IF if(tanks[1].getFill() + fluid.fill > tanks[1].getMaxFill()) return false; } - ItemStack out = output.getKey(); + ItemStack out = output.solidOutput; if(slots[2] == null || out == null) return true; return slots[2].getItem() == out.getItem() && slots[2].getItemDamage() == out.getItemDamage() && slots[2].stackSize + out.stackSize <= slots[2].getMaxStackSize(); @@ -138,15 +139,15 @@ public class TileEntityFusionBreeder extends TileEntityMachineBase implements IF private void processSolid() { - Pair output = OutgasserRecipes.getOutput(slots[1]); + OutgasserRecipe output = OutgasserRecipes.getOutput(slots[1]); this.decrStackSize(1, 1); this.progress = 0; - if(output.getValue() != null) { - tanks[1].setFill(tanks[1].getFill() + output.getValue().fill); + if(output.liquidOutput != null) { + tanks[1].setFill(tanks[1].getFill() + output.liquidOutput.fill); } - ItemStack out = output.getKey(); + ItemStack out = output.solidOutput; if(out != null) { if(slots[2] == null) { diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java index 7dd0814db..0bae4dda2 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java @@ -1,6 +1,7 @@ package com.hbm.tileentity.machine.rbmk; -import api.hbm.fluid.IFluidStandardSender; +import api.hbm.fluidmk2.IFluidStandardSenderMK2; + import com.hbm.blocks.ModBlocks; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; import com.hbm.handler.CompatHandler; @@ -12,9 +13,9 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIRBMKOutgasser; import com.hbm.inventory.recipes.OutgasserRecipes; +import com.hbm.inventory.recipes.OutgasserRecipes.OutgasserRecipe; import com.hbm.lib.Library; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; -import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; @@ -31,7 +32,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implements IRBMKFluxReceiver, IFluidStandardSender, SimpleComponent, CompatHandler.OCComponent { +public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implements IRBMKFluxReceiver, IFluidStandardSenderMK2, SimpleComponent, CompatHandler.OCComponent { public FluidTank gas; public double progress; @@ -52,13 +53,8 @@ public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implement if(!worldObj.isRemote) { - if(!canProcess()) { - this.progress = 0; - } - - for(DirPos pos : getOutputPos()) { - if(this.gas.getFill() > 0) this.sendFluid(gas, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - } + if(!canProcess()) this.progress = 0; + for(DirPos pos : getOutputPos()) if(this.gas.getFill() > 0) this.tryProvide(gas, worldObj, pos); } super.updateEntity(); @@ -113,12 +109,12 @@ public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implement if(slots[0] == null) return false; - Pair output = OutgasserRecipes.getOutput(slots[0]); + OutgasserRecipe output = OutgasserRecipes.getOutput(slots[0]); - if(output == null) - return false; + if(output == null) return false; + if(output.fusionOnly) return false; - FluidStack fluid = output.getValue(); + FluidStack fluid = output.liquidOutput; if(fluid != null) { if(gas.getTankType() != fluid.type && gas.getFill() > 0) return false; @@ -126,7 +122,7 @@ public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implement if(gas.getFill() + fluid.fill > gas.getMaxFill()) return false; } - ItemStack out = output.getKey(); + ItemStack out = output.solidOutput; if(slots[1] == null || out == null) return true; @@ -136,15 +132,15 @@ public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implement private void process() { - Pair output = OutgasserRecipes.getOutput(slots[0]); + OutgasserRecipe output = OutgasserRecipes.getOutput(slots[0]); this.decrStackSize(0, 1); this.progress = 0; - if(output.getValue() != null) { - gas.setFill(gas.getFill() + output.getValue().fill); + if(output.liquidOutput != null) { + gas.setFill(gas.getFill() + output.liquidOutput.fill); } - ItemStack out = output.getKey(); + ItemStack out = output.solidOutput; if(out != null) { if(slots[1] == null) { diff --git a/src/main/java/com/hbm/util/AchievementHandler.java b/src/main/java/com/hbm/util/AchievementHandler.java index 8c36ef859..734fa6910 100644 --- a/src/main/java/com/hbm/util/AchievementHandler.java +++ b/src/main/java/com/hbm/util/AchievementHandler.java @@ -45,7 +45,7 @@ public class AchievementHandler { craftingAchievements.put(new ComparableStack(ModItems.mp_warhead_15_nuclear), MainRegistry.achRedBalloons); craftingAchievements.put(new ComparableStack(ModItems.mp_warhead_15_nuclear_shark), MainRegistry.achRedBalloons); craftingAchievements.put(new ComparableStack(ModItems.mp_warhead_15_boxcar), MainRegistry.achRedBalloons); - craftingAchievements.put(new ComparableStack(ModBlocks.struct_iter_core), MainRegistry.achFusion); + craftingAchievements.put(new ComparableStack(ModBlocks.struct_torus_core), MainRegistry.achFusion); craftingAchievements.put(new ComparableStack(ModBlocks.machine_difurnace_off), MainRegistry.achBlastFurnace); craftingAchievements.put(new ComparableStack(ModBlocks.machine_assembly_machine), MainRegistry.achAssembly); craftingAchievements.put(new ComparableStack(ModItems.billet_pu_mix), MainRegistry.achChicagoPile); diff --git a/src/main/java/com/hbm/util/CompatRecipeRegistry.java b/src/main/java/com/hbm/util/CompatRecipeRegistry.java index d9ad6dbe2..5131614b0 100644 --- a/src/main/java/com/hbm/util/CompatRecipeRegistry.java +++ b/src/main/java/com/hbm/util/CompatRecipeRegistry.java @@ -17,6 +17,7 @@ import com.hbm.inventory.recipes.CrystallizerRecipes.CrystallizerRecipe; import com.hbm.inventory.recipes.ElectrolyserFluidRecipes.ElectrolysisRecipe; import com.hbm.inventory.recipes.ElectrolyserMetalRecipes.ElectrolysisMetalRecipe; import com.hbm.inventory.recipes.ExposureChamberRecipes.ExposureChamberRecipe; +import com.hbm.inventory.recipes.OutgasserRecipes.OutgasserRecipe; import com.hbm.inventory.recipes.ParticleAcceleratorRecipes.ParticleAcceleratorRecipe; import com.hbm.inventory.recipes.PedestalRecipes.PedestalExtraCondition; import com.hbm.inventory.recipes.PedestalRecipes.PedestalRecipe; @@ -183,8 +184,14 @@ public class CompatRecipeRegistry { //TBI mixer - public static void registerOutgasser(AStack input, ItemStack output, FluidStack fluid) { - OutgasserRecipes.recipes.put(input, new Pair(output, fluid)); + @Deprecated public static void registerOutgasser(AStack input, ItemStack output, FluidStack fluid) { + OutgasserRecipes.recipes.put(input, new OutgasserRecipe(output, fluid)); + } + + public static void registerOutgasser(AStack input, ItemStack output, FluidStack fluid, boolean fusionOnly) { + OutgasserRecipe recipe = new OutgasserRecipe(output, fluid); + if(fusionOnly) recipe.fusionOnly(); + OutgasserRecipes.recipes.put(input, recipe); } public static void registerCompressor(FluidStack input, FluidStack output, int time) {