• >
  • 魔改Mod
  • >
  • [JED]维度配置 (Just Enough Dimensions)
[JED]维度配置 (Just Enough Dimensions)
模组属性评比

距离显示结果还剩5票~

路过的这位少侠,你觉得这款Mod怎么样,可否愿意来评一评它呢?登录并评比
更新日志
  • 暂无日志..

历史编辑记录更多
    管理组

      暂无管理组..

    编辑组

      暂无编辑组..

    开发组申请

      暂无开发组..

    停更
    开源
    [JED]

    维度配置

    Just Enough Dimensions

    0.0

    无人问津

    昨日指数: 14
    昨日平均指数: 83.872

    3.54万

    总浏览

    --

    资料填充率


    如何下载?
    • 介绍

      Just Enough Dimensions 允许在游戏内注册新的自定义维度,也能调整现有维度的设置。
      例如可以调整开启每个维度单独的世界边界,让地狱的边界是主世界的 1/8 而不是一样大。或者改变天空/雾/云的颜色或者渲染高度。

      在 1.6.0 版本,也能在世界创建的时候直接改变已有的设置,例如生成器设置的世界类型(例如生成超平坦/虚空世界(虚空世界也是超平坦的一种)),又或是直接设置一些游戏规则(虽然 1.6.0 以前也能实现,但是不是十分有效)。

      注意:由于维度 id 在 Forge 和原版中有处理过程,而且自定义选项需要进行网络数据交换,所以客户端也需要安装该模组。
      概览

      所有维度的注册和设置都通过一个 JSON 文件进行。游戏内也有一个命令"dimbuilder"来创建/注册维度,或者修改之前增加过的维度的设置,还能改变大多数配置文件存储的项目值(并不是所有值,例如光照表或者群系颜色改变,这些只能通过 dimensions.json 文件来设置)。

      维度的注册和已有维度的设置都是通过"config/justenoughdimensions/dimensions.json"进行修改;

      或者是 "worlddirectory/justenoughdimensions/dimensions.json",后者具有优先性。
      关于 JSON 格式

      如果你只是了解 JSON 格式,或者只想检查格式正确性,可以通过一些网站来检查内容的合法性,比如:https://www.bejson.com/explore/index_new/

      当然某些文本编辑软件的插件也是有效的,比如 Notepad++ 的 JSONViewer。

      JED 1.6.0 的设置改变

      如果你是用的 1.6.0 的开发版本,它和之前的版本的 dimension.json 在设置上有些不同。

      有些 JED 设置的标签被移除或者改名了,有些其他的设置项也改名了

      过去内置于 worldinfo 标签内的被叫做 JED 的标签,现在更名为小写的 jed,而且移出了 worldinfo 标签,直接隶属于 per-dimension 对象。

      1.6.0 开发版的所有更改:https://pastebin.com/raw/28jeWZyv

      大量不同设置示范案例:https://pastebin.com/u/masa-

      不同特性的示范案例: https://pastebin.com/m9xYSHZd


      配置选项和基础自定义维度注册

      模组的 cfg 文件内有少许设置选项,用来开启现有功能。

      注意:为了以防万一,它们都是默认关闭的!

      • enableForcedGameModes

        自动转换玩家的游戏模式到每个维度各自的设置,如果该维度有设置ForcedGameMode选项。

      • enableInitialSpawnDimensionOverride

        开启初始世界在其他维度(在 initialSpawnDimensionId一项设定)的设置。

      • enableLoggingInfo

        开启记录信息。会产出大量运行信息,需要查问题的时候可以打开寻找问题。

      • enableOverrideBiomeProvider

        如果开启了,维度设置中的"biome" : "name"的键值对会使用 BiomeProviderSingle 覆盖该维度的 BiomeProvider,直接使用给定的群系,"name 字段" 必须是 ResourceLocation 里面注册过的群系字段,例如 "minecraft:plains"(或者直接用"plains"一样可以调用原版的群系)。

      • enableReplacingRegisteredDimensions

        如果开启,dimensions.json中维度设置内的override": true键值将会用于覆盖已有的维度。注意:若果想有效覆盖,当JED执行注册和覆盖操作的时候该维度不能被加载。

      • enableUnregisteringDimensions

        如果开启,dimensions.json 中维度设置内的 "unregister": true 键值生效,用于卸载已有的维度,比如禁用地狱和末地。

      • enableSeparateWorldBorders

        如果开启,可以增加自定义的世界边界,取消其他维度和主世界的边界同步(注意:如果想使用各自独立的世界边界,你还需要在维度设置中增加 "worldinfo" 字段,至少是一个空字段以开启独立设置)。

      • enableSeparateWorldInfo 

        如果开启,所有存在于 dimensions.json 中有 "worldinfo" 字段的维度将使用各自独立的 WorldInfo 设置,空字段也可。即使不被此模组注册的维度同样生效(因为该维度已存在且未被覆写)。

      • initialSpawnDimensionId

        设置玩家首次加入服务器/进入世界时出生的维度。


      维度的注册和已有维度的设置都是通过 "config/justenoughdimensions/dimensions.json"进行改变;

      或者是 "worlddirectory/justenoughdimensions/dimensions.json",后者具有优先性。

      示例

      以下是一个简单的例子用来注册一些自定义维度(换行符和间隔符不是必须的)

      {
          "dimensions": [
              {
                  "dim": 9,
                  "dimensiontype": {
                      "id": 9,
                      "name": "Test dim 9",
                      "suffix": "_dim9",
                      "keeploaded": false,
                      "worldprovider": "WorldProviderSurface"
                  }
              },
              {
                  "dim": 10,
                  "dimensiontype": {
                      "id": 10,
                      "name": "Test dim 10",
                      "suffix": "_dim10",
                      "keeploaded": false,
                      "worldprovider": "WorldProviderHellJED"
                  }
              },
              {
                  "dim": 11,
                  "dimensiontype": {
                      "id": 11,
                      "name": "Test dim 11",
                      "suffix": "_dim11",
                      "keeploaded": false,
                      "worldprovider": "WorldProviderEndJED"
                  }
              },
              {
                  "dim": 15,
                  "dimensiontype": {
                      "id": 15,
                      "name": "Test dim 15",
                      "suffix": "_dim15",
                      "keeploaded": false,
                      "worldprovider": "biomesoplenty.common.world.WorldProviderHellBOP"
                  }
              }
          ]
      }

      字段解释

      "dim": <int>,
      //维度的 ID,整型,必须有。
      "dimensiontype": {
      //包含世界的生成信息,含有若干子项。
          "id": <int>,
          //DimensionType ID,一般用于传送/传送门的代码,决定了传送是否能开启以及如何传送实体。
          "vanilladimensiontype": "<DimensionType>",
          //如果该项存在,将会使用设置的(已有的)DimensionType 来创建世界而不是新建一个,下面的所有项将被忽略。
          "name": "<WorldName>",
          //世界的名字,可能会被某些 Mod 的传送相关道具使用。
          "suffix": "<suffix>",
          //一般用于现有的文件名,因此不要使用空格或者其他什么特殊的字符,最好像示例中写的那样。
          "worldprovider": "<WorldProvider>",
          //世界生成器名称,可以使用其他 Mod 的世界生成器但是需要完整的路径名。
      }

      "unregister": <bool>,
      //为真时将卸载这个维度,忽略其他所有设置,需要打开 enableUnregisteringDimensions。
      "override": <bool>,
      //为真时将用此设置覆盖已有维度的设置,需要打开 enableReplacingRegisteredDimensions。
      "disableteleportingfrom": <bool>,
      //为真时将不能从此世界传送出去。
      "disableteleportingto": <bool>,
      //为真时将不能传送进入此世界。
      "biome": "<BiomeName>",
      //将会覆盖 worldprovider,整个世界将会只有设置的群系。
      "colors":<object>
      //设置染色,类似群系的染色

      各自独立的世界信息设定

      JED 可以让不同维度使用不同的 levels.dat,以让不同维度拥有不同的种子、世界类型、生成器,例如你可以在主世界是 RTG 生成的时候建立一个用 BOP 生成的附属世界,需要开启 enableSeparateWorldInfo,并且至少有一个 worldinfo 的空字段。

      注意:如果没有各自独立的世界信息设置,tpj 命令将会把你传送到危险的地方,因为不同的世界使用的是同一个出生点坐标,所以建议开启。

      字段解释:很多字段没有解释,但是自己建立一个心仪的世界,然后用 nbt 编辑工具打开 levels.dat 看往上面抄就行,注意所有项都是大小写区分的。

      "worldinfo": {
          "RandomSeed": "<seed>",
          //设置生成种子
          "generatorName": "<GeneratorName>",
          //生成器名称,例如default(默认),flat(超平坦),amplified,largeBiomes,debug_all_block_states,BIOMESOP(需要安装biomesO'plenty)、RTG(需要安装Realistic Terrain Generation)
          "generatorOptions": "<option>",
          //生成器设置,可以在levels.dat里面找到,BOP也提供了一键导出,注意这是一个字符串字段,里面的所有引号之前需要加转义符"\",例如下面这个RTG的设置
          //"{\"villageSize\":5,\"mineShaftChance\":0.01,\"dungeonChance\":20,\"templeDistance\":16,\"monumentSpacing\":16,\"monumentSeparation\":3,\"mansionSpacing\":40,\"mansionSeparation\":10,\"strongholdCount\":256,\"strongholdDistance\":16,\"strongholdSpread\":4}"
          "generatorVersion": "<version>",
          //当前世界类型可能会分版本(原文如此),生成器是defult这里必须是1,或者直接使用defult_1_1这个生成器名称
          "GameType": <int>,
          //游戏类型,生存/创造/HC
          "GameRules": <RulesObject>,
          //和generatorOptions不一样这是个JSON对象字段,所有项目都是键值对的形式,举个例子
          //{"commandBlocksEnabled":true,"doFireTick":false,"mobGriefing":false,"universalAnger":false}
          "MapFeatures": <>,
          "SpawnX": <int>,
          "SpawnY": <int>,
          "SpawnZ": <int>,
          "Time": <int>,
          //最好不要设置,不然每次载入世界都会覆盖到设定的值
          "DayTime":  <int>,
          "LastPlayed": <int>,
          "LevelName": "<LevelName>"
          "clearWeatherTime": <int>,
          "rainTime": <int>,
          "raining": <bool>,
          "thunderTime": <int>,
          "thundering": <bool>,
          "hardcore": <bool>,
          "allowCommands": <>,
          "Difficulty": <int>,
          "DifficultyLocked": <bool>;
          "BorderCenterX": <int>,
          "BorderCenterZ": <int>,
          "BorderSize": <int>,
          "BorderSizeLerpTime": <int>,
          "BorderSizeLerpTarget": <int>,
          "BorderSafeZone": <int>,
          "BorderDamagePerBlock": <int>,
          "BorderWarningBlocks": <int>,
          "BorderWarningTime": <int>
      }

      或者你可以使用 "worldinfo_onetime" 代替 "worldinfo",这样不会每次载入世界都会覆写一遍,而是只有在创建的时候写入
      JED 特有设置

      在 "worldinfo" 字段下还可以添加 JED 字段来增加一些独特的设置,必须使用 WorldProviderSurfaceJED 这个生成器,这些设置无法作用于 "worldinfo_onetime"。

          "JED": {
              "ForceGameMode": <bool>,
              //强制转换模式,需要打开enableForcedGameModes,当玩家进入该维度是强制转换玩家的游戏模式
              "CustomDayCycle": <bool>,
              //是否开启自定义昼夜循环
              "DayLength": <int>,
              //白天持续的游戏刻
              "NightLength": <int>,
              //晚上持续的游戏刻
              "CloudHeight": <int>,
              //云的高度
              "SkyColor": "<HEXRGB>",
              "FogColor": "<HEXRGB>",
              "CloudColor": "<HEXRGB>",
              "SkyRenderType": <int>,
              //1为普通世界,2为末地
              "SkyDisableFlags": <int>,
              //可以取消某些星体,1=太阳,2=月亮,3=太阳和月亮,4=星星,5=太阳和星星,6=月亮和星星,7=所有
              "CanRespawnHere": <bool>,
              //是否可以在本维度重生
              "RespawnDimension": <int>
              //如果上一项为false则在这一项设置重生的维度
          }
    • 使用JED删除已经存在的维度

    短评加载中..