promotional bannermobile promotional banner

CatFrame

A shared frameworks backporting Modern Minecraft Systems to the archaic 1.7.10 version.
Back to Files

0.10.10

File nameCatFrame-0.10.10.jar
Uploader
dfdvdsfdfdvdsf
Uploaded
Oct 24, 2026
Downloads
10
Size
1.5 MB
Mod Loaders
Forge
File ID
9311431
Type
R
Release
Supported game versions
  • 1.7.10

Curse Maven Snippet

Forge

implementation fg.deobf("curse.maven:catframe-1566850:9311431")

Learn more about Curse Maven

What's new

CatFrame - 0.10.10

What is changed?

Change version number from previous to 0.10.10

➕Add:

  • Phase 4c: finish per-property meta byte-mapping migration. Add TableMetaProperty<V> (non-linear raw->value lookup table + fallback) for String-valued blocks. Restate remaining vanilla positional MetaCodec sites to distributed byte mapping: sand/wall (clamp), dirt/tallgrass/quartz_block (raw tables), yellow_flower (constant), and both comparators (facing+mode+powered bit fields). Decodes are byte-identical to the prior lambdas.
  • Stage 4 (parts A+B) of blockstate refactor: restate VanillaStateDefinitions using property-level metadata byte mapping, removing the internal positional MetaCodec lambdas. Part A: linear/bit-field/clamp blocks (base pillar/stairs/slab, logs, single-variant clamps, stone/wooden/double slabs, anvil, red_flower, double_plant, trapdoor, door, cauldron, redstone wire, repeaters, pistons, fence gate, pumpkins) now use MappedMetaProperty/BooleanFlagProperty/EnumMetaProperty<Direction.Axis> so each property decodes its own bit field (no .metaCodec). Part B: non-linear facing tables (torch/redstone_torch, lever, ladder, dispenser/dropper, button, furnace, hopper) migrated to EnumMetaProperty.withTable over Direction, plus a new TorchFacing enum for the ground-standing case; powered/open flags use BooleanFlagProperty. Coexists with the legacy positional codec (kept for the residual coupled/constant blocks) which still takes precedence.
  • Add GTNHLib-style meta-property foundation (Stage 1 of blockstate refactor): new StringRepresentable interface implemented by Direction/Axis; Property gains value<->name codec (getName(T)/getValueByName) with Boolean/Integer/Enum overrides; new MetaBlockProperty base plus BooleanFlagProperty, IntegerRangeProperty, MappedMetaProperty, EnumMetaProperty to push metadata byte-mapping down to each property. Purely additive, compileJava passes.

🔧Fix:

  • Fix container data-slot sync in AbstractContainerMenu: override updateProgressBar to write S31PacketWindowProperty values back into ContainerData on the client; restore vanilla mode-1 guards in onQuickMove (slot -999 drop, negative index/button rejection, canTakeStack check) to prevent server-side OOB and slot-restriction bypass; push full data-slot state to newly attached ICrafting listeners in addCraftingToCrafters like vanilla ContainerFurnace.
  • Stage 3 of blockstate refactor: BlockStateInheritance.resolve now detects distributed byte mapping — when every static (non-dynamic) merged property is a MetaBlockProperty, inheritance becomes a plain property union with no whole-definition MetaCodec, so multi-fragment merging no longer requires positional codec splicing (each property decodes only its own bit field). The legacy positional mergeCodecs path and its missing-codec warning are preserved and still used when any static property is not a MetaBlockProperty, keeping un-restated vanilla definitions working until Stage 4.

❗❗❗Deprecated:

  • Remove now-unused private helpers singleVariant(...) and clampCodec(...) from the vanilla state definitions; every block has been migrated to per-property meta byte mapping, so their only callers are gone.

Notes

Full Changelog: https://github.com/song682/CatFrame/commits/v0.10.10