ItemBlock

63
1
5
1590499604048.png
Поясните пожалуйста.
Версия 1.5.2.1590499868376.png
 
Последнее редактирование модератором:

timaxa007

Модератор
5,831
409
672
Проще говоря ItemBlock - это Item, который в себе хранит Block.
Java:
GameRegistry.registerBlock(my_block, ItemMyBlock.class, "my_block");
Java:
class ItemMyBlock extends Item {

public ItemMyBlock(Block block) {
super(block);
}

}
Block, это то что в мир ставиться. А Item это то что в инвентаре и через предмет ставиться в мир Block.
 
63
1
5
То что мне надо. Только мне Майн постоянно краши выдает. Возможно методы просит переопределить. Но это не точно.
Это первый.

Java:
2020-05-26 18:10:40 [INFO] [STDERR] java.lang.NullPointerException
2020-05-26 18:10:40 [INFO] [STDERR]     at net.minecraft.item.ItemBlock.getSpriteNumber(ItemBlock.java:42)
2020-05-26 18:10:40 [INFO] [STDERR]     at net.minecraft.client.renderer.texture.TextureMap.refreshTextures(TextureMap.java:83)
2020-05-26 18:10:40 [INFO] [STDERR]     at net.minecraft.client.renderer.RenderEngine.refreshTextureMaps(RenderEngine.java:521)
2020-05-26 18:10:40 [INFO] [STDERR]     at net.minecraft.client.Minecraft.startGame(Minecraft.java:444)
2020-05-26 18:10:40 [INFO] [STDERR]     at net.minecraft.client.MinecraftAppletImpl.startGame(MinecraftAppletImpl.java:44)
2020-05-26 18:10:40 [INFO] [STDERR]     at net.minecraft.client.Minecraft.run(Minecraft.java:733)
2020-05-26 18:10:40 [INFO] [STDERR]     at java.lang.Thread.run(Thread.java:745)

Айтем блок.
ItemSugarBag:
public class ItemSugarBag extends ItemBlock{

    public ItemSugarBag(int par1) {
        super(par1);
        this.setCreativeTab(Main.es_tab);
        this.setMaxStackSize(1);
        this.setUnlocalizedName("sugar bag");
    }
    
    @SideOnly(Side.CLIENT)
    public void registerIcons(IconRegister icon){
        this.itemIcon = icon.registerIcon("cool:sugarBag");
    }

}
Блок
BlockSugarBag:
public class BlockSugarBag extends Block{

    public BlockSugarBag(int par1, Material par2Material) {
        super(par1, par2Material);
        this.setCreativeTab(Main.es_tab);
        this.setUnlocalizedName("sugar block");

    }
    
    @SideOnly(Side.CLIENT)
    public void registerIcons(IconRegister icon){
        this.blockIcon = icon.registerIcon("cool:sugarBag");
    }
}
Регистрация
Main class:
public static Block sugarBagBlock;
    
    public static Block sugarBagBlock;
    public static ItemBlock sugarBag;
    
    public static void registerItems() {
        int itemID = 1800;
        
        sugarBag = new ItemSugarBag(Main.sugarBagBlock.blockID);

    }
    
    public static void registerBlocks() {
        int blockID = 2100;
        
        sugarBagBlock = new BlockSugarBag(blockID++, Material.cloth);
    }
    
    
    @PreInit
    public static void preInit(FMLPreInitializationEvent event) {
        registerBlocks();
        registerItems();
    }
    
    @Init
    public static void init(FMLInitializationEvent event) {
        GameRegistry.registerBlock(sugarBagBlock, ItemSugarBag.class, "sugarBagBlock");
        GameRegistry.registerItem(sugarBag, "sugarBagItem");
    }
}
 
Сверху