跳转至内容
  • 版块
  • 最新
  • 热门
  • 标签
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Zephyr)
  • 不使用皮肤
折叠
品牌标识

VariedMC 魔改论坛

半梦半

半梦

@半梦
Packing
关于
帖子
10
主题
4
分享
0
群组
2
粉丝
1
关注
0
Blog

帖子

最新 最佳 有争议的

  • 论坛怎么蓝蓝的
    半梦半 半梦

    论坛现在蓝蓝的欸

    壁画石窟

  • [原创][1.20.1][EidolonJS开发实录]基于链式调用达成在Schema注册中使用回调函数构建配方
    半梦半 半梦

    是幻梦吉斯,我们有救了❤

    灵感大王 forge kubejs 1.20.1 java

  • 【典型案例】崩溃求解答
    半梦半 半梦

    a518faf6-6e0c-4dc1-8062-4dfa2641190a-295C4E22D524B23617F8D8390FD15DC2.png

    做包新人,什么也不懂,加了大概300+模组,然后就这么崩了。请问大佬注入失败是什么意思啊,这个模组对我挺重要的有没有办法不删🥺

    周公解梦

  • 使用数据包修改模组插入的野生作物、植被或生物生成
    半梦半 半梦

    @忆然 在 使用数据包修改模组插入的野生作物、植被或生物生成 中说:

    抢沙发🛋️,再摸摸半梦

    事忆然,啃一口喵

    灵感大王 世界生成 数据包 forge 地物 实体生成

  • 使用数据包修改模组插入的野生作物、植被或生物生成
    半梦半 半梦

    注:本教程适用于forge模组,且可能需要一小点世界生成基础(雾),不过后面也会给出实例与讲解。

    在许多模组中我们都会见到模组插入原版群系的野生作物、植被又或者生物生成等。但这些内容有些时候与整合包需求有所冲突,必须进行修改,可这种修改又一般从何进行呢?

    就拿先前群友的一个例子,禁用农夫乐事的野生作物,即野生胡萝卜等,我们来看看这个改如何操作。

    有一点世界生成基础的开发者可能知道,树、花卉、植被、野生作物包括小型遗迹等,这些群系的“装饰物‘,都被统称为”地物“。而地物是否在一个群系中生成,是写在群系文件中的,如果想要直接向群系写入地物,那么似乎必然要覆盖原本的群系文件。

    问题是,这样不仅工作量庞大,一旦出现两个群系模组双方都覆盖了同一个文件的情况,直接会导致冲突。因此,地物必然不是通过直接写入群系文件的方法插入群系的。

    emm,扯了这么多,终于来到我们的正题,biome_modifier。

    这是一个forge特有的接口,路径位于data/modid/forge/biome_modifier。这其中的json文件即是地物、实体生成等插入群系文件的”通道“。还是以农夫乐事举例,点开jar中相应的文件夹,最后我们会看到以下的内容:

    588d4229-1f2c-4cdf-9e64-5f17fe74aad4-image.png

    这也是老牌模组的一大优点,命名规范清晰,我们可以直接通过命名来判断每个修改器的内容。如果是某些g01.json,a03.json的抽象命名,或许就只能挨个试过去了……

    点开wild_carrots文件,这个显然控制着野生胡萝卜的生成。

    {
      "type": "farmersdelight:add_features_by_filter",
      "allowed_biomes": "#minecraft:is_overworld",
      "denied_biomes": ["minecraft:lush_caves", "minecraft:mushroom_fields"],
      "min_temperature": 0.4,
      "max_temperature": 0.9,
      "features": "farmersdelight:patch_wild_carrots",
      "step": "vegetal_decoration"
    }
    

    嗯,一个平平无奇的json,翻译一下大意基本就能清楚:类型这里采用了农夫乐事自己的一个type,插入的群系是所有主世界群系(主世界群系标签#minecraft:is_overworld),且不会在繁茂洞穴、蘑菇岛两个群系生成。

    温度范围限制……这个可能涉及一些噪声知识,不过只要知道在世界生成时会根据函数跑出每一个点的温度噪声,然后这里就是限制了在温度0.4~0.9才生成就好了。

    最后的"features"以及"step"这个就是地物的知识了,分别代表了放置的地物名称以及到底插入哪个生成步骤。这两行我们在进行修改的时候基本上不可能会碰到。(地物名称你改了那生成的都不是这个地物了,至于步骤,那个几乎和地物本身绑定的,我们修改已有的地物生成,不可能去碰)。

    好的,那么怎么修改呢?如果你要限定生成的群系就修改和群系有关的那两行就可以了,具体步骤就不演示了,用标签或者列表都可以。我们一般接触最多的还是需要直接删除它的生成,简单粗暴。

    这时候就要替换整个文件内容了,把内容换成:

    {
      "type": "forge:none"
    }
    

    是的,就是什么也不做,自然也不会生成地物了。

    然后把修改好的文件用数据包的方式替换掉原文件,不会数据包的可以先简单了解一下,后面我大概率也会稍微讲一点?(雾)

    注:如非必要,务必务必务必不要直接修改jar!这种行为很不好!

    这时候再进入游戏,你会发现野生胡萝卜不会再生成了。

    生物的生成也是一样,这里随便举个例子。

    too_much_bosses,一个非常优秀的mcr模组,不过笨笨作者有个冰花实体的自然生成忘记关了(mcr特色),导致乱刷,这种时候我们就可以直接顺着路径找过去,最后找到文件点开:

    {
      "type": "forge:add_spawns",
      "biomes": {
        "type": "forge:any"
      },
      "spawners": {
        "type": "too_much_bosses:icepoof_maker",
        "weight": 20,
        "minCount": 4,
        "maxCount": 4
      }
    }
    

    不论内容,直接替换成上面写的那一串,什么都不做,这样就不会再乱刷了

    灵感大王 世界生成 数据包 forge 地物 实体生成

  • [原创][KubeJS 6][BrokenClassFilter]关于反射的应用场景与使用实例的论述
    半梦半 半梦

    非常好爆破,使我钱包空空

    妙妙工具 kubejs unsafe 1.20.1 forge

  • 我要为方可梦献上我的心脏!
    半梦半 半梦

    喵喵喵·

    壁画石窟

  • 我永远喜欢kubejs!
    半梦半 半梦

    忆然大蛇(❤ ω ❤)

    壁画石窟

  • 意见反馈专区
    半梦半 半梦

    喵喵喵

    论坛事务

  • 血肉重铸是一个很可爱的模组!
    半梦半 半梦

    香草原初温床❤

    壁画石窟
  • 1 / 1
  • 登录

  • 没有帐号? 注册

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 版块
  • 最新
  • 热门
  • 标签
  • 群组