0.6.5
Curse Maven Snippet
What's new
CatFrame - 0.6.5
What is changed?
Change version number from previous to 0.6.5
➕Add:
- Add group-claim SPI: IRenderGroupHandler (claim + flush with RenderSubmitView) in model.render.api with OIT boundary contract (collector/executor/gatekeeper, inline never claimable, background-thread-zero-GL), RenderGroupHandlerRegistry with slot arbitration snapshot, FeatureRenderDispatcher extracts flushGroup and falls back to built-in path on no-handler/exception
- Replace RenderType enum with runtime RenderTypeRegistry (CopyOnWriteArrayList + volatile sorted snapshot, explicit sortKey 0/1/2/3 preserving flush order), RenderSubmit.type now RenderTypeKey entry reference, SubmitNodeStorage EnumMap to HashMap keyed by registry entries, adapt FeatureRenderDispatcher/UniformRenderPipeline/RenderCommandBuffers
- Systemize render extension chain with priority contract (DEFAULT_PRIORITY=0, BUILTIN_PRIORITY_BASE=-1000, stable sorted insert) and per-extension Throwable isolation in ModelRenderRegistry; ThreadLocal state in DisplayTransform/GuiLight/Tint extensions; ConcurrentHashMap data sources (textureIcons, spriteCache, stateBlockData, loadedItemStates, ModelRegistry registries, LeavesGraphics maps); drop redundant bindTexture in flushInline; add isEscapeKeyPressed/isSpaceKeyPressed to KeyTypedEvent
- Add section 8: GuiGraphicsExtractor dependency graph review (DC1-DC7) -- cover 19 dependents and 18 imports, identify bidirectional coupling with FeatureRenderDispatcher, MATRIX_BUFFER duplication, ItemGuiDrawer abstraction inversion, TooltipComponent silent discard, hasFoil hot-path NBT chain, EntityPipRenderer scissor contract drift, and OversizedItemPipRenderer empty shell delegation
🔧Fix:
- Add ItemPhysic compat: replay its physical drop rotation in RenderJsonItemModel ENTITY render while keeping CatFrame JSON model and ground display transform; new compact.itemphysic.ItemPhysicCompact resolves ClientPhysic.tick/ItemDummyContainer.rotateSpeed/ServerPhysic.getFluid reflectively with zero compile-time dependency
- Fix destroy decal UV orientation in QuadWriter: vertical faces now use V = 16 - y16 (vanilla binds V(0) to the top edge, previously upside down) and NORTH/EAST faces flip U (16 - x16 / 16 - z16) so the decal wraps continuously around the block perimeter, matching vanilla renderFace semantics
- Add BLOCK_DESTROY phase with destroy overlay rendering: BlockDestroyExtension (full-bright white decal via ThreadLocal icon injection), block-space decal UV projection in QuadWriter, BLOCK_ATLAS_DESTROY render type registration, resolveBlockModel extraction plus renderBlockDestroy in RenderDispatcher, renderBlockUsingTexture mixin interception, and GuiLightExtension gating on the destroy pass; bump mod version to 0.6.5-ThreadSafe
- Add block destroy texture rendering for CatFrame pipeline: new BLOCK_DESTROY phase and BlockDestroyExtension (icon override, full brightness, white color), block-space projected UV branch in QuadWriter, renderBlockDestroy in RenderDispatcher sharing the resolved model paths, and MixinRenderBlocks injection into renderBlockUsingTexture to intercept the vanilla destroy pass
❗❗❗Deprecated:
- Remove ItemPhysic crash-on-load detection (revert of the rejectItemPhysic part of 2933964d): drop CompactBase.rejectItemPhysic()/classExists and its preInit call in CatFrame; keep the ItemPhysicCompat removal intact. Compatibility with the Kotmatross Mixin fork is deferred to a future combined plan
- Revert ItemPhysic compat (6e7c007c) and reject the mod outright: CompactBase.rejectItemPhysic() crashes in CatFrame.preInit when ItemPhysic is loaded (Loader probe + class-existence fallback) since its ASM doRender takeover structurally conflicts with CatFrame's IItemRenderer dropped-item render
Notes
Full Changelog: https://github.com/song682/CatFrame/commits/v0.6.5
This mod has no additional files