本篇教程由作者设定使用 CC BY-NC-ND 协议。

本篇教程将教会你:

  1. 判断方块(机器)是否被open computer兼容;

  2. 获取对应方块(机器)所需数据的api函数名。

在官方文档中,并没有添加如何读取其他方块数据的描述,但是实际上OC对很多模组都进行了适配。

本篇教程适用于试图从其他方块中读取数据的进阶玩家,默认读者已经熟悉并掌握了:

  • 如何搭建OC系统;

  • 如何安装openOS;

  • 基础lua语句。

需要先准备好一套系统,以及我们需要用到适配器、以及可能用到的:用于读取适配器地址的分析器

  1. 如何判断方块(机器)是否被open computer兼容:

    1. 参照适配器中,在系统中输入component.list()查询是否有相关名称出现。

    2. 前往适配模组列表(github)查看是否有所属mod名称,点开后查看是否有该方块。AE也被适配了,在官方文档中,不在此列表。

    省流:

    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)。
  2. 获取对应方块(机器)所需数据的api函数名。

例如,我想要查询的是血魔法祭坛的容量,血魔法是blood magic,祭坛是altar,那么我去目录中找到了:

进阶-如何获取已知方块的数据api(如原版方块、血魔法、工业2等)-第1张图片

在血魔法中找到了:

进阶-如何获取已知方块的数据api(如原版方块、血魔法、工业2等)-第2张图片

在该文件中找到了:

进阶-如何获取已知方块的数据api(如原版方块、血魔法、工业2等)-第3张图片

那么假设我的适配器地址为0c7fbb36-2f56-4f4c-8385-33092fee8c94定义为(使用分析器潜行右键后打开聊天框点击可以快捷复制):

local altarAdapter = component.proxy("0c7fbb36-2f56-4f4c-8385-33092fee8c94")

那么祭坛容量就是:

altarAdapter.getCapacity()

同理我可以获取祭坛等级、当前血量、总血量,直接输出:

print("祭坛等级:"..altarAdapter.getTier())
print("祭坛血量:"..altarAdapter.getCurrentBlood().."/"..altarAdapter.getCapacity())

进阶-如何获取已知方块的数据api(如原版方块、血魔法、工业2等)-第4张图片

结果非常完美,这个数值就可以用来参与其他的判断中。