diff --git a/src/main/java/com/simibubi/create/AllBogeyStyles.java b/src/main/java/com/simibubi/create/AllBogeyStyles.java index 5fdba3d5e..76bf4bfaf 100644 --- a/src/main/java/com/simibubi/create/AllBogeyStyles.java +++ b/src/main/java/com/simibubi/create/AllBogeyStyles.java @@ -11,19 +11,19 @@ import com.tterrag.registrate.util.entry.RegistryEntry; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.registries.DeferredRegister; +import static com.simibubi.create.Create.LOGGER; import static com.simibubi.create.Create.REGISTRATE; @SuppressWarnings("unused") public class AllBogeyStyles { - public static final DeferredRegister BOGEYS = DeferredRegister.create(AllRegistries.BOGEY_NAME, Create.ID); - public static final RegistryEntry STANDARD = REGISTRATE .bogeyStyle("standard", new BogeyStyle(StandardBogeyInstance.class)) - .block(BogeyRenderer.BogeySize.SMALL, AllBlocks.SMALL_BOGEY.get()) - .block(BogeyRenderer.BogeySize.LARGE, AllBlocks.LARGE_BOGEY.get()) + .block(BogeyRenderer.BogeySize.SMALL, AllBlocks.SMALL_BOGEY) + .block(BogeyRenderer.BogeySize.LARGE, AllBlocks.LARGE_BOGEY) .register(); public static void register() { - BOGEYS.register(FMLJavaModLoadingContext.get().getModEventBus()); + LOGGER.info("Registered bogey styles from " + Create.ID); + AllRegistries.DEFERRED_BOGEY_REGISTRY.register(FMLJavaModLoadingContext.get().getModEventBus()); } } diff --git a/src/main/java/com/simibubi/create/AllRegistries.java b/src/main/java/com/simibubi/create/AllRegistries.java index 551e65374..00d931565 100644 --- a/src/main/java/com/simibubi/create/AllRegistries.java +++ b/src/main/java/com/simibubi/create/AllRegistries.java @@ -2,19 +2,42 @@ package com.simibubi.create; import com.simibubi.create.content.logistics.trains.entity.BogeyStyle; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.IForgeRegistry; +import net.minecraftforge.registries.IForgeRegistryEntry; import net.minecraftforge.registries.NewRegistryEvent; import net.minecraftforge.registries.RegistryBuilder; import java.util.function.Supplier; +@Mod.EventBusSubscriber(modid = Create.ID, bus = Mod.EventBusSubscriber.Bus.MOD) public class AllRegistries { - public static final ResourceLocation BOGEY_NAME = new ResourceLocation(Create.ID, "bogeys"); + static final DeferredRegister DEFERRED_BOGEY_REGISTRY = DeferredRegister + .create(Keys.BOGEYS, Keys.BOGEYS.location().getNamespace()); - public static Supplier> BOGEY_STYLES; + public static final Supplier> BOGEY_REGISTRY = DEFERRED_BOGEY_REGISTRY + .makeRegistry(BogeyStyle.class, AllRegistries::getBogeyRegistryBuilder); - public static void register(final NewRegistryEvent event) { - BOGEY_STYLES = event.create(new RegistryBuilder().setName(BOGEY_NAME)); + public static RegistryBuilder getBogeyRegistryBuilder() { + return makeRegistry(Keys.BOGEYS, BogeyStyle.class); + } + + private static > RegistryBuilder makeRegistry(ResourceKey> key, Class type) { + return new RegistryBuilder().setName(key.location()).setType(type); + } + + @SubscribeEvent + public void onRegistryNewRegistry(final NewRegistryEvent event) { + event.create(getBogeyRegistryBuilder()); + } + + public static class Keys { + public static final ResourceKey> BOGEYS = ResourceKey + .createRegistryKey(new ResourceLocation(Create.ID, "bogeys")); } } diff --git a/src/main/java/com/simibubi/create/Create.java b/src/main/java/com/simibubi/create/Create.java index c3ac48d43..61d87ba7d 100644 --- a/src/main/java/com/simibubi/create/Create.java +++ b/src/main/java/com/simibubi/create/Create.java @@ -119,9 +119,9 @@ public class Create { AllEntityDataSerializers.register(modEventBus); AllOreFeatureConfigEntries.init(); AllFeatures.register(modEventBus); - AllBogeyStyles.register(); AllPlacementModifiers.register(modEventBus); BuiltinRegistration.register(modEventBus); + AllBogeyStyles.register(); AllConfigs.register(modLoadingContext); @@ -144,8 +144,6 @@ public class Create { DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> CreateClient.onCtorClient(modEventBus, forgeEventBus)); Mods.CURIOS.executeIfInstalled(() -> () -> Curios.init(modEventBus, forgeEventBus)); - - System.out.println(AllRegistries.BOGEY_STYLES.get().getValues()); } public static void init(final FMLCommonSetupEvent event) { diff --git a/src/main/java/com/simibubi/create/events/CommonEvents.java b/src/main/java/com/simibubi/create/events/CommonEvents.java index ce5b49ddc..8f5cf2e3d 100644 --- a/src/main/java/com/simibubi/create/events/CommonEvents.java +++ b/src/main/java/com/simibubi/create/events/CommonEvents.java @@ -231,10 +231,6 @@ public class CommonEvents { @EventBusSubscriber(bus = EventBusSubscriber.Bus.MOD) public static class ModBusEvents { - @SubscribeEvent - public static void registerRegistries(final NewRegistryEvent event) { - AllRegistries.register(event); - } @SubscribeEvent public static void registerCapabilities(RegisterCapabilitiesEvent event) { diff --git a/src/main/java/com/simibubi/create/foundation/data/BogeyStyleBuilder.java b/src/main/java/com/simibubi/create/foundation/data/BogeyStyleBuilder.java index 62d8ca496..812f9212d 100644 --- a/src/main/java/com/simibubi/create/foundation/data/BogeyStyleBuilder.java +++ b/src/main/java/com/simibubi/create/foundation/data/BogeyStyleBuilder.java @@ -13,6 +13,8 @@ import com.tterrag.registrate.builders.AbstractBuilder; import com.tterrag.registrate.builders.BuilderCallback; +import com.tterrag.registrate.util.entry.BlockEntry; +import com.tterrag.registrate.util.entry.RegistryEntry; import com.tterrag.registrate.util.nullness.NonNullSupplier; import net.minecraft.core.particles.ParticleType; @@ -31,7 +33,8 @@ import java.util.function.Supplier; public class BogeyStyleBuilder extends AbstractBuilder> { private final T style; - private NonNullSupplier> bogeyBlocks = () -> new EnumMap<>(BogeyRenderer.BogeySize.class); + private NonNullSupplier>> bogeyBlocks + = () -> new EnumMap<>(BogeyRenderer.BogeySize.class); private Supplier sounds; private Supplier data; private Supplier> particles; @@ -41,11 +44,11 @@ public class BogeyStyleBuilder extends AbstractBuilder< } protected BogeyStyleBuilder(AbstractRegistrate owner, P parent, String name, BuilderCallback callback, T style) { - super(owner, parent, name, callback, AllRegistries.BOGEY_STYLES.get().getRegistryKey()); + super(owner, parent, name, callback, AllRegistries.Keys.BOGEYS); this.style = style; - bogeyBlocks.get().put(BogeyRenderer.BogeySize.SMALL, AllBlocks.SMALL_BOGEY.get()); - bogeyBlocks.get().put(BogeyRenderer.BogeySize.LARGE, AllBlocks.LARGE_BOGEY.get()); +// bogeyBlocks.get().put(BogeyRenderer.BogeySize.SMALL, AllBlocks.SMALL_BOGEY.get()); +// bogeyBlocks.get().put(BogeyRenderer.BogeySize.LARGE, AllBlocks.LARGE_BOGEY.get()); } public BogeyStyleBuilder defaultData(CompoundTag data) { @@ -63,7 +66,7 @@ public class BogeyStyleBuilder extends AbstractBuilder< return this; } - public BogeyStyleBuilder block(BogeyRenderer.BogeySize size, IBogeyBlock block) { + public BogeyStyleBuilder block(BogeyRenderer.BogeySize size, BlockEntry block) { this.bogeyBlocks.get().put(size, block); return this; }