From 1901eb317a3b3eff52362d183ec6ebb57c96afe9 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 22 Mar 2023 21:02:27 +0100 Subject: [PATCH] watz GUI stuff --- src/main/java/com/hbm/blocks/ModBlocks.java | 1 - .../java/com/hbm/blocks/machine/Watz.java | 6 ++ .../inventory/container/ContainerWatz.java | 74 ++++++++++++++++++ .../java/com/hbm/inventory/gui/GUIWatz.java | 45 +++++++++++ .../tileentity/machine/TileEntityWatz.java | 6 +- .../hbm/textures/gui/reactors/gui_watz.png | Bin 4577 -> 4569 bytes 6 files changed, 129 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/container/ContainerWatz.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIWatz.java diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index cb5bd1b05..ccf062749 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -847,7 +847,6 @@ public class ModBlocks { public static Block plasma_heater; public static Block watz; - public static final int guiID_watz = 98; public static Block watz_element; public static Block watz_control; diff --git a/src/main/java/com/hbm/blocks/machine/Watz.java b/src/main/java/com/hbm/blocks/machine/Watz.java index 8c3b80958..8edb70cb7 100644 --- a/src/main/java/com/hbm/blocks/machine/Watz.java +++ b/src/main/java/com/hbm/blocks/machine/Watz.java @@ -4,6 +4,7 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.tileentity.machine.TileEntityWatz; import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; @@ -21,6 +22,11 @@ public class Watz extends BlockDummyable { return null; } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return super.standardOpenBehavior(world, x, y, z, player, 0); + } @Override public int[] getDimensions() { diff --git a/src/main/java/com/hbm/inventory/container/ContainerWatz.java b/src/main/java/com/hbm/inventory/container/ContainerWatz.java new file mode 100644 index 000000000..2e1aedcbf --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerWatz.java @@ -0,0 +1,74 @@ +package com.hbm.inventory.container; + +import com.hbm.tileentity.machine.TileEntityWatz; +import com.hbm.util.InventoryUtil; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerWatz extends Container { + + protected TileEntityWatz watz; + + public ContainerWatz(InventoryPlayer invPlayer, TileEntityWatz tedf) { + watz = tedf; + + int index = 0; + for(int j = 0; j < 6; j++) { + for(int i = 0; i < 6; i++) { + + if(i + j > 1 && i + j < 9 && 5 - i + j > 1 && i + 5 - j > 1) { + this.addSlotToContainer(new Slot(watz, index, 17 + i * 18, 8 + j * 18)); + index++; + } + } + } + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 147 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 205)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= watz.getSizeInventory() - 1) { + if(!InventoryUtil.mergeItemStack(this.inventorySlots, var5, watz.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else if(!InventoryUtil.mergeItemStack(this.inventorySlots, var5, 0, watz.getSizeInventory(), false)) { + return null; + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + + var4.onPickupFromSlot(p_82846_1_, var5); + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return watz.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIWatz.java b/src/main/java/com/hbm/inventory/gui/GUIWatz.java new file mode 100644 index 000000000..1c8da3217 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIWatz.java @@ -0,0 +1,45 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerWatz; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityWatz; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIWatz extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/reactors/gui_watz.png"); + private TileEntityWatz watz; + + public GUIWatz(InventoryPlayer invPlayer, TileEntityWatz watz) { + super(new ContainerWatz(invPlayer, watz)); + this.watz = watz; + + this.xSize = 176; + this.ySize = 229; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 93, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + float col = (float) (Math.sin(System.currentTimeMillis() / 500D) * 0.5 + 0.5); + GL11.glColor4f(1.0F, col, col, 1.0F); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, 131, 122); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + drawTexturedModalRect(guiLeft + 131, guiTop, 131, 0, 36, 122); + drawTexturedModalRect(guiLeft, guiTop + 130, 0, 130, xSize, 99); + drawTexturedModalRect(guiLeft + 126, guiTop + 31, 176, 31, 9, 60); + drawTexturedModalRect(guiLeft + 105, guiTop + 96, 185, 26, 30, 26); + drawTexturedModalRect(guiLeft + 9, guiTop + 96, 184, 0, 26, 26); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java b/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java index 18d233d42..317106ec9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java @@ -1,7 +1,9 @@ package com.hbm.tileentity.machine; +import com.hbm.inventory.container.ContainerWatz; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.gui.GUIWatz; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; @@ -73,12 +75,12 @@ public class TileEntityWatz extends TileEntityMachineBase implements IGUIProvide @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return null; + return new ContainerWatz(player.inventory, this); } @Override @SideOnly(Side.CLIENT) public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return null; + return new GUIWatz(player.inventory, this); } } diff --git a/src/main/resources/assets/hbm/textures/gui/reactors/gui_watz.png b/src/main/resources/assets/hbm/textures/gui/reactors/gui_watz.png index e03e6b02b0856ceec9d504c9cf5b340cf14e2647..861c7678a0e4181bf11049b3c837de6bcdfd3790 100644 GIT binary patch delta 2786 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 VoH3fJD@!Q=E>3QT%MS%4{|76_K^_1A delta 2789 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