Jump to content

MrSalimoc

Members
  • Posts

    4
  • Joined

  • Last visited

Everything posted by MrSalimoc

  1. None, at start i followed a tutorial but there is too many error then I tried myself (with ForgeDocs). Big thank, my error was : @SubscribeEvent //You didn't wrote it. public static void onBlockRegister(RegistryEvent.Register<Block> event) { event.getRegistry().registerAll(MTBlocks.BLOCKS); }
  2. Here , in my Blocks class : package mrsalimoc.moderntech.common.blocks; import java.util.ArrayList; import java.util.List; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.item.Item; public class MTBlocks { public static final List<Block> BLOCKS = new ArrayList<Block>(); public static final Block TESTBLOCK = new MTBlockBase("testblock", Material.IRON); }
  3. I register my block in a Registry Handler : package mrsalimoc.moderntech.util.handler; import mrsalimoc.moderntech.common.blocks.MTBlocks; import mrsalimoc.moderntech.common.items.MTItems; import mrsalimoc.moderntech.util.MTModel; import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraftforge.client.event.ModelRegistryEvent; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; @EventBusSubscriber public class RegistryHandler { @SubscribeEvent public static void onItemRegister(RegistryEvent.Register<Item> event) { event.getRegistry().registerAll(MTItems.ITEMS.toArray(new Item[0]));; } public static void onBlockRegister(RegistryEvent.Register<Block> event) { event.getRegistry().registerAll(MTBlocks.BLOCKS.toArray(new Block[0]));; } @SubscribeEvent public static void onModelRegister(ModelRegistryEvent event) { for(Item item : MTItems.ITEMS) { if(item instanceof MTModel) { System.out.println("Item registered"); ((MTModel)item).registerModels(); } } for(Block block : MTBlocks.BLOCKS) { if(block instanceof MTModel) { System.out.println("Block registered"); ((MTModel)block).registerModels(); } } } } And the array contain all my blocks that i create. (see the code)
  4. I'm working on my mod for creating a new block, but i'm stuck. The problem is in the title. The code : package mrsalimoc.moderntech.common.blocks; import mrsalimoc.moderntech.ModernTech; import mrsalimoc.moderntech.common.items.MTItems; import mrsalimoc.moderntech.util.MTModel; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; public class MTBlockBase extends Block implements MTModel{ public MTBlockBase(String name, Material material) { super(material); setUnlocalizedName(name); setRegistryName(name); setCreativeTab(CreativeTabs.BUILDING_BLOCKS); MTBlocks.BLOCKS.add(this); MTItems.ITEMS.add(new ItemBlock(this).setRegistryName(this.getRegistryName()).setUnlocalizedName(this.getUnlocalizedName())); System.out.println(this.getRegistryName()); //returning 'moderntech:testblock' (my block) System.out.println(new ItemBlock(this).getRegistryName()); //returning 'null' } @Override public void registerModels() { ModernTech.proxy.registerItemRenderer(Item.getItemFromBlock(this), 0, "inventory"); System.out.println(Item.getItemFromBlock(this).getUnlocalizedName()); //returning 'tile.air' (null) System.out.println(Item.getItemFromBlock(this).getRegistryName()); //returning 'minecraft:air' } } Creating block code : package mrsalimoc.moderntech.common.blocks; import java.util.ArrayList; import java.util.List; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.item.Item; public class MTBlocks { public static final List<Block> BLOCKS = new ArrayList<Block>(); public static final Block TESTBLOCK = new MTBlockBase("testblock", Material.IRON); } I don't have any error, but the block don't exist in the game when i launch. (If you need more code, tell me)
×
×
  • Create New...

Important Information

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