This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
component:agent:zh [2023/11/26 21:26] hfsr [TankControl Trait API] |
component:agent:zh [2023/11/30 09:01] (current) hfsr |
||
---|---|---|---|
Line 19: | Line 19: | ||
将指定数量的物品从当前选定槽位中移动到指定槽位。如果未指定数量,则移动整个物品堆。 | 将指定数量的物品从当前选定槽位中移动到指定槽位。如果未指定数量,则移动整个物品堆。 | ||
- | ====WorldControl Trait API==== | + | ====世界控制特性API==== |
- `detect(side:number):boolean` | - `detect(side:number):boolean` | ||
- | 检测给定面相对于机器人的方块,并返回机器人是否可以移动到方块中,以及方块的描述。如果方块会阻挡机器人向前移动,则返回 true,否则返回 false。即使该方块是可通过的,机器人也会返回true。 | + | 检测相对机器人的给定方向处的方块,并返回机器人是否可以移动到该方块中,以及方块的大致描述。若方块会阻挡机器人向前移动,则返回`true`,否则返回`false`。无人机即使在方块为可穿越(passable)时也会返回`true`。 |
+ | **side** - 请参阅[[api:sides:zh|sides(方向) API]]以获取可能的方向列表。 | ||
- | **side** - 请参阅 [[api:sides:zh|sides API]] 以获取可能的面列表。 | + | ====世界储罐控制器特性API==== |
- | ====TankWorldControl Trait API==== | + | - `compareFluid(side:number):boolean` |
- | + | 将当前选定储罐(需要[[item:tank_upgrade:zh|储罐升级]])中的流体与机器人指定方向处世界中或外部储罐中的流体进行比较。 | |
- | - `compareFluid(side:number):boolean` | + | \\ |
- | 将选定储罐中的液体(需要 [[item:tank_upgrade:zh|储罐升级]])与世界上的流体或机器人指定一侧的外部储罐中的流体进行比较。 | + | |
- `drain(side:number[, count:number]):boolean` | - `drain(side:number[, count:number]):boolean` | ||
- | 令机器人通过指定面在世界或储罐中提取一定数量的流体。如果未指定数量,机器人将尝试提取 1000mB。如果储罐无法存储指定数量的流体,则操作将会执行失败(该过程不会损失流体)。 | + | 令机器人从指定方向抽取在世界中或储罐中的一定数量流体。若未指定数量,机器人将尝试抽取1000mB。若储罐无法存储指定数量的流体,则操作将失败(该过程不会损失流体)。 |
- `fill(side:number[, count:number]):boolean` | - `fill(side:number[, count:number]):boolean` | ||
- | 从选定的储罐(需要 [[item:tank_upgrade:zh|储罐升级]])中将指定量的流体填充到世界或机器人前面的储罐中。如果未指定数量,机器人将尝试用 1000mB 的液体填充目标储罐。如果没有足够的流体来填充方块或者目标储罐没有足够的空间,则该操作将执行失败且流体不会损失。 | + | 从当前选定储罐(需要[[item:tank_upgrade:zh|储罐升级]])中抽取指定量流体,向指定方向填充到世界中或储罐中。若未指定数量,机器人将尝试用1000mB 的液体填充目标储罐。若没有足够的流体来填充方块或者目标储罐没有足够的空间,则操作将失败,且流体不会损失。 |
====硬件实体特性API==== | ====硬件实体特性API==== | ||
Line 47: | Line 46: | ||
尝试以与玩家右键单击相同的方式使用当前装备在工具槽位的物品。 | 尝试以与玩家右键单击相同的方式使用当前装备在工具槽位的物品。 | ||
**side** - 若给定,则机器人仅尝试在指定面上“右键单击”,否则机器人会尝试所有可能的面。请查阅[[api:sides:zh|sides(方向) API]]以获取可能的方向列表。 | **side** - 若给定,则机器人仅尝试在指定面上“右键单击”,否则机器人会尝试所有可能的面。请查阅[[api:sides:zh|sides(方向) API]]以获取可能的方向列表。 | ||
- | **sneaky** - 若设置为true,机器人将会模拟玩家的潜行右键单击(如同玩家在右键单击时按住shift键一样)。若设置为true,某些物品(例如桶)的行为会有所不同。 | + | **sneaky** - 若设置为true,机器人将会模拟玩家的潜行右键单击(如同玩家在右键单击时按住shift键一样)。若设置为true,某些物品(例如桶)的行为会有所不同。 |
**duration** - 使用该物品的时间。这在使用弓等需要蓄力的物品时很有用。 | **duration** - 使用该物品的时间。这在使用弓等需要蓄力的物品时很有用。 | ||
**返回值:**若机器人可以与其前面的方块或实体交互,则返回 `true`,否则返回 `false`。若成功,会有第二个返回值,代表机器人交互的内容,可能取值为下列之一:`block_activated`(激活方块)、`item_placed`(放置物品)、`item_used`(使用物品)、`item_interacted`(与物品互动)、`air`(空气)。 | **返回值:**若机器人可以与其前面的方块或实体交互,则返回 `true`,否则返回 `false`。若成功,会有第二个返回值,代表机器人交互的内容,可能取值为下列之一:`block_activated`(激活方块)、`item_placed`(放置物品)、`item_used`(使用物品)、`item_interacted`(与物品互动)、`air`(空气)。 | ||
Line 66: | Line 65: | ||
\\ | \\ | ||
- `setLightColor(value:number):number` | - `setLightColor(value:number):number` | ||
- | 将活动指示灯(机器人)或机翼灯(无人机)的颜色设定为给定的整数编码RGB值(0xRRGGBB)。 | + | 将活动指示灯(机器人)或机翼灯(无人机)的颜色设定为给定的整数编码RGB值(0xRRGGBB)。 |
====储罐控制器特性API==== | ====储罐控制器特性API==== | ||
Line 86: | Line 86: | ||
- `transferFluidTo(tank:number[, count:number]):boolean` | - `transferFluidTo(tank:number[, count:number]):boolean` | ||
从当前选定储罐中转移指定量流体到指定储罐。若未指定转移量,机器人将尝试传输 1000mB。 | 从当前选定储罐中转移指定量流体到指定储罐。若未指定转移量,机器人将尝试传输 1000mB。 | ||
- | ====InventoryWorldController trait API==== | + | |
+ | ====世界物品栏控制器特性API==== | ||
- `compare(side:number[, fuzzy:boolean=false]):boolean` | - `compare(side:number[, fuzzy:boolean=false]):boolean` | ||
- | 将机器人指定侧的方块与当前选择的格子中的物品进行比较,并返回它们是否相同。如果二者元数据匹配,则认为方块(物品)相同;不检查其他 ItemStack 信息。空气被视为空气方块,不能与物品栏中的空格子进行比较;`detect()` 函数可用于确定机器人前面是否有块。 | + | 将机器人指定方向处的方块与当前选定槽位中的物品进行比较,返回它们是否相同。方块相同的条件是类型和元数据相同,不检查额外物品堆信息。空方块被视为空气方块,不能与物品栏的空槽位进行比较。`detect()` 函数可用于确定机器人前面是否有方块。 |
- | 对于掉落不同物品的方块,`compare()` 方法将不能工作(例如:钻石矿石掉落钻石);对于这些情况,请使用精准采集来获取方块进行比较。 | + | 对于掉落不同物品而非本身的方块,`compare()`方法不起作用(例如:钻石矿石掉落钻石物品);对这种情况,请使用精准采集获取原方块进行比较。 |
+ | \\ | ||
- `drop(side:number[, count:number]):boolean` | - `drop(side:number[, count:number]):boolean` | ||
- | 从当前选定的物品栏格子中丢弃指定数量的物品。如果丢弃了至少一个物品,则返回 `true`,否则返回 `false`。如果机器人前面的方块是容器,机器人会尝试把物品放入容器中。 | + | 从物品栏的当前选定槽位中提取并丢弃指定数量的物品。若丢弃了至少一个物品,则返回 `true`,否则返回 `false`。若机器人前面的方块为物品容器,机器人会尝试把物品放入容器中。 |
- | 如果该容器不能接收该物品,则该物品不会被丢弃在世界中(操作将会执行失败并返回 `false`)。机器人本身被视为容器(方块),并且可以使用 `drop()` 函数将物品移入其中。`drop()` 函数不适用非物品容器,例如流体储罐(`use()` 函数适用于这些情况)。 | + | 若该容器不能接收该物品,物品**不会**被丢弃在世界中(操作将会执行失败并返回 `false`)。机器人本身被视为带物品栏的方块,并且可以使用`drop()`函数将物品移入其中。`drop()` 函数不适用非物品容器,例如流体储罐(`use()` 函数适用于这些情况)。 |
+ | \\ | ||
- `suck(side:number[, count:number]):boolean` | - `suck(side:number[, count:number]):boolean` | ||
- | 尝试拾取指定数量的物品并将其置于选定的格子中。如果选定的格子被占用,则物品将被置于第一个可用格子中。会返回拾取的物品数量,否则返回 `false`。 | + | 尝试拾取指定数量的物品并将其置于当前选定槽位中。若当前选定槽位被占用,则物品将被置于第一个可用槽位中。返回值为拾取的物品数量,其他情况返回`false`。 |
====机器人组件API==== | ====机器人组件API==== |