全站通知:

插件编写:基础地图操作

阅读

    

2020-10-18更新

    

最新编辑:pevernow

阅读:

  

更新日期:2020-10-18

  

最新编辑:pevernow

来自MinetestWIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索
页面贡献者 :
pevernow

基本地图操作

在这一章节中,你将会学到如何在地图上进行基本操作。

地图结构

Minetest地图被分成多个图块,每个图块是一个16大小的立方体。当玩家在地图上移动时,地图块被创建、加载和卸载。地图中尚未加载的区域充满了ignore节点,这是一个不可选择的占位符节点。空旷的空间里充满了空气节点,一个你可以穿过的隐形节点。<br>
加载的地图块通常称为活动块。活动块可以被mod或玩家读写,并且有活动实体。引擎还执行地图上的操作,例如执行液体物理。<br>
地图块可以从世界数据库加载或生成。地图块将生成到地图生成限制(mapgen_limit),默认设置为最大值31000。但是,现有的地图块可以在生成限制之外从世界数据库加载。

读取

读取节点

一旦你有了位置,你就可以从地图上看到:

local node = minetest.get_node({ x = 1, y = 3, z = 4 })
print(dump(node)) --> { name=.., param1=.., param2=.. }

如果位置是十进制,则会舍入到包含的节点。函数将始终返回包含节点信息的表:<br>

  • name-节点名称,卸载区域时将忽略该名称。
  • param1-请参见节点定义。这通常是轻的。
  • param2-请参见节点定义。

值得注意的是,如果包含块处于非活动状态,则函数不会加载该块,而是返回一个nameignore的表。<br>
你可以用minetest.get_node_or_nil,它将返回nil,而不是名为ignore的表。但是,它仍然无法加载块。如果块实际包含ignore,则仍可能返回ignore。这将发生在地图生成限制(mapgen_limit)定义的地图边缘附近。<br>

查找节点

Minetest提供了许多helper函数来加速常见的map操作。其中最常用的是查找节点。<br>
例如,假设我们想让某种植物在mese附近生长得更好;您需要搜索任何附近的mese节点,并相应地调整增长率。


回城链接(目录)