From fca9fe50da96dda64a686fa8cbda996c93244bd9 Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 6 May 2024 21:46:30 +0200 Subject: [PATCH] GUI time --- .../hbm/blocks/machine/MachineICFPress.java | 18 ++++- .../container/ContainerICFPress.java | 55 ++++++++++++++ .../container/ContainerMachineDiesel.java | 9 +-- .../com/hbm/inventory/gui/GUIICFPress.java | 46 ++++++++++++ .../java/com/hbm/tileentity/TileMappings.java | 1 + .../machine/TileEntityICFPress.java | 71 ++++++++++++++++++ .../textures/gui/processing/gui_icf_press.png | Bin 2632 -> 2382 bytes 7 files changed, 191 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/container/ContainerICFPress.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIICFPress.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityICFPress.java diff --git a/src/main/java/com/hbm/blocks/machine/MachineICFPress.java b/src/main/java/com/hbm/blocks/machine/MachineICFPress.java index 7f9fbb124..0e608aebd 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineICFPress.java +++ b/src/main/java/com/hbm/blocks/machine/MachineICFPress.java @@ -4,8 +4,11 @@ import java.util.List; import com.hbm.blocks.ITooltipProvider; import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityICFPress; import com.hbm.util.I18nUtil; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -29,7 +32,7 @@ public class MachineICFPress extends BlockContainer implements ITooltipProvider @Override public TileEntity createNewTileEntity(World world, int meta) { - return null; + return new TileEntityICFPress(); } @Override @@ -44,6 +47,19 @@ public class MachineICFPress extends BlockContainer implements ITooltipProvider public IIcon getIcon(int side, int metadata) { return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : this.blockIcon); } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + return true; + } else { + return false; + } + } @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { diff --git a/src/main/java/com/hbm/inventory/container/ContainerICFPress.java b/src/main/java/com/hbm/inventory/container/ContainerICFPress.java new file mode 100644 index 000000000..edaa6f228 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerICFPress.java @@ -0,0 +1,55 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotTakeOnly; +import com.hbm.tileentity.machine.TileEntityICFPress; + +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 ContainerICFPress extends Container { + + private TileEntityICFPress press; + + public ContainerICFPress(InventoryPlayer invPlayer, TileEntityICFPress tedf) { + + press = tedf; + + //Empty Capsule + this.addSlotToContainer(new Slot(tedf, 0, 98, 18)); + //Filled Capsule + this.addSlotToContainer(new SlotTakeOnly(tedf, 1, 98, 54)); + //Filled Muon + this.addSlotToContainer(new Slot(tedf, 2, 8, 18)); + //Empty Muon + this.addSlotToContainer(new SlotTakeOnly(tedf, 3, 8, 54)); + //Solid Fuels + this.addSlotToContainer(new Slot(tedf, 4, 62, 54)); + this.addSlotToContainer(new Slot(tedf, 5, 134, 54)); + //Fluid IDs + this.addSlotToContainer(new Slot(tedf, 6, 62, 18)); + this.addSlotToContainer(new Slot(tedf, 7, 134, 18)); + + 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, 97 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 155)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int id) { + return null; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return press.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineDiesel.java b/src/main/java/com/hbm/inventory/container/ContainerMachineDiesel.java index e1d6655ce..a4539cf77 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineDiesel.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineDiesel.java @@ -6,7 +6,6 @@ import com.hbm.tileentity.machine.TileEntityMachineDiesel; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; @@ -39,13 +38,7 @@ public class ContainerMachineDiesel extends Container { } @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { ItemStack var3 = null; Slot var4 = (Slot) this.inventorySlots.get(par2); diff --git a/src/main/java/com/hbm/inventory/gui/GUIICFPress.java b/src/main/java/com/hbm/inventory/gui/GUIICFPress.java new file mode 100644 index 000000000..cdd14da32 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIICFPress.java @@ -0,0 +1,46 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerICFPress; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityICFPress; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIICFPress extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_icf_press.png"); + private TileEntityICFPress diesel; + + public GUIICFPress(InventoryPlayer invPlayer, TileEntityICFPress tedf) { + super(new ContainerICFPress(invPlayer, tedf)); + diesel = tedf; + + this.xSize = 176; + this.ySize = 179; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.diesel.hasCustomInventoryName() ? this.diesel.getInventoryName() : I18n.format(this.diesel.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index a6d60d8b8..c501d3ead 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -162,6 +162,7 @@ public class TileMappings { put(TileEntityMachineMiniRTG.class, "tileentity_mini_rtg"); put(TileEntityITER.class, "tileentity_iter"); put(TileEntityBlockICF.class, "tileentity_block_icf"); + put(TileEntityICFPress.class, "tileentity_icf_press"); put(TileEntityICFController.class, "tileentity_icf_controller"); put(TileEntityICF.class, "tileentity_icf"); put(TileEntityMachinePlasmaHeater.class, "tileentity_plasma_heater"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityICFPress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityICFPress.java new file mode 100644 index 000000000..688d32c22 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityICFPress.java @@ -0,0 +1,71 @@ +package com.hbm.tileentity.machine; + +import com.hbm.inventory.container.ContainerICFPress; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.gui.GUIICFPress; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachineBase; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.world.World; + +public class TileEntityICFPress extends TileEntityMachineBase implements IGUIProvider { + + public FluidTank[] tanks; + public int muon; + public static final int maxMuon = 16; + + public TileEntityICFPress() { + super(8); + this.tanks = new FluidTank[2]; + this.tanks[0] = new FluidTank(Fluids.DEUTERIUM, 16_000); + this.tanks[1] = new FluidTank(Fluids.TRITIUM, 16_000); + } + + @Override + public String getName() { + return "container.machineICFPress"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + this.networkPackNT(15); + } + } + + @Override public void serialize(ByteBuf buf) { + super.serialize(buf); + + buf.writeByte((byte) muon); + tanks[0].serialize(buf); + tanks[1].serialize(buf); + } + + @Override public void deserialize(ByteBuf buf) { + super.deserialize(buf); + + this.muon = buf.readByte(); + tanks[0].deserialize(buf); + tanks[1].deserialize(buf); + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerICFPress(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIICFPress(player.inventory, this); + } +} diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_icf_press.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_icf_press.png index 5d4e0418c010d4fc5cef3ba9c412f4a9c4012e9a..d37deac48852bd59bbf983e68d7172069ce9be15 100644 GIT binary patch literal 2382 zcmb_dX;c$d7Jfj0hze+}w2&Hgj?y3^q9|Jg5k;aTNEnbs!-xoof+2uxSuED2A}E4j ziN=lXgb)!hP)vel09m6f#uNxbz{rk360(p?_)~wh(>XI|?w@D}fR3qhk8}?%iQ>J+$YK~Yxrg^cV^;wDfvpmZ+hP${ZTA&S* zjxb3YWZ?`a7^XNlovM;)SbYpB=G*l*8uv_H1_MZxx$BRDb9)fqR!E2OOBORicEPa2 z!|I8NiG@i)WjulKH%R9~q-^C)_^IT0)u#H86##k^xP|Hh-LHUYKA_Y?0AwrJXsZJ* zeMzOxM%AAfB+W|%m<#fes34oXo1;@|RX&|gugr?54yq<`Di-U09$mcH(eer$9wX`v zh^IRy{Ii0YeA&M63sV%r@Rg#cAX!`I1;UR{V|^K-Mvlp9*34M=YsJ z#T6#!J9+t%#<5HTw-f9kK6h{(gjmWARivpnW((yA^FZ`3RNAJA8}s*J0KtwOQ62)` zL$}h&DR(7Kg;nIFl$aeZm;3tqQgK-c8CV)Eg}5^Vt#hku7D*hGN~|6CETWcSU7IQ} z$)pTO(^~|X7QQ5zf?BCs;uv1AA-w%i;wO0)^31r%Vpv|+V>X~=>h&Sx(s_8lHxZb* zxzV=S32=1*Pg+ok#?!v5j|t;d4Dpw=B{c}cvj&7LZ%jXnNKg-GjFE|}!tT>vNE(x! z4C|+%8~H<;aueLk8h%{}4u|QYpms{+rF^r7PcNazf5LvuQJ$Q|c2*O1HOVUsY|AT! z`tOM|uKZ(egY0Vwl!i{EYswNn!I;uj1kMWsPBQ%OuxEtvtFB%d!ovG*HGgoT;HfVS zE|gS=VGyMj?PG1-j!&NsXb`+CdkVf?jjFdHw3b?^IS&#C!;0)i2*G;a@F$s&$tPxk znAy!`=7Jt<_8x`HGEIl}bSr|;s#uxQs?S|(t}+!jo7X!yomi3YtIX09KQ4_3WcUZ# zFZLfzSbj*nEwG`voQDa$cUn&mzo*94hM(G9F(1M4aG4$u!mps97?%S zSLdIllzGAnacadx)vsKQTA0TqE!h*_&dK8{?EKFMal8*=_Agyu91;kgn+UW^m;+ zI&i(jzFc7FhQ;_Y%J|#!+L~zI+gT!~`0`&kVUM&lc%2L9Xf;Jkd4CM+1?QBan8;6S;Z8PY~6X z0@fT?$$l|I%_-_pSoO99|M0bayztm>`{u8jFNRoX%Dcwte)o%j(w|I-Q6X{#mD*z9 z8IaAp)j6$Y%(V$8_1>?(M71D~5n2aKuf173!en+)tD*UX24?#s%j<7uw-HL1+3o5R zlvc#dwmj2wSaXr8iop!Pk!q9d7vHw?Ux7tw0h34iq0JIg8R=7pZ0qgq6^t_c=|XjR z?FOFXa);v~Z>j_lectnvAuQTzSHqT-NSAunCE-y z6JYvJ{m{f*oAw{w2xEaiPn)~!C6qGzJN5w-75h%Cxt((yx21pxK6$l1<}~#>f;ied zKi96fEJbsGzO+VYWL?NX@%wTqy}Y2v&7t@?pz9@TH|oRX2ClA7*6Ey4ambh zC`ve>yO+p~PCj4ePp>3#XW|rgd{N8P%!$NVhW4+{@kQ<3yBEPG zukL=^BGU&S4=jJtl*fJzWW{HP!m8ue>-##+h(_FPd!eCtJbvfcrFw)lkUk;lvhKk2 zsc4a*R<9zXE^cbn-B|bxyuUN^J% z?4Fup#N~9?!tzQ?n%DiMxcr&!Onx8%dao6OKT%2ZaBSU#k;NDX4JN(HbZc#SL{((E z#Tfqvch*H%D&r=hyJ6A)Ub_AaeOd4lA--tos4eUZ$d~AUhoh!D>+a8-g!aI(zw4@V z4Ky+!baccAO$-QCglWUmxXi|}p?ux{B)fmOyWs2Nj)J^~3zJ4i@smdVzmxp8lc61s d|BF$uDib=ZC2i_`?A2vJuY+iha`(_5{sm`zP|*MY literal 2632 zcma)8eLT}^8~;t~FsIHwQaNc+J;^~roz#kPQisvgir!3_m&idRVHlL-y z-Bf?PZ!HfNyxB+!%+!1N?;%&`zHC|?>8k%b#dm{#Y0lfgjNhG4efUVec^z7Iud4Rb zm~7FK+$+b_LF(Z)Xp|>Gxr%#ojU(eInH6rHr6w{pTcgT_IqSi@RhGCJkhE45nv$Cmi26T&Fg3c+o&o;dUiNuPT<*wv~iNj1qY zXKUp=>UO49p^`Tbr@CmKC^kRuhmPl&H}pnr|EPvSq3I%LT(ib^0^8OS1UjQiE|JTE z&4=7c6Rz=1$O7hBSJ{N6D$0+tZ5XGL>J3i6mtynP%JA$;7nt z7v=c`Ys2Kq<(i#jHiD!ni(3`brSNZG*6HXt=%Pv(ji#1%Xr9hsjofB|*|}gCy#D^+ zY{QOpfl@q+HS+6PSC`n36Kp<936_LWx?BbU#d1d=oV9)s)N;L&RG}akt_IFWwAhTr zSA~juQH7*kK!EftdJ?ivSlO5Ps3Mru z&duXF>bDk`f)3nTfeRa72ebAaUe~xSeAJvlr0ZgQ?;OnSho0j>*k;x$n34n2MXq00 zLJ48@q}&~EtLS#Y>k%NU0ct}|kK{2f#r)pMgPUqdO`s{ONT5l0MI{z#X~!E45>~0ABK^Vuy<*>9x zJ|pq7DtgH@+XZmY(n?P2MOcejN4(PI~URfHpNKDyr~5HGhS(d#jW z)qki5f^8#s0>^H}@#m9(V%cMTd!6M~m4e_E_xIYsP7@v!S+-J3L9OBYa61|@?B5|C zj4(RI%XLZ8<+K=mB`{Ro6<_5nuafP!A3(M4dBnR{=D&>^8-?k`+a~J*Nnc!76!W13 znl;Hiy~7`VK^J=EBHx8bp&(Koi_{;YMAgbI%17o(6_t5y8Ocj z>aRab{0HE5=jnIbX82YMWu-(RTMk!HSCa+Avn{5bVv3!~w)s9Pu=tqX|7OnW zP~1M@bCdH;|Lp9)dUzHXVuZjCOH=7gX9N5$f1&OxG2`U$`Fu;Z1$I_GzCEJ7U%LJb zFx7n}kLFqx62!2qF=LMCTCjlXFi_;6jbR2{t|5CX;QmP_2te@qVV*+p{*f0^?@J&trQUAmgm!gFbS|3imlz!r^2bK0n?m7u? zAAvu*A4j-(+GJ7)Q;}RAm8vy~M%&EKJi~usKN`AYaDsm3@`s&dHIZ%SqkU!}lgYLr zP9Y+%Msl?_BwIA8MLs~qY@|vR3iRmcsArpT?no+dAUSO`?1y#Wjo4VLQZDrA1-1#0 zoB4$wzoO1AVNY@dL6me^{K3jH8r~y`KMTK9HS0u1i?%ai18>n8ULE3Kga1mnUm5(& z#ql#ZpshCA9}edQBBEvN7xbsOav_)uOTA_e?0>QP*G??; ztSpn@O&sIo9OGIT3QWsfK=KWK)UnmS4TP_+{-<2by=;8Io?eau|N5Jg(H%3lFXLs` zF33?-})mYgj70Ue=2uia(0%hCaXIX~*kfNS)^i)5+_`0hf*h zEZ%%s-mC-ue!6iQd^TIN=6d&)VTfz-?TnAjkOLRZT&eSt4#*cL+yGJw3GNHhx$sXo zVkgA@XKq5kyyRMpX1!og`PGGq0Sv!B0WY-zo!RJTM-TCsCeKUeufqxXwbK*6lpmpm z(>TSv3cWbGCaF8C4^)9biSY8QBg0C$ADjNTFu{#6CXQAUJ?>4bRSXeoiFZ}9KsL!D zx)i=q5H$j}<;q`b3g!@v^8&(5Lwed3%xPmV@7zkgg?{xTJ?1yglZIV1BlJes9;!p%r@Dzf%dBF#Ib z2=Y*bq7#(JO-l8YkVUdB99{ZXIfMhb2Ig$z?(O-zFaH=N*y z^)BL{Oiiryx<>Qi0R=6(dfUSXpoY&_|n{(YFk P+#z!B{yh(N2mJacnB50%