Merge branch 'development' into 1.8 (hopefully I didn't miss anything)

Conflicts:
	src/main/java/mekanism/client/gui/GuiGasTank.java
	src/main/java/mekanism/client/gui/GuiPortableTeleporter.java
	src/main/java/mekanism/client/gui/GuiTeleporter.java
	src/main/java/mekanism/common/CommonProxy.java
	src/main/java/mekanism/common/Mekanism.java
	src/main/java/mekanism/common/content/transporter/TransporterStack.java
This commit is contained in:
Aidan C. Brady 2014-09-27 14:40:25 -04:00
commit 9bf4baab49
19 changed files with 980 additions and 136 deletions

View file

@ -75,6 +75,7 @@ public class MekanismConfig
public static double pressurizedReactionBaseUsage;
public static double fluidicPlenisherUsage;
public static double laserUsage;
public static double salinationPlantWaterUsage;
}
public static class generators

View file

@ -226,7 +226,10 @@ public class GasTank
stored = GasStack.readFromNBT(nbtTags.getCompoundTag("stored"));
}
maxGas = nbtTags.getInteger("maxGas");
if(nbtTags.hasKey("maxGas"))
{
maxGas = nbtTags.getInteger("maxGas");
}
}
/**

View file

@ -2,6 +2,8 @@ package mekanism.client.gui;
import java.util.ArrayList;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import mekanism.api.Coord4D;
import mekanism.client.sound.SoundHandler;
import mekanism.common.Mekanism;
@ -10,11 +12,7 @@ import mekanism.common.network.PacketTileEntity.TileEntityMessage;
import mekanism.common.tile.TileEntityGasTank;
import mekanism.common.util.MekanismUtils;
import mekanism.common.util.MekanismUtils.ResourceType;
import net.minecraft.entity.player.InventoryPlayer;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import org.lwjgl.opengl.GL11;
@SideOnly(Side.CLIENT)
@ -37,17 +35,18 @@ public class GuiGasTank extends GuiMekanism
String capacityInfo = tileEntity.gasTank.getStored() + "/" + tileEntity.MAX_GAS;
fontRendererObj.drawString(tileEntity.getInventoryName(), (xSize/2)-(fontRendererObj.getStringWidth(tileEntity.getInventoryName())/2), 6, 0x404040);
fontRendererObj.drawString(tileEntity.getInventoryName(), (xSize / 2) - (fontRendererObj.getStringWidth(tileEntity.getInventoryName()) / 2), 6, 0x404040);
fontRendererObj.drawString(capacityInfo, 45, 40, 0x404040);
fontRendererObj.drawString(MekanismUtils.localize("gui.gas") + ": " + (tileEntity.gasTank.getGas() != null ? tileEntity.gasTank.getGas().getGas().getLocalizedName() : MekanismUtils.localize("gui.none")), 45, 49, 0x404040);
fontRendererObj.drawString(MekanismUtils.localize("container.inventory"), 8, ySize - 96 + 2, 0x404040);
String name = tileEntity.dumping ? MekanismUtils.localize("gui.dumping") + "..." : MekanismUtils.localize("gui.idle");
fontRendererObj.drawString(name, 156-fontRendererObj.getStringWidth(name), 73, 0x404040);
String name = chooseByMode(tileEntity.dumping, MekanismUtils.localize("gui.idle"), MekanismUtils.localize("gui.dumping"), MekanismUtils.localize("gui.dumping_excess"));
fontRendererObj.drawString(name, 156 - fontRendererObj.getStringWidth(name), 73, 0x404040);
super.drawGuiContainerForegroundLayer(mouseX, mouseY);
}
@Override
protected void drawGuiContainerBackgroundLayer(float partialTick, int mouseX, int mouseY)
{
@ -59,7 +58,7 @@ public class GuiGasTank extends GuiMekanism
int guiHeight = (height - ySize) / 2;
drawTexturedModalRect(guiWidth, guiHeight, 0, 0, xSize, ySize);
int displayInt = tileEntity.dumping ? 18 : 10;
int displayInt = chooseByMode(tileEntity.dumping, 10, 18, 26);
drawTexturedModalRect(guiWidth + 160, guiHeight + 73, 176, displayInt, 8, 8);
if(tileEntity.gasTank.getGas() != null)
@ -86,4 +85,21 @@ public class GuiGasTank extends GuiMekanism
SoundHandler.playSound("gui.button.press");
}
}
private <T> T chooseByMode(TileEntityGasTank.Mode dumping, T idleOption, T dumpingOption, T dumpingExcessOption)
{
if(dumping.equals(TileEntityGasTank.Mode.IDLE))
{
return idleOption;
}
if(dumping.equals(TileEntityGasTank.Mode.DUMPING))
{
return dumpingOption;
}
if(dumping.equals(TileEntityGasTank.Mode.DUMPING_EXCESS))
{
return dumpingExcessOption;
}
return idleOption; //should not happen;
}
}

View file

@ -1,5 +1,7 @@
package mekanism.client.gui;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import mekanism.client.sound.SoundHandler;
import mekanism.common.Mekanism;
import mekanism.common.item.ItemPortableTeleporter;
@ -7,14 +9,10 @@ import mekanism.common.network.PacketDigitUpdate.DigitUpdateMessage;
import mekanism.common.network.PacketPortableTeleport.PortableTeleportMessage;
import mekanism.common.util.MekanismUtils;
import mekanism.common.util.MekanismUtils.ResourceType;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import org.lwjgl.opengl.GL11;
@SideOnly(Side.CLIENT)
@ -49,23 +47,23 @@ public class GuiPortableTeleporter extends GuiScreen
mc.renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.GUI, "GuiPortableTeleporter.png"));
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
int guiWidth = (width - xSize) / 2;
int guiHeight = (height - ySize) / 2;
int guiWidth = (width-xSize)/2;
int guiHeight = (height-ySize)/2;
drawTexturedModalRect(guiWidth, guiHeight, 0, 0, xSize, ySize);
int displayInt;
displayInt = getYAxisForNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 0));
drawTexturedModalRect(guiWidth + 23, guiHeight + 44, 176, displayInt, 13, 13);
drawTexturedModalRect(guiWidth+23, guiHeight+44, 176, displayInt, 13, 13);
displayInt = getYAxisForNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 1));
drawTexturedModalRect(guiWidth + 62, guiHeight + 44, 176, displayInt, 13, 13);
drawTexturedModalRect(guiWidth+62, guiHeight+44, 176, displayInt, 13, 13);
displayInt = getYAxisForNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 2));
drawTexturedModalRect(guiWidth + 101, guiHeight + 44, 176, displayInt, 13, 13);
drawTexturedModalRect(guiWidth+101, guiHeight+44, 176, displayInt, 13, 13);
displayInt = getYAxisForNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 3));
drawTexturedModalRect(guiWidth + 140, guiHeight + 44, 176, displayInt, 13, 13);
drawTexturedModalRect(guiWidth+140, guiHeight+44, 176, displayInt, 13, 13);
ItemPortableTeleporter item = (ItemPortableTeleporter)itemStack.getItem();
@ -93,41 +91,37 @@ public class GuiPortableTeleporter extends GuiScreen
{
super.mouseClicked(mouseX, mouseY, button);
int xAxis = (mouseX - (width - xSize) / 2);
int yAxis = (mouseY - (height - ySize) / 2);
int xAxis = (mouseX-(width-xSize)/2);
int yAxis = (mouseY-(height-ySize)/2);
if(xAxis > 23 && xAxis < 37 && yAxis > 44 && yAxis < 58)
handleButtonClick(xAxis, yAxis, button, 0, 23, 37, 44, 58);
handleButtonClick(xAxis, yAxis, button, 1, 62, 76, 44, 58);
handleButtonClick(xAxis, yAxis, button, 2, 101, 115, 44, 58);
handleButtonClick(xAxis, yAxis, button, 3, 140, 154, 44, 58);
}
private void handleButtonClick(int xAxis, int yAxis, int mouseButton, int clickedButtonIndex, int xmin, int xmax, int ymin, int ymax)
{
if(xAxis > xmin && xAxis < xmax && yAxis > ymin && yAxis < ymax)
{
Mekanism.packetHandler.sendToServer(new DigitUpdateMessage(0, getIncrementedNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 0))));
((ItemPortableTeleporter)itemStack.getItem()).setDigit(itemStack, 0, getIncrementedNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 0)));
SoundHandler.playSound("gui.button.press");
}
else if(xAxis > 62 && xAxis < 76 && yAxis > 44 && yAxis < 58)
{
Mekanism.packetHandler.sendToServer(new DigitUpdateMessage(1, getIncrementedNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 1))));
((ItemPortableTeleporter)itemStack.getItem()).setDigit(itemStack, 1, getIncrementedNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 1)));
SoundHandler.playSound("gui.button.press");
}
else if(xAxis > 101 && xAxis < 115 && yAxis > 44 && yAxis < 58)
{
Mekanism.packetHandler.sendToServer(new DigitUpdateMessage(2, getIncrementedNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 2))));
((ItemPortableTeleporter)itemStack.getItem()).setDigit(itemStack, 2, getIncrementedNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 2)));
SoundHandler.playSound("gui.button.press");
}
else if(xAxis > 140 && xAxis < 154 && yAxis > 44 && yAxis < 58)
{
Mekanism.packetHandler.sendToServer(new DigitUpdateMessage(3, getIncrementedNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 3))));
((ItemPortableTeleporter)itemStack.getItem()).setDigit(itemStack, 3, getIncrementedNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 3)));
int currentDigit = ((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, clickedButtonIndex);
int updatedDigit = getUpdatedNumber(currentDigit, mouseButton);
Mekanism.packetHandler.sendToServer(new DigitUpdateMessage(clickedButtonIndex, updatedDigit));
((ItemPortableTeleporter)itemStack.getItem()).setDigit(itemStack, clickedButtonIndex, updatedDigit);
SoundHandler.playSound("gui.button.press");
}
}
public int getIncrementedNumber(int i)
public int getUpdatedNumber(int i, int mouseButton)
{
if(i < 9) i++;
else if(i == 9) i=0;
return i;
if(mouseButton == 1) //right click
{
return (i-1+10)%10; //add 10 to ensure postive result
}
else
{
return (i+1)%10;
}
}
public int getYAxisForNumber(int i)

View file

@ -2,6 +2,8 @@ package mekanism.client.gui;
import java.util.ArrayList;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import mekanism.api.Coord4D;
import mekanism.client.gui.GuiSlot.SlotOverlay;
import mekanism.client.gui.GuiSlot.SlotType;
@ -12,11 +14,7 @@ import mekanism.common.network.PacketTileEntity.TileEntityMessage;
import mekanism.common.tile.TileEntityTeleporter;
import mekanism.common.util.MekanismUtils;
import mekanism.common.util.MekanismUtils.ResourceType;
import net.minecraft.entity.player.InventoryPlayer;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import org.lwjgl.opengl.GL11;
@SideOnly(Side.CLIENT)
@ -36,11 +34,11 @@ public class GuiTeleporter extends GuiMekanism
@Override
protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY)
{
int xAxis = (mouseX - (width - xSize) / 2);
int yAxis = (mouseY - (height - ySize) / 2);
int xAxis = (mouseX-(width-xSize)/2);
int yAxis = (mouseY-(height-ySize)/2);
fontRendererObj.drawString(tileEntity.getInventoryName(), 45, 6, 0x404040);
fontRendererObj.drawString(MekanismUtils.localize("container.inventory"), 8, (ySize - 96) + 2, 0x404040);
fontRendererObj.drawString(MekanismUtils.localize("container.inventory"), 8, (ySize-96)+2, 0x404040);
fontRendererObj.drawString(tileEntity.getStatusDisplay(), 66, 19, 0x00CD00);
if(xAxis >= 165 && xAxis <= 169 && yAxis >= 17 && yAxis <= 69)
@ -56,47 +54,71 @@ public class GuiTeleporter extends GuiMekanism
{
super.mouseClicked(x, y, button);
int xAxis = (x - (width - xSize) / 2);
int yAxis = (y - (height - ySize) / 2);
int xAxis = (x-(width-xSize)/2);
int yAxis = (y-(height-ySize)/2);
ArrayList data = new ArrayList();
handleButtonClick(xAxis, yAxis, button, 23, 37, 44, 58, 0);
handleButtonClick(xAxis, yAxis, button, 62, 76, 44, 58, 1);
handleButtonClick(xAxis, yAxis, button, 101, 115, 44, 58, 2);
handleButtonClick(xAxis, yAxis, button, 140, 154, 44, 58, 3);
}
if(xAxis > 23 && xAxis < 37 && yAxis > 44 && yAxis < 58)
private void handleButtonClick(int xAxis, int yAxis, int mouseButton, int xmin, int xmax, int ymin, int ymax, int buttonIndex)
{
if(xAxis > xmin && xAxis < xmax && yAxis > ymin && yAxis < ymax)
{
data.add(0);
data.add(getIncrementedNumber(tileEntity.code.digitOne));
ArrayList data = new ArrayList();
int incrementedNumber = getUpdatedNumber(getButtonValue(buttonIndex), mouseButton);
data.add(buttonIndex);
data.add(incrementedNumber);
Mekanism.packetHandler.sendToServer(new TileEntityMessage(Coord4D.get(tileEntity), data));
tileEntity.code.digitOne = getIncrementedNumber(tileEntity.code.digitOne);
SoundHandler.playSound("gui.button.press");
setButton(buttonIndex, incrementedNumber);
SoundHandler.playSound("gui.button.press");
}
else if(xAxis > 62 && xAxis < 76 && yAxis > 44 && yAxis < 58)
{
data.add(1);
data.add(getIncrementedNumber(tileEntity.code.digitTwo));
}
Mekanism.packetHandler.sendToServer(new TileEntityMessage(Coord4D.get(tileEntity), data));
tileEntity.code.digitTwo = getIncrementedNumber(tileEntity.code.digitTwo);
SoundHandler.playSound("gui.button.press");
}
else if(xAxis > 101 && xAxis < 115 && yAxis > 44 && yAxis < 58)
public void setButton(int index, int number)
{
if(index == 0)
{
data.add(2);
data.add(getIncrementedNumber(tileEntity.code.digitThree));
Mekanism.packetHandler.sendToServer(new TileEntityMessage(Coord4D.get(tileEntity), data));
tileEntity.code.digitThree = getIncrementedNumber(tileEntity.code.digitThree);
SoundHandler.playSound("gui.button.press");
tileEntity.code.digitOne = number;
}
else if(xAxis > 140 && xAxis < 154 && yAxis > 44 && yAxis < 58)
if(index == 1)
{
data.add(3);
data.add(getIncrementedNumber(tileEntity.code.digitFour));
Mekanism.packetHandler.sendToServer(new TileEntityMessage(Coord4D.get(tileEntity), data));
tileEntity.code.digitFour = getIncrementedNumber(tileEntity.code.digitFour);
SoundHandler.playSound("gui.button.press");
tileEntity.code.digitTwo = number;
}
if(index == 2)
{
tileEntity.code.digitThree = number;
}
if(index == 3)
{
tileEntity.code.digitFour = number;
}
}
public int getButtonValue(int index)
{
if(index == 0)
{
return tileEntity.code.digitOne;
}
if(index == 1)
{
return tileEntity.code.digitTwo;
}
if(index == 2)
{
return tileEntity.code.digitThree;
}
if(index == 3)
{
return tileEntity.code.digitFour;
}
return 0;//should never happen
}
@Override
@ -104,41 +126,39 @@ public class GuiTeleporter extends GuiMekanism
{
mc.renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.GUI, "GuiTeleporter.png"));
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
int guiWidth = (width - xSize) / 2;
int guiHeight = (height - ySize) / 2;
int guiWidth = (width-xSize)/2;
int guiHeight = (height-ySize)/2;
drawTexturedModalRect(guiWidth, guiHeight, 0, 0, xSize, ySize);
int displayInt;
displayInt = tileEntity.getScaledEnergyLevel(52);
drawTexturedModalRect(guiWidth + 165, guiHeight + 17 + 52 - displayInt, 176 + 13, 52 - displayInt, 4, displayInt);
drawTexturedModalRect(guiWidth+165, guiHeight+17+52-displayInt, 176+13, 52-displayInt, 4, displayInt);
displayInt = getYAxisForNumber(tileEntity.code.digitOne);
drawTexturedModalRect(guiWidth + 23, guiHeight + 44, 176, displayInt, 13, 13);
drawTexturedModalRect(guiWidth+23, guiHeight+44, 176, displayInt, 13, 13);
displayInt = getYAxisForNumber(tileEntity.code.digitTwo);
drawTexturedModalRect(guiWidth + 62, guiHeight + 44, 176, displayInt, 13, 13);
drawTexturedModalRect(guiWidth+62, guiHeight+44, 176, displayInt, 13, 13);
displayInt = getYAxisForNumber(tileEntity.code.digitThree);
drawTexturedModalRect(guiWidth + 101, guiHeight + 44, 176, displayInt, 13, 13);
drawTexturedModalRect(guiWidth+101, guiHeight+44, 176, displayInt, 13, 13);
displayInt = getYAxisForNumber(tileEntity.code.digitFour);
drawTexturedModalRect(guiWidth + 140, guiHeight + 44, 176, displayInt, 13, 13);
drawTexturedModalRect(guiWidth+140, guiHeight+44, 176, displayInt, 13, 13);
super.drawGuiContainerBackgroundLayer(partialTick, mouseX, mouseY);
}
public int getIncrementedNumber(int i)
public int getUpdatedNumber(int i, int mouseButton)
{
if(i < 9)
if(mouseButton == 1) //right click
{
i++;
return (i-1+10)%10; //add 10 to ensure postive result
}
else if(i == 9)
else
{
i = 0;
return (i+1)%10;
}
return i;
}
public int getYAxisForNumber(int i)

View file

@ -210,7 +210,7 @@ public class CommonProxy
general.TO_IC2 = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "EUToJoules", .1D).getDouble(.1D);
general.FROM_BC = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "JoulesToMJ", 25D).getDouble(25D);
general.TO_BC = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "MJToJoules", .04D).getDouble(.04D);
general.FROM_H2 = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "HydrogenEnergyDensity", 200D, "THIS DETERMINES ELECTROLYTIC SEPARATOR USAGE").getDouble(200D);
general.FROM_H2 = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "HydrogenEnergyDensity", 200D, "Determines Electrolytic Separator usage").getDouble(200D);
general.ENERGY_PER_REDSTONE = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "EnergyPerRedstone", 10000D).getDouble(10000D);
general.VOICE_PORT = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "VoicePort", 36123, null, 1, 65535).getInt();
//If this is less than 1, upgrades make machines worse. If less than 0, I don't even know.
@ -266,6 +266,7 @@ public class CommonProxy
usage.pressurizedReactionBaseUsage = Mekanism.configuration.get("usage", "PressurizedReactionBaseUsage", 5D).getDouble(5D);
usage.fluidicPlenisherUsage = Mekanism.configuration.get("usage", "FluidicPlenisherUsage", 100D).getDouble(100D);
usage.laserUsage = Mekanism.configuration.get("usage", "LaserUsage", 5000D).getDouble(5000D);
usage.salinationPlantWaterUsage = Mekanism.configuration.get("usage", "SalinationPlantSpeed", 40.0, "Millibuckets of water turned into brine by the plant per tick", 1.0, 9000.0).getDouble();
if(Mekanism.configuration.hasChanged())
{

View file

@ -219,6 +219,19 @@ public class BlockGasTank extends BlockContainer
return itemStack;
}
@Override
public boolean hasComparatorInputOverride()
{
return true;
}
@Override
public int getComparatorInputOverride(World world, int x, int y, int z, int par5)
{
TileEntityGasTank tileEntity = (TileEntityGasTank)world.getTileEntity(x, y, z);
return tileEntity.getRedstoneLevel();
}
@Override
public ForgeDirection[] getValidRotations(World world, int x, int y, int z)
{

View file

@ -132,7 +132,7 @@ public class TransporterManager
testInv[i] = toInsert;
return;
}
else if(inSlot.isItemEqual(toInsert) && inSlot.stackSize < inSlot.getMaxStackSize())
else if(InventoryUtils.areItemsStackable(toInsert, inSlot) && inSlot.stackSize < inSlot.getMaxStackSize())
{
if(inSlot.stackSize + toInsert.stackSize <= inSlot.getMaxStackSize())
{
@ -188,7 +188,7 @@ public class TransporterManager
testInv[slotID] = toInsert;
return;
}
else if(inSlot.isItemEqual(toInsert) && inSlot.stackSize < inSlot.getMaxStackSize())
else if(InventoryUtils.areItemsStackable(toInsert, inSlot) && inSlot.stackSize < inSlot.getMaxStackSize())
{
if(inSlot.stackSize + toInsert.stackSize <= inSlot.getMaxStackSize())
{
@ -288,7 +288,7 @@ public class TransporterManager
{
return null;
}
else if(inSlot.isItemEqual(toInsert) && inSlot.stackSize < inSlot.getMaxStackSize())
else if(InventoryUtils.areItemsStackable(toInsert, inSlot) && inSlot.stackSize < inSlot.getMaxStackSize())
{
if(inSlot.stackSize + toInsert.stackSize <= inSlot.getMaxStackSize())
{
@ -326,7 +326,7 @@ public class TransporterManager
{
return null;
}
else if(inSlot.isItemEqual(toInsert) && inSlot.stackSize < inSlot.getMaxStackSize())
else if(InventoryUtils.areItemsStackable(toInsert, inSlot) && inSlot.stackSize < inSlot.getMaxStackSize())
{
if(inSlot.stackSize + toInsert.stackSize <= inSlot.getMaxStackSize())
{

View file

@ -1,24 +1,22 @@
package mekanism.common.content.transporter;
import io.netty.buffer.ByteBuf;
import java.util.ArrayList;
import java.util.List;
import mekanism.api.Coord4D;
import mekanism.api.EnumColor;
import mekanism.common.PacketHandler;
import mekanism.common.base.ILogisticalTransporter;
import mekanism.common.content.transporter.TransporterPathfinder.Destination;
import mekanism.common.tile.TileEntityLogisticalSorter;
import mekanism.common.util.MekanismUtils;
import mekanism.common.util.TransporterUtils;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection;
import io.netty.buffer.ByteBuf;
public class TransporterStack
{
public ItemStack itemStack;
@ -66,9 +64,7 @@ public class TransporterStack
getPrev(tileEntity).write(data);
data.add(MekanismUtils.getID(itemStack));
data.add(itemStack.stackSize);
data.add(itemStack.getItemDamage());
data.add(itemStack);
}
public void read(ByteBuf dataStream)
@ -94,7 +90,7 @@ public class TransporterStack
clientPrev = Coord4D.read(dataStream);
itemStack = new ItemStack(Item.getItemById(dataStream.readInt()), dataStream.readInt(), dataStream.readInt());
itemStack = PacketHandler.readStack(dataStream);
}
public void write(NBTTagCompound nbtTags)

View file

@ -69,6 +69,7 @@ public class PacketConfigSync implements IMessageHandler<ConfigSyncMessage, IMes
dataStream.writeDouble(usage.chemicalCrystallizerUsage);
dataStream.writeDouble(usage.seismicVibratorUsage);
dataStream.writeDouble(usage.fluidicPlenisherUsage);
dataStream.writeDouble(usage.salinationPlantWaterUsage);
try {
for(IModule module : Mekanism.modulesLoaded)
@ -127,6 +128,7 @@ public class PacketConfigSync implements IMessageHandler<ConfigSyncMessage, IMes
usage.chemicalCrystallizerUsage = dataStream.readDouble();
usage.seismicVibratorUsage = dataStream.readDouble();
usage.fluidicPlenisherUsage = dataStream.readDouble();
usage.salinationPlantWaterUsage = dataStream.readDouble();
try {
for(IModule module : Mekanism.modulesLoaded)

View file

@ -2,6 +2,7 @@ package mekanism.common.tile;
import java.util.ArrayList;
import io.netty.buffer.ByteBuf;
import mekanism.api.Coord4D;
import mekanism.api.gas.Gas;
import mekanism.api.gas.GasRegistry;
@ -21,12 +22,20 @@ import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MathHelper;
import net.minecraftforge.common.util.ForgeDirection;
import io.netty.buffer.ByteBuf;
public class TileEntityGasTank extends TileEntityContainerBlock implements IGasHandler, ITubeConnection, IRedstoneControl
{
public enum Mode
{
IDLE,
DUMPING,
DUMPING_EXCESS
}
/** The type of gas stored in this tank. */
public GasTank gasTank = new GasTank(MAX_GAS);
@ -35,7 +44,9 @@ public class TileEntityGasTank extends TileEntityContainerBlock implements IGasH
/** How fast this tank can output gas. */
public int output = 256;
public boolean dumping;
public Mode dumping;
public int currentGasAmount;
/** This machine's current RedstoneControl type. */
public RedstoneControl controlType;
@ -44,6 +55,7 @@ public class TileEntityGasTank extends TileEntityContainerBlock implements IGasH
{
super("GasTank");
inventory = new ItemStack[2];
dumping = Mode.IDLE;
controlType = RedstoneControl.DISABLED;
}
@ -75,10 +87,26 @@ public class TileEntityGasTank extends TileEntityContainerBlock implements IGasH
}
}
if(!worldObj.isRemote && dumping)
if(!worldObj.isRemote && dumping.equals(Mode.DUMPING))
{
gasTank.draw(8, true);
}
if(!worldObj.isRemote && dumping.equals(Mode.DUMPING_EXCESS) && gasTank.getNeeded() < output)
{
gasTank.draw(output, true);
}
if(!worldObj.isRemote)
{
int newGasAmount = gasTank.getStored();
if(newGasAmount != this.currentGasAmount)
{
markDirty();
this.currentGasAmount = newGasAmount;
}
}
}
@Override
@ -91,7 +119,7 @@ public class TileEntityGasTank extends TileEntityContainerBlock implements IGasH
else if(slotID == 0)
{
return (itemstack.getItem() instanceof IGasItem && ((IGasItem)itemstack.getItem()).getGas(itemstack) != null &&
((IGasItem)itemstack.getItem()).getGas(itemstack).amount == ((IGasItem)itemstack.getItem()).getMaxGas(itemstack));
((IGasItem)itemstack.getItem()).getGas(itemstack).amount == ((IGasItem)itemstack.getItem()).getMaxGas(itemstack));
}
return false;
@ -115,7 +143,7 @@ public class TileEntityGasTank extends TileEntityContainerBlock implements IGasH
@Override
public int[] getAccessibleSlotsFromSide(int side)
{
return side == 1 ? new int[] {0} : new int[] {1};
return side == 1 ? new int[]{0} : new int[]{1};
}
@Override
@ -156,7 +184,8 @@ public class TileEntityGasTank extends TileEntityContainerBlock implements IGasH
if(type == 0)
{
dumping = !dumping;
int index = (dumping.ordinal() + 1)%dumping.values().length;
dumping = Mode.values()[index];
}
for(EntityPlayer player : playersUsing)
@ -173,11 +202,12 @@ public class TileEntityGasTank extends TileEntityContainerBlock implements IGasH
{
gasTank.setGas(new GasStack(GasRegistry.getGas(dataStream.readInt()), dataStream.readInt()));
}
else {
else
{
gasTank.setGas(null);
}
dumping = dataStream.readBoolean();
dumping = Mode.values()[dataStream.readInt()];
controlType = RedstoneControl.values()[dataStream.readInt()];
MekanismUtils.updateBlock(worldObj, xCoord, yCoord, zCoord);
@ -189,7 +219,22 @@ public class TileEntityGasTank extends TileEntityContainerBlock implements IGasH
super.readFromNBT(nbtTags);
gasTank.read(nbtTags.getCompoundTag("gasTank"));
dumping = nbtTags.getBoolean("dumping");
if(nbtTags.hasKey("dumpingMode"))
{
dumping = Mode.valueOf(nbtTags.getString("dumpingMode"));
}
else //For backwards compatibility
{
boolean dumpingBool = nbtTags.getBoolean("dumping");
if(dumpingBool)
{
dumping = Mode.DUMPING;
}
else
{
dumping = Mode.IDLE;
}
}
controlType = RedstoneControl.values()[nbtTags.getInteger("controlType")];
}
@ -199,7 +244,7 @@ public class TileEntityGasTank extends TileEntityContainerBlock implements IGasH
super.writeToNBT(nbtTags);
nbtTags.setTag("gasTank", gasTank.write(new NBTTagCompound()));
nbtTags.setBoolean("dumping", dumping);
nbtTags.setString("dumpingMode", dumping.name());
nbtTags.setInteger("controlType", controlType.ordinal());
}
@ -214,11 +259,12 @@ public class TileEntityGasTank extends TileEntityContainerBlock implements IGasH
data.add(gasTank.getGas().getGas().getID());
data.add(gasTank.getStored());
}
else {
else
{
data.add(false);
}
data.add(dumping);
data.add(dumping.ordinal());
data.add(controlType.ordinal());
return data;
@ -236,6 +282,15 @@ public class TileEntityGasTank extends TileEntityContainerBlock implements IGasH
return true;
}
public int getRedstoneLevel()
{
int stored = gasTank.getStored();
if(stored == 0) return 0;
return MathHelper.floor_float((float)stored / (float)MAX_GAS * 14.0f + 1.0f);
}
@Override
public RedstoneControl getControlType()
{

View file

@ -1,18 +1,20 @@
package mekanism.common.tile;
import io.netty.buffer.ByteBuf;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
import mekanism.api.Coord4D;
import mekanism.api.ISalinationSolar;
import mekanism.api.MekanismConfig.usage;
import mekanism.api.Range4D;
import mekanism.common.Mekanism;
import mekanism.common.base.IActiveState;
import mekanism.common.content.tank.TankUpdateProtocol;
import mekanism.common.network.PacketTileEntity.TileEntityMessage;
import mekanism.common.util.MekanismUtils;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
@ -26,14 +28,11 @@ import net.minecraftforge.fluids.FluidTank;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
public class TileEntitySalinationController extends TileEntitySalinationBlock implements IActiveState
{
public static final int MAX_BRINE = 10000;
public static final int MAX_SOLARS = 4;
public static final int WARMUP = 10000;
public static final double WATER_USAGE = 40;
public FluidTank waterTank = new FluidTank(0);
public FluidTank brineTank = new FluidTank(MAX_BRINE);
@ -92,14 +91,14 @@ public class TileEntitySalinationController extends TileEntitySalinationBlock im
int brineNeeded = brineTank.getCapacity()-brineTank.getFluidAmount();
int waterStored = waterTank.getFluidAmount();
partialWater += Math.min(waterTank.getFluidAmount(), getTemperature()*WATER_USAGE);
partialWater += Math.min(waterTank.getFluidAmount(), getTemperature()*usage.salinationPlantWaterUsage);
if(partialWater >= 1)
{
int waterInt = (int)Math.floor(partialWater);
waterTank.drain(waterInt, true);
partialWater %= 1;
partialBrine += ((double)waterInt)/WATER_USAGE;
partialBrine += ((double)waterInt)/usage.salinationPlantWaterUsage;
}
if(partialBrine >= 1)

View file

@ -95,7 +95,7 @@ public final class InventoryUtils
inventory.setInventorySlotContents(i, toInsert);
return null;
}
else if(inSlot.isItemEqual(toInsert) && inSlot.stackSize < inSlot.getMaxStackSize())
else if(areItemsStackable(toInsert, inSlot) && inSlot.stackSize < inSlot.getMaxStackSize())
{
if(inSlot.stackSize + toInsert.stackSize <= inSlot.getMaxStackSize())
{
@ -151,7 +151,7 @@ public final class InventoryUtils
inventory.setInventorySlotContents(slotID, toInsert);
return null;
}
else if(inSlot.isItemEqual(toInsert) && inSlot.stackSize < inSlot.getMaxStackSize())
else if(areItemsStackable(toInsert, inSlot) && inSlot.stackSize < inSlot.getMaxStackSize())
{
if(inSlot.stackSize + toInsert.stackSize <= inSlot.getMaxStackSize())
{
@ -182,7 +182,11 @@ public final class InventoryUtils
return toInsert;
}
public static InvStack takeTopItem(IInventory inventory, int side)
public static boolean areItemsStackable(ItemStack toInsert, ItemStack inSlot) {
return inSlot.isItemEqual(toInsert) && ItemStack.areItemStackTagsEqual(inSlot, toInsert);
}
public static InvStack takeTopItem(IInventory inventory, int side)
{
inventory = checkChestInv(inventory);
@ -394,7 +398,7 @@ public final class InventoryUtils
{
return true;
}
else if(inSlot.isItemEqual(itemStack) && inSlot.stackSize < inSlot.getMaxStackSize())
else if(areItemsStackable(itemStack, inSlot) && inSlot.stackSize < inSlot.getMaxStackSize())
{
if(inSlot.stackSize + itemStack.stackSize <= inSlot.getMaxStackSize())
{
@ -440,7 +444,7 @@ public final class InventoryUtils
{
return true;
}
else if(inSlot.isItemEqual(itemStack) && inSlot.stackSize < inSlot.getMaxStackSize())
else if(areItemsStackable(itemStack, inSlot) && inSlot.stackSize < inSlot.getMaxStackSize())
{
if(inSlot.stackSize + itemStack.stackSize <= inSlot.getMaxStackSize())
{

View file

@ -293,6 +293,9 @@ public class TileEntityGasGenerator extends TileEntityGenerator implements IGasH
@Override
public void readSustainedData(ItemStack itemStack)
{
fuelTank.read(itemStack.stackTagCompound.getCompoundTag("fuelTank"));
if(itemStack.stackTagCompound.hasKey("fuelTank"))
{
fuelTank.read(itemStack.stackTagCompound.getCompoundTag("fuelTank"));
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View file

@ -338,6 +338,7 @@ gui.newFilter=Neuer Filter
gui.energy=Energie
gui.gas=Gas
gui.dumping=Ausleeren
gui.dumping_excess=Ausleeren Über
gui.modID=Mod-ID
gui.key=Key
gui.id=ID

View file

@ -353,6 +353,7 @@ gui.newFilter=New Filter
gui.energy=Energy
gui.gas=Gas
gui.dumping=Dumping
gui.dumping_excess=Dumping Excess
gui.modID=Mod ID
gui.key=Key
gui.id=ID

View file

@ -0,0 +1,735 @@
//********//
//MEKANISM//
//********//
//Items
tile.ObsidianTNT.name=옵시디언 TNT
item.EnrichedAlloy.name=강화 합금
item.ReinforcedAlloy.name=강화된 합금
item.AtomicAlloy.name=Atomic 합금
item.EnergyTablet.name=Energy Tablet
item.SpeedUpgrade.name=Speed Upgrade
item.EnergyUpgrade.name=Energy Upgrade
item.Robit.name=Robit
item.AtomicDisassembler.name=Atomic Disassembler
item.ElectricBow.name=전기 Bow
item.EnrichedIron.name=Enriched 철
item.CompressedCarbon.name=압축된 Carbon
item.CompressedRedstone.name=압축된 Redstone
item.CompressedDiamond.name=압축된 다이아몬드
item.CompressedObsidian.name=압축된 옵시디언
item.PortableTeleporter.name=Portable Teleporter
item.TeleportationCore.name=Teleportation Core
item.Configurator.name=Configurator
item.NetworkReader.name=Network Reader
item.WalkieTalkie.name=Walkie-Talkie
item.Jetpack.name=제트팩
item.ScubaTank.name=Scuba 탱크
item.GasMask.name=가스 마스크
item.Dictionary.name=Dictionary
item.ElectrolyticCore.name=Electrolytic Core
item.Sawdust.name=Sawdust
item.Salt.name=Salt
item.BrineBucket.name=Brine Bucket
item.FreeRunners.name=Free Runners
item.ArmoredJetpack.name=Armored Jetpack
item.FilterCard.name=Filter Card
item.SeismicReader.name=Seismic Reader
item.HDPEPellet.name=HDPE Pellet
item.HDPERod.name=HDPE 길
item.HDPESheet.name=HDPE Sheet
item.PlaStick.name=PlaStick
item.Substrate.name=Substrate
//Control Circuits
item.BasicControlCircuit.name=기본 조작 회로
item.AdvancedControlCircuit.name=고급 조작 회로
item.EliteControlCircuit.name=엘리트 조작 회로
item.UltimateControlCircuit.name=울티베이트 조작 회로
//Gas Tank
tile.GasTank.GasTank.name=Gas 탱크
//Cardboard Box
tile.CardboardBox.name=Cardboard Box
//Bounding Block
tile.BoundingBlock.name=Bounding 블럭
//Salt
tile.SaltBlock.name=소금 블럭
//Basic Block
tile.BasicBlock.OsmiumBlock.name=오스뮴 블럭
tile.BasicBlock.BronzeBlock.name=청동 블럭
tile.BasicBlock.RefinedObsidian.name=강화된 옵시디언
tile.BasicBlock.CharcoalBlock.name=목탄 블럭
tile.BasicBlock.RefinedGlowstone.name=강화된 발광석
tile.BasicBlock.SteelBlock.name=강철 블럭
tile.BasicBlock.Bin.name=Bin
tile.BasicBlock.TeleporterFrame.name=Teleporter Frame
tile.BasicBlock.SteelCasing.name=강철 Casing
tile.BasicBlock.DynamicTank.name=다이나믹 탱크
tile.BasicBlock.DynamicGlass.name=다이나믹 유리
tile.BasicBlock.DynamicValve.name=다이나믹 밸브
tile.BasicBlock.CopperBlock.name=구리 블럭
tile.BasicBlock.TinBlock.name=주석 블럭
tile.BasicBlock.SalinationController.name=Salination 제어기
tile.BasicBlock.SalinationValve.name=Salination 밸브
//Basic Block 2 (second ID iteration)
tile.BasicBlock2.SalinationBlock.name=Salination 블럭
//Machine Block
tile.MachineBlock.EnrichmentChamber.name=Enrichment Chamber
tile.MachineBlock.OsmiumCompressor.name=오스뮴 Compressor
tile.MachineBlock.Combiner.name=Combiner
tile.MachineBlock.Crusher.name=Crusher
tile.MachineBlock.BasicFactory.name=기본 팩토리
tile.MachineBlock.AdvancedFactory.name=고급 팩토리
tile.MachineBlock.EliteFactory.name=엘리트 팩토리
tile.MachineBlock.MetallurgicInfuser.name=Metallurgic Infuser
tile.MachineBlock.PurificationChamber.name=Purification Chamber
tile.MachineBlock.EnergizedSmelter.name=Energized Smelter
tile.MachineBlock.Teleporter.name=텔레포터
tile.MachineBlock.ElectricPump.name=전기 펌프
tile.MachineBlock.ElectricChest.name=전기 상자
tile.MachineBlock.Chargepad.name=차지패드
tile.MachineBlock.LogisticalSorter.name=논리 정렬기
tile.MachineBlock.DigitalMiner.name=디지털 마이너
//Machine Block 2 (second ID iteration)
tile.MachineBlock2.RotaryCondensentrator.name=Rotary Condensentrator
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
tile.MachineBlock2.PrecisionSawmill.name=Precision Sawmill
tile.MachineBlock2.ChemicalDissolutionChamber.name=Chemical Dissolution Chamber
tile.MachineBlock2.ChemicalWasher.name=Chemical Washer
tile.MachineBlock2.ChemicalCrystallizer.name=Chemical Crystallizer
tile.MachineBlock2.SeismicVibrator.name=Seismic Vibrator
tile.MachineBlock2.PressurizedReactionChamber.name=Pressurized Reaction Chamber
tile.MachineBlock2.PressurizedReactionChamber.short.name=PRC
tile.MachineBlock2.PortableTank.name=Portable 탱크
tile.MachineBlock2.FluidicPlenisher.name=Fluidic Plenisher
//Plastic
tile.PlasticBlock.name=플라스틱 블럭
tile.SlickPlasticBlock.name=끈적거리는 플라스틱 블럭
tile.GlowPlasticBlock.name=빛나는 플라스틱 블럭
tile.ReinforcedPlasticBlock.name=강화된 플라스틱 블럭
tile.RoadPlasticBlock.name=플라스틱 길
tile.PlasticFence.name=플라스틱 배리어
//Infuse types
infuse.carbon=탄소
infuse.tin=주석
infuse.diamond=다이아몬드
infuse.redstone=레드스톤
infuse.fungi=균류
infuse.obsidian=옵시디언
//Ore Block
tile.OreBlock.OsmiumOre.name=오스뮴 광석
tile.OreBlock.CopperOre.name=구리 광석
tile.OreBlock.TinOre.name=주석 광석
//Transmitters
item.MultipartTransmitter.PressurizedTube.name=가압 튜브
item.MultipartTransmitter.BasicUniversalCable.name=기본 범용 케이블
item.MultipartTransmitter.AdvancedUniversalCable.name=고급 범용 케이블
item.MultipartTransmitter.EliteUniversalCable.name=엘리트 범용 케이블
item.MultipartTransmitter.UltimateUniversalCable.name=궁극의 범용 케이블
item.MultipartTransmitter.BasicMechanicalPipe.name=기본 기계적 파이프
item.MultipartTransmitter.AdvancedMechanicalPipe.name=고급 기계적 파이프
item.MultipartTransmitter.EliteMechanicalPipe.name=엘리트 기계적 파이프
item.MultipartTransmitter.UltimateMechanicalPipe.name=궁극의 기계적 파이프
item.MultipartTransmitter.LogisticalTransporter.name=논리적 수송기
item.MultipartTransmitter.RestrictiveTransporter.name=제한적 수송기
item.MultipartTransmitter.DiversionTransporter.name=우회적 수송기
//Glow Panel
item.GlowPanel.name=발광 패널
//Energy Cubes
tile.EnergyCube.Basic.name=기본 에너지 큐브
tile.EnergyCube.Advanced.name=고급 에너지 큐브
tile.EnergyCube.Elite.name=엘리트 에너지 큐브
tile.EnergyCube.Ultimate.name=궁극의 에너지 큐브
//가루
item.ironDust.name=철 가루
item.goldDust.name=금 가루
item.osmiumDust.name=오스뮴 가루
item.obsidianDust.name=강화된 옵시디언 가루
item.diamondDust.name=다이아몬드 가루
item.steelDust.name=강철 가루
item.copperDust.name=구리 가루
item.tinDust.name=주석 가루
item.silverDust.name=은 가루
item.leadDust.name=납 가루
item.sulfurDust.name=유황 가루
//Clumps
item.ironClump.name=철 덩어리
item.goldClump.name=금 덩어리
item.osmiumClump.name=오스뮴 덩어리
item.copperClump.name=구리 덩어리
item.tinClump.name=주석 덩어리
item.silverClump.name=은 덩어리
item.obsidianClump.name=옵시디언 덩어리
item.leadClump.name=납 덩어리
//Shards
item.ironShard.name=철 조각
item.goldShard.name=금 조각
item.osmiumShard.name=오스뮴 조각
item.copperShard.name=구리 조각
item.tinShard.name=주석 조각
item.silverShard.name=은 조각
item.obsidianShard.name=옵시디언 조각
item.leadShard.name=납 조각
//Crystals
item.ironCrystal.name=철 수정
item.goldCrystal.name=금 수정
item.osmiumCrystal.name=오스뮴 수정
item.copperCrystal.name=구리 수정
item.tinCrystal.name=주석 수정
item.silverCrystal.name=은 수정
item.obsidianCrystal.name=옵시디언 수정
item.leadCrystal.name=납 수정
//Dirty Dust
item.dirtyIronDust.name=더러운 철 가루
item.dirtyGoldDust.name=더러운 금 가루
item.dirtyOsmiumDust.name=더러운 오스뮴 가루
item.dirtyCopperDust.name=더러운 구리 가루
item.dirtyTinDust.name=더러운 주석 가루
item.dirtySilverDust.name=더러운 은 가루
item.dirtyObsidianDust.name=더러운 옵시디언 가루
item.dirtyLeadDust.name=더러운 납 가루
//Ingots
item.obsidianIngot.name=옵시디언 주괴
item.osmiumIngot.name=오스뮴 주괴
item.bronzeIngot.name=청동 주괴
item.glowstoneIngot.name=발광석 주괴
item.steelIngot.name=강철 주괴
item.copperIngot.name=구리 주괴
item.tinIngot.name=주석 주괴
//Gasses
gas.hydrogen=수소
gas.oxygen=산소
gas.water=증류수
gas.chlorine=염소
gas.sulfurDioxideGas=이산화 황
gas.sulfurTrioxideGas=산산화 황
gas.sulfuricAcid=황산
gas.hydrogenChloride=염화 수소
gas.liquidOsmium=액화 오스뮴
gas.liquidStone=액화 돌
gas.ethene=에틸렌
gas.sodium=나트륨
gas.brine=기체 소금물
gas.iron=철 슬러리
gas.gold=금 슬러리
gas.osmium=오스뮴 슬러리
gas.copper=구리 슬러리
gas.tin=주석 슬러리
gas.silver=은 슬러리
gas.obsidian=옵시디언 슬러리
gas.lead=납 슬러리
gas.cleanIron=깨끗한 철 슬러리
gas.cleanGold=깨끗한 금 슬러리
gas.cleanOsmium=깨끗한 오스뮴 슬러리
gas.cleanCopper=깨끗한 구리 슬러리
gas.cleanTin=깨끗한 주석 슬러리
gas.cleanSilver=깨끗한 은 슬러리
gas.cleanObsidian=깨끗한 옵시디언 슬러리
gas.cleanLead=깨끗한 납 슬러리
//BC Fuel Gases
gas.fuel=증류 정제유
gas.oil=증류 석유
//Fluids
fluid.hydrogen=액화 수소
fluid.oxygen=액화 산소
fluid.chlorine=액화 염소
fluid.sulfurDioxideGas=액화 이산화황
fluid.sulfurTrioxideGas=액화 삼산화황
fluid.sulfuricAcid=액화 황산
fluid.hydrogenChloride=액화 염화수소
fluid.brine=소금물
fluid.ethene=액화 에틸렌
fluid.sodium=액화 나트륨
//OreGas names
oregas.iron=철 광석
oregas.gold=금 광석
oregas.osmium=오스뮴 광석
oregas.copper=구리 광석
oregas.tin=주석 광석
oregas.silver=은 광석
oregas.obsidian=옵시디언 광석
oregas.lead=납 광석
//Update handler text
update.consider=Consider updating to version
update.newFeatures=New features
update.visit=Visit
update.toDownload=다운로드 하러가기
update.devBuild=개발버전이 빌드되었습니다
update.outdated=Using outdated version on one or more modules
//Key description text
key.mode=모드 스위치
key.voice=소리
//Config Gui
mekanism.configgui.ctgy.general.tooltip=General settings regarding Mekanism and all its modules
mekanism.configgui.ctgy.usage.tooltip=Settings regarding machinery and their energy usage
//Gui text
gui.removeSpeedUpgrade=Remove speed upgrade
gui.removeEnergyUpgrade=Remove energy upgrade
gui.condensentrating=Condensentrating
gui.decondensentrating=Decondensentrating
gui.power=Power
gui.confirm=Confirm
gui.open=Open
gui.allOK=All OK
gui.none=None
gui.new=New
gui.edit=Edit
gui.save=Save
gui.output=Output
gui.delete=Delete
gui.status=Status
gui.autoEject=Auto-eject
gui.itemstack=ItemStack
gui.oredict=OreDict
gui.material=Material
gui.out=Out
gui.noFluid=No fluid
gui.empty=Empty
gui.volume=Volume
gui.start=Start
gui.stop=Stop
gui.config=Config
gui.teleport=Teleport
gui.eject=Eject
gui.input=Input
gui.slots=Slots
gui.state=State
gui.on=On
gui.off=Off
gui.filters=Filters
gui.idle=Idle
gui.data=Data
gui.newFilter=New Filter
gui.energy=Energy
gui.gas=Gas
gui.dumping=Dumping
gui.dumping_excess=Dumping Excess
gui.modID=Mod ID
gui.key=Key
gui.id=ID
gui.finished=Finished
gui.chemicalInfuser.short=C. Infuser
gui.chemicalDissolutionChamber.short=C. Dissolution Chamber
gui.dictionary.noKey=No key.
gui.configuration=Configuration
gui.configuration.strictInput=Strict Input
gui.rotaryCondensentrator.toggleOperation=Toggle operation
gui.factory.secondaryEnergy=Secondary energy
gui.factory.smelting=Smelting
gui.factory.enriching=Enriching
gui.factory.crushing=Crushing
gui.factory.compressing=Compressing
gui.factory.combining=Combining
gui.factory.purifying=Purifying
gui.factory.injecting=Injecting
gui.factory.autoSort=Auto-sort
gui.seismicReader.short=S. Reader
gui.seismicReader.solids=Solids
gui.seismicReader.fluids=Fluids
gui.seismicReader.reading=Reading
gui.filterSelect.title=Create New Filter
gui.oredictFilter=OreDict Filter
gui.oredictFilter.noKey=No key
gui.oredictFilter.sameKey=Same key
gui.modIDFilter=Mod ID Filter
gui.modIDFilter.noID=No ID
gui.modIDFilter.sameID=Same ID
gui.itemFilter=Item Filter
gui.itemFilter.noItem=No item
gui.itemFilter.details=ItemStack Details
gui.itemFilter.min=Min
gui.itemFilter.max=Max
gui.materialFilter=Material Filter
gui.materialFilter.details=Using material of
gui.portableTeleporter=Portable Teleporter
gui.robit=Robit
entity.Robit.name=Robit
gui.robit.smelting=Robit Smelting
gui.robit.inventory=Robit Inventory
gui.robit.crafting=Robit Crafting
gui.robit.greeting=Hi, I'm
gui.robit.toggleFollow=Toggle 'follow' mode
gui.robit.rename=Rename this Robit
gui.robit.teleport=Teleport back home
gui.robit.togglePickup=Toggle 'drop pickup' mode
gui.robit.following=Following
gui.robit.dropPickup=Drop pickup
gui.robit.owner=Owner
gui.password.setPassword=Set password
gui.password.enterPassword=Enter password
gui.password.fieldsEmpty=Field(s) empty
gui.password.notMatching=Not matching
gui.password.identical=Identical
gui.password.invalid=Invalid
gui.password=Password
gui.logisticalSorter.default=Default
gui.logisticalSorter.auto=Auto
gui.logisticalSorter.roundRobin=Round-robin
gui.electricChest.editPassword=Edit Password
gui.teleporter.notReady=Not ready
gui.teleporter.ready=Ready
gui.teleporter.noFrame=No frame
gui.teleporter.noLink=No link
gui.teleporter.exceeds=Links > 2
gui.teleporter.needsEnergy=Needs energy
gui.digitalMinerConfig=Digital Miner Config
gui.digitalMiner.autoPull=Auto-pull
gui.digitalMiner.replaceBlock=Replace block
gui.digitalMiner.reset=Reset
gui.digitalMiner.silkTouch=Silk touch
gui.digitalMiner.pull=Pull
gui.digitalMiner.silk=Silk
gui.digitalMiner.toMine=To mine
gui.digitalMiner.running=Running
gui.digitalMiner.inverse=Inverse mode
//Recipe names
recipe.mekanismShaped=Shaped
//Item and block tooltip text
tooltip.configurator.configurate=Configurate
tooltip.configurator.empty=비어있음
tooltip.configurator.rotate=Rotate
tooltip.configurator.wrench=렌치
tooltip.configurator.pumpReset=Reset 전기 Pump calculation
tooltip.configurator.toggleDiverter=Diverter mode changed to
tooltip.configurator.toggleColor=Color bumped to
tooltip.configurator.viewColor=Current color
tooltip.configurator.unauth=This chest is locked
tooltip.configurator.noLink=No link
tooltip.configurator.linkMsg=Bound to
tooltip.configurator.dim=dimension
tooltip.configurator.setLink=Set link to block
tooltip.configurator.plenisherReset=Reset Fluidic Plenisher calculation
tooltip.upgrade.speed=속도
tooltip.upgrade.energy=에너지
tooltip.inventory=인벤토리
tooltip.storedEnergy=저장 전력
tooltip.auth=Authenticated
tooltip.locked=잠겨 있음
tooltip.recipeType=레시피 속성
tooltip.hold=Hold
tooltip.forDesc=for a description
tooltip.forDetails=더 자세한 정도
tooltip.fireMode=파이어 모드
tooltip.capacity=Capacity
tooltip.pumpRate=Pump Rate
tooltip.items=아이템
tooltip.blocks=블럭
tooltip.universal=범용
tooltip.fluids=액체
tooltip.gasses=가스
tooltip.capableTrans=Capable of transferring
tooltip.restrictiveDesc=Only used if no other paths available
tooltip.diversionDesc=Controllable by redstone
tooltip.noGas=가스가 저장되어있지 않습니다
tooltip.stored=Stored
tooltip.channel=채널
tooltip.mode=모드
tooltip.efficiency=효율
tooltip.modeToggle=Mode toggled to
tooltip.flowing=Flowing
tooltip.yes=예
tooltip.no=아니오
tooltip.name=Name
tooltip.blockData=블럭 data
tooltip.block=블럭
tooltip.meta=Metadata
tooltip.tile=Tile
tooltip.keysFound=Key(s) found
tooltip.noKey=No key
tooltip.hp=HP
tooltip.configureState=Configure State
tooltip.portableTank.bucketMode=Bucket Mode
tooltip.disassembler.normal=기본
tooltip.disassembler.slow=느림
tooltip.disassembler.fast=빠름
tooltip.disassembler.vein=vein
tooltip.disassembler.off=꺼짐
tooltip.filterCard.got=Retrieved filter data from %s
tooltip.filterCard.set=Injected filter data of type %s
tooltip.filterCard.unequal=Unequal filter data formats
tooltip.filterCard.logisticalSorter=논리적 Sorter
tooltip.filterCard.digitalMiner=Digital Miner
tooltip.balloon=풍선
tooltip.jetpack.regular=Regular
tooltip.jetpack.hover=Hover
tooltip.jetpack.disabled=비활성화
tooltip.seismicReader.needsEnergy=Not enough energy to interpret vibration
tooltip.seismicReader.noVibrations=Unable to discover any vibrations
tooltip.EnrichmentChamber=A simple machine used to enrich ores into !ntwo of their dust counterparts, as well as !nperform many other operations.
tooltip.OsmiumCompressor=A fairly advanced machine used to compress !nosmium into various dusts in order to create !ntheir ingot counterparts.
tooltip.Combiner=A machine used to combine dusts and cobblestone !nto form their ore counterparts.
tooltip.Crusher=A machine used to crush ingots into their dust counterparts, !nas well as perform many other operations.
tooltip.DigitalMiner=A highly-advanced, filter-based, auto-miner !nthat can mine whatever block you tell it to !nwithin a 32 block (max) radius.
tooltip.BasicFactory=The lowest tier of the line of Factories, !nwhich can be used to process multiple !nmachine operations at once.
tooltip.AdvancedFactory=The middle tier of the line of Factories, !nwhich can be used to process multiple !nmachine operations at once.
tooltip.EliteFactory=The highest tier of the line of Factories, !nwhich can be used to process multiple !nmachine operations at once.
tooltip.MetallurgicInfuser=A machine used to infuse various materials !ninto (generally) metals to create metal alloys !nand other compounds.
tooltip.PurificationChamber=An advanced machine capable of processing !nores into three clumps, serving as the initial !nstage of 300% ore processing.
tooltip.EnergizedSmelter=A simple machine that serves as a Mekanism-based !nfurnace that runs off of energy.
tooltip.Teleporter=A machine capable of teleporting players to various !nlocations defined by another teleporter.
tooltip.ElectricPump=An advanced pump capable of pumping !nout an entire lava lake.
tooltip.ElectricChest=A portable, 54-slot chest that uses energy to lock !nitself from others by means of password protection.
tooltip.Chargepad=A universal chargepad that can charge !nany energized item from any mod.
tooltip.LogisticalSorter=A filter-based, advanced sorting machine that !ncan auto-eject specified items out of and into !nadjacent inventories and 논리적 Transporters.
tooltip.RotaryCondensentrator=A machine capable of converting gasses into !ntheir fluid form and vice versa.
tooltip.ChemicalInjectionChamber=An elite machine capable of processing !nores into four shards, serving as the initial !nstage of 400% ore processing.
tooltip.ElectrolyticSeparator=A machine that uses the process of !nelectrolysis to split apart a certain !ngas into two different gasses.
tooltip.PrecisionSawmill=A machine used to process logs and other !nwood-based items more efficiently, as well !nas to obtain sawdust.
tooltip.ChemicalDissolutionChamber=An ultimate machine used to chemically !ndissolve all impurities of an ore, !nleaving an unprocessed slurry behind.
tooltip.ChemicalWasher=An ultimate machine that cleans unprocessed !nslurry and prepares it for crystallization.
tooltip.ChemicalCrystallizer=An ultimate machine used to crystallize !npurified ore slurry into ore crystals.
tooltip.ChemicalOxidizer=A machine capable of oxidizing !nsolid materials into gas phase.
tooltip.ChemicalInfuser=A machine that produces a new !ngas by infusing two others.
tooltip.SeismicVibrator=A machine that uses seismic vibrations to !nprovide information on differing layers !nof the world.
tooltip.PressurizedReactionChamber=An advanced machine that processes a !nsolid, liquid and gaseous mixture and !ncreates both a gaseous and solid product.
tooltip.PortableTank=A handy, portable tank that lets you !ncarry 14 buckets of fluid wherever you !nplease. Also doubles as a bucket!
tooltip.FluidicPlenisher=A machine that is capable of creating entire !nlakes by filling ravines with fluids.
tooltip.HeatGenerator=A generator that uses the heat of lava or !nother burnable resources to produce energy.
tooltip.SolarGenerator=A generator that uses the power !nof the sun to produce energy.
tooltip.GasGenerator=A generator that harnesses the molecular !nvarying gasses to produce energy.
tooltip.BioGenerator=A generator that burns organic materials of !nthe world to produce energy.
tooltip.AdvancedSolarGenerator=An advanced generator that directly !nabsorbs the sun's rays with little loss !nto produce energy.
tooltip.WindTurbine=A generator that uses the strength of the wind !nto produce energy, with greater efficiency !nat higher levels.
tooltip.OsmiumOre=A strong mineral that can be found !nat nearly any height in the world. !nIt is known to have many uses in !nthe construction of machinery.
tooltip.CopperOre=A common, conductive material that !ncan be used in the production of !nwires. Its ability to withstand !nhigh heats also makes it essential !nto advanced machinery.
tooltip.TinOre=A lightweight, yet sturdy, conductive !nmaterial that is found slightly less !ncommonly than 구리.
//Redstone control
control.disabled=비활성화
control.high=높음
control.low=낮음
control.disabled.desc=언제나 실행
control.high.desc=신호가 있으면 실행
control.low.desc=신호가 없는 실행
//Container edit modes
fluidedit.both=양방향
fluidedit.fill=가득
fluidedit.empty=비어있음
//Colors
color.black=검은색
color.darkBlue=짙은 파란색
color.darkGreen=짙은 초록색
color.darkAqua=짙은 아쿠아
color.darkRed=짙은 빨간색
color.purple=보라색
color.orange=주황색
color.grey=회색
color.darkGrey=짙은 회색
color.indigo=인디고
color.brightGreen=밝은 초록색
color.aqua=아쿠아
color.red=빨간색
color.pink=분홍색
color.yellow=노랑색
color.white=하양색
color.brown=갈색
color.brightPink=밝은 분홍
//Dyes
dye.black=검은색
dye.darkBlue=파랑색
dye.brown=갈색
dye.darkGreen=초록색
dye.darkAqua=청록색
dye.darkRed=짙은 빨간색
dye.purple=보라색
dye.orange=주황색
dye.grey=밝은 회색
dye.darkGrey=회색
dye.indigo=밝은 회색
dye.brightGreen=연두색
dye.aqua=아쿠아
dye.red=빨간색
dye.brightPink=분홍색
dye.pink=다홍색
dye.yellow=노랑색
dye.white=하양색
//Creative tab
itemGroup.tabMekanism=메카니즘[Mekanism]
//NEI stuff
nei.chemicalInjectionChamber=C. 주입기
nei.rotaryCondensentrator=R. Condensentrator
//**********//
//GENERATORS//
//**********//
//Items
item.BioFuel.name=바이오연료
item.SolarPanel.name=태양열 패널
//Infuse types
infuse.bio=바이오매스
//Generators
tile.Generator.HeatGenerator.name=지열 발전기
tile.Generator.SolarGenerator.name=태양열 발전기
tile.Generator.GasGenerator.name=가스 발전기
tile.Generator.BioGenerator.name=바이오연료 발전기
tile.Generator.AdvancedSolarGenerator.name=고급 태양열 발전기
tile.Generator.WindTurbine.name=풍차
//Gui text
gui.heatGenerator.fuel=연료
gui.solarGenerator.sun=태양
gui.bioGenerator.bioFuel=바이오연료
gui.electrolyticSeparator.dump=덤프
//*****//
//TOOLS//
//*****//
//Vanilla Paxels
item.WoodPaxel.name=나무 팩셀
item.StonePaxel.name=돌 팩셀
item.IronPaxel.name=철 팩셀
item.DiamondPaxel.name=다이아몬드 팩셀
item.GoldPaxel.name=금 팩셀
//Obsidian
item.ObsidianHelmet.name=옵시디언 헬맷
item.ObsidianChestplate.name=옵시디언 갑옷
item.ObsidianLeggings.name=옵시디언 레깅스
item.ObsidianBoots.name=옵시디언 부츠
item.ObsidianPaxel.name=옵시디언 팩셀
item.ObsidianPickaxe.name=옵시디언 곡괭이
item.ObsidianAxe.name=옵시디언 도끼
item.ObsidianShovel.name=옵시디언 삽
item.ObsidianHoe.name=옵시디언 괭이
item.ObsidianSword.name=옵시디언 검
//Lazuli
item.LazuliHelmet.name=라피스 헬맷
item.LazuliChestplate.name=라피스 갑옷
item.LazuliLeggings.name=라피스 레깅스
item.LazuliBoots.name=라피스 부츠
item.LazuliPaxel.name=라피스 팩셀
item.LazuliPickaxe.name=라피스 곡괭이
item.LazuliAxe.name=라피스 도끼
item.LazuliShovel.name=라피스 삽
item.LazuliHoe.name=라피스 괭이
item.LazuliSword.name=라피스 검
//Osmium
item.OsmiumHelmet.name=오스뮴 헬맷
item.OsmiumChestplate.name=오스뮴 갑옷
item.OsmiumLeggings.name=오스뮴 레깅스
item.OsmiumBoots.name=오스뮴 부츠
item.OsmiumPaxel.name=오스뮴 팩셀
item.OsmiumPickaxe.name=오스뮴 곡괭이
item.OsmiumAxe.name=오스뮴 도끼
item.OsmiumShovel.name=오스뮴 삽
item.OsmiumHoe.name=오스뮴 괭이
item.OsmiumSword.name=오스뮴 검
//청동
item.BronzeHelmet.name=청동 헬맷
item.BronzeChestplate.name=청동 갑옷
item.BronzeLeggings.name=청동 레깅스
item.BronzeBoots.name=청동 부츠
item.BronzePaxel.name=청동 팩셀
item.BronzePickaxe.name=청동 곡괭이
item.BronzeAxe.name=청동 도끼
item.BronzeShovel.name=청동 삽
item.BronzeHoe.name=청동 괭이
item.BronzeSword.name=청동 검
//Glow
item.GlowstoneHelmet.name=발광석 헬맷
item.GlowstoneChestplate.name=발광석 갑옷
item.GlowstoneLeggings.name=발광석 레깅스
item.GlowstoneBoots.name=발광석 부츠
item.GlowstonePaxel.name=발광석 팩셀
item.GlowstonePickaxe.name=발광석 곡괭이
item.GlowstoneAxe.name=발광석 도끼
item.GlowstoneShovel.name=발광석 삽
item.GlowstoneHoe.name=발광석 괭이
item.GlowstoneSword.name=발광석 검
//Steel
item.SteelHelmet.name=강철 헬맷
item.SteelChestplate.name=강철 갑옷
item.SteelLeggings.name=강철 레깅스
item.SteelBoots.name=강철 부츠
item.SteelPaxel.name=강철 팩셀
item.SteelPickaxe.name=강철 곡괭이
item.SteelAxe.name=강철 도끼
item.SteelShovel.name=강철 삽
item.SteelHoe.name=강철 괭이
item.SteelSword.name=강철 검
//Config Gui
mekanism.configgui.ctgy.tools.general.tooltip=일반 설정
mekanism.configgui.ctgy.tools.armor.tooltip=갑옷 툴팁 설정
mekanism.configgui.ctgy.tools.tools.tooltip=도구 툴팁 설정

View file

@ -88,7 +88,7 @@ tile.MachineBlock.Crusher.name=粉碎机
tile.MachineBlock.BasicFactory.name=基础工厂
tile.MachineBlock.AdvancedFactory.name=高级工厂
tile.MachineBlock.EliteFactory.name=精英工厂
tile.MachineBlock.MetallurgicInfuser.name=冶金浸渍
tile.MachineBlock.MetallurgicInfuser.name=冶金灌注
tile.MachineBlock.PurificationChamber.name=净化仓
tile.MachineBlock.EnergizedSmelter.name=充能冶炼炉
tile.MachineBlock.Teleporter.name=传送机