跳到主要内容

动态材质&模型

都需要写在client_scripts里哦。

MafuyuEvents.modifyVariedModel(event => {
if (event.getItemStack().is(Items.APPLE)) event.setModelPath("minecraft:stone");
});

这是一个最简单的实例,将苹果的材质换成石头。

如果是不属于任何物品的闲置材质也可以使用,需要在配置文件里提前注册。

[VariedModelConfig]
loadIdleModel = false
PresetModel = ["allthemafuyu:stalker_core"]

最后是简单的随机材质实例,让单个红石块的材质变为面包、石头或泥土三种之中随机一种,而合并后又还原为红石块。

MafuyuEvents.modifyVariedModel(event => {
if (event.getItemStack().id === "minecraft:redstone_block") {

if (event.getItemStack().getCount() > 1) {
event.setVariedModelCache(null);
} else {
let models = [
"minecraft:bread",
"minecraft:stone",
"minecraft:dirt"
]
if (!event.getVariedModelCache()) {
event.setVariedModelCache(models[(Math.floor(Math.random() * models.length))]);
}

event.setModelPath(event.getVariedModelCache());
}
}
});