基于对戴森球计划游戏蓝图数据的解析与处理,实现对蓝图进行“垂直叠加”、“坐标偏移”、“水平翻转”、“线性变换”、“无带流”等转换的实用功能,并提供快捷、界面化的蓝图数据与JSON间的转换功能。
-
项目框架:Vue2
-
蓝图数据解析参考:
- 在线访问地址:
- b站演示视频:
- 页面截图:
数据主体
| 字段 | 字段类型 | 索引/长度 | 备注 |
|---|---|---|---|
| cells 数组索引 | 截取从 BLUEPRINT: 后到首个 " 间的字符串逗号分割为数组cells |
||
| header | Object | 蓝图文件头部信息 | |
| - layout | Number | cells[1] | 蓝图图标布局 |
| - icons | Array(5) | 蓝图图标 | |
| - - _array_item | Number | cells[2 - 6] | |
| - time | Date | cells[8] | 创建时间 |
| - gameVersion | String | cells[9] | 游戏版本号 |
| - shortDesc | String | cells[10] | 缩略图文字 |
| - desc | String | cells[11] | 蓝图介绍 |
| 长度(字节) | 首个 " 到第二个 " 间的字符串解析为字节流以下按蓝图数据按字节流从左到右排列 |
||
| version | Number | 4 | 一般为1 |
| cursorOffset | Object | 预览蓝图时的鼠标锚点偏移 | |
| - x | Number | 4 | |
| - y | Number | 4 | |
| cursorTargetArea | Number | 4 | 对应areas索引,一般为0 |
| dragBoxSize | Object | 长按鼠标拖拽复制建筑时,间隔的长宽 一般与areas.size相同 |
|
| - x | Number | 4 | |
| - y | Number | 4 | |
| primaryAreaIdx | Number | 4 | 对应areas索引,一般为0 |
| numAreas | - | 1 | areas数组长度(仅读取),一般为1 |
| areas | Array(numAreas) | ||
| - _array_item | AREA | 14 | |
| numBuildings | - | 4 | buildings数组长度(仅读取) |
| buildings | Array(numBuildings) | 建筑信息 | |
| - _array_item | BUILDING | 61 + _parameterLength * 4 |
| 字段 | 字段类型 | 长度(字节) | 备注 |
|---|---|---|---|
| index | Number | 1 | 数组索引 |
| parentIndex | Number | 1 | |
| tropicAnchor | Number | 2 | |
| areaSegments | Number | 2 | |
| anchorLocalOffset | Object | ||
| - x | Number | 2 | |
| - y | Number | 2 | |
| size | Object | 所有建筑的包围盒长宽 | |
| - x | Number | 2 | |
| - y | Number | 2 |
变化描述:
- 版本标识
num改为-101 - 移动
itemId、modelIndex顺序 localOffset[1]、yaw[1]改为分拣器独有tilt改为分拣器和传送带独有- 分拣器建筑增加
pitch、tilt2、pitch2属性
| 字段 | 字段类型 | 长度(字节) | 备注 |
|---|---|---|---|
| num | Number | 4 | 固定值-101,用以标识蓝图版本[V0.10.31.24646后蓝图版本标识] |
| index | Number | 4 | 数组索引 |
| itemId | Number | 2 | 建筑id |
| itemName | String | - | 建筑名称 |
| modelIndex | Number | 2 | 模型id |
| areaIndex | Number | 1 | 对应areas索引,一般为0 |
| localOffset[0].x | Number | 4 | 建筑物相对坐标x |
| localOffset[0].y | Number | 4 | 建筑物相对坐标y |
| localOffset[0].z | Number | 4 | 建筑物相对坐标z |
| yaw[0] | Number | 4 | 建筑物旋转角度(单位:角度) |
| tilt | Number | 4 | 建筑物倾斜角度(单位:角度) *传送带建筑 (2000<itemId<2010)、分拣器建筑(2010<itemId<2020)独有 |
| pitch | Number | 4 | 分拣器起始点朝向(单位:角度)[V0.10.31.24646版本新增] *分拣器建筑 (2010<itemId<2020)独有 |
| localOffset[1].x | Number | 4 | 分拣器目标点相对坐标x *分拣器建筑 (2010<itemId<2020)独有 |
| localOffset[1].y | Number | 4 | 分拣器目标点相对坐标y *分拣器建筑 (2010<itemId<2020)独有 |
| localOffset[1].z | Number | 4 | 分拣器目标点相对坐标z *分拣器建筑 (2010<itemId<2020)独有 |
| yaw[1] | Number | 4 | 分拣器目标点旋转角度(单位:角度) *分拣器建筑 (2010<itemId<2020)独有 |
| tilt2 | Number | 4 | 分拣器目标点倾斜角度(单位:角度)[V0.10.31.24646版本新增] *分拣器建筑 (2010<itemId<2020)独有 |
| pitch2 | Number | 4 | 分拣器目标点朝向(单位:角度)[V0.10.31.24646版本新增] *分拣器建筑 (2010<itemId<2020)独有 |
| outputObjIdx | Number | 4 | 输出端目标建筑索引 |
| inputObjIdx | Number | 4 | 输入端目标建筑索引 |
| outputToSlot | Number | 1 | 输出端绑定到目标建筑的插槽索引 |
| inputFromSlot | Number | 1 | 输入端绑定到目标建筑的插槽索引 |
| outputFromSlot | Number | 1 | (建筑物自身属性) |
| inputToSlot | Number | 1 | (建筑物自身属性) |
| outputOffset | Number | 1 | 输出端插槽偏移,常见于分拣器 |
| inputOffset | Number | 1 | 输入端插槽偏移,常见于分拣器 |
| recipeId | Number | 2 | 配方id,常见于制造厂类建筑 |
| filterId | Number | 2 | 过滤物品id,常见于分拣器、四向 |
| parameterLength | - | 2 | parameters长度(每单位:4字节) |
| parameters | PARAM | parameterLength * 4 | 建筑配置参数 |
变化描述:
- 增加版本标识
num,固定值-100 - 建筑增加
tilt属性
| 字段 | 字段类型 | 长度(字节) | 备注 |
|---|---|---|---|
| num | Number | 4 | 固定值-100,用以标识蓝图版本[V0.10.30.22239版本新增] |
| index | Number | 4 | 数组索引 |
| areaIndex | Number | 1 | 对应areas索引,一般为0 |
| localOffset | Array(2) | 建筑物相对坐标 | |
| - _array_item | Object | ||
| - - x | Number | 4 | |
| - - y | Number | 4 | |
| - - z | Number | 4 | |
| yaw | Array(2) | 建筑物旋转角度(单位:角度) | |
| - _array_item | Number | 4 | |
| tilt | Number | 4 | 建筑物倾斜角度(单位:角度)[V0.10.30.22239版本新增] |
| itemId | Number | 2 | 建筑id |
| itemName | String | - | 建筑名称 |
| modelIndex | Number | 2 | 模型id |
| outputObjIdx | Number | 4 | 输出端目标建筑索引 |
| inputObjIdx | Number | 4 | 输入端目标建筑索引 |
| outputToSlot | Number | 1 | 输出端绑定到目标建筑的插槽索引 |
| inputFromSlot | Number | 1 | 输入端绑定到目标建筑的插槽索引 |
| outputFromSlot | Number | 1 | (建筑物自身属性) |
| inputToSlot | Number | 1 | (建筑物自身属性) |
| outputOffset | Number | 1 | 输出端插槽偏移,常见于分拣器 |
| inputOffset | Number | 1 | 输入端插槽偏移,常见于分拣器 |
| recipeId | Number | 2 | 配方id,常见于制造厂类建筑 |
| filterId | Number | 2 | 过滤物品id,常见于分拣器、四向 |
| parameterLength | - | 2 | parameters长度(每单位:4字节) |
| parameters | PARAM | parameterLength * 4 | 建筑配置参数 |
| 字段 | 字段类型 | 长度(字节) | 备注 |
|---|---|---|---|
| index | Number | 4 | 数组索引 |
| areaIndex | Number | 1 | 对应areas索引,一般为0 |
| localOffset | Array(2) | 建筑物相对坐标 | |
| - _array_item | Object | ||
| - - x | Number | 4 | |
| - - y | Number | 4 | |
| - - z | Number | 4 | |
| yaw | Array(2) | 建筑物旋转角度(单位:角度) | |
| - _array_item | Number | 4 | |
| itemId | Number | 2 | 建筑id |
| itemName | String | - | 建筑名称 |
| modelIndex | Number | 2 | 模型id |
| outputObjIdx | Number | 4 | 输出端目标建筑索引 |
| inputObjIdx | Number | 4 | 输入端目标建筑索引 |
| outputToSlot | Number | 1 | 输出端绑定到目标建筑的插槽索引 |
| inputFromSlot | Number | 1 | 输入端绑定到目标建筑的插槽索引 |
| outputFromSlot | Number | 1 | (建筑物自身属性) |
| inputToSlot | Number | 1 | (建筑物自身属性) |
| outputOffset | Number | 1 | 输出端插槽偏移,常见于分拣器 |
| inputOffset | Number | 1 | 输入端插槽偏移,常见于分拣器 |
| recipeId | Number | 2 | 配方id,常见于制造厂类建筑 |
| filterId | Number | 2 | 过滤物品id,常见于分拣器、四向 |
| parameterLength | - | 2 | parameters长度(每单位:4字节) |
| parameters | PARAM | parameterLength * 4 | 建筑配置参数 |
[^2001, 2002, 2003]: 传送带, 高速传送带, 极速传送带
| 字段 | 字段类型 | 偏移量(Int32) | 长度(Int32) | 备注 |
|---|---|---|---|---|
| _parameters | Object | 2 | ||
| - iconId | Number | 0 | 1 | 图标标签物品id |
| - count | Number | 1 | 1 | 图标标签下的数字 |
[^2011, 2012, 2013, 2014]: 分拣器, 高速分拣器, 极速分拣器, 集装分拣器
| 字段 | 字段类型 | 偏移量(Int32) | 长度(Int32) | 备注 |
|---|---|---|---|---|
| _parameters | Object | 1 | ||
| - length | Number | 0 | 1 | 分拣器长度 -> 1 - 3 |
| 字段 | 字段类型 | 偏移量(Int32) | 长度(Int32) | 备注 |
|---|---|---|---|---|
| _parameters | Object | 6 | ||
| - priority | Array(4) | 0 | 4 | 四向四个接口的优先级 |
| - - _array_item | Boolean | i | 1 | 是否优先 |
[^2303, 2304, 2305, 2318, 2302, 2315, 2319, 2308, 2309, 2317, 2310]:制造台 Mk.I, 制造台 Mk.II, 制造台 Mk.III, 重组式制造台, 电弧熔炉, 位面熔炉, 负熵熔炉, 原油精炼厂, 化工厂, 量子化工厂, 微型粒子对撞机
| 字段 | 字段类型 | 偏移量(Int32) | 长度(Int32) | 备注 |
|---|---|---|---|---|
| _parameters | Object | 1 | ||
| - acceleratorMode | Number | 0 | 1 | 增产效果 -> 0:额外产出 1:生产加速 |
[^2901, 2902]: 矩阵研究站, 自演化研究站
| 字段 | 字段类型 | 偏移量(Int32) | 长度(Int32) | 备注 |
|---|---|---|---|---|
| _parameters | Object | 2 | ||
| - researchMode | Number | 0 | 1 | 研究模式 -> 0:未选择 1:矩阵合成 2:科研模式 |
| - acceleratorMode | Number | 1 | 1 | 增产效果 -> 0:额外产出 1:生产加速 |
[^2101, 2102]: 小型储物仓, 大型储物仓
| 字段 | 字段类型 | 偏移量(Int32) | 长度(Int32) | 备注 |
|---|---|---|---|---|
| _parameters | Object | 110 | ||
| - bans | Number | 0 | 1 | 限制不可自动放入的格子数 |
| - storageType | Number | 1 | 1 | 储物仓类型 -> 0:不过滤 9:存在过滤器 |
| - filters | Array(gridNum) | 10 | gridNum | 储物仓物品过滤器 gridNum: 建筑储物格子数目 |
| - - _array_item | Number | 10 + i | 1 | 过滤物品id |
| 字段 | 字段类型 | 偏移量(Int32) | 长度(Int32) | 备注 |
|---|---|---|---|---|
| _parameters | Object | 2 | ||
| - output | Boolean | 0 | 1 | 是否输出 |
| - input | Boolean | 1 | 1 | 是否输入 |
| 字段 | 字段类型 | 偏移量(Int32) | 长度(Int32) | 备注 |
|---|---|---|---|---|
| _parameters | Object | 128 | ||
| - playerMode | Number | 0 | 1 | 机甲供需模式 -> 1:从伊卡洛斯回收 2:向伊卡洛斯供应和回收 3:向伊卡洛斯供应 |
| - storageMode | Number | 1 | 1 | 配送器间模式 -> 0:不勾选 1:向其他配送器供应 2:向其他配送器需求 |
| - workEnergyPerTick | Number | 2 | 1 | 最大充能功率(单位:MW) -> 0.9 - 9 |
| - courierAutoReplenish | Boolean | 3 | 1 | 是否自动补充运输单位 |
[^2103, 2104, 2316]: 行星内物流运输站, 星际物流运输站, 大型采矿机
| 字段 | 字段类型 | 偏移量(Int32) | 长度(Int32) | 备注 |
|---|---|---|---|---|
| _parameters | Object | 2048 | ||
| - storage | Array(storageNum) | 0 | 192 | 物品栏位参数 storageNum: 建筑栏位数目 |
| - - _array_item | Object | _L = i * 6 | 6 | |
| - - - itemId | Number | _L + 0 | 1 | 物品id |
| - - - localRole | Number | _L + 1 | 1 | 本地供需配置 -> 0:本地仓储 1:本地供应 2:本地需求 |
| - - - remoteRole | Number | _L + 2 | 1 | 星际供需配置 -> 0:星际仓储 1:星际供应 2:星际需求 |
| - - - max | Number | _L + 3 | 1 | 物品上限 |
| - - - lockAmount | Number | _L + 4 | 1 | 是否锁定数量 -> 0:不锁定 1:锁定满仓 2:锁定半仓 |
| - slots | Array(slotsNum) | 192 | 320 | 传送带插槽参数 slotsNum: 建筑传送带插槽数目 |
| - - _array_item | Object | _L =192 + i * 4 | 4 | |
| - - - dir | Number | _L + 0 | 1 | 传送带接入方向 -> 0:未接入 1:输出 2:输入 |
| - - - storageIdx | Number | _L + 1 | 1 | 输出货物对应物品栏索引 -> 0:不输出 1-5:物品栏索引 6:翘曲器 |
| - workEnergyPerTick | Number | 320 | 1 | 最大充能功率(单位:MW) -> 30 - 300 |
| - tripRangeOfDrones | Number | 321 | 1 | 运输机最远路程(单位:度) -> 20 - 180 |
| - tripRangeOfShips | Number | 322 | 1 | 运输船最远路程 -> 1-60:有限路程(单位:ly) 10000:无限 |
| - includeOrbitCollector | Boolean | 323 | 1 | 是否会去轨道采集器取货 |
| - warpEnableDistance | Number | 324 | 1 | 曲速启用路程(单位:AU) -> 0.5 - 60 |
| - warperNecessary | Boolean | 325 | 1 | 是否翘曲器必备 |
| - deliveryAmountOfDrones | Number | 326 | 1 | 运输机起送量(单位:%) -> 1 - 100 |
| - deliveryAmountOfShips | Number | 327 | 1 | 运输船起送量(单位:%) -> 1-100 |
| - pilerCount | Number | 328 | 1 | 输出货物集装数量 -> 0:使用科技上限 1-4:指定数量 |
| - miningSpeed | Number | 329 | 1 | 开采速度 |
| - droneAutoReplenish | Boolean | 330 | 1 | 是否自动补充运输机 |
| - shipAutoReplenish | Boolean | 331 | 1 | 是否自动补充运输船 |
| 字段 | 字段类型 | 偏移量(Int32) | 长度(Int32) | 备注 |
|---|---|---|---|---|
| _parameters | Object | 128 | ||
| - targetBeltId | Number | 0 | 1 | 绑定的传送带节点ID (实际id,不是蓝图index,疑似无效参数) |
| - offset | Number | 1 | 1 | ? |
| - targetCargoAmount | Number | 2 | 1 | 目标流量(单位:0.1个) |
| - periodTicksCount | Number | 3 | 1 | 监测周期(单位:秒) |
| - passOperator | Number | 4 | 1 | 监测条件 -> 0:等于 1:不等于 2:大于等于 3:大于 4:小于等于 5:小于 |
| - passColorId | Number | 5 | 1 | 满足条件颜色索引 -> 0 - 255 |
| - failColorId | Number | 6 | 1 | 不满足条件颜色索引 -> 0 - 255 |
| - tone | Number | 7 | 1 | 声音警报-音色 -> 20-24:警报 1-2:钢琴 3-4:贝斯 5-6:风琴 7-9:铺底 10:铜管乐 11:梦铃 12:玻璃 13:吉他 14:音乐盒 15:电子琴 16:小号 17:小提琴 18:低音贝斯 19:鼓 |
| - volume | Number | 8 | 1 | 声音警报-音量 -> 0 - 100 |
| - pitch | Number | 9 | 1 | 声音警报-音阶 -> 例:25: C2 26: C#2 27: D2 ... |
| - systemWarningMode | Number | 10 | 1 | 系统警报模式 -> 0:无 1:未满足条件 2:满足条件 3:有货物响 4:无货物响 5:未满足且有货物 6:未满足且无货物 |
| - repeat | Boolean | 11 | 1 | 声音警报-是否循环 |
| - alarmMode | Number | 12 | 1 | 声音警报模式 -> 0:无 1:未满足条件 2:满足条件 3:有货物响 4:无货物响 5:未满足且有货物 6:未满足且无货物 |
| - length | Number | 13 | 1 | 声音警报-时长(只有音色为警报时有该参数) -> 0.1 - 20 |
| - cargoFilter | Number | 14 | 1 | 货物过滤物品id -> 0:不过滤 物品id->过滤 |
| - systemWarningIconId | Number | 17 | 1 | 系统警报图标id |
| - falloffRadius | Array(2) | 声音警报-声音衰减范围 | ||
| - - _array_item_1 | Number | 18 | 1 | 开始衰减距离(单位:米) -> 默认为 (衰减为0距离 / 3)(0-133) |
| - - _array_item_2 | Number | 19 | 1 | 衰减为0距离(单位:米) -> 1-400 |
| - spawnItemOperator | Number | 20 | 1 | 生成/消耗货物模式 -> 0:不勾选 1:生成货物 2:消耗货物 |
| 字段 | 字段类型 | 偏移量(Int32) | 长度(Int32) | 备注 |
|---|---|---|---|---|
| _parameters | Object | 1 | ||
| - productId | Number | 0 | 1 | 模式 -> 0:直接发电 1208:光子生成 |
| 字段 | 字段类型 | 偏移量(Int32) | 长度(Int32) | 备注 |
|---|---|---|---|---|
| _parameters | Object | 1 | ||
| - mode | Number | 0 | 1 | 模式 -> -1:放电 0:待机 1:充电 |
| 字段 | 字段类型 | 偏移量(Int32) | 长度(Int32) | 备注 |
|---|---|---|---|---|
| _parameters | Object | 2 | ||
| - orbitId | Number | 0 | 1 | 送入轨道编号 -> 0:无 1-20:轨道列表编号 |
| - tenfoldSpeed | Boolean | 1 | 1 | 是否开启十倍射速 |
| 字段 | 字段类型 | 偏移量(Int32) | 长度(Int32) | 备注 |
|---|---|---|---|---|
| _parameters | Object | 1 | ||
| - tenfoldSpeed | Boolean | 0 | 1 | 是否开启十倍射速 |
| 字段 | 字段类型 | 偏移量(Int32) | 长度(Int32) | 备注 |
|---|---|---|---|---|
| _parameters | Object | 110 | ||
| - bans | Number | 0 | 1 | 限制不可自动放入的格子数 |
| - storageType | Number | 1 | 1 | 储物仓类型 -> 0:不过滤 9:存在过滤器 |
| - filters | Array(60) | 10 | _L = storageType == 0 ? 0 : 60 | 储物仓物品过滤器 storageType为0时忽略,不占偏移量 |
| - - _array_item | Number | 10 + i | 1 | 过滤物品id |
| - workEnergyPerTick | Number | _L + 10 | 1 | 最大充能功率(单位:MW) -> 30 - 300 |
| - autoPickEnabled | Boolean | _L + 11 | 1 | 是否自动拾取 |
| - autoReplenishFleet | Boolean | _L + 12 | 1 | 是否自动补充编队 |
| - moduleEnabled | Boolean | _L + 13 | 1 | 是否开启战斗无人机 |
| - autoReconstruct | Boolean | _L + 14 | 1 | 是否自动标记重建 |
| - droneEnabled | Boolean | _L + 15 | 1 | 是否开启建设无人机 |
| - dronesPriority | Number | _L + 16 | 1 | 建设无人机模式 -> 0:优先修理 1:均衡模式 2:优先建造 |
| - fighters | Array(12) | _L + 17 | 12 | 战斗无人机编队 |
| - - _array_item | Number | _L + 17 + i | 1 | 无人机物品id |
[^3001, 3002, 3003, 3004, 3005, 3006, 3010]: 高斯机枪塔, 高频激光塔, 聚爆加农炮, 磁化电浆炮, 导弹防御塔, 干扰塔, 近程电浆塔
| 字段 | 字段类型 | 偏移量(Int32) | 长度(Int32) | 备注 |
|---|---|---|---|---|
| _parameters | Object | 128 | ||
| - group | Number | 1 | 1 | 分组编号 -> 0:不分组 1-5:分组 |
| - vsSettings | Array(4) | 2 | 1 | 攻击设置优先级 |
| - - _array_item_1 | Number | 地面优先级 -> 0:关闭 1:低优先 2:均衡 3:高优先 |
||
| - - _array_item_2 | Number | 低空优先级 -> 0:关闭 1:低优先 2:均衡 3:高优先 |
||
| - - _array_item_3 | Number | 高空优先级 -> 0:关闭 1:低优先 2:均衡 3:高优先 |
||
| - - _array_item_4 | Number | 太空优先级 -> 0:关闭 1:低优先 2:均衡 3:高优先 |
||
| - phasePos | Number | 3 | 1 | 干扰塔相位偏移(单位:秒) -> 0-5 |
| 字段 | 字段类型 | 偏移量(Int32) | 长度(Int32) | 备注 |
|---|---|---|---|---|
| _parameters | Object | parameterLength | ||
| - _defaultParams | Int32Array(parameterLength) | 0 | parameterLength |
cnpm installnpm run servenpm run build
# 打包后可删除dist文件夹中的css及js文件夹(打包流冗余文件,所有代码已打包进html),仅保留index.html