This commit is contained in:
2025-06-16 07:59:50 +08:00
commit 7a6cd423fc
54 changed files with 4068 additions and 0 deletions

112
PROJECT_STRUCTURE.md Normal file
View File

@ -0,0 +1,112 @@
# 项目结构说明
## 📁 项目根目录结构
```
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` 文件。