我的代码在Minecraft的计算机控制的种子分析器中给出了“尝试调用nil值”

问题描述 投票:1回答:1

因此,我花了几个小时来查找有关“计算机控制的种子分析仪”的文档,但没有可用的当前信息。我的目标是建立一个种子分析仪,将在分析仪旁检查植物并对其进行分析。

我的代码:

 local sides = require("sides")

 if hasPlant(sides.left) and isAnalyzed() == false then
     analyze(side.left)
 end

[根据我的逻辑,我相信结果应该分析种子,但是相反,它尝试调用nil值(全局hasPlant)。根据我的研究,当时我未添加边线,因此未定义面。我还会缺少什么?

The Computer Controlled Seed Analyzer

lua minecraft opencomputers
1个回答
0
投票

这里有两个问题:

  1. 所涉及的mod当前是错误的,因此OpenComputers集成根本不起作用。我打开了拉取请求#1260 for AgriCraft#31 for InfinityLib来解决此问题。在修复之前,您无法在游戏中进行任何操作以使其正常运行。如果您不想等待带有此修复程序的正式发布,则可以使用我用来测试PR和以下代码的非正式版本of AgriCraftof InfinityLib
  2. 您正在编写的Lua代码是错误的。我不确定您从何处获得它,但是这是使它起作用的方法:
if component.agricraft_peripheral.hasPlant("EAST") and component.agricraft_peripheral.isAnalyzed() == false then
    component.agricraft_peripheral.analyze("EAST")
end

注意:

  • [Agricraft API使用字符串DOWNUPNORTHSOUTHWESTEAST,而不是来自side的数字常量。
  • OpenComputers中组件提供的功能不是全局的;它们嵌套在component内部。
  • 您可能需要local component = require("component"),因此如果缺少有关它的错误,请将其添加到顶部。 (如果没有它,它对我有用,但是一堆文档说您需要它。)
© www.soinside.com 2019 - 2024. All rights reserved.