Ice n Fire Breeding
Dragon Breeding Enhanced 为 Ice and Fire 龙加入基因繁育。用 15 种自定义颜色繁育龙,让它们遗传特征,并通过雌雄不同的纹理展现遗传多样性。还提供用于测试的 /instahatch 命令。测试版,效果可能有所不同。
截图
介绍
介绍由机器翻译自 CurseForge 原页面,仅供参考。
# Dragon Breeding Enhanced – 技术概要
## 概述
Dragon Breeding Enhanced 为 Minecraft 1.20.1 中的 Ice and Fire 龙提供了一套完整的遗传与繁育系统。
## 核心系统
### 1. 遗传系统 (`DragonGenetics.java`)
– **数据结构**:存储特征、颜色、世代、父母信息和自定义属性
– **序列化**:完整支持 NBT 持久化
– **属性计算**:根据遗传构成动态应用修正
### 2. 特征系统 (`DragonTrait.java`)
**5 个类别共 25 种特征:**
**体格**(5 种特征)
– 大型/小型体型、厚鳞片、锋利爪子、强化翅膀
– 遗传概率:10-15%
**元素**(5 种特征)
– 火焰/寒冰精通、雷电亲和、冰霜/炼狱光环
– 遗传概率:6-8%
**战斗**(5 种特征)
– 好斗、防御、迅捷打击、狂战士、坦克
– 遗传概率:8-12%
**魔法**(4 种特征)
– 法力祝福、法术抗性、奥术之力、再生
– 遗传概率:5-10%
**传奇**(5 种特征)
– 远古血脉、神圣鳞片、暗影行者、风暴之子、虚空触碰
– 遗传概率:1-2%
### 3. 颜色遗传 (`DragonColor.java`)
**15 种颜色变体,分为多个稀有度等级:**
| 稀有度 | 颜色 | 生成概率 | 属性倍率 |
|——–|——–|————–|—————–|
| 普通 | 标准 | 40% | 1.0x |
| 非凡 | 蓝宝石、翡翠、红宝石 | 各 15% | 1.1x |
| 稀有 | 紫水晶、黑曜石、银色、金色 | 各 8% | 1.25x |
| 史诗 | 欧泊、棱彩、星光 | 3-4% | 1.5x |
| 传奇 | 虚空、天界、极光、幻影、宇宙 | 0.5-1% | 2.0x |
### 4. 繁育机制 (`DragonGeneticsManager.java`)
#### 特征遗传算法
“`
对于每个亲代特征:
– 双亲都拥有该特征:基础遗传概率的 3 倍(最高 95%)
– 仅一方拥有该特征:基础遗传概率的 1.5 倍
– 应用配置倍率
– 通过随机判定决定是否遗传
“`
#### 颜色遗传
“`
如果双亲颜色相同:有 85% 的概率遗传该颜色
否则:从任一亲代颜色中随机选择,概率各为 50%
有 5% 的概率发生随机突变,产生新颜色
“`
#### 突变系统
– 可配置突变概率(默认 5%)
– 繁育时添加完全随机的特征
– 不受亲代遗传构成影响
#### 世代系统
– 世代数 = max(亲代 1 世代数,亲代 2 世代数)+ 1
– 每代提供可配置的属性加成(默认每代 2%)
– 世代数受可配置上限限制(默认 10 代)
### 5. 配置系统 (`BreedingConfig.java`)
**40 多项配置选项:**
**繁育**
– 特征遗传倍率(0.1-10.0,默认:1.0)
– 突变概率(0-100%,默认:5%)
– 每条龙的特征上限(1-20,默认:5)
– 繁育冷却时间(0-72000 刻,默认:12000)
**颜色遗传**
– 启用稀有颜色开关
– 稀有颜色概率倍率
– 启用传奇颜色开关
**特征**
– 启用传奇特征开关
– 传奇特征概率倍率
– 允许冲突特征开关
**属性**
– 生命值/伤害/护甲/速度的全局倍率
– 启用/禁用世代加成
– 每代加成数值
– 加成适用的最大世代数
**便利性功能**
– 在名称标签中显示遗传信息
– 显示详细提示
– 自动应用属性修正
### 6. 事件系统 (`DragonBreedingEventHandler.java`)
**处理的事件:**
1. `BabyEntitySpawnEvent`:触发遗传繁育计算
2. `LivingTickEvent`:应用遗传属性修正(每 100 刻)
**属性应用:**
– 直接修改实体属性
– 应用生命值、伤害、护甲和速度修正
– 计入世代加成
– 遵循全局配置倍率
## 数据流
### 繁育流程
“`
1. 触发 BabyEntitySpawnEvent
2. 从缓存/NBT 中获取双亲的遗传数据
3. 计算后代遗传数据:
a. 遗传颜色(有概率发生变异)
b. 遗传双亲的特征
c. 判定是否发生变异
d. 计算世代
e. 设置双亲 ID
4. 将遗传数据保存到后代的 NBT 中
5. 将遗传数据缓存到内存中
6. 若启用了自动应用,则应用属性修正
“`
### 遗传数据读取
“`
1. 检查内存缓存
2. 如果未缓存,则从实体 NBT 中加载
3. 如果没有 NBT 数据,则随机生成遗传数据
4. 缓存并返回遗传数据
“`
## 性能注意事项
### 优化
– **内存缓存**:减少 NBT 读取次数
– **定期更新**:每 5 秒更新一次属性,而非每刻更新
– **延迟加载**:仅在需要时生成遗传数据
– **高效存储**:采用紧凑的 NBT 序列化
### 内存占用
– 缓存以 UUID -> DragonGenetics 的映射形式存储数据
– 龙被移除时清除缓存
– 每条龙的额外开销极小(约 1–2 KB)
## 集成点
### Ice and Fire 兼容性
– 通过类名检测(`iceandfire` + `dragon`)
– 适用于实体事件(繁育、生成)
– 不依赖直接 API(松散耦合)
– 兼容 Ice and Fire 2.1.13 及更高版本
### Forge 集成
– 使用标准 Forge 事件系统
– 利用 Minecraft 属性系统
– 使用 ForgeConfigSpec 进行配置
– 使用 NBT 持久化数据
## 未来扩展方向
### 潜在功能
1. **GUI 系统**:用于查看和选择遗传特征的可视化界面
2. **繁育站**:用于控制繁育过程的自定义方块
3. **遗传手册**:游戏内说明书物品
4. **DNA 物品**:提取并储存遗传数据
5. **交易**:在玩家之间分享遗传数据
6. **遗传实验室**:用于研究和操控特征的设施
7. **高级属性**:更详细的属性追踪
8. **繁育日志**:记录所有繁育历史
9. **遗传命令**:用于操控遗传数据的管理员工具
10. **客户端同步**:使用网络数据包在客户端显示信息
### API 扩展方向
– 提供公共 API,供其他模组与遗传系统交互
– 提供遗传数据变更事件
– 为自定义特征提供钩子
– 支持注册自定义颜色
## 代码质量
### 设计模式
– **管理器模式**:DragonGeneticsManager 集中处理逻辑
– **枚举模式**:特征和颜色使用类型安全的枚举
– **数据类**:DragonGenetics 是纯数据结构
– **事件驱动**:通过 Forge 事件实现松散耦合
### 最佳实践
– 完善的错误处理
– 按适当级别记录日志
– 验证配置
– 支持 NBT 版本管理
– 清晰划分职责
## 测试建议
### 单元测试
– 特征遗传计算
– 颜色遗传算法
– 属性修正计算
– NBT 序列化/反序列化
### 集成测试
– 测试各种双亲组合下的繁育流程
– 影响行为的配置更改
– 多代繁育
– 边界情况(无性状、所有性状等)
### 性能测试
– 大量龙
– 缓存性能
– NBT 加载/保存性能
## 已知限制
1. **集成较松散**:通过检测类名而非直接调用 API
2. **无客户端同步**:目前遗传数据仅在服务端
3. **无视觉指示**:需要借助外部工具查看遗传信息
4. **网络功能占位**:NetworkHandler 尚未完全实现
5. **无 GUI**:仅能编辑配置文件
## 部署
### 构建流程
“`bash
gradlew.bat build
“`
输出:`build/libs/dragon-breeding-enhanced-1.0.0.jar`
### 安装
1. 需要 Forge 47.2.0 或更高版本
2. 需要 Ice and Fire 模组
3. 将 JAR 放入 mods 文件夹
4. 配置文件会在 config 文件夹中自动生成
### 配置
– 服务端配置:`config/dragonbreeding-server.toml`
– 首次运行时自动生成
– 支持热重载(大多数设置)
## 版本信息
– **Minecraft 版本**:1.20.1
– **Forge 版本**:47.2.0 或更高版本
– **Java 版本**:17
– **模组版本**:1.0.0
– **Ice and Fire**:2.1.13 或更高版本
## 文件结构
“`
dragon-breeding-enhanced/
├── src/main/
│ ├── java/com/dragonbreeding/
│ │ ├── DragonBreedingMod.java(257 行)
│ │ ├── config/
│ │ │ └── BreedingConfig.java(151 行)
│ │ ├── genetics/
│ │ │ ├── DragonTrait.java(82 行)
│ │ │ ├── DragonColor.java(79 行)
│ │ │ ├── DragonGenetics.java(231 行)
│ │ │ └── DragonGeneticsManager.java(280 行)
│ │ ├── event/
│ │ │ └── DragonBreedingEventHandler.java(152 行)
│ │ └── network/
│ │ └── NetworkHandler.java(22 行)
│ └── resources/META-INF/
│ └── mods.toml
├── build.gradle
├── settings.gradle
├── gradle.properties
├── README.md
└── MOD_SUMMARY.md
“`
**代码总行数**:约 1,254 行 Java 代码
**类总数**:8 个类
**枚举总数**:2 个枚举
## 总结
Dragon Breeding Enhanced 为 Ice and Fire 的龙提供了一个可靠、可配置且易于扩展的遗传系统。其架构清晰、易于维护,并为未来的增强做好了准备,同时通过全面的繁育机制、性状遗传和颜色遗传提供了即时价值。
常见问题
Ice n Fire Breeding 支持哪些 Minecraft 版本?
Ice n Fire Breeding 支持 Minecraft Java 版 1.20.1,可用的加载器:Forge。下载时注意选择和你游戏版本一致的文件。
Ice n Fire Breeding 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 Forge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。
PendragonSage 的其他作品
查看全部 →Colony Guards & Pets – Ice n Fire Optional
by PendragonSage
将 MineColonies 守卫与 Ice and Fire、Alex's Mobs 等模组中的可驯服生物整合起来。让宠物跟随守卫,设置警戒位置进行防守,组建强大的守卫与宠物战斗小队。支持龙、熊、狼等生物。
6.2万
1 年前
CurseForge
Transformers Machine->Robot->Vehicle
by PendragonSage
变形金刚模组:使用火种源将熔炉、铁砧、箱子等 Minecraft 方块变成活生生的机器人伙伴!每个变形金刚都保留方块原有功能,还能在机器人和载具形态之间切换,助你战斗、冒险。
1.5万
1 年前
CurseForge
Villager Workforce
by PendragonSage
一款将村民变成自动化工人的 Minecraft 模组。为他们分配工作(伐木工、矿工、农夫、守卫、冶炼工),配备工具和盔甲,他们就会收集资源并保卫你的基地。用手杖进行管理,用号角召回他们!
4,039
1 年前
CurseForge
Dragon Command Attack Staff
by PendragonSage
指挥驯服的 Ice and Fire 龙攻击指定区域。通过 GUI 设置坐标、攻击半径和实体筛选条件。龙会自动猎杀区域内的所有目标,直到清理完毕。
3,311
1 年前
CurseForge
评论
登录后评论和评分