自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 问答 (1)
  • 收藏
  • 关注

原创 我的世界模组开发进阶教程——特征(1)

类签名•功能:将特性(如树木、矿石)与其生成规则(如高度、密度)组合成预配置项•泛型参数•FC:特性配置类型,必须继承•F:特性类型,必须继承// 创建橡树配置5 // 最小高度// 注册配置化特性•联系:三者呈继承关系,扩展原版进一步细化参数。•区别:原版功能基础,BOP基类支持模组生态扩展,子类实现参数标准化。•BOP模组选择:根据树木复杂度选择基类或子类,**基础树木多用,特殊生态使用直接配置。

2025-04-02 00:49:35 13

原创 我的世界模组进阶开发教程——地形生成(2)

柏林噪声通过梯度插值与分形叠加,为《我的世界》提供了高效且自然的地形生成方案。从宏观的大陆分布到微观的岩石纹理,其算法逻辑贯穿游戏世界的每个细节,成为程序化内容生成的典范。// 第二层坐标缩放因子// 目标标准差•:对第二层噪声的输入坐标进行轻微拉伸,避免两层噪声模式重复•:标准化目标值,确保输出在[-1,1]范围| (混合高频/低频) | | (基础地形层) | | (生物群系细节) || | |v v v| 地形高度合成器 |<----| 洞穴生成器 |<----| 云层渲染器 |

2025-04-01 23:36:33 53

原创 我的世界进阶模组开发教程——地形生成(1)

•作用:预定义常用地形条件判断器•参数解析•offset:深度偏移量(如的0表示从地表开始计算)•:是否叠加地表深度(决定是否考虑动态地表厚度)•:检测位置类型(地面或天花板)是 Minecraft 地形生成的核心引擎,通过噪声分层、规则系统和生物群系扩展实现多样化的地表表现。其设计融合了动态计算(噪声驱动)、模块化规则()和性能优化(坐标绑定缓存),为开放世界游戏的地形生成提供了经典参考实现。

2025-04-01 20:45:00 55

原创 我的世界1.20.1forge模组开发进阶教程——TerraBlender

从模组开发者的视角来看,TerraBlender为Minecraft生物群系类模组的开发提供了全方位的技术支持,显著降低了开发门槛并提升了模组的质量与扩展性:对于生物群系模组开发者而言,使用TerraBlender可将开发周期缩短60%以上,同时获得更好的兼容性与扩展性。其标准化的集成方案使开发者能够专注于创意设计而非底层实现,尤其适合需要多平台发布或与其他生物群系模组联动的项目。这段代码定义了一个名为 的公共类,其主要功能是管理和操作不同类型的生物群系区域(),以下是对代码的详细解释::声明该类所

2025-04-01 15:06:34 143

原创 我的世界进阶模组开发教程——GlitchCore库(1)

名称开发者:由GlitchTech开发团队创建适用游戏版本:支持Minecraft 1.19.2及后续版本加载器支持:兼容Fabric、Forge、Quilt等多种模组加载器分类:库模组(Library Mod)标签:工具类、框架、跨平台支持@Override。

2025-04-01 11:49:03 22

原创 Java学习笔记——BiConsumer

命名规范:使用动词短语命名 BiConsumer 变量// Good// Avoid异常处理:建议封装受检异常try {组合策略:合理拆分复杂操作文档建议:为复杂 BiConsumer 添加注释/*** 处理用户订单的双参数消费者:* 参数1: 订单ID (String)* 参数2: 折扣率 (Double)* 执行逻辑: 1.校验参数 2.计算价格 3.写入数据库。

2025-04-01 08:00:00 995

原创 我的世界1.20.1进阶模组开发教程——升级模板与文字格式

深入的讲解了锻造模板的进阶知识

2025-03-31 23:56:27 225

原创 我的世界1.20.1forge模组进阶教程——注册和注册表(2)

与Registry共同构成Minecraft的双层级注册系统,前者是跨注册表的访问枢纽,后者是单个注册表的功能载体。在模组开发中,理解二者的协作关系,能更高效地实现元素注册、数据查询和跨模组兼容。是 Minecraft 1.20.1 后引入的现代化注册表管理工具,通过集中式配置、错误检测和生命周期管理,显著提升了模组开发的效率和可靠性。其设计充分体现了对大规模数据驱动的支持,是构建复杂模组生态的基石。•功能:通过为每个注册表创建全局唯一标识符,如BLOCK对应/block注册表路径•实现原理。

2025-03-31 18:26:55 40

原创 我的世界1.20.1forge进阶模组教程——注册和注册表

forge能注册哪些东西呢?带着问题找答案,翻开forge的源码net.minecraftforge.registries,从源码中寻找答案以下是针对提供的类代码的详细解析,结合Minecraft Forge注册机制和Java核心特性的实现:是Minecraft Forge中用于延迟加载注册表对象的核心工具类,实现了接口,确保在注册表未准备好时安全访问对象。二、核心方法解析1. 工厂方法提供多种创建实例的方式,适应不同注册场景:• 直接绑定注册表直接关联到已知的Forge注册表,当注册表更新时

2025-03-31 16:46:41 370

原创 python学习笔记(6)运算符

用于基础数学运算,共//**

2025-03-31 14:52:34 865

原创 python学习笔记(5)

命名元组是轻量级、不可变的数据容器,适合替代字典或简单类。其核心优势在于代码可读性和内存效率,但灵活性不足。在需要动态字段或复杂行为时,可考虑数据类或自定义类。通过结合类型注解和默认值,能进一步提升开发体验。命名元组通过语义化字段名和固定结构定义,将原本隐式的顺序依赖转化为显式的字段约束,解决了普通元组因索引访问导致的顺序易错性问题。这种设计在数据传递、函数返回值、代码维护等场景中显著提升了可靠性和可读性。

2025-03-31 13:03:30 783

原创 我的世界1.20.1forge进阶模组教程——结构变体的深入研究(1)

BlockPos是 Minecraft 中处理方块位置的核心工具类,提供坐标操作、旋转、迭代等丰富功能,与Rotation类协同实现方向变换。其不可变设计确保线程安全,而子类优化了频繁修改的场景。理解其实现机制对开发Mod、分析游戏逻辑或优化性能至关重要。

2025-03-31 11:49:37 244

原创 我的世界1.20.1forge进阶模组教程——生物群系与洞穴

•作用:通过createKey方法生成一个唯一标识符(ResourceKey),指向模组内部名为的洞穴雕刻器配置。•实现细节createKey方法使用模组ID()和名称构建资源路径,确保全局唯一性。这段代码是 BOP 模组扩展 Minecraft 洞穴生成的核心配置部分,通过参数化控制洞穴的生成规则和形态,同时利用原版注册表和标签系统实现高效集成。开发者可通过调整参数(如概率、高度范围)自定义洞穴生成逻辑。

2025-03-31 00:54:03 163

原创 我的世界1.20.1forge模组进阶教程——生物群系(3)

首先映入眼帘的是关于音乐的静态常量@Nullable1. 常量定义解析•类型与修饰符:所有常量均为类型,表示它们是全局唯一的、不可修改的 Music 实例。注解:仅可为null,其他常量通过初始化,保证非空。•初始化方式:通过中的事件(如)生成对应的Music对象,可能与音频资源绑定。2. 各常量的生物群系关联常量名对应的生物群系音乐资源说明默认/未指定生物群系无特定音乐(可能回退到默认逻辑)森林(Forest)轻松的自然主题音乐沼泽(Swamp)潮湿、神秘的氛围音乐。

2025-03-31 00:15:37 202

原创 我的世界1.20.1forge进阶模组开发教程——生物群系(2)

•@Mod 注解:表明这是 Forge 模组的入口类,MOD_ID是模组唯一标识符(此处为•DeferredRegister 实例:用于延迟注册游戏元素(避免过早初始化),覆盖了生物群系、方块、实体、流体等类型。//注册生物群系//注册方块每个注册器对应游戏内的一种资源类型,通过Registries类指定注册表。这段代码是典型的大型 Minecraft 模组的入口类,通过系统化的注册和生命周期管理,将新增的生物群系、方块、实体等内容整合到游戏中。

2025-03-30 22:15:10 127

原创 python学习笔记(4)

核心特性• 唯一性:键不可重复,后赋值覆盖前者• 动态性:支持增删改操作• 高效查询:基于哈希表实现,O(1)时间复杂度查找二、字典操作详解1. 创建方式方法示例说明字面量最常用方式构造函数关键字参数创建字典推导式高效生成方式fromkeys批量初始化默认值2. 元素访问3. 修改操作4. 删除操作三、进阶特性1. 字典视图• 动态特性:视图对象实时反映字典变化• 可迭代:支持遍历操作• 集合操作:支持交、并、差

2025-03-30 10:17:56 860

原创 python学习笔记(3)——元组

Python 元组特性Java 的近似实现不可变性使用或Record固定长度自定义类或第三方库的PairTriple支持异构元素泛型 +Object类型(需手动类型检查)轻量级语法需要显式定义类或依赖库。

2025-03-29 22:53:22 905

原创 我的世界1.20.1forge模组进阶教程——键盘事件(1)

•。

2025-03-28 15:51:29 52

原创 我的世界1.20.1进阶模组开发教程——序列化(4)

DoubleTag类型安全:通过继承NumericTag明确数值类型语义。性能优化:对象缓存、不可变设计、流式解析。扩展性:访问者模式支持多样化的数据处理场景。兼容性:与 Java 原生double类型和 IEEE 754 标准对齐。此代码在 Minecraft 的 NBT 系统中承担了高效存储和操作双精度浮点数的关键角色。NumericTag抽象与多态:通过抽象方法统一数值操作接口,支持多态处理。类型安全:强制子类处理类型转换的精度和范围问题。不可变性:确保线程安全和对象状态一致性。扩展性。

2025-03-28 15:10:42 27

原创 python学习笔记(2)

特性Python的for循环Java的for循环语法核心基于迭代器的隐式遍历传统循环依赖索引,增强循环依赖迭代器代码简洁性更简洁(无需索引)传统循环较冗长,增强循环类似Python功能扩展支持else子句、推导式无else,但允许复杂条件控制适用场景遍历未知长度的可迭代对象传统循环适合精确索引操作性能对大数据集略慢(解释型语言特性)传统循环在数组遍历中更快。

2025-03-28 13:13:40 804

原创 python学习笔记(1)

我相信如果我写一篇又臭又长的文章,那肯定是没人看,在这个快餐式的时代,没人能耐得住性子看完又臭又长的文章,所以就直接把我的代码放出来,然后解释代码,这样也能节省篇幅,还能达到相同的效果。

2025-03-28 11:03:48 629

原创 关于mc教程我想说两句

当前国内活跃的MC模组开发者可能不足百人,且集中在老牌模组维护领域。生态复苏需依赖Mojang更新策略调整、本土化开发工具链完善,以及社区内容消费习惯的重构。

2025-03-27 17:18:31 268

原创 我的世界1.20.1forge进阶教程——序列化(3)

继承自。

2025-03-27 12:12:49 460

原创 我的世界1.20.1进阶模组开发教程——序列化(2)

序列化源码解析

2025-03-27 09:41:35 252

原创 Java学习——default关键字和接口

/ 默认方法(有具体实现)// 静态方法(Java 8+)// 抽象方法(无实现)default关键字在接口中的应用是 Java 8 引入的里程碑式特性,它解决了接口演进时的兼容性问题,同时提升了代码复用能力。通过默认方法,开发者可以更灵活地设计接口,为复杂的多继承场景提供了优雅的解决方案。

2025-03-27 08:35:22 41

原创 java学习——函数式编程(1)

• Function:用于有返回值的数据转换(如map()操作)。• Consumer:用于无返回值的副作用操作(如forEach()操作)。• 两者共同支持链式调用,但Consumer仅能通过andThen()串联操作,而Function可以前后组合多个函数。• Function转换数据(输入 → 输出)。• Consumer消费数据(输入 → 无输出,侧重副作用)。条件判断(输入 → 布尔值)。

2025-03-26 23:22:59 208

原创 我的世界1.20.1forge模组开发进阶教程——序列化(1)

在《Minecraft》(MC)中,序列化指将游戏数据(如方块、实体、玩家状态等)转换为可存储或传输的格式。这是游戏运行、存档保存和网络通信的关键技术。以下是Minecraft中常见的序列化方式及其用途:• 特点:Minecraft专用的二进制序列化格式,高效压缩且支持嵌套结构。• 用途:◦ 存储物品、实体、方块的附加数据(如箱子内的物品、生物属性)。◦ 存档文件(如)和结构文件()的核心格式。• 示例:通过命令生成一个带NBT数据的钻石剑:• 特点:将地图划分为32x32区块的区域文件(),使

2025-03-26 23:00:43 611

原创 我的世界1.20.1forge模组进阶开发教程——结构(3)

关于结构这块,其实是属于进阶内容了,设置vip可看也是为了赚取收益,某些不法分子采用破解的方式观看vip文章,这属于侵犯知识产权了,做人要点脸,天下没有免费的午餐,设置vip可见你就老老实实的开vip看就完了,没钱你就别看。我甚至有个开课的打算,但是时间关系,弄不了,以后有机会会做成视频给大家讲解,当然是付费的,天下没有免费的午餐。这个类位于net.minecraft.world.level.levelgen.structure.pools包下,以下是对它的解释: 是 Minecraft 结构生成系统的核心

2025-03-26 22:04:01 181

原创 我的世界进阶教程——结构(2)

前面已经讨论过AMMobSpawnStructureModifier,还不够具体,需要研究一下接口:代码解释与功能分析代码概览这段代码是 Minecraft Forge 的结构生成修改系统 的核心接口,用于 动态调整结构生成规则。主要功能包括:• 方法:• : 核心逻辑,根据阶段修改结构参数• : 返回该修改器的序列化规则3. 序列化 Codec与自定义结构生成的协作流程#mermaid-svg-WKL3r71jWosqAy2I {font-family:"trebuchet ms",

2025-03-26 20:34:04 558

原创 我的世界模组开发进阶教程——结构(1)

Minecraft的结构生成是生物群系、种子算法与随机性的综合结果。

2025-03-25 12:09:42 1019

原创 我的世界模组开发进阶教程——生物群系

找到mc的生物群系有关的类,我们发现biome可以是Codec类型的泛型,也可以是Holder类型的泛型,那么生物群系到底是怎么注册的?又是怎么生成的?生物群系的生物生成规则又是写在哪里?在Minecraft中,类是生物群系的核心实现,负责管理气候、地形生成、生物生成规则及视觉效果。以下是对该类的详细解析:• Codec定义:• :完整序列化生物群系的所有属性(气候、特效、地形、生物生成)。• :简化版,仅序列化气候和特效,减少网络传输数据量。• 和 :用于注册表项的序列化,支持动态加载数据包。2

2025-03-25 10:21:05 966

原创 我的世界1.20.1forge模组进阶开发教程——Alex‘s mob的深入研究

这段代码通过Pair键值对生物与生成规则的解耦:修改生成条件无需改动生物类代码。配置的集中管理:所有生成规则一目了然。预设复用:通过优化配置效率。开发者可通过以下方式扩展:• 在中添加新的预设规则• 新建Pair字段来添加新生物• 修改现有Pair的右值以调整生成条件这段代码是Alex’s Mobs 模组中世界生成特性的注册入口,核心功能包括:• 通过 Forge 的安全注册特性• 定义切叶蚁丘特性的工厂方法• 为后续的生物群系分配和生成逻辑提供基础设施。

2025-03-24 22:29:22 747

原创 我的世界1.20.1forge模组进阶开发——生物生成2

怎么才能在特定的生物群系或结构生成生物?我们来研究一下alexmob,看看它是怎么写的。先研究源码以便更好的开发模组这段代码是 Minecraft 模组 Alex’s Mobs 的核心部分,负责控制游戏中生物(Mob)的生成规则和结构(如蚁丘)的生成逻辑。下面是对代码功能的逐层解释:该类的主要功能是:• 修改结构的刷怪规则:根据配置向特定结构(如末地城、沉船)中添加自定义生物。• 配置生物群系的刷怪规则:根据生物群系配置文件和权重,在不同生物群系中生成不同种类的生物。• 特殊地形生成:管理类似蚁丘的

2025-03-24 16:11:39 1193

原创 我的世界1.20.1forge模组进阶开发教程——生物生成(1)

Alex’s Mobs(AlexsMobs)开发者视角解析Alex’s Mobs 是一个由开发者AlexModGuy创建的 Minecraft 模组(Mod),专注于为游戏添加多样化的生物(Mobs),通过独特的模型、行为机制和生态交互提升游戏体验。1. 核心功能与技术实现•生物设计与行为逻辑模组中的每个生物均基于 Minecraft Forge/Fabric API 开发,通过自定义的实体类(如)实现独特行为。

2025-03-16 19:02:21 964

原创 我的世界1.20.1forge开发进阶教程——生物AI(1)

实现生物躲避阳光的具体行为逻辑。:通过优先级和标志冲突机制,协调多个类似的目标,确保生物 AI 行为合理有序。这种设计使得 Minecraft 的生物 AI 系统既灵活又可扩展,开发者可通过组合不同的Goal实现复杂行为逻辑。// 继承Goal基类,实现生物AI目标 // 常量定义(单位:方块) public static final int HORIZONTAL_SCAN_RANGE = 8;

2025-03-15 21:51:19 496

原创 java学习——Fastutil之Object2ObjectOpenHashMap

两者核心差异源于哈希冲突处理机制HashMap通过链地址法提供更稳定的高冲突处理能力,而通过开放寻址法优化内存和低冲突场景性能。开发者需根据数据特征(如冲突概率、内存限制)和操作类型(查询/更新频率)选择合适实现。

2025-03-15 12:52:18 840

原创 我的世界1.20.1forge模组开发进阶教程——Geckolib动画实体(3)

注意:本章涉及大量的geckolib底层代码,补充讲解了上一节没讲的,如果看不懂请去学习Java这段代码是 GeckoLib 库中用于处理实体动画的核心接口 ,它为 Minecraft 实体(如生物、玩家等)提供了动画控制、数据同步和网络通信的能力。以下是对代码的逐层解析及其在 GeckoLib 中的作用分析:• 作用通过 从实体中获取特定类型的动画数据。• 实现逻辑• 通过 获取实体动画缓存。• 使用 获取实体唯一ID,定位动画管理器。• 调用管理器中的 获取数据。• 用途用于客户

2025-03-15 00:03:00 1053

原创 我的世界进阶模组开发(11)——动画实体(2)

Blender 与 Blockbench 对比及学习指南一、Blender 是什么?Blender 是一款开源免费的全流程 3D 创作软件,支持建模、雕刻、动画、渲染、物理模拟、视频剪辑等全流程功能。其核心优势在于跨平台兼容性(Windows/macOS/Linux)和轻量化设计(安装包仅 200MB 左右)。广泛应用于影视特效、游戏开发、工业设计等领域,例如《蜘蛛侠:平行宇宙》中的部分镜头即由 Blender 制作。二、Blender 与 Blockbench 的优缺点对比对比维度Blender。

2025-03-11 17:11:15 864

原创 我的世界模组进阶开发教程(10)——Geckolib动画实体(1)

GeckoLib是Minecraft Java版的一个开源动画引擎库,由ThanosGecko团队开发,主要用于模组开发中的实体、物品和方块动画制作。它支持基于3D关键帧的复杂动画设计,允许开发者通过Blockbench导出基岩版动画并直接应用到Java版实体中,同时提供声音、粒子关键帧、自定义事件等功能。• 简化动画流程:通过Blockbench导出动画文件(.geo.json和.animation.json),开发者无需手动编写逐帧动画代码。• 跨平台兼容性:支持Forge、Fabric、NeoFor

2025-03-09 22:24:15 851

原创 我的世界forge模组开发(9)——自定义投掷物实体

1. 基础物理属性控制继承`ThrowableItemProjectile`并重写以下方法:// 构造函数省略...@Override// 重力加速度(默认雪球为0.03F)@Override// 空气阻力(值越小阻力越大,默认0.99)@Override// 自定义运动逻辑(如抛物线轨迹)if (!2. 投掷初速度与方向@Overrideif (!player,player.getXRot(), // 俯仰角player.getYRot(), // 偏航角。

2025-03-08 16:10:25 941

我的世界1.20.1模组开发教程(3)-事件监听器,注册命令,存储数据

教程模组

2025-02-17

我的世界1.20.1forge示例模组

我的世界1.20.1forge示例模组

2025-02-06

我的世界1.18人工智能插件

适用版本1.18,功能:屏蔽自定义脏话,脏话字符串和脏话字符写在config.yml里,当玩家发出屏蔽字符或屏蔽字符串时将会自动屏蔽。版本是1.0,目前只有一个特殊道具,你们的付费是对我的最大支持,需要yum插件作为前置插件,没有的去下载

2022-08-30

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除