- UID
- 3517
- 精华
- 1
- 积分
- 959
- 威望
- 36 点
- 宅币
- 802 个
- 贡献
- 33 次
- 宅之契约
- 0 份
- 最后登录
- 2021-8-23
- 在线时间
- 207 小时
用户组: 大·技术宅
- UID
- 3517
- 精华
- 1
- 威望
- 36 点
- 宅币
- 802 个
- 贡献
- 33 次
- 宅之契约
- 0 份
- 在线时间
- 207 小时
- 注册时间
- 2018-3-2
|
本帖最后由 套路 于 2020-2-20 21:22 编辑
最近突然想使用之前站长做的Wool Fill,然后发现生成的命令惊人的长。然后尝试各种方法修改啊:用命令方块OOC(Only One Command),命令方块字符有上限最多为64K、用sh文件啊,还要用Linux(我不想用懒)和mc的服务器端...
修改转成Schematic多简单啊,用MCEdit导入就成了,所以我就修改了Wool Fill。
...
其实Wiki上有Schematic文件格式
但是我使用MCEdit-Unified导出发现Schematic格式是这样的
那么我们就用这个格式吧
知道了格式接下来就好做了。
通过VB的Open函数,将数据写入文件,再通过同目录下的gzip.exe压缩,最后重命名为Schematic文件即可用MCEdit打开。
通过立体坐标计算那么坐标为(X,Y,Z)的方块位于第(Y - 1) * (BmpWidth * BmpHeight) + ( Z - 1) * BmpWidth + X
个数据内(BmpWidth 和 BmpHeight为总的长和宽),只要在这个位置写入Block数据和Data数据就可以了。
值得注意的是,在VB写入文件时,方块等数据不能使用Chr,这是因为Chr的Acsii编码超过128的都会被翻译成"?",所以需要通过写入Binary文件,调用CByte来写入文件。
PS:MCEdit-Unified最后支持的MC版本为1.11,然后作者弃坑,向MCEdit2发展。而此工具生成的是MCEdit-Unified支持的格式,所以我删掉了1.12的版本的调色板。
Image2Schematic
MCEdit-Unified
|
|