我的代码在 Minecraft 的计算机控制种子分析器上“尝试调用空值”

所以我花了几个小时寻找关于项目“计算机控制的种子分析器”的文档,但没有有用的当前信息。我的目标是设置一个种子分析器,检查分析器旁边是否有植物并进行分析。

我的代码:

 local sides = require("sides")

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

根据我的逻辑,我相信结果应该分析种子,但实际上它给出了尝试调用空值(全局 hasPlant)。从我的研究来看,当时未定义方向,因此我添加了局部线。我还缺少什么?

计算机控制的种子分析器

点赞
用户7509065
用户7509065

这里存在两个问题:

  1. 目前涉及的模组存在漏洞,因此 OpenComputers 集成根本不起作用。我已经为 AgriCraft 开了拉取请求 #1260 以及 InfinityLib 开了拉取请求 #31 来修复它们。在它们被修复之前,你无法通过游戏内操作来解决该问题。如果你不想等待带有修复的官方版本发布,你可以使用我的非官方版本来解决问题 AgriCraftInfinityLib,这些版本我用于测试我的拉取请求和以下代码。
  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"),所以在顶部添加它即可。 (对我来说这样可以工作,但是很多文档都说你需要这样做。)
2020-01-05 21:51:05