Skip to content

1.0.0

Compare
Choose a tag to compare
@sisby-folk sisby-folk released this 04 Dec 23:09
· 84 commits to 1.20 since this release
23f89c6

This is a partial rewrite of the mod designed for mod and modpack compatibility, as well as general cleanup.

Changes:

  • Mod ID changed to inventory-tabs. Repackaged to folk.sisby.
    • All addons will be broken, so this is precautionary.
  • Redid buildscripts/meta in qfapi
  • Redid config in Kaleido
  • Smaller tabs and buttons
  • Restricted tabs to the top row
  • Removed explicit compatibility with mods like biginv
  • Fixed all entities being added as tabs due to a type-matching bug
  • Refactored TabProviders to use Block/EntityType/Item instead of itentifiers
  • Merged TabManager and TabRenderer into one static class (no injected interface)
  • Implement configurable screen support
  • Remove 10 mixins
  • Removed common-side-looking clientside code (initializer etc)
  • Made tabs responsible for their own rendering (including backgrounds)
  • Made screens responsible for their own tab placement (defaulted duck interface)
  • Refactored the tab provider system to have a purpose-built setup for working with registry values (blocks, items, entity types)
    • Each registry value is allowed to only be assigned to one tab provider, which is frozen after tag reload (or during play for entities)
    • Tab providers will only operate on in-world objects that match their frozen registry values, preventing duplicate tabs.
    • You can manually assign a registry value to have a specific tab provider (or no tab provider) in the config.
  • Reliability for preserving the cursor stack between tabs is greatly improved

New Features:

  • Support for entities that need to be sneak-clicked like chest boats.
  • Full support for rideable entities like horses and chest boats - you can access your own inventory while on a horse, and even open sneak-only inventories like chest boats from a horse (cheat detection warning there ofc)
  • Basic support for item tabs.
    • No vanilla item opens a handled screen on use, so in practice modded items vary wildly and this doesn't consistently work if manually assigned.
    • More types will be added in future to hopefully support some of the modded methods used for screen-items.
  • Extensive configuration support for modpackers.
    • Each individual block, entity, and item, can be force-excluded from all tab providers, or assigned to a specific one.
    • The default logic tab providers use to capture these (e.g. Chest provider capturing AbstractChestBlocks) can be disabled freely (effectively a more fine-tuned whitelist mode)
    • Specific screens can be allowed or denied rendering tabs on them via their handler ID.
  • All block tabs now support custom names via attached item frames and signs.
  • Container screens are mildly modified by default (config option available for compat) so that they're the same height and alignment as other screens, instead of 1 pixel taller and lower.
    • An extra option is available to compress large chest screens by removing both titles - this is useful in smaller windows or in high GUI scales, especially when the mod is used alongside recipe viewers like EMI which struggle with large chests.

Full Changeset: 23f89c6