-
-
Notifications
You must be signed in to change notification settings - Fork 512
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
1.21 migration notes (checklist/wishlist)
- Loading branch information
1 parent
54d640b
commit c37021e
Showing
1 changed file
with
80 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
### Mandatory porting tasks | ||
* Java 17 -> Java 21 | ||
* switch item data from NBT to item components | ||
* codecs everywhere | ||
* Forge -> NeoForge checklist: | ||
* toolchain, packages: https://neoforged.net/news/20.2release/ | ||
* events system: https://neoforged.net/news/20.2eventbus-changes/ | ||
* registries: https://neoforged.net/news/20.2registry-rework/ | ||
* mixins: https://neoforged.net/news/20.3release/ | ||
* capabilities: https://neoforged.net/news/20.3capability-rework/ | ||
* networking: https://neoforged.net/news/20.4networking-rework/ | ||
* major 1.20.5 changes (item components, Java 21, and more): https://neoforged.net/news/20.5release/ | ||
* 1.21: TODO | ||
* Fabric/vanilla update checklist: | ||
* 1.20.2 (mostly networking): https://fabricmc.net/2023/09/12/1202.html | ||
* 1.20.3/.4 (/tick support, block API changes, etc.): https://fabricmc.net/2023/11/30/1203.html | ||
* 1.20.5/.6 (Java 21, item components, networking again): https://fabricmc.net/2024/04/19/1205.html | ||
* 1.21 (enchantments, data pack paths, rendering): https://fabricmc.net/2024/05/31/121.html | ||
|
||
### Technical/internal changes | ||
* Add MixinExtras dependency to allow for less hacky feature/fix implementations, e.g.: | ||
* zoom for Botania bows | ||
* apothecary filling via dripstone | ||
* Use convention tags v2, since Fabric and NeoForge unified their tag systems | ||
* ensure existing resources are tagged properly (e.g. manasteel ingots as `#c:ingots/manasteel`) | ||
* remove platform-specific tags (except for mod compatibility where we know they stay on only one of the loaders) | ||
* update recipes to preferably use item tags, where it makes sense | ||
* update Vitreous Pickaxe to check for `#c:glass_blocks` and `#c:glass_panes`, ideally wrapped in a separate block tag | ||
* maybe also set it as appropriate tool for glass blocks (in addition to the usual pickaxe blocks) | ||
* maybe add other glass-like blocks without a vanilla tool to it (glowstone, sea lanterns, redstone lamp, beacon) | ||
* Transactional mana transfers and corporea requests | ||
* Corporea requests should be operating within Fabric Transfer API transactions instead of defining top-level transactions per request | ||
* Mana requests (and probably also block providers) should be transactional within a player's inventory to avoid awkward interactions in low-mana situations | ||
* Can we maybe implement some kind of "attempt to put item back if transaction is rolled back" feature into NeoForge Corporea? | ||
* Move certain block entity attributes into block state properties | ||
* floating flower island type (including a new type for enchanted soil) | ||
* mana spreader scaffolding cover | ||
* animated torch (target) direction (maybe, would make the initialization less weird, and allow observers to detect change in direction) | ||
* Flattern certain block entity attributes or block properties into block types | ||
* mana spreader cover colors (to be able to tag them as `#c:dyed` and `#minecraft:dampens_vibrations`) | ||
* mana pool dye colors (maybe even turn "fabulous" into a separate "color" somehow?) | ||
|
||
### Feature candidates (potentially breaking changes) | ||
* nice-to-have Patchouli features we could use, that are yet to be merged: | ||
* generic advancement trigger for reading a book (PR #715) | ||
* proper localization for book editions (PR #648) | ||
* Runic altar recipes: | ||
* reagent definitions in recipe instead of hard-coded Livingrock | ||
(recipe viewer support already exists, it just needs to be hooked up once the additional input is available) | ||
* support generic catalyst items for altar recipes, i.e. items which are required but will be returned upon completion of the recipe | ||
* change rune inputs to be catalysts | ||
* Figure out a way to not just make a head for a player's current skin, but also allow historic skins somehow | ||
* Clayconia upgrade (somehow support mud, maybe even recipe support, but avoid becoming another Orechid variant) | ||
* pre/post mcfunction support for block-swapping recipes (Pure Daisy, Marimorphosis, Orechids) | ||
* maybe even for item outputs? (petal apothecary, runic altar, mana infusion, terra plate, potentially clayconia) | ||
* Paintslinger Lens support for connected blocks, block entities, and generic entities | ||
* replace hard-coded sheep/spark handling with registered painting functions for entity types | ||
* needs to pick single entity or AoE radius (the latter should scale by burst size) | ||
* default support: sheep, sparks, shulkers | ||
* maybe default compat for Quark's dyed item frames? | ||
* add support for connected blocks (e.g. beds, some kind of painted chests, modded maybe multi-blocks) | ||
* add support for block entities (e.g. shulker boxes, beds, moving paintable blocks) | ||
* won't support covered mana spreaders or dyed mana pools, since they capture the burst – unless… | ||
* switch more block/item processing flowers to use individual tags (or even recipes) instead of hard-coded block/item types or generic tags | ||
* Hydroangeas (fluid tag `#botania:hydroangeas_consumable`, including just water by default) | ||
(also upgrade infinite source detection to query the consumed fluid's actual spreading logic) | ||
* Thermalily (fluid tag `#botania:thermalily_consumable`, includes only lava by default) | ||
* Munchdew (block tag `#botania:munchdew_consumable`, includes only vanilla leaves tag by default) | ||
* Clayconia (block tags `#botania:clayconia_converts_to_clayball` and `#botania:clayconia_converts_to_clay_block`, unless we decide to go the recipe route) | ||
* Bubbell (switch to fluid tag `#botania:bubbell_displaceable`, maybe even support drying waterlogged blocks) | ||
* fake air blocks will need to remember which fluid they actually displaced | ||
* armor trim support | ||
* redesign of the Botania armor models to match UV mapping of vanilla armors, such that non-vanilla parts are moved to unused areas of the texture | ||
* add Botania trim materials (probably manasteel, elementium, terrasteel, mana diamond, dragonstone, and the quartz variants) | ||
* Orechid recipe adjustments | ||
* remove ancient debris from Orechid Ignem (replace with Loonium in Bastion Remnant) | ||
* maybe extend biome bonus weight support from Marimorphosis to all Orechid-like recipes | ||
* adjust Orechid stone recipes accordingly (more emeralds in mountains, more copper in dripstone caves, etc.) | ||
* maybe add data-driven Orechid configurations to replace hard-coded GoG changes (mana cost per input item, operation speed) | ||
* GoG could eventually become a data pack instead of having all kinds of exceptions hard-coded into Botania |