Jump to content

[SOLVED] [1.12.2] Declaring stairs in the registry event


JimiIT92

Recommended Posts

As the title said, is it possibile to declare a stair block based on a mod block inside the register event? Right now this is the class i use to declare all my blocks

package com.mineworld.core;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.EnumSet;

import com.mineworld.block.*;
import com.mineworld.block.enums.*;
import com.mineworld.block.itemblock.*;
import com.mineworld.block.slab.*;
import com.mineworld.settings.ModSettings;
import com.mineworld.utils.BlockUtils;

import net.minecraft.block.Block;
import net.minecraft.block.BlockSlab;
import net.minecraft.block.BlockStairs;
import net.minecraft.block.material.MapColor;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemSlab;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.event.ModelRegistryEvent;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.event.RegistryEvent.Register;
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.registry.GameRegistry.ObjectHolder;

/**
 * MineWorld blocks
 * @author Jimi
 *
 */
@EventBusSubscriber
@ObjectHolder(ModSettings.MODID)
public class MWBlocks {

	public static final Block RUBY_ORE = null;
	public static final Block SAPPHIRE_ORE = null;
	public static final Block COPPER_ORE = null;
	public static final Block SILVER_ORE = null;
	public static final Block ALUMINIUM_ORE = null;
	public static final Block PYRITE_ORE = null;
	public static final Block RUBY_BLOCK = null;
	public static final Block SAPPHIRE_BLOCK = null;
	public static final Block COPPER_BLOCK = null;
	public static final Block BRONZE_BLOCK = null;
	public static final Block SILVER_BLOCK = null;
	public static final Block ALUMINIUM_BLOCK = null;
	public static final Block PYRITE_BLOCK = null;
	public static final Block MARBLE = null;
	public static final BlockHalfOreSlab ORE_SLAB = null;
	public static final BlockDoubleOreSlab ORE_DOUBLE_SLAB = null;
	public static final BlockHalfPoweredOreSlab POWERED_ORE_SLAB = null;
	public static final BlockDoublePoweredOreSlab POWERED_ORE_DOUBLE_SLAB = null;
	public static final BlockHalfMarbleSlab MARBLE_SLAB = null;
	public static final BlockDoubleMarbleSlab MARBLE_DOUBLE_SLAB = null;
	public static final Block RUBY_STAIRS = null;
	public static final Block SAPPHIRE_STAIRS = null;
	public static final Block COPPER_STAIRS = null;
	public static final Block BRONZE_STAIRS = null;
	public static final Block SILVER_STAIRS = null;
	public static final Block ALUMINIUM_STAIRS = null;
	public static final Block WHITE_MARBLE_STAIRS = null;
	public static final Block BLACK_MARBLE_STAIRS = null;
	public static final Block RED_MARBLE_STAIRS = null;
	public static final Block BROWN_MARBLE_STAIRS = null;
	public static final Block PINK_MARBLE_STAIRS = null;
	public static final Block YELLOW_MARBLE_STAIRS = null;
	public static final Block GREEN_MARBLE_STAIRS = null;
	
	/**
	 * Register the blocks
	 * @param event Register event
	 */
	@SubscribeEvent
	public static void registerBlocks(Register<Block> event) {
		event.getRegistry().registerAll(
				new BlockOreMW("ruby_ore", EnumOre.RUBY.getHarvestLevel()),
				new BlockOreMW("sapphire_ore", EnumOre.SAPPHIRE.getHarvestLevel()),
				new BlockOreMW("copper_ore", EnumOre.COPPER.getHarvestLevel()),
				new BlockOreMW("silver_ore", EnumOre.SILVER.getHarvestLevel()),
				new BlockOreMW("aluminium_ore", EnumOre.ALUMINIUM.getHarvestLevel()),
				new BlockOreMW("pyrite_ore", EnumOre.PYRITE.getHarvestLevel()),
				new BlockCompressedMW("ruby_block", EnumOre.RUBY.getMapColor(), EnumOre.RUBY.getHarvestLevel()),
				new BlockCompressedMW("sapphire_block", EnumOre.SAPPHIRE.getMapColor(), EnumOre.SAPPHIRE.getHarvestLevel()),
				new BlockCompressedPoweredMW("copper_block", EnumOre.COPPER.getMapColor(), EnumOre.COPPER.getPowerLevel()),
				new BlockCompressedPoweredMW("bronze_block", EnumOre.BRONZE.getMapColor(), EnumOre.BRONZE.getPowerLevel()),
				new BlockCompressedMW("silver_block", EnumOre.SILVER.getMapColor(), EnumOre.SILVER.getHarvestLevel()),
				new BlockCompressedMW("aluminium_block", EnumOre.ALUMINIUM.getMapColor(), EnumOre.ALUMINIUM.getHarvestLevel()),
				new BlockCompressedMW("pyrite_block", EnumOre.PYRITE.getMapColor(), EnumOre.PYRITE.getHarvestLevel()),
				new BlockMarble("marble"),
				new BlockHalfOreSlab("ore_slab"),
				new BlockDoubleOreSlab("ore_double_slab"),
				new BlockHalfPoweredOreSlab("powered_ore_slab"),
				new BlockDoublePoweredOreSlab("powered_ore_double_slab"),
				new BlockHalfMarbleSlab("marble_slab"),
				new BlockDoubleMarbleSlab("marble_double_slab"),
				new BlockStairsMW("ruby_stairs", Blocks.STONE),
				new BlockStairsMW("sapphire_stairs", Blocks.STONE),
				new BlockStairsMW("copper_stairs", Blocks.STONE.getDefaultState(), MWTabs.REDSTONE, EnumOre.COPPER.getPowerLevel()),
				new BlockStairsMW("bronze_stairs", Blocks.STONE.getDefaultState(), MWTabs.REDSTONE, EnumOre.BRONZE.getPowerLevel()),
				new BlockStairsMW("silver_stairs", Blocks.STONE),
				new BlockStairsMW("aluminium_stairs", Blocks.STONE),
				new BlockStairsMW("white_marble_stairs", Blocks.STONE),
				new BlockStairsMW("black_marble_stairs", Blocks.STONE),
				new BlockStairsMW("red_marble_stairs", Blocks.STONE),
				new BlockStairsMW("brown_marble_stairs", Blocks.STONE),
				new BlockStairsMW("pink_marble_stairs", Blocks.STONE),
				new BlockStairsMW("yellow_marble_stairs", Blocks.STONE),
				new BlockStairsMW("green_marble_stairs", Blocks.STONE)
		);
	}
	
	/**
	 * Register the item blocks
	 * @param event Register event
	 */
	@SubscribeEvent
	public static void registerItemBlocks(Register<Item> event) {
		event.getRegistry().registerAll(
				new ItemBlock(RUBY_ORE).setRegistryName(RUBY_ORE.getRegistryName()),
				new ItemBlock(SAPPHIRE_ORE).setRegistryName(SAPPHIRE_ORE.getRegistryName()),
				new ItemBlock(COPPER_ORE).setRegistryName(COPPER_ORE.getRegistryName()),
				new ItemBlock(SILVER_ORE).setRegistryName(SILVER_ORE.getRegistryName()),
				new ItemBlock(ALUMINIUM_ORE).setRegistryName(ALUMINIUM_ORE.getRegistryName()),
				new ItemBlock(PYRITE_ORE).setRegistryName(PYRITE_ORE.getRegistryName()),
				new ItemBlock(RUBY_BLOCK).setRegistryName(RUBY_BLOCK.getRegistryName()),
				new ItemBlock(SAPPHIRE_BLOCK).setRegistryName(SAPPHIRE_BLOCK.getRegistryName()),
				new ItemBlock(COPPER_BLOCK).setRegistryName(COPPER_BLOCK.getRegistryName()),
				new ItemBlock(BRONZE_BLOCK).setRegistryName(BRONZE_BLOCK.getRegistryName()),
				new ItemBlock(SILVER_BLOCK).setRegistryName(SILVER_BLOCK.getRegistryName()),
				new ItemBlock(ALUMINIUM_BLOCK).setRegistryName(ALUMINIUM_BLOCK.getRegistryName()),
				new ItemBlock(PYRITE_BLOCK).setRegistryName(PYRITE_BLOCK.getRegistryName()),
				new ItemBlockVariant(MARBLE, EnumMarble.class).setRegistryName(MARBLE.getRegistryName()),
				new ItemSlab(ORE_SLAB, ORE_SLAB, ORE_DOUBLE_SLAB).setRegistryName(ORE_SLAB.getRegistryName()),
				new ItemSlab(POWERED_ORE_SLAB, POWERED_ORE_SLAB, POWERED_ORE_DOUBLE_SLAB).setRegistryName(POWERED_ORE_SLAB.getRegistryName()),
				new ItemSlab(MARBLE_SLAB, MARBLE_SLAB, MARBLE_DOUBLE_SLAB).setRegistryName(MARBLE_SLAB.getRegistryName()),
				new ItemBlock(RUBY_STAIRS).setRegistryName(RUBY_STAIRS.getRegistryName()),
				new ItemBlock(SAPPHIRE_STAIRS).setRegistryName(SAPPHIRE_STAIRS.getRegistryName()),
				new ItemBlock(COPPER_STAIRS).setRegistryName(COPPER_STAIRS.getRegistryName()),
				new ItemBlock(BRONZE_STAIRS).setRegistryName(BRONZE_STAIRS.getRegistryName()),
				new ItemBlock(SILVER_STAIRS).setRegistryName(SILVER_STAIRS.getRegistryName()),
				new ItemBlock(ALUMINIUM_STAIRS).setRegistryName(ALUMINIUM_STAIRS.getRegistryName()),
				new ItemBlock(WHITE_MARBLE_STAIRS).setRegistryName(WHITE_MARBLE_STAIRS.getRegistryName()),
				new ItemBlock(BLACK_MARBLE_STAIRS).setRegistryName(BLACK_MARBLE_STAIRS.getRegistryName()),
				new ItemBlock(RED_MARBLE_STAIRS).setRegistryName(RED_MARBLE_STAIRS.getRegistryName()),
				new ItemBlock(BROWN_MARBLE_STAIRS).setRegistryName(BROWN_MARBLE_STAIRS.getRegistryName()),
				new ItemBlock(PINK_MARBLE_STAIRS).setRegistryName(PINK_MARBLE_STAIRS.getRegistryName()),
				new ItemBlock(YELLOW_MARBLE_STAIRS).setRegistryName(YELLOW_MARBLE_STAIRS.getRegistryName()),
				new ItemBlock(GREEN_MARBLE_STAIRS).setRegistryName(GREEN_MARBLE_STAIRS.getRegistryName())
		);
	}

	/**
	 * Register the block models
	 * @param event ModelRegistry event
	 */
	@SubscribeEvent
	public static void registerModels(ModelRegistryEvent event) {
		BlockUtils.registerBlockModel(RUBY_ORE);
		BlockUtils.registerBlockModel(SAPPHIRE_ORE);
		BlockUtils.registerBlockModel(COPPER_ORE);
		BlockUtils.registerBlockModel(SILVER_ORE);
		BlockUtils.registerBlockModel(ALUMINIUM_ORE);
		BlockUtils.registerBlockModel(PYRITE_ORE);
		BlockUtils.registerBlockModel(RUBY_BLOCK);
		BlockUtils.registerBlockModel(SAPPHIRE_BLOCK);
		BlockUtils.registerBlockModel(COPPER_BLOCK);
		BlockUtils.registerBlockModel(BRONZE_BLOCK);
		BlockUtils.registerBlockModel(SILVER_BLOCK);
		BlockUtils.registerBlockModel(ALUMINIUM_BLOCK);
		BlockUtils.registerBlockModel(PYRITE_BLOCK);
		BlockUtils.registerMetadataBlockModel(MARBLE, "color", EnumMarble.class);
		BlockUtils.registerSlabBlockModel(ORE_SLAB, "ore", EnumOre.class, true, EnumOre.COPPER, EnumOre.BRONZE, EnumOre.PYRITE);
		BlockUtils.registerMetadataBlockModel(ORE_DOUBLE_SLAB, "ore", EnumOre.class, true, EnumOre.COPPER, EnumOre.BRONZE, EnumOre.PYRITE);
		BlockUtils.registerSlabBlockModel(POWERED_ORE_SLAB, "ore", EnumOre.class, false, EnumOre.COPPER, EnumOre.BRONZE);
		BlockUtils.registerMetadataBlockModel(POWERED_ORE_DOUBLE_SLAB, "ore", EnumOre.class, false, EnumOre.COPPER, EnumOre.BRONZE);
		BlockUtils.registerSlabBlockModel(MARBLE_SLAB, "color", EnumMarble.class);
		BlockUtils.registerMetadataBlockModel(MARBLE_DOUBLE_SLAB, "color", EnumMarble.class);
		BlockUtils.registerBlockModel(RUBY_STAIRS);
		BlockUtils.registerBlockModel(SAPPHIRE_STAIRS);
		BlockUtils.registerBlockModel(COPPER_STAIRS);
		BlockUtils.registerBlockModel(BRONZE_STAIRS);
		BlockUtils.registerBlockModel(SILVER_STAIRS);
		BlockUtils.registerBlockModel(ALUMINIUM_STAIRS);
		BlockUtils.registerBlockModel(WHITE_MARBLE_STAIRS);
		BlockUtils.registerBlockModel(BLACK_MARBLE_STAIRS);
		BlockUtils.registerBlockModel(RED_MARBLE_STAIRS);
		BlockUtils.registerBlockModel(BROWN_MARBLE_STAIRS);
		BlockUtils.registerBlockModel(PINK_MARBLE_STAIRS);
		BlockUtils.registerBlockModel(YELLOW_MARBLE_STAIRS);
		BlockUtils.registerBlockModel(GREEN_MARBLE_STAIRS);
	}
}


In the register blocks event i declare my stair using the vanilla stone block as base block. If i change that to RUBY_BLOCK or any other mod blocks the game crashes with a null pointer exception. So how can i use a mod block for the stairs instead of a vanilla one? :)

Edited by JimiIT92

Don't blame me if i always ask for your help. I just want to learn to be better :)

Link to comment
Share on other sites

  • 5 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.