Skip to content

[Feature Request]: Add support for geometry key API (1.21.5+) #22

@XFactHD

Description

@XFactHD

Is your feature request related to a problem?

In 1.21.4 and earlier versions, FramedBlocks requested the ModelData from the model used as the camo of a framed block and tried to extract the connected textures data for any connected textures it was aware of. This required dedicated support for every connected textures mod, either in FramedBlocks itself or in the connected textures mod.
In 1.21.5 the baked model extensions were reworked and the model-level ModelData getter was removed in favor of passing the level and position context directly to BlockStateModel#collectParts(). To allow caching like this to still function, an API was added to allow mods like FramedBlocks to request a "geometry key" from another model which they then include in their cache key.

Solution(s)

AthenaBakedModel should implement BlockStateModelExtension#createGeometryKey() and return an object that contains the model instance (required as the key is intended to be globally unique) and the data required to uniquely identify a particular connected textures state (providing the NullableEnumMap<Direction, Map<Direction, List<AthenaQuad>>> like was the case previously is fine). The returned object must also implement equals() and hashCode() correctly in order to be suitable as a cache key.

Describe alternatives you've considered

No response

Mod Version

4.3.0

Mod Loader Version

1.21.5 - 21.5.72-beta

Mod Loader

NeoForge

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions