食物
食物是一种特殊的物品。
导入包
import mods.contenttweaker.ItemFood;
原版加工厂包也需要导入!
创建
用val testItem as ItemFood = VanillaFactory.createItemFood(字符串物品ID, 整数可恢复饥饿值);
创建一个「即将」加入进游戏的食物,并存储在某个变量中,以做接下来的修改。物品ID必须全小写,可以包含数字和下划线_ ,必须字母开头。
食物是一种特殊的物品,接下来的操作与物品差不多。(注册、设置信息、设置本地化、材质与添加物品一致)传送门
可用ZenProperties
创建物品时可用的ZenProperties,食物也能用!
以下为食物特有的
名称
类型
默认值
描述
healAmount
int
该食物可恢复的饥饿值
alwaysEdible
bool
false
该食物在玩家饥饿值满时是否还可以吃
wolfFood
bool
false
该食物是否可喂给狼
saturation
float
0.6
该食物的相对饱和度,实际饱和度为相对饱和度 * 饥饿值
onItemFoodEaten
IItemFoodEaten
null
吃下该食物后会发生什么(见下文)
吃食物给药水效果
我知道你在想什么。这是事件高级运用,但你肯定想要,对吧?
food.onItemFoodEaten = function(stack, world, player) { // 框架
if (!world.remote) { // 框架
//以下一行可改,格式为
//player.addPotionEffect(药水ID.makePotionEffect(时间, 等级));
//时间的单位为tick 1秒 = 20ticks
//药水ID可用/ct potions 指令查看
//想要加多个buff,就把下面这行多写几次就行
player.addPotionEffect(<potion:minecraft:weakness>.makePotionEffect(60, 1)); // 吃食物给3s虚弱效果
} // 框架
}; // 框架
例子
#loader contenttweaker
import mods.contenttweaker.VanillaFactory;
import mods.contenttweaker.ItemFood;
var soup as ItemFood = VanillaFactory.createItemFood("sweet_soup", 4);
soup.saturation = 0.8;
soup.alwaysEdible = true;
soup.onItemFoodEaten = function(stack, world, player) {
if (!world.remote) {
player.addPotionEffect(<potion:minecraft:speed>.makePotionEffect(100, 1));
player.addPotionEffect(<potion:minecraft:strength>.makePotionEffect(200, 2));
}
};
soup.register();
最后更新于
这有帮助吗?