Zentutorial
  • 首页
  • Zenscript
  • 简单运用
    • 局部变量
    • 尖括号调用
    • 工作台合成
      • 添加配方
      • 移除配方
      • Metadata
      • NBT
    • 熔炉配方
    • 矿物词典(Ore Dictionaries)
    • 物品名称修改
    • tooltips
      • 样式代码
    • 物品条件
    • 物品转换器
    • 掉落物
      • 打草掉落物
      • 生物掉落物
      • Dropt - 导言
        • Dropt - 方法速查
        • Dropt - 使用示例
    • 战利品表 : 导论
      • 战利品表修改(LootTableTweaker)
      • 战利品表修改(LootTweaker-基础)
    • 循环语句(foreach循环) / 普通数组
  • 高级运用
    • 概论
      • 基本类
      • ZenGetter
      • ZenSetter
      • ZenMethod(方法)
    • 常见错误
    • 基本运算
    • 数组与集合
    • 循环与遍历
    • 全局函数
    • Math包
    • if
    • in/has 操作符
    • 战利品表修改(LootTweaker-进阶)
    • 三元操作符
    • 预处理器
    • 全局和静态变量
    • 跨脚本引用
    • 关联数组(映射)
    • IItemStack类型的重新认识
    • IIngredient接口
    • IItemDefinition & IBlockDefinition
    • IData 类型
      • DataMap
    • 穷举与遍历
    • 自定义函数
    • 配方函数与配方事件
      • 配方函数
      • 配方事件
    • 事件概论
      • 一些忠告
    • ZenClass
  • ContentTweaker
    • ContentTweaker
    • 指令
    • 原版加工厂
      • 概论
      • 物品
      • 方块
      • 流体
      • 创造标签
      • 食物
    • 材料系统
      • 基础用法
        • 材料
        • 部件
        • 注册材料部件
        • 材料部件信息
      • 高级运用
        • 自定义部件类型
        • 注册自定义部件
        • 自定义材料部件信息
    • 高级运用
    • 更多鸡联动
    • 匠魂联动
      • 材料引导
        • 材料
        • 构建材料
      • 特性引导
        • 特性
        • 构建特性
        • 特性数据
      • 高级运用
  • 实战
    • 配方
      • 数据驱动合成修改
    • 事件
      • 修改方块掉落物
      • 禁止开创造
由 GitBook 提供支持
在本页
  • 导论
  • 导入
  • 创建一个材料类型
  • 实例脚本

这有帮助吗?

  1. ContentTweaker
  2. 材料系统
  3. 高级运用

自定义部件类型

导论

假设你需要一个类似 TE 的硬化玻璃的方块,但有一个问题:玻璃是透明的,若要是透明方块的话。需要将 blockLayer 设置为 "CUTOUT",还要把 fullBlock 属性设置为 false 、把 translucent 设置为 true。否则就算材质是透明的,但最终方块是会像 X 光方块一样透视。而材料系统的 block 材料类型只是一个普通方块,设置不了这些。这个时候我们就需要自定义材料类型。

导入

import mods.contenttweaker.PartType;

创建一个材料类型

创建一个材料类型非常简单,只需要调用 MaterialSystem.createPartType方法就行。这个方法会返回 PartType,你把它填进自定义部件时的 setPartType 方法就行。 这个方法需要两个参数:一个是材料类型的名字,第二个是 RegisterMaterialPart 函数。这个函数的指定比较麻烦,下章即对这个进行讲解。

实例脚本

摘自 wiki。这个脚本只是展示基本格式用法。这个例子由于 RegisterMaterialPart 函数是空的。这个脚本在游戏内不会产生任何变化。

#loader contenttweaker

import mods.contenttweaker.MaterialSystem;

val ourType = MaterialSystem.createPartType("cool_type", function(materialPart){

});

//Use the new type to create a Part
val ourPart = mods.contenttweaker.MaterialSystem.getPartBuilder().setName("cool_part").setPartType(ourType).build();

//Create a new Material and register the newly created part.
val ourMaterial = MaterialSystem.getMaterialBuilder().setName("Lawrencium").setColor(15426660).build();
ourMaterial.registerPart(ourPart);
上一页高级运用下一页注册自定义部件

最后更新于3年前

这有帮助吗?