废话不多说,直接上代码。
//使用配方例子
Deploying(
<minecraft:stick>, // 使用的物品 = inputItem
"minecraft:grass", // 被转换的方块 = inputBlock 类型字符串
0, // 被转换的方块的meta值 = inputBlock_meta(没有填0)
<minecraft:planks>, // 转换成的方块的物品元数据 = outputBlock
2, // 转换成的方块的meta值 = inputBlock_meta(没有填0)
true // 是否消耗使用的物品 = itemExpend 设置为true即消耗
//使用木棍(消耗)将草方块转换成白桦木板
)
//仿 高版本机械动力“使用”配方 函数
function Deploying(inputItem as IItemStack, inputBlock as string, inputBlock_meta as int, outputBlock as IItemStack, outputBlock_meta as int, itemExpend as bool){
events.onPlayerInteractBlock(function(event as PlayerInteractBlockEvent){
var Deploying_block = event.block;
var Deploying_item = event.item;
var Deploying_position = event.position;
var world0 = event.world;
var player = event.player;
if(inputItem.matches(Deploying_item)){
if(!isNull(Deploying_block) && Deploying_block.definition.id == inputBlock && Deploying_block.meta == inputBlock_meta){
world0.destroyBlock(Deploying_position, false);
world0.setBlockState(outputBlock.asBlock().definition.getStateFromMeta(outputBlock_meta), Deploying_position);
event.player.sendStatusMessage(format.red("§4转换成功!"));
if(itemExpend != false){
player.currentItem.mutable().withAmount(player.currentItem.amount - 1);
}
}
}
});
}
*需要ZenUtils的支持
想要的话免费拿去copy,用爱发电(毕竟是很简单的一个事件的完成)
(我也是事件苦手,不提供原理教程了就!)