Merge branch 'development' of https://github.com/aidancbrady/Mekanism into development
This commit is contained in:
commit
7ad60f0796
31 changed files with 963 additions and 1078 deletions
|
@ -50,7 +50,7 @@ public class ChemicalInput
|
|||
* Swaps the right gas and left gas of this input.
|
||||
* @return a swapped ChemicalInput
|
||||
*/
|
||||
private ChemicalInput swap()
|
||||
public ChemicalInput swap()
|
||||
{
|
||||
return new ChemicalInput(rightGas, leftGas);
|
||||
}
|
||||
|
@ -93,4 +93,9 @@ public class ChemicalInput
|
|||
|
||||
return input.leftGas.amount >= leftGas.amount && input.rightGas.amount >= rightGas.amount;
|
||||
}
|
||||
|
||||
public ChemicalInput copy()
|
||||
{
|
||||
return new ChemicalInput(leftGas.copy(), rightGas.copy());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@ public interface IGasHandler
|
|||
{
|
||||
/**
|
||||
* Transfer a certain amount of gas to this block.
|
||||
* @param amount - amount to transfer
|
||||
* @param stack - gas to add
|
||||
* @return gas added
|
||||
*/
|
||||
public int receiveGas(ForgeDirection side, GasStack stack);
|
||||
|
|
|
@ -1,121 +1,5 @@
|
|||
package mekanism.client;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.HashMap;
|
||||
|
||||
import mekanism.client.gui.GuiChemicalInfuser;
|
||||
import mekanism.client.gui.GuiChemicalInjectionChamber;
|
||||
import mekanism.client.gui.GuiChemicalOxidizer;
|
||||
import mekanism.client.gui.GuiCombiner;
|
||||
import mekanism.client.gui.GuiConfiguration;
|
||||
import mekanism.client.gui.GuiCredits;
|
||||
import mekanism.client.gui.GuiCrusher;
|
||||
import mekanism.client.gui.GuiDictionary;
|
||||
import mekanism.client.gui.GuiDigitalMiner;
|
||||
import mekanism.client.gui.GuiDynamicTank;
|
||||
import mekanism.client.gui.GuiElectricChest;
|
||||
import mekanism.client.gui.GuiElectricPump;
|
||||
import mekanism.client.gui.GuiEnergizedSmelter;
|
||||
import mekanism.client.gui.GuiEnergyCube;
|
||||
import mekanism.client.gui.GuiEnrichmentChamber;
|
||||
import mekanism.client.gui.GuiFactory;
|
||||
import mekanism.client.gui.GuiGasTank;
|
||||
import mekanism.client.gui.GuiMetallurgicInfuser;
|
||||
import mekanism.client.gui.GuiOsmiumCompressor;
|
||||
import mekanism.client.gui.GuiPasswordEnter;
|
||||
import mekanism.client.gui.GuiPasswordModify;
|
||||
import mekanism.client.gui.GuiPortableTeleporter;
|
||||
import mekanism.client.gui.GuiPurificationChamber;
|
||||
import mekanism.client.gui.GuiRobitCrafting;
|
||||
import mekanism.client.gui.GuiRobitInventory;
|
||||
import mekanism.client.gui.GuiRobitMain;
|
||||
import mekanism.client.gui.GuiRobitRepair;
|
||||
import mekanism.client.gui.GuiRobitSmelting;
|
||||
import mekanism.client.gui.GuiRotaryCondensentrator;
|
||||
import mekanism.client.gui.GuiTeleporter;
|
||||
import mekanism.client.render.MekanismRenderer;
|
||||
import mekanism.client.render.RenderPartTransmitter;
|
||||
import mekanism.client.render.RenderTickHandler;
|
||||
import mekanism.client.render.block.BasicRenderingHandler;
|
||||
import mekanism.client.render.block.MachineRenderingHandler;
|
||||
import mekanism.client.render.block.TransmitterRenderingHandler;
|
||||
import mekanism.client.render.entity.RenderBalloon;
|
||||
import mekanism.client.render.entity.RenderObsidianTNTPrimed;
|
||||
import mekanism.client.render.entity.RenderRobit;
|
||||
import mekanism.client.render.item.ItemRenderingHandler;
|
||||
import mekanism.client.render.tileentity.RenderBin;
|
||||
import mekanism.client.render.tileentity.RenderChargepad;
|
||||
import mekanism.client.render.tileentity.RenderChemicalInfuser;
|
||||
import mekanism.client.render.tileentity.RenderChemicalOxidizer;
|
||||
import mekanism.client.render.tileentity.RenderConfigurableMachine;
|
||||
import mekanism.client.render.tileentity.RenderDigitalMiner;
|
||||
import mekanism.client.render.tileentity.RenderDynamicTank;
|
||||
import mekanism.client.render.tileentity.RenderElectricChest;
|
||||
import mekanism.client.render.tileentity.RenderElectricPump;
|
||||
import mekanism.client.render.tileentity.RenderEnergyCube;
|
||||
import mekanism.client.render.tileentity.RenderGasTank;
|
||||
import mekanism.client.render.tileentity.RenderLogisticalSorter;
|
||||
import mekanism.client.render.tileentity.RenderLogisticalTransporter;
|
||||
import mekanism.client.render.tileentity.RenderMechanicalPipe;
|
||||
import mekanism.client.render.tileentity.RenderMetallurgicInfuser;
|
||||
import mekanism.client.render.tileentity.RenderObsidianTNT;
|
||||
import mekanism.client.render.tileentity.RenderPressurizedTube;
|
||||
import mekanism.client.render.tileentity.RenderRotaryCondensentrator;
|
||||
import mekanism.client.render.tileentity.RenderTeleporter;
|
||||
import mekanism.client.render.tileentity.RenderUniversalCable;
|
||||
import mekanism.client.sound.Sound;
|
||||
import mekanism.client.sound.SoundHandler;
|
||||
import mekanism.common.CommonProxy;
|
||||
import mekanism.common.EntityBalloon;
|
||||
import mekanism.common.EntityObsidianTNT;
|
||||
import mekanism.common.EntityRobit;
|
||||
import mekanism.common.IElectricChest;
|
||||
import mekanism.common.IInvConfiguration;
|
||||
import mekanism.common.Mekanism;
|
||||
import mekanism.common.block.BlockMachine.MachineType;
|
||||
import mekanism.common.inventory.InventoryElectricChest;
|
||||
import mekanism.common.item.ItemPortableTeleporter;
|
||||
import mekanism.common.tileentity.TileEntityAdvancedElectricMachine;
|
||||
import mekanism.common.tileentity.TileEntityAdvancedFactory;
|
||||
import mekanism.common.tileentity.TileEntityBin;
|
||||
import mekanism.common.tileentity.TileEntityChargepad;
|
||||
import mekanism.common.tileentity.TileEntityChemicalInfuser;
|
||||
import mekanism.common.tileentity.TileEntityChemicalInjectionChamber;
|
||||
import mekanism.common.tileentity.TileEntityChemicalOxidizer;
|
||||
import mekanism.common.tileentity.TileEntityCombiner;
|
||||
import mekanism.common.tileentity.TileEntityCrusher;
|
||||
import mekanism.common.tileentity.TileEntityDigitalMiner;
|
||||
import mekanism.common.tileentity.TileEntityDiversionTransporter;
|
||||
import mekanism.common.tileentity.TileEntityDynamicTank;
|
||||
import mekanism.common.tileentity.TileEntityDynamicValve;
|
||||
import mekanism.common.tileentity.TileEntityElectricChest;
|
||||
import mekanism.common.tileentity.TileEntityElectricMachine;
|
||||
import mekanism.common.tileentity.TileEntityElectricPump;
|
||||
import mekanism.common.tileentity.TileEntityEliteFactory;
|
||||
import mekanism.common.tileentity.TileEntityEnergizedSmelter;
|
||||
import mekanism.common.tileentity.TileEntityEnergyCube;
|
||||
import mekanism.common.tileentity.TileEntityEnrichmentChamber;
|
||||
import mekanism.common.tileentity.TileEntityFactory;
|
||||
import mekanism.common.tileentity.TileEntityGasTank;
|
||||
import mekanism.common.tileentity.TileEntityLogisticalSorter;
|
||||
import mekanism.common.tileentity.TileEntityLogisticalTransporter;
|
||||
import mekanism.common.tileentity.TileEntityMechanicalPipe;
|
||||
import mekanism.common.tileentity.TileEntityMetallurgicInfuser;
|
||||
import mekanism.common.tileentity.TileEntityObsidianTNT;
|
||||
import mekanism.common.tileentity.TileEntityOsmiumCompressor;
|
||||
import mekanism.common.tileentity.TileEntityPressurizedTube;
|
||||
import mekanism.common.tileentity.TileEntityPurificationChamber;
|
||||
import mekanism.common.tileentity.TileEntityRotaryCondensentrator;
|
||||
import mekanism.common.tileentity.TileEntityTeleporter;
|
||||
import mekanism.common.tileentity.TileEntityUniversalCable;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.client.MinecraftForgeClient;
|
||||
import net.minecraftforge.common.Configuration;
|
||||
import cpw.mods.fml.client.FMLClientHandler;
|
||||
import cpw.mods.fml.client.registry.ClientRegistry;
|
||||
import cpw.mods.fml.client.registry.KeyBindingRegistry;
|
||||
|
@ -125,6 +9,37 @@ import cpw.mods.fml.common.registry.GameRegistry;
|
|||
import cpw.mods.fml.common.registry.TickRegistry;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import mekanism.client.gui.*;
|
||||
import mekanism.client.render.MekanismRenderer;
|
||||
import mekanism.client.render.RenderElectrolyticSeparator;
|
||||
import mekanism.client.render.RenderPartTransmitter;
|
||||
import mekanism.client.render.RenderTickHandler;
|
||||
import mekanism.client.render.block.BasicRenderingHandler;
|
||||
import mekanism.client.render.block.MachineRenderingHandler;
|
||||
import mekanism.client.render.block.TransmitterRenderingHandler;
|
||||
import mekanism.client.render.entity.RenderBalloon;
|
||||
import mekanism.client.render.entity.RenderObsidianTNTPrimed;
|
||||
import mekanism.client.render.entity.RenderRobit;
|
||||
import mekanism.client.render.item.ItemRenderingHandler;
|
||||
import mekanism.client.render.tileentity.*;
|
||||
import mekanism.client.sound.Sound;
|
||||
import mekanism.client.sound.SoundHandler;
|
||||
import mekanism.common.*;
|
||||
import mekanism.common.block.BlockMachine.MachineType;
|
||||
import mekanism.common.inventory.InventoryElectricChest;
|
||||
import mekanism.common.item.ItemPortableTeleporter;
|
||||
import mekanism.common.tileentity.*;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.client.MinecraftForgeClient;
|
||||
import net.minecraftforge.common.Configuration;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.HashMap;
|
||||
|
||||
/**
|
||||
* Client proxy for the Mekanism mod.
|
||||
|
@ -274,6 +189,7 @@ public class ClientProxy extends CommonProxy
|
|||
ClientRegistry.registerTileEntity(TileEntityChemicalOxidizer.class, "ChemicalOxidizer", new RenderChemicalOxidizer());
|
||||
ClientRegistry.registerTileEntity(TileEntityChemicalInfuser.class, "ChemicalInfuser", new RenderChemicalInfuser());
|
||||
ClientRegistry.registerTileEntity(TileEntityChemicalInjectionChamber.class, "ChemicalInjectionChamber", new RenderConfigurableMachine());
|
||||
ClientRegistry.registerTileEntity(TileEntityElectrolyticSeparator.class, "ElectrolyticSeparator", new RenderElectrolyticSeparator());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -396,6 +312,9 @@ public class ClientProxy extends CommonProxy
|
|||
return new GuiChemicalInfuser(player.inventory, (TileEntityChemicalInfuser)tileEntity);
|
||||
case 31:
|
||||
return new GuiChemicalInjectionChamber(player.inventory, (TileEntityAdvancedElectricMachine)tileEntity);
|
||||
case 32:
|
||||
return new GuiElectrolyticSeparator(player.inventory, (TileEntityElectrolyticSeparator)tileEntity);
|
||||
|
||||
}
|
||||
|
||||
return null;
|
||||
|
|
|
@ -1,24 +1,20 @@
|
|||
package mekanism.generators.client.gui;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import mekanism.api.Coord4D;
|
||||
import mekanism.api.gas.Gas;
|
||||
import mekanism.api.gas.GasRegistry;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.network.PacketTileEntity;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import mekanism.common.util.MekanismUtils.ResourceType;
|
||||
import mekanism.generators.common.inventory.container.ContainerElectrolyticSeparator;
|
||||
import mekanism.generators.common.tileentity.TileEntityElectrolyticSeparator;
|
||||
import net.minecraft.client.gui.inventory.GuiContainer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
package mekanism.client.gui;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import mekanism.api.Coord4D;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.inventory.container.ContainerElectrolyticSeparator;
|
||||
import mekanism.common.network.PacketTileEntity;
|
||||
import mekanism.common.tileentity.TileEntityElectrolyticSeparator;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import mekanism.common.util.MekanismUtils.ResourceType;
|
||||
import net.minecraft.client.gui.inventory.GuiContainer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class GuiElectrolyticSeparator extends GuiContainer
|
||||
|
@ -39,53 +35,23 @@ public class GuiElectrolyticSeparator extends GuiContainer
|
|||
int xAxis = (x - (width - xSize) / 2);
|
||||
int yAxis = (y - (height - ySize) / 2);
|
||||
|
||||
if(xAxis > 160 && xAxis < 169 && yAxis > 73 && yAxis < 82)
|
||||
if(xAxis > 8 && xAxis < 17 && yAxis > 73 && yAxis < 82)
|
||||
{
|
||||
Gas gasToSet = null;
|
||||
|
||||
if(tileEntity.outputType == GasRegistry.getGas("hydrogen"))
|
||||
{
|
||||
gasToSet = GasRegistry.getGas("oxygen");
|
||||
}
|
||||
else if(tileEntity.outputType == GasRegistry.getGas("oxygen"))
|
||||
{
|
||||
gasToSet = null;
|
||||
}
|
||||
else if(tileEntity.outputType == null)
|
||||
{
|
||||
gasToSet = GasRegistry.getGas("hydrogen");
|
||||
}
|
||||
|
||||
ArrayList data = new ArrayList();
|
||||
data.add((byte)0);
|
||||
data.add(GasRegistry.getGasID(gasToSet));
|
||||
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketTileEntity().setParams(Coord4D.get(tileEntity), data));
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
|
||||
}
|
||||
else if(xAxis > 8 && xAxis < 17 && yAxis > 73 && yAxis < 82)
|
||||
else if(xAxis > 160 && xAxis < 169 && yAxis > 73 && yAxis < 82)
|
||||
{
|
||||
Gas gasToSet = null;
|
||||
|
||||
if(tileEntity.dumpType == null)
|
||||
{
|
||||
gasToSet = GasRegistry.getGas("oxygen");
|
||||
}
|
||||
else if(tileEntity.dumpType == GasRegistry.getGas("oxygen"))
|
||||
{
|
||||
gasToSet = GasRegistry.getGas("hydrogen");
|
||||
}
|
||||
else if(tileEntity.dumpType == GasRegistry.getGas("hydrogen"))
|
||||
{
|
||||
gasToSet = null;
|
||||
}
|
||||
|
||||
ArrayList data = new ArrayList();
|
||||
data.add((byte)1);
|
||||
data.add(GasRegistry.getGasID(gasToSet));
|
||||
|
||||
PacketHandler.sendPacket(Transmission.SERVER, new PacketTileEntity().setParams(Coord4D.get(tileEntity), data));
|
||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -96,10 +62,24 @@ public class GuiElectrolyticSeparator extends GuiContainer
|
|||
int yAxis = (mouseY - (height - ySize) / 2);
|
||||
|
||||
fontRenderer.drawString(tileEntity.getInvName(), 45, 6, 0x404040);
|
||||
fontRenderer.drawString(MekanismUtils.localize("gui.output"), 124, 73, 0x404040);
|
||||
fontRenderer.drawString(MekanismUtils.localize("gui.electrolyticSeparator.dump"), 21, 73, 0x404040);
|
||||
String name = tileEntity.leftTank.getGas() == null ? MekanismUtils.localize("gui.none") : tileEntity.leftTank.getGas().getGas().getLocalizedName();
|
||||
fontRenderer.drawString(name, 21, 73, 0x404040);
|
||||
name = tileEntity.rightTank.getGas() == null ? MekanismUtils.localize("gui.none") : tileEntity.rightTank.getGas().getGas().getLocalizedName();
|
||||
fontRenderer.drawString(name, 152-(name.length()*5), 73, 0x404040);
|
||||
|
||||
if(xAxis >= 165 && xAxis <= 169 && yAxis >= 17 && yAxis <= 69)
|
||||
if(xAxis >= 7 && xAxis <= 11 && yAxis >= 17 && yAxis <= 69)
|
||||
{
|
||||
drawCreativeTabHoveringText(tileEntity.fluidTank.getFluid() != null ? tileEntity.fluidTank.getFluid().getFluid().getLocalizedName() + ": " + tileEntity.fluidTank.getFluidAmount() + "mB" : MekanismUtils.localize("gui.empty"), xAxis, yAxis);
|
||||
}
|
||||
if(xAxis >= 65 && xAxis <= 69 && yAxis >= 17 && yAxis <= 48)
|
||||
{
|
||||
drawCreativeTabHoveringText(tileEntity.leftTank.getGas() != null ? tileEntity.leftTank.getGas().getGas().getLocalizedName() + ": " + tileEntity.leftTank.getStored() : MekanismUtils.localize("gui.empty"), xAxis, yAxis);
|
||||
}
|
||||
if(xAxis >= 107 && xAxis <= 111 && yAxis >= 17 && yAxis <= 48)
|
||||
{
|
||||
drawCreativeTabHoveringText(tileEntity.rightTank.getGas() != null ? tileEntity.rightTank.getGas().getGas().getLocalizedName() + ": " + tileEntity.rightTank.getStored() : MekanismUtils.localize("gui.empty"), xAxis, yAxis);
|
||||
}
|
||||
if(xAxis >= 165 && xAxis <= 169 && yAxis >= 17 && yAxis <= 69)
|
||||
{
|
||||
drawCreativeTabHoveringText(MekanismUtils.getEnergyDisplay(tileEntity.getEnergy()), xAxis, yAxis);
|
||||
}
|
||||
|
@ -114,21 +94,21 @@ public class GuiElectrolyticSeparator extends GuiContainer
|
|||
int guiHeight = (height - ySize) / 2;
|
||||
drawTexturedModalRect(guiWidth, guiHeight, 0, 0, xSize, ySize);
|
||||
|
||||
int outputDisplay = tileEntity.outputType == GasRegistry.getGas("oxygen") ? 82 : (tileEntity.outputType == GasRegistry.getGas("hydrogen") ? 90 : 98);
|
||||
drawTexturedModalRect(guiWidth + 160, guiHeight + 73, 176, outputDisplay, 8, 8);
|
||||
int leftDisplay = tileEntity.dumpLeft ? 90 : 82;
|
||||
drawTexturedModalRect(guiWidth + 8, guiHeight + 73, 176, leftDisplay, 8, 8);
|
||||
|
||||
int dumpDisplay = tileEntity.dumpType == GasRegistry.getGas("oxygen") ? 82 : (tileEntity.dumpType == GasRegistry.getGas("hydrogen") ? 90 : 98);
|
||||
drawTexturedModalRect(guiWidth + 8, guiHeight + 73, 176, dumpDisplay, 8, 8);
|
||||
int rightDisplay = tileEntity.dumpRight ? 90 : 82;
|
||||
drawTexturedModalRect(guiWidth + 160, guiHeight + 73, 176, rightDisplay, 8, 8);
|
||||
|
||||
int displayInt;
|
||||
|
||||
displayInt = tileEntity.getScaledWaterLevel(52);
|
||||
displayInt = tileEntity.getScaledFluidLevel(52);
|
||||
drawTexturedModalRect(guiWidth + 7, guiHeight + 17 + 52 - displayInt, 176 + 4, 52 - displayInt, 4, displayInt);
|
||||
|
||||
displayInt = tileEntity.getScaledHydrogenLevel(30);
|
||||
displayInt = tileEntity.getLeftScaledLevel(30);
|
||||
drawTexturedModalRect(guiWidth + 65, guiHeight + 17 + 30 - displayInt, 176, 52 + 30 - displayInt, 4, displayInt);
|
||||
|
||||
displayInt = tileEntity.getScaledOxygenLevel(30);
|
||||
displayInt = tileEntity.getRightScaledLevel(30);
|
||||
drawTexturedModalRect(guiWidth + 107, guiHeight + 17 + 30 - displayInt, 176 + 4, 52 + 30 - displayInt, 4, displayInt);
|
||||
|
||||
displayInt = tileEntity.getScaledEnergyLevel(52);
|
|
@ -1,10 +1,9 @@
|
|||
package mekanism.generators.client.model;
|
||||
package mekanism.client.model;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.client.model.ModelBase;
|
||||
import net.minecraft.client.model.ModelRenderer;
|
||||
import net.minecraft.entity.Entity;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class ModelElectrolyticSeparator extends ModelBase
|
|
@ -68,6 +68,7 @@ public class MekanismRenderer
|
|||
GasRegistry.getGas("hydrogen").setIcon(event.map.registerIcon("mekanism:LiquidHydrogen"));
|
||||
GasRegistry.getGas("oxygen").setIcon(event.map.registerIcon("mekanism:LiquidOxygen"));
|
||||
GasRegistry.getGas("water").setIcon(event.map.registerIcon("mekanism:WaterVapor"));
|
||||
GasRegistry.getGas("chlorine").setIcon(event.map.registerIcon("mekanism:Chlorine"));
|
||||
GasRegistry.getGas("sulfurDioxideGas").setIcon(event.map.registerIcon("mekanism:LiquidSulfurDioxide"));
|
||||
GasRegistry.getGas("sulfurTrioxideGas").setIcon(event.map.registerIcon("mekanism:LiquidSulfurTrioxide"));
|
||||
GasRegistry.getGas("sulfuricAcid").setIcon(event.map.registerIcon("mekanism:LiquidSulfuricAcid"));
|
||||
|
|
|
@ -1,17 +1,14 @@
|
|||
package mekanism.generators.client.render;
|
||||
|
||||
import mekanism.api.gas.GasRegistry;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import mekanism.common.util.MekanismUtils.ResourceType;
|
||||
import mekanism.generators.client.model.ModelElectrolyticSeparator;
|
||||
import mekanism.generators.common.tileentity.TileEntityElectrolyticSeparator;
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
package mekanism.client.render;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import mekanism.client.model.ModelElectrolyticSeparator;
|
||||
import mekanism.common.tileentity.TileEntityElectrolyticSeparator;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import mekanism.common.util.MekanismUtils.ResourceType;
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class RenderElectrolyticSeparator extends TileEntitySpecialRenderer
|
||||
|
@ -28,15 +25,14 @@ public class RenderElectrolyticSeparator extends TileEntitySpecialRenderer
|
|||
{
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef((float)x + 0.5F, (float)y + 1.5F, (float)z + 0.5F);
|
||||
bindTexture(MekanismUtils.getResource(ResourceType.RENDER, tileEntity.outputType == GasRegistry.getGas("hydrogen") ? "ElectrolyticSeparatorHydrogen.png" :
|
||||
(tileEntity.outputType == GasRegistry.getGas("oxygen") ? "ElectrolyticSeparatorOxygen.png" : "ElectrolyticSeparatorNone.png")));
|
||||
bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "ElectrolyticSeparatorNone.png"));
|
||||
|
||||
switch(tileEntity.facing)
|
||||
{
|
||||
case 2: GL11.glRotatef(270, 0.0F, 1.0F, 0.0F); break;
|
||||
case 3: GL11.glRotatef(90, 0.0F, 1.0F, 0.0F); break;
|
||||
case 4: GL11.glRotatef(0, 0.0F, 1.0F, 0.0F); break;
|
||||
case 5: GL11.glRotatef(180, 0.0F, 1.0F, 0.0F); break;
|
||||
case 2: GL11.glRotatef(90, 0.0F, 1.0F, 0.0F); break;
|
||||
case 3: GL11.glRotatef(270, 0.0F, 1.0F, 0.0F); break;
|
||||
case 4: GL11.glRotatef(180, 0.0F, 1.0F, 0.0F); break;
|
||||
case 5: GL11.glRotatef(0, 0.0F, 1.0F, 0.0F); break;
|
||||
}
|
||||
|
||||
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
|
|
@ -1,14 +1,10 @@
|
|||
package mekanism.client.render.block;
|
||||
|
||||
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import mekanism.client.ClientProxy;
|
||||
import mekanism.client.model.ModelChargepad;
|
||||
import mekanism.client.model.ModelChemicalInfuser;
|
||||
import mekanism.client.model.ModelChemicalOxidizer;
|
||||
import mekanism.client.model.ModelDigitalMiner;
|
||||
import mekanism.client.model.ModelElectricPump;
|
||||
import mekanism.client.model.ModelLogisticalSorter;
|
||||
import mekanism.client.model.ModelMetallurgicInfuser;
|
||||
import mekanism.client.model.ModelRotaryCondensentrator;
|
||||
import mekanism.client.model.*;
|
||||
import mekanism.client.render.MekanismRenderer;
|
||||
import mekanism.common.block.BlockMachine.MachineType;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
|
@ -17,13 +13,8 @@ import net.minecraft.block.Block;
|
|||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class MachineRenderingHandler implements ISimpleBlockRenderingHandler
|
||||
{
|
||||
|
@ -35,6 +26,8 @@ public class MachineRenderingHandler implements ISimpleBlockRenderingHandler
|
|||
public ModelRotaryCondensentrator rotaryCondensentrator = new ModelRotaryCondensentrator();
|
||||
public ModelChemicalOxidizer chemicalOxidizer = new ModelChemicalOxidizer();
|
||||
public ModelChemicalInfuser chemicalInfuser = new ModelChemicalInfuser();
|
||||
public ModelElectrolyticSeparator electrolyticSeparator = new ModelElectrolyticSeparator();
|
||||
|
||||
|
||||
@Override
|
||||
public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer)
|
||||
|
@ -114,6 +107,13 @@ public class MachineRenderingHandler implements ISimpleBlockRenderingHandler
|
|||
chemicalInfuser.render(0.0625F);
|
||||
chemicalInfuser.renderGlass(0.0625F);
|
||||
}
|
||||
else if(type == MachineType.ELECTROLYTIC_SEPARATOR)
|
||||
{
|
||||
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
|
||||
GL11.glTranslated(0.0F, -1.0F, 0.0F);
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "ElectrolyticSeparatorHydrogen.png"));
|
||||
electrolyticSeparator.render(0.0625F);
|
||||
}
|
||||
else {
|
||||
MekanismRenderer.renderItem(renderer, metadata, block);
|
||||
}
|
||||
|
|
|
@ -1,20 +1,18 @@
|
|||
package mekanism.common;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
import cpw.mods.fml.common.registry.TickRegistry;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import mekanism.common.inventory.container.*;
|
||||
import mekanism.common.inventory.container.ContainerChemicalOxidizer;
|
||||
import mekanism.common.tileentity.*;
|
||||
import mekanism.common.tileentity.TileEntityChemicalOxidizer;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.Configuration;
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
import cpw.mods.fml.common.registry.TickRegistry;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
/**
|
||||
* Common proxy for the Mekanism mod.
|
||||
|
@ -59,6 +57,7 @@ public class CommonProxy
|
|||
GameRegistry.registerTileEntity(TileEntityChemicalOxidizer.class, "ChemicalOxidizer");
|
||||
GameRegistry.registerTileEntity(TileEntityChemicalInfuser.class, "ChemicalInfuser");
|
||||
GameRegistry.registerTileEntity(TileEntityChemicalInjectionChamber.class, "ChemicalInjectionChamber");
|
||||
GameRegistry.registerTileEntity(TileEntityElectrolyticSeparator.class, "ElectrolyticSeparator");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -158,6 +157,7 @@ public class CommonProxy
|
|||
Mekanism.oxidationChamberUsage = Mekanism.configuration.get("usage", "OxidationChamberUsage", 100D).getDouble(100D);
|
||||
Mekanism.chemicalInfuserUsage = Mekanism.configuration.get("usage", "ChemicalInfuserUsage", 100D).getDouble(100D);
|
||||
Mekanism.chemicalInjectionChamberUsage = Mekanism.configuration.get("usage", "ChemicalInjectionChamberUsage", 200D).getDouble(200D);
|
||||
Mekanism.electrolyticSeparatorUsage = Mekanism.configuration.get("usage", "ElectrolyticSeparatorUsage", 50D).getDouble(50D);
|
||||
Mekanism.configuration.save();
|
||||
}
|
||||
|
||||
|
@ -295,6 +295,8 @@ public class CommonProxy
|
|||
return new ContainerChemicalInfuser(player.inventory, (TileEntityChemicalInfuser)tileEntity);
|
||||
case 31:
|
||||
return new ContainerAdvancedElectricMachine(player.inventory, (TileEntityAdvancedElectricMachine)tileEntity);
|
||||
case 32:
|
||||
return new ContainerElectrolyticSeparator(player.inventory, (TileEntityElectrolyticSeparator)tileEntity);
|
||||
}
|
||||
|
||||
return null;
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
package mekanism.common;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import cpw.mods.fml.common.FMLLog;
|
||||
import cpw.mods.fml.common.Mod;
|
||||
import cpw.mods.fml.common.Mod.EventHandler;
|
||||
import cpw.mods.fml.common.Mod.Instance;
|
||||
import cpw.mods.fml.common.SidedProxy;
|
||||
import cpw.mods.fml.common.event.*;
|
||||
import cpw.mods.fml.common.network.NetworkMod;
|
||||
import cpw.mods.fml.common.network.NetworkRegistry;
|
||||
import cpw.mods.fml.common.registry.EntityRegistry;
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
import mekanism.api.ChemicalInput;
|
||||
import mekanism.api.Coord4D;
|
||||
import mekanism.api.EnumColor;
|
||||
|
@ -31,68 +31,12 @@ import mekanism.common.IFactory.RecipeType;
|
|||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.Tier.EnergyCubeTier;
|
||||
import mekanism.common.Tier.FactoryTier;
|
||||
import mekanism.common.block.BlockBasic;
|
||||
import mekanism.common.block.BlockBounding;
|
||||
import mekanism.common.block.BlockEnergyCube;
|
||||
import mekanism.common.block.BlockGasTank;
|
||||
import mekanism.common.block.BlockMachine;
|
||||
import mekanism.common.block.BlockObsidianTNT;
|
||||
import mekanism.common.block.BlockOre;
|
||||
import mekanism.common.block.BlockTransmitter;
|
||||
import mekanism.common.item.ItemAtomicDisassembler;
|
||||
import mekanism.common.item.ItemBalloon;
|
||||
import mekanism.common.item.ItemBlockBasic;
|
||||
import mekanism.common.item.ItemBlockEnergyCube;
|
||||
import mekanism.common.item.ItemBlockGasTank;
|
||||
import mekanism.common.item.ItemBlockMachine;
|
||||
import mekanism.common.item.ItemBlockOre;
|
||||
import mekanism.common.item.ItemBlockTransmitter;
|
||||
import mekanism.common.item.ItemClump;
|
||||
import mekanism.common.item.ItemConfigurator;
|
||||
import mekanism.common.item.ItemDictionary;
|
||||
import mekanism.common.item.ItemDirtyDust;
|
||||
import mekanism.common.item.ItemDust;
|
||||
import mekanism.common.item.ItemElectricBow;
|
||||
import mekanism.common.item.ItemEnergized;
|
||||
import mekanism.common.item.ItemGasMask;
|
||||
import mekanism.common.item.ItemIngot;
|
||||
import mekanism.common.item.ItemJetpack;
|
||||
import mekanism.common.item.ItemMachineUpgrade;
|
||||
import mekanism.common.item.ItemMekanism;
|
||||
import mekanism.common.item.ItemNetworkReader;
|
||||
import mekanism.common.item.ItemPortableTeleporter;
|
||||
import mekanism.common.item.ItemProxy;
|
||||
import mekanism.common.item.ItemRobit;
|
||||
import mekanism.common.item.ItemScubaTank;
|
||||
import mekanism.common.item.ItemShard;
|
||||
import mekanism.common.item.ItemWalkieTalkie;
|
||||
import mekanism.common.block.*;
|
||||
import mekanism.common.item.*;
|
||||
import mekanism.common.multipart.ItemPartTransmitter;
|
||||
import mekanism.common.multipart.MultipartMekanism;
|
||||
import mekanism.common.network.PacketConfigSync;
|
||||
import mekanism.common.network.PacketConfigurationUpdate;
|
||||
import mekanism.common.network.PacketConfiguratorState;
|
||||
import mekanism.common.network.PacketDataRequest;
|
||||
import mekanism.common.network.PacketDigitUpdate;
|
||||
import mekanism.common.network.PacketDigitalMinerGui;
|
||||
import mekanism.common.network.PacketEditFilter;
|
||||
import mekanism.common.network.PacketElectricBowState;
|
||||
import mekanism.common.network.PacketElectricChest;
|
||||
import mekanism.common.network.PacketJetpackData;
|
||||
import mekanism.common.network.PacketKey;
|
||||
import mekanism.common.network.PacketLogisticalSorterGui;
|
||||
import mekanism.common.network.PacketNewFilter;
|
||||
import mekanism.common.network.PacketPortableTeleport;
|
||||
import mekanism.common.network.PacketPortalFX;
|
||||
import mekanism.common.network.PacketRedstoneControl;
|
||||
import mekanism.common.network.PacketRemoveUpgrade;
|
||||
import mekanism.common.network.PacketRobit;
|
||||
import mekanism.common.network.PacketScubaTankData;
|
||||
import mekanism.common.network.PacketSimpleGui;
|
||||
import mekanism.common.network.PacketStatusUpdate;
|
||||
import mekanism.common.network.PacketTileEntity;
|
||||
import mekanism.common.network.PacketTransmitterUpdate;
|
||||
import mekanism.common.network.*;
|
||||
import mekanism.common.network.PacketTransmitterUpdate.PacketType;
|
||||
import mekanism.common.network.PacketWalkieTalkieState;
|
||||
import mekanism.common.tileentity.TileEntityAdvancedBoundingBlock;
|
||||
import mekanism.common.tileentity.TileEntityBoundingBlock;
|
||||
import mekanism.common.tileentity.TileEntityElectricBlock;
|
||||
|
@ -111,24 +55,15 @@ import net.minecraftforge.common.Configuration;
|
|||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.event.ForgeSubscribe;
|
||||
import net.minecraftforge.event.world.ChunkEvent;
|
||||
import net.minecraftforge.fluids.FluidRegistry;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
import net.minecraftforge.oredict.ShapelessOreRecipe;
|
||||
import rebelkeithy.mods.metallurgy.api.IOreInfo;
|
||||
import rebelkeithy.mods.metallurgy.api.MetallurgyAPI;
|
||||
import cpw.mods.fml.common.FMLLog;
|
||||
import cpw.mods.fml.common.Mod;
|
||||
import cpw.mods.fml.common.Mod.EventHandler;
|
||||
import cpw.mods.fml.common.Mod.Instance;
|
||||
import cpw.mods.fml.common.SidedProxy;
|
||||
import cpw.mods.fml.common.event.FMLInitializationEvent;
|
||||
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
|
||||
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
|
||||
import cpw.mods.fml.common.event.FMLServerStartingEvent;
|
||||
import cpw.mods.fml.common.event.FMLServerStoppingEvent;
|
||||
import cpw.mods.fml.common.network.NetworkMod;
|
||||
import cpw.mods.fml.common.network.NetworkRegistry;
|
||||
import cpw.mods.fml.common.registry.EntityRegistry;
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.*;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
/**
|
||||
* Mekanism - the mod that doesn't have a category.
|
||||
|
@ -229,6 +164,7 @@ public class Mekanism
|
|||
public static Item Dictionary;
|
||||
public static Item Balloon;
|
||||
public static Item Shard;
|
||||
public static Item ElectrolyticCore;
|
||||
|
||||
//Blocks
|
||||
public static Block BasicBlock;
|
||||
|
@ -292,6 +228,7 @@ public class Mekanism
|
|||
public static double oxidationChamberUsage;
|
||||
public static double chemicalInfuserUsage;
|
||||
public static double chemicalInjectionChamberUsage;
|
||||
public static double electrolyticSeparatorUsage;
|
||||
|
||||
/**
|
||||
* Adds all in-game crafting and smelting recipes.
|
||||
|
@ -492,6 +429,13 @@ public class Mekanism
|
|||
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MachineBlock2, 1, 4), new Object[] {
|
||||
"ACA", "ERE", "ACA", Character.valueOf('C'), "circuitBasic", Character.valueOf('A'), AtomicCore, Character.valueOf('E'), new ItemStack(BasicBlock, 1, 8), Character.valueOf('R'), new ItemStack(MachineBlock, 1, 9)
|
||||
}));
|
||||
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MachineBlock2, 1, 5), new Object[] {
|
||||
"IRI", "ECE", "IRI", Character.valueOf('I'), Item.ingotIron, Character.valueOf('R'), Item.redstone, Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('C'), ElectrolyticCore
|
||||
}));
|
||||
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ElectrolyticCore), new Object[] {
|
||||
"EPE", "IEG", "EPE", Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('P'), "dustOsmium", Character.valueOf('I'), "dustIron", Character.valueOf('G'), "dustGold"
|
||||
}));
|
||||
|
||||
|
||||
for(RecipeType type : RecipeType.values())
|
||||
{
|
||||
|
@ -633,6 +577,10 @@ public class Mekanism
|
|||
RecipeHandler.addChemicalInfuserRecipe(new ChemicalInput(new GasStack(GasRegistry.getGas("oxygen"), 1), new GasStack(GasRegistry.getGas("sulfurDioxideGas"), 2)), new GasStack(GasRegistry.getGas("sulfurTrioxideGas"), 2));
|
||||
RecipeHandler.addChemicalInfuserRecipe(new ChemicalInput(new GasStack(GasRegistry.getGas("sulfurTrioxideGas"), 1), new GasStack(GasRegistry.getGas("water"), 1)), new GasStack(GasRegistry.getGas("sulfuricAcid"), 1));
|
||||
|
||||
//Electrolytic Separator Recipes
|
||||
RecipeHandler.addElectrolyticSeparatorRecipe(FluidRegistry.getFluidStack("water", 2), new ChemicalInput(new GasStack(GasRegistry.getGas("hydrogen"), 2), new GasStack(GasRegistry.getGas("oxygen"), 1)));
|
||||
RecipeHandler.addElectrolyticSeparatorRecipe(FluidRegistry.getFluidStack("lava", 10), new ChemicalInput(new GasStack(GasRegistry.getGas("hydrogen"), 1), new GasStack(GasRegistry.getGas("chlorine"), 1)));
|
||||
|
||||
//Infuse objects
|
||||
InfuseRegistry.registerInfuseObject(new ItemStack(Item.coal, 1, 0), new InfuseObject(InfuseRegistry.get("CARBON"), 10));
|
||||
InfuseRegistry.registerInfuseObject(new ItemStack(Item.coal, 1, 1), new InfuseObject(InfuseRegistry.get("CARBON"), 20));
|
||||
|
@ -675,6 +623,8 @@ public class Mekanism
|
|||
PartTransmitter = new ItemPartTransmitter(configuration.getItem("MultipartTransmitter", 11225).getInt()).setUnlocalizedName("MultipartTransmitter");
|
||||
Balloon = new ItemBalloon(configuration.getItem("Balloon", 11226).getInt()).setUnlocalizedName("Balloon");
|
||||
Shard = new ItemShard(configuration.getItem("Shard", 11227).getInt());
|
||||
ElectrolyticCore = new ItemMekanism(configuration.getItem("ElectrolyticCore", 11302).getInt()).setUnlocalizedName("ElectrolyticCore");
|
||||
|
||||
configuration.save();
|
||||
|
||||
//Registrations
|
||||
|
@ -705,6 +655,7 @@ public class Mekanism
|
|||
GameRegistry.registerItem(ScubaTank, "ScubaTank");
|
||||
GameRegistry.registerItem(Balloon, "Balloon");
|
||||
GameRegistry.registerItem(Shard, "Shard");
|
||||
GameRegistry.registerItem(ElectrolyticCore, "ElectrolyticCore");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -977,6 +928,7 @@ public class Mekanism
|
|||
GasRegistry.register(new Gas("hydrogen")).registerFluid();
|
||||
GasRegistry.register(new Gas("oxygen")).registerFluid();
|
||||
GasRegistry.register(new Gas("water")).registerFluid();
|
||||
GasRegistry.register(new Gas("chlorine")).registerFluid();
|
||||
GasRegistry.register(new Gas("sulfurDioxideGas")).registerFluid();
|
||||
GasRegistry.register(new Gas("sulfurTrioxideGas")).registerFluid();
|
||||
GasRegistry.register(new Gas("sulfuricAcid")).registerFluid();
|
||||
|
|
|
@ -10,6 +10,9 @@ import mekanism.api.infuse.InfusionInput;
|
|||
import mekanism.api.infuse.InfusionOutput;
|
||||
import mekanism.common.util.StackUtils;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.fluids.Fluid;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.fluids.FluidTank;
|
||||
|
||||
/**
|
||||
* Class used to handle machine recipes. This is used for both adding recipes and checking outputs.
|
||||
|
@ -113,6 +116,16 @@ public final class RecipeHandler
|
|||
Recipe.CHEMICAL_INJECTION_CHAMBER.put(input, output);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add an Electrolytic Separator recipe.
|
||||
* @param fluid - FluidStack to electrolyze
|
||||
* @param products - Pair of gases to produce when the fluid is electrolyzed
|
||||
*/
|
||||
public static void addElectrolyticSeparatorRecipe(FluidStack fluid, ChemicalInput products)
|
||||
{
|
||||
Recipe.ELECTROLYTIC_SEPARATOR.put(fluid, products);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the InfusionOutput of the InfusionInput in the parameters.
|
||||
* @param infusion - input Infusion
|
||||
|
@ -266,6 +279,34 @@ public final class RecipeHandler
|
|||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the result of electrolysing a given fluid
|
||||
* @param fluidTank - the FluidTank to electrolyse fluid from
|
||||
*/
|
||||
public static ChemicalInput getElectrolyticSeparatorOutput(FluidTank fluidTank, boolean doRemove)
|
||||
{
|
||||
FluidStack fluid = fluidTank.getFluid();
|
||||
|
||||
if(fluid != null)
|
||||
{
|
||||
HashMap<FluidStack, ChemicalInput> recipes = Recipe.ELECTROLYTIC_SEPARATOR.get();
|
||||
|
||||
for(Map.Entry<FluidStack, ChemicalInput> entry : recipes.entrySet())
|
||||
{
|
||||
FluidStack key = (FluidStack)entry.getKey();
|
||||
|
||||
if(fluid.containsFluid(key))
|
||||
{
|
||||
fluidTank.drain(key.amount, doRemove);
|
||||
|
||||
return entry.getValue().copy();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static enum Recipe
|
||||
{
|
||||
ENRICHMENT_CHAMBER(new HashMap<ItemStack, ItemStack>()),
|
||||
|
@ -276,7 +317,8 @@ public final class RecipeHandler
|
|||
METALLURGIC_INFUSER(new HashMap<InfusionInput, InfusionOutput>()),
|
||||
CHEMICAL_INFUSER(new HashMap<ChemicalInput, GasStack>()),
|
||||
CHEMICAL_OXIDIZER(new HashMap<ItemStack, GasStack>()),
|
||||
CHEMICAL_INJECTION_CHAMBER(new HashMap<ItemStack, ItemStack>());
|
||||
CHEMICAL_INJECTION_CHAMBER(new HashMap<ItemStack, ItemStack>()),
|
||||
ELECTROLYTIC_SEPARATOR(new HashMap<FluidStack, ChemicalInput>());
|
||||
|
||||
private HashMap recipes;
|
||||
|
||||
|
@ -305,6 +347,34 @@ public final class RecipeHandler
|
|||
return true;
|
||||
}
|
||||
}
|
||||
if(entry.getKey() instanceof FluidStack)
|
||||
{
|
||||
if(((FluidStack)entry.getKey()).isFluidEqual(input))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean containsRecipe(Fluid input)
|
||||
{
|
||||
for(Object obj : get().entrySet())
|
||||
{
|
||||
if(obj instanceof Map.Entry)
|
||||
{
|
||||
Map.Entry entry = (Map.Entry)obj;
|
||||
|
||||
if(entry.getKey() instanceof FluidStack)
|
||||
{
|
||||
if(((FluidStack)entry.getKey()).getFluid() == input)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -34,6 +34,7 @@ import net.minecraft.util.MathHelper;
|
|||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import buildcraft.api.tools.IToolWrench;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
|
@ -315,4 +316,10 @@ public class BlockEnergyCube extends BlockContainer
|
|||
TileEntityEnergyCube tileEntity = (TileEntityEnergyCube)world.getBlockTileEntity(x, y, z);
|
||||
return tileEntity.getRedstoneLevel();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isBlockSolidOnSide(World world, int x, int y, int z, ForgeDirection side)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,25 +1,13 @@
|
|||
package mekanism.common.block;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import buildcraft.api.tools.IToolWrench;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import mekanism.api.Coord4D;
|
||||
import mekanism.api.energy.IEnergizedItem;
|
||||
import mekanism.client.ClientProxy;
|
||||
import mekanism.common.IActiveState;
|
||||
import mekanism.common.IBoundingBlock;
|
||||
import mekanism.common.IElectricChest;
|
||||
import mekanism.common.IFactory;
|
||||
import mekanism.common.*;
|
||||
import mekanism.common.IFactory.RecipeType;
|
||||
import mekanism.common.IInvConfiguration;
|
||||
import mekanism.common.IRedstoneControl;
|
||||
import mekanism.common.ISpecialBounds;
|
||||
import mekanism.common.ISustainedInventory;
|
||||
import mekanism.common.ISustainedTank;
|
||||
import mekanism.common.IUpgradeManagement;
|
||||
import mekanism.common.ItemAttacher;
|
||||
import mekanism.common.Mekanism;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.miner.MinerFilter;
|
||||
import mekanism.common.network.PacketElectricChest;
|
||||
|
@ -27,7 +15,6 @@ import mekanism.common.network.PacketElectricChest.ElectricChestPacketType;
|
|||
import mekanism.common.network.PacketLogisticalSorterGui;
|
||||
import mekanism.common.network.PacketLogisticalSorterGui.SorterGuiPacket;
|
||||
import mekanism.common.tileentity.*;
|
||||
import mekanism.common.tileentity.TileEntityChemicalOxidizer;
|
||||
import mekanism.common.transporter.TransporterFilter;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import mekanism.common.util.TransporterUtils;
|
||||
|
@ -53,9 +40,9 @@ import net.minecraft.util.MovingObjectPosition;
|
|||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import buildcraft.api.tools.IToolWrench;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
/**
|
||||
* Block class for handling multiple machine block IDs.
|
||||
|
@ -1091,7 +1078,9 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds
|
|||
ROTARY_CONDENSENTRATOR(Mekanism.machineBlock2ID, 0, "RotaryCondensentrator", 7, 20000, TileEntityRotaryCondensentrator.class, true, false),
|
||||
CHEMICAL_OXIDIZER(Mekanism.machineBlock2ID, 1, "ChemicalOxidizer", 29, 20000, TileEntityChemicalOxidizer.class, true, false),
|
||||
CHEMICAL_INFUSER(Mekanism.machineBlock2ID, 2, "ChemicalInfuser", 30, 20000, TileEntityChemicalInfuser.class, true, false),
|
||||
CHEMICAL_INJECTION_CHAMBER(Mekanism.machineBlock2ID, 3, "ChemicalInjectionChamber", 31, Mekanism.chemicalInjectionChamberUsage*400, TileEntityChemicalInjectionChamber.class, false, true);
|
||||
CHEMICAL_INJECTION_CHAMBER(Mekanism.machineBlock2ID, 3, "ChemicalInjectionChamber", 31, Mekanism.chemicalInjectionChamberUsage*400, TileEntityChemicalInjectionChamber.class, false, true),
|
||||
ELECTROLYTIC_SEPARATOR(Mekanism.machineBlock2ID, 5, "ElectrolyticSeparator", 32, 20000, TileEntityElectrolyticSeparator.class, true, false);
|
||||
|
||||
|
||||
public int typeId;
|
||||
public int meta;
|
||||
|
|
|
@ -1,19 +1,17 @@
|
|||
package mekanism.generators.common.inventory.container;
|
||||
package mekanism.common.inventory.container;
|
||||
|
||||
import mekanism.api.gas.GasRegistry;
|
||||
import mekanism.api.gas.IGasItem;
|
||||
import mekanism.common.RecipeHandler;
|
||||
import mekanism.common.inventory.slot.SlotEnergy.SlotDischarge;
|
||||
import mekanism.common.inventory.slot.SlotStorageTank;
|
||||
import mekanism.common.tileentity.TileEntityElectrolyticSeparator;
|
||||
import mekanism.common.util.ChargeUtils;
|
||||
import mekanism.generators.common.tileentity.TileEntityElectrolyticSeparator;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.inventory.Slot;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.fluids.FluidContainerRegistry;
|
||||
import net.minecraftforge.fluids.FluidRegistry;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
|
||||
public class ContainerElectrolyticSeparator extends Container
|
||||
{
|
||||
|
@ -23,8 +21,8 @@ public class ContainerElectrolyticSeparator extends Container
|
|||
{
|
||||
tileEntity = tentity;
|
||||
addSlotToContainer(new Slot(tentity, 0, 17, 35));
|
||||
addSlotToContainer(new SlotStorageTank(tentity, GasRegistry.getGas("hydrogen"), false, 1, 59, 52));
|
||||
addSlotToContainer(new SlotStorageTank(tentity, GasRegistry.getGas("oxygen"), false, 2, 101, 52));
|
||||
addSlotToContainer(new SlotStorageTank(tentity, null, true, 1, 59, 52));
|
||||
addSlotToContainer(new SlotStorageTank(tentity, null, true, 2, 101, 52));
|
||||
addSlotToContainer(new SlotDischarge(tentity, 3, 143, 35));
|
||||
int slotX;
|
||||
|
||||
|
@ -73,7 +71,7 @@ public class ContainerElectrolyticSeparator extends Container
|
|||
|
||||
if(slotID != 0 && slotID != 1 && slotID != 2 && slotID != 3)
|
||||
{
|
||||
if(isWater(slotStack))
|
||||
if(isCorrectFluid(slotStack))
|
||||
{
|
||||
if(!mergeItemStack(slotStack, 0, 1, false))
|
||||
{
|
||||
|
@ -166,18 +164,8 @@ public class ContainerElectrolyticSeparator extends Container
|
|||
return stack;
|
||||
}
|
||||
|
||||
public boolean isWater(ItemStack itemStack)
|
||||
public boolean isCorrectFluid(ItemStack itemStack)
|
||||
{
|
||||
FluidStack fluid = FluidContainerRegistry.getFluidForFilledItem(itemStack);
|
||||
|
||||
if(fluid != null)
|
||||
{
|
||||
if(fluid.getFluid() == FluidRegistry.WATER)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
return RecipeHandler.Recipe.ELECTROLYTIC_SEPARATOR.containsRecipe(itemStack);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,620 @@
|
|||
package mekanism.common.tileentity;
|
||||
|
||||
import com.google.common.io.ByteArrayDataInput;
|
||||
import dan200.computer.api.IComputerAccess;
|
||||
import dan200.computer.api.ILuaContext;
|
||||
import dan200.computer.api.IPeripheral;
|
||||
import mekanism.api.ChemicalInput;
|
||||
import mekanism.api.Coord4D;
|
||||
import mekanism.api.gas.*;
|
||||
import mekanism.common.ISustainedTank;
|
||||
import mekanism.common.Mekanism;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.RecipeHandler;
|
||||
import mekanism.common.block.BlockMachine.MachineType;
|
||||
import mekanism.common.network.PacketTileEntity;
|
||||
import mekanism.common.util.ChargeUtils;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import net.minecraftforge.fluids.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class TileEntityElectrolyticSeparator extends TileEntityElectricBlock implements IFluidHandler, IPeripheral, ITubeConnection, ISustainedTank, IGasHandler
|
||||
{
|
||||
/** This separator's water slot. */
|
||||
public FluidTank fluidTank = new FluidTank(24000);
|
||||
|
||||
/** The maximum amount of gas this block can store. */
|
||||
public int MAX_GAS = 2400;
|
||||
|
||||
/** The amount of oxygen this block is storing. */
|
||||
public GasTank leftTank = new GasTank(MAX_GAS);
|
||||
|
||||
/** The amount of hydrogen this block is storing. */
|
||||
public GasTank rightTank = new GasTank(MAX_GAS);
|
||||
|
||||
/** How fast this block can output gas. */
|
||||
public int output = 16;
|
||||
|
||||
/** The type of gas this block is outputting. */
|
||||
public boolean dumpLeft = false;
|
||||
|
||||
/** Type type of gas this block is dumping. */
|
||||
public boolean dumpRight = false;
|
||||
|
||||
public TileEntityElectrolyticSeparator()
|
||||
{
|
||||
super("ElectrolyticSeparator", MachineType.ELECTROLYTIC_SEPARATOR.baseEnergy);
|
||||
inventory = new ItemStack[4];
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdate()
|
||||
{
|
||||
super.onUpdate();
|
||||
|
||||
if(!worldObj.isRemote)
|
||||
{
|
||||
ChargeUtils.discharge(3, this);
|
||||
|
||||
if(inventory[0] != null)
|
||||
{
|
||||
if(RecipeHandler.Recipe.ELECTROLYTIC_SEPARATOR.containsRecipe(inventory[0]))
|
||||
{
|
||||
FluidStack fluid = FluidContainerRegistry.getFluidForFilledItem(inventory[0]);
|
||||
if(fluidTank.getFluid() == null || fluid.isFluidEqual(fluidTank.getFluid()) && fluidTank.getFluid().amount+fluid.amount <= fluidTank.getCapacity())
|
||||
{
|
||||
fluidTank.fill(fluid, true);
|
||||
|
||||
if(inventory[0].getItem().hasContainerItem())
|
||||
{
|
||||
inventory[0] = inventory[0].getItem().getContainerItemStack(inventory[0]);
|
||||
}
|
||||
else {
|
||||
inventory[0].stackSize--;
|
||||
}
|
||||
|
||||
if(inventory[0].stackSize == 0)
|
||||
{
|
||||
inventory[0] = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!worldObj.isRemote)
|
||||
{
|
||||
if(inventory[1] != null && leftTank.getStored() > 0)
|
||||
{
|
||||
leftTank.draw(GasTransmission.addGas(inventory[1], leftTank.getGas()), true);
|
||||
MekanismUtils.saveChunk(this);
|
||||
}
|
||||
|
||||
if(inventory[2] != null && rightTank.getStored() > 0)
|
||||
{
|
||||
rightTank.draw(GasTransmission.addGas(inventory[2], rightTank.getGas()), true);
|
||||
MekanismUtils.saveChunk(this);
|
||||
}
|
||||
}
|
||||
|
||||
if(canOperate())
|
||||
{
|
||||
fillTanks(RecipeHandler.getElectrolyticSeparatorOutput(fluidTank, true));
|
||||
setEnergy(getEnergy() - Mekanism.electrolyticSeparatorUsage);
|
||||
}
|
||||
|
||||
if(leftTank.getGas() != null)
|
||||
{
|
||||
if(!dumpLeft)
|
||||
{
|
||||
GasStack toSend = new GasStack(leftTank.getGas().getGas(), Math.min(leftTank.getStored(), output));
|
||||
leftTank.draw(GasTransmission.emitGasToNetwork(toSend, this, MekanismUtils.getLeft(facing)), true);
|
||||
|
||||
TileEntity tileEntity = Coord4D.get(this).getFromSide(MekanismUtils.getLeft(facing)).getTileEntity(worldObj);
|
||||
|
||||
if(tileEntity instanceof IGasHandler)
|
||||
{
|
||||
if(((IGasHandler)tileEntity).canReceiveGas(ForgeDirection.getOrientation(facing).getOpposite(), leftTank.getGas().getGas()))
|
||||
{
|
||||
leftTank.draw(((IGasHandler)tileEntity).receiveGas(ForgeDirection.getOrientation(facing).getOpposite(), toSend), true);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
leftTank.draw(8, true);
|
||||
|
||||
if(worldObj.rand.nextInt(3) == 2)
|
||||
{
|
||||
PacketHandler.sendPacket(Transmission.CLIENTS_RANGE, new PacketTileEntity().setParams(Coord4D.get(this), getParticlePacket(new ArrayList())), Coord4D.get(this), 40D);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(rightTank.getGas() != null)
|
||||
{
|
||||
if(!dumpRight)
|
||||
{
|
||||
GasStack toSend = new GasStack(rightTank.getGas().getGas(), Math.min(rightTank.getStored(), output));
|
||||
rightTank.draw(GasTransmission.emitGasToNetwork(toSend, this, MekanismUtils.getRight(facing)), true);
|
||||
|
||||
TileEntity tileEntity = Coord4D.get(this).getFromSide(MekanismUtils.getRight(facing)).getTileEntity(worldObj);
|
||||
|
||||
if(tileEntity instanceof IGasHandler)
|
||||
{
|
||||
if(((IGasHandler)tileEntity).canReceiveGas(ForgeDirection.getOrientation(facing).getOpposite(), rightTank.getGas().getGas()))
|
||||
{
|
||||
rightTank.draw(((IGasHandler)tileEntity).receiveGas(ForgeDirection.getOrientation(facing).getOpposite(), toSend), true);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
rightTank.draw(8, true);
|
||||
|
||||
if(worldObj.rand.nextInt(3) == 2)
|
||||
{
|
||||
PacketHandler.sendPacket(Transmission.CLIENTS_RANGE, new PacketTileEntity().setParams(Coord4D.get(this), getParticlePacket(new ArrayList())), Coord4D.get(this), 40D);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public boolean canOperate()
|
||||
{
|
||||
return canFillWithSwap(RecipeHandler.getElectrolyticSeparatorOutput(fluidTank, false)) && getEnergy() >= Mekanism.electrolyticSeparatorUsage;
|
||||
}
|
||||
|
||||
public boolean canFillWithSwap(ChemicalInput gases)
|
||||
{
|
||||
if(gases == null)
|
||||
return false;
|
||||
return canFill(gases) || canFill(gases.swap());
|
||||
}
|
||||
|
||||
public boolean canFill(ChemicalInput gases)
|
||||
{
|
||||
return (leftTank.canReceive(gases.leftGas.getGas()) && leftTank.getNeeded() >= gases.leftGas.amount
|
||||
&& rightTank.canReceive(gases.rightGas.getGas()) && rightTank.getNeeded() >= gases.rightGas.amount);
|
||||
}
|
||||
|
||||
public void fillTanks(ChemicalInput gases)
|
||||
{
|
||||
if(gases == null) return;
|
||||
|
||||
if(canFill(gases))
|
||||
{
|
||||
leftTank.receive(gases.leftGas, true);
|
||||
rightTank.receive(gases.rightGas, true);
|
||||
}
|
||||
else if(canFill(gases.swap()))
|
||||
{
|
||||
leftTank.receive(gases.rightGas, true);
|
||||
rightTank.receive(gases.leftGas, true);
|
||||
}
|
||||
}
|
||||
|
||||
public void spawnParticle()
|
||||
{
|
||||
switch(facing)
|
||||
{
|
||||
case 3:
|
||||
worldObj.spawnParticle("smoke", xCoord+0.1, yCoord+1, zCoord+0.25, 0.0D, 0.0D, 0.0D);
|
||||
break;
|
||||
case 4:
|
||||
worldObj.spawnParticle("smoke", xCoord+0.75, yCoord+1, zCoord+0.1, 0.0D, 0.0D, 0.0D);
|
||||
break;
|
||||
case 2:
|
||||
worldObj.spawnParticle("smoke", xCoord+0.9, yCoord+1, zCoord+0.75, 0.0D, 0.0D, 0.0D);
|
||||
break;
|
||||
case 5:
|
||||
worldObj.spawnParticle("smoke", xCoord+0.25, yCoord+1, zCoord+0.9, 0.0D, 0.0D, 0.0D);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canExtractItem(int slotID, ItemStack itemstack, int side)
|
||||
{
|
||||
if(slotID == 3)
|
||||
{
|
||||
return ChargeUtils.canBeOutputted(itemstack, false);
|
||||
}
|
||||
else if(slotID == 0)
|
||||
{
|
||||
return FluidContainerRegistry.isEmptyContainer(itemstack);
|
||||
}
|
||||
else if(slotID == 1 || slotID == 2)
|
||||
{
|
||||
return itemstack.getItem() instanceof IGasItem && ((IGasItem)itemstack.getItem()).getGas(itemstack) != null &&
|
||||
((IGasItem)itemstack.getItem()).getGas(itemstack).amount == ((IGasItem)itemstack.getItem()).getMaxGas(itemstack);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isItemValidForSlot(int slotID, ItemStack itemstack)
|
||||
{
|
||||
if(slotID == 0)
|
||||
{
|
||||
return RecipeHandler.Recipe.ELECTROLYTIC_SEPARATOR.containsRecipe(itemstack);
|
||||
}
|
||||
else if(slotID == 1)
|
||||
{
|
||||
return itemstack.getItem() instanceof IGasItem && (((IGasItem)itemstack.getItem()).getGas(itemstack) == null || ((IGasItem)itemstack.getItem()).getGas(itemstack).getGas() == GasRegistry.getGas("hydrogen"));
|
||||
}
|
||||
else if(slotID == 2)
|
||||
{
|
||||
return itemstack.getItem() instanceof IGasItem && (((IGasItem)itemstack.getItem()).getGas(itemstack) == null || ((IGasItem)itemstack.getItem()).getGas(itemstack).getGas() == GasRegistry.getGas("oxygen"));
|
||||
}
|
||||
else if(slotID == 3)
|
||||
{
|
||||
return ChargeUtils.canBeDischarged(itemstack);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] getAccessibleSlotsFromSide(int side)
|
||||
{
|
||||
if(ForgeDirection.getOrientation(side) == MekanismUtils.getLeft(facing))
|
||||
{
|
||||
return new int[] {3};
|
||||
}
|
||||
else if(side == facing || ForgeDirection.getOrientation(side) == ForgeDirection.getOrientation(facing).getOpposite())
|
||||
{
|
||||
return new int[] {1, 2};
|
||||
}
|
||||
|
||||
return new int[] {0};
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the scaled hydrogen level for the GUI.
|
||||
* @param i - multiplier
|
||||
* @return
|
||||
*/
|
||||
public int getLeftScaledLevel(int i)
|
||||
{
|
||||
return leftTank.getStored()*i / MAX_GAS;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the scaled oxygen level for the GUI.
|
||||
* @param i - multiplier
|
||||
* @return
|
||||
*/
|
||||
public int getRightScaledLevel(int i)
|
||||
{
|
||||
return rightTank.getStored()*i / MAX_GAS;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the scaled water level for the GUI.
|
||||
* @param i - multiplier
|
||||
* @return
|
||||
*/
|
||||
public int getScaledFluidLevel(int i)
|
||||
{
|
||||
return fluidTank.getFluid() != null ? fluidTank.getFluid().amount*i / fluidTank.getCapacity() : 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the scaled energy level for the GUI.
|
||||
* @param i - multiplier
|
||||
* @return
|
||||
*/
|
||||
public int getScaledEnergyLevel(int i)
|
||||
{
|
||||
return (int)(electricityStored*i / MAX_ELECTRICITY);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handlePacketData(ByteArrayDataInput dataStream)
|
||||
{
|
||||
if(!worldObj.isRemote)
|
||||
{
|
||||
byte type = dataStream.readByte();
|
||||
|
||||
if(type == 0)
|
||||
{
|
||||
dumpLeft ^= true;
|
||||
}
|
||||
else if(type == 1)
|
||||
{
|
||||
dumpRight ^= true;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
super.handlePacketData(dataStream);
|
||||
|
||||
int type = dataStream.readInt();
|
||||
|
||||
if(type == 0)
|
||||
{
|
||||
if(dataStream.readBoolean())
|
||||
{
|
||||
fluidTank.setFluid(new FluidStack(FluidRegistry.getFluid(dataStream.readInt()), dataStream.readInt()));
|
||||
}
|
||||
else {
|
||||
fluidTank.setFluid(null);
|
||||
}
|
||||
|
||||
if(dataStream.readBoolean())
|
||||
{
|
||||
leftTank.setGas(new GasStack(GasRegistry.getGas(dataStream.readInt()), dataStream.readInt()));
|
||||
}
|
||||
else {
|
||||
leftTank.setGas(null);
|
||||
}
|
||||
|
||||
if(dataStream.readBoolean())
|
||||
{
|
||||
rightTank.setGas(new GasStack(GasRegistry.getGas(dataStream.readInt()), dataStream.readInt()));
|
||||
}
|
||||
else {
|
||||
rightTank.setGas(null);
|
||||
}
|
||||
|
||||
dumpLeft = dataStream.readBoolean();
|
||||
dumpRight = dataStream.readBoolean();
|
||||
}
|
||||
else if(type == 1)
|
||||
{
|
||||
spawnParticle();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArrayList getNetworkedData(ArrayList data)
|
||||
{
|
||||
super.getNetworkedData(data);
|
||||
|
||||
data.add(0);
|
||||
|
||||
if(fluidTank.getFluid() != null)
|
||||
{
|
||||
data.add(true);
|
||||
data.add(fluidTank.getFluid().getFluid().getID());
|
||||
data.add(fluidTank.getFluidAmount());
|
||||
}
|
||||
else {
|
||||
data.add(false);
|
||||
}
|
||||
|
||||
if(leftTank.getGas() != null)
|
||||
{
|
||||
data.add(true);
|
||||
data.add(leftTank.getGas().getGas().getID());
|
||||
data.add(leftTank.getStored());
|
||||
}
|
||||
else {
|
||||
data.add(false);
|
||||
}
|
||||
|
||||
if(rightTank.getGas() != null)
|
||||
{
|
||||
data.add(true);
|
||||
data.add(rightTank.getGas().getGas().getID());
|
||||
data.add(rightTank.getStored());
|
||||
}
|
||||
else {
|
||||
data.add(false);
|
||||
}
|
||||
|
||||
data.add(dumpLeft);
|
||||
data.add(dumpRight);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
public ArrayList getParticlePacket(ArrayList data)
|
||||
{
|
||||
super.getNetworkedData(data);
|
||||
data.add(1);
|
||||
return data;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound nbtTags)
|
||||
{
|
||||
super.readFromNBT(nbtTags);
|
||||
|
||||
if(nbtTags.hasKey("fluidTank"))
|
||||
{
|
||||
fluidTank.readFromNBT(nbtTags.getCompoundTag("fluidTank"));
|
||||
}
|
||||
|
||||
leftTank.read(nbtTags.getCompoundTag("leftTank"));
|
||||
rightTank.read(nbtTags.getCompoundTag("rightTank"));
|
||||
|
||||
dumpLeft = nbtTags.getBoolean("dumpLeft");
|
||||
dumpRight = nbtTags.getBoolean("dumpRight");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound nbtTags)
|
||||
{
|
||||
super.writeToNBT(nbtTags);
|
||||
|
||||
if(fluidTank.getFluid() != null)
|
||||
{
|
||||
nbtTags.setTag("fluidTank", fluidTank.writeToNBT(new NBTTagCompound()));
|
||||
}
|
||||
|
||||
nbtTags.setCompoundTag("leftTank", leftTank.write(new NBTTagCompound()));
|
||||
nbtTags.setCompoundTag("rightTank", rightTank.write(new NBTTagCompound()));
|
||||
|
||||
nbtTags.setBoolean("dumpLeft", dumpLeft);
|
||||
nbtTags.setBoolean("dumpRight", dumpRight);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getType()
|
||||
{
|
||||
return getInvName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getMethodNames()
|
||||
{
|
||||
return new String[] {"getStored", "getOutput", "getMaxEnergy", "getEnergyNeeded", "getWater", "getWaterNeeded", "getHydrogen", "getHydrogenNeeded", "getOxygen", "getOxygenNeeded"};
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object[] callMethod(IComputerAccess computer, ILuaContext context, int method, Object[] arguments) throws Exception
|
||||
{
|
||||
switch(method)
|
||||
{
|
||||
case 0:
|
||||
return new Object[] {electricityStored};
|
||||
case 1:
|
||||
return new Object[] {output};
|
||||
case 2:
|
||||
return new Object[] {MAX_ELECTRICITY};
|
||||
case 3:
|
||||
return new Object[] {(MAX_ELECTRICITY-electricityStored)};
|
||||
case 4:
|
||||
return new Object[] {fluidTank.getFluid() != null ? fluidTank.getFluid().amount : 0};
|
||||
case 5:
|
||||
return new Object[] {fluidTank.getFluid() != null ? (fluidTank.getCapacity()- fluidTank.getFluid().amount) : 0};
|
||||
case 6:
|
||||
return new Object[] {leftTank.getStored()};
|
||||
case 7:
|
||||
return new Object[] {leftTank.getNeeded()};
|
||||
case 8:
|
||||
return new Object[] {rightTank.getStored()};
|
||||
case 9:
|
||||
return new Object[] {rightTank.getNeeded()};
|
||||
default:
|
||||
System.err.println("[Mekanism] Attempted to call unknown method with computer ID " + computer.getID());
|
||||
return new Object[] {"Unknown command."};
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canAttachToSide(int side)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void attach(IComputerAccess computer) {}
|
||||
|
||||
@Override
|
||||
public void detach(IComputerAccess computer) {}
|
||||
|
||||
@Override
|
||||
public boolean canTubeConnect(ForgeDirection side)
|
||||
{
|
||||
return side == MekanismUtils.getLeft(facing) || side == MekanismUtils.getRight(facing);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFluidStack(FluidStack fluidStack, Object... data)
|
||||
{
|
||||
fluidTank.setFluid(fluidStack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FluidStack getFluidStack(Object... data)
|
||||
{
|
||||
return fluidTank.getFluid();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasTank(Object... data)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canFill(ForgeDirection from, Fluid fluid)
|
||||
{
|
||||
return RecipeHandler.Recipe.ELECTROLYTIC_SEPARATOR.containsRecipe(fluid);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canDrain(ForgeDirection from, Fluid fluid)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int fill(ForgeDirection from, FluidStack resource, boolean doFill)
|
||||
{
|
||||
if(RecipeHandler.Recipe.ELECTROLYTIC_SEPARATOR.containsRecipe(resource.getFluid()))
|
||||
{
|
||||
return fluidTank.fill(resource, doFill);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FluidTankInfo[] getTankInfo(ForgeDirection from)
|
||||
{
|
||||
return new FluidTankInfo[] {fluidTank.getInfo()};
|
||||
}
|
||||
|
||||
@Override
|
||||
public int receiveGas(ForgeDirection side, GasStack stack) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GasStack drawGas(ForgeDirection side, int amount) {
|
||||
if(side == MekanismUtils.getLeft(facing))
|
||||
{
|
||||
return leftTank.draw(amount, true);
|
||||
}
|
||||
else if(side == MekanismUtils.getRight(facing))
|
||||
{
|
||||
return rightTank.draw(amount, true);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canReceiveGas(ForgeDirection side, Gas type) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canDrawGas(ForgeDirection side, Gas type) {
|
||||
if(side == MekanismUtils.getLeft(facing))
|
||||
{
|
||||
return leftTank.getGas() != null && leftTank.getGas().getGas() == type;
|
||||
}
|
||||
|
||||
if(side == MekanismUtils.getRight(facing))
|
||||
{
|
||||
return rightTank.getGas() != null && rightTank.getGas().getGas() == type;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -1,28 +1,20 @@
|
|||
package mekanism.generators.client;
|
||||
|
||||
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import mekanism.client.render.MekanismRenderer;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import mekanism.common.util.MekanismUtils.ResourceType;
|
||||
import mekanism.generators.client.model.ModelAdvancedSolarGenerator;
|
||||
import mekanism.generators.client.model.ModelBioGenerator;
|
||||
import mekanism.generators.client.model.ModelElectrolyticSeparator;
|
||||
import mekanism.generators.client.model.ModelHeatGenerator;
|
||||
import mekanism.generators.client.model.ModelHydrogenGenerator;
|
||||
import mekanism.generators.client.model.ModelSolarGenerator;
|
||||
import mekanism.generators.client.model.ModelWindTurbine;
|
||||
import mekanism.generators.client.model.*;
|
||||
import mekanism.generators.common.MekanismGenerators;
|
||||
import mekanism.generators.common.block.BlockGenerator.GeneratorType;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class BlockRenderingHandler implements ISimpleBlockRenderingHandler
|
||||
{
|
||||
|
@ -31,7 +23,6 @@ public class BlockRenderingHandler implements ISimpleBlockRenderingHandler
|
|||
public ModelBioGenerator bioGenerator = new ModelBioGenerator();
|
||||
public ModelHeatGenerator heatGenerator = new ModelHeatGenerator();
|
||||
public ModelHydrogenGenerator hydrogenGenerator = new ModelHydrogenGenerator();
|
||||
public ModelElectrolyticSeparator electrolyticSeparator = new ModelElectrolyticSeparator();
|
||||
public ModelWindTurbine windTurbine = new ModelWindTurbine();
|
||||
|
||||
@Override
|
||||
|
@ -82,13 +73,6 @@ public class BlockRenderingHandler implements ISimpleBlockRenderingHandler
|
|||
Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "HydrogenGenerator.png"));
|
||||
hydrogenGenerator.render(0.0625F);
|
||||
}
|
||||
else if(metadata == GeneratorType.ELECTROLYTIC_SEPARATOR.meta)
|
||||
{
|
||||
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
|
||||
GL11.glTranslated(0.0F, -1.0F, 0.0F);
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "ElectrolyticSeparatorHydrogen.png"));
|
||||
electrolyticSeparator.render(0.0625F);
|
||||
}
|
||||
else if(metadata == GeneratorType.WIND_TURBINE.meta)
|
||||
{
|
||||
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
|
||||
|
|
|
@ -1,34 +1,17 @@
|
|||
package mekanism.generators.client;
|
||||
|
||||
import mekanism.generators.client.gui.GuiBioGenerator;
|
||||
import mekanism.generators.client.gui.GuiElectrolyticSeparator;
|
||||
import mekanism.generators.client.gui.GuiHeatGenerator;
|
||||
import mekanism.generators.client.gui.GuiHydrogenGenerator;
|
||||
import mekanism.generators.client.gui.GuiSolarGenerator;
|
||||
import mekanism.generators.client.gui.GuiWindTurbine;
|
||||
import mekanism.generators.client.render.RenderAdvancedSolarGenerator;
|
||||
import mekanism.generators.client.render.RenderBioGenerator;
|
||||
import mekanism.generators.client.render.RenderElectrolyticSeparator;
|
||||
import mekanism.generators.client.render.RenderHeatGenerator;
|
||||
import mekanism.generators.client.render.RenderHydrogenGenerator;
|
||||
import mekanism.generators.client.render.RenderSolarGenerator;
|
||||
import mekanism.generators.client.render.RenderWindTurbine;
|
||||
import mekanism.generators.common.GeneratorsCommonProxy;
|
||||
import mekanism.generators.common.tileentity.TileEntityAdvancedSolarGenerator;
|
||||
import mekanism.generators.common.tileentity.TileEntityBioGenerator;
|
||||
import mekanism.generators.common.tileentity.TileEntityElectrolyticSeparator;
|
||||
import mekanism.generators.common.tileentity.TileEntityHeatGenerator;
|
||||
import mekanism.generators.common.tileentity.TileEntityHydrogenGenerator;
|
||||
import mekanism.generators.common.tileentity.TileEntitySolarGenerator;
|
||||
import mekanism.generators.common.tileentity.TileEntityWindTurbine;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import cpw.mods.fml.client.registry.ClientRegistry;
|
||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import mekanism.generators.client.gui.*;
|
||||
import mekanism.generators.client.render.*;
|
||||
import mekanism.generators.common.GeneratorsCommonProxy;
|
||||
import mekanism.generators.common.tileentity.*;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class GeneratorsClientProxy extends GeneratorsCommonProxy
|
||||
|
@ -43,7 +26,6 @@ public class GeneratorsClientProxy extends GeneratorsCommonProxy
|
|||
ClientRegistry.registerTileEntity(TileEntityBioGenerator.class, "BioGenerator", new RenderBioGenerator());
|
||||
ClientRegistry.registerTileEntity(TileEntityHeatGenerator.class, "HeatGenerator", new RenderHeatGenerator());
|
||||
ClientRegistry.registerTileEntity(TileEntityHydrogenGenerator.class, "HydrogenGenerator", new RenderHydrogenGenerator());
|
||||
ClientRegistry.registerTileEntity(TileEntityElectrolyticSeparator.class, "ElectrolyticSeparator", new RenderElectrolyticSeparator());
|
||||
ClientRegistry.registerTileEntity(TileEntityWindTurbine.class, "WindTurbine", new RenderWindTurbine());
|
||||
}
|
||||
|
||||
|
@ -67,8 +49,6 @@ public class GeneratorsClientProxy extends GeneratorsCommonProxy
|
|||
return new GuiHeatGenerator(player.inventory, (TileEntityHeatGenerator)tileEntity);
|
||||
case 1:
|
||||
return new GuiSolarGenerator(player.inventory, (TileEntitySolarGenerator)tileEntity);
|
||||
case 2:
|
||||
return new GuiElectrolyticSeparator(player.inventory, (TileEntityElectrolyticSeparator)tileEntity);
|
||||
case 3:
|
||||
return new GuiHydrogenGenerator(player.inventory, (TileEntityHydrogenGenerator)tileEntity);
|
||||
case 4:
|
||||
|
|
|
@ -1,24 +1,13 @@
|
|||
package mekanism.generators.common;
|
||||
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
import mekanism.common.Mekanism;
|
||||
import mekanism.generators.common.inventory.container.ContainerBioGenerator;
|
||||
import mekanism.generators.common.inventory.container.ContainerElectrolyticSeparator;
|
||||
import mekanism.generators.common.inventory.container.ContainerHeatGenerator;
|
||||
import mekanism.generators.common.inventory.container.ContainerHydrogenGenerator;
|
||||
import mekanism.generators.common.inventory.container.ContainerSolarGenerator;
|
||||
import mekanism.generators.common.inventory.container.ContainerWindTurbine;
|
||||
import mekanism.generators.common.tileentity.TileEntityAdvancedSolarGenerator;
|
||||
import mekanism.generators.common.tileentity.TileEntityBioGenerator;
|
||||
import mekanism.generators.common.tileentity.TileEntityElectrolyticSeparator;
|
||||
import mekanism.generators.common.tileentity.TileEntityHeatGenerator;
|
||||
import mekanism.generators.common.tileentity.TileEntityHydrogenGenerator;
|
||||
import mekanism.generators.common.tileentity.TileEntitySolarGenerator;
|
||||
import mekanism.generators.common.tileentity.TileEntityWindTurbine;
|
||||
import mekanism.generators.common.inventory.container.*;
|
||||
import mekanism.generators.common.tileentity.*;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
|
||||
/**
|
||||
* Common proxy for the Mekanism Generators module.
|
||||
|
@ -37,7 +26,6 @@ public class GeneratorsCommonProxy
|
|||
GameRegistry.registerTileEntity(TileEntityBioGenerator.class, "BioGenerator");
|
||||
GameRegistry.registerTileEntity(TileEntityHeatGenerator.class, "HeatGenerator");
|
||||
GameRegistry.registerTileEntity(TileEntityHydrogenGenerator.class, "HydrogenGenerator");
|
||||
GameRegistry.registerTileEntity(TileEntityElectrolyticSeparator.class, "ElectrolyticSeparator");
|
||||
GameRegistry.registerTileEntity(TileEntityWindTurbine.class, "WindTurbine");
|
||||
}
|
||||
|
||||
|
@ -59,7 +47,6 @@ public class GeneratorsCommonProxy
|
|||
MekanismGenerators.hydrogenGeneration = Mekanism.configuration.get("generation", "HydrogenGeneration", 400D).getDouble(400D);
|
||||
MekanismGenerators.solarGeneration = Mekanism.configuration.get("generation", "SolarGeneration", 50D).getDouble(50D);
|
||||
MekanismGenerators.windGeneration = Mekanism.configuration.get("generation", "WindGeneration", 50D).getDouble(50D);
|
||||
MekanismGenerators.electrolyticSeparatorUsage = Mekanism.configuration.get("usage", "ElectrolyticSeparatorUsage", 50D).getDouble(50D);
|
||||
Mekanism.configuration.save();
|
||||
}
|
||||
|
||||
|
@ -98,8 +85,6 @@ public class GeneratorsCommonProxy
|
|||
return new ContainerHeatGenerator(player.inventory, (TileEntityHeatGenerator)tileEntity);
|
||||
case 1:
|
||||
return new ContainerSolarGenerator(player.inventory, (TileEntitySolarGenerator)tileEntity);
|
||||
case 2:
|
||||
return new ContainerElectrolyticSeparator(player.inventory, (TileEntityElectrolyticSeparator)tileEntity);
|
||||
case 3:
|
||||
return new ContainerHydrogenGenerator(player.inventory, (TileEntityHydrogenGenerator)tileEntity);
|
||||
case 4:
|
||||
|
|
|
@ -1,23 +1,5 @@
|
|||
package mekanism.generators.common;
|
||||
|
||||
import mekanism.api.infuse.InfuseObject;
|
||||
import mekanism.api.infuse.InfuseRegistry;
|
||||
import mekanism.api.infuse.InfuseType;
|
||||
import mekanism.common.IModule;
|
||||
import mekanism.common.Mekanism;
|
||||
import mekanism.common.MekanismRecipe;
|
||||
import mekanism.common.RecipeHandler;
|
||||
import mekanism.common.Version;
|
||||
import mekanism.common.item.ItemMekanism;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import mekanism.common.util.MekanismUtils.ResourceType;
|
||||
import mekanism.generators.common.block.BlockGenerator;
|
||||
import mekanism.generators.common.item.ItemBlockGenerator;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.crafting.CraftingManager;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
import cpw.mods.fml.common.Mod;
|
||||
import cpw.mods.fml.common.Mod.EventHandler;
|
||||
import cpw.mods.fml.common.Mod.Instance;
|
||||
|
@ -28,6 +10,20 @@ import cpw.mods.fml.common.event.FMLPreInitializationEvent;
|
|||
import cpw.mods.fml.common.network.NetworkMod;
|
||||
import cpw.mods.fml.common.network.NetworkRegistry;
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
import mekanism.api.infuse.InfuseObject;
|
||||
import mekanism.api.infuse.InfuseRegistry;
|
||||
import mekanism.api.infuse.InfuseType;
|
||||
import mekanism.common.*;
|
||||
import mekanism.common.item.ItemMekanism;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import mekanism.common.util.MekanismUtils.ResourceType;
|
||||
import mekanism.generators.common.block.BlockGenerator;
|
||||
import mekanism.generators.common.item.ItemBlockGenerator;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.crafting.CraftingManager;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
|
||||
@Mod(modid = "MekanismGenerators", name = "MekanismGenerators", version = "6.0.0", dependencies = "required-after:Mekanism")
|
||||
@NetworkMod(clientSideRequired = true, serverSideRequired = false)
|
||||
|
@ -44,7 +40,6 @@ public class MekanismGenerators implements IModule
|
|||
|
||||
//Items
|
||||
public static Item BioFuel;
|
||||
public static Item ElectrolyticCore;
|
||||
public static Item SolarPanel;
|
||||
|
||||
//Blocks
|
||||
|
@ -61,9 +56,6 @@ public class MekanismGenerators implements IModule
|
|||
public static double solarGeneration;
|
||||
public static double windGeneration;
|
||||
|
||||
//Usage Configuration
|
||||
public static double electrolyticSeparatorUsage;
|
||||
|
||||
@EventHandler
|
||||
public void preInit(FMLPreInitializationEvent event)
|
||||
{
|
||||
|
@ -122,14 +114,8 @@ public class MekanismGenerators implements IModule
|
|||
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(Generator, 1, 4), new Object[] {
|
||||
"RER", "BCB", "NEN", Character.valueOf('R'), Item.redstone, Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('B'), BioFuel, Character.valueOf('C'), "circuitBasic", Character.valueOf('N'), Item.ingotIron
|
||||
}));
|
||||
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(Generator, 1, 2), new Object[] {
|
||||
"IRI", "ECE", "IRI", Character.valueOf('I'), Item.ingotIron, Character.valueOf('R'), Item.redstone, Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('C'), ElectrolyticCore
|
||||
}));
|
||||
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(Generator, 1, 3), new Object[] {
|
||||
"PEP", "ICI", "PEP", Character.valueOf('P'), "ingotOsmium", Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('I'), new ItemStack(Mekanism.BasicBlock, 1, 8), Character.valueOf('C'), ElectrolyticCore
|
||||
}));
|
||||
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ElectrolyticCore), new Object[] {
|
||||
"EPE", "IEG", "EPE", Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('P'), "dustOsmium", Character.valueOf('I'), "dustIron", Character.valueOf('G'), "dustGold"
|
||||
"PEP", "ICI", "PEP", Character.valueOf('P'), "ingotOsmium", Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('I'), new ItemStack(Mekanism.BasicBlock, 1, 8), Character.valueOf('C'), Mekanism.ElectrolyticCore
|
||||
}));
|
||||
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(SolarPanel), new Object[] {
|
||||
"GGG", "RAR", "PPP", Character.valueOf('G'), Block.thinGlass, Character.valueOf('R'), Item.redstone, Character.valueOf('A'), Mekanism.EnrichedAlloy, Character.valueOf('P'), "ingotOsmium"
|
||||
|
@ -167,13 +153,11 @@ public class MekanismGenerators implements IModule
|
|||
Mekanism.configuration.load();
|
||||
SolarPanel = new ItemMekanism(Mekanism.configuration.getItem("SolarPanel", 11300).getInt()).setUnlocalizedName("SolarPanel");
|
||||
BioFuel = new ItemMekanism(Mekanism.configuration.getItem("BioFuel", 11301).getInt()).setUnlocalizedName("BioFuel");
|
||||
ElectrolyticCore = new ItemMekanism(Mekanism.configuration.getItem("ElectrolyticCore", 11302).getInt()).setUnlocalizedName("ElectrolyticCore");
|
||||
Mekanism.configuration.save();
|
||||
|
||||
//Registrations
|
||||
GameRegistry.registerItem(SolarPanel, "SolarPanel");
|
||||
GameRegistry.registerItem(BioFuel, "BioFuel");
|
||||
GameRegistry.registerItem(ElectrolyticCore, "ElectrolyticCore");
|
||||
|
||||
//Ore Dictionary
|
||||
OreDictionary.registerOre("itemBioFuel", new ItemStack(BioFuel));
|
||||
|
|
|
@ -1,28 +1,16 @@
|
|||
package mekanism.generators.common.block;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import buildcraft.api.tools.IToolWrench;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import mekanism.api.energy.IEnergizedItem;
|
||||
import mekanism.common.IActiveState;
|
||||
import mekanism.common.IBoundingBlock;
|
||||
import mekanism.common.ISpecialBounds;
|
||||
import mekanism.common.ISustainedInventory;
|
||||
import mekanism.common.ISustainedTank;
|
||||
import mekanism.common.ItemAttacher;
|
||||
import mekanism.common.Mekanism;
|
||||
import mekanism.common.*;
|
||||
import mekanism.common.tileentity.TileEntityBasicBlock;
|
||||
import mekanism.common.tileentity.TileEntityElectricBlock;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import mekanism.generators.client.GeneratorsClientProxy;
|
||||
import mekanism.generators.common.MekanismGenerators;
|
||||
import mekanism.generators.common.tileentity.TileEntityAdvancedSolarGenerator;
|
||||
import mekanism.generators.common.tileentity.TileEntityBioGenerator;
|
||||
import mekanism.generators.common.tileentity.TileEntityElectrolyticSeparator;
|
||||
import mekanism.generators.common.tileentity.TileEntityHeatGenerator;
|
||||
import mekanism.generators.common.tileentity.TileEntityHydrogenGenerator;
|
||||
import mekanism.generators.common.tileentity.TileEntitySolarGenerator;
|
||||
import mekanism.generators.common.tileentity.TileEntityWindTurbine;
|
||||
import mekanism.generators.common.tileentity.*;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
|
@ -37,16 +25,14 @@ import net.minecraft.util.MathHelper;
|
|||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import buildcraft.api.tools.IToolWrench;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
/**
|
||||
* Block class for handling multiple generator block IDs.
|
||||
* 0: Heat Generator
|
||||
* 1: Solar Generator
|
||||
* 2: Electrolytic Separator
|
||||
* 3: Hydrogen Generator
|
||||
* 4: Bio-Generator
|
||||
* 5: Advanced Solar Generator
|
||||
|
@ -88,34 +74,6 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds
|
|||
{
|
||||
TileEntityBasicBlock tileEntity = (TileEntityBasicBlock)world.getBlockTileEntity(x, y, z);
|
||||
|
||||
//If the block is a electrolytic separator.
|
||||
if(world.getBlockMetadata(x, y, z) == 2)
|
||||
{
|
||||
boolean hasReactor = false;
|
||||
//Loop through all possible orientations.
|
||||
for(ForgeDirection direction : ForgeDirection.values())
|
||||
{
|
||||
int xPos = x + direction.offsetX;
|
||||
int yPos = y + direction.offsetY;
|
||||
int zPos = z + direction.offsetZ;
|
||||
|
||||
//If this orientation faces a hydrogen reactor.
|
||||
if(world.getBlockId(xPos, yPos, zPos) == MekanismGenerators.generatorID && world.getBlockMetadata(xPos, yPos, zPos) == 3)
|
||||
{
|
||||
hasReactor = true;
|
||||
//Set the separator's facing towards the reactor.
|
||||
tileEntity.setFacing((short)direction.ordinal());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//If there was a reactor next to this machine, no further calculations are needed.
|
||||
if(hasReactor)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
int side = MathHelper.floor_double((double)(entityliving.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
|
||||
int height = Math.round(entityliving.rotationPitch);
|
||||
int change = 3;
|
||||
|
@ -180,7 +138,6 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds
|
|||
{
|
||||
list.add(new ItemStack(i, 1, 0));
|
||||
list.add(new ItemStack(i, 1, 1));
|
||||
list.add(new ItemStack(i, 1, 2));
|
||||
list.add(new ItemStack(i, 1, 3));
|
||||
list.add(new ItemStack(i, 1, 4));
|
||||
list.add(new ItemStack(i, 1, 5));
|
||||
|
@ -203,7 +160,7 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds
|
|||
|
||||
if(tileEntity.facing == 4)
|
||||
{
|
||||
switch(GeneratorType.values()[metadata])
|
||||
switch(GeneratorType.getFromMetadata(metadata))
|
||||
{
|
||||
case HEAT_GENERATOR:
|
||||
world.spawnParticle("smoke", (double)(xRandom + iRandom), (double)yRandom, (double)(zRandom - jRandom), 0.0D, 0.0D, 0.0D);
|
||||
|
@ -218,7 +175,7 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds
|
|||
}
|
||||
else if(tileEntity.facing == 5)
|
||||
{
|
||||
switch(GeneratorType.values()[metadata])
|
||||
switch(GeneratorType.getFromMetadata(metadata))
|
||||
{
|
||||
case HEAT_GENERATOR:
|
||||
world.spawnParticle("smoke", (double)(xRandom - iRandom), (double)yRandom, (double)(zRandom - jRandom), 0.0D, 0.0D, 0.0D);
|
||||
|
@ -233,7 +190,7 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds
|
|||
}
|
||||
else if(tileEntity.facing == 2)
|
||||
{
|
||||
switch(GeneratorType.values()[metadata])
|
||||
switch(GeneratorType.getFromMetadata(metadata))
|
||||
{
|
||||
case HEAT_GENERATOR:
|
||||
world.spawnParticle("smoke", (double)(xRandom - jRandom), (double)yRandom, (double)(zRandom + iRandom), 0.0D, 0.0D, 0.0D);
|
||||
|
@ -248,7 +205,7 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds
|
|||
}
|
||||
else if(tileEntity.facing == 3)
|
||||
{
|
||||
switch(GeneratorType.values()[metadata])
|
||||
switch(GeneratorType.getFromMetadata(metadata))
|
||||
{
|
||||
case HEAT_GENERATOR:
|
||||
world.spawnParticle("smoke", (double)(xRandom - jRandom), (double)yRandom, (double)(zRandom - iRandom), 0.0D, 0.0D, 0.0D);
|
||||
|
@ -526,7 +483,6 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds
|
|||
{
|
||||
HEAT_GENERATOR(0, "HeatGenerator", 0, 160000, TileEntityHeatGenerator.class, true),
|
||||
SOLAR_GENERATOR(1, "SolarGenerator", 1, 96000, TileEntitySolarGenerator.class, true),
|
||||
ELECTROLYTIC_SEPARATOR(2, "ElectrolyticSeparator", 2, 20000, TileEntityElectrolyticSeparator.class, true),
|
||||
HYDROGEN_GENERATOR(3, "HydrogenGenerator", 3, 40000, TileEntityHydrogenGenerator.class, true),
|
||||
BIO_GENERATOR(4, "BioGenerator", 4, 160000, TileEntityBioGenerator.class, true),
|
||||
ADVANCED_SOLAR_GENERATOR(5, "AdvancedSolarGenerator", 1, 200000, TileEntityAdvancedSolarGenerator.class, true),
|
||||
|
@ -551,7 +507,12 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds
|
|||
|
||||
public static GeneratorType getFromMetadata(int meta)
|
||||
{
|
||||
return values()[meta];
|
||||
for(GeneratorType type : values())
|
||||
{
|
||||
if(type.meta == meta)
|
||||
return type;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public TileEntity create()
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
package mekanism.generators.common.item;
|
||||
|
||||
import cofh.api.energy.IEnergyContainerItem;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import ic2.api.item.IElectricItemManager;
|
||||
import ic2.api.item.ISpecialElectricItem;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import mekanism.api.EnumColor;
|
||||
import mekanism.api.energy.IEnergizedItem;
|
||||
import mekanism.common.ISustainedInventory;
|
||||
|
@ -24,18 +24,14 @@ import net.minecraft.util.Icon;
|
|||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.fluids.FluidRegistry;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
|
||||
import org.lwjgl.input.Keyboard;
|
||||
|
||||
import cofh.api.energy.IEnergyContainerItem;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Item class for handling multiple generator block IDs.
|
||||
* 0: Heat Generator
|
||||
* 1: Solar Generator
|
||||
* 2: Electrolytic Separator
|
||||
* 3: Hydrogen Generator
|
||||
* 4: Bio-Generator
|
||||
* 5: Advanced Solar Generator
|
||||
|
@ -305,13 +301,13 @@ public class ItemBlockGenerator extends ItemBlock implements IEnergizedItem, ISp
|
|||
@Override
|
||||
public boolean canReceive(ItemStack itemStack)
|
||||
{
|
||||
return itemStack.getItemDamage() == GeneratorType.ELECTROLYTIC_SEPARATOR.meta;
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canSend(ItemStack itemStack)
|
||||
{
|
||||
return itemStack.getItemDamage() != GeneratorType.ELECTROLYTIC_SEPARATOR.meta;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,542 +0,0 @@
|
|||
package mekanism.generators.common.tileentity;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Random;
|
||||
|
||||
import mekanism.api.Coord4D;
|
||||
import mekanism.api.gas.Gas;
|
||||
import mekanism.api.gas.GasRegistry;
|
||||
import mekanism.api.gas.GasStack;
|
||||
import mekanism.api.gas.GasTransmission;
|
||||
import mekanism.api.gas.IGasHandler;
|
||||
import mekanism.api.gas.IGasItem;
|
||||
import mekanism.api.gas.ITubeConnection;
|
||||
import mekanism.common.ISustainedTank;
|
||||
import mekanism.common.PacketHandler;
|
||||
import mekanism.common.PacketHandler.Transmission;
|
||||
import mekanism.common.network.PacketTileEntity;
|
||||
import mekanism.common.tileentity.TileEntityElectricBlock;
|
||||
import mekanism.common.util.ChargeUtils;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import mekanism.generators.common.MekanismGenerators;
|
||||
import mekanism.generators.common.block.BlockGenerator.GeneratorType;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import net.minecraftforge.fluids.Fluid;
|
||||
import net.minecraftforge.fluids.FluidContainerRegistry;
|
||||
import net.minecraftforge.fluids.FluidRegistry;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.fluids.FluidTank;
|
||||
import net.minecraftforge.fluids.FluidTankInfo;
|
||||
import net.minecraftforge.fluids.IFluidHandler;
|
||||
|
||||
import com.google.common.io.ByteArrayDataInput;
|
||||
|
||||
import dan200.computer.api.IComputerAccess;
|
||||
import dan200.computer.api.ILuaContext;
|
||||
import dan200.computer.api.IPeripheral;
|
||||
|
||||
public class TileEntityElectrolyticSeparator extends TileEntityElectricBlock implements IFluidHandler, IPeripheral, ITubeConnection, ISustainedTank
|
||||
{
|
||||
/** This separator's water slot. */
|
||||
public FluidTank waterTank = new FluidTank(24000);
|
||||
|
||||
/** The maximum amount of gas this block can store. */
|
||||
public int MAX_GAS = 2400;
|
||||
|
||||
/** The amount of oxygen this block is storing. */
|
||||
public int oxygenStored;
|
||||
|
||||
/** The amount of hydrogen this block is storing. */
|
||||
public int hydrogenStored;
|
||||
|
||||
/** How fast this block can output gas. */
|
||||
public int output = 16;
|
||||
|
||||
/** The type of gas this block is outputting. */
|
||||
public Gas outputType;
|
||||
|
||||
/** Type type of gas this block is dumping. */
|
||||
public Gas dumpType;
|
||||
|
||||
public TileEntityElectrolyticSeparator()
|
||||
{
|
||||
super("ElectrolyticSeparator", GeneratorType.ELECTROLYTIC_SEPARATOR.maxEnergy);
|
||||
inventory = new ItemStack[4];
|
||||
outputType = GasRegistry.getGas("oxygen");
|
||||
dumpType = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdate()
|
||||
{
|
||||
super.onUpdate();
|
||||
|
||||
if(!worldObj.isRemote)
|
||||
{
|
||||
ChargeUtils.discharge(3, this);
|
||||
|
||||
if(inventory[0] != null)
|
||||
{
|
||||
FluidStack fluid = FluidContainerRegistry.getFluidForFilledItem(inventory[0]);
|
||||
|
||||
if(fluid != null && fluid.getFluid() == FluidRegistry.WATER)
|
||||
{
|
||||
if(waterTank.getFluid() == null || waterTank.getFluid().amount+fluid.amount <= waterTank.getCapacity())
|
||||
{
|
||||
waterTank.fill(fluid, true);
|
||||
|
||||
if(inventory[0].getItem().hasContainerItem())
|
||||
{
|
||||
inventory[0] = inventory[0].getItem().getContainerItemStack(inventory[0]);
|
||||
}
|
||||
else {
|
||||
inventory[0].stackSize--;
|
||||
}
|
||||
|
||||
if(inventory[0].stackSize == 0)
|
||||
{
|
||||
inventory[0] = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!worldObj.isRemote)
|
||||
{
|
||||
if(inventory[1] != null && hydrogenStored > 0)
|
||||
{
|
||||
hydrogenStored -= GasTransmission.addGas(inventory[1], new GasStack(GasRegistry.getGas("hydrogen"), hydrogenStored));
|
||||
MekanismUtils.saveChunk(this);
|
||||
}
|
||||
|
||||
if(inventory[2] != null && oxygenStored > 0)
|
||||
{
|
||||
hydrogenStored -= GasTransmission.addGas(inventory[2], new GasStack(GasRegistry.getGas("oxygen"), oxygenStored));
|
||||
MekanismUtils.saveChunk(this);
|
||||
}
|
||||
}
|
||||
|
||||
if(oxygenStored < MAX_GAS && hydrogenStored < MAX_GAS && waterTank.getFluid() != null && waterTank.getFluid().amount-2 >= 0 && getEnergy()-100 > 0)
|
||||
{
|
||||
waterTank.drain(2, true);
|
||||
setEnergy(getEnergy() - MekanismGenerators.electrolyticSeparatorUsage);
|
||||
setStored(GasRegistry.getGas("oxygen"), oxygenStored + 1);
|
||||
setStored(GasRegistry.getGas("hydrogen"), hydrogenStored + 2);
|
||||
}
|
||||
|
||||
if(outputType != null && getStored(outputType) > 0)
|
||||
{
|
||||
GasStack toSend = new GasStack(outputType, Math.min(getStored(outputType), output));
|
||||
setStored(outputType, getStored(outputType) - GasTransmission.emitGasToNetwork(toSend, this, ForgeDirection.getOrientation(facing)));
|
||||
|
||||
TileEntity tileEntity = Coord4D.get(this).getFromSide(ForgeDirection.getOrientation(facing)).getTileEntity(worldObj);
|
||||
|
||||
if(tileEntity instanceof IGasHandler)
|
||||
{
|
||||
if(((IGasHandler)tileEntity).canReceiveGas(ForgeDirection.getOrientation(facing).getOpposite(), outputType))
|
||||
{
|
||||
int added = ((IGasHandler)tileEntity).receiveGas(ForgeDirection.getOrientation(facing).getOpposite(), new GasStack(outputType, Math.min(getStored(outputType), output)));
|
||||
|
||||
setStored(outputType, getStored(outputType) - added);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(dumpType != null && getStored(dumpType) > 0)
|
||||
{
|
||||
setStored(dumpType, (getStored(dumpType) - 8));
|
||||
|
||||
if(worldObj.rand.nextInt(3) == 2)
|
||||
{
|
||||
PacketHandler.sendPacket(Transmission.CLIENTS_RANGE, new PacketTileEntity().setParams(Coord4D.get(this), getParticlePacket(new ArrayList())), Coord4D.get(this), 40D);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public int getStored(Gas gas)
|
||||
{
|
||||
if(gas == GasRegistry.getGas("oxygen"))
|
||||
{
|
||||
return oxygenStored;
|
||||
}
|
||||
else if(gas == GasRegistry.getGas("hydrogen"))
|
||||
{
|
||||
return hydrogenStored;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
public void setStored(Gas type, int amount)
|
||||
{
|
||||
if(type == GasRegistry.getGas("hydrogen"))
|
||||
{
|
||||
hydrogenStored = Math.max(Math.min(amount, MAX_GAS), 0);
|
||||
}
|
||||
else if(type == GasRegistry.getGas("oxygen"))
|
||||
{
|
||||
oxygenStored = Math.max(Math.min(amount, MAX_GAS), 0);
|
||||
}
|
||||
|
||||
MekanismUtils.saveChunk(this);
|
||||
}
|
||||
|
||||
public void spawnParticle()
|
||||
{
|
||||
switch(facing)
|
||||
{
|
||||
case 3:
|
||||
worldObj.spawnParticle("smoke", xCoord+0.1, yCoord+1, zCoord+0.25, 0.0D, 0.0D, 0.0D);
|
||||
break;
|
||||
case 4:
|
||||
worldObj.spawnParticle("smoke", xCoord+0.75, yCoord+1, zCoord+0.1, 0.0D, 0.0D, 0.0D);
|
||||
break;
|
||||
case 2:
|
||||
worldObj.spawnParticle("smoke", xCoord+0.9, yCoord+1, zCoord+0.75, 0.0D, 0.0D, 0.0D);
|
||||
break;
|
||||
case 5:
|
||||
worldObj.spawnParticle("smoke", xCoord+0.25, yCoord+1, zCoord+0.9, 0.0D, 0.0D, 0.0D);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canExtractItem(int slotID, ItemStack itemstack, int side)
|
||||
{
|
||||
if(slotID == 3)
|
||||
{
|
||||
return ChargeUtils.canBeOutputted(itemstack, false);
|
||||
}
|
||||
else if(slotID == 0)
|
||||
{
|
||||
return FluidContainerRegistry.isEmptyContainer(itemstack);
|
||||
}
|
||||
else if(slotID == 1 || slotID == 2)
|
||||
{
|
||||
return itemstack.getItem() instanceof IGasItem && ((IGasItem)itemstack.getItem()).getGas(itemstack) != null &&
|
||||
((IGasItem)itemstack.getItem()).getGas(itemstack).amount == ((IGasItem)itemstack.getItem()).getMaxGas(itemstack);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isItemValidForSlot(int slotID, ItemStack itemstack)
|
||||
{
|
||||
if(slotID == 0)
|
||||
{
|
||||
return FluidContainerRegistry.getFluidForFilledItem(itemstack) != null && FluidContainerRegistry.getFluidForFilledItem(itemstack).getFluid() == FluidRegistry.WATER;
|
||||
}
|
||||
else if(slotID == 1)
|
||||
{
|
||||
return itemstack.getItem() instanceof IGasItem && (((IGasItem)itemstack.getItem()).getGas(itemstack) == null || ((IGasItem)itemstack.getItem()).getGas(itemstack).getGas() == GasRegistry.getGas("hydrogen"));
|
||||
}
|
||||
else if(slotID == 2)
|
||||
{
|
||||
return itemstack.getItem() instanceof IGasItem && (((IGasItem)itemstack.getItem()).getGas(itemstack) == null || ((IGasItem)itemstack.getItem()).getGas(itemstack).getGas() == GasRegistry.getGas("oxygen"));
|
||||
}
|
||||
else if(slotID == 3)
|
||||
{
|
||||
return ChargeUtils.canBeDischarged(itemstack);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] getAccessibleSlotsFromSide(int side)
|
||||
{
|
||||
if(ForgeDirection.getOrientation(side) == MekanismUtils.getLeft(facing))
|
||||
{
|
||||
return new int[] {3};
|
||||
}
|
||||
else if(side == facing || ForgeDirection.getOrientation(side) == ForgeDirection.getOrientation(facing).getOpposite())
|
||||
{
|
||||
return new int[] {1, 2};
|
||||
}
|
||||
|
||||
return new int[] {0};
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the scaled hydrogen level for the GUI.
|
||||
* @param i - multiplier
|
||||
* @return
|
||||
*/
|
||||
public int getScaledHydrogenLevel(int i)
|
||||
{
|
||||
return hydrogenStored*i / MAX_GAS;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the scaled oxygen level for the GUI.
|
||||
* @param i - multiplier
|
||||
* @return
|
||||
*/
|
||||
public int getScaledOxygenLevel(int i)
|
||||
{
|
||||
return oxygenStored*i / MAX_GAS;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the scaled water level for the GUI.
|
||||
* @param i - multiplier
|
||||
* @return
|
||||
*/
|
||||
public int getScaledWaterLevel(int i)
|
||||
{
|
||||
return waterTank.getFluid() != null ? waterTank.getFluid().amount*i / waterTank.getCapacity() : 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the scaled energy level for the GUI.
|
||||
* @param i - multiplier
|
||||
* @return
|
||||
*/
|
||||
public int getScaledEnergyLevel(int i)
|
||||
{
|
||||
return (int)(electricityStored*i / MAX_ELECTRICITY);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handlePacketData(ByteArrayDataInput dataStream)
|
||||
{
|
||||
if(!worldObj.isRemote)
|
||||
{
|
||||
byte type = dataStream.readByte();
|
||||
|
||||
if(type == 0)
|
||||
{
|
||||
outputType = GasRegistry.getGas(dataStream.readInt());
|
||||
}
|
||||
else if(type == 1)
|
||||
{
|
||||
dumpType = GasRegistry.getGas(dataStream.readInt());
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
super.handlePacketData(dataStream);
|
||||
|
||||
int type = dataStream.readInt();
|
||||
|
||||
if(type == 0)
|
||||
{
|
||||
int amount = dataStream.readInt();
|
||||
|
||||
if(amount != 0)
|
||||
{
|
||||
waterTank.setFluid(new FluidStack(FluidRegistry.WATER, amount));
|
||||
}
|
||||
else {
|
||||
waterTank.setFluid(null);
|
||||
}
|
||||
|
||||
oxygenStored = dataStream.readInt();
|
||||
hydrogenStored = dataStream.readInt();
|
||||
outputType = GasRegistry.getGas(dataStream.readInt());
|
||||
dumpType = GasRegistry.getGas(dataStream.readInt());
|
||||
}
|
||||
else if(type == 1)
|
||||
{
|
||||
spawnParticle();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArrayList getNetworkedData(ArrayList data)
|
||||
{
|
||||
super.getNetworkedData(data);
|
||||
|
||||
data.add(0);
|
||||
if(waterTank.getFluid() != null)
|
||||
{
|
||||
data.add(waterTank.getFluid().amount);
|
||||
}
|
||||
else {
|
||||
data.add(0);
|
||||
}
|
||||
|
||||
data.add(oxygenStored);
|
||||
data.add(hydrogenStored);
|
||||
data.add(GasRegistry.getGasID(outputType));
|
||||
data.add(GasRegistry.getGasID(dumpType));
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
public ArrayList getParticlePacket(ArrayList data)
|
||||
{
|
||||
super.getNetworkedData(data);
|
||||
data.add(1);
|
||||
return data;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound nbtTags)
|
||||
{
|
||||
super.readFromNBT(nbtTags);
|
||||
|
||||
hydrogenStored = nbtTags.getInteger("hydrogenStored");
|
||||
oxygenStored = nbtTags.getInteger("oxygenStored");
|
||||
|
||||
if(nbtTags.hasKey("waterTank"))
|
||||
{
|
||||
waterTank.readFromNBT(nbtTags.getCompoundTag("waterTank"));
|
||||
}
|
||||
|
||||
try {
|
||||
outputType = Gas.readFromNBT(nbtTags.getCompoundTag("outputType"));
|
||||
dumpType = Gas.readFromNBT(nbtTags.getCompoundTag("dumpType"));
|
||||
} catch(Exception e) {} //TODO remove next major release
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound nbtTags)
|
||||
{
|
||||
super.writeToNBT(nbtTags);
|
||||
|
||||
nbtTags.setInteger("hydrogenStored", hydrogenStored);
|
||||
nbtTags.setInteger("oxygenStored", oxygenStored);
|
||||
|
||||
if(waterTank.getFluid() != null)
|
||||
{
|
||||
nbtTags.setTag("waterTank", waterTank.writeToNBT(new NBTTagCompound()));
|
||||
}
|
||||
|
||||
if(outputType != null)
|
||||
{
|
||||
nbtTags.setCompoundTag("outputType", outputType.write(new NBTTagCompound()));
|
||||
}
|
||||
|
||||
if(dumpType != null)
|
||||
{
|
||||
nbtTags.setCompoundTag("dumpType", dumpType.write(new NBTTagCompound()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getType()
|
||||
{
|
||||
return getInvName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getMethodNames()
|
||||
{
|
||||
return new String[] {"getStored", "getOutput", "getMaxEnergy", "getEnergyNeeded", "getWater", "getWaterNeeded", "getHydrogen", "getHydrogenNeeded", "getOxygen", "getOxygenNeeded"};
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object[] callMethod(IComputerAccess computer, ILuaContext context, int method, Object[] arguments) throws Exception
|
||||
{
|
||||
switch(method)
|
||||
{
|
||||
case 0:
|
||||
return new Object[] {electricityStored};
|
||||
case 1:
|
||||
return new Object[] {output};
|
||||
case 2:
|
||||
return new Object[] {MAX_ELECTRICITY};
|
||||
case 3:
|
||||
return new Object[] {(MAX_ELECTRICITY-electricityStored)};
|
||||
case 4:
|
||||
return new Object[] {waterTank.getFluid() != null ? waterTank.getFluid().amount : 0};
|
||||
case 5:
|
||||
return new Object[] {waterTank.getFluid() != null ? (waterTank.getCapacity()-waterTank.getFluid().amount) : 0};
|
||||
case 6:
|
||||
return new Object[] {hydrogenStored};
|
||||
case 7:
|
||||
return new Object[] {MAX_GAS-hydrogenStored};
|
||||
case 8:
|
||||
return new Object[] {oxygenStored};
|
||||
case 9:
|
||||
return new Object[] {MAX_GAS-oxygenStored};
|
||||
default:
|
||||
System.err.println("[Mekanism] Attempted to call unknown method with computer ID " + computer.getID());
|
||||
return new Object[] {"Unknown command."};
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canAttachToSide(int side)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void attach(IComputerAccess computer) {}
|
||||
|
||||
@Override
|
||||
public void detach(IComputerAccess computer) {}
|
||||
|
||||
@Override
|
||||
public boolean canTubeConnect(ForgeDirection side)
|
||||
{
|
||||
return side == ForgeDirection.getOrientation(facing);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFluidStack(FluidStack fluidStack, Object... data)
|
||||
{
|
||||
waterTank.setFluid(fluidStack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FluidStack getFluidStack(Object... data)
|
||||
{
|
||||
return waterTank.getFluid();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasTank(Object... data)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canFill(ForgeDirection from, Fluid fluid)
|
||||
{
|
||||
return fluid == FluidRegistry.WATER;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canDrain(ForgeDirection from, Fluid fluid)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int fill(ForgeDirection from, FluidStack resource, boolean doFill)
|
||||
{
|
||||
if(resource.getFluid() == FluidRegistry.WATER)
|
||||
{
|
||||
return waterTank.fill(resource, doFill);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FluidTankInfo[] getTankInfo(ForgeDirection from)
|
||||
{
|
||||
return new FluidTankInfo[] {waterTank.getInfo()};
|
||||
}
|
||||
}
|
Binary file not shown.
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
@ -26,6 +26,7 @@ item.Jetpack.name=Jetpack
|
|||
item.ScubaTank.name=Taucherflasche
|
||||
item.GasMask.name=Gasmaske
|
||||
item.Dictionary.name=Lexikon
|
||||
item.ElectrolyticCore.name=Elektrolytischer Kern
|
||||
|
||||
//Gas Tank
|
||||
tile.GasTank.GasTank.name=Gastank
|
||||
|
@ -70,6 +71,7 @@ tile.MachineBlock2.ChemicalOxidizer.name=Chemischer Oxidierer
|
|||
tile.MachineBlock2.ChemicalInfuser.name=Chemischer Infundierer
|
||||
tile.MachineBlock2.ChemicalCombiner.name=Chemischer Kombinierer
|
||||
tile.MachineBlock2.ChemicalInjectionChamber.name=Chemische Injektionskammer
|
||||
tile.MachineBlock2.ElectrolyticSeparator.name=Elektrolytischer Separator
|
||||
|
||||
//Ore Block
|
||||
tile.OreBlock.OsmiumOre.name=Osmiumerz
|
||||
|
@ -352,13 +354,11 @@ itemGroup.tabMekanism=Mekanism
|
|||
|
||||
//Items
|
||||
item.BioFuel.name=Biobrennstoff
|
||||
item.ElectrolyticCore.name=Elektrolytischer Kern
|
||||
item.SolarPanel.name=Solarmodul
|
||||
|
||||
//Generators
|
||||
tile.Generator.HeatGenerator.name=Hitzegenerator
|
||||
tile.Generator.SolarGenerator.name=Solargenerator
|
||||
tile.Generator.ElectrolyticSeparator.name=Elektrolytischer Separator
|
||||
tile.Generator.HydrogenGenerator.name=Wasserstoffgenerator
|
||||
tile.Generator.BioGenerator.name=Bio-Generator
|
||||
tile.Generator.AdvancedSolarGenerator.name=Fortgeschrittener Solargenerator
|
||||
|
|
|
@ -26,6 +26,7 @@ item.Jetpack.name=Jetpack
|
|||
item.ScubaTank.name=Scuba Tank
|
||||
item.GasMask.name=Gas Mask
|
||||
item.Dictionary.name=Dictionary
|
||||
item.ElectrolyticCore.name=Electrolytic Core
|
||||
|
||||
//Gas Tank
|
||||
tile.GasTank.GasTank.name=Gas Tank
|
||||
|
@ -70,6 +71,7 @@ tile.MachineBlock2.ChemicalOxidizer.name=Chemical Oxidizer
|
|||
tile.MachineBlock2.ChemicalInfuser.name=Chemical Infuser
|
||||
tile.MachineBlock2.ChemicalCombiner.name=Chemical Combiner
|
||||
tile.MachineBlock2.ChemicalInjectionChamber.name=Chemical Injection Chamber
|
||||
tile.MachineBlock2.ElectrolyticSeparator.name=Electrolytic Separator
|
||||
|
||||
//Ore Block
|
||||
tile.OreBlock.OsmiumOre.name=Osmium Ore
|
||||
|
@ -153,6 +155,7 @@ item.tinIngot.name=Tin Ingot
|
|||
gas.hydrogen=Hydrogen
|
||||
gas.oxygen=Oxygen
|
||||
gas.water=Water Vapor
|
||||
gas.chlorine=Chlorine
|
||||
gas.sulfurDioxideGas=Sulfur Dioxide
|
||||
gas.sulfurTrioxideGas=Sulfur Trioxide
|
||||
gas.sulfuricAcid=Sulfuric Acid
|
||||
|
@ -160,6 +163,7 @@ gas.sulfuricAcid=Sulfuric Acid
|
|||
//Fluids
|
||||
fluid.hydrogen=Liquid Hydrogen
|
||||
fluid.oxygen=Liquid Oxygen
|
||||
fluid.chlorine=Liquid Chlorine
|
||||
fluid.sulfurDioxideGas=Liquid Sulfur Dioxide
|
||||
fluid.sulfurTrioxideGas=Liquid Sulfur Trioxide
|
||||
fluid.sulfuricAcid=Liquid Sulfuric Acid
|
||||
|
@ -352,13 +356,11 @@ itemGroup.tabMekanism=Mekanism
|
|||
|
||||
//Items
|
||||
item.BioFuel.name=Bio Fuel
|
||||
item.ElectrolyticCore.name=Electrolytic Core
|
||||
item.SolarPanel.name=Solar Panel
|
||||
|
||||
//Generators
|
||||
tile.Generator.HeatGenerator.name=Heat Generator
|
||||
tile.Generator.SolarGenerator.name=Solar Generator
|
||||
tile.Generator.ElectrolyticSeparator.name=Electrolytic Separator
|
||||
tile.Generator.HydrogenGenerator.name=Hydrogen Generator
|
||||
tile.Generator.BioGenerator.name=Bio-Generator
|
||||
tile.Generator.AdvancedSolarGenerator.name=Advanced Solar Generator
|
||||
|
|
|
@ -24,6 +24,7 @@ item.Configurator.name=Configurateur
|
|||
item.NetworkReader.name=Analyseur de Réseaux
|
||||
item.ManganeseAlloy.name=Alliage de Manganèse
|
||||
item.WalkieTalkie.name=Talkie-Walkie
|
||||
item.ElectrolyticCore.name=Noyau Electrolytique
|
||||
|
||||
//Basic Block
|
||||
tile.BasicBlock.OsmiumBlock.name=Bloc d'Osmium
|
||||
|
@ -57,6 +58,8 @@ tile.MachineBlock.Chargepad.name=Plaque de Chargement
|
|||
tile.MachineBlock.LogisticalSorter.name=Trieur Logistique
|
||||
tile.MachineBlock.DigitalMiner.name=Mineur Digital
|
||||
|
||||
tile.MachineBlock2.ElectrolyticSeparator.name=Séparateur Electrolytique
|
||||
|
||||
//Ore Block
|
||||
tile.OreBlock.OsmiumOre.name=Minerai d'Osmium
|
||||
|
||||
|
@ -119,13 +122,11 @@ itemGroup.tabMekanism=Mekanism
|
|||
|
||||
//Items
|
||||
item.BioFuel.name=Biocombustible
|
||||
item.ElectrolyticCore.name=Noyau Electrolytique
|
||||
item.SolarPanel.name=Panneau Solaire
|
||||
|
||||
//Generators
|
||||
tile.Generator.HeatGenerator.name=Générateur Thermique
|
||||
tile.Generator.SolarGenerator.name=Générateur Solaire
|
||||
tile.Generator.ElectrolyticSeparator.name=Séparateur Electrolytique
|
||||
tile.Generator.HydrogenGenerator.name=Générateur à Hydrogène
|
||||
tile.Generator.BioGenerator.name=Bio-Générateur
|
||||
tile.Generator.AdvancedSolarGenerator.name=Générateur Solaire Avancé
|
||||
|
|
|
@ -24,6 +24,7 @@ item.Configurator.name=Konfigurator
|
|||
item.NetworkReader.name=Czytnik Sieci
|
||||
item.ManganeseAlloy.name=Stop Manganu
|
||||
item.WalkieTalkie.name=Walkie-Talkie
|
||||
item.ElectrolyticCore.name=Jądro Elektrolityczne
|
||||
|
||||
//Basic Block
|
||||
tile.BasicBlock.OsmiumBlock.name=Blok Osmu
|
||||
|
@ -56,6 +57,8 @@ tile.MachineBlock.ElectricChest.name=Elektryczna Skrzynia
|
|||
tile.MachineBlock.Chargepad.name=Chargepad
|
||||
tile.MachineBlock.LogisticalSorter.name=Logistyczny Magazynier
|
||||
|
||||
tile.MachineBlock2.ElectrolyticSeparator.name=Separator Elektrolityczny
|
||||
|
||||
//Ore Block
|
||||
tile.OreBlock.OsmiumOre.name=Ruda Osmu
|
||||
|
||||
|
@ -116,13 +119,11 @@ itemGroup.tabMekanism=Mekanism
|
|||
|
||||
//Items
|
||||
item.BioFuel.name=Bio paliwo
|
||||
item.ElectrolyticCore.name=Jądro Elektrolityczne
|
||||
item.SolarPanel.name=Panel Słoneczny
|
||||
|
||||
//Generators
|
||||
tile.Generator.HeatGenerator.name=Generator Cieplny
|
||||
tile.Generator.SolarGenerator.name=Generator Słoneczny
|
||||
tile.Generator.ElectrolyticSeparator.name=Separator Elektrolityczny
|
||||
tile.Generator.HydrogenGenerator.name=Wodorowy Generator
|
||||
tile.Generator.BioGenerator.name=Bio-Generator
|
||||
tile.Generator.AdvancedSolarGenerator.name=Zaawansowany Generator Słoneczny
|
||||
|
|
|
@ -26,6 +26,7 @@ item.Jetpack.name=Реактивный ранец
|
|||
item.ScubaTank.name=Scuba Tank
|
||||
item.GasMask.name=Gas Mask
|
||||
item.Dictionary.name=Словарь
|
||||
item.ElectrolyticCore.name=Электролитическое ядро
|
||||
|
||||
//Gas Tank
|
||||
tile.GasTank.GasTank.name=Газовый баллон
|
||||
|
@ -70,6 +71,7 @@ tile.MachineBlock2.ChemicalOxidizer.name=Химический окислител
|
|||
tile.MachineBlock2.ChemicalInfuser.name=Химический вливатель
|
||||
tile.MachineBlock2.ChemicalCombiner.name=Химический объединитель
|
||||
tile.MachineBlock2.ChemicalInjectionChamber.name=Инъекционная химическая камера
|
||||
tile.MachineBlock2.ElectrolyticSeparator.name=Электролитический сепаратор
|
||||
|
||||
//Ore Block
|
||||
tile.OreBlock.OsmiumOre.name=Осмиевая руда
|
||||
|
@ -352,13 +354,11 @@ itemGroup.tabMekanism=Mekanism
|
|||
|
||||
//Items
|
||||
item.BioFuel.name=Био-топливо
|
||||
item.ElectrolyticCore.name=Электролитическое ядро
|
||||
item.SolarPanel.name=Солнечная панель
|
||||
|
||||
//Generators
|
||||
tile.Generator.HeatGenerator.name=Тепловой генератор
|
||||
tile.Generator.SolarGenerator.name=Солнечный генератор
|
||||
tile.Generator.ElectrolyticSeparator.name=Электролитический сепаратор
|
||||
tile.Generator.HydrogenGenerator.name=Водородный генератор
|
||||
tile.Generator.BioGenerator.name=Био-генератор
|
||||
tile.Generator.AdvancedSolarGenerator.name=Продвинутый солнечный генератор
|
||||
|
|
|
@ -26,6 +26,7 @@ item.Jetpack.name=喷射背包
|
|||
item.ScubaTank.name=潜水罐
|
||||
item.GasMask.name=燃气面具
|
||||
item.Dictionary.name=辞典
|
||||
item.ElectrolyticCore.name=电解核心
|
||||
|
||||
//Gas Tank
|
||||
tile.GasTank.GasTank.name=燃气储罐
|
||||
|
@ -68,6 +69,7 @@ tile.MachineBlock.DigitalMiner.name=数字型采矿机
|
|||
tile.MachineBlock2.RotaryCondensentrator.name=回旋式气液转换机
|
||||
tile.MachineBlock2.OxidationChamber.name=化学程式机
|
||||
tile.MachineBlock2.ChemicalInfuser.name=化学灌注器
|
||||
tile.MachineBlock2.ElectrolyticSeparator.name=电解分离器
|
||||
|
||||
//Ore Block
|
||||
tile.OreBlock.OsmiumOre.name=锇矿石
|
||||
|
@ -315,13 +317,11 @@ itemGroup.tabMekanism=通用机器
|
|||
|
||||
//Items
|
||||
item.BioFuel.name=生物燃料
|
||||
item.ElectrolyticCore.name=电解核心
|
||||
item.SolarPanel.name=太阳能板
|
||||
|
||||
//Generators
|
||||
tile.Generator.HeatGenerator.name=热力发电机
|
||||
tile.Generator.SolarGenerator.name=太阳能发电机
|
||||
tile.Generator.ElectrolyticSeparator.name=电解分离器
|
||||
tile.Generator.HydrogenGenerator.name=氢气生成器
|
||||
tile.Generator.BioGenerator.name=生物能发电机
|
||||
tile.Generator.AdvancedSolarGenerator.name=高级太阳能发电机
|
||||
|
|
BIN
resources/assets/mekanism/textures/blocks/Chlorine.png
Normal file
BIN
resources/assets/mekanism/textures/blocks/Chlorine.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"animation": {
|
||||
"frametime": 2
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue