Add util class to avoid a bit of boilerplate in registration.
This commit is contained in:
@@ -33,6 +33,8 @@ public final class Main {
|
||||
ConfigManager.add(Config::new);
|
||||
ConfigManager.initialize();
|
||||
|
||||
RegistryUtils.begin();
|
||||
|
||||
ItemTags.initialize();
|
||||
BlockTags.initialize();
|
||||
Blocks.initialize();
|
||||
@@ -48,6 +50,8 @@ public final class Main {
|
||||
BlockDeviceDataRegistration.initialize();
|
||||
Firmwares.initialize();
|
||||
|
||||
RegistryUtils.finish();
|
||||
|
||||
FMLJavaModLoadingContext.get().getModEventBus().register(CommonSetup.class);
|
||||
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> FMLJavaModLoadingContext.get().getModEventBus().register(ClientSetup.class));
|
||||
}
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
package li.cil.oc2.common.block;
|
||||
|
||||
import li.cil.oc2.api.API;
|
||||
import li.cil.oc2.common.util.RegistryUtils;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraftforge.fml.RegistryObject;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
||||
public final class Blocks {
|
||||
private static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, API.MOD_ID);
|
||||
private static final DeferredRegister<Block> BLOCKS = RegistryUtils.create(ForgeRegistries.BLOCKS);
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -24,6 +23,5 @@ public final class Blocks {
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
public static void initialize() {
|
||||
BLOCKS.register(FMLJavaModLoadingContext.get().getModEventBus());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,9 +3,9 @@ package li.cil.oc2.common.bus.device;
|
||||
import li.cil.oc2.api.API;
|
||||
import li.cil.oc2.api.bus.device.DeviceType;
|
||||
import li.cil.oc2.common.bus.device.util.DeviceTypeImpl;
|
||||
import li.cil.oc2.common.util.RegistryUtils;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.text.TranslationTextComponent;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.IForgeRegistry;
|
||||
import net.minecraftforge.registries.RegistryBuilder;
|
||||
@@ -13,7 +13,7 @@ import net.minecraftforge.registries.RegistryBuilder;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public final class DeviceTypes {
|
||||
private static final DeferredRegister<DeviceType> DEVICE_TYPES = DeferredRegister.create(DeviceType.class, API.MOD_ID);
|
||||
private static final DeferredRegister<DeviceType> DEVICE_TYPES = RegistryUtils.create(DeviceType.class);
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -28,8 +28,6 @@ public final class DeviceTypes {
|
||||
register("card");
|
||||
register("robot_module");
|
||||
register("floppy");
|
||||
|
||||
DEVICE_TYPES.register(FMLJavaModLoadingContext.get().getModEventBus());
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
package li.cil.oc2.common.bus.device.data;
|
||||
|
||||
import li.cil.oc2.api.API;
|
||||
import li.cil.oc2.api.bus.device.data.BlockDeviceData;
|
||||
import li.cil.oc2.common.util.RegistryUtils;
|
||||
import net.minecraftforge.fml.RegistryObject;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.IForgeRegistry;
|
||||
import net.minecraftforge.registries.RegistryBuilder;
|
||||
@@ -11,7 +10,7 @@ import net.minecraftforge.registries.RegistryBuilder;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public final class BlockDeviceDataRegistration {
|
||||
private static final DeferredRegister<BlockDeviceData> INITIALIZER = DeferredRegister.create(BlockDeviceData.class, API.MOD_ID);
|
||||
private static final DeferredRegister<BlockDeviceData> INITIALIZER = RegistryUtils.create(BlockDeviceData.class);
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -24,6 +23,5 @@ public final class BlockDeviceDataRegistration {
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
public static void initialize() {
|
||||
INITIALIZER.register(FMLJavaModLoadingContext.get().getModEventBus());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
package li.cil.oc2.common.bus.device.data;
|
||||
|
||||
import li.cil.oc2.api.API;
|
||||
import li.cil.oc2.api.bus.device.data.Firmware;
|
||||
import li.cil.oc2.common.util.RegistryUtils;
|
||||
import net.minecraftforge.fml.RegistryObject;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.IForgeRegistry;
|
||||
import net.minecraftforge.registries.RegistryBuilder;
|
||||
@@ -11,7 +10,7 @@ import net.minecraftforge.registries.RegistryBuilder;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public final class Firmwares {
|
||||
private static final DeferredRegister<Firmware> INITIALIZER = DeferredRegister.create(Firmware.class, API.MOD_ID);
|
||||
private static final DeferredRegister<Firmware> INITIALIZER = RegistryUtils.create(Firmware.class);
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -24,6 +23,5 @@ public final class Firmwares {
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
public static void initialize() {
|
||||
INITIALIZER.register(FMLJavaModLoadingContext.get().getModEventBus());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
package li.cil.oc2.common.bus.device.provider;
|
||||
|
||||
import li.cil.oc2.api.API;
|
||||
import li.cil.oc2.api.bus.device.provider.BlockDeviceProvider;
|
||||
import li.cil.oc2.api.bus.device.provider.ItemDeviceProvider;
|
||||
import li.cil.oc2.common.bus.device.provider.block.*;
|
||||
import li.cil.oc2.common.bus.device.provider.item.*;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import li.cil.oc2.common.util.RegistryUtils;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.IForgeRegistry;
|
||||
import net.minecraftforge.registries.RegistryBuilder;
|
||||
@@ -13,8 +12,8 @@ import net.minecraftforge.registries.RegistryBuilder;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public final class Providers {
|
||||
private static final DeferredRegister<BlockDeviceProvider> BLOCK_DEVICE_PROVIDERS = DeferredRegister.create(BlockDeviceProvider.class, API.MOD_ID);
|
||||
private static final DeferredRegister<ItemDeviceProvider> ITEM_DEVICE_PROVIDERS = DeferredRegister.create(ItemDeviceProvider.class, API.MOD_ID);
|
||||
private static final DeferredRegister<BlockDeviceProvider> BLOCK_DEVICE_PROVIDERS = RegistryUtils.create(BlockDeviceProvider.class);
|
||||
private static final DeferredRegister<ItemDeviceProvider> ITEM_DEVICE_PROVIDERS = RegistryUtils.create(ItemDeviceProvider.class);
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -44,8 +43,5 @@ public final class Providers {
|
||||
|
||||
ITEM_DEVICE_PROVIDERS.register("inventory_operations_module", InventoryOperationsModuleDeviceProvider::new);
|
||||
ITEM_DEVICE_PROVIDERS.register("block_operations_module", BlockOperationsModuleDeviceProvider::new);
|
||||
|
||||
BLOCK_DEVICE_PROVIDERS.register(FMLJavaModLoadingContext.get().getModEventBus());
|
||||
ITEM_DEVICE_PROVIDERS.register(FMLJavaModLoadingContext.get().getModEventBus());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,14 @@
|
||||
package li.cil.oc2.common.container;
|
||||
|
||||
import li.cil.oc2.api.API;
|
||||
import li.cil.oc2.common.util.RegistryUtils;
|
||||
import net.minecraft.inventory.container.ContainerType;
|
||||
import net.minecraftforge.common.extensions.IForgeContainerType;
|
||||
import net.minecraftforge.fml.RegistryObject;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
||||
public final class Containers {
|
||||
private static final DeferredRegister<ContainerType<?>> CONTAINERS = DeferredRegister.create(ForgeRegistries.CONTAINERS, API.MOD_ID);
|
||||
private static final DeferredRegister<ContainerType<?>> CONTAINERS = RegistryUtils.create(ForgeRegistries.CONTAINERS);
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -21,6 +20,5 @@ public final class Containers {
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
public static void initialize() {
|
||||
CONTAINERS.register(FMLJavaModLoadingContext.get().getModEventBus());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,18 +1,17 @@
|
||||
package li.cil.oc2.common.entity;
|
||||
|
||||
import li.cil.oc2.api.API;
|
||||
import li.cil.oc2.common.util.RegistryUtils;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraftforge.fml.RegistryObject;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
||||
import java.util.function.Function;
|
||||
|
||||
public final class Entities {
|
||||
private static final DeferredRegister<EntityType<?>> ENTITIES = DeferredRegister.create(ForgeRegistries.ENTITIES, API.MOD_ID);
|
||||
private static final DeferredRegister<EntityType<?>> ENTITIES = RegistryUtils.create(ForgeRegistries.ENTITIES);
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -21,7 +20,6 @@ public final class Entities {
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
public static void initialize() {
|
||||
ENTITIES.register(FMLJavaModLoadingContext.get().getModEventBus());
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -1,15 +1,14 @@
|
||||
package li.cil.oc2.common.item;
|
||||
|
||||
import li.cil.oc2.api.API;
|
||||
import li.cil.oc2.common.Constants;
|
||||
import li.cil.oc2.common.block.Blocks;
|
||||
import li.cil.oc2.common.bus.device.data.BlockDeviceDataRegistration;
|
||||
import li.cil.oc2.common.bus.device.data.Firmwares;
|
||||
import li.cil.oc2.common.util.RegistryUtils;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.item.DyeColor;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraftforge.fml.RegistryObject;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
||||
@@ -17,7 +16,7 @@ import java.util.function.Function;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public final class Items {
|
||||
private static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, API.MOD_ID);
|
||||
private static final DeferredRegister<Item> ITEMS = RegistryUtils.create(ForgeRegistries.ITEMS);
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -75,7 +74,6 @@ public final class Items {
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
public static void initialize() {
|
||||
ITEMS.register(FMLJavaModLoadingContext.get().getModEventBus());
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -1,18 +1,20 @@
|
||||
package li.cil.oc2.common.item.crafting;
|
||||
|
||||
import li.cil.oc2.api.API;
|
||||
import li.cil.oc2.common.util.RegistryUtils;
|
||||
import net.minecraft.item.crafting.IRecipeSerializer;
|
||||
import net.minecraftforge.fml.RegistryObject;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
||||
public final class RecipeSerializers {
|
||||
private static final DeferredRegister<IRecipeSerializer<?>> RECIPE_SERIALIZERS = DeferredRegister.create(ForgeRegistries.RECIPE_SERIALIZERS, API.MOD_ID);
|
||||
private static final DeferredRegister<IRecipeSerializer<?>> RECIPE_SERIALIZERS = RegistryUtils.create(ForgeRegistries.RECIPE_SERIALIZERS);
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
public static final RegistryObject<WrenchRecipe.Serializer> WRENCH = RECIPE_SERIALIZERS.register("wrench", () -> WrenchRecipe.Serializer.INSTANCE);
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
public static void initialize() {
|
||||
RECIPE_SERIALIZERS.register(FMLJavaModLoadingContext.get().getModEventBus());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,19 +1,18 @@
|
||||
package li.cil.oc2.common.tileentity;
|
||||
|
||||
import li.cil.oc2.api.API;
|
||||
import li.cil.oc2.common.block.Blocks;
|
||||
import li.cil.oc2.common.util.RegistryUtils;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.tileentity.TileEntityType;
|
||||
import net.minecraftforge.fml.RegistryObject;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public final class TileEntities {
|
||||
private static final DeferredRegister<TileEntityType<?>> TILES = DeferredRegister.create(ForgeRegistries.TILE_ENTITIES, API.MOD_ID);
|
||||
private static final DeferredRegister<TileEntityType<?>> TILES = RegistryUtils.create(ForgeRegistries.TILE_ENTITIES);
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -29,7 +28,6 @@ public final class TileEntities {
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
public static void initialize() {
|
||||
TileEntities.TILES.register(FMLJavaModLoadingContext.get().getModEventBus());
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
56
src/main/java/li/cil/oc2/common/util/RegistryUtils.java
Normal file
56
src/main/java/li/cil/oc2/common/util/RegistryUtils.java
Normal file
@@ -0,0 +1,56 @@
|
||||
package li.cil.oc2.common.util;
|
||||
|
||||
import li.cil.oc2.api.API;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.IForgeRegistry;
|
||||
import net.minecraftforge.registries.IForgeRegistryEntry;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public abstract class RegistryUtils {
|
||||
private enum Phase {
|
||||
PRE_INIT,
|
||||
INIT,
|
||||
POST_INIT,
|
||||
}
|
||||
|
||||
private static final List<DeferredRegister<?>> ENTRIES = new ArrayList<>();
|
||||
private static Phase phase = Phase.PRE_INIT;
|
||||
|
||||
public static <T extends IForgeRegistryEntry<T>> DeferredRegister<T> create(final Class<T> type) {
|
||||
if (phase != Phase.INIT) throw new IllegalStateException();
|
||||
|
||||
final DeferredRegister<T> entry = DeferredRegister.create(type, API.MOD_ID);
|
||||
ENTRIES.add(entry);
|
||||
return entry;
|
||||
}
|
||||
|
||||
public static <T extends IForgeRegistryEntry<T>> DeferredRegister<T> create(final IForgeRegistry<T> registry) {
|
||||
if (phase != Phase.INIT) throw new IllegalStateException();
|
||||
|
||||
final DeferredRegister<T> entry = DeferredRegister.create(registry, API.MOD_ID);
|
||||
ENTRIES.add(entry);
|
||||
return entry;
|
||||
}
|
||||
|
||||
public static void begin() {
|
||||
if (phase != Phase.PRE_INIT) throw new IllegalStateException();
|
||||
phase = Phase.INIT;
|
||||
}
|
||||
|
||||
public static void finish() {
|
||||
if (phase != Phase.INIT) throw new IllegalStateException();
|
||||
phase = Phase.POST_INIT;
|
||||
|
||||
for (final DeferredRegister<?> register : ENTRIES) {
|
||||
register.register(FMLJavaModLoadingContext.get().getModEventBus());
|
||||
}
|
||||
|
||||
ENTRIES.clear();
|
||||
}
|
||||
|
||||
private RegistryUtils() {
|
||||
}
|
||||
}
|
||||
@@ -4,12 +4,11 @@ import li.cil.oc2.api.API;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.SoundEvent;
|
||||
import net.minecraftforge.fml.RegistryObject;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
||||
public final class SoundEvents {
|
||||
private static final DeferredRegister<SoundEvent> SOUNDS = DeferredRegister.create(ForgeRegistries.SOUND_EVENTS, API.MOD_ID);
|
||||
private static final DeferredRegister<SoundEvent> SOUNDS = RegistryUtils.create(ForgeRegistries.SOUND_EVENTS);
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -22,7 +21,6 @@ public final class SoundEvents {
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
public static void initialize() {
|
||||
SOUNDS.register(FMLJavaModLoadingContext.get().getModEventBus());
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
Reference in New Issue
Block a user