# GenEntity **Repository Path**: night-tc/gen-entity ## Basic Information - **Project Name**: GenEntity - **Description**: gen-entity 是一个用于根据 JSONC 文件生成实体代码的工具。它支持生成 Go 语言的实体定义文件,方便开发者快速构建实体相关的代码 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-06-01 - **Last Updated**: 2025-12-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # gen-entity 工具 ## 简介 `gen-entity` 是一个用于根据 JSONC 文件生成实体代码的工具。它支持生成 Go 语言的实体定义文件,方便开发者快速构建实体相关的代码。 ## 功能 - 根据 JSONC 文件定义生成实体代码。 - 支持生成主类型、子类型和服务器类型的实体定义。 - 自动处理字段、子类型和服务器类型的初始化。 - 支持自定义包名和导入路径。 ## 使用方法 ### 1. 配置 JSONC 文件 在 `res/entity/` 目录下创建或编辑 JSONC 文件,定义实体的结构。例如: ```jsonc { "name": "Player", "desc": "玩家在各个服务器中的数据", "StartIndex": 1000, "golang": { "package": "entitydef", "import": { "linmath": "gitee.com/night-tc/gobige/linmath", "protomsg": "gitee.com/night-tc/gobige/msgdef/protomsg" } }, "FieldMap": { "Name": { "index": 1, "type": "string", "desc": "名字" }, "RoleModel": { "index": 2, "type": "string", "desc": "模型" }, "PlayerID": { "index": 3, "type": "uint64", "desc": "玩家ID" } }, "server": { "12": { "desc": "数据服务器", "fields": ["PlayerID", "RoleModel"] } } } ``` ### 2. 编译工具 使用以下命令编译工具: ```bash go build -o bin/gen-entity ./... ``` ### 3. 运行工具 运行生成工具: ```bash ./bin/gen-entity ``` 工具会根据 JSONC 文件生成对应的实体代码,并输出到 `server/entitydef/` 目录。 ### 4. 调试工具 使用 VSCode 的调试配置文件运行工具: - 打开 `.vscode/launch.json` 文件。 - 点击 `gen-entity` 配置进行调试。 ## 目录结构 ``` tools/ ├── gen-entity/ │ ├── gencode/ # 核心代码生成逻辑 │ ├── templates/ # 模板文件 │ ├── .vscode/ # VSCode 配置 │ ├── main.go # 主程序入口 │ ├── readme.md # 使用说明 ``` ## 注意事项 - 确保 JSONC 文件的格式正确,字段的 `index` 值不能重复。 - 如果没有找到 JSONC 文件,工具会自动生成一个示例文件。 - 生成的代码文件会覆盖同名文件,请注意备份。 ## 扩展 可以根据需要修改 `templates/entity.go` 文件中的模板内容,定制生成的代码格式。 ## 联系方式 如有问题,请联系开发者或提交 Issue。