2017-11-15 14 views
1

それで、私はItemBlockが登録されると同時にブロックに登録しようとしています。私はこれまでこれを思いついた。これを行うより良い方法はありますか?私はitemBlock.setRegistryName部内には本当に満足していませんregisterBlock()ItemBlockをここに登録するよりも良い方法は?

public class ModBlocks { 

    public static Block tinBlock; 

    public static void init(){ 
     tinBlock = new BlockTinBlock("tin_block", "tin_block"); 
    } 

    public static void register(){ 
     registerBlock(tinBlock); 
    } 

    public static void registerRenders(){ 
     registerRender(tinBlock); 
    } 

    public static void registerBlock(Block block){ 
     GameRegistry.register(block); 
     ItemBlock itemBlock = new ItemBlock(block); 
     itemBlock.setRegistryName(Reference.MODID, block.getUnlocalizedName().substring(5)); 
     GameRegistry.register(itemBlock); 
    } 

    public static void registerRender(Block block){ 
     ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(block), 0, new ModelResourceLocation(new ResourceLocation(Reference.MODID, block.getUnlocalizedName().substring(5)), "inventory")); 
    } 
} 
+0

どのようなミニクラフトバージョンについて話していますか? – Skgland

答えて

1

2時間前にMinecraftForgeフォーラムに投稿されたリンクを見つけました。このアイテムとブロックを登録する方法は最新のもので、RegistryEvents!一見して、切り替えを検討してください!

[MinecraftForge] 1.11.2 - Is using RegistryEvent this way ok?

0

何がやっていることはかなりそれであるが、その他のブロック、アイテムとモデルの登録のためにあなたが対応するイベントを使用する必要があります。
これを行うには、イベントを受け取るイベントリスナーが必要になります。
イベントリスナーは、パラメータとしてイベントをとる関数であると彼らはどちらか自分の@Modクラス または別々のクラスであなたをブロック、アイテムとモデルを登録するには@Mod.EventBusSubscriber(modid = "yourmodid")

を注釈付きクラスに配置することができ@SubscribeEventが注釈されていますこのテーマに関する

@Mod.EventBusSubscriber(modid = "yourmodid") 
public class Registration{ 
    @SubscribeEvent 
    public static void registerBlocks(RegistryEvent.Register<Block> event) { 
     IForgeRegistry registry = event.getRegistry(); 
     //register blocks here using registry 
    } 

    @SubscribeEvent 
    public static void registerItems(RegistryEvent.Register<Item> event) { 
     //register items here like we did with the blocks 
    } 

    @SideOnly(Side.CLIENT) 
    @SubscribeEvent 
    public static void initModels(ModelRegistryEvent event) { 
     //register models here 
    } 
} 

詳しい情報はhere見つけることができる公式のMinecraft Forgeのドキュメントで見つけることができます。このような何かを書くでしょう。

+0

Hey BDoubleB97、 私は実際に、これらのイベントを使用するMinecraft Forgeの記事に、秩序ある方法で記事を登録する素晴らしい方法を見つけました。助けてくれてありがとう、しかし、私は正しい答えとしてそのリンクを投稿するよ! –

関連する問題