// 定义命名空间, 需要的话请自行更改
let namespace = "new_create:"
// 需要依次填入[id, 颜色, 挖掘等级]
let moltenRegisters = [
// ["test", 0xabc098, "wooden"]
]
moltenRegisters.forEach(([name, color, level]) => {
StartupEvents.registry("item", (event) => {
// 锭
event.create(`${namespace + name}_ingot`)
// 指定纹理位置
.texture(`${namespace}item/metal/ingot`)
// 定义颜色
.color(color)
// 添加Forge标签方便管理统一
.tag("forge:ingots")
// 添加Forge标签方便管理统一
.tag(`forge:ingots/${name}`)
// 板
event.create(`${namespace + name}_sheet`)
// 指定纹理位置
.texture(`${namespace}item/metal/sheet`)
// 定义颜色
.color(color)
// 添加Forge标签方便管理统一
.tag("forge:plates")
// 添加Forge标签方便管理统一
.tag(`forge:plates/${name}`)
// 矿
event.create(`${namespace}raw_${name}`)
// 指定纹理位置
.texture(`${namespace}item/metal/raw_ore`)
// 定义颜色
.color(color)
// 添加Forge标签方便管理统一
.tag("forge:raw_materials")
// 添加Forge标签方便管理统一
.tag(`forge:raw_materials/${name}`)
})
StartupEvents.registry("block", (event) => {
let pickaxe = "minecraft:mineable/pickaxe"
// 挖掘等级
let miningLevel = {
wooden: "minecraft:needs_wooden_tool",
stone: "minecraft:needs_stone_tool",
iron: "minecraft:needs_iron_tool",
gold: "minecraft:needs_gold_tool",
diamond: "minecraft:needs_diamond_tool",
nether: "forge:needs_netherite_tool"
}
// 浅层
event.create(`${namespace + name}_ore`)
// 指定模型位置
.model(`${namespace}block/ore/ore`)
// 定义颜色(其中的0请看上面的粗略讲解)
.color(0, color)
// 设置渲染类型, 让模型可以渲染透明纹理
.renderType("cutout")
// 设置声音类型
.soundType(SoundType.STONE)
// 添加硬度
.hardness(3)
// 添加爆炸抗性
.resistance(3)
// 添加Forge标签方便管理统一
.tag("forge:ores")
// 添加Forge标签方便管理统一
.tag(`forge:ores/${name}`)
// 添加Forge标签方便管理统一
.tag("forge:ore_rates/dense")
// 添加镐子挖掘
.tagBlock(pickaxe)
// 添加挖掘等级
.tagBlock(miningLevel[level])
// 必须工具挖掘
.requiresTool(true)
// 设置物品模型渲染颜色
.item((item) => {
item.color(0, color)
})
// 深层
event.create(`${namespace}deepslate_${name}_ore`)
// 指定模型位置
.model(`${namespace}block/ore/deepslate_ore`)
// 定义颜色(其中的0请看上面的粗略讲解)
.color(0, color)
// 设置渲染类型, 让模型可以渲染透明纹理
.renderType("cutout")
// 设置声音类型
.soundType(SoundType.DEEPSLATE)
// 添加硬度
.hardness(4.5)
// 添加爆炸抗性
.resistance(4.5)
// 添加Forge标签方便管理统一
.tag("forge:ores")
// 添加Forge标签方便管理统一
.tag(`forge:ores/${name}`)
// 添加Forge标签方便管理统一
.tag("forge:ore_rates/deepslate")
// 添加镐子挖掘
.tagBlock(pickaxe)
// 添加挖掘等级
.tagBlock(miningLevel[level])
// 必须工具挖掘
.requiresTool(true)
// 设置物品模型渲染颜色
.item((item) => {
item.color(0, color)
})
// 块
event.create(`${namespace + name}_block`)
// 指定纹理位置
.textureAll(`${namespace}block/metal/block`)
// 设置声音类型
.soundType(SoundType.METAL)
// 定义颜色
.color(color)
// 添加硬度
.hardness(5)
// 添加爆炸抗性
.resistance(5)
// 添加Forge标签方便管理统一
.tag("forge:storage_blocks")
// 添加Forge标签方便管理统一
.tag(`forge:storage_blocks/${name}`)
// 添加镐子挖掘
.tagBlock(pickaxe)
// 添加挖掘等级
.tagBlock(miningLevel[level])
// 必须工具挖掘
.requiresTool(true)
// 设置物品模型渲染颜色
.item((item) => {
item.color(color)
})
})
StartupEvents.registry("fluid", (event) => {
// 流体需要放在[modid/textures/block/fluid]
const PATH = "block/fluid/"
// 熔融金属
event.create(`${namespace}molten_${name}`)
// 颜色
.thinTexture(color)
// 颜色
.bucketColor(color)
// 纹理位置
.flowingTexture(`${namespace + PATH}flowing`)
// 纹理位置
.stillTexture(`${namespace + PATH}still`)
// 添加Forge标签方便管理统一
.tag(`forge:molten_${name}`)
// 添加Forge标签方便管理统一
.tag("forge:molten_materials")
})
})