MinicraftPlus / minicraft-plus-revived

Minicraft+, an extension of Notch's original minicraft project, with tons more features.
GNU General Public License v3.0
484 stars 97 forks source link

Advanced Inventory #718

Open BenCheung0422 opened 1 week ago

BenCheung0422 commented 1 week ago

Background

Currently, the inventory implementation is immature and flexible enough for other functionalities, including equipment and hotbar slots. However, this is somewhat different from what I proposed previously[^1].

Suggestions

Now, the new inventory system would focus on both usability, convenience, aesthetics and flexibility. Mostly mentioned feature would be having more slots to switch on the player hand in the hotbar. In addition, to support more HUD related features or equipment, having a flexible hotbar system is quite essential here. If not, the implementation can be clunky and complex. Based on suggested features, this is the more complete proposal on the new inventory system.

Hotbar

Mainly there are 2 schemes for the hotbar. Adding more slots to the hotbar has been mentioned couples of times, so it is the basic part. There is no much plan about the non-dominant hand, but shield may be implemented.

Scheme A: Hands & Slots
Main/Dominant Hand
Either empty or one of the slots selected
  • When empty: Player can either get a slot of item(s), switch to other equipment or select a slot
  • When a slot is selected: Player can only unselect/switch the slot to get other items on hand; or use/drop the slot for usage
  • When not empty but not a selected slot: Player can only stack the slot with slots or tidy all slots in inventory, and cannot select an occupied slot
Non-dominant Hand
May be equipped by dominant hand or in inventory
Slots
All slots can be equipped by dominant hand or inventory, and slots are distinct from the ones in inventory, like in Minecraft and Terraria
Scheme B: Simply Slots
Like how Minecraft and Terraria do, just switching slots in the inventory. All slots can be equipped in the inventory.

In fact, Scheme A is more flexible for extra equipment switching. When the hand can be empty easily, extras equipment can also be switched in the similar way.

The number of hotbar slots also decide the number of storage slots in inventory as a multiple of the number of hotbar slots (for aesthetics).

Inventory Tabs

The new GUI system can make the menus scalable, so more elements can be fit in the same view. Mostly, the tabs would be adjacent to the main inventory slots area, like in Minecraft. This way, player can equip and access the items conveniently with the tabs.

Several tabs would be available at first. The first thing is the personal crafting area, would be migrated into the second tab and removed from hotkey as a separate menu.[^2] The first tab would be the primary slots of equipment, including armor and perhaps the non-dominant hand. Other tabs can be added along with more feature additions.

Storage Menu & Slots

Due to the advanced layouts of the menus, the slot entries have to be less verbose. This means, the item names would be hidden from entries and instead displayed on description menu/tooltip for allowing more visible spaces for other elements, or else the menus may be either too small or unhuman. Then, the slot menu would become two-dimensional and the slots are fixed, including container menus, empty slots could appear in the middle. Stack merging, swapping and splitting would also be supported.[^3] However, searching ability would be disabled from these inventory menus but could still be available in creative mode inventory. Full keyboard controls would still be supported on this layout, but may be more hotkeys and can still benefit from 2D slot menus (reduced scrolling time). I guess the keyboard controls may be similar to controller controls on Minecraft Bedrock, this layout benefits the most on mouse with keyboard. (This is actually another topic.) One more point is that the item slots can be more intuitive and clear at a glance.

Inventory Type

As ideas, there are actually 3 types of inventory system (suggested by @JamesTDG):

Here, sized or shaped storage does not really fit the Minicraft game system while the weight capacity system may be complex to be implemented in game (but can be as a mod). At the moment, stack limit has already been implemented in game by #364, but not yet fully scalable. The actual full use and adaption of feature may be reliant on #432. In fact, the stack limit system may not actually be completely scalable, based on the system seen in Applied Energistics and bundles (Minecraft). We have 2 routes here:

Equipment

Currently existing proposals include the power glove and maps. If those are implemented as equippable tools, this system can be beneficial. Players could (un)equip them in the inventory tabs (may also by dominant hand) and use them on hotbar/HUD. This includes the new armor system in which armors can be taken off. Still, more equipment items can be added in the future.

Conclusion

To sum up, these are the plans that could be done to overhaul the current inventory system in order to expand the capabilities for more features. Also, this also adds numerous features suggested by players, but better migrated and adapted into system. The number of available base inventory would be decided with expandabilities taken into consideration. This is a quite important feature update to the gameplay.

See also

[^1]: Discord post: "Advanced inventory menu" This focused on an optional menu style with GUI style option. [^2]: Discord post: "Merging Crafting Menu into Player Inventory Menu" [^3]: Discord post: "Inventory item stacking support" Previous post on the same topic was named "Inventory stack operation support".

JamesTDG commented 4 days ago

I'd recommend including my idea I left as a comment in #567 under the see also tab, since I listed three different formats that could be potentially used for the inventory system, should it be revamped

BenCheung0422 commented 4 days ago

Updated the section for the inventory systems mentioned.