Cog
  • 首页
  • 导论
    • 脚本
    • 指令
  • 配方
    • 物品
    • 标签
    • 原版配方修改
    • 模组配方修改
    • 通用配方修改
    • 配方材料替换
  • ZenCode
    • 数据类型
    • 运算符
    • if
    • switch
    • 循环
    • 数组
    • List
    • 映射
    • 数学函数
    • 函数
    • lambda 表达式
    • 预处理器
    • OOP
      • 自定义类
      • 拓展类
      • 空类型安全
      • 运算符重载
      • 泛型
    • 变量代理
  • 高级运用
    • Tooltip
    • 属性修改
    • 物品条件
    • 物品转换器
    • 配方函数
    • 事件
    • 全局战利品修饰器
      • 战利品修饰器
      • 方块掉落修改
      • 实体掉落修改
      • 战利品修饰器管理器
  • ContentTweaker
    • 前言
    • 资源文件
    • 物品
    • 方块
    • 流体
    • 创造标签
    • 高级运用
由 GitBook 提供支持
在本页
  • 创建
  • 设置具体逻辑

这有帮助吗?

  1. ContentTweaker

高级运用

CoT 允许创建一些高级的物品/方块,这些物品/方块能有一些自定义的特定功能。

创建

使用 ItemBuilder#withType 和 BlockBuilder#withType 可指定要创建的物品/方块为高级物品/方块。

#loader contenttweaker
import mods.contenttweaker.item.ItemBuilder;
import mods.contenttweaker.item.advance.ItemBuilderAdvanced;
import mods.contenttweaker.block.BlockBuilder;
import mods.contenttweaker.block.advance.BlockBuilderAdvanced;

new ItemBuilder()
    .withType<ItemBuilderAdvanced>() // 设置为高级物品
    .build("inf_flint_and_steel");

new BlockBuilder()
    .withType<BlockBuilderAdvanced>() // 设置为高级方块
    .build("test_block");

设置具体逻辑

由于游戏具体逻辑的执行是在游戏加载完才会执行,所以具体功能逻辑的设置是在 CrT 脚本指定的。

// 再强调一遍应该在 CrT 脚本内设置
#loader crafttweaker

// 在 CoT 脚本创建完高级物品方块后
// 你可以用如下的尖括号引用来获取 CoTItemAdvanced 和 CoTBlockAdvanced 对象
// 通过这个对象的 setter 你可以设置它们的功能
// <advanceditem:inf_flint_and_steel>
// <advancedblock:test_block>

// 让这个物品就像个无限耐久的打火石
// 这个函数会在用该物品右键方块时触发
<advanceditem:inf_flint_and_steel>.setOnItemUse((context) => {
    val pos = context.pos;
    val direction = context.direction;
    val firePos = pos.offset(direction);
    val world = context.world;
    if (world.isAir(firePos)) {
        world.setBlockState(firePos, <blockstate:minecraft:fire>);
    }
    return ActionResultType.SUCCESS;
});

高级物品方块有哪些设置,具体可以看官方文档。

上一页创造标签

最后更新于3年前

这有帮助吗?

CoTBlockAdvanced
CoTItemAdvanced