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

Матеріал з Minecraft Wiki
Перейти до навігації Перейти до пошуку
Ця функція є ексклюзивом для 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"
    }
  }
}


Див. також[ред. | ред. код]

Примітки[ред. | ред. код]

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