refactor:重构项目架构为分层结构

## 🏗️ 主要变更

### 目录结构重构
- 将 core/ 迁移到 _Core/(框架层)
- 将 scenes/ 重构为 Scenes/(玩法层)和 UI/(界面层)
- 将 data/ 迁移到 Config/(配置层)
- 添加 Assets/ 资源层和 Utils/ 工具层
- 将 scripts/ 迁移到 tools/(开发工具)

### 架构分层
- **_Core/**: 框架层 - 全局单例和管理器
- **Scenes/**: 玩法层 - 游戏场景和实体
- **UI/**: 界面层 - HUD、窗口、对话系统
- **Assets/**: 资源层 - 精灵图、音频、字体
- **Config/**: 配置层 - 游戏配置和本地化
- **Utils/**: 工具层 - 通用辅助脚本

### 文件更新
- 更新 project.godot 中的所有路径引用
- 更新自动加载脚本路径
- 更新测试文件的引用路径
- 添加 REFACTORING.md 详细说明
- 添加 MIGRATION_COMPLETE.md 迁移完成标记
- 更新 README.md 反映新架构

### 设计原则
-  清晰的分层(框架/玩法/界面)
-  场景内聚(脚本紧邻场景文件)
-  组件化设计(可复用组件)
-  职责单一(每个目录职责明确)

## 📋 详细信息
查看 REFACTORING.md 了解完整的重构说明和迁移映射表

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
王浩
2025-12-31 11:36:01 +08:00
parent b1f3c0feff
commit 0b533189ec
93 changed files with 1466 additions and 470 deletions

188
tools/serve_web.sh Normal file
View File

@@ -0,0 +1,188 @@
#!/bin/bash
# 鲸鱼镇 本地Web服务器 (Linux/macOS)
# 版本: 1.0.0
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# 配置变量
BUILD_DIR="build/web"
PORT=8000
FALLBACK_PORT=8080
echo "========================================"
echo " 鲸鱼镇 本地Web服务器 v1.0"
echo "========================================"
echo
# 检查导出文件
echo -e "${BLUE}[检查]${NC} 验证Web导出文件..."
if [ ! -f "$BUILD_DIR/index.html" ]; then
echo -e "${RED}[错误]${NC} 未找到Web导出文件"
echo
echo "请先运行以下命令导出项目:"
echo " ./scripts/build_web.sh"
echo
echo "或在Godot编辑器中导出Web版本到: $BUILD_DIR/"
echo
exit 1
fi
# 检查必要文件
echo -e "${BLUE}[验证]${NC} 检查必要文件..."
REQUIRED_FILES="index.html index.js index.wasm index.pck"
MISSING_FILES=""
for file in $REQUIRED_FILES; do
if [ ! -f "$BUILD_DIR/$file" ]; then
MISSING_FILES="$MISSING_FILES $file"
fi
done
if [ -n "$MISSING_FILES" ]; then
echo -e "${RED}[错误]${NC} 缺少必要文件:$MISSING_FILES"
echo "请重新导出项目"
echo
exit 1
fi
# 检查Python
echo -e "${BLUE}[检查]${NC} 验证Python环境..."
if ! command -v python3 &> /dev/null && ! command -v python &> /dev/null; then
echo -e "${RED}[错误]${NC} 未找到Python"
echo
echo "请安装Python 3.x:"
echo " macOS: brew install python"
echo " Ubuntu: sudo apt install python3"
echo " 或访问: https://python.org/downloads"
echo
exit 1
fi
# 确定Python命令
PYTHON_CMD="python3"
if ! command -v python3 &> /dev/null; then
PYTHON_CMD="python"
fi
# 获取Python版本
PYTHON_VERSION=$($PYTHON_CMD --version 2>&1 | cut -d' ' -f2)
echo -e "${GREEN}[信息]${NC} Python版本: $PYTHON_VERSION"
# 显示文件信息
echo
echo -e "${GREEN}[信息]${NC} Web文件统计:"
TOTAL_SIZE=$(du -sb "$BUILD_DIR" | cut -f1)
TOTAL_MB=$((TOTAL_SIZE / 1024 / 1024))
for file in "$BUILD_DIR"/*; do
if [ -f "$file" ]; then
filename=$(basename "$file")
size=$(stat -f%z "$file" 2>/dev/null || stat -c%s "$file" 2>/dev/null)
size_mb=$((size / 1024 / 1024))
if [ $size_mb -gt 0 ]; then
echo " $filename: ${size_mb} MB"
else
size_kb=$((size / 1024))
echo " $filename: ${size_kb} KB"
fi
fi
done
echo " 总大小: ${TOTAL_MB} MB"
# 检查端口占用
echo
echo -e "${BLUE}[网络]${NC} 检查端口占用..."
if lsof -Pi :$PORT -sTCP:LISTEN -t >/dev/null 2>&1; then
echo -e "${YELLOW}[警告]${NC} 端口 $PORT 已被占用,尝试使用 $FALLBACK_PORT"
PORT=$FALLBACK_PORT
if lsof -Pi :$PORT -sTCP:LISTEN -t >/dev/null 2>&1; then
echo -e "${RED}[错误]${NC} 端口 $PORT 也被占用!"
echo "请手动指定端口: $PYTHON_CMD -m http.server [端口号]"
echo
exit 1
fi
fi
# 获取本机IP地址
LOCAL_IP=$(ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1' | head -1)
if [ -z "$LOCAL_IP" ]; then
LOCAL_IP=$(hostname -I | cut -d' ' -f1 2>/dev/null)
fi
if [ -z "$LOCAL_IP" ]; then
LOCAL_IP="localhost"
fi
# 显示启动信息
echo
echo -e "${GREEN}[启动]${NC} 启动HTTP服务器..."
echo " 端口: $PORT"
echo " 目录: $BUILD_DIR"
echo " Python: $PYTHON_VERSION"
echo
echo "========================================"
echo -e "${GREEN} 访问地址${NC}"
echo "========================================"
echo " 本地访问: http://localhost:$PORT"
echo " 局域网访问: http://$LOCAL_IP:$PORT"
echo
echo -e "${YELLOW}[控制]${NC} 服务器控制:"
echo " 停止服务器: Ctrl+C"
echo " 重启服务器: 关闭后重新运行脚本"
echo
echo -e "${BLUE}[调试]${NC} 调试工具:"
echo " 开发者工具: F12"
echo " 控制台日志: 查看浏览器Console"
echo " 网络请求: 查看Network标签"
echo
echo "========================================"
# 尝试自动打开浏览器
echo -e "${BLUE}[浏览器]${NC} 尝试打开默认浏览器..."
if command -v open &> /dev/null; then
# macOS
open "http://localhost:$PORT" 2>/dev/null
elif command -v xdg-open &> /dev/null; then
# Linux
xdg-open "http://localhost:$PORT" 2>/dev/null
else
echo -e "${YELLOW}[提示]${NC} 无法自动打开浏览器,请手动访问上述地址"
fi
echo
echo -e "${GREEN}[就绪]${NC} 服务器启动中..."
echo
# 切换到构建目录并启动服务器
cd "$BUILD_DIR"
# 创建简单的服务器日志
echo "[$(date)] 服务器启动 - 端口:$PORT" >> server.log
# 设置信号处理
trap 'echo -e "\n${YELLOW}[停止]${NC} 服务器已停止"; echo "[$(date)] 服务器停止" >> server.log; exit 0' INT
# 启动Python HTTP服务器
$PYTHON_CMD -m http.server $PORT
# 服务器停止后的清理
echo
echo -e "${YELLOW}[停止]${NC} 服务器已停止"
echo "[$(date)] 服务器停止" >> server.log
# 返回原目录
cd ../..
echo
echo -e "${GREEN}[完成]${NC} 感谢使用鲸鱼镇Web服务器"
echo