Skip to content

Commit be3331d

Browse files
authored
Merge pull request #37 from TBoshoven/1.14-deferred-register
Change up the use of Forge registries
2 parents 34a77ae + 5a81113 commit be3331d

27 files changed

+181
-128
lines changed

MagicDoorknob/src/main/java/com/tomboshoven/minecraft/magicdoorknob/MagicDoorknobMod.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@ public final class MagicDoorknobMod {
2323

2424
public MagicDoorknobMod() {
2525
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
26-
modEventBus.register(BlockColorHandlers.class);
27-
modEventBus.register(Blocks.class);
28-
modEventBus.register(DataGenerators.class);
29-
modEventBus.register(Items.class);
30-
modEventBus.register(TileEntities.class);
26+
BlockColorHandlers.register(modEventBus);
27+
Blocks.register(modEventBus);
28+
DataGenerators.register(modEventBus);
29+
Items.register(modEventBus);
30+
TileEntities.register(modEventBus);
3131

32-
DistExecutor.runWhenOn(Dist.CLIENT, () -> () -> modEventBus.register(ModelLoaders.class));
32+
DistExecutor.runWhenOn(Dist.CLIENT, () -> () -> ModelLoaders.register(modEventBus));
3333
}
3434
}

MagicDoorknob/src/main/java/com/tomboshoven/minecraft/magicdoorknob/blocks/Blocks.java

+12-10
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@
66
import net.minecraft.block.material.Material;
77
import net.minecraft.block.material.MaterialColor;
88
import net.minecraft.block.material.PushReaction;
9-
import net.minecraftforge.event.RegistryEvent.Register;
10-
import net.minecraftforge.eventbus.api.SubscribeEvent;
9+
import net.minecraftforge.eventbus.api.IEventBus;
10+
import net.minecraftforge.fml.RegistryObject;
1111
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
12+
import net.minecraftforge.registries.DeferredRegister;
13+
import net.minecraftforge.registries.ForgeRegistries;
1214

1315
import javax.annotation.ParametersAreNonnullByDefault;
1416

@@ -19,6 +21,8 @@
1921
@ParametersAreNonnullByDefault
2022
@MethodsReturnNonnullByDefault
2123
public final class Blocks {
24+
private static final DeferredRegister<Block> BLOCKS = new DeferredRegister<>(ForgeRegistries.BLOCKS, MagicDoorknobMod.MOD_ID);
25+
2226
/**
2327
* The material the magic door and doorway are made of:
2428
* - Not liquid
@@ -35,21 +39,19 @@ public final class Blocks {
3539
/**
3640
* A magic doorway block. Generated by a magic doorknob.
3741
*/
38-
public static final Block MAGIC_DOORWAY = new MagicDoorwayBlock(Block.Properties.create(DOORWAY_MATERIAL))
39-
.setRegistryName(MagicDoorknobMod.MOD_ID, "magic_doorway");
42+
public static final RegistryObject<Block> MAGIC_DOORWAY =
43+
BLOCKS.register("magic_doorway", () -> new MagicDoorwayBlock(Block.Properties.create(DOORWAY_MATERIAL)));
4044

4145
/**
4246
* A magic door block. Generated by a magic doorknob and the entrance to a magic doorway.
4347
*/
44-
public static final Block MAGIC_DOOR = new MagicDoorBlock(Block.Properties.create(DOORWAY_MATERIAL))
45-
.setRegistryName(MagicDoorknobMod.MOD_ID, "magic_door");
48+
public static final RegistryObject<Block> MAGIC_DOOR =
49+
BLOCKS.register("magic_door", () -> new MagicDoorBlock(Block.Properties.create(DOORWAY_MATERIAL)));
4650

4751
private Blocks() {
4852
}
4953

50-
@SuppressWarnings("BoundedWildcard")
51-
@SubscribeEvent
52-
public static void registerBlocks(Register<Block> event) {
53-
event.getRegistry().registerAll(MAGIC_DOORWAY, MAGIC_DOOR);
54+
public static void register(IEventBus eventBus) {
55+
BLOCKS.register(eventBus);
5456
}
5557
}

MagicDoorknob/src/main/java/com/tomboshoven/minecraft/magicdoorknob/blocks/MagicDoorBlock.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ private static void breakDoorway(World world, BlockPos pos, Direction facing) {
137137
for (int i = 1; i <= depth; ++i) {
138138
BlockPos blockPos = pos.offset(doorwayFacing, i);
139139
BlockState state = world.getBlockState(blockPos);
140-
if (state.getBlock() == Blocks.MAGIC_DOORWAY) {
140+
if (state.getBlock() == Blocks.MAGIC_DOORWAY.get()) {
141141
world.destroyBlock(blockPos, false);
142142
}
143143
}

MagicDoorknob/src/main/java/com/tomboshoven/minecraft/magicdoorknob/blocks/colorhandlers/BlockColorHandlers.java

+8-5
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import net.minecraftforge.api.distmarker.Dist;
88
import net.minecraftforge.api.distmarker.OnlyIn;
99
import net.minecraftforge.client.event.ColorHandlerEvent;
10-
import net.minecraftforge.eventbus.api.SubscribeEvent;
10+
import net.minecraftforge.eventbus.api.IEventBus;
1111

1212
import javax.annotation.ParametersAreNonnullByDefault;
1313

@@ -20,16 +20,19 @@ public final class BlockColorHandlers {
2020
private BlockColorHandlers() {
2121
}
2222

23+
public static void register(IEventBus eventBus) {
24+
eventBus.addListener(BlockColorHandlers::registerBlockColorHandlers);
25+
}
26+
2327
/**
2428
* Register all color handlers.
2529
*/
2630
@OnlyIn(Dist.CLIENT)
27-
@SubscribeEvent
28-
public static void registerBlockColorHandlers(ColorHandlerEvent.Block event) {
31+
private static void registerBlockColorHandlers(ColorHandlerEvent.Block event) {
2932
BlockColors blockColors = event.getBlockColors();
3033

3134
IBlockColor doorwayBlockColorHandler = new DoorwayBlockColorHandler();
32-
blockColors.register(doorwayBlockColorHandler, Blocks.MAGIC_DOORWAY);
33-
blockColors.register(doorwayBlockColorHandler, Blocks.MAGIC_DOOR);
35+
blockColors.register(doorwayBlockColorHandler, Blocks.MAGIC_DOORWAY.get());
36+
blockColors.register(doorwayBlockColorHandler, Blocks.MAGIC_DOOR.get());
3437
}
3538
}

MagicDoorknob/src/main/java/com/tomboshoven/minecraft/magicdoorknob/blocks/tileentities/MagicDoorTileEntity.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import mcp.MethodsReturnNonnullByDefault;
44

55
import javax.annotation.ParametersAreNonnullByDefault;
6+
import java.util.Objects;
67

78
/**
89
* Tile entity for the magic door parts.
@@ -11,6 +12,6 @@
1112
@MethodsReturnNonnullByDefault
1213
public class MagicDoorTileEntity extends MagicDoorwayPartBaseTileEntity {
1314
public MagicDoorTileEntity() {
14-
super(TileEntities.MAGIC_DOOR);
15+
super(Objects.requireNonNull(TileEntities.MAGIC_DOOR.get()));
1516
}
1617
}

MagicDoorknob/src/main/java/com/tomboshoven/minecraft/magicdoorknob/blocks/tileentities/MagicDoorwayTileEntity.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import mcp.MethodsReturnNonnullByDefault;
44

55
import javax.annotation.ParametersAreNonnullByDefault;
6+
import java.util.Objects;
67

78
/**
89
* Tile entity for the magic doorway parts.
@@ -11,6 +12,6 @@
1112
@MethodsReturnNonnullByDefault
1213
public class MagicDoorwayTileEntity extends MagicDoorwayPartBaseTileEntity {
1314
public MagicDoorwayTileEntity() {
14-
super(TileEntities.MAGIC_DOORWAY);
15+
super(Objects.requireNonNull(TileEntities.MAGIC_DOORWAY.get()));
1516
}
1617
}

MagicDoorknob/src/main/java/com/tomboshoven/minecraft/magicdoorknob/blocks/tileentities/TileEntities.java

+18-12
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,28 @@
33
import com.tomboshoven.minecraft.magicdoorknob.MagicDoorknobMod;
44
import com.tomboshoven.minecraft.magicdoorknob.blocks.Blocks;
55
import net.minecraft.tileentity.TileEntityType;
6-
import net.minecraftforge.event.RegistryEvent;
7-
import net.minecraftforge.eventbus.api.SubscribeEvent;
8-
import net.minecraftforge.registries.IForgeRegistry;
6+
import net.minecraftforge.eventbus.api.IEventBus;
7+
import net.minecraftforge.fml.RegistryObject;
8+
import net.minecraftforge.registries.DeferredRegister;
9+
import net.minecraftforge.registries.ForgeRegistries;
910

1011
@SuppressWarnings("ConstantConditions")
1112
public final class TileEntities {
12-
static final TileEntityType<MagicDoorTileEntity> MAGIC_DOOR = TileEntityType.Builder.create(MagicDoorTileEntity::new, Blocks.MAGIC_DOOR).build(null);
13-
static final TileEntityType<MagicDoorwayTileEntity> MAGIC_DOORWAY = TileEntityType.Builder.create(MagicDoorwayTileEntity::new, Blocks.MAGIC_DOORWAY).build(null);
13+
private static final DeferredRegister<TileEntityType<?>> TILE_ENTITIES = new DeferredRegister<>(ForgeRegistries.TILE_ENTITIES, MagicDoorknobMod.MOD_ID);
1414

15-
@SubscribeEvent
16-
public static void registerTileEntities(RegistryEvent.Register<TileEntityType<?>> evt) {
17-
IForgeRegistry<TileEntityType<?>> registry = evt.getRegistry();
15+
static final RegistryObject<TileEntityType<MagicDoorTileEntity>> MAGIC_DOOR =
16+
TILE_ENTITIES.register("magic_door",
17+
() -> TileEntityType.Builder.create(MagicDoorTileEntity::new, Blocks.MAGIC_DOOR.get()).build(null)
18+
);
19+
static final RegistryObject<TileEntityType<MagicDoorwayTileEntity>> MAGIC_DOORWAY =
20+
TILE_ENTITIES.register("magic_doorway",
21+
() -> TileEntityType.Builder.create(MagicDoorwayTileEntity::new, Blocks.MAGIC_DOORWAY.get()).build(null)
22+
);
1823

19-
MAGIC_DOOR.setRegistryName(MagicDoorknobMod.MOD_ID, "magic_door");
20-
registry.register(MAGIC_DOOR);
21-
MAGIC_DOORWAY.setRegistryName(MagicDoorknobMod.MOD_ID, "magic_doorway");
22-
registry.register(MAGIC_DOORWAY);
24+
private TileEntities() {
25+
}
26+
27+
public static void register(IEventBus eventBus) {
28+
TILE_ENTITIES.register(eventBus);
2329
}
2430
}

MagicDoorknob/src/main/java/com/tomboshoven/minecraft/magicdoorknob/data/BlockStates.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ protected void registerStatesAndModels() {
3333
private void registerDoor() {
3434
ModelFile doorBottom = new ModelFile.ExistingModelFile(modLoc("block/magic_door_bottom"), existingFileHelper);
3535
ModelFile doorTop = new ModelFile.ExistingModelFile(modLoc("block/magic_door_top"), existingFileHelper);
36-
horizontalBlock(Blocks.MAGIC_DOOR, blockState -> blockState.get(MagicDoorBlock.PART) == TOP ? doorTop : doorBottom, 270);
36+
horizontalBlock(Blocks.MAGIC_DOOR.get(), blockState -> blockState.get(MagicDoorBlock.PART) == TOP ? doorTop : doorBottom, 270);
3737
}
3838

3939
private void registerDoorway() {
@@ -44,7 +44,7 @@ private void registerDoorway() {
4444
ModelFile doorwayOpenBottom = new ModelFile.ExistingModelFile(modLoc("block/magic_doorway_open_bottom"), existingFileHelper);
4545
ModelFile doorwayOpenTop = new ModelFile.ExistingModelFile(modLoc("block/magic_doorway_open_top"), existingFileHelper);
4646

47-
getVariantBuilder(Blocks.MAGIC_DOORWAY).forAllStates(
47+
getVariantBuilder(Blocks.MAGIC_DOORWAY.get()).forAllStates(
4848
blockState -> {
4949
boolean openEastWest = blockState.get(MagicDoorwayBlock.OPEN_EAST_WEST);
5050
boolean openNorthSouth = blockState.get(MagicDoorwayBlock.OPEN_NORTH_SOUTH);

MagicDoorknob/src/main/java/com/tomboshoven/minecraft/magicdoorknob/data/DataGenerators.java

+9-3
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,22 @@
33
import mcp.MethodsReturnNonnullByDefault;
44
import net.minecraft.data.DataGenerator;
55
import net.minecraftforge.client.model.generators.ExistingFileHelper;
6-
import net.minecraftforge.eventbus.api.SubscribeEvent;
6+
import net.minecraftforge.eventbus.api.IEventBus;
77
import net.minecraftforge.fml.event.lifecycle.GatherDataEvent;
88

99
import javax.annotation.ParametersAreNonnullByDefault;
1010

1111
@ParametersAreNonnullByDefault
1212
@MethodsReturnNonnullByDefault
1313
public final class DataGenerators {
14-
@SubscribeEvent
15-
public static void gatherData(GatherDataEvent event) {
14+
private DataGenerators() {
15+
}
16+
17+
public static void register(IEventBus eventBus) {
18+
eventBus.addListener(DataGenerators::gatherData);
19+
}
20+
21+
private static void gatherData(GatherDataEvent event) {
1622
DataGenerator generator = event.getGenerator();
1723
ExistingFileHelper existingFileHelper = event.getExistingFileHelper();
1824

MagicDoorknob/src/main/java/com/tomboshoven/minecraft/magicdoorknob/data/Language.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ class Language extends LanguageProvider {
2121

2222
@Override
2323
protected void addTranslations() {
24-
add(Blocks.MAGIC_DOOR, "Magic Door");
25-
add(Blocks.MAGIC_DOORWAY, "Magic Doorway");
24+
add(Blocks.MAGIC_DOOR.get(), "Magic Door");
25+
add(Blocks.MAGIC_DOORWAY.get(), "Magic Doorway");
2626

2727
addDoorknob("diamond");
2828
addDoorknob("gold", "Golden");

MagicDoorknob/src/main/java/com/tomboshoven/minecraft/magicdoorknob/items/Items.java

+22-19
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import net.minecraft.util.ResourceLocation;
1313
import net.minecraftforge.common.Tags;
1414
import net.minecraftforge.event.RegistryEvent.Register;
15-
import net.minecraftforge.eventbus.api.SubscribeEvent;
15+
import net.minecraftforge.eventbus.api.IEventBus;
1616
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
1717
import net.minecraftforge.registries.IForgeRegistry;
1818

@@ -31,15 +31,6 @@ public final class Items {
3131
*/
3232
public static final Map<String, MagicDoorknobItem> DOORKNOBS = Maps.newHashMap();
3333

34-
static {
35-
// Add all Vanilla tool materials
36-
addDoorknob("wood", ItemTier.WOOD, "oak_planks", ItemTags.PLANKS);
37-
addDoorknob("stone", ItemTier.STONE, "stone", Tags.Items.COBBLESTONE);
38-
addDoorknob("iron", ItemTier.IRON, "iron_block", Tags.Items.INGOTS_IRON);
39-
addDoorknob("gold", ItemTier.GOLD, "gold_block", Tags.Items.INGOTS_GOLD);
40-
addDoorknob("diamond", ItemTier.DIAMOND, "diamond_block", Tags.Items.GEMS_DIAMOND);
41-
}
42-
4334
private Items() {
4435
}
4536

@@ -48,32 +39,44 @@ private Items() {
4839
* <p>
4940
* Make sure to add a translation key.
5041
*
42+
* @param registry The registry to which to add the doorknob item.
5143
* @param typeName The type name of the item. Keep this stable, since it is used in NBT data.
5244
* @param tier The material this doorknob is made of
5345
* @param mainTexture The main texture of the doorknob
5446
* @param recipeTag The tag to use in recipes
5547
*/
56-
private static void addDoorknob(String typeName, IItemTier tier, ResourceLocation mainTexture, Tag<Item> recipeTag) {
57-
Item i = new MagicDoorknobItem(new Item.Properties().group(ItemGroup.TOOLS), typeName, tier, mainTexture, recipeTag)
58-
.setRegistryName(MagicDoorknobMod.MOD_ID, String.format("magic_doorknob_%s", typeName));
59-
DOORKNOBS.put(typeName, (MagicDoorknobItem) i);
48+
private static void addDoorknob(IForgeRegistry<? super Item> registry, String typeName, IItemTier tier, ResourceLocation mainTexture, Tag<Item> recipeTag) {
49+
MagicDoorknobItem i = new MagicDoorknobItem(new Item.Properties().group(ItemGroup.TOOLS), typeName, tier, mainTexture, recipeTag);
50+
i.setRegistryName(MagicDoorknobMod.MOD_ID, String.format("magic_doorknob_%s", typeName));
51+
registry.register(i);
52+
DOORKNOBS.put(typeName, i);
6053
}
6154

6255
/**
6356
* Convenience function for doorknobs using Vanilla materials.
6457
*
58+
* @param registry The registry to which to add the doorknob item.
6559
* @param typeName The type name of the item. Keep this stable, since it is used in NBT data.
6660
* @param tier The material this doorknob is made of
6761
* @param blockName The name of the block that provides the texture of the doorknob
6862
* @param recipeTag The tag to use in recipes
6963
*/
70-
private static void addDoorknob(String typeName, IItemTier tier, String blockName, Tag<Item> recipeTag) {
71-
addDoorknob(typeName, tier, new ResourceLocation("minecraft", String.format("block/%s", blockName)), recipeTag);
64+
private static void addDoorknob(IForgeRegistry<? super Item> registry, String typeName, IItemTier tier, String blockName, Tag<Item> recipeTag) {
65+
addDoorknob(registry, typeName, tier, new ResourceLocation("minecraft", String.format("block/%s", blockName)), recipeTag);
7266
}
7367

74-
@SubscribeEvent
75-
public static void registerItems(Register<Item> event) {
68+
public static void register(IEventBus eventBus) {
69+
eventBus.addGenericListener(Item.class, Items::registerItems);
70+
}
71+
72+
private static void registerItems(Register<Item> event) {
7673
IForgeRegistry<Item> registry = event.getRegistry();
77-
DOORKNOBS.values().forEach(registry::register);
74+
75+
// Add all Vanilla tool materials
76+
addDoorknob(registry, "wood", ItemTier.WOOD, "oak_planks", ItemTags.PLANKS);
77+
addDoorknob(registry, "stone", ItemTier.STONE, "stone", Tags.Items.COBBLESTONE);
78+
addDoorknob(registry, "iron", ItemTier.IRON, "iron_block", Tags.Items.INGOTS_IRON);
79+
addDoorknob(registry, "gold", ItemTier.GOLD, "gold_block", Tags.Items.INGOTS_GOLD);
80+
addDoorknob(registry, "diamond", ItemTier.DIAMOND, "diamond_block", Tags.Items.GEMS_DIAMOND);
7881
}
7982
}

MagicDoorknob/src/main/java/com/tomboshoven/minecraft/magicdoorknob/items/MagicDoorknobItem.java

+7-3
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.tomboshoven.minecraft.magicdoorknob.blocks.tileentities.MagicDoorwayPartBaseTileEntity;
88
import com.tomboshoven.minecraft.magicdoorknob.blocks.tileentities.MagicDoorwayTileEntity;
99
import mcp.MethodsReturnNonnullByDefault;
10+
import net.minecraft.block.Block;
1011
import net.minecraft.block.BlockState;
1112
import net.minecraft.item.BlockItemUseContext;
1213
import net.minecraft.item.IItemTier;
@@ -24,6 +25,7 @@
2425
import net.minecraft.world.World;
2526

2627
import javax.annotation.ParametersAreNonnullByDefault;
28+
import java.util.Objects;
2729

2830
/**
2931
* A magic doorknob that allows you to open doors that don't exist.
@@ -105,9 +107,10 @@ public ActionResultType onItemUse(ItemUseContext context) {
105107
*/
106108
private void placeDoor(World world, BlockPos pos, Direction facing) {
107109
BlockPos doorPos = pos.offset(facing);
110+
Block block = Objects.requireNonNull(Blocks.MAGIC_DOOR.get());
108111
world.setBlockState(
109112
doorPos,
110-
Blocks.MAGIC_DOOR.getDefaultState()
113+
block.getDefaultState()
111114
.with(MagicDoorBlock.HORIZONTAL_FACING, facing)
112115
.with(MagicDoorBlock.PART, MagicDoorBlock.EnumPartType.TOP)
113116
);
@@ -118,7 +121,7 @@ private void placeDoor(World world, BlockPos pos, Direction facing) {
118121
}
119122
world.setBlockState(
120123
doorPos.down(),
121-
Blocks.MAGIC_DOOR.getDefaultState()
124+
block.getDefaultState()
122125
.with(MagicDoorBlock.HORIZONTAL_FACING, facing)
123126
.with(MagicDoorBlock.PART, MagicDoorBlock.EnumPartType.BOTTOM)
124127
);
@@ -169,7 +172,8 @@ private void placeDoorway(World world, BlockPos pos, Direction facing, BlockItem
169172
private void placeDoorwayElement(World world, BlockPos pos, boolean isNorthSouth, MagicDoorwayBlock.EnumPartType part) {
170173
if (isReplaceable(world, pos)) {
171174
BlockState state = world.getBlockState(pos);
172-
world.setBlockState(pos, Blocks.MAGIC_DOORWAY.getDefaultState().with(MagicDoorwayBlock.OPEN_NORTH_SOUTH, isNorthSouth).with(MagicDoorwayBlock.OPEN_EAST_WEST, !isNorthSouth).with(MagicDoorwayBlock.PART, part));
175+
Block block = Objects.requireNonNull(Blocks.MAGIC_DOORWAY.get());
176+
world.setBlockState(pos, block.getDefaultState().with(MagicDoorwayBlock.OPEN_NORTH_SOUTH, isNorthSouth).with(MagicDoorwayBlock.OPEN_EAST_WEST, !isNorthSouth).with(MagicDoorwayBlock.PART, part));
173177

174178
TileEntity tileEntity = world.getTileEntity(pos);
175179
if (tileEntity instanceof MagicDoorwayTileEntity) {

MagicDoorknob/src/main/java/com/tomboshoven/minecraft/magicdoorknob/modelloaders/ModelLoaders.java

+6-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import net.minecraftforge.api.distmarker.OnlyIn;
77
import net.minecraftforge.client.event.ModelRegistryEvent;
88
import net.minecraftforge.client.model.ModelLoaderRegistry2;
9-
import net.minecraftforge.eventbus.api.SubscribeEvent;
9+
import net.minecraftforge.eventbus.api.IEventBus;
1010

1111
import static com.tomboshoven.minecraft.magicdoorknob.MagicDoorknobMod.MOD_ID;
1212

@@ -18,8 +18,11 @@ public final class ModelLoaders {
1818
private ModelLoaders() {
1919
}
2020

21-
@SubscribeEvent
22-
public static void registerModelLoaders(ModelRegistryEvent event) {
21+
public static void register(IEventBus eventBus) {
22+
eventBus.addListener(ModelLoaders::registerModelLoaders);
23+
}
24+
25+
private static void registerModelLoaders(ModelRegistryEvent event) {
2326
// Initialize textured model loader
2427
TexturedModelLoader modelLoader = new TexturedModelLoader();
2528
modelLoader.registerTexture(new ResourceLocation(MOD_ID, "block/empty"));

0 commit comments

Comments
 (0)