原 Simon 工程增量更新 · 2026-10-04

目标：simon-minecraft-template-1.20，Minecraft 1.20，JDK 21。
关闭游戏并备份原 src 后，将 src 下文件按原路径合并。
两个入口文件包含原工程已有注册；如果入口已被你修改，请按网站教程只加入女巫注册，不要直接覆盖。
update-manifest.json 记录原入口与新文件 SHA-256，方便核对。
此包不包含原工程其他方块/物品的源文件，它们继续留在你的工程中。

重新运行 .\gradlew.bat build，然后 .\gradlew.bat runClient。
预编译的完整原工程 JAR 放在 compiled/；安装游戏时只使用一个 simon-minecraft 版本。
扫帚女巫 · Fabric 1.20 守护伙伴
版本：2026-10-04

一、先玩成功
1. 解压整个学习工程到一个新文件夹，用 IntelliJ IDEA 打开能看到 build.gradle 的根目录。
2. Project SDK 与 Gradle JVM 都选择 JDK 21，首次同步需要联网。
3. 在工程根目录运行 .\gradlew.bat build，看到 BUILD SUCCESSFUL。
4. 运行 .\gradlew.bat runClient，新建创造模式、普通难度、允许作弊的测试世界。
5. 进入世界约一秒，女巫自动出现。右键她切换自动 / 步行 / 扫帚飞行。

二、伙伴命令（控制自己的伙伴，不需要管理员权限）
/witch help            查看帮助
/witch mode auto       约每 20 秒轮换步行与飞行
/witch mode walk       地面跟随
/witch mode fly        骑扫帚环绕飞行
/witch recall          尝试安全召回
/witch remove          关闭伙伴，关闭状态随世界保存
/witch summon          重新开启伙伴

三、夜战测试（需要测试世界开启作弊）
/difficulty normal
/time set day
/summon minecraft:zombie ~4 ~ ~ {NoAI:1b,ArmorItems:[{},{},{},{id:"minecraft:netherite_helmet",Count:1b}]}
等待五秒：女巫白天不主动攻击。
/time set night
夜晚：玩家周围 16 格内寻找僵尸；女巫 12 格内且视线畅通才施法。
每 20 个游戏刻最多一次，造成 6 点魔法伤害。友好动物不是攻击目标。
/summon minecraft:pig ~2 ~ ~
/time set day

四、学习路线
01 运行成功：看见自己的伙伴，再切换模式。
02 游戏设计：写清楚陪伴、攻击、召回的先后顺序。
03 模型：找到 mesh.json 和 texture_0.png 到 texture_5.png。
04 工程：Java 包 com.malaoshi.simon.witch，资源 assets/simon-minecraft。
05 注册：实体类型、基础属性、客户端渲染三个环节。
06 步行：通过 UUID 找主人，调用 navigation.startMovingTo。
07 飞行：关闭重力，sin/cos 计算环绕位置，lerp 平滑速度。
08 攻击：夜晚 + 僵尸家族 + 范围 + 视线 + 冷却，同时满足才施法。
09 保存：NBT 保存实体主人与模式，PersistentState 保存每个玩家的伙伴记录。
10 验收：走路、飞行、昼夜攻击、友好动物、召回、存档和跨维度。
11 实验：一次只改 MAGIC_DAMAGE、ATTACK_INTERVAL 或 GUARD_RADIUS 中的一个值。

五、构建与安装
Minecraft Java：1.20（不是基岩版）
JDK：21；Fabric Loader：0.16.14；Fabric API：0.83.0+1.20
构建命令：.\gradlew.bat build
普通 JAR 在 build/libs；不要安装 -sources.jar。
游戏 mods 文件夹还需要对应的 Fabric API JAR。
MOD ID 为 simon-minecraft，同一游戏只放一个这个 ID 的版本。
本学习工程用于新建测试世界；已有 Simon 工程请使用增量更新包保留原有功能。

六、资源与代码
模型来自本网站已有女巫工程。原 .bbmodel 保存在 model-source/，游戏使用转换后的网格。
模型保留 64 个方块、384 个贴图面、6 张纹理；行走和骑扫帚姿势由 Java 渲染器控制。
完整图文教程在网站 Minecraft → 可选的独立项目 → 扫帚女巫。

本次源文件清单：
src/main/java/com/malaoshi/simon/SimonMinecraft.java
src/main/java/com/malaoshi/simon/SimonMinecraftClient.java
src/main/java/com/malaoshi/simon/witch/WitchCompanionEntity.java
src/main/java/com/malaoshi/simon/witch/WitchCompanionState.java
src/main/java/com/malaoshi/simon/witch/WitchCompanions.java
src/main/java/com/malaoshi/simon/witch/WitchContent.java
src/main/java/com/malaoshi/simon/witch/client/WitchCompanionRenderer.java
src/main/resources/assets/simon-minecraft/textures/entity/witch/texture_0.png
src/main/resources/assets/simon-minecraft/textures/entity/witch/texture_1.png
src/main/resources/assets/simon-minecraft/textures/entity/witch/texture_2.png
src/main/resources/assets/simon-minecraft/textures/entity/witch/texture_3.png
src/main/resources/assets/simon-minecraft/textures/entity/witch/texture_4.png
src/main/resources/assets/simon-minecraft/textures/entity/witch/texture_5.png
src/main/resources/assets/simon-minecraft/witch/mesh.json