From fe57475d40236f7ef8968ed9452282316ed9412f Mon Sep 17 00:00:00 2001 From: TropheusJ Date: Thu, 20 Feb 2025 16:31:49 -0500 Subject: [PATCH] make root registry private, improve comments --- .../create/api/registry/CreateBuiltInRegistries.java | 3 ++- src/main/resources/coremods/better_registry.js | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/simibubi/create/api/registry/CreateBuiltInRegistries.java b/src/main/java/com/simibubi/create/api/registry/CreateBuiltInRegistries.java index e090124505..dd83aeca5f 100644 --- a/src/main/java/com/simibubi/create/api/registry/CreateBuiltInRegistries.java +++ b/src/main/java/com/simibubi/create/api/registry/CreateBuiltInRegistries.java @@ -25,7 +25,7 @@ import net.minecraft.resources.ResourceKey; * @see CreateRegistries */ public class CreateBuiltInRegistries { - public static final WritableRegistry> ROOT_REGISTRY = getRootRegistry(); + private static final WritableRegistry> ROOT_REGISTRY = getRootRegistry(); public static final Registry ARM_INTERACTION_POINT_TYPE = simple(CreateRegistries.ARM_INTERACTION_POINT_TYPE); public static final Registry FAN_PROCESSING_TYPE = simple(CreateRegistries.FAN_PROCESSING_TYPE); @@ -62,5 +62,6 @@ public class CreateBuiltInRegistries { @ApiStatus.Internal public static void init() { // make sure the class is loaded. + // this method is called at the tail of BuiltInRegistries, injected by a coremod. See it for details. } } diff --git a/src/main/resources/coremods/better_registry.js b/src/main/resources/coremods/better_registry.js index 07c01ac231..778712c3ee 100644 --- a/src/main/resources/coremods/better_registry.js +++ b/src/main/resources/coremods/better_registry.js @@ -1,6 +1,10 @@ var ASMAPI = Java.type('net.minecraftforge.coremod.api.ASMAPI') -// Necessary to fix forge being a terrible loader +// this is terrible, but Forge has forced our hands. +// for some reason, Forge loads half the game with Bootstrap.bootStrap *before* loading mods during datagen. +// this is not the case in other entrypoints. +// this makes mixins to some important places, like BuiltInRegistries, impossible since mixin isn't +// initialized when the class is loaded. function initializeCoreMod() { return { "registrycoremod": {