-
Notifications
You must be signed in to change notification settings - Fork 0
/
StepByStepPorting.txt
58 lines (55 loc) · 3.09 KB
/
StepByStepPorting.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
PORTING FROM 1.20.1 to 1.20.6
==============================
Where old_version = 1.20.1 and new_version = 1.20.6.
Details are in the CombinedUpdatePrimer1.20.6.odt document.
1. Make sure old version builds, still.
2. Run remapping script BEFORE any other updates.
3. Update gradle version: ./gradlew wrapper --gradle-version=8.8
4. Update userdev plugin to latest stable neogradle version.
5. Update gradlew, gradlew.bat, and the ./gradle directory.
6. Update build.gradle, settings.gradle, gradle.properties.
7. Rename mods.toml to neoforge.mods.toml. Don't forget to update
build.gradle with the new name.
8. Delete pack.mcmeta.
9. Comment out any access transformers until we know if we need them.
10.Main mod class:
A. add listener for onRegisterItems() and any other event
subscribers in ModEventSubscriber() or ForgeEventSubscriber().
B. register revised config class
11.Revise primary config class; it now contains everything the old
ServerConfig, ConfigHelper, and ConfigHolder classes did.Also revise
ClientConfig into primary-client config class.
A. if any config values are used to define items, blocks or materials,
they must be loaded from a STARTUP type config.
12. Revise init classes. Tool tiers and armor materials have changes, so..
A. Revise Tool tiers.
B. Revise Armor Materials.
C. create NEED_X_TOOL and INCORRECT_FOR_X_TOOL tags as needed.
Completely replaces TierSortingRegistry.
13. Update CreativeTabs init. RegistryObject is now DeferredHolder.
14. Update any ore-type tags from forge tags to common (c) tags.
15. Update any buckets. All init should be done by now.
16. VillagerTrades really does need that access transformer.
17. Update any client event subscribers. TODO how to addListener()?
18. Enchantments have changed; redo any Enchantment code to properly use
ItemEnchantments.
19. DATAGEN
A. in the main DataGenerator class, new SimpleLootTableProvider() has
an extra argument, lookupProvider.
B. In BlockTags provider, most forgeBlockTag() will be converted to
cBlockTag(). Use official tag constants when available.
C. In the ItemTags provider, most forgeTab() will be converted to cTag().
There are many official neoForge constants to be used.
D. In RecipeProvider,
i. parameter type for buildRecipes changes from Consumer<> to
RecipeOutput.
ii. RecipeProvider constructor has a 2nd argument now.
iii. Remove all flag() args from setbuilder methods. If users want
to disable recipes, that's what datapacks are for. Toward the
same end, toss any ConditionalRecipe builders.
E. LootTableSubProviders probably don't need changing.
F. BlockStateProviders probably don't need changing.
G. ItemModelProviders probably don't need changing.
20. Change all biome_modifers to 'neoforge' instead of 'forge'. Change directory name, too.
21. REPLACE loot injection tables with Global Loot Modifiers. Use datagen to create loot tables
and loot modifiers. See SimpleCoreLib for examples.