Finished new small nuclear reactor

This commit is contained in:
HbmMods 2018-07-15 18:45:58 +02:00
parent 46ea5754b9
commit 98ceb31a05
19 changed files with 301 additions and 34 deletions

View File

@ -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

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -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());

View File

@ -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;
}
}
}

View File

@ -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

View File

@ -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)

View File

@ -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) {

View File

@ -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);

View File

@ -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);

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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<Entity> list = (List<Entity>)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;
}
}

View File

@ -213,7 +213,9 @@ public class TileEntityMachineSeleniumEngine extends TileEntity implements ISide
@Override
public void updateEntity() {
if (!worldObj.isRemote) {
age++;
if (age >= 20) {
age = 0;

View File

@ -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));
}
}
}