From 7c7df7c4598b5e8b1a2803eb9b81d1dec48d5029 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 16 Jun 2026 16:41:23 +0200 Subject: [PATCH] we are back in quacktion --- changelog | 2 + .../ContainerPneumoStorageAccess.java | 7 +++ .../inventory/gui/GUIPneumoStorageAccess.java | 12 +++++ src/main/java/com/hbm/items/ModItems.java | 46 +++++++++---------- 4 files changed, 44 insertions(+), 23 deletions(-) diff --git a/changelog b/changelog index 6b76f930a..23ace2f5c 100644 --- a/changelog +++ b/changelog @@ -6,8 +6,10 @@ * Removed config for new bedrock ores * New ores are the default anyway and old bedrock ores are now properly deprecated * Existing setups will continue to work for now + * Old bedrock ore items still exist but are no longer listed in the creative tab * Removed recipe for the small single block steam turbine * We have steam engines and industrial turbines are really not that expensive + * "oh no, i have to build an actually good looking setup now if i want to build a zirnox!" yeah you do * Updated light brick texture ## Fixed diff --git a/src/main/java/com/hbm/inventory/container/ContainerPneumoStorageAccess.java b/src/main/java/com/hbm/inventory/container/ContainerPneumoStorageAccess.java index c4ebcd71c..cb9010a07 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerPneumoStorageAccess.java +++ b/src/main/java/com/hbm/inventory/container/ContainerPneumoStorageAccess.java @@ -34,6 +34,8 @@ public class ContainerPneumoStorageAccess extends Container implements ICustomPa public static final int GRID_SIZE = 6 * 8; public static final String STACK_SIZE_KEY = "PNEUMO_STACK_SIZE"; + + public int itemCountForClient = 0; // TODO public ContainerPneumoStorageAccess(InventoryPlayer invPlayer, TileEntityPneumoStorageAccess access) { this.access = access; @@ -265,6 +267,9 @@ public class ContainerPneumoStorageAccess extends Container implements ICustomPa if(list.tagCount() > 0) { NBTTagCompound masterTag = new NBTTagCompound(); + // if a null stack is indiced, skip + boolean hasNullStack = this.access.cache.cacheSlots.containsKey(this.access.cache.getNullIdentity()); + masterTag.setInteger("itemCount", this.access.cache.cacheSlots.size() - (hasNullStack ? 1 : 0)); masterTag.setTag("list", list); for(Object o : this.crafters) { if(o instanceof EntityPlayerMP) { @@ -288,6 +293,8 @@ public class ContainerPneumoStorageAccess extends Container implements ICustomPa public void acceptData(int windowId, NBTTagCompound data) { if(windowId != this.windowId) return; + this.itemCountForClient = data.getInteger("itemCount"); + NBTTagList list = data.getTagList("list", 10); for(int i = 0; i < list.tagCount(); i++) { diff --git a/src/main/java/com/hbm/inventory/gui/GUIPneumoStorageAccess.java b/src/main/java/com/hbm/inventory/gui/GUIPneumoStorageAccess.java index e36342035..f35c071a6 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIPneumoStorageAccess.java +++ b/src/main/java/com/hbm/inventory/gui/GUIPneumoStorageAccess.java @@ -25,6 +25,11 @@ public class GUIPneumoStorageAccess extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_pneumatic_access.png"); protected TileEntityPneumoStorageAccess access; + + protected int scrollIndex = 0; + protected int scrollBounds = 0; + protected boolean wasClicking = false; + protected boolean draggingScroll = false; public GUIPneumoStorageAccess(InventoryPlayer invPlayer, TileEntityPneumoStorageAccess access) { super(new ContainerPneumoStorageAccess(invPlayer, access)); @@ -36,6 +41,13 @@ public class GUIPneumoStorageAccess extends GuiInfoContainer { @Override public void drawScreen(int x, int y, float interp) { + + ContainerPneumoStorageAccess container = (ContainerPneumoStorageAccess) this.inventorySlots; + this.scrollBounds = (container.itemCountForClient / 8 - 7); + if(this.scrollBounds < 0) this.scrollBounds = 0; + if(this.scrollIndex < 0) this.scrollIndex = 0; + if(this.scrollIndex > scrollBounds) this.scrollIndex = scrollBounds; + super.drawScreen(x, y, interp); } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 7eab23d58..f39c41fda 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -188,19 +188,19 @@ public class ModItems { public static Item ingot_mercury; //It's to prevent any ambiguity, as it was treated as a full ingot in the past anyway public static Item bottle_mercury; - public static Item ore_byproduct; //byproduct of variable purity and quantity, can be treated as a nugget, might require shredding or acidizing, depends on the type + @Deprecated public static Item ore_byproduct; - public static Item ore_bedrock; - public static Item ore_centrifuged; - public static Item ore_cleaned; - public static Item ore_separated; - public static Item ore_purified; - public static Item ore_nitrated; - public static Item ore_nitrocrystalline; - public static Item ore_deepcleaned; - public static Item ore_seared; - //public static Item ore_radcleaned; - public static Item ore_enriched; //final stage + @Deprecated public static Item ore_bedrock; + @Deprecated public static Item ore_centrifuged; + @Deprecated public static Item ore_cleaned; + @Deprecated public static Item ore_separated; + @Deprecated public static Item ore_purified; + @Deprecated public static Item ore_nitrated; + @Deprecated public static Item ore_nitrocrystalline; + @Deprecated public static Item ore_deepcleaned; + @Deprecated public static Item ore_seared; + @Deprecated public static Item ore_enriched; //final stage + public static Item bedrock_ore_base; public static Item bedrock_ore; public static Item bedrock_ore_fragment; @@ -2295,18 +2295,18 @@ public class ModItems { ingot_mud = new Item().setUnlocalizedName("ingot_mud").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_mud"); ingot_cft = new Item().setUnlocalizedName("ingot_cft").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_cft"); - ore_byproduct = new ItemByproduct().setUnlocalizedName("ore_byproduct").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":byproduct"); + ore_byproduct = new ItemByproduct().setUnlocalizedName("ore_byproduct").setCreativeTab(null).setTextureName(RefStrings.MODID + ":byproduct"); - ore_bedrock = new ItemBedrockOre().setUnlocalizedName("ore_bedrock").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_bedrock"); - ore_centrifuged = new ItemBedrockOre().setUnlocalizedName("ore_centrifuged").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_centrifuged"); - ore_cleaned = new ItemBedrockOre().setUnlocalizedName("ore_cleaned").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_cleaned"); - ore_separated = new ItemBedrockOre().setUnlocalizedName("ore_separated").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_separated"); - ore_purified = new ItemBedrockOre().setUnlocalizedName("ore_purified").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_purified"); - ore_nitrated = new ItemBedrockOre().setUnlocalizedName("ore_nitrated").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_nitrated"); - ore_nitrocrystalline = new ItemBedrockOre().setUnlocalizedName("ore_nitrocrystalline").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_nitrocrystalline"); - ore_deepcleaned = new ItemBedrockOre().setUnlocalizedName("ore_deepcleaned").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_deepcleaned"); - ore_seared = new ItemBedrockOre().setUnlocalizedName("ore_seared").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_seared"); - ore_enriched = new ItemBedrockOre().setUnlocalizedName("ore_enriched").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_enriched"); + ore_bedrock = new ItemBedrockOre().setUnlocalizedName("ore_bedrock").setCreativeTab(null).setTextureName(RefStrings.MODID + ":ore_bedrock"); + ore_centrifuged = new ItemBedrockOre().setUnlocalizedName("ore_centrifuged").setCreativeTab(null).setTextureName(RefStrings.MODID + ":ore_centrifuged"); + ore_cleaned = new ItemBedrockOre().setUnlocalizedName("ore_cleaned").setCreativeTab(null).setTextureName(RefStrings.MODID + ":ore_cleaned"); + ore_separated = new ItemBedrockOre().setUnlocalizedName("ore_separated").setCreativeTab(null).setTextureName(RefStrings.MODID + ":ore_separated"); + ore_purified = new ItemBedrockOre().setUnlocalizedName("ore_purified").setCreativeTab(null).setTextureName(RefStrings.MODID + ":ore_purified"); + ore_nitrated = new ItemBedrockOre().setUnlocalizedName("ore_nitrated").setCreativeTab(null).setTextureName(RefStrings.MODID + ":ore_nitrated"); + ore_nitrocrystalline = new ItemBedrockOre().setUnlocalizedName("ore_nitrocrystalline").setCreativeTab(null).setTextureName(RefStrings.MODID + ":ore_nitrocrystalline"); + ore_deepcleaned = new ItemBedrockOre().setUnlocalizedName("ore_deepcleaned").setCreativeTab(null).setTextureName(RefStrings.MODID + ":ore_deepcleaned"); + ore_seared = new ItemBedrockOre().setUnlocalizedName("ore_seared").setCreativeTab(null).setTextureName(RefStrings.MODID + ":ore_seared"); + ore_enriched = new ItemBedrockOre().setUnlocalizedName("ore_enriched").setCreativeTab(null).setTextureName(RefStrings.MODID + ":ore_enriched"); bedrock_ore_base = new ItemBedrockOreBase().setUnlocalizedName("bedrock_ore_base").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_new"); bedrock_ore = new ItemBedrockOreNew().setUnlocalizedName("bedrock_ore").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_new"); bedrock_ore_fragment = new ItemAutogen(MaterialShapes.FRAGMENT).aot(Mats.MAT_BISMUTH, "bedrock_ore_fragment_bismuth").setUnlocalizedName("bedrock_ore_fragment").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_fragment");