Tags
Creators
Details
All versions
0.7.1
Release
0.7.12 months ago 33
Compatibility
Minecraft: Java Edition
1.7.10
Platform
Forge
Supported environments
Client-side
Client and server
Required content
Any compatible version
Changes
CatFrame - 0.7.1
What is changed?
Change version number from previous to 0.7.1
➕Add:
- Implement IconedButton as the IconButton counterpart: centered AbstractComponent icon over Button background/text, icon-sized and explicit-size constructors, builder with size/pos/useVanillaTexture options
- Reject non-90-degree blockstate rotations: add BlockstateKeyValidator.validateRotations (invalid variants fall back to builtin/missing, invalid multipart apply entries dropped), wired into validate() and VanillaModelManager.registerResidentBlockModel to cover blocks without typed state definitions
- Add optional JarUtils integration for cross-mod JSON lang discovery: new JarUtilsLangScanner consumes JarUtils's parallel-built jar index at postInit, filters assets/<domain>/lang/xx_xx.json entries (lowercase codes, foreign domains only) and injects them via LanguageRegister.injectExternal; LangFileEntry now carries resourceDomain/resourceDir so resource-pack reload covers external files; CommonProxy.postInit guards with Loader.isModLoaded, CatFrame gets soft 'after:jarutils' ordering
🔧Fix:
- Fix scissor missing GUI scale factor: multiply scissor coordinates by ScaledResolution scale in AbstractScrollArea.enableScissor and AbstractTextAreaWidget.renderWidget
❗❗❗Deprecated:
- Remove retired vanillaIcons snapshot table from VanillaTextureTracker
- Drop optional jar-utils integration: delete JarUtilsLangScanner and the lib jar, revert after:jarutils ordering and postInit wiring. Lang discovery stays on the original single-threaded jar scan; LanguageRegister.injectExternal is kept as the compat-layer fill-in entry for cross-mod lang files
- Remove LanguageRegister.domain() multi-domain registration concept; replace with single-path load() that scans CatFrame's own jar/directory for assets/catframe/lang JSON files. Simplify domainLangFiles map to a flat langFiles list, drop getDomains(), dedent reloadFromResourceManager loop. CommonProxy.preInit now calls LanguageRegister.load().
- Stage D cleanup: remove dead sprites/findSprite from CatAtlasManager (always-empty ConcurrentHashMap, never-used lookup); remove dead CatSprite override branch in LeavesGraphicsExtension (findSprite was always null since CatAtlas retirement); clean stale imports (ConcurrentHashMap, CatAtlasManager, CatSprite, CatFrame); update plan doc ticking off all Stage A/B/C/D items
Notes
Full Changelog: https://github.com/song682/CatFrame/commits/v0.7.1
Supplementary resources
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:lSH4nVom:DVoujytL"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:lSH4nVom:DVoujytL"
}

