= 创作分享 =
技术讨论
关于crafttweaker的import
苍茫森林

关于crafttweaker的import

苍茫森林 于 2021-3-16 22:03 ( 3年前 ) 发表在 [讨论] 分类。 [复制链接] [只看楼主] [打印]
828 1
本帖最后由 dinnerbone 于 2021-3-16 22:07 编辑

在别人的zs文件里看到开头先写一句 import minetweaker.item.IItemStack; 请问这个有什么用吗?我一直都是直接写,不加这一句,也没出现什么问题。
另外请教一下 import 的作用是什么。文档里说“导入相关类 为避免发生一些问题,在使用前最好导入相关类。”,没有指明具体问题。
传说中有个与暮色森林相似的维度,叫苍茫森林。它在传闻中宁静祥和,却是个极恐怖的世界,会侵蚀任何胆敢闯入此地之人的心智。然而许多勇者依然敢于挑战苍茫森林,但都找寻无果。直到一天……(见个人中心查看原文)
发表于 2021-3-16 22:03:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

回复 | 举报

该帖共收到 2 条回复!
ChromaPIE
举几个简单的例子,不细说:
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的好处,权当抛砖引玉。

点评

作为一个萌新虽然看不太懂,但还是感谢文字  发表于 2021-3-17 19:58
B* sit down, be humble.
发表于 2021-3-16 22:47:54 | 只看该作者

回复 | 举报

百科目前不允许匿名发帖哦~ 请先 [ 登陆 ][ 注册 ] 吧~

本版积分规则

发新帖
  • 回复
  • 点评
  • 评分

[ MC百科(mcmod.cn) 除另有声明,所有开放公共编辑的内容均使用 BY-NC-SA 3.0 协议 ]

Minecraft百科CC协议
快速回复 返回顶部 返回列表