我的世界关于术语ZenGetter、ZenMethod和ZenSetter都是什么东西
来自CRTwiki:https://docs.blamejared.com/1.12/zh/UsingThisWiki
自己读CRTwiki时进行的总结,之前看的友谊妈的CRT教程,由于自己跟大佬有专业上的差距,一时间没看懂,于是转去啃wiki原文。通过阅读与实践得到诸多经验,这里我尝试尽可能通俗化解释,希望能给予入门玩家帮助
ZenGetter
比如
<minecraft:wool>.displayName;
其中“.displayName”就是前面“<minecraft:wool>”的ZenGetter
特定的ZenGetter,会对应一个特定的值与数据类型(wiki的解释是:是一种从特定对象检索信息的方法。)
就像displayName的意思是“显示名称”,数据类型为字符串(string)
通过print打印输出,就是铁锭
ZenGetter可以叠加,即多个后缀,最终的值的类型与最终的后缀有关系
假设我之前设了一个玩家合成事件,希望玩家一合成就打印出玩家合成的东西是什么
import crafttweaker.events.IEventManager;
import crafttweaker.event.PlayerCraftedEvent; //任何时候都别忘记导包
events.onPlayerCrafted(function(event as
crafttweaker.event.PlayerCraftedEvent){
print(event.output.displayName); //打印输出玩家合成出的东西的名称
print(event.player.name); //打印输出参与合成的玩家
});
比如我现在合成了一个羊毛
先看第一条“print(event.output.displayName);”里的一系列ZenGetter
其中“event.output”对应的值是“<minecraft:wool>”
但是print无法输出物品,所以要再转化为字符串
那么再接上第二条ZenGetter成为“event.output.displayName”,使物品类型转化为字符串,得到的值即“羊毛”
每个ZenGetter得到的值都会有对应的类型
再看第二条“print(event.player.name);”与前者相似
先用“.player”得到“IPlayer”(玩家)类型,再用“.name”得到字符串,输出触发事件玩家的ID
ZenMethod
即方法,用合成语句做比方
recipes.addShaped(recipeName, output, inputbox);
全局关键字 + ZenMethod + (内容);
其中“recipes”是全局关键字,用于调用合成管理器
“.addShaped”才是ZenMethod,为方法,也就是具体要做什么
前面的事件例子也是如此
ZenSetter
用于更改ZenGetter对应的值
如<minecraft:wool>.displayName 是个ZenGetter
那么<minecraft:wool>.displayName = XXX 就是ZenSetter
Get有获取、得到之意
Set有设置、更改之意