本篇教程由作者设定使用 CC BY-NC-ND 协议。
本篇教程将教会你:
判断方块(机器)是否被open computer兼容;
获取对应方块(机器)所需数据的api函数名。
在官方文档中,并没有添加如何读取其他方块数据的描述,但是实际上OC对很多模组都进行了适配。
本篇教程适用于试图从其他方块中读取数据的进阶玩家,默认读者已经熟悉并掌握了:
如何搭建OC系统;
如何安装openOS;
基础lua语句。
需要先准备好一套系统,以及我们需要用到适配器、以及可能用到的:用于读取适配器地址的分析器。
如何判断方块(机器)是否被open computer兼容:
参照适配器中,在系统中输入component.list()查询是否有相关名称出现。
前往适配模组列表(github)查看是否有所属mod名称,点开后查看是否有该方块。AE也被适配了,在官方文档中,不在此列表。
获取对应方块(机器)所需数据的api函数名。
省流:
AgriCraft、AppliedEnergistics2、BattleGear2、BetterRecords、BloodMagic、BluePower、BuildCraft、BuildCraftLibrary;
BuildCraftRecipes、BuildCraftTiles、BuildCraftTools、BuildCraftTransport、CoFHEnergy、CoFHItem、CoFHTileEntity;
CoFHTransport、ColoredLights、ComputerCraft、CraftingCosts、DeepStorageUnit、ElectricalAge、EnderIO、EnderStorage;
ExtraCells、Factorization、Forestry、ForgeMultipart、Galacticraft、GregTech、IndustrialCraft2、IndustrialCraft2Classic;
IngameWiki、Mekanism、MekanismGas、Minecraft、MineFactoryReloaded、Mystcraft、NotEnoughItems、NotEnoughKeys;
OpenComputers、PortalGun、PowerAdvantage、ProjectRedCore、ProjectRedTransmission、Railcraft、RedLogic、RotaryCraft;
StargateTech2、Thaumcraft、ThermalExpansion、TinkersConstruct、TMechWorks、VersionChecker、Waila、WirelessRedstoneCBE(SVE)。
AE的相关api可以直接在官方文档中查询。
前往适配模组列表(github)找到对应模组的对应方块;
查看对应函数语句。
例如,我想要查询的是血魔法祭坛的容量,血魔法是blood magic,祭坛是altar,那么我去目录中找到了:
在血魔法中找到了:
在该文件中找到了:
那么假设我的适配器地址为0c7fbb36-2f56-4f4c-8385-33092fee8c94定义为(使用分析器潜行右键后打开聊天框点击可以快捷复制):
local altarAdapter = component.proxy("0c7fbb36-2f56-4f4c-8385-33092fee8c94")
那么祭坛容量就是:
altarAdapter.getCapacity()
同理我可以获取祭坛等级、当前血量、总血量,直接输出:
print("祭坛等级:"..altarAdapter.getTier())
print("祭坛血量:"..altarAdapter.getCurrentBlood().."/"..altarAdapter.getCapacity())
结果非常完美,这个数值就可以用来参与其他的判断中。