fix: force engine GUI
This commit is contained in:
parent
9842cc1b6c
commit
422982d8a5
5 changed files with 75 additions and 115 deletions
|
@ -33,10 +33,12 @@ public class BlockForceEngine extends BlockContainer implements ITEProvider {
|
|||
setBlockName("forceengine");
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int var2) {
|
||||
return new TileEntityForceEngine();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(
|
||||
World world,
|
||||
int x,
|
||||
|
@ -81,6 +83,7 @@ public class BlockForceEngine extends BlockContainer implements ITEProvider {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockPlacedBy(
|
||||
World world, int x, int y, int z, EntityLivingBase living, ItemStack stack
|
||||
) {
|
||||
|
@ -91,6 +94,7 @@ public class BlockForceEngine extends BlockContainer implements ITEProvider {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLightValue(IBlockAccess world, int x, int y, int z) {
|
||||
TileEntity te = world.getTileEntity(x, y, z);
|
||||
return te instanceof TileEntityForceEngine
|
||||
|
@ -98,18 +102,22 @@ public class BlockForceEngine extends BlockContainer implements ITEProvider {
|
|||
: 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRenderType() {
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderAsNormalBlock() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void breakBlock(World world, int x, int y, int z, Block par5, int par6) {
|
||||
if (Dartcraft.proxy.isSimulating(world)) {
|
||||
TileEntity tile = world.getTileEntity(x, y, z);
|
||||
|
|
|
@ -22,7 +22,9 @@ public class ContainerForceEngine extends Container {
|
|||
this.user = player;
|
||||
this.engine = engine;
|
||||
this.playerInv = (IInventory) player.inventory;
|
||||
this.addSlotToContainer(new FuelSlot((IInventory) engine.liquidInventory, 0, 38, 33));
|
||||
this.addSlotToContainer(
|
||||
new FuelSlot((IInventory) engine.liquidInventory, 0, 38, 33)
|
||||
);
|
||||
this.addSlotToContainer(
|
||||
new ThrottleSlot((IInventory) engine.liquidInventory, 1, 122, 33)
|
||||
);
|
||||
|
@ -37,16 +39,7 @@ public class ContainerForceEngine extends Container {
|
|||
this.addSlotToContainer(new Slot(this.playerInv, i, 8 + 18 * i, 137));
|
||||
}
|
||||
|
||||
public void detectAndSendChanges() {
|
||||
super.detectAndSendChanges();
|
||||
for (int i = 0; i < crafters.size(); i++)
|
||||
this.engine.sendGuiNetworkData(this, (ICrafting) crafters.get(i));
|
||||
}
|
||||
|
||||
public void updateProgressBar(int i, int j) {
|
||||
this.engine.receiveGuiNetworkData(i, j);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack transferStackInSlot(EntityPlayer player, int index) {
|
||||
ItemStack returnStack = null;
|
||||
Slot slot = (Slot) inventorySlots.get(index);
|
||||
|
@ -78,9 +71,11 @@ public class ContainerForceEngine extends Container {
|
|||
return returnStack;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void
|
||||
retrySlotClick(int par1, int par2, boolean par3, EntityPlayer par4EntityPlayer) {}
|
||||
|
||||
@Override
|
||||
public boolean canInteractWith(EntityPlayer player) {
|
||||
return true;
|
||||
}
|
||||
|
@ -90,6 +85,7 @@ public class ContainerForceEngine extends Container {
|
|||
super(par1iInventory, par2, par3, par4);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isItemValid(ItemStack stack) {
|
||||
if (stack.getItem() == DartItems.forcegem)
|
||||
return true;
|
||||
|
@ -104,6 +100,7 @@ public class ContainerForceEngine extends Container {
|
|||
super(par1iInventory, par2, par3, par4);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isItemValid(ItemStack stack) {
|
||||
return ForceEngineLiquids.isThrottle(
|
||||
FluidContainerRegistry.getFluidForFilledItem(stack)
|
||||
|
|
|
@ -1,5 +1,13 @@
|
|||
package ley.modding.dartcraft.client.gui;
|
||||
|
||||
import java.awt.Point;
|
||||
import java.awt.Rectangle;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import codechicken.nei.guihook.IContainerTooltipHandler;
|
||||
import cpw.mods.fml.common.Loader;
|
||||
import ley.modding.dartcraft.Dartcraft;
|
||||
import ley.modding.dartcraft.api.energy.EngineLiquid;
|
||||
|
@ -8,18 +16,16 @@ import ley.modding.dartcraft.client.gui.tabs.Tab;
|
|||
import ley.modding.dartcraft.tile.TileEntityForceEngine;
|
||||
import ley.modding.dartcraft.util.ForceEngineLiquids;
|
||||
import ley.modding.dartcraft.util.FortunesUtil;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.Gui;
|
||||
import net.minecraft.client.gui.inventory.GuiContainer;
|
||||
import net.minecraft.client.renderer.texture.TextureMap;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraftforge.fluids.FluidRegistry;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import java.awt.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class GuiEngine extends GuiTab {
|
||||
public class GuiEngine extends GuiTab implements IContainerTooltipHandler {
|
||||
private TileEntityForceEngine engine;
|
||||
|
||||
private ContainerForceEngine container;
|
||||
|
@ -48,8 +54,26 @@ public class GuiEngine extends GuiTab {
|
|||
this.throttleBounds = new Rectangle(this.guiLeft + 94, this.guiTop + 11, 16, 58);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String>
|
||||
handleItemTooltip(ItemStack stack, int x, int y, List<String> tooltip) {
|
||||
handleTooltip(GuiContainer gui, int mousex, int mousey, List<String> currenttip) {
|
||||
return currenttip;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> handleItemDisplayName(
|
||||
GuiContainer gui, ItemStack itemstack, List<String> currenttip
|
||||
) {
|
||||
return currenttip;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawTooltips() {}
|
||||
|
||||
@Override
|
||||
public List<String> handleItemTooltip(
|
||||
GuiContainer gui, ItemStack itemstack, int x, int y, List<String> tooltip
|
||||
) {
|
||||
Point pointerLoc = new Point(x, y);
|
||||
if (this.fuelBounds.contains(pointerLoc))
|
||||
try {
|
||||
|
@ -78,15 +102,15 @@ public class GuiEngine extends GuiTab {
|
|||
Dartcraft.proxy.bindTexture("engineGui.png");
|
||||
int posX = (this.width - this.xSize) / 2;
|
||||
int posY = (this.height - this.ySize) / 2;
|
||||
drawTexturedModalRect(posX, posY, 0, 0, this.xSize, this.ySize);
|
||||
this.drawTexturedModalRect(posX, posY, 0, 0, this.xSize, this.ySize);
|
||||
if (this.engine.fuelTank.getFluid() != null
|
||||
&& (this.engine.fuelTank.getFluid()).amount > 0)
|
||||
displayGauge(
|
||||
this.displayGauge(
|
||||
this.fuelBounds.x, this.fuelBounds.y, this.engine.fuelTank.getFluid()
|
||||
);
|
||||
if (this.engine.throttleTank.getFluid() != null
|
||||
&& (this.engine.throttleTank.getFluid()).amount > 0)
|
||||
displayGauge(
|
||||
this.displayGauge(
|
||||
this.throttleBounds.x,
|
||||
this.throttleBounds.y,
|
||||
this.engine.throttleTank.getFluid()
|
||||
|
@ -99,7 +123,9 @@ public class GuiEngine extends GuiTab {
|
|||
return;
|
||||
int start = 0;
|
||||
int squaled = (int) (58.0F * liquid.amount / 10000.0F);
|
||||
Dartcraft.proxy.bindTexture("textures/atlas/blocks.png");
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(
|
||||
TextureMap.locationBlocksTexture
|
||||
);
|
||||
do {
|
||||
tempx = 0;
|
||||
if (squaled > 16) {
|
||||
|
@ -112,17 +138,15 @@ public class GuiEngine extends GuiTab {
|
|||
IIcon icon = liquid.getFluid().getStillIcon();
|
||||
if (icon == null)
|
||||
icon = FluidRegistry.LAVA.getStillIcon();
|
||||
drawTexturedModelRectFromIcon(
|
||||
x, y + 58 - tempx - start, icon, 16, 16 - 16 - tempx
|
||||
this.drawTexturedModelRectFromIcon(
|
||||
x, y + 58 - tempx - start, icon, 16, 16 - (16 - tempx)
|
||||
);
|
||||
start += 16;
|
||||
} while (tempx != 0 && squaled != 0);
|
||||
Dartcraft.proxy.bindTexture("engineGui.png");
|
||||
drawTexturedModalRect(x, y, 176, 0, 16, 58);
|
||||
this.drawTexturedModalRect(x, y, 176, 0, 16, 58);
|
||||
}
|
||||
|
||||
protected void drawTooltips() {}
|
||||
|
||||
private class EnergyTab extends Tab {
|
||||
public EnergyTab(Gui gui) {
|
||||
super(gui);
|
||||
|
|
|
@ -7,6 +7,8 @@ import ley.modding.dartcraft.Dartcraft;
|
|||
import ley.modding.dartcraft.api.energy.EngineLiquid;
|
||||
import ley.modding.dartcraft.item.DartItems;
|
||||
import ley.modding.dartcraft.util.ForceEngineLiquids;
|
||||
import net.anvilcraft.alec.jalec.AlecLogger;
|
||||
import net.anvilcraft.anvillib.vector.WorldVec;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.inventory.Container;
|
||||
|
@ -195,6 +197,7 @@ public class TileEntityForceEngine extends TileEntity
|
|||
&& this.throttleTank.getFluid().amount <= 0) {
|
||||
this.throttleTank.setFluid(null);
|
||||
}
|
||||
new WorldVec(this).markForUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -246,6 +249,7 @@ public class TileEntityForceEngine extends TileEntity
|
|||
} else {
|
||||
this.liquidInventory.decrStackSize(0, 1);
|
||||
}
|
||||
new WorldVec(this).markForUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -260,6 +264,7 @@ public class TileEntityForceEngine extends TileEntity
|
|||
new FluidStack(curCycle, (int) (1000.0F * Config.gemValue)), true
|
||||
);
|
||||
this.liquidInventory.decrStackSize(0, 1);
|
||||
new WorldVec(this).markForUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -284,6 +289,7 @@ public class TileEntityForceEngine extends TileEntity
|
|||
);
|
||||
} else {
|
||||
this.liquidInventory.decrStackSize(1, 1);
|
||||
new WorldVec(this).markForUpdate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -311,7 +317,7 @@ public class TileEntityForceEngine extends TileEntity
|
|||
} else {
|
||||
this.isActive = false;
|
||||
}
|
||||
//TODO Fix Cycling update
|
||||
// TODO Fix Cycling update
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -325,12 +331,16 @@ public class TileEntityForceEngine extends TileEntity
|
|||
this.fuelTank.setFluid(
|
||||
FluidStack.loadFluidStackFromNBT(data.getCompoundTag("fuel"))
|
||||
);
|
||||
} else {
|
||||
this.fuelTank.setFluid(null);
|
||||
}
|
||||
|
||||
if (data.hasKey("throttle")) {
|
||||
this.throttleTank.setFluid(
|
||||
FluidStack.loadFluidStackFromNBT(data.getCompoundTag("throttle"))
|
||||
);
|
||||
} else {
|
||||
this.throttleTank.setFluid(null);
|
||||
}
|
||||
|
||||
if (data.hasKey("fuelSlot")) {
|
||||
|
@ -338,7 +348,7 @@ public class TileEntityForceEngine extends TileEntity
|
|||
0, ItemStack.loadItemStackFromNBT(data.getCompoundTag("fuelSlot"))
|
||||
);
|
||||
} else {
|
||||
this.liquidInventory.setInventorySlotContents(0, (ItemStack) null);
|
||||
this.liquidInventory.setInventorySlotContents(0, null);
|
||||
}
|
||||
|
||||
if (data.hasKey("throttleSlot")) {
|
||||
|
@ -346,7 +356,7 @@ public class TileEntityForceEngine extends TileEntity
|
|||
1, ItemStack.loadItemStackFromNBT(data.getCompoundTag("throttleSlot"))
|
||||
);
|
||||
} else {
|
||||
this.liquidInventory.setInventorySlotContents(1, (ItemStack) null);
|
||||
this.liquidInventory.setInventorySlotContents(1, null);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -515,95 +525,17 @@ public class TileEntityForceEngine extends TileEntity
|
|||
this.throttleTank.getInfo() };
|
||||
}
|
||||
|
||||
@Override
|
||||
public Packet getDescriptionPacket() {
|
||||
NBTTagCompound comp = new NBTTagCompound();
|
||||
this.writeToNBT(comp);
|
||||
return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 0, comp);
|
||||
return new S35PacketUpdateTileEntity(
|
||||
xCoord, yCoord, zCoord, this.getBlockMetadata(), comp
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) {
|
||||
if (pkt != null && pkt.func_148857_g() != null) {
|
||||
this.readFromNBT(pkt.func_148857_g());
|
||||
worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); //TODO Lighting
|
||||
//worldObj.updateAllLightTypes(this.field_70329_l, this.field_70330_m,
|
||||
//this.field_70327_n);
|
||||
}
|
||||
}
|
||||
|
||||
public void sendGuiNetworkData(Container container, ICrafting craft) {
|
||||
byte throttleMeta = 0;
|
||||
int throttleID = 0;
|
||||
int throttleAmount = 0;
|
||||
byte fuelMeta = 0;
|
||||
int fuelID = 0;
|
||||
int fuelAmount = 0;
|
||||
if (this.fuelTank.getFluid() != null) {
|
||||
fuelID = this.fuelTank.getFluid().getFluidID();
|
||||
fuelAmount = this.fuelTank.getFluid().amount;
|
||||
}
|
||||
|
||||
if (this.throttleTank.getFluid() != null) {
|
||||
throttleID = this.throttleTank.getFluid().getFluidID();
|
||||
throttleAmount = this.throttleTank.getFluid().amount;
|
||||
}
|
||||
|
||||
craft.sendProgressBarUpdate(container, 0, fuelID);
|
||||
craft.sendProgressBarUpdate(container, 1, fuelMeta);
|
||||
craft.sendProgressBarUpdate(container, 2, fuelAmount);
|
||||
craft.sendProgressBarUpdate(container, 3, throttleID);
|
||||
craft.sendProgressBarUpdate(container, 4, throttleMeta);
|
||||
craft.sendProgressBarUpdate(container, 5, throttleAmount);
|
||||
if (craft instanceof EntityPlayerMP && Dartcraft.proxy.isSimulating(worldObj)) {
|
||||
((EntityPlayerMP) craft)
|
||||
.playerNetServerHandler.sendPacket(getDescriptionPacket());
|
||||
}
|
||||
}
|
||||
|
||||
public void receiveGuiNetworkData(int i, int j) {
|
||||
FluidStack tempStack = this.fuelTank.getFluid();
|
||||
FluidStack tempStack2 = this.throttleTank.getFluid();
|
||||
switch (i) {
|
||||
case 0:
|
||||
if (this.fuelTank.getFluid() != null) {
|
||||
this.fuelTank.setFluid(
|
||||
new FluidStack(j, tempStack.amount, tempStack.tag)
|
||||
);
|
||||
} else if (j > 0) {
|
||||
this.fuelTank.setFluid(new FluidStack(j, 0));
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (this.fuelTank.getFluid() != null) {
|
||||
this.fuelTank.setFluid(new FluidStack(
|
||||
tempStack.getFluidID(), tempStack.amount, (NBTTagCompound) null
|
||||
));
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (this.fuelTank.getFluid() != null) {
|
||||
this.fuelTank.getFluid().amount = j;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (this.throttleTank.getFluid() != null) {
|
||||
this.throttleTank.setFluid(
|
||||
new FluidStack(j, tempStack2.amount, tempStack2.tag)
|
||||
);
|
||||
} else if (j > 0) {
|
||||
this.throttleTank.setFluid(new FluidStack(j, 0));
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (this.throttleTank.getFluid() != null) {
|
||||
this.throttleTank.setFluid(new FluidStack(
|
||||
tempStack2.getFluidID(), tempStack2.amount, (NBTTagCompound) null
|
||||
));
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
if (this.throttleTank.getFluid() != null) {
|
||||
this.throttleTank.getFluid().amount = j;
|
||||
}
|
||||
}
|
||||
this.readFromNBT(pkt.func_148857_g());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,6 @@ package ley.modding.dartcraft.tile;
|
|||
import java.util.List;
|
||||
|
||||
import cpw.mods.fml.common.Loader;
|
||||
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
||||
import ley.modding.dartcraft.Config;
|
||||
import ley.modding.dartcraft.Dartcraft;
|
||||
import ley.modding.dartcraft.entity.EntityTime;
|
||||
|
|
Loading…
Reference in a new issue