截图
介绍
允许使用 KubeJS 自定义 Create 的热源方块和热量等级。
添加配方时请使用 KubeJS Create Mod,并使用 .heatLevel() 方法设置热量等级。
示例

客户端脚本
ClientEvents.lang("en_us", (event) => {
event.add("create.recipe.heat_requirement.blaze", "Blaze");
event.add("create.recipe.heat_requirement.cryotheum", "Cryotheum");
event.add("create_heat_js.heat_source.cryotheum.soul_lantern.tip", "needs to be in the nether dimension");
});
服务端脚本
ServerEvents.recipes((event) => {
event.recipes.create.mixing("minecraft:diamond", "minecraft:coal_block").heatLevel("BLAZE");
event.recipes.create.compacting("minecraft:water", "minecraft:blue_ice").heatLevel("CRYOTHEUM");
});
启动脚本
CreateHeatJS.registerHeatEvent(event => {
// 1. Basic Example: Register custom heat source BLAZE
event.registerHeat("BLAZE", builder => builder
.color(0xFF4500)
.addHeatSource("minecraft:magma_block")
.satisfies("HEATED")
)
// 2. Advanced Example: Register CRYOTHEUM
event.registerHeat("CRYOTHEUM", builder => builder
.color(0x00BFFF)
.addHeatSource("#minecraft:ice")
// Conditional heat source: only works in the Nether
.addHeatSourceIf((level, pos) => {
if (level.dimension === "minecraft:the_nether") {
return level.getBlockState(pos).block.id === "minecraft:soul_lantern"
}
return false
},"minecraft:soul_lantern",Component.translatable("create_heat_js.heat_source.cryotheum.soul_lantern.tip"))
.satisfies("HEATED")
.satisfiesIf("SUPERHEATED", ctx => ctx.getRecipeId() == "create:mixing/lava_from_cobble"))
// 3. Modify existing heat level
event.modifyHeat("SUPERHEATED", data => data
.satisfies("CUSTOM_LEVEL")
)
})
/**
* Heat Source String Format:
* - blocktag:namespace:path (Block Tag)
* - fluidtag:namespace:path (Fluid Tag)
* - block:namespace:path (Block ID)
* - fluid:namespace:path (Fluid ID)
* - namespace:path[prop=value] (Block State)
* - #namespace:path (Try to match Block or Fluid Tag)
*/
理解 satisfies 关系
基本概念
satisfies() 用于建立一种关系:如果 A.satisfies("B"),那么:
- 热量等级为 A 的热源可以完成需要 B 的配方
- 但热量等级为 B 的热源不能完成需要 A 的配方
A ──satisfies──> B means A ≥ B
Recipes need B ──> Can use A ✓
Recipes need A ──> Cannot use B ✗
示例:Create 原有的层级关系
Create 模组内置了以下关系:SUPERHEATED → HEATED
| 配方要求 | 烈焰人燃烧室(HEATED) | 烈焰人燃烧室(SUPERHEATED) |
|---|---|---|
| HEATED | ✓ | ✓ |
| SUPERHEATED | ✗ | ✓ |
这意味着:SUPERHEATED 可以满足 HEATED,但 HEATED 不能满足 SUPERHEATED。
自定义关系
当你编写:
event.registerHeat("BLAZE", builder => builder
.satisfies("HEATED")
)
你创建的关系是:BLAZE → HEATED
| 配方要求 | BLAZE 热源 | 烈焰人燃烧室(HEATED) |
|---|---|---|
| HEATED | ✓ | ✓ |
| BLAZE | ✓ | ✗ |
三种关系类型
1. 垂直关系(线性层级)
// Create a chain: LEVEL3 → LEVEL2 → LEVEL1
event.registerHeat("LEVEL2", builder => builder.satisfies("LEVEL1"))
event.registerHeat("LEVEL3", builder => builder.satisfies("LEVEL2"))
结果:LEVEL3 可以满足 LEVEL2 和 LEVEL1(传递关系)
传递性(自动兼容)
这种关系具有传递性。如果你编写:
// Create already has: SUPERHEATED → HEATED
// You add: PYROTHEUM → SUPERHEATED
event.registerHeat("PYROTHEUM", builder => builder
.satisfies("SUPERHEATED")
)
PYROTHEUM 也会自动满足 HEATED!无需再编写 .satisfies("HEATED")。
PYROTHEUM → SUPERHEATED → HEATED
│ │ │
└───────────┴───────────┘
(all satisfied by PYROTHEUM)
| 配方要求 | PYROTHEUM |
|---|---|
| HEATED | ✓(自动满足) |
| SUPERHEATED | ✓ |
| PYROTHEUM | ✓ |
2. 水平关系(独立系统)
// No satisfies() - completely independent
event.registerHeat("COLD", builder => builder
.color(0x00BFFF)
.addHeatSource("#minecraft:ice")
)
结果:COLD 是独立的,与 Create 的热量系统没有关联
3. 交叉关系
// CRYOTHEUM is independent but can also satisfy Create's conditions
event.registerHeat("CRYOTHEUM", builder => builder
.satisfies("HEATED") // Can satisfy HEATED recipes
.satisfiesIf("SUPERHEATED", ctx => ctx.getRecipeId() == "specific_recipe")
)
结果:CRYOTHEUM 属于自己的层级,但也可以跨接到 Create 的层级体系中
关系示意图
Create's Original:
NONE ← HEATED ← SUPERHEATED
(satisfies)
Your Custom:
BLAZE ──satisfies──> HEATED
(BLAZE ≥ HEATED)
Combined:
NONE ← HEATED ← SUPERHEATED
↑
└── BLAZE
Recipes needing HEATED: Can use HEATED, SUPERHEATED, or BLAZE
Recipes needing BLAZE: Can only use BLAZE
“`
[curseforge-badge]: https://raw.githubusercontent.com/intergrav/devins-badges/v3/assets/cozy/available/curseforge_vector.svg [curseforge-url]: https://www.curseforge.com/minecraft/mc-mods/create-heat-js [modrinth-badge]: https://raw.githubusercontent.com/intergrav/devins-badges/v3/assets/cozy/available/modrinth_vector.svg [modrinth-url]: https://modrinth.com/mod/create-heat-js [github-badge]: https://raw.githubusercontent.com/intergrav/devins-badges/v3/assets/cozy/available/github_vector.svg [github-url]: https://github.com/XiaoHuNao/CreateHeatJS
常见问题
Create Heat JS 支持哪些 Minecraft 版本?
Create Heat JS 支持 Minecraft Java 版 1.19.2–1.21.1,共 3 个版本,可用的加载器:Forge / NeoForge。下载时注意选择和你游戏版本一致的文件。
Create Heat JS 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 Forge / NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。
XiaoHuNao 的其他作品
查看全部 →EnemyBanner
敌人旗帜,灵感来自知名游戏《泰拉瑞亚》中的敌人旗帜。
Command Macro Key
Do you have any common commands? Do you think it is boring and tedious over and over again, then you can bind shortcut keys to execute commands now
MineTeam
Inspired by the team system of the famous game Terraria, it also supports teaming up with all the monsters
TerraMoment
Inspired by Terraria, added many interesting events such as Blood Moon, TorchGod, Slime Rain
评论
登录后评论和评分