截图
介绍
描述
Just Enough Dimensions(下文简称 JED)是一个允许在游戏中注册新的自定义维度的模组,也可以仅用于调整和配置现有维度的某些属性。
以下是一些可以对现有维度进行的调整示例:
- 为每个维度单独设置世界边界(也就是说,所有维度不必都使用与主世界相同的边界)
- 为每个维度单独设置难度(\*)、游戏规则、白天时间、昼夜周期长度、世界种子、天空和/或雾和/或云的颜色,或云层渲染高度
\* 由于部分原版代码的工作方式,单人游戏中的维度独立难度存在问题。不过,在多人游戏服务器上应该可以正常使用。
从版本 1.6.0-dev.??? 起,也可以使用 JED 在世界首次创建时强制应用某些设置。例如,设置生成器的世界类型(比如创建超平坦世界或虚空世界[后者也只是超平坦世界的一种形式]),或设置某些游戏规则。(在 1.6.0 之前也能实现这一点,但方式不太一样,也不够简洁。)
注意:由于原版和 Forge 处理维度 ID(以及 WorldProvider)的方式,以及与渲染相关的自定义选项,这个模组也必须安装在客户端,而不能只安装在服务器上。
配置文件位置
所有维度注册和配置都通过一个简单(?)的 JSON 配置文件完成,文件位于 config/justenoughdimensions/dimensions.json。此外,还有一些用于启用特定功能的“全局”配置和切换选项,它们通过位于 config/justenoughdimensions/justenoughdimensions.cfg 的配置文件进行设置。下文将把这个文件称为 JED 主配置。
本模组也支持按世界存档分别设置配置(以便在同一个游戏实例或整合包的不同世界中使用不同设置)。
在这种情况下,配置文件会放在世界目录中,路径分别为 <worlddirectory>/justenoughdimensions/dimensions.json 和 <worlddirectory>/justenoughdimensions/justenoughdimensions.cfg。
如果这些文件存在,并且已在“全局”JED 主配置(位于常规配置目录中)中启用按世界配置,那么这些文件的优先级将高于配置目录中的常规配置文件。
配置文件结构概览
本节概述配置文件的大致结构。更详细的说明见下文。
提示:我在 Pastebin 上提供了很多不同的配置示例,地址在这里:masa 的 Pastebin。
JED 主配置 justenoughdimensions.cfg
JED 主配置包含一些用于启用特定功能和覆盖设置的切换选项,其中有些选项(例如 B:enableOverrideWorldProvider=true)对于模组的许多配置选项正常生效至关重要。
另一个重要(或至少非常实用)的选项是 B:enableLoggingInfo=true。我建议你在整合包开发或测试 JED 配置时始终启用此选项。
启用此选项后,JED 会在游戏控制台/日志中输出大量(但不会特别刷屏……)有用的调试信息,帮助你了解 JED 在何时、使用哪些值执行了哪些操作(或没有执行哪些操作)。
主配置还包含用于启用按世界存档配置功能的选项。必须在“全局”JED 主配置中启用这些选项,模组才会尝试从按世界存档配置目录读取配置文件。
维度配置 dimensions.json
dimensions.json 配置文件是 JED 用来了解如何处理各个维度的唯一配置文件。
你想要注册或以某种方式配置的每个维度,都需要在此配置文件中定义并说明。
此配置文件的主体结构很简单:只有一个名为 dimensions 的维度定义 JSON 数组,外加一个可选的 config_version 对象。该对象与每个世界存档的配置处理有关,在大多数情况下可以忽略并省略。
dimensions 数组中的每个条目都应是一个 JSON 对象,用于说明如何处理对应的维度。
每个维度条目中最常见、最重要的键(配置值名称)包括:
dim(int) – 此条目对应的(Forge)维度 IDdimensiontype(object) – 定义要注册的维度类型。override(boolean) – 启用对现有维度的覆盖worldinfo(object) – 存储在level.dat文件中的所有值worldinfo_onetime(object) – 与worldinfo相同,但仅在首次加载该维度时应用- 注意:大多数情况下,建议使用
worldinfo_onetime,而不是worldinfo! jed(object) – 此对象包含大多数 JED 专属选项
下文将详细介绍这些选项,并列出其余所有选项。
配置详细说明
dimensions.json 顶层键
本节介绍维度配置对象中的“顶层”键/选项(即未嵌套在其他对象中的选项)。
其中有些选项本身也是对象,有些(例如 jed)还包含许多可用的键/选项;这些内容将在下文另行说明。
请注意,此处所有 boolean 类型选项的默认值均为 false;如果不打算使用它们,就无需指定。
其他选项基本也是如此:不需要指定不打算使用的选项。
特别需要注意的是,只要 worldinfo 或 worldinfo_onetime 中任意一个存在(即使它是空对象),就会为该维度启用“WorldInfo 覆盖”功能(详见下文)。
最常见的选项
dim(int) – 此条目对应的(Forge)维度 ID。该值为整数,且每个维度都有唯一的 ID。每个维度配置条目都必须包含此值,否则条目不会生效,因为它没有指定目标维度。原版维度 ID 分别为:主世界0、下界-1、末地 `1´。dimensiontype(object) – 定义要注册的维度类型。- 如果要注册新维度,或替换/覆盖现有维度,则维度条目应包含此值
- 如果只是要覆盖某个已有维度(原版或其他模组添加的维度)的部分设置,而不覆盖整个维度,则无需此值
- 此
DimensionType对象(MCP 映射中的名称)仅定义该维度的少量基本设置: id(int) – “维度类型 ID”(原版中这是唯一的维度 ID;但在 Forge 中,它与“实际维度 ID”是分开的,而且“维度类型 ID”不必唯一)name(string) – 维度名称。此名称对许多功能并不重要,主要显示在与传送相关的物品和功能中。keeploaded(布尔值)- 是否允许卸载该维度的出生区块。- 请注意,这不是区块加载选项。它控制的是原版出生区块的行为(可以理解为主世界的出生区块)。
- 简单来说,如果此选项为
true,那么在某些机制加载了出生区块后,出生区块将不允许卸载。 - 此选项不会自动加载出生区块。如果同一维度中没有玩家(对于方块实体),或附近没有玩家(对于实体),它也不会让这些区块持续运转。
worldprovider(字符串)- 这是这里最重要的选项。它是要使用的 WorldProvider 类名。很多情况下,你需要使用 JED 的三种 WorldProvider 变体之一;要让jed对象中的大多数(但不是全部)配置选项生效,就需要使用它们。require_exact_match(布尔值)- 这是 JED 的选项,用于控制是否必须让所有值完全匹配,还是允许 JED 使用预先注册的通用DimensionType实例,即使它们的name和id不同。- 名称和 ID 通常没那么重要,因此重复使用这些预先注册的实例,可以避免一些问题:游戏启动后注册的
DimensionType条目可能无法正常工作。 - 据说,导致此类问题的原因之一是安装了 Optifine。这是因为原版代码中的
DimensionType是一个 Java 枚举,按设计不应在运行时修改。因此,如果 JIT 已经将values()方法优化为返回此前固定的值列表,那么之后添加新条目可能就无法生效。据说 Optifine 会频繁调用values()方法,导致 JIT 很快就将其优化掉。这意味着游戏启动一段时间后再尝试注册新维度就会失效。为此,JED 会提前预注册少量DimensionType值,并在可能时使用它们(关键在于worldprovider和keeploaded的值都要匹配,因为这两项会显著改变行为)。 override(布尔值)- 如果此选项为true,且此 ID 已存在维度,那么该维度将被此维度覆盖。使用dimensiontype选项定义要注册的维度类型。worldinfo(对象)- 可设置原版WorldInfo类(MCP 名称)中保存的任意值。- 如果存在此值(或
worldinfo_onetime),也会启用此维度的“WorldInfo 覆盖”功能。若未启用覆盖,这些设置对除主世界之外的大多数维度都不会生效。 - 这些值在原版中存储于
level.dat文件,JED 则将其存储在jed_level.dat文件中。 - 这些值包括:该维度的出生点、世界种子(
RandomSeed)、世界类型(generatorName)和世界生成器设置(generatorOptions)、难度、游戏规则、游戏类型(游戏模式)、时间设置、天气计数器、世界边界设置以及其他一些内容。下文将列出所有选项。 worldinfo_onetime(对象)- 与worldinfo相同,但这些值只会在该维度首次加载时应用一次。- 大多数情况下,你应该使用此选项,而不是
worldinfo。 - 只有在以下情况中,才需要使用
worldinfo而不是worldinfo_onetime: - 如果你确实希望每次加载该维度时都重置这些设置
- 如果服务器正在运行 Sponge,那么
generatorName和generatorOptions的值(不知为何)会在后续加载维度时被重置,因此你需要每次都使用worldinfo设置它们 jed(对象)- 此对象可包含大量用于配置维度行为和属性的 JED 专属选项。可能选项的完整列表请见下文。- 此对象中的大多数(但并非全部)选项都要求该维度使用 JED 的某个 WorldProvider 变体。这是因为许多配置是通过重写
WorldProvider类中的原版方法实现的:这些变体会检查 JED 维度配置中是否定义了相应的值;如果没有定义,则继续采用原版行为。
其余选项(可能较少使用)
biome(字符串)- 如果设置了此选项,JED 会强制该维度使用原版单一生物群系BiomeProviderSingle。- 该维度中的所有区域都只会有一种生物群系。不,你不能在这里指定多个生物群系。我知道许多用户想要此功能,但原版单一生物群系提供器就是如此——所有地方都使用同一种生物群系。
biomeprovider(字符串)- 强制使用指定的 BiomeProvider 类。- 请注意,此选项的用途可能有限,因为模组添加的 BiomeProvider 可能使用自定义构造函数,这意味着 JED 不知道如何创建其实例。
- 添加此选项主要是为了更好地兼容 Painted Biomes 模组。若要使用它,请设置值
fi.dy.masa.paintedbiomes.world.BiomeProviderPaintedBiomes。 chunkgenerator(字符串)- 使用指定的类覆盖 ChunkGenerator。disable_teleporting_from(布尔值)- 如果为true,则会使用 Forge 传送事件取消所有离开此维度的传送。- 请注意,并非所有模组都一定会使用或遵循此事件,而且传送命令仍然有效。
disable_teleporting_to(布尔值)- 如果为true,则会使用 Forge 传送事件取消所有前往此维度的传送。- 请注意,并非所有模组都一定会使用或遵循此事件,而且传送命令仍然有效。
load_on_start(布尔值)- 如果为true,则该维度会比平时更早注册,因此会在服务器启动期间由原版/Forge 加载。- 通常没有必要无故加载该维度。某些特殊情况下可能需要这样做,但默认情况下请不要设置此选项。
normal_biomes(布尔值)- 强制该维度使用原版主世界的常规生物群系提供器。- 这样你就可以在下界或末地中获取主世界的生物群系(即保存在世界中的生物群系值),不过这些维度使用各自的 ChunkGenerator,而它们在生成地形时并不考虑生物群系。
- 一个更实用的例子是在“超平坦”维度中使用此选项,该维度通常使用单一生物群系提供器。启用此选项后,平坦世界中也能生成常规生物群系。
post_deletion_command(字符串)- 临时维度删除后要运行的命令(见下文)。spawn_structure(对象)- 首次加载该维度时,在世界中放置一个结构/原理图temporary_dimension(布尔值)- 如果为true,则该维度将被视为“临时维度”:当所有玩家离开该维度,且该维度可以卸载时(即没有区块被强制加载),它就会被删除。这对某些需要重置的任务维度等情况可能很有用。unregister(布尔值)- 如果为true,则会注销已存在的维度。- 注意:无法注销主世界。原版和模组代码中有很多内容都假定主世界始终处于加载状态,因此这样做会导致游戏完全无法运行。
- 注销其他原版维度时也要小心。有些模组在注销下界或末地后也会出问题。
- 如果你想禁止进入原版维度,与其彻底注销维度,不如将其覆盖为空虚维度、使用
disable_teleporting_to选项,并且或许还可以设置虚空/天空传送选项,以便立即传送走任何设法进入其中的玩家。 world_template(字符串)- 允许使用模板世界(随模组一同放在配置目录中)。首次加载该维度时,模板世界会被复制到该维度的存档位置。- 不过,由于 1.12.2 及更早版本的游戏仍采用每个世界各自的全局方块 ID,因此你不能随便对任何维度“直接这么做”;不同模组世界中的方块 ID 可能而且确实会有所不同。这基本上意味着,你需要从同一个源世界获取所有此类模板维度,确保它们的方块 ID 相同;同时还需要为主世界(即维度 0)提供模板,其中包含源世界的
level.dat文件,该文件保存了 Forge 方块注册表(以及所有其他注册表)。但接下来你还需要一些worldinfo_onetime覆盖设置;你至少很可能会想把世界时间重置为零,也可能需要随机生成世界种子,以免所有世界都一模一样。此外,你可能还需要手动编辑level.dat文件,删除玩家数据标签,这样单人游戏中的玩家才不会总是在模板世界中的同一位置生成,并携带原模板世界里的相同物品栏。 - 总而言之:此功能存在不少问题。大多数情况下,你可能不应该使用它。
dimensions.json -> spawn_structure
spawn_structure 选项允许你指定一个原版结构方块模板文件或一个蓝图文件。首次加载维度时,该文件会相对于该维度的出生点放置到世界中。
蓝图文件应放在 config/justenoughdimensions/structures/name.<schematic | nbt>,例如 config/justenoughdimensions/structures/spawn_house.nbt。
可以通过以下任一方式创建蓝图文件:
- 使用 World Primer 模组的
/worldprimer create-structure命令 - 使用 Litematica 模组
- 使用原版结构方块(不过保存时每边最多只能有 32 格)
- 使用 Schematica 模组
我推荐使用 World Primer 或 Litematica,不过我对它们可能有点偏爱……但原版结构方块确实有上面提到的尺寸限制,而且我不记得 Schematica 模组是否也有这个限制,或者它能否保存为原版格式。
实际上,这两种结构文件格式都不是最适合这种情况的。不过我还没有添加对 Sponge 结构文件格式或 Litematica 结构文件格式的支持(暂时还没有?)。
原版格式极其占用内存,结构体积超过大约 100x100x100 个方块后,就可能遇到严重的内存占用问题,甚至导致服务器崩溃。
而旧版 *.schematic 格式在游戏中方块数量较多时扩展性不佳,而且仍依赖旧的“魔法元数据”。如果你使用 NEID、JEID 或其他扩展方块 ID 数量、使其超出 0..4095 范围的模组,这种格式就无法使用。
简而言之,如果结构较小(例如体积约为 100x100x100 个方块或更小),或者你使用 NEID、JEID 或其他扩展方块 ID 范围的模组,请使用原版 *.nbt 格式。其他情况下,可以使用 *.schematic 格式,以获得更好的内存效率和性能。
下面是一个“伪 JSON”示例,展示了可能使用的键和值(主要是旋转和镜像选项)。
"spawn_structure": {
"name": "spawn_house.nbt",
"rotation": "<none | cw_90 | cw_180 | ccw_90>",
"mirror": "<none | left_right | front_back>",
"centered": <true | false>,
"offset": [0, -4, 0],
"load_around": 16
}
rotation 和 mirror 选项的默认值都是 none,因此如果不需要旋转结构,就无需指定它们。centered 的默认值为 false,但这个选项通常很有用:它会将结构的水平位置对齐到该维度的出生点(再加上指定的 offset)。offset 选项可以调整结构相对于该维度出生点的位置。
load_around 选项用于指定在开始放置结构前,需要预加载其周围多少个方块(实际会按完整区块的范围扩大)。这有助于避免地形生成覆盖刚放置好的结构:加载相邻区块时,会形成 2×2 的已加载区块区域,从而触发这些区块中央 16×16 个方块范围内的地形生成。
下面是一个实际有效的示例。由于没有使用 mirror 选项,因此省略了它。
"spawn_structure": {
"name": "spawn_house.nbt",
"rotation": "cw_90",
"centered": true,
"offset": [12, -9, -8],
"load_around": 16
}
JED 选项
请注意,大多数选项都需要使用某个自定义 JED 世界提供器才能生效。
TODO: 添加无需 JED 世界提供器即可生效的选项列表。
AverageGroundLevel(int) – ?CanDoLightning(boolean) – 启用/禁用闪电(以及骷髅陷阱马)CanDoRainSnowIce(boolean) – 启用/禁用水结冰、降雪,以及下雨时方块(如炼药锅)蓄水。- 下雪和方块蓄水还取决于
HasSkyLight;该选项会影响天气/降雨是否能够发生。 CanRespawnHere(boolean) – 玩家死亡后能否在此维度重生CanSleepHere(string) – 可选值为allow、deny或bed_explodesCanSpawnHostiles(boolean) – 使用此值覆盖基于常规难度的生物生成行为(和平难度与其他难度)CanSpawnPeacefulMobs(布尔值)- 覆盖默认值:在极限模式和单人游戏中默认为true;在服务器上则由server.properties中的spawn-animals设置决定CelestialAngleMin(浮点数,0.0 .. 1.0)- 使用自定义天体角度范围(需同时设置最小值和最大值才会生效)CelestialAngleMax(浮点数,0.0 .. 1.0)- 使用自定义天体角度范围(需同时设置最小值和最大值才会生效)ChunkGenFactoryWorldProvider(字符串)- 在维度加载期间临时覆盖世界提供器;仅用于创建模组提供的ChunkGenerator,之后该生成器会与其他世界提供器配合使用CloudColor(十六进制颜色字符串)- 云朵的颜色CloudHeight(整数)- 云朵的渲染高度CloudRenderer(字符串)- 自定义云朵渲染器类的完全限定类名CustomDayCycle(布尔值)- 启用自定义昼夜周期长度。通过DayLength和NightLength设置白天和夜晚的时长。DayCycleIncrement(整数,默认值 = 24000)- 使用DayTimeMin和DayTimeMax选项时,每个昼夜周期增加的世界时间刻数。DayLength(整数)- 自定义白天时长;仅当CustomDayCycle为true时生效DayTimeMin(整数,0 – 23999)- 使用自定义世界时间范围。此选项可能会导致某些功能表现异常……需同时设置最小值和最大值才会生效。DayTimeMax(整数,0 – 23999)- 使用自定义世界时间范围。此选项可能会导致某些功能表现异常……需同时设置最小值和最大值才会生效。DisableDawnDuskColors(布尔值)- 禁用地平线处日出和日落时天空/雾的颜色变化DisableEnderDragon(布尔值)- 使用虚设类覆盖DragonFightManager,禁用与末影龙相关的功能。需要WorldProviderEndJED。DisableEndSpikes(布尔值)- 使用ChunkGeneratorEndJED,禁用末地尖刺(黑曜石塔)的生成。需要WorldProviderEndJED。DontAdvanceWeatherWhenSleeping(布尔值)- 阻止玩家睡觉度过夜晚时天气转晴FogColor(十六进制颜色字符串)- 雾效的颜色。FoggyBiomes(对象)- 指定哪些生物群系有雾或没有雾。详情见下文。ForceGameMode(布尔值)-GenerateFallbackSpawnBlock(布尔值)- 如果为true,且 JED 找到的出生点位于空中(虚空维度),则会在出生点正下方放置一个玻璃方块HasSkyLight(布尔值)- 会影响天气和光照计算等内容HasXZFog(布尔值)- 玩家周围会渲染(浓)雾Horizon(浮点数)- 地平线的高度(用于天空渲染)IgnoreSpawnSuitability(布尔值)- 如果为true,在为该维度查找出生点时,不检查生物群系是否适合生成,也不尝试寻找可供生成的草方块(适用于overworld出生点搜索类型)IsSurfaceWorld(布尔值)- 指定指南针和时钟模型的表现;启用云朵和天空渲染、(原版)睡觉功能,以及猪灵从传送门生成LightBrightness(恰好包含 16 个浮点数的数组)-MoonColor(十六进制颜色字符串)- 月亮的颜色MoonScale(浮点数)- 月亮渲染的缩放系数MovementFactor(float) – 下界传送门的缩放系数MusicType(string) – 此维度应使用的环境音乐类型。你可以通过 TellMe 模组中的 musictype dump 获取可用值列表。NightLength(int) – 自定义夜晚时长,前提是CustomDayCycle为truePlayerInventoryGroup(string) – 启用 JED 玩家物品栏切换功能时,此维度应使用的物品栏组。RespawnDimension(int) – 当CanRespawnHere为false时,玩家重生所在的维度ShouldClientCheckLight(boolean) – 客户端是否应检查/重新计算接收到的区块中的光照数据SkyBlend(float) – ?SkyColor(hex color string) – 天空的颜色SkyDisableFlags(int) – 使用SkyRenderType时,用于禁用太阳、月亮或星星的位掩码 ??(0x1, 0x2, 0x4)SkyLightBlend(float) – 控制天空颜色与光照等级的混合程度,因此夜晚也可以呈现彩色天空。范围:0.0 – 1.0,默认值 = 1.0(正常光照混合)。SkyRenderer(string) – 自定义天空渲染器类的完全限定类名SkyRenderType(int) –SpawnPointSearchType(object) – 用于自定义出生点搜索代码的行为及其使用的算法SunBrightness(float) – ?SunBrightnessFactor(float) – ?SunColor(hex color string) – 太阳的颜色SunScale(float) – 太阳渲染的缩放系数VoidTeleportInterval(int) – 使用void_teleport和sky_teleport选项时,检查实体是否需要从虚空或天空传送出去的间隔,单位为游戏刻。默认值为 40 刻(2 秒)。WaterVaporizes(boolean) – 覆盖水是否会蒸发的设置(例如使用水桶或冰融化时,如同下界)WeatherRenderer(string) – 自定义天气渲染器类的完全限定类名WorldBorderCenteredOnSpawn(boolean) – 如果为true且该维度使用 WorldInfo 覆盖,则世界边界将以该维度的出生点为中心WorldProviderOverride(string) – 允许“手动”覆盖 WorldProvider,而无需使用带有正确 provider 的自定义DimensionType条目
jed -> SpawnPointSearchType
此选项允许你指定出生点搜索算法以及出生点允许的 y 坐标范围。
任何使用 WorldInfo 覆盖的维度都会自动搜索出生点。这样一来,如果玩家被传送到该维度的出生点,该位置应该会是一个安全地点。如果不想进行此搜索,请使用类型 none。
type(string) – 可选值为overworld、cavern或none。默认情况下,Nether 维度使用cavern类型。none会跳过该维度的出生点搜索,并使用主世界的出生点。min_y(int) – 搜索的最低 Y 坐标。cavern类型默认为30,overworld类型默认为1。max_y(int) – 搜索的最高 Y 坐标。cavern类型默认为120,overworld类型默认为区块最高已填充区段的顶部 + 1。
示例:
"SpawnPointSearchType": {
"type": "cavern",
"min_y": 40,
"max_y": 100
}
jed -> sky_teleport 和 void_teleport 选项
天空传送和虚空传送功能可在实体超过或低于指定的 Y 高度限制时,将其传送离开该维度。
当实体高于配置的 trigger_y 高度时,天空传送变体会触发。
当实体低于配置的 trigger_y 高度时,虚空传送变体会触发。
以下是展示可用选项的“伪 JSON”示例:
"<sky | void>_teleport": {
"dimension": 10,
"trigger_y": -10,
"find_surface": <true | false>,
"remove_fall_damage": <true | false>,
"fall_distance": 4.5,
"min_health_left": 1,
"teleport_type": "<same_location | fixed_location | spawn | scaled_location | relative_location | scaled_relative_location>",
"scale": [8, 1, 8],
"fixed_location": [256, 64, 256],
"relative_location": "~ 256 ~+32"
}
dimension(int) – 实体将被传送到的目标维度trigger_y(int) – 触发传送的 y 高度界限。(sky = 高于此高度,void = 低于此高度)find_surface(boolean) – 如果为true,传送代码会将实体放置在地面上(位于配置位置上方或下方),而不是将其准确放在配置的位置。remove_fall_damage(boolean) – 传送时是否完全移除摔落伤害。(这个功能原本是怎么运作的来着?如果实体在传送后摔落呢?)fall_distance(float) – 如果不存在remove_fall_damage,但存在此键值对,则处理传送时的摔落伤害会使用此值作为摔落距离。min_health_left(int) – 如果存在此值,则会限制最大摔落伤害/距离,以确保实体至少剩余这么多生命值。teleport_type(string) – 可选值之一:same_location、fixed_location、spawn、scaled_location、relative_location、scaled_relative_locationsame_location– 实体将被传送到目标维度中的相同坐标处(触发传送时)fixed_location– 实体将被传送到目标维度中给定的确切固定位置spawn– 实体将被传送到目标维度的出生点scaled_location– 实体将被传送到一个位置,该位置由其当前坐标乘以scale中给定的比例因子计算得出。relative_location– 实体将被传送到相对于其当前位置的位置。你可以在relative_location中指定原版命令风格的相对偏移量。scaled_relative_location– 实体将被传送到一个同时经过缩放且相对于其当前位置的位置。(TODO:是先进行缩放,再应用相对偏移量,对吗?)scale(array of 3 floats) – 用于scaled_location和scaled_relative_location。这是实体从当前维度的位置转换到目标维度位置时使用的坐标缩放因子。fixed_location(array of 3 ints) – 对于fixed_location类型,这是实体在目标维度中的传送位置。relative_location(string) – 用于relative_location和scaled_relative_location类型的原版命令风格相对位置说明符。
下面是一个实际示例:
"void_teleport": {
"dimension": 123,
"trigger_y": -50,
"find_surface": true,
"fall_distance": 7.5,
"teleport_type": "relative_location",
"relative_location": "~ 256 ~"
}
worldinfo 和 worldinfo_onetime 的所有可用选项
generatorName(字符串)- 该维度的世界类型- 原版值:
default、default_1_1、flat、amplified、largeBiomes、debug_all_block_states - 超多生物群系:
BIOMESOP generatorOptions(字符串)- 生成器设置。超平坦设置字符串、原版自定义主世界生成器设置或 BoP 配置 JSON 字符串等,都可以填写在这里。generatorVersion(整数)- 某些世界类型可能有不同版本。在原版中,default世界类型必须在这里使用1,否则会改用default_1_1类型。GameType(整数)- 玩家加入时的默认游戏模式。0= 生存,1= 创造,2= 冒险,3= 旁观者GameRules(对象)- 由字符串键值对组成的对象,用于设置或覆盖所有游戏规则的默认值MapFeatures(整数)- 使用0可禁用大多数结构生成。(该维度将不会生成废弃矿井、女巫小屋、海底遗迹、林地府邸、下界要塞等结构。)RandomSeed(整数或字符串)- 世界种子。可以直接填写数字种子,也可以填写会转换为数字种子的字符串。如果未指定,则使用主世界的相同种子。- 有一种特殊情况:空字符串会被 JED 用作指示,为该维度生成新的随机种子。
SpawnX(整数)- 该维度出生点的 X 坐标。无需指定全部三个坐标。未填写的坐标将……???待办SpawnY(整数)- 见上文SpawnZ(整数)- 见上文Time(长整数)- 该维度的总世界时间。请注意,维度创建后绝不要修改此值,因为许多方块和其他内容会用它来计算时间和延迟,修改它会严重破坏一些功能。DayTime(长整数)- 该维度当前的日间时间。睡觉会将时间推进到次日早晨,使用/time set xxx会设置或重置此值。LastPlayedLevelNameclearWeatherTimerainTimeraining(0|1)- 当前是否正在下雨thunderTimethundering(0|1)- 当前是否正在打雷hardcore(0|1)- 该维度是否启用了极限模式allowCommands(0|1)- 该维度是否允许使用命令DifficultyDifficultyLocked(0|1)- 是否允许更改难度(此项主要用于单人游戏菜单中的难度按钮)BorderCenterX(整数)- 世界边界中心点的 X 坐标BorderCenterZ(整数)- 世界边界中心点的 Z 坐标BorderSize(整数)- 世界边界的大小BorderSizeLerpTimeBorderSizeLerpTargetBorderSafeZoneBorderDamagePerBlockBorderWarningBlocksBorderWarningTime
常见问题
Just Enough Dimensions 支持哪些 Minecraft 版本?
Just Enough Dimensions 支持 Minecraft Java 版 1.10–1.12.2,共 9 个版本,可用的加载器:Forge。下载时注意选择和你游戏版本一致的文件。
Just Enough Dimensions 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 Forge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:客户端和服务端都要装。
masa 的其他作品
查看全部 →MaLiLib
一个客户端模组的前置库。包含 masa 客户端模组的大部分通用/共享代码,并为依赖模组之间添加了一些互操作支持。
Litematica
一款客户端蓝图模组,为创造模式建造提供额外功能
Tweakeroo
各类客户端微调,如自动补货、快捷栏切换/循环、灵活/快速放置方块等。
MiniHUD
一个“迷你F3”HUD模组,还带有光照等级、出生点区块、史莱姆区块等各种叠加显示。
评论
登录后评论和评分