From 422982d8a5a3263a4ff7de2acfa756245163c510 Mon Sep 17 00:00:00 2001 From: LordMZTE Date: Sun, 5 May 2024 16:13:50 +0200 Subject: [PATCH] fix: force engine GUI --- .../dartcraft/block/BlockForceEngine.java | 8 ++ .../client/gui/ContainerForceEngine.java | 19 ++-- .../dartcraft/client/gui/GuiEngine.java | 56 ++++++--- .../dartcraft/tile/TileEntityForceEngine.java | 106 ++++-------------- .../dartcraft/tile/TileEntityForceTorch.java | 1 - 5 files changed, 75 insertions(+), 115 deletions(-) diff --git a/src/main/java/ley/modding/dartcraft/block/BlockForceEngine.java b/src/main/java/ley/modding/dartcraft/block/BlockForceEngine.java index 2248863..c681ead 100644 --- a/src/main/java/ley/modding/dartcraft/block/BlockForceEngine.java +++ b/src/main/java/ley/modding/dartcraft/block/BlockForceEngine.java @@ -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); diff --git a/src/main/java/ley/modding/dartcraft/client/gui/ContainerForceEngine.java b/src/main/java/ley/modding/dartcraft/client/gui/ContainerForceEngine.java index 8069355..9d99dd3 100644 --- a/src/main/java/ley/modding/dartcraft/client/gui/ContainerForceEngine.java +++ b/src/main/java/ley/modding/dartcraft/client/gui/ContainerForceEngine.java @@ -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) diff --git a/src/main/java/ley/modding/dartcraft/client/gui/GuiEngine.java b/src/main/java/ley/modding/dartcraft/client/gui/GuiEngine.java index 2feaa52..e42e80e 100644 --- a/src/main/java/ley/modding/dartcraft/client/gui/GuiEngine.java +++ b/src/main/java/ley/modding/dartcraft/client/gui/GuiEngine.java @@ -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 - handleItemTooltip(ItemStack stack, int x, int y, List tooltip) { + handleTooltip(GuiContainer gui, int mousex, int mousey, List currenttip) { + return currenttip; + } + + @Override + public List handleItemDisplayName( + GuiContainer gui, ItemStack itemstack, List currenttip + ) { + return currenttip; + } + + @Override + protected void drawTooltips() {} + + @Override + public List handleItemTooltip( + GuiContainer gui, ItemStack itemstack, int x, int y, List 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); diff --git a/src/main/java/ley/modding/dartcraft/tile/TileEntityForceEngine.java b/src/main/java/ley/modding/dartcraft/tile/TileEntityForceEngine.java index f791a70..5dd3c71 100644 --- a/src/main/java/ley/modding/dartcraft/tile/TileEntityForceEngine.java +++ b/src/main/java/ley/modding/dartcraft/tile/TileEntityForceEngine.java @@ -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()); } } diff --git a/src/main/java/ley/modding/dartcraft/tile/TileEntityForceTorch.java b/src/main/java/ley/modding/dartcraft/tile/TileEntityForceTorch.java index 4f0b276..8cea019 100644 --- a/src/main/java/ley/modding/dartcraft/tile/TileEntityForceTorch.java +++ b/src/main/java/ley/modding/dartcraft/tile/TileEntityForceTorch.java @@ -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;