ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# :-: 创造物品栏 这其实很简单,只要在方块(或物品)初始化加上一行代码就行了,不过如果要独立的物品栏,就要写上很多行代码。 **`src/main/java/net/xiaobang/bm/block/BlockRainBow.java`** ~~~ package net.xiaobang.bm.block; import net.minecraft.block.Block; import net.minecraft.block.material.Material; public class BlockRainBow extends Block { public BlockRainBow() { super(Material.ground);// this.setBlockName("bm.rainBow");//设置方块的非本地化名称,bm指mod的id //如果上面的不行就换成这个this.setUnlocalizedName("bm.rainBow"); this.setHardness(-1);//设置方块的硬度,如黑曜石是50,铁块5,金块3,圆石2,石头1.5,南瓜1,泥土0.5,甘蔗0,基岩-1。 this.setStepSound(soundTypeGrass);//设置走在方块上的响声 this.setResistance(6000000.0F);//设置方块的爆炸抗性,如木头的抗性为4,石头为10,黑曜石为2000,基岩为6000000。 this.setBlockTextureName("bm:rainbow");//设置方块的材质。应该放在src/main/resources/assets/bm/textures/blocks/这个文件夹里面,名称是rainbow.png //如果上面的不行就 this.setTextureName("bm:rainbow"); //setBlockUnbreakable函数(方法)用于设定方块的硬度为-1,即不可破坏。 //setHarvestLevel函数(方法)用于设定方块的可挖掘等级,如钻石镐是3,铁2,石1,木金0。 //setLightLevel方法用于设定方块的光照,其周围的光照为设定值x15,如岩浆1.0,对应15,红石火把0.5,对应7.5。 //setLightOpacity方法用于设定方块的透光率,数值越大透光率越低,如树叶和蜘蛛网是1,水和冰3。 //setTickRandomly方法用于设定方块是否会接受随机Tick(如农作物)。 this.setCreativeTab(CreativeTabs.tabBlock);//把这个方块放在方块堆里面 } } ~~~ # :-: 新建一个创造物品栏 Minecraft的所有物品栏都继承了`CreativeTabs`类,我们首先新建包`net.xiaobang.bm.creativetab`,并在其下新建类`CreativeTabsBm`,使其继承`CreativeTabs`类: **`src/main/java/net/xiaobang/bm/creativetab/CreativeTabsBm.java`** ~~~ package net.xiaobang.bm.creativetab; import net.xiaobang.bm.block.BlockRainBow; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; public class CreativeTabsBm extends CreativeTabs { public CreativeTabsBm() { super("bm");//返回modid } @Override public Item getTabIconItem()//返回创造物品栏上显示的物品 { return new BlockRainBow(); } } ~~~ 然后再在包`net.xiaobang.bm.creativetab`下新建类`CreativeTabsLoader` **`src/main/java/net/xiaobang/bm/creativetab/CreativeTabsLoader.java`** ~~~ package net.xiaobang.bm.creativetab; import net.minecraft.creativetab.CreativeTabs; import cpw.mods.fml.common.event.FMLPreInitializationEvent; public class CreativeTabsLoader { public static CreativeTabs tabBm; public CreativeTabsLoader(FMLPreInitializationEvent event) { tabBm = new CreativeTabsBm(); } } ~~~ 并将物品注册进去: **`src/main/java/net/xiaobang/bm/block/BlockRainBow.java`** ~~~ package net.xiaobang.bm.block; import net.minecraft.block.Block; import net.minecraft.block.material.Material; public class BlockRainBow extends Block { public BlockRainBow() { super(Material.ground);// this.setBlockName("bm.rainBow");//设置方块的非本地化名称,bm指mod的id //如果上面的不行就换成这个this.setUnlocalizedName("bm.rainBow"); this.setHardness(-1);//设置方块的硬度,如黑曜石是50,铁块5,金块3,圆石2,石头1.5,南瓜1,泥土0.5,甘蔗0,基岩-1。 this.setStepSound(soundTypeGrass);//设置走在方块上的响声 this.setResistance(6000000.0F);//设置方块的爆炸抗性,如木头的抗性为4,石头为10,黑曜石为2000,基岩为6000000。 this.setBlockTextureName("bm:rainbow");//设置方块的材质。应该放在src/main/resources/assets/bm/textures/blocks/这个文件夹里面,名称是rainbow.png //如果上面的不行就 this.setTextureName("bm:rainbow"); //setBlockUnbreakable函数(方法)用于设定方块的硬度为-1,即不可破坏。 //setHarvestLevel函数(方法)用于设定方块的可挖掘等级,如钻石镐是3,铁2,石1,木金0。 //setLightLevel方法用于设定方块的光照,其周围的光照为设定值x15,如岩浆1.0,对应15,红石火把0.5,对应7.5。 //setLightOpacity方法用于设定方块的透光率,数值越大透光率越低,如树叶和蜘蛛网是1,水和冰3。 //setTickRandomly方法用于设定方块是否会接受随机Tick(如农作物)。 this.setCreativeTab(CreativeTabsLoader.tabBm); } } ~~~ 最后在CommonProxy的preInit函数添加以下代码,记得创造物品栏的初始化一定要在物品和方块的初始化之前: `src/main/java/net/xiaobang/bm/common/CommonProxy.java`(部分) ~~~ public void preInit(FMLPreInitializationEvent event) { new CreativeTabsLoader(event); //new ItemLoader(event); //new BlockLoader(event);这两个已经不需要了,有更好的方法了 new regAll("bm","net/xiaobang/bm/item/","Item");//一键注册所有物品 new regAll("bm","net/xiaobang/bm/block/","Block");//一键注册所有方块 } //不要忘了导入CreativeTabsLoader哦 ~~~ 现在打开游戏,你是不是看到了物品被注册到了新的创造物品栏,方块被注册到了“方块”创造模式物品栏呢~ (以上教程大部分来自zzzz大佬的1.8.9教程)