- 3
- 0
Помню, что в 1.6-1.8 можно было регистрировать блоки и итемы через отдельные классы(ru.vm99.mod.item.Items) а теперь при попытке зарегестрировать блоки и итемы таким образом появляется проблема - игра не регистрирует их. А если напрямую в главный файл - все нормально. Вот код, уверен, там есть ошибка, которую я не вижу.
Код:
package ru.lonesimba.decor;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.registry.GameRegistry;
import ru.lonesimba.decor.block.BlockScaffold;
@Mod(modid = "decor", name = "Decorations", version = "0.1 #1")
public class MainClass {
@SidedProxy(serverSide = "ru.lonesimba.decor.ServerProxy", clientSide = "ru.lonesimba.decor.ClientProxy")
public static ServerProxy proxy;
public static Block SCAFFOLD = new BlockScaffold();
public void preInit(FMLPreInitializationEvent event) {
//ModBlocks.blockRegistry();
//ModItems.itemRegistry();
GameRegistry.register(SCAFFOLD);
}
public void init(FMLInitializationEvent event) {
proxy.init();
}
public void postinit(FMLPostInitializationEvent event) {
}
public static void initRender() {
//ModBlocks.blockRenderRegistry();
//ModItems.itemRenderRegistry();
registerRenderBlock(SCAFFOLD);
}
public static void registerRenderBlock(Block block) {
Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(Item.getItemFromBlock(block), 0, new ModelResourceLocation(block.getRegistryName(), "inventory"));
}
public static void registerRenderItem(Item item) {
Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(item.getRegistryName(), "inventory"));
}
}
Код:
package ru.lonesimba.decor;
import net.minecraft.block.Block;
import net.minecraftforge.fml.common.registry.GameRegistry;
import ru.lonesimba.decor.block.BlockScaffold;
public class ModBlocks {
public static Block SCAFFOLD = new BlockScaffold();
public static void blockRegistry() {
GameRegistry.register(SCAFFOLD);
}
public static void blockRenderRegistry() {
MainClass.registerRenderBlock(SCAFFOLD);
}
}
Код:
package ru.lonesimba.decor;
import net.minecraft.item.Item;
import net.minecraftforge.fml.common.registry.GameRegistry;
import ru.lonesimba.decor.item.ItemIronStick;
public class ModItems {
public static Item ironstick = new ItemIronStick();
public static void itemRegistry() {
GameRegistry.registerItem(ironstick);
}
public static void itemRenderRegistry() {
MainClass.registerRenderItem(ironstick);
}
}
Код:
package ru.lonesimba.decor.item;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraftforge.fml.common.registry.GameRegistry;
public class ItemIronStick extends Item {
public ItemIronStick() {
setCreativeTab(CreativeTabs.MISC);
setFull3D();
setUnlocalizedName("ironstick");
}
}
Код:
package ru.lonesimba.decor.block;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.ItemBlock;
import net.minecraftforge.fml.common.registry.GameRegistry;
public class BlockScaffold extends Block {
public BlockScaffold() {
super(Material.WOOD);
setRegistryName("scaffold");
setUnlocalizedName("scaffold");
setCreativeTab(CreativeTabs.BUILDING_BLOCKS);
GameRegistry.register(this);
GameRegistry.register(new ItemBlock(this), getRegistryName());
}
}
Код:
package ru.lonesimba.decor;
public class ClientProxy extends ServerProxy {
public void init() {
MainClass.initRender();
}
}
Код:
package ru.lonesimba.decor;
public class ServerProxy {
public void init() {
}
}