Minecraft 块部分如何存储

2024-04-05

我目前正在制作一个 Minecraft 块操作程序,我想知道 Minecraft 块部分是如何存储的。

来自Minecraft Wiki 关于 Minecraft 如何存储其区块的文章 http://minecraft.gamepedia.com/Chunk_format.

部分:复合标签列表,每个标签都是一个子块。

一个单独的部分。

Y:该部分的 Y 索引(不是坐标)。范围 0 到 15(从下到上),没有重复项,但如果为空,某些部分可能会丢失。

块:定义地形的 4096 字节块 ID。每块 8 位,加上 ?来自下面的添加标签的位。

添加:可能不存在。 2048 字节的附加块 ID 数据。添加到(组合)上述块 ID 以形成 0 到 4095 范围内的真实块 ID 的值。每个块 4 位。组合是通过将该值移至左侧 8 位,然后将其添加到上面的块 ID 来完成的。

数据:2048 字节的块数据另外定义了部分地形。每块 4 位。

BlockLight:2048字节记录每个块中块发射的光量。与加载时重新计算相比,加载时间更快。每块 4 位。

SkyLight:2048 字节记录照射到每个块的阳光或月光量。每块 4 位。

但我不明白如何Blocks已读。块中的每个部分都是 16 x 16 x 16 块。但是 Minecraft 将块存储在1-d array.


3D 数组也线性存储在 RAM 中。您需要将坐标转换为索引。对于“Blocks”标签,其公式如下:

Index = Ycoord * 256 + Zcoord * 16 + Xcoord

这称为 YZX 阶。标签“HeightMap”或“Biomes”使用 ZX 顺序(索引 = Zcoord * 16 + X)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Minecraft 块部分如何存储 的相关文章

  • resultset.getObject 上的 AbstractMethodError

    所以我正在构建一个minecraft插件 该插件的一部分从mysql获取一堆块数据 并在服务器启动时将其加载到缓存中 我有一些代码在 Eclipse 测试用例中运行良好 然而 当我在本地我的世界服务器中加载插件时 我得到了异常 java l
  • C# ping 我的世界

    所以找到了这个小代码片段 可以让你在 PHP 中 ping Minecraft 服务器 但现在我想在 C 中执行此操作 我尝试自己这样做 但由于某种原因它不起作用 UdpClient client new UdpClient IPEndPo
  • 如何使用实例引用实例?

    我试图尽量减少创建实例的次数 因为我对 Java 不是特别熟练 目前我的 Main 中有一组其他类的实例 一个简单的例子 public final class ClassName extends JavaPlugin AntiSwear a
  • 如何在 NodeJS 中刷新任意大小的块

    在 Node Web 服务器中 我想在特定点刷新 HTML 内容 如下所示 第一个块 第二块 第三块 e g var http require http http createServer function req res res writ
  • 指针 - 减少内存消耗

    我一直在为 OpenGL 练习编写 Minecraft 复制品 我猜有很多 但是在编写了基本渲染 API 后 我注意到真正的 Minecraft 使用了lot或内存 大约 800MB 我完全理解为什么它必须记住所有块以及小怪以及生成器的地形
  • 在 C++ 中处理巨大的多维数组

    我正在用 C 设计一款类似于 Minecraft 的游戏 它在内存中保存了大量的地形数据 一般来说 我想在内存中存储一 个数组 即 5 4 5 50 50 50 这还不错 因为它相当于大约 100mb 的虚拟内存 而我的结构只有大约 8 个
  • 如何将带有分隔符的连接数组拆分为块

    我有字符串数组 const arr some word anotherverylongword word yyy u const joined arr join 我想要获取块数组 其中连接的字符串长度不大于 10 例如输出将是 some w
  • 如何使用 webpack 分别捆绑供应商和主脚本?

    我真的很感谢这里的一些帮助 在这种情况下 我想在最终的构建操作中将我的供应商 js 和我的 main js 分开 我之前尝试过在我的 package json devDependency 中循环分离我的第三方库并将其放入供应商 js 中 它
  • 对齐音频以便使用网络音频 api 流畅播放

    我目前正在尝试弄清楚如何使用网络音频 API 播放分块音频 一切都正常 但是 大多数块之间的转换并不像我希望的那样顺利 有一个非常非常短暂的时刻大多数人之间保持沉默 我当前的加载和播放代码 const response await fetc
  • 在 Bukkit 中设置原理图的块数据?

    我正在尝试加载并粘贴 schematicbukkit 中的文件 不挂钩 MCEdit API 下面是我用来粘贴原理图的函数 方法 粘贴时 我不断收到NullPointerException在粘贴过程中 当我记录放置的物品时 我看到草块 石头
  • 如何从 Minecraft 编辑 .mca 文件?

    介绍 我想将我的各个 Minecraft 世界合并成一个世界 这似乎是一个相对容易的壮举 但随着我的研究 它演变成需要制作一个自定义程序 奋斗 我首先移动区域文件并将它们合并到一个区域文件夹中 这似乎是显而易见的解决方案 而且几乎有效 注意
  • 在 Bukkit 插件中将赏金参数读取为整数

    这只是该插件的开始 还会有更多 这就是我想要的 对于 bounty
  • 如何让conemu双击打开bat文件?

    我有一个家庭服务器 我在其中运行开发minecraft服务器 并已转移到conemu作为CMD替代品 除了每次我想启动服务器时 我都需要CD到DIR并运行start bat 有没有一种方法可以创建一个快捷方式 只需双击即可在conemu中启
  • Minecraft Forge EntityJoinWorldEvent 返回错误位置!错误

    在本地开发环境中使用 Eclipse Mars 1 Release 4 5 1 中的 Forge 1 8 9 I m trying to set a player s location every time they join or re
  • 如果模式匹配,则打印 lua 表中的值

    好吧 我最近刚接触 lua 发现自己陷入了以下困境 我有函数peripheral getNames 这是一个自定义函数 它将返回一个具有结构 key value 的表 而 key 始终是一个数字 从 1 开始 value 将是该函数找到的内
  • Minecraft 块部分如何存储

    我目前正在制作一个 Minecraft 块操作程序 我想知道 Minecraft 块部分是如何存储的 来自Minecraft Wiki 关于 Minecraft 如何存储其区块的文章 http minecraft gamepedia com
  • Minecraft 插件 ScheduleSyncDelayedTask 错误

    我遇到了一个问题 并且在制作 Minecraft 插件和编写一般代码方面还很陌生 我正在尝试制作一个插件 在执行第二个命令之前等待大约 15 秒 但是当我尝试执行 plugin new Runnable 时 我现在的代码出现错误 我做了一些
  • Minecraft Forge 1.8 - 加载块纹理

    我刚刚开始学习 Java 同时修改 Minecraft 我看过有关使用 Minecraft Forge API 将块添加到游戏中的教程 但我遇到了问题 不再有 setBlockTextureName 方法 所以我不知道该怎么办 我在游戏中添
  • 将字符写入 Java 套接字时 fsockopen 10053 错误

    Right 我正在尝试用 PHP 编写一个小脚本 将游戏中的聊天包发送到 Minecraft Deliberately low timeout mc fsockopen localhost 25565 errno err 3 现在 如果连接
  • 如何获取 Minecraft 会话 ID?

    我正在尝试制作 Minecraft 客户端 但不知道如何获取会话 ID 来启动游戏 我已经做了一些谷歌搜索 但无论如何都找不到从中获取它这个答案从命令行启动 Minecraft 用户名和密码作为前缀 https stackoverflow

随机推荐