Work on reactor interface a tad, work on Solar Neutron Activator
This commit is contained in:
parent
89de5ccea7
commit
9c7831d07b
|
@ -28,7 +28,6 @@ public class GuiSolarNeutronActivator extends GuiMekanism
|
||||||
tileEntity = tentity;
|
tileEntity = tentity;
|
||||||
|
|
||||||
guiElements.add(new GuiRedstoneControl(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png")));
|
guiElements.add(new GuiRedstoneControl(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png")));
|
||||||
guiElements.add(new GuiUpgradeTab(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png")));
|
|
||||||
guiElements.add(new GuiSlot(SlotType.NORMAL, this, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png"), 4, 24).with(SlotOverlay.PLUS));
|
guiElements.add(new GuiSlot(SlotType.NORMAL, this, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png"), 4, 24).with(SlotOverlay.PLUS));
|
||||||
guiElements.add(new GuiSlot(SlotType.NORMAL, this, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png"), 4, 55).with(SlotOverlay.MINUS));
|
guiElements.add(new GuiSlot(SlotType.NORMAL, this, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png"), 4, 55).with(SlotOverlay.MINUS));
|
||||||
|
|
||||||
|
@ -64,6 +63,7 @@ public class GuiSolarNeutronActivator extends GuiMekanism
|
||||||
int yAxis = (mouseY - (height - ySize) / 2);
|
int yAxis = (mouseY - (height - ySize) / 2);
|
||||||
|
|
||||||
fontRendererObj.drawString(tileEntity.getInventoryName(), 26, 4, 0x404040);
|
fontRendererObj.drawString(tileEntity.getInventoryName(), 26, 4, 0x404040);
|
||||||
|
fontRendererObj.drawString(MekanismUtils.localize("container.inventory"), 8, (ySize - 96) + 4, 0x404040);
|
||||||
|
|
||||||
super.drawGuiContainerForegroundLayer(mouseX, mouseY);
|
super.drawGuiContainerForegroundLayer(mouseX, mouseY);
|
||||||
}
|
}
|
||||||
|
|
|
@ -429,6 +429,19 @@ public final class RecipeHandler
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static SolarNeutronRecipe getSolarNeutronRecipe(GasInput input)
|
||||||
|
{
|
||||||
|
if(input.isValid())
|
||||||
|
{
|
||||||
|
HashMap<GasInput, SolarNeutronRecipe> recipes = Recipe.SOLAR_NEUTRON_ACTIVATOR.get();
|
||||||
|
|
||||||
|
SolarNeutronRecipe recipe = recipes.get(input);
|
||||||
|
return recipe == null ? null : recipe.copy();
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
public static PressurizedRecipe getPRCRecipe(PressurizedInput input)
|
public static PressurizedRecipe getPRCRecipe(PressurizedInput input)
|
||||||
{
|
{
|
||||||
|
|
|
@ -99,6 +99,8 @@ public class TileEntityChemicalCrystallizer extends TileEntityNoisyElectricBlock
|
||||||
@Override
|
@Override
|
||||||
public void onUpdate()
|
public void onUpdate()
|
||||||
{
|
{
|
||||||
|
super.onUpdate();
|
||||||
|
|
||||||
if(worldObj.isRemote && updateDelay > 0)
|
if(worldObj.isRemote && updateDelay > 0)
|
||||||
{
|
{
|
||||||
updateDelay--;
|
updateDelay--;
|
||||||
|
|
|
@ -75,6 +75,8 @@ public class TileEntityChemicalInfuser extends TileEntityNoisyElectricBlock impl
|
||||||
@Override
|
@Override
|
||||||
public void onUpdate()
|
public void onUpdate()
|
||||||
{
|
{
|
||||||
|
super.onUpdate();
|
||||||
|
|
||||||
if(worldObj.isRemote && updateDelay > 0)
|
if(worldObj.isRemote && updateDelay > 0)
|
||||||
{
|
{
|
||||||
updateDelay--;
|
updateDelay--;
|
||||||
|
|
|
@ -75,6 +75,8 @@ public class TileEntityChemicalOxidizer extends TileEntityNoisyElectricBlock imp
|
||||||
@Override
|
@Override
|
||||||
public void onUpdate()
|
public void onUpdate()
|
||||||
{
|
{
|
||||||
|
super.onUpdate();
|
||||||
|
|
||||||
if(worldObj.isRemote && updateDelay > 0)
|
if(worldObj.isRemote && updateDelay > 0)
|
||||||
{
|
{
|
||||||
updateDelay--;
|
updateDelay--;
|
||||||
|
|
|
@ -88,6 +88,8 @@ public class TileEntityChemicalWasher extends TileEntityNoisyElectricBlock imple
|
||||||
@Override
|
@Override
|
||||||
public void onUpdate()
|
public void onUpdate()
|
||||||
{
|
{
|
||||||
|
super.onUpdate();
|
||||||
|
|
||||||
if(worldObj.isRemote && updateDelay > 0)
|
if(worldObj.isRemote && updateDelay > 0)
|
||||||
{
|
{
|
||||||
updateDelay--;
|
updateDelay--;
|
||||||
|
|
|
@ -81,6 +81,8 @@ public class TileEntityRotaryCondensentrator extends TileEntityElectricBlock imp
|
||||||
@Override
|
@Override
|
||||||
public void onUpdate()
|
public void onUpdate()
|
||||||
{
|
{
|
||||||
|
super.onUpdate();
|
||||||
|
|
||||||
if(worldObj.isRemote)
|
if(worldObj.isRemote)
|
||||||
{
|
{
|
||||||
if(updateDelay > 0)
|
if(updateDelay > 0)
|
||||||
|
|
|
@ -19,9 +19,13 @@ import mekanism.common.base.IDropperHandler;
|
||||||
import mekanism.common.base.IRedstoneControl;
|
import mekanism.common.base.IRedstoneControl;
|
||||||
import mekanism.common.base.ISustainedData;
|
import mekanism.common.base.ISustainedData;
|
||||||
import mekanism.common.network.PacketTileEntity.TileEntityMessage;
|
import mekanism.common.network.PacketTileEntity.TileEntityMessage;
|
||||||
|
import mekanism.common.recipe.RecipeHandler;
|
||||||
|
import mekanism.common.recipe.inputs.GasInput;
|
||||||
|
import mekanism.common.recipe.machines.SolarNeutronRecipe;
|
||||||
import mekanism.common.util.MekanismUtils;
|
import mekanism.common.util.MekanismUtils;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntitySolarNeutronActivator extends TileEntityContainerBlock implements IRedstoneControl, IBoundingBlock, IGasHandler, ITubeConnection, IActiveState, ISustainedData, IDropperHandler
|
public class TileEntitySolarNeutronActivator extends TileEntityContainerBlock implements IRedstoneControl, IBoundingBlock, IGasHandler, ITubeConnection, IActiveState, ISustainedData, IDropperHandler
|
||||||
|
@ -39,6 +43,8 @@ public class TileEntitySolarNeutronActivator extends TileEntityContainerBlock im
|
||||||
|
|
||||||
public int gasOutput = 256;
|
public int gasOutput = 256;
|
||||||
|
|
||||||
|
public SolarNeutronRecipe cachedRecipe;
|
||||||
|
|
||||||
/** This machine's current RedstoneControl type. */
|
/** This machine's current RedstoneControl type. */
|
||||||
public RedstoneControl controlType = RedstoneControl.DISABLED;
|
public RedstoneControl controlType = RedstoneControl.DISABLED;
|
||||||
|
|
||||||
|
@ -51,7 +57,85 @@ public class TileEntitySolarNeutronActivator extends TileEntityContainerBlock im
|
||||||
@Override
|
@Override
|
||||||
public void onUpdate()
|
public void onUpdate()
|
||||||
{
|
{
|
||||||
|
if(worldObj.isRemote && updateDelay > 0)
|
||||||
|
{
|
||||||
|
updateDelay--;
|
||||||
|
|
||||||
|
if(updateDelay == 0 && clientActive != isActive)
|
||||||
|
{
|
||||||
|
isActive = clientActive;
|
||||||
|
MekanismUtils.updateBlock(worldObj, xCoord, yCoord, zCoord);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!worldObj.isRemote)
|
||||||
|
{
|
||||||
|
SolarNeutronRecipe recipe = getRecipe();
|
||||||
|
|
||||||
|
if(updateDelay > 0)
|
||||||
|
{
|
||||||
|
updateDelay--;
|
||||||
|
|
||||||
|
if(updateDelay == 0 && clientActive != isActive)
|
||||||
|
{
|
||||||
|
Mekanism.packetHandler.sendToReceivers(new TileEntityMessage(Coord4D.get(this), getNetworkedData(new ArrayList())), new Range4D(Coord4D.get(this)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Buckets
|
||||||
|
|
||||||
|
if(canOperate(recipe) && MekanismUtils.canFunction(this))
|
||||||
|
{
|
||||||
|
setActive(true);
|
||||||
|
|
||||||
|
operate(recipe);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
setActive(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(outputTank.getGas() != null)
|
||||||
|
{
|
||||||
|
GasStack toSend = new GasStack(outputTank.getGas().getGas(), Math.min(outputTank.getStored(), gasOutput));
|
||||||
|
|
||||||
|
TileEntity tileEntity = Coord4D.get(this).getFromSide(ForgeDirection.getOrientation(facing)).getTileEntity(worldObj);
|
||||||
|
|
||||||
|
if(tileEntity instanceof IGasHandler)
|
||||||
|
{
|
||||||
|
if(((IGasHandler)tileEntity).canReceiveGas(ForgeDirection.getOrientation(facing).getOpposite(), outputTank.getGas().getGas()))
|
||||||
|
{
|
||||||
|
outputTank.draw(((IGasHandler)tileEntity).receiveGas(ForgeDirection.getOrientation(facing).getOpposite(), toSend, true), true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public SolarNeutronRecipe getRecipe()
|
||||||
|
{
|
||||||
|
GasInput input = getInput();
|
||||||
|
|
||||||
|
if(cachedRecipe == null || !input.testEquality(cachedRecipe.getInput()))
|
||||||
|
{
|
||||||
|
cachedRecipe = RecipeHandler.getSolarNeutronRecipe(getInput());
|
||||||
|
}
|
||||||
|
|
||||||
|
return cachedRecipe;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GasInput getInput()
|
||||||
|
{
|
||||||
|
return new GasInput(inputTank.getGas());
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean canOperate(SolarNeutronRecipe recipe)
|
||||||
|
{
|
||||||
|
return recipe != null && recipe.canOperate(inputTank, outputTank);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void operate(SolarNeutronRecipe recipe)
|
||||||
|
{
|
||||||
|
recipe.operate(inputTank, outputTank);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -57,10 +57,10 @@ public class GuiReactorController extends GuiMekanism
|
||||||
|
|
||||||
if(tileEntity.getActive())
|
if(tileEntity.getActive())
|
||||||
{
|
{
|
||||||
fontRendererObj.drawString(MekanismUtils.localize("container.reactor.formed"), 8, 16, 0x404040);
|
fontRendererObj.drawString(MekanismUtils.localize("gui.formed"), 8, 16, 0x404040);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
fontRendererObj.drawString(MekanismUtils.localize("container.reactor.notFormed"), 8, 16, 0x404040);
|
fontRendererObj.drawString(MekanismUtils.localize("gui.incomplete"), 8, 16, 0x404040);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,15 +24,15 @@ import mekanism.common.util.MekanismUtils.ResourceType;
|
||||||
import mekanism.generators.common.MekanismGenerators;
|
import mekanism.generators.common.MekanismGenerators;
|
||||||
import mekanism.generators.common.network.PacketGeneratorsGui.GeneratorsGuiMessage;
|
import mekanism.generators.common.network.PacketGeneratorsGui.GeneratorsGuiMessage;
|
||||||
import mekanism.generators.common.tile.reactor.TileEntityReactorController;
|
import mekanism.generators.common.tile.reactor.TileEntityReactorController;
|
||||||
|
|
||||||
import net.minecraft.client.gui.GuiTextField;
|
import net.minecraft.client.gui.GuiTextField;
|
||||||
import net.minecraft.entity.player.InventoryPlayer;
|
import net.minecraft.entity.player.InventoryPlayer;
|
||||||
import cpw.mods.fml.relauncher.Side;
|
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
|
||||||
|
|
||||||
import org.lwjgl.input.Keyboard;
|
import org.lwjgl.input.Keyboard;
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
public class GuiReactorFuel extends GuiMekanism
|
public class GuiReactorFuel extends GuiMekanism
|
||||||
{
|
{
|
||||||
|
@ -104,7 +104,9 @@ public class GuiReactorFuel extends GuiMekanism
|
||||||
super.drawGuiContainerForegroundLayer(mouseX, mouseY);
|
super.drawGuiContainerForegroundLayer(mouseX, mouseY);
|
||||||
|
|
||||||
fontRendererObj.drawString(tileEntity.getInventoryName(), 46, 6, 0x404040);
|
fontRendererObj.drawString(tileEntity.getInventoryName(), 46, 6, 0x404040);
|
||||||
fontRendererObj.drawString(MekanismUtils.localize("gui.injectionRate") + ": " + (tileEntity.getReactor() == null ? "None" : tileEntity.getReactor().getInjectionRate()), 55, 35, 0x404040);
|
String str = MekanismUtils.localize("gui.reactor.injectionRate") + ": " + (tileEntity.getReactor() == null ? "None" : tileEntity.getReactor().getInjectionRate());
|
||||||
|
fontRendererObj.drawString(str, (xSize / 2) - (fontRendererObj.getStringWidth(str) / 2), 35, 0x404040);
|
||||||
|
fontRendererObj.drawString("Edit Rate" + ":", 50, 117, 0x404040);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -157,7 +159,6 @@ public class GuiReactorFuel extends GuiMekanism
|
||||||
SoundHandler.playSound("gui.button.press");
|
SoundHandler.playSound("gui.button.press");
|
||||||
MekanismGenerators.packetHandler.sendToServer(new GeneratorsGuiMessage(Coord4D.get(tileEntity), 10));
|
MekanismGenerators.packetHandler.sendToServer(new GeneratorsGuiMessage(Coord4D.get(tileEntity), 10));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -209,7 +210,7 @@ public class GuiReactorFuel extends GuiMekanism
|
||||||
|
|
||||||
String prevRad = injectionRateField != null ? injectionRateField.getText() : "";
|
String prevRad = injectionRateField != null ? injectionRateField.getText() : "";
|
||||||
|
|
||||||
injectionRateField = new GuiTextField(fontRendererObj, guiWidth + 75, guiHeight + 115, 26, 11);
|
injectionRateField = new GuiTextField(fontRendererObj, guiWidth + 98, guiHeight + 115, 26, 11);
|
||||||
injectionRateField.setMaxStringLength(2);
|
injectionRateField.setMaxStringLength(2);
|
||||||
injectionRateField.setText(prevRad);
|
injectionRateField.setText(prevRad);
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,9 +52,8 @@ public class GuiReactorStats extends GuiMekanism
|
||||||
@Override
|
@Override
|
||||||
protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY)
|
protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY)
|
||||||
{
|
{
|
||||||
super.drawGuiContainerForegroundLayer(mouseX, mouseY);
|
|
||||||
|
|
||||||
fontRendererObj.drawString(tileEntity.getInventoryName(), 46, 6, 0x404040);
|
fontRendererObj.drawString(tileEntity.getInventoryName(), 46, 6, 0x404040);
|
||||||
|
|
||||||
if(tileEntity.isFormed())
|
if(tileEntity.isFormed())
|
||||||
{
|
{
|
||||||
fontRendererObj.drawString(EnumColor.DARK_GREEN + MekanismUtils.localize("gui.passive"), 6, 26, 0x404040);
|
fontRendererObj.drawString(EnumColor.DARK_GREEN + MekanismUtils.localize("gui.passive"), 6, 26, 0x404040);
|
||||||
|
@ -72,6 +71,8 @@ public class GuiReactorStats extends GuiMekanism
|
||||||
fontRendererObj.drawString(MekanismUtils.localize("gui.passiveGeneration") + ": " + MekanismUtils.getEnergyDisplay(tileEntity.getReactor().getPassiveGeneration(true, false))+"/t", 16, 142, 0x404040);
|
fontRendererObj.drawString(MekanismUtils.localize("gui.passiveGeneration") + ": " + MekanismUtils.getEnergyDisplay(tileEntity.getReactor().getPassiveGeneration(true, false))+"/t", 16, 142, 0x404040);
|
||||||
fontRendererObj.drawString(MekanismUtils.localize("gui.steamProduction") + ": " + nf.format(tileEntity.getReactor().getSteamPerTick(false)) + "mB/t", 16, 152, 0x404040);
|
fontRendererObj.drawString(MekanismUtils.localize("gui.steamProduction") + ": " + nf.format(tileEntity.getReactor().getSteamPerTick(false)) + "mB/t", 16, 152, 0x404040);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
super.drawGuiContainerForegroundLayer(mouseX, mouseY);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -112,6 +113,5 @@ public class GuiReactorStats extends GuiMekanism
|
||||||
SoundHandler.playSound("gui.button.press");
|
SoundHandler.playSound("gui.button.press");
|
||||||
MekanismGenerators.packetHandler.sendToServer(new GeneratorsGuiMessage(Coord4D.get(tileEntity), 10));
|
MekanismGenerators.packetHandler.sendToServer(new GeneratorsGuiMessage(Coord4D.get(tileEntity), 10));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
|
|
|
@ -119,6 +119,7 @@ public class FusionReactor implements IFusionReactor
|
||||||
injectFuel();
|
injectFuel();
|
||||||
int fuelBurned = burnFuel();
|
int fuelBurned = burnFuel();
|
||||||
neutronFlux(fuelBurned);
|
neutronFlux(fuelBurned);
|
||||||
|
|
||||||
if(fuelBurned == 0)
|
if(fuelBurned == 0)
|
||||||
{
|
{
|
||||||
burning = false;
|
burning = false;
|
||||||
|
@ -229,6 +230,7 @@ public class FusionReactor implements IFusionReactor
|
||||||
{
|
{
|
||||||
source.simulateHeat();
|
source.simulateHeat();
|
||||||
}
|
}
|
||||||
|
|
||||||
applyTemperatureChange();
|
applyTemperatureChange();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -251,6 +251,7 @@ gas.brine=Gaseous Brine
|
||||||
gas.deuterium=Deuterium
|
gas.deuterium=Deuterium
|
||||||
gas.tritium=Tritium
|
gas.tritium=Tritium
|
||||||
gas.lithium=Lithium
|
gas.lithium=Lithium
|
||||||
|
gas.fusionFuelDT=D-T Fuel
|
||||||
|
|
||||||
gas.iron=Iron Slurry
|
gas.iron=Iron Slurry
|
||||||
gas.gold=Gold Slurry
|
gas.gold=Gold Slurry
|
||||||
|
@ -287,6 +288,8 @@ fluid.ethene=Liquid Ethylene
|
||||||
fluid.sodium=Liquid Sodium
|
fluid.sodium=Liquid Sodium
|
||||||
fluid.heavyWater=Heavy Water
|
fluid.heavyWater=Heavy Water
|
||||||
fluid.lithium=Liquid Lithium
|
fluid.lithium=Liquid Lithium
|
||||||
|
fluid.deuterium=Liquid Deuterium
|
||||||
|
fluid.tritium=Liquid Tritium
|
||||||
|
|
||||||
//OreGas names
|
//OreGas names
|
||||||
oregas.iron=Iron Ore
|
oregas.iron=Iron Ore
|
||||||
|
@ -385,6 +388,12 @@ gui.min=Min
|
||||||
gui.max=Max
|
gui.max=Max
|
||||||
gui.delay=Delay
|
gui.delay=Delay
|
||||||
gui.noDelay=No Delay
|
gui.noDelay=No Delay
|
||||||
|
gui.fuel=Fuel
|
||||||
|
gui.heat=Heat
|
||||||
|
gui.formed=Formed
|
||||||
|
gui.incomplete=Incomplete
|
||||||
|
|
||||||
|
gui.reactor.injectionRate=Injection Rate
|
||||||
|
|
||||||
gui.upgrades=Upgrades
|
gui.upgrades=Upgrades
|
||||||
gui.upgrades.supported=Supported
|
gui.upgrades.supported=Supported
|
||||||
|
|
Loading…
Reference in a new issue