Portable Tanks are polished as far as I can see! Also added a few missing localizations.
This commit is contained in:
parent
d7b0899f38
commit
55937cd7d4
5 changed files with 116 additions and 9 deletions
|
@ -33,6 +33,7 @@ import mekanism.common.network.PacketPortableTankState.PortableTankStateMessage;
|
|||
import mekanism.common.network.PacketScubaTankData.ScubaTankDataMessage;
|
||||
import mekanism.common.network.PacketScubaTankData.ScubaTankPacket;
|
||||
import mekanism.common.network.PacketWalkieTalkieState.WalkieTalkieStateMessage;
|
||||
import mekanism.common.util.LangUtils;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import mekanism.common.util.StackUtils;
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
@ -235,7 +236,7 @@ public class ClientTickHandler
|
|||
{
|
||||
item.setState(stack, (byte)(item.getState(stack) < 3 ? item.getState(stack)+1 : 0));
|
||||
Mekanism.packetHandler.sendToServer(new ConfiguratorStateMessage(item.getState(stack)));
|
||||
mc.thePlayer.addChatMessage(new ChatComponentText(EnumColor.DARK_BLUE + "[Mekanism] " + EnumColor.GREY + "Configure State: " + item.getColor(item.getState(stack)) + item.getStateDisplay(item.getState(stack))));
|
||||
mc.thePlayer.addChatMessage(new ChatComponentText(EnumColor.DARK_BLUE + "[Mekanism] " + EnumColor.GREY + MekanismUtils.localize("tooltip.configureState") + ": " + item.getColor(item.getState(stack)) + item.getStateDisplay(item.getState(stack))));
|
||||
lastTickUpdate = true;
|
||||
}
|
||||
}
|
||||
|
@ -253,7 +254,7 @@ public class ClientTickHandler
|
|||
{
|
||||
item.setFireState(stack, !item.getFireState(stack));
|
||||
Mekanism.packetHandler.sendToServer(new ElectricBowStateMessage(item.getFireState(stack)));
|
||||
mc.thePlayer.addChatMessage(new ChatComponentText(EnumColor.DARK_BLUE + "[Mekanism] " + EnumColor.GREY + "Fire Mode: " + (item.getFireState(stack) ? (EnumColor.DARK_GREEN + "ON") : (EnumColor.DARK_RED + "OFF"))));
|
||||
mc.thePlayer.addChatMessage(new ChatComponentText(EnumColor.DARK_BLUE + "[Mekanism] " + EnumColor.GREY + MekanismUtils.localize("tooltip.fireMode") + ": " + (item.getFireState(stack) ? EnumColor.DARK_GREEN : EnumColor.DARK_RED) + LangUtils.transYesNo(item.getFireState(stack))));
|
||||
lastTickUpdate = true;
|
||||
}
|
||||
}
|
||||
|
@ -273,7 +274,7 @@ public class ClientTickHandler
|
|||
{
|
||||
item.setBucketMode(stack, !item.getBucketMode(stack));
|
||||
Mekanism.packetHandler.sendToServer(new PortableTankStateMessage(item.getBucketMode(stack)));
|
||||
mc.thePlayer.addChatMessage(new ChatComponentText(EnumColor.DARK_BLUE + "[Mekanism] " + EnumColor.GREY + "Bucket Mode: " + (item.getBucketMode(stack) ? (EnumColor.DARK_GREEN + "ON") : (EnumColor.DARK_RED + "OFF"))));
|
||||
mc.thePlayer.addChatMessage(new ChatComponentText(EnumColor.DARK_BLUE + "[Mekanism] " + EnumColor.GREY + MekanismUtils.localize("tooltip.portableTank.bucketMode") + ": " + (item.getBucketMode(stack) ? (EnumColor.DARK_GREEN + "ON") : (EnumColor.DARK_RED + "OFF"))));
|
||||
lastTickUpdate = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -442,7 +442,7 @@ public class ItemRenderingHandler implements IItemRenderer
|
|||
|
||||
ItemBlockMachine itemMachine = (ItemBlockMachine)item.getItem();
|
||||
Fluid fluid = itemMachine.getFluidStack(item) != null ? itemMachine.getFluidStack(item).getFluid() : null;
|
||||
portableTankRenderer.render(fluid, itemMachine.getPrevScale(item), false, -0.5, -0.5, -0.5);
|
||||
portableTankRenderer.render(fluid, itemMachine.getPrevScale(item), false, null, -0.5, -0.5, -0.5);
|
||||
}
|
||||
else {
|
||||
if(item.getItem() instanceof ItemBlockMachine)
|
||||
|
|
|
@ -24,6 +24,7 @@ import cpw.mods.fml.relauncher.SideOnly;
|
|||
public class RenderPortableTank extends TileEntitySpecialRenderer
|
||||
{
|
||||
private static Map<Fluid, DisplayInteger[]> cachedCenterFluids = new HashMap<Fluid, DisplayInteger[]>();
|
||||
private static Map<Fluid, DisplayInteger[]> cachedValveFluids = new HashMap<Fluid, DisplayInteger[]>();
|
||||
|
||||
private static int stages = 1400;
|
||||
|
||||
|
@ -38,10 +39,10 @@ public class RenderPortableTank extends TileEntitySpecialRenderer
|
|||
private void renderAModelAt(TileEntityPortableTank tileEntity, double x, double y, double z, float partialTick)
|
||||
{
|
||||
Fluid fluid = tileEntity.fluidTank.getFluid() != null ? tileEntity.fluidTank.getFluid().getFluid() : null;
|
||||
render(fluid, tileEntity.prevScale, tileEntity.isActive, x, y, z);
|
||||
render(fluid, tileEntity.prevScale, tileEntity.isActive, tileEntity.valve > 0 ? tileEntity.valveFluid : null, x, y, z);
|
||||
}
|
||||
|
||||
public void render(Fluid fluid, float fluidScale, boolean active, double x, double y, double z)
|
||||
public void render(Fluid fluid, float fluidScale, boolean active, Fluid valveFluid, double x, double y, double z)
|
||||
{
|
||||
if(fluid != null && fluidScale > 0)
|
||||
{
|
||||
|
@ -68,6 +69,24 @@ public class RenderPortableTank extends TileEntitySpecialRenderer
|
|||
pop();
|
||||
}
|
||||
|
||||
if(valveFluid != null && !valveFluid.isGaseous())
|
||||
{
|
||||
push();
|
||||
|
||||
bindTexture(MekanismRenderer.getBlocksTexture());
|
||||
GL11.glTranslated(x, y, z);
|
||||
|
||||
MekanismRenderer.glowOn(valveFluid.getLuminosity());
|
||||
|
||||
DisplayInteger[] valveList = getValveRender(valveFluid);
|
||||
|
||||
valveList[Math.min(stages-1, (int)(fluidScale*((float)stages-1)))].render();
|
||||
|
||||
MekanismRenderer.glowOff();
|
||||
|
||||
pop();
|
||||
}
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef((float)x + 0.5F, (float)y + 1.5F, (float)z + 0.5F);
|
||||
bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "PortableTank" + (active ? "On" : "") + ".png"));
|
||||
|
@ -93,6 +112,47 @@ public class RenderPortableTank extends TileEntitySpecialRenderer
|
|||
MekanismRenderer.blendOn();
|
||||
}
|
||||
|
||||
private DisplayInteger[] getValveRender(Fluid fluid)
|
||||
{
|
||||
if(cachedValveFluids.containsKey(fluid))
|
||||
{
|
||||
return cachedValveFluids.get(fluid);
|
||||
}
|
||||
|
||||
Model3D toReturn = new Model3D();
|
||||
toReturn.baseBlock = Blocks.water;
|
||||
toReturn.setTexture(fluid.getFlowingIcon());
|
||||
|
||||
DisplayInteger[] displays = new DisplayInteger[stages];
|
||||
cachedValveFluids.put(fluid, displays);
|
||||
|
||||
MekanismRenderer.colorFluid(fluid);
|
||||
|
||||
for(int i = 0; i < stages; i++)
|
||||
{
|
||||
displays[i] = DisplayInteger.createAndStart();
|
||||
|
||||
if(fluid.getIcon() != null)
|
||||
{
|
||||
toReturn.minX = 0.3125 + .01;
|
||||
toReturn.minY = 0.0625 + ((float)i/(float)stages)*0.875 + .01;
|
||||
toReturn.minZ = 0.3125 + .01;
|
||||
|
||||
toReturn.maxX = 0.6875 - .01;
|
||||
toReturn.maxY = 0.9375 - .01;
|
||||
toReturn.maxZ = 0.6875 - .01;
|
||||
|
||||
MekanismRenderer.renderObject(toReturn);
|
||||
}
|
||||
|
||||
GL11.glEndList();
|
||||
}
|
||||
|
||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
|
||||
return displays;
|
||||
}
|
||||
|
||||
private DisplayInteger[] getListAndRender(Fluid fluid)
|
||||
{
|
||||
if(cachedCenterFluids.containsKey(fluid))
|
||||
|
|
|
@ -21,6 +21,7 @@ import net.minecraft.tileentity.TileEntity;
|
|||
import net.minecraftforge.common.util.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;
|
||||
|
@ -40,6 +41,9 @@ public class TileEntityPortableTank extends TileEntityContainerBlock implements
|
|||
|
||||
public int prevAmount;
|
||||
|
||||
public int valve;
|
||||
public Fluid valveFluid;
|
||||
|
||||
public float prevScale;
|
||||
|
||||
public TileEntityPortableTank()
|
||||
|
@ -79,19 +83,32 @@ public class TileEntityPortableTank extends TileEntityContainerBlock implements
|
|||
}
|
||||
}
|
||||
else {
|
||||
boolean needsPacket = false;
|
||||
|
||||
if(updateDelay > 0)
|
||||
{
|
||||
updateDelay--;
|
||||
|
||||
if(updateDelay == 0 && clientActive != isActive)
|
||||
{
|
||||
Mekanism.packetHandler.sendToAllAround(new TileEntityMessage(Coord4D.get(this), getNetworkedData(new ArrayList())), Coord4D.get(this).getTargetPoint(50));
|
||||
needsPacket = true;
|
||||
}
|
||||
}
|
||||
|
||||
if(valve > 0)
|
||||
{
|
||||
valve--;
|
||||
|
||||
if(valve == 0)
|
||||
{
|
||||
valveFluid = null;
|
||||
needsPacket = true;
|
||||
}
|
||||
}
|
||||
|
||||
if(fluidTank.getFluidAmount() != prevAmount)
|
||||
{
|
||||
Mekanism.packetHandler.sendToAllAround(new TileEntityMessage(Coord4D.get(this), getNetworkedData(new ArrayList())), Coord4D.get(this).getTargetPoint(50));
|
||||
needsPacket = true;
|
||||
}
|
||||
|
||||
prevAmount = fluidTank.getFluidAmount();
|
||||
|
@ -105,6 +122,11 @@ public class TileEntityPortableTank extends TileEntityContainerBlock implements
|
|||
{
|
||||
activeEmit();
|
||||
}
|
||||
|
||||
if(needsPacket)
|
||||
{
|
||||
Mekanism.packetHandler.sendToAllAround(new TileEntityMessage(Coord4D.get(this), getNetworkedData(new ArrayList())), Coord4D.get(this).getTargetPoint(50));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -282,6 +304,15 @@ public class TileEntityPortableTank extends TileEntityContainerBlock implements
|
|||
super.handlePacketData(dataStream);
|
||||
|
||||
clientActive = dataStream.readBoolean();
|
||||
valve = dataStream.readInt();
|
||||
|
||||
if(valve > 0)
|
||||
{
|
||||
valveFluid = FluidRegistry.getFluid(dataStream.readInt());
|
||||
}
|
||||
else {
|
||||
valveFluid = null;
|
||||
}
|
||||
|
||||
if(dataStream.readInt() == 1)
|
||||
{
|
||||
|
@ -305,6 +336,12 @@ public class TileEntityPortableTank extends TileEntityContainerBlock implements
|
|||
super.getNetworkedData(data);
|
||||
|
||||
data.add(isActive);
|
||||
data.add(valve);
|
||||
|
||||
if(valve > 0)
|
||||
{
|
||||
data.add(valveFluid.getID());
|
||||
}
|
||||
|
||||
if(fluidTank.getFluid() != null)
|
||||
{
|
||||
|
@ -370,7 +407,15 @@ public class TileEntityPortableTank extends TileEntityContainerBlock implements
|
|||
{
|
||||
if(resource != null && canFill(from, resource.getFluid()))
|
||||
{
|
||||
return fluidTank.fill(resource, doFill);
|
||||
int filled = fluidTank.fill(resource, doFill);
|
||||
|
||||
if(filled > 0)
|
||||
{
|
||||
valve = 20;
|
||||
valveFluid = resource.getFluid();
|
||||
}
|
||||
|
||||
return filled;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -470,6 +470,7 @@ tooltip.tile=Tile
|
|||
tooltip.keysFound=Key(s) found
|
||||
tooltip.noKey=No key
|
||||
tooltip.hp=HP
|
||||
tooltip.configureState=Configure State
|
||||
|
||||
tooltip.portableTank.bucketMode=Bucket Mode
|
||||
|
||||
|
|
Loading…
Reference in a new issue