Files
satisfactory-BlueprintsEdit/README.md
2025-10-18 01:21:50 +08:00

124 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 幸福工厂蓝图编辑器 - 项目文档
## 项目概述
这是一个用于解析和编辑《幸福工厂》(Satisfactory)游戏蓝图(.sbp文件)的Web工具。用户可以上传蓝图文件查看和修改其中的材料信息然后下载修改后的蓝图文件。
## 文件结构解析
### 1. 文件头部 (32字节/64位十六进制)
结构如下:
```
[4位] version - 版本号
[4位] header_size - 头部大小(目前总是错误的)
[4位] timestamp - 时间戳
[4位] unknown1 - 未知字段1
[4位] unknown2 - 未知字段2
[4位] unknown3 - 未知字段3
[4位] material_count - 材料数量
[4位] reserved - 保留字段
```
### 2. 材料部分
每个材料的结构:
```
[4位] 路径长度(包括null结束符)
[变长] 材料路径(以00结束)
[4位] 数量
[4位] 参数(只有最后一个材料有值)
```
材料部分以`00000000`结束
### 3. 建筑部分
每个建筑的结构:
```
[4位] 路径长度(包括null结束符)
[变长] 建筑路径(以00结束)
[4位] 参数(只有最后一个建筑有值)
```
建筑部分以`22222222`结束
### 4. 压缩数据部分
Zlib压缩的数据工具不做解析
## 功能说明
### 主要功能
1. **文件上传**:支持.sbp蓝图文件上传
2. **头部信息展示**:显示蓝图文件的头部信息
3. **材料编辑**
- 查看所有材料及其属性
- 修改材料路径和数量
- 添加/删除材料
4. **建筑信息展示**:显示建筑信息(只读)
5. **数据下载**:将修改后的数据保存为.sbp文件
### 特殊处理
1. 材料部分的最后一个条目必须有参数值
2. 建筑部分的最后一个条目必须有参数值
3. 自动更新材料数量计数
## 使用说明
1. 点击"选择文件"按钮上传.sbp蓝图文件
2. 在"材料资产"部分可以:
- 修改材料路径(需使用正确的游戏资源路径)
- 修改材料数量
- 添加新材料(点击"添加材料"按钮)
- 删除材料(点击材料条目右侧的删除按钮)
3. 修改完成后点击"下载蓝图"按钮保存文件
## 注意事项
1. 材料路径需要正确的游戏资源路径格式,可以参考其他蓝图文件中的路径
2. 最后一个材料的参数值必须保留,不能删除
3. 建筑信息目前是只读的,不能修改
4. 压缩数据部分目前不做解析,下载时会原样保存
## 技术实现
- 前端框架Vue.js
- UI组件库DaisyUI
- 文件处理使用JavaScript的FileReader和ArrayBuffer处理二进制数据
- HEX转换自定义方法实现字符串与十六进制的相互转换
## 项目结构
```
├── index.html
├── src/
│ ├── App.vue # 主组件
│ ├── main.js # 入口文件
│ └── assets/ # 静态资源
└── README.md # 项目说明
```
## 开发说明
1. 克隆仓库:
```
git clone https://git.liulikeji.cn/xingluo/satisfactory-BlueprintsEdit.git
```
2. 安装依赖:
```
npm install
```
3. 运行开发服务器:
```
npm run dev
```
4. 构建生产版本:
```
npm run build
```
## 未来计划
1. 添加建筑配方或超频编辑功能
2. 支持压缩数据的解析和修改
3. 添加材料图标
## 贡献指南
欢迎提交Pull Request或Issue报告问题。对于新功能建议请先创建Issue讨论。