
CatFrame
A shared frameworks bringing 1.8‑style models and flexible UI components to legacy modding.
CatFrame
A Modern Rendering & UI Framework for Minecraft 1.7.10
CatFrame is a comprehensive rendering and UI framework for Minecraft 1.7.10, providing a full backport of the 1.8+ JSON model pipeline, an extensible blockstate system, an enhanced multi‑layer item renderer, and a modular UI component toolkit, for all of my works.
It serves as a foundational library for advanced mod development, enabling clean, data‑driven rendering and modern GUI design on a legacy version of Minecraft.
Rendering & Model System
CatFrame implements a complete 1.8‑style JSON model architecture:
- Model inheritance (
parent) with full merging oftextures,elements, anddisplay - Blockstate JSON with property‑based variants, rotations, UV lock, weighted randomness, and multipart logic
- Runtime state mapping via
IBlockStateProvider, allowing metadata/world state → variant resolution - Automatic model baking into
BakedQuadwith Mixin‑based integration into vanilla block/item rendering - Namespace‑based resource loading (
models/,blockstates/,model_mappings.json) - Texture collection & stitching during
TextureStitchEvent - Full display transform support for GUI, ground, fixed, first‑person, third‑person, and custom contexts
This system eliminates the need for ISBRH/TESR renderers and enables fully data‑driven block and item visuals.
ItemModern
Enhanced Item Rendering, CatFrame extends the vanilla item renderer with:
- Unlimited texture layers (not limited to 1–2 like vanilla)
- Per‑layer color tinting
- 2D GUI rendering + 3D in‑hand transforms
- Full compatibility with JSON item models
- Automatic multi‑pass rendering via
getRenderPasses()andgetColorFromItemStack()
This allows complex item visuals (weapons, tools, overlays, dyeable layers) without custom rendering code.
UI Framework
CatFrame includes a modular UI toolkit used by CreateWorldUI and available for any mod:
GuiCyclableButton<T>
A type‑safe cycling button with scroll‑wheel support, customizable value‑to‑text formatting, and update callbacks.
Ideal for option selectors, difficulty toggles, mode switches, and world‑creation parameters.
ContentPanelRenderer
A shared renderer for modern panel layouts:
- Header/footer separators
- Tiled backgrounds
- Custom textures
- One‑call
drawContentPanel()convenience method
Useful for structured option panels and grouped UI sections.
Tab System
A complete multi‑tab GUI framework:
Tabinterface for custom logicAbstractScreenTabfor easy implementationTabManagerfor switching, input routing, and resize persistenceTabBarfor customizable tab bars (solid color, tiled textures, custom tab button textures)TabRegistryfor registering tabs from external mods
Designed for complex screens, configuration menus, and multi‑section interfaces.
Credits
- 草莓龍醬 & AmarokIce for the json model support.
