示例: csv_export
将世界(或选区)中各类方块的数量导出为 CSV 的示例 · id csv_export · SDK ^1.0 · 最新版本 1.0.0
管理器窗口中的名称为「블록 통계 CSV (예제)」。只使用 SDK 1.0 的功能。
| 演示内容 | 代码 |
|---|---|
| 导出格式 | AddExporter · NpFileFormat |
| 控制台命令与参数 | AddCommand |
| 监视编辑 | Committed |
| 在新世界中清空状态 | WorldChanged |
| 易于测试的结构 | 将计算函数(Stats · ToCsv)提取为只接收 INpWorld 的 static 函数 |
| 项目 | 值 |
|---|---|
| 编辑器 | 0.9.0 及以上 |
| SDK | 1.0 及以上(^1.0) |
| 依赖插件 | 无 |
| 源码 | NP Editor 源码中的 samples/plugins/csv_export/(Plugin.cs · CsvExport.csproj · plugin.json) |
- 构建。
若在源码之外构建,请像快速开始那样修改 csproj,改为引用安装文件夹中的dotnet build samples/plugins/csv_export/CsvExport.csproj -c Release
NP.Editor.Sdk.dll。 - 将
CsvExport.dll和plugin.json复制到%APPDATA%\NPEditor\plugins\csv_export\。不要放入NP.Editor.Sdk.dll。 - 在「工具 › 插件管理器…」中点击「重新扫描」。
- 「블록 통계 CSV (예제)」显示为「已启用」即可。
- 打开地图。若只统计一部分,请选择区域。
- 点击「构建 › 导出: 블록 통계 CSV」。
- 指定要保存的文件名。默认名称为
<世界名称>.csv。 - 出现通知「블록 통계 CSV: <종 수>종 → <파일 이름>」。
- 在 Excel 中打开时韩文不会乱码(UTF-8 BOM)。
也可以直接在控制台中查看(数字仅为示例)。
> blockstats 3블록 2,304칸 · 4종 · 편집 2번(2,304칸) minecraft:grass_block 2,048 minecraft:stone_bricks 200 minecraft:oak_stairs 40| 类型 | 名称 | 说明 |
|---|---|---|
| 导出 | 构建 › 导出: 블록 통계 CSV(.csv) | 将各方块状态的数量 · 比例写入 CSV。有选择时只统计选区内,没有时统计整个世界。不统计空气。 |
| 命令 | blockstats [n] | 显示总格数 · 种类数 · 编辑次数,以及按数量从多到少的前 n 行(默认 5)。有选择时只统计选区内。 |
| 事件 | Committed | 统计启用插件后(或新建世界后)的撤销步数和更改的格数。 |
| 事件 | WorldChanged | 将编辑次数重置为 0。 |
CSV 格式
Section titled “CSV 格式”| 列 | 内容 | 例 |
|---|---|---|
block | 去掉属性的方块 id | minecraft:oak_stairs |
state | 完整的方块状态字符串 | "minecraft:oak_stairs[facing=east,half=bottom]" |
count | 格数 | 40 |
percent | 占总数的 %(保留到小数点后第三位,点作小数点) | 1.736 |
- 第一行为
block,state,count,percent。 - 各行按
count从多到少排列,相同时按state名称排序。 - 含逗号或双引号的值用双引号括起。含两个以上属性的
state即属此类。 - 文件以 UTF-8 BOM 写入。
限制 / 已知问题
Section titled “限制 / 已知问题”- 数量按方块状态统计。
blockstats的各行显示去掉属性的 id,因此同一 id 可能出现多行(朝向不同的楼梯等)。 plugin.json的说明中写的是「파일 › 내보내기」。自 0.9.0 起,导出菜单项位于「构建」菜单中。- 在大型世界中会扫描整个世界,因此需要一些时间。在此期间编辑器会停住。
- 编辑次数只保存在内存中。重启编辑器后为 0。
| 版本 | 日期 | 内容 |
|---|---|---|
| 1.0.0 | 2026-10-02 | 首个版本:导出「블록 통계 CSV」 · 命令 blockstats · Committed 编辑次数 |