2017-11-15 15 views
1

그래서 ItemBlock이 등록 될 때 내 Block과 함께 등록하려고합니다. 나는 이것을 지금까지 생각해 냈다. 이 일을하는 더 좋은 방법이 있습니까? 나는 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

우리가 말하는 minecraft 버전은 무엇입니까? – Skgland

답변

0

당신이하고있는 것은 거의 그것을이지만, 블록의 등록, 항목 및 모델 등을 사용하면 해당 이벤트 사용해야 이벤트를 수신
이 작업을 수행하는 이벤트 리스너가 필요합니다을 .
이벤트 리스너는 매개 변수로 이벤트를 받아 또는 별도의 클래스 블록, 항목 및 모델을 등록하려면

@Mod.EventBusSubscriber(modid = "yourmodid")을 주석 클래스에 그들이 당신의 @Mod 클래스 중 하나를 찾을 수 있습니다 @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를 찾을 수있는 공식 마인 크래프트 포지 문서에서 찾을 수 있습니다처럼 작성할 수 있습니다.

+0

안녕하세요, BDoubleB97, 저는 실제로 이러한 이벤트를 사용하는 Minecraft Forge의 게시물에 항목을 등록하는 놀라운 방법을 찾았지만 훨씬 더 규칙적인 방식으로 항목을 등록했습니다. 도움을 주셔서 감사합니다,하지만 나는 정답으로 그 링크를 게시 할거야! –