diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index 4b5ffdf44..525b9980a 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -282,7 +282,7 @@ container.rtgFurnace=RTG-Ofen tile.machine_electric_furnace_off.name=Elektrischer Ofen tile.machine_electric_furnace_on.name=Elektrischer Ofen container.electricFurnace=Elektrischer Ofen -tile.machine_generator.name=Atomreaktor +tile.machine_generator.name=Atomreaktor (Alt) container.generator=Atomreaktor tile.red_wire_coated.name=Geschirmtes rotes Kupferkabel tile.machine_deuterium.name=Deuteriumextraktor @@ -351,6 +351,8 @@ tile.machine_radgen.name=Strahlenbetriebener Generator container.radGen=Strahlenbetriebener Generator tile.machine_selenium.name=Hochleistungs-Sternmotor container.machineSelenium=Hochleistungs-Sternmotor +tile.machine_reactor_small.name=Atomreaktor +container.reactorSmall=Atomreaktor tile.broadcaster_pc.name=Korrupter Sender diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index 01f68c050..cae799e62 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -282,7 +282,7 @@ container.rtgFurnace=RTG Furnace tile.machine_electric_furnace_off.name=Electric Furnace tile.machine_electric_furnace_on.name=Electric Furnace container.electricFurnace=Electric Furnace -tile.machine_generator.name=Nuclear Reactor +tile.machine_generator.name=Nuclear Reactor (Old) container.generator=Nuclear Reactor tile.red_wire_coated.name=Coated Red Copper Cable tile.machine_deuterium.name=Deuterium Extractor @@ -351,6 +351,8 @@ tile.machine_radgen.name=Radiation-Powered Engine container.radGen=Radiation-Powered Engine tile.machine_selenium.name=Radial Performance Engine container.machineSelenium=Radial Performance Engine +tile.machine_reactor_small.name=Nuclear Reactor +container.reactorSmall=Nuclear Reactor tile.broadcaster_pc.name=Corrupted Broadcaster diff --git a/assets/hbm/textures/blocks/machine_reactor_small.png b/assets/hbm/textures/blocks/machine_reactor_small.png new file mode 100644 index 000000000..caca3ad41 Binary files /dev/null and b/assets/hbm/textures/blocks/machine_reactor_small.png differ diff --git a/assets/hbm/textures/gui/gui_reactor_small.png b/assets/hbm/textures/gui/gui_reactor_small.png index 064445911..7dfc3b8dd 100644 Binary files a/assets/hbm/textures/gui/gui_reactor_small.png and b/assets/hbm/textures/gui/gui_reactor_small.png differ diff --git a/assets/hbm/textures/gui/gui_reactor_small_overlay.png b/assets/hbm/textures/gui/gui_reactor_small_overlay.png index 4b3f80995..74b71dd4d 100644 Binary files a/assets/hbm/textures/gui/gui_reactor_small_overlay.png and b/assets/hbm/textures/gui/gui_reactor_small_overlay.png differ diff --git a/assets/hbm/textures/models/reactor_small_base.png b/assets/hbm/textures/models/reactor_small_base.png index ec9177249..456c6b5a7 100644 Binary files a/assets/hbm/textures/models/reactor_small_base.png and b/assets/hbm/textures/models/reactor_small_base.png differ diff --git a/com/hbm/blocks/ModBlocks.java b/com/hbm/blocks/ModBlocks.java index 7cc9a6824..bd357fee9 100644 --- a/com/hbm/blocks/ModBlocks.java +++ b/com/hbm/blocks/ModBlocks.java @@ -511,6 +511,8 @@ public class ModBlocks { public static Block dummy_port_ams_base; public static Block dummy_block_radgen; public static Block dummy_port_radgen; + public static Block dummy_block_reactor_small; + public static Block dummy_port_reactor_small; public static Block ntm_dirt; @@ -656,11 +658,11 @@ public class ModBlocks { nuke_solinium = new NukeSolinium(Material.iron).setBlockName("nuke_solinium").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":nuke_solinium"); nuke_n2 = new NukeN2(Material.iron).setBlockName("nuke_n2").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":nuke_n2"); - cel_prime = new CelPrime(Material.iron).setBlockName("cel_prime").setCreativeTab(MainRegistry.weaponTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":cel_prime"); - cel_prime_terminal = new CelPrimePart(Material.iron).setBlockName("cel_prime_terminal").setCreativeTab(MainRegistry.weaponTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":cel_prime_terminal"); - cel_prime_battery = new CelPrimePart(Material.iron).setBlockName("cel_prime_battery").setCreativeTab(MainRegistry.weaponTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":cel_prime_battery"); - cel_prime_port = new CelPrimePart(Material.iron).setBlockName("cel_prime_port").setCreativeTab(MainRegistry.weaponTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":cel_prime_port"); - cel_prime_tanks = new CelPrimePart(Material.iron).setBlockName("cel_prime_tanks").setCreativeTab(MainRegistry.weaponTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":cel_prime_tanks"); + cel_prime = new CelPrime(Material.iron).setBlockName("cel_prime").setCreativeTab(null).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":cel_prime"); + cel_prime_terminal = new CelPrimePart(Material.iron).setBlockName("cel_prime_terminal").setCreativeTab(null).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":cel_prime_terminal"); + cel_prime_battery = new CelPrimePart(Material.iron).setBlockName("cel_prime_battery").setCreativeTab(null).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":cel_prime_battery"); + cel_prime_port = new CelPrimePart(Material.iron).setBlockName("cel_prime_port").setCreativeTab(null).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":cel_prime_port"); + cel_prime_tanks = new CelPrimePart(Material.iron).setBlockName("cel_prime_tanks").setCreativeTab(null).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":cel_prime_tanks"); bomb_multi = new BombMulti(Material.iron).setBlockName("bomb_multi").setCreativeTab(MainRegistry.nukeTab).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":bomb_multi1"); //bomb_multi_large = new BombMultiLarge(Material.iron).setBlockName("bomb_multi_large").setCreativeTab(MainRegistry.tabNuke).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":bomb_multi_large"); @@ -694,7 +696,7 @@ public class ModBlocks { machine_rtg_furnace_off = new MachineRtgFurnace(false).setBlockName("machine_rtg_furnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_rtg_furnace_on = new MachineRtgFurnace(true).setBlockName("machine_rtg_furnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); - machine_generator = new MachineGenerator(Material.iron).setBlockName("machine_generator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_generator = new MachineGenerator(Material.iron).setBlockName("machine_generator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null); machine_industrial_generator = new MachineIGenerator(Material.iron).setBlockName("machine_industrial_generator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":industrial_generator"); machine_cyclotron = new MachineCyclotron(Material.iron).setBlockName("machine_cyclotron").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":cyclotron"); machine_radgen = new MachineRadGen(Material.iron).setBlockName("machine_radgen").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_radgen"); @@ -904,6 +906,8 @@ public class ModBlocks { dummy_port_ams_base = new DummyBlockAMSBase(Material.iron).setBlockName("dummy_port_ams_base").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_copper"); dummy_block_radgen = new DummyBlockRadGen(Material.iron).setBlockName("dummy_block_radgen").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); dummy_port_radgen = new DummyBlockRadGen(Material.iron).setBlockName("dummy_port_radgen").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); + dummy_block_reactor_small = new DummyBlockMachine(Material.iron, guiID_reactor_small, machine_reactor_small).setBlockName("dummy_block_reactor_small").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); + dummy_port_reactor_small = new DummyBlockMachine(Material.iron, guiID_reactor_small, machine_reactor_small).setBlockName("dummy_port_reactor_small").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); ntm_dirt = new BlockNTMDirt().setBlockName("ntm_dirt").setHardness(0.5F).setStepSound(Block.soundTypeGravel).setCreativeTab(null).setBlockTextureName("dirt"); } @@ -1290,6 +1294,8 @@ public class ModBlocks { GameRegistry.registerBlock(dummy_port_ams_base, dummy_port_ams_base.getUnlocalizedName()); GameRegistry.registerBlock(dummy_block_radgen, dummy_block_radgen.getUnlocalizedName()); GameRegistry.registerBlock(dummy_port_radgen, dummy_port_radgen.getUnlocalizedName()); + GameRegistry.registerBlock(dummy_block_reactor_small, dummy_block_reactor_small.getUnlocalizedName()); + GameRegistry.registerBlock(dummy_port_reactor_small, dummy_port_reactor_small.getUnlocalizedName()); //Other Technical Blocks GameRegistry.registerBlock(oil_pipe, oil_pipe.getUnlocalizedName()); diff --git a/com/hbm/blocks/machine/DummyBlockMachine.java b/com/hbm/blocks/machine/DummyBlockMachine.java new file mode 100644 index 000000000..46f2d8d59 --- /dev/null +++ b/com/hbm/blocks/machine/DummyBlockMachine.java @@ -0,0 +1,113 @@ +package com.hbm.blocks.machine; + +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.interfaces.IDummy; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityAMSBase; +import com.hbm.tileentity.machine.TileEntityAMSEmitter; +import com.hbm.tileentity.machine.TileEntityDummy; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class DummyBlockMachine extends BlockContainer implements IDummy { + + public static boolean safeBreak = false; + + private int id; + private Block drop; + + public DummyBlockMachine(Material p_i45386_1_) { + super(p_i45386_1_); + } + + public DummyBlockMachine(Material mat, int id, Block drop) { + super(mat); + this.id = id; + this.drop = drop; + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntityDummy(); + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int i) + { + if(!safeBreak) { + TileEntity te = world.getTileEntity(x, y, z); + if(te != null && te instanceof TileEntityDummy) { + int a = ((TileEntityDummy)te).targetX; + int b = ((TileEntityDummy)te).targetY; + int c = ((TileEntityDummy)te).targetZ; + + if(!world.isRemote) + world.func_147480_a(a, b, c, true); + } + } + world.removeTileEntity(x, y, z); + } + + @Override + public int getRenderType() { + return -1; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) + { + return null; + } + + @Override + @SideOnly(Side.CLIENT) + public Item getItem(World world, int x, int y, int z) + { + return Item.getItemFromBlock(drop); + } + + @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()) + { + TileEntity te = world.getTileEntity(x, y, z); + if(te != null && te instanceof TileEntityDummy) { + int a = ((TileEntityDummy)te).targetX; + int b = ((TileEntityDummy)te).targetY; + int c = ((TileEntityDummy)te).targetZ; + + if(te != null) + { + FMLNetworkHandler.openGui(player, MainRegistry.instance, id, world, a, b, c); + } + } + return true; + } else { + return false; + } + } +} diff --git a/com/hbm/blocks/machine/MachineGenerator.java b/com/hbm/blocks/machine/MachineGenerator.java index d60e1126a..854f90e92 100644 --- a/com/hbm/blocks/machine/MachineGenerator.java +++ b/com/hbm/blocks/machine/MachineGenerator.java @@ -56,7 +56,7 @@ public class MachineGenerator extends BlockContainer { @Override public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { - return Item.getItemFromBlock(ModBlocks.machine_generator); + return Item.getItemFromBlock(ModBlocks.machine_reactor_small); } @Override diff --git a/com/hbm/blocks/machine/MachineReactorSmall.java b/com/hbm/blocks/machine/MachineReactorSmall.java index 878c97725..4d92e26fd 100644 --- a/com/hbm/blocks/machine/MachineReactorSmall.java +++ b/com/hbm/blocks/machine/MachineReactorSmall.java @@ -3,7 +3,10 @@ package com.hbm.blocks.machine; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.handler.MultiblockHandler; +import com.hbm.interfaces.IMultiblock; import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityDummy; import com.hbm.tileentity.machine.TileEntityMachinePress; import com.hbm.tileentity.machine.TileEntityMachineReactorSmall; @@ -11,6 +14,7 @@ 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; @@ -20,7 +24,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -public class MachineReactorSmall extends BlockContainer { +public class MachineReactorSmall extends BlockContainer implements IMultiblock { private final Random field_149933_a = new Random(); private static boolean keepInventory; @@ -107,6 +111,36 @@ public class MachineReactorSmall extends BlockContainer { super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); } + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { + + if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.reactorSmallDimension)) { + + // + DummyBlockMachine.safeBreak = true; + world.setBlock(x, y + 1, z, ModBlocks.dummy_block_reactor_small); + TileEntity te = world.getTileEntity(x, y + 1, z); + if(te instanceof TileEntityDummy) { + TileEntityDummy dummy = (TileEntityDummy)te; + dummy.targetX = x; + dummy.targetY = y; + dummy.targetZ = z; + } + world.setBlock(x, y + 2, z, ModBlocks.dummy_port_reactor_small); + TileEntity te2 = world.getTileEntity(x, y + 2, z); + if(te2 instanceof TileEntityDummy) { + TileEntityDummy dummy = (TileEntityDummy)te2; + dummy.targetX = x; + dummy.targetY = y; + dummy.targetZ = z; + } + DummyBlockMachine.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) diff --git a/com/hbm/handler/MultiblockHandler.java b/com/hbm/handler/MultiblockHandler.java index d30828668..f6cdab377 100644 --- a/com/hbm/handler/MultiblockHandler.java +++ b/com/hbm/handler/MultiblockHandler.java @@ -77,6 +77,7 @@ public class MultiblockHandler { public static final int[] radGenDimensionEast = new int[] { 1, 1, 2, 0, 4, 1 }; public static final int[] radGenDimensionSouth = new int[] { 1, 4, 2, 0, 1, 1 }; public static final int[] radGenDimensionWest = new int[] { 1, 1, 2, 0, 1, 4 }; + public static final int[] reactorSmallDimension = new int[] { 0, 0, 2, 0, 0, 0 }; //Approved! public static boolean checkSpace(World world, int x, int y, int z, int[] i) { diff --git a/com/hbm/inventory/MachineRecipes.java b/com/hbm/inventory/MachineRecipes.java index 668d5d41a..9f2d8b8e7 100644 --- a/com/hbm/inventory/MachineRecipes.java +++ b/com/hbm/inventory/MachineRecipes.java @@ -1997,7 +1997,7 @@ public class MachineRecipes { list.add(new ItemStack(ModItems.board_copper, 6)); list.add(new ItemStack(ModItems.motor, 1)); list.add(new ItemStack(ModItems.circuit_targeting_tier4, 2)); - list.add(new ItemStack(ModBlocks.machine_generator, 1)); + list.add(new ItemStack(ModBlocks.machine_reactor_small, 1)); break; case SAT_BASE: list.add(new ItemStack(ModItems.thruster_large, 1)); @@ -3764,7 +3764,7 @@ public class MachineRecipes { output = new ItemStack(ModBlocks.machine_selenium, 1); break; case NUCLEAR_GENERATOR: - output = new ItemStack(ModBlocks.machine_generator, 1); + output = new ItemStack(ModBlocks.machine_reactor_small, 1); break; case INDUSTRIAL_GENERATOR: output = new ItemStack(ModBlocks.machine_industrial_generator, 1); diff --git a/com/hbm/inventory/gui/GUIMachineReactorSmall.java b/com/hbm/inventory/gui/GUIMachineReactorSmall.java index 5a894f939..3373ace71 100644 --- a/com/hbm/inventory/gui/GUIMachineReactorSmall.java +++ b/com/hbm/inventory/gui/GUIMachineReactorSmall.java @@ -39,8 +39,37 @@ public class GUIMachineReactorSmall extends GuiInfoContainer { diFurnace.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 36, 16, 52); diFurnace.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 26, guiTop + 36, 16, 52); this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 108, 88, 4, diFurnace.power, diFurnace.powerMax); - this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 114, 88, 4, new String[] { "Hull Temperature:", " " + Math.round((diFurnace.hullHeat) * 0.00001 * 2480 + 20) + "°C" }); + this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 114, 88, 4, new String[] { "Hull Temperature:", " " + Math.round((diFurnace.hullHeat) * 0.00001 * 980 + 20) + "°C" }); this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 120, 88, 4, new String[] { "Core Temperature:", " " + Math.round((diFurnace.coreHeat) * 0.00002 * 980 + 20) + "°C" }); + + String[] text = new String[] { "Coolant will move heat from the core to", + "the hull. Water will use that heat and", + "generate power.", + "Water consumption rate:", + " 100 mB/t", + " 2000 mB/s", + "Coolant consumption rate:", + " 10 mB/t", + " 200 mB/s", + "Water next to the reactor's open", + "sides will pour into the tank." }; + this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text); + + String[] text1 = new String[] { "Raise/lower the control rods", + "using the button next to the", + "fluid gauges." }; + this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, text1); + + if(diFurnace.tanks[0].getFill() <= 0) { + String[] text2 = new String[] { "Error: Water is required for", + "the reactor to function properly!" }; + this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 32, 16, 16, guiLeft - 8, guiTop + 36 + 32 + 16, text2); + } + + if(diFurnace.tanks[1].getFill() <= 0) { + String[] text3 = new String[] { "Use of coolant is advised." }; + this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 32 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 32 + 16, text3); + } } @Override @@ -114,6 +143,15 @@ public class GUIMachineReactorSmall extends GuiInfoContainer { } } + + this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 2); + this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 16, 16, 16, 3); + + if(diFurnace.tanks[0].getFill() <= 0) + this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 32, 16, 16, 6); + + if(diFurnace.tanks[1].getFill() <= 0) + this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 32 + 16, 16, 16, 7); Minecraft.getMinecraft().getTextureManager().bindTexture(diFurnace.tanks[0].getSheet()); diFurnace.tanks[0].renderTank(this, guiLeft + 8, guiTop + 88, diFurnace.tanks[0].getTankType().textureX() * FluidTank.x, diFurnace.tanks[0].getTankType().textureY() * FluidTank.y, 16, 52); diff --git a/com/hbm/lib/Library.java b/com/hbm/lib/Library.java index 98e958e39..af0ac0e84 100644 --- a/com/hbm/lib/Library.java +++ b/com/hbm/lib/Library.java @@ -304,7 +304,8 @@ public class Library { world.getBlock(x, y, z) == ModBlocks.dummy_port_ams_limiter || world.getBlock(x, y, z) == ModBlocks.dummy_port_ams_emitter || world.getBlock(x, y, z) == ModBlocks.dummy_port_ams_base || - world.getBlock(x, y, z) == ModBlocks.dummy_port_radgen) + world.getBlock(x, y, z) == ModBlocks.dummy_port_radgen || + world.getBlock(x, y, z) == ModBlocks.dummy_port_reactor_small) { return true; } @@ -339,7 +340,8 @@ public class Library { world.getBlock(x, y, z) == ModBlocks.fwatz_hatch || world.getBlock(x, y, z) == ModBlocks.dummy_port_ams_limiter || world.getBlock(x, y, z) == ModBlocks.dummy_port_ams_emitter || - world.getBlock(x, y, z) == ModBlocks.dummy_port_ams_base) + world.getBlock(x, y, z) == ModBlocks.dummy_port_ams_base || + world.getBlock(x, y, z) == ModBlocks.dummy_port_reactor_small) { return true; } @@ -989,6 +991,11 @@ public class Library { { tileentity = worldObj.getTileEntity(((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetX, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetY, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetZ); } + //Small Nuclear Reactor + if(block == ModBlocks.dummy_port_reactor_small) + { + tileentity = worldObj.getTileEntity(((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetX, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetY, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetZ); + } if(tileentity == that) tileentity = null; diff --git a/com/hbm/lib/RefStrings.java b/com/hbm/lib/RefStrings.java index 4f3559457..5da3c4b2b 100644 --- a/com/hbm/lib/RefStrings.java +++ b/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (Cobalt-X08)"; + public static final String VERSION = "1.0.27 BETA (2835)"; //HBM's Beta Naming Convention: //V T (X-Y-Z) //V -> next release version diff --git a/com/hbm/main/NEIConfig.java b/com/hbm/main/NEIConfig.java index 571fa587c..cce091286 100644 --- a/com/hbm/main/NEIConfig.java +++ b/com/hbm/main/NEIConfig.java @@ -86,6 +86,7 @@ public class NEIConfig implements IConfigureNEI { 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)); + API.hideItem(new ItemStack(ModBlocks.dummy_block_reactor_small)); API.hideItem(new ItemStack(ModBlocks.dummy_port_assembler)); API.hideItem(new ItemStack(ModBlocks.dummy_port_chemplant)); API.hideItem(new ItemStack(ModBlocks.dummy_port_cyclotron)); @@ -100,6 +101,7 @@ public class NEIConfig implements IConfigureNEI { 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)); + API.hideItem(new ItemStack(ModBlocks.dummy_port_reactor_small)); } @Override diff --git a/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java b/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java index 9cbaba482..c017a8c0c 100644 --- a/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java +++ b/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java @@ -16,10 +16,16 @@ import com.hbm.items.ModItems; import com.hbm.items.special.ItemBattery; import com.hbm.items.special.ItemFuelRod; import com.hbm.lib.Library; +import com.hbm.lib.ModDamageSource; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.potion.HbmPotion; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; @@ -28,7 +34,9 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; +import net.minecraft.potion.PotionEffect; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; public class TileEntityMachineReactorSmall extends TileEntity implements ISidedInventory, ISource, IFluidContainer, IFluidAcceptor { @@ -93,7 +101,7 @@ public class TileEntityMachineReactorSmall extends TileEntity implements ISidedI @Override public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.generator"; + return this.hasCustomInventoryName() ? this.customName : "container.reactorSmall"; } @Override @@ -308,18 +316,37 @@ public class TileEntityMachineReactorSmall extends TileEntity implements ISidedI @Override public void updateEntity() { - - age++; - if(age >= 20) - { - age = 0; - } - - if(age == 9 || age == 19) - ffgeuaInit(); if(!worldObj.isRemote) { + + age++; + if(age >= 20) + { + age = 0; + } + + if(age == 9 || age == 19) + ffgeuaInit(); + + if(tanks[0].getFill() < tanks[0].getMaxFill()) { + + if(worldObj.getBlock(xCoord + 1, yCoord + 1, zCoord) == Blocks.water || worldObj.getBlock(xCoord + 1, yCoord + 1, zCoord) == Blocks.flowing_water) + tanks[0].setFill(tanks[0].getFill() + 25); + + if(worldObj.getBlock(xCoord - 1, yCoord + 1, zCoord) == Blocks.water || worldObj.getBlock(xCoord - 1, yCoord + 1, zCoord) == Blocks.flowing_water) + tanks[0].setFill(tanks[0].getFill() + 25); + + if(worldObj.getBlock(xCoord, yCoord + 1, zCoord + 1) == Blocks.water || worldObj.getBlock(xCoord, yCoord + 1, zCoord + 1) == Blocks.flowing_water) + tanks[0].setFill(tanks[0].getFill() + 25); + + if(worldObj.getBlock(xCoord, yCoord + 1, zCoord - 1) == Blocks.water || worldObj.getBlock(xCoord, yCoord + 1, zCoord - 1) == Blocks.flowing_water) + tanks[0].setFill(tanks[0].getFill() + 25); + + if(tanks[0].getFill() > tanks[0].getMaxFill()) + tanks[0].setFill(tanks[0].getMaxFill()); + } + tanks[0].loadTank(12, 13, slots); tanks[1].loadTank(14, 15, slots); @@ -391,6 +418,30 @@ public class TileEntityMachineReactorSmall extends TileEntity implements ISidedI { this.explode(); } + + if(rods > 0 && coreHeat > 0 && + !(worldObj.getBlock(xCoord + 1, yCoord + 1, zCoord).isNormalCube() && + worldObj.getBlock(xCoord - 1, yCoord + 1, zCoord).isNormalCube() && + worldObj.getBlock(xCoord, yCoord + 1, zCoord + 1).isNormalCube() && + worldObj.getBlock(xCoord, yCoord + 1, zCoord - 1).isNormalCube() && + worldObj.getBlock(xCoord + 1, yCoord + 1, zCoord) != Blocks.air && + worldObj.getBlock(xCoord - 1, yCoord + 1, zCoord) != Blocks.air && + worldObj.getBlock(xCoord, yCoord + 1, zCoord + 1) != Blocks.air && + worldObj.getBlock(xCoord, yCoord + 1, zCoord - 1) != Blocks.air)) { + + List list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, + AxisAlignedBB.getBoundingBox(xCoord + 0.5 - 5, yCoord + 1.5 - 5, zCoord + 0.5 - 5, xCoord + 0.5 + 5, yCoord + 1.5 + 5, zCoord + 0.5 + 5)); + + for(Entity e : list) { + if(e instanceof EntityPlayer && Library.checkForHazmat((EntityPlayer)e)) + { + + } else { + if(e instanceof EntityLivingBase) + ((EntityLivingBase) e).addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 80 * 20, 25)); + } + } + } PacketDispatcher.wrapper.sendToAll(new AuxElectricityPacket(xCoord, yCoord, zCoord, power)); PacketDispatcher.wrapper.sendToAll(new AuxGaugePacket(xCoord, yCoord, zCoord, rods, 0)); @@ -440,7 +491,7 @@ public class TileEntityMachineReactorSmall extends TileEntity implements ISidedI ItemFuelRod.setLifeTime(slots[id], ItemFuelRod.getLifeTime(slots[id]) + 1); ItemFuelRod.updateDamage(slots[id]); - if(ItemFuelRod.getLifeTime(slots[id]) <= 0) { + if(ItemFuelRod.getLifeTime(slots[id]) > ((ItemFuelRod)slots[id].getItem()).lifeTime) { onRunOut(id); return; } @@ -450,6 +501,8 @@ public class TileEntityMachineReactorSmall extends TileEntity implements ISidedI //itemstack in slots[id] has to contain ItemFuelRod item private void onRunOut(int id) { + System.out.println("aaa"); + Item item = slots[id].getItem(); if(item == ModItems.rod_uranium_fuel) { @@ -589,4 +642,16 @@ public class TileEntityMachineReactorSmall extends TileEntity implements ISidedI if(index < 2 && tanks[index] != null) tanks[index].setTankType(type); } + + @Override + public AxisAlignedBB getRenderBoundingBox() { + return TileEntity.INFINITE_EXTENT_AABB; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() + { + return 65536.0D; + } } \ No newline at end of file diff --git a/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java b/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java index eb9ac9d5d..42e7afa9c 100644 --- a/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java +++ b/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java @@ -213,7 +213,9 @@ public class TileEntityMachineSeleniumEngine extends TileEntity implements ISide @Override public void updateEntity() { + if (!worldObj.isRemote) { + age++; if (age >= 20) { age = 0; diff --git a/com/hbm/tileentity/machine/TileEntityReactorMultiblock.java b/com/hbm/tileentity/machine/TileEntityReactorMultiblock.java index ee63393da..0609bf4b5 100644 --- a/com/hbm/tileentity/machine/TileEntityReactorMultiblock.java +++ b/com/hbm/tileentity/machine/TileEntityReactorMultiblock.java @@ -461,14 +461,8 @@ public class TileEntityReactorMultiblock extends TileEntity implements ISidedInv this.heat--; } - if(this.worldObj.getBlock(this.xCoord, this.yCoord, this.zCoord) instanceof MachineGenerator) - isLoaded = false; - } else { - if(this.worldObj.getBlock(this.xCoord, this.yCoord, this.zCoord) instanceof MachineGenerator) - isLoaded = true; - if(!this.isCoatingValid(worldObj)) { int strength = 20; @@ -513,7 +507,8 @@ public class TileEntityReactorMultiblock extends TileEntity implements ISidedInv Library.damageSuit(((EntityPlayer)entity), 3);*/ } else { - ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 80 * 20, 25)); + if(entity instanceof EntityLivingBase) + ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 80 * 20, 25)); } } }