Керівництво:Додавання нового виміру

Ця функція є ексклюзивом для Java Edition.
 

У цьому керівництві пояснюється, як додати новий власний вимір до світу за допомогою пакета даних. Передбачається, що ви вже знаєте, як створити пакет даних.

Приклад власного виміру зі зміненими кольорами та кількома функціями.

pack.mcmeta

{
   "pack": {
     "pack_format": 41,
     "description": "Додавання власного виміру"
   }
}
Зміни у файлах створення світу не будуть застосовані під час запуску /reload[1]. Завжди залишайте та знову відкривайте світ, щоб застосувати нові зміни!

Вимір Редагувати

Новостворений вимір.
Екран попередження, який відображається під час відкриття світу з використанням експериментальних налаштувань.

Додати новий вимір так само просто, як створити один файл у пакеті даних. Цей перший вимір додає новий надплаский світ за допомогою генератора блоків flat.

data/tutorial/dimension/example_world.json

{
  "type": "minecraft:overworld",
  "generator": {
    "type": "minecraft:flat",
    "settings": {
      "biome": "minecraft:plains",
      "layers": [
        {
          "block": "minecraft:stone",
          "height": 64
        }
      ],
      "structure_overrides": []
    }
  }
}

Додаючи до існуючого світу, обов’язково вийдіть і знову відкрийте світ! На екрані попередження вас попросять підтвердити використання налаштувань експериментального світу. Це означає, що нові версії можуть зламати існуючі пакети даних генерації світу без попередження. Можна натиснути «Я знаю, що роблю!».

Тепер ви можете використовувати /execute in tutorial:example_world run tp @s ~ ~ ~, щоб телепортуватися в цей новий вимір.

Налаштування можна додатково налаштувати:

  •  settings:
    • Налаштування пласкої генерації

Тип виміру Редагувати

У прикладі вище використано "type": "minecraft:overworld". Це посилання на тип виміру. Виміри складаються з двох частин:

  • Тип виміру контролює властивості середовища. Зміни в типі розмірності також стосуватимуться наявних блоків.
  • Генератор чанків контролює фізичні блоки та сутності, розміщені у світі. Зміни в генераторі чанків вплинуть лише на щойно згенеровані блоки.

Якщо ви хочете змінити властивості виміру, можна створити новий файл у папці dimension_type, і файл виміру потрібно оновити, щоб посилатися на цей новий тип виміру. У цьому прикладі властивості  min_y і  height було змінено порівняно з типом виміру світу. Вони контролюють обмеження будівництва виміру.

data/tutorial/dimension_type/example_world.json

{
  "ultrawarm": false,
  "natural": true,
  "piglin_safe": false,
  "respawn_anchor_works": false,
  "bed_works": true,
  "has_raids": true,
  "has_skylight": true,
  "has_ceiling": false,
  "coordinate_scale": 1,
  "ambient_light": 0,
  "logical_height": 256,
  "infiniburn": "#minecraft:infiniburn_overworld",
  "min_y": 0,
  "height": 256,
  "monster_spawn_light_level": {
    "type": "minecraft:uniform",
    "value": {
      "min_inclusive": 0,
      "max_inclusive": 7
    }
  },
  "monster_spawn_block_light_limit": 0
}

data/tutorial/dimension/example_world.json

{
  "type": "tutorial:example_world",
  "generator": {
    // ...
  }
}

Генератор шуму Редагувати

Користувацький вимір із використанням повністю простого генератора шуму чанків.

Щоб мати місцевість, схожу на Верхній світ, у власному вимірі, можна використовувати тип генератора noise.

data/tutorial/dimension/example_world.json

{
  "type": "tutorial:example_world",
  "generator": {
    "type": "minecraft:noise",
    "settings": "minecraft:overworld",
    "biome_source": {
      "type": "minecraft:fixed",
      "biome": "minecraft:plains"
    }
  }
}

Параметри шуму Редагувати

Власні параметри шуму з кальцитом як блоком за замовчуванням.

У наведеному вище прикладі повторно використано параметри шуму minecraft:overworld, яке припускає, що світ тягнеться від Y=-64 до Y=320. Він також містить непотрібну логіку для ванільних біомів. Щоб налаштувати параметри шуму, можна створити файл у worldgen/noise_settings. Цей приклад змінює основу на кальцит, вимикає рудні жили та додає шар трав’яних блоків на поверхні.

Оскільки цей файл за замовчуванням дуже великий, найкраще почати з ванільних файлів. У вас є кілька варіантів:

  • Витягніть файл із версії jar
  • Завантажте файл безпосередньо з загальнодоступного сховища: overworld.json

data/tutorial/worldgen/noise_settings/example_world.json

{
  "sea_level": 63,
  "disable_mob_generation": false,
  "aquifers_enabled": true,
  "ore_veins_enabled": false,
  "legacy_random_source": false,
  "default_block": {
    "Name": "minecraft:calcite"
  },
  "default_fluid": {
    "Name": "minecraft:water",
    "Properties": {
      "level": "0"
    }
  },
  "noise": {
    "min_y": 0,
    "height": 256,
    "size_horizontal": 1,
    "size_vertical": 2
  },
  "noise_router": {
    // ... (збережіть те ж, що в ванільному Верхньому світі)
  },
  "spawn_target": [],
  "surface_rule": {
    "type": "minecraft:condition",
    "if_true": {
      "type": "minecraft:stone_depth",
      "offset": 0,
      "surface_type": "floor",
      "add_surface_depth": false,
      "secondary_depth_range": 0
    },
    "then_run": {
      "type": "minecraft:block",
      "result_state": {
        "Name": "minecraft:grass_block",
        "Properties": {
          "snowy": "false"
        }
      }
    }
  }
}

data/tutorial/dimension/example_world.json

{
  "type": "tutorial:example_world",
  "generator": {
    "type": "minecraft:noise",
    "settings": "tutorial:example_world",
    "biome_source": {
      "type": "minecraft:fixed",
      "biome": "minecraft:plains"
    }
  }
}

Маршрутизатор шуму Редагувати

На останньому кроці маршрутизатор шуму залишився недоторканим із ванільного Верхнього світу. Але це створює проблему в нижній частині світу, оскільки цей спеціальний вимір починається з Y=0, а маршрутизатор шуму все ще припускає, що він починається з Y=-64. Це спричиняє діри на дні світу, де відкривається порожнеча.

Виправлення міститься в final_density маршрутизатора шуму. Потрібно зробити два виправлення. Знайдіть наступні фрагменти коду у файлі параметрів шуму та замініть його виправленими версіями. Першу проблему також можна виправити в частині маршрутизатора шуму initial_density_without_jaggedness в рядку 74, але це менш критично. Друге виправлення вимикає печери локшини.

До Після
"argument1": {
  "type": "minecraft:y_clamped_gradient",
  "from_y": -64,
  "to_y": -40,
  "from_value": 0,
  "to_value": 1
},
"argument1": {
  "type": "minecraft:y_clamped_gradient",
  "from_y": 0,
  "to_y": 24,
  "from_value": 0,
  "to_value": 1
},
"argument2": "minecraft:overworld/caves/noodle"
"argument2": 1

Правила поверхні Редагувати

Вертикальний градієнт корінної породи на дні світу.
Шар ґрунту під трав’яними блоками.

На даний момент єдиними поверхневими блоками є кальцит і трав’яні блоки. Ви можете додати шар ґрунту під трав’яними блоками та градієнт корінної породи на дні світу за допомогою деяких складніших правил поверхні.

data/tutorial/worldgen/noise_settings/example_world.json

{
  // ...
  "surface_rule": {
    "type": "minecraft:sequence",
    "sequence": [
      {
        "type": "minecraft:condition",
        "if_true": {
          "type": "minecraft:vertical_gradient",
          "random_name": "minecraft:bedrock_floor",
          "true_at_and_below": {
            "above_bottom": 0
          },
          "false_at_and_above": {
            "above_bottom": 5
          }
        },
        "then_run": {
          "type": "minecraft:block",
          "result_state": {
            "Name": "minecraft:bedrock"
          }
        }
      },
      {
        "type": "minecraft:condition",
        "if_true": {
          "type": "minecraft:stone_depth",
          "offset": 0,
          "surface_type": "floor",
          "add_surface_depth": false,
          "secondary_depth_range": 0
        },
        "then_run": {
          "type": "minecraft:block",
          "result_state": {
            "Name": "minecraft:grass_block",
            "Properties": {
              "snowy": "false"
            }
          }
        }
      },
      {
        "type": "minecraft:condition",
        "if_true": {
          "type": "minecraft:stone_depth",
          "offset": 0,
          "surface_type": "floor",
          "add_surface_depth": true,
          "secondary_depth_range": 0
        },
        "then_run": {
          "type": "minecraft:block",
          "result_state": {
            "Name": "minecraft:dirt"
          }
        }
      }
    ]
  }
}

Біом Редагувати

Користувацький біом зі зміненими кольорами та кількома особливостями.

У прикладі все ще використовується біом minecraft:plains. Щоб змінити колір трави, структури, об'єкти, правила появи тощо, вам потрібен користувацький біом. У цьому прикладі додано біом tutorial:plains, який змінює кольори трави та листя.

Кілька функцій додано на 10-му кроці декорування, який є vegetal_decoration. Якщо ви хочете додати руди, вони пішли б до кроку 7: underground_ores.

data/tutorial/worldgen/biome/plains.json

{
  "temperature": 0.8,
  "downfall": 0.4,
  "has_precipitation": true,
  "effects": {
    "sky_color": 7907327,
    "fog_color": 12638463,
    "water_color": 4159204,
    "water_fog_color": 329011,
    "grass_color": 10073398,
    "foliage_color": 13127730
  },
  "spawners": {},
  "spawn_costs": {},
  "carvers": {},
  "features": [
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [],
    [
      "minecraft:glow_lichen",
      "minecraft:trees_plains",
      "minecraft:patch_grass_plain",
      "minecraft:patch_sugar_cane"
    ],
    []
  ]
}

data/tutorial/dimension/example_world.json

{
  "type": "tutorial:example_world",
  "generator": {
    "type": "minecraft:noise",
    "settings": "tutorial:example_world",
    "biome_source": {
      "type": "minecraft:fixed",
      "biome": "tutorial:plains"
    }
  }
}
Завантажується інтерактивний віджет. Якщо він не працює, перезавантажте сторінку або перевірте, чи працює або увімкнений JavaScript.


Див. також Редагувати

Примітки Редагувати

  1. MC-187938 — Власні виміри та файли worldgen не оновлюються під час /reload