Dynamic Surroundings NeoForge 0.4.7
on 2026 Oct 21AI Disclosure
- Used to extend the storm simulation system for rendering and handling
- Assisted in the creation of the ground fog feature
- Helped with integrating Simple Voice Chat
- Used to extend steam and flame jet effects, adding additional particles, shader, and lighting where appropriate
- Rebuilt the clock overlay to use an old pocket watch texture with embedded indicators for diurnal cycle, seasons or moon phase (depending on if Serene Seasons is installed)
- Added the option to show the compass and pocket watch in a side or corner of the screen
- Integrated older compass rose textures as possible selections for the compass, and cleaning up the textures
- Ported the light level HUD from older versions as a light level overlay, drawn from a texture for speed
- Identified root causes of several issues and help with the fix
What's New
- Simulated wind affects movement and behavior of Dynamic Surroundings particles
- Includes mist, steam, flame jets, breath, and precipitation (see below)
- Also includes a select group of particles such as Minecraft's smoke, ash, and falling leaves
- Windy biome sound effects have volumes dynamically adjusted based on wind speed
- Becomes louder or quieter as time progresses
- Enhanced when it is storming
- Client side storm simulation, based on older Dynamic Surroundings versions
- Only works in dimensions where there are no modded hooks for weather rendering
- Random seeds tied to the Minecraft day so all players using Dynamic Surroundings will experience the same effects
- When precipitation starts, the storm simulator generates a strength value independent of Minecraft's rain strength
- During a storm the strength surges and eases off below its peak, changing every half minute or so; how far it can ease is the Storm variation option in Weather Options
- The precipitation effects are "particle" like rather than rendered texture sheets, though they are not true Minecraft particles
- Rain drops with a slight slant, and will change direction based on wind
- Rain tint option in Weather Options sets how blue the rain is, from a nearly colorless gray to a deep blue
- Snow drops more slowly, and the impact of wind is more visible
- Textures are sampled from Minecraft's snow.png texture at runtime, meaning the logic will sample any modded replacement
- Sleet (a mix of rain and snow) can occur in transition zones (like elevation)
- Dust storms will occur in deserts when raining, and particles will drift along the ground in the direction of wind
- The dust particles will climb small inclines as well giving the impression of flowing over elevations
- These particles are affected by the wind simulator
- Rain drops with a slight slant, and will change direction based on wind
- Serene Seasons will affect whether rain or dust blows in some biomes, such as Biomes OPlenty's Lush Desert
- Various parts of the system can be enabled/disabled in the Weather Options section
- Snowflakes lie where they land for a moment, then shrink and fade as they melt; blown by the wind into the side of a wall or tree trunk, they stick to it (Snow sticks to sides option in Weather Options)
- Rain blown onto windows (glass blocks and panes) clings, then runs down the glass in short rushes, leaving a wet trail that dries, and drips off a bottom edge over open air; windows facing the wind and open to the sky get the most. Rain on windows option in Weather Options
- For a while after rain stops, water drips from the lowest leaves of trees and from overhanging edges like eaves, less and less as things dry; edges drip while it rains too. Drips after rain option in Weather Options; works even with particle rain off
- In the cold, frost grows on the outside of clear glass windows, in from the window's edges, thickest before sunrise; the sun melts it from east facing windows in the morning and west facing ones in the evening. Frost on windows option in Weather Options;
/dsweather frost 0-100sets it for testing - The weather system will auto disable if Particle Rain or Simple Weather is installed
- Brought back the compass rose textures from older mod versions
- There are 3 rose styles to choose from
- Textures were cleaned up from the originals
- New pocket watch clock display, styled after Minecraft's clock
- Shown above the crosshair (beside the compass if both are shown), with hour and minute hands that tick from minute to minute
- Has some wear like an heirloom handed down: tarnish, scratches, a dent or two, and a hairline crack in the dial
- A window under XII shows day or night, like Minecraft's clock, to tell noon from midnight
- A window above VI shows the season when Serene Seasons is installed, or the moon's phase without it
- Spins where the compass does (the Nether, the End), as Minecraft's clock does there; the clock text leaves out the time (
dsurround:effects/clock_wobblepicks which clocks) - Clock style option in Compass and Clock Options: text, pocket watch, or both; the Render scaling option applies to it as well
- Pocket watch style option picks the look: CLASSIC (the worn round watch) or SQUARE (a square brass watch in pixel art)
- The compass and clock on/off switches are now a NONE choice in their styles; a switch that was off carries over as NONE
- Option to show the compass and pocket watch in a side or corner of the screen while one is in the hot bar or off hand, rather than above the crosshair while held
- Show in screen margin option in Compass and Clock Options turns it on; Screen margin position picks one of the four sides or four corners (left by default)
- Shown together, they sit one above the other on the sides and corners, and side by side at the top and bottom
- The compass rose is upright there, turning with your heading; the compass band is drawn at half size
- Clock text is still shown only while a clock is held
- The compass band texture is now smoothed, so it no longer flickers as it slides at small sizes
- Light level overlay, back from older versions: numbers on the blocks around the player that monsters could stand on, colored by whether they can spawn there
- Turned on and off with the Light Level Overlay key (unbound to start with, under Dynamic Surroundings in the controls)
- Red where monsters can spawn now, yellow where they can at night, green where it is too bright, aqua where they can never spawn; DARK colors also available
- Spawning follows the dimension's own rules: in the Overworld any block light keeps monsters away, in the Nether it goes by light level 7
- Shows block light, skylight, or the brighter of the two; range of 8 to 32 blocks; can hide the safe blocks
- A legend in the bottom right corner of the screen says what the colors mean, and can be turned off
- The numbers are drawn with the game's font, so a resource pack that changes the font changes them too
- Light Level Options in the configuration
- [Experimental] Ground fog in swamps and spooky biomes like Dark Forest and BOPs Ominous Forest
- Heavy rains can thin it out, higher density between midnight and morning
- Wind can shift the drift direction and speed
- Should clear when inside
- There is a quality setting in Weather Options that allow you to control the ground fog rendering parameters
- OFF, Fast, Fancy, and Fabulous; defaults to Fancy
- Fast has some artifacting; Fabulous looks much better but will be computationally intensive (of course NONE is the most performant :D)
- [Experimental] Support for Simple Voice Chat with enhanced sound processing
- On by default; setting can be found in the Enhanced Sounds configuration options
- Hear Self diagnostics setting can be found in the Diagnostics Settings config section; disabled by default
- Will auto disable if enhanced sound processing is not available (ex, Sound Physics Remastered is installed)
- New /dsweather command to control aspects of simulated wind and storm
- I use for testing but if you w
... [内容过长已截断]
Dynamic Surroundings Fabric 0.4.7
on 2026 Oct 21AI 使用披露
- 用于扩展风暴模拟系统的渲染与处理功能
- 协助制作了地面雾气功能
- 协助集成了简单的语音聊天
- 用于扩展蒸汽和火焰喷口效果,在合适的地方添加了额外的粒子、着色器和光照
- 重制了时钟叠加层,使用带有内嵌指示器的旧怀表纹理,可显示昼夜更替、季节或月相(取决于是否安装了静谧四季)
- 新增了在屏幕边缘或角落显示指南针和怀表的选项
- 整合了旧版指南针方位纹理作为指南针的可选样式,并清理了纹理
- 将旧版本的亮度等级 HUD 移植为亮度等级叠加层,为提高速度而从纹理绘制
- 找出了若干问题的根本原因并协助修复
新内容
- 模拟风力会影响动态环境粒子的移动和行为
- 包括白雾、蒸汽、火焰喷口、呼吸和降水(见下文)
- 还包括部分特定粒子,例如原版的烟雾、灰烬和落叶
- 刮风生物群系的音效音量会根据风速动态调整
- 随着时间推移而变大或变小
- 风暴期间会增强
- 基于旧版动态环境的客户端风暴模拟
- 仅在没有天气渲染模组钩子的维度中生效
- 随机种子与原版游戏天数绑定,因此所有使用动态环境的玩家都会体验到相同的效果
- 降水开始时,风暴模拟器会生成一个独立于原版降雨强度的强度值
- 风暴期间,强度会激增并在峰值以下逐渐减弱,大约每半分钟变化一次;减弱幅度由天气选项中的风暴变化选项决定
- 降水效果是“粒子”式的,而非渲染的纹理片,不过它们并不是真正的原版粒子
- 雨滴略微倾斜,并会根据风向改变方向
- 天气选项中的雨滴着色选项可设置雨水的偏蓝程度,从近乎无色的灰色到深蓝色
- 雪的下落速度更慢,风的影响也更明显
- 纹理在运行时从原版的 snow.png 纹理中采样,因此会采样任何模组替换的纹理
- 雨夹雪(雨和雪的混合)可能出现在过渡区域(如海拔变化处)
- 沙漠中下雨时会出现沙尘暴,粒子会随风沿地面飘动
- 沙尘粒子还会爬上小坡,营造出漫过高地地形的感觉
- 这些粒子受风力模拟器的影响
- 雨滴略微倾斜,并会根据风向改变方向
- 静谧四季会影响某些生物群系中是降雨还是刮尘土,例如超多生物群系的葱郁沙漠
- 系统的各个部分可以在天气选项部分启用/禁用
- 雪花落地后会停留片刻,然后在融化时缩小并消散;被风吹到墙壁或树干侧面时会粘附其上(天气选项中的“雪粘附侧面”选项)
- 被吹到窗户上的雨(玻璃方块和玻璃板)会附着其上,然后一阵阵流下玻璃,留下会干燥的湿痕,并在悬空的底边滴落;朝向风且露天开着的窗户效果最明显。天气选项中的“窗户上的雨”选项
- 雨停后的一段时间内,水会从树叶最低处和屋檐等悬垂边缘滴落,随着干燥逐渐减少;下雨时边缘也会滴水。天气选项中的“雨后滴水”选项;即使关闭粒子雨也有效
- 在寒冷环境中,透明玻璃窗外会结霜,从窗边向内生长,在日出前最厚;早晨阳光会使朝东的窗户上的霜融化,傍晚则融化朝西窗户上的霜。天气选项中的“窗户结霜”选项;
/dsweather frost 0-100可用于测试 - 如果安装了粒子雨或简单天气,天气系统会自动禁用
- 恢复了旧版本模组的指南针方位纹理
- 有 3 种罗盘样式可供选择
- 纹理已从原始版本清理
- 新增怀表式时钟显示,样式仿照原版时钟
- 显示在准星上方(若两者同时显示则在指南针旁),带有时针和分针,每分钟跳动一格
- 有一些传家宝般的磨损痕迹:锈斑、划痕、一两个凹痕,以及表盘上的一道细小裂缝
- XII 下方的小窗口显示白天或夜晚,如同原版时钟一样,用于区分正午与午夜
- VI 上方的小窗口在安装静谧四季时显示季节,未安装时显示月相
- 在指南针会旋转的维度(下界、末地)中也会旋转,如同原版时钟;时钟文字会省略时间(
dsurround:effects/clock_wobble决定哪些时钟) - 指南针和时钟选项中的时钟样式选项:文字、怀表或两者;渲染缩放选项同样适用
- 怀表样式选项可选择外观:CLASSIC(磨损的圆形怀表)或 SQUARE(像素画的方形黄铜怀表)
- 指南针和时钟的开关现在合并为样式中的 NONE 选项;原本关闭的开关会自动转为 NONE
- 新增选项:当指南针或时钟在快捷栏或副手中时,将其显示在屏幕边缘或角落,而不是拿在手上时显示在准星上方
- 指南针和时钟选项中的“在屏幕边缘显示”选项可开启此功能;屏幕边缘位置可选择四边或四角之一(默认为左侧)
- 同时显示时,在边缘和角落两者上下排列,在顶部和底部则并排
- 罗盘在该位置保持正立,随你的朝向转动;罗盘带以一半大小绘制
- 时钟文字仍仅在手持时钟时显示
- 罗盘带纹理现在经过平滑处理,在小尺寸下滑动时不再闪烁
- 亮度等级叠加层,从旧版本回归:在玩家周围怪物可以站立的方块上显示数字,并根据能否生成怪物进行着色
- 使用亮度等级叠加层按键开关(默认未绑定按键,位于控制设置中的动态环境下)
- 红色表示当前可以生成怪物,黄色表示夜晚可以生成,绿色表示亮度太高,青色表示永远无法生成;也有深色版本可选
- 生成遵循各维度自身的规则:在主世界任何方块光照都会阻止怪物生成,在下界则以光照等级 7 为准
- 可显示方块光照、天空光照或两者中较亮者;范围为 8 到 32 格;可以隐藏安全方块
- 屏幕右下角的图例说明各颜色的含义,可以关闭
- 数字使用游戏字体绘制,因此更改字体的资源包也会更改数字样式
- 位于配置中的亮度等级选项
- [实验性] 沼泽和幽魂类生物群系(如黑暗森林和超多生物群系的不祥树林)中的地面雾气
- 大雨可以使其变稀薄,午夜至清晨之间密度较高
- 风可以改变飘动方向和速度
- 进入室内后应会消散
- 天气选项中有一个质量设置,可控制地面雾气的渲染参数
- 关闭、快速、精美和超棒的!;默认为精美
- 快速有一些瑕疵;超棒的!效果更好但计算量大(当然关闭是性能最好的 :D)
- [实验性] 支持增强声音处理的简单的语音聊天
- 默认开启;可在增强声音配置选项中找到该设置
- 自我监听诊断设置位于诊断设置配置部分;默认关闭
- 若增强声音处理不可用(例如安装了物理声效重制版),将自动禁用
- 新增 /dsweather 命令,用于控制模拟风和风暴的各个方面
- 我用它来做测试,但如果你想玩玩它也请随意——不会影响游戏机制
- 新增 /dsconflicts 命令,在聊天中列出因安装了其他模组而被禁用的动态环境功能,以及是哪个模组
- 例如,粒子雨会禁用粒子天气和水波纹;脚步声会禁用湿表面音效和刷子脚步效果
- 新增 /dsprofile 命令,记录游戏性能分析数据,当游戏似乎变慢时可发送给模组作者
- 仅输入
/dsprofile会照常记录两分钟游戏过程;/dsprofile <场景> [秒数]可选择记录指定场景:ground_fog、weather或frost会以该效果最重的情况进行记录 - 屏幕顶部会显示剩余时间,记录完成后聊天中会告知保存位置(点击名称即可打开)
- 记录以压缩包形式保存,方便附加到 GitHub 的 issue 中,存放在 dsurround 配置文件夹下的
profiles中;仅保留最新的 10 个 - 记录会注明生成环境:显卡和驱动、图形设置、渲染距离以及 Java 和 Windows/Mac/Linux 版本
- 记录中不包含个人信息:没有账户名、文件夹、命令行或网络地址
- 使用 Java Flight Recorder,大多数 Java 安装都自带;如果你的没有,命令会提示
- 仅输入
更改
- 更新了蒸汽效果,以利用瀑布水雾的核心逻辑和渲染
- 重做了火焰喷口效果,复用了水雾粒子并进行颜色着色和添加烟雾
- 火焰喷口的配置选项已移至独立的配置部分
- 更新了极光渲染以利用模拟降雨强度和天气雾效果,这意味着在小雨雪天气下极光仍会渲染,只是略微变暗
- 实验性功能的配置设置以“兰花紫”颜色显示,以区别于其他选项
- 实验性选项/功能可能会有变动,并可能在未来的版本中被移除
- 配置文件(dsurround.json)现在会标注哪些设置需要重启 Minecraft 或重新进入世界后才能生效
- 极光着色器已修改为使用噪声贴图,而不是在着色器中进行哈希计算。结果是在运行不同版本动态环境的电脑上,极光的样式可能会有所不同
- 在声源相近的声音之间复用混响计算
- 因其他模组而被禁用的功能现在会集中列出:启动时的日志中和诊断叠加层中
- 减少了地面雾气、随机方块效果和瀑布泡沫的计算量(通过分析大型整合包发现)
- 配置界面和单个声音界面的工具提示现在会等待鼠标停留半秒后才显示,并且在拖动滑块时保持隐藏
- 为缺少标签的模组生物群系提供了更好的生物群系特征判定
- 生物群系的标签不再被猜测覆盖:被标记为寒冷的模组生物群系即使温度看起来是温带也保持寒冷
- 猜测首先来自生物群系的原版音乐、草和环境音,其次是其气候,最后是其名称;名称按完整单词匹配,因此"alpine"不会被认为是松林
- 在猜测之前,会读取该模组 jar 中生物群系的定义以了解其树木数量:茂密或稀疏的植被,以及森林,无需猜测(服务器上也有效,因为模组安装在客户端)
- 播放沼泽音乐或名为 bog 或 swamp 的生物群系无论有多少树都保持为沼泽;洞穴和水下生物群系不计算树木
- 树木在模组放置它们的任何生成阶段都计入(无人之境的大部分森林树木放置在植被阶段之外)
- 原版生物群系在每个服务器上具有相同的特征:当织物或 NeoForge 的标签不一致时,由模组自己的表确定其温度、湿度和植被
- 名为 shore 的生物群系是沙滩但不是湿地,如同原版的石岸
- 识别更多生物群系名称:田野、平原、草甸和草原;海洋;溪流和湖泊;稀树草原;高原;高地;苔原和冰川
/dsdump biomes会显示每个特征的来源,并最后列出需要检查的生物群系:从音乐、草或名称猜测的特征,或完全没有维度或类型的,以帮助为其编写标签文件- 在单人游戏中,它会将每个生物群系的维度与世界生成它的位置进行比对,并列出每个维度的生物群系
- 仅存在于模组维度中的生物群系(或在服务器上,属于拥有自己维度的模组)不会因缺少类型而被列出:因为它通常是其维度中唯一的生物群系
- 为其他模组生物群系提供的特征现在是每个模组文件夹中的标签文件(
assets/<mod>/dsconfigs/tags/worldgen/biome/is_<trait>.json),仅在该模组安装时读取- 自然之灵的高山和高地生物群系按预期为风吹型的:它们的标签文件之前命名错误而从未被读取
- 补充了 Spectrum 的渊深维度中被其自身标签遗漏的生物群系(深层溶洞、永夜菇林),以及无人之境的泥滩(是沙滩而非沼泽)和热带沙滩的标签
biomes.json中的traits和clearTraits已弃用(会记录警告):它们在猜测之后添加,而标签文件会在任何猜测之前确定特征
修复
- 单个声音音量和环境音量选项现在对持续更新的声音生效,包括模组自身的生物群系循环音(它们在第一次更新后会回退到游戏音量,移动音量滑块时所有正在播放的声音也会如此);调低较大的声音(如爆炸)现在会真正变安静
- 修复了增强声音可能导致的崩溃("Accessed LegacyRandomSource from multiple threads"):其工作线程会读取正在播放声音的音量,而该音量每刻都使用游戏为该声音使用的同一个随机源;现在每个声音的听觉范围在客户端线程上于开始播放时读取一次
- 声音修剪不再丢弃仍可能被听到的声音:循环、移动和流式声音(超出范围开始播放的音乐唱片、机器的嗡嗡声)会像游戏预期那样播放,并在靠近时淡入;音量超过 1 的声音会被赋予游戏更长的听觉范围,而不是被直接放行
- 在关闭游戏迷雾的模组(悠远视界)下,日志不再充满无效迷雾范围警告,迷雾保持关闭:雨天、清晨和生物群系迷雾只会覆盖游戏自身的地形,而不是该模组绘制的远处地形,因此在它开启时这些迷雾会选择避开并停止工作(#201)
- 安装 Stellar View(NeoForge)后,粒子雨、雪和湿斑点在主世界自行关闭:它替换了主世界的天空效果,这被理解为它会绘制自己的天气。现在只有效果自行绘制或更新天气的维度才会让渡给它们
- 从水下向上看时可以看到水波纹。白天它们是隐约的圆环;夜晚则更加明显。
- 添加了暮色森林维度的海平面配置。
- 移动了极光渲染钩子,以避免与星辉魔法的天空渲染冲突
- 修复了雾气被应用于幽魂类地下生物群系的问题,例如超多生物群系的蜘蛛巢穴
- 修复了开启超棒的!图形时的渲染问题
- [可能] 渲染方块实体时 fastutil 集合中偶发的崩溃,在机械动力传送带上发现
- 当存在织物或 NeoForge 的生物群系标签时,原版海洋(深海除外)的水下使用普通水下音效而非海洋音效的问题
- 地面雾气在 Mesa 图形驱动(Linux 上常见)上无法工作:其着色器使用了 GLSL 的保留字
- 水下时日志充满 "Fog calculator ... reporting invalid fog range" 警告的问题,因为原版迷雾在相机后方开始
- 当音频设备消失(如耳机关闭)且没有其他可播放设备时,游戏每刻都尝试重启声音并每次都记录堆栈跟踪,一夜之间日志增长数 GB。现在它每几秒尝试一次且只记录一次失败;一旦有设备可用,声音如常恢复(声音系统选项"限制音频设备重试",默认开启)
- 安装隐匿面纱时,每次资源重载日志都会显示 "Couldn't load vanilla shader from dsurround:shaders/core/point_light.vsh" 及堆栈跟踪:隐匿面纱的着色器解析器无法读取无返回值的 return。灯光始终正常工作;着色器已不再使用该写法
Dynamic Surroundings NeoForge 1.21.1-0.4.6
on 2026 Oct 10文档可以在 ReadTheDocs 网站上找到。
所有加载器
- JAVA 21+
- Architectury 13.0.8+
Fabric
- Fabric Loader >= 0.16.9
- Fabric API >= 0.110.0+1.21。
NeoForge
- NeoForge 21.1.84+
AI 使用声明
这一部分有点长,因为这是我第一次写。在后续版本中应该会更短。:)
从 1.21.1-0.4.6 开始,我使用 AI 来辅助模组开发(如果你感兴趣的话,我用的是 Claude Code Pro)。为了提供更多背景信息,我是一名拥有近 40 年行业经验(如果算上高中时期和其他个人项目则是 50 年)的软件工程师,主要从事后端系统开发。我个人认为 AI 在模组开发中有一席之地,但挑战在于如何“正确”运用它的“智慧”和“经验”(注意所有的引号)。此外,不同 AI 模型的工作成果在质量上存在差异,而用户如果缺乏软件经验,就有发布低质量作品的风险。遗憾的是,对于这种情况我无能为力,只能对我的 AI 使用保持透明。(我了解关于 AI 的更广泛讨论/争议。)
如果你对我的 AI 使用经验有建设性的反馈或问题,欢迎在这里评论。
以下是我使用 AI 的细节及其对模组的影响,以便你做出明智的决定。我希望以此展示 AI 除了“帮我生成贴图”或“做一个像那个模组的模组,然后冒充自己的作品发布”之外的应用方式。
概要:
- 代码审查:发现错误、性能问题以及不符合最佳实践的地方
- 重构:重构代码使其可进行单元测试(隔离、模拟)、删除重复代码、清理配置处理
- 测试:编写大量的单元测试
- GUI:使模组的界面与 Minecraft 自身界面的工作方式保持一致
- 模组兼容性:分析模组与其他模组的交互方式并进行改进
- 视觉效果:重做了噪点纹理,添加了粒子渐变模块,并集成了旧版本中基于着色器的极光
- 前瞻规划:规划迁移到 Minecraft 26.2 的路径,使其更容易、更不容易出错
成果:
测试与可维护性
- 添加了 1400 多个单元测试来验证内部逻辑
- 进行重构,用注入取代静态引用
- 发现重复代码并重构以消除冗余
- 删除了死代码,或实际上没有提供任何价值的代码(总是返回 true、没有任何实质贡献的代码等)
- 为需要说明的未注释方法添加了注释
性能
- 脚本引擎性能提升约 40%
- 修复了区域方块事件扫描器中的性能问题,使其速度提高约 50%
- 有很多情况下它会进行不必要的双重扫描
- 发现了 Minecraft 生物群系过渡距离的行为,并调整区域生物群系扫描器以加以利用,将采样数量减少 85%
- 提升了瀑布和 RC 蒸汽输出器效果系统的性能与资源占用
- 尽可能减少了声音效果引擎(混响)的计算
- 基本上,只有在任何关键因素发生变化时才进行计算,比如玩家方块位置、区域内方块状态的改变等。
- 添加了一个注解处理器来生成事件循环实现,而不是使用肌肉反射(更少的开销,无需分配内存)
- 这是针对模组内部事件系统,而非 Architectury/Fabric/NeoForge
- 修复了 GUI 渲染性能问题
- 修复了区域方块事件扫描器中的性能问题,使其速度提高约 50%
可靠性
- 修复了缓存未正确刷新或数据持有超出作用域对象(如实体)引用的边缘情况
- 在重复错误可能刷屏日志的地方添加了节流阀
- 改进了脚本和 json 配置的错误检测与报告
- 模组配置逻辑可以处理手动编辑产生的错误输入,并在配置文件中写入注释
- 提升了 Markdown 解析的健壮性和性能(声音制作组对话框)
- 对依赖注入条目进行验证,以便在启动过程中更早地检测到循环依赖(循环引用)(这是开发辅助功能,而非玩家端的问题)
特性
- 瀑布白雾和奶泡、萤火虫的发光与照明,以及极光的回归(详见新功能)
新功能
- 添加了 /dsversion 命令,可以从我的 GitHub 查询版本状态并在本地聊天中报告。回复中将包含可点击的链接,方便你前往各种信息来源。无论登录时的聊天报告是否禁用,该命令都有效。(一些整合包作者会禁用客户端登录时的聊天报告。)
- 在声音选项对话框中添加了“声音制作组”按钮。点击后将显示模组中声音的制作与来源信息。(这些信息也隐藏在声音配置菜单中悬停于声音上时的工具提示中。)
- 人形生物获得踩踏草丛效果和踩踏稻草效果(骷髅、僵尸、劫持者等)。很抱歉没有做苦力怕。
- 清理了模组配置处理
- 写出配置文件时为字段添加注释。用户注释将不会被保留。
- 添加了在加载配置时将现有设置迁移到新字段的机制
- 极光回归了。配置中有一组选项可以启用/禁用、调整频率以及最大光带数量。
- 新版本的渲染计算量约为原来的 1/10(不再是一台电脑暖炉)
- 站在寒冷/冰雪/针叶林生物群系时会显示在北方天空中
- 有一个新的极光配置部分,可以在其中启用/禁用以及修改其他属性
- 如果安装了鸢尾花或眼球,将自动禁用。
- 瀑布白雾(取代了相对较新的 CASCADE 层叠效果)和水体奶泡。
- 白雾 - 在瀑布落水处底部旋转(下落的水撞击表面)
- 奶泡 - 当水从方块上流下或水撞击表面时生成。奶泡会随水流方向流动并最终消散。
- 选项位于配置的瀑布选项部分。(之前的设置(如有)将被迁移。)
- 如果安装了鸢尾花或眼球,着色器混合将自动禁用。
- 刷新了萤火虫效果,使其行为更像萤火虫;在它们周围添加了微微照亮周围区域的光晕。
- 选项位于萤火虫选项部分。(之前的设置(如有)将被迁移。)
- 如果安装了鸢尾花或眼球,着色器照明将自动禁用。
- 扩展了动态环绕的调试 HUD。如果绑定了按键,按下它可以在普通 HUD、玩家生物群系信息和世界中的效果系统放置位置之间切换。
更改
- 独立声音配置菜单中的搜索框将接受正则表达式进行过滤
- 将默认混响射线距离从 256 减少到 128
- 现有配置仍将是 256(因为新的上限是 256),所以如果你愿意可以自行调低
- 数学模型和测试表明,超过 110 只会对声音产生微小的改善
- 确保所有动态环绕的脚步声都是单声道,并移除了即时单声道转换支持
- 移除了瀑布 CASCADE 层叠效果,因为它已被白雾和奶泡取代
- 将 26.2 中的迷雾计算器更改向后移植到 1.21.1
- 生物群系迷雾应该更柔和
- 世界迷雾被纳入考虑
- 玩家资源包中的配置无论其命名空间如何都会被读取,因此资源包可以自带声音及其播放配置(例如
dsurround_ex下的 Dynamic Surroundings Extended)
修复
- 更换世界时(如切换维度)某些缓存未正确刷新
- 缓存持有直接引用超出应有时间的边缘情况(如实体)
- 与来自外部来源的配置数据的验证和处理相关的情况(更好的错误报告等)
- 玩家在水下时声音效果被正确地抑制
- 混响计算中的一些数学运算存在损耗,导致声音有点闷(约 8 - 20%,取决于环境)
- 我自己听不出直接的区别,但似乎聆听体验有所改善
- 水下的呼吸效果回归了(会吐出气泡)
- 如果呼吸效果被禁用,此功能也将被禁用。
- 修复了加入远程服务器时未检测到标签同步且动态环绕标签缓存未清除的问题
Dynamic Surroundings Farbric 1.21.1-0.4.6
on 2026 Oct 10文档可在 ReadTheDocs 网站上查阅。
所有加载器
- JAVA 21+
- Architectury 13.0.8+
Fabric
- Fabric Loader >= 0.16.9
- Fabric API >= 0.110.0+1.21
NeoForge
- NeoForge 21.1.84+
AI 使用声明
这一部分有点长,因为这是我第一次撰写。后续版本的声明应该会短一些。:)
从 1.21.1-0.4.6 开始,我开始使用 AI 辅助模组开发(如果你感兴趣的话,我使用的是 Claude Code Pro)。先介绍一下背景:我是一名拥有近 40 年行业经验的软件工程师(算上高中时期和其他个人项目则接近 50 年),主要从事后端系统开发。我个人认为 AI 在模组开发中可以发挥作用,但难点在于如何“恰当”地运用它,这需要“智慧”和“经验”(注意这里的引号)。此外,不同 AI 模型的工作成果在质量上存在差异,如果用户缺乏软件经验,就有发布低质量作品的风险。遗憾的是,对于这种特殊情况,除了透明地说明我对 AI 的使用之外,我也没有太多别的办法。(我了解关于 AI 的更广泛的讨论和争议。)
如果你对我的 AI 使用经历有建设性的反馈或问题,欢迎在这里评论。
以下是我使用 AI 的详细情况及其对我的模组产生的影响,以便你做出明智的决定。我希望展示的是,AI 除了“帮我生成一个材质”或“做一个像某个模组的模组然后当成自己的作品发布”之外,还可以有其他应用方式。
摘要:
- 代码审查:查找错误、性能问题以及未遵循最佳实践的地方
- 重构:调整代码结构使其可以进行单元测试(隔离、模拟)、删除重复代码、清理配置处理逻辑
- 测试:编写了大量单元测试
- 界面:使模组的界面与 Minecraft 自身界面的工作方式保持一致
- 模组兼容性:分析模组与其他模组的交互方式并加以改进
- 视觉效果:重做了噪声纹理、添加了粒子着色器,并整合了旧版本中基于着色器的极光效果
- 提前规划:规划迁移到 Minecraft 26.2 的路径,使迁移更容易、更不易出错
成果:
测试与可维护性
- 新增 1400 多个单元测试来验证内部逻辑
- 进行重构,消除静态引用,改用注入方式
- 发现重复代码并重构以消除冗余
- 删除了死代码,或实际上没有提供任何价值的代码(例如总是返回 true、没有实际意义贡献等)
- 为需要说明的未加注释的方法补充了注释
性能
- 脚本引擎性能提升了约 40%
- 修复了区域方块事件扫描器中的性能问题,使其速度提升约 50%
- 之前存在很多不必要地重复扫描的情况
- 发现了 Minecraft 的一个生物群系过渡距离行为,并调整区域生物群系扫描器加以利用,将采样数量减少了 85%
- 提升了瀑布和 RC 蒸汽输出器效果系统的性能和资源占用
- 在可能的情况下减少了声音效果引擎(混响)的计算量
- 基本上,只有当任何关键因素发生变化(如玩家所在方块位置、区域内的方块状态变化等)时才会进行计算
- 添加了一个注解处理器来生成事件循环实现,而不是使用反射(更少的开销,无需分配内存)
- 这是针对模组内部的事件系统,而非 Architectury/Fabric/NeoForge
- 修复了界面渲染的性能问题
- 修复了区域方块事件扫描器中的性能问题,使其速度提升约 50%
可靠性
- 修复了缓存未被正确刷新,或数据持有可能超出作用域对象(如实体)引用的边缘情况
- 为可能刷屏日志的重复错误添加了节流机制
- 改进了脚本和 JSON 配置的错误检测与报告
- 模组配置逻辑能够处理手动编辑产生的错误输入,并在配置文件中写入注释
- 提升了 Markdown 解析的健壮性和性能(声音鸣谢对话框)
- 对依赖注入条目进行验证,以便在启动过程的更早阶段检测到循环依赖(这属于开发辅助,而非面向玩家的问题)
功能
- 瀑布水雾与奶泡、萤火虫的光辉与照明,以及极光的回归(参见“新功能”)
新功能
- 新增 /dsversion 命令,可从我的 GitHub 查询版本状态并在本地聊天中报告。回复中将包含可点击的链接,方便你前往各种信息来源。无论登录时的聊天报告是否被禁用,此命令都能正常工作。(一些整合包作者会禁用客户端登录时的聊天报告。)
- 在声音选项对话框中添加了“声音鸣谢”按钮。点击后将显示模组中声音的鸣谢和归属信息。(当你将鼠标悬停在声音配置菜单中的声音上时,这些信息也藏在工具提示中。)
- 人形生物新增了草丛和麦秆踩踏效果(骷髅、僵尸、劫持者等)。抱歉,没有为苦力怕添加此效果。
- 清理了模组配置的处理逻辑
- 写出配置文件时会为字段添加注释。用户自己的注释将不会被保留。
- 添加了在加载配置时将现有设置迁移到新字段的机制
- 极光回归了。配置中提供了一组选项,可以启用/禁用极光、调整出现频率以及最大光带数量。
- 新版本的渲染计算量约为原来的 1/10(不再有电脑取暖器)
- 站在寒冷/结冰/针叶林生物群系中时,极光会出现在北方天空
- 新增了极光配置部分,可以在其中启用/禁用极光,并修改其他属性
- 如果安装了 Iris 或眼球(Oculus),将自动禁用极光。
- 瀑布水雾(取代了相对较新的 Cascade 振动效果)和水流奶泡。
- 水雾 - 在瀑布落水处底部盘旋(下落的水撞击表面时产生)
- 奶泡 - 当水从方块上流下或水撞击表面时生成。奶泡会顺着水流方向流动并最终消散。
- 选项位于配置的瀑布选项部分。(之前的设置(如有)将被迁移。)
- 如果安装了 Iris 或眼球(Oculus),着色器混合将自动禁用。
- 刷新了萤火虫效果,使其行为更贴近真实的萤火虫;为它们添加了周围的光辉,能略微照亮周围区域。
- 选项位于萤火虫选项部分。(之前的设置(如有)将被迁移。)
- 如果安装了 Iris 或眼球(Oculus),着色器照明将自动禁用。
- 扩展了动态环绕的调试 HUD。如果已绑定按键,按下它可以在普通 HUD、玩家所在生物群系信息以及世界中效果系统放置情况之间切换。
更改
- 单个声音配置菜单中的搜索框现在支持使用正则表达式进行过滤
- 将默认混响射线距离从 256 降低到 128
- 现有配置仍会保持 256(因为新的上限是 256),你可以根据自己的需要降低
- 数学模型和测试表明,超过 110 的数值对声音的改善微乎其微
- 确保动态环绕的所有脚步声都是单声道,并移除了实时单声道转换支持
- 移除了 Cascade 振动效果,因为它已被水雾和奶泡取代
- 将 26.2 中的迷雾计算器更改向后移植到 1.21.1
- 生物群系迷雾应该更加柔和
- 现在会考虑世界迷雾
- 玩家资源包中的配置无论其命名空间是什么都会被读取,这样资源包可以自带声音及其播放配置(例如
dsurround_ex下的动态环绕扩展)
修复
- 修复了更改世界时(如切换维度)某些缓存未被正确刷新的问题
- 修复了缓存持有对象(如实体)直接引用时间过长的边缘情况
- 修复了与验证和处理来自外部来源的配置数据相关的问题(更好的错误报告等)
- 玩家在水下时,声音效果现在会被正确地抑制
- 混响计算中的部分数学运算存在精度损失,导致声音被略微静音(根据环境不同,约 8 - 20%)
- 我本人听不出区别,但听起来聆听体验似乎有所改善
- 水下呼吸效果回归(会冒出气泡)
- 如果呼吸效果被禁用,此功能也会被禁用。
- 修复了加入远程服务器时未检测到标签同步、动态环绕标签缓存未被清空的问题
Dynamic Surroundings NeoForge 0.4.5
on 2026 Sep 24文档可在 ReadTheDocs 网站上找到。
所有加载器
- JAVA 21+
- Architectury 13.0.8+
Fabric
- Fabric Loader >= 0.16.9
- Fabric API >= 0.110.0+1.21。
NeoForge
- NeoForge 21.1.84+
修复
- 在关闭音乐管理器替换功能后,“声音选项”界面中的配置声音按钮现在可以正常工作了。
更改
- 将“单独声音”配置菜单中的“方块”和“剔除”按钮合并为一个三态按钮。我实在不喜欢那些图标。
- 将播放按钮改为文本按钮。
Dynamic Surroundings Fabric 0.4.5
on 2026 Sep 24文档可在 ReadTheDocs 网站查阅。
所有加载器
- JAVA 21+
- Architectury 13.0.8+
Fabric
- Fabric Loader >= 0.16.9
- Fabric API >= 0.110.0+1.21
NeoForge
- NeoForge 21.1.84+
修复
- 音乐管理器替换功能关闭时,声音选项界面中的配置声音按钮现在可以正常工作了。
更改
- 将单独声音配置菜单中的“方块”和“剔除”按钮合并为一个三态按钮。之前那两个图标我不太满意。
- 将播放按钮改为文本按钮。
Dynamic Surroundings NeoForge 0.4.4
on 2026 Sep 22文档可在 ReadTheDocs 网站上查阅。
所有加载器
- JAVA 21+
- Architectury 13.0.8+
Fabric
- Fabric Loader >= 0.16.9
- Fabric API >= 0.110.0+1.21。
NeoForge
- NeoForge 21.1.84+
修复
- 修复了与 Enderscape 模组的兼容性问题。客户端在启动时不应再崩溃。
- 如果安装了 Raise Sound Limit Simplified(RSLS),则动态禁用声音丢弃功能。
更改
- 在季节脚本命名空间中添加了 isEarly()、isMiddle() 和 isLate() 函数,用于检测子季节。对于没有季节类模组(例如静谧四季)的整合包,每个函数都将返回 true。
- 添加了配置选项(位于声音选项下),用于控制动态环绕如何判定声音播放是否源自客户端线程。
- discardNonClientSoundPlays(默认为 true):如果为 true,每当检测到声音播放源自非客户端线程时,该播放将被丢弃,并在日志中输出相应的消息
- logStacktraceWhenDiscarding(默认为 false):如果为 true,将在日志中输出堆栈跟踪,目的是提供尽可能多的线索以确定是哪个模组发出了调用
Dynamic Surroundings Fabric 0.4.4
on 2026 Sep 22文档可在 ReadTheDocs 网站上找到。
所有加载器
- JAVA 21+
- Architectury 13.0.8+
Fabric
- Fabric Loader >= 0.16.9
- Fabric API >= 0.110.0+1.21.
NeoForge
- NeoForge 21.1.84+
修复
- 修复了与 Enderscape 模组的兼容性问题。客户端在启动时不应再崩溃。
- 如果安装了 Raise Sound Limit Simplified (RSLS),则动态禁用声音丢弃功能。
变更
- 在季节脚本命名空间中添加了 isEarly()、isMiddle() 和 isLate() 函数,用于检测子季节。对于没有季节类模组(例如静谧四季)的整合包,每个函数都将返回 true。
- 添加了配置选项(位于声音选项下),用于控制动态环绕如何断定声音播放源自客户端线程。
- discardNonClientSoundPlays(默认为 true):如果为 true,则每当检测到声音播放源自非客户端线程时,该声音播放将被丢弃,并在日志中输出相应消息
- logStacktraceWhenDiscarding(默认为 false):如果为 true,则会向日志输出堆栈跟踪,目的是提供尽可能多的线索,以找出是哪个模组在进行该调用
Dynamic Surroundings 0.4.3
on 2026 Sep 18文档可在 ReadTheDocs 网站上查看。
所有加载器
- JAVA 21+
- Architectury 13.0.8+
Fabric
- Fabric Loader >= 0.16.9
- Fabric API >= 0.110.0+1.21
NeoForge
- NeoForge 21.1.84+
新内容
- 新增生物群系ID设置,可为生物群系重置迷雾颜色。
- 新增生物群系ID设置,可在应用新特质前清除现有特质。
- 用我自己的简单语法树实现替换了 Nashorn JavaScript 引擎。减少了维护和未来兼容性方面的问题。Fabric JAR 应该会更小。
- 三叉戟和钉头锤的工具栏音效。
- 水柱串联效果。模拟水流冲击表面时的湍流和白雾。未完成——目前的实现尚可(个人认为 NeoForge 版看起来更好)。:)
- 用已修改版本替换原版的音乐管理器。这使得可以使用音乐管理器命令(/dsmm [pause|unpause|reset|whatsplaying])。可通过配置禁用替换功能。
- 新增配置选项,可缩短音乐播放之间的等待时间。默认情况下,等待时间不会缩短。此功能独立于音乐管理器替换功能。
更改
- 更新了动态环绕的标签名称,以符合常规的标签命名方案(例如,"dsurround:is_axe" 而不是 "dsurround:axes")。旧标签名称仍可继续使用,但依赖应更新为新的命名方案。
- 更新了生物群系特质检测,应能改善模组生物群系的“开箱即用”体验。
- 一系列与 mixin 相关的更改,目标是简化并降低 mixin 相关故障的发生几率。
修复
- 为映射的脚步声添加了缺失的声音字幕。
- 修复了超平坦世界中播放地下声音的问题。
- 为在其功能集中创建假世界的模组添加了防御代码(例如天境的“快速加入”功能)。
- 更改了随机数生成器,使其使用 Minecraft 库中的 Xoroshiro(而非 JDK),并添加了线程安全检查。这应能缓解其他模组进行跨线程随机数生成时的潜在问题(或至少让动态环绕摆脱干系),以及原生不支持 Xoroshiro 的 Java 运行时的问题。
- 修复了捡起物品时雨滴涟漪的渲染问题(会闪烁变黑再恢复)。在雨中钓鱼并捡起掉落物时经常出现此问题。
- 修复了玩家在上鞍状态下使用物品时方块宝可梦的空指针异常(感谢 Memori!)。
- 修复了在深海生物群系水下时播放错误生物群系音效的问题。
- 修复了由于整合包模组加载顺序和 mixin 野表依赖而导致的偶发日志空指针异常(感谢 SylvanSerenity!)。
- 重构了方块更新处理,并添加了防御代码以确保正确的客户端线程处理。
Dynamic Surroundings 0.4.3
on 2026 Sep 18文档可在 ReadTheDocs 网站查阅。
所有加载器
- JAVA 21+
- Architectury 13.0.8+
Fabric
- Fabric Loader >= 0.16.9
- Fabric API >= 0.110.0+1.21
NeoForge
- NeoForge 21.1.84+
新增内容
- 新增生物群系设置,可重置生物群系的雾颜色。
- 新增生物群系设置,可在应用新特性前清除已有特性。
- 将 Nashorn JavaScript 引擎替换为我自制的简单语法树实现,减少了维护和未来兼容性相关的问题,Fabric JAR 包的体积也会更小。
- 新增三叉戟和钉头锤的工具栏音效。
- 新增水柱串联效果。模拟水流冲击表面时的湍流和白雾。未完成——目前的实现还过得去(个人觉得 NeoForge 版效果更好)。:)
- 用修改版替换 Minecraft 的音乐管理器。这使得音乐管理器命令(/dsmm [pause|unpause|reset|whatsplaying])可用。可通过配置禁用此替换。
- 新增配置选项,可缩短音乐播放之间的等待时间。默认情况下不会缩短等待时间。该功能独立于音乐管理器替换功能。
更改
- 更新了动态环绕的标签名称,以符合常规标签命名规则(例如,用"dsurround:is_axe"而非"dsurround:axes")。旧标签名称仍可使用,但依赖项应更新为新的命名规则。
- 更新了生物群系特性检测,应能改善模组生物群系的“开箱即用”体验。
- 大量与 Mixin 相关的更改,旨在简化代码并降低 Mixin 相关故障的发生几率。
修复
- 为已映射的脚步声添加了缺失的字幕。
- 修复了超平坦世界中播放地下音效的问题。
- 为那些在功能中创建假世界的模组添加了防御性代码(例如天境的“快速加入”功能)。
- 将随机数生成器改为使用 Minecraft 库中的 Xoroshiro(而非 JDK 的),并添加了线程安全检查。这应能缓解其他模组进行跨线程随机数生成时的潜在问题(或至少让动态环绕摆脱嫌疑),以及不支持原生 Xoroshiro 的 Java 运行时环境的问题。
- 修复了捡起物品时雨滴涟漪渲染问题(会闪烁成黑色再恢复)。在雨天钓鱼并捡起掉落物时经常会出现此问题。
- 修复了方块宝可梦中玩家在上鞍状态下使用物品时的空指针异常(感谢 Memori!)。
- 修复了在深海生物群系的水下时播放错误生物群系音效的问题。
- 修复了由于整合包模组加载顺序和 Mixin 依赖混乱而导致的偶发空指针异常日志问题(感谢 SylvanSerenity!)。
- 重构了方块更新的处理逻辑,并添加了防御性代码以确保客户端线程处理正确。
Dynamic Surroundings-neoforge-1.21.1-0.4.2
on 2025 Jan 07所有加载器
- Java 21+
- Architectury 13.0.8+
织物(Fabric)
- 织物加载器 >= 0.16.9
- 织物 API >= 0.110.0+1.21.
新物(NeoForge)
- NeoForge 21.1.84+
新增内容
- 实验性:工具栏声音将为方块物品播放“方块脚步”声音。默认关闭,可在设置中打开。
- 向 /dsmm 添加了 whatsplaying 子命令。将报告音乐管理器中正在播放的音乐。
- 进行中:恢复了各种方块脚步声音。动态环境将执行声音播放的重新映射以获得更新的声音,这与之前的实现完全不同。这不是像之前的步骤模拟那样具有全功能的。可在配置(声音选项 -> 声音重新映射)中禁用。
更改
- 如果禁用了生物群系雾效果,则不会为生物群系雾着色。
- 如果维度不是自然的,如下界,指南针覆盖物将疯狂旋转。这与原版指南针行为相同。
- 内部修改和重构,以促进移植到 MC 1.21.4。Mojang 开始对组件数据的编码方式进行重构,更不用说总是受欢迎的“找出哪些被重命名以及它们被移到了哪里”游戏了。
修复
- 禁用雾效果实际上有效
- 与怀旧调整和遥远地平线世界雾效果兼容
Dynamic Surroundings-fabric-1.21.1-0.4.2
on 2025 Jan 07所有加载器
- Java 21+
- Architectury 13.0.8+
织物(Fabric)
- Fabric 加载器 >= 0.16.9
- Fabric API >= 0.110.0+1.21.
新特性(NeoForge)
- 实验性:工具栏声音将为方块物品播放“方块脚步”声音。默认关闭,可在设置中打开。
- 向 /dsmm 添加了 whatsplaying 子命令。将报告音乐管理器中正在播放的音乐。
- 进行中:带回了各种方块脚步声音。动态环境将执行声音播放的重新映射以获得更新的声音,这与之前的实现完全不同。此功能并非旨在像之前的步骤模拟那样功能齐全。可在配置(声音选项 -> 声音重新映射)中禁用。
更改
- 如果禁用了生物群系雾效果,则不会给生物群系雾着色。
- 如果维度不是自然的,如地狱,指南针叠加层将疯狂旋转。这与原版指南针行为一致。
- 内部修改和重构,以促进移植到 MC 1.21.4。Mojang 开始对组件数据的编码方式进行重构,更不用说总是受欢迎的“找出哪些被重命名以及移到了哪里”游戏。
修复
- 禁用雾效果实际上起作用了
- 与怀旧调整和遥远地平线世界雾效果兼容
Dynamic Surroundings-neoforge-1.21.1-0.4.1
on 2024 Dec 31所有加载器
- Java 21+
- Architectury 13.0.8+
Fabric
- Fabric 加载器 >= 0.16.9
- Fabric API >= 0.110.0+1.21.
NeoForge
- NeoForge 21.1.84+
新增内容
- 添加了使用 /dsmm 命令暂停/恢复音乐管理器的功能。
- 雾效果 - 几种不同类型的雾
- 晨雾:在清晨出现,最终消散
- 下雨时的天气雾
- 以生物群系的雾色渲染的生物群系雾
- 大多数森林的斑鸠音效
- 对于下雪/寒冷的森林(如雪地针叶林),有安静的森林生物群系音效。它相当安静 - 轻风吹过。
- 通电的红石有机会发出电弧音效。
修复内容
- 从资源包渲染声音时,单个声音配置菜单崩溃。
- 恶地又有声音了。(从台地到恶地的过渡有一些挑战。)
Dynamic Surroundings-fabric-1.21.1-0.4.1
on 2024 Dec 31所有加载器
- Java 21+
- Architectury 13.0.8+
Fabric
- Fabric 加载器 >= 0.16.9
- Fabric API >= 0.110.0+1.21.
NeoForge
- NeoForge 21.1.84+
新增内容
- 添加了使用 /dsmm 命令暂停/恢复音乐管理器的功能。
- 雾效果 - 几种不同类型的雾
- 晨雾:在清晨出现,最终消散
- 下雨时的天气雾
- 以生物群系的雾色渲染的生物群系雾
- 大多数森林的斑鸠音效
- 对于下雪/寒冷的森林(如雪针叶林),有安静的森林生物群系音效。它相当安静 - 微风拂过。
- 通电的红石有机会发出电弧音效。
修复内容
- 从资源包渲染声音时,单个声音配置菜单崩溃。
- 荒地再次有声音。(从台地到荒地的过渡有一些挑战。)
Dynamic Surroundings-NeoForge-1.21.1-0.4.0
on 2024 Dec 24需求
- JAVA 21+
- Architectury 13.0.8+ <===== 看这里
- NeoForge 21.1.84+
新特性
- 同时适用于 Fabric 和 NeoForge 的模组版本。为实现这一点,我正在使用模组 Architectury。Architectury 是必需的依赖项。
- Forge 支持依赖于 Architectury。一旦 Architectury 支持 Forge,我将进行更新。
- 支持 Minecraft 1.21.1。不计划支持先前版本。根据 Fabric 和 NeoForge 的可用性支持后续版本。
- Fabric 和 NeoForge 版本都支持连接到 Vanilla 服务器。
更改
- 移除了玩家粒子抑制。Mojang 更改了效果与玩家的关联方式,使我的 hack 不兼容。
- 更改了萤火虫粒子的速度、大小等,使其不那么“有活力”。
- 移除了末地的维度声音。总体而言,不喜欢的人多于喜欢的人。
修复
- 偶尔会错误地访问与渲染线程相关的随机数生成器。
- 修复了花森林生物群系的标记。
- 如果安装了模组 Particle Rain,则禁用雨波纹效果。
Dynamic Surroundings-Fabric-1.21.1-0.4.0
on 2024 Dec 24需求
- JAVA 21+
- Architectury 13.0.8+ <===== 看这里
- Fabric Loader >= 0.16.9
- Fabric API >= 0.110.0+1.21.
新增内容
- Fabric 和 NeoForge 的模组版本。为实现此目的,我正在使用模组 Architectury。Architectury 是必需的依赖项。
- Forge 支持依赖于 Architectury。一旦 Architectury 支持 Forge,我将进行更新。
- 支持 Minecraft 1.21.1。没有支持先前版本的计划。根据 Fabric 和 NeoForge 的可用性支持后续版本。
- Fabric 和 NeoForge 版本都支持连接到 Vanilla 服务器。
更改
- 移除了玩家粒子抑制。Mojang 更改了效果与玩家的关联方式,使我的破解版不兼容。
- 将萤火虫粒子的速度、大小等更改为不那么“有活力”。
- 移除了末地的维度声音。总体而言,人们不喜欢的多于喜欢的。
修复
- 偶尔会错误地访问与渲染线程相关的随机数生成器。
- 修复花林生物群系的标记。
- 如果安装了模组 Particle Rain,则禁用雨波纹效果。
Dynamic Surroundings: Fabric Edition 1.20.1-0.3.3
on 2024 Dec 07需求
- JAVA 17 及以上(我正在使用 Adoptium https://adoptium.net/)
- Fabric Loader 版本 >=0.14.22
- Fabric API 版本 >=0.91.0+1.20.1
- 100% 客户端;无需服务器端部署
修复
- 更好地支持 BungeeCord 服务器操作,特别是服务器转移
- 修复随机数生成器实例上的并发访问异常
Dynamic Surroundings: Fabric Edition 1.20.1-0.3.2
on 2024 Dec 07需求
- JAVA 17 及以上版本(我正在使用 Adoptium https://adoptium.net/)
- Fabric Loader >=0.14.22
- Fabric API >=0.91.0+1.20.1
- 100% 客户端;无需服务器端部署
更改
- 在运行时检测 Quilt 加载器,如果存在则自动禁用客户端命令注册。
修复
- 连接到 Paper 品牌服务器时,生物群系声音将正确播放。
- 修复播放鞘翅飞行声音的问题。
Dynamic Surroundings: Fabric Edition 1.20.1-0.3.1
on 2024 Dec 07需求
- JAVA 17+(我正在使用 Adoptium https://adoptium.net/)
- Fabric Loader >=0.14.22
- Fabric API >=0.91.0+1.20.1
- 100%客户端;无需服务器端部署
新增内容
- 在 Minecraft 的声音配置选项屏幕中添加了一个按钮,用于访问该模组的单个声音配置菜单。它可以在屏幕的左下角找到。
- 添加了一个选项,当玩家处于创造模式时,启用播放其他情境音乐(如生物群系背景音乐)而不是创造模式音乐。它默认关闭,需要启用。这使得测试资源/模组包更加容易。
- 添加了一个客户端命令 /dsmm ,用于强制重置 Minecraft 的音乐管理器。这将清除正在播放的任何音乐,并设置计时器,以便在几秒钟内进行新的选择。
- 添加了一个选项,禁用客户端命令注册。在尝试在 Quilt 下运行时,或者如果模组包开发者只是想将其默认禁用,这很有用。
更改
- 重新设计了单个声音配置 UI 的显示。目标是精简内容,使信息适合较小的显示器。进行中 - 图标很糟糕。
- 在连接到世界时预加载标签缓存。之前,该模组会以懒惰的方式将条目加载到缓存中,结果是,玩家在出现故障时会遇到延迟卡顿。
- 在启动过程的后期延迟处理资源包/外部配置。
修复
- 当 ModernUI 安装并启用其“启动时发出叮当声”时的启动崩溃。
Dynamic Surroundings: Fabric Edition 1.20.1-0.3.0
on 2024 Dec 07需求
- JAVA 17 及以上(我正在使用 Adoptium https://adoptium.net/)
- Fabric Loader >=0.14.22
- Fabric API >=0.91.0+1.20.1
- 100%客户端;无需服务器端部署
注意
- 我不打算在 1.20.1 版本中添加额外功能。1.20.4 版本将是我的重点。我将根据需要为 1.20.1 制作补丁。
新增内容
- 添加了一个全局选项来禁用恐怖声音。目前,这适用于狼和地下怪物的咆哮。恐怖是主观的,所以我很高兴听到关于该模组中其他声音的意见。这仅适用于 Dynamic Surroundings 生成的声音。如果另一个模组有恐怖声音,您可以在游戏中使用“单个声音控制 GUI”(假设已映射快捷键)来阻止它。
- 添加了环境声音的全局音量缩放设置。这仅适用于 Dynamic Surroundings 音效。旨在提供一个简单的旋钮来增加/减少模组的环境声音音量。
更改
- 重新设计了物品、方块和生物群系的内部标签。该模组不再在 /data 中声明标签。该模组的标签配置已移至客户端资源。(由于该模组是 100%客户端,我有自己的标签扫描代码来加载标签信息。)
- 为 Biomes O'Plenty、Nature's Spirit、Profundis 和 Promenade 添加了资源支持。
修复
- 最小粒子设置可能导致模组在有瀑布效果时崩溃。
- 断开连接并重新连接可能导致生物群系音效丢失。
- 连接到远程服务器时脚步声音效不会播放。



