Started work on Reactor Logic Adapters
This commit is contained in:
parent
a87fb35c2c
commit
9b1aa2099b
10 changed files with 257 additions and 16 deletions
|
@ -2,7 +2,7 @@ package mekanism.api.reactor;
|
||||||
|
|
||||||
import mekanism.api.IHeatTransfer;
|
import mekanism.api.IHeatTransfer;
|
||||||
import mekanism.api.gas.GasTank;
|
import mekanism.api.gas.GasTank;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.fluids.FluidTank;
|
import net.minecraftforge.fluids.FluidTank;
|
||||||
|
|
||||||
public interface IFusionReactor extends IHeatTransfer
|
public interface IFusionReactor extends IHeatTransfer
|
||||||
|
@ -60,4 +60,6 @@ public interface IFusionReactor extends IHeatTransfer
|
||||||
public int getSteamPerTick(boolean current);
|
public int getSteamPerTick(boolean current);
|
||||||
|
|
||||||
public void updateTemperatures();
|
public void updateTemperatures();
|
||||||
|
|
||||||
|
public ItemStack[] getInventory();
|
||||||
}
|
}
|
||||||
|
|
|
@ -136,6 +136,7 @@ public abstract class TileEntityElectricBlock extends TileEntityContainerBlock i
|
||||||
public void handlePacketData(ByteBuf dataStream)
|
public void handlePacketData(ByteBuf dataStream)
|
||||||
{
|
{
|
||||||
super.handlePacketData(dataStream);
|
super.handlePacketData(dataStream);
|
||||||
|
|
||||||
setEnergy(dataStream.readDouble());
|
setEnergy(dataStream.readDouble());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -143,7 +144,9 @@ public abstract class TileEntityElectricBlock extends TileEntityContainerBlock i
|
||||||
public ArrayList getNetworkedData(ArrayList data)
|
public ArrayList getNetworkedData(ArrayList data)
|
||||||
{
|
{
|
||||||
super.getNetworkedData(data);
|
super.getNetworkedData(data);
|
||||||
|
|
||||||
data.add(getEnergy());
|
data.add(getEnergy());
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -607,4 +607,10 @@ public class FusionReactor implements IFusionReactor
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack[] getInventory()
|
||||||
|
{
|
||||||
|
return isFormed() ? controller.inventory : null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ package mekanism.generators.common;
|
||||||
import mekanism.api.MekanismConfig.generators;
|
import mekanism.api.MekanismConfig.generators;
|
||||||
import mekanism.common.Mekanism;
|
import mekanism.common.Mekanism;
|
||||||
import mekanism.common.inventory.container.ContainerNull;
|
import mekanism.common.inventory.container.ContainerNull;
|
||||||
|
import mekanism.common.tile.TileEntityContainerBlock;
|
||||||
import mekanism.generators.common.inventory.container.ContainerBioGenerator;
|
import mekanism.generators.common.inventory.container.ContainerBioGenerator;
|
||||||
import mekanism.generators.common.inventory.container.ContainerGasGenerator;
|
import mekanism.generators.common.inventory.container.ContainerGasGenerator;
|
||||||
import mekanism.generators.common.inventory.container.ContainerHeatGenerator;
|
import mekanism.generators.common.inventory.container.ContainerHeatGenerator;
|
||||||
|
@ -20,9 +21,9 @@ import mekanism.generators.common.tile.reactor.TileEntityReactorController;
|
||||||
import mekanism.generators.common.tile.reactor.TileEntityReactorFrame;
|
import mekanism.generators.common.tile.reactor.TileEntityReactorFrame;
|
||||||
import mekanism.generators.common.tile.reactor.TileEntityReactorGlass;
|
import mekanism.generators.common.tile.reactor.TileEntityReactorGlass;
|
||||||
import mekanism.generators.common.tile.reactor.TileEntityReactorLaserFocusMatrix;
|
import mekanism.generators.common.tile.reactor.TileEntityReactorLaserFocusMatrix;
|
||||||
|
import mekanism.generators.common.tile.reactor.TileEntityReactorLogicAdapter;
|
||||||
import mekanism.generators.common.tile.reactor.TileEntityReactorNeutronCapture;
|
import mekanism.generators.common.tile.reactor.TileEntityReactorNeutronCapture;
|
||||||
import mekanism.generators.common.tile.reactor.TileEntityReactorPort;
|
import mekanism.generators.common.tile.reactor.TileEntityReactorPort;
|
||||||
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.inventory.Container;
|
import net.minecraft.inventory.Container;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
@ -49,6 +50,7 @@ public class GeneratorsCommonProxy
|
||||||
GameRegistry.registerTileEntity(TileEntityReactorLaserFocusMatrix.class, "ReactorLaserFocus");
|
GameRegistry.registerTileEntity(TileEntityReactorLaserFocusMatrix.class, "ReactorLaserFocus");
|
||||||
GameRegistry.registerTileEntity(TileEntityReactorNeutronCapture.class, "ReactorNeutronCapture");
|
GameRegistry.registerTileEntity(TileEntityReactorNeutronCapture.class, "ReactorNeutronCapture");
|
||||||
GameRegistry.registerTileEntity(TileEntityReactorPort.class, "ReactorPort");
|
GameRegistry.registerTileEntity(TileEntityReactorPort.class, "ReactorPort");
|
||||||
|
GameRegistry.registerTileEntity(TileEntityReactorLogicAdapter.class, "ReactorLogicAdapter");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -161,9 +163,11 @@ public class GeneratorsCommonProxy
|
||||||
case 11:
|
case 11:
|
||||||
case 12:
|
case 12:
|
||||||
case 13:
|
case 13:
|
||||||
return new ContainerNull(player, (TileEntityReactorController)tileEntity);
|
return new ContainerNull(player, (TileEntityContainerBlock)tileEntity);
|
||||||
case 14:
|
case 14:
|
||||||
return new ContainerNeutronCapture(player.inventory, (TileEntityReactorNeutronCapture)tileEntity);
|
return new ContainerNeutronCapture(player.inventory, (TileEntityReactorNeutronCapture)tileEntity);
|
||||||
|
case 15:
|
||||||
|
return new ContainerNull(player, (TileEntityContainerBlock)tileEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -5,7 +5,6 @@ import java.util.List;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
import mekanism.api.Coord4D;
|
import mekanism.api.Coord4D;
|
||||||
import mekanism.client.ClientProxy;
|
|
||||||
import mekanism.common.CTMData;
|
import mekanism.common.CTMData;
|
||||||
import mekanism.common.ItemAttacher;
|
import mekanism.common.ItemAttacher;
|
||||||
import mekanism.common.Mekanism;
|
import mekanism.common.Mekanism;
|
||||||
|
@ -19,9 +18,9 @@ import mekanism.generators.common.tile.reactor.TileEntityReactorController;
|
||||||
import mekanism.generators.common.tile.reactor.TileEntityReactorFrame;
|
import mekanism.generators.common.tile.reactor.TileEntityReactorFrame;
|
||||||
import mekanism.generators.common.tile.reactor.TileEntityReactorGlass;
|
import mekanism.generators.common.tile.reactor.TileEntityReactorGlass;
|
||||||
import mekanism.generators.common.tile.reactor.TileEntityReactorLaserFocusMatrix;
|
import mekanism.generators.common.tile.reactor.TileEntityReactorLaserFocusMatrix;
|
||||||
|
import mekanism.generators.common.tile.reactor.TileEntityReactorLogicAdapter;
|
||||||
import mekanism.generators.common.tile.reactor.TileEntityReactorNeutronCapture;
|
import mekanism.generators.common.tile.reactor.TileEntityReactorNeutronCapture;
|
||||||
import mekanism.generators.common.tile.reactor.TileEntityReactorPort;
|
import mekanism.generators.common.tile.reactor.TileEntityReactorPort;
|
||||||
|
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.BlockContainer;
|
import net.minecraft.block.BlockContainer;
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
|
@ -36,12 +35,10 @@ import net.minecraft.util.IIcon;
|
||||||
import net.minecraft.world.IBlockAccess;
|
import net.minecraft.world.IBlockAccess;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
import cpw.mods.fml.common.ModAPIManager;
|
import buildcraft.api.tools.IToolWrench;
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
import buildcraft.api.tools.IToolWrench;
|
|
||||||
|
|
||||||
public class BlockReactor extends BlockContainer implements IBlockCTM
|
public class BlockReactor extends BlockContainer implements IBlockCTM
|
||||||
{
|
{
|
||||||
public IIcon[][] icons = new IIcon[16][16];
|
public IIcon[][] icons = new IIcon[16][16];
|
||||||
|
@ -62,11 +59,12 @@ public class BlockReactor extends BlockContainer implements IBlockCTM
|
||||||
{
|
{
|
||||||
if(this == GeneratorsBlocks.Reactor)
|
if(this == GeneratorsBlocks.Reactor)
|
||||||
{
|
{
|
||||||
ctms[0][0] = new CTMData("ctm/ReactorFrame", this, Arrays.asList(0, 1, 2, 3)).addSideOverride(ForgeDirection.UP, "ctm/ReactorControllerOff").registerIcons(register);
|
ctms[0][0] = new CTMData("ctm/ReactorFrame", this, Arrays.asList(0, 1, 2, 3, 4)).addSideOverride(ForgeDirection.UP, "ctm/ReactorControllerOff").registerIcons(register);
|
||||||
ctms[0][1] = new CTMData("ctm/ReactorFrame", this, Arrays.asList(0, 1, 2, 3)).addSideOverride(ForgeDirection.UP, "ctm/ReactorControllerOn").registerIcons(register);
|
ctms[0][1] = new CTMData("ctm/ReactorFrame", this, Arrays.asList(0, 1, 2, 3, 4)).addSideOverride(ForgeDirection.UP, "ctm/ReactorControllerOn").registerIcons(register);
|
||||||
ctms[1][0] = new CTMData("ctm/ReactorFrame", this, Arrays.asList(0, 1, 2, 3)).registerIcons(register);
|
ctms[1][0] = new CTMData("ctm/ReactorFrame", this, Arrays.asList(0, 1, 2, 3, 4)).registerIcons(register);
|
||||||
ctms[2][0] = new CTMData("ctm/ReactorNeutronCapture", this, Arrays.asList(0, 1, 2, 3)).registerIcons(register);
|
ctms[2][0] = new CTMData("ctm/ReactorNeutronCapture", this, Arrays.asList(0, 1, 2, 3, 4)).registerIcons(register);
|
||||||
ctms[3][0] = new CTMData("ctm/ReactorPort", this, Arrays.asList(0, 1, 2, 3)).registerIcons(register);
|
ctms[3][0] = new CTMData("ctm/ReactorPort", this, Arrays.asList(0, 1, 2, 3, 4)).registerIcons(register);
|
||||||
|
ctms[4][0] = new CTMData("ctm/ReactorLogicAdapter", this, Arrays.asList(0, 1, 2, 3, 4)).registerIcons(register);
|
||||||
|
|
||||||
icons[0][0] = ctms[0][0].sideOverrides[1].icon;
|
icons[0][0] = ctms[0][0].sideOverrides[1].icon;
|
||||||
icons[0][1] = ctms[0][1].sideOverrides[1].icon;
|
icons[0][1] = ctms[0][1].sideOverrides[1].icon;
|
||||||
|
@ -74,6 +72,7 @@ public class BlockReactor extends BlockContainer implements IBlockCTM
|
||||||
icons[1][0] = ctms[1][0].mainTextureData.icon;
|
icons[1][0] = ctms[1][0].mainTextureData.icon;
|
||||||
icons[2][0] = ctms[2][0].mainTextureData.icon;
|
icons[2][0] = ctms[2][0].mainTextureData.icon;
|
||||||
icons[3][0] = ctms[3][0].mainTextureData.icon;
|
icons[3][0] = ctms[3][0].mainTextureData.icon;
|
||||||
|
icons[4][0] = ctms[4][0].mainTextureData.icon;
|
||||||
}
|
}
|
||||||
else if(this == GeneratorsBlocks.ReactorGlass)
|
else if(this == GeneratorsBlocks.ReactorGlass)
|
||||||
{
|
{
|
||||||
|
@ -321,9 +320,11 @@ public class BlockReactor extends BlockContainer implements IBlockCTM
|
||||||
public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side)
|
public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side)
|
||||||
{
|
{
|
||||||
Coord4D obj = new Coord4D(x, y, z).getFromSide(ForgeDirection.getOrientation(side).getOpposite());
|
Coord4D obj = new Coord4D(x, y, z).getFromSide(ForgeDirection.getOrientation(side).getOpposite());
|
||||||
|
|
||||||
if(this == GeneratorsBlocks.ReactorGlass)
|
if(this == GeneratorsBlocks.ReactorGlass)
|
||||||
{
|
{
|
||||||
int metadata = obj.getMetadata(world);
|
int metadata = obj.getMetadata(world);
|
||||||
|
|
||||||
switch(metadata)
|
switch(metadata)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
|
@ -343,7 +344,8 @@ public class BlockReactor extends BlockContainer implements IBlockCTM
|
||||||
CONTROLLER(GeneratorsBlocks.Reactor, 0, "ReactorController", 10, TileEntityReactorController.class),
|
CONTROLLER(GeneratorsBlocks.Reactor, 0, "ReactorController", 10, TileEntityReactorController.class),
|
||||||
FRAME(GeneratorsBlocks.Reactor, 1, "ReactorFrame", -1, TileEntityReactorFrame.class),
|
FRAME(GeneratorsBlocks.Reactor, 1, "ReactorFrame", -1, TileEntityReactorFrame.class),
|
||||||
NEUTRON_CAPTURE(GeneratorsBlocks.Reactor, 2, "ReactorNeutronCapturePlate", 14, TileEntityReactorNeutronCapture.class),
|
NEUTRON_CAPTURE(GeneratorsBlocks.Reactor, 2, "ReactorNeutronCapturePlate", 14, TileEntityReactorNeutronCapture.class),
|
||||||
PORT(GeneratorsBlocks.Reactor, 3, "ReactorInOutPort", -1, TileEntityReactorPort.class),
|
PORT(GeneratorsBlocks.Reactor, 3, "ReactorPort", -1, TileEntityReactorPort.class),
|
||||||
|
ADAPTER(GeneratorsBlocks.Reactor, 4, "ReactorLogicAdapter", 15, TileEntityReactorLogicAdapter.class),
|
||||||
GLASS(GeneratorsBlocks.ReactorGlass, 0, "ReactorGlass", -1, TileEntityReactorGlass.class),
|
GLASS(GeneratorsBlocks.ReactorGlass, 0, "ReactorGlass", -1, TileEntityReactorGlass.class),
|
||||||
LASER_FOCUS_MATRIX(GeneratorsBlocks.ReactorGlass, 1, "ReactorLaserFocusMatrix", -1, TileEntityReactorLaserFocusMatrix.class);
|
LASER_FOCUS_MATRIX(GeneratorsBlocks.ReactorGlass, 1, "ReactorLaserFocusMatrix", -1, TileEntityReactorLaserFocusMatrix.class);
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,167 @@
|
||||||
|
package mekanism.generators.common.tile.reactor;
|
||||||
|
|
||||||
|
import io.netty.buffer.ByteBuf;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import mekanism.common.util.MekanismUtils;
|
||||||
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import cpw.mods.fml.common.Optional.Method;
|
||||||
|
import dan200.computercraft.api.lua.ILuaContext;
|
||||||
|
import dan200.computercraft.api.lua.LuaException;
|
||||||
|
import dan200.computercraft.api.peripheral.IComputerAccess;
|
||||||
|
import dan200.computercraft.api.peripheral.IPeripheral;
|
||||||
|
|
||||||
|
public class TileEntityReactorLogicAdapter extends TileEntityReactorBlock implements IPeripheral
|
||||||
|
{
|
||||||
|
public ReactorLogic logicType;
|
||||||
|
|
||||||
|
public boolean activeCooled;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isFrame()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean checkMode(ReactorLogic type)
|
||||||
|
{
|
||||||
|
if(getReactor() == null || !getReactor().isFormed())
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch(type)
|
||||||
|
{
|
||||||
|
case DISABLED:
|
||||||
|
return false;
|
||||||
|
case READY:
|
||||||
|
return getReactor().getPlasmaTemp() >= getReactor().getIgnitionTemperature(activeCooled);
|
||||||
|
case CAPACITY:
|
||||||
|
return getReactor().getPlasmaTemp() >= getReactor().getMaxPlasmaTemperature(activeCooled);
|
||||||
|
case DEPLETED:
|
||||||
|
return (getReactor().getDeuteriumTank().getStored() < getReactor().getInjectionRate()/2) ||
|
||||||
|
(getReactor().getTritiumTank().getStored() < getReactor().getInjectionRate()/2);
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void readFromNBT(NBTTagCompound nbtTags)
|
||||||
|
{
|
||||||
|
super.readFromNBT(nbtTags);
|
||||||
|
|
||||||
|
logicType = ReactorLogic.values()[nbtTags.getInteger("logicType")];
|
||||||
|
activeCooled = nbtTags.getBoolean("activeCooled");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeToNBT(NBTTagCompound nbtTags)
|
||||||
|
{
|
||||||
|
super.writeToNBT(nbtTags);
|
||||||
|
|
||||||
|
nbtTags.setInteger("logicType", logicType.ordinal());
|
||||||
|
nbtTags.setBoolean("activeCooled", activeCooled);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handlePacketData(ByteBuf dataStream)
|
||||||
|
{
|
||||||
|
super.handlePacketData(dataStream);
|
||||||
|
|
||||||
|
logicType = ReactorLogic.values()[dataStream.readInt()];
|
||||||
|
activeCooled = dataStream.readBoolean();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ArrayList getNetworkedData(ArrayList data)
|
||||||
|
{
|
||||||
|
super.getNetworkedData(data);
|
||||||
|
|
||||||
|
data.add(logicType.ordinal());
|
||||||
|
data.add(activeCooled);
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Method(modid = "ComputerCraft")
|
||||||
|
public String getType()
|
||||||
|
{
|
||||||
|
return getInventoryName();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Method(modid = "ComputerCraft")
|
||||||
|
public boolean equals(IPeripheral other)
|
||||||
|
{
|
||||||
|
return this == other;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Method(modid = "ComputerCraft")
|
||||||
|
public void attach(IComputerAccess computer) {}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Method(modid = "ComputerCraft")
|
||||||
|
public void detach(IComputerAccess computer) {}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Method(modid = "ComputerCraft")
|
||||||
|
public String[] getMethodNames()
|
||||||
|
{
|
||||||
|
List<String> ret = new ArrayList<String>();
|
||||||
|
|
||||||
|
for(ReactorLogic type : ReactorLogic.values())
|
||||||
|
{
|
||||||
|
if(type != ReactorLogic.DISABLED)
|
||||||
|
{
|
||||||
|
ret.add(type.name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return (String[])ret.toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Method(modid = "ComputerCraft")
|
||||||
|
public Object[] callMethod(IComputerAccess computer, ILuaContext context, int method, Object[] arguments) throws LuaException, InterruptedException
|
||||||
|
{
|
||||||
|
if(method >= 0 && method < ReactorLogic.values().length-1)
|
||||||
|
{
|
||||||
|
ReactorLogic type = ReactorLogic.values()[method+1];
|
||||||
|
|
||||||
|
return new Object[] {checkMode(type)};
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return new Object[] {"Unknown command."};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static enum ReactorLogic
|
||||||
|
{
|
||||||
|
DISABLED("disabled"),
|
||||||
|
READY("ready"),
|
||||||
|
CAPACITY("capacity"),
|
||||||
|
DEPLETED("depleted");
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
private ReactorLogic(String s)
|
||||||
|
{
|
||||||
|
name = s;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLocalizedName()
|
||||||
|
{
|
||||||
|
return MekanismUtils.localize("reactor." + name);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescription()
|
||||||
|
{
|
||||||
|
return MekanismUtils.localize("reactor." + name + ".desc");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -12,7 +12,8 @@ import mekanism.api.gas.ITubeConnection;
|
||||||
import mekanism.api.reactor.IReactorBlock;
|
import mekanism.api.reactor.IReactorBlock;
|
||||||
import mekanism.common.util.CableUtils;
|
import mekanism.common.util.CableUtils;
|
||||||
import mekanism.common.util.HeatUtils;
|
import mekanism.common.util.HeatUtils;
|
||||||
|
import mekanism.common.util.InventoryUtils;
|
||||||
|
import mekanism.generators.common.item.ItemHohlraum;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
@ -280,6 +281,7 @@ public class TileEntityReactorPort extends TileEntityReactorBlock implements IFl
|
||||||
{
|
{
|
||||||
return getReactor().applyTemperatureChange();
|
return getReactor().applyTemperatureChange();
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -293,10 +295,64 @@ public class TileEntityReactorPort extends TileEntityReactorBlock implements IFl
|
||||||
public IHeatTransfer getAdjacent(ForgeDirection side)
|
public IHeatTransfer getAdjacent(ForgeDirection side)
|
||||||
{
|
{
|
||||||
TileEntity adj = Coord4D.get(this).getFromSide(side).getTileEntity(worldObj);
|
TileEntity adj = Coord4D.get(this).getFromSide(side).getTileEntity(worldObj);
|
||||||
|
|
||||||
if(adj instanceof IHeatTransfer && !(adj instanceof IReactorBlock))
|
if(adj instanceof IHeatTransfer && !(adj instanceof IReactorBlock))
|
||||||
{
|
{
|
||||||
return (IHeatTransfer)adj;
|
return (IHeatTransfer)adj;
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack getStackInSlot(int slotID)
|
||||||
|
{
|
||||||
|
return getReactor() != null && getReactor().isFormed() ? getReactor().getInventory()[slotID] : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setInventorySlotContents(int slotID, ItemStack itemstack)
|
||||||
|
{
|
||||||
|
if(getReactor() != null && getReactor().isFormed())
|
||||||
|
{
|
||||||
|
getReactor().getInventory()[slotID] = itemstack;
|
||||||
|
|
||||||
|
if(itemstack != null && itemstack.stackSize > getInventoryStackLimit())
|
||||||
|
{
|
||||||
|
itemstack.stackSize = getInventoryStackLimit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getAccessibleSlotsFromSide(int side)
|
||||||
|
{
|
||||||
|
return getReactor() != null && getReactor().isFormed() ? new int[] {0} : InventoryUtils.EMPTY;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isItemValidForSlot(int slotID, ItemStack itemstack)
|
||||||
|
{
|
||||||
|
if(getReactor() != null && getReactor().isFormed() && itemstack.getItem() instanceof ItemHohlraum)
|
||||||
|
{
|
||||||
|
ItemHohlraum hohlraum = (ItemHohlraum)itemstack.getItem();
|
||||||
|
|
||||||
|
return hohlraum.getGas(itemstack) != null && hohlraum.getGas(itemstack).amount == hohlraum.getMaxGas(itemstack);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canExtractItem(int slotID, ItemStack itemstack, int side)
|
||||||
|
{
|
||||||
|
if(getReactor() != null && getReactor().isFormed() && itemstack.getItem() instanceof ItemHohlraum)
|
||||||
|
{
|
||||||
|
ItemHohlraum hohlraum = (ItemHohlraum)itemstack.getItem();
|
||||||
|
|
||||||
|
return hohlraum.getGas(itemstack) == null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -814,7 +814,8 @@ tile.Generator.WindTurbine.name=Wind Turbine
|
||||||
tile.Reactor.ReactorController.name=Reactor Controller
|
tile.Reactor.ReactorController.name=Reactor Controller
|
||||||
tile.Reactor.ReactorFrame.name=Reactor Frame
|
tile.Reactor.ReactorFrame.name=Reactor Frame
|
||||||
tile.Reactor.ReactorNeutronCapturePlate.name=Neutron Capture Plate
|
tile.Reactor.ReactorNeutronCapturePlate.name=Neutron Capture Plate
|
||||||
tile.Reactor.ReactorInOutPort.name=Reactor Port
|
tile.Reactor.ReactorPort.name=Reactor Port
|
||||||
|
tile.Reactor.ReactorLogicAdapter.name=Reactor Logic Adapter
|
||||||
|
|
||||||
tile.ReactorGlass.ReactorGlass.name=Reactor Glass
|
tile.ReactorGlass.ReactorGlass.name=Reactor Glass
|
||||||
tile.ReactorGlass.ReactorLaserFocusMatrix.name=Laser Focus Matrix
|
tile.ReactorGlass.ReactorLaserFocusMatrix.name=Laser Focus Matrix
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 3.7 KiB |
Binary file not shown.
After Width: | Height: | Size: 2.6 KiB |
Loading…
Reference in a new issue