本篇教程由作者设定使用 CC BY-NC-SA 协议。

CrT 版本支持

粒子碰撞只兼容 CrT 4.1.20.582 及以上的版本,若安装了低于这个版本的 CrT 将会造成游戏崩溃。

晶核与金属生成器

晶核的魔改不通过 CrT 实现,具体见 晶核 资料。

宝石生成器

添加物品:mods.collision.GemSpawner.addItem(IItemStack stack, int wight);

删除物品:mods.collision.GemSpawner.removeItem(IItemStack stack);

删除全部物品:mods.collision.GemSpawner.removeAll();

例子:

mods.collision.GemSpawner.addItem(<item:minecraft:dye:15>, 400); // 添加骨粉至宝石生成器,权重为 400

mods.collision.GemSpawner.removeItem(<item:minecraft:redstone>); // 删除红石

粒子碰撞器

普通配方添加

mods.collision.Collider.addRecipe(int level, IItemStack out, Absorber[][] absorbers, @Optional int successChance);

  • level 为使用的碰撞器等级

  • out 为配方输出

  • absorbers 为使用的吸收载体

  • successChance 是配方成功几率,即产生成品的几率,可以省略不填,默认值为 100。

例子:

import mods.collision.Absorber;

import mods.collision.Collider;


val p as Absorber = Absorber.proton(); // 质子

val n as Absorber = Absorber.neutron(); // 中子

Collider.addRecipe(3, <item:minecraft:clock>, [[p, null, n], [null, null, null], [n, null, null]], 80);

普通配方移除

mods.collision.Collider.removeRecipe(IItemStack stack); // 删除指定物品的配方
mods.collision.Collider.removeAll(); // 删除全部配方

特殊配方添加

粒子碰撞器同时允许其他方块作为输入。

mods.collision.Collider.addCustomRecipe(int level, IItemStack out, IIngredient[][] blocks, @Optional int successChance, @Optional int conversionChance, @Optional IIngredient[][] conversionBlocks);

  • level 为碰撞器等级

  • out 为配方成品

  • blocks 为输入方块,其中参数为 IIngredient,所以你可以使用矿辞,甚至是 IngredientOr

  • successChance 为成功几率,即产生配方成品的几率,默认为 100

  • conversionChance 为激活碰撞器后周围方块会发生转变的几率,默认为 100

  • conversionBlocks 为周围方块会转变为什么,默认为全是空气。虽然参数是 IIngredient,但内部处理视为 IItemStack,所以尽量只使用物品或矿辞。


例子

val bs = <item:minecraft:iron_block> | <item:minecraft:stone>;
val g = <item:minecraft:gold_block>;
mods.collision.Collider.addCustomRecipe(1, <item:minecraft:apple>, [[bs, bs, bs], [null, null, null], [bs, bs, bs]], 100, 80, [[null, g, null], [g, null, g], [null, g, null]]);