本篇教程来自MC百科(mcmod.cn) 使用 CC BY-NC-SA 协议。

该文章翻译自该模组github界面wiki部分。

原作者:OreCruncher

原文链接:https://github.com/OreCruncher/DynamicSurroundings/wiki/Let's-Talk-Rain

注意文章修改于2017年3月1日,部分内容可能不具时效性。

 

    在天气方面,Minecraft使用两个时间窗口:

    1、降雨间隔。该间隔决定了降雨的时间长度和两次降雨之间的时间长度。

    2、闪电间隔。该间隔决定了可能生成闪电的时间长度和两次可能生成闪电的时间窗口之间的时间长度。

这两个时间窗口彼此独立运行,这使得下雨的时间窗可能不是打雷的时间窗,而打雷的时间窗也可能不是下雨的时间窗。下雨时,游戏会播放下雨的动画,雨声并调暗天空的亮度等等。如果下雨时正好位于闪电的时间窗内,则会产生一场风暴。这时,天空会更加黑暗,同时每一刻(tick)都有可能有闪电劈下。

    在降雨时间窗开始时,动态环境模组会生成一个降雨烈度值并将其存储于世界数据以外的某处。该信息会被发送至所有在同一维度的玩家以保证他们的降雨烈度值是一样的。基于该值,本模组会做出以下调整:

    1、调整每刻(tick)渲染的雨滴贴图数量。烈度值越高,渲染的贴图越多。

    2、调整玩家周围雨水飞溅粒子效果的数量。烈度值越高,渲染的粒子效果越多。(雨水飞溅的声音也会在此时定义,烈度值越高,飞溅声的密度便越大。)

    当降雨窗口同时也在闪电时间窗口内时,该模组还可以调整一系列与雷电相关的后台事件,该调整对位于同一维度的所有玩家都是有效的。但这些调整发生的前提条件是生成的降雨烈度值等于或者大于设定的阙值(默认数值为75)。当此条件满足时,模组便会播放打雷的背景音,并可能出现闪亮的白光来模拟闪电效果,注意,此模组不会生成闪电,仅仅是模拟了闪电出现的情景。Minecraft自身可以根据其内部逻辑生成闪电实体,但这取决于原版设计,本模组未做改动。

    当风暴停止时降雨也会结束,生成的所有打雷背景音也会停止。

    下面列出了该模组在降雨方面对原版游戏数据进行了修改的地方:

    1、可调节的降雨/闪电间隔。默认情况下,这项设置是基于Minecraft原版数值的。但在需要时,整合包作者可以通过调节动态环境的配置文件来更改降雨/闪电的间隔时间。

    2、为使下界中也可出现天气效果,动态环境模组“欺骗”了游戏原有的天气机制,使其认为下界中也可出现天气变化。这是一个影响非常有限的改动,理论上不会影响任何生物-在下界时,由动态环境模组对每刻的天气进行控制,这部分的代码与其他部分是相对独立的。

    3、为在天空背景中加入雷电的闪光,动态环境模组影响了原版游戏中的实体闪电的数据。这项修改只会发生在客户端内,因此是安全的。

 

注意

    1、可发生后台雷电事件的降雨烈度阙值是可自定义的。将“Rain Intensity for Background Thunder”的数值修改到想要的大小即可。

    2、后台雷电事件是可关闭的。如果在服务端进行了关闭,则所有客户端都不会发生该事件。如果在客户端进行了关闭,则该客户端会无视服务端发送的该项事件,即仅在该客户端关闭雷电事件。

    3、现在打雷的声音由动态环境模组提供。

    4、如果同时安装了局部气候&风暴模组,则本模组的降雨机制则会关闭。局部气候&风暴模组提供了大量天气调整,这些与动态环境模组时相互冲突的。