来自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有设置、更改之意