Initial work on event based registration

This commit is contained in:
drcrazy 2018-09-26 18:28:59 +03:00
parent 6713cd6296
commit e9c2857db8
3 changed files with 80 additions and 94 deletions

View file

@ -121,7 +121,6 @@ public class TechReborn {
CommonProxy.isChiselAround = Loader.isModLoaded("ctm");
TechRebornAPI.subItemRetriever = new SubItemRetriever();
// Registration
TRContent.registerBlocks();
TRTileEntities.init();
ModFluids.init();
TRContent.registerItems();

View file

@ -0,0 +1,80 @@
/**
*
*/
package techreborn.events;
import java.util.Arrays;
import net.minecraft.block.Block;
import net.minecraft.block.BlockSlab;
import net.minecraft.item.ItemSlab;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import reborncore.RebornRegistry;
import techreborn.TechReborn;
import techreborn.blocks.BlockComputerCube;
import techreborn.blocks.BlockNuke;
import techreborn.blocks.BlockRefinedIronFence;
import techreborn.blocks.BlockReinforcedGlass;
import techreborn.blocks.BlockRubberLeaves;
import techreborn.blocks.BlockRubberLog;
import techreborn.blocks.BlockRubberPlank;
import techreborn.blocks.BlockRubberPlankSlab;
import techreborn.blocks.BlockRubberPlankStair;
import techreborn.blocks.BlockRubberSapling;
import techreborn.init.TRContent;
import techreborn.init.TRContent.Cables;
import techreborn.init.TRContent.Machine;
import techreborn.init.TRContent.MachineBlocks;
import techreborn.init.TRContent.Ores;
import techreborn.init.TRContent.SolarPanels;
import techreborn.init.TRContent.StorageBlocks;
import techreborn.itemblocks.ItemBlockRubberSapling;
import techreborn.utils.InitUtils;
/**
* @author drcrazy
*
*/
@Mod.EventBusSubscriber(modid = TechReborn.MOD_ID)
public class RegistryEventHandler {
@SubscribeEvent
public static void registerBlocks(RegistryEvent.Register<Block> event) {
Arrays.stream(Ores.values()).forEach(value -> RebornRegistry.registerBlock(value.block));
Arrays.stream(StorageBlocks.values()).forEach(value -> RebornRegistry.registerBlock(value.block));
Arrays.stream(MachineBlocks.values()).forEach(value -> {
RebornRegistry.registerBlock(value.frame);
RebornRegistry.registerBlock(value.casing);
});
Arrays.stream(SolarPanels.values()).forEach(value -> RebornRegistry.registerBlock(value.block));
Arrays.stream(Cables.values()).forEach(value -> RebornRegistry.registerBlock(value.block));
Arrays.stream(Machine.values()).forEach(value -> RebornRegistry.registerBlock(value.block));
// Misc. blocks
RebornRegistry.registerBlock(TRContent.COMPUTER_CUBE = InitUtils.setup(new BlockComputerCube(), "computer_cube"));
RebornRegistry.registerBlock(TRContent.NUKE = InitUtils.setup(new BlockNuke(), "nuke"));
RebornRegistry.registerBlock(TRContent.REFINED_IRON_FENCE = InitUtils.setup(new BlockRefinedIronFence(), "refined_iron_fence"));
RebornRegistry.registerBlock(TRContent.REINFORCED_GLASS = InitUtils.setup(new BlockReinforcedGlass(), "reinforced_glass"));
RebornRegistry.registerBlock(TRContent.RUBBER_LEAVES = InitUtils.setup(new BlockRubberLeaves(), "rubber_leaves"));
RebornRegistry.registerBlock(TRContent.RUBBER_LOG = InitUtils.setup(new BlockRubberLog(), "rubber_log"));
RebornRegistry.registerBlock(TRContent.RUBBER_PLANKS = InitUtils.setup(new BlockRubberPlank(), "rubber_planks"));
RebornRegistry.registerBlockNoItem(TRContent.RUBBER_LOG_SLAB_HALF = InitUtils.setup(new BlockRubberPlankSlab.BlockHalf("rubber_plank"), "rubber_plank_slab"));
RebornRegistry.registerBlock(
TRContent.RUBBER_SAPLING = InitUtils.setup(new BlockRubberSapling(), "rubber_sapling"),
ItemBlockRubberSapling.class,
"rubber_sapling");
RebornRegistry.registerBlock(
TRContent.RUBBER_LOG_SLAB_DOUBLE = InitUtils.setup(new BlockRubberPlankSlab.BlockDouble("rubber_plank", TRContent.RUBBER_LOG_SLAB_HALF), "rubber_plank_double_slab"),
new ItemSlab(TRContent.RUBBER_LOG_SLAB_HALF, (BlockSlab) TRContent.RUBBER_LOG_SLAB_HALF, (BlockSlab) TRContent.RUBBER_LOG_SLAB_DOUBLE),
"rubber_plank_double_slab");
RebornRegistry.registerBlock(TRContent.RUBBER_LOG_STAIR = InitUtils.setup(new BlockRubberPlankStair(TRContent.RUBBER_LOG.getDefaultState(), "rubber_plank"),
"rubber_plank_stair"));
TechReborn.LOGGER.debug("TechReborns Blocks Loaded");
}
}

View file

@ -715,63 +715,6 @@ public class TRContent {
}
}
public static void registerBlocks() {
Arrays.stream(Ores.values()).forEach(value -> RebornRegistry.registerBlock(value.block));
Arrays.stream(StorageBlocks.values()).forEach(value -> RebornRegistry.registerBlock(value.block));
Arrays.stream(MachineBlocks.values()).forEach(value -> {
RebornRegistry.registerBlock(value.frame);
RebornRegistry.registerBlock(value.casing);
});
Arrays.stream(SolarPanels.values()).forEach(value -> RebornRegistry.registerBlock(value.block));
Arrays.stream(Cables.values()).forEach(value -> RebornRegistry.registerBlock(value.block));
Arrays.stream(Machine.values()).forEach(value -> RebornRegistry.registerBlock(value.block));
// Misc. blocks
COMPUTER_CUBE = new BlockComputerCube();
registerBlock(COMPUTER_CUBE, "computer_cube");
NUKE = new BlockNuke();
registerBlock(NUKE, "nuke");
REFINED_IRON_FENCE = new BlockRefinedIronFence();
registerBlock(REFINED_IRON_FENCE, "refined_iron_fence");
REINFORCED_GLASS = new BlockReinforcedGlass();
registerBlock(REINFORCED_GLASS, "reinforced_glass");
RUBBER_LEAVES = new BlockRubberLeaves();
registerBlock(RUBBER_LEAVES, "rubber_leaves");
RUBBER_LOG = new BlockRubberLog();
registerBlock(RUBBER_LOG, "rubber_log");
RUBBER_LOG_SLAB_HALF = new BlockRubberPlankSlab.BlockHalf("rubber_plank");
registerBlockNoItem(RUBBER_LOG_SLAB_HALF, "rubber_plank_slab");
RUBBER_LOG_SLAB_DOUBLE = new BlockRubberPlankSlab.BlockDouble("rubber_plank", RUBBER_LOG_SLAB_HALF);
registerBlock(RUBBER_LOG_SLAB_DOUBLE, new ItemSlab(RUBBER_LOG_SLAB_HALF, (BlockSlab) RUBBER_LOG_SLAB_HALF, (BlockSlab) RUBBER_LOG_SLAB_DOUBLE) , "rubber_plank_double_slab");
RUBBER_LOG_STAIR = new BlockRubberPlankStair(TRContent.RUBBER_LOG.getDefaultState(), "rubber_plank");
registerBlock(RUBBER_LOG_STAIR, "rubber_plank_stair");
RUBBER_PLANKS = new BlockRubberPlank();
registerBlock(RUBBER_PLANKS, "rubber_planks");
RUBBER_SAPLING = new BlockRubberSapling();
registerBlock(RUBBER_SAPLING, ItemBlockRubberSapling.class, "rubber_sapling");
//TODO enable when done
// flare = new BlockFlare();
// registerBlock(flare, "flare");
// ItemBlock itemBlock = new ItemColored(flare, true);
// itemBlock.setRegistryName("flareItemBlock");
// itemBlock.setCreativeTab(TechRebornCreativeTabMisc.instance);
// GameRegistry.register(itemBlock);
// GameRegistry.registerTileEntity(TileEntityFlare.class, "TileEntityFlareTR");
TechReborn.LOGGER.debug("TechReborns Blocks Loaded");
}
public static void registerItems() {
Arrays.stream(Ingots.values()).forEach(value -> RebornRegistry.registerItem(value.item));
Arrays.stream(Nuggets.values()).forEach(value -> RebornRegistry.registerItem(value.item));
@ -967,40 +910,4 @@ public class TRContent {
});
}
}
/**
* Wrapper method for RebornRegistry
* @param block Block to register
* @param name Name of block to register
*/
public static void registerBlock(Block block, String name) {
name = name.toLowerCase();
block.setTranslationKey(TechReborn.MOD_ID + "." + name);
RebornRegistry.registerBlock(block, new ResourceLocation(TechReborn.MOD_ID, name));
}
/**
* Wrapper method for RebornRegistry
* @param block Block to Register
* @param itemclass Itemblock of block to register
* @param name Name of block to register
*/
public static void registerBlock(Block block, Class<? extends ItemBlock> itemclass, String name) {
name = name.toLowerCase();
block.setTranslationKey(TechReborn.MOD_ID + "." + name);
RebornRegistry.registerBlock(block, itemclass, new ResourceLocation(TechReborn.MOD_ID, name));
}
public static void registerBlock(Block block, ItemBlock itemBlock, String name) {
name = name.toLowerCase();
block.setTranslationKey(TechReborn.MOD_ID + "." + name);
RebornRegistry.registerBlock(block, itemBlock, new ResourceLocation(TechReborn.MOD_ID, name));
}
public static void registerBlockNoItem(Block block, String name) {
name = name.toLowerCase();
block.setTranslationKey(TechReborn.MOD_ID + "." + name);
RebornRegistry.registerBlockNoItem(block, new ResourceLocation(TechReborn.MOD_ID, name));
}
}