Skip to content

Comments

feat: implement belt upgrades#70

Merged
Jamalam360 merged 4 commits intomainfrom
feat/tiers
Jan 18, 2026
Merged

feat: implement belt upgrades#70
Jamalam360 merged 4 commits intomainfrom
feat/tiers

Conversation

@Jamalam360
Copy link
Member

closes #34

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request implements a belt upgrade system for the Utility Belt mod. The feature allows players to craft a new intermediate item (Belt Pouch) and use it to upgrade their utility belts in a smithing table, increasing the number of available slots from an initial size of 4 up to a configurable maximum of 6.

Changes:

  • Added a new Belt Pouch item used both for crafting belts and upgrading them
  • Refactored the belt inventory system to support dynamic sizing with configurable initial and maximum sizes
  • Implemented smithing table integration for upgrading belts with pouches

Reviewed changes

Copilot reviewed 21 out of 40 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
gradle.properties Version bump from 3.0.0-beta.1 to 3.0.0-beta.2
datagen/src/main/java/io/github/jamalam360/utility_belt/datagen/Recipes.java Added pouch crafting recipe, updated belt recipe to require pouches, and created smithing upgrade recipe
datagen/src/main/java/io/github/jamalam360/utility_belt/datagen/Models.java Added model generation for the pouch item
common/src/main/resources/utility_belt.mixins.json Registered SmithingMenuMixin for upgrade logic
common/src/main/resources/assets/utility_belt/textures/* Added/updated texture files for pouch, belt, and GUI sprites
common/src/main/resources/assets/utility_belt/lang/en_us.json Added translations for pouch, size tooltip, and reorganized config keys with client/common prefixes
common/src/main/java/io/github/jamalam360/utility_belt/state/ServerStateManager.java Updated to use dynamic belt size from config when creating empty inventory
common/src/main/java/io/github/jamalam360/utility_belt/screen/UtilityBeltMenu.java Refactored slot layout to support dynamic number of belt rows based on inventory size
common/src/main/java/io/github/jamalam360/utility_belt/mixin/SmithingMenuMixin.java New mixin to handle belt upgrade logic, size validation, and inventory preservation
common/src/main/java/io/github/jamalam360/utility_belt/UtilityBeltItem.java Added size component tracking and inventory resizing logic
common/src/main/java/io/github/jamalam360/utility_belt/UtilityBeltInventory.java Removed fixed size constraint, added dynamic sizing with copyWithSize method
common/src/main/java/io/github/jamalam360/utility_belt/UtilityBelt.java Added POUCH_ITEM, UTILITY_BELT_SIZE_COMPONENT_TYPE, and COMMON_CONFIG
common/src/main/java/io/github/jamalam360/utility_belt/CommonConfig.java New configuration class for server-side settings (initial/max belt size)
common/src/generated/resources/data/utility_belt/recipe/* Generated recipe JSON files for pouch, belt, and upgrade recipes
common/src/generated/resources/data/utility_belt/advancement/* Generated advancement files for recipe unlocking
common/src/generated/resources/assets/utility_belt/models/item/pouch.json Generated model file for pouch item
common/src/client/java/io/github/jamalam360/utility_belt/client/state/ClientStateManager.java Updated to use dynamic belt size from config
common/src/client/java/io/github/jamalam360/utility_belt/client/screen/UtilityBeltScreen.java Updated to render dynamic sized GUI with sprite-based backgrounds
common/src/client/java/io/github/jamalam360/utility_belt/client/render/BeltRenderer.java Updated config reference from CONFIG to CLIENT_CONFIG
common/src/client/java/io/github/jamalam360/utility_belt/client/render/BeltHotbarRenderer.java Refactored to render variable-sized hotbar with top/middle/bottom sprites
common/src/client/java/io/github/jamalam360/utility_belt/client/network/ClientNetworking.java Updated config reference from CONFIG to CLIENT_CONFIG
common/src/client/java/io/github/jamalam360/utility_belt/client/mixin/MinecraftMixin.java Updated config reference from CONFIG to CLIENT_CONFIG
common/src/client/java/io/github/jamalam360/utility_belt/client/UtilityBeltClient.java Renamed CONFIG to CLIENT_CONFIG with "client" config category
common/src/client/java/io/github/jamalam360/utility_belt/client/ClientConfig.java Renamed from Config class for clarity
README.md Updated documentation with upgrade instructions and new crafting recipes
Comments suppressed due to low confidence (1)

common/src/client/java/io/github/jamalam360/utility_belt/client/screen/UtilityBeltScreen.java:20

  • The imageWidth and imageHeight fields need to be set in the constructor to reflect the dynamic GUI size based on the number of belt rows. The imageWidth should be 176 and imageHeight should be 16 + rows * 18 + 96 (top sprite + slot rows + bottom sprite). Without setting these values correctly, the screen won't be properly centered and mouse interactions may not align with the rendered GUI elements.
	public UtilityBeltScreen(UtilityBeltMenu menu, Inventory inventory, Component title) {
		super(menu, inventory, Component.translatable("container.utility_belt.utility_belt"));
	}

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@Jamalam360 Jamalam360 merged commit f17abbc into main Jan 18, 2026
0 of 2 checks passed
@Jamalam360 Jamalam360 deleted the feat/tiers branch January 18, 2026 17:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Make different tiers of tool belt

1 participant