From 1e37d14de26a40d0ae60338438aafb8c8268aa0f Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 5 Nov 2024 16:07:53 +0100 Subject: [PATCH] delete .metadata they said, it'll fix caching issues they said --- .../container/ContainerMachineAmmoPress.java | 71 ++++++++++++++++++ .../inventory/gui/GUIMachineAmmoPress.java | 53 +++++++++++++ .../inventory/recipes/AmmoPressRecipes.java | 57 ++++++++++++++ .../weapon/sedna/factory/XFactory556mm.java | 1 - .../item/weapon/sedna/ItemRenderSTG77.java | 2 - .../java/com/hbm/tileentity/TileMappings.java | 1 + .../machine/TileEntityMachineAmmoPress.java | 14 +--- .../gui/processing/gui_ammo_press.png | Bin 1960 -> 3553 bytes 8 files changed, 186 insertions(+), 13 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/container/ContainerMachineAmmoPress.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIMachineAmmoPress.java create mode 100644 src/main/java/com/hbm/inventory/recipes/AmmoPressRecipes.java diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineAmmoPress.java b/src/main/java/com/hbm/inventory/container/ContainerMachineAmmoPress.java new file mode 100644 index 000000000..6ca5459c7 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineAmmoPress.java @@ -0,0 +1,71 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.tileentity.machine.TileEntityMachineAmmoPress; + +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 ContainerMachineAmmoPress extends Container { + + private TileEntityMachineAmmoPress press; + + public ContainerMachineAmmoPress(InventoryPlayer playerInv, TileEntityMachineAmmoPress tile) { + press = tile; + + //Inputs + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 3; j++) { + this.addSlotToContainer(new Slot(tile, i * 3 + j, 116 + j * 18, 18 + i * 18)); + } + } + //Output + this.addSlotToContainer(new SlotCraftingOutput(playerInv.player, tile, 9, 134, 72)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(playerInv, j + i * 9 + 9, 8 + j * 18, 118 + i * 18)); + } + } + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(playerInv, i, 8 + i * 18, 176)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); + + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); + + if(index <= 9) { + if(!this.mergeItemStack(stack, 10, this.inventorySlots.size(), true)) { + return null; + } + } else { + if(!this.mergeItemStack(stack, 0, 9, false)) { + return null; + } + } + + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + } + + return rStack; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return press.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineAmmoPress.java b/src/main/java/com/hbm/inventory/gui/GUIMachineAmmoPress.java new file mode 100644 index 000000000..59f4b3a9c --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineAmmoPress.java @@ -0,0 +1,53 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerMachineAmmoPress; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityMachineAmmoPress; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIMachineAmmoPress extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_ammo_press.png"); + private TileEntityMachineAmmoPress press; + + public GUIMachineAmmoPress(InventoryPlayer invPlayer, TileEntityMachineAmmoPress press) { + super(new ContainerMachineAmmoPress(invPlayer, press)); + this.press = press; + + this.xSize = 176; + this.ySize = 200; + } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + } + + @Override + protected void mouseClicked(int x, int y, int k) { + super.mouseClicked(x, y, k); + + if(this.checkClick(x, y, 151, 17, 18, 18)) { + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.press.hasCustomInventoryName() ? this.press.getInventoryName() : I18n.format(this.press.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 0xffffff); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { + 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/inventory/recipes/AmmoPressRecipes.java b/src/main/java/com/hbm/inventory/recipes/AmmoPressRecipes.java new file mode 100644 index 000000000..a809be0d4 --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/AmmoPressRecipes.java @@ -0,0 +1,57 @@ +package com.hbm.inventory.recipes; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import com.google.gson.JsonElement; +import com.google.gson.stream.JsonWriter; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.recipes.loader.SerializableRecipe; + +import net.minecraft.item.ItemStack; + +public class AmmoPressRecipes extends SerializableRecipe { + + public List recipes = new ArrayList(); + + @Override + public void registerDefaults() { + + } + + @Override + public String getFileName() { + return "hbmAmmoPress.json"; + } + + @Override + public Object getRecipeObject() { + return recipes; + } + + @Override + public void deleteRecipes() { + recipes.clear(); + } + + @Override + public void readRecipe(JsonElement recipe) { + + } + + @Override + public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { + + } + + public static class AmmoPressRecipe { + public ItemStack output; + public AStack[] input; + + public AmmoPressRecipe(ItemStack output, AStack... input) { + this.output = output; + this.input = input; + } + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory556mm.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory556mm.java index 99f93585b..e79ddf070 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory556mm.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory556mm.java @@ -13,7 +13,6 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.GunState; import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; -import com.hbm.items.weapon.sedna.mags.IMagazine; import com.hbm.items.weapon.sedna.mags.MagazineFullReload; import com.hbm.main.MainRegistry; import com.hbm.particle.SpentCasing; diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSTG77.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSTG77.java index 133685a11..3cd68d480 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSTG77.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSTG77.java @@ -8,8 +8,6 @@ import com.hbm.render.anim.HbmAnimations; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; -import net.minecraftforge.client.IItemRenderer.ItemRenderType; public class ItemRenderSTG77 extends ItemRenderWeaponBase { diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 09bdce611..5b3843b9b 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -101,6 +101,7 @@ public class TileMappings { put(TileEntityCrateDesh.class, "tileentity_crate_desh"); put(TileEntityMassStorage.class, "tileentity_mass_storage"); put(TileEntityMachinePress.class, "tileentity_press"); + put(TileEntityMachineAmmoPress.class, "tileentity_ammo_press"); put(TileEntityMachineSiren.class, "tileentity_siren"); put(TileEntityMachineSPP.class, "tileentity_spp"); put(TileEntityMachineRadGen.class, "tileentity_radgen"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmmoPress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmmoPress.java index aefdc7140..627136a64 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmmoPress.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmmoPress.java @@ -1,5 +1,7 @@ package com.hbm.tileentity.machine; +import com.hbm.inventory.container.ContainerMachineAmmoPress; +import com.hbm.inventory.gui.GUIMachineAmmoPress; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; @@ -25,14 +27,6 @@ public class TileEntityMachineAmmoPress extends TileEntityMachineBase implements } - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return null; - } - - @Override - @SideOnly(Side.CLIENT) - public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return null; - } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMachineAmmoPress(player.inventory, this); } + @Override @SideOnly(Side.CLIENT) public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineAmmoPress(player.inventory, this); } } diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_ammo_press.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_ammo_press.png index 8b382f97cbe9ffbc89dcbc66e0f6889399a96249..cb3af2afc5054f27e3e2bf9219a372725e0869d1 100644 GIT binary patch literal 3553 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%0DC&l|6y1 zy-t581a+;eHvz{u>68*8aqK2RWU#1C8%ow7M0U4B96-5n0wVjOqbr{R&EuFKuL3jK z#}}`DNF-}aT8#6!^~Iat9f7(>=j}=31&@V7@>}LlN*ptf;@2wByRqyMhW5_1a6a0M z-@UrPK=%oR;pA<1Mw9^FI59ix zS|S)j&EHfZWgyVT39y$K{%59X2Cy zQ8~d?j*3HX1qLnO3wj$}A~gQ?egaNZE0f2Y677KN@xbwRkyI+(<^`{e`UKsCEwX{y z^51k)vvMpFGonPipAgXKQ}R#p-s@UHa}T(|@ZO0!(aNs%%xD9$8_Y=;Q*Y2lA8AS| zzXh8@jy5QEAvLpt3PIog99u^&Xbav5oeJE!8~%AsR85~T%$ zvaXq1Qs8EpSWb@fHRbjoXdf*7mr@p_ss_*Y}svjW;1j2fYOsU+v=3CgPQr|ZCTQWg8)mKIdt#uV(eD3zCiz_dztZFcQUi3^;)lGRu)S8k zZfYkRvYF28XVn%waRQkIBpP@yBgr| MdnB*wgY@%%0#k`ASpWb4