112 lines
3.7 KiB
Markdown
112 lines
3.7 KiB
Markdown
# 项目结构说明
|
||
|
||
## 📁 项目根目录结构
|
||
|
||
```
|
||
test/
|
||
├── 📁 scripts/ # 脚本文件(按功能分类)
|
||
│ ├── 📁 core/ # 核心系统脚本
|
||
│ ├── 📁 data/ # 数据管理脚本
|
||
│ ├── 📁 inventory/ # 库存系统脚本
|
||
│ ├── 📁 production/ # 生产系统脚本
|
||
│ └── 📁 ui/ # 用户界面脚本
|
||
├── 📁 scenes/ # 场景文件
|
||
├── 📁 data/ # 数据文件
|
||
│ ├── 📁 config/ # 配置文件
|
||
│ ├── 📁 translations/ # 本地化文件
|
||
│ └── 📁 imports/ # 导入配置文件
|
||
├── 📁 assets/ # 资源文件
|
||
└── 📄 project.godot # 项目配置文件
|
||
```
|
||
|
||
## 📂 详细文件分类
|
||
|
||
### 🔧 scripts/ - 脚本文件
|
||
|
||
#### 📁 core/ - 核心系统
|
||
- `GameScene.cs` - 主游戏场景控制器
|
||
|
||
#### 📁 data/ - 数据管理
|
||
- `GameData.cs` - 游戏数据管理器
|
||
- `ResourceCategoryManager.cs` - 资源分类管理器
|
||
|
||
#### 📁 inventory/ - 库存系统
|
||
- `InventoryManager.cs` - 库存管理器(单例)
|
||
- `InventoryTableManager.cs` - 库存表格UI管理器
|
||
- `InventoryCategoryManager.cs` - 库存分类管理器
|
||
|
||
#### 📁 production/ - 生产系统
|
||
- `ManualCollectionPanel.cs` - 手动采集面板
|
||
- `ResourceGrid.cs` - 资源网格组件
|
||
|
||
#### 📁 ui/ - 用户界面
|
||
- `DynamicTabManager.cs` - 动态标签页管理器(管理"合成"和"生产线"标签)
|
||
- `MainMenu.cs` - 主菜单控制器
|
||
|
||
### 📁 scenes/ - 场景文件
|
||
- `game_scene.tscn` - 主游戏场景
|
||
- `ItemPanel.tscn` - 物品面板模板
|
||
- `InventoryItem.tscn` - 库存物品模板
|
||
|
||
### 📁 data/ - 数据文件
|
||
|
||
#### 📁 config/ - 配置文件
|
||
- `items.csv` - 物品数据配置
|
||
- `resource_categories.json` - 资源分类配置
|
||
- `inventory_categories.json` - 库存分类配置
|
||
|
||
#### 📁 translations/ - 本地化文件
|
||
- `items.*.translation` - 物品数据本地化文件(Godot自动生成)
|
||
|
||
#### 📁 imports/ - 导入配置
|
||
- `*.import` - Godot资源导入配置文件
|
||
|
||
### 📁 assets/ - 资源文件
|
||
- 图片、音频、字体等游戏资源
|
||
|
||
## 🎮 游戏标签页结构
|
||
|
||
### 📋 合成标签
|
||
包含以下分类:
|
||
- **手动采集** - 可手动采集的基础资源
|
||
- **基础资源** - 原始材料
|
||
- **液体资源** - 液体类资源
|
||
- **冶炼成品** - 冶炼后的材料
|
||
- **建筑设施** - 基础建筑和设备
|
||
|
||
### 🏭 生产线标签
|
||
包含以下分类:
|
||
- **生产设备** - 高级生产设备(组装机、化工厂等)
|
||
|
||
## 🎯 设计原则
|
||
|
||
1. **功能分离**: 按照功能模块分类存放脚本
|
||
2. **数据分离**: 配置文件与自动生成文件分开存放
|
||
3. **清晰结构**: 每个文件夹都有明确的职责
|
||
4. **易于维护**: 相关功能的文件集中管理
|
||
|
||
## 📋 自动加载顺序
|
||
|
||
项目中的自动加载脚本按以下顺序加载:
|
||
1. `GameData` - 游戏基础数据
|
||
2. `ResourceCategoryManager` - 资源分类管理
|
||
3. `InventoryManager` - 库存管理
|
||
4. `InventoryCategoryManager` - 库存分类管理
|
||
|
||
## 🔄 依赖关系
|
||
|
||
- UI层依赖于数据层和库存层
|
||
- 生产系统依赖于库存系统
|
||
- 所有系统都依赖于核心数据管理器
|
||
|
||
## ⚠️ 重要维护说明
|
||
|
||
### 防止 Translation 文件自动生成
|
||
|
||
Godot 会自动将 CSV 文件识别为本地化资源并生成 `.translation` 文件。为了保持 `data/config/` 文件夹的整洁:
|
||
|
||
1. **CSV 导入设置**:确保 `data/config/items.csv.import` 使用 `importer="keep"`
|
||
2. **文件夹隔离**:使用 `.gdignore` 文件让 Godot 忽略 `translations/` 和 `imports/` 文件夹
|
||
3. **定期清理**:如果发现 config 文件夹中出现新的 `.translation` 文件,及时删除
|
||
|
||
详细说明请参考 `data/README.md` 文件。 |