跳到正文

Ice n Fire Breeding

作者:PendragonSage

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 的其他作品

查看全部 →