Skip to content

Minecraft 26.2 Fabric port — offered for adoption#145

Draft
Arilas wants to merge 6 commits into
DynamicTreesTeam:1.21.1from
Arilas:port/26.2-fabric
Draft

Minecraft 26.2 Fabric port — offered for adoption#145
Arilas wants to merge 6 commits into
DynamicTreesTeam:1.21.1from
Arilas:port/26.2-fabric

Conversation

@Arilas

@Arilas Arilas commented Jul 24, 2026

Copy link
Copy Markdown

Minecraft 26.2 Fabric port — offered for adoption (draft)

Working port of the 1.21.1 addon to Minecraft 26.2 on Fabric, built against the DT core 26.2 port offered in DynamicTreesTeam/DynamicTrees#1209. Draft because it cannot build in CI against published artifacts yet — it depends on locally-published DT 26.2 artifacts. Offered as a reference/head-start for when the team tackles 26.x.

Highlights

  • Build converted NeoGradle→Fabric Loom 1.17.17 (Fabric-only; no NeoForge target in this branch), Java 25, MC 26.2.
  • Mod init converted to DT 1.8's Fabric DynamicTreesAddonEntrypoint; former mod-bus registry events are direct registry calls in onDynamicTreesPreSetup; post-load species linking moved to Species.REGISTRY.runOnNextLock(...).
  • Two-version vanilla API jump applied (ResourceLocationIdentifier, getUnitVec3i, new getNodeInflator(SimpleVoxmap, int maxRadius) signature, DynamicLeavesBlock ctor changes, vanilla SoundType replacing DeferredSoundType, etc.).
  • Datagen deleted; src/generated/resources merged into main resources (tags/blockstags/block).
  • Disclosed scope cut: giant-mushroom content is stripped because DynamicTreesPlus has no 26.x version — DTBOPPlusRegistries, GlowShroomCapProperties, GlowshroomSpecies deleted; glowshroom/toadstool/mini_brown_mushroom species JSONs + loot parked in _disabled_dtplus/ at repo root for easy restoration once DT+ is ported. Tree feature cancellation for all BOP biomes is intact.
  • Known data nit on 26.2: biomesoplenty:rainbow_birch_leaves no longer exists in BOP 26.2.0.0.26 — its loot reference fails to parse (harmless; rainbow birch itself generates).

Verified: ./gradlew build green; loads in a full production instance alongside BOP fabric 26.2.0.0.26 — all species register on the world-load treepack pass; worldgen replacement works in BOP biomes.

🤖 Generated with Claude Code

Arilas and others added 6 commits July 24, 2026 21:05
… 9.5.1

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ources

- DynamicTreesBOP now implements DynamicTreesAddonEntrypoint (dynamictrees entrypoint)
- Registry/TypeRegistry events replaced with direct registry calls in DTBOPRegistries.setup();
  post-load species linking moved to Species.REGISTRY.runOnNextLock
- Deleted DTBOPPlusRegistries, GlowShroomCapProperties, GlowshroomSpecies (DT+ has no 26.x port)
- Parked dtplus-typed tree JSONs in _disabled_dtplus/, removed dtplus-gated worldgen entries
- Merged src/generated/resources into src/main/resources, deleted datagen output dir
- neoforge.mods.toml replaced with fabric.mod.json
- ResourceLocation -> Identifier and other 26.2 API renames

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Direction#getNormal -> getUnitVec3i, DynamicLeavesBlock properties accessor,
  fallOn double, entityInside InsideBlockEffectApplier, vanilla SoundType for cobweb leaves
- NodeInflatorPoplar respects maxRadius param from new getNodeInflator signature
- Parked glowshroom/toadstool cap+seed loot tables (blocks/items stripped with DT+)
- data/dynamictrees/tags/blocks -> tags/block (1.21+ singular convention)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…model format

The 1.21-era datagen output (vanilla blockstates pointing at
'loader'-style model JSONs) no longer parses on 26.2: the models bake
empty with 'Missing texture references ... particle' warnings and the
branches render broken. Inline the model type and textures into the
blockstates using DT core's 26.2 codec format ('type' for NeoForge,
'fabric:type' for Fabric, plus 'family' so thick trunks bake), and drop
the obsolete loader model JSONs. 24 branches (incl. stripped) and the
redwood surface root converted; the palm frond loader model is left
as-is since core has no 26.2 loader for palm fronds yet.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The 'dynamictrees:large_palm_fronds' loader does not exist on 26.2 yet
(commented out in DT core on both loaders), so the frond model baked
empty with a missing-particle warning. Parent it to BOP's palm leaves as
a clean-parsing placeholder until core reintroduces the frond loader.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
BOP 26.2 dropped rainbow birch and aspen entirely. dtbop still named
biomesoplenty:rainbow_birch_leaves and the two saplings, which cost us the
dtbop:aspen species outright — DT's SeedSaplingRecipeDeserializer tries
Block, then Item, then JsonObject, so a primitive_sapling naming a missing
block fails with the misleading "Json element was not a json object".

- Repoint rainbow birch at vanilla birch leaves (leaves properties,
  blockstate, sapling model, block loot table); aspen already used
  yellow_maple_leaves, which still exists.
- Drop the aspen and rainbow birch primitive_sapling recipes: there is no
  longer a BOP sapling to convert to or from. Both species keep their own
  generated DT sapling.
- Restore the stick drop in flowering_oak_undergrowth_leaves. It was
  regenerated as minecraft:air upstream, and 26.2's loot codec rejects air
  outright, discarding the whole table so the block dropped nothing at all.
- Migrate environment_factors to preferred_climate across 41 species. DT
  26.2 parses environment_factors only to warn that it is gone. The old
  maps are mostly penalties, and "suffers in heat" is what temperate
  already means, so a non-temperate climate is assigned only where a factor
  is explicitly above 1.0 — reading penalties as preferences would have
  moved most of the pack to cold.
- Pad large_water_roots from 68x48 to a power-of-two 128x64, anchored top
  left with every source texel unchanged, and declare the new texture_size
  so the UVs still address the same texels. A single non-power-of-two
  sprite was dragging the whole block atlas from mip level 4 down to 2.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant