🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 创造模式物品栏 那么显而易见的是,give命令实在是太麻烦了,所以我们需要将物品放进一个创造模式物品栏里。 我们直接在`ItemSilverNugget()`构造器里加一句`this.setCreativeTab(CreativeTabs.FOOD);`就好了,原版物品栏的名称可以在CreativeTabs类里找到 这里我们将银粒放入了食物栏(恶趣味) #新的创造模式物品栏 创建物品栏有两种方法一种是直接添加到主类里,一种是新建一个Java类这里我推荐第二种方法 ## 方法一 在XenoAge.java这个主类里添加字段: ~~~ java public static final CreativeTabs TAB_XENO_AGE= new CreativeTabs(MODID) { @Override public ItemStack createIcon() { return new ItemStack(ItemRegistryHandler.SILVER_NUGGET); } }; ~~~ 再在`ItemSilverNugget()`构造器里加入`this.setCreativeTab(XenoAge.TAB_XENO_AGE);`。重启游戏,你会看到一个新的创造模式物品栏。 这里`SILVER_NUGGET`的材质将作为创造物品栏的图标显示 *注意:必须以某种方式设置 Tab 的 Icon,如果留 null会引发崩溃* ## 方法二 新建一个类`src/main/java/com/wzhrdx/XenoAge/creativetab/TabXenoAge.java` ~~~ java package com.wzhrdx.XenoAge.creativetab; import com.wzhrdx.XenoAge.item.ItemRegistryHandler; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.ItemStack; public class TabXenoAge extends CreativeTabs { public static final TabXenoAge TAB_XENO_AGE = new TabXenoAge(); public TabXenoAge(){ super("xenoage"); } @Override public ItemStack createIcon(){ return new ItemStack(ItemRegistryHandler.SILVER_NUGGET); } } ~~~ 再在`ItemSilverNugget()`构造器里加入`this.setCreativeTab(TabXenoAge.TAB_XENO_AGE);`。重启游戏,你会看到一个新的创造模式物品栏。 # 物品本地化 现在我们的物品还是一个`item.xenoage.silvernugget.name`的名字,我们需要给他们添加语言文件 * 我们需要语言文件,将上面的代指名称翻译成各种语言,翻译后的名称叫本地化名称 * 代指名称使用物品的`setUnlocalizedName()`方法进行设置(新的版本为`setTranslationKey()`) * 本地化名称使用语言文件(\*.lang)进行设置。 新建包`resources/assets/mymod/lang/`,新建 en\_us.lang 文件,对应英文版本,在里面写入(无需多余空格、引号等字符): ~~~lang item.xenoage.silvernugget.name=Silver Nugget itemGroup.xenoage=Xeno Age item.xenoage.silveringot.name=Silver Ingot ~~~ 然后我们新建 zh_cn.lang,对应中文版本,写法同上。 ~~~lang item.xenoage.silvernugget.name=银粒 itemGroup.xenoage=魔法时代 item.xenoage.silveringot.name=银锭 ~~~ *注意:1.12语言文件名应该使用全小写,比如 zh\_cn 而不是 zh\_CN* ***** # 练习 * [ ] >练习1 给`silverore`添加英文名字`Silver Ore` * [ ] >练习2 给``silverore``添加中文名字 `银矿` * [ ] >提示 方块和物品不一样,他是`titl`开头,你也可以打开游戏查看UnlocalizedName <details> <summary>答案</summary> <pre><blockcode>// en_us.lang tile.xenoage.silverore.name=Silver Org ························································ // zh_cn.lang tile.xenoage.silverore.name=银矿 </blockcode></pre> </details>