伺服器端
TConJSEvents.materialDefinition(handler: (event: MaterialDefinitionEventJS) => void)
TConJSEvents.materialDefinition((event) => {
event.addMaterialData(
"tconstruct",
"cobalt",
(definition) => {
definition
.craftable(false)
.hidden(false)
.sortOrder(10)
.tier(3);
},
(stats) => {
stats
.binding()
.maille()
.head(800, 2.25, 6.5, "minecraft:diamond")
.handle(0.05, 0.0, 0.05, 0.05)
.grip(0.05, 0.05, 2.25)
.limb(0.05, 0.05, 800, 0.05)
.platingHelmet(2.0, 330, 1.0, 0.05)
.platingChestplate(7.0, 480, 1.0, 0.05)
.platingLeggings(5.0, 450, 1.0, 0.05)
.platingBoots(2.0, 390, 1.0, 0.05)
.platingShield(540, 1.0, 0.05);
},
(traits) => {
traits
.add("tconstruct:lightweight", 1)
.perStat("tconstruct:armor", "tconstruct:melee_protection", 1);
},
(smltingRecipe) => {
smltingRecipe
.fluid("#forge:molten_cobalt")
.amount(90)
.temperature(950)
}
);
});
| 方法 | 說明 |
|---|
addMaterialData(
namespace: string,
materialName: string,
definition: (definition: MaterialDefinitionBuilder) => void,
stats: (stats: MaterialStatsBuilder) => void,
traits: (traits: MaterialTraitsBuilder) => void,
smeltingRecipe: (smeltingRecipe: MaterialSmeltingRecipeBuilder) => void
)
| 添加材料資料 |
addMaterialData(
namespace: string,
materialName: string,
definition: (definition: MaterialDefinitionBuilder) => void,
stats: (stats: MaterialStatsBuilder) => void,
traits: (traits: MaterialTraitsBuilder) => void,
smeltingRecipe: (smeltingRecipe: MaterialSmeltingRecipeBuilder) => void
)
addMaterialData(
materialName: string,
definition: (definition: MaterialDefinitionBuilder) => void,
stats: (stats: MaterialStatsBuilder) => void,
traits: (traits: MaterialTraitsBuilder) => void,
smeltingRecipe: (smeltingRecipe: MaterialSmeltingRecipeBuilder) => void
)
namespace: string - 材料命名空間(默認命名空間為 kubejs)materialName: string - 材料名稱definition: (definition: MaterialDefinitionBuilder) => void - 材料定義構建器stats: (stats: MaterialStatsBuilder) => void - 材料�traits: (traits: MaterialTraitsBuilder) => void - 材料特性構建器smeltingRecipe: (smeltingRecipe: MaterialSmeltingRecipeBuilder) => void - 材料熔煉配方構建器
MaterialDefinitionBuilder
| 方法 | 說明 |
|---|
craftable(
craftable: boolean
)
| 若為 true,則該材料可在 部件製作台 製作 |
hidden(
hidden: boolean
)
| 若為 true,則該材料將不會在書中或材料物品中顯示 |
sortOrder(
sortOrder: int
)
| 材料在書中的排序順序,通常按照以下順序排序: | 分組 | 排序順序 | 描述 |
|---|
| 一般 | 0 | 同時具有攻擊與採集特性 | | 收穫 | 1 | 具有採集特性,但不具有攻擊特性 | | 攻擊 | 2 | 具有攻擊特性,但不具有採集特性 | | 特殊 | 3 | 具有特殊特性 | | 遠程 | 4 | 具有遠程攻擊特性 | | 兼容 | 5 | 僅在添加普通金屬時使用 | | 地獄 | +10 | 地獄材料,與前項做加法計算 | | 終界 | +15 | 終界材料,與前項做加法計算 | | 綁定 | 20 | 只能製作成綁定結或弓弦的材料 | | 製作 | 25 | 只能用於合成的材料 |
|
| 材料的等級,通常按照以下順序排序: | 等級 | 所屬書名 | 原版材料參考 | 製作方法 |
|---|
| 0 | 匠魂寶典:材料與你 | 木材 | 與等級 1 類似,主要是用於置於材料最前端。 通常不該用於其他材料中,僅用於新的材料類型 | | 1 | 匠魂寶典:材料與你 | 鵝卵石、銅 | 只需要在 部件製作台 製作 | | 2 | 入門熔煉術 | 鐵 | 需要熔煉和鑄造才能製作 | | 2(地獄) | 入門熔煉術 | 無 | 用於製作地獄或終界的建材 | | 3 | 大師熔煉術 | 鑽石 | 需要透過合金製作的材料 | | 3(地獄) | 大師熔煉術 | 無 | 需要熔煉和鑄造才能製作的地獄或終界材料 | | 4(烈焰血) | 奇異熔鑄術 | 獄髓 | 需要極高的溫度才能製作的材料 | | 4(探索) | 無 | 無 | 遊戲中後期可獲得的材料,主要指的是終界材料 | | 4(靈魂鍛造) | 無 | 無 | 需要透過靈魂熔爐才能製作的材料 目前尚未在匠魂模組中實現 | | 5 | 無 | 獄髓+ | 最高等級的材料,通常需要結合多種製作方法,並且有獨特的特性 目前尚未在匠魂模組中實現 |
|
MaterialStatsBuilder
| 種類 | 方法 | 說明 |
|---|
| 近戰/採集工具 | head(
durability: int, // 耐久度
meleeAttack: float, // 近戰傷害
miningSpeed: float, // 挖掘速度
miningTier: string // 挖掘等級
)
| 武器、工具頭部,如:鎬頭、小型斧刃、小型劍刃、牌板、錘頭、板斧刃、寬刃 |
handle(
durability: int, // 耐久度
meleeDamage: float, // 近戰傷害
meleeSpeed: float, // 近戰攻擊速度
miningSpeed: float, // 挖掘速度
)
| 手柄,如:工具手柄、堅韌手柄 |
| 綁定,如:綁定結、圓盤、大板 |
| 遠程工具 | limb(
accuracy: float, // 精準度
drawSpeed: float, // 拉弓速度
durability: int, // 耐久度
veocity: float // 射速
)
| 弓臂 |
grip(
accuracy: float, // 精準度
durability: float, // 耐久度百分比
meleeDamage: float // 近戰傷害
)
| 弓把 |
| 弓弦 |
| 盔甲 | platingHelmet(
armor: float, // 盔甲
durability: int, // 耐久度
toughness: float, // 盔甲強度
knockbackResistance: float // 擊退抗性
)
| 鑲版頭盔 |
platingChestplate(
armor: float, // 盔甲
durability: int, // 耐久度
toughness: float, // 盔甲強度
knockbackResistance: float // 擊退抗性
)
| 鑲版胸甲 |
platingLeggings(
armor: float, // 盔甲
durability: int, // 耐久度
toughness: float, // 盔甲強度
knockbackResistance: float // 擊退抗性
)
| 鑲版護腿 |
platingBoots(
armor: float, // 盔甲
durability: int, // 耐久度
toughness: float, // 盔甲強度
knockbackResistance: float // 擊退抗性
)
| 鑲版靴子 |
platingShield(
armor: float, // 盔甲
durability: int, // 耐久度
toughness: float, // 盔甲強度
knockbackResistance: float // 擊退抗性
)
| 鑲版盾牌 |
| 鎖鏈基底 |
| 修補件,用於與其他工具合成恢復耐久度 |
skull(
durability: int, // 耐久度
armor: int, // 盔甲
)
| 頭顱 |
| 方法 | 說明 |
|---|
fullArmor(
armor: float, // 盔甲
durability: int, // 耐久度
toughness: float, // 盔甲強度
knockbackResistance: float // 擊退抗性
)
| 設置全套盔甲的屬性,會自動設置頭盔、胸甲、護腿、靴子、盾牌 |
part(
partId: string, // 部件 ID
data: map<string, object> // 部件屬性資料
)
| 設置部件的屬性資料 |
MaterialTraitsBuilder
| 方法 | 說明 |
|---|
add(
name: string, // 特性名稱
level: int // 特性等級
)
| 添加材料特性 |
addAll(
traits: map<string, int> // 特性名稱與等級的映射
)
| 添加多個材料特性 |
perStat(
partId: string, // 部件 ID
traitName: String, // 特性名稱
level: int // 特性等級
)
| 為指定部件添加材料特性 |
perStatAll(
partId: string, // 部件 ID
traits: map<string, int> // 特性名稱與等級的映射
)
| 為指定部件添加多個材料特性 |
MaterialSmeltingRecipeBuilder
| 方法 | 說明 |
|---|
| 設置熔煉液體的 ID,若前綴為 # 則視為流體標籤 |
| 設置熔煉液體的數量,單位為毫升 |
temperature(
temperature: int
)
| 設置熔煉液體的溫度,單位為攝氏度 |