MC百科社群
标题:
关于crafttweaker的import
[打印本页]
作者:
dinnerbone
时间:
2021-3-16 22:03
标题:
关于crafttweaker的import
本帖最后由 dinnerbone 于 2021-3-16 22:07 编辑
在别人的zs文件里看到开头先写一句 import minetweaker.item.IItemStack; 请问这个有什么用吗?我一直都是直接写,不加这一句,也没出现什么问题。
另外请教一下 import 的作用是什么。文档里说“导入相关类 为避免发生一些问题,在使用前最好导入相关类。”,没有指明具体问题。
作者:
ChromaPIE
时间:
2021-3-16 22:47
举几个简单的例子,不细说:
1. 你需要声明一个矿词的数组,譬如
var
metalArray
as
IOreDictEntry
=
[
<ore:
ingotIron
>
,
<ore:
ingotGold
>
]
;
如果不在开头
import
crafttweaker.oredict.IOreDictEntry;
会报找不到类型的错
2. 你需要写一堆模块化机械的配方,并且由于模块化机械配方里需要指定变数超级大的.setChance()之类的附加条件使得建立函数变得很难,用数组也不现实,所以你不得中规中矩地挨个写,譬如这样:
var
machineName
=
"something"
;
mods
.
modularmachinery.RecipeBuilder
.
newBuilder(machineName
+
"_gold"
, machineName,
3600
)
.
addEnergyPerTickInput
(
100
)
.
addItemInput
(
<ore:
ingotIron
>
)
.
addItemInput
(
<ore:
stone
>
,
9
)
.
addItemOutput
(
<ore:
ingotGold
>
.firstItem)
.
build
()
;
以及下面无数的配方。如果开头加一个
import
mods.modularmachinery.RecipeBuilder;
下面所有的
mods
.
modularmachinery.RecipeBuilder
都可以缩成
RecipeBuilder
同理,通用机械的压缩机
mods
.
mekanism.compressor
都可以是
compressor
,热力膨胀的流体转置机填装配方
mods
.
thermalexpansion.Transposer.addFillRecipe
都可以是
addFillRecipe
3. 你在a.zs里静态了一个IItemStack数组aArray,想在b.zs里调用,在b.zs开头写个
import
scripts.a.aArray;
即可,这个时候aArray就像是一个在b.zs里被声明的数组一样。
4. 你在scripts\utilfolder文件夹下的f.zs里建立了一个函数aFunc,想在b.zs里调用,如果开头不写
import
scripts.utilfolder.f.aFunc;
那么下面引用到这个函数的时候都要从头到尾写一遍,
scripts
.
utilfolder.f.aFunc
。如果你的函数是用来做配方的,这一大串东西不光让脚本体量虚高,可读性还差。import之后,
aFunc
即可。
只作为一个实战人来直接理解import的好处,权当抛砖引玉。
欢迎光临 MC百科社群 (https://bbs.mcmod.cn/)
MC百科
|最大的MineCraft中文模组百科