[1.9.4] Способ регистрации блоков.

667
7
2
Столкнулся с такой проблемой:
 GameRegistry.register не регистрирует блоки, а старый способ регистрации блоков: GameRegistry.registerBlock перечёркнут как устаревший, конечно я попробовал его использовать, всё работает, но слишком "стрёмно" его использовать. 
 

timaxa007

Модератор
5,827
409
656
В конструктор блока добавить метод:
Код:
setRegistryName("RegistryNameBlock");
Где RegistryNameBlock - это имя для регистрации.
 
164
1
4
А так же в конструктор блока:
Код:
GameRegistry.register(this)
GameRegistry.register(new ItemBlock(this), this.getRegistryName());
 
667
7
2
timaxa007 написал(а):
В конструктор блока добавить метод:
Код:
setRegistryName("RegistryNameBlock");
Где RegistryNameBlock - это имя для регистрации.
Имя для регистрации я дал, но даже с ним GameRegistry.register не регистрирует блок.
[merge_posts_bbcode]Добавлено: 26.07.2016 18:50:44[/merge_posts_bbcode]

nikita488 написал(а):
А так же в конструктор блока:
Код:
GameRegistry.register(this)
GameRegistry.register(new ItemBlock(this), this.getRegistryName());
Попробовал так, крашит, жалуется на "GameRegistry.register(new ItemBlock(this), this.getRegistryName());".
Код:
public static void init() {
    GameRegistry.register(SpectralOre);
    GameRegistry.register(new ItemBlock(SpectralOre));
}
 

timaxa007

Модератор
5,827
409
656
virysD написал(а):
Имя для регистрации я дал, но даже с ним GameRegistry.register не регистрирует блок.
Ты уверен в этом? То что он не появился во вкладке, это ещё не значит, что он не зарегистрирован.

virysD написал(а):
Попробовал так, крашит, жалуется на "GameRegistry.register(new ItemBlock(this), this.getRegistryName());".
Под this должен быть объект твоего блока.

virysD написал(а):
Код:
    GameRegistry.register(new ItemBlock(SpectralOre));
И где второй аргумент?
А так-же, где сам объект твоего блока?
Код:
    public static Block testBlock;

    @EventHandler
    public void preInit(FMLPreInitializationEvent event) {
        testBlock = new Block(Material.ROCK).setRegistryName("block_test").setCreativeTab(CreativeTabs.BUILDING_BLOCKS);
        GameRegistry.register(testBlock);
        GameRegistry.register(new ItemBlock(testBlock), testBlock.getRegistryName());
    }
И он работает.
 
Сверху