Init
This commit is contained in:
112
PROJECT_STRUCTURE.md
Normal file
112
PROJECT_STRUCTURE.md
Normal 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` 文件。
|
||||
Reference in New Issue
Block a user