<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ocr.michiyo.me/w/index.php?action=history&amp;feed=atom&amp;title=Component%2Fgeolyzer%2Fzh</id>
	<title>Component/geolyzer/zh - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://ocr.michiyo.me/w/index.php?action=history&amp;feed=atom&amp;title=Component%2Fgeolyzer%2Fzh"/>
	<link rel="alternate" type="text/html" href="https://ocr.michiyo.me/w/index.php?title=Component/geolyzer/zh&amp;action=history"/>
	<updated>2026-08-24T16:58:14Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://ocr.michiyo.me/w/index.php?title=Component/geolyzer/zh&amp;diff=1165&amp;oldid=prev</id>
		<title>imported&gt;OCDoc Import: Imported from legacy OpenComputers documentation at ocdoc.cil.li</title>
		<link rel="alternate" type="text/html" href="https://ocr.michiyo.me/w/index.php?title=Component/geolyzer/zh&amp;diff=1165&amp;oldid=prev"/>
		<updated>2026-08-24T08:08:27Z</updated>

		<summary type="html">&lt;p&gt;Imported from legacy OpenComputers documentation at ocdoc.cil.li&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= 组件：地址分析仪 =&lt;br /&gt;
&lt;br /&gt;
此组件由[[Block/geolyzer/zh|地址分析仪方块]]提供。&lt;br /&gt;
&lt;br /&gt;
组件名：`geolyzer`。&lt;br /&gt;
&lt;br /&gt;
回调函数：&lt;br /&gt;
&lt;br /&gt;
* `scan(x:number, z:number[, y:number, w:number, d:number, h:number][, ignoreReplaceable:boolean|options:table]):table`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;分析位于`x`、`z`和`y`指定的相对坐标处一定区域的密度。此函数将会返回一个列表，其中包含指定范围内方块的硬度值。提供的坐标是以地址分析仪为参考点的相对坐标。待分析区域的大小由参数`w`、`d`与`h`指定，分别代表宽度（width）、深度（depth）与高度（height）。若不指定大小则认为区域为指定坐标对应的单个方块。  &lt;br /&gt;
&lt;br /&gt;
方块离地址分析仪越远，扫描到的硬度值所含的噪声就会越大。计算某个值与特定方块实际硬度值偏离程度的准确公式是：`到方块的欧几里得距离 &amp;#039;&amp;#039; 1/33 &amp;#039;&amp;#039; 地质分析仪噪声`，公式中的`地质分析仪噪声（geolyzerNoise）`常数可通过配置文件修改，默认为`2`。  &lt;br /&gt;
&lt;br /&gt;
包含多个结果的表中的数据是线性的，但是结果所代表的是一个3D的区域。区域起始于由相对于地址分析仪的相对坐标（`x`、`z`与`y`）定义的方块，其大小（`w`、`d`与`h`）决定了区域分别在坐标轴的x轴正方向、z轴正方向和y轴正方向上延伸的方块数。将结果表中的元素与坐标对应起来需要用到以下方法：  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
表中元素首先沿x轴正方向排列，然后是z轴正方向，最后是y轴正方向。换言之，假设结果表是将三维表转化成一维表得到的，那么三维表的最后一维中是按照x轴正方向排列的数值，中间一维是按照z轴正方向排列的，最高一维是按照y轴正方向排列的。可查看底部的一段代码样例以帮助理解。&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;注意：&amp;#039;&amp;#039;&amp;#039;偏移量在方向上是绝对的，不受面向方向的影响。换句话说，如果地质分析仪安装在机器人中，偏移量不会受到机器人朝向的影响。 &amp;#039;&amp;#039;&amp;#039;注意：&amp;#039;&amp;#039;&amp;#039;返回的数值一定为64个，即使扫描区域的体积不足64也是如此。假设扫描了10个方块，那么扫描结果中的前10个值就代表了被扫描的方块，而扫描结果中剩下的值应当被忽略。&lt;br /&gt;
* `analyze(side:number[, options:table]):table`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;获取某个直接接触地址分析仪的方块的信息。默认情况下返回的表中将包含字符串格式的方块ID（如`minecraft:dirt`、元表、硬度以及一些其他信息）请注意调用一次该函数消耗的能量与调用`scan`函数相同！  &lt;br /&gt;
此方法可通过配置文件中的`misc.allowItemStackInspection`设置项禁用。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `store(side:number, dbAddress:string, dbSlot:number):boolean`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;读取与地址分析仪指定面接触的方块信息，并将其以物品堆的形式存储到指定地址对应的[[Component/database/zh|数据库组件]]中的指定槽位。此函数不一定能（很好的）处理所有方块，尤其是以NBT数据区分的模组方块（例如机器人）。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `detect(side:number):boolean, string`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;与`robot.detect`（来自机器人组件）相同。探测指定方向的方块，方向是机器人的相对方向，并返回机器人可否移动到此方块的位置中，同时给出方块的大体描述。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;返回值：&amp;#039;&amp;#039;&amp;#039;若机器人前方的物体会阻碍机器人移动（为方块或实体）则返回 `true`（注意：无人机即使在方块为`passable`时也会返回`true`），在其他情况下会返回`false`。第二个参数大体描述了遣返的物体，取值可能为下列之一：`entity`、`solid`、`replaceable`、`liquid`、`passable`或`air`。&lt;br /&gt;
* `canSeeSky():boolean`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;返回从当前位置垂直向上是否能看到天空。透明方块，例如玻璃，不会影响视线。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `isSunVisible():boolean`&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;返回从当前位置垂直向上是否能看到太阳。结果受到正上方能阻碍视线的方块（可由`canSeeSky()`函数检查）以及当前为白天还是黑夜影响。  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
下列代码片段可用于理解`scan`函数实际如何工作。它会扫描指定偏移处指定大小的区域，保存返回的数据以及相对于地质分析仪方块（或机器人）的准确偏移坐标，并打印这些数据。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;Lua&amp;quot;&amp;gt;local component = require(&amp;quot;component&amp;quot;)&lt;br /&gt;
local geolyzer = component.geolyzer&lt;br /&gt;
&lt;br /&gt;
local offsetx = 4&lt;br /&gt;
local offsetz = -3&lt;br /&gt;
local offsety = -5&lt;br /&gt;
&lt;br /&gt;
local sizex = 3&lt;br /&gt;
local sizez = 4&lt;br /&gt;
local sizey = 5&lt;br /&gt;
&lt;br /&gt;
local map = {}&lt;br /&gt;
local scanData = geolyzer.scan(offsetx, offsetz, offsety, sizex, sizez, sizey)&lt;br /&gt;
local i = 1&lt;br /&gt;
for y = 0, sizey - 1 do&lt;br /&gt;
    for z = 0, sizez - 1 do&lt;br /&gt;
        for x = 0, sizex - 1 do&lt;br /&gt;
            -- 可看作是三维表：map[offsety + y][offsetz + z][offsetx + x] = scanData[i]&lt;br /&gt;
            map[i] = {posx = offsetx + x, posy = offsety + y, posz = offsetz + z, hardness = scanData[i]}&lt;br /&gt;
            i = i + 1&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for i = 1, sizex&amp;#039;&amp;#039;sizez&amp;#039;&amp;#039;sizey do&lt;br /&gt;
    print(map[i].posx, map[i].posy, map[i].posz, map[i].hardness)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== 目录 ==&lt;br /&gt;
&lt;br /&gt;
{{:Component/contents/zh}}&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;OCDoc Import</name></author>
	</entry>
</feed>