From 9406a5ced9157a538f91297d1a4524993c3c651f Mon Sep 17 00:00:00 2001 From: TexTrue <65154269+TexBlock@users.noreply.github.com> Date: Wed, 11 Dec 2024 12:35:06 +0800 Subject: [PATCH] sync `sakura-ryoko/litematica` 1.21.3-0.20.2-sakura.4 --- gradle/libs.versions.toml | 6 +- .../fi/dy/masa/litematica/config/Configs.java | 8 +- .../fi/dy/masa/litematica/config/Hotkeys.java | 2 +- .../litematica/data/EntitiesDataStorage.java | 47 +- .../litematica/gui/GuiSchematicSaveBase.java | 9 +- .../gui/widgets/WidgetSchematicBrowser.java | 91 +- .../litematica/mixin/MixinBufferBuilder.java | 2 +- .../litematica/render/OverlayRenderer.java | 4 + .../masa/litematica/render/RenderUtils.java | 1 - .../litematica/render/infohud/ToolHud.java | 2 +- .../BlockModelRendererSchematic.java | 713 ++---------- .../schematic/BufferAllocatorCache.java | 30 +- .../render/schematic/BufferBuilderCache.java | 14 +- .../render/schematic/BuiltBufferCache.java | 10 +- .../render/schematic/ChunkRenderLayers.java | 20 + .../schematic/WorldRendererSchematic.java | 13 +- .../render/schematic/ao/AOProcessor.java | 32 + .../schematic/ao/AOProcessorLegacy.java | 212 ++++ .../schematic/ao/AOProcessorModern.java | 408 +++++++ .../TaskPasteSchematicPerChunkCommand.java | 4 + .../schematic/LitematicaSchematic.java | 199 +++- .../schematic/SchematicMetadata.java | 186 ++- .../schematic/SchematicaSchematic.java | 5 +- .../SchematicDowngradeConverter.java | 17 +- .../schematic/projects/SchematicProject.java | 8 +- .../masa/litematica/util/DataFixerMode.java | 88 +- .../fi/dy/masa/litematica/util/FileType.java | 38 +- .../masa/litematica/util/InventoryUtils.java | 29 +- .../masa/litematica/util/RayTraceUtils.java | 15 +- .../world/FakeLightingProvider.java | 1 + .../masa/litematica/world/WorldSchematic.java | 14 +- .../resources/META-INF/neoforge.mods.toml | 3 + .../assets/forgematica/lang/en_us.json | 997 +--------------- .../forgematica/lang/ja_jp-extra-lines.json | 346 ------ .../assets/forgematica/lang/zh_cn.json | 911 +-------------- .../assets/forgematica/lang/zh_tw.json | 910 --------------- .../assets/litematica/lang/en_us.json | 1010 ++++++++++++++++ .../lang/it_it.json | 18 +- .../lang/ja_jp.json | 16 + .../assets/litematica/lang/uk_ua.json | 1011 +++++++++++++++++ .../assets/litematica/lang/zh_cn.json | 926 +++++++++++++++ .../assets/litematica/lang/zh_tw.json | 926 +++++++++++++++ 42 files changed, 5276 insertions(+), 4026 deletions(-) create mode 100644 src/main/java/fi/dy/masa/litematica/render/schematic/ao/AOProcessor.java create mode 100644 src/main/java/fi/dy/masa/litematica/render/schematic/ao/AOProcessorLegacy.java create mode 100644 src/main/java/fi/dy/masa/litematica/render/schematic/ao/AOProcessorModern.java delete mode 100644 src/main/resources/assets/forgematica/lang/ja_jp-extra-lines.json delete mode 100644 src/main/resources/assets/forgematica/lang/zh_tw.json create mode 100644 src/main/resources/assets/litematica/lang/en_us.json rename src/main/resources/assets/{forgematica => litematica}/lang/it_it.json (97%) rename src/main/resources/assets/{forgematica => litematica}/lang/ja_jp.json (97%) create mode 100644 src/main/resources/assets/litematica/lang/uk_ua.json create mode 100644 src/main/resources/assets/litematica/lang/zh_cn.json create mode 100644 src/main/resources/assets/litematica/lang/zh_tw.json diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 66c616f..dedf4ab 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,10 +3,10 @@ minecraft_version="1.21.3" yarn_mappings="1.21.3+build.2" mappings_patch="1.21+build.4" -neoforge="21.3.2-beta" +neoforge="21.3.57" # Mod properties -version="0.1.14" +version="0.1.15" maven-group="org.thinkingstudio.forgematica" archives-name="Forgematica" @@ -15,7 +15,7 @@ id-modrinth="dCKRaeBC" id-curseforge="912441" # Mod dependencies -mafglib="0.1.25-mc1.21.3" +mafglib="0.1.27-mc1.21.3" badpackets="neo-0.8.1" # Libraries diff --git a/src/main/java/fi/dy/masa/litematica/config/Configs.java b/src/main/java/fi/dy/masa/litematica/config/Configs.java index 03ba28e..7ac0521 100644 --- a/src/main/java/fi/dy/masa/litematica/config/Configs.java +++ b/src/main/java/fi/dy/masa/litematica/config/Configs.java @@ -44,7 +44,7 @@ public static class Generic public static final ConfigBoolean COMMAND_DISABLE_FEEDBACK = new ConfigBoolean("commandDisableFeedback", true).apply(GENERIC_KEY); public static final ConfigInteger COMMAND_FILL_MAX_VOLUME = new ConfigInteger("commandFillMaxVolume", 32768, 256, 10000000).apply(GENERIC_KEY); public static final ConfigBoolean COMMAND_FILL_NO_CHUNK_CLAMP = new ConfigBoolean("commandFillNoChunkClamp", false).apply(GENERIC_KEY); - public static final ConfigInteger COMMAND_LIMIT = new ConfigInteger("commandLimitPerTick", 24, 1, 256).apply(GENERIC_KEY); + public static final ConfigInteger COMMAND_LIMIT = new ConfigInteger("commandLimitPerTick", 8, 1, 256).apply(GENERIC_KEY); public static final ConfigString COMMAND_NAME_CLONE = new ConfigString( "commandNameClone", "clone").apply(GENERIC_KEY); public static final ConfigString COMMAND_NAME_FILL = new ConfigString( "commandNameFill", "fill").apply(GENERIC_KEY); public static final ConfigString COMMAND_NAME_SETBLOCK = new ConfigString( "commandNameSetblock", "setblock").apply(GENERIC_KEY); @@ -65,6 +65,7 @@ public static class Generic public static final ConfigBoolean EASY_PLACE_VANILLA_REACH = new ConfigBoolean("easyPlaceVanillaReach", false).apply(GENERIC_KEY); public static final ConfigBoolean ENTITY_DATA_SYNC = new ConfigBoolean("entityDataSync", true).apply(GENERIC_KEY); public static final ConfigBoolean ENTITY_DATA_SYNC_BACKUP = new ConfigBoolean("entityDataSyncBackup", true).apply(GENERIC_KEY); + public static final ConfigFloat ENTITY_DATA_SYNC_CACHE_TIMEOUT= new ConfigFloat("entityDataSyncCacheTimeout", 2.0f, 0.25f, 30.0f).apply(GENERIC_KEY); public static final ConfigBoolean ENTITY_DATA_LOAD_NBT = new ConfigBoolean("entityDataSyncLoadNbt", true).apply(GENERIC_KEY); public static final ConfigBoolean EXECUTE_REQUIRE_TOOL = new ConfigBoolean("executeRequireHoldingTool", true).apply(GENERIC_KEY); public static final ConfigBoolean FIX_CHEST_MIRROR = new ConfigBoolean("fixChestMirror", true).apply(GENERIC_KEY); @@ -124,6 +125,7 @@ public static class Generic EASY_PLACE_VANILLA_REACH, ENTITY_DATA_SYNC, ENTITY_DATA_SYNC_BACKUP, + ENTITY_DATA_SYNC_CACHE_TIMEOUT, ENTITY_DATA_LOAD_NBT, EXECUTE_REQUIRE_TOOL, FIX_CHEST_MIRROR, @@ -193,11 +195,13 @@ public static class Visuals public static final ConfigBoolean IGNORE_EXISTING_FLUIDS = new ConfigBoolean("ignoreExistingFluids", false).apply(VISUALS_KEY); public static final ConfigBoolean OVERLAY_REDUCED_INNER_SIDES = new ConfigBoolean("overlayReducedInnerSides", false).apply(VISUALS_KEY); public static final ConfigDouble PLACEMENT_BOX_SIDE_ALPHA = new ConfigDouble( "placementBoxSideAlpha", 0.2, 0, 1).apply(VISUALS_KEY); + public static final ConfigBoolean RENDER_AO_MODERN_ENABLE = new ConfigBoolean("renderAOModernEnable", false).apply(VISUALS_KEY); public static final ConfigBoolean RENDER_AREA_SELECTION_BOX_SIDES = new ConfigBoolean("renderAreaSelectionBoxSides", true).apply(VISUALS_KEY); public static final ConfigBoolean RENDER_BLOCKS_AS_TRANSLUCENT = new ConfigBoolean("renderBlocksAsTranslucent", false).apply(VISUALS_KEY); public static final ConfigBoolean RENDER_COLLIDING_SCHEMATIC_BLOCKS = new ConfigBoolean("renderCollidingSchematicBlocks", false).apply(VISUALS_KEY); public static final ConfigBoolean RENDER_ERROR_MARKER_CONNECTIONS = new ConfigBoolean("renderErrorMarkerConnections", false).apply(VISUALS_KEY); public static final ConfigBoolean RENDER_ERROR_MARKER_SIDES = new ConfigBoolean("renderErrorMarkerSides", true).apply(VISUALS_KEY); + //public static final ConfigInteger RENDER_FAKE_LIGHTING_LEVEL = new ConfigInteger("renderFakeLightingLevel", 15, 0, 15).apply(VISUALS_KEY); public static final ConfigBoolean RENDER_PLACEMENT_BOX_SIDES = new ConfigBoolean("renderPlacementBoxSides", false).apply(VISUALS_KEY); public static final ConfigBoolean RENDER_PLACEMENT_ENCLOSING_BOX = new ConfigBoolean("renderPlacementEnclosingBox", true).apply(VISUALS_KEY); public static final ConfigBoolean RENDER_PLACEMENT_ENCLOSING_BOX_SIDES= new ConfigBoolean("renderPlacementEnclosingBoxSides", false).apply(VISUALS_KEY); @@ -228,11 +232,13 @@ public static class Visuals ENABLE_SCHEMATIC_OVERLAY, IGNORE_EXISTING_FLUIDS, OVERLAY_REDUCED_INNER_SIDES, + RENDER_AO_MODERN_ENABLE, RENDER_AREA_SELECTION_BOX_SIDES, RENDER_BLOCKS_AS_TRANSLUCENT, RENDER_COLLIDING_SCHEMATIC_BLOCKS, RENDER_ERROR_MARKER_CONNECTIONS, RENDER_ERROR_MARKER_SIDES, + //RENDER_FAKE_LIGHTING_LEVEL, RENDER_PLACEMENT_BOX_SIDES, RENDER_PLACEMENT_ENCLOSING_BOX, RENDER_PLACEMENT_ENCLOSING_BOX_SIDES, diff --git a/src/main/java/fi/dy/masa/litematica/config/Hotkeys.java b/src/main/java/fi/dy/masa/litematica/config/Hotkeys.java index 58bfcba..a6adc52 100644 --- a/src/main/java/fi/dy/masa/litematica/config/Hotkeys.java +++ b/src/main/java/fi/dy/masa/litematica/config/Hotkeys.java @@ -40,7 +40,7 @@ public class Hotkeys public static final ConfigHotkey PICK_BLOCK_FIRST = new ConfigHotkey("pickBlockFirst", "BUTTON_3", KeybindSettings.PRESS_ALLOWEXTRA).apply(HOTKEYS_KEY); public static final ConfigHotkey PICK_BLOCK_LAST = new ConfigHotkey("pickBlockLast", "", KeybindSettings.MODIFIER_INGAME).apply(HOTKEYS_KEY); public static final ConfigHotkey PICK_BLOCK_TOGGLE = new ConfigHotkey("pickBlockToggle", "M,BUTTON_3").apply(HOTKEYS_KEY); - public static final ConfigHotkey RENDER_INFO_OVERLAY = new ConfigHotkey("renderInfoOverlay", "I", KeybindSettings.PRESS_ALLOWEXTRA).apply(HOTKEYS_KEY); + public static final ConfigHotkey RENDER_INFO_OVERLAY = new ConfigHotkey("renderInfoOverlay", "I", KeybindSettings.PRESS_ALLOWEXTRA_EMPTY).apply(HOTKEYS_KEY); public static final ConfigHotkey RENDER_OVERLAY_THROUGH_BLOCKS = new ConfigHotkey("renderOverlayThroughBlocks", "RIGHT_CONTROL", KeybindSettings.PRESS_ALLOWEXTRA).apply(HOTKEYS_KEY); public static final ConfigHotkey RERENDER_SCHEMATIC = new ConfigHotkey("rerenderSchematic", "F3,M").apply(HOTKEYS_KEY); public static final ConfigHotkey SAVE_AREA_AS_IN_MEMORY_SCHEMATIC = new ConfigHotkey("saveAreaAsInMemorySchematic", "").apply(HOTKEYS_KEY); diff --git a/src/main/java/fi/dy/masa/litematica/data/EntitiesDataStorage.java b/src/main/java/fi/dy/masa/litematica/data/EntitiesDataStorage.java index ae447a4..f73a3fa 100644 --- a/src/main/java/fi/dy/masa/litematica/data/EntitiesDataStorage.java +++ b/src/main/java/fi/dy/masa/litematica/data/EntitiesDataStorage.java @@ -17,19 +17,12 @@ import net.minecraft.client.world.ClientWorld; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityType; -import net.minecraft.entity.mob.PiglinEntity; -import net.minecraft.entity.passive.AbstractHorseEntity; -import net.minecraft.entity.passive.VillagerEntity; -import net.minecraft.entity.player.PlayerEntity; import net.minecraft.inventory.DoubleInventory; import net.minecraft.inventory.Inventory; -import net.minecraft.inventory.SimpleInventory; -import net.minecraft.item.ItemStack; import net.minecraft.nbt.NbtCompound; import net.minecraft.nbt.NbtList; import net.minecraft.registry.Registries; import net.minecraft.registry.entry.RegistryEntry; -import net.minecraft.server.world.ServerWorld; import net.minecraft.util.Identifier; import net.minecraft.util.Util; import net.minecraft.util.math.BlockPos; @@ -39,8 +32,6 @@ import net.minecraft.world.World; import fi.dy.masa.malilib.interfaces.IClientTickHandler; -import fi.dy.masa.malilib.mixin.IMixinAbstractHorseEntity; -import fi.dy.masa.malilib.mixin.IMixinPiglinEntity; import fi.dy.masa.malilib.network.ClientPlayHandler; import fi.dy.masa.malilib.network.IPluginClientPlayHandler; import fi.dy.masa.malilib.util.Constants; @@ -213,7 +204,7 @@ public void reset(boolean isLogout) else { Litematica.debugLog("EntitiesDataStorage#reset() - dimension change or log-in"); - this.serverTickTime = System.currentTimeMillis() - (this.cacheTimeout + 5) * 1000L; + this.serverTickTime = System.currentTimeMillis() - (this.getCacheTimeout() + 5000L); this.tickCache(); this.serverTickTime = System.currentTimeMillis(); this.clientWorld = mc.world; @@ -225,19 +216,31 @@ public void reset(boolean isLogout) this.pendingEntitiesQueue.clear(); } + private long getCacheTimeout() + { + return (long) (MathHelper.clamp(Configs.Generic.ENTITY_DATA_SYNC_CACHE_TIMEOUT.getFloatValue(), 0.25f, 30.0f) * 1000L); + } + + private long getCacheTimeoutLong() + { + return (long) (MathHelper.clamp((Configs.Generic.ENTITY_DATA_SYNC_CACHE_TIMEOUT.getFloatValue() * this.longCacheTimeout), 120.0f, 300.0f) * 1000L); + } + private void tickCache() { long nowTime = System.currentTimeMillis(); - long blockTimeout = (this.cacheTimeout) * 1000L; - long entityTimeout = (this.cacheTimeout / 2) * 1000L; + long blockTimeout = this.getCacheTimeout(); + long entityTimeout = this.getCacheTimeout() * 2; int count; boolean beEmpty = false; boolean entEmpty = false; + // Use LongTimeouts when saving a Litematic Selection, + // which is pretty much the standard value x 30 (min 120, max 300 seconds) if (this.shouldUseLongTimeout) { - blockTimeout = this.longCacheTimeout * 1000L; - entityTimeout = (this.longCacheTimeout / 2) * 1000L; + blockTimeout = this.getCacheTimeoutLong(); + entityTimeout = this.getCacheTimeoutLong(); } synchronized (this.blockEntityCache) @@ -250,7 +253,7 @@ private void tickCache() if (nowTime - pair.getLeft() > blockTimeout || pair.getLeft() - nowTime > 0) { - Litematica.debugLog("entityCache: be at pos [{}] has timed out", pos.toShortString()); + Litematica.debugLog("entityCache: be at pos [{}] has timed out by [{}] ms", pos.toShortString(), blockTimeout); this.blockEntityCache.remove(pos); } else @@ -275,7 +278,7 @@ private void tickCache() if (nowTime - pair.getLeft() > entityTimeout || pair.getLeft() - nowTime > 0) { - Litematica.debugLog("entityCache: entity Id [{}] has timed out", entityId); + Litematica.debugLog("entityCache: entity Id [{}] has timed out by [{}] ms", entityId, entityTimeout); this.entityCache.remove(entityId); } else @@ -479,7 +482,10 @@ else if (world.getBlockState(pos).getBlock() instanceof BlockEntityProvider) NbtCompound nbt = be.createNbtWithIdentifyingData(world.getRegistryManager()); Pair pair = Pair.of(be, nbt); - this.blockEntityCache.put(pos, Pair.of(System.currentTimeMillis(), pair)); + synchronized (this.blockEntityCache) + { + this.blockEntityCache.put(pos, Pair.of(System.currentTimeMillis(), pair)); + } return pair; } @@ -512,7 +518,12 @@ else if (world.getBlockState(pos).getBlock() instanceof BlockEntityProvider) if (entity != null && entity.saveSelfNbt(nbt)) { Pair pair = Pair.of(entity, nbt); - this.entityCache.put(entityId, Pair.of(System.currentTimeMillis(), pair)); + + synchronized (this.entityCache) + { + this.entityCache.put(entityId, Pair.of(System.currentTimeMillis(), pair)); + } + return pair; } } diff --git a/src/main/java/fi/dy/masa/litematica/gui/GuiSchematicSaveBase.java b/src/main/java/fi/dy/masa/litematica/gui/GuiSchematicSaveBase.java index c88c65a..5120956 100644 --- a/src/main/java/fi/dy/masa/litematica/gui/GuiSchematicSaveBase.java +++ b/src/main/java/fi/dy/masa/litematica/gui/GuiSchematicSaveBase.java @@ -36,7 +36,7 @@ public GuiSchematicSaveBase(@Nullable LitematicaSchematic schematic) this.textField.setMaxLength(256); this.textField.setFocused(true); - this.checkboxSaveFromSchematicWorld = new WidgetCheckBox(0, 0, Icons.CHECKBOX_UNSELECTED, Icons.CHECKBOX_SELECTED, "Save from schematic world", "If enabled, then the schematic is created by saving the\ncontents of the selection from the schematic world\ninstead of the normal vanilla world.\nThis allows you to combine or trim schematics without having\nto paste them to a temporary creative world."); + this.checkboxSaveFromSchematicWorld = new WidgetCheckBox(0, 0, Icons.CHECKBOX_UNSELECTED, Icons.CHECKBOX_SELECTED, StringUtils.translate("litematica.gui.label.schematic_save.checkbox.save_from_schematic_world"), StringUtils.translate("litematica.gui.label.schematic_save.hover_info.save_from_schematic_world")); } @Override @@ -86,10 +86,11 @@ else if (this.schematic != null) this.checkboxSaveFromSchematicWorld.setPosition(x, y + 12); this.addWidget(this.checkboxSaveFromSchematicWorld); - this.checkboxVisibleOnly = new WidgetCheckBox(x, y + 24, Icons.CHECKBOX_UNSELECTED, Icons.CHECKBOX_SELECTED, "Visible blocks only [experimental quick hax]"); +// this.checkboxVisibleOnly = new WidgetCheckBox(x, y + 24, Icons.CHECKBOX_UNSELECTED, Icons.CHECKBOX_SELECTED, "Visible blocks only [experimental quick hax]"); + this.checkboxVisibleOnly = new WidgetCheckBox(x, y + 24, Icons.CHECKBOX_UNSELECTED, Icons.CHECKBOX_SELECTED, StringUtils.translate("litematica.gui.label.schematic_save.checkbox.visible_blocks_only")); this.addWidget(this.checkboxVisibleOnly); - this.checkboxIncludeSupportBlocks = new WidgetCheckBox(x, y + 36, Icons.CHECKBOX_UNSELECTED, Icons.CHECKBOX_SELECTED, "Support blocks", "Include any necessary support blocks in \"Visible blocks only\" mode,\nfor things like Repeaters, Comparators, Carpets or gravity blocks that would be visible"); + this.checkboxIncludeSupportBlocks = new WidgetCheckBox(x, y + 36, Icons.CHECKBOX_UNSELECTED, Icons.CHECKBOX_SELECTED, StringUtils.translate("litematica.gui.label.schematic_save.checkbox.support_blocks"), StringUtils.translate("litematica.gui.label.schematic_save.hover_info.support_blocks")); this.addWidget(this.checkboxIncludeSupportBlocks); this.createButton(10, 54, ButtonType.SAVE); @@ -117,7 +118,7 @@ private int createButton(int x, int y, ButtonType type) if (type == ButtonType.SAVE) { - button = new ButtonGeneric(x, y, width, 20, label, "litematica.gui.label.schematic_save.hoverinfo.hold_shift_to_overwrite"); + button = new ButtonGeneric(x, y, width, 20, label, "litematica.gui.label.schematic_save.hover_info.hold_shift_to_overwrite"); } else { diff --git a/src/main/java/fi/dy/masa/litematica/gui/widgets/WidgetSchematicBrowser.java b/src/main/java/fi/dy/masa/litematica/gui/widgets/WidgetSchematicBrowser.java index 8e323eb..6388806 100644 --- a/src/main/java/fi/dy/masa/litematica/gui/widgets/WidgetSchematicBrowser.java +++ b/src/main/java/fi/dy/masa/litematica/gui/widgets/WidgetSchematicBrowser.java @@ -6,9 +6,6 @@ import java.util.HashMap; import java.util.Map; import javax.annotation.Nullable; - -import fi.dy.masa.litematica.schematic.SchematicSchema; -import fi.dy.masa.litematica.util.DataFixerMode; import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.lang3.tuple.Pair; @@ -19,6 +16,11 @@ import net.minecraft.util.Identifier; import net.minecraft.util.math.Vec3i; +import fi.dy.masa.malilib.gui.interfaces.ISelectionListener; +import fi.dy.masa.malilib.gui.widgets.WidgetFileBrowserBase; +import fi.dy.masa.malilib.render.RenderUtils; +import fi.dy.masa.malilib.util.Schema; +import fi.dy.masa.malilib.util.StringUtils; import fi.dy.masa.litematica.Litematica; import fi.dy.masa.litematica.Reference; import fi.dy.masa.litematica.data.DataManager; @@ -26,10 +28,7 @@ import fi.dy.masa.litematica.gui.Icons; import fi.dy.masa.litematica.schematic.LitematicaSchematic; import fi.dy.masa.litematica.schematic.SchematicMetadata; -import fi.dy.masa.malilib.gui.interfaces.ISelectionListener; -import fi.dy.masa.malilib.gui.widgets.WidgetFileBrowserBase; -import fi.dy.masa.malilib.render.RenderUtils; -import fi.dy.masa.malilib.util.StringUtils; +import fi.dy.masa.litematica.schematic.SchematicSchema; public class WidgetSchematicBrowser extends WidgetFileBrowserBase { @@ -155,9 +154,12 @@ protected void drawSelectedSchematicInfo(@Nullable DirectoryEntry entry, DrawCon this.drawString(drawContext, str, x, y, textColor); y += 12; - str = StringUtils.translate("litematica.gui.label.schematic_info.total_blocks", meta.getTotalBlocks()); - this.drawString(drawContext, str, x, y, textColor); - y += 12; + if (meta.getTotalBlocks() > 0) + { + str = StringUtils.translate("litematica.gui.label.schematic_info.total_blocks", meta.getTotalBlocks()); + this.drawString(drawContext, str, x, y, textColor); + y += 12; + } str = StringUtils.translate("litematica.gui.label.schematic_info.enclosing_size"); this.drawString(drawContext, str, x, y, textColor); @@ -170,9 +172,18 @@ protected void drawSelectedSchematicInfo(@Nullable DirectoryEntry entry, DrawCon } else { - str = StringUtils.translate("litematica.gui.label.schematic_info.total_blocks_and_volume", meta.getTotalBlocks(), meta.getTotalVolume()); - this.drawString(drawContext, str, x, y, textColor); - y += 12; + if (meta.getTotalBlocks() > 0) + { + str = StringUtils.translate("litematica.gui.label.schematic_info.total_blocks_and_volume", meta.getTotalBlocks(), meta.getTotalVolume()); + this.drawString(drawContext, str, x, y, textColor); + y += 12; + } + else + { + str = StringUtils.translate("litematica.gui.label.schematic_info.total_volume", meta.getTotalVolume()); + this.drawString(drawContext, str, x, y, textColor); + y += 12; + } Vec3i areaSize = meta.getEnclosingSize(); String tmp = String.format("%d x %d x %d", areaSize.getX(), areaSize.getY(), areaSize.getZ()); @@ -183,15 +194,36 @@ protected void drawSelectedSchematicInfo(@Nullable DirectoryEntry entry, DrawCon if (version != null) { - str = StringUtils.translate("litematica.gui.label.schematic_info.version", version.litematicVersion()); - this.drawString(drawContext, str, x, y, textColor); - y += 12; + switch (meta.getFileType()) + { + case LITEMATICA_SCHEMATIC -> + { + str = StringUtils.translate("litematica.gui.label.schematic_info.version", version.litematicVersion()); + this.drawString(drawContext, str, x, y, textColor); + y += 12; + } + case SPONGE_SCHEMATIC -> + { + str = StringUtils.translate("litematica.gui.label.schematic_info.sponge_version", version.litematicVersion()); + this.drawString(drawContext, str, x, y, textColor); + y += 12; + } + case VANILLA_STRUCTURE -> + { + str = StringUtils.translate("litematica.gui.label.schematic_info.vanilla_version"); + this.drawString(drawContext, str, x, y, textColor); + y += 12; + } + } - DataFixerMode.Schema schema = DataFixerMode.getSchemaByVersion(version.minecraftDataVersion()); + Schema schema = Schema.getSchemaByDataVersion(version.minecraftDataVersion()); - str = StringUtils.translate("litematica.gui.label.schematic_info.schema", schema.getString(), version.minecraftDataVersion()); - this.drawString(drawContext, str, x, y, textColor); - y += 12; + if (schema != null) + { + str = StringUtils.translate("litematica.gui.label.schematic_info.schema", schema.getString(), version.minecraftDataVersion()); + this.drawString(drawContext, str, x, y, textColor); + y += 12; + } } /* @@ -231,6 +263,7 @@ public void clearSchematicMetadataCache() this.cachedVersion.clear(); } + @Deprecated @Nullable protected SchematicMetadata getSchematicMetadata(DirectoryEntry entry) { @@ -264,21 +297,21 @@ protected Pair getSchematicVersionAndMetadat if (meta == null && this.cachedMetadata.containsKey(file) == false) { - if (entry.getName().endsWith(LitematicaSchematic.FILE_EXTENSION)) + Pair pair = LitematicaSchematic.readMetadataAndVersionFromFile(entry.getDirectory(), entry.getName()); + + if (pair != null) { - Pair pair = LitematicaSchematic.readMetadataAndVersionFromFile(entry.getDirectory(), entry.getName()); + meta = pair.getRight(); + version = pair.getLeft(); - if (pair != null) + if (entry.getName().endsWith(LitematicaSchematic.FILE_EXTENSION)) { - meta = pair.getRight(); - version = pair.getLeft(); - this.createPreviewImage(file, meta); } - } - this.cachedMetadata.put(file, meta); - this.cachedVersion.put(file, version); + this.cachedMetadata.put(file, meta); + this.cachedVersion.put(file, version); + } } return Pair.of(version, meta); diff --git a/src/main/java/fi/dy/masa/litematica/mixin/MixinBufferBuilder.java b/src/main/java/fi/dy/masa/litematica/mixin/MixinBufferBuilder.java index ba73036..1a5fd75 100644 --- a/src/main/java/fi/dy/masa/litematica/mixin/MixinBufferBuilder.java +++ b/src/main/java/fi/dy/masa/litematica/mixin/MixinBufferBuilder.java @@ -13,7 +13,7 @@ public class MixinBufferBuilder implements IBufferBuilderPatch @Unique private float offsetY = 0.0f; - @ModifyArg(method = "vertex(FFF)Lnet/minecraft/client/render/VertexConsumer;", at = @At(value = "INVOKE", target = "Lorg/lwjgl/system/MemoryUtil;memPutFloat(JF)V", ordinal = 1), index = 1) + @ModifyArg(method = "vertex(FFF)Lnet/minecraft/client/render/VertexConsumer;", at = @At(value = "INVOKE", target = "Lorg/lwjgl/system/MemoryUtil;memPutFloat(JF)V", ordinal = 1, remap = false), index = 1) private float modifyOffsetY(float value) { return value + offsetY; diff --git a/src/main/java/fi/dy/masa/litematica/render/OverlayRenderer.java b/src/main/java/fi/dy/masa/litematica/render/OverlayRenderer.java index e5734b5..71ca806 100644 --- a/src/main/java/fi/dy/masa/litematica/render/OverlayRenderer.java +++ b/src/main/java/fi/dy/masa/litematica/render/OverlayRenderer.java @@ -583,6 +583,10 @@ private void renderBlockInfoOverlay(RayTraceWrapper traceWrapper, MinecraftClien World worldClient = WorldUtils.getBestWorld(mc); BlockPos pos = traceWrapper.getBlockHitResult().getBlockPos(); + if (mc.world == null || worldClient == null || worldSchematic == null) + { + return; + } BlockState stateClient = mc.world.getBlockState(pos); BlockState stateSchematic = worldSchematic.getBlockState(pos); boolean hasInvClient = InventoryUtils.getTargetInventory(worldClient, pos) != null; diff --git a/src/main/java/fi/dy/masa/litematica/render/RenderUtils.java b/src/main/java/fi/dy/masa/litematica/render/RenderUtils.java index 0615938..01cd14b 100644 --- a/src/main/java/fi/dy/masa/litematica/render/RenderUtils.java +++ b/src/main/java/fi/dy/masa/litematica/render/RenderUtils.java @@ -694,7 +694,6 @@ public static int renderInventoryOverlay(BlockInfoAlignment align, LeftRight sid if (ctx != null && ctx.inv() != null) { - //final InventoryRenderType type = fi.dy.masa.malilib.render.InventoryOverlay.getInventoryType(inv); final InventoryProperties props = fi.dy.masa.malilib.render.InventoryOverlay.getInventoryPropsTemp(ctx.type(), ctx.inv().size()); //Litematica.logger.error("render(): type [{}], inv [{}], be [{}], nbt [{}]", ctx.type().name(), ctx.inv().size(), ctx.be() != null, ctx.nbt() != null ? ctx.nbt().getString("id") : new NbtCompound()); diff --git a/src/main/java/fi/dy/masa/litematica/render/infohud/ToolHud.java b/src/main/java/fi/dy/masa/litematica/render/infohud/ToolHud.java index 26b95fe..31244c8 100644 --- a/src/main/java/fi/dy/masa/litematica/render/infohud/ToolHud.java +++ b/src/main/java/fi/dy/masa/litematica/render/infohud/ToolHud.java @@ -308,7 +308,7 @@ else if ((hasTool || mode == ToolMode.REBUILD) && mode.getUsesSchematic()) lines.add(StringUtils.translate("litematica.hud.misc.schematic_paste.data_restore_mode", str)); String strVal = Configs.Generic.PASTE_IGNORE_INVENTORY.getBooleanValue() ? strYes : strNo; - lines.add(String.format("Ignore inventory contents: %s", strVal)); + lines.add(StringUtils.translate("litematica.hud.misc.schematic_paste.ignore_inventory_contents", strVal)); } } else diff --git a/src/main/java/fi/dy/masa/litematica/render/schematic/BlockModelRendererSchematic.java b/src/main/java/fi/dy/masa/litematica/render/schematic/BlockModelRendererSchematic.java index b156325..a8c5449 100644 --- a/src/main/java/fi/dy/masa/litematica/render/schematic/BlockModelRendererSchematic.java +++ b/src/main/java/fi/dy/masa/litematica/render/schematic/BlockModelRendererSchematic.java @@ -3,20 +3,23 @@ import java.util.BitSet; import java.util.List; import javax.annotation.Nullable; -import it.unimi.dsi.fastutil.longs.Long2FloatLinkedOpenHashMap; -import it.unimi.dsi.fastutil.longs.Long2IntLinkedOpenHashMap; +import org.jetbrains.annotations.ApiStatus; import net.minecraft.block.Block; +import net.minecraft.block.BlockRenderType; import net.minecraft.block.BlockState; import net.minecraft.client.MinecraftClient; import net.minecraft.client.color.block.BlockColors; import net.minecraft.client.render.OverlayTexture; import net.minecraft.client.render.VertexConsumer; +import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.WorldRenderer; +import net.minecraft.client.render.block.FluidRenderer; import net.minecraft.client.render.model.BakedModel; +import net.minecraft.client.render.model.BakedModelManager; import net.minecraft.client.render.model.BakedQuad; import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.util.Util; +import net.minecraft.fluid.FluidState; import net.minecraft.util.crash.CrashException; import net.minecraft.util.crash.CrashReport; import net.minecraft.util.crash.CrashReportSection; @@ -32,18 +35,42 @@ import fi.dy.masa.malilib.util.PositionUtils; import fi.dy.masa.litematica.config.Configs; import fi.dy.masa.litematica.data.DataManager; +import fi.dy.masa.litematica.render.schematic.ao.AOProcessor; +import fi.dy.masa.litematica.render.schematic.ao.AOProcessorModern; public class BlockModelRendererSchematic { - private static final Direction[] DIRECTIONS = Direction.values(); private final LocalRandom random = new LocalRandom(0); private final BlockColors colorMap; - static final ThreadLocal CACHE = ThreadLocal.withInitial(BC::new); - + private final FluidRenderer liquidRenderer; + private BakedModelManager bakedManager; + public static final ThreadLocal CACHE = ThreadLocal.withInitial(AOProcessorModern.BC::new); public BlockModelRendererSchematic(BlockColors blockColorsIn) { this.colorMap = blockColorsIn; + this.liquidRenderer = new FluidRenderer(); + } + + public void setBakedManager(BakedModelManager manager) + { + this.bakedManager = manager; + } + + public static void enableCache() + { + if (Configs.Visuals.RENDER_AO_MODERN_ENABLE.getBooleanValue()) + { + CACHE.get().enable(); + } + } + + public static void disableCache() + { + if (Configs.Visuals.RENDER_AO_MODERN_ENABLE.getBooleanValue()) + { + CACHE.get().disable(); + } } public boolean renderModel(BlockRenderView worldIn, BakedModel modelIn, BlockState stateIn, @@ -60,10 +87,12 @@ public boolean renderModel(BlockRenderView worldIn, BakedModel modelIn, BlockSta { if (ao) { + //System.out.printf("renderModelSmooth(): pos [%s] / state [%s]\n", posIn.toShortString(), stateIn); return this.renderModelSmooth(worldIn, modelIn, stateIn, posIn, matrixStack, vertexConsumer, this.random, rand, overlay); } else { + //System.out.printf("renderModelFlat(): pos [%s] / state [%s]\n", posIn.toShortString(), stateIn); return this.renderModelFlat(worldIn, modelIn, stateIn, posIn, matrixStack, vertexConsumer, this.random, rand, overlay); } } @@ -85,7 +114,7 @@ private boolean renderModelSmooth(BlockRenderView worldIn, BakedModel modelIn, B boolean renderedSomething = false; float[] quadBounds = new float[PositionUtils.ALL_DIRECTIONS.length * 2]; BitSet bitset = new BitSet(3); - AmbientOcclusionCalculator aoFace = new AmbientOcclusionCalculator(); + AOProcessor aoFace = AOProcessor.get(); BlockPos.Mutable mutablePos = posIn.mutableCopy(); for (Direction side : PositionUtils.ALL_DIRECTIONS) @@ -98,6 +127,7 @@ private boolean renderModelSmooth(BlockRenderView worldIn, BakedModel modelIn, B mutablePos.set(posIn, side); if (this.shouldRenderModelSide(worldIn, stateIn, posIn, side, mutablePos)) { + //System.out.printf("renderQuadsSmooth():1: pos [%s] / state [%s]\n", posIn.toShortString(), stateIn); this.renderQuadsSmooth(worldIn, stateIn, posIn, matrixStack, vertexConsumer, quads, quadBounds, bitset, aoFace, overlay); renderedSomething = true; } @@ -109,6 +139,7 @@ private boolean renderModelSmooth(BlockRenderView worldIn, BakedModel modelIn, B if (!quads.isEmpty()) { + //System.out.printf("renderQuadsSmooth():2: pos [%s] / state [%s]\n", posIn.toShortString(), stateIn); this.renderQuadsSmooth(worldIn, stateIn, posIn, matrixStack, vertexConsumer, quads, quadBounds, bitset, aoFace, overlay); renderedSomething = true; } @@ -164,24 +195,28 @@ private boolean shouldRenderModelSide(BlockRenderView worldIn, BlockState stateI } private void renderQuadsSmooth(BlockRenderView world, BlockState state, BlockPos pos, MatrixStack matrixStack, - VertexConsumer vertexConsumer, List list, float[] box, BitSet flags, AmbientOcclusionCalculator ambientOcclusionCalculator, int overlay) + VertexConsumer vertexConsumer, List list, float[] box, BitSet flags, AOProcessor ambientOcclusionCalculator, int overlay) { - //final int size = list.size(); + final int size = list.size(); + + //System.out.printf("renderQuad(): pos [%s] / state [%s] / quad size [%d]\n", pos.toShortString(), state, size); for (BakedQuad bakedQuad : list) { this.getQuadDimensions(world, state, pos, bakedQuad.getVertexData(), bakedQuad.getFace(), box, flags); ambientOcclusionCalculator.apply(world, state, pos, bakedQuad.getFace(), box, flags, bakedQuad.hasShade()); + //System.out.printf("renderQuad(): pos [%s] / state [%s] / quad face [%s]\n", pos.toShortString(), state, bakedQuad.getFace().getName()); + this.renderQuad(world, state, pos, vertexConsumer, matrixStack, bakedQuad, - ambientOcclusionCalculator.brightness[0], - ambientOcclusionCalculator.brightness[1], - ambientOcclusionCalculator.brightness[2], - ambientOcclusionCalculator.brightness[3], - ambientOcclusionCalculator.light[0], - ambientOcclusionCalculator.light[1], - ambientOcclusionCalculator.light[2], - ambientOcclusionCalculator.light[3], overlay); + ambientOcclusionCalculator.brightness[0], + ambientOcclusionCalculator.brightness[1], + ambientOcclusionCalculator.brightness[2], + ambientOcclusionCalculator.brightness[3], + ambientOcclusionCalculator.light[0], + ambientOcclusionCalculator.light[1], + ambientOcclusionCalculator.light[2], + ambientOcclusionCalculator.light[3], overlay); } } @@ -224,8 +259,10 @@ private void renderQuad(BlockRenderView world, BlockState state, BlockPos pos, V g = 1.0F; b = 1.0F; } + + //System.out.printf("quad(): pos [%s] / state [%s] --> SPRITE [%s]\n", pos.toShortString(), state, quad.getSprite().toString()); vertexConsumer.quad(matrixStack.peek(), quad, new float[]{brightness0, brightness1, brightness2, brightness3}, - r, g, b, 1.0f, new int[]{light0, light1, light2, light3}, overlay, true); + r, g, b, 1.0f, new int[]{light0, light1, light2, light3}, overlay, true); } private void getQuadDimensions(BlockRenderView world, BlockState state, BlockPos pos, int[] vertexData, Direction face, @Nullable float[] box, BitSet flags) @@ -368,11 +405,13 @@ private void fillQuadBounds(BlockRenderView world, BlockState stateIn, BlockPos } */ + @ApiStatus.Experimental public void renderEntity(VertexConsumer vertexConsumer, MatrixStack matrixStack, @Nullable BlockState stateIn, BakedModel modelIn, float red, float green, float blue, int light, int overlay) { Random rand = Random.create(); long life = 42L; + for (Direction side : PositionUtils.ALL_DIRECTIONS) { rand.setSeed(life); @@ -382,6 +421,7 @@ public void renderEntity(VertexConsumer vertexConsumer, MatrixStack matrixStack, this.renderQuads(vertexConsumer, matrixStack, red, green, blue, modelIn.getQuads(stateIn, null, rand), light, overlay); } + @ApiStatus.Experimental private void renderQuads(VertexConsumer vertexConsumer, MatrixStack matrixStack, float red, float green, float blue, List quads, int light, int overlay) { @@ -407,636 +447,49 @@ private void renderQuads(VertexConsumer vertexConsumer, MatrixStack matrixStack, } } - /* - public boolean renderBlockEntity(VertexConsumerProvider consumer, MatrixStack matrixStack, BlockState stateIn, int light, int overlay) + @ApiStatus.Experimental + public void renderLiquid(VertexConsumer consumer, BlockRenderView world, BlockPos pos, BlockState stateIn, FluidState fluid) { - BlockRenderType blockRenderType = stateIn.getRenderType(); - if (blockRenderType == BlockRenderType.INVISIBLE) + try { - return false; + this.liquidRenderer.render(world, pos, consumer, stateIn, fluid); } - switch (blockRenderType) + catch (Throwable var9) { - case MODEL: - { - BakedModel bakedModel = this.getModel(state); - int i = this.blockColors.getColor(state, null, null, 0); - float f = (float) (i >> 16 & 0xFF) / 255.0f; - float g = (float) (i >> 8 & 0xFF) / 255.0f; - float h = (float) (i & 0xFF) / 255.0f; - } - case ENTITYBLOCK_ANIMATED: { - this.builtinModelItemRenderer.render(new ItemStack(stateIn.getBlock()), ModelTransformationMode.NONE, matrixStack, consumer, light, overlay); - } + CrashReport crashReport = CrashReport.create(var9, "Tesselating liquid in world"); + CrashReportSection crashReportSection = crashReport.addElement("Block being tesselated"); + CrashReportSection.addBlockInfo(crashReportSection, world, pos, null); + throw new CrashException(crashReport); } - - return false; } - */ - public static void enableCache() - { - CACHE.get().enable(); - } - - public static void disableCache() + public BakedModel getBakedModel(BlockState stateIn) { - CACHE.get().disable(); + return this.bakedManager.getBlockModels().getModel(stateIn); } - static class AmbientOcclusionCalculator + @ApiStatus.Experimental + public boolean renderBlockEntity(VertexConsumerProvider consumer, MatrixStack matrixStack, BlockState stateIn, int light, int overlay) { - private final float[] brightness = new float[4]; - private final int[] light = new int[4]; - - public void apply(BlockRenderView world, BlockState state, BlockPos pos, Direction direction, float[] box, BitSet shapeState, boolean hasShade) - { - // 2024 - /* - EnumNeighborInfo neighborInfo = EnumNeighborInfo.getNeighbourInfo(direction); - VertexTranslations vertexTranslations = VertexTranslations.getVertexTranslations(direction); - int i, j, k, l, i1, i3, j1, k1, l1; - i = j = k = l = i1 = i3 = j1 = k1 = l1 = ((15 << 20) | (15 << 4)); - float b1 = 1.0F; - float b2 = 1.0F; - float b3 = 1.0F; - float b4 = 1.0F; - - if (shapeState.get(1) && neighborInfo.doNonCubicWeight) - { - float f13 = box[neighborInfo.vert0Weights[0].shape] * box[neighborInfo.vert0Weights[1].shape]; - float f14 = box[neighborInfo.vert0Weights[2].shape] * box[neighborInfo.vert0Weights[3].shape]; - float f15 = box[neighborInfo.vert0Weights[4].shape] * box[neighborInfo.vert0Weights[5].shape]; - float f16 = box[neighborInfo.vert0Weights[6].shape] * box[neighborInfo.vert0Weights[7].shape]; - float f17 = box[neighborInfo.vert1Weights[0].shape] * box[neighborInfo.vert1Weights[1].shape]; - float f18 = box[neighborInfo.vert1Weights[2].shape] * box[neighborInfo.vert1Weights[3].shape]; - float f19 = box[neighborInfo.vert1Weights[4].shape] * box[neighborInfo.vert1Weights[5].shape]; - float f20 = box[neighborInfo.vert1Weights[6].shape] * box[neighborInfo.vert1Weights[7].shape]; - float f21 = box[neighborInfo.vert2Weights[0].shape] * box[neighborInfo.vert2Weights[1].shape]; - float f22 = box[neighborInfo.vert2Weights[2].shape] * box[neighborInfo.vert2Weights[3].shape]; - float f23 = box[neighborInfo.vert2Weights[4].shape] * box[neighborInfo.vert2Weights[5].shape]; - float f24 = box[neighborInfo.vert2Weights[6].shape] * box[neighborInfo.vert2Weights[7].shape]; - float f25 = box[neighborInfo.vert3Weights[0].shape] * box[neighborInfo.vert3Weights[1].shape]; - float f26 = box[neighborInfo.vert3Weights[2].shape] * box[neighborInfo.vert3Weights[3].shape]; - float f27 = box[neighborInfo.vert3Weights[4].shape] * box[neighborInfo.vert3Weights[5].shape]; - float f28 = box[neighborInfo.vert3Weights[6].shape] * box[neighborInfo.vert3Weights[7].shape]; - this.brightness[vertexTranslations.vert0] = b1 * f13 + b2 * f14 + b3 * f15 + b4 * f16; - this.brightness[vertexTranslations.vert1] = b1 * f17 + b2 * f18 + b3 * f19 + b4 * f20; - this.brightness[vertexTranslations.vert2] = b1 * f21 + b2 * f22 + b3 * f23 + b4 * f24; - this.brightness[vertexTranslations.vert3] = b1 * f25 + b2 * f26 + b3 * f27 + b4 * f28; - int i2 = this.getAoBrightness(l, i, j1, i3); - int j2 = this.getAoBrightness(k, i, i1, i3); - int k2 = this.getAoBrightness(k, j, k1, i3); - int l2 = this.getAoBrightness(l, j, l1, i3); - this.light[vertexTranslations.vert0] = this.getVertexBrightness(i2, j2, k2, l2, f13, f14, f15, f16); - this.light[vertexTranslations.vert1] = this.getVertexBrightness(i2, j2, k2, l2, f17, f18, f19, f20); - this.light[vertexTranslations.vert2] = this.getVertexBrightness(i2, j2, k2, l2, f21, f22, f23, f24); - this.light[vertexTranslations.vert3] = this.getVertexBrightness(i2, j2, k2, l2, f25, f26, f27, f28); - } - else - { - this.light[vertexTranslations.vert0] = this.getAoBrightness(l, i, j1, i3); - this.light[vertexTranslations.vert1] = this.getAoBrightness(k, i, i1, i3); - this.light[vertexTranslations.vert2] = this.getAoBrightness(k, j, k1, i3); - this.light[vertexTranslations.vert3] = this.getAoBrightness(l, j, l1, i3); - this.brightness[vertexTranslations.vert0] = b1; - this.brightness[vertexTranslations.vert1] = b2; - this.brightness[vertexTranslations.vert2] = b3; - this.brightness[vertexTranslations.vert3] = b4; - } - - float b = world.getBrightness(direction, hasShade); - - for (int index = 0; index < this.brightness.length; ++index) - { - this.brightness[index] *= b; - } - */ - - // 24w36a - BlockPos blockPos = shapeState.get(0) ? pos.offset(direction) : pos; - ND neighborData = ND.getData(direction); - BlockPos.Mutable mutable = new BlockPos.Mutable(); - BC brightnessCache = BlockModelRendererSchematic.CACHE.get(); - mutable.set(blockPos, neighborData.faces[0]); - BlockState blockState = world.getBlockState(mutable); - int i = brightnessCache.getInt(blockState, world, mutable); - float f = brightnessCache.getFloat(blockState, world, mutable); - mutable.set(blockPos, neighborData.faces[1]); - BlockState blockState2 = world.getBlockState(mutable); - int j = brightnessCache.getInt(blockState2, world, mutable); - float g = brightnessCache.getFloat(blockState2, world, mutable); - mutable.set(blockPos, neighborData.faces[2]); - BlockState blockState3 = world.getBlockState(mutable); - int k = brightnessCache.getInt(blockState3, world, mutable); - float h = brightnessCache.getFloat(blockState3, world, mutable); - mutable.set(blockPos, neighborData.faces[3]); - BlockState blockState4 = world.getBlockState(mutable); - int l = brightnessCache.getInt(blockState4, world, mutable); - float m = brightnessCache.getFloat(blockState4, world, mutable); - BlockState blockState5 = world.getBlockState(mutable.set(blockPos, neighborData.faces[0]).move(direction)); - boolean bl2 = !blockState5.shouldBlockVision(world, mutable) || blockState5.getOpacity() == 0; - BlockState blockState6 = world.getBlockState(mutable.set(blockPos, neighborData.faces[1]).move(direction)); - boolean bl3 = !blockState6.shouldBlockVision(world, mutable) || blockState6.getOpacity() == 0; - BlockState blockState7 = world.getBlockState(mutable.set(blockPos, neighborData.faces[2]).move(direction)); - boolean bl4 = !blockState7.shouldBlockVision(world, mutable) || blockState7.getOpacity() == 0; - BlockState blockState8 = world.getBlockState(mutable.set(blockPos, neighborData.faces[3]).move(direction)); - boolean bl5 = !blockState8.shouldBlockVision(world, mutable) || blockState8.getOpacity() == 0; - float n; - int o; - BlockState blockState9; - if (!bl4 && !bl2) - { - n = f; - o = i; - } - else - { - mutable.set(blockPos, neighborData.faces[0]).move(neighborData.faces[2]); - blockState9 = world.getBlockState(mutable); - n = brightnessCache.getFloat(blockState9, world, mutable); - o = brightnessCache.getInt(blockState9, world, mutable); - } - - float p; - int q; - if (!bl5 && !bl2) - { - p = f; - q = i; - } - else - { - mutable.set(blockPos, neighborData.faces[0]).move(neighborData.faces[3]); - blockState9 = world.getBlockState(mutable); - p = brightnessCache.getFloat(blockState9, world, mutable); - q = brightnessCache.getInt(blockState9, world, mutable); - } - - float r; - int s; - if (!bl4 && !bl3) - { - r = f; - s = i; - } - else - { - mutable.set(blockPos, neighborData.faces[1]).move(neighborData.faces[2]); - blockState9 = world.getBlockState(mutable); - r = brightnessCache.getFloat(blockState9, world, mutable); - s = brightnessCache.getInt(blockState9, world, mutable); - } - - float t; - int u; - if (!bl5 && !bl3) - { - t = f; - u = i; - } - else - { - mutable.set(blockPos, neighborData.faces[1]).move(neighborData.faces[3]); - blockState9 = world.getBlockState(mutable); - t = brightnessCache.getFloat(blockState9, world, mutable); - u = brightnessCache.getInt(blockState9, world, mutable); - } - - int v = brightnessCache.getInt(state, world, pos); - mutable.set(pos, direction); - BlockState blockState10 = world.getBlockState(mutable); - if (shapeState.get(0) || !blockState10.isOpaqueFullCube()) - { - v = brightnessCache.getInt(blockState10, world, mutable); - } - - float w = shapeState.get(0) ? brightnessCache.getFloat(world.getBlockState(blockPos), world, blockPos) : brightnessCache.getFloat(world.getBlockState(pos), world, pos); - Tl translation = Tl.getTranslations(direction); - float x; - float y; - float z; - float aa; - if (shapeState.get(1) && neighborData.nonCubicWeight) - { - x = (m + f + p + w) * 0.25F; - y = (h + f + n + w) * 0.25F; - z = (h + g + r + w) * 0.25F; - aa = (m + g + t + w) * 0.25F; - float ab = box[neighborData.field_4192[0].shape] * box[neighborData.field_4192[1].shape]; - float ac = box[neighborData.field_4192[2].shape] * box[neighborData.field_4192[3].shape]; - float ad = box[neighborData.field_4192[4].shape] * box[neighborData.field_4192[5].shape]; - float ae = box[neighborData.field_4192[6].shape] * box[neighborData.field_4192[7].shape]; - float af = box[neighborData.field_4185[0].shape] * box[neighborData.field_4185[1].shape]; - float ag = box[neighborData.field_4185[2].shape] * box[neighborData.field_4185[3].shape]; - float ah = box[neighborData.field_4185[4].shape] * box[neighborData.field_4185[5].shape]; - float ai = box[neighborData.field_4185[6].shape] * box[neighborData.field_4185[7].shape]; - float aj = box[neighborData.field_4180[0].shape] * box[neighborData.field_4180[1].shape]; - float ak = box[neighborData.field_4180[2].shape] * box[neighborData.field_4180[3].shape]; - float al = box[neighborData.field_4180[4].shape] * box[neighborData.field_4180[5].shape]; - float am = box[neighborData.field_4180[6].shape] * box[neighborData.field_4180[7].shape]; - float an = box[neighborData.field_4188[0].shape] * box[neighborData.field_4188[1].shape]; - float ao = box[neighborData.field_4188[2].shape] * box[neighborData.field_4188[3].shape]; - float ap = box[neighborData.field_4188[4].shape] * box[neighborData.field_4188[5].shape]; - float aq = box[neighborData.field_4188[6].shape] * box[neighborData.field_4188[7].shape]; - this.brightness[translation.firstCorner] = Math.clamp(x * ab + y * ac + z * ad + aa * ae, 0.0F, 1.0F); - this.brightness[translation.secondCorner] = Math.clamp(x * af + y * ag + z * ah + aa * ai, 0.0F, 1.0F); - this.brightness[translation.thirdCorner] = Math.clamp(x * aj + y * ak + z * al + aa * am, 0.0F, 1.0F); - this.brightness[translation.fourthCorner] = Math.clamp(x * an + y * ao + z * ap + aa * aq, 0.0F, 1.0F); - int ar = this.getAmbientOcclusionBrightness(l, i, q, v); - int as = this.getAmbientOcclusionBrightness(k, i, o, v); - int at = this.getAmbientOcclusionBrightness(k, j, s, v); - int au = this.getAmbientOcclusionBrightness(l, j, u, v); - this.light[translation.firstCorner] = this.getBrightness(ar, as, at, au, ab, ac, ad, ae); - this.light[translation.secondCorner] = this.getBrightness(ar, as, at, au, af, ag, ah, ai); - this.light[translation.thirdCorner] = this.getBrightness(ar, as, at, au, aj, ak, al, am); - this.light[translation.fourthCorner] = this.getBrightness(ar, as, at, au, an, ao, ap, aq); - } - else - { - x = (m + f + p + w) * 0.25F; - y = (h + f + n + w) * 0.25F; - z = (h + g + r + w) * 0.25F; - aa = (m + g + t + w) * 0.25F; - this.light[translation.firstCorner] = this.getAmbientOcclusionBrightness(l, i, q, v); - this.light[translation.secondCorner] = this.getAmbientOcclusionBrightness(k, i, o, v); - this.light[translation.thirdCorner] = this.getAmbientOcclusionBrightness(k, j, s, v); - this.light[translation.fourthCorner] = this.getAmbientOcclusionBrightness(l, j, u, v); - this.brightness[translation.firstCorner] = x; - this.brightness[translation.secondCorner] = y; - this.brightness[translation.thirdCorner] = z; - this.brightness[translation.fourthCorner] = aa; - } - - x = world.getBrightness(direction, hasShade); - - for (int av = 0; av < this.brightness.length; ++av) - { - this.brightness[av] *= x; - } - } + BlockRenderType blockRenderType = stateIn.getRenderType(); - private int getAmbientOcclusionBrightness(int i, int j, int k, int l) + if (blockRenderType == BlockRenderType.INVISIBLE) { - if (i == 0) - { - i = l; - } - - if (j == 0) - { - j = l; - } - - if (k == 0) - { - k = l; - } - - return i + j + k + l >> 2 & 16711935; + return false; } - private int getBrightness(int i, int j, int k, int l, float f, float g, float h, float m) - { - int n = (int) ((float) (i >> 16 & 255) * f + (float) (j >> 16 & 255) * g + (float) (k >> 16 & 255) * h + (float) (l >> 16 & 255) * m) & 255; - int o = (int) ((float) (i & 255) * f + (float) (j & 255) * g + (float) (k & 255) * h + (float) (l & 255) * m) & 255; - return n << 16 | o; - } - } + BakedModel bakedModel = this.getBakedModel(stateIn); + int i = this.colorMap.getColor(stateIn, null, null, 0); + float red = (float) (i >> 16 & 0xFF) / 255.0f; + float green = (float) (i >> 8 & 0xFF) / 255.0f; + float blue = (float) (i & 0xFF) / 255.0f; - // 2018 /* - private int getAoBrightness(int br1, int br2, int br3, int br4) - { - if (br1 == 0) - { - br1 = br4; - } - - if (br2 == 0) - { - br2 = br4; - } - - if (br3 == 0) - { - br3 = br4; - } - - return br1 + br2 + br3 + br4 >> 2 & 16711935; - } - - private int getVertexBrightness(int p_178203_1_, int p_178203_2_, int p_178203_3_, int p_178203_4_, float p_178203_5_, float p_178203_6_, float p_178203_7_, float p_178203_8_) - { - int i = (int)((float)(p_178203_1_ >> 16 & 255) * p_178203_5_ + (float)(p_178203_2_ >> 16 & 255) * p_178203_6_ + (float)(p_178203_3_ >> 16 & 255) * p_178203_7_ + (float)(p_178203_4_ >> 16 & 255) * p_178203_8_) & 255; - int j = (int)((float)(p_178203_1_ & 255) * p_178203_5_ + (float)(p_178203_2_ & 255) * p_178203_6_ + (float)(p_178203_3_ & 255) * p_178203_7_ + (float)(p_178203_4_ & 255) * p_178203_8_) & 255; - return i << 16 | j; - } - } - - public enum EnumNeighborInfo - { - DOWN(new Direction[]{Direction.WEST, Direction.EAST, Direction.NORTH, Direction.SOUTH}, 0.5F, true, new Orientation[]{Orientation.FLIP_WEST, Orientation.SOUTH, Orientation.FLIP_WEST, Orientation.FLIP_SOUTH, Orientation.WEST, Orientation.FLIP_SOUTH, Orientation.WEST, Orientation.SOUTH}, new Orientation[]{Orientation.FLIP_WEST, Orientation.NORTH, Orientation.FLIP_WEST, Orientation.FLIP_NORTH, Orientation.WEST, Orientation.FLIP_NORTH, Orientation.WEST, Orientation.NORTH}, new Orientation[]{Orientation.FLIP_EAST, Orientation.NORTH, Orientation.FLIP_EAST, Orientation.FLIP_NORTH, Orientation.EAST, Orientation.FLIP_NORTH, Orientation.EAST, Orientation.NORTH}, new Orientation[]{Orientation.FLIP_EAST, Orientation.SOUTH, Orientation.FLIP_EAST, Orientation.FLIP_SOUTH, Orientation.EAST, Orientation.FLIP_SOUTH, Orientation.EAST, Orientation.SOUTH}), - UP(new Direction[]{Direction.EAST, Direction.WEST, Direction.NORTH, Direction.SOUTH}, 1.0F, true, new Orientation[]{Orientation.EAST, Orientation.SOUTH, Orientation.EAST, Orientation.FLIP_SOUTH, Orientation.FLIP_EAST, Orientation.FLIP_SOUTH, Orientation.FLIP_EAST, Orientation.SOUTH}, new Orientation[]{Orientation.EAST, Orientation.NORTH, Orientation.EAST, Orientation.FLIP_NORTH, Orientation.FLIP_EAST, Orientation.FLIP_NORTH, Orientation.FLIP_EAST, Orientation.NORTH}, new Orientation[]{Orientation.WEST, Orientation.NORTH, Orientation.WEST, Orientation.FLIP_NORTH, Orientation.FLIP_WEST, Orientation.FLIP_NORTH, Orientation.FLIP_WEST, Orientation.NORTH}, new Orientation[]{Orientation.WEST, Orientation.SOUTH, Orientation.WEST, Orientation.FLIP_SOUTH, Orientation.FLIP_WEST, Orientation.FLIP_SOUTH, Orientation.FLIP_WEST, Orientation.SOUTH}), - NORTH(new Direction[]{Direction.UP, Direction.DOWN, Direction.EAST, Direction.WEST}, 0.8F, true, new Orientation[]{Orientation.UP, Orientation.FLIP_WEST, Orientation.UP, Orientation.WEST, Orientation.FLIP_UP, Orientation.WEST, Orientation.FLIP_UP, Orientation.FLIP_WEST}, new Orientation[]{Orientation.UP, Orientation.FLIP_EAST, Orientation.UP, Orientation.EAST, Orientation.FLIP_UP, Orientation.EAST, Orientation.FLIP_UP, Orientation.FLIP_EAST}, new Orientation[]{Orientation.DOWN, Orientation.FLIP_EAST, Orientation.DOWN, Orientation.EAST, Orientation.FLIP_DOWN, Orientation.EAST, Orientation.FLIP_DOWN, Orientation.FLIP_EAST}, new Orientation[]{Orientation.DOWN, Orientation.FLIP_WEST, Orientation.DOWN, Orientation.WEST, Orientation.FLIP_DOWN, Orientation.WEST, Orientation.FLIP_DOWN, Orientation.FLIP_WEST}), - SOUTH(new Direction[]{Direction.WEST, Direction.EAST, Direction.DOWN, Direction.UP}, 0.8F, true, new Orientation[]{Orientation.UP, Orientation.FLIP_WEST, Orientation.FLIP_UP, Orientation.FLIP_WEST, Orientation.FLIP_UP, Orientation.WEST, Orientation.UP, Orientation.WEST}, new Orientation[]{Orientation.DOWN, Orientation.FLIP_WEST, Orientation.FLIP_DOWN, Orientation.FLIP_WEST, Orientation.FLIP_DOWN, Orientation.WEST, Orientation.DOWN, Orientation.WEST}, new Orientation[]{Orientation.DOWN, Orientation.FLIP_EAST, Orientation.FLIP_DOWN, Orientation.FLIP_EAST, Orientation.FLIP_DOWN, Orientation.EAST, Orientation.DOWN, Orientation.EAST}, new Orientation[]{Orientation.UP, Orientation.FLIP_EAST, Orientation.FLIP_UP, Orientation.FLIP_EAST, Orientation.FLIP_UP, Orientation.EAST, Orientation.UP, Orientation.EAST}), - WEST(new Direction[]{Direction.UP, Direction.DOWN, Direction.NORTH, Direction.SOUTH}, 0.6F, true, new Orientation[]{Orientation.UP, Orientation.SOUTH, Orientation.UP, Orientation.FLIP_SOUTH, Orientation.FLIP_UP, Orientation.FLIP_SOUTH, Orientation.FLIP_UP, Orientation.SOUTH}, new Orientation[]{Orientation.UP, Orientation.NORTH, Orientation.UP, Orientation.FLIP_NORTH, Orientation.FLIP_UP, Orientation.FLIP_NORTH, Orientation.FLIP_UP, Orientation.NORTH}, new Orientation[]{Orientation.DOWN, Orientation.NORTH, Orientation.DOWN, Orientation.FLIP_NORTH, Orientation.FLIP_DOWN, Orientation.FLIP_NORTH, Orientation.FLIP_DOWN, Orientation.NORTH}, new Orientation[]{Orientation.DOWN, Orientation.SOUTH, Orientation.DOWN, Orientation.FLIP_SOUTH, Orientation.FLIP_DOWN, Orientation.FLIP_SOUTH, Orientation.FLIP_DOWN, Orientation.SOUTH}), - EAST(new Direction[]{Direction.DOWN, Direction.UP, Direction.NORTH, Direction.SOUTH}, 0.6F, true, new Orientation[]{Orientation.FLIP_DOWN, Orientation.SOUTH, Orientation.FLIP_DOWN, Orientation.FLIP_SOUTH, Orientation.DOWN, Orientation.FLIP_SOUTH, Orientation.DOWN, Orientation.SOUTH}, new Orientation[]{Orientation.FLIP_DOWN, Orientation.NORTH, Orientation.FLIP_DOWN, Orientation.FLIP_NORTH, Orientation.DOWN, Orientation.FLIP_NORTH, Orientation.DOWN, Orientation.NORTH}, new Orientation[]{Orientation.FLIP_UP, Orientation.NORTH, Orientation.FLIP_UP, Orientation.FLIP_NORTH, Orientation.UP, Orientation.FLIP_NORTH, Orientation.UP, Orientation.NORTH}, new Orientation[]{Orientation.FLIP_UP, Orientation.SOUTH, Orientation.FLIP_UP, Orientation.FLIP_SOUTH, Orientation.UP, Orientation.FLIP_SOUTH, Orientation.UP, Orientation.SOUTH}); - - //private final Direction[] corners; - //private final float shadeWeight; - private final boolean doNonCubicWeight; - private final Orientation[] vert0Weights; - private final Orientation[] vert1Weights; - private final Orientation[] vert2Weights; - private final Orientation[] vert3Weights; - private static final EnumNeighborInfo[] VALUES = new EnumNeighborInfo[6]; - - EnumNeighborInfo(Direction[] p_i46236_3_, float p_i46236_4_, boolean p_i46236_5_, Orientation[] p_i46236_6_, Orientation[] p_i46236_7_, Orientation[] p_i46236_8_, Orientation[] p_i46236_9_) - { - //this.corners = p_i46236_3_; - //this.shadeWeight = p_i46236_4_; - this.doNonCubicWeight = p_i46236_5_; - this.vert0Weights = p_i46236_6_; - this.vert1Weights = p_i46236_7_; - this.vert2Weights = p_i46236_8_; - this.vert3Weights = p_i46236_9_; - } - - public static EnumNeighborInfo getNeighbourInfo(Direction p_178273_0_) - { - return VALUES[p_178273_0_.getId()]; - } - - static - { - VALUES[Direction.DOWN.getId()] = DOWN; - VALUES[Direction.UP.getId()] = UP; - VALUES[Direction.NORTH.getId()] = NORTH; - VALUES[Direction.SOUTH.getId()] = SOUTH; - VALUES[Direction.WEST.getId()] = WEST; - VALUES[Direction.EAST.getId()] = EAST; - } - } - - public enum Orientation - { - DOWN(Direction.DOWN, false), - UP(Direction.UP, false), - NORTH(Direction.NORTH, false), - SOUTH(Direction.SOUTH, false), - WEST(Direction.WEST, false), - EAST(Direction.EAST, false), - FLIP_DOWN(Direction.DOWN, true), - FLIP_UP(Direction.UP, true), - FLIP_NORTH(Direction.NORTH, true), - FLIP_SOUTH(Direction.SOUTH, true), - FLIP_WEST(Direction.WEST, true), - FLIP_EAST(Direction.EAST, true); - - private final int shape; - - Orientation(Direction p_i46233_3_, boolean p_i46233_4_) - { - this.shape = p_i46233_3_.getId() + (p_i46233_4_ ? Direction.values().length : 0); - } - } - - enum VertexTranslations - { - DOWN(0, 1, 2, 3), - UP(2, 3, 0, 1), - NORTH(3, 0, 1, 2), - SOUTH(0, 1, 2, 3), - WEST(3, 0, 1, 2), - EAST(1, 2, 3, 0); - - private final int vert0; - private final int vert1; - private final int vert2; - private final int vert3; - private static final VertexTranslations[] VALUES = new VertexTranslations[6]; - - VertexTranslations(int p_i46234_3_, int p_i46234_4_, int p_i46234_5_, int p_i46234_6_) - { - this.vert0 = p_i46234_3_; - this.vert1 = p_i46234_4_; - this.vert2 = p_i46234_5_; - this.vert3 = p_i46234_6_; - } - - public static VertexTranslations getVertexTranslations(Direction p_178184_0_) - { - return VALUES[p_178184_0_.getId()]; - } - - static - { - VALUES[Direction.DOWN.getId()] = DOWN; - VALUES[Direction.UP.getId()] = UP; - VALUES[Direction.NORTH.getId()] = NORTH; - VALUES[Direction.SOUTH.getId()] = SOUTH; - VALUES[Direction.WEST.getId()] = WEST; - VALUES[Direction.EAST.getId()] = EAST; - } - } + renderEntity(consumer.getBuffer(RenderLayers.getEntityBlockLayer(stateIn)), matrixStack, stateIn, bakedModel, red, green, blue, light, overlay); + this.bakedManager.getBlockEntityModelsSupplier().get() + .render(stateIn.getBlock(), ModelTransformationMode.NONE, matrixStack, consumer, light, overlay); */ - private static class BC - { - private boolean enabled; - private final Long2IntLinkedOpenHashMap intCache = Util.make(() -> - { - Long2IntLinkedOpenHashMap long2IntLinkedOpenHashMap = new Long2IntLinkedOpenHashMap(100, 0.25F) - { - protected void rehash(int newN) - { - } - }; - long2IntLinkedOpenHashMap.defaultReturnValue(Integer.MAX_VALUE); - return long2IntLinkedOpenHashMap; - }); - private final Long2FloatLinkedOpenHashMap floatCache = Util.make(() -> - { - Long2FloatLinkedOpenHashMap long2FloatLinkedOpenHashMap = new Long2FloatLinkedOpenHashMap(100, 0.25F) - { - protected void rehash(int newN) - { - } - }; - long2FloatLinkedOpenHashMap.defaultReturnValue(Float.NaN); - return long2FloatLinkedOpenHashMap; - }); - - private BC() - { - } - - public void enable() - { - this.enabled = true; - } - - public void disable() - { - this.enabled = false; - this.intCache.clear(); - this.floatCache.clear(); - } - - public int getInt(BlockState state, BlockRenderView world, BlockPos pos) - { - long l = pos.asLong(); - int i; - if (this.enabled) - { - i = this.intCache.get(l); - if (i != Integer.MAX_VALUE) - { - return i; - } - } - - i = WorldRenderer.getLightmapCoordinates(world, state, pos); - if (this.enabled) - { - if (this.intCache.size() == 100) - { - this.intCache.removeFirstInt(); - } - - this.intCache.put(l, i); - } - - return i; - } - - public float getFloat(BlockState state, BlockRenderView blockView, BlockPos pos) - { - long l = pos.asLong(); - float f; - if (this.enabled) - { - f = this.floatCache.get(l); - if (!Float.isNaN(f)) - { - return f; - } - } - - f = state.getAmbientOcclusionLightLevel(blockView, pos); - if (this.enabled) - { - if (this.floatCache.size() == 100) - { - this.floatCache.removeFirstFloat(); - } - - this.floatCache.put(l, f); - } - - return f; - } - } - - protected enum ND - { - DOWN(new Direction[]{Direction.WEST, Direction.EAST, Direction.NORTH, Direction.SOUTH}, 0.5F, true, new NO[]{NO.FLIP_WEST, NO.SOUTH, NO.FLIP_WEST, NO.FLIP_SOUTH, NO.WEST, NO.FLIP_SOUTH, NO.WEST, NO.SOUTH}, new NO[]{NO.FLIP_WEST, NO.NORTH, NO.FLIP_WEST, NO.FLIP_NORTH, NO.WEST, NO.FLIP_NORTH, NO.WEST, NO.NORTH}, new NO[]{NO.FLIP_EAST, NO.NORTH, NO.FLIP_EAST, NO.FLIP_NORTH, NO.EAST, NO.FLIP_NORTH, NO.EAST, NO.NORTH}, new NO[]{NO.FLIP_EAST, NO.SOUTH, NO.FLIP_EAST, NO.FLIP_SOUTH, NO.EAST, NO.FLIP_SOUTH, NO.EAST, NO.SOUTH}), - UP(new Direction[]{Direction.EAST, Direction.WEST, Direction.NORTH, Direction.SOUTH}, 1.0F, true, new NO[]{NO.EAST, NO.SOUTH, NO.EAST, NO.FLIP_SOUTH, NO.FLIP_EAST, NO.FLIP_SOUTH, NO.FLIP_EAST, NO.SOUTH}, new NO[]{NO.EAST, NO.NORTH, NO.EAST, NO.FLIP_NORTH, NO.FLIP_EAST, NO.FLIP_NORTH, NO.FLIP_EAST, NO.NORTH}, new NO[]{NO.WEST, NO.NORTH, NO.WEST, NO.FLIP_NORTH, NO.FLIP_WEST, NO.FLIP_NORTH, NO.FLIP_WEST, NO.NORTH}, new NO[]{NO.WEST, NO.SOUTH, NO.WEST, NO.FLIP_SOUTH, NO.FLIP_WEST, NO.FLIP_SOUTH, NO.FLIP_WEST, NO.SOUTH}), - NORTH(new Direction[]{Direction.UP, Direction.DOWN, Direction.EAST, Direction.WEST}, 0.8F, true, new NO[]{NO.UP, NO.FLIP_WEST, NO.UP, NO.WEST, NO.FLIP_UP, NO.WEST, NO.FLIP_UP, NO.FLIP_WEST}, new NO[]{NO.UP, NO.FLIP_EAST, NO.UP, NO.EAST, NO.FLIP_UP, NO.EAST, NO.FLIP_UP, NO.FLIP_EAST}, new NO[]{NO.DOWN, NO.FLIP_EAST, NO.DOWN, NO.EAST, NO.FLIP_DOWN, NO.EAST, NO.FLIP_DOWN, NO.FLIP_EAST}, new NO[]{NO.DOWN, NO.FLIP_WEST, NO.DOWN, NO.WEST, NO.FLIP_DOWN, NO.WEST, NO.FLIP_DOWN, NO.FLIP_WEST}), - SOUTH(new Direction[]{Direction.WEST, Direction.EAST, Direction.DOWN, Direction.UP}, 0.8F, true, new NO[]{NO.UP, NO.FLIP_WEST, NO.FLIP_UP, NO.FLIP_WEST, NO.FLIP_UP, NO.WEST, NO.UP, NO.WEST}, new NO[]{NO.DOWN, NO.FLIP_WEST, NO.FLIP_DOWN, NO.FLIP_WEST, NO.FLIP_DOWN, NO.WEST, NO.DOWN, NO.WEST}, new NO[]{NO.DOWN, NO.FLIP_EAST, NO.FLIP_DOWN, NO.FLIP_EAST, NO.FLIP_DOWN, NO.EAST, NO.DOWN, NO.EAST}, new NO[]{NO.UP, NO.FLIP_EAST, NO.FLIP_UP, NO.FLIP_EAST, NO.FLIP_UP, NO.EAST, NO.UP, NO.EAST}), - WEST(new Direction[]{Direction.UP, Direction.DOWN, Direction.NORTH, Direction.SOUTH}, 0.6F, true, new NO[]{NO.UP, NO.SOUTH, NO.UP, NO.FLIP_SOUTH, NO.FLIP_UP, NO.FLIP_SOUTH, NO.FLIP_UP, NO.SOUTH}, new NO[]{NO.UP, NO.NORTH, NO.UP, NO.FLIP_NORTH, NO.FLIP_UP, NO.FLIP_NORTH, NO.FLIP_UP, NO.NORTH}, new NO[]{NO.DOWN, NO.NORTH, NO.DOWN, NO.FLIP_NORTH, NO.FLIP_DOWN, NO.FLIP_NORTH, NO.FLIP_DOWN, NO.NORTH}, new NO[]{NO.DOWN, NO.SOUTH, NO.DOWN, NO.FLIP_SOUTH, NO.FLIP_DOWN, NO.FLIP_SOUTH, NO.FLIP_DOWN, NO.SOUTH}), - EAST(new Direction[]{Direction.DOWN, Direction.UP, Direction.NORTH, Direction.SOUTH}, 0.6F, true, new NO[]{NO.FLIP_DOWN, NO.SOUTH, NO.FLIP_DOWN, NO.FLIP_SOUTH, NO.DOWN, NO.FLIP_SOUTH, NO.DOWN, NO.SOUTH}, new NO[]{NO.FLIP_DOWN, NO.NORTH, NO.FLIP_DOWN, NO.FLIP_NORTH, NO.DOWN, NO.FLIP_NORTH, NO.DOWN, NO.NORTH}, new NO[]{NO.FLIP_UP, NO.NORTH, NO.FLIP_UP, NO.FLIP_NORTH, NO.UP, NO.FLIP_NORTH, NO.UP, NO.NORTH}, new NO[]{NO.FLIP_UP, NO.SOUTH, NO.FLIP_UP, NO.FLIP_SOUTH, NO.UP, NO.FLIP_SOUTH, NO.UP, NO.SOUTH}); - - final Direction[] faces; - final boolean nonCubicWeight; - final NO[] field_4192; - final NO[] field_4185; - final NO[] field_4180; - final NO[] field_4188; - private static final ND[] VALUES = Util.make(new ND[6], (values) -> - { - values[Direction.DOWN.getId()] = DOWN; - values[Direction.UP.getId()] = UP; - values[Direction.NORTH.getId()] = NORTH; - values[Direction.SOUTH.getId()] = SOUTH; - values[Direction.WEST.getId()] = WEST; - values[Direction.EAST.getId()] = EAST; - }); - - ND(final Direction[] faces, final float f, final boolean nonCubicWeight, final NO[] neighborOrientations, final NO[] neighborOrientations2, final NO[] neighborOrientations3, final NO[] neighborOrientations4) - { - this.faces = faces; - this.nonCubicWeight = nonCubicWeight; - this.field_4192 = neighborOrientations; - this.field_4185 = neighborOrientations2; - this.field_4180 = neighborOrientations3; - this.field_4188 = neighborOrientations4; - } - - public static ND getData(Direction direction) - { - return VALUES[direction.getId()]; - } - } - - protected enum NO - { - DOWN(Direction.DOWN, false), - UP(Direction.UP, false), - NORTH(Direction.NORTH, false), - SOUTH(Direction.SOUTH, false), - WEST(Direction.WEST, false), - EAST(Direction.EAST, false), - FLIP_DOWN(Direction.DOWN, true), - FLIP_UP(Direction.UP, true), - FLIP_NORTH(Direction.NORTH, true), - FLIP_SOUTH(Direction.SOUTH, true), - FLIP_WEST(Direction.WEST, true), - FLIP_EAST(Direction.EAST, true); - - final int shape; - - NO(final Direction direction, final boolean flip) - { - this.shape = direction.getId() + (flip ? DIRECTIONS.length : 0); - } - } - - private enum Tl - { - DOWN(0, 1, 2, 3), - UP(2, 3, 0, 1), - NORTH(3, 0, 1, 2), - SOUTH(0, 1, 2, 3), - WEST(3, 0, 1, 2), - EAST(1, 2, 3, 0); - - final int firstCorner; - final int secondCorner; - final int thirdCorner; - final int fourthCorner; - private static final Tl[] VALUES = Util.make(new Tl[6], (values) -> - { - values[Direction.DOWN.getId()] = DOWN; - values[Direction.UP.getId()] = UP; - values[Direction.NORTH.getId()] = NORTH; - values[Direction.SOUTH.getId()] = SOUTH; - values[Direction.WEST.getId()] = WEST; - values[Direction.EAST.getId()] = EAST; - }); - - Tl(final int firstCorner, final int secondCorner, final int thirdCorner, final int fourthCorner) - { - this.firstCorner = firstCorner; - this.secondCorner = secondCorner; - this.thirdCorner = thirdCorner; - this.fourthCorner = fourthCorner; - } - - public static Tl getTranslations(Direction direction) - { - return VALUES[direction.getId()]; - } + return true; } } diff --git a/src/main/java/fi/dy/masa/litematica/render/schematic/BufferAllocatorCache.java b/src/main/java/fi/dy/masa/litematica/render/schematic/BufferAllocatorCache.java index fdaa8d3..7189446 100644 --- a/src/main/java/fi/dy/masa/litematica/render/schematic/BufferAllocatorCache.java +++ b/src/main/java/fi/dy/masa/litematica/render/schematic/BufferAllocatorCache.java @@ -28,7 +28,10 @@ protected void allocateCache() this.layerCache.get(layer).close(); } - this.layerCache.put(layer, new BufferAllocator(layer.getExpectedBufferSize())); + synchronized (this.layerCache) + { + this.layerCache.put(layer, new BufferAllocator(layer.getExpectedBufferSize())); + } } for (OverlayRenderType type : TYPES) { @@ -37,7 +40,10 @@ protected void allocateCache() this.overlayCache.get(type).close(); } - this.overlayCache.put(type, new BufferAllocator(type.getExpectedBufferSize())); + synchronized (this.overlayCache) + { + this.overlayCache.put(type, new BufferAllocator(type.getExpectedBufferSize())); + } } } @@ -53,19 +59,28 @@ protected boolean hasBufferByOverlay(OverlayRenderType type) protected BufferAllocator getBufferByLayer(RenderLayer layer) { - return this.layerCache.computeIfAbsent(layer, l -> new BufferAllocator(l.getExpectedBufferSize())); + synchronized (this.layerCache) + { + return this.layerCache.computeIfAbsent(layer, l -> new BufferAllocator(l.getExpectedBufferSize())); + } } protected BufferAllocator getBufferByOverlay(OverlayRenderType type) { - return this.overlayCache.computeIfAbsent(type, t -> new BufferAllocator(t.getExpectedBufferSize())); + synchronized (this.overlayCache) + { + return this.overlayCache.computeIfAbsent(type, t -> new BufferAllocator(t.getExpectedBufferSize())); + } } protected void closeByLayer(RenderLayer layer) { try { - this.layerCache.remove(layer).close(); + synchronized (this.layerCache) + { + this.layerCache.remove(layer).close(); + } } catch (Exception ignored) { } } @@ -74,7 +89,10 @@ protected void closeByType(OverlayRenderType type) { try { - this.overlayCache.remove(type).close(); + synchronized (this.overlayCache) + { + this.overlayCache.remove(type).close(); + } } catch (Exception ignored) { } } diff --git a/src/main/java/fi/dy/masa/litematica/render/schematic/BufferBuilderCache.java b/src/main/java/fi/dy/masa/litematica/render/schematic/BufferBuilderCache.java index 3974578..50d5a9c 100644 --- a/src/main/java/fi/dy/masa/litematica/render/schematic/BufferBuilderCache.java +++ b/src/main/java/fi/dy/masa/litematica/render/schematic/BufferBuilderCache.java @@ -17,22 +17,28 @@ protected BufferBuilderCache() { } protected boolean hasBufferByLayer(RenderLayer layer) { - return blockBufferBuilders.containsKey(layer); + return this.blockBufferBuilders.containsKey(layer); } protected boolean hasBufferByOverlay(OverlayRenderType type) { - return overlayBufferBuilders.containsKey(type); + return this.overlayBufferBuilders.containsKey(type); } protected BufferBuilder getBufferByLayer(RenderLayer layer, @Nonnull BufferAllocatorCache allocators) { - return blockBufferBuilders.computeIfAbsent(layer, (key) -> new BufferBuilder(allocators.getBufferByLayer(key), key.getDrawMode(), key.getVertexFormat())); + synchronized (this.blockBufferBuilders) + { + return this.blockBufferBuilders.computeIfAbsent(layer, (key) -> new BufferBuilder(allocators.getBufferByLayer(key), key.getDrawMode(), key.getVertexFormat())); + } } protected BufferBuilder getBufferByOverlay(OverlayRenderType type, @Nonnull BufferAllocatorCache allocators) { - return overlayBufferBuilders.computeIfAbsent(type, (key) -> new BufferBuilder(allocators.getBufferByOverlay(key), key.getDrawMode(), key.getVertexFormat())); + synchronized (this.overlayBufferBuilders) + { + return this.overlayBufferBuilders.computeIfAbsent(type, (key) -> new BufferBuilder(allocators.getBufferByOverlay(key), key.getDrawMode(), key.getVertexFormat())); + } } protected void clearAll() diff --git a/src/main/java/fi/dy/masa/litematica/render/schematic/BuiltBufferCache.java b/src/main/java/fi/dy/masa/litematica/render/schematic/BuiltBufferCache.java index d8aeca5..f95da4b 100644 --- a/src/main/java/fi/dy/masa/litematica/render/schematic/BuiltBufferCache.java +++ b/src/main/java/fi/dy/masa/litematica/render/schematic/BuiltBufferCache.java @@ -30,7 +30,10 @@ protected void storeBuiltBufferByLayer(RenderLayer layer, @Nonnull BuiltBuffer n { this.layerBuffers.get(layer).close(); } - this.layerBuffers.put(layer, newBuffer); + synchronized (this.layerBuffers) + { + this.layerBuffers.put(layer, newBuffer); + } } protected void storeBuiltBufferByType(OverlayRenderType type, @Nonnull BuiltBuffer newBuffer) @@ -39,7 +42,10 @@ protected void storeBuiltBufferByType(OverlayRenderType type, @Nonnull BuiltBuff { this.overlayBuffers.get(type).close(); } - this.overlayBuffers.put(type, newBuffer); + synchronized (this.overlayBuffers) + { + this.overlayBuffers.put(type, newBuffer); + } } @Nullable diff --git a/src/main/java/fi/dy/masa/litematica/render/schematic/ChunkRenderLayers.java b/src/main/java/fi/dy/masa/litematica/render/schematic/ChunkRenderLayers.java index 09a43f9..8e3b89c 100644 --- a/src/main/java/fi/dy/masa/litematica/render/schematic/ChunkRenderLayers.java +++ b/src/main/java/fi/dy/masa/litematica/render/schematic/ChunkRenderLayers.java @@ -3,6 +3,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; + import net.minecraft.client.render.RenderLayer; public record ChunkRenderLayers() @@ -17,6 +18,25 @@ private static List getLayers() // Water Rendering list.add(RenderLayer.getWaterMask()); + // Experimental + /* + list.add(RenderLayer.getSecondaryBlockOutline()); + list.add(RenderLayer.getArmorEntityGlint()); + list.add(RenderLayer.getEntityGlint()); + list.add(TexturedRenderLayers.getArmorTrims(true)); + list.add(TexturedRenderLayers.getArmorTrims(false)); + list.add(TexturedRenderLayers.getBeds()); + list.add(TexturedRenderLayers.getBannerPatterns()); + list.add(TexturedRenderLayers.getChest()); + list.add(TexturedRenderLayers.getEntitySolid()); + list.add(TexturedRenderLayers.getEntityCutout()); + list.add(TexturedRenderLayers.getHangingSign()); + list.add(TexturedRenderLayers.getItemEntityTranslucentCull()); + list.add(TexturedRenderLayers.getShieldPatterns()); + list.add(TexturedRenderLayers.getShulkerBoxes()); + list.add(TexturedRenderLayers.getSign()); + */ + return list; } diff --git a/src/main/java/fi/dy/masa/litematica/render/schematic/WorldRendererSchematic.java b/src/main/java/fi/dy/masa/litematica/render/schematic/WorldRendererSchematic.java index c0c0021..1477f6b 100644 --- a/src/main/java/fi/dy/masa/litematica/render/schematic/WorldRendererSchematic.java +++ b/src/main/java/fi/dy/masa/litematica/render/schematic/WorldRendererSchematic.java @@ -3,6 +3,9 @@ import java.util.*; import javax.annotation.Nullable; +import net.minecraft.client.render.block.BlockModelRenderer; +import net.minecraft.client.render.model.BakedModelManager; +import net.minecraft.util.math.random.Random; import net.minecraft.util.profiler.Profilers; import org.joml.Matrix4f; import org.joml.Matrix4fStack; @@ -82,11 +85,10 @@ public WorldRendererSchematic(MinecraftClient mc) this.mc = mc; this.entityRenderDispatcher = mc.getEntityRenderDispatcher(); this.bufferBuilders = mc.getBufferBuilders(); - - this.renderChunkFactory = (world1, worldRenderer) -> new ChunkRendererSchematicVbo(world1, worldRenderer); - + this.renderChunkFactory = ChunkRendererSchematicVbo::new; this.blockRenderManager = MinecraftClient.getInstance().getBlockRenderManager(); this.blockModelRenderer = new BlockModelRendererSchematic(mc.getBlockColors()); + this.blockModelRenderer.setBakedManager(mc.getBakedModelManager()); } public void markNeedsUpdate() @@ -668,6 +670,8 @@ public boolean renderBlock(BlockRenderView world, BlockState state, BlockPos pos this.blockModelRenderer.renderModel(world, this.getModelForState(state), state, pos, matrixStack, bufferBuilderIn, state.getRenderingSeed(pos)); BlockModelRendererSchematic.disableCache(); + //System.out.printf("renderBlock(): result [%s]\n", result); + // TODO --> For testing the Vanilla Block Model Renderer /* BlockModelRenderer.enableBrightnessCache(); @@ -705,7 +709,8 @@ public BakedModel getModelForState(BlockState state) return this.blockRenderManager.getModels().getModelManager().getMissingModel(); } - return this.blockRenderManager.getModel(state); + //return this.blockRenderManager.getModel(state); + return this.blockRenderManager.getModels().getModel(state); } public void renderEntities(Camera camera, Frustum frustum, Matrix4f posMatrix, float partialTicks, Profiler profiler) diff --git a/src/main/java/fi/dy/masa/litematica/render/schematic/ao/AOProcessor.java b/src/main/java/fi/dy/masa/litematica/render/schematic/ao/AOProcessor.java new file mode 100644 index 0000000..159920d --- /dev/null +++ b/src/main/java/fi/dy/masa/litematica/render/schematic/ao/AOProcessor.java @@ -0,0 +1,32 @@ +package fi.dy.masa.litematica.render.schematic.ao; + +import java.util.BitSet; + +import net.minecraft.block.BlockState; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.world.BlockRenderView; + +import fi.dy.masa.litematica.config.Configs; + +public abstract class AOProcessor +{ + public final float[] brightness = new float[4]; + public final int[] light = new int[4]; + + public static AOProcessor get() + { + if (Configs.Visuals.RENDER_AO_MODERN_ENABLE.getBooleanValue()) + { + return new AOProcessorModern(); + } + else + { + return new AOProcessorLegacy(); + } + } + + public void apply(BlockRenderView world, BlockState state, BlockPos pos, Direction direction, float[] box, BitSet shapeState, boolean hasShade) + { + } +} diff --git a/src/main/java/fi/dy/masa/litematica/render/schematic/ao/AOProcessorLegacy.java b/src/main/java/fi/dy/masa/litematica/render/schematic/ao/AOProcessorLegacy.java new file mode 100644 index 0000000..dcf7285 --- /dev/null +++ b/src/main/java/fi/dy/masa/litematica/render/schematic/ao/AOProcessorLegacy.java @@ -0,0 +1,212 @@ +package fi.dy.masa.litematica.render.schematic.ao; + +import java.util.BitSet; + +import net.minecraft.block.BlockState; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.world.BlockRenderView; + +public class AOProcessorLegacy extends AOProcessor +{ + @Override + public void apply(BlockRenderView world, BlockState state, BlockPos pos, Direction direction, float[] box, BitSet shapeState, boolean hasShade) + { + // 2018 + EnumNeighborInfo neighborInfo = EnumNeighborInfo.getNeighbourInfo(direction); + VertexTranslations vertexTranslations = VertexTranslations.getVertexTranslations(direction); + int i, j, k, l, i1, i3, j1, k1, l1; + i = j = k = l = i1 = i3 = j1 = k1 = l1 = ((15 << 20) | (15 << 4)); + float b1 = 1.0F; + float b2 = 1.0F; + float b3 = 1.0F; + float b4 = 1.0F; + + if (shapeState.get(1) && neighborInfo.doNonCubicWeight) + { + float f13 = box[neighborInfo.vert0Weights[0].shape] * box[neighborInfo.vert0Weights[1].shape]; + float f14 = box[neighborInfo.vert0Weights[2].shape] * box[neighborInfo.vert0Weights[3].shape]; + float f15 = box[neighborInfo.vert0Weights[4].shape] * box[neighborInfo.vert0Weights[5].shape]; + float f16 = box[neighborInfo.vert0Weights[6].shape] * box[neighborInfo.vert0Weights[7].shape]; + float f17 = box[neighborInfo.vert1Weights[0].shape] * box[neighborInfo.vert1Weights[1].shape]; + float f18 = box[neighborInfo.vert1Weights[2].shape] * box[neighborInfo.vert1Weights[3].shape]; + float f19 = box[neighborInfo.vert1Weights[4].shape] * box[neighborInfo.vert1Weights[5].shape]; + float f20 = box[neighborInfo.vert1Weights[6].shape] * box[neighborInfo.vert1Weights[7].shape]; + float f21 = box[neighborInfo.vert2Weights[0].shape] * box[neighborInfo.vert2Weights[1].shape]; + float f22 = box[neighborInfo.vert2Weights[2].shape] * box[neighborInfo.vert2Weights[3].shape]; + float f23 = box[neighborInfo.vert2Weights[4].shape] * box[neighborInfo.vert2Weights[5].shape]; + float f24 = box[neighborInfo.vert2Weights[6].shape] * box[neighborInfo.vert2Weights[7].shape]; + float f25 = box[neighborInfo.vert3Weights[0].shape] * box[neighborInfo.vert3Weights[1].shape]; + float f26 = box[neighborInfo.vert3Weights[2].shape] * box[neighborInfo.vert3Weights[3].shape]; + float f27 = box[neighborInfo.vert3Weights[4].shape] * box[neighborInfo.vert3Weights[5].shape]; + float f28 = box[neighborInfo.vert3Weights[6].shape] * box[neighborInfo.vert3Weights[7].shape]; + this.brightness[vertexTranslations.vert0] = b1 * f13 + b2 * f14 + b3 * f15 + b4 * f16; + this.brightness[vertexTranslations.vert1] = b1 * f17 + b2 * f18 + b3 * f19 + b4 * f20; + this.brightness[vertexTranslations.vert2] = b1 * f21 + b2 * f22 + b3 * f23 + b4 * f24; + this.brightness[vertexTranslations.vert3] = b1 * f25 + b2 * f26 + b3 * f27 + b4 * f28; + int i2 = this.getAoBrightness(l, i, j1, i3); + int j2 = this.getAoBrightness(k, i, i1, i3); + int k2 = this.getAoBrightness(k, j, k1, i3); + int l2 = this.getAoBrightness(l, j, l1, i3); + this.light[vertexTranslations.vert0] = this.getVertexBrightness(i2, j2, k2, l2, f13, f14, f15, f16); + this.light[vertexTranslations.vert1] = this.getVertexBrightness(i2, j2, k2, l2, f17, f18, f19, f20); + this.light[vertexTranslations.vert2] = this.getVertexBrightness(i2, j2, k2, l2, f21, f22, f23, f24); + this.light[vertexTranslations.vert3] = this.getVertexBrightness(i2, j2, k2, l2, f25, f26, f27, f28); + } + else + { + this.light[vertexTranslations.vert0] = this.getAoBrightness(l, i, j1, i3); + this.light[vertexTranslations.vert1] = this.getAoBrightness(k, i, i1, i3); + this.light[vertexTranslations.vert2] = this.getAoBrightness(k, j, k1, i3); + this.light[vertexTranslations.vert3] = this.getAoBrightness(l, j, l1, i3); + this.brightness[vertexTranslations.vert0] = b1; + this.brightness[vertexTranslations.vert1] = b2; + this.brightness[vertexTranslations.vert2] = b3; + this.brightness[vertexTranslations.vert3] = b4; + } + + float b = world.getBrightness(direction, hasShade); + + for (int index = 0; index < this.brightness.length; ++index) + { + this.brightness[index] *= b; + } + } + + /** + * Get ambient occlusion brightness + */ + private int getAoBrightness(int br1, int br2, int br3, int br4) + { + if (br1 == 0) + { + br1 = br4; + } + + if (br2 == 0) + { + br2 = br4; + } + + if (br3 == 0) + { + br3 = br4; + } + + return br1 + br2 + br3 + br4 >> 2 & 16711935; + } + + private int getVertexBrightness(int p_178203_1_, int p_178203_2_, int p_178203_3_, int p_178203_4_, float p_178203_5_, float p_178203_6_, float p_178203_7_, float p_178203_8_) + { + int i = (int) ((float) (p_178203_1_ >> 16 & 255) * p_178203_5_ + (float) (p_178203_2_ >> 16 & 255) * p_178203_6_ + (float) (p_178203_3_ >> 16 & 255) * p_178203_7_ + (float) (p_178203_4_ >> 16 & 255) * p_178203_8_) & 255; + int j = (int) ((float) (p_178203_1_ & 255) * p_178203_5_ + (float) (p_178203_2_ & 255) * p_178203_6_ + (float) (p_178203_3_ & 255) * p_178203_7_ + (float) (p_178203_4_ & 255) * p_178203_8_) & 255; + return i << 16 | j; + } + + public enum EnumNeighborInfo + { + DOWN(new Direction[]{Direction.WEST, Direction.EAST, Direction.NORTH, Direction.SOUTH}, 0.5F, true, new Orientation[]{Orientation.FLIP_WEST, Orientation.SOUTH, Orientation.FLIP_WEST, Orientation.FLIP_SOUTH, Orientation.WEST, Orientation.FLIP_SOUTH, Orientation.WEST, Orientation.SOUTH}, new Orientation[]{Orientation.FLIP_WEST, Orientation.NORTH, Orientation.FLIP_WEST, Orientation.FLIP_NORTH, Orientation.WEST, Orientation.FLIP_NORTH, Orientation.WEST, Orientation.NORTH}, new Orientation[]{Orientation.FLIP_EAST, Orientation.NORTH, Orientation.FLIP_EAST, Orientation.FLIP_NORTH, Orientation.EAST, Orientation.FLIP_NORTH, Orientation.EAST, Orientation.NORTH}, new Orientation[]{Orientation.FLIP_EAST, Orientation.SOUTH, Orientation.FLIP_EAST, Orientation.FLIP_SOUTH, Orientation.EAST, Orientation.FLIP_SOUTH, Orientation.EAST, Orientation.SOUTH}), + UP(new Direction[]{Direction.EAST, Direction.WEST, Direction.NORTH, Direction.SOUTH}, 1.0F, true, new Orientation[]{Orientation.EAST, Orientation.SOUTH, Orientation.EAST, Orientation.FLIP_SOUTH, Orientation.FLIP_EAST, Orientation.FLIP_SOUTH, Orientation.FLIP_EAST, Orientation.SOUTH}, new Orientation[]{Orientation.EAST, Orientation.NORTH, Orientation.EAST, Orientation.FLIP_NORTH, Orientation.FLIP_EAST, Orientation.FLIP_NORTH, Orientation.FLIP_EAST, Orientation.NORTH}, new Orientation[]{Orientation.WEST, Orientation.NORTH, Orientation.WEST, Orientation.FLIP_NORTH, Orientation.FLIP_WEST, Orientation.FLIP_NORTH, Orientation.FLIP_WEST, Orientation.NORTH}, new Orientation[]{Orientation.WEST, Orientation.SOUTH, Orientation.WEST, Orientation.FLIP_SOUTH, Orientation.FLIP_WEST, Orientation.FLIP_SOUTH, Orientation.FLIP_WEST, Orientation.SOUTH}), + NORTH(new Direction[]{Direction.UP, Direction.DOWN, Direction.EAST, Direction.WEST}, 0.8F, true, new Orientation[]{Orientation.UP, Orientation.FLIP_WEST, Orientation.UP, Orientation.WEST, Orientation.FLIP_UP, Orientation.WEST, Orientation.FLIP_UP, Orientation.FLIP_WEST}, new Orientation[]{Orientation.UP, Orientation.FLIP_EAST, Orientation.UP, Orientation.EAST, Orientation.FLIP_UP, Orientation.EAST, Orientation.FLIP_UP, Orientation.FLIP_EAST}, new Orientation[]{Orientation.DOWN, Orientation.FLIP_EAST, Orientation.DOWN, Orientation.EAST, Orientation.FLIP_DOWN, Orientation.EAST, Orientation.FLIP_DOWN, Orientation.FLIP_EAST}, new Orientation[]{Orientation.DOWN, Orientation.FLIP_WEST, Orientation.DOWN, Orientation.WEST, Orientation.FLIP_DOWN, Orientation.WEST, Orientation.FLIP_DOWN, Orientation.FLIP_WEST}), + SOUTH(new Direction[]{Direction.WEST, Direction.EAST, Direction.DOWN, Direction.UP}, 0.8F, true, new Orientation[]{Orientation.UP, Orientation.FLIP_WEST, Orientation.FLIP_UP, Orientation.FLIP_WEST, Orientation.FLIP_UP, Orientation.WEST, Orientation.UP, Orientation.WEST}, new Orientation[]{Orientation.DOWN, Orientation.FLIP_WEST, Orientation.FLIP_DOWN, Orientation.FLIP_WEST, Orientation.FLIP_DOWN, Orientation.WEST, Orientation.DOWN, Orientation.WEST}, new Orientation[]{Orientation.DOWN, Orientation.FLIP_EAST, Orientation.FLIP_DOWN, Orientation.FLIP_EAST, Orientation.FLIP_DOWN, Orientation.EAST, Orientation.DOWN, Orientation.EAST}, new Orientation[]{Orientation.UP, Orientation.FLIP_EAST, Orientation.FLIP_UP, Orientation.FLIP_EAST, Orientation.FLIP_UP, Orientation.EAST, Orientation.UP, Orientation.EAST}), + WEST(new Direction[]{Direction.UP, Direction.DOWN, Direction.NORTH, Direction.SOUTH}, 0.6F, true, new Orientation[]{Orientation.UP, Orientation.SOUTH, Orientation.UP, Orientation.FLIP_SOUTH, Orientation.FLIP_UP, Orientation.FLIP_SOUTH, Orientation.FLIP_UP, Orientation.SOUTH}, new Orientation[]{Orientation.UP, Orientation.NORTH, Orientation.UP, Orientation.FLIP_NORTH, Orientation.FLIP_UP, Orientation.FLIP_NORTH, Orientation.FLIP_UP, Orientation.NORTH}, new Orientation[]{Orientation.DOWN, Orientation.NORTH, Orientation.DOWN, Orientation.FLIP_NORTH, Orientation.FLIP_DOWN, Orientation.FLIP_NORTH, Orientation.FLIP_DOWN, Orientation.NORTH}, new Orientation[]{Orientation.DOWN, Orientation.SOUTH, Orientation.DOWN, Orientation.FLIP_SOUTH, Orientation.FLIP_DOWN, Orientation.FLIP_SOUTH, Orientation.FLIP_DOWN, Orientation.SOUTH}), + EAST(new Direction[]{Direction.DOWN, Direction.UP, Direction.NORTH, Direction.SOUTH}, 0.6F, true, new Orientation[]{Orientation.FLIP_DOWN, Orientation.SOUTH, Orientation.FLIP_DOWN, Orientation.FLIP_SOUTH, Orientation.DOWN, Orientation.FLIP_SOUTH, Orientation.DOWN, Orientation.SOUTH}, new Orientation[]{Orientation.FLIP_DOWN, Orientation.NORTH, Orientation.FLIP_DOWN, Orientation.FLIP_NORTH, Orientation.DOWN, Orientation.FLIP_NORTH, Orientation.DOWN, Orientation.NORTH}, new Orientation[]{Orientation.FLIP_UP, Orientation.NORTH, Orientation.FLIP_UP, Orientation.FLIP_NORTH, Orientation.UP, Orientation.FLIP_NORTH, Orientation.UP, Orientation.NORTH}, new Orientation[]{Orientation.FLIP_UP, Orientation.SOUTH, Orientation.FLIP_UP, Orientation.FLIP_SOUTH, Orientation.UP, Orientation.FLIP_SOUTH, Orientation.UP, Orientation.SOUTH}); + + //private final Direction[] corners; + //private final float shadeWeight; + private final boolean doNonCubicWeight; + private final Orientation[] vert0Weights; + private final Orientation[] vert1Weights; + private final Orientation[] vert2Weights; + private final Orientation[] vert3Weights; + private static final EnumNeighborInfo[] VALUES = new EnumNeighborInfo[6]; + + EnumNeighborInfo(Direction[] p_i46236_3_, float p_i46236_4_, boolean p_i46236_5_, Orientation[] p_i46236_6_, Orientation[] p_i46236_7_, Orientation[] p_i46236_8_, Orientation[] p_i46236_9_) + { + //this.corners = p_i46236_3_; + //this.shadeWeight = p_i46236_4_; + this.doNonCubicWeight = p_i46236_5_; + this.vert0Weights = p_i46236_6_; + this.vert1Weights = p_i46236_7_; + this.vert2Weights = p_i46236_8_; + this.vert3Weights = p_i46236_9_; + } + + public static EnumNeighborInfo getNeighbourInfo(Direction p_178273_0_) + { + return VALUES[p_178273_0_.getId()]; + } + + static + { + VALUES[Direction.DOWN.getId()] = DOWN; + VALUES[Direction.UP.getId()] = UP; + VALUES[Direction.NORTH.getId()] = NORTH; + VALUES[Direction.SOUTH.getId()] = SOUTH; + VALUES[Direction.WEST.getId()] = WEST; + VALUES[Direction.EAST.getId()] = EAST; + } + } + + public enum Orientation + { + DOWN(Direction.DOWN, false), + UP(Direction.UP, false), + NORTH(Direction.NORTH, false), + SOUTH(Direction.SOUTH, false), + WEST(Direction.WEST, false), + EAST(Direction.EAST, false), + FLIP_DOWN(Direction.DOWN, true), + FLIP_UP(Direction.UP, true), + FLIP_NORTH(Direction.NORTH, true), + FLIP_SOUTH(Direction.SOUTH, true), + FLIP_WEST(Direction.WEST, true), + FLIP_EAST(Direction.EAST, true); + + private final int shape; + + Orientation(Direction p_i46233_3_, boolean p_i46233_4_) + { + this.shape = p_i46233_3_.getId() + (p_i46233_4_ ? Direction.values().length : 0); + } + } + + enum VertexTranslations + { + DOWN(0, 1, 2, 3), + UP(2, 3, 0, 1), + NORTH(3, 0, 1, 2), + SOUTH(0, 1, 2, 3), + WEST(3, 0, 1, 2), + EAST(1, 2, 3, 0); + + private final int vert0; + private final int vert1; + private final int vert2; + private final int vert3; + private static final VertexTranslations[] VALUES = new VertexTranslations[6]; + + VertexTranslations(int p_i46234_3_, int p_i46234_4_, int p_i46234_5_, int p_i46234_6_) + { + this.vert0 = p_i46234_3_; + this.vert1 = p_i46234_4_; + this.vert2 = p_i46234_5_; + this.vert3 = p_i46234_6_; + } + + public static VertexTranslations getVertexTranslations(Direction p_178184_0_) + { + return VALUES[p_178184_0_.getId()]; + } + + static + { + VALUES[Direction.DOWN.getId()] = DOWN; + VALUES[Direction.UP.getId()] = UP; + VALUES[Direction.NORTH.getId()] = NORTH; + VALUES[Direction.SOUTH.getId()] = SOUTH; + VALUES[Direction.WEST.getId()] = WEST; + VALUES[Direction.EAST.getId()] = EAST; + } + } +} \ No newline at end of file diff --git a/src/main/java/fi/dy/masa/litematica/render/schematic/ao/AOProcessorModern.java b/src/main/java/fi/dy/masa/litematica/render/schematic/ao/AOProcessorModern.java new file mode 100644 index 0000000..105c747 --- /dev/null +++ b/src/main/java/fi/dy/masa/litematica/render/schematic/ao/AOProcessorModern.java @@ -0,0 +1,408 @@ +package fi.dy.masa.litematica.render.schematic.ao; + +import java.util.BitSet; +import it.unimi.dsi.fastutil.longs.Long2FloatLinkedOpenHashMap; +import it.unimi.dsi.fastutil.longs.Long2IntLinkedOpenHashMap; + +import net.minecraft.block.BlockState; +import net.minecraft.client.render.WorldRenderer; +import net.minecraft.util.Util; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.world.BlockRenderView; + +import fi.dy.masa.litematica.render.schematic.BlockModelRendererSchematic; + +public class AOProcessorModern extends AOProcessor +{ + private static final Direction[] DIRECTIONS = Direction.values(); + + @Override + public void apply(BlockRenderView world, BlockState state, BlockPos pos, Direction direction, float[] box, BitSet shapeState, boolean hasShade) + { + // 24w36a + BlockPos blockPos = shapeState.get(0) ? pos.offset(direction) : pos; + ND neighborData = ND.getData(direction); + BlockPos.Mutable mutable = new BlockPos.Mutable(); + BC brightnessCache = BlockModelRendererSchematic.CACHE.get(); + mutable.set(blockPos, neighborData.faces[0]); + BlockState blockState = world.getBlockState(mutable); + int i = brightnessCache.getInt(blockState, world, mutable); + float f = brightnessCache.getFloat(blockState, world, mutable); + mutable.set(blockPos, neighborData.faces[1]); + BlockState blockState2 = world.getBlockState(mutable); + int j = brightnessCache.getInt(blockState2, world, mutable); + float g = brightnessCache.getFloat(blockState2, world, mutable); + mutable.set(blockPos, neighborData.faces[2]); + BlockState blockState3 = world.getBlockState(mutable); + int k = brightnessCache.getInt(blockState3, world, mutable); + float h = brightnessCache.getFloat(blockState3, world, mutable); + mutable.set(blockPos, neighborData.faces[3]); + BlockState blockState4 = world.getBlockState(mutable); + int l = brightnessCache.getInt(blockState4, world, mutable); + float m = brightnessCache.getFloat(blockState4, world, mutable); + BlockState blockState5 = world.getBlockState(mutable.set(blockPos, neighborData.faces[0]).move(direction)); + boolean bl2 = !blockState5.shouldBlockVision(world, mutable) || blockState5.getOpacity() == 0; + BlockState blockState6 = world.getBlockState(mutable.set(blockPos, neighborData.faces[1]).move(direction)); + boolean bl3 = !blockState6.shouldBlockVision(world, mutable) || blockState6.getOpacity() == 0; + BlockState blockState7 = world.getBlockState(mutable.set(blockPos, neighborData.faces[2]).move(direction)); + boolean bl4 = !blockState7.shouldBlockVision(world, mutable) || blockState7.getOpacity() == 0; + BlockState blockState8 = world.getBlockState(mutable.set(blockPos, neighborData.faces[3]).move(direction)); + boolean bl5 = !blockState8.shouldBlockVision(world, mutable) || blockState8.getOpacity() == 0; + float n; + int o; + BlockState blockState9; + if (!bl4 && !bl2) + { + n = f; + o = i; + } + else + { + mutable.set(blockPos, neighborData.faces[0]).move(neighborData.faces[2]); + blockState9 = world.getBlockState(mutable); + n = brightnessCache.getFloat(blockState9, world, mutable); + o = brightnessCache.getInt(blockState9, world, mutable); + } + + float p; + int q; + if (!bl5 && !bl2) + { + p = f; + q = i; + } + else + { + mutable.set(blockPos, neighborData.faces[0]).move(neighborData.faces[3]); + blockState9 = world.getBlockState(mutable); + p = brightnessCache.getFloat(blockState9, world, mutable); + q = brightnessCache.getInt(blockState9, world, mutable); + } + + float r; + int s; + if (!bl4 && !bl3) + { + r = f; + s = i; + } + else + { + mutable.set(blockPos, neighborData.faces[1]).move(neighborData.faces[2]); + blockState9 = world.getBlockState(mutable); + r = brightnessCache.getFloat(blockState9, world, mutable); + s = brightnessCache.getInt(blockState9, world, mutable); + } + + float t; + int u; + if (!bl5 && !bl3) + { + t = f; + u = i; + } + else + { + mutable.set(blockPos, neighborData.faces[1]).move(neighborData.faces[3]); + blockState9 = world.getBlockState(mutable); + t = brightnessCache.getFloat(blockState9, world, mutable); + u = brightnessCache.getInt(blockState9, world, mutable); + } + + int v = brightnessCache.getInt(state, world, pos); + mutable.set(pos, direction); + BlockState blockState10 = world.getBlockState(mutable); + if (shapeState.get(0) || !blockState10.isOpaqueFullCube()) + { + v = brightnessCache.getInt(blockState10, world, mutable); + } + + float w = shapeState.get(0) ? brightnessCache.getFloat(world.getBlockState(blockPos), world, blockPos) : brightnessCache.getFloat(world.getBlockState(pos), world, pos); + Tl translation = Tl.getTranslations(direction); + float x; + float y; + float z; + float aa; + if (shapeState.get(1) && neighborData.nonCubicWeight) + { + x = (m + f + p + w) * 0.25F; + y = (h + f + n + w) * 0.25F; + z = (h + g + r + w) * 0.25F; + aa = (m + g + t + w) * 0.25F; + float ab = box[neighborData.field_4192[0].shape] * box[neighborData.field_4192[1].shape]; + float ac = box[neighborData.field_4192[2].shape] * box[neighborData.field_4192[3].shape]; + float ad = box[neighborData.field_4192[4].shape] * box[neighborData.field_4192[5].shape]; + float ae = box[neighborData.field_4192[6].shape] * box[neighborData.field_4192[7].shape]; + float af = box[neighborData.field_4185[0].shape] * box[neighborData.field_4185[1].shape]; + float ag = box[neighborData.field_4185[2].shape] * box[neighborData.field_4185[3].shape]; + float ah = box[neighborData.field_4185[4].shape] * box[neighborData.field_4185[5].shape]; + float ai = box[neighborData.field_4185[6].shape] * box[neighborData.field_4185[7].shape]; + float aj = box[neighborData.field_4180[0].shape] * box[neighborData.field_4180[1].shape]; + float ak = box[neighborData.field_4180[2].shape] * box[neighborData.field_4180[3].shape]; + float al = box[neighborData.field_4180[4].shape] * box[neighborData.field_4180[5].shape]; + float am = box[neighborData.field_4180[6].shape] * box[neighborData.field_4180[7].shape]; + float an = box[neighborData.field_4188[0].shape] * box[neighborData.field_4188[1].shape]; + float ao = box[neighborData.field_4188[2].shape] * box[neighborData.field_4188[3].shape]; + float ap = box[neighborData.field_4188[4].shape] * box[neighborData.field_4188[5].shape]; + float aq = box[neighborData.field_4188[6].shape] * box[neighborData.field_4188[7].shape]; + this.brightness[translation.firstCorner] = Math.clamp(x * ab + y * ac + z * ad + aa * ae, 0.0F, 1.0F); + this.brightness[translation.secondCorner] = Math.clamp(x * af + y * ag + z * ah + aa * ai, 0.0F, 1.0F); + this.brightness[translation.thirdCorner] = Math.clamp(x * aj + y * ak + z * al + aa * am, 0.0F, 1.0F); + this.brightness[translation.fourthCorner] = Math.clamp(x * an + y * ao + z * ap + aa * aq, 0.0F, 1.0F); + int ar = this.getAmbientOcclusionBrightness(l, i, q, v); + int as = this.getAmbientOcclusionBrightness(k, i, o, v); + int at = this.getAmbientOcclusionBrightness(k, j, s, v); + int au = this.getAmbientOcclusionBrightness(l, j, u, v); + this.light[translation.firstCorner] = this.getBrightness(ar, as, at, au, ab, ac, ad, ae); + this.light[translation.secondCorner] = this.getBrightness(ar, as, at, au, af, ag, ah, ai); + this.light[translation.thirdCorner] = this.getBrightness(ar, as, at, au, aj, ak, al, am); + this.light[translation.fourthCorner] = this.getBrightness(ar, as, at, au, an, ao, ap, aq); + } + else + { + x = (m + f + p + w) * 0.25F; + y = (h + f + n + w) * 0.25F; + z = (h + g + r + w) * 0.25F; + aa = (m + g + t + w) * 0.25F; + this.light[translation.firstCorner] = this.getAmbientOcclusionBrightness(l, i, q, v); + this.light[translation.secondCorner] = this.getAmbientOcclusionBrightness(k, i, o, v); + this.light[translation.thirdCorner] = this.getAmbientOcclusionBrightness(k, j, s, v); + this.light[translation.fourthCorner] = this.getAmbientOcclusionBrightness(l, j, u, v); + this.brightness[translation.firstCorner] = x; + this.brightness[translation.secondCorner] = y; + this.brightness[translation.thirdCorner] = z; + this.brightness[translation.fourthCorner] = aa; + } + + x = world.getBrightness(direction, hasShade); + + for (int av = 0; av < this.brightness.length; ++av) + { + this.brightness[av] *= x; + } + } + + private int getAmbientOcclusionBrightness(int i, int j, int k, int l) + { + if (i == 0) + { + i = l; + } + + if (j == 0) + { + j = l; + } + + if (k == 0) + { + k = l; + } + + return i + j + k + l >> 2 & 16711935; + } + + private int getBrightness(int i, int j, int k, int l, float f, float g, float h, float m) + { + int n = (int) ((float) (i >> 16 & 255) * f + (float) (j >> 16 & 255) * g + (float) (k >> 16 & 255) * h + (float) (l >> 16 & 255) * m) & 255; + int o = (int) ((float) (i & 255) * f + (float) (j & 255) * g + (float) (k & 255) * h + (float) (l & 255) * m) & 255; + return n << 16 | o; + } + + public static class BC + { + private boolean enabled; + private final Long2IntLinkedOpenHashMap intCache = Util.make(() -> + { + Long2IntLinkedOpenHashMap long2IntLinkedOpenHashMap = new Long2IntLinkedOpenHashMap(100, 0.25F) + { + protected void rehash(int newN) + { + } + }; + long2IntLinkedOpenHashMap.defaultReturnValue(Integer.MAX_VALUE); + return long2IntLinkedOpenHashMap; + }); + private final Long2FloatLinkedOpenHashMap floatCache = Util.make(() -> + { + Long2FloatLinkedOpenHashMap long2FloatLinkedOpenHashMap = new Long2FloatLinkedOpenHashMap(100, 0.25F) + { + protected void rehash(int newN) + { + } + }; + long2FloatLinkedOpenHashMap.defaultReturnValue(Float.NaN); + return long2FloatLinkedOpenHashMap; + }); + + public BC() { } + + public void enable() + { + this.enabled = true; + } + + public void disable() + { + this.enabled = false; + this.intCache.clear(); + this.floatCache.clear(); + } + + public int getInt(BlockState state, BlockRenderView world, BlockPos pos) + { + long l = pos.asLong(); + int i; + if (this.enabled) + { + i = this.intCache.get(l); + if (i != Integer.MAX_VALUE) + { + return i; + } + } + + i = WorldRenderer.getLightmapCoordinates(world, state, pos); + if (this.enabled) + { + if (this.intCache.size() == 100) + { + this.intCache.removeFirstInt(); + } + + this.intCache.put(l, i); + } + + return i; + } + + public float getFloat(BlockState state, BlockRenderView blockView, BlockPos pos) + { + long l = pos.asLong(); + float f; + if (this.enabled) + { + f = this.floatCache.get(l); + if (!Float.isNaN(f)) + { + return f; + } + } + + f = state.getAmbientOcclusionLightLevel(blockView, pos); + if (this.enabled) + { + if (this.floatCache.size() == 100) + { + this.floatCache.removeFirstFloat(); + } + + this.floatCache.put(l, f); + } + + return f; + } + } + + protected enum ND + { + DOWN(new Direction[]{Direction.WEST, Direction.EAST, Direction.NORTH, Direction.SOUTH}, 0.5F, true, new NO[]{NO.FLIP_WEST, NO.SOUTH, NO.FLIP_WEST, NO.FLIP_SOUTH, NO.WEST, NO.FLIP_SOUTH, NO.WEST, NO.SOUTH}, new NO[]{NO.FLIP_WEST, NO.NORTH, NO.FLIP_WEST, NO.FLIP_NORTH, NO.WEST, NO.FLIP_NORTH, NO.WEST, NO.NORTH}, new NO[]{NO.FLIP_EAST, NO.NORTH, NO.FLIP_EAST, NO.FLIP_NORTH, NO.EAST, NO.FLIP_NORTH, NO.EAST, NO.NORTH}, new NO[]{NO.FLIP_EAST, NO.SOUTH, NO.FLIP_EAST, NO.FLIP_SOUTH, NO.EAST, NO.FLIP_SOUTH, NO.EAST, NO.SOUTH}), + UP(new Direction[]{Direction.EAST, Direction.WEST, Direction.NORTH, Direction.SOUTH}, 1.0F, true, new NO[]{NO.EAST, NO.SOUTH, NO.EAST, NO.FLIP_SOUTH, NO.FLIP_EAST, NO.FLIP_SOUTH, NO.FLIP_EAST, NO.SOUTH}, new NO[]{NO.EAST, NO.NORTH, NO.EAST, NO.FLIP_NORTH, NO.FLIP_EAST, NO.FLIP_NORTH, NO.FLIP_EAST, NO.NORTH}, new NO[]{NO.WEST, NO.NORTH, NO.WEST, NO.FLIP_NORTH, NO.FLIP_WEST, NO.FLIP_NORTH, NO.FLIP_WEST, NO.NORTH}, new NO[]{NO.WEST, NO.SOUTH, NO.WEST, NO.FLIP_SOUTH, NO.FLIP_WEST, NO.FLIP_SOUTH, NO.FLIP_WEST, NO.SOUTH}), + NORTH(new Direction[]{Direction.UP, Direction.DOWN, Direction.EAST, Direction.WEST}, 0.8F, true, new NO[]{NO.UP, NO.FLIP_WEST, NO.UP, NO.WEST, NO.FLIP_UP, NO.WEST, NO.FLIP_UP, NO.FLIP_WEST}, new NO[]{NO.UP, NO.FLIP_EAST, NO.UP, NO.EAST, NO.FLIP_UP, NO.EAST, NO.FLIP_UP, NO.FLIP_EAST}, new NO[]{NO.DOWN, NO.FLIP_EAST, NO.DOWN, NO.EAST, NO.FLIP_DOWN, NO.EAST, NO.FLIP_DOWN, NO.FLIP_EAST}, new NO[]{NO.DOWN, NO.FLIP_WEST, NO.DOWN, NO.WEST, NO.FLIP_DOWN, NO.WEST, NO.FLIP_DOWN, NO.FLIP_WEST}), + SOUTH(new Direction[]{Direction.WEST, Direction.EAST, Direction.DOWN, Direction.UP}, 0.8F, true, new NO[]{NO.UP, NO.FLIP_WEST, NO.FLIP_UP, NO.FLIP_WEST, NO.FLIP_UP, NO.WEST, NO.UP, NO.WEST}, new NO[]{NO.DOWN, NO.FLIP_WEST, NO.FLIP_DOWN, NO.FLIP_WEST, NO.FLIP_DOWN, NO.WEST, NO.DOWN, NO.WEST}, new NO[]{NO.DOWN, NO.FLIP_EAST, NO.FLIP_DOWN, NO.FLIP_EAST, NO.FLIP_DOWN, NO.EAST, NO.DOWN, NO.EAST}, new NO[]{NO.UP, NO.FLIP_EAST, NO.FLIP_UP, NO.FLIP_EAST, NO.FLIP_UP, NO.EAST, NO.UP, NO.EAST}), + WEST(new Direction[]{Direction.UP, Direction.DOWN, Direction.NORTH, Direction.SOUTH}, 0.6F, true, new NO[]{NO.UP, NO.SOUTH, NO.UP, NO.FLIP_SOUTH, NO.FLIP_UP, NO.FLIP_SOUTH, NO.FLIP_UP, NO.SOUTH}, new NO[]{NO.UP, NO.NORTH, NO.UP, NO.FLIP_NORTH, NO.FLIP_UP, NO.FLIP_NORTH, NO.FLIP_UP, NO.NORTH}, new NO[]{NO.DOWN, NO.NORTH, NO.DOWN, NO.FLIP_NORTH, NO.FLIP_DOWN, NO.FLIP_NORTH, NO.FLIP_DOWN, NO.NORTH}, new NO[]{NO.DOWN, NO.SOUTH, NO.DOWN, NO.FLIP_SOUTH, NO.FLIP_DOWN, NO.FLIP_SOUTH, NO.FLIP_DOWN, NO.SOUTH}), + EAST(new Direction[]{Direction.DOWN, Direction.UP, Direction.NORTH, Direction.SOUTH}, 0.6F, true, new NO[]{NO.FLIP_DOWN, NO.SOUTH, NO.FLIP_DOWN, NO.FLIP_SOUTH, NO.DOWN, NO.FLIP_SOUTH, NO.DOWN, NO.SOUTH}, new NO[]{NO.FLIP_DOWN, NO.NORTH, NO.FLIP_DOWN, NO.FLIP_NORTH, NO.DOWN, NO.FLIP_NORTH, NO.DOWN, NO.NORTH}, new NO[]{NO.FLIP_UP, NO.NORTH, NO.FLIP_UP, NO.FLIP_NORTH, NO.UP, NO.FLIP_NORTH, NO.UP, NO.NORTH}, new NO[]{NO.FLIP_UP, NO.SOUTH, NO.FLIP_UP, NO.FLIP_SOUTH, NO.UP, NO.FLIP_SOUTH, NO.UP, NO.SOUTH}); + + final Direction[] faces; + final boolean nonCubicWeight; + final NO[] field_4192; + final NO[] field_4185; + final NO[] field_4180; + final NO[] field_4188; + private static final ND[] VALUES = Util.make(new ND[6], (values) -> + { + values[Direction.DOWN.getId()] = DOWN; + values[Direction.UP.getId()] = UP; + values[Direction.NORTH.getId()] = NORTH; + values[Direction.SOUTH.getId()] = SOUTH; + values[Direction.WEST.getId()] = WEST; + values[Direction.EAST.getId()] = EAST; + }); + + ND(final Direction[] faces, final float f, final boolean nonCubicWeight, final NO[] neighborOrientations, final NO[] neighborOrientations2, final NO[] neighborOrientations3, final NO[] neighborOrientations4) + { + this.faces = faces; + this.nonCubicWeight = nonCubicWeight; + this.field_4192 = neighborOrientations; + this.field_4185 = neighborOrientations2; + this.field_4180 = neighborOrientations3; + this.field_4188 = neighborOrientations4; + } + + public static ND getData(Direction direction) + { + return VALUES[direction.getId()]; + } + } + + protected enum NO + { + DOWN(Direction.DOWN, false), + UP(Direction.UP, false), + NORTH(Direction.NORTH, false), + SOUTH(Direction.SOUTH, false), + WEST(Direction.WEST, false), + EAST(Direction.EAST, false), + FLIP_DOWN(Direction.DOWN, true), + FLIP_UP(Direction.UP, true), + FLIP_NORTH(Direction.NORTH, true), + FLIP_SOUTH(Direction.SOUTH, true), + FLIP_WEST(Direction.WEST, true), + FLIP_EAST(Direction.EAST, true); + + final int shape; + + NO(final Direction direction, final boolean flip) + { + this.shape = direction.getId() + (flip ? DIRECTIONS.length : 0); + } + } + + private enum Tl + { + DOWN(0, 1, 2, 3), + UP(2, 3, 0, 1), + NORTH(3, 0, 1, 2), + SOUTH(0, 1, 2, 3), + WEST(3, 0, 1, 2), + EAST(1, 2, 3, 0); + + final int firstCorner; + final int secondCorner; + final int thirdCorner; + final int fourthCorner; + private static final Tl[] VALUES = Util.make(new Tl[6], (values) -> + { + values[Direction.DOWN.getId()] = DOWN; + values[Direction.UP.getId()] = UP; + values[Direction.NORTH.getId()] = NORTH; + values[Direction.SOUTH.getId()] = SOUTH; + values[Direction.WEST.getId()] = WEST; + values[Direction.EAST.getId()] = EAST; + }); + + Tl(final int firstCorner, final int secondCorner, final int thirdCorner, final int fourthCorner) + { + this.firstCorner = firstCorner; + this.secondCorner = secondCorner; + this.thirdCorner = thirdCorner; + this.fourthCorner = fourthCorner; + } + + public static Tl getTranslations(Direction direction) + { + return VALUES[direction.getId()]; + } + } +} diff --git a/src/main/java/fi/dy/masa/litematica/scheduler/tasks/TaskPasteSchematicPerChunkCommand.java b/src/main/java/fi/dy/masa/litematica/scheduler/tasks/TaskPasteSchematicPerChunkCommand.java index a9a6310..6127a84 100644 --- a/src/main/java/fi/dy/masa/litematica/scheduler/tasks/TaskPasteSchematicPerChunkCommand.java +++ b/src/main/java/fi/dy/masa/litematica/scheduler/tasks/TaskPasteSchematicPerChunkCommand.java @@ -983,6 +983,10 @@ protected static boolean preparePickedStack(BlockPos pos, BlockState state, Bloc World world, MinecraftClient mc, @Nonnull DynamicRegistryManager registryManager) { + if (mc.player == null || mc.interactionManager == null) + { + return false; + } ItemStack stack = state.getBlock().getPickStack(world, pos, state); if (stack.isEmpty() == false) diff --git a/src/main/java/fi/dy/masa/litematica/schematic/LitematicaSchematic.java b/src/main/java/fi/dy/masa/litematica/schematic/LitematicaSchematic.java index 8b1b7c1..bfa9ff2 100644 --- a/src/main/java/fi/dy/masa/litematica/schematic/LitematicaSchematic.java +++ b/src/main/java/fi/dy/masa/litematica/schematic/LitematicaSchematic.java @@ -213,6 +213,9 @@ public static LitematicaSchematic createFromWorld(World world, AreaSelection are schematic.metadata.setTotalVolume(PositionUtils.getTotalVolume(boxes)); schematic.metadata.setEnclosingSize(PositionUtils.getEnclosingAreaSize(boxes)); schematic.metadata.setTotalBlocks(schematic.totalBlocksReadFromWorld); + schematic.metadata.setSchematicVersion(SCHEMATIC_VERSION); + schematic.metadata.setMinecraftDataVersion(MINECRAFT_DATA_VERSION); + schematic.metadata.setFileType(FileType.LITEMATICA_SCHEMATIC); return schematic; } @@ -242,6 +245,9 @@ public static LitematicaSchematic createEmptySchematic(AreaSelection area, Strin schematic.metadata.setRegionCount(boxes.size()); schematic.metadata.setTotalVolume(PositionUtils.getTotalVolume(boxes)); schematic.metadata.setEnclosingSize(PositionUtils.getEnclosingAreaSize(boxes)); + schematic.metadata.setSchematicVersion(SCHEMATIC_VERSION); + schematic.metadata.setMinecraftDataVersion(MINECRAFT_DATA_VERSION); + schematic.metadata.setFileType(FileType.LITEMATICA_SCHEMATIC); for (Box box : boxes) { @@ -288,6 +294,9 @@ public static LitematicaSchematic createEmptySchematicFromExisting(@Nonnull Lite newSchematic.metadata.setTotalVolume(existing.getMetadata().getTotalVolume()); newSchematic.metadata.setTotalBlocks(existing.getMetadata().getTotalBlocks()); newSchematic.metadata.setEnclosingSize(existing.getMetadata().getEnclosingSize()); + newSchematic.metadata.setSchematicVersion(existing.getMetadata().getSchematicVersion()); + newSchematic.metadata.setMinecraftDataVersion(existing.getMetadata().getMinecraftDataVersion()); + newSchematic.metadata.setFileType(existing.getMetadata().getFileType()); return newSchematic; } @@ -1233,6 +1242,9 @@ private boolean readFromNBT(NbtCompound nbt) if (version >= 1 && version <= SCHEMATIC_VERSION) { this.metadata.readFromNBT(nbt.getCompound("Metadata")); + this.metadata.setSchematicVersion(version); + this.metadata.setMinecraftDataVersion(minecraftDataVersion); + this.metadata.setFileType(FileType.LITEMATICA_SCHEMATIC); this.readSubRegionsFromNBT(nbt.getCompound("Regions"), version, minecraftDataVersion); return true; @@ -1686,6 +1698,9 @@ else if (isValidSpongeSchematic(tag) == false) this.metadata.setEnclosingSize(size); this.metadata.setTimeModified(this.metadata.getTimeCreated()); this.metadata.setTotalBlocks(this.totalBlocksReadFromWorld); + this.metadata.setSchematicVersion(spongeVersion); + this.metadata.setMinecraftDataVersion(minecraftDataVersion); + this.metadata.setFileType(FileType.SPONGE_SCHEMATIC); return true; } @@ -1709,7 +1724,7 @@ public boolean readFromVanillaStructure(String name, NbtCompound tag) List list = new ArrayList<>(paletteSize); RegistryEntryLookup lookup = SchematicWorldHandler.INSTANCE.getRegistryManager().getOrThrow(RegistryKeys.BLOCK); - DataFixerMode.Schema effective = DataFixerMode.getEffectiveSchema(minecraftDataVersion); + Schema effective = DataFixerMode.getEffectiveSchema(minecraftDataVersion); if (minecraftDataVersion < LitematicaSchematic.MINECRAFT_DATA_VERSION && effective != null) { Litematica.logger.info("VanillaStructure: executing Vanilla DataFixer for Block State Palette DataVersion {} -> {}", minecraftDataVersion, LitematicaSchematic.MINECRAFT_DATA_VERSION); @@ -1778,6 +1793,9 @@ else if (effective == null) this.metadata.setEnclosingSize(size); this.metadata.setTimeCreated(System.currentTimeMillis()); this.metadata.setTimeModified(this.metadata.getTimeCreated()); + this.metadata.setSchematicVersion(0); + this.metadata.setMinecraftDataVersion(minecraftDataVersion); + this.metadata.setFileType(FileType.VANILLA_STRUCTURE); NbtList blockList = tag.getList("blocks", Constants.NBT.TAG_COMPOUND); final int count = blockList.size(); @@ -1854,7 +1872,7 @@ protected List readEntitiesFromVanillaStructure(NbtCompound tag, int List entities = new ArrayList<>(); NbtList tagList = tag.getList("entities", Constants.NBT.TAG_COMPOUND); final int size = tagList.size(); - DataFixerMode.Schema effective = DataFixerMode.getEffectiveSchema(minecraftDataVersion); + Schema effective = DataFixerMode.getEffectiveSchema(minecraftDataVersion); if (minecraftDataVersion < LitematicaSchematic.MINECRAFT_DATA_VERSION && effective != null) { @@ -1957,7 +1975,7 @@ private NbtList convertBlockStatePalette_to_1_20_5(NbtList oldPalette, int minec } if (minecraftDataVersion < LitematicaSchematic.MINECRAFT_DATA_VERSION) { - DataFixerMode.Schema effective = DataFixerMode.getEffectiveSchema(minecraftDataVersion); + Schema effective = DataFixerMode.getEffectiveSchema(minecraftDataVersion); if (effective == null) { @@ -1988,7 +2006,7 @@ private Map convertTileEntities_to_1_20_5(Map convertSpongeEntities_to_1_20_5(List oldEnt if (minecraftDataVersion < LitematicaSchematic.MINECRAFT_DATA_VERSION) { - DataFixerMode.Schema effective = DataFixerMode.getEffectiveSchema(minecraftDataVersion); + Schema effective = DataFixerMode.getEffectiveSchema(minecraftDataVersion); if (effective == null) { @@ -2366,20 +2384,59 @@ public static File fileFromDirAndName(File dir, String fileName, FileType schema @Nullable public static SchematicMetadata readMetadataFromFile(File dir, String fileName) { - NbtCompound nbt = readNbtFromFile(fileFromDirAndName(dir, fileName, FileType.LITEMATICA_SCHEMATIC)); + File file = new File(dir, fileName); + FileType type = FileType.fromFile(file); - if (nbt != null) + if (type == FileType.INVALID) { - SchematicMetadata metadata = new SchematicMetadata(); + file = fileFromDirAndName(dir, fileName, FileType.LITEMATICA_SCHEMATIC); + type = FileType.fromFile(file); + } - if (nbt.contains("Version", Constants.NBT.TAG_INT)) + if (type == FileType.INVALID) + { + return null; + } + + NbtCompound nbt = readNbtFromFile(file); + + if (nbt != null) + { + switch (type) { - final int version = nbt.getInt("Version"); + case LITEMATICA_SCHEMATIC -> + { + SchematicMetadata metadata = new SchematicMetadata(); + + if (nbt.contains("Version", Constants.NBT.TAG_INT)) + { + final int version = nbt.getInt("Version"); + + if (version >= 1 && version <= SCHEMATIC_VERSION) + { + metadata.readFromNBT(nbt.getCompound("Metadata")); + metadata.setFileType(type); + return metadata; + } + } + } + case SPONGE_SCHEMATIC -> + { + LitematicaSchematic schem = new LitematicaSchematic(file, type); - if (version >= 1 && version <= SCHEMATIC_VERSION) + if (schem.readFromSpongeSchematic(fileName, nbt)) + { + return schem.getMetadata(); + } + } + case VANILLA_STRUCTURE -> { - metadata.readFromNBT(nbt.getCompound("Metadata")); - return metadata; + LitematicaSchematic schem = new LitematicaSchematic(file, type); + + if (schem.readFromVanillaStructure(fileName, nbt)) + { + return schem.getMetadata(); + } } } } @@ -2390,22 +2447,62 @@ public static SchematicMetadata readMetadataFromFile(File dir, String fileName) @Nullable public static Pair readMetadataAndVersionFromFile(File dir, String fileName) { - NbtCompound nbt = readNbtFromFile(fileFromDirAndName(dir, fileName, FileType.LITEMATICA_SCHEMATIC)); + File file = new File(dir, fileName); + FileType type = FileType.fromFile(file); - if (nbt != null) + if (type == FileType.INVALID) + { + file = fileFromDirAndName(dir, fileName, FileType.LITEMATICA_SCHEMATIC); + type = FileType.fromFile(file); + } + + if (type == FileType.INVALID) { - SchematicMetadata metadata = new SchematicMetadata(); + return null; + } + + NbtCompound nbt = readNbtFromFile(file); + + //System.out.printf("readMetadataAndVersionFromFile(): file [%s] // name [%s] // type [%s] // nbt? [%s]\n", file.getPath(), fileName, FileType.getString(type), nbt == null ? "null" : "has_tags"); - if (nbt.contains("Version", Constants.NBT.TAG_INT)) + if (nbt != null) + { + switch (type) { - final int version = nbt.getInt("Version"); - final int dataVersion = nbt.contains("MinecraftDataVersion") ? nbt.getInt("MinecraftDataVersion") : -1; + case LITEMATICA_SCHEMATIC -> + { + SchematicMetadata metadata = new SchematicMetadata(); + + if (nbt.contains("Version", Constants.NBT.TAG_INT)) + { + final int version = nbt.getInt("Version"); + final int dataVersion = nbt.contains("MinecraftDataVersion") ? nbt.getInt("MinecraftDataVersion") : -1; - if (version >= 1 && version <= SCHEMATIC_VERSION) + if (version >= 1 && version <= SCHEMATIC_VERSION) + { + metadata.readFromNBT(nbt.getCompound("Metadata")); + metadata.setFileType(type); + return Pair.of(new SchematicSchema(version, dataVersion), metadata); + } + } + } + case SPONGE_SCHEMATIC -> + { + LitematicaSchematic schem = new LitematicaSchematic(file, type); + + if (schem.readFromSpongeSchematic(fileName, nbt)) + { + return Pair.of(schem.getMetadata().getSchematicSchema(), schem.getMetadata()); + } + } + case VANILLA_STRUCTURE -> { - metadata.readFromNBT(nbt.getCompound("Metadata")); + LitematicaSchematic schem = new LitematicaSchematic(file, type); - return Pair.of(new SchematicSchema(version, dataVersion), metadata); + if (schem.readFromVanillaStructure(fileName, nbt)) + { + return Pair.of(schem.getMetadata().getSchematicSchema(), schem.getMetadata()); + } } } } @@ -2416,18 +2513,62 @@ public static Pair readMetadataAndVersionFro @Nullable public static SchematicSchema readDataVersionFromFile(File dir, String fileName) { - NbtCompound nbt = readNbtFromFile(fileFromDirAndName(dir, fileName, FileType.LITEMATICA_SCHEMATIC)); + File file = new File(dir, fileName); + FileType type = FileType.fromFile(file); + + if (type == FileType.INVALID) + { + file = fileFromDirAndName(dir, fileName, FileType.LITEMATICA_SCHEMATIC); + type = FileType.fromFile(file); + } + + if (type == FileType.INVALID) + { + return null; + } + + NbtCompound nbt = readNbtFromFile(file); if (nbt != null) { - if (nbt.contains("Version", Constants.NBT.TAG_INT)) + switch (type) { - final int version = nbt.getInt("Version"); - final int dataVersion = nbt.contains("MinecraftDataVersion") ? nbt.getInt("MinecraftDataVersion") : Configs.Generic.DATAFIXER_DEFAULT_SCHEMA.getIntegerValue(); + case LITEMATICA_SCHEMATIC -> + { + if (nbt.contains("Version", Constants.NBT.TAG_INT)) + { + final int version = nbt.getInt("Version"); + final int dataVersion = nbt.contains("MinecraftDataVersion") ? nbt.getInt("MinecraftDataVersion") : Configs.Generic.DATAFIXER_DEFAULT_SCHEMA.getIntegerValue(); + + if (version >= 1) + { + return new SchematicSchema(version, dataVersion); + } + } + } + case SPONGE_SCHEMATIC -> + { + NbtCompound spongeTag = new NbtCompound(); - if (version >= 1) + if (isValidSpongeSchematicv3(nbt)) + { + spongeTag.copyFrom(nbt.getCompound("Schematic")); + } + else if (isValidSpongeSchematic(nbt)) + { + spongeTag.copyFrom(nbt); + } + + final int spongeVersion = spongeTag.contains("Version") ? spongeTag.getInt("Version") : -1; + final int minecraftDataVersion = spongeTag.contains("DataVersion") ? spongeTag.getInt("DataVersion") : Configs.Generic.DATAFIXER_DEFAULT_SCHEMA.getIntegerValue(); + + return new SchematicSchema(spongeVersion, minecraftDataVersion); + } + case VANILLA_STRUCTURE -> { - return new SchematicSchema(version, dataVersion); + int minecraftDataVersion = nbt.contains("DataVersion") ? nbt.getInt("DataVersion") : Configs.Generic.DATAFIXER_DEFAULT_SCHEMA.getIntegerValue(); + + return new SchematicSchema(0, minecraftDataVersion); } } } diff --git a/src/main/java/fi/dy/masa/litematica/schematic/SchematicMetadata.java b/src/main/java/fi/dy/masa/litematica/schematic/SchematicMetadata.java index 671f73b..ba0351a 100644 --- a/src/main/java/fi/dy/masa/litematica/schematic/SchematicMetadata.java +++ b/src/main/java/fi/dy/masa/litematica/schematic/SchematicMetadata.java @@ -1,25 +1,35 @@ package fi.dy.masa.litematica.schematic; import javax.annotation.Nullable; + import net.minecraft.nbt.NbtCompound; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3i; + import fi.dy.masa.malilib.util.Constants; import fi.dy.masa.malilib.util.NBTUtils; +import fi.dy.masa.malilib.util.Schema; +import fi.dy.masa.litematica.util.FileType; public class SchematicMetadata { private String name = "?"; - private String author = "Unknown"; + private String author = "?"; private String description = ""; private Vec3i enclosingSize = Vec3i.ZERO; private long timeCreated; private long timeModified; + protected int minecraftDataVersion; + protected int schematicVersion; + protected Schema schema; + protected FileType type; private int regionCount; - private int totalVolume; - private int totalBlocks; - private int[] thumbnailPixelData; + protected int entityCount; + protected int blockEntityCount; + private int totalVolume = -1; + private int totalBlocks = -1; private boolean modifiedSinceSaved; + @Nullable protected int[] thumbnailPixelData; public String getName() { @@ -57,6 +67,16 @@ public int getTotalBlocks() return this.totalBlocks; } + public int getEntityCount() + { + return this.entityCount; + } + + public int getBlockEntityCount() + { + return this.blockEntityCount; + } + public Vec3i getEnclosingSize() { return this.enclosingSize; @@ -72,6 +92,46 @@ public long getTimeModified() return this.timeModified; } + public int getSchematicVersion() + { + return this.schematicVersion; + } + + public int getMinecraftDataVersion() + { + return this.minecraftDataVersion; + } + + public SchematicSchema getSchematicSchema() + { + return new SchematicSchema(this.schematicVersion, this.minecraftDataVersion); + } + + public Schema getSchema() + { + return this.schema; + } + + public String getMinecraftVersion() + { + return this.schema.getString(); + } + + public String getSchemaString() + { + return this.schema.toString(); + } + + public FileType getFileType() + { + if (this.type != null) + { + return this.type; + } + + return FileType.UNKNOWN; + } + public boolean hasBeenModified() { return this.timeCreated != this.timeModified; @@ -107,7 +167,7 @@ public void setDescription(String description) this.description = description; } - public void setPreviewImagePixelData(int[] pixelData) + public void setPreviewImagePixelData(@Nullable int[] pixelData) { this.thumbnailPixelData = pixelData; } @@ -147,6 +207,68 @@ public void setTimeModifiedToNow() this.timeModified = System.currentTimeMillis(); } + public void setTimeModifiedToNowIfNotRecentlyCreated() + { + long currentTime = System.currentTimeMillis(); + + // Allow 10 minutes to set the description and thumbnail image etc. + // without marking the schematic as modified + if (currentTime - this.timeCreated > 10L * 60L * 1000L) + { + this.timeModified = currentTime; + } + } + + public void setSchematicVersion(int version) + { + this.schematicVersion = version; + } + + public void setMinecraftDataVersion(int minecraftDataVersion) + { + this.minecraftDataVersion = minecraftDataVersion; + this.schema = Schema.getSchemaByDataVersion(this.minecraftDataVersion); + } + + public void setSchema() + { + this.schema = Schema.getSchemaByDataVersion(this.minecraftDataVersion); + } + + public void setFileType(FileType type) + { + this.type = type; + } + + public void copyFrom(SchematicMetadata other) + { + this.name = other.name; + this.author = other.author; + this.description = other.description; + this.enclosingSize = other.enclosingSize; + this.timeCreated = other.timeCreated; + this.timeModified = other.timeModified; + this.regionCount = other.regionCount; + this.totalVolume = other.totalVolume; + this.totalBlocks = other.totalBlocks; + this.modifiedSinceSaved = false; + + this.schematicVersion = other.schematicVersion; + this.minecraftDataVersion = other.minecraftDataVersion; + this.schema = Schema.getSchemaByDataVersion(other.minecraftDataVersion); + this.type = other.getFileType(); + + if (other.thumbnailPixelData != null) + { + this.thumbnailPixelData = new int[other.thumbnailPixelData.length]; + System.arraycopy(other.thumbnailPixelData, 0, this.thumbnailPixelData, 0, this.thumbnailPixelData.length); + } + else + { + this.thumbnailPixelData = null; + } + } + public NbtCompound writeToNBT() { NbtCompound nbt = new NbtCompound(); @@ -154,11 +276,32 @@ public NbtCompound writeToNBT() nbt.putString("Name", this.name); nbt.putString("Author", this.author); nbt.putString("Description", this.description); - nbt.putInt("RegionCount", this.regionCount); - nbt.putInt("TotalVolume", this.totalVolume); - nbt.putInt("TotalBlocks", this.totalBlocks); - nbt.putLong("TimeCreated", this.timeCreated); - nbt.putLong("TimeModified", this.timeModified); + + if (this.regionCount > 0) + { + nbt.putInt("RegionCount", this.regionCount); + } + + if (this.totalVolume > 0) + { + nbt.putInt("TotalVolume", this.totalVolume); + } + + if (this.totalBlocks >= 0) + { + nbt.putInt("TotalBlocks", this.totalBlocks); + } + + if (this.timeCreated > 0) + { + nbt.putLong("TimeCreated", this.timeCreated); + } + + if (this.timeModified > 0) + { + nbt.putLong("TimeModified", this.timeModified); + } + nbt.put("EnclosingSize", NBTUtils.createBlockPosTag(this.enclosingSize)); if (this.thumbnailPixelData != null) @@ -175,13 +318,28 @@ public void readFromNBT(NbtCompound nbt) this.author = nbt.getString("Author"); this.description = nbt.getString("Description"); this.regionCount = nbt.getInt("RegionCount"); - this.totalVolume = nbt.getInt("TotalVolume"); - this.totalBlocks = nbt.getInt("TotalBlocks"); this.timeCreated = nbt.getLong("TimeCreated"); this.timeModified = nbt.getLong("TimeModified"); - Vec3i size = NBTUtils.readBlockPos(nbt.getCompound("EnclosingSize")); - this.enclosingSize = size != null ? size : BlockPos.ORIGIN; + if (nbt.contains("TotalVolume", Constants.NBT.TAG_ANY_NUMERIC)) + { + this.totalVolume = nbt.getInt("TotalVolume"); + } + + if (nbt.contains("TotalBlocks", Constants.NBT.TAG_ANY_NUMERIC)) + { + this.totalBlocks = nbt.getInt("TotalBlocks"); + } + + if (nbt.contains("EnclosingSize", Constants.NBT.TAG_COMPOUND)) + { + Vec3i size = NBTUtils.readBlockPos(nbt.getCompound("EnclosingSize")); + + if (size != null) + { + this.enclosingSize = size != null ? size : BlockPos.ORIGIN; + } + } if (nbt.contains("PreviewImageData", Constants.NBT.TAG_INT_ARRAY)) { diff --git a/src/main/java/fi/dy/masa/litematica/schematic/SchematicaSchematic.java b/src/main/java/fi/dy/masa/litematica/schematic/SchematicaSchematic.java index 67c3a80..c898ef8 100644 --- a/src/main/java/fi/dy/masa/litematica/schematic/SchematicaSchematic.java +++ b/src/main/java/fi/dy/masa/litematica/schematic/SchematicaSchematic.java @@ -25,6 +25,7 @@ import fi.dy.masa.malilib.util.Constants; import fi.dy.masa.malilib.util.InfoUtils; import fi.dy.masa.malilib.util.NBTUtils; +import fi.dy.masa.malilib.util.Schema; import fi.dy.masa.litematica.Litematica; import fi.dy.masa.litematica.config.Configs; import fi.dy.masa.litematica.schematic.LitematicaSchematic.EntityInfo; @@ -683,7 +684,7 @@ private void readEntitiesFromNBT(NbtCompound nbt) this.entities.clear(); NbtList tagList = nbt.getList("Entities", Constants.NBT.TAG_COMPOUND); int minecraftDataVersion = Configs.Generic.DATAFIXER_DEFAULT_SCHEMA.getIntegerValue(); - DataFixerMode.Schema effective = DataFixerMode.getEffectiveSchema(minecraftDataVersion); + Schema effective = DataFixerMode.getEffectiveSchema(minecraftDataVersion); if (effective != null) { @@ -712,7 +713,7 @@ private void readTileEntitiesFromNBT(NbtCompound nbt) this.tiles.clear(); NbtList tagList = nbt.getList("TileEntities", Constants.NBT.TAG_COMPOUND); int minecraftDataVersion = Configs.Generic.DATAFIXER_DEFAULT_SCHEMA.getIntegerValue(); - DataFixerMode.Schema effective = DataFixerMode.getEffectiveSchema(minecraftDataVersion); + Schema effective = DataFixerMode.getEffectiveSchema(minecraftDataVersion); if (effective != null) { diff --git a/src/main/java/fi/dy/masa/litematica/schematic/conversion/SchematicDowngradeConverter.java b/src/main/java/fi/dy/masa/litematica/schematic/conversion/SchematicDowngradeConverter.java index 176f47f..b42369d 100644 --- a/src/main/java/fi/dy/masa/litematica/schematic/conversion/SchematicDowngradeConverter.java +++ b/src/main/java/fi/dy/masa/litematica/schematic/conversion/SchematicDowngradeConverter.java @@ -532,8 +532,8 @@ private static NbtCompound processComponentsTag(NbtCompound nbt, String itemId, beNbt.putString("id", itemId); } case "minecraft:block_state" -> outNbt.put("BlockStateTag", processBlockState(nbt.get(key))); - case "minecraft:block_entity_data" -> processBlockEntityData(nbt.get(key), beNbt); - case "minecraft:bucket_entity_data" -> processBucketEntityData(nbt.get(key), beNbt); + case "minecraft:block_entity_data" -> processBlockEntityData(nbt.get(key), beNbt, minecraftDataVersion, registryManager); // TODO --> check that this works or not + case "minecraft:bucket_entity_data" -> processBucketEntityData(nbt.get(key), beNbt, minecraftDataVersion, registryManager); case "minecraft:bundle_contents" -> outNbt.put("Items", processItemsTag(nbt.getList(key, Constants.NBT.TAG_COMPOUND), minecraftDataVersion, registryManager)); case "minecraft:can_break" -> outNbt.put("CanDestroy", nbt.get(key)); case "minecraft:can_place_on" -> outNbt.put("CanPlaceOn", nbt.get(key)); @@ -670,10 +670,13 @@ private static void processLodestoneTracker(NbtElement oldEle, NbtCompound outNb } } - private static void processBucketEntityData(NbtElement oldTags, NbtCompound beNbt) + private static void processBucketEntityData(NbtElement oldTags, NbtCompound beNbt, int minecraftDataVersion, @Nonnull DynamicRegistryManager registryManager) { NbtCompound oldNbt = (NbtCompound) oldTags; +// NbtCompound newNbt = downgradeEntity_to_1_20_4(oldNbt, minecraftDataVersion, registryManager); +// beNbt.copyFrom(newNbt); + for (String key : oldNbt.getKeys()) { beNbt.put(key, oldNbt.get(key)); @@ -873,13 +876,13 @@ private static boolean processUnbreakable(NbtElement oldNbt) return false; } - private static void processBlockEntityData(NbtElement oldBeData, NbtCompound beNbt) + private static void processBlockEntityData(NbtElement oldBeData, NbtCompound beNbt, int minecraftDataVersion, @Nonnull DynamicRegistryManager registryManager) { - NbtCompound oldData = (NbtCompound) oldBeData; + NbtCompound newData = downgradeBlockEntity_to_1_20_4((NbtCompound) oldBeData, minecraftDataVersion, registryManager); - for (String key : oldData.getKeys()) + for (String key : newData.getKeys()) { - beNbt.put(key, oldData.get(key)); + beNbt.put(key, newData.get(key)); } } diff --git a/src/main/java/fi/dy/masa/litematica/schematic/projects/SchematicProject.java b/src/main/java/fi/dy/masa/litematica/schematic/projects/SchematicProject.java index a2312a8..2eee0b2 100644 --- a/src/main/java/fi/dy/masa/litematica/schematic/projects/SchematicProject.java +++ b/src/main/java/fi/dy/masa/litematica/schematic/projects/SchematicProject.java @@ -204,11 +204,11 @@ private void createAndAddPlacement() this.removeCurrentPlacement(); String fileName = version.getFileName(); - FileType fileType = FileType.fromFile(new File(this.directory, fileName)); + FileType fileType = FileType.fromName(fileName); if (fileType == FileType.UNKNOWN) { - fileName += ".litematic"; + fileName += LitematicaSchematic.FILE_EXTENSION; fileType = FileType.LITEMATICA_SCHEMATIC; } @@ -376,8 +376,8 @@ private String getNextFileName() while (failsafe-- > 0) { - String name = nameBase + String.format("%05d", version); - File file = new File(this.directory, name + LitematicaSchematic.FILE_EXTENSION); + String name = nameBase + String.format("%05d", version) + LitematicaSchematic.FILE_EXTENSION; + File file = new File(this.directory, name); if (file.exists() == false) { diff --git a/src/main/java/fi/dy/masa/litematica/util/DataFixerMode.java b/src/main/java/fi/dy/masa/litematica/util/DataFixerMode.java index e4d0307..656a0d6 100644 --- a/src/main/java/fi/dy/masa/litematica/util/DataFixerMode.java +++ b/src/main/java/fi/dy/masa/litematica/util/DataFixerMode.java @@ -3,6 +3,7 @@ import javax.annotation.Nullable; import com.google.common.collect.ImmutableList; import fi.dy.masa.malilib.config.IConfigOptionListEntry; +import fi.dy.masa.malilib.util.Schema; import fi.dy.masa.malilib.util.StringUtils; import fi.dy.masa.litematica.config.Configs; @@ -87,7 +88,7 @@ public static DataFixerMode fromStringStatic(String name) public static Schema getEffectiveSchema(int dataVersion) { DataFixerMode config = (DataFixerMode) Configs.Generic.DATAFIXER_MODE.getOptionListValue(); - Schema schema = getSchemaByVersion(dataVersion); + Schema schema = Schema.getSchemaByDataVersion(dataVersion); switch (config) { @@ -156,90 +157,7 @@ public static Schema getEffectiveSchema(int dataVersion) return null; } case NEVER -> { return null; } - default -> { return getSchemaByVersion(Configs.Generic.DATAFIXER_DEFAULT_SCHEMA.getDefaultIntegerValue()); } - } - } - - public static Schema getSchemaByVersion(int dataVersion) - { - for (Schema schema : Schema.values()) - { - if (schema.getDataVersion() <= dataVersion) - { - return schema; - } - } - - return getSchemaByVersion(Configs.Generic.DATAFIXER_DEFAULT_SCHEMA.getDefaultIntegerValue()); - } - - // TODO --> Add Schema Versions to this as versions get released - public enum Schema - { - // Minecraft Data Versions - //SCHEMA_1_21_04 (4250, "1.21.4"), - SCHEMA_24W45A (4177, "24w45a"), - SCHEMA_1_21_03 (4082, "1.21.3"), - SCHEMA_24W37A (4065, "24w37a"), - SCHEMA_1_21_01 (3955, "1.21.1"), - SCHEMA_1_21_00 (3953, "1.21"), - SCHEMA_1_20_05 (3837, "1.20.5"), - SCHEMA_24W10A (3821, "24w10a"), - SCHEMA_24W09A (3819, "24w09a"), // Data Components ( https://minecraft.wiki/w/Data_component_format ) - SCHEMA_24W07A (3817, "24w07a"), - SCHEMA_1_20_04 (3700, "1.20.4"), - SCHEMA_1_20_02 (3578, "1.20.2"), - SCHEMA_1_20_01 (3465, "1.20.1"), - SCHEMA_1_20_00 (3463, "1.20"), - SCHEMA_1_19_04 (3337, "1.19.4"), - SCHEMA_1_19_00 (3105, "1.19"), - SCHEMA_1_18_02 (2975, "1.18.2"), - SCHEMA_1_18_00 (2860, "1.18"), - SCHEMA_1_17_01 (2730, "1.17.1"), - SCHEMA_1_17_00 (2724, "1.17"), - SCHEMA_1_16_05 (2586, "1.16.5"), - SCHEMA_1_16_00 (2566, "1.16"), - SCHEMA_1_15_02 (2230, "1.15.2"), - SCHEMA_1_15_00 (2225, "1.15"), - SCHEMA_1_14_04 (1976, "1.14.4"), - SCHEMA_1_14_00 (1952, "1.14"), - SCHEMA_1_13_02 (1631, "1.13.2"), - SCHEMA_1_13_00 (1519, "1.13"), - SCHEMA_17W47A (1451, "17w47a"), // The Flattening ( https://minecraft.wiki/w/Java_Edition_1.13/Flattening ) - SCHEMA_17W46A (1449, "17w46a"), - SCHEMA_1_12_02 (1343, "1.12.2"), - SCHEMA_1_12_00 (1139, "1.12"), - SCHEMA_1_11_02 (922, "1.11.2"), - SCHEMA_1_11_00 (819, "1.11"), - SCHEMA_1_10_02 (512, "1.10.2"), - SCHEMA_1_10_00 (510, "1.10"), - SCHEMA_1_09_04 (184, "1.9.4"), - SCHEMA_1_09_00 (169, "1.9"), - SCHEMA_15W32A (100, "15w32a"); - - private final int schemaId; - private final String str; - - Schema(int id, String ver) - { - this.schemaId = id; - this.str = ver; - } - - public int getDataVersion() - { - return this.schemaId; - } - - public String getString() - { - return this.str; - } - - @Override - public String toString() - { - return "MC: "+this.getString()+" [Schema: "+this.getDataVersion()+"]"; + default -> { return Schema.getSchemaByDataVersion(Configs.Generic.DATAFIXER_DEFAULT_SCHEMA.getDefaultIntegerValue()); } } } } diff --git a/src/main/java/fi/dy/masa/litematica/util/FileType.java b/src/main/java/fi/dy/masa/litematica/util/FileType.java index 840e646..3fbe0b2 100644 --- a/src/main/java/fi/dy/masa/litematica/util/FileType.java +++ b/src/main/java/fi/dy/masa/litematica/util/FileType.java @@ -12,38 +12,54 @@ public enum FileType SPONGE_SCHEMATIC, VANILLA_STRUCTURE; - public static FileType fromFile(File file) - { - if (file.isFile() && file.canRead()) - { - String name = file.getName(); - - if (name.endsWith(".litematic")) + public static FileType fromName(String fileName) { + if (fileName.endsWith(".litematic")) { return LITEMATICA_SCHEMATIC; } - else if (name.endsWith(".schematic")) + else if (fileName.endsWith(".schematic")) { return SCHEMATICA_SCHEMATIC; } - else if (name.endsWith(".nbt")) + else if (fileName.endsWith(".nbt")) { return VANILLA_STRUCTURE; } - else if (name.endsWith(".schem")) + else if (fileName.endsWith(".schem")) { return SPONGE_SCHEMATIC; } - else if (name.endsWith(".json")) + else if (fileName.endsWith(".json")) { return JSON; } return UNKNOWN; + } + + public static FileType fromFile(File file) + { + if (file.isFile() && file.canRead()) + { + return fromName(file.getName()); } else { return INVALID; } } + + public static String getString(FileType type) + { + return switch (type) + { + case LITEMATICA_SCHEMATIC -> "litematic"; + case SCHEMATICA_SCHEMATIC -> "schematic"; + case SPONGE_SCHEMATIC -> "sponge"; + case VANILLA_STRUCTURE -> "vanilla_nbt"; + case JSON -> "JSON"; + case INVALID -> "invalid"; + case UNKNOWN -> "unknown"; + }; + } } diff --git a/src/main/java/fi/dy/masa/litematica/util/InventoryUtils.java b/src/main/java/fi/dy/masa/litematica/util/InventoryUtils.java index 340061a..4046487 100644 --- a/src/main/java/fi/dy/masa/litematica/util/InventoryUtils.java +++ b/src/main/java/fi/dy/masa/litematica/util/InventoryUtils.java @@ -39,6 +39,7 @@ public class InventoryUtils { private static final List PICK_BLOCKABLE_SLOTS = new ArrayList<>(); private static int nextPickSlotIndex; + private static Pair lastBlockEntityContext = null; public static void setPickBlockableSlots(String configStr) { @@ -121,6 +122,10 @@ public static void setPickedItemToHand(int sourceSlot, ItemStack stack, Minecraf public static void schematicWorldPickBlock(ItemStack stack, BlockPos pos, World schematicWorld, MinecraftClient mc) { + if (mc.player == null || mc.interactionManager == null || mc.world == null) + { + return; + } if (stack.isEmpty() == false) { PlayerInventory inv = mc.player.getInventory(); @@ -334,7 +339,27 @@ public static int findSlotWithBoxWithItem(ScreenHandler container, ItemStack sta //Litematica.logger.warn("getTarget():2: pos [{}], be [{}], nbt [{}]", pos.toShortString(), be != null, nbt != null); - return getTargetInventoryFromBlock(world, pos, be, nbt); + InventoryOverlay.Context ctx = getTargetInventoryFromBlock(world, pos, be, nbt); + + if (world instanceof WorldSchematic) + { + return ctx; + } + + if (lastBlockEntityContext != null && !lastBlockEntityContext.getLeft().equals(pos)) + { + lastBlockEntityContext = null; + } + + if (ctx != null && ctx.inv() != null) + { + lastBlockEntityContext = Pair.of(pos, ctx); + return ctx; + } + else if (lastBlockEntityContext != null && lastBlockEntityContext.getLeft().equals(pos)) + { + return lastBlockEntityContext.getRight(); + } } return null; @@ -377,7 +402,7 @@ public static int findSlotWithBoxWithItem(ScreenHandler container, ItemStack sta } } - //Litematica.logger.warn("getTarget():3: pos [{}], inv [{}], be [{}], nbt [{}]", pos.toShortString(), inv != null, be != null, nbt != null ? nbt.getString("id") : new NbtCompound()); + //Litematica.logger.warn("getTarget(): [SchematicWorld? {}] pos [{}], inv [{}], be [{}], nbt [{}]", world instanceof WorldSchematic ? "YES" : "NO", pos.toShortString(), inv != null, be != null, nbt != null ? nbt.getString("id") : new NbtCompound()); if (inv == null || nbt == null) { diff --git a/src/main/java/fi/dy/masa/litematica/util/RayTraceUtils.java b/src/main/java/fi/dy/masa/litematica/util/RayTraceUtils.java index e6304b3..fc9ef8a 100644 --- a/src/main/java/fi/dy/masa/litematica/util/RayTraceUtils.java +++ b/src/main/java/fi/dy/masa/litematica/util/RayTraceUtils.java @@ -1101,7 +1101,7 @@ public static BlockPos PRW_getPickBlockLastTrace(World worldClient, Entity entit } EntityHitResult entityTrace = (EntityHitResult) traceVanilla; - final double closestVanilla = MathUtils.squareDistanceTo(entityTrace.getPos(), eyesPos); + final double closestVanilla = squareDistanceTo(entityTrace.getPos(), eyesPos); BlockPos closestVanillaPos = entityTrace.getEntity().getBlockPos(); World worldSchematic = SchematicWorldHandler.getSchematicWorld(); @@ -1117,7 +1117,7 @@ public static BlockPos PRW_getPickBlockLastTrace(World worldClient, Entity entit for (BlockHitResult trace : list) { //double dist = trace.pos.squareDistanceTo(eyesPos); - double dist = MathUtils.squareDistanceTo(trace.getPos(), eyesPos); + double dist = squareDistanceTo(trace.getPos(), eyesPos); BlockPos pos = trace.getBlockPos(); // Comparing with >= instead of > fixes the case where the player's head is inside the first schematic block, @@ -1207,4 +1207,15 @@ public static List PRW_rayTraceSchematicWorldBlocksToList(World return hits; } + + // Copied from MathUtils + public static double squareDistanceTo(Vec3d i, Vec3d v) + { + return squareDistanceTo(i, v.x, v.y, v.z); + } + + public static double squareDistanceTo(Vec3d v, double x, double y, double z) + { + return v.x * x + v.y * y + v.z * z; + } } diff --git a/src/main/java/fi/dy/masa/litematica/world/FakeLightingProvider.java b/src/main/java/fi/dy/masa/litematica/world/FakeLightingProvider.java index 4f8b36c..91dc3a9 100644 --- a/src/main/java/fi/dy/masa/litematica/world/FakeLightingProvider.java +++ b/src/main/java/fi/dy/masa/litematica/world/FakeLightingProvider.java @@ -34,6 +34,7 @@ public ChunkLightingView get(LightType type) public int getLight(BlockPos pos, int defaultValue) { return 15; + //return Configs.Visuals.RENDER_FAKE_LIGHTING_LEVEL != null ? Configs.Visuals.RENDER_FAKE_LIGHTING_LEVEL.getIntegerValue() : 15; } public static ChunkNibbleArray getChunkNibbleArray() { return chunkNibbleArray; } diff --git a/src/main/java/fi/dy/masa/litematica/world/WorldSchematic.java b/src/main/java/fi/dy/masa/litematica/world/WorldSchematic.java index 6db7a96..734c0a6 100644 --- a/src/main/java/fi/dy/masa/litematica/world/WorldSchematic.java +++ b/src/main/java/fi/dy/masa/litematica/world/WorldSchematic.java @@ -5,7 +5,6 @@ import java.util.function.Predicate; import javax.annotation.Nonnull; import com.google.common.collect.ImmutableList; -import net.minecraft.recipe.RecipeManager; import org.jetbrains.annotations.Nullable; import net.minecraft.block.Block; @@ -21,6 +20,7 @@ import net.minecraft.item.map.MapState; import net.minecraft.particle.ParticleEffect; import net.minecraft.recipe.BrewingRecipeRegistry; +import net.minecraft.recipe.RecipeManager; import net.minecraft.registry.DynamicRegistryManager; import net.minecraft.registry.RegistryEntryLookup; import net.minecraft.registry.RegistryKey; @@ -50,6 +50,7 @@ import net.minecraft.world.tick.QueryableTickScheduler; import net.minecraft.world.tick.TickManager; +import fi.dy.masa.malilib.util.WorldUtils; import fi.dy.masa.litematica.Reference; import fi.dy.masa.litematica.render.schematic.WorldRendererSchematic; @@ -103,15 +104,18 @@ private void setDimension(DynamicRegistryManager registryManager) if (this.dimensionType.equals(nether)) { - this.biome = this.getWastes(registryManager); + //this.biome = this.getWastes(registryManager); + this.biome = WorldUtils.getWastes(registryManager); } else if (this.dimensionType.equals(end)) { - this.biome = this.getTheEnd(registryManager); + //this.biome = this.getTheEnd(registryManager); + this.biome = WorldUtils.getTheEnd(registryManager); } else { - this.biome = this.getPlains(registryManager); + //this.biome = this.getPlains(registryManager); + this.biome = WorldUtils.getPlains(registryManager); } this.dimensionEffects = DimensionEffects.byDimensionType(this.dimensionType.value()); @@ -454,12 +458,14 @@ public float getBrightness(Direction direction, boolean shaded) @Override public int getLightLevel(LightType type, BlockPos pos) { + //return Configs.Visuals.RENDER_FAKE_LIGHTING_LEVEL != null ? Configs.Visuals.RENDER_FAKE_LIGHTING_LEVEL.getIntegerValue() : 15; return 15; } @Override public int getBaseLightLevel(BlockPos pos, int defaultValue) { + //return Configs.Visuals.RENDER_FAKE_LIGHTING_LEVEL != null ? Configs.Visuals.RENDER_FAKE_LIGHTING_LEVEL.getIntegerValue() : 15; return 15; } diff --git a/src/main/resources/META-INF/neoforge.mods.toml b/src/main/resources/META-INF/neoforge.mods.toml index 969a3fc..d648d36 100644 --- a/src/main/resources/META-INF/neoforge.mods.toml +++ b/src/main/resources/META-INF/neoforge.mods.toml @@ -46,3 +46,6 @@ type = "required" versionRange = "*" ordering = "NONE" side = "BOTH" + +[entrypoints.mafglib] +modmenu = [ "fi.dy.masa.litematica.compat.modmenu.ModMenuImpl" ] \ No newline at end of file diff --git a/src/main/resources/assets/forgematica/lang/en_us.json b/src/main/resources/assets/forgematica/lang/en_us.json index 6d9869e..a3cb1ba 100644 --- a/src/main/resources/assets/forgematica/lang/en_us.json +++ b/src/main/resources/assets/forgematica/lang/en_us.json @@ -1,996 +1,3 @@ { - "litematica.config.generic.name.easyPlaceProtocolVersion": "easyPlaceProtocolVersion", - "litematica.config.generic.name.pasteNbtRestoreBehavior": "pasteNbtRestoreBehavior", - "litematica.config.generic.name.pasteReplaceBehavior": "pasteReplaceBehavior", - "litematica.config.generic.name.placementReplaceBehavior": "placementReplaceBehavior", - "litematica.config.generic.name.placementRestrictionWarn": "placementRestrictionWarn", - "litematica.config.generic.name.selectionCornersMode": "selectionCornersMode", - "litematica.config.generic.name.customSchematicBaseDirectoryEnabled": "customSchematicBaseDirectoryEnabled", - "litematica.config.generic.name.customSchematicBaseDirectory": "customSchematicBaseDirectory", - "litematica.config.generic.name.areaSelectionsPerWorld": "areaSelectionsPerWorld", - "litematica.config.generic.name.betterRenderOrder": "betterRenderOrder", - "litematica.config.generic.name.changeSelectedCornerOnMove": "changeSelectedCornerOnMove", - "litematica.config.generic.name.cloneAtOriginalPosition": "cloneAtOriginalPosition", - "litematica.config.generic.name.commandDisableFeedback": "commandDisableFeedback", - "litematica.config.generic.name.commandFillMaxVolume": "commandFillMaxVolume", - "litematica.config.generic.name.commandFillNoChunkClamp": "commandFillNoChunkClamp", - "litematica.config.generic.name.commandLimitPerTick": "commandLimitPerTick", - "litematica.config.generic.name.commandNameClone": "commandNameClone", - "litematica.config.generic.name.commandNameFill": "commandNameFill", - "litematica.config.generic.name.commandNameSetblock": "commandNameSetblock", - "litematica.config.generic.name.commandNameSummon": "commandNameSummon", - "litematica.config.generic.name.commandTaskInterval": "commandTaskInterval", - "litematica.config.generic.name.commandUseWorldEdit": "commandUseWorldEdit", - "litematica.config.generic.name.debugLogging": "debugLogging", - "litematica.config.generic.name.datafixerMode": "datafixerMode", - "litematica.config.generic.name.datafixerDefaultSchema": "datafixerDefaultSchema", - "litematica.config.generic.name.easyPlaceClickAdjacent": "easyPlaceClickAdjacent", - "litematica.config.generic.name.easyPlaceFirst": "easyPlaceFirst", - "litematica.config.generic.name.easyPlaceHoldEnabled": "easyPlaceHoldEnabled", - "litematica.config.generic.name.easyPlaceMode": "easyPlaceMode", - "litematica.config.generic.name.easyPlacePostRewrite": "easyPlacePostRewrite", - "litematica.config.generic.name.easyPlaceSinglePlayerHandling": "easyPlaceSinglePlayerHandling", - "litematica.config.generic.name.easyPlaceSwapInterval": "easyPlaceSwapInterval", - "litematica.config.generic.name.easyPlaceSwingHand": "easyPlaceSwingHand", - "litematica.config.generic.name.easyPlaceVanillaReach": "easyPlaceVanillaReach", - "litematica.config.generic.name.entityDataSync": "entityDataSync", - "litematica.config.generic.name.entityDataSyncBackup": "entityDataSyncBackup", - "litematica.config.generic.name.entityDataSyncLoadNbt": "entityDataSyncLoadNbt", - "litematica.config.generic.name.executeRequireHoldingTool": "executeRequireHoldingTool", - "litematica.config.generic.name.fixChestMirror": "fixChestMirror", - "litematica.config.generic.name.fixRailRotation": "fixRailRotation", - "litematica.config.generic.name.generateLowercaseNames": "generateLowercaseNames", - "litematica.config.generic.name.highlightBlockInInventory": "highlightBlockInInventory", - "litematica.config.generic.name.itemUsePacketCheckBypass": "itemUsePacketCheckBypass", - "litematica.config.generic.name.layerModeFollowsPlayer": "layerModeFollowsPlayer", - "litematica.config.generic.name.loadEntireSchematics": "loadEntireSchematics", - "litematica.config.generic.name.materialListIgnoreState": "materialListIgnoreState", - "litematica.config.generic.name.pasteAlwaysUseFill": "pasteAlwaysUseFill", - "litematica.config.generic.name.pasteIgnoreBlockEntitiesEntirely": "pasteIgnoreBlockEntitiesEntirely", - "litematica.config.generic.name.pasteIgnoreBlockEntitiesFromFill": "pasteIgnoreBlockEntitiesFromFill", - "litematica.config.generic.name.pasteIgnoreCommandLimitWithNbtRestore": "pasteIgnoreCommandLimitWithNbtRestore", - "litematica.config.generic.name.pasteIgnoreEntities": "pasteIgnoreEntities", - "litematica.config.generic.name.pasteIgnoreInventories": "pasteIgnoreInventories", - "litematica.config.generic.name.pasteToMcFunctionFiles": "pasteToMcFunctionFiles", - "litematica.config.generic.name.pasteUseFillCommand": "pasteUseFillCommand", - "litematica.config.generic.name.pasteUsingCommandsInSp": "pasteUsingCommandsInSp", - "litematica.config.generic.name.pasteUsingServux": "pasteUsingServux", - "litematica.config.generic.name.pickBlockAvoidDamageable": "pickBlockAvoidDamageable", - "litematica.config.generic.name.pickBlockAvoidTools": "pickBlockAvoidTools", - "litematica.config.generic.name.pickBlockEnabled": "pickBlockEnabled", - "litematica.config.generic.name.pickBlockIgnoreNbt": "pickBlockIgnoreNbt", - "litematica.config.generic.name.pickBlockShulkers": "pickBlockShulkers", - "litematica.config.generic.name.pickBlockableSlots": "pickBlockableSlots", - "litematica.config.generic.name.placementRestriction": "placementRestriction", - "litematica.config.generic.name.renderMaterialListInGuis": "renderMaterialListInGuis", - "litematica.config.generic.name.renderThreadNoTimeout": "renderThreadNoTimeout", - "litematica.config.generic.name.serverNbtRequestRate": "serverNbtRequestRate", - "litematica.config.generic.name.signTextPaste": "signTextPaste", - "litematica.config.generic.name.toolItem": "toolItem", - "litematica.config.generic.name.toolItemEnabled": "toolItemEnabled", - "litematica.config.generic.name.toolItemComponents": "toolItemComponents", - "litematica.config.generic.name.unhideSchematicVCS": "unhideSchematicVCS", - - "litematica.config.visuals.name.enableAreaSelectionBoxesRendering": "enableAreaSelectionBoxesRendering", - "litematica.config.visuals.name.enablePlacementBoxesRendering": "enablePlacementBoxesRendering", - "litematica.config.visuals.name.enableRendering": "enableRendering", - "litematica.config.visuals.name.enableSchematicBlocksRendering": "enableSchematicBlocksRendering", - "litematica.config.visuals.name.enableSchematicFluidRendering": "enableSchematicFluidRendering", - "litematica.config.visuals.name.enableSchematicOverlay": "enableSchematicOverlay", - "litematica.config.visuals.name.enableSchematicRendering": "enableSchematicRendering", - "litematica.config.visuals.name.renderSchematicMaxThreads": "renderSchematicMaxThreads", - "litematica.config.visuals.name.ghostBlockAlpha": "ghostBlockAlpha", - "litematica.config.visuals.name.ignoreExistingFluids": "ignoreExistingFluids", - "litematica.config.visuals.name.overlayReducedInnerSides": "overlayReducedInnerSides", - "litematica.config.visuals.name.placementBoxSideAlpha": "placementBoxSideAlpha", - "litematica.config.visuals.name.renderAreaSelectionBoxSides": "renderAreaSelectionBoxSides", - "litematica.config.visuals.name.renderBlocksAsTranslucent": "renderBlocksAsTranslucent", - "litematica.config.visuals.name.renderCollidingSchematicBlocks": "renderCollidingSchematicBlocks", - "litematica.config.visuals.name.renderErrorMarkerConnections": "renderErrorMarkerConnections", - "litematica.config.visuals.name.renderErrorMarkerSides": "renderErrorMarkerSides", - "litematica.config.visuals.name.renderPlacementBoxSides": "renderPlacementBoxSides", - "litematica.config.visuals.name.renderPlacementEnclosingBox": "renderPlacementEnclosingBox", - "litematica.config.visuals.name.renderPlacementEnclosingBoxSides": "renderPlacementEnclosingBoxSides", - "litematica.config.visuals.name.renderTranslucentBlockInnerSides": "renderTranslucentBlockInnerSides", - "litematica.config.visuals.name.schematicOverlayEnableOutlines": "schematicOverlayEnableOutlines", - "litematica.config.visuals.name.schematicOverlayEnableResorting": "schematicOverlayEnableResorting", - "litematica.config.visuals.name.schematicOverlayEnableSides": "schematicOverlayEnableSides", - "litematica.config.visuals.name.schematicOverlayModelOutline": "schematicOverlayModelOutline", - "litematica.config.visuals.name.schematicOverlayModelSides": "schematicOverlayModelSides", - "litematica.config.visuals.name.schematicOverlayOutlineWidth": "schematicOverlayOutlineWidth", - "litematica.config.visuals.name.schematicOverlayOutlineWidthThrough": "schematicOverlayOutlineWidthThrough", - "litematica.config.visuals.name.schematicOverlayRenderThroughBlocks": "schematicOverlayRenderThroughBlocks", - "litematica.config.visuals.name.schematicOverlayTypeExtra": "schematicOverlayTypeExtra", - "litematica.config.visuals.name.schematicOverlayTypeMissing": "schematicOverlayTypeMissing", - "litematica.config.visuals.name.schematicOverlayTypeWrongBlock": "schematicOverlayTypeWrongBlock", - "litematica.config.visuals.name.schematicOverlayTypeWrongState": "schematicOverlayTypeWrongState", - "litematica.config.visuals.name.schematicVerifierUseBlockModels": "schematicVerifierUseBlockModels", - - "litematica.config.info_overlays.name.blockInfoLinesAlignment": "blockInfoLinesAlignment", - "litematica.config.info_overlays.name.blockInfoOverlayAlignment": "blockInfoOverlayAlignment", - "litematica.config.info_overlays.name.infoHudAlignment": "infoHudAlignment", - "litematica.config.info_overlays.name.toolHudAlignment": "toolHudAlignment", - "litematica.config.info_overlays.name.blockInfoLinesEnabled": "blockInfoLinesEnabled", - "litematica.config.info_overlays.name.blockInfoLinesFontScale": "blockInfoLinesFontScale", - "litematica.config.info_overlays.name.blockInfoLinesOffsetX": "blockInfoLinesOffsetX", - "litematica.config.info_overlays.name.blockInfoLinesOffsetY": "blockInfoLinesOffsetY", - "litematica.config.info_overlays.name.blockInfoOverlayOffsetY": "blockInfoOverlayOffsetY", - "litematica.config.info_overlays.name.blockInfoOverlayEnabled": "blockInfoOverlayEnabled", - "litematica.config.info_overlays.name.infoHudMaxLines": "infoHudMaxLines", - "litematica.config.info_overlays.name.infoHudOffsetX": "infoHudOffsetX", - "litematica.config.info_overlays.name.infoHudOffsetY": "infoHudOffsetY", - "litematica.config.info_overlays.name.infoHudScale": "infoHudScale", - "litematica.config.info_overlays.name.infoOverlaysTargetFluids": "infoOverlaysTargetFluids", - "litematica.config.info_overlays.name.materialListHudMaxLines": "materialListHudMaxLines", - "litematica.config.info_overlays.name.materialListHudScale": "materialListHudScale", - "litematica.config.info_overlays.name.statusInfoHud": "statusInfoHud", - "litematica.config.info_overlays.name.statusInfoHudAuto": "statusInfoHudAuto", - "litematica.config.info_overlays.name.toolHudOffsetX": "toolHudOffsetX", - "litematica.config.info_overlays.name.toolHudOffsetY": "toolHudOffsetY", - "litematica.config.info_overlays.name.toolHudScale": "toolHudScale", - "litematica.config.info_overlays.name.verifierErrorHilightAlpha": "verifierErrorHilightAlpha", - "litematica.config.info_overlays.name.verifierErrorHilightMaxPositions": "verifierErrorHilightMaxPositions", - "litematica.config.info_overlays.name.verifierOverlayEnabled": "verifierOverlayEnabled", - "litematica.config.info_overlays.name.warnDisabledRendering": "warnDisabledRendering", - - "litematica.config.colors.name.areaSelectionBoxSideColor": "areaSelectionBoxSideColor", - "litematica.config.colors.name.hightlightBlockInInventoryColor": "hightlightBlockInInventoryColor", - "litematica.config.colors.name.materialListHudItemCountsColor": "materialListHudItemCountsColor", - "litematica.config.colors.name.schematicRebuildBreakPlaceOverlayColor": "schematicRebuildBreakPlaceOverlayColor", - "litematica.config.colors.name.schematicRebuildBreakExceptPlaceOverlayColor": "schematicRebuildBreakExceptPlaceOverlayColor", - "litematica.config.colors.name.schematicRebuildReplaceOverlayColor": "schematicRebuildReplaceOverlayColor", - "litematica.config.colors.name.schematicOverlayColorExtra": "schematicOverlayColorExtra", - "litematica.config.colors.name.schematicOverlayColorMissing": "schematicOverlayColorMissing", - "litematica.config.colors.name.schematicOverlayColorWrongBlock": "schematicOverlayColorWrongBlock", - "litematica.config.colors.name.schematicOverlayColorWrongState": "schematicOverlayColorWrongState", - - "litematica.config.hotkeys.name.addSelectionBox": "addSelectionBox", - "litematica.config.hotkeys.name.cloneSelection": "cloneSelection", - "litematica.config.hotkeys.name.deleteSelectionBox": "deleteSelectionBox", - "litematica.config.hotkeys.name.easyPlaceUseKey": "easyPlaceUseKey", - "litematica.config.hotkeys.name.easyPlaceToggle": "easyPlaceToggle", - "litematica.config.hotkeys.name.executeOperation": "executeOperation", - "litematica.config.hotkeys.name.invertGhostBlockRenderState": "invertGhostBlockRenderState", - "litematica.config.hotkeys.name.invertOverlayRenderState": "invertOverlayRenderState", - "litematica.config.hotkeys.name.layerModeNext": "layerModeNext", - "litematica.config.hotkeys.name.layerModePrevious": "layerModePrevious", - "litematica.config.hotkeys.name.layerNext": "layerNext", - "litematica.config.hotkeys.name.layerPrevious": "layerPrevious", - "litematica.config.hotkeys.name.layerSetHere": "layerSetHere", - "litematica.config.hotkeys.name.nudgeSelectionNegative": "nudgeSelectionNegative", - "litematica.config.hotkeys.name.nudgeSelectionPositive": "nudgeSelectionPositive", - "litematica.config.hotkeys.name.moveEntireSelection": "moveEntireSelection", - "litematica.config.hotkeys.name.openGuiAreaSettings": "openGuiAreaSettings", - "litematica.config.hotkeys.name.openGuiLoadedSchematics": "openGuiLoadedSchematics", - "litematica.config.hotkeys.name.openGuiMainMenu": "openGuiMainMenu", - "litematica.config.hotkeys.name.openGuiMaterialList": "openGuiMaterialList", - "litematica.config.hotkeys.name.openGuiPlacementSettings": "openGuiPlacementSettings", - "litematica.config.hotkeys.name.openGuiSchematicPlacements": "openGuiSchematicPlacements", - "litematica.config.hotkeys.name.openGuiSchematicProjects": "openGuiSchematicProjects", - "litematica.config.hotkeys.name.openGuiSchematicVerifier": "openGuiSchematicVerifier", - "litematica.config.hotkeys.name.openGuiSelectionManager": "openGuiSelectionManager", - "litematica.config.hotkeys.name.openGuiSettings": "openGuiSettings", - "litematica.config.hotkeys.name.operationModeChangeModifier": "operationModeChangeModifier", - "litematica.config.hotkeys.name.pickBlockFirst": "pickBlockFirst", - "litematica.config.hotkeys.name.pickBlockLast": "pickBlockLast", - "litematica.config.hotkeys.name.pickBlockToggle": "pickBlockToggle", - "litematica.config.hotkeys.name.renderInfoOverlay": "renderInfoOverlay", - "litematica.config.hotkeys.name.renderOverlayThroughBlocks": "renderOverlayThroughBlocks", - "litematica.config.hotkeys.name.rerenderSchematic": "rerenderSchematic", - "litematica.config.hotkeys.name.saveAreaAsInMemorySchematic": "saveAreaAsInMemorySchematic", - "litematica.config.hotkeys.name.saveAreaAsSchematicToFile": "saveAreaAsSchematicToFile", - "litematica.config.hotkeys.name.schematicEditBreakAllExcept": "schematicEditBreakAllExcept", - "litematica.config.hotkeys.name.schematicEditBreakPlaceAll": "schematicEditBreakPlaceAll", - "litematica.config.hotkeys.name.schematicEditBreakPlaceDirection": "schematicEditBreakPlaceDirection", - "litematica.config.hotkeys.name.schematicEditReplaceAll": "schematicEditReplaceAll", - "litematica.config.hotkeys.name.schematicEditReplaceBlock": "schematicEditReplaceBlock", - "litematica.config.hotkeys.name.schematicEditReplaceDirection": "schematicEditReplaceDirection", - "litematica.config.hotkeys.name.schematicPlacementRotation": "schematicPlacementRotation", - "litematica.config.hotkeys.name.schematicPlacementMirror": "schematicPlacementMirror", - "litematica.config.hotkeys.name.schematicVersionCycleModifier": "schematicVersionCycleModifier", - "litematica.config.hotkeys.name.schematicVersionCycleNext": "schematicVersionCycleNext", - "litematica.config.hotkeys.name.schematicVersionCyclePrevious": "schematicVersionCyclePrevious", - "litematica.config.hotkeys.name.selectionGrabModifier": "selectionGrabModifier", - "litematica.config.hotkeys.name.selectionGrow": "selectionGrow", - "litematica.config.hotkeys.name.selectionGrowModifier": "selectionGrowModifier", - "litematica.config.hotkeys.name.selectionNudgeModifier": "selectionNudgeModifier", - "litematica.config.hotkeys.name.selectionModeCycle": "selectionModeCycle", - "litematica.config.hotkeys.name.selectionShrink": "selectionShrink", - "litematica.config.hotkeys.name.setAreaOrigin": "setAreaOrigin", - "litematica.config.hotkeys.name.setSelectionBoxPosition1": "setSelectionBoxPosition1", - "litematica.config.hotkeys.name.setSelectionBoxPosition2": "setSelectionBoxPosition2", - "litematica.config.hotkeys.name.toggleAllRendering": "toggleAllRendering", - "litematica.config.hotkeys.name.toggleAreaSelectionBoxesRendering": "toggleAreaSelectionBoxesRendering", - "litematica.config.hotkeys.name.toggleSchematicRendering": "toggleSchematicRendering", - "litematica.config.hotkeys.name.toggleInfoOverlayRendering": "toggleInfoOverlayRendering", - "litematica.config.hotkeys.name.toggleOverlayRendering": "toggleOverlayRendering", - "litematica.config.hotkeys.name.toggleOverlayOutlineRendering": "toggleOverlayOutlineRendering", - "litematica.config.hotkeys.name.toggleOverlaySideRendering": "toggleOverlaySideRendering", - "litematica.config.hotkeys.name.togglePlacementBoxesRendering": "togglePlacementBoxesRendering", - "litematica.config.hotkeys.name.togglePlacementRestriction": "togglePlacementRestriction", - "litematica.config.hotkeys.name.toggleSchematicBlockRendering": "toggleSchematicBlockRendering", - "litematica.config.hotkeys.name.toggleSignTextPaste": "toggleSignTextPaste", - "litematica.config.hotkeys.name.toggleTranslucentRendering": "toggleTranslucentRendering", - "litematica.config.hotkeys.name.toggleVerifierOverlayRendering": "toggleVerifierOverlayRendering", - "litematica.config.hotkeys.name.toolEnabledToggle": "toolEnabledToggle", - "litematica.config.hotkeys.name.toolPlaceCorner1": "toolPlaceCorner1", - "litematica.config.hotkeys.name.toolPlaceCorner2": "toolPlaceCorner2", - "litematica.config.hotkeys.name.toolSelectElements": "toolSelectElements", - "litematica.config.hotkeys.name.toolSelectModifierBlock1": "toolSelectModifierBlock1", - "litematica.config.hotkeys.name.toolSelectModifierBlock2": "toolSelectModifierBlock2", - "litematica.config.hotkeys.name.unloadCurrentSchematic": "unloadCurrentSchematic", - - "litematica.config.generic.comment.easyPlaceProtocolVersion": "The type of \"accurate placement protocol\" to use.\n- Auto: Uses v3 in single player, and by default Slabs-only in multiplayer,\n unless the server has Carpet mod that sends a 'carpet:hello'\n packet, in which case v2 is used on that server.\n- Version 3: Only supported by Litematica itself (in single player) or with Servux.\n- Version 2: Compatible with servers with the Carpet mod\n (either QuickCarpet by skyrising and DeadlyMC,\n or CarpetExtra in addition to FabricCarpet.\n And in both cases the 'accurateBlockPlacement' Carpet rule needs\n to be enabled on the server).\n- Slabs only: Only fixes top slabs. Compatible with Paper servers.\n- None: Does not modify coordinates.", - "litematica.config.generic.comment.pasteNbtRestoreBehavior": "Whether or not the NBT data of blocks is attempted to be restored,\nand which method is used for that.\n- Place & Data Modify will try to place the \"NBT-picked\" block\n near the player, and then use the data modify\n command to transfer the NBT data to the setblock'ed block\n- Place & Clone will try to place the \"NBT-picked\" block\n near the player, and then clone it to the final location.\n- Teleport & Place will try to teleport the player nearby and then\n directly place the NBT-picked item in the correct position.\nNote that the teleport & place method doesn't currently work correctly/at all.\nThe recommended method is §ePlace & Data Modify§r, however for that to work\nyou will probably need to lower the pasteCommandLimit to 1 per tick and increase\nthe pasteCommandInterval to 1-4 ticks or something.\nThus you should only use this for pasting important blocks that need the data,\nfor example by making a schematic of just the inventories,\nand then paste that with replace behavior set to None.", - "litematica.config.generic.comment.pasteReplaceBehavior": "The behavior of replacing existing blocks\nin the Paste schematic tool mode", - "litematica.config.generic.comment.placementReplaceBehavior": "The block replace behavior when adding blocks\nto the schematic world.\n\nThis allows using overlapped placements without the\nlater handled placement always overwriting earlier ones with air.\nOn the other hand some blocks like light blocks are considered\nto be air, so they would need the \"All\" replace behavior\nto get placed at all.", - "litematica.config.generic.comment.placementRestrictionWarn": "Selects which type of warning message to show (if any)\nwhen either the Easy Place mode or Placement Restriction prevent placing a block", - "litematica.config.generic.comment.selectionCornersMode": "The Area Selection corners mode to use (Corners, or Expand)", - "litematica.config.generic.comment.customSchematicBaseDirectoryEnabled": "If enabled, then the directory set in 'customSchematicBaseDirectory'\nwill be used as the root/base schematic directory,\ninstead of the normal '.minecraft/schematics/' directory", - "litematica.config.generic.comment.customSchematicBaseDirectory": "The root/base schematic directory to use,\nif 'customSchematicBaseDirectoryEnabled' is enabled", - "litematica.config.generic.comment.areaSelectionsPerWorld": "Use per-world or server root directories for the area selections\n§6NOTE: Don't switch this OFF while you are live streaming,\n§6as then the Area Selection browser will show the server IP\n§6in the navigation widget and also in the current selection name/path\n§6until you change the current directory and selection again", - "litematica.config.generic.comment.betterRenderOrder": "If enabled, then the schematic rendering is done\nby injecting the different render call into the vanilla\nrendering code. This should result in better translucent block\nrendering/ordering and schematic blocks not getting rendered\nthrough the client world blocks/terrain.\nIf the rendering doesn't work (for example with Optifine),\ntry disabling this option.", - "litematica.config.generic.comment.changeSelectedCornerOnMove": "If true, then the selected corner of an area selection\nis always set to the last moved corner,\nwhen using the set corner hotkeys", - "litematica.config.generic.comment.cloneAtOriginalPosition": "If enabled, then using the Clone Selection hotkey will create\nthe placement at the original area selection position,\ninstead of at the player's current position", - "litematica.config.generic.comment.commandDisableFeedback": "If enabled, then command feedback is automatically disabled\nand then re-enabled for multiplayer Paste, Fill and Delete operations\n(which are using /setblock and /fill commands) by disabling and then\nre-enabling the sendCommandFeedback game rule when the task is finished", - "litematica.config.generic.comment.commandFillMaxVolume": "The maximum size/volume of each individual box\nthat can be filled via the command-based Fill/Delete\noperations. Bigger areas/volumes will get split to multiple commands.\nAll areas are also split to per-chunk boxes at first anyway.", - "litematica.config.generic.comment.commandFillNoChunkClamp": "Disables dividing the fill volumes (in the Fill, Replace and Delete modes)\nto per-chunk boxes", - "litematica.config.generic.comment.commandLimitPerTick": "Maximum number of commands sent per game tick,\nwhen using the Paste, Fill and Delete features on a server,\nwhere they will use setblock and fill commands.\nNote that he Paste feature can overshoot this by a couple of commands\nwhen using the NBT restore functionality, which needs two additional commands for each block.", - "litematica.config.generic.comment.commandNameClone": "The clone command name to use when using the\ncommand-based creative mode functionality on servers.\nThis is currently only used by the Paste function if the NBT restore\nbehavior is set to 'Place & Clone'.", - "litematica.config.generic.comment.commandNameFill": "The fill command name to use when using the\ncommand-based creative mode functionality on servers", - "litematica.config.generic.comment.commandNameSetblock": "The setblock command name to use when using the\ncommand-based creative mode functionality on servers,\nnamely the Paste Schematic in World function", - "litematica.config.generic.comment.commandNameSummon": "The summon command name to use when using the\ncommand-based creative mode functionality on servers,\nnamely the Paste Schematic in World function", - "litematica.config.generic.comment.commandTaskInterval": "The interval in game ticks the Paste, Fill and Delete tasks\nare executed at. The commandLimitPerTick config sets the maximum\nnumber of commands to send per execution, and this config\nsets the interval in game ticks before the next execution.", - "litematica.config.generic.comment.commandUseWorldEdit": "If enabled, instead of using the configured setblock and fill commands,\nthe World Edit //pos1, //pos2 and //set commands are used.\nNote that using World Edit commands is around 3x slower\nthan using vanilla commands due to the command limit per tick,\nand WE requiring multiple commands per block or area (//pos1 //pos2 //set).\n§6WARNING: The paste replace behavior option WILL NOT WORK if using\n§6the World Edit commands and fill volumes instead of individual setblock commands!\nThus it's recommended to use the vanilla commands, if you have the permission to run them.\nOne other thing that might make you prefer WE commands in some cases\nis that they can prevent block updates, if the server doesn't have\nthe Carpet mod and thus the '/carpet fillUpdates false' rule available.", - "litematica.config.generic.comment.debugLogging": "Enables some debug log messages in the game console,\nfor debugging certain issues or crashes.", - "litematica.config.generic.comment.datafixerMode": "The configurable data fixer level to apply to loaded schematics.\nThis option can improve performance of loading\nschematics by bypassing the Vanilla Data Fixer,\nbut this can also cause severe data loss if it is disabled.", - "litematica.config.generic.comment.datafixerDefaultSchema": "Default Schema Value for the Vanilla Data Fixer\n\nUsed to adjust the lowest possible value, and the value used\nwhen the loaded schematic does not contain this information.\n\n§6WARNING: This setting is meant to be used at the direction\n§6from a Litematica developer such as masa themselves.\n§6When in doubt, keep the default for Minecraft 1.12.", - "litematica.config.generic.comment.easyPlaceClickAdjacent": "Uses the Clicks Adjacent code from 1.12.2 ornithe.\nThis only works with §a\"easyPlacePostRewrite\"§r enabled.", - "litematica.config.generic.comment.easyPlaceFirst": "This causes the Easy Place mode to place the first/closest block\nyou are looking at first, instead of the furthest/bottom-most block.\nSetting this to false allows you to place multiple layers \"at once\",\nsince the furthest blocks would be placed before the closer ones block the line of sight.", - "litematica.config.generic.comment.easyPlaceHoldEnabled": "When enabled, then you can hold down the use key\nand look at different schematic blocks to place them,\nwithout having to click on every block individually.", - "litematica.config.generic.comment.easyPlaceMode": "When enabled, then simply trying to use an item/place a block\non schematic blocks will place that block in that position", - "litematica.config.generic.comment.easyPlacePostRewrite": "When enabled, the Easy Place mode uses the\n\"Post-Rewrite\" code from 1.12.2 ornithe.\n§6WARNING! THIS IS EXPERIMENTAL", - "litematica.config.generic.comment.easyPlaceSinglePlayerHandling": "If enabled, then Litematica handles the so called\n\"Carpet mod Accurate Block Placement Protocol\" itself in single player.\nThis is recommended to be kept enabled if you\nare going to use Easy Place in single player.", - "litematica.config.generic.comment.easyPlaceSwapInterval": "The interval in milliseconds the Easy Place mode waits\nafter swapping inventory slots and placing a block.\nUseful to avoid placing wrong blocks when having high ping.", - "litematica.config.generic.comment.easyPlaceSwingHand": "Swing the Player's hand when using Easy Place.", - "litematica.config.generic.comment.easyPlaceVanillaReach": "If enabled, reduces reach distance from +1.0 to the\nVanilla value so servers don't reject placement of\nfar blocks.", - "litematica.config.generic.comment.entityDataSync": "Use the Entity Data Sync protocol from Servux\nto obtain Entity Data from the server", - "litematica.config.generic.comment.entityDataSyncBackup": "Use the Vanilla NBT Query method when Servux\nis not available. This method requires Operator Privileges.", - "litematica.config.generic.comment.entityDataSyncLoadNbt": "Load the synced NBT data into the Client World.\n§6WARNING! This feature will cause incompatibility\n§6with other mods that rely on this data.", - "litematica.config.generic.comment.executeRequireHoldingTool": "Require holding an enabled tool item\nfor the executeOperation hotkey to work", - "litematica.config.generic.comment.fixChestMirror": "Enable a fix to the broken chest mirror code in vanilla", - "litematica.config.generic.comment.fixRailRotation": "If true, then a fix is applied for the vanilla bug in rails,\nwhere the 180 degree rotations of straight north-south and\neast-west rails rotate 90 degrees counterclockwise instead >_>", - "litematica.config.generic.comment.generateLowercaseNames": "If enabled, then by default the suggested schematic names\nwill be lowercase and using underscores instead of spaces", - "litematica.config.generic.comment.highlightBlockInInventory": "When enabled, highlights the item (including Shulker Boxes containing it)\nof the looked at block in the schematic", - "litematica.config.generic.comment.itemUsePacketCheckBypass": "Bypass the new distance/coordinate check that was added in 1.18.2.\n\nThat check breaks the \"accurate placement protocol\" and causes\nany blocks placed with a rotation (or other property) request to just become ghost blocks.\n\nThere is basically no need to ever disable this.\nThe check didn't even exist ever before 1.18.2.", - "litematica.config.generic.comment.layerModeFollowsPlayer": "If true, then the render layer follows the player.\nNote: This currently collapses Layer Range type ranges unfortunately", - "litematica.config.generic.comment.loadEntireSchematics": "If true, then the entire schematic is always loaded at once.\nIf false, then only the part that is within the client's view distance is loaded.", - "litematica.config.generic.comment.materialListIgnoreState": "When enabled, the exact block state is ignored, and only the block type needs to match", - "litematica.config.generic.comment.pasteAlwaysUseFill": "This forces using the fill command (instead of setblock) even for single blocks", - "litematica.config.generic.comment.pasteIgnoreBlockEntitiesEntirely": "If enabled, then block entities ae not pasted at all\nvia the command-based pasting in multiplayer.\nThis allows you to easier paste in two passes if you\nwant to use the NBT-restore option for inventories etc. in the second pass,\nwhich usually requires a lot slower pasting speed/command rate.", - "litematica.config.generic.comment.pasteIgnoreBlockEntitiesFromFill": "If enabled, then all block entities are ignored from the fill\ncommands when pasting. This allows them to get pasted individually,\nwhich is required if the NBT restore option is being used.", - "litematica.config.generic.comment.pasteIgnoreCommandLimitWithNbtRestore": "If enabled, then the command limit is ignored when pasting\nblocks with a block entity with the NBT restore option enabled.\nThis seems to somehow fix an issue where the NBT restore\nwould otherwise fail for many blocks with a low command rate.", - "litematica.config.generic.comment.pasteIgnoreEntities": "If enabled, then the Paste feature will not paste any entities", - "litematica.config.generic.comment.pasteIgnoreInventories": "Don't paste inventory contents when pasting a schematic", - "litematica.config.generic.comment.pasteToMcFunctionFiles": "If enabled, then instead of actually pasting schematics to the world,\nthey are written as setblock commands into text files.", - "litematica.config.generic.comment.pasteUseFillCommand": "If enabled, then instead of only using individual /setblock commands,\nthe command-based Paste operation (which is used on servers)\nwill also try to use /fill commands for any continuous areas of the same block.\nThis has no effect in single player, since the mod sets the blocks directly\nin the integrated server's world in and doesn't use commands at all.", - "litematica.config.generic.comment.pasteUsingCommandsInSp": "This is a temporary hack workaround to use the command-based pasting\nalso in single player, which allows using the render layer limited\npasting in single player, which currently doesn't work with\nthe direct world access pasting that single player normally uses.\n\nNote that this will have all the same NBT data restoration\nlimitations that multiplayer pasting has normally.", - "litematica.config.generic.comment.pasteUsingServux": "Use Servux to paste a schematic directly to the server.\nThis method is much faster than the traditional\ncommand-based method, and it supports restoring\nEntity NBT Data.", - "litematica.config.generic.comment.pickBlockAvoidDamageable": "Avoids replacing any damageable items in the hotbar", - "litematica.config.generic.comment.pickBlockAvoidTools": "Avoids replacing any tool items in the hotbar.\n\nThis means any items that extend the vanilla ToolItem class.", - "litematica.config.generic.comment.pickBlockEnabled": "Enables the schematic world pick block hotkeys.\nThere is also a hotkey for toggling this option to toggle those hotkeys... o.o", - "litematica.config.generic.comment.pickBlockIgnoreNbt": "Enables the \"pickBlockIgnoreNbt\" setting for\nEasy Place Post-Rewrite from 1.12.2 ornithe.", - "litematica.config.generic.comment.pickBlockShulkers": "If enabled, then if the required item for the pick bloc\nis not found directly in the player's inventory, but there\nis a Shulker box that contains it, the Shulker Box\nwill be switched to the player's hand instead", - "litematica.config.generic.comment.pickBlockableSlots": "The hotbar slots that are allowed to be\nused for the schematic pick block", - "litematica.config.generic.comment.placementRestriction": "When enabled, the use key can only be used\nwhen holding the correct item for the targeted position,\nand the targeted position must have a missing block in the schematic", - "litematica.config.generic.comment.renderMaterialListInGuis": "Whether or not the material list should\nbe rendered inside GUIs", - "litematica.config.generic.comment.renderThreadNoTimeout": "Removes the timeout from the rendering worker threads.\nIf you get very stuttery rendering when moving around\nor dealing with large schematics, try disabling this. It will however make\nthe schematic rendering a lot slower in some cases.", - "litematica.config.generic.comment.serverNbtRequestRate": "Limit request rate for server entity data syncer", - "litematica.config.generic.comment.signTextPaste": "Automatically set the text in the sign GUIs from the schematic", - "litematica.config.generic.comment.toolItem": "The item to use as the \"tool\" for selections etc.", - "litematica.config.generic.comment.toolItemEnabled": "If true, then the \"tool\" item can be used to control selections etc.", - "litematica.config.generic.comment.toolItemComponents": "A Data Components-aware version of toolItem.\nSet to \"empty\" to disable.\nThe syntax accepted is the same as the \"/give\" command.", - "litematica.config.generic.comment.unhideSchematicVCS": "Un-hides the Schematic VCS (Version Control System) menu button,\nand enables the hotkey and the VCS functionality in general.\n(This was called Schematic Projects before.)\n\nIn general you §6should not§r be using this feature,\nunless you really know how it works and what it does.\nIt somewhat changes how the area selections, placements and pasting works,\nin particular that there is also an area delete operation when pasting.\n\nBasically this feature is intended for §6iterative, in-place§r design work,\nand it allows you to easier create multiple versions/snapshots\nof the same build, and also to switch between the versions by deleting what is\nin the world first, and then pasting the next version in its place.", - - "litematica.config.visuals.comment.enableAreaSelectionBoxesRendering": "Enable Area Selection boxes rendering", - "litematica.config.visuals.comment.enablePlacementBoxesRendering": "Enable Schematic Placement boxes rendering", - "litematica.config.visuals.comment.enableRendering": "Main rendering toggle option. Enables/disables ALL mod rendering.", - "litematica.config.visuals.comment.enableSchematicBlocksRendering": "Enables schematic block rendering.\nDisabling this allows you to only see the color overlay", - "litematica.config.visuals.comment.enableSchematicFluidRendering": "Enables schematic fluid rendering.\nDisabling this allows you to see the blocks and overlays easier.\nThis also culls the overlay where the Fluid was.", - "litematica.config.visuals.comment.enableSchematicOverlay": "The main toggle option for the schematic\nblock overlay rendering", - "litematica.config.visuals.comment.enableSchematicRendering": "Enable rendering the schematic and overlay", - "litematica.config.visuals.comment.renderSchematicMaxThreads": "Maximum Schematic World Rendering Thread Size\nThis will directly effect overall multi-threaded performance\n\n§6USE WITH CAUTION!! This will only take effect\n§6after you leave the game, and rejoin.", - "litematica.config.visuals.comment.ghostBlockAlpha": "The alpha value of the ghost blocks,\nwhen rendering them as translucent.\n§6Note: §7You also need to enable the translucent rendering separately,\nusing the 'renderBlocksAsTranslucent' option!", - "litematica.config.visuals.comment.ignoreExistingFluids": "If enabled, then any fluid blocks are ignored as \"extra blocks\"\nand as \"wrong blocks\", ie. where the schematic has air or other blocks.\nBasically this makes building stuff under water a whole lot less annoying.\nNote: You will most likely also want to enable the 'renderCollidingSchematicBlocks'\noption at the same time, to allow the blocks to get rendered inside fluids.", - "litematica.config.visuals.comment.overlayReducedInnerSides": "If enabled, then the adjacent/touching inner sides\nfor the block overlays are removed/not rendered", - "litematica.config.visuals.comment.placementBoxSideAlpha": "The alpha value of the sub-region boxes' side", - "litematica.config.visuals.comment.renderAreaSelectionBoxSides": "If enabled, then the area selection boxes will\nhave their side quads rendered", - "litematica.config.visuals.comment.renderBlocksAsTranslucent": "If enabled, then the schematics are rendered\nusing translucent \"ghost blocks\"", - "litematica.config.visuals.comment.renderCollidingSchematicBlocks": "If enabled, then blocks in the schematics are rendered\nalso when there is already a (wrong) block in the client world.\nProbably mostly useful when trying to build\nsomething where there are snow layers or water in the way.", - "litematica.config.visuals.comment.renderErrorMarkerConnections": "Render connecting lines between subsequent verifier highlight box corners.\nThis was a rendering bug that some people experienced, but at least some players\nliked it and requested for it to stay, so this options \"restores\" it", - "litematica.config.visuals.comment.renderErrorMarkerSides": "If enabled, then the error markers in the Schematic Verifier\nwill have (translucent) sides rendered instead of just the outline", - "litematica.config.visuals.comment.renderPlacementBoxSides": "If enabled, then the placed schematic sub-region boxes\nwill have their side quads rendered", - "litematica.config.visuals.comment.renderPlacementEnclosingBox": "If enabled, then an enclosing box is rendered around\nall the sub-regions in a schematic (placement)", - "litematica.config.visuals.comment.renderPlacementEnclosingBoxSides": "If enabled, then the enclosing box around\na schematic placement will have its side quads rendered", - "litematica.config.visuals.comment.renderTranslucentBlockInnerSides": "If enabled, then the model sides are also rendered\nfor inner sides in the translucent mode", - "litematica.config.visuals.comment.schematicOverlayEnableOutlines": "Enables rendering a wire frame outline for\nthe schematic block overlay", - "litematica.config.visuals.comment.schematicOverlayEnableResorting": "Enables Translucent Sorting for\nthe schematic block overlay", - "litematica.config.visuals.comment.schematicOverlayEnableSides": "Enables rendering translucent boxes/sides for\nthe schematic block overlay", - "litematica.config.visuals.comment.schematicOverlayModelOutline": "If enabled, then the schematic overlay will use the\nblock model quads/vertices instead of the\ntraditional full block overlay", - "litematica.config.visuals.comment.schematicOverlayModelSides": "If enabled, then the schematic overlay will use the\nblock model quads/vertices instead of the\ntraditional full block overlay", - "litematica.config.visuals.comment.schematicOverlayOutlineWidth": "The line width of the block (model) outlines", - "litematica.config.visuals.comment.schematicOverlayOutlineWidthThrough": "The line width of the block (model) outlines,\nwhen the overlay is rendered through blocks", - "litematica.config.visuals.comment.schematicOverlayRenderThroughBlocks": "If enabled, then the schematic overlay will be rendered\nthrough blocks. This is probably only useful once you are\nfinished building and want to see any errors easier", - "litematica.config.visuals.comment.schematicOverlayTypeExtra": "Enables the schematic overlay for extra blocks", - "litematica.config.visuals.comment.schematicOverlayTypeMissing": "Enables the schematic overlay for missing blocks", - "litematica.config.visuals.comment.schematicOverlayTypeWrongBlock": "Enables the schematic overlay for wrong blocks", - "litematica.config.visuals.comment.schematicOverlayTypeWrongState": "Enables the schematic overlay for wrong states", - "litematica.config.visuals.comment.schematicVerifierUseBlockModels": "Forces using blocks models for everything in the Schematic Verifier\nresult list. Normally item models are used for anything\nthat has an item, and block models are only used for blocks\nthat don't have an item, plus for Flower Pots to see the contained item.", - - "litematica.config.info_overlays.comment.blockInfoLinesAlignment": "The alignment of the block info lines overlay", - "litematica.config.info_overlays.comment.blockInfoOverlayAlignment": "The alignment of the Block Info Overlay", - "litematica.config.info_overlays.comment.infoHudAlignment": "The alignment of the \"Info HUD\",\nused for the Material List, Schematic Verifier mismatch positions etc.", - "litematica.config.info_overlays.comment.toolHudAlignment": "The alignment of the \"tool HUD\", when holding the configured \"tool\"", - "litematica.config.info_overlays.comment.blockInfoLinesEnabled": "If enabled, then MiniHUD-style block info overlay\nis rendered for the looked-at block", - "litematica.config.info_overlays.comment.blockInfoLinesFontScale": "The font scale for the block info lines", - "litematica.config.info_overlays.comment.blockInfoLinesOffsetX": "The x offset of the block info lines from the selected edge", - "litematica.config.info_overlays.comment.blockInfoLinesOffsetY": "The y offset of the block info lines from the selected edge", - "litematica.config.info_overlays.comment.blockInfoOverlayOffsetY": "The y offset of the block info overlay from the selected edge", - "litematica.config.info_overlays.comment.blockInfoOverlayEnabled": "Enable Block Info Overlay rendering to show info\nabout the looked-at block or verifier error marker,\nwhile holding the 'renderInfoOverlay' key", - "litematica.config.info_overlays.comment.infoHudMaxLines": "The maximum number of info lines to show on the HUD at once", - "litematica.config.info_overlays.comment.infoHudOffsetX": "The X offset of the Info HUD from the screen edge", - "litematica.config.info_overlays.comment.infoHudOffsetY": "The Y offset of the Info HUD from the screen edge", - "litematica.config.info_overlays.comment.infoHudScale": "Scale factor for the generic Info HUD text", - "litematica.config.info_overlays.comment.infoOverlaysTargetFluids": "When enabled, the Block Info Overlay and Block Info Lines\nwill be able to ray trace to fluid blocks instead of going through them", - "litematica.config.info_overlays.comment.materialListHudMaxLines": "The maximum number of items to show on\nthe Material List Info HUD at once", - "litematica.config.info_overlays.comment.materialListHudScale": "Scale factor for the Material List Info HUD", - "litematica.config.info_overlays.comment.statusInfoHud": "Enable a status info HUD renderer,\nwhich renders a few bits of status info, such as\nthe current layer mode and renderers enabled state", - "litematica.config.info_overlays.comment.statusInfoHudAuto": "Allow automatically momentarily enabling the status info HUD \"when needed\",\nfor example when creating a placement and having rendering disabled", - "litematica.config.info_overlays.comment.toolHudOffsetX": "The X offset of the Info HUD from the screen edge", - "litematica.config.info_overlays.comment.toolHudOffsetY": "The Y offset of the Info HUD from the screen edge", - "litematica.config.info_overlays.comment.toolHudScale": "Scale factor for the Tool HUD text", - "litematica.config.info_overlays.comment.verifierErrorHilightAlpha": "The alpha value of the error marker box sides", - "litematica.config.info_overlays.comment.verifierErrorHilightMaxPositions": "The maximum number of mismatched positions to render\nat once in the Schematic Verifier overlay.", - "litematica.config.info_overlays.comment.verifierOverlayEnabled": "Enable Schematic Verifier marker overlay rendering", - "litematica.config.info_overlays.comment.warnDisabledRendering": "Should the warning message about being in a layer mode\nor having some of the rendering options disabled\nbe shown when loading a new schematic\nor creating a new placement", - - "litematica.config.colors.comment.areaSelectionBoxSideColor": "The color of the area selection boxes, when they are unselected", - "litematica.config.colors.comment.hightlightBlockInInventoryColor": "The highlight color for the item of the looked at block", - "litematica.config.colors.comment.materialListHudItemCountsColor": "The color of the item count text in the Material List info HUD", - "litematica.config.colors.comment.schematicRebuildBreakPlaceOverlayColor": "The color of Schematic Rebuild mode's break or place blocks selector overlay", - "litematica.config.colors.comment.schematicRebuildBreakExceptPlaceOverlayColor": "The color of Schematic Rebuild mode's break all blocks except targeted selector overlay", - "litematica.config.colors.comment.schematicRebuildReplaceOverlayColor": "The color of Schematic Rebuild mode's replace selector overlay", - "litematica.config.colors.comment.schematicOverlayColorExtra": "The color of the blocks overlay for extra blocks", - "litematica.config.colors.comment.schematicOverlayColorMissing": "The color of the blocks overlay for missing blocks", - "litematica.config.colors.comment.schematicOverlayColorWrongBlock": "The color of the blocks overlay for wrong blocks", - "litematica.config.colors.comment.schematicOverlayColorWrongState": "The color of the blocks overlay for wrong block states", - - "litematica.config.hotkeys.comment.addSelectionBox": "Add a new selection box (position 1) here", - "litematica.config.hotkeys.comment.cloneSelection": "Quickly clone the current area selection.\nThis basically just creates an in-memory-only schematic,\nand then creates a placement of that schematic and selects it,\nand also switches the tool mode to the Paste mode.", - "litematica.config.hotkeys.comment.deleteSelectionBox": "Delete the currently selected box", - "litematica.config.hotkeys.comment.easyPlaceUseKey": "When the easyPlaceMode is enabled, this key is used for placing the blocks", - "litematica.config.hotkeys.comment.easyPlaceToggle": "Allows quickly toggling on/off the Easy Place mode", - "litematica.config.hotkeys.comment.executeOperation": "Execute the currently selected tool operation with the\ncurrent selection or placement in the Fill, Replace,\nPaste Schematic etc. modes", - "litematica.config.hotkeys.comment.invertGhostBlockRenderState": "Inverts the schematic/ghost block rendering status\nwhile this keybind is held down", - "litematica.config.hotkeys.comment.invertOverlayRenderState": "Inverts the Overlay rendering status while this keybind is held down", - "litematica.config.hotkeys.comment.layerModeNext": "Cycle the rendering mode (all, layers) forward", - "litematica.config.hotkeys.comment.layerModePrevious": "Cycle the rendering mode (all, layers) backwards", - "litematica.config.hotkeys.comment.layerNext": "Move the rendered layer selection up", - "litematica.config.hotkeys.comment.layerPrevious": "Move the rendered layer selection down", - "litematica.config.hotkeys.comment.layerSetHere": "Set the Render Layer to the player's current position", - "litematica.config.hotkeys.comment.nudgeSelectionNegative": "Nudge the current selection in the \"negative\" direction\nThis is basically the same as mouse wheel down\nwith the Nudge modifier pressed", - "litematica.config.hotkeys.comment.nudgeSelectionPositive": "Nudge the current selection in the \"positive\" direction\nThis is basically the same as mouse wheel up\nwith the Nudge modifier pressed", - "litematica.config.hotkeys.comment.moveEntireSelection": "Move the entire current selection here", - "litematica.config.hotkeys.comment.openGuiAreaSettings": "Open the Area Settings GUI for the currently selected area", - "litematica.config.hotkeys.comment.openGuiLoadedSchematics": "Open the Loaded Schematic GUI", - "litematica.config.hotkeys.comment.openGuiMainMenu": "Open the Litematica main menu", - "litematica.config.hotkeys.comment.openGuiMaterialList": "Open the Material List GUI for the currently\nselected schematic placement", - "litematica.config.hotkeys.comment.openGuiPlacementSettings": "Open the Placement Settings GUI for the currently\nselected placement or sub-region", - "litematica.config.hotkeys.comment.openGuiSchematicPlacements": "Open the Schematic Placements GUI", - "litematica.config.hotkeys.comment.openGuiSchematicProjects": "Open the Schematic Projects GUI", - "litematica.config.hotkeys.comment.openGuiSchematicVerifier": "Open the Schematic Verifier GUI for the currently\nselected schematic placement", - "litematica.config.hotkeys.comment.openGuiSelectionManager": "Open the Area Selection manager GUI", - "litematica.config.hotkeys.comment.openGuiSettings": "Open the Config GUI", - "litematica.config.hotkeys.comment.operationModeChangeModifier": "The modifier key to quickly change the operation mode.\nHold this and scroll while holding the \"tool item\" to quickly cycle the mode.", - "litematica.config.hotkeys.comment.pickBlockFirst": "A key to pick block the first\nschematic block ray traced to", - "litematica.config.hotkeys.comment.pickBlockLast": "A key to pick block the last schematic block\nray traced to, before the first (possible) client world\nblock ray traced to. Basically this would get\nyou the block you could place against an existing block.", - "litematica.config.hotkeys.comment.pickBlockToggle": "A hotkey to toggle the pick block toggle option in the\nGeneric configs. This is provided as a quick way to enable\nor disable the pick block keys, if they interfere with something.", - "litematica.config.hotkeys.comment.renderInfoOverlay": "The key that enables rendering the block info overlay.\nUse NONE for not requiring a key to be pressed.\nDisable the similarly named option in the Visuals\nconfigs to disable the overlay completely.", - "litematica.config.hotkeys.comment.renderOverlayThroughBlocks": "A hotkey to allow the overlays to render through blocks.\nThis is just a quicker way to temporarily enable\nthe same thing that the 'schematicOverlayRenderThroughBlocks' option in Visuals does.", - "litematica.config.hotkeys.comment.rerenderSchematic": "Hotkey to refresh/redraw only the schematic, instead of\nhaving to refresh the vanilla terrain too with F3 + A", - "litematica.config.hotkeys.comment.saveAreaAsInMemorySchematic": "Save the current Area Selection as an in-memory Schematic", - "litematica.config.hotkeys.comment.saveAreaAsSchematicToFile": "Save the current Area Selection as a Schematic to a file", - "litematica.config.hotkeys.comment.schematicEditBreakAllExcept": "Modifier key to activate the \"break everything except\"\nmode/function in the Schematic Edit tool mode.\nBasically when you hold this key and punch a schematic block,\nall other blocks except this block will be removed from the schematic.", - "litematica.config.hotkeys.comment.schematicEditBreakPlaceAll": "Modifier key to activate the \"break all identical blocks\"\nfunction in the Schematic Edit tool mode", - "litematica.config.hotkeys.comment.schematicEditBreakPlaceDirection": "Modifier key to activate the directional/continuous\nbreak or place function in the Schematic Edit tool mode", - "litematica.config.hotkeys.comment.schematicEditReplaceAll": "Modifier key to activate the \"replace all identical\"\nreplace mode/function in the Schematic Edit tool mode", - "litematica.config.hotkeys.comment.schematicEditReplaceBlock": "Modifier key to activate the \"replace block type\"\nreplace mode/function in the Schematic Edit tool mode", - "litematica.config.hotkeys.comment.schematicEditReplaceDirection": "Modifier key to activate the directional/continuous\nreplace mode/function in the Schematic Edit tool mode", - "litematica.config.hotkeys.comment.schematicPlacementRotation": "The schematic is rotated 90 degrees clockwise when pressed", - "litematica.config.hotkeys.comment.schematicPlacementMirror": "The Schematic is mirror flipped when pressed", - "litematica.config.hotkeys.comment.schematicVersionCycleModifier": "The modifier key to hold to be able to use the mouse wheel\nto cycle through the schematic versions in the Version Control tool mode", - "litematica.config.hotkeys.comment.schematicVersionCycleNext": "A hotkey to cycle to the next schematic version in the Version Control tool mode", - "litematica.config.hotkeys.comment.schematicVersionCyclePrevious": "A hotkey to cycle to the next schematic version in the Version Control tool mode", - "litematica.config.hotkeys.comment.selectionGrabModifier": "The modifier key to hold to \"grab\" a selection\nbox or corner for cursor moving.", - "litematica.config.hotkeys.comment.selectionGrow": "The action hotkey to auto-grow the selection box around\nany adjacent/diagonally connected blocks", - "litematica.config.hotkeys.comment.selectionGrowModifier": "The modifier key to hold to grow or shrink\na selection box while scrolling", - "litematica.config.hotkeys.comment.selectionNudgeModifier": "The modifier key to hold while scrolling\nto nudge the selected area or corner", - "litematica.config.hotkeys.comment.selectionModeCycle": "Change the mode between Corners and Cuboid\nin the Area Selection mode", - "litematica.config.hotkeys.comment.selectionShrink": "The action hotkey to shrink the selection box so that there\nisn't any empty space (empty layers) on any side", - "litematica.config.hotkeys.comment.setAreaOrigin": "Set/move the origin point of the current\narea selection to the player's position", - "litematica.config.hotkeys.comment.setSelectionBoxPosition1": "Set the first position of the currently selected\nbox to the player's position", - "litematica.config.hotkeys.comment.setSelectionBoxPosition2": "Set the second position of the currently selected\nbox to the player's position", - "litematica.config.hotkeys.comment.toggleAllRendering": "Toggle all rendering on/off", - "litematica.config.hotkeys.comment.toggleAreaSelectionBoxesRendering": "Toggle Area Selection boxes rendering on/off", - "litematica.config.hotkeys.comment.toggleSchematicRendering": "Toggle schematic rendering (blocks & overlay) on/off", - "litematica.config.hotkeys.comment.toggleInfoOverlayRendering": "Toggle the info overlay rendering (for hovered block info)", - "litematica.config.hotkeys.comment.toggleOverlayRendering": "Toggle the block overlay rendering on/off", - "litematica.config.hotkeys.comment.toggleOverlayOutlineRendering": "Toggle the block overlay outline rendering on/off", - "litematica.config.hotkeys.comment.toggleOverlaySideRendering": "Toggle the block overlay side rendering on/off", - "litematica.config.hotkeys.comment.togglePlacementBoxesRendering": "Toggle Schematic Placement boxes rendering on/off", - "litematica.config.hotkeys.comment.togglePlacementRestriction": "A hotkey to toggle the placement restriction mode", - "litematica.config.hotkeys.comment.toggleSchematicBlockRendering": "Toggle schematic block rendering on/off", - "litematica.config.hotkeys.comment.toggleSignTextPaste": "Toggle the signTextPaste config value (in Generic category)", - "litematica.config.hotkeys.comment.toggleTranslucentRendering": "Toggle translucent vs. opaque ghost block rendering", - "litematica.config.hotkeys.comment.toggleVerifierOverlayRendering": "Toggle the Schematic Verifier overlay rendering", - "litematica.config.hotkeys.comment.toolEnabledToggle": "The keybind to toggle the \"tool\" item functionality on/off", - "litematica.config.hotkeys.comment.toolPlaceCorner1": "The button to use while holding the \"tool\" item\nto place the primary/first corner", - "litematica.config.hotkeys.comment.toolPlaceCorner2": "The button to use while holding the \"tool\" item\nto place the second corner", - "litematica.config.hotkeys.comment.toolSelectElements": "The button to use to select corners or boxes\nwhile holding the \"tool\" item", - "litematica.config.hotkeys.comment.toolSelectModifierBlock1": "The modifier key to hold while using the 'toolSelectElements'\nhotkey, to select the primary block type to use in some of the tool modes", - "litematica.config.hotkeys.comment.toolSelectModifierBlock2": "The modifier key to hold while using the 'toolSelectElements'\nhotkey, to select the secondary block type to use in some of the tool modes", - "litematica.config.hotkeys.comment.unloadCurrentSchematic": "Unloads the schematic of the currently selected placement,and thus also removes all placements created from it", - - "litematica.config.generic.prettyName.pickBlockEnabled": "Pick Block Hotkeys", - "litematica.config.generic.prettyName.easyPlaceMode": "Easy Place Mode", - "litematica.config.generic.prettyName.placementRestriction": "Placement Restriction", - "litematica.config.generic.prettyName.signTextPaste": "Sign Text Paste", - "litematica.config.generic.prettyName.toolItemEnabled": "Tool Item Enabled", - - "litematica.config.visuals.prettyName.enableAreaSelectionBoxesRendering": "Area Selection Boxes Rendering", - "litematica.config.visuals.prettyName.enablePlacementBoxesRendering": "Schematic Placement Boxes Rendering", - "litematica.config.visuals.prettyName.enableRendering": "All Rendering", - "litematica.config.visuals.prettyName.enableSchematicBlocksRendering": "Schematic Blocks Rendering", - "litematica.config.visuals.prettyName.enableSchematicFluidRendering": "Schematic Fluid Rendering", - "litematica.config.visuals.prettyName.enableSchematicOverlay": "Schematic Overlay Rendering", - "litematica.config.visuals.prettyName.enableSchematicRendering": "Schematic Rendering", - "litematica.config.visuals.prettyName.renderBlocksAsTranslucent": "Translucent Schematic Block Rendering", - "litematica.config.visuals.prettyName.schematicOverlayEnableOutlines": "Schematic Overlay Outlines", - "litematica.config.visuals.prettyName.schematicOverlayEnableResorting": "Schematic Overlay Translucent Sorting", - "litematica.config.visuals.prettyName.schematicOverlayEnableSides": "Schematic Overlay Sides", - - "litematica.config.info_overlays.prettyName.blockInfoOverlayEnabled": "Block Info Overlay Rendering", - "litematica.config.info_overlays.prettyName.verifierOverlayEnabled": "Verifier Overlay Rendering", - - "litematica.config.hotkeys.prettyName.toggleAllRendering": "All Rendering", - - "litematica.error.area_selection.copy_failed": "Failed to copy the selection", - "litematica.error.area_selection.create_failed": "Failed to create a new selection by the name '%s', file already exists", - "litematica.error.area_selection.failed_to_load": "Failed to load the Area Selection", - "litematica.error.area_selection.grow.no_sub_region_selected": "No sub-region selected!", - "litematica.error.area_selection.no_placement_selected": "No Schematic Placement selected!", - "litematica.error.area_selection.rename.already_exists": "Error: An area already exists with the file name '%s'", - "litematica.error.area_selection.rename.invalid_safe_file_name": "Invalid generated safe file name '%s'", - - "litematica.error.duplicate_schematic_placement": "Error: Tried to add a placement that already exists", - "litematica.error.generic.creative_mode_only": "This action is only available in Creative mode", - "litematica.error.generic.failed_to_delete_file": "Failed to delete the file '%s'", - "litematica.error.generic.failed_to_sort_list_of_ignored_states": "Failed to sort the list of ignored states", - "litematica.error.generic.schematic_world_not_loaded": "Schematic world was not loaded", - - "litematica.error.area_editor.create_sub_region.exists": "A sub-region by the name '%s' already exists", - "litematica.error.area_editor.no_selection": "No active Area Selections", - "litematica.error.area_editor.open_gui.no_selection": "Currently in Selection Mode: Normal, but no area is currently selected", - "litematica.error.area_editor.rename_sub_region.exists": "Failed to rename the sub-region:\nA sub-region already exists by the name '%s'", - "litematica.error.area_editor.switch_mode.no_selection": "Can't switch to Selection Mode: Normal, because there is currently no area selected.\nSelect an area or create a new selection in the Area Selection browser", - - "litematica.error.schematic_conversion.litematic_to_litematica.failed_to_read_litematic": "Failed to load the Litematica Schematic", - "litematica.error.schematic_conversion.litematic_to_litematica.failed_to_downgrade_litematic": "Failed to downgrade the Litematica Schematic", - "litematica.error.schematic_conversion.schematic_to_litematica.failed_to_create_schematic": "Failed to create the Litematica schematic", - "litematica.error.schematic_conversion.schematic_to_litematica.failed_to_read_schematic": "Failed to load the Schematic", - "litematica.error.schematic_conversion.structure_to_litematica_failed": "Failed to convert the Structure to a Litematica Schematic", - - "litematica.error.schematic.create.no_selections": "No valid selection regions!", - - "litematica.error.schematic_load.cant_read_file": "Can't read the schematic file '%s' (doesn't exist or permission issue)", - "litematica.error.schematic_load.no_schematic_selected": "No Schematic file selected!", - "litematica.error.schematic_load.no_schematic_version_information": "The schematic doesn't have version information, and can't be safely loaded!", - "litematica.error.schematic_load.unsupported_schematic_version": "Unsupported or future schematic version '%d'", - "litematica.error.schematic_load.unsupported_type": "Unknown or unsupported file type for '%s'", - - "litematica.error.schematic_manager.schematic_export.unsupported_type": "Only Litematica schematics can be exported in other formats!", - "litematica.error.schematic_manager.schematic_import.unsupported_type": "The selected schematic type isn't supported for import!", - - "litematica.error.schematic_placements.remove_fail_locked": "The placement is locked!\n- Hold Shift to force remove it", - - "litematica.error.schematic_save.directory_doesnt_exist": "No such directory: '%s'", - "litematica.error.schematic_save.file_already_exists": "File '%s' already exists", - "litematica.error.schematic_save.invalid_directory": "Invalid directory '%s'", - "litematica.error.schematic_save.invalid_schematic_name": "Invalid schematic name '%s'", - "litematica.error.schematic_save.schematic_creation_failed": "Failed to create the schematic!", - - "litematica.error.schematic_read_from_file_failed.cant_read": "Failed to read schematic from file '%s'", - "litematica.error.schematic_read_from_file_failed.exception": "Exception while trying to read schematic from file '%s'", - "litematica.error.schematic_read_from_file_failed.no_file": "Failed to read schematic from file: no file available (in-memory schematic?)", - - "litematica.error.schematic_projects.empty_selection": "Empty Area Selection (0 sub-regions)", - "litematica.error.schematic_projects.failed_to_load_project": "Failed to load project", - "litematica.error.schematic_projects.failed_to_load_schematic": "Failed to load schematic for the current version", - "litematica.error.schematic_projects.failed_to_rename_project_file_exception": "Failed to rename project file as '%s' (exception)", - "litematica.error.schematic_projects.failed_to_rename_project_file_exists": "Can't rename project to '%s', file already exists", - "litematica.error.schematic_projects.invalid_project_directory": "Invalid or non-existing project directory", - "litematica.error.schematic_projects.no_project_open": "No project open", - "litematica.error.schematic_projects.in_projects_mode_but_no_project_open": "Currently in Schematic VCS mode, but there is currently no project open", - "litematica.error.schematic_projects.null_player": "Player was null", - "litematica.error.schematic_projects.project_already_exists": "Project '%s' already exists", - "litematica.error.schematic_projects.save_already_in_progress": "Save already in progress", - - "litematica.error.schematic_write_to_file_failed.directory_creation_failed": "Failed to create schematic directory '%s'", - "litematica.error.schematic_write_to_file_failed.exception": "Failed to write the schematic to file '%s' (exception)", - "litematica.error.schematic_write_to_file_failed.exists": "Failed to write the schematic to file '%s', file already exists", - "litematica.error.structure_write_to_file_failed.exception": "Failed to write the structure to file '%s' (exception)", - "litematica.error.structure_write_to_file_failed.exists": "Failed to write the structure to file '%s', file already exists", - - "litematica.hotkeys.category.generic_hotkeys": "Generic hotkeys", - - "litematica.info.schematic_load.schematic_loaded": "Schematic '%s' successfully loaded to memory", - "litematica.info.schematic_manager.preview.right_click_to_cancel": "- Right click the button to cancel a pending preview operation\n- Ctrl + Alt + Shift + click to set the thumbnail from an existing PNG image\n called 'thumb.png' from the same directory where the schematic file is.", - "litematica.info.schematic_manager.preview.set_preview_by_taking_a_screenshot": "Use the normal screenshot key to set the preview.\nOr right click the Set preview button to cancel setting the preview.", - "litematica.info.schematic_manager.preview.success": "Preview image successfully set", - - "litematica.gui.button.area_editor.analyze_area": "Analyze Area", - "litematica.gui.button.area_editor.change_corner_mode": "Corner Mode: %s", - "litematica.gui.button.area_editor.change_selection_mode": "Selection Mode: %s", - "litematica.gui.button.area_editor.create_schematic": "Save Schematic", - "litematica.gui.button.area_editor.create_sub_region": "New sub-region", - "litematica.gui.button.area_editor.origin_enabled": "Manual Origin: %s", - "litematica.gui.button.area_editor.set_box_name": "Set", - "litematica.gui.button.area_editor.set_selection_name": "Set", - - "litematica.gui.button.area_selection_mode": "Area Selection Mode: %s", - "litematica.gui.button.area_selections.create_directory": "Create directory", - "litematica.gui.button.area_selections.create_new_selection": "New selection", - "litematica.gui.button.area_selections.create_selection_from_placement": "From Placement", - "litematica.gui.button.area_selections.unselect": "Unselect", - - "litematica.gui.button.change_menu.area_editor": "Area Editor", - "litematica.gui.button.change_menu.configuration_menu": "Configuration menu", - "litematica.gui.button.change_menu.load_schematics_to_memory": "Load Schematics", - "litematica.gui.button.change_menu.schematic_manager": "Schematic Manager", - "litematica.gui.button.change_menu.schematic_projects_manager": "Schematic VCS", - "litematica.gui.button.change_menu.show_area_selections": "Area Selection browser", - "litematica.gui.button.change_menu.show_loaded_schematics": "Loaded Schematics", - "litematica.gui.button.change_menu.show_schematic_placements": "Schematic Placements", - "litematica.gui.button.change_menu.task_manager": "Task Manager", - "litematica.gui.button.change_menu.to_main_menu": "Litematica menu", - - "litematica.gui.button.config_gui.colors": "Colors", - "litematica.gui.button.config_gui.generic": "Generic", - "litematica.gui.button.config_gui.hotkeys": "Hotkeys", - "litematica.gui.button.config_gui.info_overlays": "Info Overlays", - "litematica.gui.button.config_gui.render_layers": "Render Layers", - "litematica.gui.button.config_gui.visuals": "Visuals", - "litematica.gui.button.config_gui.test": "Test", - - "litematica.gui.button.hover.area_editor.shift_for_in_memory": "Hold Shift to create an in-memory-only schematic", - "litematica.gui.button.hover.area_selections.unselect": "Unselects the current Area Selection", - "litematica.gui.button.hover.material_list.clear_cache": "Clears the Material Cache\nNormally this should not be needed\nThis can be used instead of deleting the 'material_cache.nbt'\nfile in case the cache has some wrong data, like items\nstored for blocks that shouldn't have them, like piston heads", - "litematica.gui.button.hover.material_list.write_hold_shift_for_csv": "Hold shift to write to a CSV file,\ninstead of the normal ASCII-art table text file", - "litematica.gui.button.hover.material_list_shift_to_select_sub_regions": "Hold shift to select the sub regions used for the Material List", - "litematica.gui.button.hover.plus_minus_tip": "Left click to increase\nRight click to decrease\nShift and/or Alt to increase the step size", - "litematica.gui.button.hover.plus_minus_tip_ctrl_alt_shift": "Left click to increase\nRight click to decrease\nShift/Alt/Ctrl to increase the step size (multiplicative)", - "litematica.gui.button.hover.schematic_list.reload_schematic": "Reloads the schematic from file.\nThis can be useful if you make a mistake\nin the Schematic Edit mode.", - "litematica.gui.button.hover.schematic_projects.area_browser_disabled_currently_in_projects_mode": "There is currently a Schematic VCS project open.\nThe Schematic VCS mode overrides the normal area selection functionality", - "litematica.gui.button.hover.schematic_projects.delete_area": "§6Delete the last placed or saved area§r", - "litematica.gui.button.hover.schematic_projects.menu_warning": "(This was called Schematic Projects before.)\nIn general you §6should not§r be using this feature,\nunless you really know how it works and what it does.\nIt somewhat changes how the area selections, placements and pasting works,\nin particular that there is also an area delete operation when pasting.\n\nBasically this feature is intended for §6iterative, in-place§r design work,\nand it allows you to easier create multiple versions/snapshots\nof the same build, and also to switch between the versions by deleting what is\nin the world first, and then pasting the next version in its place.", - "litematica.gui.button.hover.schematic_projects.move_origin_to_player": "Move the project origin to the player's current position\nThis will also move the area selection and placement", - "litematica.gui.button.hover.schematic_projects.place_to_world_warning": "§6Warning: This will delete/overwrite the current blocks\n§6in the world within the area that was previously\n§6placed from a version, or saved as a version\n§6(basically the last seen \"effective area selection\")", - "litematica.gui.button.hover.schematic_projects.save_new_version": "Saves a new schematic/version to the current project", - - "litematica.gui.button.material_list": "Material List", - "litematica.gui.button.material_list.clear_cache": "Clear cache", - "litematica.gui.button.material_list.clear_ignored": "Clear ignored", - "litematica.gui.button.material_list.hide_available": "Hide available: %s", - "litematica.gui.button.material_list.ignore": "Ignore", - "litematica.gui.button.material_list.list_type": "Show: %s", - "litematica.gui.button.material_list.refresh_list": "Refresh", - "litematica.gui.button.material_list.toggle_info_hud": "Info HUD: %s", - "litematica.gui.button.material_list.write_to_file": "Write to file", - - "litematica.gui.button.placement_sub.placement_configuration": "Placement configuration", - "litematica.gui.button.placement_sub.reset_sub_region_placement": "Reset sub-region", - "litematica.gui.button.placement_sub.slice_type": "Slice: %s", - - "litematica.gui.button.schematic_manager.export_as": "Export as:", - - "litematica.gui.button.schematic_placement.abbr.rendering": "R", - - "litematica.gui.button.schematic_placement.ignore_entities": "Ignore entities: %s", - "litematica.gui.button.schematic_placement.region_enabled": "Region: %s", - "litematica.gui.button.schematic_placement.reset_sub_region_placements": "Reset all sub-regions", - "litematica.gui.button.schematic_placement.toggle_all_off": "All §cOFF§r", - "litematica.gui.button.schematic_placement.toggle_all_on": "All §aON§r", - - "litematica.gui.button.schematic_placement.hover.enclosing_box": "Enclosing box rendering: %s", - "litematica.gui.button.schematic_placement.hover.lock": "Locking a placement prevents moving or\notherwise changing it (accidentally)", - "litematica.gui.button.schematic_placement.hover.rendering": "Rendering: %s\nNote that this works a bit funky\nand doesn't prevent entity rendering.\nUsually you should just disable\nthe placement entirely", - - "litematica.gui.button.schematic_placements.configure": "Configure", - "litematica.gui.button.schematic_placements.disable": "Disable", - "litematica.gui.button.schematic_placements.locked": "Locked: %s", - "litematica.gui.button.schematic_placements.placement_enabled": "Placement: %s", - "litematica.gui.button.schematic_placements.remove": "Remove", - "litematica.gui.button.schematic_placements.rendering_enabled": "Rendering: %s", - "litematica.gui.button.schematic_placements.select": "Select", - - "litematica.gui.button.schematic_projects.close_project": "Close current project", - "litematica.gui.button.schematic_projects.create_project": "Create project", - "litematica.gui.button.schematic_projects.delete_area": "Delete Area", - "litematica.gui.button.schematic_projects.load_project": "Load project", - "litematica.gui.button.schematic_projects.move_origin_to_player": "Move to player", - "litematica.gui.button.schematic_projects.open_area_editor": "Area Editor", - "litematica.gui.button.schematic_projects.open_manager_gui": "Open Manager", - "litematica.gui.button.schematic_projects.open_project_browser": "VCS Project Browser", - "litematica.gui.button.schematic_projects.place_to_world": "Place to world", - "litematica.gui.button.schematic_projects.save_version": "Save Version", - - "litematica.gui.button.schematic_verifier.ignore": "Ignore", - "litematica.gui.button.schematic_verifier.range_type": "Range: %s", - "litematica.gui.button.schematic_verifier.reset_ignored": "Reset ignored", - "litematica.gui.button.schematic_verifier.reset_verifier": "Reset data", - "litematica.gui.button.schematic_verifier.resume": "Resume verification", - "litematica.gui.button.schematic_verifier.start": "Start verification", - "litematica.gui.button.schematic_verifier.stop": "Stop verification", - "litematica.gui.button.schematic_verifier.toggle_info_hud": "Info HUD: %s", - - "litematica.gui.button.cancel": "Cancel", - "litematica.gui.button.configure": "Configure", - "litematica.gui.button.copy": "Copy", - "litematica.gui.button.create_directory": "Create New Directory", - "litematica.gui.button.create_placement": "Create placement", - "litematica.gui.button.delete": "Delete", - "litematica.gui.button.disable": "Disable", - "litematica.gui.button.enable": "Enable", - "litematica.gui.button.import": "Import", - "litematica.gui.button.load_schematic_to_memory": "Load Schematic", - "litematica.gui.button.mirror_value": "Mirror: %s", - "litematica.gui.button.move_to_player": "Move to player", - "litematica.gui.button.ok": "Ok", - "litematica.gui.button.reload": "Reload", - "litematica.gui.button.remove": "Remove", - "litematica.gui.button.remove_placement": "Remove placement", - "litematica.gui.button.rename": "Rename", - "litematica.gui.button.rotation_value": "Rotation: %s", - "litematica.gui.button.save_new_schematic_version": "Save Version", - "litematica.gui.button.save_schematic": "Save Schematic", - "litematica.gui.button.save_to_file": "Save to file", - "litematica.gui.button.schematic_verifier": "Schematic Verifier", - "litematica.gui.button.set_preview": "Set preview", - "litematica.gui.button.tool_mode": "Tool Mode: %s", - "litematica.gui.button.unload": "Unload", - "litematica.gui.button.unlocked": "Unlocked", - - "litematica.gui.label.area_editor.box_name": "Sub-region box name", - "litematica.gui.label.area_editor.selection_name": "Selection name", - "litematica.gui.label.area_editor.corner_1": "Corner 1", - "litematica.gui.label.area_editor.corner_2": "Corner 2", - "litematica.gui.label.area_editor.origin": "Origin", - "litematica.gui.label.area_editor.dimensions": "Dimensions", - "litematica.gui.label.area_editor.pos1": "Corner 1", - "litematica.gui.label.area_editor.pos2": "Corner 2", - "litematica.gui.label.area_editor.sub_regions": "Sub-regions (%s)", - - "litematica.gui.label.area_selection_manager.current_selection": "Selected area: %s", - - "litematica.gui.label.area_selection_box_count": "Boxes: %d", - "litematica.gui.label.area_selection_origin": "Origin: %s", - "litematica.gui.label.area_selection.mode.normal": "Normal", - "litematica.gui.label.area_selection.mode.simple": "Simple", - - "litematica.gui.label.block_info.state_client": "Client World Block State", - "litematica.gui.label.block_info.state_schematic": "Schematic World Block State", - - "litematica.gui.label.block_info_list_type.all": "All", - "litematica.gui.label.block_info_list_type.render_layers": "Render Layers", - - "litematica.gui.label.easy_place_protocol.auto": "Auto", - "litematica.gui.label.easy_place_protocol.none": "None", - "litematica.gui.label.easy_place_protocol.slabs_only": "Slabs only", - "litematica.gui.label.easy_place_protocol.v2": "Version 2", - "litematica.gui.label.easy_place_protocol.v3": "Version 3", - - "litematica.gui.label.data_fixer_mode.always": "Always", - "litematica.gui.label.data_fixer_mode.below_1205": "Below 1.20.5 Only", - "litematica.gui.label.data_fixer_mode.below_120X": "Below 1.20.x Only", - "litematica.gui.label.data_fixer_mode.below_119X": "Below 1.19.x Only", - "litematica.gui.label.data_fixer_mode.below_117X": "Below 1.17.x Only", - "litematica.gui.label.data_fixer_mode.below_116X": "Below 1.16.x Only", - "litematica.gui.label.data_fixer_mode.below_113X": "Below 1.13.x Only", - "litematica.gui.label.data_fixer_mode.below_112X": "Below 1.12.x Only", - "litematica.gui.label.data_fixer_mode.never": "Never", - - "litematica.gui.label.loaded_schematic.modified_on": "§6Modified on %s§r", - - "litematica.gui.label.material_list.abbr.shulker_box": "SB", - "litematica.gui.label.material_list.title.available": "Available", - "litematica.gui.label.material_list.title.item": "Item", - "litematica.gui.label.material_list.title.missing": "Missing", - "litematica.gui.label.material_list.title.total": "Total", - - "litematica.gui.label.material_list.multiplier": "Multiplier:", - "litematica.gui.label.material_list.name": "Name", - "litematica.gui.label.material_list.progress": "Progress: %s", - "litematica.gui.label.material_list.progress.done": "Done %s", - "litematica.gui.label.material_list.progress.mismatch": "Mismatched %s", - "litematica.gui.label.material_list.progress.missing": "Missing %s", - "litematica.gui.label.material_list.total": "Total: %s items", - - "litematica.gui.label.origin.auto": "Auto", - "litematica.gui.label.origin.manual": "Manual", - - "litematica.gui.label.paste_nbt_behavior.none": "None", - "litematica.gui.label.paste_nbt_behavior.place_data_modify": "Place & Data Modify", - "litematica.gui.label.paste_nbt_behavior.place_clone": "Place & Clone", - - "litematica.gui.label.placement_sub.region_name": "Region name: %s", - "litematica.gui.label.placement_sub.region_position": "Region position", - "litematica.gui.label.placement_sub.region_size": "Region size: %s", - - "litematica.gui.label.placement_settings.placement_origin": "Placement origin", - - "litematica.gui.label.render_layers.hotkey": "Hotkey", - "litematica.gui.label.render_layers.hover.hotkey": "The next/previous layer hotkeys will affect this boundary.\nIf both are unselected, then the hotkeys will affect\nthe boundary that is closest to the player.", - - "litematica.gui.label.replace_behavior.all": "All", - "litematica.gui.label.replace_behavior.none": "None", - "litematica.gui.label.replace_behavior.with_non_air": "With non-air", - - "litematica.gui.label.schematic_info.schematic_author": "Schematic by: §f%s§r", - "litematica.gui.label.schematic_info.description": "Description:", - "litematica.gui.label.schematic_info.enclosing_size": "Enclosing size:", - "litematica.gui.label.schematic_info.enclosing_size_value": "Enclosing size: §f%s§r", - "litematica.gui.label.schematic_info.name": "Name:", - "litematica.gui.label.schematic_info.region_count": "Regions: §f%d§r", - "litematica.gui.label.schematic_info.time_created": "Created: §f%s§r", - "litematica.gui.label.schematic_info.time_modified": "Modified: §f%s§r", - "litematica.gui.label.schematic_info.total_blocks": "Total blocks: §f%d§r", - "litematica.gui.label.schematic_info.total_blocks_and_volume": "Blocks/Volume: §f%d§r/§f%d§r", - "litematica.gui.label.schematic_info.total_volume": "Total volume: §f%d§r blocks", - "litematica.gui.label.schematic_info.version": "Litematic Version: §f%d§r", - "litematica.gui.label.schematic_info.schema": "Minecraft: §f%s§r [Schema §f%d§r]", - - "litematica.gui.label.schematic_load.checkbox.create_placement": "Create a placement", - "litematica.gui.label.schematic_load.hoverinfo.create_placement": "Immediately create a new placement\nand select that placement", - - "litematica.gui.label.schematic_placement.enclosing_size": "Enclosing size: %s", - "litematica.gui.label.schematic_placement.hoverinfo.hold_shift_to_create_as_disabled": "Hold shift to disable the placement when created", - "litematica.gui.label.schematic_placement.in_memory": "IN-MEMORY ONLY", - "litematica.gui.label.schematic_placement.origin": "Origin: %s", - "litematica.gui.label.schematic_placement.rename_placement": "Rename placement:", - "litematica.gui.label.schematic_placement.schematic_file": "File: %s", - "litematica.gui.label.schematic_placement.schematic_name": "Schematic: %s", - "litematica.gui.label.schematic_placement.sub_region_count": "Sub-regions: %s", - "litematica.gui.label.schematic_placement.sub_regions": "Sub-regions (%s):", - - "litematica.gui.label.schematic_projects.currently_open_project": "Currently open project: %s", - "litematica.gui.label.schematic_projects.origin": "Origin:", - "litematica.gui.label.schematic_projects.project": "Project:", - "litematica.gui.label.schematic_projects.version": "Version: %s (of %s)", - "litematica.gui.label.schematic_projects.version_entry": "Ver. %d - %s", - "litematica.gui.label.schematic_projects.version_name": "Version name:", - - "litematica.gui.label.schematic_save.checkbox.ignore_entities": "Ignore entities", - "litematica.gui.label.schematic_save.hoverinfo.hold_shift_to_overwrite": "Hold shift to overwrite an existing file", - - "litematica.gui.label.schematic_verifier.count": "Count", - "litematica.gui.label.schematic_verifier.expected": "Expected", - "litematica.gui.label.schematic_verifier.found": "Found", - "litematica.gui.label.schematic_verifier_display_type.all": "All (non-ignored)", - "litematica.gui.label.schematic_verifier_display_type.correct_state": "Correct State", - "litematica.gui.label.schematic_verifier_display_type.extra": "Extra Blocks", - "litematica.gui.label.schematic_verifier_display_type.missing": "Missing Blocks", - "litematica.gui.label.schematic_verifier_display_type.wrong_blocks": "Wrong Blocks", - "litematica.gui.label.schematic_verifier_display_type.wrong_state": "Wrong States", - "litematica.gui.label.schematic_verifier.status.done_errors": "Wrong: §cBlock: %s§r, §6State: %s§r, §bMissing: %s§r, §dExtra: %s§r", - "litematica.gui.label.schematic_verifier.status.done_correct_total": "§aCorrect: %s§r, Total: %s", - "litematica.gui.label.schematic_verifier.status.verifying": "Unseen Chunks: %s / %s", - "litematica.gui.label.schematic_verifier.verifier": "Schematic Verifier", - - "litematica.gui.label.task.title.remaining_chunks": "%s, remaining chunks (%s)", - "litematica.gui.label.task_name.area_analyzer": "Area Analyzer", - "litematica.gui.label.task_name.delete": "Delete task", - "litematica.gui.label.task_name.fill": "Fill task", - "litematica.gui.label.task_name.material_list": "Material List", - "litematica.gui.label.task_name.paste": "Paste Schematic", - "litematica.gui.label.task_name.save_schematic": "Save Schematic", - "litematica.gui.label.task_name.verifier": "Verifier", - - "litematica.gui.message.confirm_file_deletion": "Do you want to delete the file '%s'?", - "litematica.gui.message.schematic_projects.confirm_delete_area": "Do you want to delete the \"last affected\" area?\nThis will delete whatever blocks and entities are within the area that the project manager last placed to the world, or last saved as a version. (Basically the \"last seen affected area\", such that if you were to cycle versions, it would not leave blocks behind from the previous version.)", - "litematica.gui.message.schematic_projects.confirm_place_to_world": "Do you want to place this version to the world?\nIt will delete whatever blocks are within the area that the project manager last placed to the world, or last saved as a version. (Basically the \"last seen affected area\", such that if you were to cycle versions, it would not leave blocks behind from the previous version.)", - - "litematica.gui.title.area_editor_normal": "Area Editor (Normal/Multi-box mode)", - "litematica.gui.title.area_editor_normal_schematic_projects": "Area Editor (§6§lSchematic VCS area§r)", - "litematica.gui.title.area_editor_simple": "Area Editor (Simple mode)", - "litematica.gui.title.area_editor_sub_region": "Area Editor (sub-region)", - "litematica.gui.title.area_editor.sub_region_name": "Sub-region name", - "litematica.gui.title.area_selection_manager": "Area Selection Manager", - "litematica.gui.title.configure_schematic_placement": "Configure Schematic placement", - "litematica.gui.title.configure_schematic_sub_region": "Configure Placement Sub-Region", - "litematica.gui.title.configs": "%s Configs - %s", - "litematica.gui.title.confirm_file_deletion": "Confirm file deletion", - "litematica.gui.title.copy_area_selection": "Copy Area Selection '%s'", - "litematica.gui.title.create_area_selection": "Create a new Area Selection", - "litematica.gui.title.create_area_selection_from_placement": "Create a new Area Selection from a Schematic Placement", - "litematica.gui.title.create_directory": "Create a new directory", - "litematica.gui.title.create_in_memory_schematic": "Create an in-memory Schematic", - "litematica.gui.title.create_schematic_project": "Create a new schematic project", - "litematica.gui.title.litematica_main_menu": "Litematica %s", - "litematica.gui.title.load_schematic": "Load Schematic", - "litematica.gui.title.manage_loaded_schematics": "Manage loaded Schematics", - "litematica.gui.title.manage_schematic_placements": "Manage Schematic Placements", - "litematica.gui.title.material_list.area_analyzer": "Area Analysis for selection '%s'", - "litematica.gui.title.material_list.placement": "Material List for placement '%s'", - "litematica.gui.title.material_list.schematic": "Material List for schematic '%s' (%s of %s regions)", - "litematica.gui.title.material_list.select_schematic_regions": "Select the sub-regions for the Material List for '%s'", - "litematica.gui.title.rename_area_selection": "Rename Area Selection", - "litematica.gui.title.rename_area_sub_region": "Rename Sub Region", - "litematica.gui.title.rename_schematic": "Rename Schematic", - "litematica.gui.title.create_schematic_from_selection": "Save the currently selected area as a Schematic", - "litematica.gui.title.save_exported_schematic": "Save an exported %s of '%s'", - "litematica.gui.title.save_imported_schematic": "Save an imported Schematic", - "litematica.gui.title.save_schematic_from_memory": "Save an in-memory Schematic to a file", - "litematica.gui.title.save_schematic_filename": "Schematic File Name", - "litematica.gui.title.schematic_browser": "Schematic Browser", - "litematica.gui.title.schematic_manager": "Schematic Manager", - "litematica.gui.title.schematic_project_manager": "Schematic VCS Project Manager", - "litematica.gui.title.schematic_projects.confirm_delete_area": "Confirm Delete area", - "litematica.gui.title.schematic_projects.confirm_place_to_world": "Confirm Place to world action", - "litematica.gui.title.schematic_projects.save_new_version": "Save new schematic version", - "litematica.gui.title.schematic_projects_browser": "Schematic VCS Projects Browser", - "litematica.gui.title.schematic_verifier": "Schematic Verifier for '%s'", - "litematica.gui.title.schematic_verifier_errors": "Schematic Verifier errors", - "litematica.gui.title.task_manager": "Task Manager", - - "litematica.hud.area_selection.box_count": "Boxes: %s", - "litematica.hud.area_selection.dimensions_position": "Dim: %s - p1: %s, p2: %s", - "litematica.hud.area_selection.mode.corners": "Corners", - "litematica.hud.area_selection.mode.expand": "Expand", - "litematica.hud.area_selection.origin": "Origin: %s", - "litematica.hud.area_selection.selected_area_normal": "Area: %s", - "litematica.hud.area_selection.selected_area_simple": "Area [§6Simple mode§r]: %s", - "litematica.hud.area_selection.selected_sub_region": "Sub-region: %s", - "litematica.hud.area_selection.selection_corners_mode": "Corners Mode: %s", - - "litematica.hud.delete.target_mode": "Delete target mode: %s", - "litematica.hud.delete.target_mode.area": "Current Area", - "litematica.hud.delete.target_mode.placement": "Current Placement", - - "litematica.hud.misc.easy_place_mode_enabled": "Easy Place mode §aON§r", - "litematica.hud.misc.none_brackets": "", - "litematica.hud.misc.placement_restriction_mode_enabled": "Placement Restriction mode §aON§r", - "litematica.hud.misc.render_layer_mode": "Layer Mode: %s - %s", - "litematica.hud.misc.render_layer_mode_all": "Layer Mode: %s", - "litematica.hud.misc.renderer_status": "Renderers: A: %s S: %s B: %s O: %s SEL: %s", - "litematica.hud.misc.schematic_paste.data_restore_mode": "Data Restore Mode: §b%s", - "litematica.hud.misc.schematic_paste.replace_mode": "Replace blocks: %s", - - "litematica.hud.schematic_placement.hover_info.lock_coordinate": "Lock this coordinate\nThis allows changing the other coordinates\nwithout affecting the locked ones", - "litematica.hud.schematic_placement.hover_info.placement_locked": "This placement has been locked and can't\nbe modified without unlocking it first", - "litematica.hud.schematic_placement.hover_info.placement_modified": "This placement has been modified", - "litematica.hud.schematic_placement.hover_info.placement_sub_region_modified": "This sub-region has been modified", - "litematica.hud.schematic_placement.selected_placement": "Placement", - "litematica.hud.schematic_placement.selected_sub_region": "Sub-region", - "litematica.hud.schematic_placement.sub_region_count": "Regions", - "litematica.hud.schematic_placement.sub_region_modified": "Modified", - "litematica.hud.schematic_placement.sub_region_origin": "Region origin: %s", - "litematica.hud.schematic_placement.sub_regions_modified": "Regions modified", - - "litematica.hud.selected_mode": "Mode", - - "litematica.hud.schematic_projects.current_version_date": "Date: %s", - "litematica.hud.schematic_projects.current_version": "Version: %s/%s - name: %s", - "litematica.hud.schematic_projects.no_project_open": "", - "litematica.hud.schematic_projects.no_versions": "", - "litematica.hud.schematic_projects.origin": "Project origin: %s", - "litematica.hud.schematic_projects.project_name": "Project: %s", - "litematica.hud.schematic_projects_mode": "§6Schematic VCS mode§r", - - "litematica.info.material_list": "- The Material List hotkey will open the last viewed Material List,\n if there is one stored\n- To switch to a different Material List, open one via\n the GUI button in the Placement Configuration GUI or\n the schematic browser\n- The stored/last viewed list is also forgot\n if the selected Schematic Placement is changed\n- If there is no last viewed Material List yet,\n then the selected Placement is used, if there is one", - - "litematica.label.alignment.center": "Center", - "litematica.label.alignment.top_center": "Top Center", - - "litematica.label.none_lower": "none", - "litematica.label.no": "no", - "litematica.label.yes": "yes", - - "litematica.message.error.area_deletion_aborted": "Area Deletion interrupted or aborted", - "litematica.message.error.empty_area_selection": "Empty Area Selection (no boxes)", - "litematica.message.error.invalid_schematic_name": "Invalid schematic name '%s'", - "litematica.message.error.no_area_selected": "§cNo area selected§r", - "litematica.message.error.no_placement_selected": "§cNo placement selected§r", - "litematica.message.error.only_works_in_single_player": "§cThis operation only works in single player§r", - "litematica.message.error.move.pending_tasks": "§cCan not start a move operation while there are pending tasks§r", - "litematica.message.error.placement_paste_outside_world": "The placement can't be pasted in the current position, because it goes outside the world bounds", - "litematica.message.error.schematic_paste_failed": "§cSchematic Paste to world failed§r", - "litematica.message.error.schematic_save_failed": "Failed to save schematic to file '%s'", - "litematica.message.error.schematic_save_interrupted": "Schematic saving interrupted or stopped", - "litematica.message.error.schematic_save_no_area_selected": "§cSchematic saving failed - no area selected§r", - "litematica.message.warn.pickblock.no_suitable_slot_found": "No suitable hotbar slot found for pick block!\nCheck the config Generic -> §epickBlockableSlots§r.\nAlso depending on the §epickBlockAvoid*§6 configs, the pick block feature may refuse to replace any tools or other damageable items in those slots.", - "litematica.message.warn.pickblock.no_valid_slots_configured": "No hotbar slots set in the Generic -> §epickBlockableSlots§6 config!", - - "litematica.message.added_selection_box": "Added a new selection box at %s", - "litematica.message.area_clear_fail": "§cFailed to clear the area(s)§r", - "litematica.message.area_cleared": "Area cleared", - "litematica.message.area_filled": "Area filled", - "litematica.message.area_fill_fail": "Failed to fill the area", - "litematica.message.area_selections.selection_created_from_placement": "Created a new selection from placement '%s'", - "litematica.message.easy_place_fail": "§6Action prevented by the Easy Place mode", - "litematica.message.grabbed_element_for_moving": "Grabbed an element to move", - "litematica.message.in_memory_schematic_created": "Created an in-memory schematic as '%s'", - "litematica.message.litematic_saved_as": "Successfully Upgraded the Litematica Schematic's Data Version\nSchematic saved as '%s'", - "litematica.message.material_list.material_cache_cleared": "Material Cache cleared", - "litematica.message.material_list_written_to_file": "Material list written to file '%s'", - "litematica.message.moved_area_origin": "Moved the area origin point from %s => %s", - "litematica.message.moved_selection": "Moved the current selection from %s => %s", - "litematica.message.paste_with_servux": "§6The placement is being uploaded to Servux for pasting", - "litematica.message.placement.cant_modify_is_locked": "§cThe placement is locked and can't be modified§r", - "litematica.message.placement.moved_placement_origin": "Moved placement origin from %s => %s", - "litematica.message.placement.moved_subregion_to": "Moved sub-region to %s", - "litematica.message.placement.rotation_set_to": "Placement rotated to %s", - "litematica.message.placement.mirror_set_to": "Placement mirrored to %s", - "litematica.message.placement_restriction_fail": "§6Action prevented by Placement Restriction mode", - "litematica.message.removed_area_origin": "Removed the explicit/manual area origin point", - "litematica.message.removed_selection_box": "Removed selection box %s", - "litematica.message.scheduled_task_added": "Scheduled task added...", - "litematica.message.litematic_downgrade_exported_as": "Schematic export downgraded as '%s'\n§6NOTE: This is an experimental feature; data loss may occur.§r", - "litematica.message.schematic_exported_as": "Schematic exported as '%s'", - "litematica.message.schematic_pasted": "Schematic pasted in world", - "litematica.message.schematic_pasted_using_fill_and_setblock": "Schematic pasted using §b%s§r fill and §b%s§r setblock commands", - "litematica.message.schematic_pasted_using_setblock": "Schematic pasted using §b%s§r setblock commands", - "litematica.message.schematic_pasted_using_world_edit": "Schematic pasted using §b%s§r World Edit //set commands", - "litematica.message.schematic_placement_created": "Placement created for '%s'", - "litematica.message.schematic_preview_cancelled": "Preview task cancelled", - "litematica.message.schematic_read_from_file_success": "Schematic loaded from file '%s'", - "litematica.message.schematic_rendering_refreshed": "Schematic rendering refreshed", - "litematica.message.schematic_saved_as": "Schematic saved as '%s'", - "litematica.message.schematic_save_task_created": "Schematic saving task created", - "litematica.message.set_area_origin": "Set the area origin point to %s", - "litematica.message.set_selection_box_point": "Set/moved point %d to %s", - "litematica.message.toggled": "Toggled %s %s", - "litematica.message.value.on": "ON", - "litematica.message.value.off": "OFF", - - "litematica.message.schematic_projects.project_created": "Project '%s' created", - "litematica.message.schematic_projects.project_loaded": "Project '%s' loaded", - "litematica.message.schematic_projects.version_saved": "New version (#%s) saved as '%s'", - - "litematica.message.warn.area_selection.browser_open_in_simple_mode": "Note: You are currently in the Simple Area Selection mode", - "litematica.message.warn.layer_mode_currently_at": "Note: You are currently in the '%s' render layer mode", - "litematica.message.warn.main_rendering_disabled": "Warning: The main rendering is currently disabled\nSee Visuals -> %s, or Hotkeys -> %s ['%s']", - "litematica.message.warn.schematic_blocks_rendering_disabled": "Warning: Schematic blocks rendering is currently disabled\nSee Visuals -> %s, or Hotkeys -> %s ['%s']", - "litematica.message.warn.schematic_load_non_litematica": "Warning: When you directly load non-Litematica schematics, the created placements won't be persistent.\nAlso if you have to load the schematic many times, then the schematic type conversion lag spike (for large schematics) will happen each time you load it.\n\nIt is therefore recommended to either import the schematic and save it in the Litematica format via the Schematic Manager menu, or better yet, paste the original schematic into a temporary world using MCEdit or the Paste mode in Litematica, and then make a new Litematica schematic from that, preferably using multiple sub-regions to tightly capture the build, where applicable.", - "litematica.message.warn.schematic_rebuild_placement_not_selected": "The targeted placement is currently not selected. The Replace All hotkey only works on the currently selected sub-region(s) of the placement you click on. So to replace the blocks in only one sub-region, select that sub-region. To replace in the entire schematic (all sun-regions), select the entire placement and not a sub-region of it. The blocks are also only replaced within the area limited by the current Render Layers setting.", - "litematica.message.warn.schematic_rendering_disabled": "Warning: Schematic rendering is currently disabled\nSee Visuals -> %s, or Hotkeys -> %s ['%s']", - "litematica.message.warn.schematic_verifier.overlay_disabled": "Warning: The verifier overlay rendering is currently disabled! See Info Overlays -> %s (or Hotkeys -> %s ['%s'])", - - "litematica.message.warning.invalid_number": "Invalid input for a number '%s'", - "litematica.message.warning.schematic_projects_hidden": "Warning: The Schematic Version Control System is currently hidden. In general you should NOT use this, unless you really know how it works and changes some of the mod behavior. It is meant for iteratire, in-place design work, where flipping between different versions of the build in-place (= deleting and replacing the previous version) is needed. If you want to use it, then enable the option Generic -> unhideSchematicVCS", - - "litematica.warning.area_editor.area_rendering_disabled": "Note: The Area Selection boxes rendering is currently disabled\nSee Visuals -> %s, or Hotkeys -> %s ['%s']", - - "litematica.tool_hud.block_1": "Block: %s", - "litematica.tool_hud.block_2": "Replace: %s", - "litematica.tool_hud.facing": "Facing: %s", - - "litematica.tool_mode.name.area_selection": "Area Selection", - "litematica.tool_mode.name.delete": "Delete", - "litematica.tool_mode.name.fill": "Fill", - "litematica.tool_mode.name.grid_paste": "Grid Paste Schematic in world", - "litematica.tool_mode.name.move": "Move", - "litematica.tool_mode.name.paste_schematic": "Paste Schematic in world", - "litematica.tool_mode.name.rebuild": "Edit Schematic", - "litematica.tool_mode.name.replace_block": "Replace block", - "litematica.tool_mode.name.schematic_placement": "Schematic Placement" -} + "fml.menu.mods.info.description.forgematica": "Litematica unofficial (Neo)Forge port.\nA modern schematic mod for (Neo)Forge." +} \ No newline at end of file diff --git a/src/main/resources/assets/forgematica/lang/ja_jp-extra-lines.json b/src/main/resources/assets/forgematica/lang/ja_jp-extra-lines.json deleted file mode 100644 index 454c126..0000000 --- a/src/main/resources/assets/forgematica/lang/ja_jp-extra-lines.json +++ /dev/null @@ -1,346 +0,0 @@ -{ - "litematica.gui.label.missing_chunks": "%s, 欠落チャンク (%s)", - "litematica.gui.label.paste_nbt_behavior.teleport_place": "テレポートおよび配置", - "litematica.gui.label.schematic_paste.missing_chunks": "ペースト、欠落しているチャンク (%s)", - - - "areaSelectionsPerWorld": "ワールドごとのエリア選択数", - "Use per-world or server root directories for the area selections\nDon't switch this OFF while you are live streaming,\nthen the Area Selection browser will show the server IP\nthe navigation widget and also in the current selection name/path\nyou change the current directory and selection again": "エリア選択にはワールドごとまたはサーバーのルート ディレクトリを使用します\nライブ ストリーミング中はこれをオフにしないでください。\nエリア選択ブラウザにはサーバー IP が表示されます\nナビゲーション ウィジェットと現在の選択名/パスにも表示されます\n現在のディレクトリと選択内容を再度変更します。", - "betterRenderOrder": "より良いレンダリング順序", - "If enabled, then the schematic rendering is done\nby injecting the different render call into the vanilla\nrendering code. This should result in better translucent block\nrendering/ordering and schematic blocks not getting rendered\nthrough the client world blocks/terrain.\nIf the rendering doesn't work (for example with Optifine),\ntry disabling this option.": "有効にすると、\nバニラのレンダリング コードに別のレンダリング呼び出しを挿入することによって、\nスケマティック レンダリングが行われます。これにより、半透明のブロックの\nレンダリング/順序付けが改善され、\nクライアント ワールド ブロック/地形を通じてスケマティック ブロックがレンダリングされなくなります。 \nレンダリングが機能しない場合 (Optifine など)、\nこのオプションを無効にしてみてください。", - "changeSelectedCornerOnMove": "変更選択コーナー移動時", - "If true, then the selected corner of an area selection\nis always set to the last moved corner,\nwhen using the set corner hotkeys": "true の場合、コーナーの設定ホットキーを使用する場合、\nエリア選択の選択されたコーナーは常に最後に移動したコーナーに設定されます。", - "debugLogging": "デバッグログ", - "Enables some debug log messages in the game console,\nfor debugging certain issues or crashes.": "ゲーム コンソールで一部のデバッグ ログ メッセージを有効にし、\n特定の問題やクラッシュをデバッグします。", - "easyPlaceFirst": "イージープレイスファースト", - "This causes the Easy Place mode to place the first/closest block\nyou are looking at first, instead of the furthest/bottom-most block.\nSetting this to false allows you to place multiple layers \"at once\",\nsince the furthest blocks would be placed before the closer ones block the line of sight.": "Easy Placeモードでは、一番遠いブロックではなく、一番近いブロックを最初に配置します。", - "easyPlaceHoldEnabled": "イージープレイスホールド有効", - "When enabled, then you can hold down the use key\nand look at different schematic blocks to place them,\nwithout having to click on every block individually.": "有効にすると、useキーを押しながら回路図ブロックを見て配置することができます。", - "easyPlaceMode": "簡単な配置モード", - "When enabled, then simply trying to use an item/place a block\non schematic blocks will place that block in that position": "有効にすると、アイテムを使用する/ブロックを配置しようとすると\nスキーマティックブロック上にそのブロックがその位置に配置されます", - "easyPlaceSinglePlayerHandling": "簡単なプレイヤー単体処理", - "If enabled, then Litematica handles the so called\n\"Carpet mod Accurate Placement Protocol\" itself in single player.\nIf you also have Tweakeroo installed, then this can be disabled,\nas Tweakeroo's 'clientPlacementRotation' option does the exact same thing.": "有効にすると、Litematicaは単独プレイヤーで「カーペットMOD正確配置プロトコル」を自動的に処理します。\nTweakerooをインストールしている場合は、無効にすることができ、\nTweakerooの「clientPlacementRotation」オプションは同じことを行います。", - "easyPlaceProtocolV3": "簡単な配置プロトコルV3", - "If enabled, then Litematica uses \"version 3\"\nof the so-called \"accurate placement protocol\".\nThis is currently only supported by Litematica itself (in single player).": "有効にすると、Litematicaは「バージョン3」を使用します\nいわゆる「正確な配置プロトコル」を。\nこれは現在、Litematica自体(単独プレイヤー)でのみサポートされています。", - "executeRequireHoldingTool": "実行時にツールを保持する必要があります", - "Require holding an enabled tool item\nfor the executeOperation hotkey to work": "実行操作ホットキーが機能するためには、有効なツールアイテムを保持する必要があります", - "fixRailRotation": "レール回転を修正", - "If true, then a fix is applied for the vanilla bug in rails,\nwhere the 180 degree rotations of straight north-south and\neast-west rails rotate 90 degrees counterclockwise instead >_>": "真の場合、レールのバニラバグに対して修正が適用されます。\n北南の直線レールと東西のレールの180度回転が、代わりに90度反時計回りに回転します >_>", - "generateLowercaseNames": "小文字の名前を生成", - "If enabled, then by default the suggested schematic names\nwill be lowercase and using underscores instead of spaces": "有効にすると、デフォルトで提案されるスキーマティック名は\n小文字になり、スペースの代わりにアンダースコアが使用されます", - "highlightBlockInInventory": "在庫のアイテム(それを含むシャルカー ボックス)を強調表示します\nスキーマ内のブロックを見たときに有効になります", - "When enabled, highlights the item (including Shulker Boxes containing it)\nof the looked at block in the schematic": "有効にすると、スキーマ内の見たブロックのアイテム(それを含むシャルカー ボックス)を強調表示します", - "layerModeFollowsPlayer": "プレイヤーに従ってレンダー レイヤーがフォローします", - "If true, then the render layer follows the player.\nNote: This currently collapses Layer Range type ranges unfortunately": "true の場合、レンダー レイヤーがプレイヤーに従います。\n注: 現在、これにより不幸にもレイヤー範囲タイプの範囲が崩壊します", - "loadEntireSchematics": "常に全体のスキーマティクスを一度にロードします", - "If true, then the entire schematic is always loaded at once.\nIf false, then only the part that is within the client's view distance is loaded.": "true の場合、スキーマティクス全体が常に一度にロードされます。\nfalse の場合は、クライアントの視界距離内にある部分のみがロードされます", - "pasteCommandInterval": "ペースト スキーマティクス タスクが実行されるゲームティックの間隔", - "The interval in game ticks the Paste schematic task runs at,\nin the command-based mode": "コマンドベース モードでペースト スキーマティクス タスクが実行されるゲームティックの間隔", - "pasteCommandLimit": "サーバーのコマンド モードでスキーマティクス機能を使用するときの\nゲームティックあたり送信されるコマンドの最大数", - "Max number of commands sent per game tick,\nwhen using the Paste schematic feature in the\ncommand mode on a server": "コマンド モードでスキーマティクス機能を使用しているときに\nゲームティックあたり送信されるコマンドの最大数", - "pasteCommandNameSetblock": "サーバーでスキーマティクス機能に使用する\nsetblock コマンド名", - "The setblock command name to use for the\nPaste schematic feature on servers, when\nusing the command-based paste mode": "コマンドベースのペースト モードを使用しているときに、サーバーでスキーマティクス機能に使用する\nsetblock コマンド名", - "pasteIgnoreEntities": "有効にすると、ペースト機能はエンティティをペーストしません", - "If enabled, then the Paste feature will not paste any entities": "有効にすると、ペースト機能はエンティティをペーストしません", - "pasteIgnoreInventories": "スキーマティクスをペーストする際に、インベントリの内容をペーストしません", - "Don't paste inventory contents when pasting a schematic": "スキーマティクスをペーストする際に、インベントリの内容をペーストしません", - "pasteNbtRestoreBehavior": "ブロックの NBT データを復元するかどうか、およびそのために使用される方法", - "Whether or not the NBT data of blocks is attempted to be restored,\nand which method is used for that.\n- Place & Data Modify will try to place the \"NBT-picked\" block\n near the player, and then use the data modify\n command to transfer the NBT data to the setblock'ed block\n- Place & Clone will try to place the \"NBT-picked\" block\n near the player, and then clone it to the final location.\n- Teleport & Place will try to teleport the player nearby and then\n directly place the NBT-picked item in the correct position.\nNote that the teleport & place method doesn't currently work correctly/at all.\nThe recommended method is & Data Modifyhowever for that to work\nyou will probably need to lower the pasteCommandLimit to 1 per tick and increase\nthe pasteCommandInterval to 1-4 ticks or something.\nThus you should only use this for pasting important blocks that need the data,\nfor example by making a schematic of just the inventories,\nand then paste that with replace behavior set to None.": "ブロックの NBT データを復元するかどうか、およびそのために使用される方法\n- プレース&データ修正は「NBT ピックされた」ブロックをプレイヤーの近くに配置し、データ修正コマンドを使用して\n setblock されたブロックに NBT データを転送しようとします\n- プレース&クローンは「NBT ピックされた」ブロックをプレイヤーの近くに配置し、最終位置にクローンしようとします\n- テレポート&プレースはプレイヤーを近くにテレポートし、その後\n NBT ピックされたアイテムを正しい位置に直接配置しようとします。\nテレポート&プレースメソッドは現在正しく機能しない/まったく機能しないことに注意してください。\n推奨される方法はデータ修正ですが、これが機能するためには\npasteCommandLimit を 1 ティックに減らし、pasteCommandInterval を 1-4 ティックに増やす必要があるでしょう。\nしたがって、データを必要とする重要なブロックをペーストするためにのみ使用する必要があります。\nたとえば、インベントリのみのスキーマティクスを作成し、\nそれを置き換え動作を None に設定してペーストします。", - "pasteReplaceBehavior": "ペースト スキーマティクス ツール モードで既存のブロックを置き換える動作", - "The behavior of replacing existing blocks\nin the Paste schematic tool mode": "ペースト スキーマティクス ツール モードで既存のブロックを置き換える動作", - "pasteToMcFunctionFiles": "有効にすると、実際にスキーマティクスを世界にペーストするのではなく、\nsetblock コマンドとしてテキストファイルに書き込まれます。", - "If enabled, then instead of actually pasting schematics to the world,\nthey are written as setblock commands into text files.": "有効にすると、実際にスキーマティクスを世界にペーストするのではなく、\nsetblock コマンドとしてテキストファイルに書き込まれます。", - "pickBlockEnabled": "スキーマティクスのワールド ピック ブロック ホットキーを有効にします。\nこのオプションを切り替えるためのホットキーもあります... o.o", - "Enables the schematic world pick block hotkeys.\nThere is also a hotkey for toggling this option to toggle those hotkeys... o.o": "スキーマティクスのワールド ピック ブロック ホットキーを有効にします。\nこのオプションを切り替えるためのホットキーもあります... o.o", - "pickBlockShulkers": "有効にすると、ピック ブロックに必要なアイテムが\nプレイヤーのインベントリに直接見つからない場合でも、\nそれを含むシャルカー ボックスがあれば、シャルカー ボックスが\nプレイヤーの手に切り替えられます。", - "If enabled, then if the required item for the pick bloc\nis not found directly in the player's inventory, but there\nis a Shulker box that contains it, the Shulker Box\nwill be switched to the player's hand instead": "有効にすると、ピック ブロックに必要なアイテムが\nプレイヤーのインベントリに直接見つからない場合でも、\nそれを含むシャルカー ボックスがあれば、シャルカー ボックスが\nプレイヤーの手に切り替えられます。", - "pickBlockableSlots": "スキーマティクス ピック ブロックに使用できるホットバー スロット", - "The hotbar slots that are allowed to be\nused for the schematic pick block": "スキーマティクス ピック ブロックに使用できるホットバー スロット", - "placementRestriction": "有効にすると、使用キーはターゲット位置に必要なアイテムを保持しているときのみ使用できます。\nターゲット位置には、スキーマティクスに欠落しているブロックが必要です。", - "When enabled, the use key can only be used\nwhen holding the correct item for the targeted position,\nand the targeted position must have a missing block in the schematic": "有効にすると、使用キーはターゲット位置に必要なアイテムを保持しているときのみ使用できます。\nターゲット位置には、スキーマティクスに欠落しているブロックが必要です。", - "renderMaterialListInGuis": "材料リストが GUIs 内で描画されるかどうか", - "Whether or not the material list should\nbe rendered inside GUIs": "材料リストが GUIs 内で描画されるかどうか", - "renderThreadNoTimeout": "レンダリング ワーカー スレッドからタイムアウトを削除します。\n周囲を移動したり、大規模なスキーマティクスを扱っているときに非常にカクつくレンダリングが発生する場合は、これを無効にしてみてください。\nただし、これにより、場合によってはスキーマティクスのレンダリングが非常に遅くなります。", - "Removes the timeout from the rendering worker threads.\nIf you get very stuttery rendering when moving around\nor dealing with large schematics, try disabling this. It will however make\nthe schematic rendering a lot slower in some cases.": "レンダリング ワーカー スレッドからタイムアウトを削除します。\n周囲を移動したり、大規模なスキーマティクスを扱っているときに非常にカクつくレンダリングが発生する場合は、これを無効にしてみてください。\nただし、これにより、場合によってはスキーマティクスのレンダリングが非常に遅くなります。", - "selectionCornersMode": "領域選択のコーナーモード (コーナーまたは拡張) を使用します", - "The Area Selection corners mode to use (Corners, or Expand)": "領域選択のコーナーモード (コーナーまたは拡張) を使用します", - "toolItem": "選択などのための「ツール」として使用するアイテム", - "The item to use as the \"tool\" for selections etc.": "選択などのための「ツール」として使用するアイテム", - "toolItemEnabled": "true の場合、「ツール」アイテムを使用して選択などを制御できます。", - "If true, then the \"tool\" item can be used to control selections etc.": "true の場合、「ツール」アイテムを使用して選択などを制御できます。", - "enableAreaSelectionBoxesRendering": "エリア選択ボックスのレンダリングを有効にします", - "Enable Area Selection boxes rendering": "エリア選択ボックスのレンダリングを有効にします", - "enablePlacementBoxesRendering": "スキーマティクスの配置ボックスのレンダリングを有効にします", - "Enable Schematic Placement boxes rendering": "スキーマティクスの配置ボックスのレンダリングを有効にします", - "enableRendering": "メインレンダリングトグルオプション。すべてのモードレンダリングを有効または無効にします。", - "Main rendering toggle option. Enables/disables ALL mod rendering.": "メインレンダリングトグルオプション。すべてのモードレンダリングを有効または無効にします。", - "enableSchematicBlocksRendering": "スキーマティクスブロックレンダリングを有効にします。\nこれを無効にすると、色のオーバーレイのみが表示されます", - "Enables schematic block rendering.\nDisabling this allows you to only see the color overlay": "スキーマティクスブロックレンダリングを有効にします。\nこれを無効にすると、色のオーバーレイのみが表示されます", - "enableSchematicOverlay": "スキーマティクスブロックオーバーレイレンダリングのメイントグルオプション", - "The main toggle option for the schematic\nblock overlay rendering": "スキーマティクスブロックオーバーレイレンダリングのメイントグルオプション", - "enableSchematicRendering": "スキーマティクスとオーバーレイのレンダリングを有効にします", - "Enable rendering the schematic and overlay": "スキーマティクスとオーバーレイのレンダリングを有効にします", - "ghostBlockAlpha": "ゴーストブロックのアルファ値。\nそれらを半透明としてレンダリングする場合。\n半透明のレンダリングを別途有効にする必要があります。\n「renderBlocksAsTranslucent」オプションを使用!", - "The alpha value of the ghost blocks,\nwhen rendering them as translucent.\nalso need to enable the translucent rendering separately,\nusing the 'renderBlocksAsTranslucent' option!": "ゴーストブロックのアルファ値。\nそれらを半透明としてレンダリングする場合。\n半透明のレンダリングを別途有効にする必要があります。\n「renderBlocksAsTranslucent」オプションを使用!", - "ignoreExistingFluids": "有効にすると、流体ブロックは「追加ブロック」や「誤ったブロック」として無視されます。\nつまり、スキーマティクスに空気やその他のブロックがある場合です。\n基本的に、これにより水中での建築がはるかに快適になります。\n注: 「renderCollidingSchematicBlocks」オプションも有効にしておくと良いでしょう\n流体内のブロックがレンダリングされるようにするためです。", - "If enabled, then any fluid blocks are ignored as \"extra blocks\"\nand as \"wrong blocks\", ie. where the schematic has air or other blocks.\nBasically this makes building stuff under water a whole lot less annoying.\nNote: You will most likely also want to enable the 'renderCollidingSchematicBlocks'\noption at the same time, to allow the blocks to get rendered inside fluids.": "有効にすると、流体ブロックは「追加ブロック」や「誤ったブロック」として無視されます。\nつまり、スキーマティクスに空気やその他のブロックがある場合です。\n基本的に、これにより水中での建築がはるかに快適になります。\n注: 「renderCollidingSchematicBlocks」オプションも有効にしておくと良いでしょう\n流体内のブロックがレンダリングされるようにするためです。", - "overlayReducedInnerSides": "有効にすると、ブロックオーバーレイの隣接/接触する内部側が削除されます/レンダリングされません", - "If enabled, then the adjacent/touching inner sides\nfor the block overlays are removed/not rendered": "有効にすると、ブロックオーバーレイの隣接/接触する内部側が削除されます/レンダリングされません", - "placementBoxSideAlpha": "サブリージョンボックスのサイドのアルファ値", - "The alpha value of the sub-region boxes' side": "サブリージョンボックスのサイドのアルファ値", - "renderAreaSelectionBoxSides": "有効にすると、エリア選択ボックスには\nその側面の四角形がレンダリングされます", - "If enabled, then the area selection boxes will\nhave their side quads rendered": "有効にすると、エリア選択ボックスには\nその側面の四角形がレンダリングされます", - "renderBlocksAsTranslucent": "有効にすると、スキーマティクスが半透明の「ゴーストブロック」を使用してレンダリングされます", - "If enabled, then the schematics are rendered\nusing translucent \"ghost blocks\"": "有効にすると、スキーマティクスが半透明の「ゴーストブロック」を使用してレンダリングされます", - "renderCollidingSchematicBlocks": "有効にすると、クライアントワールドに(誤った)ブロックがすでに存在する場合でも、\nスキーマティクスのブロックがレンダリングされます。\nおそらく、雪の層や水が邪魔な建物を作ろうとしているときに最も便利です。", - "If enabled, then blocks in the schematics are rendered\nalso when there is already a (wrong) block in the client world.\nProbably mostly useful when trying to build\nsomething where there are snow layers or water in the way.": "有効にすると、クライアントワールドに(誤った)ブロックがすでに存在する場合でも、\nスキーマティクスのブロックがレンダリングされます。\nおそらく、雪の層や水が邪魔な建物を作ろうとしているときに最も便利です。", - "renderErrorMarkerConnections": "次の検証ハイライトボックスのコーナー間に接続線をレンダリングします。\nこれは、一部の人々が経験したレンダリングバグでしたが、少なくとも一部のプレイヤーはそれを気に入っており、\n残すようリクエストがあったので、このオプションはそれを「復元」します", - "Render connecting lines between subsequent verifier hilight box corners.\nThis was a rendering bug that some people experienced, but at least some players\nliked it and requested for it to stay, so this options \"restores\" it": "次の検証ハイライトボックスのコーナー間に接続線をレンダリングします。\nこれは、一部の人々が経験したレンダリングバグでしたが、少なくとも一部のプレイヤーはそれを気に入っており、\n残すようリクエストがあったので、このオプションはそれを「復元」します", - "renderErrorMarkerSides": "有効にすると、スキーマティクス検証ツールのエラーマーカーに(半透明の)側面がレンダリングされます。\n単にアウトラインだけではありません", - "If enabled, then the error markers in the Schematic Verifier\nwill have (translucent) sides rendered instead of just the outline": "有効にすると、スキーマティクス検証ツールのエラーマーカーに(半透明の)側面がレンダリングされます。\n単にアウトラインだけではありません", - "renderPlacementBoxSides": "有効にすると、配置されたスキーマティクスのサブリージョンボックスに\nその側面の四角形がレンダリングされます", - "If enabled, then the placed schematic sub-region boxes\nwill have their side quads rendered": "有効にすると、配置されたスキーマティクスのサブリージョンボックスに\nその側面の四角形がレンダリングされます", - "renderPlacementEnclosingBox": "有効にすると、スキーマティクスのすべてのサブリージョンの周囲に囲むボックスがレンダリングされます", - "If enabled, then an enclosing box is rendered around\nall the sub-regions in a schematic (placement)": "有効にすると、スキーマティクスのすべてのサブリージョンの周囲に囲むボックスがレンダリングされます", - "renderPlacementEnclosingBoxSides": "有効にすると、スキーマティクスの配置の周囲にある囲むボックスに\nその側面の四角形がレンダリングされます", - "If enabled, then the enclosing box around\na schematic placement will have its side quads rendered": "有効にすると、スキーマティクスの配置の周囲にある囲むボックスに\nその側面の四角形がレンダリングされます", - "renderTranslucentBlockInnerSides": "有効にすると、トランスルーセントモードの内側の側面に対して\nモデルの側面もレンダリングされます", - "If enabled, then the model sides are also rendered\nfor inner sides in the translucent mode": "有効にすると、トランスルーセントモードの内側の側面に対して\nモデルの側面もレンダリングされます", - "schematicOverlayEnableOutlines": "スキーマティクスブロックオーバーレイのワイヤーフレームアウトラインのレンダリングを有効にします", - "Enables rendering a wire frame outline for\nthe schematic block overlay": "スキーマティクスブロックオーバーレイのワイヤーフレームアウトラインのレンダリングを有効にします", - "schematicOverlayEnableSides": "スキーマティクスブロックオーバーレイの半透明ボックス/側面のレンダリングを有効にします", - "Enables rendering translucent boxes/sides for\nthe schematic block overlay": "スキーマティクスブロックオーバーレイの半透明ボックス/側面のレンダリングを有効にします", - "schematicOverlayModelOutline": "有効にすると、スキーマティクスオーバーレイは\nブロックモデルの四角形/頂点を使用します。\n従来のフルブロックオーバーレイの代わりに", - "If enabled, then the schematic overlay will use the\nblock model quads/vertices instead of the traditional full block overlay": "有効にすると、スキーマティクスオーバーレイは\nブロックモデルの四角形/頂点を使用します。\n従来のフルブロックオーバーレイの代わりに", - "schematicOverlayOutlineWidth": "ブロック(モデル)アウトラインの線の幅", - "The line width of the block (model) outlines": "ブロック(モデル)アウトラインの線の幅", - "schematicOverlayOutlineWidthThrough": "ブロックを通過してレンダリングされる場合のブロック(モデル)アウトラインの線の幅", - "The line width of the block (model) outlines,\nwhen the overlay is rendered through blocks": "ブロックを通過してレンダリングされる場合のブロック(モデル)アウトラインの線の幅", - "schematicOverlayRenderThroughBlocks": "有効にすると、スキーマティクスオーバーレイは\nブロックを通過してレンダリングされます。これは、建築が終わった後に\nエラーを見やすくするためにのみ有用です", - "If enabled, then the schematic overlay will be rendered\nthrough blocks. This is probably only useful once you are\nfinished building and want to see any errors easier": "有効にすると、スキーマティクスオーバーレイは\nブロックを通過してレンダリングされます。これは、建築が終わった後に\nエラーを見やすくするためにのみ有用です", - "schematicOverlayTypeExtra": "追加ブロック用のスキーマティクスオーバーレイを有効にします", - "Enables the schematic overlay for extra blocks": "追加ブロック用のスキーマティクスオーバーレイを有効にします", - "schematicOverlayTypeMissing": "欠落ブロック用のスキーマティクスオーバーレイを有効にします", - "Enables the schematic overlay for missing blocks": "欠落ブロック用のスキーマティクスオーバーレイを有効にします", - "schematicOverlayTypeWrongBlock": "誤ったブロック用のスキーマティクスオーバーレイを有効にします", - "Enables the schematic overlay for wrong blocks": "誤ったブロック用のスキーマティクスオーバーレイを有効にします", - "schematicOverlayTypeWrongState": "誤った状態用のスキーマティクスオーバーレイを有効にします", - "Enables the schematic overlay for wrong states": "誤った状態用のスキーマティクスオーバーレイを有効にします", - "schematicVerifierUseBlockModels": "スキーマティクス検証ツールの結果リストのすべてにブロックモデルを使用します。\n通常、アイテムモデルはアイテムのあるものに使用され、\nブロックモデルはアイテムのないブロックにのみ使用されます。\nフラワーポットには、含まれているアイテムを見るために使用されます。", - "Forces using blocks models for everything in the Schematic Verifier\nresult list. Normally item models are used for anything\nthat has an item, and block models are only used for blocks\nthat don't have an item, plus for Flower Pots to see the contained item.": "スキーマティクス検証ツールの結果リストのすべてにブロックモデルを使用します。\n通常、アイテムモデルはアイテムのあるものに使用され、\nブロックモデルはアイテムのないブロックにのみ使用されます。\nフラワーポットには、含まれているアイテムを見るために使用されます。", - "blockInfoLinesAlignment": "ブロック情報行オーバーレイの配置", - "The alignment of the block info lines overlay": "ブロック情報行オーバーレイの配置", - "blockInfoLinesEnabled": "有効にすると、見ているブロックのためにMiniHUDスタイルのブロック情報オーバーレイがレンダリングされます", - "If enabled, then MiniHUD-style block info overlay\nis rendered for the looked-at block": "有効にすると、見ているブロックのためにMiniHUDスタイルのブロック情報オーバーレイがレンダリングされます", - "blockInfoLinesFontScale": "ブロック情報行のフォントスケール", - "The font scale for the block info lines": "ブロック情報行のフォントスケール", - "blockInfoLinesOffsetX": "選択されたエッジからのブロック情報行のXオフセット", - "The x offset of the block info lines from the selected edge": "選択されたエッジからのブロック情報行のXオフセット", - "blockInfoLinesOffsetY": "選択されたエッジからのブロック情報行のYオフセット", - "The y offset of the block info lines from the selected edge": "選択されたエッジからのブロック情報行のYオフセット", - "blockInfoOverlayAlignment": "ブロック情報オーバーレイの配置", - "The alignment of the Block Info Overlay": "ブロック情報オーバーレイの配置", - "blockInfoOverlayOffsetY": "選択されたエッジからのブロック情報オーバーレイのYオフセット", - "The y offset of the block info overlay from the selected edge": "選択されたエッジからのブロック情報オーバーレイのYオフセット", - "blockInfoOverlayEnabled": "ブロック情報オーバーレイのレンダリングを有効にして、見ているブロックや検証エラーマーカーの情報を表示します\n'renderInfoOverlay'キーを押している間", - "Enable Block Info Overlay rendering to show info\nabout the looked-at block or verifier error marker,\nwhile holding the 'renderInfoOverlay' key": "ブロック情報オーバーレイのレンダリングを有効にして、見ているブロックや検証エラーマーカーの情報を表示します\n'renderInfoOverlay'キーを押している間", - "infoHudAlignment": "\"情報HUD\"の配置\nマテリアルリスト、スキーマティクス検証者不一致位置などで使用されます", - "The alignment of the \"Info HUD\",\nused for the Material List, Schematic Verifier mismatch positions etc.": "\"情報HUD\"の配置\nマテリアルリスト、スキーマティクス検証者不一致位置などで使用されます", - "infoHudMaxLines": "HUDに同時に表示する情報行の最大数", - "The maximum number of info lines to show on the HUD at once": "HUDに同時に表示する情報行の最大数", - "infoHudOffsetX": "画面のエッジからの情報HUDのXオフセット", - "The X offset of the Info HUD from the screen edge": "画面のエッジからの情報HUDのXオフセット", - "infoHudOffsetY": "画面のエッジからの情報HUDのYオフセット", - "The Y offset of the Info HUD from the screen edge": "画面のエッジからの情報HUDのYオフセット", - "infoHudScale": "一般的な情報HUDテキストのスケールファクター", - "Scale factor for the generic Info HUD text": "一般的な情報HUDテキストのスケールファクター", - "infoOverlaysTargetFluids": "有効にすると、ブロック情報オーバーレイとブロック情報行が流体ブロックにレイトレースできるようになり、\nそれを通過することができなくなります", - "When enabled, the Block Info Overlay and Block Info Lines\nwill be able to ray trace to fluid blocks instead of going through them": "有効にすると、ブロック情報オーバーレイとブロック情報行が流体ブロックにレイトレースできるようになり、\nそれを通過することができなくなります", - "materialListHudMaxLines": "マテリアルリスト情報HUDに同時に表示するアイテムの最大数", - "The maximum number of items to show on\nthe Material List Info HUD at once": "マテリアルリスト情報HUDに同時に表示するアイテムの最大数", - "materialListHudScale": "マテリアルリスト情報HUDのスケールファクター", - "Scale factor for the Material List Info HUD": "マテリアルリスト情報HUDのスケールファクター", - "statusInfoHud": "現在のレイヤーモードやレンダラーの有効状態などのいくつかの状態情報を描画する\nステータス情報HUDレンダラーを有効にします", - "Enable a status info HUD renderer,\nwhich renders a few bits of status info, such as\nthe current layer mode and renderers enabled state": "現在のレイヤーモードやレンダラーの有効状態などのいくつかの状態情報を描画する\nステータス情報HUDレンダラーを有効にします", - "statusInfoHudAuto": "必要に応じて自動的にステータス情報HUDを一時的に有効にすることを許可します。\n配置を作成し、レンダリングが無効な場合など", - "Allow automatically momentarily enabling the status info HUD \"when needed\",\nfor example when creating a placement and having rendering disabled": "必要に応じて自動的にステータス情報HUDを一時的に有効にすることを許可します。\n配置を作成し、レンダリングが無効な場合など", - "toolHudAlignment": "\"ツールHUD\"の配置、設定された「ツール」を保持しているとき", - "The alignment of the \"tool HUD\", when holding the configured \"tool\"": "\"ツールHUD\"の配置、設定された「ツール」を保持しているとき", - "toolHudOffsetX": "画面のエッジからの情報HUDのXオフセット", - "The X offset of the Info HUD from the screen edge": "画面のエッジからの情報HUDのXオフセット", - "toolHudOffsetY": "画面のエッジからの情報HUDのYオフセット", - "The X offset of the Info HUD from the screen edge": "画面のエッジからの情報HUDのYオフセット", - "toolHudScale": "ツールHUDテキストのスケールファクター", - "Scale factor for the Info HUD text": "ツールHUDテキストのスケールファクター", - "verifierErrorHilightAlpha": "エラーマーカーのボックス側面のアルファ値", - "The alpha value of the error marker box sides": "エラーマーカーのボックス側面のアルファ値", - "verifierErrorHilightMaxPositions": "スキーマティクス検証オーバーレイに同時にレンダリングする不一致位置の最大数", - "The maximum number of mismatched positions to render\nat once in the Schematic Verifier overlay.": "スキーマティクス検証オーバーレイに同時にレンダリングする不一致位置の最大数", - "verifierOverlayEnabled": "スキーマティクス検証者マーカーオーバーレイのレンダリングを有効にします", - "Enable Schematic Verifier marker overlay rendering": "スキーマティクス検証者マーカーオーバーレイのレンダリングを有効にします", - "warnDisabledRendering": "新しいスキーマティクスを読み込むか、新しい配置を作成するときに\nレイヤーモードにいるか、一部のレンダリングオプションが無効になっていることに関する警告メッセージを表示しますか", - "Should the warning message about being in a layer mode\nor having some of the rendering options disabled\nbe shown when loading a new schematic\nor creating a new placement": "新しいスキーマティクスを読み込むか、新しい配置を作成するときに\nレイヤーモードにいるか、一部のレンダリングオプションが無効になっていることに関する警告メッセージを表示しますか", - "areaSelectionBoxSideColor": "選択されていないときのエリア選択ボックスの色", - "The color of the area selection boxes, when they are unselected": "選択されていないときのエリア選択ボックスの色", - "hightlightBlockInInventoryColor": "見ているブロックのアイテムのハイライト色", - "The highlight color for the item of the looked at block": "見ているブロックのアイテムのハイライト色", - "materialListHudItemCountsColor": "マテリアルリスト情報HUD内のアイテムカウントテキストの色", - "The color of the item count text in the Material List info HUD": "マテリアルリスト情報HUD内のアイテムカウントテキストの色", - "schematicRebuildBreakPlaceOverlayColor": "スキーマティックリビルドモードの壊したり置いたりするブロックセレクターオーバーレイの色", - "The color of Schematic Rebuild mode's break or place blocks selector overlay": "スキーマティックリビルドモードの壊したり置いたりするブロックセレクターオーバーレイの色", - "schematicRebuildBreakExceptPlaceOverlayColor": "スキーマティックリビルドモードの対象外セレクターオーバーレイの色", - "The color of Schematic Rebuild mode's break all blocks except targeted selector overlay": "スキーマティックリビルドモードの対象外セレクターオーバーレイの色", - "schematicRebuildReplaceOverlayColor": "スキーマティックリビルドモードの置き換えセレクターオーバーレイの色", - "The color of Schematic Rebuild mode's replace selector overlay": "スキーマティックリビルドモードの置き換えセレクターオーバーレイの色", - "schematicOverlayColorExtra": "余分なブロックのオーバーレイ色", - "The color of the blocks overlay for extra blocks": "余分なブロックのオーバーレイ色", - "schematicOverlayColorMissing": "欠損ブロックのオーバーレイ色", - "The color of the blocks overlay for missing blocks": "欠損ブロックのオーバーレイ色", - "schematicOverlayColorWrongBlock": "間違ったブロックのオーバーレイ色", - "The color of the blocks overlay for wrong blocks": "間違ったブロックのオーバーレイ色", - "schematicOverlayColorWrongState": "間違ったブロック状態のオーバーレイ色", - "The color of the blocks overlay for wrong block states": "間違ったブロック状態のオーバーレイ色", - "addSelectionBox": "新しい選択ボックスを追加する(位置1)", - "Add a new selection box (position 1) here": "新しい選択ボックスを追加する(位置1)", - "cloneSelection": "現在のエリア選択をすばやく複製します。\nこれは基本的にメモリ内だけのスキーマを作成し、\nそのスキーマの配置を作成して選択し、\nツールモードを貼り付けモードに切り替えます。", - "Quickly clone the current area selection.\nThis basically just creates an in-memory-only schematic,\nand then creates a placement of that schematic and selects it,\nand also switches the tool mode to the Paste mode.": "現在のエリア選択をすばやく複製します。\nこれは基本的にメモリ内だけのスキーマを作成し、\nそのスキーマの配置を作成して選択し、\nツールモードを貼り付けモードに切り替えます。", - "deleteSelectionBox": "現在選択されているボックスを削除します", - "Delete the currently selected box": "現在選択されているボックスを削除します", - "easyPlaceUseKey": "easyPlaceModeが有効なとき、このキーはブロックを置くために使用されます", - "When the easyPlaceMode is enabled, this key is used for placing the blocks": "easyPlaceModeが有効なとき、このキーはブロックを置くために使用されます", - "easyPlaceToggle": "Easy Placeモードをすばやくオン/オフに切り替えます", - "Allows quickly toggling on/off the Easy Place mode": "Easy Placeモードをすばやくオン/オフに切り替えます", - "executeOperation": "現在の選択または配置で現在選択されているツール操作を実行します\nフィル、置き換え、スキーマの貼り付けなどのモードで", - "Execute the currently selected tool operation with the\ncurrent selection or placement in the Fill, Replace,\nPaste Schematic etc. modes": "現在の選択または配置で現在選択されているツール操作を実行します\nフィル、置き換え、スキーマの貼り付けなどのモードで", - "invertGhostBlockRenderState": "このキーが押されている間、スキーマ/ゴーストブロックの描画状態を反転させます", - "Inverts the schematic/ghost block rendering status\nwhile this keybind is held down": "このキーが押されている間、スキーマ/ゴーストブロックの描画状態を反転させます", - "invertOverlayRenderState": "このキーが押されている間、オーバーレイの描画状態を反転させます", - "Inverts the Overlay rendering status while this keybind is held down": "このキーが押されている間、オーバーレイの描画状態を反転させます", - "layerModeNext": "レンダリングモード(すべて、レイヤー)を前方にサイクルします", - "Cycle the rendering mode (all, layers) forward": "レンダリングモード(すべて、レイヤー)を前方にサイクルします", - "layerModePrevious": "レンダリングモード(すべて、レイヤー)を後方にサイクルします", - "Cycle the rendering mode (all, layers) backwards": "レンダリングモード(すべて、レイヤー)を後方にサイクルします", - "layerNext": "レンダリングされたレイヤー選択を上に移動します", - "Move the rendered layer selection up": "レンダリングされたレイヤー選択を上に移動します", - "layerPrevious": "レンダリングされたレイヤー選択を下に移動します", - "Move the rendered layer selection down": "レンダリングされたレイヤー選択を下に移動します", - "layerSetHere": "レンダーレイヤーをプレイヤーの現在の位置に設定します", - "Set the Render Layer to the player's current position": "レンダーレイヤーをプレイヤーの現在の位置に設定します", - "nudgeSelectionNegative": "現在の選択を「負」の方向に微調整します\nこれは基本的にNudge修飾子を押した状態でマウスホイールを下に回すのと同じです", - "Nudge the current selection in the \"negative\" direction\nThis is basically the same as mouse wheel down\nwith the Nudge modifier pressed": "現在の選択を「負」の方向に微調整します\nこれは基本的にNudge修飾子を押した状態でマウスホイールを下に回すのと同じです", - "nudgeSelectionPositive": "現在の選択を「正」の方向に微調整します\nこれは基本的にNudge修飾子を押した状態でマウスホイールを上に回すのと同じです", - "Nudge the current selection in the \"positive\" direction\nThis is basically the same as mouse wheel up\nwith the Nudge modifier pressed": "現在の選択を「正」の方向に微調整します\nこれは基本的にNudge修飾子を押した状態でマウスホイールを上に回すのと同じです", - "moveEntireSelection": "現在の選択全体をここに移動します", - "Move the entire current selection here": "現在の選択全体をここに移動します", - "openGuiAreaSettings": "現在選択されているエリアのためのエリア設定GUIを開きます", - "Open the Area Settings GUI for the currently selected area": "現在選択されているエリアのためのエリア設定GUIを開きます", - "openGuiLoadedSchematics": "読み込まれたスキーマGUIを開きます", - "Open the Loaded Schematic GUI": "読み込まれたスキーマGUIを開きます", - "openGuiMainMenu": "Litematicaメインメニューを開きます", - "Open the Litematica main menu": "Litematicaメインメニューを開きます", - "openGuiMaterialList": "現在選択されているスキーマ配置のためのマテリアルリストGUIを開きます", - "Open the Material List GUI for the currently\nselected schematic placement": "現在選択されているスキーマ配置のためのマテリアルリストGUIを開きます", - "openGuiPlacementSettings": "現在選択されている配置またはサブリージョンのための配置設定GUIを開きます", - "Open the Placement Settings GUI for the currently\nselected placement or sub-region": "現在選択されている配置またはサブリージョンのための配置設定GUIを開きます", - "openGuiSchematicPlacements": "スキーマ配置GUIを開きます", - "Open the Schematic Placements GUI": "スキーマ配置GUIを開きます", - "openGuiSchematicProjects": "スキーマプロジェクトGUIを開きます", - "Open the Schematic Projects GUI": "スキーマプロジェクトGUIを開きます", - "openGuiSchematicVerifier": "現在選択されているスキーマ配置のためのスキーマ検証GUIを開きます", - "Open the Schematic Verifier GUI for the currently\nselected schematic placement": "現在選択されているスキーマ配置のためのスキーマ検証GUIを開きます", - "openGuiSelectionManager": "エリア選択マネージャーGUIを開きます", - "Open the Area Selection manager GUI": "エリア選択マネージャーGUIを開きます", - "openGuiSettings": "設定GUIを開きます", - "Open the Config GUI": "設定GUIを開きます", - "operationModeChangeModifier": "操作モードを迅速に変更するための修飾キー。\nこれを保持して「ツールアイテム」を持ちながらスクロールすると、モードを迅速に切り替えることができます。", - "The modifier key to quickly change the operation mode.\nHold this and scroll while holding the \"tool item\" to quickly cycle the mode.": "操作モードを迅速に変更するための修飾キー。\nこれを保持して「ツールアイテム」を持ちながらスクロールすると、モードを迅速に切り替えることができます。", - "pickBlockFirst": "最初のスキーマティックブロックをピックするためのキー\nレイでトレースされます。", - "A key to pick block the first\nschematic block ray traced to": "最初のスキーマティックブロックをピックするためのキー\nレイでトレースされます。", - "pickBlockLast": "最後のスキーマティックブロックをピックするためのキー\n最初(可能性のある)クライアントワールドの前に\nブロックがトレースされます。基本的に、これは\n既存のブロックに対して配置できるブロックを取得することになります。", - "A key to pick block the last schematic block\nray traced to, before the first (possible) client world\nblock ray traced to. Basically this would get\nyou the block you could place against an existing block.": "最後のスキーマティックブロックをピックするためのキー\n最初(可能性のある)クライアントワールドの前に\nブロックがトレースされます。基本的に、これは\n既存のブロックに対して配置できるブロックを取得することになります。", - "pickBlockToggle": "ピックブロックオプションをトグルするためのホットキーです。\nこれは、何かと干渉した場合に\nピックブロックキーを有効または無効にするための\n簡単な方法として提供されます。", - "A hotkey to toggle the pick block toggle option in the\nGeneric configs. This is provided as a quick way to enable\nor disable the pick block keys, if they interfere with something.": "ピックブロックオプションをトグルするためのホットキーです。\nこれは、何かと干渉した場合に\nピックブロックキーを有効または無効にするための\n簡単な方法として提供されます。", - "renderInfoOverlay": "ブロック情報オーバーレイをレンダリングするためのキー。\nキーが押されていないことを要求しないためにNONEを使用します。\nオーバーレイを完全に無効にするには、Visuals\nの設定で同様の名前のオプションを無効にします。", - "The key that enables rendering the block info overlay.\nUse NONE for not requiring a key to be pressed.\nDisable the similarly named option in the Visuals\nconfigs to disable the overlay completely.": "ブロック情報オーバーレイをレンダリングするためのキー。\nキーが押されていないことを要求しないためにNONEを使用します。\nオーバーレイを完全に無効にするには、Visuals\nの設定で同様の名前のオプションを無効にします。", - "renderOverlayThroughBlocks": "ブロックを通してオーバーレイをレンダリングするためのホットキー。\nこれは、Visualsでの「schematicOverlayRenderThroughBlocks」オプションが行うことと\n同じことを一時的に有効にするためのより迅速な方法です。", - "A hotkey to allow the overlays to render through blocks.\nThis is just a quicker way to temporarily enable\nthe same thing that the 'schematicOverlayRenderThroughBlocks' option in Visuals does.": "ブロックを通してオーバーレイをレンダリングするためのホットキー。\nこれは、Visualsでの「schematicOverlayRenderThroughBlocks」オプションが行うことと\n同じことを一時的に有効にするためのより迅速な方法です。", - "rerenderSchematic": "スキーマティックだけをリフレッシュ/再描画するためのホットキーであり、\nF3 + Aでバニラ地形もリフレッシュする必要はありません。", - "Hotkey to refresh/redraw only the schematic, instead of\nhaving to refresh the vanilla terrain too with F3 + A": "スキーマティックだけをリフレッシュ/再描画するためのホットキーであり、\nF3 + Aでバニラ地形もリフレッシュする必要はありません。", - "saveAreaAsInMemorySchematic": "現在のエリア選択をメモリ内スキーマティックとして保存します。", - "Save the current Area Selection as an in-memory Schematic": "現在のエリア選択をメモリ内スキーマティックとして保存します。", - "saveAreaAsSchematicToFile": "現在のエリア選択をファイルにスキーマティックとして保存します。", - "Save the current Area Selection as a Schematic to a file": "現在のエリア選択をファイルにスキーマティックとして保存します。", - "schematicRebuildBreakAllExcept": "「すべてを壊す」モード/機能を有効にするための修飾キー。\nスキーマティックリビルドツールモードで\nこのキーを保持してスキーマティックブロックをパンチすると、\nこのブロックを除くすべての他のブロックがスキーマティックから削除されます。", - "Modifier key to activate the \"break everything except\"\nmode/function in the Schematic Rebuild tool mode.\nBasically when you hold this key and punch a schematic block,\nall other blocks except this block will be removed from the schematic.": "「すべてを壊す」モード/機能を有効にするための修飾キー。\nスキーマティックリビルドツールモードで\nこのキーを保持してスキーマティックブロックをパンチすると、\nこのブロックを除くすべての他のブロックがスキーマティックから削除されます。", - "schematicRebuildBreakPlaceAll": "「すべての同一ブロックを壊す」機能を有効にするための修飾キー。\nスキーマティックリビルドツールモードで。", - "Modifier key to activate the \"break all identical blocks\"\nfunction in the Schematic Rebuild tool mode": "「すべての同一ブロックを壊す」機能を有効にするための修飾キー。\nスキーマティックリビルドツールモードで。", - "schematicRebuildBreakPlaceDirection": "スキーマティックリビルドツールモードで、\n方向/連続的な壊すまたは置く機能を有効にするための修飾キー。", - "Modifier key to activate the directional/continuous\nbreak or place function in the Schematic Rebuild tool mode": "スキーマティックリビルドツールモードで、\n方向/連続的な壊すまたは置く機能を有効にするための修飾キー。", - "schematicRebuildReplaceAll": "「すべての同一ブロックを置き換える」モード/機能を有効にするための修飾キー。\nスキーマティックリビルドツールモードで。", - "Modifier key to activate the \"replace all identical\"\nreplace mode/function in the Schematic Rebuild tool mode": "「すべての同一ブロックを置き換える」モード/機能を有効にするための修飾キー。\nスキーマティックリビルドツールモードで。", - "schematicRebuildReplaceDirection": "スキーマティックリビルドツールモードで、\n方向/連続的な置き換えモード/機能を有効にするための修飾キー。", - "Modifier key to activate the directional/continuous\nreplace mode/function in the Schematic Rebuild tool mode": "スキーマティックリビルドツールモードで、\n方向/連続的な置き換えモード/機能を有効にするための修飾キー。", - "schematicVersionCycleModifier": "バージョン管理ツールモードで、スキーマティックのバージョンをサイクリングするための修飾キーを保持する必要があります。", - "The modifier key to hold to be able to use the mouse wheel\nto cycle through the schematic versions in the Version Control tool mode": "バージョン管理ツールモードで、\nスキーマティックのバージョンをサイクリングするための修飾キーを保持する必要があります。", - "schematicVersionCycleNext": "バージョン管理ツールモードで、次のスキーマティックバージョンにサイクリングするためのホットキー。", - "schematicVersionCyclePrevious": "バージョンコントロールツールモードで次のスキーマティックバージョンに切り替えるためのホットキーです。", - "A hotkey to cycle to the next schematic version in the Version Control tool mode": "バージョンコントロールツールモードで次のスキーマティックバージョンに切り替えるためのホットキーです。", - "selectionGrow": "隣接または対角に接続されたブロックの周りに選択ボックスを自動的に成長させるためのアクションホットキーです。", - "The action hotkey to auto-grow the selection box around\nany adjacent/diagonally connected blocks": "隣接または対角に接続されたブロックの周りに選択ボックスを自動的に成長させるためのアクションホットキーです。", - "selectionGrowModifier": "スクロール中に選択ボックスを成長または縮小させるために保持する必要のある修飾キーです。", - "The modifier key to hold to grow or shrink\na selection box while scrolling": "スクロール中に選択ボックスを成長または縮小させるために保持する必要のある修飾キーです。", - "selectionNudgeModifier": "選択した領域またはコーナーを\n押し出すためにスクロール中に保持する必要がある修飾キーです。", - "The modifier key to hold while scrolling\nto nudge the selected area or corner": "選択した領域またはコーナーを\n押し出すためにスクロール中に保持する必要がある修飾キーです。", - "selectionModeCycle": "エリア選択モードで、コーナーとキューボイドの間でモードを切り替えます。", - "Change the mode between Corners and Cuboid\nin the Area Selection mode": "エリア選択モードで、コーナーとキューボイドの間でモードを切り替えます。", - "selectionShrink": "選択ボックスを縮小させて、どの側にも\n空のスペース(空のレイヤー)がないようにするためのアクションホットキーです。", - "The action hotkey to shrink the selection box so that there\nisn't any empty space (empty layers) on any side": "選択ボックスを縮小させて、どの側にも\n空のスペース(空のレイヤー)がないようにするためのアクションホットキーです。", - "setAreaOrigin": "現在のエリア選択のオリジンポイントをプレイヤーの位置に設定/移動します。", - "Set/move the origin point of the current\narea selection to the player's position": "現在のエリア選択のオリジンポイントをプレイヤーの位置に設定/移動します。", - "setSelectionBoxPosition1": "現在選択されているボックスの最初の位置を\nプレイヤーの位置に設定します。", - "Set the first position of the currently selected\nbox to the player's position": "現在選択されているボックスの最初の位置を\nプレイヤーの位置に設定します。", - "setSelectionBoxPosition2": "現在選択されているボックスの二番目の位置を\nプレイヤーの位置に設定します。", - "Set the second position of the currently selected\nbox to the player's position": "現在選択されているボックスの二番目の位置を\nプレイヤーの位置に設定します。", - "toggleAllRendering": "すべてのレンダリングをオン/オフに切り替えます。", - "Toggle all rendering on/off": "すべてのレンダリングをオン/オフに切り替えます。", - "toggleAreaSelectionBoxesRendering": "エリア選択ボックスのレンダリングをオン/オフに切り替えます。", - "Toggle Area Selection boxes rendering on/off": "エリア選択ボックスのレンダリングをオン/オフに切り替えます。", - "toggleSchematicRendering": "スキーマティックレンダリング(ブロック&オーバーレイ)をオン/オフに切り替えます。", - "Toggle schematic rendering (blocks & overlay) on/off": "スキーマティックレンダリング(ブロック&オーバーレイ)をオン/オフに切り替えます。", - "toggleInfoOverlayRendering": "情報オーバーレイのレンダリングをオン/オフに切り替えます(ホバーブロック情報用)。", - "Toggle the info overlay rendering (for hovered block info)": "情報オーバーレイのレンダリングをオン/オフに切り替えます(ホバーブロック情報用)。", - "toggleOverlayRendering": "ブロックオーバーレイのレンダリングをオン/オフに切り替えます。", - "Toggle the block overlay rendering on/off": "ブロックオーバーレイのレンダリングをオン/オフに切り替えます。", - "toggleOverlayOutlineRendering": "ブロックオーバーレイのアウトラインレンダリングをオン/オフに切り替えます。", - "Toggle the block overlay outline rendering on/off": "ブロックオーバーレイのアウトラインレンダリングをオン/オフに切り替えます。", - "toggleOverlaySideRendering": "ブロックオーバーレイのサイドレンダリングをオン/オフに切り替えます。", - "Toggle the block overlay side rendering on/off": "ブロックオーバーレイのサイドレンダリングをオン/オフに切り替えます。", - "togglePlacementBoxesRendering": "スキーマティックプレースメントボックスのレンダリングをオン/オフに切り替えます。", - "Toggle Schematic Placement boxes rendering on/off": "スキーマティックプレースメントボックスのレンダリングをオン/オフに切り替えます。", - "togglePlacementRestriction": "プレースメント制限モードを切り替えるためのホットキーです。", - "A hotkey to toggle the placement restriction mode": "プレースメント制限モードを切り替えるためのホットキーです。", - "toggleSchematicBlockRendering": "スキーマティックブロックのレンダリングをオン/オフに切り替えます。", - "Toggle schematic block rendering on/off": "スキーマティックブロックのレンダリングをオン/オフに切り替えます。", - "toggleTranslucentRendering": "半透明と不透明のゴーストブロックレンダリングを切り替えます。", - "Toggle translucent vs. opaque ghost block rendering": "半透明と不透明のゴーストブロックレンダリングを切り替えます。", - "toggleVerifierOverlayRendering": "スキーマティックバリファイアオーバーレイのレンダリングを切り替えます。", - "Toggle the Schematic Verifier overlay rendering": "スキーマティックバリファイアオーバーレイのレンダリングを切り替えます。", - "toolEnabledToggle": "\"ツール\"アイテムの機能をオン/オフに切り替えるためのキーの割り当て。", - "The keybind to toggle the \"tool\" item functionality on/off": "\"ツール\"アイテムの機能をオン/オフに切り替えるためのキーの割り当て。", - "toolPlaceCorner1": "\"ツール\"アイテムを保持している間にプライマリ/最初のコーナーを配置するために使用するボタンです。", - "The button to use while holding the \"tool\" item\nto place the primary/first corner": "\"ツール\"アイテムを保持している間にプライマリ/最初のコーナーを配置するために使用するボタンです。", - "toolPlaceCorner2": "\"ツール\"アイテムを保持している間に2番目のコーナーを配置するために使用するボタンです。", - "The button to use while holding the \"tool\" item\nto place the second corner": "\"ツール\"アイテムを保持している間に2番目のコーナーを配置するために使用するボタンです。", - "toolSelectElements": "\"ツール\"アイテムを保持している間にコーナーまたはボックスを選択するために使用するボタンです。", - "The button to use to select corners or boxes\nwhile holding the \"tool\" item": "\"ツール\"アイテムを保持している間にコーナーまたはボックスを選択するために使用するボタンです。", - "toolSelectModifierBlock1": "'toolSelectElements'ホットキーを使用する際に保持する必要のある修飾キー。\n一部のツールモードで使用するためのプライマリブロックタイプを選択します。", - "The modifier key to hold while using the 'toolSelectElements'\nhotkey, to select the primary block type to use in some of the tool modes": "'toolSelectElements'ホットキーを使用する際に保持する必要のある修飾キー。\n一部のツールモードで使用するためのプライマリブロックタイプを選択します。", - "toolSelectModifierBlock2": "'toolSelectElements'ホットキーを使用する際に保持する必要のある修飾キー。\n一部のツールモードで使用するためのセカンダリブロックタイプを選択します。", - "The modifier key to hold while using the 'toolSelectElements'\nhotkey, to select the secondary block type to use in some of the tool modes": "'toolSelectElements'ホットキーを使用する際に保持する必要のある修飾キー。\n一部のツールモードで使用するためのセカンダリブロックタイプを選択します。", - "selectionGrabModifier": "選択ボックスまたはコーナーを「つかむ」ために保持する修飾キーです。", - "The modifier key to hold to \"grab\" a selection\nbox or corner for cursor moving.": "選択ボックスまたはコーナーを「つかむ」ために保持する修飾キーです。", - "schematicOverlayModelSides": "スキーマティックオーバーレイがブロックモデルのクワッド/頂点を使用する場合は有効にしてください。\n従来のフルブロックオーバーレイの代わりに。", - "If enabled, then the schematic overlay will use the\nblock model quads/vertices instead of the\ntraditional full block overlay": "スキーマティックオーバーレイがブロックモデルのクワッド/頂点を使用する場合は有効にしてください。\n従来のフルブロックオーバーレイの代わりに。", - "unloadCurrentSchematic": "現在選択されているプレースメントのスキーマティックをアンロードします。\nそのため、それから作成されたすべてのプレースメントも削除されます。", - "Unloads the schematic of the currently selected placement,and thus also removes all placements created from it": "現在選択されているプレースメントのスキーマティックをアンロードします。\nそのため、それから作成されたすべてのプレースメントも削除されます。" -} \ No newline at end of file diff --git a/src/main/resources/assets/forgematica/lang/zh_cn.json b/src/main/resources/assets/forgematica/lang/zh_cn.json index a7851d4..ae13d1f 100644 --- a/src/main/resources/assets/forgematica/lang/zh_cn.json +++ b/src/main/resources/assets/forgematica/lang/zh_cn.json @@ -1,910 +1,3 @@ { - "litematica.config.generic.name.easyPlaceProtocolVersion": "简单放置协议", - "litematica.config.generic.name.pasteNbtRestoreBehavior": "NBT 迁移", - "litematica.config.generic.name.pasteReplaceBehavior": "粘贴替换模式", - "litematica.config.generic.name.placementReplaceBehavior": "粘贴替换模式优化", - "litematica.config.generic.name.placementRestrictionWarn": "放置限制警告", - "litematica.config.generic.name.selectionCornersMode": "选择选区模式", - "litematica.config.generic.name.customSchematicBaseDirectoryEnabled": "自定目录路径", - "litematica.config.generic.name.customSchematicBaseDirectory": "自定义原理图目录", - "litematica.config.generic.name.areaSelectionsPerWorld": "世界区域选择", - "litematica.config.generic.name.betterRenderOrder": "更好的渲染顺序", - "litematica.config.generic.name.changeSelectedCornerOnMove": "更改角点选择", - "litematica.config.generic.name.cloneAtOriginalPosition": "原位克隆", - "litematica.config.generic.name.commandDisableFeedback": "禁用命令反馈", - "litematica.config.generic.name.commandFillMaxVolume": "最大命令填充体积", - "litematica.config.generic.name.commandFillNoChunkClamp": "命令填充无区块限制", - "litematica.config.generic.name.commandLimitPerTick": "命令限速", - "litematica.config.generic.name.commandNameClone": "Clone 命名", - "litematica.config.generic.name.commandNameFill": "fill 命名", - "litematica.config.generic.name.commandNameSetblock": "Setblock 命名", - "litematica.config.generic.name.commandNameSummon": "Summon 命名", - "litematica.config.generic.name.commandTaskInterval": "任务间隔", - "litematica.config.generic.name.commandUseWorldEdit": "使用 WorldEdit 指令", - "litematica.config.generic.name.debugLogging": "调试日志", - "litematica.config.generic.name.datafixerMode": "数据修复模式", - "litematica.config.generic.name.datafixerDefaultSchema": "数据修复程序级别", - "litematica.config.generic.name.easyPlaceClickAdjacent": "easyPlaceClickAdjacent", - "litematica.config.generic.name.easyPlaceFirst": "简单放置最近块", - "litematica.config.generic.name.easyPlaceHoldEnabled": "简单放置状态", - "litematica.config.generic.name.easyPlaceMode": "简单放置模式", - "litematica.config.generic.name.easyPlacePostRewrite": "easyPlacePostRewrite", - "litematica.config.generic.name.easyPlaceSinglePlayerHandling": "单机精准放置", - "litematica.config.generic.name.easyPlaceSwapInterval": "简单放置延迟补正", - "litematica.config.generic.name.easyPlaceSwingHand": "简单放置时挥手", - "litematica.config.generic.name.easyPlaceVanillaReach": "简单放置原版修正", - "litematica.config.generic.name.entityDataSync": "实体数据同步", - "litematica.config.generic.name.entityDataSyncBackup": "实体数据同步备份", - "litematica.config.generic.name.executeRequireHoldingTool": "执行长按工具", - "litematica.config.generic.name.fixChestMirror": "大箱子修复", - "litematica.config.generic.name.fixRailRotation": "铁路旋转修复", - "litematica.config.generic.name.generateLowercaseNames": "命名建议", - "litematica.config.generic.name.highlightBlockInInventory": "物品栏高亮显示", - "litematica.config.generic.name.itemUsePacketCheckBypass": "物品使用校验", - "litematica.config.generic.name.layerModeFollowsPlayer": "图层显示跟随", - "litematica.config.generic.name.loadEntireSchematics": "加载全部投影", - "litematica.config.generic.name.materialListIgnoreState": "材料清单忽略状态", - "litematica.config.generic.name.pasteAlwaysUseFill": "粘贴总是使用 fill", - "litematica.config.generic.name.pasteIgnoreBlockEntitiesEntirely": "粘贴忽略实体方块", - "litematica.config.generic.name.pasteIgnoreBlockEntitiesFromFill": "fill 忽略实体方块", - "litematica.config.generic.name.pasteIgnoreCommandLimitWithNbtRestore": "粘贴忽略命令限制与 NBT 恢复", - "litematica.config.generic.name.pasteIgnoreEntities": "实体屏蔽", - "litematica.config.generic.name.pasteIgnoreInventories": "忽略粘贴库存", - "litematica.config.generic.name.pasteToMcFunctionFiles": "原理图转存", - "litematica.config.generic.name.pasteUseFillCommand": "使用 fill 填充", - "litematica.config.generic.name.pasteUsingCommandsInSp": "部分粘贴", - "litematica.config.generic.name.pasteUsingServux": "使用 Servux 粘贴", - "litematica.config.generic.name.pickBlockAvoidDamageable": "避免选择耐久物品", - "litematica.config.generic.name.pickBlockAvoidTools": "避免选择工具", - "litematica.config.generic.name.pickBlockEnabled": "方块抓取启用", - "litematica.config.generic.name.pickBlockIgnoreNbt": "pickBlockIgnoreNbt", - "litematica.config.generic.name.pickBlockShulkers": "潜影盒选块", - "litematica.config.generic.name.pickBlockableSlots": "快捷选择栏位", - "litematica.config.generic.name.placementRestriction": "放置限制", - "litematica.config.generic.name.renderMaterialListInGuis": "在 GUI 中显示材质列表", - "litematica.config.generic.name.renderThreadNoTimeout": "移除渲染超时", - "litematica.config.generic.name.serverNbtRequestRate": "服务器 NBT 请求速率", - "litematica.config.generic.name.signTextPaste": "告示牌文本", - "litematica.config.generic.name.toolItem": "工具", - "litematica.config.generic.name.toolItemEnabled": "启用工具项目", - "litematica.config.generic.name.toolItemComponents": "toolItemComponents", - "litematica.config.generic.name.unhideSchematicVCS": "不隐藏原理图版本控制系统", - "litematica.config.visuals.name.enableAreaSelectionBoxesRendering": "选区边框启用切换", - "litematica.config.visuals.name.enablePlacementBoxesRendering": "投影边框启用切换", - "litematica.config.visuals.name.enableRendering": "开启全部渲染", - "litematica.config.visuals.name.enableSchematicBlocksRendering": "投影方块显示", - "litematica.config.visuals.name.enableSchematicFluidRendering": "enableSchematicFluidRendering", - "litematica.config.visuals.name.enableSchematicOverlay": "渲染方块特征", - "litematica.config.visuals.name.enableSchematicRendering": "渲染投影", - "litematica.config.visuals.name.renderSchematicMaxThreads": "原理图渲染最大线程数", - "litematica.config.visuals.name.ghostBlockAlpha": "虚影方块透明度", - "litematica.config.visuals.name.ignoreExistingFluids": "忽略投影内液体", - "litematica.config.visuals.name.overlayReducedInnerSides": "减少内侧面渲染", - "litematica.config.visuals.name.placementBoxSideAlpha": "放置边框透明度", - "litematica.config.visuals.name.renderAreaSelectionBoxSides": "选择框边渲染", - "litematica.config.visuals.name.renderBlocksAsTranslucent": "方块半透明化", - "litematica.config.visuals.name.renderCollidingSchematicBlocks": "渲染重叠块", - "litematica.config.visuals.name.renderErrorMarkerConnections": "验证器错误连接", - "litematica.config.visuals.name.renderErrorMarkerSides": "验证器错误显示", - "litematica.config.visuals.name.renderPlacementBoxSides": "放置框渲染", - "litematica.config.visuals.name.renderPlacementEnclosingBox": "渲染封闭放置", - "litematica.config.visuals.name.renderPlacementEnclosingBoxSides": "渲染封闭放置边缘", - "litematica.config.visuals.name.renderTranslucentBlockInnerSides": "渲染投影方块", - "litematica.config.visuals.name.schematicOverlayEnableOutlines": "渲染框线", - "litematica.config.visuals.name.schematicOverlayEnableResorting": "原理图覆盖启用重新排序", - "litematica.config.visuals.name.schematicOverlayEnableSides": "渲染块面", - "litematica.config.visuals.name.schematicOverlayModelOutline": "覆盖模型框线", - "litematica.config.visuals.name.schematicOverlayModelSides": "覆盖模型块面", - "litematica.config.visuals.name.schematicOverlayOutlineWidth": "轮廓线宽度", - "litematica.config.visuals.name.schematicOverlayOutlineWidthThrough": "透视轮廓线宽度", - "litematica.config.visuals.name.schematicOverlayRenderThroughBlocks": "原理图透视", - "litematica.config.visuals.name.schematicOverlayTypeExtra": "原理图透视多余", - "litematica.config.visuals.name.schematicOverlayTypeMissing": "原理图透视缺失", - "litematica.config.visuals.name.schematicOverlayTypeWrongBlock": "原理图透视错误", - "litematica.config.visuals.name.schematicOverlayTypeWrongState": "原理图透视错位", - "litematica.config.visuals.name.schematicVerifierUseBlockModels": "原理图验证图片", - "litematica.config.info_overlays.name.blockInfoLinesAlignment": "方块提示位置", - "litematica.config.info_overlays.name.blockInfoOverlayAlignment": "方块信息位置", - "litematica.config.info_overlays.name.infoHudAlignment": "材料 HUD 位置", - "litematica.config.info_overlays.name.toolHudAlignment": "工具 HUD 位置", - "litematica.config.info_overlays.name.blockInfoLinesEnabled": "方块信息启用", - "litematica.config.info_overlays.name.blockInfoLinesFontScale": "方块信息大小", - "litematica.config.info_overlays.name.blockInfoLinesOffsetX": "方块信息横移", - "litematica.config.info_overlays.name.blockInfoLinesOffsetY": "方块信息纵移", - "litematica.config.info_overlays.name.blockInfoOverlayOffsetY": "方块提示位置纵移", - "litematica.config.info_overlays.name.blockInfoOverlayEnabled": "方块提示启用", - "litematica.config.info_overlays.name.infoHudMaxLines": "材料 HUD 行数", - "litematica.config.info_overlays.name.infoHudOffsetX": "材料 HUD 横移", - "litematica.config.info_overlays.name.infoHudOffsetY": "材料 HUD 纵移", - "litematica.config.info_overlays.name.infoHudScale": "材料 HUD 缩放", - "litematica.config.info_overlays.name.infoOverlaysTargetFluids": "流体信息穿透", - "litematica.config.info_overlays.name.materialListHudMaxLines": "材料 HUD 最大行数", - "litematica.config.info_overlays.name.materialListHudScale": "材料 HUD 缩放", - "litematica.config.info_overlays.name.statusInfoHud": "状态信息 HUD ", - "litematica.config.info_overlays.name.statusInfoHudAuto": "状态 HUD 自动显示", - "litematica.config.info_overlays.name.toolHudOffsetX": "工具 HUD 横移", - "litematica.config.info_overlays.name.toolHudOffsetY": "工具 HUD 纵移", - "litematica.config.info_overlays.name.toolHudScale": "工具 HUD 缩放", - "litematica.config.info_overlays.name.verifierErrorHilightAlpha": "验证错误方块高亮", - "litematica.config.info_overlays.name.verifierErrorHilightMaxPositions": "验证错误方块上限", - "litematica.config.info_overlays.name.verifierOverlayEnabled": "原理图验证渲染", - "litematica.config.info_overlays.name.warnDisabledRendering": "关闭告警信息", - "litematica.config.colors.name.areaSelectionBoxSideColor": "选区边框颜色", - "litematica.config.colors.name.hightlightBlockInInventoryColor": "高亮显示颜色", - "litematica.config.colors.name.materialListHudItemCountsColor": "材料数量颜色", - "litematica.config.colors.name.schematicRebuildBreakPlaceOverlayColor": "重建原理图删除指示器", - "litematica.config.colors.name.schematicRebuildBreakExceptPlaceOverlayColor": "重建原理图保留指示器", - "litematica.config.colors.name.schematicRebuildReplaceOverlayColor": "重建原理图替换指示器", - "litematica.config.colors.name.schematicOverlayColorExtra": "多余方块颜色", - "litematica.config.colors.name.schematicOverlayColorMissing": "缺失方块颜色", - "litematica.config.colors.name.schematicOverlayColorWrongBlock": "错误方块颜色", - "litematica.config.colors.name.schematicOverlayColorWrongState": "错误方向颜色", - "litematica.config.hotkeys.name.addSelectionBox": "添加选区", - "litematica.config.hotkeys.name.cloneSelection": "克隆选区", - "litematica.config.hotkeys.name.deleteSelectionBox": "删除选区", - "litematica.config.hotkeys.name.easyPlaceUseKey": "简单放置应用", - "litematica.config.hotkeys.name.easyPlaceToggle": "简单放置(模式切换)", - "litematica.config.hotkeys.name.executeOperation": "执行操作", - "litematica.config.hotkeys.name.invertGhostBlockRenderState": "调整投影方块渲染状态", - "litematica.config.hotkeys.name.invertOverlayRenderState": "调整投影线框渲染状态", - "litematica.config.hotkeys.name.layerModeNext": "下一渲染模式", - "litematica.config.hotkeys.name.layerModePrevious": "上一渲染模式", - "litematica.config.hotkeys.name.layerNext": "下一层", - "litematica.config.hotkeys.name.layerPrevious": "上一层", - "litematica.config.hotkeys.name.layerSetHere": "设置初始层", - "litematica.config.hotkeys.name.nudgeSelectionNegative": "正向推动选区", - "litematica.config.hotkeys.name.nudgeSelectionPositive": "反向推动选区", - "litematica.config.hotkeys.name.moveEntireSelection": "选区定位", - "litematica.config.hotkeys.name.openGuiAreaSettings": "区域编辑器", - "litematica.config.hotkeys.name.openGuiLoadedSchematics": "原理图加载", - "litematica.config.hotkeys.name.openGuiMainMenu": "主界面", - "litematica.config.hotkeys.name.openGuiMaterialList": "材料列表", - "litematica.config.hotkeys.name.openGuiPlacementSettings": "配置原理图放置", - "litematica.config.hotkeys.name.openGuiSchematicPlacements": "管理原理图放置", - "litematica.config.hotkeys.name.openGuiSchematicProjects": "原理图文件夹", - "litematica.config.hotkeys.name.openGuiSchematicVerifier": "原理图验证器", - "litematica.config.hotkeys.name.openGuiSelectionManager": "区域选择管理器", - "litematica.config.hotkeys.name.openGuiSettings": "配置菜单", - "litematica.config.hotkeys.name.operationModeChangeModifier": "模式选择", - "litematica.config.hotkeys.name.pickBlockFirst": "选择当前方块", - "litematica.config.hotkeys.name.pickBlockLast": "选择可放置方块", - "litematica.config.hotkeys.name.pickBlockToggle": "选择方块开关", - "litematica.config.hotkeys.name.renderInfoOverlay": "方块信息", - "litematica.config.hotkeys.name.renderOverlayThroughBlocks": "原理图透视渲染", - "litematica.config.hotkeys.name.rerenderSchematic": "重载渲染图", - "litematica.config.hotkeys.name.saveAreaAsInMemorySchematic": "将原理图存至内存", - "litematica.config.hotkeys.name.saveAreaAsSchematicToFile": "将原理图存至文件", - "litematica.config.hotkeys.name.schematicEditBreakAllExcept": "删除其他方块", - "litematica.config.hotkeys.name.schematicEditBreakPlaceAll": "删除同类方块", - "litematica.config.hotkeys.name.schematicEditBreakPlaceDirection": "同方块线性增删", - "litematica.config.hotkeys.name.schematicEditReplaceAll": "替换同类方块", - "litematica.config.hotkeys.name.schematicEditReplaceBlock": "替换其他方块", - "litematica.config.hotkeys.name.schematicEditReplaceDirection": "同方块线性替换", - "litematica.config.hotkeys.name.schematicPlacementRotation": "原理图放置旋转", - "litematica.config.hotkeys.name.schematicPlacementMirror": "原理图放置镜像", - "litematica.config.hotkeys.name.schematicVersionCycleModifier": "投影版本选择", - "litematica.config.hotkeys.name.schematicVersionCycleNext": "下一个投影版本", - "litematica.config.hotkeys.name.schematicVersionCyclePrevious": "上一个投影版本", - "litematica.config.hotkeys.name.selectionGrabModifier": "移动选区", - "litematica.config.hotkeys.name.selectionGrow": "扩大选区", - "litematica.config.hotkeys.name.selectionGrowModifier": "扩大选区调节器", - "litematica.config.hotkeys.name.selectionNudgeModifier": "位移调节器", - "litematica.config.hotkeys.name.selectionModeCycle": "选区模式选择", - "litematica.config.hotkeys.name.selectionShrink": "精简选框", - "litematica.config.hotkeys.name.setAreaOrigin": "设置初始角点", - "litematica.config.hotkeys.name.setSelectionBoxPosition1": "设置角点 1", - "litematica.config.hotkeys.name.setSelectionBoxPosition2": "设置角点 2", - "litematica.config.hotkeys.name.toggleAllRendering": "切换所有渲染", - "litematica.config.hotkeys.name.toggleAreaSelectionBoxesRendering": "区域选框渲染", - "litematica.config.hotkeys.name.toggleSchematicRendering": "投影方块渲染", - "litematica.config.hotkeys.name.toggleInfoOverlayRendering": "方块信息显示", - "litematica.config.hotkeys.name.toggleOverlayRendering": "投影方块显示", - "litematica.config.hotkeys.name.toggleOverlayOutlineRendering": "方块描边显示", - "litematica.config.hotkeys.name.toggleOverlaySideRendering": "方块表面显示", - "litematica.config.hotkeys.name.togglePlacementBoxesRendering": "范围框线显示", - "litematica.config.hotkeys.name.togglePlacementRestriction": "放置位置限制", - "litematica.config.hotkeys.name.toggleSchematicBlockRendering": "投影方块视觉", - "litematica.config.hotkeys.name.toggleSignTextPaste": "告示牌文本", - "litematica.config.hotkeys.name.toggleTranslucentRendering": "透明切换", - "litematica.config.hotkeys.name.toggleVerifierOverlayRendering": "验证覆盖", - "litematica.config.hotkeys.name.toolEnabledToggle": "工具切换", - "litematica.config.hotkeys.name.toolPlaceCorner1": "角点 1 放置", - "litematica.config.hotkeys.name.toolPlaceCorner2": "角点 2 放置", - "litematica.config.hotkeys.name.toolSelectElements": "区域选择", - "litematica.config.hotkeys.name.toolSelectModifierBlock1": "主方块选择", - "litematica.config.hotkeys.name.toolSelectModifierBlock2": "副方块选择", - "litematica.config.hotkeys.name.unloadCurrentSchematic": "卸载投影", - "litematica.config.generic.comment.easyPlaceProtocolVersion": "要使用的“精确放置协议”类型。\n- auto :在单人游戏中使用 v3,在多人游戏中默认仅使用Slabs only,\n除非服务器发送具有“carpet:hello”数据包的 Carpet 模组,在这种情况下,该服务器上使用 v2。\n- Version 3:仅由 Litematica 本身(在单人游戏中)或 Servux 支持。\n- Version 2:与具有 Carpet 模块的服务器兼容\n(skyrising 和 DeadlyMC 的 QuickCarpet,\n或 FabricCarpet 之外的 CarpetExtra。\n并且在这两种情况下,都需要在服务器上启用“accurateBlockPlacement”Carpet 规则)。\n- Slabs only:仅修复顶部半砖。与 Paper 服务器兼容。\n- 无:不修改坐标。", - "litematica.config.generic.comment.pasteNbtRestoreBehavior": "需要用何种方法尝试恢复方块 NBT 数据? \n- Place & Data Modify,会把带 NBT 的方块放在玩家附近后 \n 用 data modify 指令转换这些用 setblock 放的方块 \n- Place & Clone,会尝试放置带 NBT 方块在玩家附近然后 \n 用 clone 指令复制到最终位置 \n- Teleport & Place,会尝试 tp 到附近位置然后直接在 \n 正确的位置放下带 NBT 方块 \n请注意 Teleport & Place 方法现在不太好用甚至完全用不了。 \n建议的方法是 Place & Data Modify,然而要让这种方法生效 \n得降低粘贴命令限制到 1/tick 并将粘贴间隔增加到 \n1-4 个 tick 或者调别的什么东西 \n因此你只应当用这种方法粘贴需要迁移数据的重要方块。 \n例如,做了包含库存内容的原理图, \n然后在替换规则被设置为 None 的时候粘贴原理图。", - "litematica.config.generic.comment.pasteReplaceBehavior": "在粘贴原理图工具模式中替换现有块的方式", - "litematica.config.generic.comment.placementReplaceBehavior": "将方块添加到原理图世界时的方块替换行为。\n\n这允许使用重叠放置,而后处理的放置不会总是用空气覆盖先前的放置。\n另一方面,一些方块(如光方块)被视为空气,因此它们需要“全部”替换行为才能放置。", - "litematica.config.generic.comment.placementRestrictionWarn": "当简单放置模式或放置限制阻止玩家放置一个方块时,\n选择要显示的警告信息类型\n-物品栏模式:显示在物品栏上方\n-消息模式:橙色的弹出消息样式", - "litematica.config.generic.comment.selectionCornersMode": "要使用的区域选择模式(角点,或展开)", - "litematica.config.generic.comment.customSchematicBaseDirectoryEnabled": "如果启用该功能,则在「customSchematicBaseDirectory」\n中设置的目录路径将用为原理图的根目录,\n而不是正常的§1 .minecraft/schematics/ §r目录", - "litematica.config.generic.comment.customSchematicBaseDirectory": "如果启用了自定义原理图目录\n所要使用的原理图的根目录", - "litematica.config.generic.comment.areaSelectionsPerWorld": "使用每个世界或服务器根目录进行区域选择\n§6注意:直播时请勿关闭此功能,\n§6否则区域选择浏览器将显示服务器 IP\n§6在指南以及当前选择名称/路径中\n§6直到您再次更改当前目录和选择", - "litematica.config.generic.comment.betterRenderOrder": "If enabled, then the schematic rendering is done\nby injecting the different render call into the vanilla\nrendering code. This should result in better translucent block\nrendering/ordering and schematic blocks not getting rendered\nthrough the client world blocks/terrain.\nIf the rendering doesn't work (for example with Optifine),\ntry disabling this option.", - "litematica.config.generic.comment.changeSelectedCornerOnMove": "如果启用,那么在使用角点模式进行区域选择时\n区域选择的角总是被设置为最后选择的角\n(最后选择的角就是角点的框线与面都有颜色)\n(PS:虽然在实际使用过程当中没有太大影响)", - "litematica.config.generic.comment.cloneAtOriginalPosition": "如果启用,那么使用克隆快捷键时\n将在原来选择的区域位置克隆,\n而不是在玩家的当前位置", - "litematica.config.generic.comment.commandDisableFeedback": "如果启用,命令反馈将被自动禁用,\n然后在多人游戏中的粘贴,填充和删除操作\n(使用 /setblock 和 /fill命令)将没有反馈,\n即在仅仅在任务开始时禁用 sendCommandFeedback 游戏规则\n在任务结束时重新启用 sendCommandFeedback 游戏规则", - "litematica.config.generic.comment.commandFillMaxVolume": "可以通过命令填充/删除操作更改的每个单独框的最大的大小/体积。\n更大的区域/体积将被分割为多个命令去执行。\n但无论如何,所有区域在一开始也被分割为多个区块。", - "litematica.config.generic.comment.commandFillNoChunkClamp": "禁用将填充体积划分为子区块\n(在填充、替换和删除模式下)\n效果:填充、替换和删除操作在功能开启前是按子区块操作的\n开启功能候是直接批量删\n(样本较少没有看出是什么方式)", - "litematica.config.generic.comment.commandLimitPerTick": "当玩家在服务器上使用粘贴,填充和删除功能时,他们将使用 setblock 和 fill 指令,\n该变量控制每个游戏周期所发送的最大指令数。请注意,在使用 NBT 恢复功能时,\n粘贴功能可能会因几个命令而失败,这需要为每个块添加两个额外的指令。", - "litematica.config.generic.comment.commandNameClone": "在服务器的创造模式中使用 clone 命令时要使用的 clone 命令名\n如果 NBT 迁移选项设置为「Place & Clone」,则当前功能仅使用粘贴。", - "litematica.config.generic.comment.commandNameFill": "在服务器的创造模式中使用 fill 命令时要使用的 fill 命令名", - "litematica.config.generic.comment.commandNameSetblock": "在服务器的创造模式中使用 setblock 命令时要使用的\nsetblock 命令名,即在世界上粘贴原理图功能", - "litematica.config.generic.comment.commandNameSummon": "在服务器的创造模式中使用Summon 命令时要使用的\nSummon 命令名,即在世界上粘贴原理图功能", - "litematica.config.generic.comment.commandTaskInterval": "游戏中的粘贴,填充和删除任务的 tick 间隔。\ncommandLimitPerTick 配置设置每次执行发送的命令的最大数量,\n这个变量配置下一次执行命令之前的游戏时间间隔。", - "litematica.config.generic.comment.commandUseWorldEdit": "如果启用该功能,而不是使用已经配置的 setblock 或 fill 命令,\n则使用 World Edit 的 //pos1、//pos2 和 //set 命令。\n注意,使用 WorldEdit 指令会比正常粘贴大约慢 3 倍\n且由于每 tick 的命令限制,比起使用普通命令,\n我们需要每个块或区域执行多个命令(//pos1 //pos2 //set)。\n§6警告:如果使用 WorldEdit 指令或 fill 命令而不是单独的 setblock 命令!\n§6粘贴与替换功能将无法使用!\n因此,如果您有权限运行它们,建议使用普通命令。\n另一件让你在某些情况下更喜欢使用 WE 命令的事情是,\n如果服务器没有 Carpet mod 所导致的「/Carpet fillUpdates false」\n规则不可用时,可以使用该功能防止方块更新。", - "litematica.config.generic.comment.debugLogging": "在游戏控制台中启用一些调试日志消息,用于调试某些问题或崩溃。", - "litematica.config.generic.comment.datafixerMode": "可配置的数据修复程序级别应用于加载的原理图。此选项可以通过绕过原始数据修复程序来提高加载原理图的性能,\n但如果禁用它也可能导致严重的数据丢失。", - "litematica.config.generic.comment.datafixerDefaultSchema": "Vanilla 数据修复程序的默认架构值\n\n用于调整最低可能值,以及在加载的架构不包含此信息时使用的值。\n\n§6警告:此设置应在 Litematica 开发人员(例如 masa 本人)的指导下使用。\n§6如有疑问,请保留 Minecraft 1.12 的默认值。", - "litematica.config.generic.comment.easyPlaceClickAdjacent": "Uses the Clicks Adjacent code from 1.12.2 ornithe.\nThis only works with §a\"easyPlacePostRewrite\"§r enabled.", - "litematica.config.generic.comment.easyPlaceFirst": "这将使得简单放置模式放置你首先看到的方块\n而不是最远的方块,设置为关闭将可以放置多层\n因为是由远到近放置。", - "litematica.config.generic.comment.easyPlaceHoldEnabled": "启用后,您可以按住使用键\n根据投影以放置它们,\n而无需单独点击每个方块", - "litematica.config.generic.comment.easyPlaceMode": "启用后,只需根据投影以放置它们", - "litematica.config.generic.comment.easyPlacePostRewrite": "When enabled, the Easy Place mode uses the\n\"Post-Rewrite\" code from 1.12.2 ornithe.\n§6WARNING! THIS IS EXPERIMENTAL", - "litematica.config.generic.comment.easyPlaceSinglePlayerHandling": "如果启用该功能,那么投影将在单人游戏中处理所谓的「地毯精确放置协议」。\n如果你打算在单人游戏中使用简单放置,建议保持启用。", - "litematica.config.generic.comment.easyPlaceSwapInterval": "简单放置模式在背包和手中块交换后等待的间隔(以毫秒为单位)。有效避免因为高 ping 放置错误的方块。", - "litematica.config.generic.comment.easyPlaceSwingHand": "使用简单放置时挥动玩家的手", - "litematica.config.generic.comment.easyPlaceVanillaReach": "如果启用,手长将从 6 改为 4.5\n服务器便不会拒绝放置方块", - "litematica.config.generic.comment.entityDataSync": "使用 Servux 的实体数据同步协议\n从服务器获取实体数据", - "litematica.config.generic.comment.entityDataSyncBackup": "当 Servux 不可用时,请使用 Vanilla NBT 查询方法。\n此方法需要管理员权限", - "litematica.config.generic.comment.executeRequireHoldingTool": "需要持有已启用的工具项以使 executeOperation 热键工作", - "litematica.config.generic.comment.fixChestMirror": "修复投影中破碎的大箱子", - "litematica.config.generic.comment.fixRailRotation": "如果为真,那么就对轨道中常见的 Bug 进行了修正,\n即南北方向和东西方向的直线轨道 180 度旋转时逆时针旋转90度,而不是 >_>\n应该是对于轨道显示做了调整", - "litematica.config.generic.comment.generateLowercaseNames": "如果启用,则默认情况下建议的原理图名称将为小写并使用下划线而不是空格", - "litematica.config.generic.comment.highlightBlockInInventory": "当启用时,背包内高亮显示指向原理图的方块\n(无论是物品栏还是潜影盒)", - "litematica.config.generic.comment.itemUsePacketCheckBypass": "该功能绕过了 1.18.2 中新添加的距离/坐标校验。\n该校验破坏了「精确放置协议」的功能\n并导致任何带有旋转(或其他属性)\n请求放置的方块变成了幽灵方块\n基本上没有必要禁用这个校验。\n因为在 1.18.2 之前,这个校验甚至都不存在", - "litematica.config.generic.comment.layerModeFollowsPlayer": "如果开启,则渲染层跟随玩家,但是只能跟随当前高度", - "litematica.config.generic.comment.loadEntireSchematics": "如果启用,那么整个投影总是同时加载。如果为关闭,则只加载客户端视距内的部分。", - "litematica.config.generic.comment.materialListIgnoreState": "启用后,将忽略确切的方块状态,仅需要匹配方块类型。", - "litematica.config.generic.comment.pasteAlwaysUseFill": "这将会强制使用 fill 命令(而不是 setblock),即使是单个方块", - "litematica.config.generic.comment.pasteIgnoreBlockEntitiesEntirely": "如果启用,则在多人游戏中通过基于命令的粘贴根本不粘贴实体方块。\n如果你想在第二遍中对箱子等方块使用 NBT-restore(NBT 迁移)选项,\n这使您可以更轻松地在第二遍中粘贴,\n然而这通常需要更慢的粘贴速度/命令速率。", - "litematica.config.generic.comment.pasteIgnoreBlockEntitiesFromFill": "如果启用,那么在使用填充命令(fill)粘贴时将忽略所有实体方块。\n这使得实体方块可以单独粘贴,如果想要使用 NBT-restore(NBT 迁移)恢复选项,\n这是必需的。", - "litematica.config.generic.comment.pasteIgnoreCommandLimitWithNbtRestore": "如果启用,则在粘贴带有启用了 NBT-restore(NBT 迁移)选项的实体方块时将忽略命令限制。\n 这似乎以某种方式解决了一个问题,即NBT-restore(NBT 迁移)会因许多命令速率低的方块而失败。", - "litematica.config.generic.comment.pasteIgnoreEntities": "如果启用,则粘贴功能将不会粘贴任何实体", - "litematica.config.generic.comment.pasteIgnoreInventories": "粘贴示意图时不要粘贴库存内容\n(大概指箱子内物品)", - "litematica.config.generic.comment.pasteToMcFunctionFiles": "如果启用,则不是将实际的原理图粘贴到世界,\n它们将作为 setblock 命令写入文本文件。", - "litematica.config.generic.comment.pasteUseFillCommand": "如果启用了该功能,那么粘贴时不是只使用单独的 /setblock 命令,\n而是基于命令的粘贴操作(比如在服务器后台使用)会尝试对\n同一块的任何连续区域使用 /fill 命令。这在单人游戏中没有效果,\n因为 Mod 直接在服务器的世界中设置方块,而且根本不使用命令。", - "litematica.config.generic.comment.pasteUsingCommandsInSp": "这是一个临时的方法,可以在单人游戏中基于命令粘贴,\n这使得在单人游戏中可以使用部分渲染层粘贴原理图,\n但这目前不适用于单人游戏通常使用的粘贴方式。", - "litematica.config.generic.comment.pasteUsingServux": "使用 Servux 将原理图直接粘贴到服务器。\n此方法比传统的基于命令的方法快得多,\n并且支持恢复实体 NBT 数据。", - "litematica.config.generic.comment.pickBlockAvoidDamageable": "在开启简单放置后,避免方块替换掉任何在快捷栏中\n有耐久度的物品。§d例如:打火石,毛刷等§r", - "litematica.config.generic.comment.pickBlockAvoidTools": "在开启简单放置后,避免方块替换掉任何在快捷栏中的工具。", - "litematica.config.generic.comment.pickBlockEnabled": "启用原理图世界抓取方块热键。\n还有一个用于切换此选项的热键...o.o", - "litematica.config.generic.comment.pickBlockIgnoreNbt": "Enables the \"pickBlockIgnoreNbt\" setting for\nEasy Place Post-Rewrite from 1.12.2 ornithe.", - "litematica.config.generic.comment.pickBlockShulkers": "如果启用,那么如果选取方块物品没有在玩家背包找到\n那么就切换出包含他的潜影盒", - "litematica.config.generic.comment.pickBlockableSlots": "允许用于投影原理图挑选的快捷栏\n(12345 大概是整个背包加上副手)", - "litematica.config.generic.comment.placementRestriction": "启用后,仅当持有目标位置的正确物品时才可使用使用键,\n并且目标位置在原理图中必须有一个缺失的块", - "litematica.config.generic.comment.renderMaterialListInGuis": "材质列表是否应该在 GUI 中呈现", - "litematica.config.generic.comment.renderThreadNoTimeout": "从渲染工作线程中移除超时。\n如果你在处理大型原理图的时候渲染的很不流畅,\n试着禁用它。但是在某些情况下,它会使示意图的渲染速度慢很多。", - "litematica.config.generic.comment.serverNbtRequestRate": "限制服务器实体数据同步器的请求速率", - "litematica.config.generic.comment.signTextPaste": "该功能能在原理图的覆盖层显示投影中告示牌的内容\n§d这样就不用背了捏~", - "litematica.config.generic.comment.toolItem": "作为用于选择的工具,虽然默认是木棍\n(§3但是其实你想拿末影龙头也是可以的hhh§r)", - "litematica.config.generic.comment.toolItemEnabled": "如果启用该选项,那么你可以使用工具进行操作\n如果你关了的话,那它就是一根朴素的木棍\n§6如果你没有改默认工具的话——ZMDF§r", - "litematica.config.generic.comment.toolItemComponents": "A Data Components-aware version of toolItem.\nSet to \"empty\" to disable.\nThe syntax accepted is the same as the \"/give\" command.", - "litematica.config.generic.comment.unhideSchematicVCS": "取消隐藏 Schematic VCS(版本控制系统)菜单按钮,\n并启用热键和 VCS 功能。(这之前被称为原理图项目。)\n\n一般来说,你不应该使用这个功能,\n除非你真的知道它是如何工作的。\n它在一定程度上改变了区域选择、放置和粘贴的工作方式,\n特别是在粘贴时还存在一个区域删除操作。\n\n基本上,这个功能是为更新、修改原理图而设计的,\n它允许你更容易地为同一版本原理图创建多个版本/快照,\n也可以通过先删除当前版本,\n然后粘贴下一个版本来在不同版本之间切换。", - "litematica.config.visuals.comment.enableAreaSelectionBoxesRendering": "该选项可以切换是否显示选区的边框", - "litematica.config.visuals.comment.enablePlacementBoxesRendering": "该选项可以切换是否显示投影区域的边框", - "litematica.config.visuals.comment.enableRendering": "主渲染切换选项,该选项可切换所有渲染是否开启", - "litematica.config.visuals.comment.enableSchematicBlocksRendering": "该选项可以切换是否在投影内显示方块的贴图\n(开启后可以更好辨识出投影缺失的是什么方块)", - "litematica.config.visuals.comment.enableSchematicFluidRendering": "Enables schematic fluid rendering.\nDisabling this allows you to see the blocks and overlays easier.\nThis also culls the overlay where the Fluid was.", - "litematica.config.visuals.comment.enableSchematicOverlay": "该选项可以切换是否在投影内使用边框表示未放置的方块\n未被放置的方块虽然没有边框,但是仍可以显示(显示状态由透明度决定)", - "litematica.config.visuals.comment.enableSchematicRendering": "该选项可以切换是否显示投影原理图", - "litematica.config.visuals.comment.renderSchematicMaxThreads": "最大原理图世界渲染线程大小\n这将直接影响整体多线程性能\n§6谨慎使用!!这仅在您离开游戏并重新加入后才会生效。\n§6", - "litematica.config.visuals.comment.ghostBlockAlpha": "虚影方块的 alpha 值,当它们渲染为半透明时\n§6注意:§7您还需要单独启用方块半透明化,\n使用「renderBlocksAsTranslucent」选项!", - "litematica.config.visuals.comment.ignoreExistingFluids": "如果启用该选项,原理图中如果有空气或其他块,\n那么任何的「额外块」或「错误块」的液体将被忽略。\n基本上,这使得在水下建造东西少了很多麻烦。\n注意:你很可能还想同时启用「renderCollidingSchematicBlocks(渲染重叠块)」,以允许块在流体中渲染。", - "litematica.config.visuals.comment.overlayReducedInnerSides": "如果启用,可以使得投影内方块接触的侧面不被显示\n有两个优点\n-1. 首先减少了投影的渲染工作量\n-2. 在投影内部时,内部的杂色会变淡\n(§6虽然默认是关闭但建议开启-ZMDF§r)", - "litematica.config.visuals.comment.placementBoxSideAlpha": "子区域边框的透明度(§2没有找到实际的功能体现——ZMDF§r)", - "litematica.config.visuals.comment.renderAreaSelectionBoxSides": "该选项可以选择是否开启选区边框显示(渲染)", - "litematica.config.visuals.comment.renderBlocksAsTranslucent": "如果启用该选项,投影原理图内的方块展示将由\n不透明变为半透明状态", - "litematica.config.visuals.comment.renderCollidingSchematicBlocks": "如果启用该选项,那么当客户端世界中存在错误的方块时\n投影原理图内的方块仍然会进行显示\n当你试图在一些有水或着雪层的地方建造时。\n(就是无视雪片与流动液体的意思,大概)", - "litematica.config.visuals.comment.renderErrorMarkerConnections": "启用该选项时,当用户在使用验证器验证原理图是否正确后,\n当你在验证器内选中了错误方块\n错误方块间会有连线。\n(这个功能有部分bug,但是作者应该是为了方便错误方块的定位)", - "litematica.config.visuals.comment.renderErrorMarkerSides": "关闭该选项时,用户在使用验证器验证原理图是否正确后,\n当你在验证器内选中了错误方块\n它的展示方式将不仅仅标明颜色,\n还会标明它的贴图(便于用户知道错误的方块是什么)", - "litematica.config.visuals.comment.renderPlacementBoxSides": "如果启用该选项,则放置区域会显示侧面颜色\n(§6就是侧面将显示默认的选区颜色,影响视线——ZMDF§r)", - "litematica.config.visuals.comment.renderPlacementEnclosingBox": "如果启用,则在投影中的所有子区域周围呈现一个封闭框", - "litematica.config.visuals.comment.renderPlacementEnclosingBoxSides": "如果启用,则在投影中的所有子区域周围的封闭框会显示一个完整的面", - "litematica.config.visuals.comment.renderTranslucentBlockInnerSides": "如果启用该选项,则投影内所有方块的面将成为透明\n(这将使得你可以看透很多方块,嗯没错,看透。)", - "litematica.config.visuals.comment.schematicOverlayEnableOutlines": "如果启用该选项,投影原理图方块边框的框线将会显示", - "litematica.config.visuals.comment.schematicOverlayEnableResorting": "为原理图块覆盖启用半透明排序", - "litematica.config.visuals.comment.schematicOverlayEnableSides": "如果启用该选项,投影原理图方块的块面将会显示", - "litematica.config.visuals.comment.schematicOverlayModelOutline": "如果启用,那么示意图覆盖将使用块模型的四块/顶点,而不是传统的全块覆盖\n(主要针对不完整方块)", - "litematica.config.visuals.comment.schematicOverlayModelSides": "如果启用,则原理图覆盖层将使用块模型四边形/顶点\n,而不是传统的全块覆盖层", - "litematica.config.visuals.comment.schematicOverlayOutlineWidth": "投影原理图当中方块轮廓线的宽度设置", - "litematica.config.visuals.comment.schematicOverlayOutlineWidthThrough": "投影原理图当中透视方块轮廓线的宽度设置", - "litematica.config.visuals.comment.schematicOverlayRenderThroughBlocks": "如果启用,那么原理图将可透视观察。\n这可能只在您完成构建并希望更容易地看到任何错误时才有用", - "litematica.config.visuals.comment.schematicOverlayTypeExtra": "当开启了原理图透视后,关闭该选项将不再显示多余的方块", - "litematica.config.visuals.comment.schematicOverlayTypeMissing": "当开启了原理图透视后,关闭该选项将不再显示缺失的方块", - "litematica.config.visuals.comment.schematicOverlayTypeWrongBlock": "当开启了原理图透视后,关闭该选项将不再显示错误的方块", - "litematica.config.visuals.comment.schematicOverlayTypeWrongState": "当开启了原理图透视后,关闭该选项将不再显示错位的方块", - "litematica.config.visuals.comment.schematicVerifierUseBlockModels": "当你使用原理图验证的时候,如果你开启了该选项,\n那么原理图验证界面当中,只会存在文字,而并非方块贴图", - "litematica.config.info_overlays.comment.blockInfoLinesAlignment": "方块信息弹窗的显示位置", - "litematica.config.info_overlays.comment.blockInfoOverlayAlignment": "方块信息在屏幕位置调整的选项", - "litematica.config.info_overlays.comment.infoHudAlignment": "材料信息位置的调整\n(其实和材料有关的 HUD 显示都是这玩意)", - "litematica.config.info_overlays.comment.toolHudAlignment": "当你使用木棍时,将工具的 HUD 选择区域定位与该位置", - "litematica.config.info_overlays.comment.blockInfoLinesEnabled": "如果开启该功能,MiniHUD 将显示方块信息\n默认位于屏幕右上角", - "litematica.config.info_overlays.comment.blockInfoLinesFontScale": "默认在右上角的方块信息的字体大小控制", - "litematica.config.info_overlays.comment.blockInfoLinesOffsetX": "方块信息与边框的横向偏移量(横向距离)", - "litematica.config.info_overlays.comment.blockInfoLinesOffsetY": "方块信息与边框的纵向偏移量(纵向距离)", - "litematica.config.info_overlays.comment.blockInfoOverlayOffsetY": "方块信息弹窗的纵向偏移量", - "litematica.config.info_overlays.comment.blockInfoOverlayEnabled": "启用方块信息弹窗,其功能为图形显示方块贴图\n主要是可以在投影放错时,为你提供投影原本方块的信息。", - "litematica.config.info_overlays.comment.infoHudMaxLines": "控制材料HUD的最大行数", - "litematica.config.info_overlays.comment.infoHudOffsetX": "工具 HUD 与边框的纵向偏移量(纵向距离)", - "litematica.config.info_overlays.comment.infoHudOffsetY": "材料 HUD 与边框的纵向偏移量(纵向距离)", - "litematica.config.info_overlays.comment.infoHudScale": "控制材料HUD的缩放大小", - "litematica.config.info_overlays.comment.infoOverlaysTargetFluids": "启用后,方块信息叠加时\n将能够焦点定位到流体块而不是穿过它们", - "litematica.config.info_overlays.comment.materialListHudMaxLines": "控制材料 HUD 的最大行数", - "litematica.config.info_overlays.comment.materialListHudScale": "控制材料 HUD 的缩放大小", - "litematica.config.info_overlays.comment.statusInfoHud": "启用状态信息的显示,该显示内容默认位于左下角\n其内容包含当前渲染层的状态与层数\n当然,这是在手持非木棍的情况下显示的。", - "litematica.config.info_overlays.comment.statusInfoHudAuto": "允许自动暂时开启状态信息 HUD 比如当需要时,\n例如当创建一个位置或者渲染禁用时", - "litematica.config.info_overlays.comment.toolHudOffsetX": "信息 HUD 与屏幕边缘的 X 偏移量", - "litematica.config.info_overlays.comment.toolHudOffsetY": "信息 HUD 与屏幕边缘的 Y 偏移量", - "litematica.config.info_overlays.comment.toolHudScale": "控制工具 HUD 的文本缩放大小", - "litematica.config.info_overlays.comment.verifierErrorHilightAlpha": "在打开原理图验证程序对当前放置进行验证后,\n点击验证当中出现问题的方块,\n错误的方块将在透视状态下所产生的亮度显示", - "litematica.config.info_overlays.comment.verifierErrorHilightMaxPositions": "在打开原理图验证程序对当前放置进行验证后,\n点击验证当中出现问题的方块,\n错误的方块在透视状态下的最大数量显示", - "litematica.config.info_overlays.comment.verifierOverlayEnabled": "启用原理图验证渲染", - "litematica.config.info_overlays.comment.warnDisabledRendering": "当加载一个新的示意图或创建一个新的位置时,\n是否应该显示关于该层的一些警告消息", - "litematica.config.colors.comment.areaSelectionBoxSideColor": "选区未被选中时边框的颜色", - "litematica.config.colors.comment.hightlightBlockInInventoryColor": "在物品栏中高亮显示目标方块的颜色", - "litematica.config.colors.comment.materialListHudItemCountsColor": "材料列表开启 HUD 后的游戏内材料数量的颜色", - "litematica.config.colors.comment.schematicRebuildBreakPlaceOverlayColor": "在重建原理图模式的批量删除当中,\n在方向选择器上的指示器颜色", - "litematica.config.colors.comment.schematicRebuildBreakExceptPlaceOverlayColor": "在重建原理图模式当中,选择保留方块的指示器颜色", - "litematica.config.colors.comment.schematicRebuildReplaceOverlayColor": "在重建原理图模式的批量替换当中,\n在方向选择器上的指示器颜色", - "litematica.config.colors.comment.schematicOverlayColorExtra": "多余方块在投影内显示的颜色", - "litematica.config.colors.comment.schematicOverlayColorMissing": "缺失方块在投影内显示的颜色", - "litematica.config.colors.comment.schematicOverlayColorWrongBlock": "错误方块在投影内显示的颜色", - "litematica.config.colors.comment.schematicOverlayColorWrongState": "方块方向错误在投影内显示的颜色", - "litematica.config.hotkeys.comment.addSelectionBox": "在当前位置添加一个新的选区(位置 1)", - "litematica.config.hotkeys.comment.cloneSelection": "快速克隆当前选定的区域,基本上是创建了一个储存中的示意图\n然后在当前位置创建一个示意图并选择它,并将工具模式切换为粘贴。", - "litematica.config.hotkeys.comment.deleteSelectionBox": "删除当前选区", - "litematica.config.hotkeys.comment.easyPlaceUseKey": "当启用简单放置时,此键用于放置方块", - "litematica.config.hotkeys.comment.easyPlaceToggle": "允许玩家快速的切换简单放置的模式。", - "litematica.config.hotkeys.comment.executeOperation": "在填充、替换、粘贴原理图等模式中,\n以当前选择模式或放置方式执行当前选择的工具操作", - "litematica.config.hotkeys.comment.invertGhostBlockRenderState": "当按住该按键后,对投影的方块渲染效果是否开启进行调整。", - "litematica.config.hotkeys.comment.invertOverlayRenderState": "当按住该按键后,对投影的线框渲染效果是否开启进行调整", - "litematica.config.hotkeys.comment.layerModeNext": "切换为下一个渲染模式", - "litematica.config.hotkeys.comment.layerModePrevious": "切换为上一个渲染模式", - "litematica.config.hotkeys.comment.layerNext": "将渲染的图层向上移动一层", - "litematica.config.hotkeys.comment.layerPrevious": "将渲染的图层向下移动一层", - "litematica.config.hotkeys.comment.layerSetHere": "将渲染层的初始位置设定为玩家当前位置", - "litematica.config.hotkeys.comment.nudgeSelectionNegative": "向面向方向前移选区位置,其效果与 Alt + 鼠标滚轮效果类似", - "litematica.config.hotkeys.comment.nudgeSelectionPositive": "向面向方向后移选区位置,其效果与 Alt + 鼠标滚轮效果类似", - "litematica.config.hotkeys.comment.moveEntireSelection": "移动整个选区至玩家所在的当前位置", - "litematica.config.hotkeys.comment.openGuiAreaSettings": "打开当前选区的区域设置 GUI 界面", - "litematica.config.hotkeys.comment.openGuiLoadedSchematics": "打开原理图加载的 GUI 界面", - "litematica.config.hotkeys.comment.openGuiMainMenu": "打开Litematica的主界面菜单", - "litematica.config.hotkeys.comment.openGuiMaterialList": "打开当前选择的投影材料列表 GUI ", - "litematica.config.hotkeys.comment.openGuiPlacementSettings": "打开当前选区或其子区域的配置原理图放置 GUI ", - "litematica.config.hotkeys.comment.openGuiSchematicPlacements": "打开管理原理图放置 GUI ", - "litematica.config.hotkeys.comment.openGuiSchematicProjects": "打开原理图工程文件夹 GUI ", - "litematica.config.hotkeys.comment.openGuiSchematicVerifier": "打开当前选定的原理图的示意图验证器 GUI ", - "litematica.config.hotkeys.comment.openGuiSelectionManager": "打开区域选择管理器的 GUI ", - "litematica.config.hotkeys.comment.openGuiSettings": "打开投影配置菜单的 GUI ", - "litematica.config.hotkeys.comment.operationModeChangeModifier": "快速修改模式,当玩家手持木棍时。\n玩家可以按住该按键滚动滚轮快速调整模式。", - "litematica.config.hotkeys.comment.pickBlockFirst": "该按键可以选中指向的表面方块,\n并将将其切换至手中", - "litematica.config.hotkeys.comment.pickBlockLast": "该按键可以选中当前可以放置的方块\n怎么解释呢?就是说,这个键会选择你现在可以放置的最远的方块,\n当然这得看你对准了哪个面", - "litematica.config.hotkeys.comment.pickBlockToggle": "在通用配置当中快速关闭或开启方块选择的快捷键\n这是一种快速切换其模式的方法。\n如果它们产生了什么干扰(比如功能冲突)", - "litematica.config.hotkeys.comment.renderInfoOverlay": "在方块放置后,如果是错误的放置,会提示投影原本的方块信息\n如果是正确的,投影会显示当前方块的信息", - "litematica.config.hotkeys.comment.renderOverlayThroughBlocks": "该快捷键将高亮显示投影原理图未完成部分\n高亮的部分会穿透显示,无视方块遮挡。", - "litematica.config.hotkeys.comment.rerenderSchematic": "使用该快捷键重载原理图,而不需要使用 F3 + A 刷新区块", - "litematica.config.hotkeys.comment.saveAreaAsInMemorySchematic": "将当前选中区域的原理图保存于内存当中", - "litematica.config.hotkeys.comment.saveAreaAsSchematicToFile": "将当前选中区域的原理图保存于文件当中", - "litematica.config.hotkeys.comment.schematicEditBreakAllExcept": "在重建原理图的模式当中\n按住该键可使得玩家在原理图当中仅保留指定的选中方块\n这也就意味着除了你选中的方块,其他投影方块将被删除。", - "litematica.config.hotkeys.comment.schematicEditBreakPlaceAll": "在重建原理图模式当中\n按住该按键可以删除所有同类方块", - "litematica.config.hotkeys.comment.schematicEditBreakPlaceDirection": "在重建原理图的模式当中\n按住该键可添加或删除原理图内指定方向的相同方块\n如果使用添加,该方块会填满该方向的所有空位", - "litematica.config.hotkeys.comment.schematicEditReplaceAll": "在重建原理图的模式当中\n按住该键可使用手中方块替换原理图内的相同方块", - "litematica.config.hotkeys.comment.schematicEditReplaceBlock": "在重建原理图的模式当中\n按住该键可使用手中方块替换原理图内的相同类型方块\n然而这个类型很模糊", - "litematica.config.hotkeys.comment.schematicEditReplaceDirection": "在重建原理图的模式当中\n按住该键可使用手中方块替换原理图内指定方向的相同方块", - "litematica.config.hotkeys.comment.schematicPlacementRotation": "放置时原理图顺时针90度旋转", - "litematica.config.hotkeys.comment.schematicPlacementMirror": "放置时原理图镜像翻转", - "litematica.config.hotkeys.comment.schematicVersionCycleModifier": "按住该键滚动滚轮可以选择投影的版本", - "litematica.config.hotkeys.comment.schematicVersionCycleNext": "在版本控制工具模式下,循环到上一个投影版本的热键", - "litematica.config.hotkeys.comment.schematicVersionCyclePrevious": "在版本控制工具模式下,循环到下一个原理图版本的热键", - "litematica.config.hotkeys.comment.selectionGrabModifier": "按住快捷键,抓取选择框角点,\n移动选区(模式 7_移动)", - "litematica.config.hotkeys.comment.selectionGrow": "点击快捷键后,在任何相邻的/对角线连接的块周围自动扩大选区范围\n(§4然而它直接选中了我能看到的整个地图 384*72*384 ——来自 ZMDF 的吐槽§r)", - "litematica.config.hotkeys.comment.selectionGrowModifier": "按住快捷键,滑动滚轮\n可以延长体对角线的长度", - "litematica.config.hotkeys.comment.selectionNudgeModifier": "按住快捷键,滑动滚轮\n可以移动选区位置", - "litematica.config.hotkeys.comment.selectionModeCycle": "在选区模式当中切换角点或展开模式。", - "litematica.config.hotkeys.comment.selectionShrink": "使用该快捷键使得选区达到最小范围\n意思就是删除了多余的选定区域\n区域的长宽高就是选定的长宽高\n(§2这个愚蠢的汉化者 ZMDF 在说屁§r)", - "litematica.config.hotkeys.comment.setAreaOrigin": "设置/移动当前区域选择的原点到玩家的位置", - "litematica.config.hotkeys.comment.setSelectionBoxPosition1": "将选区第一个角点的位置设置为玩家当前位置", - "litematica.config.hotkeys.comment.setSelectionBoxPosition2": "将选区第二个角点的位置设置为玩家当前位置", - "litematica.config.hotkeys.comment.toggleAllRendering": "打开或关闭所有的渲染", - "litematica.config.hotkeys.comment.toggleAreaSelectionBoxesRendering": "切换区域选择的框线是否显示的快捷键", - "litematica.config.hotkeys.comment.toggleSchematicRendering": "切换投影区域内方块是否显示的快捷键", - "litematica.config.hotkeys.comment.toggleInfoOverlayRendering": "切换准心所指向的方块信息是否显示的快捷键", - "litematica.config.hotkeys.comment.toggleOverlayRendering": "切换投影区域的方块是否显示方块边框及方块色差的快捷键", - "litematica.config.hotkeys.comment.toggleOverlayOutlineRendering": "切换投影区域的方块是否显示方块边框的快捷键", - "litematica.config.hotkeys.comment.toggleOverlaySideRendering": "切换投影区域的方块是否显示方块色差的快捷键", - "litematica.config.hotkeys.comment.togglePlacementBoxesRendering": "切换投影范围框线是否显示的快捷键", - "litematica.config.hotkeys.comment.togglePlacementRestriction": "切换放置位置限制模式的快捷键", - "litematica.config.hotkeys.comment.toggleSchematicBlockRendering": "切换投影范围中所有方块的贴图是否显示的快捷键", - "litematica.config.hotkeys.comment.toggleSignTextPaste": "开关告示牌文本的选项(在通用类别中)", - "litematica.config.hotkeys.comment.toggleTranslucentRendering": "切换投影范围中所有方块是否为透明显示的快捷键", - "litematica.config.hotkeys.comment.toggleVerifierOverlayRendering": "切换示意图验证器覆盖渲染\n(§4然而我并不知道怎么用——ZMDF§r)", - "litematica.config.hotkeys.comment.toolEnabledToggle": "切换是否开启范围设定工具(木棍)的快捷键", - "litematica.config.hotkeys.comment.toolPlaceCorner1": "当手持范围设定工具(木棍)时放置角点 1", - "litematica.config.hotkeys.comment.toolPlaceCorner2": "当手持范围设定工具(木棍)时放置角点 2", - "litematica.config.hotkeys.comment.toolSelectElements": "当手持范围设定工具(木棍)时指向角点或区域将选中角点或区域", - "litematica.config.hotkeys.comment.toolSelectModifierBlock1": "按住该键时按下§6区域选择§f\n选择要在某些工具模式中使用的主要块类型\n(§4适用于替换填充等功能§r)", - "litematica.config.hotkeys.comment.toolSelectModifierBlock2": "按住该键时按下§6区域选择§f\n选择要在某些工具模式中使用的辅助块类型\n(§4适用于替换填充等功能§r)", - "litematica.config.hotkeys.comment.unloadCurrentSchematic": "卸载当前锁定布局的原理图,从而也删除从中创建的所有布局", - "litematica.config.generic.prettyName.pickBlockEnabled": "方块抓取启用", - "litematica.config.generic.prettyName.easyPlaceMode": "简单放置模式", - "litematica.config.generic.prettyName.placementRestriction": "放置位置限制", - "litematica.config.generic.prettyName.signTextPaste": "告示牌文本", - "litematica.config.generic.prettyName.toolItemEnabled": "启用工具项目", - "litematica.config.visuals.prettyName.enableAreaSelectionBoxesRendering": "选区边框启用切换", - "litematica.config.visuals.prettyName.enablePlacementBoxesRendering": "投影边框启用切换", - "litematica.config.visuals.prettyName.enableRendering": "开启全部渲染", - "litematica.config.visuals.prettyName.enableSchematicBlocksRendering": "投影方块显示", - "litematica.config.visuals.prettyName.enableSchematicFluidRendering": "Schematic Fluid Rendering", - "litematica.config.visuals.prettyName.enableSchematicOverlay": "渲染方块特征", - "litematica.config.visuals.prettyName.enableSchematicRendering": "渲染投影", - "litematica.config.visuals.prettyName.renderBlocksAsTranslucent": "方块半透明化", - "litematica.config.visuals.prettyName.schematicOverlayEnableOutlines": "渲染框线", - "litematica.config.visuals.prettyName.schematicOverlayEnableResorting": "启用原理图覆盖重新排序", - "litematica.config.visuals.prettyName.schematicOverlayEnableSides": "渲染块面", - "litematica.config.info_overlays.prettyName.blockInfoOverlayEnabled": "方块提示启用", - "litematica.config.info_overlays.prettyName.verifierOverlayEnabled": "原理图验证渲染", - "litematica.config.hotkeys.prettyName.toggleAllRendering": "全部渲染", - "litematica.error.area_selection.copy_failed": "无法复制选区", - "litematica.error.area_selection.create_failed": "无法创建一个名为“%s”的新选区文件,因为文件已存在", - "litematica.error.area_selection.failed_to_load": "无法加载选区", - "litematica.error.area_selection.grow.no_sub_region_selected": "没有选中子区域!", - "litematica.error.area_selection.no_placement_selected": "没有选中放置的投影!", - "litematica.error.area_selection.rename.already_exists": "错误:已经存在一个文件名为“%s”的区域", - "litematica.error.area_selection.rename.invalid_safe_file_name": "生成的文件名为“%s”的安全文件无效", - "litematica.error.duplicate_schematic_placement": "错误:尝试添加一个已经存在的投影放置", - "litematica.error.generic.creative_mode_only": "这个行为仅在创造模式中可用", - "litematica.error.generic.failed_to_delete_file": "无法删除文件“%s”", - "litematica.error.generic.failed_to_sort_list_of_ignored_states": "无法对忽略状态列表进行排序", - "litematica.error.generic.schematic_world_not_loaded": "原理图世界未被加载", - "litematica.error.area_editor.create_sub_region.exists": "名为'%s' 子区域已经存在", - "litematica.error.area_editor.no_selection": "无活动区域的选择", - "litematica.error.area_editor.open_gui.no_selection": "当前处于选择模式:Normal,但当前未选择任何区域", - "litematica.error.area_editor.rename_sub_region.exists": "重命名子区域失败\n已存在子区域名字为 '%s'", - "litematica.error.area_editor.switch_mode.no_selection": "无法切换到选择模式:Normal,因为当前没有选择区域.\n请在区域选择浏览器中选择一个区域或创建一个新的选择", - "litematica.error.schematic_conversion.litematic_to_litematica.failed_to_read_litematic": "無法載入 Litematica 原理圖", - "litematica.error.schematic_conversion.litematic_to_litematica.failed_to_downgrade_litematic": "Failed to downgrade the Litematica Schematic", - "litematica.error.schematic_conversion.schematic_to_litematica.failed_to_create_schematic": "创建litematica原理图失败", - "litematica.error.schematic_conversion.schematic_to_litematica.failed_to_read_schematic": "加载原理图失败", - "litematica.error.schematic_conversion.structure_to_litematica_failed": "无法将结构转换为litematica原理图", - "litematica.error.schematic.create.no_selections": "没有选择任何有效的区域", - "litematica.error.schematic_load.cant_read_file": "无法读取原理图文件 '%s' (不存在或权限问题)", - "litematica.error.schematic_load.no_schematic_selected": "未选择原理图文件", - "litematica.error.schematic_load.no_schematic_version_information": "该原理图没有版本信息,无法安全加载", - "litematica.error.schematic_load.unsupported_schematic_version": "不支持的或将来版本的原理图 '%d'", - "litematica.error.schematic_load.unsupported_type": "未知或不支持的文件类型 '%s'", - "litematica.error.schematic_manager.schematic_export.unsupported_type": "只能以其他格式导出Litematica原理图", - "litematica.error.schematic_manager.schematic_import.unsupported_type": "所选的原理图类型不支持导入", - "litematica.error.schematic_placements.remove_fail_locked": "位置已锁定\n- 按住SHIFT键强制删除", - "litematica.error.schematic_save.directory_doesnt_exist": "没有这样的目录: '%s'", - "litematica.error.schematic_save.file_already_exists": "文件'%s' 已经存在", - "litematica.error.schematic_save.invalid_directory": "无效目录 '%s'", - "litematica.error.schematic_save.invalid_schematic_name": "无效的原理图名称 '%s'", - "litematica.error.schematic_save.schematic_creation_failed": "创建原理图失败", - "litematica.error.schematic_read_from_file_failed.cant_read": "无法从文件 '%s'中读取原理图", - "litematica.error.schematic_read_from_file_failed.exception": "从文件 '%s'中读取原理图时出现异常", - "litematica.error.schematic_read_from_file_failed.no_file": "无法从文件中读取原理图: 没有可用的文件 (in-memory schematic?)", - "litematica.error.schematic_projects.empty_selection": "空白区域选择(0个子区域)", - "litematica.error.schematic_projects.failed_to_load_project": "加载项目失败", - "litematica.error.schematic_projects.failed_to_load_schematic": "加载当前版本的原理图失败", - "litematica.error.schematic_projects.failed_to_rename_project_file_exception": "未能将项目文件重命名为 '%s' (exception)", - "litematica.error.schematic_projects.failed_to_rename_project_file_exists": "无法将项目重命名为'%s', 文件已存在", - "litematica.error.schematic_projects.invalid_project_directory": "项目目录无效或不存在", - "litematica.error.schematic_projects.no_project_open": "没有项目被打开", - "litematica.error.schematic_projects.in_projects_mode_but_no_project_open": "目前处于原理图项目模式,但目前没有打开的项目", - "litematica.error.schematic_projects.null_player": "player为空", - "litematica.error.schematic_projects.project_already_exists": "项目'%s' 已经存在", - "litematica.error.schematic_projects.save_already_in_progress": "正在保存", - "litematica.error.schematic_write_to_file_failed.directory_creation_failed": "未能创建原理图目录 '%s'", - "litematica.error.schematic_write_to_file_failed.exception": "未能将原理图写入文件 '%s' (exception)", - "litematica.error.schematic_write_to_file_failed.exists": "未能将结构写入文件 '%s', 文件已存在", - "litematica.error.structure_write_to_file_failed.exception": "未能将结构写入文件 '%s' (exception)", - "litematica.error.structure_write_to_file_failed.exists": "未能将结构写入文件 '%s', 文件已存在", - "litematica.hotkeys.category.generic_hotkeys": "通用热键", - "litematica.info.schematic_load.schematic_loaded": "原理图 '%s' 成功加载到内存中", - "litematica.info.schematic_manager.preview.right_click_to_cancel": "右键单击该按钮可取消挂起的预览操作", - "litematica.info.schematic_manager.preview.set_preview_by_taking_a_screenshot": "使用普通屏幕截图键设置预览\n或者右键单击“设置预览”按钮取消设置预览", - "litematica.info.schematic_manager.preview.success": "已成功设置预览图像", - "litematica.gui.button.area_editor.analyze_area": "分析区域", - "litematica.gui.button.area_editor.change_corner_mode": "角点模式:%s", - "litematica.gui.button.area_editor.change_selection_mode": "选择模式:%s", - "litematica.gui.button.area_editor.create_schematic": "保存原理图", - "litematica.gui.button.area_editor.create_sub_region": "新建子区域", - "litematica.gui.button.area_editor.origin_enabled": "手动设置原点:%s", - "litematica.gui.button.area_editor.set_box_name": "确定", - "litematica.gui.button.area_editor.set_selection_name": "确定", - "litematica.gui.button.area_selection_mode": "区域选择模式:%s", - "litematica.gui.button.area_selections.create_directory": "创建目录", - "litematica.gui.button.area_selections.create_new_selection": "新选择", - "litematica.gui.button.area_selections.create_selection_from_placement": "从位置", - "litematica.gui.button.area_selections.unselect": "取消选择", - "litematica.gui.button.change_menu.area_editor": "选区编辑器", - "litematica.gui.button.change_menu.configuration_menu": "配置菜单", - "litematica.gui.button.change_menu.load_schematics_to_memory": "加载原理图", - "litematica.gui.button.change_menu.schematic_manager": "原理图目录", - "litematica.gui.button.change_menu.schematic_projects_manager": "原理图文件夹", - "litematica.gui.button.change_menu.show_area_selections": "选区目录", - "litematica.gui.button.change_menu.show_loaded_schematics": "已加载原理图", - "litematica.gui.button.change_menu.show_schematic_placements": "原理图编辑", - "litematica.gui.button.change_menu.task_manager": "任务管理器", - "litematica.gui.button.change_menu.to_main_menu": "投影菜单", - "litematica.gui.button.config_gui.colors": "颜色", - "litematica.gui.button.config_gui.generic": "通用", - "litematica.gui.button.config_gui.hotkeys": "热键", - "litematica.gui.button.config_gui.info_overlays": "信息覆盖", - "litematica.gui.button.config_gui.render_layers": "渲染层", - "litematica.gui.button.config_gui.visuals": "视觉", - "litematica.gui.button.config_gui.test": "Test", - "litematica.gui.button.hover.area_editor.shift_for_in_memory": "按住shift创建一个仅在内存中的原理图", - "litematica.gui.button.hover.area_selections.unselect": "取消选择当前区域选择", - "litematica.gui.button.hover.material_list.clear_cache": "清除材料缓存\n通常这不应该需要做的\n这可以用来代替删除'material_cache.nbt'\n文件,以防缓存含有一些错误的数据,\n如一些不应存在的物品储存,如活塞头", - "litematica.gui.button.hover.material_list.write_hold_shift_for_csv": "按住shift写入csv文件,\n而不是普通的ASCII艺术表文本文件", - "litematica.gui.button.hover.material_list_shift_to_select_sub_regions": "按住shift选择用于材料列表的子区域", - "litematica.gui.button.hover.plus_minus_tip": "左键单击可增大\n右键单击可减小\nShift and/or Alt 增加步长", - "litematica.gui.button.hover.plus_minus_tip_ctrl_alt_shift": "左键单击可增大\n右键单击可减小\nShift/Alt/Ctrl 增加步长(乘法)", - "litematica.gui.button.hover.schematic_list.reload_schematic": "从文件重新加载原理图。\n如果你在原理图编辑模式犯错了这会很有用", - "litematica.gui.button.hover.schematic_projects.area_browser_disabled_currently_in_projects_mode": "当前打开了一个原理图项目\n原理图项目将覆盖正常区域选择功能", - "litematica.gui.button.hover.schematic_projects.delete_area": "§6删除最后放置或保存的区域§r", - "litematica.gui.button.hover.schematic_projects.menu_warning": "(This was called Schematic Projects before.)\nIn general you §6should not§r be using this feature,\nunless you really know how it works and what it does.\nIt somewhat changes how the area selections, placements and pasting works,\nin particular that there is also an area delete operation when pasting.\n\nBasically this feature is intended for §6iterative, in-place§r design work,\nand it allows you to easier create multiple versions/snapshots\nof the same build, and also to switch between the versions by deleting what is\nin the world first, and then pasting the next version in its place.", - "litematica.gui.button.hover.schematic_projects.move_origin_to_player": "将项目原点移动到玩家当前位置\n这还会移动区域选择和放置", - "litematica.gui.button.hover.schematic_projects.place_to_world_warning": "§6警告:这将在一个之前放置或者保存的\n§6一个版本的区域里,删除/覆盖当前世界里的方块\n§6(基本上是最后一次看到的“有效区域选择”)", - "litematica.gui.button.hover.schematic_projects.save_new_version": "将新的原理图/版本保存到当前项目", - "litematica.gui.button.material_list": "材料列表", - "litematica.gui.button.material_list.clear_cache": "清除缓存", - "litematica.gui.button.material_list.clear_ignored": "清除忽略", - "litematica.gui.button.material_list.hide_available": "隐藏可用: %s", - "litematica.gui.button.material_list.ignore": "忽略", - "litematica.gui.button.material_list.list_type": "显示: %s", - "litematica.gui.button.material_list.refresh_list": "刷新", - "litematica.gui.button.material_list.toggle_info_hud": "信息 HUD: %s", - "litematica.gui.button.material_list.write_to_file": "写入文件", - "litematica.gui.button.placement_sub.placement_configuration": "放置配置", - "litematica.gui.button.placement_sub.reset_sub_region_placement": "重置子区域", - "litematica.gui.button.placement_sub.slice_type": "切片: %s", - "litematica.gui.button.schematic_manager.export_as": "导出为 :", - "litematica.gui.button.schematic_placement.abbr.rendering": "R", - "litematica.gui.button.schematic_placement.ignore_entities": "忽略实体: %s", - "litematica.gui.button.schematic_placement.region_enabled": "区域: %s", - "litematica.gui.button.schematic_placement.reset_sub_region_placements": "重置所有子区域", - "litematica.gui.button.schematic_placement.toggle_all_off": "全部 §c关闭§r", - "litematica.gui.button.schematic_placement.toggle_all_on": "全部 §a开§r", - "litematica.gui.button.schematic_placement.hover.enclosing_box": "封闭框呈现: %s", - "litematica.gui.button.schematic_placement.hover.lock": "锁定位置可防止移动\n以其他方式更改它(意外地)", - "litematica.gui.button.schematic_placement.hover.rendering": "呈现: %s\n请注意,这有点奇怪\n并且不会阻止实体呈现.\n通常,您应该完全禁用\n完全放置", - "litematica.gui.button.schematic_placements.configure": "配置", - "litematica.gui.button.schematic_placements.disable": "禁用", - "litematica.gui.button.schematic_placements.locked": "已锁定: %s", - "litematica.gui.button.schematic_placements.placement_enabled": "位置: %s", - "litematica.gui.button.schematic_placements.remove": "删除", - "litematica.gui.button.schematic_placements.rendering_enabled": "渲染: %s", - "litematica.gui.button.schematic_placements.select": "选择", - "litematica.gui.button.schematic_projects.close_project": "关闭当前项目", - "litematica.gui.button.schematic_projects.create_project": "创建项目", - "litematica.gui.button.schematic_projects.delete_area": "删除区域", - "litematica.gui.button.schematic_projects.load_project": "加载项目", - "litematica.gui.button.schematic_projects.move_origin_to_player": "移动到玩家", - "litematica.gui.button.schematic_projects.open_area_editor": "区域编辑", - "litematica.gui.button.schematic_projects.open_manager_gui": "打开管理器", - "litematica.gui.button.schematic_projects.open_project_browser": "项目浏览器", - "litematica.gui.button.schematic_projects.place_to_world": "在世界上放置", - "litematica.gui.button.schematic_projects.save_version": "保存版本", - "litematica.gui.button.schematic_verifier.ignore": "忽略", - "litematica.gui.button.schematic_verifier.range_type": "范围: %s", - "litematica.gui.button.schematic_verifier.reset_ignored": "重置被忽略", - "litematica.gui.button.schematic_verifier.reset_verifier": "重置数据", - "litematica.gui.button.schematic_verifier.resume": "摘要验证", - "litematica.gui.button.schematic_verifier.start": "开始验证", - "litematica.gui.button.schematic_verifier.stop": "停止验证", - "litematica.gui.button.schematic_verifier.toggle_info_hud": "信息HUD: %s", - "litematica.gui.button.cancel": "取消", - "litematica.gui.button.configure": "配置", - "litematica.gui.button.copy": "复制", - "litematica.gui.button.create_directory": "新建目录", - "litematica.gui.button.create_placement": "创造放置", - "litematica.gui.button.delete": "删除", - "litematica.gui.button.disable": "禁用", - "litematica.gui.button.enable": "启用", - "litematica.gui.button.import": "导入", - "litematica.gui.button.load_schematic_to_memory": "加载原理图", - "litematica.gui.button.mirror_value": "镜像: %s", - "litematica.gui.button.move_to_player": "移动到玩家", - "litematica.gui.button.ok": "Ok", - "litematica.gui.button.reload": "重载", - "litematica.gui.button.remove": "删除", - "litematica.gui.button.remove_placement": "删除放置", - "litematica.gui.button.rename": "重命名", - "litematica.gui.button.rotation_value": "旋转: %s", - "litematica.gui.button.save_new_schematic_version": "保存版本", - "litematica.gui.button.save_schematic": "保存原理图", - "litematica.gui.button.save_to_file": "保存到文件", - "litematica.gui.button.schematic_verifier": "原理图验证程序", - "litematica.gui.button.set_preview": "设置预览", - "litematica.gui.button.tool_mode": "工具模式: %s", - "litematica.gui.button.unload": "卸载", - "litematica.gui.button.unlocked": "解锁", - "litematica.gui.label.area_editor.box_name": "子区域框名称", - "litematica.gui.label.area_editor.selection_name": "选择名称", - "litematica.gui.label.area_editor.corner_1": "角1", - "litematica.gui.label.area_editor.corner_2": "角2", - "litematica.gui.label.area_editor.origin": "原点", - "litematica.gui.label.area_editor.dimensions": "尺寸", - "litematica.gui.label.area_editor.pos1": "角1", - "litematica.gui.label.area_editor.pos2": "角2", - "litematica.gui.label.area_editor.sub_regions": "子区域 (%s)", - "litematica.gui.label.area_selection_manager.current_selection": "所选区域: %s", - "litematica.gui.label.area_selection_box_count": "框数: %d", - "litematica.gui.label.area_selection_origin": "原点: %s", - "litematica.gui.label.area_selection.mode.normal": "正常", - "litematica.gui.label.area_selection.mode.simple": "简单", - "litematica.gui.label.block_info.state_client": "客户端世界的方块信息", - "litematica.gui.label.block_info.state_schematic": "原理图世界的方块信息", - "litematica.gui.label.block_info_list_type.all": "ALL", - "litematica.gui.label.block_info_list_type.render_layers": "渲染层", - "litematica.gui.label.easy_place_protocol.auto": "自动", - "litematica.gui.label.easy_place_protocol.none": "关闭", - "litematica.gui.label.easy_place_protocol.slabs_only": "仅台阶", - "litematica.gui.label.easy_place_protocol.v2": "版本 2", - "litematica.gui.label.easy_place_protocol.v3": "版本 3", - "litematica.gui.label.data_fixer_mode.always": "總是", - "litematica.gui.label.data_fixer_mode.below_1205": "僅低於 1.20.5", - "litematica.gui.label.data_fixer_mode.below_120X": "僅低於 1.20.x", - "litematica.gui.label.data_fixer_mode.below_119X": "僅低於 1.19.x", - "litematica.gui.label.data_fixer_mode.below_117X": "僅低於 1.17.x", - "litematica.gui.label.data_fixer_mode.below_116X": "僅低於 1.16.x", - "litematica.gui.label.data_fixer_mode.below_113X": "僅低於 1.13.x", - "litematica.gui.label.data_fixer_mode.below_112X": "僅低於 1.12.x", - "litematica.gui.label.data_fixer_mode.never": "絕不", - "litematica.gui.label.loaded_schematic.modified_on": "§6Modified on %s§r", - "litematica.gui.label.material_list.abbr.shulker_box": "SB", - "litematica.gui.label.material_list.title.available": "可用", - "litematica.gui.label.material_list.title.item": "项目", - "litematica.gui.label.material_list.title.missing": "缺少", - "litematica.gui.label.material_list.title.total": "总计", - "litematica.gui.label.material_list.multiplier": "倍数:", - "litematica.gui.label.material_list.name": "名称", - "litematica.gui.label.material_list.progress": "进度: %s", - "litematica.gui.label.material_list.progress.done": "完成 %s", - "litematica.gui.label.material_list.progress.mismatch": "不匹配的 %s", - "litematica.gui.label.material_list.progress.missing": "缺少 %s", - "litematica.gui.label.material_list.total": "总计: %s 个物品", - "litematica.gui.label.origin.auto": "自动", - "litematica.gui.label.origin.manual": "手动", - "litematica.gui.label.paste_nbt_behavior.none": "无", - "litematica.gui.label.paste_nbt_behavior.place_data_modify": "放置 & /data modify", - "litematica.gui.label.paste_nbt_behavior.place_clone": "放置 & /clone", - "litematica.gui.label.placement_sub.region_name": "区域名: %s", - "litematica.gui.label.placement_sub.region_position": "区域位置", - "litematica.gui.label.placement_sub.region_size": "区域大小: %s", - "litematica.gui.label.placement_settings.placement_origin": "放置原点", - "litematica.gui.label.render_layers.hotkey": "热键", - "litematica.gui.label.render_layers.hover.hotkey": "下一个/上一个图层热键将影响此边界\n如果两者都被选中,那么热键将被影响\n在最接近玩家的边界", - "litematica.gui.label.replace_behavior.all": "所有", - "litematica.gui.label.replace_behavior.none": "无", - "litematica.gui.label.replace_behavior.with_non_air": "非空气", - "litematica.gui.label.schematic_info.schematic_author": "原理图作者: §f%s§r", - "litematica.gui.label.schematic_info.description": "说明:", - "litematica.gui.label.schematic_info.enclosing_size": "框大小:", - "litematica.gui.label.schematic_info.enclosing_size_value": "框大小: §f%s§r", - "litematica.gui.label.schematic_info.name": "名字:", - "litematica.gui.label.schematic_info.region_count": "区域: §f%d§r", - "litematica.gui.label.schematic_info.time_created": "已创建: §f%s§r", - "litematica.gui.label.schematic_info.time_modified": "修改自: §f%s§r", - "litematica.gui.label.schematic_info.total_blocks": "方块总数: §f%d§r", - "litematica.gui.label.schematic_info.total_blocks_and_volume": "方块/体积: §f%d§r/§f%d§r", - "litematica.gui.label.schematic_info.total_volume": "总体积: §f%d§r 个方块", - "litematica.gui.label.schematic_info.version": "精简版: §f%d§r", - "litematica.gui.label.schematic_info.schema": "我的世界: §f%s§r [架构 §f%d§r]", - "litematica.gui.label.schematic_load.checkbox.create_placement": "创建放置", - "litematica.gui.label.schematic_load.hoverinfo.create_placement": "立即创建新位置并选择该位置", - "litematica.gui.label.schematic_placement.enclosing_size": "框尺寸: %s", - "litematica.gui.label.schematic_placement.hoverinfo.hold_shift_to_create_as_disabled": "按住shift以在创建时禁用放置", - "litematica.gui.label.schematic_placement.in_memory": "仅限内存", - "litematica.gui.label.schematic_placement.origin": "原点: %s", - "litematica.gui.label.schematic_placement.rename_placement": "重命名放置:", - "litematica.gui.label.schematic_placement.schematic_file": "文件: %s", - "litematica.gui.label.schematic_placement.schematic_name": "原理图: %s", - "litematica.gui.label.schematic_placement.sub_region_count": "子区域: %s", - "litematica.gui.label.schematic_placement.sub_regions": "子区域 (%s):", - "litematica.gui.label.schematic_projects.currently_open_project": "当前打开的项目: %s", - "litematica.gui.label.schematic_projects.origin": "原点:", - "litematica.gui.label.schematic_projects.project": "项目:", - "litematica.gui.label.schematic_projects.version": "版本: %s (of %s)", - "litematica.gui.label.schematic_projects.version_entry": "请参见. %d - %s", - "litematica.gui.label.schematic_projects.version_name": "版本名:", - "litematica.gui.label.schematic_save.checkbox.ignore_entities": "忽略实体", - "litematica.gui.label.schematic_save.hoverinfo.hold_shift_to_overwrite": "按住shift覆盖现有文件", - "litematica.gui.label.schematic_verifier.count": "数量", - "litematica.gui.label.schematic_verifier.expected": "预期", - "litematica.gui.label.schematic_verifier.found": "找到", - "litematica.gui.label.schematic_verifier_display_type.all": "全部 (非忽略的)", - "litematica.gui.label.schematic_verifier_display_type.correct_state": "正确状态", - "litematica.gui.label.schematic_verifier_display_type.extra": "额外的方块", - "litematica.gui.label.schematic_verifier_display_type.missing": "缺失的方块", - "litematica.gui.label.schematic_verifier_display_type.wrong_blocks": "错误的方块", - "litematica.gui.label.schematic_verifier_display_type.wrong_state": "错误的状态", - "litematica.gui.label.schematic_verifier.status.done_errors": "警告: §c方块: %s§r, §6状态: %s§r, §b缺失: %s§r, §d额外: %s§r", - "litematica.gui.label.schematic_verifier.status.done_correct_total": "§a正确: %s§r, 总共: %s", - "litematica.gui.label.schematic_verifier.status.verifying": "不可见的区块: %s / %s", - "litematica.gui.label.schematic_verifier.verifier": "原理图验证程序", - "litematica.gui.label.task.title.remaining_chunks": "%s, 剩余区块 (%s)", - "litematica.gui.label.task_name.area_analyzer": "区域分析器", - "litematica.gui.label.task_name.delete": "删除任务", - "litematica.gui.label.task_name.fill": "填充任务", - "litematica.gui.label.task_name.material_list": "材料列表", - "litematica.gui.label.task_name.paste": "粘贴原理图", - "litematica.gui.label.task_name.save_schematic": "保存原理图", - "litematica.gui.label.task_name.verifier": "验证程序", - "litematica.gui.message.confirm_file_deletion": "是否要删除文件 '%s'", - "litematica.gui.message.schematic_projects.confirm_delete_area": "是否删除“上次受影响”的区域?\n这将删除这个工程管理器上次放置在世界上的,或者上次保存为一个版本文件的区域中任何方块实体\n(基本上是“最后一次看到受影响的区域”,这样如果你要循环版本,它就不会留下以前版本的方块)", - "litematica.gui.message.schematic_projects.confirm_place_to_world": "你想把这个版本放到世界吗?\n这将删除项目管理器最后放置到世界的区域内的任何方块和实体,或最后保存为版本. (基本上 \\\"最后见过受影响的区域\\\", 这样,如果你要循环版本,它不会留下以前版本的方块.)", - "litematica.gui.title.area_editor_normal": "区域编辑器(简单/多框模式)", - "litematica.gui.title.area_editor_normal_schematic_projects": "区域编辑器 (§6§l图形项目区域§r)", - "litematica.gui.title.area_editor_simple": "区域编辑器 (简单模式)", - "litematica.gui.title.area_editor_sub_region": "区域编辑器 (子区域)", - "litematica.gui.title.area_editor.sub_region_name": "子区域名称", - "litematica.gui.title.area_selection_manager": "区域选择管理器", - "litematica.gui.title.configure_schematic_placement": "配置原理图放置", - "litematica.gui.title.configure_schematic_sub_region": "配置放置子区域", - "litematica.gui.title.configs": "%s 配置 - %s", - "litematica.gui.title.confirm_file_deletion": "确认文件删除", - "litematica.gui.title.copy_area_selection": "复制区域选择 '%s'", - "litematica.gui.title.create_area_selection": "新建区域选择", - "litematica.gui.title.create_area_selection_from_placement": "从原理图位置创建新的区域选择", - "litematica.gui.title.create_directory": "新建目录", - "litematica.gui.title.create_in_memory_schematic": "创建内存中的原理图", - "litematica.gui.title.create_schematic_project": "新建原理图项目", - "litematica.gui.title.litematica_main_menu": "投影 %s", - "litematica.gui.title.load_schematic": "加载原理图", - "litematica.gui.title.manage_loaded_schematics": "管理加载的原理图", - "litematica.gui.title.manage_schematic_placements": "管理原理图放置", - "litematica.gui.title.material_list.area_analyzer": "选择区域分析 '%s'", - "litematica.gui.title.material_list.placement": "放置材料列表 '%s'", - "litematica.gui.title.material_list.schematic": "原理图的材料清单 '%s' (%s of %s 区域)", - "litematica.gui.title.material_list.select_schematic_regions": "选择材料列表的子区域 '%s'", - "litematica.gui.title.rename_area_selection": "重命名区域选择", - "litematica.gui.title.rename_area_sub_region": "重命名子区域", - "litematica.gui.title.rename_schematic": "重命名原理图", - "litematica.gui.title.create_schematic_from_selection": "将当前选定的区域另存为原理图", - "litematica.gui.title.save_exported_schematic": "保存导出 %s 属于 '%s'", - "litematica.gui.title.save_imported_schematic": "保存导入的原理图", - "litematica.gui.title.save_schematic_from_memory": "将内存中的原理图保存到文件", - "litematica.gui.title.save_schematic_filename": "原理图文件名", - "litematica.gui.title.schematic_browser": "原理图浏览器", - "litematica.gui.title.schematic_manager": "原理图管理器", - "litematica.gui.title.schematic_project_manager": "原理图工程目录", - "litematica.gui.title.schematic_projects.confirm_delete_area": "确认删除区域", - "litematica.gui.title.schematic_projects.confirm_place_to_world": "确认在世界中放置的操作", - "litematica.gui.title.schematic_projects.save_new_version": "保存一个新的原理图版本", - "litematica.gui.title.schematic_projects_browser": "原理图工程浏览器", - "litematica.gui.title.schematic_verifier": "验证 '%s' 原理图", - "litematica.gui.title.schematic_verifier_errors": "原理图验证错误", - "litematica.gui.title.task_manager": "任务管理器", - "litematica.hud.area_selection.box_count": "框数: %s", - "litematica.hud.area_selection.dimensions_position": "尺寸: %s - p1: %s, p2: %s", - "litematica.hud.area_selection.mode.corners": "角点", - "litematica.hud.area_selection.mode.expand": "展开", - "litematica.hud.area_selection.origin": "原点: %s", - "litematica.hud.area_selection.selected_area_normal": "区域: %s", - "litematica.hud.area_selection.selected_area_simple": "区域 [§6简单模式§r]: %s", - "litematica.hud.area_selection.selected_sub_region": "子区域: %s", - "litematica.hud.area_selection.selection_corners_mode": "角点模式: %s", - "litematica.hud.delete.target_mode": "删除目标模式: %s", - "litematica.hud.delete.target_mode.area": "当前区域", - "litematica.hud.delete.target_mode.placement": "当前放置", - "litematica.hud.misc.easy_place_mode_enabled": "简单放置模式 §aON§r", - "litematica.hud.misc.none_brackets": "", - "litematica.hud.misc.placement_restriction_mode_enabled": "限制放置模式 §a开启§r", - "litematica.hud.misc.render_layer_mode": "图层模式: %s - %s", - "litematica.hud.misc.render_layer_mode_all": "图层模式: %s", - "litematica.hud.misc.renderer_status": "渲染器: A: %s S: %s B: %s O: %s SEL: %s", - "litematica.hud.misc.schematic_paste.data_restore_mode": "数据粘贴模式: §b%s", - "litematica.hud.misc.schematic_paste.replace_mode": "替换模式: %s", - "litematica.hud.schematic_placement.hover_info.lock_coordinate": "锁定此坐标\n这允许改变其他坐标\n不影响锁定的", - "litematica.hud.schematic_placement.hover_info.placement_locked": "此位置已锁定,如果不先解锁,则无法修改", - "litematica.hud.schematic_placement.hover_info.placement_modified": "此位置已修改", - "litematica.hud.schematic_placement.hover_info.placement_sub_region_modified": "此子区域已修改", - "litematica.hud.schematic_placement.selected_placement": "放置", - "litematica.hud.schematic_placement.selected_sub_region": "子区域", - "litematica.hud.schematic_placement.sub_region_count": "区域", - "litematica.hud.schematic_placement.sub_region_modified": "修改", - "litematica.hud.schematic_placement.sub_region_origin": "区域原点: %s", - "litematica.hud.schematic_placement.sub_regions_modified": "修改区域", - "litematica.hud.selected_mode": "模式", - "litematica.hud.schematic_projects.current_version_date": "数据: %s", - "litematica.hud.schematic_projects.current_version": "版本: %s/%s - 名字: %s", - "litematica.hud.schematic_projects.no_project_open": "<没有项目打开>", - "litematica.hud.schematic_projects.no_versions": "<没有该版本>", - "litematica.hud.schematic_projects.origin": "项目原点: %s", - "litematica.hud.schematic_projects.project_name": "项目: %s", - "litematica.hud.schematic_projects_mode": "§6原理图项目模式§r", - "litematica.info.material_list": "- 材料清单热键将打开上次查看的材料清单,\n 如果有一个存储\n- 要切换到其他材料列表,请打开一个\n 放置配置GUI中的GUI按钮或原理图浏览器\n- 存储/上次查看的列表也会被忘记\n 如果选择的原理图放置已更改\n- 如果还没有最后查看的材料清单,\n 然后使用选定的放置,如果有的话", - "litematica.label.alignment.center": "中心", - "litematica.label.alignment.top_center": "顶部中心", - "litematica.label.none_lower": "none", - "litematica.label.no": "no", - "litematica.label.yes": "yes", - "litematica.message.error.area_deletion_aborted": "区域删除中断或中止", - "litematica.message.error.empty_area_selection": "空白区域选择(无框)", - "litematica.message.error.invalid_schematic_name": "无效的原理图名称 '%s'", - "litematica.message.error.no_area_selected": "§c没有区域被选择§r", - "litematica.message.error.no_placement_selected": "§c没有选择展示位置§r", - "litematica.message.error.only_works_in_single_player": "§c此操作仅在单个玩家中运行§r", - "litematica.message.error.move.pending_tasks": "§c当有待处理的任务时,无法进行移动§r", - "litematica.message.error.placement_paste_outside_world": "无法将放置粘贴到当前位置,因为它超出了世界边界", - "litematica.message.error.schematic_paste_failed": "§c原理图粘贴到世界失败§r", - "litematica.message.error.schematic_save_failed": "无法将原理图保存到文件 '%s'", - "litematica.message.error.schematic_save_interrupted": "原理图保存中断或停止", - "litematica.message.error.schematic_save_no_area_selected": "§c原理图保存失败,未选择任何区域§r", - "litematica.message.warn.pickblock.no_suitable_slot_found": "没有可用的槽位来放置方块!\n检查 Generic -> §epickBlockableSlots§r 配置项.\n这也取决于 §epickBlockAvoid*§6 配置, 只要某个槽位中有具有耐久度的物品,投影将不会选取它用来放置方块", - "litematica.message.warn.pickblock.no_valid_slots_configured": "Generic -> §epickBlockableSlots§6 中的配置无效!", - "litematica.message.added_selection_box": "添加了一个新的选择框在 %s", - "litematica.message.area_clear_fail": "§c清除区域失败§r", - "litematica.message.area_cleared": "已清除区域", - "litematica.message.area_filled": "已填充区域", - "litematica.message.area_fill_fail": "填充区域失败", - "litematica.message.area_selections.selection_created_from_placement": "创建了新的选择在位置 '%s'", - "litematica.message.easy_place_fail": "由轻松放置模式阻止的操作", - "litematica.message.grabbed_element_for_moving": "抓住要移动的元件", - "litematica.message.in_memory_schematic_created": "已将内存中的原理图创建为 '%s'", - "litematica.message.litematic_saved_as": "已成功升级投影射数据版本版本\n投影已保存为 '%s'", - "litematica.message.material_list.material_cache_cleared": "已清除材料缓存", - "litematica.message.material_list_written_to_file": "材料列表写入文件 '%s'", - "litematica.message.moved_area_origin": "移动区域原点 %s => %s", - "litematica.message.moved_selection": "移动所选内容 %s => %s", - "litematica.message.paste_with_servux": "§6正在将展示位置上传至 Servux 进行粘贴", - "litematica.message.placement.cant_modify_is_locked": "§c展示位置已锁定且无法修改§r", - "litematica.message.placement.moved_placement_origin": "已移动展示位置 原点%s => %s", - "litematica.message.placement.moved_subregion_to": "移动子区域 to %s", - "litematica.message.placement.rotation_set_to": "放置旋转为 %s 方向", - "litematica.message.placement.mirror_set_to": "放置镜像为 %s 方向", - "litematica.message.placement_restriction_fail": "放置限制模式阻止的操作", - "litematica.message.removed_area_origin": "删除了展示的/手动区域原点", - "litematica.message.removed_selection_box": "已删除选择框 %s", - "litematica.message.scheduled_task_added": "添加的计划任务...", - "litematica.message.litematic_downgrade_exported_as": "Schematic export downgraded as '%s'\n§6NOTE: This is an experimental feature; data loss may occur.§r", - "litematica.message.schematic_exported_as": "原理图导出为 '%s'", - "litematica.message.schematic_pasted": "在世界上粘贴原理图", - "litematica.message.schematic_pasted_using_fill_and_setblock": "使用§b%s§r fill 和§b%s§r setblock 命令粘贴示意图", - "litematica.message.schematic_pasted_using_setblock": "原理图粘贴使用 %s 放置命令", - "litematica.message.schematic_pasted_using_world_edit": "使用§b%s§r World Edit //set 命令粘贴示意图", - "litematica.message.schematic_placement_created": "创建放置 '%s'", - "litematica.message.schematic_preview_cancelled": "预览任务已取消", - "litematica.message.schematic_read_from_file_success": "加载原理图从文件中 '%s'", - "litematica.message.schematic_rendering_refreshed": "原理图渲染已刷新", - "litematica.message.schematic_saved_as": "原理图保存为 '%s'", - "litematica.message.schematic_save_task_created": "已创建原理图保存任务", - "litematica.message.set_area_origin": "将区域原点设置为%s", - "litematica.message.set_selection_box_point": "设置/移动点从 %d 到 %s", - "litematica.message.toggled": "已切换 %s %s", - "litematica.message.value.on": "NO", - "litematica.message.value.off": "OFF", - "litematica.message.schematic_projects.project_created": "已创建项目 '%s'", - "litematica.message.schematic_projects.project_loaded": "已加载项目 '%s'", - "litematica.message.schematic_projects.version_saved": "新版本 (#%s) 保存为 '%s'", - "litematica.message.warn.area_selection.browser_open_in_simple_mode": "注意:您当前处于简单区域选择模式", - "litematica.message.warn.layer_mode_currently_at": "注意:你当前处在 '%s' 显示层模式", - "litematica.message.warn.main_rendering_disabled": "警告:主渲染当前已禁用\n查看视觉效果 -> %s, 或者热键 -> %s ['%s']", - "litematica.message.warn.schematic_blocks_rendering_disabled": "警告:原理图块呈现当前被禁用\n查看视觉效果 -> %s, or 或者热键 -> %s ['%s']", - "litematica.message.warn.schematic_load_non_litematica": "警告:直接加载非Litematica原理图时,创建的展示位置不会持久。\n此外,如果您必须多次加载原理图,那么每次加载时都会发生原理图类型转换滞后尖峰(对于大型原理图)。\n\n因此,建议导入原理图并通过原理图管理器菜单以Litematica格式保存,或者更好的是,使用MCEdit或Litematica中的粘贴模式将原始原理图粘贴到临时世界中,然后制作新的Litematica原理图 从那里开始,在适用的情况下,最好使用多个子区域来紧密捕获构建。", - "litematica.message.warn.schematic_rebuild_placement_not_selected": "目前未选择目标展示位置。 “全部替换”热键仅适用于您单击的放置的当前选定子区域。 因此,要仅替换一个子区域中的块,请选择该子区域。 要替换整个原理图(所有太阳区域),请选择整个位置而不是其子区域。 这些块也仅在当前“渲染层”设置限制的区域内被替换。", - "litematica.message.warn.schematic_rendering_disabled": "警告:当前禁用了原理图渲染\n查看视觉效果 -> %s, 或者热键 -> %s ['%s']", - "litematica.message.warn.schematic_verifier.overlay_disabled": "警告:验证程序重叠渲染当前已禁用! 请参阅信息 -> %s (或者热键 -> %s ['%s'])", - "litematica.message.warning.invalid_number": "输入无效的数字 '%s'", - "litematica.message.warning.schematic_projects_hidden": "警告:原理图版本控制系统当前处于隐藏状态。 一般来说,你不应该使用它,除非你真的知道它是如何工作的并改变了一些 mod 行为。如果您想使用它,请启用选项 Generic -> unhideSchematicVCS", - "litematica.warning.area_editor.area_rendering_disabled": "注意:区域选择框呈现当前被禁用\n查看视觉效果 -> %s, 或者热键 -> %s ['%s']", - "litematica.tool_hud.block_1": "方块: %s", - "litematica.tool_hud.block_2": "替换: %s", - "litematica.tool_hud.facing": "朝向: %s", - "litematica.tool_mode.name.area_selection": "区域选择", - "litematica.tool_mode.name.delete": "删除", - "litematica.tool_mode.name.fill": "填充", - "litematica.tool_mode.name.grid_paste": "在世界上粘贴原理图网格", - "litematica.tool_mode.name.move": "移动", - "litematica.tool_mode.name.paste_schematic": "在世界上粘贴原理图", - "litematica.tool_mode.name.rebuild": "重建原理", - "litematica.tool_mode.name.replace_block": "替换方块", - "litematica.tool_mode.name.schematic_placement": "原理图放置" -} + "fml.menu.mods.info.description.forgematica": "Litematica unofficial (Neo)Forge port.\nA modern schematic mod for (Neo)Forge." +} \ No newline at end of file diff --git a/src/main/resources/assets/forgematica/lang/zh_tw.json b/src/main/resources/assets/forgematica/lang/zh_tw.json deleted file mode 100644 index 950e14a..0000000 --- a/src/main/resources/assets/forgematica/lang/zh_tw.json +++ /dev/null @@ -1,910 +0,0 @@ -{ - "litematica.config.generic.name.easyPlaceProtocolVersion": "簡易放置協議版本", - "litematica.config.generic.name.pasteNbtRestoreBehavior": "NBT 遷移", - "litematica.config.generic.name.pasteReplaceBehavior": "貼上替換模式", - "litematica.config.generic.name.placementReplaceBehavior": "放置替換模式", - "litematica.config.generic.name.placementRestrictionWarn": "放置限制警告", - "litematica.config.generic.name.selectionCornersMode": "選擇角落模式", - "litematica.config.generic.name.customSchematicBaseDirectoryEnabled": "啟用自定義原理圖目錄路徑", - "litematica.config.generic.name.customSchematicBaseDirectory": "自定義原理圖目錄路徑", - "litematica.config.generic.name.areaSelectionsPerWorld": "每個世界的選區", - "litematica.config.generic.name.betterRenderOrder": "改善的渲染順序", - "litematica.config.generic.name.changeSelectedCornerOnMove": "在移動時更改選定的角落", - "litematica.config.generic.name.cloneAtOriginalPosition": "在原始位置克隆", - "litematica.config.generic.name.commandDisableFeedback": "禁用命令反饋", - "litematica.config.generic.name.commandFillMaxVolume": "最大命令填充體積", - "litematica.config.generic.name.commandFillNoChunkClamp": "命令填充無區塊限制", - "litematica.config.generic.name.commandLimitPerTick": "限制每刻命令數", - "litematica.config.generic.name.commandNameClone": "Clone 命名", - "litematica.config.generic.name.commandNameFill": "fill 命名", - "litematica.config.generic.name.commandNameSetblock": "Setblock 命名", - "litematica.config.generic.name.commandNameSummon": "Summon 命名", - "litematica.config.generic.name.commandTaskInterval": "命令任務間隔", - "litematica.config.generic.name.commandUseWorldEdit": "使用 WorldEdit 指令", - "litematica.config.generic.name.debugLogging": "調試記錄", - "litematica.config.generic.name.datafixerMode": "數據修復模式", - "litematica.config.generic.name.datafixerDefaultSchema": "數據修復默認架構", - "litematica.config.generic.name.easyPlaceClickAdjacent": "easyPlaceClickAdjacent", - "litematica.config.generic.name.easyPlaceFirst": "優先輕鬆放置", - "litematica.config.generic.name.easyPlaceHoldEnabled": "輕鬆放置狀態", - "litematica.config.generic.name.easyPlaceMode": "輕鬆放置模式", - "litematica.config.generic.name.easyPlacePostRewrite": "easyPlacePostRewrite", - "litematica.config.generic.name.easyPlaceSinglePlayerHandling": "單人遊戲輕鬆放置處理", - "litematica.config.generic.name.easyPlaceSwapInterval": "輕鬆放置交換間隔", - "litematica.config.generic.name.easyPlaceSwingHand": "輕鬆放置揮手", - "litematica.config.generic.name.easyPlaceVanillaReach": "輕鬆放置原版範圍", - "litematica.config.generic.name.entityDataSync": "實體數據同步", - "litematica.config.generic.name.entityDataSyncBackup": "實體數據同步備份", - "litematica.config.generic.name.executeRequireHoldingTool": "執行需長按工具", - "litematica.config.generic.name.fixChestMirror": "箱子鏡像修復", - "litematica.config.generic.name.fixRailRotation": "鐵軌旋轉修復", - "litematica.config.generic.name.generateLowercaseNames": "生成小寫名稱", - "litematica.config.generic.name.highlightBlockInInventory": "物品欄高亮顯示", - "litematica.config.generic.name.itemUsePacketCheckBypass": "繞過物品使用檢查", - "litematica.config.generic.name.layerModeFollowsPlayer": "圖層跟隨玩家", - "litematica.config.generic.name.loadEntireSchematics": "載入完整原理圖", - "litematica.config.generic.name.materialListIgnoreState": "材料清單忽略狀態", - "litematica.config.generic.name.pasteAlwaysUseFill": "貼上始終使用 fill", - "litematica.config.generic.name.pasteIgnoreBlockEntitiesEntirely": "貼上忽略實體方塊", - "litematica.config.generic.name.pasteIgnoreBlockEntitiesFromFill": "fill 忽略實體方塊", - "litematica.config.generic.name.pasteIgnoreCommandLimitWithNbtRestore": "貼上忽略命令限制與 NBT 恢復", - "litematica.config.generic.name.pasteIgnoreEntities": "貼上忽略實體", - "litematica.config.generic.name.pasteIgnoreInventories": "貼上忽略物品欄", - "litematica.config.generic.name.pasteToMcFunctionFiles": "貼上到 .mcfunction 檔案", - "litematica.config.generic.name.pasteUseFillCommand": "使用 fill 填充", - "litematica.config.generic.name.pasteUsingCommandsInSp": "在單人遊戲中使用命令貼上", - "litematica.config.generic.name.pasteUsingServux": "使用 Servux 貼上", - "litematica.config.generic.name.pickBlockAvoidDamageable": "避免選擇可損壞物品", - "litematica.config.generic.name.pickBlockAvoidTools": "避免選擇工具", - "litematica.config.generic.name.pickBlockEnabled": "方塊抓取啟用", - "litematica.config.generic.name.pickBlockIgnoreNbt": "pickBlockIgnoreNbt", - "litematica.config.generic.name.pickBlockShulkers": "界伏盒選取", - "litematica.config.generic.name.pickBlockableSlots": "快速選擇欄位", - "litematica.config.generic.name.placementRestriction": "放置限制", - "litematica.config.generic.name.renderMaterialListInGuis": "在 GUI 中顯示材質清單", - "litematica.config.generic.name.renderThreadNoTimeout": "移除渲染超時", - "litematica.config.generic.name.serverNbtRequestRate": "伺服器 NBT 請求速率", - "litematica.config.generic.name.signTextPaste": "貼上告示牌文字", - "litematica.config.generic.name.toolItem": "工具", - "litematica.config.generic.name.toolItemEnabled": "啟用工具項目", - "litematica.config.generic.name.toolItemComponents": "toolItemComponents", - "litematica.config.generic.name.unhideSchematicVCS": "不隱藏原理圖版本控制系統", - "litematica.config.visuals.name.enableAreaSelectionBoxesRendering": "顯示選區邊框", - "litematica.config.visuals.name.enablePlacementBoxesRendering": "顯示投影邊框", - "litematica.config.visuals.name.enableRendering": "開啟全部渲染", - "litematica.config.visuals.name.enableSchematicBlocksRendering": "顯示投影方塊", - "litematica.config.visuals.name.enableSchematicFluidRendering": "enableSchematicFluidRendering", - "litematica.config.visuals.name.enableSchematicOverlay": "顯示方塊特征", - "litematica.config.visuals.name.enableSchematicRendering": "啟用原理圖渲染", - "litematica.config.visuals.name.renderSchematicMaxThreads": "原理圖渲染最大線程數", - "litematica.config.visuals.name.ghostBlockAlpha": "幽靈方塊透明度", - "litematica.config.visuals.name.ignoreExistingFluids": "忽略投影内液體", - "litematica.config.visuals.name.overlayReducedInnerSides": "减少内側面渲染", - "litematica.config.visuals.name.placementBoxSideAlpha": "放置邊框透明度", - "litematica.config.visuals.name.renderAreaSelectionBoxSides": "顯示選區框邊", - "litematica.config.visuals.name.renderBlocksAsTranslucent": "投影方塊透明", - "litematica.config.visuals.name.renderCollidingSchematicBlocks": "顯示重叠方塊", - "litematica.config.visuals.name.renderErrorMarkerConnections": "顯示錯誤連接", - "litematica.config.visuals.name.renderErrorMarkerSides": "顯示錯誤方塊輪廓", - "litematica.config.visuals.name.renderPlacementBoxSides": "顯示投影邊框", - "litematica.config.visuals.name.renderPlacementEnclosingBox": "渲染封閉放置", - "litematica.config.visuals.name.renderPlacementEnclosingBoxSides": "渲染封閉放置邊緣", - "litematica.config.visuals.name.renderTranslucentBlockInnerSides": "渲染投影方塊", - "litematica.config.visuals.name.schematicOverlayEnableOutlines": "渲染框線", - "litematica.config.visuals.name.schematicOverlayEnableResorting": "投影覆蓋層啟用重新排序", - "litematica.config.visuals.name.schematicOverlayEnableSides": "渲染方塊表面", - "litematica.config.visuals.name.schematicOverlayModelOutline": "覆蓋模型框線", - "litematica.config.visuals.name.schematicOverlayModelSides": "覆蓋模型方塊表面", - "litematica.config.visuals.name.schematicOverlayOutlineWidth": "輪廓線寬度", - "litematica.config.visuals.name.schematicOverlayOutlineWidthThrough": "透視輪廓線寬度", - "litematica.config.visuals.name.schematicOverlayRenderThroughBlocks": "原理圖透視", - "litematica.config.visuals.name.schematicOverlayTypeExtra": "原理圖透視多於方塊", - "litematica.config.visuals.name.schematicOverlayTypeMissing": "原理圖透視缺失方塊", - "litematica.config.visuals.name.schematicOverlayTypeWrongBlock": "原理圖透視錯誤方塊", - "litematica.config.visuals.name.schematicOverlayTypeWrongState": "原理圖透視錯位方塊", - "litematica.config.visuals.name.schematicVerifierUseBlockModels": "原理圖驗證圖片", - "litematica.config.info_overlays.name.blockInfoLinesAlignment": "方塊提示位置", - "litematica.config.info_overlays.name.blockInfoOverlayAlignment": "方塊信息位置", - "litematica.config.info_overlays.name.infoHudAlignment": "材料 HUD 位置", - "litematica.config.info_overlays.name.toolHudAlignment": "工具 HUD 位置", - "litematica.config.info_overlays.name.blockInfoLinesEnabled": "方塊信息啟用", - "litematica.config.info_overlays.name.blockInfoLinesFontScale": "方塊信息大小", - "litematica.config.info_overlays.name.blockInfoLinesOffsetX": "方塊信息横移", - "litematica.config.info_overlays.name.blockInfoLinesOffsetY": "方塊信息縱移", - "litematica.config.info_overlays.name.blockInfoOverlayOffsetY": "方塊提示位置縱移", - "litematica.config.info_overlays.name.blockInfoOverlayEnabled": "方塊提示啟用", - "litematica.config.info_overlays.name.infoHudMaxLines": "材料 HUD 行數", - "litematica.config.info_overlays.name.infoHudOffsetX": "材料 HUD 横移", - "litematica.config.info_overlays.name.infoHudOffsetY": "材料 HUD 縱移", - "litematica.config.info_overlays.name.infoHudScale": "材料 HUD 縮放", - "litematica.config.info_overlays.name.infoOverlaysTargetFluids": "流體信息穿透", - "litematica.config.info_overlays.name.materialListHudMaxLines": "材料 HUD 最大行數", - "litematica.config.info_overlays.name.materialListHudScale": "材料 HUD 縮放", - "litematica.config.info_overlays.name.statusInfoHud": "狀態信息 HUD ", - "litematica.config.info_overlays.name.statusInfoHudAuto": "狀態 HUD 自動顯示", - "litematica.config.info_overlays.name.toolHudOffsetX": "工具 HUD 横移", - "litematica.config.info_overlays.name.toolHudOffsetY": "工具 HUD 縱移", - "litematica.config.info_overlays.name.toolHudScale": "工具 HUD 縮放", - "litematica.config.info_overlays.name.verifierErrorHilightAlpha": "驗證錯誤方塊高亮", - "litematica.config.info_overlays.name.verifierErrorHilightMaxPositions": "驗證錯誤方塊上限", - "litematica.config.info_overlays.name.verifierOverlayEnabled": "原理圖驗證渲染", - "litematica.config.info_overlays.name.warnDisabledRendering": "關閉警告信息", - "litematica.config.colors.name.areaSelectionBoxSideColor": "選區邊框顏色", - "litematica.config.colors.name.hightlightBlockInInventoryColor": "高亮顯示顏色", - "litematica.config.colors.name.materialListHudItemCountsColor": "材料數量顏色", - "litematica.config.colors.name.schematicRebuildBreakPlaceOverlayColor": "重建原理圖删除指示器", - "litematica.config.colors.name.schematicRebuildBreakExceptPlaceOverlayColor": "重建原理圖保留指示器", - "litematica.config.colors.name.schematicRebuildReplaceOverlayColor": "重建原理圖替換指示器", - "litematica.config.colors.name.schematicOverlayColorExtra": "多餘方塊顏色", - "litematica.config.colors.name.schematicOverlayColorMissing": "缺失方塊顏色", - "litematica.config.colors.name.schematicOverlayColorWrongBlock": "錯誤方塊顏色", - "litematica.config.colors.name.schematicOverlayColorWrongState": "錯誤方向顏色", - "litematica.config.hotkeys.name.addSelectionBox": "添加選區", - "litematica.config.hotkeys.name.cloneSelection": "克隆選區", - "litematica.config.hotkeys.name.deleteSelectionBox": "删除選區", - "litematica.config.hotkeys.name.easyPlaceUseKey": "輕鬆放置使用鍵", - "litematica.config.hotkeys.name.easyPlaceToggle": "輕鬆放置(切換)", - "litematica.config.hotkeys.name.executeOperation": "執行操作", - "litematica.config.hotkeys.name.invertGhostBlockRenderState": "調整投影方塊渲染狀態", - "litematica.config.hotkeys.name.invertOverlayRenderState": "調整投影線框渲染狀態", - "litematica.config.hotkeys.name.layerModeNext": "下一渲染模式", - "litematica.config.hotkeys.name.layerModePrevious": "上一渲染模式", - "litematica.config.hotkeys.name.layerNext": "下一層", - "litematica.config.hotkeys.name.layerPrevious": "上一層", - "litematica.config.hotkeys.name.layerSetHere": "設置初始層", - "litematica.config.hotkeys.name.nudgeSelectionNegative": "正向推動選區", - "litematica.config.hotkeys.name.nudgeSelectionPositive": "反向推動選區", - "litematica.config.hotkeys.name.moveEntireSelection": "選區定位", - "litematica.config.hotkeys.name.openGuiAreaSettings": "區域編輯器", - "litematica.config.hotkeys.name.openGuiLoadedSchematics": "原理圖加載", - "litematica.config.hotkeys.name.openGuiMainMenu": "主界面", - "litematica.config.hotkeys.name.openGuiMaterialList": "材料清單", - "litematica.config.hotkeys.name.openGuiPlacementSettings": "配置原理圖放置", - "litematica.config.hotkeys.name.openGuiSchematicPlacements": "管理原理圖放置", - "litematica.config.hotkeys.name.openGuiSchematicProjects": "原理圖檔案夹", - "litematica.config.hotkeys.name.openGuiSchematicVerifier": "原理圖驗證器", - "litematica.config.hotkeys.name.openGuiSelectionManager": "選區管理器", - "litematica.config.hotkeys.name.openGuiSettings": "配置選單", - "litematica.config.hotkeys.name.operationModeChangeModifier": "模式選擇", - "litematica.config.hotkeys.name.pickBlockFirst": "選擇當前方塊", - "litematica.config.hotkeys.name.pickBlockLast": "選擇可放置方塊", - "litematica.config.hotkeys.name.pickBlockToggle": "選擇方塊開關", - "litematica.config.hotkeys.name.renderInfoOverlay": "方塊信息", - "litematica.config.hotkeys.name.renderOverlayThroughBlocks": "原理圖透視渲染", - "litematica.config.hotkeys.name.rerenderSchematic": "重載渲染圖", - "litematica.config.hotkeys.name.saveAreaAsInMemorySchematic": "將原理圖存至記憶體", - "litematica.config.hotkeys.name.saveAreaAsSchematicToFile": "將原理圖存至檔案", - "litematica.config.hotkeys.name.schematicEditBreakAllExcept": "删除其他方塊", - "litematica.config.hotkeys.name.schematicEditBreakPlaceAll": "删除同類方塊", - "litematica.config.hotkeys.name.schematicEditBreakPlaceDirection": "同方塊線性增删", - "litematica.config.hotkeys.name.schematicEditReplaceAll": "替換同類方塊", - "litematica.config.hotkeys.name.schematicEditReplaceBlock": "替換其他方塊", - "litematica.config.hotkeys.name.schematicEditReplaceDirection": "同方塊線性替換", - "litematica.config.hotkeys.name.schematicPlacementRotation": "schematicPlacementRotation", - "litematica.config.hotkeys.name.schematicPlacementMirror": "schematicPlacementMirror", - "litematica.config.hotkeys.name.schematicVersionCycleModifier": "投影版本選擇", - "litematica.config.hotkeys.name.schematicVersionCycleNext": "下一個投影版本", - "litematica.config.hotkeys.name.schematicVersionCyclePrevious": "上一個投影版本", - "litematica.config.hotkeys.name.selectionGrabModifier": "移動選區", - "litematica.config.hotkeys.name.selectionGrow": "擴大選區", - "litematica.config.hotkeys.name.selectionGrowModifier": "擴大選區調節器", - "litematica.config.hotkeys.name.selectionNudgeModifier": "位移調節器", - "litematica.config.hotkeys.name.selectionModeCycle": "選區模式選擇", - "litematica.config.hotkeys.name.selectionShrink": "精簡選框", - "litematica.config.hotkeys.name.setAreaOrigin": "設置初始角點", - "litematica.config.hotkeys.name.setSelectionBoxPosition1": "設置角點 1", - "litematica.config.hotkeys.name.setSelectionBoxPosition2": "設置角點 2", - "litematica.config.hotkeys.name.toggleAllRendering": "切換所有渲染", - "litematica.config.hotkeys.name.toggleAreaSelectionBoxesRendering": "區域選框渲染", - "litematica.config.hotkeys.name.toggleSchematicRendering": "投影方塊渲染", - "litematica.config.hotkeys.name.toggleInfoOverlayRendering": "方塊信息顯示", - "litematica.config.hotkeys.name.toggleOverlayRendering": "投影方塊顯示", - "litematica.config.hotkeys.name.toggleOverlayOutlineRendering": "方塊描邊顯示", - "litematica.config.hotkeys.name.toggleOverlaySideRendering": "方塊表面顯示", - "litematica.config.hotkeys.name.togglePlacementBoxesRendering": "範圍框線顯示", - "litematica.config.hotkeys.name.togglePlacementRestriction": "放置位置限制", - "litematica.config.hotkeys.name.toggleSchematicBlockRendering": "投影方塊視覺", - "litematica.config.hotkeys.name.toggleSignTextPaste": "告示牌文本", - "litematica.config.hotkeys.name.toggleTranslucentRendering": "透明切換", - "litematica.config.hotkeys.name.toggleVerifierOverlayRendering": "驗證覆蓋", - "litematica.config.hotkeys.name.toolEnabledToggle": "工具切換", - "litematica.config.hotkeys.name.toolPlaceCorner1": "角點 1 放置", - "litematica.config.hotkeys.name.toolPlaceCorner2": "角點 2 放置", - "litematica.config.hotkeys.name.toolSelectElements": "選區", - "litematica.config.hotkeys.name.toolSelectModifierBlock1": "主方塊選擇", - "litematica.config.hotkeys.name.toolSelectModifierBlock2": "副方塊選擇", - "litematica.config.hotkeys.name.unloadCurrentSchematic": "卸載投影", - "litematica.config.generic.comment.easyPlaceProtocolVersion": "要使用的 \"確放置協議\" 類型。\n- 自動: 在單人遊戲中使用 v3, 在多人遊戲中默認使用僅半磚,\n 除非伺服器有發送 'carpet:hello' 數據包的 Carpet mod\n 在這種情況下該伺服器使用 v2。\n- 版本 3: 僅支援 Litematica 本身(在單人遊戲中)或 Servux。\n- 版本 2: 與帶有 Carpet mod 的伺服器兼容\n (可以是 skyrising 和 DeadlyMC 的 QuickCarpet,\n 或者是 FabricCarpet 附加的 CarpetExtra。\n 在這兩種情況下都需要在伺服器上啟用 'accurateBlockPlacement' Carpet 規則)。\n- 僅半磚: 只修復頂部半磚。與 Paper 伺服器兼容。\n- 無: 不修改坐標。", - "litematica.config.generic.comment.pasteNbtRestoreBehavior": "使用哪種方法來嘗試恢復方塊的 NBT 數據? \n- Place & Data Modify,會把带 NBT 的方塊放在玩家附近後 \n 用 data modify 指令轉換這些用 setblock 放的方塊 \n- Place & Clone,會試放置带 NBT 方塊在玩家附近然後 \n 用 clone 指令複製到最終位置 \n- Teleport & Place,會嘗試 tp 到附近位置然後直接在 \n 正確的位置放下带 NBT 方塊 \n请注意 Teleport & Place 方法現在不太好用甚至完全用不了。 \n建議的方法是 Place & Data Modify,然而要讓這種方法生效 \n得降低貼上命令限制到 1/tick 並將貼上間隔增加到 \n1-4 個 tick 或者調别的什麼東西 \n因此你只應當用這種方法貼上需要遷移數据的重要方塊。 \n例如,做了包含庫存内容的原理圖, \n然後在替換規則被設置為 None 的時候貼上原理圖。", - "litematica.config.generic.comment.pasteReplaceBehavior": "在貼上原理圖工具模式中替換現有方塊的方式", - "litematica.config.generic.comment.placementReplaceBehavior": "向原理圖世界添加方塊時的方塊替換行為。\n\n這允許使用重疊放置\n而不會總是讓後處理的放置用空氣覆蓋先前的放置。\n另一方面,一些方塊如光源方塊被視為空氣,\n所以它們需要「全部」替換行為才能被放置。", - "litematica.config.generic.comment.placementRestrictionWarn": "當輕鬆放置模式或放置限制阻止玩家放置一個方塊時,\n選擇要顯示的警告信息類型\n-物品欄模式:顯示在物品欄上方\n-消息模式:橙色的彈出消息樣式", - "litematica.config.generic.comment.selectionCornersMode": "要使用的選區模式(角點,或展開)", - "litematica.config.generic.comment.customSchematicBaseDirectoryEnabled": "如果啟用該功能,則在「customSchematicBaseDirectory」\n中設置的目錄路徑將用為原理圖的根目錄,\n而不是正常的§1 .minecraft/schematics/ §r目錄", - "litematica.config.generic.comment.customSchematicBaseDirectory": "如果啟用了自定義原理圖目錄\n所要使用的原理圖的根目錄", - "litematica.config.generic.comment.areaSelectionsPerWorld": "使用每個世界或伺服器根目錄進行選區\n§6注意:直播時请勿關閉此功能,\n§6否則選區瀏覽器將顯示伺服器 IP\n§6在指南以及當前選擇名稱/路徑中\n§6直到您再次更改當前目錄和選擇", - "litematica.config.generic.comment.betterRenderOrder": "如果啟用,則通過將不同的渲染調用\n注入到原版渲染代碼中來完成原理圖渲染。\n 這應該會使半透明方塊渲染/排序更佳\n並且原理圖方塊不會通過客戶端世界方塊/地形進行渲染。\n如果渲染不起作用(例如使用 Optifine),\n請嘗試禁用此選項。", - "litematica.config.generic.comment.changeSelectedCornerOnMove": "如果啟用,那麼在使用角點模式進行選區時\n選區的角總是被設置為最後選擇的角\n(最後選擇的角就是角點的框線與面都有顏色)\n(PS:雖然在實際使用過程當中沒有太大影響)", - "litematica.config.generic.comment.cloneAtOriginalPosition": "如果啟用,那麼使用克隆快速鍵時\n將在原来選擇的區域位置克隆,\n而不是在玩家的當前位置", - "litematica.config.generic.comment.commandDisableFeedback": "如果啟用,命令反饋將被自動禁用,\n然後在多人遊戲中的貼上,填充和删除操作\n(使用 /setblock 和 /fill命令)將沒有反饋,\n即在僅僅在任務開始時禁用 sendCommandFeedback 遊戲規則\n在任務結束時重新啟用 sendCommandFeedback 遊戲規則", - "litematica.config.generic.comment.commandFillMaxVolume": "可以通過命令填充/删除操作更改的每個單獨框的最大的大小/體積。\n更大的區域/體積將被分割為多個命令去執行。\n但無論如何,所有區域在一開始也被分割為多個區塊。", - "litematica.config.generic.comment.commandFillNoChunkClamp": "禁用將填充體積劃分為子區塊\n(在填充、替換和删除模式下)\n效果:填充、替換和删除操作在功能開啟前是按子區塊操作的\n開啟功能候是直接批量删\n(樣本較少沒有看出是什麼方式)", - "litematica.config.generic.comment.commandLimitPerTick": "當玩家在伺服器上使用貼上,填充和删除功能時,他們將使用 setblock 和 fill 指令,\n該變量控制每個遊戲周期所發送的最大指令數。请注意,在使用 NBT 恢復功能時,\n貼上功能可能會因幾個命令而失敗,這需要為每個塊添加兩個額外的指令。", - "litematica.config.generic.comment.commandNameClone": "在伺服器的創造模式中使用 clone 命令時要使用的 clone 命令名\n如果 NBT 遷移選項設置為「Place & Clone」,則當前功能僅使用貼上。", - "litematica.config.generic.comment.commandNameFill": "在伺服器的創造模式中使用 fill 命令時要使用的 fill 命令名", - "litematica.config.generic.comment.commandNameSetblock": "在伺服器的創造模式中使用 setblock 命令時要使用的\nsetblock 命令名,即在世界上貼上原理圖功能", - "litematica.config.generic.comment.commandNameSummon": "在伺服器的創造模式中使用Summon 命令時要使用的\nSummon 命令名,即在世界上貼上原理圖功能", - "litematica.config.generic.comment.commandTaskInterval": "遊戲中的貼上,填充和删除任務的 tick 間隔。\ncommandLimitPerTick 配置設置每次執行發送的命令的最大數量,\n這個變量配置下一次執行命令之前的遊戲時間間隔。", - "litematica.config.generic.comment.commandUseWorldEdit": "如果啟用該功能,而不是使用已經配置的 setblock 或 fill 命令,\n則使用 World Edit 的 //pos1、//pos2 和 //set 命令。\n注意,使用 WorldEdit 指令會比正常貼上大約慢 3 倍\n且由於每 tick 的命令限制,比起使用普通命令,\n我們需要每個塊或區域執行多個命令(//pos1 //pos2 //set)。\n§6警告:如果使用 WorldEdit 指令或 fill 命令而不是單獨的 setblock 命令!\n§6貼上與替換功能將無法使用!\n因此,如果您有權限運行它們,建議使用普通命令。\n另一件讓你在某些情况下更喜歡使用 WE 命令的事情是,\n如果伺服器沒有 Carpet mod 所導致的「/Carpet fillUpdates false」\n規則不可用時,可以使用該功能防止方塊更新。", - "litematica.config.generic.comment.debugLogging": "在遊戲控制台中啟用一些調試日誌消息,用於調試某些問題或崩潰。", - "litematica.config.generic.comment.datafixerMode": "應用於載入原理圖的可設定資料修復程式等級。\n選項可以透過繞過原版資料修復程式來提高載入原理圖的效能,\n但如果它被禁用也可能導致嚴重的資料遺失。", - "litematica.config.generic.comment.datafixerDefaultSchema": "原版數據修復的預設架構值\n\n用於調整可能的最低值,以及當載入的原理圖不包含此資訊時使用的值。\n\n§6警告:此設定應在 Litematica 開發人員(例如 masa 本身)的指導下使用\n§6如有疑問,請保留 Minecraft 1.12 的預設值。", - "litematica.config.generic.comment.easyPlaceClickAdjacent": "Uses the Clicks Adjacent code from 1.12.2 ornithe.\nThis only works with §a\"easyPlacePostRewrite\"§r enabled.", - "litematica.config.generic.comment.easyPlaceFirst": "這將使得輕鬆放置模式放置你首先看到的方塊\n而不是最遠的方塊,設置為關閉將可以放置多層\n因為是由遠到近放置。", - "litematica.config.generic.comment.easyPlaceHoldEnabled": "啟用後,您可以按住使用鍵\n根据投影以放置它們,\n而無需單獨點擊每個方塊", - "litematica.config.generic.comment.easyPlaceMode": "啟用後,只需根据投影以放置它們", - "litematica.config.generic.comment.easyPlacePostRewrite": "When enabled, the Easy Place mode uses the\n\"Post-Rewrite\" code from 1.12.2 ornithe.\n§6WARNING! THIS IS EXPERIMENTAL", - "litematica.config.generic.comment.easyPlaceSinglePlayerHandling": "如果啟用該功能,那麼投影將在單人遊戲中處理所謂的「地毯精確放置協議」。\n如果你打算在單人遊戲中使用輕鬆放置,建議保持啟用。", - "litematica.config.generic.comment.easyPlaceSwapInterval": "輕鬆放置模式在背包和手中塊交換後等待的間隔(以毫秒為單位)。有效避免因為高 ping 放置錯誤的方塊。", - "litematica.config.generic.comment.easyPlaceSwingHand": "使用 輕鬆放置 時揮舞玩家的手。", - "litematica.config.generic.comment.easyPlaceVanillaReach": "如果啟用,手長將從 6 改為 4.5\n伺服器便不會拒绝放置方塊", - "litematica.config.generic.comment.entityDataSync": "使用 Servux 的實體資料同步協定\n從伺服器取得實體數據", - "litematica.config.generic.comment.entityDataSyncBackup": "當 Servux 不可用時,使用 Vanilla NBT 查詢方法。\n此方法需要操作員權限。", - "litematica.config.generic.comment.executeRequireHoldingTool": "需要持有已啟用的工具項以使 executeOperation 快速鍵工作", - "litematica.config.generic.comment.fixChestMirror": "修復投影中破碎的大箱子", - "litematica.config.generic.comment.fixRailRotation": "如果為真,那麼就對軌道中常見的 Bug 進行了修正,\n即南北方向和東西方向的直線軌道 180 度旋轉時逆時針旋轉90度,而不是 >_>\n應該是對於軌道顯示做了調整", - "litematica.config.generic.comment.generateLowercaseNames": "如果啟用,則默認情况下建議的原理圖名稱將為小寫並使用下劃線而不是空格", - "litematica.config.generic.comment.highlightBlockInInventory": "當啟用時,背包内高亮顯示指向原理圖的方塊\n(無論是物品欄還是界伏盒)", - "litematica.config.generic.comment.itemUsePacketCheckBypass": "該功能繞過了 1.18.2 中新添加的距離/座標校驗。\n該校驗破壞了「精確放置協議」的功能\n並導致任何带有旋轉(或其他属性)\n请求放置的方塊變成了幽靈方塊\n基本上沒有必要禁用這個校驗。\n因為在 1.18.2 之前,這個校驗甚至都不存在", - "litematica.config.generic.comment.layerModeFollowsPlayer": "如果開啟,則渲染層跟随玩家,但是只能跟随當前高度", - "litematica.config.generic.comment.loadEntireSchematics": "如果啟用,那麼整個投影總是同時加載。如果為關閉,則只加載客戶端視距内的部分。", - "litematica.config.generic.comment.materialListIgnoreState": "啟用後,將忽略確切的方塊狀態,僅需要匹配方塊類型。", - "litematica.config.generic.comment.pasteAlwaysUseFill": "這將會强制使用 fill 命令(而不是 setblock),即使是單個方塊", - "litematica.config.generic.comment.pasteIgnoreBlockEntitiesEntirely": "如果啟用,則在多人遊戲中通過基於命令的貼上根本不貼上實體方塊。\n如果你想在第二遍中對箱子等方塊使用 NBT-restore(NBT 遷移)選項,\n這使您可以更輕鬆地在第二遍中貼上,\n然而這通常需要更慢的貼上速度/命令速率。", - "litematica.config.generic.comment.pasteIgnoreBlockEntitiesFromFill": "如果啟用,那麼在使用填充命令(fill)貼上時將忽略所有實體方塊。\n這使得實體方塊可以單獨貼上,如果想要使用 NBT-restore(NBT 遷移)恢復選項,\n這是必需的。", - "litematica.config.generic.comment.pasteIgnoreCommandLimitWithNbtRestore": "如果啟用,則在貼上带有啟用了 NBT-restore(NBT 遷移)選項的實體方塊時將忽略命令限制。\n 這似乎以某種方式解決了一個問題,即NBT-restore(NBT 遷移)會因許多命令速率低的方塊而失敗。", - "litematica.config.generic.comment.pasteIgnoreEntities": "如果啟用,則貼上功能將不會貼上任何實體", - "litematica.config.generic.comment.pasteIgnoreInventories": "貼上原理圖時不要貼上庫存内容\n(大概指箱子内物品)", - "litematica.config.generic.comment.pasteToMcFunctionFiles": "如果啟用,則不是將實際的原理圖貼上到世界,\n它們將作為 setblock 命令寫入文本檔案。", - "litematica.config.generic.comment.pasteUseFillCommand": "如果啟用了該功能,那麼貼上時不是只使用單獨的 /setblock 命令,\n而是基於命令的貼上操作(比如在伺服器後台使用)會嘗試對\n同一塊的任何連續區域使用 /fill 命令。這在單人遊戲中沒有效果,\n因為 Mod 直接在伺服器的世界中設置方塊,而且根本不使用命令。", - "litematica.config.generic.comment.pasteUsingCommandsInSp": "這是一個臨時的方法,可以在單人遊戲中基於命令貼上,\n這使得在單人遊戲中可以使用部分渲染層貼上原理圖,\n但這目前不適用於單人遊戲通常使用的貼上方式。", - "litematica.config.generic.comment.pasteUsingServux": "使用Servux 將原理圖直接貼上到伺服器。\n此方法比傳統的基於命令的方法快得多,\n並且支援恢復實體NBT 資料。", - "litematica.config.generic.comment.pickBlockAvoidDamageable": "在開啟輕鬆放置後,避免方塊替換掉任何在快速欄中\n有耐久度的物品。§d例如:打火石,毛刷等§r", - "litematica.config.generic.comment.pickBlockAvoidTools": "在開啟輕鬆放置後,避免方塊替換掉任何在快速欄中的工具。", - "litematica.config.generic.comment.pickBlockEnabled": "啟用原理圖世界拾取區塊快速鍵。\n還有一個用於切換此選項的快速鍵來切換這些快速鍵...o.o", - "litematica.config.generic.comment.pickBlockIgnoreNbt": "Enables the \"pickBlockIgnoreNbt\" setting for\nEasy Place Post-Rewrite from 1.12.2 ornithe.", - "litematica.config.generic.comment.pickBlockShulkers": "如果啟用,那麼如果選取方塊物品沒有在玩家背包找到\n那麼就切換出包含他的界伏盒", - "litematica.config.generic.comment.pickBlockableSlots": "允許用於投影原理圖挑選的快速欄\n(12345 大概是整個背包加上副手)", - "litematica.config.generic.comment.placementRestriction": "啟用後,只有在持有目標位置的正確項目時才能使用使用鍵,\n且目標位置必須在原理圖中缺少區塊", - "litematica.config.generic.comment.renderMaterialListInGuis": "材質清單是否應該在 GUI 中呈現", - "litematica.config.generic.comment.renderThreadNoTimeout": "從渲染工作線程中移除超時。\n如果你在處理大型原理圖的時候渲染的很不流暢,\n試著禁用它。但是在某些情况下,它會使原理圖的渲染速度慢很多。", - "litematica.config.generic.comment.serverNbtRequestRate": "限制伺服器實體資料同步器的請求速率", - "litematica.config.generic.comment.signTextPaste": "該功能能在原理圖的覆蓋層顯示投影中告示牌的内容\n§d這樣就不用背了捏~", - "litematica.config.generic.comment.toolItem": "作為用於選擇的工具,雖然默認是木棍\n(§3但是其實你想拿末影龍頭也是可以的hhh§r)", - "litematica.config.generic.comment.toolItemEnabled": "如果啟用該選項,那麼你可以使用工具進行操作\n如果你關了的话,那它就是一根樸素的木棍\n§6如果你沒有改默認工具的话——ZMDF§r", - "litematica.config.generic.comment.toolItemComponents": "A Data Components-aware version of toolItem.\nSet to \"empty\" to disable.\nThe syntax accepted is the same as the \"/give\" command.", - "litematica.config.generic.comment.unhideSchematicVCS": "取消隐藏 Schematic VCS(版本控制系統)選單按钮,\n並啟用快速鍵和 VCS 功能。(這之前被稱為原理圖項目。)\n\n一般来說,你不應該使用這個功能,\n除非你真的知道它是如何工作的。\n它在一定程度上改變了選區、放置和貼上的工作方式,\n特别是在貼上時還存在一個區域删除操作。\n\n基本上,這個功能是為更新、修改原理圖而設計的,\n它允許你更容易地為同一版本原理圖創建多個版本/快照,\n也可以通過先删除當前版本,\n然後貼上下一個版本来在不同版本之間切換。", - "litematica.config.visuals.comment.enableAreaSelectionBoxesRendering": "該選項可以切換是否顯示選區的邊框", - "litematica.config.visuals.comment.enablePlacementBoxesRendering": "該選項可以切換是否顯示投影區域的邊框", - "litematica.config.visuals.comment.enableRendering": "主渲染切換選項,該選項可切換所有渲染是否開啟", - "litematica.config.visuals.comment.enableSchematicBlocksRendering": "該選項可以切換是否在投影内顯示方塊的貼圖\n(開啟後可以更好辨識出投影缺失的是什麼方塊)", - "litematica.config.visuals.comment.enableSchematicFluidRendering": "Enables schematic fluid rendering.\nDisabling this allows you to see the blocks and overlays easier.\nThis also culls the overlay where the Fluid was.", - "litematica.config.visuals.comment.enableSchematicOverlay": "該選項可以切換是否在投影内使用邊框表示未放置的方塊\n未被放置的方塊雖然沒有邊框,但是仍可以顯示(顯示狀態由透明度決定)", - "litematica.config.visuals.comment.enableSchematicRendering": "該選項可以切換是否顯示投影原理圖", - "litematica.config.visuals.comment.renderSchematicMaxThreads": "最大原理圖世界渲染線程大小\n這將直接影響整體多線程性能\n\n§6謹慎使用!!這只會在§6重新加入後生效。", - "litematica.config.visuals.comment.ghostBlockAlpha": "虚影方塊的 alpha 值,當它們渲染為半透明時\n§6注意:§7您還需要單獨啟用方塊半透明化,\n使用「renderBlocksAsTranslucent」選項!", - "litematica.config.visuals.comment.ignoreExistingFluids": "如果啟用該選項,原理圖中如果有空氣或其他塊,\n那麼任何的「额外塊」或「錯誤塊」的液體將被忽略。\n基本上,這使得在水下建造東西少了很多麻煩。\n注意:你很可能還想同時啟用「renderCollidingSchematicBlocks(渲染重叠塊)」,以允許塊在流體中渲染。", - "litematica.config.visuals.comment.overlayReducedInnerSides": "如果啟用,可以使得投影内方塊接觸的側面不被顯示\n有兩個優點\n-1. 首先减少了投影的渲染工作量\n-2. 在投影内部時,内部的染色會變淡\n(§6雖然默認是關閉但建議開啟-ZMDF§r)", - "litematica.config.visuals.comment.placementBoxSideAlpha": "子區域邊框的透明度(§2沒有找到實際的功能體現——ZMDF§r)", - "litematica.config.visuals.comment.renderAreaSelectionBoxSides": "該選項可以選擇是否開啟選區邊框顯示(渲染)", - "litematica.config.visuals.comment.renderBlocksAsTranslucent": "如果啟用該選項,投影原理圖内的方塊展示將由\n不透明變為半透明狀態", - "litematica.config.visuals.comment.renderCollidingSchematicBlocks": "如果啟用該選項,那麼當客戶端世界中存在錯誤的方塊時\n投影原理圖内的方塊仍然會進行顯示\n當你試圖在一些有水或著雪層的地方建造時。\n(就是無視雪片與流動液體的意思,大概)", - "litematica.config.visuals.comment.renderErrorMarkerConnections": "啟用該選項時,當用戶在使用驗證器驗證原理圖是否正確後,\n當你在驗證器内選中了錯誤方塊\n錯誤方塊間會有連線。\n(這個功能有部分bug,但是作者應該是為了方便錯誤方塊的定位)", - "litematica.config.visuals.comment.renderErrorMarkerSides": "關閉該選項時,用戶在使用驗證器驗證原理圖是否正確後,\n當你在驗證器内選中了錯誤方塊\n它的展示方式將不僅僅標明顏色,\n還會標明它的貼圖(便於用戶知道錯誤的方塊是什麼)", - "litematica.config.visuals.comment.renderPlacementBoxSides": "如果啟用該選項,則放置區域會顯示側面顏色\n(§6就是側面將顯示默認的選區顏色,影響視線——ZMDF§r)", - "litematica.config.visuals.comment.renderPlacementEnclosingBox": "如果啟用,則在投影中的所有子區域周圍呈現一個封閉框", - "litematica.config.visuals.comment.renderPlacementEnclosingBoxSides": "如果啟用,則在投影中的所有子區域周圍的封閉框會顯示一個完整的面", - "litematica.config.visuals.comment.renderTranslucentBlockInnerSides": "如果啟用該選項,則投影内所有方塊的面將成為透明\n(這將使得你可以看透很多方塊,嗯沒錯,看透。)", - "litematica.config.visuals.comment.schematicOverlayEnableOutlines": "如果啟用該選項,投影原理圖方塊邊框的框線將會顯示", - "litematica.config.visuals.comment.schematicOverlayEnableResorting": "為原理圖塊疊加啟用半透明排序", - "litematica.config.visuals.comment.schematicOverlayEnableSides": "如果啟用該選項,投影原理圖方塊的塊面將會顯示", - "litematica.config.visuals.comment.schematicOverlayModelOutline": "如果啟用,那麼原理圖覆蓋將使用塊模型的四塊/頂點,而不是傳統的全塊覆蓋\n(主要針對不完整方塊)", - "litematica.config.visuals.comment.schematicOverlayModelSides": "如果啟用,則原理圖疊加將使用區塊模型四邊形/頂點,\n而不是傳統的完整區塊疊加", - "litematica.config.visuals.comment.schematicOverlayOutlineWidth": "投影原理圖當中方塊輪廓線的寬度設置", - "litematica.config.visuals.comment.schematicOverlayOutlineWidthThrough": "投影原理圖當中透視方塊輪廓線的寬度設置", - "litematica.config.visuals.comment.schematicOverlayRenderThroughBlocks": "如果啟用,那麼原理圖將可透視觀察。\n這可能只在您完成構建並希望更容易地看到任何錯誤時才有用", - "litematica.config.visuals.comment.schematicOverlayTypeExtra": "當開啟了原理圖透視後,關閉該選項將不再顯示多餘的方塊", - "litematica.config.visuals.comment.schematicOverlayTypeMissing": "當開啟了原理圖透視後,關閉該選項將不再顯示缺失的方塊", - "litematica.config.visuals.comment.schematicOverlayTypeWrongBlock": "當開啟了原理圖透視後,關閉該選項將不再顯示錯誤的方塊", - "litematica.config.visuals.comment.schematicOverlayTypeWrongState": "當開啟了原理圖透視後,關閉該選項將不再顯示錯位的方塊", - "litematica.config.visuals.comment.schematicVerifierUseBlockModels": "當你使用原理圖驗證的時候,如果你開啟了該選項,\n那麼原理圖驗證界面當中,只會存在文字,而並非方塊貼圖", - "litematica.config.info_overlays.comment.blockInfoLinesAlignment": "方塊信息彈窗的顯示位置", - "litematica.config.info_overlays.comment.blockInfoOverlayAlignment": "方塊信息在屏幕位置調整的選項", - "litematica.config.info_overlays.comment.infoHudAlignment": "材料信息位置的調整\n(其實和材料有關的 HUD 顯示都是這玩意)", - "litematica.config.info_overlays.comment.toolHudAlignment": "當你使用木棍時,將工具的 HUD 選擇區域定位與該位置", - "litematica.config.info_overlays.comment.blockInfoLinesEnabled": "如果開啟該功能,MiniHUD 將顯示方塊信息\n默認位於屏幕右上角", - "litematica.config.info_overlays.comment.blockInfoLinesFontScale": "默認在右上角的方塊信息的字體大小控制", - "litematica.config.info_overlays.comment.blockInfoLinesOffsetX": "方塊信息與邊框的横向偏移量(横向距離)", - "litematica.config.info_overlays.comment.blockInfoLinesOffsetY": "方塊信息與邊框的縱向偏移量(縱向距離)", - "litematica.config.info_overlays.comment.blockInfoOverlayOffsetY": "方塊信息彈窗的縱向偏移量", - "litematica.config.info_overlays.comment.blockInfoOverlayEnabled": "啟用方塊信息彈窗,其功能為圖形顯示方塊貼圖\n主要是可以在投影放錯時,為你提供投影原本方塊的信息。", - "litematica.config.info_overlays.comment.infoHudMaxLines": "控制材料HUD的最大行數", - "litematica.config.info_overlays.comment.infoHudOffsetX": "工具 HUD 與邊框的縱向偏移量(縱向距離)", - "litematica.config.info_overlays.comment.infoHudOffsetY": "材料 HUD 與邊框的縱向偏移量(縱向距離)", - "litematica.config.info_overlays.comment.infoHudScale": "控制材料HUD的縮放大小", - "litematica.config.info_overlays.comment.infoOverlaysTargetFluids": "啟用後,方塊信息叠加時\n將能够焦點定位到流體塊而不是穿過它們", - "litematica.config.info_overlays.comment.materialListHudMaxLines": "控制材料 HUD 的最大行數", - "litematica.config.info_overlays.comment.materialListHudScale": "控制材料 HUD 的縮放大小", - "litematica.config.info_overlays.comment.statusInfoHud": "啟用狀態信息的顯示,該顯示内容默認位於左下角\n其内容包含當前渲染層的狀態與層數\n當然,這是在手持非木棍的情况下顯示的。", - "litematica.config.info_overlays.comment.statusInfoHudAuto": "允許自動暂時開啟狀態信息 HUD 比如當需要時,\n例如當創建一個位置或者渲染禁用時", - "litematica.config.info_overlays.comment.toolHudOffsetX": "信息 HUD 相對於螢幕邊緣的 X 偏移量", - "litematica.config.info_overlays.comment.toolHudOffsetY": "信息 HUD 相對於螢幕邊緣的 Y 偏移量", - "litematica.config.info_overlays.comment.toolHudScale": "控制工具 HUD 的文本縮放大小", - "litematica.config.info_overlays.comment.verifierErrorHilightAlpha": "在打開原理圖驗證程序對當前放置進行驗證後,\n點擊驗證當中出現問題的方塊,\n錯誤的方塊將在透視狀態下所產生的亮度顯示", - "litematica.config.info_overlays.comment.verifierErrorHilightMaxPositions": "在打開原理圖驗證程序對當前放置進行驗證後,\n點擊驗證當中出現問題的方塊,\n錯誤的方塊在透視狀態下的最大數量顯示", - "litematica.config.info_overlays.comment.verifierOverlayEnabled": "啟用原理圖驗證渲染", - "litematica.config.info_overlays.comment.warnDisabledRendering": "當加載一個新的原理圖或創建一個新的位置時,\n是否應該顯示關於該層的一些警告消息", - "litematica.config.colors.comment.areaSelectionBoxSideColor": "選區未被選中時邊框的顏色", - "litematica.config.colors.comment.hightlightBlockInInventoryColor": "在物品欄中高亮顯示目標方塊的顏色", - "litematica.config.colors.comment.materialListHudItemCountsColor": "材料清單開啟 HUD 後的遊戲内材料數量的顏色", - "litematica.config.colors.comment.schematicRebuildBreakPlaceOverlayColor": "在重建原理圖模式的批量删除當中,\n在方向選擇器上的指示器顏色", - "litematica.config.colors.comment.schematicRebuildBreakExceptPlaceOverlayColor": "在重建原理圖模式當中,選擇保留方塊的指示器顏色", - "litematica.config.colors.comment.schematicRebuildReplaceOverlayColor": "在重建原理圖模式的批量替換當中,\n在方向選擇器上的指示器顏色", - "litematica.config.colors.comment.schematicOverlayColorExtra": "多餘方塊在投影内顯示的顏色", - "litematica.config.colors.comment.schematicOverlayColorMissing": "缺失方塊在投影内顯示的顏色", - "litematica.config.colors.comment.schematicOverlayColorWrongBlock": "錯誤方塊在投影内顯示的顏色", - "litematica.config.colors.comment.schematicOverlayColorWrongState": "方塊方向錯誤在投影内顯示的顏色", - "litematica.config.hotkeys.comment.addSelectionBox": "在當前位置添加一個新的選區(位置 1)", - "litematica.config.hotkeys.comment.cloneSelection": "快速克隆當前選定的區域,基本上是創建了一個儲存中的原理圖\n然後在當前位置創建一個原理圖並選擇它,並將工具模式切換為貼上。", - "litematica.config.hotkeys.comment.deleteSelectionBox": "删除當前選區", - "litematica.config.hotkeys.comment.easyPlaceUseKey": "當啟用輕鬆放置時,此鍵用於放置方塊", - "litematica.config.hotkeys.comment.easyPlaceToggle": "允許玩家快速的切換輕鬆放置的模式。", - "litematica.config.hotkeys.comment.executeOperation": "在填充、替換、貼上原理圖等模式中,\n以當前選擇模式或放置方式執行當前選擇的工具操作", - "litematica.config.hotkeys.comment.invertGhostBlockRenderState": "當按住該按鍵後,對投影的方塊渲染效果是否開啟進行調整。", - "litematica.config.hotkeys.comment.invertOverlayRenderState": "當按住該按鍵後,對投影的線框渲染效果是否開啟進行調整", - "litematica.config.hotkeys.comment.layerModeNext": "切換為下一個渲染模式", - "litematica.config.hotkeys.comment.layerModePrevious": "切換為上一個渲染模式", - "litematica.config.hotkeys.comment.layerNext": "將渲染的圖層向上移動一層", - "litematica.config.hotkeys.comment.layerPrevious": "將渲染的圖層向下移動一層", - "litematica.config.hotkeys.comment.layerSetHere": "將渲染層的初始位置設定為玩家當前位置", - "litematica.config.hotkeys.comment.nudgeSelectionNegative": "向面向方向前移選區位置,其效果與 Alt + 鼠標滚輪效果類似", - "litematica.config.hotkeys.comment.nudgeSelectionPositive": "向面向方向後移選區位置,其效果與 Alt + 鼠標滚輪效果類似", - "litematica.config.hotkeys.comment.moveEntireSelection": "移動整個選區至玩家所在的當前位置", - "litematica.config.hotkeys.comment.openGuiAreaSettings": "打開當前選區的區域設置 GUI 界面", - "litematica.config.hotkeys.comment.openGuiLoadedSchematics": "打開原理圖加載的 GUI 界面", - "litematica.config.hotkeys.comment.openGuiMainMenu": "打開Litematica的主界面選單", - "litematica.config.hotkeys.comment.openGuiMaterialList": "打開當前選擇的投影材料清單 GUI ", - "litematica.config.hotkeys.comment.openGuiPlacementSettings": "打開當前選區或其子區域的配置原理圖放置 GUI ", - "litematica.config.hotkeys.comment.openGuiSchematicPlacements": "打開管理原理圖放置 GUI ", - "litematica.config.hotkeys.comment.openGuiSchematicProjects": "打開原理圖工程檔案夹 GUI ", - "litematica.config.hotkeys.comment.openGuiSchematicVerifier": "打開當前選定的原理圖的原理圖驗證器 GUI ", - "litematica.config.hotkeys.comment.openGuiSelectionManager": "打開選區管理器的 GUI ", - "litematica.config.hotkeys.comment.openGuiSettings": "打開投影配置選單的 GUI ", - "litematica.config.hotkeys.comment.operationModeChangeModifier": "快速修改模式,當玩家手持木棍時。\n玩家可以按住該按鍵滚動滚輪快速調整模式。", - "litematica.config.hotkeys.comment.pickBlockFirst": "該按鍵可以選中指向的表面方塊,\n並將將其切換至手中", - "litematica.config.hotkeys.comment.pickBlockLast": "該按鍵可以選中當前可以放置的方塊\n怎麼解釋呢?就是說,這個鍵會選擇你現在可以放置的最遠的方塊,\n當然這得看你對準了哪個面", - "litematica.config.hotkeys.comment.pickBlockToggle": "在通用配置當中快速關閉或開啟方塊選擇的快速鍵\n這是一種快速切換其模式的方法。\n如果它們產生了什麼干擾(比如功能衝突)", - "litematica.config.hotkeys.comment.renderInfoOverlay": "在方塊放置後,如果是錯誤的放置,會提示投影原本的方塊信息\n如果是正確的,投影會顯示當前方塊的信息", - "litematica.config.hotkeys.comment.renderOverlayThroughBlocks": "該快速鍵將高亮顯示投影原理圖未完成部分\n高亮的部分會穿透顯示,無視方塊遮擋。", - "litematica.config.hotkeys.comment.rerenderSchematic": "使用該快速鍵重載原理圖,而不需要使用 F3 + A 刷新區塊", - "litematica.config.hotkeys.comment.saveAreaAsInMemorySchematic": "將當前選中區域的原理圖保存於記憶體當中", - "litematica.config.hotkeys.comment.saveAreaAsSchematicToFile": "將當前選中區域的原理圖保存於檔案當中", - "litematica.config.hotkeys.comment.schematicEditBreakAllExcept": "在重建原理圖的模式當中\n按住該鍵可使得玩家在原理圖當中僅保留指定的選中方塊\n這也就意味著除了你選中的方塊,其他投影方塊將被删除。", - "litematica.config.hotkeys.comment.schematicEditBreakPlaceAll": "在重建原理圖模式當中\n按住該按鍵可以删除所有同類方塊", - "litematica.config.hotkeys.comment.schematicEditBreakPlaceDirection": "在重建原理圖的模式當中\n按住該鍵可添加或删除原理圖内指定方向的相同方塊\n如果使用添加,該方塊會填满該方向的所有空位", - "litematica.config.hotkeys.comment.schematicEditReplaceAll": "在重建原理圖的模式當中\n按住該鍵可使用手中方塊替換原理圖内的相同方塊", - "litematica.config.hotkeys.comment.schematicEditReplaceBlock": "在重建原理圖的模式當中\n按住該鍵可使用手中方塊替換原理圖内的相同類型方塊\n然而這個類型很模糊", - "litematica.config.hotkeys.comment.schematicEditReplaceDirection": "在重建原理圖的模式當中\n按住該鍵可使用手中方塊替換原理圖内指定方向的相同方塊", - "litematica.config.hotkeys.comment.schematicPlacementRotation": "The schematic is rotated 90 degrees clockwise when pressed", - "litematica.config.hotkeys.comment.schematicPlacementMirror": "The Schematic is mirror flipped when pressed", - "litematica.config.hotkeys.comment.schematicVersionCycleModifier": "按住該鍵滚動滚輪可以選擇投影的版本", - "litematica.config.hotkeys.comment.schematicVersionCycleNext": "在版本控制工具模式下,循环到上一個投影版本的快速鍵", - "litematica.config.hotkeys.comment.schematicVersionCyclePrevious": "在版本控制工具模式下循環到下一個原理圖版本的快速鍵", - "litematica.config.hotkeys.comment.selectionGrabModifier": "按住快速鍵,抓取選擇框角點,\n移動選區(模式 7_移動)", - "litematica.config.hotkeys.comment.selectionGrow": "點擊快速鍵後,在任何相鄰的/對角線連接的塊周圍自動擴大選區範圍\n(§4然而它直接選中了我能看到的整個地圖 384*72*384 ——来自 ZMDF 的吐槽§r)", - "litematica.config.hotkeys.comment.selectionGrowModifier": "按住快速鍵,滑動滚輪\n可以延長體對角線的長度", - "litematica.config.hotkeys.comment.selectionNudgeModifier": "按住快速鍵,滑動滚輪\n可以移動選區位置", - "litematica.config.hotkeys.comment.selectionModeCycle": "在選區模式當中切換角點或展開模式。", - "litematica.config.hotkeys.comment.selectionShrink": "使用該快速鍵使得選區达到最小範圍\n意思就是删除了多餘的選定區域\n區域的長寬高就是選定的長寬高\n(§2這個愚蠢的漢化者 ZMDF 在說屁§r)", - "litematica.config.hotkeys.comment.setAreaOrigin": "設置/移動當前選區的原點到玩家的位置", - "litematica.config.hotkeys.comment.setSelectionBoxPosition1": "將選區第一個角點的位置設置為玩家當前位置", - "litematica.config.hotkeys.comment.setSelectionBoxPosition2": "將選區第二個角點的位置設置為玩家當前位置", - "litematica.config.hotkeys.comment.toggleAllRendering": "打開或關閉所有的渲染", - "litematica.config.hotkeys.comment.toggleAreaSelectionBoxesRendering": "切換選區的框線是否顯示的快速鍵", - "litematica.config.hotkeys.comment.toggleSchematicRendering": "切換投影區域内方塊是否顯示的快速鍵", - "litematica.config.hotkeys.comment.toggleInfoOverlayRendering": "切換準心所指向的方塊信息是否顯示的快速鍵", - "litematica.config.hotkeys.comment.toggleOverlayRendering": "切換投影區域的方塊是否顯示方塊邊框及方塊色差的快速鍵", - "litematica.config.hotkeys.comment.toggleOverlayOutlineRendering": "切換投影區域的方塊是否顯示方塊邊框的快速鍵", - "litematica.config.hotkeys.comment.toggleOverlaySideRendering": "切換投影區域的方塊是否顯示方塊色差的快速鍵", - "litematica.config.hotkeys.comment.togglePlacementBoxesRendering": "切換投影範圍框線是否顯示的快速鍵", - "litematica.config.hotkeys.comment.togglePlacementRestriction": "切換放置位置限制模式的快速鍵", - "litematica.config.hotkeys.comment.toggleSchematicBlockRendering": "切換投影範圍中所有方塊的貼圖是否顯示的快速鍵", - "litematica.config.hotkeys.comment.toggleSignTextPaste": "開關告示牌文本的選項(在通用類别中)", - "litematica.config.hotkeys.comment.toggleTranslucentRendering": "切換投影範圍中所有方塊是否為透明顯示的快速鍵", - "litematica.config.hotkeys.comment.toggleVerifierOverlayRendering": "切換原理圖驗證器覆蓋渲染\n(§4然而我並不知道怎麼用——ZMDF§r)", - "litematica.config.hotkeys.comment.toolEnabledToggle": "切換是否開啟範圍設定工具(木棍)的快速鍵", - "litematica.config.hotkeys.comment.toolPlaceCorner1": "當手持範圍設定工具(木棍)時放置角點 1", - "litematica.config.hotkeys.comment.toolPlaceCorner2": "當手持範圍設定工具(木棍)時放置角點 2", - "litematica.config.hotkeys.comment.toolSelectElements": "當手持範圍設定工具(木棍)時指向角點或區域將選中角點或區域", - "litematica.config.hotkeys.comment.toolSelectModifierBlock1": "按住該鍵時按下§6選區§f\n選擇要在某些工具模式中使用的主要塊類型\n(§4適用於替換填充等功能§r)", - "litematica.config.hotkeys.comment.toolSelectModifierBlock2": "按住該鍵時按下§6選區§f\n選擇要在某些工具模式中使用的辅助塊類型\n(§4適用於替換填充等功能§r)", - "litematica.config.hotkeys.comment.unloadCurrentSchematic": "卸載目前選定佈局的原理圖,從而也刪除從中建立的所有佈局", - "litematica.config.generic.prettyName.pickBlockEnabled": "方塊抓取啟用", - "litematica.config.generic.prettyName.easyPlaceMode": "輕鬆放置模式", - "litematica.config.generic.prettyName.placementRestriction": "放置位置限制", - "litematica.config.generic.prettyName.signTextPaste": "告示牌文本", - "litematica.config.generic.prettyName.toolItemEnabled": "啟用工具項目", - "litematica.config.visuals.prettyName.enableAreaSelectionBoxesRendering": "選區邊框啟用切換", - "litematica.config.visuals.prettyName.enablePlacementBoxesRendering": "投影邊框啟用切換", - "litematica.config.visuals.prettyName.enableRendering": "開啟全部渲染", - "litematica.config.visuals.prettyName.enableSchematicBlocksRendering": "投影方塊顯示", - "litematica.config.visuals.prettyName.enableSchematicFluidRendering": "Schematic Fluid Rendering", - "litematica.config.visuals.prettyName.enableSchematicOverlay": "渲染方塊特征", - "litematica.config.visuals.prettyName.enableSchematicRendering": "渲染投影", - "litematica.config.visuals.prettyName.renderBlocksAsTranslucent": "方塊半透明化", - "litematica.config.visuals.prettyName.schematicOverlayEnableOutlines": "渲染框線", - "litematica.config.visuals.prettyName.schematicOverlayEnableResorting": "啟用原理圖覆蓋重排序", - "litematica.config.visuals.prettyName.schematicOverlayEnableSides": "渲染塊面", - "litematica.config.info_overlays.prettyName.blockInfoOverlayEnabled": "方塊提示啟用", - "litematica.config.info_overlays.prettyName.verifierOverlayEnabled": "原理圖驗證渲染", - "litematica.config.hotkeys.prettyName.toggleAllRendering": "全部渲染", - "litematica.error.area_selection.copy_failed": "複製選區失敗", - "litematica.error.area_selection.create_failed": "無法以名稱“%s”創建新選區,因為檔案已存在", - "litematica.error.area_selection.failed_to_load": "載入選區失敗", - "litematica.error.area_selection.grow.no_sub_region_selected": "未選擇子區域!", - "litematica.error.area_selection.no_placement_selected": "沒有選擇放置的投影!", - "litematica.error.area_selection.rename.already_exists": "錯誤:已存在檔案名為“%s”的區域", - "litematica.error.area_selection.rename.invalid_safe_file_name": "生成的安全檔案名“%s”無效", - "litematica.error.duplicate_schematic_placement": "錯誤:嘗試添加已存在的投影放置", - "litematica.error.generic.creative_mode_only": "此操作僅在創造模式下可用", - "litematica.error.generic.failed_to_delete_file": "刪除檔案“%s”失敗", - "litematica.error.generic.failed_to_sort_list_of_ignored_states": "排序忽略狀態清單失敗", - "litematica.error.generic.schematic_world_not_loaded": "原理圖世界未載入", - "litematica.error.area_editor.create_sub_region.exists": "名為'%s'的子區域已存在", - "litematica.error.area_editor.no_selection": "無活動選區", - "litematica.error.area_editor.open_gui.no_selection": "當前處於選擇模式:Normal,但未選擇任何區域", - "litematica.error.area_editor.rename_sub_region.exists": "重命名子區域失敗:\n名稱為 '%s'的子區域已存在", - "litematica.error.area_editor.switch_mode.no_selection": "無法切換到選擇模式:Normal,因為當前沒有選擇區域.\n請在選區瀏覽器中選擇一個區域或創建新的選擇", - "litematica.error.schematic_conversion.litematic_to_litematica.failed_to_read_litematic": "載入Litematica原理圖失敗", - "litematica.error.schematic_conversion.litematic_to_litematica.failed_to_downgrade_litematic": "Failed to downgrade the Litematica Schematic", - "litematica.error.schematic_conversion.schematic_to_litematica.failed_to_create_schematic": "創建Litematica原理圖失敗", - "litematica.error.schematic_conversion.schematic_to_litematica.failed_to_read_schematic": "載入原理圖失敗", - "litematica.error.schematic_conversion.structure_to_litematica_failed": "將結構轉換為Litematica原理圖失敗", - "litematica.error.schematic.create.no_selections": "沒有有效的選擇區域!", - "litematica.error.schematic_load.cant_read_file": "無法讀取原理圖檔案 '%s' (不存在或權限問題)", - "litematica.error.schematic_load.no_schematic_selected": "未選擇原理圖檔案!", - "litematica.error.schematic_load.no_schematic_version_information": "該原理圖沒有版本資訊,無法安全載入!", - "litematica.error.schematic_load.unsupported_schematic_version": "不支持或新版本的原理圖 '%d'", - "litematica.error.schematic_load.unsupported_type": "未知或不支持的檔案類型 '%s'", - "litematica.error.schematic_manager.schematic_export.unsupported_type": "只有Litematica原理圖可匯出為其他格式!", - "litematica.error.schematic_manager.schematic_import.unsupported_type": "不支持匯入所選的原理圖類型!", - "litematica.error.schematic_placements.remove_fail_locked": "該放置位置已鎖定!\n- 按住Shift強制刪除", - "litematica.error.schematic_save.directory_doesnt_exist": "目錄不存在: '%s'", - "litematica.error.schematic_save.file_already_exists": "檔案'%s' 已存在", - "litematica.error.schematic_save.invalid_directory": "無效的目錄 '%s'", - "litematica.error.schematic_save.invalid_schematic_name": "無效的原理圖名稱 '%s'", - "litematica.error.schematic_save.schematic_creation_failed": "創建原理圖失敗!", - "litematica.error.schematic_read_from_file_failed.cant_read": "從檔案 '%s'讀取原理圖失敗", - "litematica.error.schematic_read_from_file_failed.exception": "嘗試從檔案 '%s'讀取原理圖時發生異常", - "litematica.error.schematic_read_from_file_failed.no_file": "從檔案讀取原理圖失敗: 沒有可用檔案(記憶體中的原理圖?)", - "litematica.error.schematic_projects.empty_selection": "空的選區(0個子區域)", - "litematica.error.schematic_projects.failed_to_load_project": "載入項目失敗", - "litematica.error.schematic_projects.failed_to_load_schematic": "為當前版本載入原理圖失敗", - "litematica.error.schematic_projects.failed_to_rename_project_file_exception": "重命名項目檔案為 '%s' 失敗(異常)", - "litematica.error.schematic_projects.failed_to_rename_project_file_exists": "無法將項目重命名為'%s', 檔案已存在", - "litematica.error.schematic_projects.invalid_project_directory": "無效或不存在的項目目錄", - "litematica.error.schematic_projects.no_project_open": "沒有開啟的項目", - "litematica.error.schematic_projects.in_projects_mode_but_no_project_open": "當前處於原理圖項目模式,但目前沒有開啟的項目", - "litematica.error.schematic_projects.null_player": "player為空", - "litematica.error.schematic_projects.project_already_exists": "項目'%s' 已經存在", - "litematica.error.schematic_projects.save_already_in_progress": "保存已在進行中", - "litematica.error.schematic_write_to_file_failed.directory_creation_failed": "創建原理圖目錄 '%s' 失敗", - "litematica.error.schematic_write_to_file_failed.exception": "將原理圖寫入檔案 '%s' 失敗(異常)", - "litematica.error.schematic_write_to_file_failed.exists": "將原理圖寫入檔案 '%s'失敗, 檔案已存在", - "litematica.error.structure_write_to_file_failed.exception": "將結構寫入檔案 '%s' 失敗(異常)", - "litematica.error.structure_write_to_file_failed.exists": "將原理圖寫入檔案 '%s'失敗, 檔案已存在", - "litematica.hotkeys.category.generic_hotkeys": "通用快速鍵", - "litematica.info.schematic_load.schematic_loaded": "原理圖 '%s' '已成功載入到記憶體", - "litematica.info.schematic_manager.preview.right_click_to_cancel": "右鍵點擊按鈕以取消待處理的預覽操作\nCtrl+Alt+Shift+點擊 以目錄中現有'thumb.png'圖片設置為縮圖", - "litematica.info.schematic_manager.preview.set_preview_by_taking_a_screenshot": "使用一般截圖鍵設置預覽\n或右鍵點擊“設置預覽”按鈕以取消設置預覽", - "litematica.info.schematic_manager.preview.success": "預覽圖片設置成功", - "litematica.gui.button.area_editor.analyze_area": "分析區域", - "litematica.gui.button.area_editor.change_corner_mode": "角落模式:%s", - "litematica.gui.button.area_editor.change_selection_mode": "選擇模式:%s", - "litematica.gui.button.area_editor.create_schematic": "保存原理圖", - "litematica.gui.button.area_editor.create_sub_region": "新建子區域", - "litematica.gui.button.area_editor.origin_enabled": "手動原點:%s", - "litematica.gui.button.area_editor.set_box_name": "設置", - "litematica.gui.button.area_editor.set_selection_name": "設置", - "litematica.gui.button.area_selection_mode": "選區模式:%s", - "litematica.gui.button.area_selections.create_directory": "創建目錄", - "litematica.gui.button.area_selections.create_new_selection": "新建選擇", - "litematica.gui.button.area_selections.create_selection_from_placement": "從位置", - "litematica.gui.button.area_selections.unselect": "取消選擇", - "litematica.gui.button.change_menu.area_editor": "區域編輯器", - "litematica.gui.button.change_menu.configuration_menu": "配置選單", - "litematica.gui.button.change_menu.load_schematics_to_memory": "載入原理圖", - "litematica.gui.button.change_menu.schematic_manager": "原理圖管理器", - "litematica.gui.button.change_menu.schematic_projects_manager": "原理圖檔案夾", - "litematica.gui.button.change_menu.show_area_selections": "選區目錄", - "litematica.gui.button.change_menu.show_loaded_schematics": "已載入的原理圖", - "litematica.gui.button.change_menu.show_schematic_placements": "原理圖放置", - "litematica.gui.button.change_menu.task_manager": "任務管理器", - "litematica.gui.button.change_menu.to_main_menu": "投影選單", - "litematica.gui.button.config_gui.colors": "顏色", - "litematica.gui.button.config_gui.generic": "通用", - "litematica.gui.button.config_gui.hotkeys": "快速鍵", - "litematica.gui.button.config_gui.info_overlays": "資訊覆蓋", - "litematica.gui.button.config_gui.render_layers": "渲染層", - "litematica.gui.button.config_gui.visuals": "視覺", - "litematica.gui.button.config_gui.test": "Test", - "litematica.gui.button.hover.area_editor.shift_for_in_memory": "按住Shift以創建僅存在於記憶體中的原理圖", - "litematica.gui.button.hover.area_selections.unselect": "取消選擇當前選區", - "litematica.gui.button.hover.material_list.clear_cache": "清除材料快取\n通常不需要這樣做\n這可以用來替代刪除'material_cache.nbt'\n檔案,以防快取中有錯誤數據,\n例如為不應該有物品的方塊存儲了物品,如活塞頭", - "litematica.gui.button.hover.material_list.write_hold_shift_for_csv": "按住Shift以寫入CSV檔案,\n而不是普通的ASCII藝術表格文字檔案", - "litematica.gui.button.hover.material_list_shift_to_select_sub_regions": "按住Shift以選擇用於材料清單的子區域", - "litematica.gui.button.hover.plus_minus_tip": "左鍵增加\\右鍵減少\n按Shift和/或Alt以增加步長", - "litematica.gui.button.hover.plus_minus_tip_ctrl_alt_shift": "左鍵增加\\右鍵減少\nShift/Alt/Ctrl以增加步長(乘法)", - "litematica.gui.button.hover.schematic_list.reload_schematic": "從檔案重新載入原理圖\n如果你在原理圖編輯模式中出錯\n這可能會有用幫助", - "litematica.gui.button.hover.schematic_projects.area_browser_disabled_currently_in_projects_mode": "當前打開了一個原理圖項目\n原理圖項目將覆蓋正常選區功能", - "litematica.gui.button.hover.schematic_projects.delete_area": "§6删除最後放置或保存的區域§r", - "litematica.gui.button.hover.schematic_projects.menu_warning": "(這在之前被稱為原理圖項目.)\n一般來說,你§6不應該§r使用這個功能,\n除非你真的知道它是如何工作的以及它在做什麼。\n它在某種程度上改變了選區、放置和貼上的工作方式,\n特別是在貼上時還有一個區域刪除操作。\n\n基本上,這個功能是為了§6迭代式、原位§r設計工作而設計的,\n它允許你更容易地創建同一個建築的多個版本/快照,\n並且通過先刪除世界中的內容,\n然後貼上下一個版本來切換版本。", - "litematica.gui.button.hover.schematic_projects.move_origin_to_player": "將項目原點移動到玩家當前位置\n這也會移動選區和放置", - "litematica.gui.button.hover.schematic_projects.place_to_world_warning": "§6警告:這將刪除/覆蓋世界中當前的方塊,\n範圍是§6之前從版本放置或作為版本保存的區域,\n§6(基本上是最後一次看到的“有效選區”)", - "litematica.gui.button.hover.schematic_projects.save_new_version": "將新的原理圖/版本保存到當前項目", - "litematica.gui.button.material_list": "材料清單", - "litematica.gui.button.material_list.clear_cache": "清除快取", - "litematica.gui.button.material_list.clear_ignored": "清除已忽略", - "litematica.gui.button.material_list.hide_available": "隱藏可用: %s", - "litematica.gui.button.material_list.ignore": "忽略", - "litematica.gui.button.material_list.list_type": "顯示: %s", - "litematica.gui.button.material_list.refresh_list": "刷新", - "litematica.gui.button.material_list.toggle_info_hud": "資訊 HUD: %s", - "litematica.gui.button.material_list.write_to_file": "寫入檔案", - "litematica.gui.button.placement_sub.placement_configuration": "放置配置", - "litematica.gui.button.placement_sub.reset_sub_region_placement": "重置子區域", - "litematica.gui.button.placement_sub.slice_type": "切片: %s", - "litematica.gui.button.schematic_manager.export_as": "匯出為 :", - "litematica.gui.button.schematic_placement.abbr.rendering": "R", - "litematica.gui.button.schematic_placement.ignore_entities": "忽略實體: %s", - "litematica.gui.button.schematic_placement.region_enabled": "區域: %s", - "litematica.gui.button.schematic_placement.reset_sub_region_placements": "重置所有子區域", - "litematica.gui.button.schematic_placement.toggle_all_off": "全部 §c關閉§r", - "litematica.gui.button.schematic_placement.toggle_all_on": "全部 §a開啟§r", - "litematica.gui.button.schematic_placement.hover.enclosing_box": "包圍框渲染: %s", - "litematica.gui.button.schematic_placement.hover.lock": "鎖定位置可防止移動\n以其他方式更改它(意外地)", - "litematica.gui.button.schematic_placement.hover.rendering": "渲染: %s\n注意這個功能有點奇怪\n不會阻止實體渲染。\n通常你應該只是禁用\n完全放置", - "litematica.gui.button.schematic_placements.configure": "配置", - "litematica.gui.button.schematic_placements.disable": "禁用", - "litematica.gui.button.schematic_placements.locked": "已鎖定: %s", - "litematica.gui.button.schematic_placements.placement_enabled": "位置: %s", - "litematica.gui.button.schematic_placements.remove": "删除", - "litematica.gui.button.schematic_placements.rendering_enabled": "渲染: %s", - "litematica.gui.button.schematic_placements.select": "選擇", - "litematica.gui.button.schematic_projects.close_project": "關閉當前項目", - "litematica.gui.button.schematic_projects.create_project": "創建項目", - "litematica.gui.button.schematic_projects.delete_area": "删除區域", - "litematica.gui.button.schematic_projects.load_project": "載入項目", - "litematica.gui.button.schematic_projects.move_origin_to_player": "移動到玩家", - "litematica.gui.button.schematic_projects.open_area_editor": "區域編輯器", - "litematica.gui.button.schematic_projects.open_manager_gui": "打開管理器", - "litematica.gui.button.schematic_projects.open_project_browser": "項目瀏覽器", - "litematica.gui.button.schematic_projects.place_to_world": "放置到世界", - "litematica.gui.button.schematic_projects.save_version": "保存版本", - "litematica.gui.button.schematic_verifier.ignore": "忽略", - "litematica.gui.button.schematic_verifier.range_type": "範圍: %s", - "litematica.gui.button.schematic_verifier.reset_ignored": "重置已忽略", - "litematica.gui.button.schematic_verifier.reset_verifier": "重置數據", - "litematica.gui.button.schematic_verifier.resume": "恢復驗證", - "litematica.gui.button.schematic_verifier.start": "開始驗證", - "litematica.gui.button.schematic_verifier.stop": "停止驗證", - "litematica.gui.button.schematic_verifier.toggle_info_hud": "資訊HUD: %s", - "litematica.gui.button.cancel": "取消", - "litematica.gui.button.configure": "配置", - "litematica.gui.button.copy": "複製", - "litematica.gui.button.create_directory": "創建新目錄", - "litematica.gui.button.create_placement": "創建放置", - "litematica.gui.button.delete": "删除", - "litematica.gui.button.disable": "禁用", - "litematica.gui.button.enable": "啟用", - "litematica.gui.button.import": "匯入", - "litematica.gui.button.load_schematic_to_memory": "載入原理圖", - "litematica.gui.button.mirror_value": "鏡像: %s", - "litematica.gui.button.move_to_player": "移動到玩家", - "litematica.gui.button.ok": "確定", - "litematica.gui.button.reload": "重新載入", - "litematica.gui.button.remove": "删除", - "litematica.gui.button.remove_placement": "删除放置", - "litematica.gui.button.rename": "重命名", - "litematica.gui.button.rotation_value": "旋轉: %s", - "litematica.gui.button.save_new_schematic_version": "保存版本", - "litematica.gui.button.save_schematic": "保存原理圖", - "litematica.gui.button.save_to_file": "保存到檔案", - "litematica.gui.button.schematic_verifier": "原理圖驗證器", - "litematica.gui.button.set_preview": "設置預覽", - "litematica.gui.button.tool_mode": "工具模式: %s", - "litematica.gui.button.unload": "卸載", - "litematica.gui.button.unlocked": "已解鎖", - "litematica.gui.label.area_editor.box_name": "子區域框名稱", - "litematica.gui.label.area_editor.selection_name": "選擇名稱", - "litematica.gui.label.area_editor.corner_1": "角落1", - "litematica.gui.label.area_editor.corner_2": "角落2", - "litematica.gui.label.area_editor.origin": "原點", - "litematica.gui.label.area_editor.dimensions": "尺寸", - "litematica.gui.label.area_editor.pos1": "角落1", - "litematica.gui.label.area_editor.pos2": "角落2", - "litematica.gui.label.area_editor.sub_regions": "子區域 (%s)", - "litematica.gui.label.area_selection_manager.current_selection": "所選區域: %s", - "litematica.gui.label.area_selection_box_count": "框數: %d", - "litematica.gui.label.area_selection_origin": "原點: %s", - "litematica.gui.label.area_selection.mode.normal": "普通", - "litematica.gui.label.area_selection.mode.simple": "簡單", - "litematica.gui.label.block_info.state_client": "客戶端世界方塊資訊", - "litematica.gui.label.block_info.state_schematic": "原理圖世界方塊資訊", - "litematica.gui.label.block_info_list_type.all": "全部", - "litematica.gui.label.block_info_list_type.render_layers": "渲染層", - "litematica.gui.label.easy_place_protocol.auto": "自動", - "litematica.gui.label.easy_place_protocol.none": "無", - "litematica.gui.label.easy_place_protocol.slabs_only": "僅台階", - "litematica.gui.label.easy_place_protocol.v2": "版本 2", - "litematica.gui.label.easy_place_protocol.v3": "版本 3", - "litematica.gui.label.data_fixer_mode.always": "總是", - "litematica.gui.label.data_fixer_mode.below_1205": "僅低於 1.20.5", - "litematica.gui.label.data_fixer_mode.below_120X": "僅低於 1.20.x", - "litematica.gui.label.data_fixer_mode.below_119X": "僅低於 1.19.x", - "litematica.gui.label.data_fixer_mode.below_117X": "僅低於 1.17.x", - "litematica.gui.label.data_fixer_mode.below_116X": "僅低於 1.16.x", - "litematica.gui.label.data_fixer_mode.below_113X": "僅低於 1.13.x", - "litematica.gui.label.data_fixer_mode.below_112X": "僅低於 1.12.x", - "litematica.gui.label.data_fixer_mode.never": "從不", - "litematica.gui.label.loaded_schematic.modified_on": "§6修改於%s§r", - "litematica.gui.label.material_list.abbr.shulker_box": "界伏盒", - "litematica.gui.label.material_list.title.available": "可用", - "litematica.gui.label.material_list.title.item": "物品", - "litematica.gui.label.material_list.title.missing": "缺少", - "litematica.gui.label.material_list.title.total": "總計", - "litematica.gui.label.material_list.multiplier": "倍數:", - "litematica.gui.label.material_list.name": "名稱", - "litematica.gui.label.material_list.progress": "進度: %s", - "litematica.gui.label.material_list.progress.done": "完成 %s", - "litematica.gui.label.material_list.progress.mismatch": "不匹配 %s", - "litematica.gui.label.material_list.progress.missing": "缺少 %s", - "litematica.gui.label.material_list.total": "總計: %s 個物品", - "litematica.gui.label.origin.auto": "自動", - "litematica.gui.label.origin.manual": "手動", - "litematica.gui.label.paste_nbt_behavior.none": "無", - "litematica.gui.label.paste_nbt_behavior.place_data_modify": "放置並修改數據", - "litematica.gui.label.paste_nbt_behavior.place_clone": "放置並複製", - "litematica.gui.label.placement_sub.region_name": "區域名稱: %s", - "litematica.gui.label.placement_sub.region_position": "區域位置", - "litematica.gui.label.placement_sub.region_size": "區域大小: %s", - "litematica.gui.label.placement_settings.placement_origin": "放置原點", - "litematica.gui.label.render_layers.hotkey": "快速鍵", - "litematica.gui.label.render_layers.hover.hotkey": "下一層/上一層快速鍵將影響此邊界。\n如果兩者都未選中,則快速鍵將影響\n距離玩家最近的邊界。", - "litematica.gui.label.replace_behavior.all": "全部", - "litematica.gui.label.replace_behavior.none": "無", - "litematica.gui.label.replace_behavior.with_non_air": "非空氣方塊", - "litematica.gui.label.schematic_info.schematic_author": "原理圖作者: §f%s§r", - "litematica.gui.label.schematic_info.description": "描述:", - "litematica.gui.label.schematic_info.enclosing_size": "框大小:", - "litematica.gui.label.schematic_info.enclosing_size_value": "框大小: §f%s§r", - "litematica.gui.label.schematic_info.name": "名字:", - "litematica.gui.label.schematic_info.region_count": "區域: §f%d§r", - "litematica.gui.label.schematic_info.time_created": "創建時間: §f%s§r", - "litematica.gui.label.schematic_info.time_modified": "修改時間: §f%s§r", - "litematica.gui.label.schematic_info.total_blocks": "總方塊數: §f%d§r", - "litematica.gui.label.schematic_info.total_blocks_and_volume": "方塊/體積: §f%d§r/§f%d§r", - "litematica.gui.label.schematic_info.total_volume": "總體積: §f%d§r 個方塊", - "litematica.gui.label.schematic_info.version": "精簡版: §f%d§r", - "litematica.gui.label.schematic_info.schema": "我的世界: §f%s§r [架构 §f%d§r]", - "litematica.gui.label.schematic_load.checkbox.create_placement": "創建放置", - "litematica.gui.label.schematic_load.hoverinfo.create_placement": "立即創建新位置\n並選擇該位置", - "litematica.gui.label.schematic_placement.enclosing_size": "框尺寸: %s", - "litematica.gui.label.schematic_placement.hoverinfo.hold_shift_to_create_as_disabled": "按住Shift以在創建時禁用放置", - "litematica.gui.label.schematic_placement.in_memory": "只存在於記憶體中", - "litematica.gui.label.schematic_placement.origin": "来源: %s", - "litematica.gui.label.schematic_placement.rename_placement": "重新命名放置:", - "litematica.gui.label.schematic_placement.schematic_file": "檔案: %s", - "litematica.gui.label.schematic_placement.schematic_name": "原理圖: %s", - "litematica.gui.label.schematic_placement.sub_region_count": "子區域編號: %s", - "litematica.gui.label.schematic_placement.sub_regions": "子區域 (%s):", - "litematica.gui.label.schematic_projects.currently_open_project": "當前打開的項目: %s", - "litematica.gui.label.schematic_projects.origin": "来源:", - "litematica.gui.label.schematic_projects.project": "項目:", - "litematica.gui.label.schematic_projects.version": "版本: %s (共 %s)", - "litematica.gui.label.schematic_projects.version_entry": "請参見. %d - %s", - "litematica.gui.label.schematic_projects.version_name": "版本名稱:", - "litematica.gui.label.schematic_save.checkbox.ignore_entities": "忽略實體", - "litematica.gui.label.schematic_save.hoverinfo.hold_shift_to_overwrite": "按住shift覆蓋現有檔案", - "litematica.gui.label.schematic_verifier.count": "數量", - "litematica.gui.label.schematic_verifier.expected": "預期", - "litematica.gui.label.schematic_verifier.found": "找到", - "litematica.gui.label.schematic_verifier_display_type.all": "全部 (非忽略的)", - "litematica.gui.label.schematic_verifier_display_type.correct_state": "正確狀態", - "litematica.gui.label.schematic_verifier_display_type.extra": "多餘方塊", - "litematica.gui.label.schematic_verifier_display_type.missing": "缺失方塊", - "litematica.gui.label.schematic_verifier_display_type.wrong_blocks": "錯誤方塊", - "litematica.gui.label.schematic_verifier_display_type.wrong_state": "錯誤狀態", - "litematica.gui.label.schematic_verifier.status.done_errors": "錯誤: §c方塊: %s§r, §6狀態: %s§r, §b缺失: %s§r, §d多餘: %s§r", - "litematica.gui.label.schematic_verifier.status.done_correct_total": "§a正確: %s§r, 總共: %s", - "litematica.gui.label.schematic_verifier.status.verifying": "未檢查的區塊: %s / %s", - "litematica.gui.label.schematic_verifier.verifier": "原理圖驗證器", - "litematica.gui.label.task.title.remaining_chunks": "%s, 剩餘區塊 (%s)", - "litematica.gui.label.task_name.area_analyzer": "區域分析器", - "litematica.gui.label.task_name.delete": "删除任務", - "litematica.gui.label.task_name.fill": "填充任務", - "litematica.gui.label.task_name.material_list": "材料清單", - "litematica.gui.label.task_name.paste": "貼上原理圖", - "litematica.gui.label.task_name.save_schematic": "保存原理圖", - "litematica.gui.label.task_name.verifier": "驗證器", - "litematica.gui.message.confirm_file_deletion": "您確定要刪除檔案 '%s'嗎?", - "litematica.gui.message.schematic_projects.confirm_delete_area": "您確定要刪除“最後受影響”的區域嗎?\n這將刪除項目管理器最後放置到世界中或最後保存為版本的區域內的所有方塊和實體。\n(基本上是“最後看到的受影響區域”,這樣如果您切換版本,它就不會留下前一個版本的方塊。)", - "litematica.gui.message.schematic_projects.confirm_place_to_world": "您確定要將此版本放置到世界中嗎?\n它將刪除項目管理器最後放置到世界中或最後保存為版本的區域內的所有方塊。(基本上是 \\\"最後看到的受影響區域\\\", 這樣如果您切換版本,它就不會留下前一個版本的方塊。)", - "litematica.gui.title.area_editor_normal": "區域編輯器(普通/多框模式)", - "litematica.gui.title.area_editor_normal_schematic_projects": "區域編輯器 (§6§l圖形項目區域§r)", - "litematica.gui.title.area_editor_simple": "區域編輯器 (簡單模式)", - "litematica.gui.title.area_editor_sub_region": "區域編輯器 (子區域)", - "litematica.gui.title.area_editor.sub_region_name": "子區域名稱", - "litematica.gui.title.area_selection_manager": "選區管理器", - "litematica.gui.title.configure_schematic_placement": "配置原理圖放置", - "litematica.gui.title.configure_schematic_sub_region": "配置放置子區域", - "litematica.gui.title.configs": "%s 配置 - %s", - "litematica.gui.title.confirm_file_deletion": "確認檔案删除", - "litematica.gui.title.copy_area_selection": "複製選區 '%s'", - "litematica.gui.title.create_area_selection": "創建新的選區", - "litematica.gui.title.create_area_selection_from_placement": "從原理圖位置創建新的選區", - "litematica.gui.title.create_directory": "創建新目錄", - "litematica.gui.title.create_in_memory_schematic": "創建記憶體中的原理圖", - "litematica.gui.title.create_schematic_project": "新建原理圖項目", - "litematica.gui.title.litematica_main_menu": "投影 %s", - "litematica.gui.title.load_schematic": "載入原理圖", - "litematica.gui.title.manage_loaded_schematics": "管理已載入的原理圖", - "litematica.gui.title.manage_schematic_placements": "管理原理圖放置", - "litematica.gui.title.material_list.area_analyzer": "選擇 '%s' 的區域分析", - "litematica.gui.title.material_list.placement": "放置 '%s' 的材料清單", - "litematica.gui.title.material_list.schematic": "原理圖 '%s' 的材料清單(%s個區域中的%s個)", - "litematica.gui.title.material_list.select_schematic_regions": "選擇'%s'的材料清單子區域", - "litematica.gui.title.rename_area_selection": "重命名選區", - "litematica.gui.title.rename_area_sub_region": "重命名子區域", - "litematica.gui.title.rename_schematic": "重命名原理圖", - "litematica.gui.title.create_schematic_from_selection": "將當前選定的區域保存為原理圖", - "litematica.gui.title.save_exported_schematic": "保存匯出的 %s '%s'", - "litematica.gui.title.save_imported_schematic": "保存匯入的原理圖", - "litematica.gui.title.save_schematic_from_memory": "將記憶體中的原理圖保存到檔案", - "litematica.gui.title.save_schematic_filename": "原理圖檔案名", - "litematica.gui.title.schematic_browser": "原理圖瀏覽器", - "litematica.gui.title.schematic_manager": "原理圖管理器", - "litematica.gui.title.schematic_project_manager": "原理圖工程目錄", - "litematica.gui.title.schematic_projects.confirm_delete_area": "確認删除區域", - "litematica.gui.title.schematic_projects.confirm_place_to_world": "確認放置到世界操作", - "litematica.gui.title.schematic_projects.save_new_version": "保存新的原理圖版本", - "litematica.gui.title.schematic_projects_browser": "原理圖工程瀏覽器", - "litematica.gui.title.schematic_verifier": "'%s' 的原理圖驗證器", - "litematica.gui.title.schematic_verifier_errors": "原理圖驗證器錯誤", - "litematica.gui.title.task_manager": "任務管理器", - "litematica.hud.area_selection.box_count": "框數: %s", - "litematica.hud.area_selection.dimensions_position": "維度: %s - p1: %s, p2: %s", - "litematica.hud.area_selection.mode.corners": "角落", - "litematica.hud.area_selection.mode.expand": "展開", - "litematica.hud.area_selection.origin": "原點: %s", - "litematica.hud.area_selection.selected_area_normal": "區域: %s", - "litematica.hud.area_selection.selected_area_simple": "區域 [§6簡單模式§r]: %s", - "litematica.hud.area_selection.selected_sub_region": "子區域: %s", - "litematica.hud.area_selection.selection_corners_mode": "角落模式: %s", - "litematica.hud.delete.target_mode": "删除目標模式: %s", - "litematica.hud.delete.target_mode.area": "當前區域", - "litematica.hud.delete.target_mode.placement": "當前放置", - "litematica.hud.misc.easy_place_mode_enabled": "簡單放置模式 §a開啟§r", - "litematica.hud.misc.none_brackets": "<無>", - "litematica.hud.misc.placement_restriction_mode_enabled": "限制放置模式 §a開啟§r", - "litematica.hud.misc.render_layer_mode": "圖層模式: %s - %s", - "litematica.hud.misc.render_layer_mode_all": "圖層模式: %s", - "litematica.hud.misc.renderer_status": "渲染器: A: %s S: %s B: %s O: %s SEL: %s", - "litematica.hud.misc.schematic_paste.data_restore_mode": "數據恢復模式: §b%s", - "litematica.hud.misc.schematic_paste.replace_mode": "替換方塊: %s", - "litematica.hud.schematic_placement.hover_info.lock_coordinate": "鎖定此座標\n這允許更改其他座標\n而不影響已鎖定的座標", - "litematica.hud.schematic_placement.hover_info.placement_locked": "此位置已鎖定,無法在解鎖之前進行修改", - "litematica.hud.schematic_placement.hover_info.placement_modified": "此位置已修改", - "litematica.hud.schematic_placement.hover_info.placement_sub_region_modified": "此子區域已修改", - "litematica.hud.schematic_placement.selected_placement": "放置", - "litematica.hud.schematic_placement.selected_sub_region": "子區域", - "litematica.hud.schematic_placement.sub_region_count": "區域", - "litematica.hud.schematic_placement.sub_region_modified": "已修改", - "litematica.hud.schematic_placement.sub_region_origin": "區域原點: %s", - "litematica.hud.schematic_placement.sub_regions_modified": "區域已修改", - "litematica.hud.selected_mode": "模式", - "litematica.hud.schematic_projects.current_version_date": "日期: %s", - "litematica.hud.schematic_projects.current_version": "版本: %s/%s - 名稱: %s", - "litematica.hud.schematic_projects.no_project_open": "<無開啟項目>", - "litematica.hud.schematic_projects.no_versions": "<沒有該版本>", - "litematica.hud.schematic_projects.origin": "項目来源: %s", - "litematica.hud.schematic_projects.project_name": "項目: %s", - "litematica.hud.schematic_projects_mode": "§6原理圖項目模式§r", - "litematica.info.material_list": "- 如果有存儲的話,材料清單快速鍵將打開最後查看的材料清單\n- 要切換到不同的材料清單,請通過\n 放置配置GUI中的GUI按鈕或原理圖瀏覽器開啟一個材質清單\n- 如果選擇的原理圖放置已更改,存儲/上次查看的清單也會被忘記\n- 如果還沒有最後查看的材料清單,\n 則使用所選的放置(如果有的話)", - "litematica.label.alignment.center": "中心", - "litematica.label.alignment.top_center": "頂部中心", - "litematica.label.none_lower": "無", - "litematica.label.no": "否", - "litematica.label.yes": "是", - "litematica.message.error.area_deletion_aborted": "區域删除被中斷或終止", - "litematica.message.error.empty_area_selection": "空選區(無框)", - "litematica.message.error.invalid_schematic_name": "無效的原理圖名稱 '%s'", - "litematica.message.error.no_area_selected": "§c未選擇區域§r", - "litematica.message.error.no_placement_selected": "§c未選擇放置位置§r", - "litematica.message.error.only_works_in_single_player": "§c此操作僅在單人遊戲中有效§r", - "litematica.message.error.move.pending_tasks": "§c當有待處理的任務時,無法進行移動§r", - "litematica.message.error.placement_paste_outside_world": "無法將放置貼上到當前位置,因為它超出了世界邊界", - "litematica.message.error.schematic_paste_failed": "§c原理圖貼上到世界失敗§r", - "litematica.message.error.schematic_save_failed": "無法將原理圖保存到檔案 '%s'", - "litematica.message.error.schematic_save_interrupted": "原理圖保存被中斷或停止", - "litematica.message.error.schematic_save_no_area_selected": "§c原理圖保存失敗 - 未選擇區域§r", - "litematica.message.warn.pickblock.no_suitable_slot_found": "找不到適合的快速欄槽位進行方塊選取!\n請檢查通用設定中的 -> §epickBlockableSlots§r.\n另外,根據 §epickBlockAvoid*§6 設定, 方塊選取功能可能會拒絕替換這些槽位中的任何工具或其他可損壞物品。", - "litematica.message.warn.pickblock.no_valid_slots_configured": "通用設定中的 -> §epickBlockableSlots§6 未設置任何快速欄槽位!", - "litematica.message.added_selection_box": "在 %s 新增了一個選擇框", - "litematica.message.area_clear_fail": "§c清除區域失敗§r", - "litematica.message.area_cleared": "區域已清除", - "litematica.message.area_filled": "區域已填充", - "litematica.message.area_fill_fail": "填充區域失敗", - "litematica.message.area_selections.selection_created_from_placement": "創建了新的選擇在位置 '%s'", - "litematica.message.easy_place_fail": "輕鬆放置模式阻止了此操作", - "litematica.message.grabbed_element_for_moving": "抓住要移動的元件", - "litematica.message.in_memory_schematic_created": "創建了一個記憶體中的原理圖 '%s'", - "litematica.message.litematic_saved_as": "成功升級Litematica Schematic數據版本\n原理圖已保存為 '%s'", - "litematica.message.material_list.material_cache_cleared": "材料快取已清除", - "litematica.message.material_list_written_to_file": "材料清單已寫入檔案 '%s'", - "litematica.message.moved_area_origin": "將區域原點從 %s 移動到 %s", - "litematica.message.moved_selection": "將當前選擇從 %s 移動到 %s", - "litematica.message.paste_with_servux": "§6放置位置正在上傳到 Servux 進行貼上", - "litematica.message.placement.cant_modify_is_locked": "§c放置位置已鎖定,無法修改§r", - "litematica.message.placement.moved_placement_origin": "已移動放置位置原點從 %s 移動到 %s", - "litematica.message.placement.moved_subregion_to": "將子區域移動到 %s", - "litematica.message.placement.rotation_set_to": "放置位置旋轉至 %s", - "litematica.message.placement.mirror_set_to": "放置位置鏡像到 %s", - "litematica.message.placement_restriction_fail": "放置限制模式阻止了此操作", - "litematica.message.removed_area_origin": "删除了放置/手動設置的區域原點", - "litematica.message.removed_selection_box": "已删除選擇框 %s", - "litematica.message.scheduled_task_added": "已添加計劃任務...", - "litematica.message.litematic_downgrade_exported_as": "Schematic export downgraded as '%s'\n§6NOTE: This is an experimental feature; data loss may occur.§r", - "litematica.message.schematic_exported_as": "原理圖已匯出為 '%s'", - "litematica.message.schematic_pasted": "原理圖已貼上到世界", - "litematica.message.schematic_pasted_using_fill_and_setblock": "使用 §b%s§r 個填充命令和 §b%s§r 個設置方塊命令貼上原理圖", - "litematica.message.schematic_pasted_using_setblock": "使用 §b%s§r 個設置方塊命令貼上原理圖", - "litematica.message.schematic_pasted_using_world_edit": "使用 §b%s§r 個WorldEdit //set 命令貼上原理圖", - "litematica.message.schematic_placement_created": "已為 '%s' 創建放置", - "litematica.message.schematic_preview_cancelled": "預覽任務已取消", - "litematica.message.schematic_read_from_file_success": "已從檔案 '%s' 載入原理圖", - "litematica.message.schematic_rendering_refreshed": "原理圖渲染已刷新", - "litematica.message.schematic_saved_as": "原理圖已保存為 '%s'", - "litematica.message.schematic_save_task_created": "已創建原理圖保存任務", - "litematica.message.set_area_origin": "將區域原點設置為%s", - "litematica.message.set_selection_box_point": "設置/移動點從 %d 到 %s", - "litematica.message.toggled": "切換 %s %s", - "litematica.message.value.on": "開啟", - "litematica.message.value.off": "關閉", - "litematica.message.schematic_projects.project_created": "已創建項目 '%s'", - "litematica.message.schematic_projects.project_loaded": "已載入項目 '%s'", - "litematica.message.schematic_projects.version_saved": "新版本 (#%s) 已保存為 '%s'", - "litematica.message.warn.area_selection.browser_open_in_simple_mode": "注意:您當前處於簡單選區模式", - "litematica.message.warn.layer_mode_currently_at": "注意:你當前處在 '%s' 渲染層模式", - "litematica.message.warn.main_rendering_disabled": "警告:主渲染當前已禁用\n請查看 視覺效果 -> %s, 或快速鍵 -> %s ['%s']", - "litematica.message.warn.schematic_blocks_rendering_disabled": "警告:原理圖方塊渲染目前已禁用\n請查看 視覺效果 -> %s, or 或快速鍵 -> %s ['%s']", - "litematica.message.warn.schematic_load_non_litematica": "警告:當您直接加載非Litematica原理圖時,創建的放置將不會持久保存久。\n此外,如果您需要多次加載原理圖,那麼每次加載時都會發生原理圖類型轉換的卡頓(對於大型原理圖)。\n\n因此,建議您通過原理圖管理器選單導入原理圖並以Litematica格式保存,或者更好的做法是,使用MCEdit或Litematica的貼上模式將原始原理圖貼到臨時世界中,然後從中創建一個新的Litematica原理圖,最好在適用的情況下使用多個子區域來緊密捕捉建築。", - "litematica.message.warn.schematic_rebuild_placement_not_selected": "當前未選擇目標放置位置。 “全部替換”快速鍵僅適用於您單擊放置的當前選定子區域。 因此,若要僅取代一個子區域中的區塊,請選擇該子區域。 若要在整個原理圖(所有陽光區域)中進行替換,請選擇整個放置而不是其中的子區域。 方塊也只會在當前渲染層設置限制的區域內被替換。", - "litematica.message.warn.schematic_rendering_disabled": "警告:原理圖渲染目前已禁用\n請查看 視覺效果 -> %s, 或快速鍵 -> %s ['%s']", - "litematica.message.warn.schematic_verifier.overlay_disabled": "警告:驗證器疊加層渲染目前已禁用! 請查看 信息疊加層 -> %s (或快速鍵 -> %s ['%s'])", - "litematica.message.warning.invalid_number": "無效的數字輸入 '%s'", - "litematica.message.warning.schematic_projects_hidden": "警告:原理圖版本控制系統目前已隱藏。 通常情況下,您不應使用此功能,除非您真正了解其工作原理並更改了一些模組行為。它是為了進行迭代的、原地的設計工作而設計的,在這種情況下需要在原地切換不同版本的建築(=刪除並替換前一個版本)。如果您想使用它,請啟用選項 通用 -> unhideSchematicVCS", - "litematica.warning.area_editor.area_rendering_disabled": "注意:選區框渲染目前已禁用\n請查看 視覺效果 -> %s, 或快速鍵 -> %s ['%s']", - "litematica.tool_hud.block_1": "方塊: %s", - "litematica.tool_hud.block_2": "替換: %s", - "litematica.tool_hud.facing": "朝向: %s", - "litematica.tool_mode.name.area_selection": "選區", - "litematica.tool_mode.name.delete": "删除", - "litematica.tool_mode.name.fill": "填充", - "litematica.tool_mode.name.grid_paste": "在世界貼上原理圖網格", - "litematica.tool_mode.name.move": "移動", - "litematica.tool_mode.name.paste_schematic": "貼上原理圖到世界", - "litematica.tool_mode.name.rebuild": "編輯原理圖", - "litematica.tool_mode.name.replace_block": "替換方塊", - "litematica.tool_mode.name.schematic_placement": "原理圖放置" -} diff --git a/src/main/resources/assets/litematica/lang/en_us.json b/src/main/resources/assets/litematica/lang/en_us.json new file mode 100644 index 0000000..643e1c8 --- /dev/null +++ b/src/main/resources/assets/litematica/lang/en_us.json @@ -0,0 +1,1010 @@ +{ + "litematica.config.generic.name.easyPlaceProtocolVersion": "easyPlaceProtocolVersion", + "litematica.config.generic.name.pasteNbtRestoreBehavior": "pasteNbtRestoreBehavior", + "litematica.config.generic.name.pasteReplaceBehavior": "pasteReplaceBehavior", + "litematica.config.generic.name.placementReplaceBehavior": "placementReplaceBehavior", + "litematica.config.generic.name.placementRestrictionWarn": "placementRestrictionWarn", + "litematica.config.generic.name.selectionCornersMode": "selectionCornersMode", + "litematica.config.generic.name.customSchematicBaseDirectoryEnabled": "customSchematicBaseDirectoryEnabled", + "litematica.config.generic.name.customSchematicBaseDirectory": "customSchematicBaseDirectory", + "litematica.config.generic.name.areaSelectionsPerWorld": "areaSelectionsPerWorld", + "litematica.config.generic.name.betterRenderOrder": "betterRenderOrder", + "litematica.config.generic.name.changeSelectedCornerOnMove": "changeSelectedCornerOnMove", + "litematica.config.generic.name.cloneAtOriginalPosition": "cloneAtOriginalPosition", + "litematica.config.generic.name.commandDisableFeedback": "commandDisableFeedback", + "litematica.config.generic.name.commandFillMaxVolume": "commandFillMaxVolume", + "litematica.config.generic.name.commandFillNoChunkClamp": "commandFillNoChunkClamp", + "litematica.config.generic.name.commandLimitPerTick": "commandLimitPerTick", + "litematica.config.generic.name.commandNameClone": "commandNameClone", + "litematica.config.generic.name.commandNameFill": "commandNameFill", + "litematica.config.generic.name.commandNameSetblock": "commandNameSetblock", + "litematica.config.generic.name.commandNameSummon": "commandNameSummon", + "litematica.config.generic.name.commandTaskInterval": "commandTaskInterval", + "litematica.config.generic.name.commandUseWorldEdit": "commandUseWorldEdit", + "litematica.config.generic.name.debugLogging": "debugLogging", + "litematica.config.generic.name.datafixerMode": "datafixerMode", + "litematica.config.generic.name.datafixerDefaultSchema": "datafixerDefaultSchema", + "litematica.config.generic.name.easyPlaceClickAdjacent": "easyPlaceClickAdjacent", + "litematica.config.generic.name.easyPlaceFirst": "easyPlaceFirst", + "litematica.config.generic.name.easyPlaceHoldEnabled": "easyPlaceHoldEnabled", + "litematica.config.generic.name.easyPlaceMode": "easyPlaceMode", + "litematica.config.generic.name.easyPlacePostRewrite": "easyPlacePostRewrite", + "litematica.config.generic.name.easyPlaceSinglePlayerHandling": "easyPlaceSinglePlayerHandling", + "litematica.config.generic.name.easyPlaceSwapInterval": "easyPlaceSwapInterval", + "litematica.config.generic.name.easyPlaceSwingHand": "easyPlaceSwingHand", + "litematica.config.generic.name.easyPlaceVanillaReach": "easyPlaceVanillaReach", + "litematica.config.generic.name.entityDataSync": "entityDataSync", + "litematica.config.generic.name.entityDataSyncBackup": "entityDataSyncBackup", + "litematica.config.generic.name.entityDataSyncCacheTimeout": "entityDataSyncCacheTimeout", + "litematica.config.generic.name.entityDataSyncLoadNbt": "entityDataSyncLoadNbt", + "litematica.config.generic.name.executeRequireHoldingTool": "executeRequireHoldingTool", + "litematica.config.generic.name.fixChestMirror": "fixChestMirror", + "litematica.config.generic.name.fixRailRotation": "fixRailRotation", + "litematica.config.generic.name.generateLowercaseNames": "generateLowercaseNames", + "litematica.config.generic.name.highlightBlockInInventory": "highlightBlockInInventory", + "litematica.config.generic.name.itemUsePacketCheckBypass": "itemUsePacketCheckBypass", + "litematica.config.generic.name.layerModeFollowsPlayer": "layerModeFollowsPlayer", + "litematica.config.generic.name.loadEntireSchematics": "loadEntireSchematics", + "litematica.config.generic.name.materialListIgnoreState": "materialListIgnoreState", + "litematica.config.generic.name.pasteAlwaysUseFill": "pasteAlwaysUseFill", + "litematica.config.generic.name.pasteIgnoreBlockEntitiesEntirely": "pasteIgnoreBlockEntitiesEntirely", + "litematica.config.generic.name.pasteIgnoreBlockEntitiesFromFill": "pasteIgnoreBlockEntitiesFromFill", + "litematica.config.generic.name.pasteIgnoreCommandLimitWithNbtRestore": "pasteIgnoreCommandLimitWithNbtRestore", + "litematica.config.generic.name.pasteIgnoreEntities": "pasteIgnoreEntities", + "litematica.config.generic.name.pasteIgnoreInventories": "pasteIgnoreInventories", + "litematica.config.generic.name.pasteToMcFunctionFiles": "pasteToMcFunctionFiles", + "litematica.config.generic.name.pasteUseFillCommand": "pasteUseFillCommand", + "litematica.config.generic.name.pasteUsingCommandsInSp": "pasteUsingCommandsInSp", + "litematica.config.generic.name.pasteUsingServux": "pasteUsingServux", + "litematica.config.generic.name.pickBlockAvoidDamageable": "pickBlockAvoidDamageable", + "litematica.config.generic.name.pickBlockAvoidTools": "pickBlockAvoidTools", + "litematica.config.generic.name.pickBlockEnabled": "pickBlockEnabled", + "litematica.config.generic.name.pickBlockIgnoreNbt": "pickBlockIgnoreNbt", + "litematica.config.generic.name.pickBlockShulkers": "pickBlockShulkers", + "litematica.config.generic.name.pickBlockableSlots": "pickBlockableSlots", + "litematica.config.generic.name.placementRestriction": "placementRestriction", + "litematica.config.generic.name.renderMaterialListInGuis": "renderMaterialListInGuis", + "litematica.config.generic.name.renderThreadNoTimeout": "renderThreadNoTimeout", + "litematica.config.generic.name.serverNbtRequestRate": "serverNbtRequestRate", + "litematica.config.generic.name.signTextPaste": "signTextPaste", + "litematica.config.generic.name.toolItem": "toolItem", + "litematica.config.generic.name.toolItemEnabled": "toolItemEnabled", + "litematica.config.generic.name.toolItemComponents": "toolItemComponents", + "litematica.config.generic.name.unhideSchematicVCS": "unhideSchematicVCS", + + "litematica.config.visuals.name.enableAreaSelectionBoxesRendering": "enableAreaSelectionBoxesRendering", + "litematica.config.visuals.name.enablePlacementBoxesRendering": "enablePlacementBoxesRendering", + "litematica.config.visuals.name.enableRendering": "enableRendering", + "litematica.config.visuals.name.enableSchematicBlocksRendering": "enableSchematicBlocksRendering", + "litematica.config.visuals.name.enableSchematicFluidRendering": "enableSchematicFluidRendering", + "litematica.config.visuals.name.enableSchematicOverlay": "enableSchematicOverlay", + "litematica.config.visuals.name.enableSchematicRendering": "enableSchematicRendering", + "litematica.config.visuals.name.renderSchematicMaxThreads": "renderSchematicMaxThreads", + "litematica.config.visuals.name.ghostBlockAlpha": "ghostBlockAlpha", + "litematica.config.visuals.name.ignoreExistingFluids": "ignoreExistingFluids", + "litematica.config.visuals.name.overlayReducedInnerSides": "overlayReducedInnerSides", + "litematica.config.visuals.name.placementBoxSideAlpha": "placementBoxSideAlpha", + "litematica.config.visuals.name.renderAOModernEnable": "renderAOModernEnable", + "litematica.config.visuals.name.renderAreaSelectionBoxSides": "renderAreaSelectionBoxSides", + "litematica.config.visuals.name.renderBlocksAsTranslucent": "renderBlocksAsTranslucent", + "litematica.config.visuals.name.renderCollidingSchematicBlocks": "renderCollidingSchematicBlocks", + "litematica.config.visuals.name.renderErrorMarkerConnections": "renderErrorMarkerConnections", + "litematica.config.visuals.name.renderErrorMarkerSides": "renderErrorMarkerSides", + "litematica.config.visuals.name.renderPlacementBoxSides": "renderPlacementBoxSides", + "litematica.config.visuals.name.renderPlacementEnclosingBox": "renderPlacementEnclosingBox", + "litematica.config.visuals.name.renderPlacementEnclosingBoxSides": "renderPlacementEnclosingBoxSides", + "litematica.config.visuals.name.renderTranslucentBlockInnerSides": "renderTranslucentBlockInnerSides", + "litematica.config.visuals.name.schematicOverlayEnableOutlines": "schematicOverlayEnableOutlines", + "litematica.config.visuals.name.schematicOverlayEnableResorting": "schematicOverlayEnableResorting", + "litematica.config.visuals.name.schematicOverlayEnableSides": "schematicOverlayEnableSides", + "litematica.config.visuals.name.schematicOverlayModelOutline": "schematicOverlayModelOutline", + "litematica.config.visuals.name.schematicOverlayModelSides": "schematicOverlayModelSides", + "litematica.config.visuals.name.schematicOverlayOutlineWidth": "schematicOverlayOutlineWidth", + "litematica.config.visuals.name.schematicOverlayOutlineWidthThrough": "schematicOverlayOutlineWidthThrough", + "litematica.config.visuals.name.schematicOverlayRenderThroughBlocks": "schematicOverlayRenderThroughBlocks", + "litematica.config.visuals.name.schematicOverlayTypeExtra": "schematicOverlayTypeExtra", + "litematica.config.visuals.name.schematicOverlayTypeMissing": "schematicOverlayTypeMissing", + "litematica.config.visuals.name.schematicOverlayTypeWrongBlock": "schematicOverlayTypeWrongBlock", + "litematica.config.visuals.name.schematicOverlayTypeWrongState": "schematicOverlayTypeWrongState", + "litematica.config.visuals.name.schematicVerifierUseBlockModels": "schematicVerifierUseBlockModels", + + "litematica.config.info_overlays.name.blockInfoLinesAlignment": "blockInfoLinesAlignment", + "litematica.config.info_overlays.name.blockInfoOverlayAlignment": "blockInfoOverlayAlignment", + "litematica.config.info_overlays.name.infoHudAlignment": "infoHudAlignment", + "litematica.config.info_overlays.name.toolHudAlignment": "toolHudAlignment", + "litematica.config.info_overlays.name.blockInfoLinesEnabled": "blockInfoLinesEnabled", + "litematica.config.info_overlays.name.blockInfoLinesFontScale": "blockInfoLinesFontScale", + "litematica.config.info_overlays.name.blockInfoLinesOffsetX": "blockInfoLinesOffsetX", + "litematica.config.info_overlays.name.blockInfoLinesOffsetY": "blockInfoLinesOffsetY", + "litematica.config.info_overlays.name.blockInfoOverlayOffsetY": "blockInfoOverlayOffsetY", + "litematica.config.info_overlays.name.blockInfoOverlayEnabled": "blockInfoOverlayEnabled", + "litematica.config.info_overlays.name.infoHudMaxLines": "infoHudMaxLines", + "litematica.config.info_overlays.name.infoHudOffsetX": "infoHudOffsetX", + "litematica.config.info_overlays.name.infoHudOffsetY": "infoHudOffsetY", + "litematica.config.info_overlays.name.infoHudScale": "infoHudScale", + "litematica.config.info_overlays.name.infoOverlaysTargetFluids": "infoOverlaysTargetFluids", + "litematica.config.info_overlays.name.materialListHudMaxLines": "materialListHudMaxLines", + "litematica.config.info_overlays.name.materialListHudScale": "materialListHudScale", + "litematica.config.info_overlays.name.statusInfoHud": "statusInfoHud", + "litematica.config.info_overlays.name.statusInfoHudAuto": "statusInfoHudAuto", + "litematica.config.info_overlays.name.toolHudOffsetX": "toolHudOffsetX", + "litematica.config.info_overlays.name.toolHudOffsetY": "toolHudOffsetY", + "litematica.config.info_overlays.name.toolHudScale": "toolHudScale", + "litematica.config.info_overlays.name.verifierErrorHilightAlpha": "verifierErrorHilightAlpha", + "litematica.config.info_overlays.name.verifierErrorHilightMaxPositions": "verifierErrorHilightMaxPositions", + "litematica.config.info_overlays.name.verifierOverlayEnabled": "verifierOverlayEnabled", + "litematica.config.info_overlays.name.warnDisabledRendering": "warnDisabledRendering", + + "litematica.config.colors.name.areaSelectionBoxSideColor": "areaSelectionBoxSideColor", + "litematica.config.colors.name.hightlightBlockInInventoryColor": "hightlightBlockInInventoryColor", + "litematica.config.colors.name.materialListHudItemCountsColor": "materialListHudItemCountsColor", + "litematica.config.colors.name.schematicRebuildBreakPlaceOverlayColor": "schematicRebuildBreakPlaceOverlayColor", + "litematica.config.colors.name.schematicRebuildBreakExceptPlaceOverlayColor": "schematicRebuildBreakExceptPlaceOverlayColor", + "litematica.config.colors.name.schematicRebuildReplaceOverlayColor": "schematicRebuildReplaceOverlayColor", + "litematica.config.colors.name.schematicOverlayColorExtra": "schematicOverlayColorExtra", + "litematica.config.colors.name.schematicOverlayColorMissing": "schematicOverlayColorMissing", + "litematica.config.colors.name.schematicOverlayColorWrongBlock": "schematicOverlayColorWrongBlock", + "litematica.config.colors.name.schematicOverlayColorWrongState": "schematicOverlayColorWrongState", + + "litematica.config.hotkeys.name.addSelectionBox": "addSelectionBox", + "litematica.config.hotkeys.name.cloneSelection": "cloneSelection", + "litematica.config.hotkeys.name.deleteSelectionBox": "deleteSelectionBox", + "litematica.config.hotkeys.name.easyPlaceUseKey": "easyPlaceUseKey", + "litematica.config.hotkeys.name.easyPlaceToggle": "easyPlaceToggle", + "litematica.config.hotkeys.name.executeOperation": "executeOperation", + "litematica.config.hotkeys.name.invertGhostBlockRenderState": "invertGhostBlockRenderState", + "litematica.config.hotkeys.name.invertOverlayRenderState": "invertOverlayRenderState", + "litematica.config.hotkeys.name.layerModeNext": "layerModeNext", + "litematica.config.hotkeys.name.layerModePrevious": "layerModePrevious", + "litematica.config.hotkeys.name.layerNext": "layerNext", + "litematica.config.hotkeys.name.layerPrevious": "layerPrevious", + "litematica.config.hotkeys.name.layerSetHere": "layerSetHere", + "litematica.config.hotkeys.name.nudgeSelectionNegative": "nudgeSelectionNegative", + "litematica.config.hotkeys.name.nudgeSelectionPositive": "nudgeSelectionPositive", + "litematica.config.hotkeys.name.moveEntireSelection": "moveEntireSelection", + "litematica.config.hotkeys.name.openGuiAreaSettings": "openGuiAreaSettings", + "litematica.config.hotkeys.name.openGuiLoadedSchematics": "openGuiLoadedSchematics", + "litematica.config.hotkeys.name.openGuiMainMenu": "openGuiMainMenu", + "litematica.config.hotkeys.name.openGuiMaterialList": "openGuiMaterialList", + "litematica.config.hotkeys.name.openGuiPlacementSettings": "openGuiPlacementSettings", + "litematica.config.hotkeys.name.openGuiSchematicPlacements": "openGuiSchematicPlacements", + "litematica.config.hotkeys.name.openGuiSchematicProjects": "openGuiSchematicProjects", + "litematica.config.hotkeys.name.openGuiSchematicVerifier": "openGuiSchematicVerifier", + "litematica.config.hotkeys.name.openGuiSelectionManager": "openGuiSelectionManager", + "litematica.config.hotkeys.name.openGuiSettings": "openGuiSettings", + "litematica.config.hotkeys.name.operationModeChangeModifier": "operationModeChangeModifier", + "litematica.config.hotkeys.name.pickBlockFirst": "pickBlockFirst", + "litematica.config.hotkeys.name.pickBlockLast": "pickBlockLast", + "litematica.config.hotkeys.name.pickBlockToggle": "pickBlockToggle", + "litematica.config.hotkeys.name.renderInfoOverlay": "renderInfoOverlay", + "litematica.config.hotkeys.name.renderOverlayThroughBlocks": "renderOverlayThroughBlocks", + "litematica.config.hotkeys.name.rerenderSchematic": "rerenderSchematic", + "litematica.config.hotkeys.name.saveAreaAsInMemorySchematic": "saveAreaAsInMemorySchematic", + "litematica.config.hotkeys.name.saveAreaAsSchematicToFile": "saveAreaAsSchematicToFile", + "litematica.config.hotkeys.name.schematicEditBreakAllExcept": "schematicEditBreakAllExcept", + "litematica.config.hotkeys.name.schematicEditBreakPlaceAll": "schematicEditBreakPlaceAll", + "litematica.config.hotkeys.name.schematicEditBreakPlaceDirection": "schematicEditBreakPlaceDirection", + "litematica.config.hotkeys.name.schematicEditReplaceAll": "schematicEditReplaceAll", + "litematica.config.hotkeys.name.schematicEditReplaceBlock": "schematicEditReplaceBlock", + "litematica.config.hotkeys.name.schematicEditReplaceDirection": "schematicEditReplaceDirection", + "litematica.config.hotkeys.name.schematicPlacementRotation": "schematicPlacementRotation", + "litematica.config.hotkeys.name.schematicPlacementMirror": "schematicPlacementMirror", + "litematica.config.hotkeys.name.schematicVersionCycleModifier": "schematicVersionCycleModifier", + "litematica.config.hotkeys.name.schematicVersionCycleNext": "schematicVersionCycleNext", + "litematica.config.hotkeys.name.schematicVersionCyclePrevious": "schematicVersionCyclePrevious", + "litematica.config.hotkeys.name.selectionGrabModifier": "selectionGrabModifier", + "litematica.config.hotkeys.name.selectionGrow": "selectionGrow", + "litematica.config.hotkeys.name.selectionGrowModifier": "selectionGrowModifier", + "litematica.config.hotkeys.name.selectionNudgeModifier": "selectionNudgeModifier", + "litematica.config.hotkeys.name.selectionModeCycle": "selectionModeCycle", + "litematica.config.hotkeys.name.selectionShrink": "selectionShrink", + "litematica.config.hotkeys.name.setAreaOrigin": "setAreaOrigin", + "litematica.config.hotkeys.name.setSelectionBoxPosition1": "setSelectionBoxPosition1", + "litematica.config.hotkeys.name.setSelectionBoxPosition2": "setSelectionBoxPosition2", + "litematica.config.hotkeys.name.toggleAllRendering": "toggleAllRendering", + "litematica.config.hotkeys.name.toggleAreaSelectionBoxesRendering": "toggleAreaSelectionBoxesRendering", + "litematica.config.hotkeys.name.toggleSchematicRendering": "toggleSchematicRendering", + "litematica.config.hotkeys.name.toggleInfoOverlayRendering": "toggleInfoOverlayRendering", + "litematica.config.hotkeys.name.toggleOverlayRendering": "toggleOverlayRendering", + "litematica.config.hotkeys.name.toggleOverlayOutlineRendering": "toggleOverlayOutlineRendering", + "litematica.config.hotkeys.name.toggleOverlaySideRendering": "toggleOverlaySideRendering", + "litematica.config.hotkeys.name.togglePlacementBoxesRendering": "togglePlacementBoxesRendering", + "litematica.config.hotkeys.name.togglePlacementRestriction": "togglePlacementRestriction", + "litematica.config.hotkeys.name.toggleSchematicBlockRendering": "toggleSchematicBlockRendering", + "litematica.config.hotkeys.name.toggleSignTextPaste": "toggleSignTextPaste", + "litematica.config.hotkeys.name.toggleTranslucentRendering": "toggleTranslucentRendering", + "litematica.config.hotkeys.name.toggleVerifierOverlayRendering": "toggleVerifierOverlayRendering", + "litematica.config.hotkeys.name.toolEnabledToggle": "toolEnabledToggle", + "litematica.config.hotkeys.name.toolPlaceCorner1": "toolPlaceCorner1", + "litematica.config.hotkeys.name.toolPlaceCorner2": "toolPlaceCorner2", + "litematica.config.hotkeys.name.toolSelectElements": "toolSelectElements", + "litematica.config.hotkeys.name.toolSelectModifierBlock1": "toolSelectModifierBlock1", + "litematica.config.hotkeys.name.toolSelectModifierBlock2": "toolSelectModifierBlock2", + "litematica.config.hotkeys.name.unloadCurrentSchematic": "unloadCurrentSchematic", + + "litematica.config.generic.comment.easyPlaceProtocolVersion": "The type of \"accurate placement protocol\" to use.\n- Auto: Uses v3 in single player, and by default Slabs-only in multiplayer,\n unless the server has Carpet mod that sends a 'carpet:hello'\n packet, in which case v2 is used on that server.\n- Version 3: Only supported by Litematica itself (in single player) or with Servux.\n- Version 2: Compatible with servers with the Carpet mod\n (either QuickCarpet by skyrising and DeadlyMC,\n or CarpetExtra in addition to FabricCarpet.\n And in both cases the 'accurateBlockPlacement' Carpet rule needs\n to be enabled on the server).\n- Slabs only: Only fixes top slabs. Compatible with Paper servers.\n- None: Does not modify coordinates.", + "litematica.config.generic.comment.pasteNbtRestoreBehavior": "Whether or not the NBT data of blocks is attempted to be restored,\nand which method is used for that.\n- Place & Data Modify will try to place the \"NBT-picked\" block\n near the player, and then use the data modify\n command to transfer the NBT data to the setblock'ed block\n- Place & Clone will try to place the \"NBT-picked\" block\n near the player, and then clone it to the final location.\n- Teleport & Place will try to teleport the player nearby and then\n directly place the NBT-picked item in the correct position.\nNote that the teleport & place method doesn't currently work correctly/at all.\nThe recommended method is §ePlace & Data Modify§r, however for that to work\nyou will probably need to lower the pasteCommandLimit to 1 per tick and increase\nthe pasteCommandInterval to 1-4 ticks or something.\nThus you should only use this for pasting important blocks that need the data,\nfor example by making a schematic of just the inventories,\nand then paste that with replace behavior set to None.", + "litematica.config.generic.comment.pasteReplaceBehavior": "The behavior of replacing existing blocks\nin the Paste schematic tool mode", + "litematica.config.generic.comment.placementReplaceBehavior": "The block replace behavior when adding blocks\nto the schematic world.\n\nThis allows using overlapped placements without the\nlater handled placement always overwriting earlier ones with air.\nOn the other hand some blocks like light blocks are considered\nto be air, so they would need the \"All\" replace behavior\nto get placed at all.", + "litematica.config.generic.comment.placementRestrictionWarn": "Selects which type of warning message to show (if any)\nwhen either the Easy Place mode or Placement Restriction prevent placing a block", + "litematica.config.generic.comment.selectionCornersMode": "The Area Selection corners mode to use (Corners, or Expand)", + "litematica.config.generic.comment.customSchematicBaseDirectoryEnabled": "If enabled, then the directory set in 'customSchematicBaseDirectory'\nwill be used as the root/base schematic directory,\ninstead of the normal '.minecraft/schematics/' directory", + "litematica.config.generic.comment.customSchematicBaseDirectory": "The root/base schematic directory to use,\nif 'customSchematicBaseDirectoryEnabled' is enabled", + "litematica.config.generic.comment.areaSelectionsPerWorld": "Use per-world or server root directories for the area selections\n§6NOTE: Don't switch this OFF while you are live streaming,\n§6as then the Area Selection browser will show the server IP\n§6in the navigation widget and also in the current selection name/path\n§6until you change the current directory and selection again", + "litematica.config.generic.comment.betterRenderOrder": "If enabled, then the schematic rendering is done\nby injecting the different render call into the vanilla\nrendering code. This should result in better translucent block\nrendering/ordering and schematic blocks not getting rendered\nthrough the client world blocks/terrain.\nIf the rendering doesn't work (for example with Optifine),\ntry disabling this option.", + "litematica.config.generic.comment.changeSelectedCornerOnMove": "If true, then the selected corner of an area selection\nis always set to the last moved corner,\nwhen using the set corner hotkeys", + "litematica.config.generic.comment.cloneAtOriginalPosition": "If enabled, then using the Clone Selection hotkey will create\nthe placement at the original area selection position,\ninstead of at the player's current position", + "litematica.config.generic.comment.commandDisableFeedback": "If enabled, then command feedback is automatically disabled\nand then re-enabled for multiplayer Paste, Fill and Delete operations\n(which are using /setblock and /fill commands) by disabling and then\nre-enabling the sendCommandFeedback game rule when the task is finished", + "litematica.config.generic.comment.commandFillMaxVolume": "The maximum size/volume of each individual box\nthat can be filled via the command-based Fill/Delete\noperations. Bigger areas/volumes will get split to multiple commands.\nAll areas are also split to per-chunk boxes at first anyway.", + "litematica.config.generic.comment.commandFillNoChunkClamp": "Disables dividing the fill volumes (in the Fill, Replace and Delete modes)\nto per-chunk boxes", + "litematica.config.generic.comment.commandLimitPerTick": "Maximum number of commands sent per game tick,\nwhen using the Paste, Fill and Delete features on a server,\nwhere they will use setblock and fill commands.\nNote that he Paste feature can overshoot this by a couple of commands\nwhen using the NBT restore functionality, which needs two additional commands for each block.", + "litematica.config.generic.comment.commandNameClone": "The clone command name to use when using the\ncommand-based creative mode functionality on servers.\nThis is currently only used by the Paste function if the NBT restore\nbehavior is set to 'Place & Clone'.", + "litematica.config.generic.comment.commandNameFill": "The fill command name to use when using the\ncommand-based creative mode functionality on servers", + "litematica.config.generic.comment.commandNameSetblock": "The setblock command name to use when using the\ncommand-based creative mode functionality on servers,\nnamely the Paste Schematic in World function", + "litematica.config.generic.comment.commandNameSummon": "The summon command name to use when using the\ncommand-based creative mode functionality on servers,\nnamely the Paste Schematic in World function", + "litematica.config.generic.comment.commandTaskInterval": "The interval in game ticks the Paste, Fill and Delete tasks\nare executed at. The commandLimitPerTick config sets the maximum\nnumber of commands to send per execution, and this config\nsets the interval in game ticks before the next execution.", + "litematica.config.generic.comment.commandUseWorldEdit": "If enabled, instead of using the configured setblock and fill commands,\nthe World Edit //pos1, //pos2 and //set commands are used.\nNote that using World Edit commands is around 3x slower\nthan using vanilla commands due to the command limit per tick,\nand WE requiring multiple commands per block or area (//pos1 //pos2 //set).\n§6WARNING: The paste replace behavior option WILL NOT WORK if using\n§6the World Edit commands and fill volumes instead of individual setblock commands!\nThus it's recommended to use the vanilla commands, if you have the permission to run them.\nOne other thing that might make you prefer WE commands in some cases\nis that they can prevent block updates, if the server doesn't have\nthe Carpet mod and thus the '/carpet fillUpdates false' rule available.", + "litematica.config.generic.comment.debugLogging": "Enables some debug log messages in the game console,\nfor debugging certain issues or crashes.", + "litematica.config.generic.comment.datafixerMode": "The configurable data fixer level to apply to loaded schematics.\nThis option can improve performance of loading\nschematics by bypassing the Vanilla Data Fixer,\nbut this can also cause severe data loss if it is disabled.", + "litematica.config.generic.comment.datafixerDefaultSchema": "Default Schema Value for the Vanilla Data Fixer\n\nUsed to adjust the lowest possible value, and the value used\nwhen the loaded schematic does not contain this information.\n\n§6WARNING: This setting is meant to be used at the direction\n§6from a Litematica developer such as masa themselves.\n§6When in doubt, keep the default for Minecraft 1.12.", + "litematica.config.generic.comment.easyPlaceClickAdjacent": "Uses the Clicks Adjacent code from 1.12.2 ornithe.\nThis only works with §a\"easyPlacePostRewrite\"§r enabled.", + "litematica.config.generic.comment.easyPlaceFirst": "This causes the Easy Place mode to place the first/closest block\nyou are looking at first, instead of the furthest/bottom-most block.\nSetting this to false allows you to place multiple layers \"at once\",\nsince the furthest blocks would be placed before the closer ones block the line of sight.", + "litematica.config.generic.comment.easyPlaceHoldEnabled": "When enabled, then you can hold down the use key\nand look at different schematic blocks to place them,\nwithout having to click on every block individually.", + "litematica.config.generic.comment.easyPlaceMode": "When enabled, then simply trying to use an item/place a block\non schematic blocks will place that block in that position", + "litematica.config.generic.comment.easyPlacePostRewrite": "When enabled, the Easy Place mode uses the\n\"Post-Rewrite\" code from 1.12.2 ornithe.\n§6WARNING! THIS IS EXPERIMENTAL", + "litematica.config.generic.comment.easyPlaceSinglePlayerHandling": "If enabled, then Litematica handles the so called\n\"Carpet mod Accurate Block Placement Protocol\" itself in single player.\nThis is recommended to be kept enabled if you\nare going to use Easy Place in single player.", + "litematica.config.generic.comment.easyPlaceSwapInterval": "The interval in milliseconds the Easy Place mode waits\nafter swapping inventory slots and placing a block.\nUseful to avoid placing wrong blocks when having high ping.", + "litematica.config.generic.comment.easyPlaceSwingHand": "Swing the Player's hand when using Easy Place.", + "litematica.config.generic.comment.easyPlaceVanillaReach": "If enabled, reduces reach distance from +1.0 to the\nVanilla value so servers don't reject placement of\nfar blocks.", + "litematica.config.generic.comment.entityDataSync": "Use the Entity Data Sync protocol from Servux\nto obtain Entity Data from the server", + "litematica.config.generic.comment.entityDataSyncBackup": "Use the Vanilla NBT Query method when Servux\nis not available. This method requires Operator Privileges.", + "litematica.config.generic.comment.entityDataSyncCacheTimeout": "The Cache timeout value in seconds that\nthe Entity Cache keeps records for.\nA lower value means more frequent updates, but\nyou may want to consider a higher value if\nyour litematics fail to save with all of the NBT data.", + "litematica.config.generic.comment.entityDataSyncLoadNbt": "Load the synced NBT data into the Client World.\n§6WARNING! This feature will cause incompatibility\n§6with other mods that rely on this data.", + "litematica.config.generic.comment.executeRequireHoldingTool": "Require holding an enabled tool item\nfor the executeOperation hotkey to work", + "litematica.config.generic.comment.fixChestMirror": "Enable a fix to the broken chest mirror code in vanilla", + "litematica.config.generic.comment.fixRailRotation": "If true, then a fix is applied for the vanilla bug in rails,\nwhere the 180 degree rotations of straight north-south and\neast-west rails rotate 90 degrees counterclockwise instead >_>", + "litematica.config.generic.comment.generateLowercaseNames": "If enabled, then by default the suggested schematic names\nwill be lowercase and using underscores instead of spaces", + "litematica.config.generic.comment.highlightBlockInInventory": "When enabled, highlights the item (including Shulker Boxes containing it)\nof the looked at block in the schematic", + "litematica.config.generic.comment.itemUsePacketCheckBypass": "Bypass the new distance/coordinate check that was added in 1.18.2.\n\nThat check breaks the \"accurate placement protocol\" and causes\nany blocks placed with a rotation (or other property) request to just become ghost blocks.\n\nThere is basically no need to ever disable this.\nThe check didn't even exist ever before 1.18.2.", + "litematica.config.generic.comment.layerModeFollowsPlayer": "If true, then the render layer follows the player.\nNote: This currently collapses Layer Range type ranges unfortunately", + "litematica.config.generic.comment.loadEntireSchematics": "If true, then the entire schematic is always loaded at once.\nIf false, then only the part that is within the client's view distance is loaded.", + "litematica.config.generic.comment.materialListIgnoreState": "When enabled, the exact block state is ignored, and only the block type needs to match", + "litematica.config.generic.comment.pasteAlwaysUseFill": "This forces using the fill command (instead of setblock) even for single blocks", + "litematica.config.generic.comment.pasteIgnoreBlockEntitiesEntirely": "If enabled, then block entities ae not pasted at all\nvia the command-based pasting in multiplayer.\nThis allows you to easier paste in two passes if you\nwant to use the NBT-restore option for inventories etc. in the second pass,\nwhich usually requires a lot slower pasting speed/command rate.", + "litematica.config.generic.comment.pasteIgnoreBlockEntitiesFromFill": "If enabled, then all block entities are ignored from the fill\ncommands when pasting. This allows them to get pasted individually,\nwhich is required if the NBT restore option is being used.", + "litematica.config.generic.comment.pasteIgnoreCommandLimitWithNbtRestore": "If enabled, then the command limit is ignored when pasting\nblocks with a block entity with the NBT restore option enabled.\nThis seems to somehow fix an issue where the NBT restore\nwould otherwise fail for many blocks with a low command rate.", + "litematica.config.generic.comment.pasteIgnoreEntities": "If enabled, then the Paste feature will not paste any entities", + "litematica.config.generic.comment.pasteIgnoreInventories": "Don't paste inventory contents when pasting a schematic", + "litematica.config.generic.comment.pasteToMcFunctionFiles": "If enabled, then instead of actually pasting schematics to the world,\nthey are written as setblock commands into text files.", + "litematica.config.generic.comment.pasteUseFillCommand": "If enabled, then instead of only using individual /setblock commands,\nthe command-based Paste operation (which is used on servers)\nwill also try to use /fill commands for any continuous areas of the same block.\nThis has no effect in single player, since the mod sets the blocks directly\nin the integrated server's world in and doesn't use commands at all.", + "litematica.config.generic.comment.pasteUsingCommandsInSp": "This is a temporary hack workaround to use the command-based pasting\nalso in single player, which allows using the render layer limited\npasting in single player, which currently doesn't work with\nthe direct world access pasting that single player normally uses.\n\nNote that this will have all the same NBT data restoration\nlimitations that multiplayer pasting has normally.", + "litematica.config.generic.comment.pasteUsingServux": "Use Servux to paste a schematic directly to the server.\nThis method is much faster than the traditional\ncommand-based method, and it supports restoring\nEntity NBT Data.", + "litematica.config.generic.comment.pickBlockAvoidDamageable": "Avoids replacing any damageable items in the hotbar", + "litematica.config.generic.comment.pickBlockAvoidTools": "Avoids replacing any tool items in the hotbar.\n\nThis means any items that extend the vanilla ToolItem class.", + "litematica.config.generic.comment.pickBlockEnabled": "Enables the schematic world pick block hotkeys.\nThere is also a hotkey for toggling this option to toggle those hotkeys... o.o", + "litematica.config.generic.comment.pickBlockIgnoreNbt": "Enables the \"pickBlockIgnoreNbt\" setting for\nEasy Place Post-Rewrite from 1.12.2 ornithe.", + "litematica.config.generic.comment.pickBlockShulkers": "If enabled, then if the required item for the pick bloc\nis not found directly in the player's inventory, but there\nis a Shulker box that contains it, the Shulker Box\nwill be switched to the player's hand instead", + "litematica.config.generic.comment.pickBlockableSlots": "The hotbar slots that are allowed to be\nused for the schematic pick block", + "litematica.config.generic.comment.placementRestriction": "When enabled, the use key can only be used\nwhen holding the correct item for the targeted position,\nand the targeted position must have a missing block in the schematic", + "litematica.config.generic.comment.renderMaterialListInGuis": "Whether or not the material list should\nbe rendered inside GUIs", + "litematica.config.generic.comment.renderThreadNoTimeout": "Removes the timeout from the rendering worker threads.\nIf you get very stuttery rendering when moving around\nor dealing with large schematics, try disabling this. It will however make\nthe schematic rendering a lot slower in some cases.", + "litematica.config.generic.comment.serverNbtRequestRate": "Limit request rate for server entity data syncer", + "litematica.config.generic.comment.signTextPaste": "Automatically set the text in the sign GUIs from the schematic", + "litematica.config.generic.comment.toolItem": "The item to use as the \"tool\" for selections etc.", + "litematica.config.generic.comment.toolItemEnabled": "If true, then the \"tool\" item can be used to control selections etc.", + "litematica.config.generic.comment.toolItemComponents": "A Data Components-aware version of toolItem.\nSet to \"empty\" to disable.\nThe syntax accepted is the same as the \"/give\" command.", + "litematica.config.generic.comment.unhideSchematicVCS": "Un-hides the Schematic VCS (Version Control System) menu button,\nand enables the hotkey and the VCS functionality in general.\n(This was called Schematic Projects before.)\n\nIn general you §6should not§r be using this feature,\nunless you really know how it works and what it does.\nIt somewhat changes how the area selections, placements and pasting works,\nin particular that there is also an area delete operation when pasting.\n\nBasically this feature is intended for §6iterative, in-place§r design work,\nand it allows you to easier create multiple versions/snapshots\nof the same build, and also to switch between the versions by deleting what is\nin the world first, and then pasting the next version in its place.", + + "litematica.config.visuals.comment.enableAreaSelectionBoxesRendering": "Enable Area Selection boxes rendering", + "litematica.config.visuals.comment.enablePlacementBoxesRendering": "Enable Schematic Placement boxes rendering", + "litematica.config.visuals.comment.enableRendering": "Main rendering toggle option. Enables/disables ALL mod rendering.", + "litematica.config.visuals.comment.enableSchematicBlocksRendering": "Enables schematic block rendering.\nDisabling this allows you to only see the color overlay", + "litematica.config.visuals.comment.enableSchematicFluidRendering": "Enables schematic fluid rendering.\nDisabling this allows you to see the blocks and overlays easier.\nThis also culls the overlay where the Fluid was.", + "litematica.config.visuals.comment.enableSchematicOverlay": "The main toggle option for the schematic\nblock overlay rendering", + "litematica.config.visuals.comment.enableSchematicRendering": "Enable rendering the schematic and overlay", + "litematica.config.visuals.comment.renderSchematicMaxThreads": "Maximum Schematic World Rendering Thread Size\nThis will directly effect overall multi-threaded performance\n\n§6USE WITH CAUTION!! This will only take effect\n§6after you leave the game, and rejoin.", + "litematica.config.visuals.comment.ghostBlockAlpha": "The alpha value of the ghost blocks,\nwhen rendering them as translucent.\n§6Note: §7You also need to enable the translucent rendering separately,\nusing the 'renderBlocksAsTranslucent' option!", + "litematica.config.visuals.comment.ignoreExistingFluids": "If enabled, then any fluid blocks are ignored as \"extra blocks\"\nand as \"wrong blocks\", ie. where the schematic has air or other blocks.\nBasically this makes building stuff under water a whole lot less annoying.\nNote: You will most likely also want to enable the 'renderCollidingSchematicBlocks'\noption at the same time, to allow the blocks to get rendered inside fluids.", + "litematica.config.visuals.comment.overlayReducedInnerSides": "If enabled, then the adjacent/touching inner sides\nfor the block overlays are removed/not rendered", + "litematica.config.visuals.comment.placementBoxSideAlpha": "The alpha value of the sub-region boxes' side", + "litematica.config.visuals.comment.renderAOModernEnable": "Enables a new Ambient Occlusion Processor which should\nfix issues where shadows aren't being applied correctly,\nbut it can also cause Schematic Layers to have shadows\nfrom adjacent layers that can be distracting\nwhile your building.", + "litematica.config.visuals.comment.renderAreaSelectionBoxSides": "If enabled, then the area selection boxes will\nhave their side quads rendered", + "litematica.config.visuals.comment.renderBlocksAsTranslucent": "If enabled, then the schematics are rendered\nusing translucent \"ghost blocks\"", + "litematica.config.visuals.comment.renderCollidingSchematicBlocks": "If enabled, then blocks in the schematics are rendered\nalso when there is already a (wrong) block in the client world.\nProbably mostly useful when trying to build\nsomething where there are snow layers or water in the way.", + "litematica.config.visuals.comment.renderErrorMarkerConnections": "Render connecting lines between subsequent verifier highlight box corners.\nThis was a rendering bug that some people experienced, but at least some players\nliked it and requested for it to stay, so this options \"restores\" it", + "litematica.config.visuals.comment.renderErrorMarkerSides": "If enabled, then the error markers in the Schematic Verifier\nwill have (translucent) sides rendered instead of just the outline", + "litematica.config.visuals.comment.renderPlacementBoxSides": "If enabled, then the placed schematic sub-region boxes\nwill have their side quads rendered", + "litematica.config.visuals.comment.renderPlacementEnclosingBox": "If enabled, then an enclosing box is rendered around\nall the sub-regions in a schematic (placement)", + "litematica.config.visuals.comment.renderPlacementEnclosingBoxSides": "If enabled, then the enclosing box around\na schematic placement will have its side quads rendered", + "litematica.config.visuals.comment.renderTranslucentBlockInnerSides": "If enabled, then the model sides are also rendered\nfor inner sides in the translucent mode", + "litematica.config.visuals.comment.schematicOverlayEnableOutlines": "Enables rendering a wire frame outline for\nthe schematic block overlay", + "litematica.config.visuals.comment.schematicOverlayEnableResorting": "Enables Translucent Sorting for\nthe schematic block overlay", + "litematica.config.visuals.comment.schematicOverlayEnableSides": "Enables rendering translucent boxes/sides for\nthe schematic block overlay", + "litematica.config.visuals.comment.schematicOverlayModelOutline": "If enabled, then the schematic overlay will use the\nblock model quads/vertices instead of the\ntraditional full block overlay", + "litematica.config.visuals.comment.schematicOverlayModelSides": "If enabled, then the schematic overlay will use the\nblock model quads/vertices instead of the\ntraditional full block overlay", + "litematica.config.visuals.comment.schematicOverlayOutlineWidth": "The line width of the block (model) outlines", + "litematica.config.visuals.comment.schematicOverlayOutlineWidthThrough": "The line width of the block (model) outlines,\nwhen the overlay is rendered through blocks", + "litematica.config.visuals.comment.schematicOverlayRenderThroughBlocks": "If enabled, then the schematic overlay will be rendered\nthrough blocks. This is probably only useful once you are\nfinished building and want to see any errors easier", + "litematica.config.visuals.comment.schematicOverlayTypeExtra": "Enables the schematic overlay for extra blocks", + "litematica.config.visuals.comment.schematicOverlayTypeMissing": "Enables the schematic overlay for missing blocks", + "litematica.config.visuals.comment.schematicOverlayTypeWrongBlock": "Enables the schematic overlay for wrong blocks", + "litematica.config.visuals.comment.schematicOverlayTypeWrongState": "Enables the schematic overlay for wrong states", + "litematica.config.visuals.comment.schematicVerifierUseBlockModels": "Forces using blocks models for everything in the Schematic Verifier\nresult list. Normally item models are used for anything\nthat has an item, and block models are only used for blocks\nthat don't have an item, plus for Flower Pots to see the contained item.", + + "litematica.config.info_overlays.comment.blockInfoLinesAlignment": "The alignment of the block info lines overlay", + "litematica.config.info_overlays.comment.blockInfoOverlayAlignment": "The alignment of the Block Info Overlay", + "litematica.config.info_overlays.comment.infoHudAlignment": "The alignment of the \"Info HUD\",\nused for the Material List, Schematic Verifier mismatch positions etc.", + "litematica.config.info_overlays.comment.toolHudAlignment": "The alignment of the \"tool HUD\", when holding the configured \"tool\"", + "litematica.config.info_overlays.comment.blockInfoLinesEnabled": "If enabled, then MiniHUD-style block info overlay\nis rendered for the looked-at block", + "litematica.config.info_overlays.comment.blockInfoLinesFontScale": "The font scale for the block info lines", + "litematica.config.info_overlays.comment.blockInfoLinesOffsetX": "The x offset of the block info lines from the selected edge", + "litematica.config.info_overlays.comment.blockInfoLinesOffsetY": "The y offset of the block info lines from the selected edge", + "litematica.config.info_overlays.comment.blockInfoOverlayOffsetY": "The y offset of the block info overlay from the selected edge", + "litematica.config.info_overlays.comment.blockInfoOverlayEnabled": "Enable Block Info Overlay rendering to show info\nabout the looked-at block or verifier error marker,\nwhile holding the 'renderInfoOverlay' key", + "litematica.config.info_overlays.comment.infoHudMaxLines": "The maximum number of info lines to show on the HUD at once", + "litematica.config.info_overlays.comment.infoHudOffsetX": "The X offset of the Info HUD from the screen edge", + "litematica.config.info_overlays.comment.infoHudOffsetY": "The Y offset of the Info HUD from the screen edge", + "litematica.config.info_overlays.comment.infoHudScale": "Scale factor for the generic Info HUD text", + "litematica.config.info_overlays.comment.infoOverlaysTargetFluids": "When enabled, the Block Info Overlay and Block Info Lines\nwill be able to ray trace to fluid blocks instead of going through them", + "litematica.config.info_overlays.comment.materialListHudMaxLines": "The maximum number of items to show on\nthe Material List Info HUD at once", + "litematica.config.info_overlays.comment.materialListHudScale": "Scale factor for the Material List Info HUD", + "litematica.config.info_overlays.comment.statusInfoHud": "Enable a status info HUD renderer,\nwhich renders a few bits of status info, such as\nthe current layer mode and renderers enabled state", + "litematica.config.info_overlays.comment.statusInfoHudAuto": "Allow automatically momentarily enabling the status info HUD \"when needed\",\nfor example when creating a placement and having rendering disabled", + "litematica.config.info_overlays.comment.toolHudOffsetX": "The X offset of the Info HUD from the screen edge", + "litematica.config.info_overlays.comment.toolHudOffsetY": "The Y offset of the Info HUD from the screen edge", + "litematica.config.info_overlays.comment.toolHudScale": "Scale factor for the Tool HUD text", + "litematica.config.info_overlays.comment.verifierErrorHilightAlpha": "The alpha value of the error marker box sides", + "litematica.config.info_overlays.comment.verifierErrorHilightMaxPositions": "The maximum number of mismatched positions to render\nat once in the Schematic Verifier overlay.", + "litematica.config.info_overlays.comment.verifierOverlayEnabled": "Enable Schematic Verifier marker overlay rendering", + "litematica.config.info_overlays.comment.warnDisabledRendering": "Should the warning message about being in a layer mode\nor having some of the rendering options disabled\nbe shown when loading a new schematic\nor creating a new placement", + + "litematica.config.colors.comment.areaSelectionBoxSideColor": "The color of the area selection boxes, when they are unselected", + "litematica.config.colors.comment.hightlightBlockInInventoryColor": "The highlight color for the item of the looked at block", + "litematica.config.colors.comment.materialListHudItemCountsColor": "The color of the item count text in the Material List info HUD", + "litematica.config.colors.comment.schematicRebuildBreakPlaceOverlayColor": "The color of Schematic Rebuild mode's break or place blocks selector overlay", + "litematica.config.colors.comment.schematicRebuildBreakExceptPlaceOverlayColor": "The color of Schematic Rebuild mode's break all blocks except targeted selector overlay", + "litematica.config.colors.comment.schematicRebuildReplaceOverlayColor": "The color of Schematic Rebuild mode's replace selector overlay", + "litematica.config.colors.comment.schematicOverlayColorExtra": "The color of the blocks overlay for extra blocks", + "litematica.config.colors.comment.schematicOverlayColorMissing": "The color of the blocks overlay for missing blocks", + "litematica.config.colors.comment.schematicOverlayColorWrongBlock": "The color of the blocks overlay for wrong blocks", + "litematica.config.colors.comment.schematicOverlayColorWrongState": "The color of the blocks overlay for wrong block states", + + "litematica.config.hotkeys.comment.addSelectionBox": "Add a new selection box (position 1) here", + "litematica.config.hotkeys.comment.cloneSelection": "Quickly clone the current area selection.\nThis basically just creates an in-memory-only schematic,\nand then creates a placement of that schematic and selects it,\nand also switches the tool mode to the Paste mode.", + "litematica.config.hotkeys.comment.deleteSelectionBox": "Delete the currently selected box", + "litematica.config.hotkeys.comment.easyPlaceUseKey": "When the easyPlaceMode is enabled, this key is used for placing the blocks", + "litematica.config.hotkeys.comment.easyPlaceToggle": "Allows quickly toggling on/off the Easy Place mode", + "litematica.config.hotkeys.comment.executeOperation": "Execute the currently selected tool operation with the\ncurrent selection or placement in the Fill, Replace,\nPaste Schematic etc. modes", + "litematica.config.hotkeys.comment.invertGhostBlockRenderState": "Inverts the schematic/ghost block rendering status\nwhile this keybind is held down", + "litematica.config.hotkeys.comment.invertOverlayRenderState": "Inverts the Overlay rendering status while this keybind is held down", + "litematica.config.hotkeys.comment.layerModeNext": "Cycle the rendering mode (all, layers) forward", + "litematica.config.hotkeys.comment.layerModePrevious": "Cycle the rendering mode (all, layers) backwards", + "litematica.config.hotkeys.comment.layerNext": "Move the rendered layer selection up", + "litematica.config.hotkeys.comment.layerPrevious": "Move the rendered layer selection down", + "litematica.config.hotkeys.comment.layerSetHere": "Set the Render Layer to the player's current position", + "litematica.config.hotkeys.comment.nudgeSelectionNegative": "Nudge the current selection in the \"negative\" direction\nThis is basically the same as mouse wheel down\nwith the Nudge modifier pressed", + "litematica.config.hotkeys.comment.nudgeSelectionPositive": "Nudge the current selection in the \"positive\" direction\nThis is basically the same as mouse wheel up\nwith the Nudge modifier pressed", + "litematica.config.hotkeys.comment.moveEntireSelection": "Move the entire current selection here", + "litematica.config.hotkeys.comment.openGuiAreaSettings": "Open the Area Settings GUI for the currently selected area", + "litematica.config.hotkeys.comment.openGuiLoadedSchematics": "Open the Loaded Schematic GUI", + "litematica.config.hotkeys.comment.openGuiMainMenu": "Open the Litematica main menu", + "litematica.config.hotkeys.comment.openGuiMaterialList": "Open the Material List GUI for the currently\nselected schematic placement", + "litematica.config.hotkeys.comment.openGuiPlacementSettings": "Open the Placement Settings GUI for the currently\nselected placement or sub-region", + "litematica.config.hotkeys.comment.openGuiSchematicPlacements": "Open the Schematic Placements GUI", + "litematica.config.hotkeys.comment.openGuiSchematicProjects": "Open the Schematic Projects GUI", + "litematica.config.hotkeys.comment.openGuiSchematicVerifier": "Open the Schematic Verifier GUI for the currently\nselected schematic placement", + "litematica.config.hotkeys.comment.openGuiSelectionManager": "Open the Area Selection manager GUI", + "litematica.config.hotkeys.comment.openGuiSettings": "Open the Config GUI", + "litematica.config.hotkeys.comment.operationModeChangeModifier": "The modifier key to quickly change the operation mode.\nHold this and scroll while holding the \"tool item\" to quickly cycle the mode.", + "litematica.config.hotkeys.comment.pickBlockFirst": "A key to pick block the first\nschematic block ray traced to", + "litematica.config.hotkeys.comment.pickBlockLast": "A key to pick block the last schematic block\nray traced to, before the first (possible) client world\nblock ray traced to. Basically this would get\nyou the block you could place against an existing block.", + "litematica.config.hotkeys.comment.pickBlockToggle": "A hotkey to toggle the pick block toggle option in the\nGeneric configs. This is provided as a quick way to enable\nor disable the pick block keys, if they interfere with something.", + "litematica.config.hotkeys.comment.renderInfoOverlay": "The key that enables rendering the block info overlay.\nUse NONE for not requiring a key to be pressed.\nDisable the similarly named option in the Visuals\nconfigs to disable the overlay completely.", + "litematica.config.hotkeys.comment.renderOverlayThroughBlocks": "A hotkey to allow the overlays to render through blocks.\nThis is just a quicker way to temporarily enable\nthe same thing that the 'schematicOverlayRenderThroughBlocks' option in Visuals does.", + "litematica.config.hotkeys.comment.rerenderSchematic": "Hotkey to refresh/redraw only the schematic, instead of\nhaving to refresh the vanilla terrain too with F3 + A", + "litematica.config.hotkeys.comment.saveAreaAsInMemorySchematic": "Save the current Area Selection as an in-memory Schematic", + "litematica.config.hotkeys.comment.saveAreaAsSchematicToFile": "Save the current Area Selection as a Schematic to a file", + "litematica.config.hotkeys.comment.schematicEditBreakAllExcept": "Modifier key to activate the \"break everything except\"\nmode/function in the Schematic Edit tool mode.\nBasically when you hold this key and punch a schematic block,\nall other blocks except this block will be removed from the schematic.", + "litematica.config.hotkeys.comment.schematicEditBreakPlaceAll": "Modifier key to activate the \"break all identical blocks\"\nfunction in the Schematic Edit tool mode", + "litematica.config.hotkeys.comment.schematicEditBreakPlaceDirection": "Modifier key to activate the directional/continuous\nbreak or place function in the Schematic Edit tool mode", + "litematica.config.hotkeys.comment.schematicEditReplaceAll": "Modifier key to activate the \"replace all identical\"\nreplace mode/function in the Schematic Edit tool mode", + "litematica.config.hotkeys.comment.schematicEditReplaceBlock": "Modifier key to activate the \"replace block type\"\nreplace mode/function in the Schematic Edit tool mode", + "litematica.config.hotkeys.comment.schematicEditReplaceDirection": "Modifier key to activate the directional/continuous\nreplace mode/function in the Schematic Edit tool mode", + "litematica.config.hotkeys.comment.schematicPlacementRotation": "The schematic is rotated 90 degrees clockwise when pressed", + "litematica.config.hotkeys.comment.schematicPlacementMirror": "The Schematic is mirror flipped when pressed", + "litematica.config.hotkeys.comment.schematicVersionCycleModifier": "The modifier key to hold to be able to use the mouse wheel\nto cycle through the schematic versions in the Version Control tool mode", + "litematica.config.hotkeys.comment.schematicVersionCycleNext": "A hotkey to cycle to the next schematic version in the Version Control tool mode", + "litematica.config.hotkeys.comment.schematicVersionCyclePrevious": "A hotkey to cycle to the next schematic version in the Version Control tool mode", + "litematica.config.hotkeys.comment.selectionGrabModifier": "The modifier key to hold to \"grab\" a selection\nbox or corner for cursor moving.", + "litematica.config.hotkeys.comment.selectionGrow": "The action hotkey to auto-grow the selection box around\nany adjacent/diagonally connected blocks", + "litematica.config.hotkeys.comment.selectionGrowModifier": "The modifier key to hold to grow or shrink\na selection box while scrolling", + "litematica.config.hotkeys.comment.selectionNudgeModifier": "The modifier key to hold while scrolling\nto nudge the selected area or corner", + "litematica.config.hotkeys.comment.selectionModeCycle": "Change the mode between Corners and Cuboid\nin the Area Selection mode", + "litematica.config.hotkeys.comment.selectionShrink": "The action hotkey to shrink the selection box so that there\nisn't any empty space (empty layers) on any side", + "litematica.config.hotkeys.comment.setAreaOrigin": "Set/move the origin point of the current\narea selection to the player's position", + "litematica.config.hotkeys.comment.setSelectionBoxPosition1": "Set the first position of the currently selected\nbox to the player's position", + "litematica.config.hotkeys.comment.setSelectionBoxPosition2": "Set the second position of the currently selected\nbox to the player's position", + "litematica.config.hotkeys.comment.toggleAllRendering": "Toggle all rendering on/off", + "litematica.config.hotkeys.comment.toggleAreaSelectionBoxesRendering": "Toggle Area Selection boxes rendering on/off", + "litematica.config.hotkeys.comment.toggleSchematicRendering": "Toggle schematic rendering (blocks & overlay) on/off", + "litematica.config.hotkeys.comment.toggleInfoOverlayRendering": "Toggle the info overlay rendering (for hovered block info)", + "litematica.config.hotkeys.comment.toggleOverlayRendering": "Toggle the block overlay rendering on/off", + "litematica.config.hotkeys.comment.toggleOverlayOutlineRendering": "Toggle the block overlay outline rendering on/off", + "litematica.config.hotkeys.comment.toggleOverlaySideRendering": "Toggle the block overlay side rendering on/off", + "litematica.config.hotkeys.comment.togglePlacementBoxesRendering": "Toggle Schematic Placement boxes rendering on/off", + "litematica.config.hotkeys.comment.togglePlacementRestriction": "A hotkey to toggle the placement restriction mode", + "litematica.config.hotkeys.comment.toggleSchematicBlockRendering": "Toggle schematic block rendering on/off", + "litematica.config.hotkeys.comment.toggleSignTextPaste": "Toggle the signTextPaste config value (in Generic category)", + "litematica.config.hotkeys.comment.toggleTranslucentRendering": "Toggle translucent vs. opaque ghost block rendering", + "litematica.config.hotkeys.comment.toggleVerifierOverlayRendering": "Toggle the Schematic Verifier overlay rendering", + "litematica.config.hotkeys.comment.toolEnabledToggle": "The keybind to toggle the \"tool\" item functionality on/off", + "litematica.config.hotkeys.comment.toolPlaceCorner1": "The button to use while holding the \"tool\" item\nto place the primary/first corner", + "litematica.config.hotkeys.comment.toolPlaceCorner2": "The button to use while holding the \"tool\" item\nto place the second corner", + "litematica.config.hotkeys.comment.toolSelectElements": "The button to use to select corners or boxes\nwhile holding the \"tool\" item", + "litematica.config.hotkeys.comment.toolSelectModifierBlock1": "The modifier key to hold while using the 'toolSelectElements'\nhotkey, to select the primary block type to use in some of the tool modes", + "litematica.config.hotkeys.comment.toolSelectModifierBlock2": "The modifier key to hold while using the 'toolSelectElements'\nhotkey, to select the secondary block type to use in some of the tool modes", + "litematica.config.hotkeys.comment.unloadCurrentSchematic": "Unloads the schematic of the currently selected placement,and thus also removes all placements created from it", + + "litematica.config.generic.prettyName.pickBlockEnabled": "Pick Block Hotkeys", + "litematica.config.generic.prettyName.easyPlaceMode": "Easy Place Mode", + "litematica.config.generic.prettyName.placementRestriction": "Placement Restriction", + "litematica.config.generic.prettyName.signTextPaste": "Sign Text Paste", + "litematica.config.generic.prettyName.toolItemEnabled": "Tool Item Enabled", + + "litematica.config.visuals.prettyName.enableAreaSelectionBoxesRendering": "Area Selection Boxes Rendering", + "litematica.config.visuals.prettyName.enablePlacementBoxesRendering": "Schematic Placement Boxes Rendering", + "litematica.config.visuals.prettyName.enableRendering": "All Rendering", + "litematica.config.visuals.prettyName.enableSchematicBlocksRendering": "Schematic Blocks Rendering", + "litematica.config.visuals.prettyName.enableSchematicFluidRendering": "Schematic Fluid Rendering", + "litematica.config.visuals.prettyName.enableSchematicOverlay": "Schematic Overlay Rendering", + "litematica.config.visuals.prettyName.enableSchematicRendering": "Schematic Rendering", + "litematica.config.visuals.prettyName.renderAOModernEnable": "AO Modern Processor", + "litematica.config.visuals.prettyName.renderBlocksAsTranslucent": "Translucent Schematic Block Rendering", + "litematica.config.visuals.prettyName.schematicOverlayEnableOutlines": "Schematic Overlay Outlines", + "litematica.config.visuals.prettyName.schematicOverlayEnableResorting": "Schematic Overlay Translucent Sorting", + "litematica.config.visuals.prettyName.schematicOverlayEnableSides": "Schematic Overlay Sides", + + "litematica.config.info_overlays.prettyName.blockInfoOverlayEnabled": "Block Info Overlay Rendering", + "litematica.config.info_overlays.prettyName.verifierOverlayEnabled": "Verifier Overlay Rendering", + + "litematica.config.hotkeys.prettyName.toggleAllRendering": "All Rendering", + + "litematica.error.area_selection.copy_failed": "Failed to copy the selection", + "litematica.error.area_selection.create_failed": "Failed to create a new selection by the name '%s', file already exists", + "litematica.error.area_selection.failed_to_load": "Failed to load the Area Selection", + "litematica.error.area_selection.grow.no_sub_region_selected": "No sub-region selected!", + "litematica.error.area_selection.no_placement_selected": "No Schematic Placement selected!", + "litematica.error.area_selection.rename.already_exists": "Error: An area already exists with the file name '%s'", + "litematica.error.area_selection.rename.invalid_safe_file_name": "Invalid generated safe file name '%s'", + + "litematica.error.duplicate_schematic_placement": "Error: Tried to add a placement that already exists", + "litematica.error.generic.creative_mode_only": "This action is only available in Creative mode", + "litematica.error.generic.failed_to_delete_file": "Failed to delete the file '%s'", + "litematica.error.generic.failed_to_sort_list_of_ignored_states": "Failed to sort the list of ignored states", + "litematica.error.generic.schematic_world_not_loaded": "Schematic world was not loaded", + + "litematica.error.area_editor.create_sub_region.exists": "A sub-region by the name '%s' already exists", + "litematica.error.area_editor.no_selection": "No active Area Selections", + "litematica.error.area_editor.open_gui.no_selection": "Currently in Selection Mode: Normal, but no area is currently selected", + "litematica.error.area_editor.rename_sub_region.exists": "Failed to rename the sub-region:\nA sub-region already exists by the name '%s'", + "litematica.error.area_editor.switch_mode.no_selection": "Can't switch to Selection Mode: Normal, because there is currently no area selected.\nSelect an area or create a new selection in the Area Selection browser", + + "litematica.error.schematic_conversion.litematic_to_litematica.failed_to_read_litematic": "Failed to load the Litematica Schematic", + "litematica.error.schematic_conversion.litematic_to_litematica.failed_to_downgrade_litematic": "Failed to downgrade the Litematica Schematic", + "litematica.error.schematic_conversion.schematic_to_litematica.failed_to_create_schematic": "Failed to create the Litematica schematic", + "litematica.error.schematic_conversion.schematic_to_litematica.failed_to_read_schematic": "Failed to load the Schematic", + "litematica.error.schematic_conversion.structure_to_litematica_failed": "Failed to convert the Structure to a Litematica Schematic", + + "litematica.error.schematic.create.no_selections": "No valid selection regions!", + + "litematica.error.schematic_load.cant_read_file": "Can't read the schematic file '%s' (doesn't exist or permission issue)", + "litematica.error.schematic_load.no_schematic_selected": "No Schematic file selected!", + "litematica.error.schematic_load.no_schematic_version_information": "The schematic doesn't have version information, and can't be safely loaded!", + "litematica.error.schematic_load.unsupported_schematic_version": "Unsupported or future schematic version '%d'", + "litematica.error.schematic_load.unsupported_type": "Unknown or unsupported file type for '%s'", + + "litematica.error.schematic_manager.schematic_export.unsupported_type": "Only Litematica schematics can be exported in other formats!", + "litematica.error.schematic_manager.schematic_import.unsupported_type": "The selected schematic type isn't supported for import!", + + "litematica.error.schematic_placements.remove_fail_locked": "The placement is locked!\n- Hold Shift to force remove it", + + "litematica.error.schematic_save.directory_doesnt_exist": "No such directory: '%s'", + "litematica.error.schematic_save.file_already_exists": "File '%s' already exists", + "litematica.error.schematic_save.invalid_directory": "Invalid directory '%s'", + "litematica.error.schematic_save.invalid_schematic_name": "Invalid schematic name '%s'", + "litematica.error.schematic_save.schematic_creation_failed": "Failed to create the schematic!", + + "litematica.error.schematic_read_from_file_failed.cant_read": "Failed to read schematic from file '%s'", + "litematica.error.schematic_read_from_file_failed.exception": "Exception while trying to read schematic from file '%s'", + "litematica.error.schematic_read_from_file_failed.no_file": "Failed to read schematic from file: no file available (in-memory schematic?)", + + "litematica.error.schematic_projects.empty_selection": "Empty Area Selection (0 sub-regions)", + "litematica.error.schematic_projects.failed_to_load_project": "Failed to load project", + "litematica.error.schematic_projects.failed_to_load_schematic": "Failed to load schematic for the current version", + "litematica.error.schematic_projects.failed_to_rename_project_file_exception": "Failed to rename project file as '%s' (exception)", + "litematica.error.schematic_projects.failed_to_rename_project_file_exists": "Can't rename project to '%s', file already exists", + "litematica.error.schematic_projects.invalid_project_directory": "Invalid or non-existing project directory", + "litematica.error.schematic_projects.no_project_open": "No project open", + "litematica.error.schematic_projects.in_projects_mode_but_no_project_open": "Currently in Schematic VCS mode, but there is currently no project open", + "litematica.error.schematic_projects.null_player": "Player was null", + "litematica.error.schematic_projects.project_already_exists": "Project '%s' already exists", + "litematica.error.schematic_projects.save_already_in_progress": "Save already in progress", + + "litematica.error.schematic_write_to_file_failed.directory_creation_failed": "Failed to create schematic directory '%s'", + "litematica.error.schematic_write_to_file_failed.exception": "Failed to write the schematic to file '%s' (exception)", + "litematica.error.schematic_write_to_file_failed.exists": "Failed to write the schematic to file '%s', file already exists", + "litematica.error.structure_write_to_file_failed.exception": "Failed to write the structure to file '%s' (exception)", + "litematica.error.structure_write_to_file_failed.exists": "Failed to write the structure to file '%s', file already exists", + + "litematica.hotkeys.category.generic_hotkeys": "Generic hotkeys", + + "litematica.info.schematic_load.schematic_loaded": "Schematic '%s' successfully loaded to memory", + "litematica.info.schematic_manager.preview.right_click_to_cancel": "- Right click the button to cancel a pending preview operation\n- Ctrl + Alt + Shift + click to set the thumbnail from an existing PNG image\n called 'thumb.png' from the same directory where the schematic file is.", + "litematica.info.schematic_manager.preview.set_preview_by_taking_a_screenshot": "Use the normal screenshot key to set the preview.\nOr right click the Set preview button to cancel setting the preview.", + "litematica.info.schematic_manager.preview.success": "Preview image successfully set", + + "litematica.gui.button.area_editor.analyze_area": "Analyze Area", + "litematica.gui.button.area_editor.change_corner_mode": "Corner Mode: %s", + "litematica.gui.button.area_editor.change_selection_mode": "Selection Mode: %s", + "litematica.gui.button.area_editor.create_schematic": "Save Schematic", + "litematica.gui.button.area_editor.create_sub_region": "New sub-region", + "litematica.gui.button.area_editor.origin_enabled": "Manual Origin: %s", + "litematica.gui.button.area_editor.set_box_name": "Set", + "litematica.gui.button.area_editor.set_selection_name": "Set", + + "litematica.gui.button.area_selection_mode": "Area Selection Mode: %s", + "litematica.gui.button.area_selections.create_directory": "Create directory", + "litematica.gui.button.area_selections.create_new_selection": "New selection", + "litematica.gui.button.area_selections.create_selection_from_placement": "From Placement", + "litematica.gui.button.area_selections.unselect": "Unselect", + + "litematica.gui.button.change_menu.area_editor": "Area Editor", + "litematica.gui.button.change_menu.configuration_menu": "Configuration menu", + "litematica.gui.button.change_menu.load_schematics_to_memory": "Load Schematics", + "litematica.gui.button.change_menu.schematic_manager": "Schematic Manager", + "litematica.gui.button.change_menu.schematic_projects_manager": "Schematic VCS", + "litematica.gui.button.change_menu.show_area_selections": "Area Selection browser", + "litematica.gui.button.change_menu.show_loaded_schematics": "Loaded Schematics", + "litematica.gui.button.change_menu.show_schematic_placements": "Schematic Placements", + "litematica.gui.button.change_menu.task_manager": "Task Manager", + "litematica.gui.button.change_menu.to_main_menu": "Litematica menu", + + "litematica.gui.button.config_gui.colors": "Colors", + "litematica.gui.button.config_gui.generic": "Generic", + "litematica.gui.button.config_gui.hotkeys": "Hotkeys", + "litematica.gui.button.config_gui.info_overlays": "Info Overlays", + "litematica.gui.button.config_gui.render_layers": "Render Layers", + "litematica.gui.button.config_gui.visuals": "Visuals", + "litematica.gui.button.config_gui.test": "Test", + + "litematica.gui.button.hover.area_editor.shift_for_in_memory": "Hold Shift to create an in-memory-only schematic", + "litematica.gui.button.hover.area_selections.unselect": "Unselects the current Area Selection", + "litematica.gui.button.hover.material_list.clear_cache": "Clears the Material Cache\nNormally this should not be needed\nThis can be used instead of deleting the 'material_cache.nbt'\nfile in case the cache has some wrong data, like items\nstored for blocks that shouldn't have them, like piston heads", + "litematica.gui.button.hover.material_list.write_hold_shift_for_csv": "Hold shift to write to a CSV file,\ninstead of the normal ASCII-art table text file", + "litematica.gui.button.hover.material_list_shift_to_select_sub_regions": "Hold shift to select the sub regions used for the Material List", + "litematica.gui.button.hover.plus_minus_tip": "Left click to increase\nRight click to decrease\nShift and/or Alt to increase the step size", + "litematica.gui.button.hover.plus_minus_tip_ctrl_alt_shift": "Left click to increase\nRight click to decrease\nShift/Alt/Ctrl to increase the step size (multiplicative)", + "litematica.gui.button.hover.schematic_list.reload_schematic": "Reloads the schematic from file.\nThis can be useful if you make a mistake\nin the Schematic Edit mode.", + "litematica.gui.button.hover.schematic_projects.area_browser_disabled_currently_in_projects_mode": "There is currently a Schematic VCS project open.\nThe Schematic VCS mode overrides the normal area selection functionality", + "litematica.gui.button.hover.schematic_projects.delete_area": "§6Delete the last placed or saved area§r", + "litematica.gui.button.hover.schematic_projects.menu_warning": "(This was called Schematic Projects before.)\nIn general you §6should not§r be using this feature,\nunless you really know how it works and what it does.\nIt somewhat changes how the area selections, placements and pasting works,\nin particular that there is also an area delete operation when pasting.\n\nBasically this feature is intended for §6iterative, in-place§r design work,\nand it allows you to easier create multiple versions/snapshots\nof the same build, and also to switch between the versions by deleting what is\nin the world first, and then pasting the next version in its place.", + "litematica.gui.button.hover.schematic_projects.move_origin_to_player": "Move the project origin to the player's current position\nThis will also move the area selection and placement", + "litematica.gui.button.hover.schematic_projects.place_to_world_warning": "§6Warning: This will delete/overwrite the current blocks\n§6in the world within the area that was previously\n§6placed from a version, or saved as a version\n§6(basically the last seen \"effective area selection\")", + "litematica.gui.button.hover.schematic_projects.save_new_version": "Saves a new schematic/version to the current project", + + "litematica.gui.button.material_list": "Material List", + "litematica.gui.button.material_list.clear_cache": "Clear cache", + "litematica.gui.button.material_list.clear_ignored": "Clear ignored", + "litematica.gui.button.material_list.hide_available": "Hide available: %s", + "litematica.gui.button.material_list.ignore": "Ignore", + "litematica.gui.button.material_list.list_type": "Show: %s", + "litematica.gui.button.material_list.refresh_list": "Refresh", + "litematica.gui.button.material_list.toggle_info_hud": "Info HUD: %s", + "litematica.gui.button.material_list.write_to_file": "Write to file", + + "litematica.gui.button.placement_sub.placement_configuration": "Placement configuration", + "litematica.gui.button.placement_sub.reset_sub_region_placement": "Reset sub-region", + "litematica.gui.button.placement_sub.slice_type": "Slice: %s", + + "litematica.gui.button.schematic_manager.export_as": "Export as:", + + "litematica.gui.button.schematic_placement.abbr.rendering": "R", + + "litematica.gui.button.schematic_placement.ignore_entities": "Ignore entities: %s", + "litematica.gui.button.schematic_placement.region_enabled": "Region: %s", + "litematica.gui.button.schematic_placement.reset_sub_region_placements": "Reset all sub-regions", + "litematica.gui.button.schematic_placement.toggle_all_off": "All §cOFF§r", + "litematica.gui.button.schematic_placement.toggle_all_on": "All §aON§r", + + "litematica.gui.button.schematic_placement.hover.enclosing_box": "Enclosing box rendering: %s", + "litematica.gui.button.schematic_placement.hover.lock": "Locking a placement prevents moving or\notherwise changing it (accidentally)", + "litematica.gui.button.schematic_placement.hover.rendering": "Rendering: %s\nNote that this works a bit funky\nand doesn't prevent entity rendering.\nUsually you should just disable\nthe placement entirely", + + "litematica.gui.button.schematic_placements.configure": "Configure", + "litematica.gui.button.schematic_placements.disable": "Disable", + "litematica.gui.button.schematic_placements.locked": "Locked: %s", + "litematica.gui.button.schematic_placements.placement_enabled": "Placement: %s", + "litematica.gui.button.schematic_placements.remove": "Remove", + "litematica.gui.button.schematic_placements.rendering_enabled": "Rendering: %s", + "litematica.gui.button.schematic_placements.select": "Select", + + "litematica.gui.button.schematic_projects.close_project": "Close current project", + "litematica.gui.button.schematic_projects.create_project": "Create project", + "litematica.gui.button.schematic_projects.delete_area": "Delete Area", + "litematica.gui.button.schematic_projects.load_project": "Load project", + "litematica.gui.button.schematic_projects.move_origin_to_player": "Move to player", + "litematica.gui.button.schematic_projects.open_area_editor": "Area Editor", + "litematica.gui.button.schematic_projects.open_manager_gui": "Open Manager", + "litematica.gui.button.schematic_projects.open_project_browser": "VCS Project Browser", + "litematica.gui.button.schematic_projects.place_to_world": "Place to world", + "litematica.gui.button.schematic_projects.save_version": "Save Version", + + "litematica.gui.button.schematic_verifier.ignore": "Ignore", + "litematica.gui.button.schematic_verifier.range_type": "Range: %s", + "litematica.gui.button.schematic_verifier.reset_ignored": "Reset ignored", + "litematica.gui.button.schematic_verifier.reset_verifier": "Reset data", + "litematica.gui.button.schematic_verifier.resume": "Resume verification", + "litematica.gui.button.schematic_verifier.start": "Start verification", + "litematica.gui.button.schematic_verifier.stop": "Stop verification", + "litematica.gui.button.schematic_verifier.toggle_info_hud": "Info HUD: %s", + + "litematica.gui.button.cancel": "Cancel", + "litematica.gui.button.configure": "Configure", + "litematica.gui.button.copy": "Copy", + "litematica.gui.button.create_directory": "Create New Directory", + "litematica.gui.button.create_placement": "Create placement", + "litematica.gui.button.delete": "Delete", + "litematica.gui.button.disable": "Disable", + "litematica.gui.button.enable": "Enable", + "litematica.gui.button.import": "Import", + "litematica.gui.button.load_schematic_to_memory": "Load Schematic", + "litematica.gui.button.mirror_value": "Mirror: %s", + "litematica.gui.button.move_to_player": "Move to player", + "litematica.gui.button.ok": "Ok", + "litematica.gui.button.reload": "Reload", + "litematica.gui.button.remove": "Remove", + "litematica.gui.button.remove_placement": "Remove placement", + "litematica.gui.button.rename": "Rename", + "litematica.gui.button.rotation_value": "Rotation: %s", + "litematica.gui.button.save_new_schematic_version": "Save Version", + "litematica.gui.button.save_schematic": "Save Schematic", + "litematica.gui.button.save_to_file": "Save to file", + "litematica.gui.button.schematic_verifier": "Schematic Verifier", + "litematica.gui.button.set_preview": "Set preview", + "litematica.gui.button.tool_mode": "Tool Mode: %s", + "litematica.gui.button.unload": "Unload", + "litematica.gui.button.unlocked": "Unlocked", + + "litematica.gui.label.area_editor.box_name": "Sub-region box name", + "litematica.gui.label.area_editor.selection_name": "Selection name", + "litematica.gui.label.area_editor.corner_1": "Corner 1", + "litematica.gui.label.area_editor.corner_2": "Corner 2", + "litematica.gui.label.area_editor.origin": "Origin", + "litematica.gui.label.area_editor.dimensions": "Dimensions", + "litematica.gui.label.area_editor.pos1": "Corner 1", + "litematica.gui.label.area_editor.pos2": "Corner 2", + "litematica.gui.label.area_editor.sub_regions": "Sub-regions (%s)", + + "litematica.gui.label.area_selection_manager.current_selection": "Selected area: %s", + + "litematica.gui.label.area_selection_box_count": "Boxes: %d", + "litematica.gui.label.area_selection_origin": "Origin: %s", + "litematica.gui.label.area_selection.mode.normal": "Normal", + "litematica.gui.label.area_selection.mode.simple": "Simple", + + "litematica.gui.label.block_info.state_client": "Client World Block State", + "litematica.gui.label.block_info.state_schematic": "Schematic World Block State", + + "litematica.gui.label.block_info_list_type.all": "All", + "litematica.gui.label.block_info_list_type.render_layers": "Render Layers", + + "litematica.gui.label.easy_place_protocol.auto": "Auto", + "litematica.gui.label.easy_place_protocol.none": "None", + "litematica.gui.label.easy_place_protocol.slabs_only": "Slabs only", + "litematica.gui.label.easy_place_protocol.v2": "Version 2", + "litematica.gui.label.easy_place_protocol.v3": "Version 3", + + "litematica.gui.label.data_fixer_mode.always": "Always", + "litematica.gui.label.data_fixer_mode.below_1205": "Below 1.20.5 Only", + "litematica.gui.label.data_fixer_mode.below_120X": "Below 1.20.x Only", + "litematica.gui.label.data_fixer_mode.below_119X": "Below 1.19.x Only", + "litematica.gui.label.data_fixer_mode.below_117X": "Below 1.17.x Only", + "litematica.gui.label.data_fixer_mode.below_116X": "Below 1.16.x Only", + "litematica.gui.label.data_fixer_mode.below_113X": "Below 1.13.x Only", + "litematica.gui.label.data_fixer_mode.below_112X": "Below 1.12.x Only", + "litematica.gui.label.data_fixer_mode.never": "Never", + + "litematica.gui.label.loaded_schematic.modified_on": "§6Modified on %s§r", + + "litematica.gui.label.material_list.abbr.shulker_box": "SB", + "litematica.gui.label.material_list.title.available": "Available", + "litematica.gui.label.material_list.title.item": "Item", + "litematica.gui.label.material_list.title.missing": "Missing", + "litematica.gui.label.material_list.title.total": "Total", + + "litematica.gui.label.material_list.multiplier": "Multiplier:", + "litematica.gui.label.material_list.name": "Name", + "litematica.gui.label.material_list.progress": "Progress: %s", + "litematica.gui.label.material_list.progress.done": "Done %s", + "litematica.gui.label.material_list.progress.mismatch": "Mismatched %s", + "litematica.gui.label.material_list.progress.missing": "Missing %s", + "litematica.gui.label.material_list.total": "Total: %s items", + + "litematica.gui.label.origin.auto": "Auto", + "litematica.gui.label.origin.manual": "Manual", + + "litematica.gui.label.paste_nbt_behavior.none": "None", + "litematica.gui.label.paste_nbt_behavior.place_data_modify": "Place & Data Modify", + "litematica.gui.label.paste_nbt_behavior.place_clone": "Place & Clone", + + "litematica.gui.label.placement_sub.region_name": "Region name: %s", + "litematica.gui.label.placement_sub.region_position": "Region position", + "litematica.gui.label.placement_sub.region_size": "Region size: %s", + + "litematica.gui.label.placement_settings.placement_origin": "Placement origin", + + "litematica.gui.label.render_layers.hotkey": "Hotkey", + "litematica.gui.label.render_layers.hover.hotkey": "The next/previous layer hotkeys will affect this boundary.\nIf both are unselected, then the hotkeys will affect\nthe boundary that is closest to the player.", + + "litematica.gui.label.replace_behavior.all": "All", + "litematica.gui.label.replace_behavior.none": "None", + "litematica.gui.label.replace_behavior.with_non_air": "With non-air", + + "litematica.gui.label.schematic_info.schematic_author": "Schematic by: §f%s§r", + "litematica.gui.label.schematic_info.description": "Description:", + "litematica.gui.label.schematic_info.enclosing_size": "Enclosing size:", + "litematica.gui.label.schematic_info.enclosing_size_value": "Enclosing size: §f%s§r", + "litematica.gui.label.schematic_info.name": "Name:", + "litematica.gui.label.schematic_info.region_count": "Regions: §f%d§r", + "litematica.gui.label.schematic_info.time_created": "Created: §f%s§r", + "litematica.gui.label.schematic_info.time_modified": "Modified: §f%s§r", + "litematica.gui.label.schematic_info.total_blocks": "Total blocks: §f%d§r", + "litematica.gui.label.schematic_info.total_blocks_and_volume": "Blocks/Volume: §f%d§r/§f%d§r", + "litematica.gui.label.schematic_info.total_volume": "Total volume: §f%d§r blocks", + "litematica.gui.label.schematic_info.version": "Litematic Version: §f%d§r", + "litematica.gui.label.schematic_info.sponge_version": "Sponge Version: §f%d§r", + "litematica.gui.label.schematic_info.vanilla_version": "Vanilla Structure", + "litematica.gui.label.schematic_info.schema": "Minecraft: §f%s§r [Schema §f%d§r]", + + "litematica.gui.label.schematic_load.checkbox.create_placement": "Create a placement", + "litematica.gui.label.schematic_load.hoverinfo.create_placement": "Immediately create a new placement\nand select that placement", + + "litematica.gui.label.schematic_placement.enclosing_size": "Enclosing size: %s", + "litematica.gui.label.schematic_placement.hoverinfo.hold_shift_to_create_as_disabled": "Hold shift to disable the placement when created", + "litematica.gui.label.schematic_placement.in_memory": "IN-MEMORY ONLY", + "litematica.gui.label.schematic_placement.origin": "Origin: %s", + "litematica.gui.label.schematic_placement.rename_placement": "Rename placement:", + "litematica.gui.label.schematic_placement.schematic_file": "File: %s", + "litematica.gui.label.schematic_placement.schematic_name": "Schematic: %s", + "litematica.gui.label.schematic_placement.sub_region_count": "Sub-regions: %s", + "litematica.gui.label.schematic_placement.sub_regions": "Sub-regions (%s):", + + "litematica.gui.label.schematic_projects.currently_open_project": "Currently open project: %s", + "litematica.gui.label.schematic_projects.origin": "Origin:", + "litematica.gui.label.schematic_projects.project": "Project:", + "litematica.gui.label.schematic_projects.version": "Version: %s (of %s)", + "litematica.gui.label.schematic_projects.version_entry": "Ver. %d - %s", + "litematica.gui.label.schematic_projects.version_name": "Version name:", + + "litematica.gui.label.schematic_save.checkbox.ignore_entities": "Ignore entities", + "litematica.gui.label.schematic_save.hover_info.hold_shift_to_overwrite": "Hold shift to overwrite an existing file", + "litematica.gui.label.schematic_save.checkbox.save_from_schematic_world": "Save from schematic world", + "litematica.gui.label.schematic_save.hover_info.save_from_schematic_world": "If enabled, then the schematic is created by saving the\ncontents of the selection from the schematic world\ninstead of the normal vanilla world.\nThis allows you to combine or trim schematics without having\nto paste them to a temporary creative world.", + "litematica.gui.label.schematic_save.checkbox.visible_blocks_only": "Visible blocks only [experimental quick hax]", + "litematica.gui.label.schematic_save.checkbox.support_blocks": "Support blocks", + "litematica.gui.label.schematic_save.hover_info.support_blocks": "Include any necessary support blocks in \"Visible blocks only\" mode,\nfor things like Repeaters, Comparators, Carpets or gravity blocks that would be visible", + "litematica.gui.label.schematic_save.hoverinfo.hold_shift_to_overwrite": "Hold shift to overwrite an existing file", + + "litematica.gui.label.schematic_verifier.count": "Count", + "litematica.gui.label.schematic_verifier.expected": "Expected", + "litematica.gui.label.schematic_verifier.found": "Found", + "litematica.gui.label.schematic_verifier_display_type.all": "All (non-ignored)", + "litematica.gui.label.schematic_verifier_display_type.correct_state": "Correct State", + "litematica.gui.label.schematic_verifier_display_type.extra": "Extra Blocks", + "litematica.gui.label.schematic_verifier_display_type.missing": "Missing Blocks", + "litematica.gui.label.schematic_verifier_display_type.wrong_blocks": "Wrong Blocks", + "litematica.gui.label.schematic_verifier_display_type.wrong_state": "Wrong States", + "litematica.gui.label.schematic_verifier.status.done_errors": "Wrong: §cBlock: %s§r, §6State: %s§r, §bMissing: %s§r, §dExtra: %s§r", + "litematica.gui.label.schematic_verifier.status.done_correct_total": "§aCorrect: %s§r, Total: %s", + "litematica.gui.label.schematic_verifier.status.verifying": "Unseen Chunks: %s / %s", + "litematica.gui.label.schematic_verifier.verifier": "Schematic Verifier", + + "litematica.gui.label.task.title.remaining_chunks": "%s, remaining chunks (%s)", + "litematica.gui.label.task_name.area_analyzer": "Area Analyzer", + "litematica.gui.label.task_name.delete": "Delete task", + "litematica.gui.label.task_name.fill": "Fill task", + "litematica.gui.label.task_name.material_list": "Material List", + "litematica.gui.label.task_name.paste": "Paste Schematic", + "litematica.gui.label.task_name.save_schematic": "Save Schematic", + "litematica.gui.label.task_name.verifier": "Verifier", + + "litematica.gui.message.confirm_file_deletion": "Do you want to delete the file '%s'?", + "litematica.gui.message.schematic_projects.confirm_delete_area": "Do you want to delete the \"last affected\" area?\nThis will delete whatever blocks and entities are within the area that the project manager last placed to the world, or last saved as a version. (Basically the \"last seen affected area\", such that if you were to cycle versions, it would not leave blocks behind from the previous version.)", + "litematica.gui.message.schematic_projects.confirm_place_to_world": "Do you want to place this version to the world?\nIt will delete whatever blocks are within the area that the project manager last placed to the world, or last saved as a version. (Basically the \"last seen affected area\", such that if you were to cycle versions, it would not leave blocks behind from the previous version.)", + + "litematica.gui.title.area_editor_normal": "Area Editor (Normal/Multi-box mode)", + "litematica.gui.title.area_editor_normal_schematic_projects": "Area Editor (§6§lSchematic VCS area§r)", + "litematica.gui.title.area_editor_simple": "Area Editor (Simple mode)", + "litematica.gui.title.area_editor_sub_region": "Area Editor (sub-region)", + "litematica.gui.title.area_editor.sub_region_name": "Sub-region name", + "litematica.gui.title.area_selection_manager": "Area Selection Manager", + "litematica.gui.title.configure_schematic_placement": "Configure Schematic placement", + "litematica.gui.title.configure_schematic_sub_region": "Configure Placement Sub-Region", + "litematica.gui.title.configs": "%s Configs - %s", + "litematica.gui.title.confirm_file_deletion": "Confirm file deletion", + "litematica.gui.title.copy_area_selection": "Copy Area Selection '%s'", + "litematica.gui.title.create_area_selection": "Create a new Area Selection", + "litematica.gui.title.create_area_selection_from_placement": "Create a new Area Selection from a Schematic Placement", + "litematica.gui.title.create_directory": "Create a new directory", + "litematica.gui.title.create_in_memory_schematic": "Create an in-memory Schematic", + "litematica.gui.title.create_schematic_project": "Create a new schematic project", + "litematica.gui.title.litematica_main_menu": "Litematica %s", + "litematica.gui.title.load_schematic": "Load Schematic", + "litematica.gui.title.manage_loaded_schematics": "Manage loaded Schematics", + "litematica.gui.title.manage_schematic_placements": "Manage Schematic Placements", + "litematica.gui.title.material_list.area_analyzer": "Area Analysis for selection '%s'", + "litematica.gui.title.material_list.placement": "Material List for placement '%s'", + "litematica.gui.title.material_list.schematic": "Material List for schematic '%s' (%s of %s regions)", + "litematica.gui.title.material_list.select_schematic_regions": "Select the sub-regions for the Material List for '%s'", + "litematica.gui.title.rename_area_selection": "Rename Area Selection", + "litematica.gui.title.rename_area_sub_region": "Rename Sub Region", + "litematica.gui.title.rename_schematic": "Rename Schematic", + "litematica.gui.title.create_schematic_from_selection": "Save the currently selected area as a Schematic", + "litematica.gui.title.save_exported_schematic": "Save an exported %s of '%s'", + "litematica.gui.title.save_imported_schematic": "Save an imported Schematic", + "litematica.gui.title.save_schematic_from_memory": "Save an in-memory Schematic to a file", + "litematica.gui.title.save_schematic_filename": "Schematic File Name", + "litematica.gui.title.schematic_browser": "Schematic Browser", + "litematica.gui.title.schematic_manager": "Schematic Manager", + "litematica.gui.title.schematic_project_manager": "Schematic VCS Project Manager", + "litematica.gui.title.schematic_projects.confirm_delete_area": "Confirm Delete area", + "litematica.gui.title.schematic_projects.confirm_place_to_world": "Confirm Place to world action", + "litematica.gui.title.schematic_projects.save_new_version": "Save new schematic version", + "litematica.gui.title.schematic_projects_browser": "Schematic VCS Projects Browser", + "litematica.gui.title.schematic_verifier": "Schematic Verifier for '%s'", + "litematica.gui.title.schematic_verifier_errors": "Schematic Verifier errors", + "litematica.gui.title.task_manager": "Task Manager", + + "litematica.hud.area_selection.box_count": "Boxes: %s", + "litematica.hud.area_selection.dimensions_position": "Dim: %s - p1: %s, p2: %s", + "litematica.hud.area_selection.mode.corners": "Corners", + "litematica.hud.area_selection.mode.expand": "Expand", + "litematica.hud.area_selection.origin": "Origin: %s", + "litematica.hud.area_selection.selected_area_normal": "Area: %s", + "litematica.hud.area_selection.selected_area_simple": "Area [§6Simple mode§r]: %s", + "litematica.hud.area_selection.selected_sub_region": "Sub-region: %s", + "litematica.hud.area_selection.selection_corners_mode": "Corners Mode: %s", + + "litematica.hud.delete.target_mode": "Delete target mode: %s", + "litematica.hud.delete.target_mode.area": "Current Area", + "litematica.hud.delete.target_mode.placement": "Current Placement", + + "litematica.hud.misc.easy_place_mode_enabled": "Easy Place mode §aON§r", + "litematica.hud.misc.none_brackets": "", + "litematica.hud.misc.placement_restriction_mode_enabled": "Placement Restriction mode §aON§r", + "litematica.hud.misc.render_layer_mode": "Layer Mode: %s - %s", + "litematica.hud.misc.render_layer_mode_all": "Layer Mode: %s", + "litematica.hud.misc.renderer_status": "Renderers: A: %s S: %s B: %s O: %s SEL: %s", + "litematica.hud.misc.schematic_paste.data_restore_mode": "Data Restore Mode: §b%s", + "litematica.hud.misc.schematic_paste.replace_mode": "Replace blocks: %s", + "litematica.hud.misc.schematic_paste.ignore_inventory_contents": "Ignore inventory contents: %s", + + "litematica.hud.schematic_placement.hover_info.lock_coordinate": "Lock this coordinate\nThis allows changing the other coordinates\nwithout affecting the locked ones", + "litematica.hud.schematic_placement.hover_info.placement_locked": "This placement has been locked and can't\nbe modified without unlocking it first", + "litematica.hud.schematic_placement.hover_info.placement_modified": "This placement has been modified", + "litematica.hud.schematic_placement.hover_info.placement_sub_region_modified": "This sub-region has been modified", + "litematica.hud.schematic_placement.selected_placement": "Placement", + "litematica.hud.schematic_placement.selected_sub_region": "Sub-region", + "litematica.hud.schematic_placement.sub_region_count": "Regions", + "litematica.hud.schematic_placement.sub_region_modified": "Modified", + "litematica.hud.schematic_placement.sub_region_origin": "Region origin: %s", + "litematica.hud.schematic_placement.sub_regions_modified": "Regions modified", + + "litematica.hud.selected_mode": "Mode", + + "litematica.hud.schematic_projects.current_version_date": "Date: %s", + "litematica.hud.schematic_projects.current_version": "Version: %s/%s - name: %s", + "litematica.hud.schematic_projects.no_project_open": "", + "litematica.hud.schematic_projects.no_versions": "", + "litematica.hud.schematic_projects.origin": "Project origin: %s", + "litematica.hud.schematic_projects.project_name": "Project: %s", + "litematica.hud.schematic_projects_mode": "§6Schematic VCS mode§r", + + "litematica.info.material_list": "- The Material List hotkey will open the last viewed Material List,\n if there is one stored\n- To switch to a different Material List, open one via\n the GUI button in the Placement Configuration GUI or\n the schematic browser\n- The stored/last viewed list is also forgot\n if the selected Schematic Placement is changed\n- If there is no last viewed Material List yet,\n then the selected Placement is used, if there is one", + + "litematica.label.alignment.center": "Center", + "litematica.label.alignment.top_center": "Top Center", + + "litematica.label.none_lower": "none", + "litematica.label.no": "no", + "litematica.label.yes": "yes", + + "litematica.message.error.area_deletion_aborted": "Area Deletion interrupted or aborted", + "litematica.message.error.empty_area_selection": "Empty Area Selection (no boxes)", + "litematica.message.error.invalid_schematic_name": "Invalid schematic name '%s'", + "litematica.message.error.no_area_selected": "§cNo area selected§r", + "litematica.message.error.no_placement_selected": "§cNo placement selected§r", + "litematica.message.error.only_works_in_single_player": "§cThis operation only works in single player§r", + "litematica.message.error.move.pending_tasks": "§cCan not start a move operation while there are pending tasks§r", + "litematica.message.error.placement_paste_outside_world": "The placement can't be pasted in the current position, because it goes outside the world bounds", + "litematica.message.error.schematic_paste_failed": "§cSchematic Paste to world failed§r", + "litematica.message.error.schematic_save_failed": "Failed to save schematic to file '%s'", + "litematica.message.error.schematic_save_interrupted": "Schematic saving interrupted or stopped", + "litematica.message.error.schematic_save_no_area_selected": "§cSchematic saving failed - no area selected§r", + "litematica.message.warn.pickblock.no_suitable_slot_found": "No suitable hotbar slot found for pick block!\nCheck the config Generic -> §epickBlockableSlots§r.\nAlso depending on the §epickBlockAvoid*§6 configs, the pick block feature may refuse to replace any tools or other damageable items in those slots.", + "litematica.message.warn.pickblock.no_valid_slots_configured": "No hotbar slots set in the Generic -> §epickBlockableSlots§6 config!", + + "litematica.message.added_selection_box": "Added a new selection box at %s", + "litematica.message.area_clear_fail": "§cFailed to clear the area(s)§r", + "litematica.message.area_cleared": "Area cleared", + "litematica.message.area_filled": "Area filled", + "litematica.message.area_fill_fail": "Failed to fill the area", + "litematica.message.area_selections.selection_created_from_placement": "Created a new selection from placement '%s'", + "litematica.message.easy_place_fail": "§6Action prevented by the Easy Place mode", + "litematica.message.grabbed_element_for_moving": "Grabbed an element to move", + "litematica.message.in_memory_schematic_created": "Created an in-memory schematic as '%s'", + "litematica.message.litematic_saved_as": "Successfully Upgraded the Litematica Schematic's Data Version\nSchematic saved as '%s'", + "litematica.message.material_list.material_cache_cleared": "Material Cache cleared", + "litematica.message.material_list_written_to_file": "Material list written to file '%s'", + "litematica.message.moved_area_origin": "Moved the area origin point from %s => %s", + "litematica.message.moved_selection": "Moved the current selection from %s => %s", + "litematica.message.paste_with_servux": "§6The placement is being uploaded to Servux for pasting", + "litematica.message.placement.cant_modify_is_locked": "§cThe placement is locked and can't be modified§r", + "litematica.message.placement.moved_placement_origin": "Moved placement origin from %s => %s", + "litematica.message.placement.moved_subregion_to": "Moved sub-region to %s", + "litematica.message.placement.rotation_set_to": "Placement rotated to %s", + "litematica.message.placement.mirror_set_to": "Placement mirrored to %s", + "litematica.message.placement_restriction_fail": "§6Action prevented by Placement Restriction mode", + "litematica.message.removed_area_origin": "Removed the explicit/manual area origin point", + "litematica.message.removed_selection_box": "Removed selection box %s", + "litematica.message.scheduled_task_added": "Scheduled task added...", + "litematica.message.litematic_downgrade_exported_as": "Schematic export downgraded as '%s'\n§6NOTE: This is an experimental feature; data loss may occur.§r", + "litematica.message.schematic_exported_as": "Schematic exported as '%s'", + "litematica.message.schematic_pasted": "Schematic pasted in world", + "litematica.message.schematic_pasted_using_fill_and_setblock": "Schematic pasted using §b%s§r fill and §b%s§r setblock commands", + "litematica.message.schematic_pasted_using_setblock": "Schematic pasted using §b%s§r setblock commands", + "litematica.message.schematic_pasted_using_world_edit": "Schematic pasted using §b%s§r World Edit //set commands", + "litematica.message.schematic_placement_created": "Placement created for '%s'", + "litematica.message.schematic_preview_cancelled": "Preview task cancelled", + "litematica.message.schematic_read_from_file_success": "Schematic loaded from file '%s'", + "litematica.message.schematic_rendering_refreshed": "Schematic rendering refreshed", + "litematica.message.schematic_saved_as": "Schematic saved as '%s'", + "litematica.message.schematic_save_task_created": "Schematic saving task created", + "litematica.message.set_area_origin": "Set the area origin point to %s", + "litematica.message.set_selection_box_point": "Set/moved point %d to %s", + "litematica.message.toggled": "Toggled %s %s", + "litematica.message.value.on": "ON", + "litematica.message.value.off": "OFF", + + "litematica.message.schematic_projects.project_created": "Project '%s' created", + "litematica.message.schematic_projects.project_loaded": "Project '%s' loaded", + "litematica.message.schematic_projects.version_saved": "New version (#%s) saved as '%s'", + + "litematica.message.warn.area_selection.browser_open_in_simple_mode": "Note: You are currently in the Simple Area Selection mode", + "litematica.message.warn.layer_mode_currently_at": "Note: You are currently in the '%s' render layer mode", + "litematica.message.warn.main_rendering_disabled": "Warning: The main rendering is currently disabled\nSee Visuals -> %s, or Hotkeys -> %s ['%s']", + "litematica.message.warn.schematic_blocks_rendering_disabled": "Warning: Schematic blocks rendering is currently disabled\nSee Visuals -> %s, or Hotkeys -> %s ['%s']", + "litematica.message.warn.schematic_load_non_litematica": "Warning: When you directly load non-Litematica schematics, the created placements won't be persistent.\nAlso if you have to load the schematic many times, then the schematic type conversion lag spike (for large schematics) will happen each time you load it.\n\nIt is therefore recommended to either import the schematic and save it in the Litematica format via the Schematic Manager menu, or better yet, paste the original schematic into a temporary world using MCEdit or the Paste mode in Litematica, and then make a new Litematica schematic from that, preferably using multiple sub-regions to tightly capture the build, where applicable.", + "litematica.message.warn.schematic_rebuild_placement_not_selected": "The targeted placement is currently not selected. The Replace All hotkey only works on the currently selected sub-region(s) of the placement you click on. So to replace the blocks in only one sub-region, select that sub-region. To replace in the entire schematic (all sun-regions), select the entire placement and not a sub-region of it. The blocks are also only replaced within the area limited by the current Render Layers setting.", + "litematica.message.warn.schematic_rendering_disabled": "Warning: Schematic rendering is currently disabled\nSee Visuals -> %s, or Hotkeys -> %s ['%s']", + "litematica.message.warn.schematic_verifier.overlay_disabled": "Warning: The verifier overlay rendering is currently disabled! See Info Overlays -> %s (or Hotkeys -> %s ['%s'])", + + "litematica.message.warning.invalid_number": "Invalid input for a number '%s'", + "litematica.message.warning.schematic_projects_hidden": "Warning: The Schematic Version Control System is currently hidden. In general you should NOT use this, unless you really know how it works and changes some of the mod behavior. It is meant for iteratire, in-place design work, where flipping between different versions of the build in-place (= deleting and replacing the previous version) is needed. If you want to use it, then enable the option Generic -> unhideSchematicVCS", + + "litematica.warning.area_editor.area_rendering_disabled": "Note: The Area Selection boxes rendering is currently disabled\nSee Visuals -> %s, or Hotkeys -> %s ['%s']", + + "litematica.tool_hud.block_1": "Block: %s", + "litematica.tool_hud.block_2": "Replace: %s", + "litematica.tool_hud.facing": "Facing: %s", + + "litematica.tool_mode.name.area_selection": "Area Selection", + "litematica.tool_mode.name.delete": "Delete", + "litematica.tool_mode.name.fill": "Fill", + "litematica.tool_mode.name.grid_paste": "Grid Paste Schematic in world", + "litematica.tool_mode.name.move": "Move", + "litematica.tool_mode.name.paste_schematic": "Paste Schematic in world", + "litematica.tool_mode.name.rebuild": "Edit Schematic", + "litematica.tool_mode.name.replace_block": "Replace block", + "litematica.tool_mode.name.schematic_placement": "Schematic Placement" +} diff --git a/src/main/resources/assets/forgematica/lang/it_it.json b/src/main/resources/assets/litematica/lang/it_it.json similarity index 97% rename from src/main/resources/assets/forgematica/lang/it_it.json rename to src/main/resources/assets/litematica/lang/it_it.json index c7d3237..e27394f 100644 --- a/src/main/resources/assets/forgematica/lang/it_it.json +++ b/src/main/resources/assets/litematica/lang/it_it.json @@ -35,6 +35,8 @@ "litematica.config.generic.name.easyPlaceVanillaReach": "raggioVanillaEasyPlace", "litematica.config.generic.name.entityDataSync": "sincronizzazioneDatiEntità", "litematica.config.generic.name.entityDataSyncBackup": "backupSincronizzazioneDatiEntità", + "litematica.config.generic.name.entityDataSyncCacheTimeout": "entityDataSyncCacheTimeout", + "litematica.config.generic.name.entityDataSyncLoadNbt": "entityDataSyncLoadNbt", "litematica.config.generic.name.executeRequireHoldingTool": "eseguireRichiedeStrumentoInMano", "litematica.config.generic.name.fixChestMirror": "correggiSpecchioCassa", "litematica.config.generic.name.fixRailRotation": "correggiRotazioneBinario", @@ -81,6 +83,7 @@ "litematica.config.visuals.name.ignoreExistingFluids": "ignoraFluidiEsistenti", "litematica.config.visuals.name.overlayReducedInnerSides": "overlayLatiInterniRidotti", "litematica.config.visuals.name.placementBoxSideAlpha": "alphaLatiSceltePosizionamento", + "litematica.config.visuals.name.renderAOModernEnable": "renderAOModernEnable", "litematica.config.visuals.name.renderAreaSelectionBoxSides": "renderLatiScelteArea", "litematica.config.visuals.name.renderBlocksAsTranslucent": "renderBloccoComeTraslucido", "litematica.config.visuals.name.renderCollidingSchematicBlocks": "renderBlocchiSchematiciInCollisione", @@ -250,6 +253,8 @@ "litematica.config.generic.comment.easyPlaceVanillaReach": "Se abilitato, riduce la distanza di raggiungimento da +1.0 al\nvalore Vanilla affinché i server non rifiutino il posizionamento di\nblocchi lontani.", "litematica.config.generic.comment.entityDataSync": "Usa il protocollo Entity Data Sync di Servux\nper ottenere i dati delle entità dal server.", "litematica.config.generic.comment.entityDataSyncBackup": "Usa il metodo Vanilla NBT Query quando Servux\nnon è disponibile. Questo metodo richiede privilegi di operatore.", + "litematica.config.generic.comment.entityDataSyncCacheTimeout": "The Cache timeout value in seconds that\nthe Entity Cache keeps records for.\nA lower value means more frequent updates, but\nyou may want to consider a higher value if\nyour litematics fail to save with all of the NBT data.", + "litematica.config.generic.comment.entityDataSyncLoadNbt": "Load the synced NBT data into the Client World.\n§6WARNING! This feature will cause incompatibility\n§6with other mods that rely on this data.", "litematica.config.generic.comment.executeRequireHoldingTool": "Richiedi di tenere un oggetto strumento abilitato\nper far funzionare il tasto di scelta rapida executeOperation.", "litematica.config.generic.comment.fixChestMirror": "Abilita una correzione per il codice di specchiatura delle casse\nrotto nella versione Vanilla.", "litematica.config.generic.comment.fixRailRotation": "Se vero, viene applicata una correzione per il bug Vanilla nelle rotaie,\nnel quale le rotazioni a 180 gradi delle rotaie dritte nord-sud e\neast-west ruotano di 90 gradi in senso antiorario invece di ruotare di 180 gradi.", @@ -296,6 +301,7 @@ "litematica.config.visuals.comment.ignoreExistingFluids": "Se abilitato, tutti i blocchi di fluido vengono ignorati come \"blocchi extra\"\ne come \"blocchi sbagliati\", cioè dove lo schema ha aria o altri blocchi.\nFondamentalmente, questo rende la costruzione sotto acqua molto meno fastidiosa.\nNota: Probabilmente vorrai anche abilitare l'opzione 'renderCollidingSchematicBlocks'\nallo stesso tempo, per consentire ai blocchi di essere renderizzati all'interno dei fluidi.", "litematica.config.visuals.comment.overlayReducedInnerSides": "Se abilitato, i lati interni adiacenti/toccanti\nper le sovrapposizioni dei blocchi vengono rimossi/non renderizzati", "litematica.config.visuals.comment.placementBoxSideAlpha": "Il valore alpha dei lati delle scatole di sottoregione", + "litematica.config.visuals.comment.renderAOModernEnable": "Enables a new Ambient Occlusion Processor which should\nfix issues where shadows aren't being applied correctly,\nbut it can also cause Schematic Layers to have shadows\nfrom adjacent layers that can be distracting\nwhile your building.", "litematica.config.visuals.comment.renderAreaSelectionBoxSides": "Se abilitato, le scatole di selezione dell'area avranno\ni loro lati quadrati renderizzati", "litematica.config.visuals.comment.renderBlocksAsTranslucent": "Se abilitato, gli schemi vengono renderizzati\nutilizzando \"blocchi fantasma\" traslucidi", "litematica.config.visuals.comment.renderCollidingSchematicBlocks": "Se abilitato, i blocchi negli schemi vengono renderizzati\nanche quando c'è già un blocco (sbagliato) nel mondo del client.\nProbabilmente utile soprattutto quando si cerca di costruire\nqualcosa dove ci sono strati di neve o acqua nel mezzo.", @@ -441,6 +447,7 @@ "litematica.config.visuals.prettyName.enableSchematicFluidRendering": "Schematic Fluid Rendering", "litematica.config.visuals.prettyName.enableSchematicOverlay": "Rendering dell'Overlay dello Schema", "litematica.config.visuals.prettyName.enableSchematicRendering": "Rendering dello Schema", + "litematica.config.visuals.prettyName.renderAOModernEnable": "AO Modern Processor", "litematica.config.visuals.prettyName.renderBlocksAsTranslucent": "Rendering dei Blocchi dello Schema come Traslucidi", "litematica.config.visuals.prettyName.schematicOverlayEnableOutlines": "Contorni dell'Overlay dello Schema", "litematica.config.visuals.prettyName.schematicOverlayEnableResorting": "Ordinamento Traslucido dell'Overlay dello Schema", @@ -695,7 +702,9 @@ "litematica.gui.label.schematic_info.total_blocks": "Totale blocchi: §f%d§r", "litematica.gui.label.schematic_info.total_blocks_and_volume": "Blocchi/Volume: §f%d§r/§f%d§r", "litematica.gui.label.schematic_info.total_volume": "Volume totale: §f%d§r blocchi", - "litematica.gui.label.schematic_info.version": "Versione Litematic: §f%d§r", + "litematica.gui.label.schematic_info.version": "Litematic Version: §f%d§r", + "litematica.gui.label.schematic_info.sponge_version": "Sponge Version: §f%d§r", + "litematica.gui.label.schematic_info.vanilla_version": "Vanilla Structure", "litematica.gui.label.schematic_info.schema": "Minecraft: §f%s§r [Schema §f%d§r]", "litematica.gui.label.schematic_load.checkbox.create_placement": "Crea una posizione", "litematica.gui.label.schematic_load.hoverinfo.create_placement": "Crea immediatamente una nuova posizione\ned è selezionata quella posizione", @@ -715,6 +724,12 @@ "litematica.gui.label.schematic_projects.version_entry": "Ver. %d - %s", "litematica.gui.label.schematic_projects.version_name": "Nome della versione:", "litematica.gui.label.schematic_save.checkbox.ignore_entities": "Ignora entità", + "litematica.gui.label.schematic_save.hover_info.hold_shift_to_overwrite": "Hold shift to overwrite an existing file", + "litematica.gui.label.schematic_save.checkbox.save_from_schematic_world": "Save from schematic world", + "litematica.gui.label.schematic_save.hover_info.save_from_schematic_world": "If enabled, then the schematic is created by saving the\ncontents of the selection from the schematic world\ninstead of the normal vanilla world.\nThis allows you to combine or trim schematics without having\nto paste them to a temporary creative world.", + "litematica.gui.label.schematic_save.checkbox.visible_blocks_only": "Visible blocks only [experimental quick hax]", + "litematica.gui.label.schematic_save.checkbox.support_blocks": "Support blocks", + "litematica.gui.label.schematic_save.hover_info.support_blocks": "Include any necessary support blocks in \"Visible blocks only\" mode,\nfor things like Repeaters, Comparators, Carpets or gravity blocks that would be visible", "litematica.gui.label.schematic_save.hoverinfo.hold_shift_to_overwrite": "Tieni premuto Shift per sovrascrivere un file esistente", "litematica.gui.label.schematic_verifier.count": "Conteggio", "litematica.gui.label.schematic_verifier.expected": "Atteso", @@ -802,6 +817,7 @@ "litematica.hud.misc.renderer_status": "Renderizzatori: A: %s S: %s B: %s O: %s SEL: %s", "litematica.hud.misc.schematic_paste.data_restore_mode": "Modalità Ripristino Dati: §b%s", "litematica.hud.misc.schematic_paste.replace_mode": "Sostituisci blocchi: %s", + "litematica.hud.misc.schematic_paste.ignore_inventory_contents": "Ignore inventory contents: %s", "litematica.hud.schematic_placement.hover_info.lock_coordinate": "Blocca questa coordinata\nQuesto permette di modificare le altre coordinate\nsenza influenzare quelle bloccate", "litematica.hud.schematic_placement.hover_info.placement_locked": "Questo posizionamento è stato bloccato e non può\nessere modificato senza prima sbloccarlo", "litematica.hud.schematic_placement.hover_info.placement_modified": "Questo posizionamento è stato modificato", diff --git a/src/main/resources/assets/forgematica/lang/ja_jp.json b/src/main/resources/assets/litematica/lang/ja_jp.json similarity index 97% rename from src/main/resources/assets/forgematica/lang/ja_jp.json rename to src/main/resources/assets/litematica/lang/ja_jp.json index 926df43..68c4be3 100644 --- a/src/main/resources/assets/forgematica/lang/ja_jp.json +++ b/src/main/resources/assets/litematica/lang/ja_jp.json @@ -35,6 +35,8 @@ "litematica.config.generic.name.easyPlaceVanillaReach": "easyPlaceVanillaReach", "litematica.config.generic.name.entityDataSync": "entityDataSync", "litematica.config.generic.name.entityDataSyncBackup": "entityDataSyncBackup", + "litematica.config.generic.name.entityDataSyncCacheTimeout": "entityDataSyncCacheTimeout", + "litematica.config.generic.name.entityDataSyncLoadNbt": "entityDataSyncLoadNbt", "litematica.config.generic.name.executeRequireHoldingTool": "executeRequireHoldingTool", "litematica.config.generic.name.fixChestMirror": "fixChestMirror", "litematica.config.generic.name.fixRailRotation": "fixRailRotation", @@ -81,6 +83,7 @@ "litematica.config.visuals.name.ignoreExistingFluids": "ignoreExistingFluids", "litematica.config.visuals.name.overlayReducedInnerSides": "overlayReducedInnerSides", "litematica.config.visuals.name.placementBoxSideAlpha": "placementBoxSideAlpha", + "litematica.config.visuals.name.renderAOModernEnable": "renderAOModernEnable", "litematica.config.visuals.name.renderAreaSelectionBoxSides": "renderAreaSelectionBoxSides", "litematica.config.visuals.name.renderBlocksAsTranslucent": "renderBlocksAsTranslucent", "litematica.config.visuals.name.renderCollidingSchematicBlocks": "renderCollidingSchematicBlocks", @@ -250,6 +253,8 @@ "litematica.config.generic.comment.easyPlaceVanillaReach": "If enabled, reduces reach distance from +1.0 to the\nVanilla value so servers don't reject placement of\nfar blocks.", "litematica.config.generic.comment.entityDataSync": "Use the Entity Data Sync protocol from Servux\nto obtain Entity Data from the server", "litematica.config.generic.comment.entityDataSyncBackup": "Use the Vanilla NBT Query method when Servux\nis not available. This method requires Operator Privileges.", + "litematica.config.generic.comment.entityDataSyncCacheTimeout": "The Cache timeout value in seconds that\nthe Entity Cache keeps records for.\nA lower value means more frequent updates, but\nyou may want to consider a higher value if\nyour litematics fail to save with all of the NBT data.", + "litematica.config.generic.comment.entityDataSyncLoadNbt": "Load the synced NBT data into the Client World.\n§6WARNING! This feature will cause incompatibility\n§6with other mods that rely on this data.", "litematica.config.generic.comment.executeRequireHoldingTool": "Require holding an enabled tool item\nfor the executeOperation hotkey to work", "litematica.config.generic.comment.fixChestMirror": "Enable a fix to the broken chest mirror code in vanilla", "litematica.config.generic.comment.fixRailRotation": "If true, then a fix is applied for the vanilla bug in rails,\nwhere the 180 degree rotations of straight north-south and\neast-west rails rotate 90 degrees counterclockwise instead >_>", @@ -296,6 +301,7 @@ "litematica.config.visuals.comment.ignoreExistingFluids": "If enabled, then any fluid blocks are ignored as \"extra blocks\"\nand as \"wrong blocks\", ie. where the schematic has air or other blocks.\nBasically this makes building stuff under water a whole lot less annoying.\nNote: You will most likely also want to enable the 'renderCollidingSchematicBlocks'\noption at the same time, to allow the blocks to get rendered inside fluids.", "litematica.config.visuals.comment.overlayReducedInnerSides": "If enabled, then the adjacent/touching inner sides\nfor the block overlays are removed/not rendered", "litematica.config.visuals.comment.placementBoxSideAlpha": "The alpha value of the sub-region boxes' side", + "litematica.config.visuals.comment.renderAOModernEnable": "Enables a new Ambient Occlusion Processor which should\nfix issues where shadows aren't being applied correctly,\nbut it can also cause Schematic Layers to have shadows\nfrom adjacent layers that can be distracting\nwhile your building.", "litematica.config.visuals.comment.renderAreaSelectionBoxSides": "If enabled, then the area selection boxes will\nhave their side quads rendered", "litematica.config.visuals.comment.renderBlocksAsTranslucent": "If enabled, then the schematics are rendered\nusing translucent \"ghost blocks\"", "litematica.config.visuals.comment.renderCollidingSchematicBlocks": "If enabled, then blocks in the schematics are rendered\nalso when there is already a (wrong) block in the client world.\nProbably mostly useful when trying to build\nsomething where there are snow layers or water in the way.", @@ -441,6 +447,7 @@ "litematica.config.visuals.prettyName.enableSchematicFluidRendering": "Schematic Fluid Rendering", "litematica.config.visuals.prettyName.enableSchematicOverlay": "Schematic Overlay Rendering", "litematica.config.visuals.prettyName.enableSchematicRendering": "Schematic Rendering", + "litematica.config.visuals.prettyName.renderAOModernEnable": "AO Modern Processor", "litematica.config.visuals.prettyName.renderBlocksAsTranslucent": "Translucent Schematic Block Rendering", "litematica.config.visuals.prettyName.schematicOverlayEnableOutlines": "Schematic Overlay Outlines", "litematica.config.visuals.prettyName.schematicOverlayEnableResorting": "Schematic Overlay Translucent Sorting", @@ -696,6 +703,8 @@ "litematica.gui.label.schematic_info.total_blocks_and_volume": "ブロック/体積: §f%d§r/§f%d§r", "litematica.gui.label.schematic_info.total_volume": "総体積: §f%d§rブロック", "litematica.gui.label.schematic_info.version": "Litematic Version: §f%d§r", + "litematica.gui.label.schematic_info.sponge_version": "Sponge Version: §f%d§r", + "litematica.gui.label.schematic_info.vanilla_version": "Vanilla Structure", "litematica.gui.label.schematic_info.schema": "Minecraft: §f%s§r [Schema §f%d§r]", "litematica.gui.label.schematic_load.checkbox.create_placement": "配置を作成", "litematica.gui.label.schematic_load.hoverinfo.create_placement": "新しい配置をすぐに作成し、その配置を選択します", @@ -715,6 +724,12 @@ "litematica.gui.label.schematic_projects.version_entry": "バージョン %d - %s", "litematica.gui.label.schematic_projects.version_name": "バージョン名:", "litematica.gui.label.schematic_save.checkbox.ignore_entities": "エンティティを無視", + "litematica.gui.label.schematic_save.hover_info.hold_shift_to_overwrite": "Hold shift to overwrite an existing file", + "litematica.gui.label.schematic_save.checkbox.save_from_schematic_world": "Save from schematic world", + "litematica.gui.label.schematic_save.hover_info.save_from_schematic_world": "If enabled, then the schematic is created by saving the\ncontents of the selection from the schematic world\ninstead of the normal vanilla world.\nThis allows you to combine or trim schematics without having\nto paste them to a temporary creative world.", + "litematica.gui.label.schematic_save.checkbox.visible_blocks_only": "Visible blocks only [experimental quick hax]", + "litematica.gui.label.schematic_save.checkbox.support_blocks": "Support blocks", + "litematica.gui.label.schematic_save.hover_info.support_blocks": "Include any necessary support blocks in \"Visible blocks only\" mode,\nfor things like Repeaters, Comparators, Carpets or gravity blocks that would be visible", "litematica.gui.label.schematic_save.hoverinfo.hold_shift_to_overwrite": "Shiftを押して既存のファイルを上書き", "litematica.gui.label.schematic_verifier.count": "カウント", "litematica.gui.label.schematic_verifier.expected": "期待値", @@ -802,6 +817,7 @@ "litematica.hud.misc.renderer_status": " 描画器: A: %s S: %s B: %s O: %s SEL: %s", "litematica.hud.misc.schematic_paste.data_restore_mode": "データ復元モード: §b%s", "litematica.hud.misc.schematic_paste.replace_mode": "ブロック置換: %s", + "litematica.hud.misc.schematic_paste.ignore_inventory_contents": "Ignore inventory contents: %s", "litematica.hud.schematic_placement.hover_info.lock_coordinate": "この座標をロックします\nそれ以外の座標を変更するのにロックを使用できます", "litematica.hud.schematic_placement.hover_info.placement_locked": "この配置はロックされており、ロックを解除しない限り変更されません", "litematica.hud.schematic_placement.hover_info.placement_modified": "この配置は変更されました", diff --git a/src/main/resources/assets/litematica/lang/uk_ua.json b/src/main/resources/assets/litematica/lang/uk_ua.json new file mode 100644 index 0000000..b7c132d --- /dev/null +++ b/src/main/resources/assets/litematica/lang/uk_ua.json @@ -0,0 +1,1011 @@ +{ + "modmenu.descriptionTranslation.litematica": "Сучасний мод схематик для LiteLoader, Rift, Fabric тощо", + "litematica.config.generic.name.easyPlaceProtocolVersion": "easyPlaceProtocolVersion", + "litematica.config.generic.name.pasteNbtRestoreBehavior": "pasteNbtRestoreBehavior", + "litematica.config.generic.name.pasteReplaceBehavior": "pasteReplaceBehavior", + "litematica.config.generic.name.placementReplaceBehavior": "placementReplaceBehavior", + "litematica.config.generic.name.placementRestrictionWarn": "placementRestrictionWarn", + "litematica.config.generic.name.selectionCornersMode": "selectionCornersMode", + "litematica.config.generic.name.customSchematicBaseDirectoryEnabled": "customSchematicBaseDirectoryEnabled", + "litematica.config.generic.name.customSchematicBaseDirectory": "customSchematicBaseDirectory", + "litematica.config.generic.name.areaSelectionsPerWorld": "areaSelectionsPerWorld", + "litematica.config.generic.name.betterRenderOrder": "betterRenderOrder", + "litematica.config.generic.name.changeSelectedCornerOnMove": "changeSelectedCornerOnMove", + "litematica.config.generic.name.cloneAtOriginalPosition": "cloneAtOriginalPosition", + "litematica.config.generic.name.commandDisableFeedback": "commandDisableFeedback", + "litematica.config.generic.name.commandFillMaxVolume": "commandFillMaxVolume", + "litematica.config.generic.name.commandFillNoChunkClamp": "commandFillNoChunkClamp", + "litematica.config.generic.name.commandLimitPerTick": "commandLimitPerTick", + "litematica.config.generic.name.commandNameClone": "commandNameClone", + "litematica.config.generic.name.commandNameFill": "commandNameFill", + "litematica.config.generic.name.commandNameSetblock": "commandNameSetblock", + "litematica.config.generic.name.commandNameSummon": "commandNameSummon", + "litematica.config.generic.name.commandTaskInterval": "commandTaskInterval", + "litematica.config.generic.name.commandUseWorldEdit": "commandUseWorldEdit", + "litematica.config.generic.name.debugLogging": "debugLogging", + "litematica.config.generic.name.datafixerMode": "datafixerMode", + "litematica.config.generic.name.datafixerDefaultSchema": "datafixerDefaultSchema", + "litematica.config.generic.name.easyPlaceClickAdjacent": "easyPlaceClickAdjacent", + "litematica.config.generic.name.easyPlaceFirst": "easyPlaceFirst", + "litematica.config.generic.name.easyPlaceHoldEnabled": "easyPlaceHoldEnabled", + "litematica.config.generic.name.easyPlaceMode": "easyPlaceMode", + "litematica.config.generic.name.easyPlacePostRewrite": "easyPlacePostRewrite", + "litematica.config.generic.name.easyPlaceSinglePlayerHandling": "easyPlaceSinglePlayerHandling", + "litematica.config.generic.name.easyPlaceSwapInterval": "easyPlaceSwapInterval", + "litematica.config.generic.name.easyPlaceSwingHand": "easyPlaceSwingHand", + "litematica.config.generic.name.easyPlaceVanillaReach": "easyPlaceVanillaReach", + "litematica.config.generic.name.entityDataSync": "entityDataSync", + "litematica.config.generic.name.entityDataSyncBackup": "entityDataSyncBackup", + "litematica.config.generic.name.entityDataSyncCacheTimeout": "entityDataSyncCacheTimeout", + "litematica.config.generic.name.entityDataSyncLoadNbt": "entityDataSyncLoadNbt", + "litematica.config.generic.name.executeRequireHoldingTool": "executeRequireHoldingTool", + "litematica.config.generic.name.fixChestMirror": "fixChestMirror", + "litematica.config.generic.name.fixRailRotation": "fixRailRotation", + "litematica.config.generic.name.generateLowercaseNames": "generateLowercaseNames", + "litematica.config.generic.name.highlightBlockInInventory": "highlightBlockInInventory", + "litematica.config.generic.name.itemUsePacketCheckBypass": "itemUsePacketCheckBypass", + "litematica.config.generic.name.layerModeFollowsPlayer": "layerModeFollowsPlayer", + "litematica.config.generic.name.loadEntireSchematics": "loadEntireSchematics", + "litematica.config.generic.name.materialListIgnoreState": "materialListIgnoreState", + "litematica.config.generic.name.pasteAlwaysUseFill": "pasteAlwaysUseFill", + "litematica.config.generic.name.pasteIgnoreBlockEntitiesEntirely": "pasteIgnoreBlockEntitiesEntirely", + "litematica.config.generic.name.pasteIgnoreBlockEntitiesFromFill": "pasteIgnoreBlockEntitiesFromFill", + "litematica.config.generic.name.pasteIgnoreCommandLimitWithNbtRestore": "pasteIgnoreCommandLimitWithNbtRestore", + "litematica.config.generic.name.pasteIgnoreEntities": "pasteIgnoreEntities", + "litematica.config.generic.name.pasteIgnoreInventories": "pasteIgnoreInventories", + "litematica.config.generic.name.pasteToMcFunctionFiles": "pasteToMcFunctionFiles", + "litematica.config.generic.name.pasteUseFillCommand": "pasteUseFillCommand", + "litematica.config.generic.name.pasteUsingCommandsInSp": "pasteUsingCommandsInSp", + "litematica.config.generic.name.pasteUsingServux": "pasteUsingServux", + "litematica.config.generic.name.pickBlockAvoidDamageable": "pickBlockAvoidDamageable", + "litematica.config.generic.name.pickBlockAvoidTools": "pickBlockAvoidTools", + "litematica.config.generic.name.pickBlockEnabled": "pickBlockEnabled", + "litematica.config.generic.name.pickBlockIgnoreNbt": "pickBlockIgnoreNbt", + "litematica.config.generic.name.pickBlockShulkers": "pickBlockShulkers", + "litematica.config.generic.name.pickBlockableSlots": "pickBlockableSlots", + "litematica.config.generic.name.placementRestriction": "placementRestriction", + "litematica.config.generic.name.renderMaterialListInGuis": "renderMaterialListInGuis", + "litematica.config.generic.name.renderThreadNoTimeout": "renderThreadNoTimeout", + "litematica.config.generic.name.serverNbtRequestRate": "serverNbtRequestRate", + "litematica.config.generic.name.signTextPaste": "signTextPaste", + "litematica.config.generic.name.toolItem": "toolItem", + "litematica.config.generic.name.toolItemEnabled": "toolItemEnabled", + "litematica.config.generic.name.toolItemComponents": "toolItemComponents", + "litematica.config.generic.name.unhideSchematicVCS": "unhideSchematicVCS", + + "litematica.config.visuals.name.enableAreaSelectionBoxesRendering": "enableAreaSelectionBoxesRendering", + "litematica.config.visuals.name.enablePlacementBoxesRendering": "enablePlacementBoxesRendering", + "litematica.config.visuals.name.enableRendering": "enableRendering", + "litematica.config.visuals.name.enableSchematicBlocksRendering": "enableSchematicBlocksRendering", + "litematica.config.visuals.name.enableSchematicFluidRendering": "enableSchematicFluidRendering", + "litematica.config.visuals.name.enableSchematicOverlay": "enableSchematicOverlay", + "litematica.config.visuals.name.enableSchematicRendering": "enableSchematicRendering", + "litematica.config.visuals.name.renderSchematicMaxThreads": "renderSchematicMaxThreads", + "litematica.config.visuals.name.ghostBlockAlpha": "ghostBlockAlpha", + "litematica.config.visuals.name.ignoreExistingFluids": "ignoreExistingFluids", + "litematica.config.visuals.name.overlayReducedInnerSides": "overlayReducedInnerSides", + "litematica.config.visuals.name.placementBoxSideAlpha": "placementBoxSideAlpha", + "litematica.config.visuals.name.renderAOModernEnable": "renderAOModernEnable", + "litematica.config.visuals.name.renderAreaSelectionBoxSides": "renderAreaSelectionBoxSides", + "litematica.config.visuals.name.renderBlocksAsTranslucent": "renderBlocksAsTranslucent", + "litematica.config.visuals.name.renderCollidingSchematicBlocks": "renderCollidingSchematicBlocks", + "litematica.config.visuals.name.renderErrorMarkerConnections": "renderErrorMarkerConnections", + "litematica.config.visuals.name.renderErrorMarkerSides": "renderErrorMarkerSides", + "litematica.config.visuals.name.renderPlacementBoxSides": "renderPlacementBoxSides", + "litematica.config.visuals.name.renderPlacementEnclosingBox": "renderPlacementEnclosingBox", + "litematica.config.visuals.name.renderPlacementEnclosingBoxSides": "renderPlacementEnclosingBoxSides", + "litematica.config.visuals.name.renderTranslucentBlockInnerSides": "renderTranslucentBlockInnerSides", + "litematica.config.visuals.name.schematicOverlayEnableOutlines": "schematicOverlayEnableOutlines", + "litematica.config.visuals.name.schematicOverlayEnableResorting": "schematicOverlayEnableResorting", + "litematica.config.visuals.name.schematicOverlayEnableSides": "schematicOverlayEnableSides", + "litematica.config.visuals.name.schematicOverlayModelOutline": "schematicOverlayModelOutline", + "litematica.config.visuals.name.schematicOverlayModelSides": "schematicOverlayModelSides", + "litematica.config.visuals.name.schematicOverlayOutlineWidth": "schematicOverlayOutlineWidth", + "litematica.config.visuals.name.schematicOverlayOutlineWidthThrough": "schematicOverlayOutlineWidthThrough", + "litematica.config.visuals.name.schematicOverlayRenderThroughBlocks": "schematicOverlayRenderThroughBlocks", + "litematica.config.visuals.name.schematicOverlayTypeExtra": "schematicOverlayTypeExtra", + "litematica.config.visuals.name.schematicOverlayTypeMissing": "schematicOverlayTypeMissing", + "litematica.config.visuals.name.schematicOverlayTypeWrongBlock": "schematicOverlayTypeWrongBlock", + "litematica.config.visuals.name.schematicOverlayTypeWrongState": "schematicOverlayTypeWrongState", + "litematica.config.visuals.name.schematicVerifierUseBlockModels": "schematicVerifierUseBlockModels", + + "litematica.config.info_overlays.name.blockInfoLinesAlignment": "blockInfoLinesAlignment", + "litematica.config.info_overlays.name.blockInfoOverlayAlignment": "blockInfoOverlayAlignment", + "litematica.config.info_overlays.name.infoHudAlignment": "infoHudAlignment", + "litematica.config.info_overlays.name.toolHudAlignment": "toolHudAlignment", + "litematica.config.info_overlays.name.blockInfoLinesEnabled": "blockInfoLinesEnabled", + "litematica.config.info_overlays.name.blockInfoLinesFontScale": "blockInfoLinesFontScale", + "litematica.config.info_overlays.name.blockInfoLinesOffsetX": "blockInfoLinesOffsetX", + "litematica.config.info_overlays.name.blockInfoLinesOffsetY": "blockInfoLinesOffsetY", + "litematica.config.info_overlays.name.blockInfoOverlayOffsetY": "blockInfoOverlayOffsetY", + "litematica.config.info_overlays.name.blockInfoOverlayEnabled": "blockInfoOverlayEnabled", + "litematica.config.info_overlays.name.infoHudMaxLines": "infoHudMaxLines", + "litematica.config.info_overlays.name.infoHudOffsetX": "infoHudOffsetX", + "litematica.config.info_overlays.name.infoHudOffsetY": "infoHudOffsetY", + "litematica.config.info_overlays.name.infoHudScale": "infoHudScale", + "litematica.config.info_overlays.name.infoOverlaysTargetFluids": "infoOverlaysTargetFluids", + "litematica.config.info_overlays.name.materialListHudMaxLines": "materialListHudMaxLines", + "litematica.config.info_overlays.name.materialListHudScale": "materialListHudScale", + "litematica.config.info_overlays.name.statusInfoHud": "statusInfoHud", + "litematica.config.info_overlays.name.statusInfoHudAuto": "statusInfoHudAuto", + "litematica.config.info_overlays.name.toolHudOffsetX": "toolHudOffsetX", + "litematica.config.info_overlays.name.toolHudOffsetY": "toolHudOffsetY", + "litematica.config.info_overlays.name.toolHudScale": "toolHudScale", + "litematica.config.info_overlays.name.verifierErrorHilightAlpha": "verifierErrorHilightAlpha", + "litematica.config.info_overlays.name.verifierErrorHilightMaxPositions": "verifierErrorHilightMaxPositions", + "litematica.config.info_overlays.name.verifierOverlayEnabled": "verifierOverlayEnabled", + "litematica.config.info_overlays.name.warnDisabledRendering": "warnDisabledRendering", + + "litematica.config.colors.name.areaSelectionBoxSideColor": "areaSelectionBoxSideColor", + "litematica.config.colors.name.hightlightBlockInInventoryColor": "hightlightBlockInInventoryColor", + "litematica.config.colors.name.materialListHudItemCountsColor": "materialListHudItemCountsColor", + "litematica.config.colors.name.schematicRebuildBreakPlaceOverlayColor": "schematicRebuildBreakPlaceOverlayColor", + "litematica.config.colors.name.schematicRebuildBreakExceptPlaceOverlayColor": "schematicRebuildBreakExceptPlaceOverlayColor", + "litematica.config.colors.name.schematicRebuildReplaceOverlayColor": "schematicRebuildReplaceOverlayColor", + "litematica.config.colors.name.schematicOverlayColorExtra": "schematicOverlayColorExtra", + "litematica.config.colors.name.schematicOverlayColorMissing": "schematicOverlayColorMissing", + "litematica.config.colors.name.schematicOverlayColorWrongBlock": "schematicOverlayColorWrongBlock", + "litematica.config.colors.name.schematicOverlayColorWrongState": "schematicOverlayColorWrongState", + + "litematica.config.hotkeys.name.addSelectionBox": "addSelectionBox", + "litematica.config.hotkeys.name.cloneSelection": "cloneSelection", + "litematica.config.hotkeys.name.deleteSelectionBox": "deleteSelectionBox", + "litematica.config.hotkeys.name.easyPlaceUseKey": "easyPlaceUseKey", + "litematica.config.hotkeys.name.easyPlaceToggle": "easyPlaceToggle", + "litematica.config.hotkeys.name.executeOperation": "executeOperation", + "litematica.config.hotkeys.name.invertGhostBlockRenderState": "invertGhostBlockRenderState", + "litematica.config.hotkeys.name.invertOverlayRenderState": "invertOverlayRenderState", + "litematica.config.hotkeys.name.layerModeNext": "layerModeNext", + "litematica.config.hotkeys.name.layerModePrevious": "layerModePrevious", + "litematica.config.hotkeys.name.layerNext": "layerNext", + "litematica.config.hotkeys.name.layerPrevious": "layerPrevious", + "litematica.config.hotkeys.name.layerSetHere": "layerSetHere", + "litematica.config.hotkeys.name.nudgeSelectionNegative": "nudgeSelectionNegative", + "litematica.config.hotkeys.name.nudgeSelectionPositive": "nudgeSelectionPositive", + "litematica.config.hotkeys.name.moveEntireSelection": "moveEntireSelection", + "litematica.config.hotkeys.name.openGuiAreaSettings": "openGuiAreaSettings", + "litematica.config.hotkeys.name.openGuiLoadedSchematics": "openGuiLoadedSchematics", + "litematica.config.hotkeys.name.openGuiMainMenu": "openGuiMainMenu", + "litematica.config.hotkeys.name.openGuiMaterialList": "openGuiMaterialList", + "litematica.config.hotkeys.name.openGuiPlacementSettings": "openGuiPlacementSettings", + "litematica.config.hotkeys.name.openGuiSchematicPlacements": "openGuiSchematicPlacements", + "litematica.config.hotkeys.name.openGuiSchematicProjects": "openGuiSchematicProjects", + "litematica.config.hotkeys.name.openGuiSchematicVerifier": "openGuiSchematicVerifier", + "litematica.config.hotkeys.name.openGuiSelectionManager": "openGuiSelectionManager", + "litematica.config.hotkeys.name.openGuiSettings": "openGuiSettings", + "litematica.config.hotkeys.name.operationModeChangeModifier": "operationModeChangeModifier", + "litematica.config.hotkeys.name.pickBlockFirst": "pickBlockFirst", + "litematica.config.hotkeys.name.pickBlockLast": "pickBlockLast", + "litematica.config.hotkeys.name.pickBlockToggle": "pickBlockToggle", + "litematica.config.hotkeys.name.renderInfoOverlay": "renderInfoOverlay", + "litematica.config.hotkeys.name.renderOverlayThroughBlocks": "renderOverlayThroughBlocks", + "litematica.config.hotkeys.name.rerenderSchematic": "rerenderSchematic", + "litematica.config.hotkeys.name.saveAreaAsInMemorySchematic": "saveAreaAsInMemorySchematic", + "litematica.config.hotkeys.name.saveAreaAsSchematicToFile": "saveAreaAsSchematicToFile", + "litematica.config.hotkeys.name.schematicEditBreakAllExcept": "schematicEditBreakAllExcept", + "litematica.config.hotkeys.name.schematicEditBreakPlaceAll": "schematicEditBreakPlaceAll", + "litematica.config.hotkeys.name.schematicEditBreakPlaceDirection": "schematicEditBreakPlaceDirection", + "litematica.config.hotkeys.name.schematicEditReplaceAll": "schematicEditReplaceAll", + "litematica.config.hotkeys.name.schematicEditReplaceBlock": "schematicEditReplaceBlock", + "litematica.config.hotkeys.name.schematicEditReplaceDirection": "schematicEditReplaceDirection", + "litematica.config.hotkeys.name.schematicPlacementRotation": "schematicPlacementRotation", + "litematica.config.hotkeys.name.schematicPlacementMirror": "schematicPlacementMirror", + "litematica.config.hotkeys.name.schematicVersionCycleModifier": "schematicVersionCycleModifier", + "litematica.config.hotkeys.name.schematicVersionCycleNext": "schematicVersionCycleNext", + "litematica.config.hotkeys.name.schematicVersionCyclePrevious": "schematicVersionCyclePrevious", + "litematica.config.hotkeys.name.selectionGrabModifier": "selectionGrabModifier", + "litematica.config.hotkeys.name.selectionGrow": "selectionGrow", + "litematica.config.hotkeys.name.selectionGrowModifier": "selectionGrowModifier", + "litematica.config.hotkeys.name.selectionNudgeModifier": "selectionNudgeModifier", + "litematica.config.hotkeys.name.selectionModeCycle": "selectionModeCycle", + "litematica.config.hotkeys.name.selectionShrink": "selectionShrink", + "litematica.config.hotkeys.name.setAreaOrigin": "setAreaOrigin", + "litematica.config.hotkeys.name.setSelectionBoxPosition1": "setSelectionBoxPosition1", + "litematica.config.hotkeys.name.setSelectionBoxPosition2": "setSelectionBoxPosition2", + "litematica.config.hotkeys.name.toggleAllRendering": "toggleAllRendering", + "litematica.config.hotkeys.name.toggleAreaSelectionBoxesRendering": "toggleAreaSelectionBoxesRendering", + "litematica.config.hotkeys.name.toggleSchematicRendering": "toggleSchematicRendering", + "litematica.config.hotkeys.name.toggleInfoOverlayRendering": "toggleInfoOverlayRendering", + "litematica.config.hotkeys.name.toggleOverlayRendering": "toggleOverlayRendering", + "litematica.config.hotkeys.name.toggleOverlayOutlineRendering": "toggleOverlayOutlineRendering", + "litematica.config.hotkeys.name.toggleOverlaySideRendering": "toggleOverlaySideRendering", + "litematica.config.hotkeys.name.togglePlacementBoxesRendering": "togglePlacementBoxesRendering", + "litematica.config.hotkeys.name.togglePlacementRestriction": "togglePlacementRestriction", + "litematica.config.hotkeys.name.toggleSchematicBlockRendering": "toggleSchematicBlockRendering", + "litematica.config.hotkeys.name.toggleSignTextPaste": "toggleSignTextPaste", + "litematica.config.hotkeys.name.toggleTranslucentRendering": "toggleTranslucentRendering", + "litematica.config.hotkeys.name.toggleVerifierOverlayRendering": "toggleVerifierOverlayRendering", + "litematica.config.hotkeys.name.toolEnabledToggle": "toolEnabledToggle", + "litematica.config.hotkeys.name.toolPlaceCorner1": "toolPlaceCorner1", + "litematica.config.hotkeys.name.toolPlaceCorner2": "toolPlaceCorner2", + "litematica.config.hotkeys.name.toolSelectElements": "toolSelectElements", + "litematica.config.hotkeys.name.toolSelectModifierBlock1": "toolSelectModifierBlock1", + "litematica.config.hotkeys.name.toolSelectModifierBlock2": "toolSelectModifierBlock2", + "litematica.config.hotkeys.name.unloadCurrentSchematic": "unloadCurrentSchematic", + + "litematica.config.generic.comment.easyPlaceProtocolVersion": "Тип «протоколу точного розміщення», потрібно використовувати\n- Авто: використовується версія 3 в грі наодинці, за замовчуванням — плити лише у багатокористувацькій грі, якщо на\nсервері не встановлено мод Carpet, який надсилає «carpet:hello» пакет, у цьому випадку на цьому сервері\nвикористовується v2\n- Версія 3: підтримується лише самою Litematica (в грі наодинці) або з Servux\n- Версія 2: сумісна з серверами з модом Carpet (або QuickCarpet від skyrising і DeadlyMC, або CarpetExtra\nна додаток до FabricCarpet\n І в обох випадках правило Carpet «accurateBlockPlacement» має бути увімкнено на сервері)\n- Лише плити: виправляє лише плити у верхній позиції. Сумісний із серверами Paper\n- Нічого: не модмфікувати координати", + "litematica.config.generic.comment.pasteNbtRestoreBehavior": "Незалежно від того, чи намагаються відновити дані NBT блоків, і який метод для цього використовується\n- «Розмістити і модифікувати дані» спробує розмістити «вибрані NBT» блоку біля гравця, і потім скористайтеся командою\nмодифікування даних, щоб перенести дані NBT до встановленого блоку\n- «Розмістити і клонувати» спробує розмістити «вибрані NBT» блоку біля гравця,\nа потім клонувати його до кінцевої точки\n- «Розмістити і телепортувати» спробує телепортувати гравця поблизу, а потім напряму розмістити «вибрані NBT»\nпредмета у правильному положенні\nЗверніть увагу, що метод телепортації та розміщення зараз не працює належним чином(або зовсім) \nРекомендовано — §e«Розмістити і модифікувати дані»§r, однак, щоб він працював вам, імовірно, потрібно буде зменшити\npasteCommandLimit до 1 за такт і збільшити pasteCommandInterval до 1-4 тактів або щось подібне\nТому вам слід використовувати лише це для вставлення важливих блоків, які потребують даних, наприклад,\nшляхом створення схематики лише з інвентарем, а потім замінити це на «Немає»", + "litematica.config.generic.comment.pasteReplaceBehavior": "Поведінка заміни існуючих блоків у режимі інструменту «Вставити схематику»", + "litematica.config.generic.comment.placementReplaceBehavior": "Поведінка заміни блоків під час додавання блоків до схематики світу\n\nЦе дозволяє використовувати розміщення, що перекривається без\nподальшого обробленого розміщення, яке завжди перезаписує повітря\nЗ іншого боку, деякі блоки, такі як світло, вважатимуться повітрям,\nтож їм знадобиться поведінка заміни «Усі», щоб їх розмістити", + "litematica.config.generic.comment.placementRestrictionWarn": "Вибирає, який тип попереджувального повідомлення відображати (за наявності),\nякщо режим легкого розміщення або обмеження розміщення не дозволяють розмістити блок", + "litematica.config.generic.comment.selectionCornersMode": "Режим кутів виділення області для використання (кути або розширення)", + "litematica.config.generic.comment.customSchematicBaseDirectoryEnabled": "Якщо увімкнено, то каталог, установлений у «customSchematicBaseDirectory» буде використано як кореневий/базовий\nкаталог схематики замість звичайного каталогу «.minecraft/schematics/»" , + "litematica.config.generic.comment.customSchematicBaseDirectory": "Кореневий/базовий каталог схематики для використання, якщо «customSchematicBaseDirectoryEnabled» увімкнено", + "litematica.config.generic.comment.areaSelectionsPerWorld": "Використовувати для вибору зони кореневі каталоги для кожного світу або сервера\n§6ПРИМІТКА: Не вимикайте це під час прямої трансляції, §6як тоді вибір області браузер відображатиме IP-адресу\nсервера §6у навігаційному віджеті, а також у поточній назві/шляху§6 доки ви знову не зміните поточний каталог і вибір", + "litematica.config.generic.comment.betterRenderOrder": "Якщо увімкнено, то відтворення схематики виконується шляхом введення іншого виклику відтворення в ванілльний код відтворення. Це має призвести до кращого прозорого відтворення/впорядкування блоків\nЯкщо промальовування не працює (наприклад, за допомогою Optifine), спробуйте вимкнути це", + "litematica.config.generic.comment.changeSelectedCornerOnMove": "Якщо «true», для вибраного кута виділеної області завжди встановлюється останній переміщений\nкут, якщо використовуються встановлені гарячі клавіші", + "litematica.config.generic.comment.cloneAtOriginalPosition": "Якщо увімкнено, використання гарячої клавіші «Вибрати клон» створить розташування\nу вихідній позиції вибору замість поточної позиції гравця", + "litematica.config.generic.comment.commandDisableFeedback": "Якщо увімкнено, зворотний зв’язок команд автоматично вимикається і потім знову вмикається для операцій\nвставки, заповнення та видалення (які використовують команди /setblock і /fill) за допомогою вимкнення,\nа потім повторне увімкнення правила гри sendCommandFeedback після завершення завдання", + "litematica.config.generic.comment.commandFillMaxVolume": "Максимальний розмір/об’єм кожного окремого куба, який можна заповнити за допомогою операцій/заповнити/видалити\nна основі команди. Більші області/об’єми буде розділено на декілька команд\nУсі області також спочатку розбиваються на блоки для блоків", + "litematica.config.generic.comment.commandFillNoChunkClamp": "Вимикає розподіл обсягів заповнення (у режимах заповнення, заміни та видалення) на блоки для блоків", + "litematica.config.generic.comment.commandLimitPerTick": "Максимальна кількість команд, надісланих за такт гри, під час використання функцій вставки, заповнення та видалення\nна сервері, де вони використовуватимуть команди setblock і fill\nЗверніть увагу, що функція вставки може перевищити це за допомогою кількох команд під час використання функції\nвідновлення NBT, яка потребує двох додаткових команд для кожного блоку", + "litematica.config.generic.comment.commandNameClone": "Назва команди clone, яка використовується під час функції творчого режиму на основі команд на серверах\nНаразі це використовується функцією «Вставити»,\nлише якщо встановлено поведінку відновлення NBT до «Розмістити та клонувати»", + "litematica.config.generic.comment.commandNameFill": "Назва команди fill для використання під час функції творчого режиму на основі команд на серверах", + "litematica.config.generic.comment.commandNameSetblock": "Назва команди setblock для використання під час використання функцій\nтворчого режиму на основі команд на серверах, а саме функції «Вставити схематику у світ»", + "litematica.config.generic.comment.commandNameSummon": "Назва команди виклику для використання під час використання функціональних можливостей\nтворчого режиму на основі команд на серверах, а саме функції «Вставити схематику у світ»", + "litematica.config.generic.comment.commandTaskInterval": "Інтервал у грі відмічає завдання вставки, заповнення та видалення. Параметр commandLimitPerTick встановлює\nмаксимальну кількість команд для надсилання на виконання,\nі це встановлює інтервал у тактах гри перед наступним виконанням", + "litematica.config.generic.comment.commandUseWorldEdit": "Якщо увімкнено, замість використання налаштованих команд setblock і fill використовуються команди World Edit //pos1,\n//pos2 і //set\nЗверніть увагу, що використання команд світу редагування приблизно в 3 рази повільніші, ніж використання\nванілльних команд, через обмеження команд на один такт,\nі МИ вимагаємо кілька команд на блок або область (//pos1 //pos2 //набір)\n§6ПОПЕРЕДЖЕННЯ: поведінка заміни вставлення НЕ ПРАЦЮВАТИМЕ, якщо використовується §6команди World Edit та\nзаповнення замість окремих команд setblock!\nТому рекомендується використовувати команди ванілли, якщо у вас є дозвіл на їх запуск\nЩе одна річ, яка може змусити вас віддати перевагу у деяких випадках МИ наказує,\nщо вони можуть запобігти блокуванню оновлень, якщо сервер не має моду Carpet і, отже,\nдоступне правило «/carpet fillUpdates fals»", + "litematica.config.generic.comment.debugLogging": "Вмикає деякі повідомлення журналу налагодження в ігровій консолі для налагодження певних проблем або збоїв", + "litematica.config.generic.comment.datafixerMode": "Настроюваний рівень виправлення даних для застосування до завантажених схематик\nЦе може покращити продуктивність завантаження схематик шляхом обходу Vanilla Data Fixer, але це також може\nпризвести до серйозної втрати даних якщо він вимкнений", + "litematica.config.generic.comment.datafixerDefaultSchema": "Значення за замовчуванням схематики для Vanilla Data Fixer\n\nВикористовується для налаштування найменшого можливого значення та значення, яке використовується,\nякщо завантажена схемптика не містить цієї інформації\n\n§6ПОПЕРЕДЖЕННЯ: це призначено для використання за вказівкою §6розробника Litematica, наприклад masa\n§6Якщо ви сумніваєтеся, збережіть усталене значення для Minecraft 1.12", + "litematica.config.generic.comment.easyPlaceClickAdjacent": "Використовувати код Clicks Adjacent з 1.12.2 або ні\nЛише якщо увімкнено §a«easyPlacePostRewrite»§r", + "litematica.config.generic.comment.easyPlaceFirst": "Це призводить до того, що режим «Легке розміщення» розміщує перший/найближчий блок, на який ви дивитесь,\nзамість найдальшого/найнижчого блоку\n«false» дозволяє вам розмістити кілька шарів «одночасно», оскільки найдальші блоки будуть розміщені до того,\nяк ближчіблокуватимуть лінію видимості", + "litematica.config.generic.comment.easyPlaceHoldEnabled": "Якщо увімкнено, ви можете утримувати клавішу використання і дивитися на різні блоки схематик, щоб розмістити їх,\nбез необхідності натискати кожен блок окремо", + "litematica.config.generic.comment.easyPlaceMode": "Якщо увімкнено, тоді проста спроба використати інструмент/розмістити блоки схематик розмістять цей блок у цій позиції", + "litematica.config.generic.comment.easyPlacePostRewrite": "Якщо увімкнено, режим легкого розміщення використовується\n\nКод «Перепис допису» з ornithe 1.12.2\n§6ПОПЕРЕДЖЕННЯ: ЦЕ ЕКСПЕРИМЕНТ", + "litematica.config.generic.comment.easyPlaceSinglePlayerHandling": "Якщо увімкнено, то Litematica обробляє так званий «Carpet mod Accurate Block Placement Protocol» сама в грі наодинці\nРекомендується залишати його увімкненим, якщо ви, не збираєтеся використовувати «Легке розміщення» в грі наодинці", + "litematica.config.generic.comment.easyPlaceSwapInterval": "Інтервал у мілісекундах, протягом якого режим «Легке розміщення»\nочікує після заміни слотів інвентарю та розміщення блоку\nКорисно, щоб уникнути розміщення неправильних блоків під час високого пінґу", + "litematica.config.generic.comment.easyPlaceSwingHand": "Помахайте рукою гравця під час використання «Легке розміщення»", + "litematica.config.generic.comment.easyPlaceVanillaReach": "Якщо увімкнено, зменшує відстань охоплення з +1,0 до значення ванілли,\nщоб сервери не відхиляли розміщення дaлеких блоків", + "litematica.config.generic.comment.entityDataSync": "Використовуйте протокол Entity Data Sync від Servux для отримання даних сутности із сервера", + "litematica.config.generic.comment.entityDataSyncBackup": "Використовуйте метод Vanilla NBT Query, якщо Servux не недоступний. Для цього методу потрібні права оператора", + "litematica.config.generic.comment.entityDataSyncCacheTimeout": "Значення затримки кешу в секундах, для якого кеш сутностей зберігає записи. Нижче значення означає частіші\nоновлення, але ви можете розглянути вище значення, якщо Litematica не може зберегти всі дані NBT", + "litematica.config.generic.comment.entityDataSyncLoadNbt": "Завантажує синхронізовані дані NBT у світ клієнта\n§6ПОПЕРЕДЖЕННЯ: Ця функція призведе до несумісності §6з іншими модами, які покладаються на ці дані", + "litematica.config.generic.comment.executeRequireHoldingTool": "Потрібно утримувати увімкнений інструмент для роботи гарячої клавіші executeOperation", + "litematica.config.generic.comment.fixChestMirror": "Увімкнути виправлення зламаного коду дзеркала скрині у ваніллі", + "litematica.config.generic.comment.fixRailRotation": "Якщо «true», то буде застосовано виправлення для ванілльної помилки в рейках, де обертання на 180 градусів прямих\nрейок з півночі на південь і зі сходу на схід обертається на 90 градусів проти годинникової стрілки. >_>", + "litematica.config.generic.comment.generateLowercaseNames": "Якщо увімкнено, то за замовчуванням запропоновані назви схематик будуть написані\nмалими літерами та використовуватимуть підкреслення замість пробілів", + "litematica.config.generic.comment.highlightBlockInInventory": "Якщо увімкнено, підсвічується предмет (включаючи шалкерові коробки, які його містять) переглянутого блоку на схематиці", + "litematica.config.generic.comment.itemUsePacketCheckBypass": "Обійти нову перевірку відстані/координат, додану в 1.18.2\n\nЦя перевірка порушує «протокол точного розміщення» та спричиняє будь-які блоки, розміщені з запит на обертання\n(або іншу властивість), щоб просто стати фантомними блоками\n\nЗагалом немає потреби вимикати це\nПеревірки навіть не існувало до 1.18.2", + "litematica.config.generic.comment.layerModeFollowsPlayer": "Якщо «true», тоді промальовнй шар слідує за гравцем\nПримітка: наразі це, на жаль, згортає діапазони типів діапазону шарів", + "litematica.config.generic.comment.loadEntireSchematics": "Якщо «true», то вся схематика завжди завантажується одночасно\nЯкщо «false», то завантажується лише та частина, яка знаходиться в межах видимості клієнта", + "litematica.config.generic.comment.materialListIgnoreState": "Якщо увімкнено, точний стан блоку ігнорується, і має відповідати лише тип блоку", + "litematica.config.generic.comment.pasteAlwaysUseFill": "Це змушує використовувати команду fill (замість setblock) навіть для окремих блоків", + "litematica.config.generic.comment.pasteIgnoreBlockEntitiesEntirely": "Якщо увімкнено, блокові сутності взагалі не вставлятимуться за допомогою вставки на основі команд у мережевій грі\nЦе дає змогу легше вставляти за два проходи, якщо бажаєте використовувати опція NBT-відновлення для запасів тощо\nпід час другого проходу, що зазвичай вимагає набагато меншої швидкости вставлення/швидкости команд", + "litematica.config.generic.comment.pasteIgnoreBlockEntitiesFromFill": "Якщо увімкнено, усі блокові сутності ігноруються командами заповнення під час вставлення. Це дає змогу вставляти їх\nокремо, що потрібно, якщо використовується параметр відновлення NBT", + "litematica.config.generic.comment.pasteIgnoreCommandLimitWithNbtRestore": "Якщо увімкнено, обмеження команд ігнорується під час вставлення блоків\nіз сутністю блоку з увімкненою опцією відновлення NBT\nЗдається, це якимось чином вирішує проблему, коли відновлення NBT в іншому випадку\nвиникне збій для багатьох блоків із низькою швидкістю команд", + "litematica.config.generic.comment.pasteIgnoreEntities": "Якщо увімкнено, функція вставлення не вставлятиме жодних сутностей", + "litematica.config.generic.comment.pasteIgnoreInventories": "Не вставляти вміст інвентарю під час вставлення схематик", + "litematica.config.generic.comment.pasteToMcFunctionFiles": "Якщо увімкнено, замість фактичного вставлення схематик у світ, вони записуються як команди setblock у текстові файли", + "litematica.config.generic.comment.pasteUseFillCommand": "Якщо увімкнено, замість використання лише окремих команд /setblock операція вставлення на основі команд\n(яка використовується на серверах) також намагатиметься використовувати команду /fill для будь-яких безперервних областей одного блоку\nЦе не має ефекту в грі наодинці, оскільки мод встановлює блоки безпосередньо у світ\nінтегрованого сервера та взагалі не використовує команди", + "litematica.config.generic.comment.pasteUsingCommandsInSp": "Це тимчасовий обхідний шлях для використання вставки на основі команд також в грі наодинці,\nщо дозволяє використовувати обмежений шар промальовування вставлення в грі наодинці,\nщо наразі не працює з вставленням прямим доступом\n до світу, яке зазвичай використовує один гравець\n\nЗверніть увагу, що це матиме всі ті ж обмеження відновлення даних NBT, які зазвичай має вставлення для кількох гравців", + "litematica.config.generic.comment.pasteUsingServux": "Використовуйте Servux, щоб вставити схематику безпосередньо на сервер\nЦей метод набагато швидший, ніж традиційний метод на основі команд, і він підтримує відновлення даних NBT Entity", + "litematica.config.generic.comment.pickBlockAvoidDamageable": "Уникає заміни будь-яких пошкоджених предметів на гарячій панелі", + "litematica.config.generic.comment.pickBlockAvoidTools": "Уникає заміни будь-яких інструментів на гарячій панелі\n\nЦе означає будь-які предмети, які розширюють клас Vanilla ToolItem", + "litematica.config.generic.comment.pickBlockEnabled": "Вмикає гарячі клавіші вибору блоків схематики світу\nТакож існує гаряча клавіша для перемикання цього параметра, щоб перемикати ці гарячі клавіші... o.o", + "litematica.config.generic.comment.pickBlockIgnoreNbt": "Вмикає «pickBlockIgnoreNbt» для легкого рнонртсаного розміщення з ornithe 1.12.2", + "litematica.config.generic.comment.pickBlockShulkers": "Якщо увімкнено, тоді, якщо потрібний предмет для блоку вибору не знайдено безпосередньо в інвентарі гравця, але є\nшалкерова коробка, яка містить шалкерову коробку буде переведено на руку гравця", + "litematica.config.generic.comment.pickBlockableSlots": "Слоти гарячої панелі, які можна використовувати для вибору блоків схематики", + "litematica.config.generic.comment.placementRestriction": "Якщо увімкнено, клавішу використання можна використовувати лише якщо утримується\nправильний предмет для цільової позиції, цільова позиція має мати відсутній блок у схематиці", + "litematica.config.generic.comment.renderMaterialListInGuis": "Чи список матеріалів повинен промальовуватися всередині меню", + "litematica.config.generic.comment.renderThreadNoTimeout": "Усуває затримку робочих потоків промальовування\nЯкщо ви отримуєте дуже велику затримку промальовування під час руху або роботи з великими схематиками,\nспробуйте вимкнути це. Однак це зробить промальовування схематик у деяких випадках набагато повільніше", + "litematica.config.generic.comment.serverNbtRequestRate": "Обмежити частоту запитів для синхронізації даних сутності сервера", + "litematica.config.generic.comment.signTextPaste": "Автоматично встановлювати текст у меню табличок зі схематики", + "litematica.config.generic.comment.toolItem": "Предмет для використання як «інструмент» для вибору тощо", + "litematica.config.generic.comment.toolItemEnabled": "Якщо «true», то предмет «інструмент» можна використовувати для керування вибором тощо", + "litematica.config.generic.comment.toolItemComponents": "Версія toolItem із підтримкою компонентів даних\nУстановіть значення «порожньо», щоб вимкнути\nПрийнятий синтаксис такий самий, як і команда «/give»" , + "litematica.config.generic.comment.unhideSchematicVCS": "Відображає кнопку меню VCS схематики (система контролю версій) і вмикає гарячу клавішу та функції VCS загалом\n(Раніше це називалося «Проєкт схематики»)\n\nЗагалом вам §6не варто§r користуватися цією функцією, якщо ви справді не знаєте, як вона працює та що робить\nЦе дещо змінює роботу виділення областей, розміщення та вставки,\nзокрема, є також операція видалення області під час вставлення\n\nВ основному ця функція призначена для §6повторювальної роботи над проєктуванням на місці§r, і вона дозволяє вам легше\nстворювати кілька версій/снепшотів однієї збірки, а також перемикатися між версії, спочатку видаливши те, що світ,\nа потім вставивши на його місце наступну версію", + + "litematica.config.visuals.comment.enableAreaSelectionBoxesRendering": "Увімкнути промальовування полів виділення області", + "litematica.config.visuals.comment.enablePlacementBoxesRendering": "Увімкнути промальовування полів розміщення схематики", + "litematica.config.visuals.comment.enableRendering": "Основний параметр перемикання промальовування. Вмикає/вимикає промальовування усіх модифікацій", + "litematica.config.visuals.comment.enableSchematicBlocksRendering": "Вмикає промальовування блоків схематики\nЯкщо вимкнути це, ви зможете бачити лише накладення кольорів", + "litematica.config.visuals.comment.enableSchematicFluidRendering": "Вмикає відтворення рідин в схематиках\nЯкщо вимкнути це, ви зможете легше бачити блоки та накладення\nЦе також видаляє накладення, де була рідина", + "litematica.config.visuals.comment.enableSchematicOverlay": "Основна опція перемикання для промальовування накладення блоків схематики", + "litematica.config.visuals.comment.enableSchematicRendering": "Увімкнути промальовування схематики та накладання", + "litematica.config.visuals.comment.renderSchematicMaxThreads": "Максимальний розмір потоку промальовування схематики\nЦе безпосередньо вплине на загальну багатопотокову продуктивність\n\n§6ВИКОРИСТУЙТЕ ОБЕРЕЖНО: Це почне діяти лише §6після того, як ви залишите гру та знову приєднайтеся", + "litematica.config.visuals.comment.ghostBlockAlpha": "Значення альфа фантомних блоків, під час промальовування їх як напівпрозорих\n§6Примітка: §7Вам також потрібно увімкнути напівпрозоре\nпромальовування окремо, використовуючи «renderBlocksAsTranslucent»!", + "litematica.config.visuals.comment.ignoreExistingFluids": "Якщо увімкнено, будь-які рідини ігноруються як «зайві блоки» і як «неправильні блоки»,\nтобто якщо схемтика містить повітря або інші блоки\nЗагалом це робить створення речей під водою набагато менш дратівливим\nПримітка: швидше за все, ви також захочете одночасно увімкнути опцію «renderCollidingSchematicBlocks»,\nщоб дозволити блокам промальовуватися у рідинах", + "litematica.config.visuals.comment.overlayReducedInnerSides": "Якщо увімкнено, то суміжні/дотичні внутрішні сторони для накладень блоків видаляються для промальовування", + "litematica.config.visuals.comment.placementBoxSideAlpha": "Значення альфа сторони полів підрегіону", +"litematica.config.visuals.comment.renderAOModernEnable": "Вмикає сучасний процесор навколишньої оклюзії, який повинен вирішувати проблеми, через які тіні не застосовуються належним чином,\nале він також може спричиняти появу тіней на шарах схематики від сусідніх шарів,\nщо може відволікати під час будівницта", + "litematica.config.visuals.comment.renderAreaSelectionBoxSides": "Якщо увімкнути, то рамки вибору областей матимуть свої бокові квадрати", + "litematica.config.visuals.comment.renderBlocksAsTranslucent": "Якщо увімкнено, схематики промальовуватимуться за допомогою напівпрозорих «фантомних блоків»", + "litematica.config.visuals.comment.renderCollidingSchematicBlocks": "Якщо увімкнено, блоки у схематиках промальовуватимуться також, коли в клієнтському світі вже є (неправильний) блок \nМабуть, це корисно під час спроби створити щось, де є снігові шари або вода на шляху", + "litematica.config.visuals.comment.renderErrorMarkerConnections": "Промальовує сполучені лінії між наступними кутами поля підсвічування перевірки\nЦе була помилка промальовування, з якою стикалися деякі люди, але принаймні деяким гравцям вона\nсподобалась і попросили залишити її, тому це «відновлює» її", + "litematica.config.visuals.comment.renderErrorMarkerSides": "Якщо увімкнено, то маркери помилок у «Перевірка схематики»\nматимуть напівпрозорі сторони, які промальовуватимуться замість лише контуру", + "litematica.config.visuals.comment.renderPlacementBoxSides": "Якщо увімкнути, то блоки розміщення підрегіонів у схематиці матимуть їхні бічні квадрати", + "litematica.config.visuals.comment.renderPlacementEnclosingBox": "Якщо увімкнуто, навколо всіх підрегіонів у схематиці (розміщення) промальовуватимуться рамка, що охоплює", + "litematica.config.visuals.comment.renderPlacementEnclosingBoxSides": "Якщо увімкнути, то рамка, що охоплює розміщення схематики, матиме свої бічні квадрати", + "litematica.config.visuals.comment.renderTranslucentBlockInnerSides": "Якщо увімкнено, сторони моделі також промальовуватимуться для внутрішніх сторін у напівпрозорому режимі", + "litematica.config.visuals.comment.schematicOverlayEnableOutlines": "Вмикає промальовування контуру дротяної рамки для накладення блоків схематики", + "litematica.config.visuals.comment.schematicOverlayEnableResorting": "Вмикає напівпрозоре сортування для накладення блоків схематики", + "litematica.config.visuals.comment.schematicOverlayEnableSides": "Вмикає промальовування напівпрозорих блоків/сторон для накладання блоків схематики", + "litematica.config.visuals.comment.schematicOverlayModelOutline": "Якщо увімкнено, накладання схематики використовуватиме\nчотирикутники/вершини блокової моделі замість традиційного повного блокового накладання", + "litematica.config.visuals.comment.schematicOverlayModelSides": "Якщо увімкнено, накладання схематики використовуватиме чотирикутники/вершини\nмоделі блоку замість традиційного накладання повного блоку", + "litematica.config.visuals.comment.schematicOverlayOutlineWidth": "Ширина лінії контурів блоку (моделі)", + "litematica.config.visuals.comment.schematicOverlayOutlineWidthThrough": "Ширина лінії контурів блоку (моделі), коли накладення промаьовується через блоки", + "litematica.config.visuals.comment.schematicOverlayRenderThroughBlocks": "Якщо увімкнено, накладення схематики буде промальовано через блоки. Ймовірно, це стане в нагоді\nтільки після того, як ви завершите будівництво та хочете легше бачити будь-які помилки", + "litematica.config.visuals.comment.schematicOverlayTypeExtra": "Вмикає накладення схематики для додаткових блоків", + "litematica.config.visuals.comment.schematicOverlayTypeMissing": "Вмикає накладення схематики для відсутніх блоків", + "litematica.config.visuals.comment.schematicOverlayTypeWrongBlock": "Вмикає накладення схематики для неправильних блоків", + "litematica.config.visuals.comment.schematicOverlayTypeWrongState": "Вмикає накладення схематики для неправильних станів", + "litematica.config.visuals.comment.schematicVerifierUseBlockModels": "Примусово використовує моделі блоків для всього в списку результатів перевірки схематики. Зазвичай моделі предметів використовуються для всього, що має предмет,\nа блокові моделі використовуються лише для блоків, якщо у вас немає предмета, а також для квіткових горщиків, щоб побачити вміст", + + "litematica.config.info_overlays.comment.blockInfoLinesAlignment": "Вирівнювання накладання рядків інформації про блок", + "litematica.config.info_overlays.comment.blockInfoOverlayAlignment": "Вирівнювання накладення інформації про блок", + "litematica.config.info_overlays.comment.infoHudAlignment": "Вирівнювання «HUD інформації», використовується для переліку матеріалів,\nпозицій невідповідності перевірки схематики тощо", + "litematica.config.info_overlays.comment.toolHudAlignment": "Вирівнювання «інструмента» під час утримання налаштованого «інструмента»", + "litematica.config.info_overlays.comment.blockInfoLinesEnabled": "Якщо увімкнено, накладення інформації про блок у стилі MiniHUD промальовуватиметься для блоку, який розглядається", + "litematica.config.info_overlays.comment.blockInfoLinesFontScale": "Масштаб шрифту для рядків інформації про блок", + "litematica.config.info_overlays.comment.blockInfoLinesOffsetX": "Зміщення x рядків інформації про блок від вибраного краю", + "litematica.config.info_overlays.comment.blockInfoLinesOffsetY": "Зміщення y рядків інформації про блок від вибраного краю", + "litematica.config.info_overlays.comment.blockInfoOverlayOffsetY": "Зсув y накладення інформації про блок від вибраного краю", + "litematica.config.info_overlays.comment.blockInfoOverlayEnabled": "Увімкнути промальовування «Накладання інформації блока», щоб показувати інформацію про перевірений блок або\nмаркер помилки перевірки, утримуючи клавішу «renderInfoOverlay»", + "litematica.config.info_overlays.comment.infoHudMaxLines": "Максимальна кількість інформаційних рядків, які одночасно відображаються на HUD", + "litematica.config.info_overlays.comment.infoHudOffsetX": "Зміщення X інформаційного HUD від краю екрана", + "litematica.config.info_overlays.comment.infoHudOffsetY": "Зміщення Y інформаційного HUD від краю екрана", + "litematica.config.info_overlays.comment.infoHudScale": "Коефіцієнт масштабування для загального інформаційного тексту HUD", + "litematica.config.info_overlays.comment.infoOverlaysTargetFluids": "Якщо увімкнено, накладення інформації про блоки та рядки інформації про\nблоки можуть проводити трасування променів до рідин, а не проходити через них", + "litematica.config.info_overlays.comment.materialListHudMaxLines": "Максимальна кількість предметів, які одночасно промальовуються на інформаційному панелі списку матеріалів", + "litematica.config.info_overlays.comment.materialListHudScale": "Коефіцієнт масштабу для HUD інформації списку матеріалів", + "litematica.config.info_overlays.comment.statusInfoHud": "Увімкнути засіб промальовування інформації про статус HUD, який відображає кілька бітів інформації про стан,\nнаприклад поточний режим шару та стан увімкнених засобів промальовування", + "litematica.config.info_overlays.comment.statusInfoHudAuto": "Дозволити автоматичне миттєве увімкнення HUD інформації про статус «за потреби», наприклад,\nпід час створення місця розташування та відтворення вимкнено", + "litematica.config.info_overlays.comment.toolHudOffsetX": "Зміщення X інформаційного HUD від краю екрана", + "litematica.config.info_overlays.comment.toolHudOffsetY": "Зміщення Y інформаційного HUD від краю екрана", + "litematica.config.info_overlays.comment.toolHudScale": "Коефіцієнт масштабування для тексту інструменту HUD", + "litematica.config.info_overlays.comment.verifierErrorHilightAlpha": "Значення альфа сторінок поля маркера помилки", + "litematica.config.info_overlays.comment.verifierErrorHilightMaxPositions": "Максимальна кількість невідповідних позицій для одночасного промальовування в накладенні перевірки схематики", + "litematica.config.info_overlays.comment.verifierOverlayEnabled": "Увімкнути візуалізацію маркера перевірки схематики", + "litematica.config.info_overlays.comment.warnDisabledRendering": "Чи має відображатися попередження про те, що ви перебуваєте в режимі шару або вимкнено\nдеякі налаштування відтворення, під час завантаження нової схематики чи створення нового розташування", + + "litematica.config.colors.comment.areaSelectionBoxSideColor": "Колір полів вибору області, коли вони не виділені", + "litematica.config.colors.comment.hightlightBlockInInventoryColor": "Колір підсвічування для блока, що переглядається", + "litematica.config.colors.comment.materialListHudItemCountsColor": "Колір тексту підрахунку предметів в інформаційному HUD списку матеріалів", + "litematica.config.colors.comment.schematicRebuildBreakPlaceOverlayColor": "Колір накладення селектора розриву або розміщення блоків у режимі перебудови схематики", + "litematica.config.colors.comment.schematicRebuildBreakExceptPlaceOverlayColor": "Колір режиму перебудови схематики розбиває всі блоки, крім цільового накладання селектора", + "litematica.config.colors.comment.schematicRebuildReplaceOverlayColor": "Колір накладання селектора заміни в режимі перебудови схематики", + "litematica.config.colors.comment.schematicOverlayColorExtra": "Колір накладення блоків для додаткових блоків", + "litematica.config.colors.comment.schematicOverlayColorMissing": "Колір накладання блоків для відсутніх блоків", + "litematica.config.colors.comment.schematicOverlayColorWrongBlock": "Колір накладення блоків для неправильних блоків", + "litematica.config.colors.comment.schematicOverlayColorWrongState": "Колір накладання блоків для неправильних станів блоків", + + "litematica.config.hotkeys.comment.addSelectionBox": "Додатинове поле вибору (позиція 1) тут", + "litematica.config.hotkeys.comment.cloneSelection": "Швидко клонувати поточну виділену область\nЦе просто створює схематику лише в пам'яті, а потім створює розміщення цієї схематики\nта вибирає її і також перемикає з режиму інструмента в режим «Вставити»", + "litematica.config.hotkeys.comment.deleteSelectionBox": "Видалити вибране поле", + "litematica.config.hotkeys.comment.easyPlaceUseKey": "Коли easyPlaceMode увімкнено, цей ключ використовується для розміщення блоків", + "litematica.config.hotkeys.comment.easyPlaceToggle": "Дозволяє швидко вмикати/вимикати режим «Легке розміщення»", + "litematica.config.hotkeys.comment.executeOperation": "Виконати поточну вибрану операцію інструменту з\nпоточним виділенням або розміщення у режимах заповнення, заміни, вставки схематики тощо", + "litematica.config.hotkeys.comment.invertGhostBlockRenderState": "Інвертує стан промальовування схематики/фантомного блоку доки це утримується", + "litematica.config.hotkeys.comment.invertOverlayRenderState": "Інвертує стан промальовування накладання, коли це утримується", + "litematica.config.hotkeys.comment.layerModeNext": "Перемкнути режим промальовування (усі, шари) вперед", + "litematica.config.hotkeys.comment.layerModePrevious": "Перемкнути режим відтворення (усі, шари) назад", + "litematica.config.hotkeys.comment.layerNext": "Перемістити вибраний шар вгору", + "litematica.config.hotkeys.comment.layerPrevious": "Перемістити вибраний шар вниз", + "litematica.config.hotkeys.comment.layerSetHere": "Установити шар промальовування на поточну позицію гравця", + "litematica.config.hotkeys.comment.nudgeSelectionNegative": "Зрушити поточне виділення в «негативному» напрямку\nЦе в основному те саме, що коліщатко миші вниз з натиснутим модифікатором «Зміщення»", + "litematica.config.hotkeys.comment.nudgeSelectionPositive": "Зрушити поточне виділення в «позитивному» напрямку\nЦе в основному те саме, що коліщатко миші вгору з натиснутим модифікатором «Переміщення»", + "litematica.config.hotkeys.comment.moveEntireSelection": "Перемістити весь поточний вибір сюди", + "litematica.config.hotkeys.comment.openGuiAreaSettings": "Відкрити меню налаштувань області для поточної вибраної області", + "litematica.config.hotkeys.comment.openGuiLoadedSchematics": "Відкрити меню із завантаженою схематикою", + "litematica.config.hotkeys.comment.openGuiMainMenu": "Відкрити головне меню Litematica", + "litematica.config.hotkeys.comment.openGuiMaterialList": "Відкрити меню списку матеріалів для поточного вибраного розміщення схематики", + "litematica.config.hotkeys.comment.openGuiPlacementSettings": "Відкрити меню налаштувань розміщення для поточного вибраного місця розташування або підрегіону", + "litematica.config.hotkeys.comment.openGuiSchematicPlacements": "Відкрити меню розміщення схематик", + "litematica.config.hotkeys.comment.openGuiSchematicProjects": "Відкрити меню проєктів", + "litematica.config.hotkeys.comment.openGuiSchematicVerifier": "Відкрити меню перевірки схематики для поточного вибраного розміщення схематики", + "litematica.config.hotkeys.comment.openGuiSelectionManager": "Відкрити меню менеджера вибору області", + "litematica.config.hotkeys.comment.openGuiSettings": "Відкрити меню налантувань", + "litematica.config.hotkeys.comment.operationModeChangeModifier": "Клавіша-модифікатор для швидкої зміни режиму роботи\nУтримуйте її та прокручуйте, утримуючи «предмет-інструмент», щоб швидко перемикати режим", + "litematica.config.hotkeys.comment.pickBlockFirst": "Клавіша для вибору блоку першого блоку променю схематики, до якого відстежується", + "litematica.config.hotkeys.comment.pickBlockLast": "Ключ для вибору блоку останнього блоку променю схематики, до якого відстежується, перед першим\n(можливим) променем клієнтського світу, до якого відстежується промінь блоку\nЗагалом це дасть вам блок, який ви можна розмістити проти існуючого блоку", + "litematica.config.hotkeys.comment.pickBlockToggle": "Гаряча клавіша для перемикання опції перемикання блоку вибору в «Загальні». Це надається як швидкий спосіб\nувімкнути або вимкнути клавіші вибору блоку, якщо вони чомусь заважають", + "litematica.config.hotkeys.comment.renderInfoOverlay": "Клавіша, яка вмикає перемальовування накладення інформації про блок\nВикористовуйте «Нічого», щоб не вимагати натискання клавіші\nВимкніть параметр із подібною назвою у «Візуал», щоб вимкнути накладення повністю", + "litematica.config.hotkeys.comment.renderOverlayThroughBlocks": "Гаряча клавіша, яка дозволяє накладенням промальовувати блоки\nЦе лише швидший спосіб тимчасово ввімкнути те саме,\nщо робить параметр «schematicOverlayRenderThroughBlocks» у «Візуал»", + "litematica.config.hotkeys.comment.rerenderSchematic": "Гаряча клавіша для оновлення/перемальовування лише схематики,\nзамість того, щоб оновлювати ванілльний рельєф також за допомогою F3 + A", + "litematica.config.hotkeys.comment.saveAreaAsInMemorySchematic": "Зберегти поточний вибір області як схематику в пам'яті", + "litematica.config.hotkeys.comment.saveAreaAsSchematicToFile": "Зберегти поточний вибір області як схематику у файл", + "litematica.config.hotkeys.comment.schematicEditBreakAllExcept": "Клавіша-модифікатор для активації режиму/функції «розірвати все, крім» у режимі інструмента редагування схематики\nЗагалом, коли ви утримуєте цю клавішу та натискаєте блок схематики,\nусі інші блоки, крім цей блок буде видалено зі схематики", + "litematica.config.hotkeys.comment.schematicEditBreakPlaceAll": "Клавіша-модифікатор для активації функції «розбити всі ідентичні блоки» в режимі інструмента редагування схематики", + "litematica.config.hotkeys.comment.schematicEditBreakPlaceDirection": "Клавіша-модифікатор для активації функції направленого/безперервного розриву або розміщення в режимі інструмента редагування схематики", + "litematica.config.hotkeys.comment.schematicEditReplaceAll": "Клавіша-модифікатор для активації режиму/функції заміни «замінити всі ідентичні»\nв режимі інструмента редагування схематики", + "litematica.config.hotkeys.comment.schematicEditReplaceBlock": "Клавіша-модифікатор для активації режиму/функції заміни «замінити тип блоку»\nв режимі інструмента редагування схематики", + "litematica.config.hotkeys.comment.schematicEditReplaceDirection": "Клавіша-модифікатор для активації режиму/функції спрямованої/безперервної\nзаміни в режимі інструмента редагування схематики", + "litematica.config.hotkeys.comment.schematicPlacementRotation": "При натисканні схематика повертається на 90 градусів за годинниковою стрілкою", + "litematica.config.hotkeys.comment.schematicPlacementMirror": "Схематика дзеркально перевертається під час натискання", + "litematica.config.hotkeys.comment.schematicVersionCycleModifier": "Клавіша-модифікатор, яку потрібно утримувати, щоб мати можливість використовувати\nколіщатко миші для циклічного переходу між версіями схематики в режимі інструмента керування версіями", + "litematica.config.hotkeys.comment.schematicVersionCycleNext": "Гаряча клавіша для переходу до наступної версії схематики в режимі інструмента керування версіями", + "litematica.config.hotkeys.comment.schematicVersionCyclePrevious": "Гаряча клавіша для переходу до наступної версії схематики в режимі інструмента керування версіями", + "litematica.config.hotkeys.comment.selectionGrabModifier": "Клавіша-модифікатор, яку потрібно утримувати, щоб «захопити» вибрану область або кут для переміщення курсором", + "litematica.config.hotkeys.comment.selectionGrow": "Гаряча клавіша для автоматичного збільшення поля вибору навколо будь-яких суміжних/діагонально з'єднаних блоків", + "litematica.config.hotkeys.comment.selectionGrowModifier": "Клавіша-модифікатор, яку потрібно утримувати, щоб збільшити або зменшити поле вибору під час прокручування", + "litematica.config.hotkeys.comment.selectionNudgeModifier": "Клавіша-модифікатор, яку потрібно утримувати під час прокручування для переміщення вибраної області чи кута", + "litematica.config.hotkeys.comment.selectionModeCycle": "Змінити режим між кутами та прямокутним у режимі виділення області", + "litematica.config.hotkeys.comment.selectionShrink": "Гаряча клавіша, щоб зменшити рамку виділення так, щоб не було порожнього місця (порожніх шарів) з будь-якого боку", + "litematica.config.hotkeys.comment.setAreaOrigin": "Установити/перемістити початкову точку вибору поточної області на позицію гравця", + "litematica.config.hotkeys.comment.setSelectionBoxPosition1": "Установити першу позицію вибраного полі на позицію гравця", + "litematica.config.hotkeys.comment.setSelectionBoxPosition2": "Установити другу позицію поточного вибраного поля на позицію гравця", + "litematica.config.hotkeys.comment.toggleAllRendering": "Увімкнути/вимкнути промальовування всього", + "litematica.config.hotkeys.comment.toggleAreaSelectionBoxesRendering": "Увімкнути/вимкнути промальовування полів вибораної області", + "litematica.config.hotkeys.comment.toggleSchematicRendering": "Увімкнути/вимкнути промальовування схематики (блоки та накладання)", + "litematica.config.hotkeys.comment.toggleInfoOverlayRendering": "Увімкнути промальовування накладання інформації (для інформації про блок, наведений курсором)", + "litematica.config.hotkeys.comment.toggleOverlayRendering": "Увімкнути/вимкнути промальовування накладання блока", + "litematica.config.hotkeys.comment.toggleOverlayOutlineRendering": "Увімкнути/вимкнути промальовування контуру накладання блока", + "litematica.config.hotkeys.comment.toggleOverlaySideRendering": "Увімкнути/вимкнути промальовування сторони накладання блока", + "litematica.config.hotkeys.comment.togglePlacementBoxesRendering": "Увімкнути/вимкнути промальовування блоків розміщення схематики", + "litematica.config.hotkeys.comment.togglePlacementRestriction": "Гаряча клавіша для перемикання режиму обмеження розміщення", + "litematica.config.hotkeys.comment.toggleSchematicBlockRendering": "Увімкнути/вимкнути промальовування блока схематики", + "litematica.config.hotkeys.comment.toggleSignTextPaste": "Перемикач значення параметра signTextPaste (у категорії «Загальні»)", + "litematica.config.hotkeys.comment.toggleTranslucentRendering": "Вимкнути прозоре та непрозоре промальовування фантомних блоків", + "litematica.config.hotkeys.comment.toggleVerifierOverlayRendering": "Увімкнути промальовування накладання «Перевірка схематики»", + "litematica.config.hotkeys.comment.toolEnabledToggle": "Сполучення клавіш для увімкнення/вимкнення функції «інструмент»", + "litematica.config.hotkeys.comment.toolPlaceCorner1": "Кнопка, яка використовується, утримуючи предмета «інструмент», щоб розмістити основний/перший кут", + "litematica.config.hotkeys.comment.toolPlaceCorner2": "Кнопка, яка використовується, утримуючи «інструмент» для розміщення другого кута", + "litematica.config.hotkeys.comment.toolSelectElements": "Кнопка, яка використовується для вибору кутів або рамок під час утримування предмета «інструмент»", + "litematica.config.hotkeys.comment.toolSelectModifierBlock1": "Клавіша-модифікатор, яку потрібно утримувати під час використання гарячої клавіші\n«toolSelectElements», щоб вибрати тип основного блоку для використання в деяких режимах інструмента", + "litematica.config.hotkeys.comment.toolSelectModifierBlock2": "Клавіша-модифікатор, яку потрібно утримувати під час використання гарячої клавіші\n«toolSelectElements», щоб вибрати тип додаткового блоку для використання в деяких режимах інструмента", + "litematica.config.hotkeys.comment.unloadCurrentSchematic": "Вивантажити схематику поточного вибраного розташування та,\nтаким чином, також видалити всі розміщення, створені з нього", + + "litematica.config.generic.prettyName.pickBlockEnabled": "Вибір гарячих клавішей блока", + "litematica.config.generic.prettyName.easyPlaceMode": "Режим легкого розміщення", + "litematica.config.generic.prettyName.placementRestriction": "Обмежене розміщення", + "litematica.config.generic.prettyName.signTextPaste": "Вставити текст табличок", + "litematica.config.generic.prettyName.toolItemEnabled": "Предмет-інструмент увімкнено", + + "litematica.config.visuals.prettyName.enableAreaSelectionBoxesRendering": "Промальовування кубів виділеної області", + "litematica.config.visuals.prettyName.enablePlacementBoxesRendering": "Промальовування кубів розміщення схематики", + "litematica.config.visuals.prettyName.enableRendering": "Промальовування всього", + "litematica.config.visuals.prettyName.enableSchematicBlocksRendering": "Промальовування блоків схематики", + "litematica.config.visuals.prettyName.enableSchematicFluidRendering": "Промальовування рідин схематики", + "litematica.config.visuals.prettyName.enableSchematicOverlay": "Промальовування накладання схематики", + "litematica.config.visuals.prettyName.enableSchematicRendering": "Промальовування схематики", + "litematica.config.visuals.prettyName.renderAOModernEnable": "Сучасний процесор НО", + "litematica.config.visuals.prettyName.renderBlocksAsTranslucent": "Промальовування прозорих блоків схематики", + "litematica.config.visuals.prettyName.schematicOverlayEnableOutlines": "Накладання контурів схематики", + "litematica.config.visuals.prettyName.schematicOverlayEnableResorting": "Накладання прозорого сортування схематики", + "litematica.config.visuals.prettyName.schematicOverlayEnableSides": "Накладання сторін схематики", + + "litematica.config.info_overlays.prettyName.blockInfoOverlayEnabled": "Накладання промальовування інформації блока", + "litematica.config.info_overlays.prettyName.verifierOverlayEnabled": "Перевірка накладання промальовування", + + "litematica.config.hotkeys.prettyName.toggleAllRendering": "Промальовування всього", + + "litematica.error.area_selection.copy_failed": "Не вдалося копіювати виділене", + "litematica.error.area_selection.create_failed": "Не вдалося створити нове виділення з назвою «%s», файл уже існує", + "litematica.error.area_selection.failed_to_load": "Не вдалося завантажити вибрану область", + "litematica.error.area_selection.grow.no_sub_region_selected": "Підрегіон не вибрано!", + "litematica.error.area_selection.no_placement_selected": "Розміщення схематики не вибрано!", + "litematica.error.area_selection.rename.already_exists": "Помилка: область із такою назвою файлу вже існує «%s»", + "litematica.error.area_selection.rename.invalid_safe_file_name": "Недійсна назва створеного файлу збереження «%s»", + + "litematica.error.duplicate_schematic_placement": "Помилка. Спроба додати місце розташування, яке вже існує", + "litematica.error.generic.creative_mode_only": "Ця дія доступна лише в творчому режимі", + "litematica.error.generic.failed_to_delete_file": "Не вдалося видалити файл «%s»", + "litematica.error.generic.failed_to_sort_list_of_ignored_states": "Не вдалося сортувати список ігнорованих станів", + "litematica.error.generic.schematic_world_not_loaded": "Схематику не було завантажено в світ", + + "litematica.error.area_editor.create_sub_region.exists": "Підрегіон з назвою «%s» уже існує", + "litematica.error.area_editor.no_selection": "«Вибір області» не активовано", + "litematica.error.area_editor.open_gui.no_selection": "Зараз у «Режим виділення: Нормальний», але наразі ніяка область не виділена", + "litematica.error.area_editor.rename_sub_region.exists": "Не вдалося перейменувати підрегіон:\n«%s» уже існує", + "litematica.error.area_editor.switch_mode.no_selection": "Неможливо перейти в «Режим виділення: Нормальний», оскільки наразі не виділено ніяка області\nВиберіть область або створіть новий вибір у браузері виділення області", + + "litematica.error.schematic_conversion.litematic_to_litematica.failed_to_read_litematic": "Не вдалося завантажити схематику Litematica", + "litematica.error.schematic_conversion.litematic_to_litematica.failed_to_downgrade_litematic": "Не вдалося понизити схематику Litematica", + "litematica.error.schematic_conversion.schematic_to_litematica.failed_to_create_schematic": "Не вдалося створити схематику Litematica", + "litematica.error.schematic_conversion.schematic_to_litematica.failed_to_read_schematic": "Не вдалося завантажити схематику", + "litematica.error.schematic_conversion.structure_to_litematica_failed": "Не вдалося перетворити структуру на схематику Litematica", + + "litematica.error.schematic.create.no_selections": "Немає дійсних вибраних регіонів!", + + "litematica.error.schematic_load.cant_read_file": "Неможливо зчитати файл схематики «%s» (не існує або проблема з дозволом)", + "litematica.error.schematic_load.no_schematic_selected": "Файл схематики не вибрано!", + "litematica.error.schematic_load.no_schematic_version_information": "На схематиці немає інформації про версію, і її неможливо безпечно завантажити!", + "litematica.error.schematic_load.unsupported_schematic_version": "Схематика «%d» непітримувана або для новіших версій", + "litematica.error.schematic_load.unsupported_type": "Невідомий або непідтримуваний тип файлу «%s»", + + "litematica.error.schematic_manager.schematic_export.unsupported_type": "Лише схематики Litematica можна експортувати в інші формати!", + "litematica.error.schematic_manager.schematic_import.unsupported_type": "Вибраний тип схематики не підтримується для імпорту!", + + "litematica.error.schematic_placements.remove_fail_locked": "Розміщення заблоковано!\n- Утримуйте Shift, щоб примусово видалити", + + "litematica.error.schematic_save.directory_doesnt_exist": "Каталогу «%s» не існує", + "litematica.error.schematic_save.file_already_exists": "Файл «%s» вже існує", + "litematica.error.schematic_save.invalid_directory": "Недійсний каталог «%s»", + "litematica.error.schematic_save.invalid_schematic_name": "Недійсна назва схематики «%s»", + "litematica.error.schematic_save.schematic_creation_failed": "Не вдалося створити схематику!", + + "litematica.error.schematic_read_from_file_failed.cant_read": "Не вдалося зчитати схематику з файлу «%s»", + "litematica.error.schematic_read_from_file_failed.exception": "Виняток під час спроби зчитати схематику з файлу «%s»", + "litematica.error.schematic_read_from_file_failed.no_file": "Не вдалося зчитати схематику з файлу: файл відсутній (схематика в пам’яті?)", + + "litematica.error.schematic_projects.empty_selection": "Вибрана область порожня (0 підрегіонів)", + "litematica.error.schematic_projects.failed_to_load_project": "Не вдалося завантажити проєкт", + "litematica.error.schematic_projects.failed_to_load_schematic": "Не вдалося завантажити схематику для поточної версії", + "litematica.error.schematic_projects.failed_to_rename_project_file_exception": "Не вдалося перейменувати файл проєкту на «%s» (виняток)", + "litematica.error.schematic_projects.failed_to_rename_project_file_exists": "Не можна перейменувати проєкт на «%s», файл уже існує", + "litematica.error.schematic_projects.invalid_project_directory": "Недійсний або неіснуючий каталог проєкту", + "litematica.error.schematic_projects.no_project_open": "Проєкт не відкрито", + "litematica.error.schematic_projects.in_projects_mode_but_no_project_open": "Зараз у режимі VCS схематики, але наразі немає відкритого проєкту", + "litematica.error.schematic_projects.null_player": "Недійсний гравець", + "litematica.error.schematic_projects.project_already_exists": "Проєкт «%s» вже існує", + "litematica.error.schematic_projects.save_already_in_progress": "Збереження вже триває", + + "litematica.error.schematic_write_to_file_failed.directory_creation_failed": "Не вдалося створити каталог «%s»", + "litematica.error.schematic_write_to_file_failed.exception": "Не вдалося записати схематику у файл «%s» (виняток)", + "litematica.error.schematic_write_to_file_failed.exists": "Не вдалося записати схематику у файл «%s», файл уже існує", + "litematica.error.structure_write_to_file_failed.exception": "Не вдалося записати структуру у файл «%s» (виняток)", + "litematica.error.structure_write_to_file_failed.exists": "Не вдалося записати структуру у файл «%s», файл уже існує", + + "litematica.hotkeys.category.generic_hotkeys": "Загальні гарячі клавіші", + + "litematica.info.schematic_load.schematic_loaded": "Схематика «%s» успішно завантажена в пам'ять", + "litematica.info.schematic_manager.preview.right_click_to_cancel": "- Клацніть ПКМ, щоб скасувати незавершену операцію\n- Ctrl + Alt + Shift + клацніть, щоб установити мініатюру з існуючого зображення PNG під назвою «thumb.png» з того самого каталогу, де знаходиться файл схематики", + "litematica.info.schematic_manager.preview.set_preview_by_taking_a_screenshot": "Використовуйте звичайну клавішу знімка екрана, щоб установити зображення\nАбо клацніть ПКМ по «Установити попередній перегляд», щоб скасувати налаштування зображення", + "litematica.info.schematic_manager.preview.success": "Зображення успішно встановлено", + + "litematica.gui.button.area_editor.analyze_area": "Проаналізувати область", + "litematica.gui.button.area_editor.change_corner_mode": "Режим кутів: %s", + "litematica.gui.button.area_editor.change_selection_mode": "Режим вибору: %s", + "litematica.gui.button.area_editor.create_schematic": "Зберегти схематику", + "litematica.gui.button.area_editor.create_sub_region": "Новий підрегіон", + "litematica.gui.button.area_editor.origin_enabled": "Ручне початкове: %s", + "litematica.gui.button.area_editor.set_box_name": "Вибрати", + "litematica.gui.button.area_editor.set_selection_name": "Вибрати", + + "litematica.gui.button.area_selection_mode": "Режим вибору області: %s", + "litematica.gui.button.area_selections.create_directory": "Створити каталог", + "litematica.gui.button.area_selections.create_new_selection": "Новий вибір", + "litematica.gui.button.area_selections.create_selection_from_placement": "Від розміщення", + "litematica.gui.button.area_selections.unselect": "Не вибрано", + + "litematica.gui.button.change_menu.area_editor": "Редактор областей", + "litematica.gui.button.change_menu.configuration_menu": "Меню налаштувань", + "litematica.gui.button.change_menu.load_schematics_to_memory": "Завантажити схематику", + "litematica.gui.button.change_menu.schematic_manager": "Менеджер схематики", + "litematica.gui.button.change_menu.schematic_projects_manager": "VCS схематика", + "litematica.gui.button.change_menu.show_area_selections": "Браузер вибраних областей", + "litematica.gui.button.change_menu.show_loaded_schematics": "Завантажити схематики", + "litematica.gui.button.change_menu.show_schematic_placements": "Розміщення схематики", + "litematica.gui.button.change_menu.task_manager": "Менеджер завдань", + "litematica.gui.button.change_menu.to_main_menu": "Меню Litematica", + + "litematica.gui.button.config_gui.colors": "Кольори", + "litematica.gui.button.config_gui.generic": "Загальні", + "litematica.gui.button.config_gui.hotkeys": "Гарячі клавіші", + "litematica.gui.button.config_gui.info_overlays": "Інформація про шари", + "litematica.gui.button.config_gui.render_layers": "Промалювати шари", + "litematica.gui.button.config_gui.visuals": "Візуал", + "litematica.gui.button.config_gui.test": "Тест", + + "litematica.gui.button.hover.area_editor.shift_for_in_memory": "Утримуйте Shift, щоб створити схематику лише в пам'яті", + "litematica.gui.button.hover.area_selections.unselect": "Скасовує виділення поточної області виділення", + "litematica.gui.button.hover.material_list.clear_cache": "Очищає кеш матеріалів\nЗазвичай це не потрібно\nЦе можна використовувати замість видалення файлу «material_cache.nbt» у випадку, якщо кеш містить неправильні дані, як предмети, збережені для блоків, які їх не повинні мати, як головки поршня", + "litematica.gui.button.hover.material_list.write_hold_shift_for_csv": "Утримуйте Shift для запису у файл CSV замість звичайного текстового файлу таблиці ASCII-art", + "litematica.gui.button.hover.material_list_shift_to_select_sub_regions": "Утримуйте Shift, щоб вибрати підрегіони, які використовуються для списку матеріалів", + "litematica.gui.button.hover.plus_minus_tip": "Клацніть лівою кнопкою миші, щоб збільшити\nКлацніть ПКМ, щоб зменшити\nShift й/або Alt, щоб збільшити розмір кроку", + "litematica.gui.button.hover.plus_minus_tip_ctrl_alt_shift": "Клацніть лівою кнопкою миші, щоб збільшити\nКлацніть правою кнопкою миші, щоб зменшити\nShift/Alt/Ctrl, щоб збільшити розмір кроку (множинне значення)", + "litematica.gui.button.hover.schematic_list.reload_schematic": "Перезавантажує схематику з файлу\nЦе може бути корисним, якщо ви зробили помилку в режимі редагування схематики", + "litematica.gui.button.hover.schematic_projects.area_browser_disabled_currently_in_projects_mode": "Наразі відкрито VCS проєкт схематики\nРежим VCS схематики замінює звичайну функцію виділення області", + "litematica.gui.button.hover.schematic_projects.delete_area": "§6Видалити останню розміщену або збережену область§r", + "litematica.gui.button.hover.schematic_projects.menu_warning": "(Раніше це називалося проєктом схематики)\nЗагалом, вам §6не§р потрібно використовувати цю функцію, якщо ви справді не знаєте, як вона працює та що робить\nЦе дещо змінює роботу виділення областей, розміщення та вставлення, зокрема, під час вставлення також є операція видалення області\n\nВ основному ця функція призначена для §6повторення розміження§r роботи і вона дозволяє вам легше створювати кілька версій/знімків одного й того самого розміщення, а також перемикатися між версіями, спочатку видаляючи те, що світ, а потім вставляючи на його місце наступну версію", + "litematica.gui.button.hover.schematic_projects.move_origin_to_player": "Перемістіть початок проєкту до поточної позиції гравця\nЦе також перемістить вибір і розташування області", + "litematica.gui.button.hover.schematic_projects.place_to_world_warning": "§6Попередження: це призведе до видалення/перезапису поточних блоків§6 у світі в межах області, яка була раніше §6розміщена з версії або збережена як версія §6 (загалом останній «вибір ефективної області»)", + "litematica.gui.button.hover.schematic_projects.save_new_version": "Зберегти нову схематику/версію до поточного проєкту", + + "litematica.gui.button.material_list": "Список матеріалів", + "litematica.gui.button.material_list.clear_cache": "Очистити кеш", + "litematica.gui.button.material_list.clear_ignored": "Очистити ігноровані", + "litematica.gui.button.material_list.hide_available": "Приховати у наявності: %s", + "litematica.gui.button.material_list.ignore": "Ігнорувати", + "litematica.gui.button.material_list.list_type": "Показати: %s", + "litematica.gui.button.material_list.refresh_list": "Оновити", + "litematica.gui.button.material_list.toggle_info_hud": "HUD інфо: %s", + "litematica.gui.button.material_list.write_to_file": "Вписати в файл", + + "litematica.gui.button.placement_sub.placement_configuration": "Налаштування розміщення", + "litematica.gui.button.placement_sub.reset_sub_region_placement": "Скинути підрегіони", + "litematica.gui.button.placement_sub.slice_type": "Шар: %s", + + "litematica.gui.button.schematic_manager.export_as": "Експортувати як:", + + "litematica.gui.button.schematic_placement.abbr.rendering": "К", + + "litematica.gui.button.schematic_placement.ignore_entities": "Ігнорувати сутности: %s", + "litematica.gui.button.schematic_placement.region_enabled": "Регіон: %s", + "litematica.gui.button.schematic_placement.reset_sub_region_placements": "Скинути усі пвдрегіони", + "litematica.gui.button.schematic_placement.toggle_all_off": "Усе §cВИМК.§r", + "litematica.gui.button.schematic_placement.toggle_all_on": "Усе §aУВІМК.§r", + + "litematica.gui.button.schematic_placement.hover.enclosing_box": "Обмежене промальовування кубів: %s", + "litematica.gui.button.schematic_placement.hover.lock": "Блокування розміщення запобігає його переміщенню або іншим чином змінюванити(випадково)", + "litematica.gui.button.schematic_placement.hover.rendering": "Промальовування: %s\nЗауважте, що це працює трохи дивно і не перешкоджає промальовуванню об’єктів\nЗазвичай вам слід повністю вимкнути розміщення", + + "litematica.gui.button.schematic_placements.configure": "Налаштування", + "litematica.gui.button.schematic_placements.disable": "Вимкнути", + "litematica.gui.button.schematic_placements.locked": "Заблоковано: %s", + "litematica.gui.button.schematic_placements.placement_enabled": "Розміщення: %s", + "litematica.gui.button.schematic_placements.remove": "Видалити", + "litematica.gui.button.schematic_placements.rendering_enabled": "Промальовування: %s", + "litematica.gui.button.schematic_placements.select": "Вибрати", + + "litematica.gui.button.schematic_projects.close_project": "Закрити поточний проєкт", + "litematica.gui.button.schematic_projects.create_project": "Створити проєкт", + "litematica.gui.button.schematic_projects.delete_area": "Видалити область", + "litematica.gui.button.schematic_projects.load_project": "Завантажити проєкт", + "litematica.gui.button.schematic_projects.move_origin_to_player": "Перемістити гравця", + "litematica.gui.button.schematic_projects.open_area_editor": "Редактор області", + "litematica.gui.button.schematic_projects.open_manager_gui": "Відкрити менеджер", + "litematica.gui.button.schematic_projects.open_project_browser": "VCS браузер проєктів", + "litematica.gui.button.schematic_projects.place_to_world": "Розмістити в світі", + "litematica.gui.button.schematic_projects.save_version": "Зберегти версію", + + "litematica.gui.button.schematic_verifier.ignore": "Ігнорувати", + "litematica.gui.button.schematic_verifier.range_type": "Діапазон: %s", + "litematica.gui.button.schematic_verifier.reset_ignored": "Скинути ігнори", + "litematica.gui.button.schematic_verifier.reset_verifier": "Скинути дані", + "litematica.gui.button.schematic_verifier.resume": "Відновити перевірку", + "litematica.gui.button.schematic_verifier.start": "Почати перевірку", + "litematica.gui.button.schematic_verifier.stop": "Зупинити перевірку", + "litematica.gui.button.schematic_verifier.toggle_info_hud": "HUD інфо: %s", + + "litematica.gui.button.cancel": "Скасувати", + "litematica.gui.button.configure": "Налаштування", + "litematica.gui.button.copy": "Копіювати", + "litematica.gui.button.create_directory": "Створити новий каталог", + "litematica.gui.button.create_placement": "Створити розміщення", + "litematica.gui.button.delete": "Видалити", + "litematica.gui.button.disable": "Вимкнути", + "litematica.gui.button.enable": "Увімкнути", + "litematica.gui.button.import": "Імпорт", + "litematica.gui.button.load_schematic_to_memory": "Завантажити схематику", + "litematica.gui.button.mirror_value": "Відзеркалити: %s", + "litematica.gui.button.move_to_player": "Перемістити гравця", + "litematica.gui.button.ok": "Продовжити", + "litematica.gui.button.reload": "Перезавантажити", + "litematica.gui.button.remove": "Видалити", + "litematica.gui.button.remove_placement": "Видалити розміщення", + "litematica.gui.button.rename": "Перейменувати", + "litematica.gui.button.rotation_value": "Оберт: %s", + "litematica.gui.button.save_new_schematic_version": "Зберегти версію", + "litematica.gui.button.save_schematic": "Зберегти схематику", + "litematica.gui.button.save_to_file": "Зберегти в файл", + "litematica.gui.button.schematic_verifier": "Перевірка схематики", + "litematica.gui.button.set_preview": "Вибрати зображенн", + "litematica.gui.button.tool_mode": "Режим обладнання: %s", + "litematica.gui.button.unload": "Розвантажити", + "litematica.gui.button.unlocked": "Розблоковано", + + "litematica.gui.label.area_editor.box_name": "Назва підрегіону", + "litematica.gui.label.area_editor.selection_name": "Вибрати назву", + "litematica.gui.label.area_editor.corner_1": "Кут 1", + "litematica.gui.label.area_editor.corner_2": "Кут 2", + "litematica.gui.label.area_editor.origin": "Початково", + "litematica.gui.label.area_editor.dimensions": "Виміри", + "litematica.gui.label.area_editor.pos1": "Кут 1", + "litematica.gui.label.area_editor.pos2": "Кут 2", + "litematica.gui.label.area_editor.sub_regions": "Підрегіони (%s)", + + "litematica.gui.label.area_selection_manager.current_selection": "Вибрана область: %s", + + "litematica.gui.label.area_selection_box_count": "Куби: %d", + "litematica.gui.label.area_selection_origin": "Початково: %s", + "litematica.gui.label.area_selection.mode.normal": "Нормальний", + "litematica.gui.label.area_selection.mode.simple": "Простий", + + "litematica.gui.label.block_info.state_client": "Стан блоків у клієнтському світі", + "litematica.gui.label.block_info.state_schematic": "Стан блоків світу схематики", + + "litematica.gui.label.block_info_list_type.all": "Усі", + "litematica.gui.label.block_info_list_type.render_layers": "Промальовувати шари", + + "litematica.gui.label.easy_place_protocol.auto": "Авто", + "litematica.gui.label.easy_place_protocol.none": "Нічого", + "litematica.gui.label.easy_place_protocol.slabs_only": "Лише плити", + "litematica.gui.label.easy_place_protocol.v2": "Версія 2", + "litematica.gui.label.easy_place_protocol.v3": "Версія 3", + + "litematica.gui.label.data_fixer_mode.always": "Завжди", + "litematica.gui.label.data_fixer_mode.below_1205": "Лише нижче 1.20.5", + "litematica.gui.label.data_fixer_mode.below_120X": "Лише нижче 1.20.x", + "litematica.gui.label.data_fixer_mode.below_119X": "Лише нижче 1.19.x", + "litematica.gui.label.data_fixer_mode.below_117X": "Лише нижче 1.17.x", + "litematica.gui.label.data_fixer_mode.below_116X": "Лише нижче 1.16.x", + "litematica.gui.label.data_fixer_mode.below_113X": "Лише нижче 1.13.x", + "litematica.gui.label.data_fixer_mode.below_112X": "Лише нижче 1.12.x", + "litematica.gui.label.data_fixer_mode.never": "Ніколи", + + "litematica.gui.label.loaded_schematic.modified_on": "§6Модифіковано на %s§r", + + "litematica.gui.label.material_list.abbr.shulker_box": "Шалкерові коробки", + "litematica.gui.label.material_list.title.available": "В наявності", + "litematica.gui.label.material_list.title.item": "Предмет", + "litematica.gui.label.material_list.title.missing": "Відсутньо", + "litematica.gui.label.material_list.title.total": "Всього", + + "litematica.gui.label.material_list.multiplier": "Множник:", + "litematica.gui.label.material_list.name": "Назва", + "litematica.gui.label.material_list.progress": "Прогрес: %s", + "litematica.gui.label.material_list.progress.done": "Завершено %s", + "litematica.gui.label.material_list.progress.mismatch": "Невідповідно %s", + "litematica.gui.label.material_list.progress.missing": "Відсутньо %s", + "litematica.gui.label.material_list.total": "Всього: %s предметів", + + "litematica.gui.label.origin.auto": "Авто", + "litematica.gui.label.origin.manual": "Вручну", + + "litematica.gui.label.paste_nbt_behavior.none": "Нічого", + "litematica.gui.label.paste_nbt_behavior.place_data_modify": "Розмістити і модифікувати дані", + "litematica.gui.label.paste_nbt_behavior.place_clone": "Розмісти і клонувати", + + "litematica.gui.label.placement_sub.region_name": "Початкова назва: %s", + "litematica.gui.label.placement_sub.region_position": "Початкова позиція", + "litematica.gui.label.placement_sub.region_size": "Початковий розмір: %s", + + "litematica.gui.label.placement_settings.placement_origin": "Початкове розміщення", + + "litematica.gui.label.render_layers.hotkey": "Гарячі клавіші", + "litematica.gui.label.render_layers.hover.hotkey": "Гарячі клавіші наступного/попереднього шару впливатимуть на цю межу\nЯкщо обидві не вибрані, гарячі клавіші впливатимуть на межу, яка є найближчою до гравця", + + "litematica.gui.label.replace_behavior.all": "Усе", + "litematica.gui.label.replace_behavior.none": "Нічого", + "litematica.gui.label.replace_behavior.with_non_air": "Без повітря", + + "litematica.gui.label.schematic_info.schematic_author": "Схематика від §f%s§r", + "litematica.gui.label.schematic_info.description": "Опис:", + "litematica.gui.label.schematic_info.enclosing_size": "Обмежений розмір:", + "litematica.gui.label.schematic_info.enclosing_size_value": "Обмежений розмір: §f%s§r", + "litematica.gui.label.schematic_info.name": "Назва:", + "litematica.gui.label.schematic_info.region_count": "Регіонів: §f%d§r", + "litematica.gui.label.schematic_info.time_created": "Створено: §f%s§r", + "litematica.gui.label.schematic_info.time_modified": "Модифіковано: §f%s§r", + "litematica.gui.label.schematic_info.total_blocks": "Всього блоків: §f%d§r", + "litematica.gui.label.schematic_info.total_blocks_and_volume": "Блоків/обсяг: §f%d§r/§f%d§r", + "litematica.gui.label.schematic_info.total_volume": "Всього обсяг: §f%d§r блоків", + "litematica.gui.label.schematic_info.version": "Версія Litematic: §f%d§r", + "litematica.gui.label.schematic_info.schema": "Minecraft: §f%s§r [Схема §f%d§r]", + "litematica.gui.label.schematic_info.sponge_version": "Версія Sponge: §f%d§r", + "litematica.gui.label.schematic_info.vanilla_version": "Ванілльна структура", + + "litematica.gui.label.schematic_load.checkbox.create_placement": "Створити розміщення", + "litematica.gui.label.schematic_load.hoverinfo.create_placement": "Негайно створиити нове розміщення і виберіть його", + + "litematica.gui.label.schematic_placement.enclosing_size": "Обмежений розмір: %s", + "litematica.gui.label.schematic_placement.hoverinfo.hold_shift_to_create_as_disabled": "Утримуйте Shift, щоб вимкнути розміщення під час створення", + "litematica.gui.label.schematic_placement.in_memory": "ЛИШЕ В ПАМ'ЯТЬ", + "litematica.gui.label.schematic_placement.origin": "Початково: %s", + "litematica.gui.label.schematic_placement.rename_placement": "Перейменувати розміщення:", + "litematica.gui.label.schematic_placement.schematic_file": "Файл: %s", + "litematica.gui.label.schematic_placement.schematic_name": "Схематика: %s", + "litematica.gui.label.schematic_placement.sub_region_count": "Підрегіонів: %s", + "litematica.gui.label.schematic_placement.sub_regions": "Підрегіони (%s):", + + "litematica.gui.label.schematic_projects.currently_open_project": "Наразі відкритий проєкт: %s", + "litematica.gui.label.schematic_projects.origin": "Початково:", + "litematica.gui.label.schematic_projects.project": "Проєкт:", + "litematica.gui.label.schematic_projects.version": "Версія: %s (з %s)", + "litematica.gui.label.schematic_projects.version_entry": "Версія %d - %s", + "litematica.gui.label.schematic_projects.version_name": "Назва версії:", + + "litematica.gui.label.schematic_save.checkbox.ignore_entities": "Ігнорувати сутности", + "litematica.gui.label.schematic_save.hover_info.hold_shift_to_overwrite": "Утримуйте Shift, щоб перезаписати наявний файл", + "litematica.gui.label.schematic_save.checkbox.save_from_schematic_world": "Врятувати світ від схематики", + "litematica.gui.label.schematic_save.hover_info.save_from_schematic_world": "Якщо увімкнено, схематикв створюється шляхом збереження вмісту виділення зі світу схем замість звичайного світу\nЦе дозволяє об’єднувати чи обрізати схематики без необхідності вставляти їх у тимчасовий творчий світ", + "litematica.gui.label.schematic_save.checkbox.visible_blocks_only": "Лише видимі блоки [експериментальний швидкий хакс]", + "litematica.gui.label.schematic_save.checkbox.support_blocks": "Блоки підтримки", + "litematica.gui.label.schematic_save.hover_info.support_blocks": "Включіть будь-які необхідні опорні блоки в режимі «Лише видимі блоки» для таких речей, як повторювачі, компаратори, килими або гравітаційні блоки, які будуть видимі", + "litematica.gui.label.schematic_save.hoverinfo.hold_shift_to_overwrite": "Утримуйте Shift, щоб перезаписати наявний файл", + + "litematica.gui.label.schematic_verifier.count": "Кількість", + "litematica.gui.label.schematic_verifier.expected": "Очікування", + "litematica.gui.label.schematic_verifier.found": "Знайдено", + "litematica.gui.label.schematic_verifier_display_type.all": "Ісі (не проігноровані)", + "litematica.gui.label.schematic_verifier_display_type.correct_state": "Поточний стан", + "litematica.gui.label.schematic_verifier_display_type.extra": "Додаткові блоки", + "litematica.gui.label.schematic_verifier_display_type.missing": "Відсутні блоки", + "litematica.gui.label.schematic_verifier_display_type.wrong_blocks": "Неправильні блоки", + "litematica.gui.label.schematic_verifier_display_type.wrong_state": "Неправльний стан", + "litematica.gui.label.schematic_verifier.status.done_errors": "Неправильно: §cблок: %s§r, §6стан: %s§r, §відсутні: %s§r, §dдодатково: %s§r", + "litematica.gui.label.schematic_verifier.status.done_correct_total": "§aПоточно: %s§r, всього: %s", + "litematica.gui.label.schematic_verifier.status.verifying": "Невидимі чанки: %s / %s", + "litematica.gui.label.schematic_verifier.verifier": "Перевірити схематику", + + "litematica.gui.label.task.title.remaining_chunks": "Залишилося %s чанків (%s)", + "litematica.gui.label.task_name.area_analyzer": "Аналізувати область", + "litematica.gui.label.task_name.delete": "Видалити завдання", + "litematica.gui.label.task_name.fill": "Заповнити завдання", + "litematica.gui.label.task_name.material_list": "Список матеріалів", + "litematica.gui.label.task_name.paste": "Вставити схематику", + "litematica.gui.label.task_name.save_schematic": "Зберегти схематику", + "litematica.gui.label.task_name.verifier": "Перевірити", + + "litematica.gui.message.confirm_file_deletion": "Ви справді хочете видалити файл «%s»?", + "litematica.gui.message.schematic_projects.confirm_delete_area": "Ви бажаєте видалити «останню вражену» область?\nЦе видалить будь-які блоки та сутності в області, яку менеджер проєкту востаннє розміщував у світі або востаннє зберігав як версію. (Загалом це «востаннє помічене уражене місце», так що, якщо ви змінюєте версії, це не залишить блоків із попередньої версії)", + "litematica.gui.message.schematic_projects.confirm_place_to_world": "Ви бажаєте розмістити цю версію?\nБуде видалено всі блоки в межах області, яку менеджер проєкту востаннє розміщував у світі або востаннє зберігав як версію. (По суті, це «останнє бачення ураженої області», так що, якщо ви будете циклічно змінювати версії, це не залишить блоків із попередньої версії)", + + "litematica.gui.title.area_editor_normal": "Редактор областей (звичайний/мультикубовий ркжим)", + "litematica.gui.title.area_editor_normal_schematic_projects": "Редактор областей (§6§lVCS область схематики§r)", + "litematica.gui.title.area_editor_simple": "Редактор областей (простий режим)", + "litematica.gui.title.area_editor_sub_region": "Редактор областей (підрегіон)", + "litematica.gui.title.area_editor.sub_region_name": "Назва підрегіона", + "litematica.gui.title.area_selection_manager": "Менеджер вибраних областей", + "litematica.gui.title.configure_schematic_placement": "Налаштування розміщення схематики", + "litematica.gui.title.configure_schematic_sub_region": "Налаштування розміщення підрегіонів", + "litematica.gui.title.configs": "Налаштування Litematica - %s", + "litematica.gui.title.confirm_file_deletion": "Підтвердити видалення файлу", + "litematica.gui.title.copy_area_selection": "Копіювати вибрану область «%s»", + "litematica.gui.title.create_area_selection": "Створити нову виділену область", + "litematica.gui.title.create_area_selection_from_placement": "Створити нову виділену область зі розміщенням схематики", + "litematica.gui.title.create_directory": "Створити новий каталог", + "litematica.gui.title.create_in_memory_schematic": "Створити схематику в пам'яті", + "litematica.gui.title.create_schematic_project": "Створити новий проєкт схематики", + "litematica.gui.title.litematica_main_menu": "Litematica %s", + "litematica.gui.title.load_schematic": "Завантажити схематику", + "litematica.gui.title.manage_loaded_schematics": "Менеджер завантажених схематик", + "litematica.gui.title.manage_schematic_placements": "Керувати розміщенням схематики", + "litematica.gui.title.material_list.area_analyzer": "Аналіз території для вибору «%s»", + "litematica.gui.title.material_list.placement": "Список матеріалів для розміщення «%s»", + "litematica.gui.title.material_list.schematic": "Список матеріалів для схематик «%s» (регіони %s з %s)", + "litematica.gui.title.material_list.select_schematic_regions": "Виберіть підрегіони для списку матеріалів «%s»", + "litematica.gui.title.rename_area_selection": "Перейменувати виділену область", + "litematica.gui.title.rename_area_sub_region": "Перейменувати підрегіон", + "litematica.gui.title.rename_schematic": "Перейменувати схематику", + "litematica.gui.title.create_schematic_from_selection": "Зберегти поточну вибрану область як схематику", + "litematica.gui.title.save_exported_schematic": "Експорт %s збережено до «%s»", + "litematica.gui.title.save_imported_schematic": "Збережено імпортовано схематику", + "litematica.gui.title.save_schematic_from_memory": "Зберегти файл схематики в пам'ять", + "litematica.gui.title.save_schematic_filename": "Назва файлу схематики", + "litematica.gui.title.schematic_browser": "Браузер схематики", + "litematica.gui.title.schematic_manager": "Менеджер схематики", + "litematica.gui.title.schematic_project_manager": "VCS менеджер проєкта", + "litematica.gui.title.schematic_projects.confirm_delete_area": "Підтверти видалення області", + "litematica.gui.title.schematic_projects.confirm_place_to_world": "Підтвердити дію «Розмістити в світі»", + "litematica.gui.title.schematic_projects.save_new_version": "Зберегти нову версію схематики", + "litematica.gui.title.schematic_projects_browser": "VCS проєкт схематики в браузері", + "litematica.gui.title.schematic_verifier": "Перевірка схематики для «%s»", + "litematica.gui.title.schematic_verifier_errors": "Помилки перевірки схематики", + "litematica.gui.title.task_manager": "Менеджер завдань", + + "litematica.hud.area_selection.box_count": "Куби: %s", + "litematica.hud.area_selection.dimensions_position": "Вимір: %s - p1: %s, p2: %s", + "litematica.hud.area_selection.mode.corners": "Кути", + "litematica.hud.area_selection.mode.expand": "Розгорнути", + "litematica.hud.area_selection.origin": "Початково: %s", + "litematica.hud.area_selection.selected_area_normal": "Область: %s", + "litematica.hud.area_selection.selected_area_simple": "Область [§6Простий режим§r]: %s", + "litematica.hud.area_selection.selected_sub_region": "Підрегіон: %s", + "litematica.hud.area_selection.selection_corners_mode": "Режим кутів: %s", + + "litematica.hud.delete.target_mode": "Режим видалення цілі: %s", + "litematica.hud.delete.target_mode.area": "Поточна область", + "litematica.hud.delete.target_mode.placement": "Поточне розміщення", + + "litematica.hud.misc.easy_place_mode_enabled": "«Легке розміщення» §aУВІМК.§r", + "litematica.hud.misc.none_brackets": "<нічого>", + "litematica.hud.misc.placement_restriction_mode_enabled": "Режим обмеження розміщення §aУВІМК.§r", + "litematica.hud.misc.render_layer_mode": "Режим шару: %s - %s", + "litematica.hud.misc.render_layer_mode_all": "Режим шару: %s", + "litematica.hud.misc.renderer_status": "Промальовування: A: %s S: %s B: %s O: %s SEL: %s", + "litematica.hud.misc.schematic_paste.data_restore_mode": "Режим відновлення даних: §b%", + "litematica.hud.misc.schematic_paste.replace_mode": "Замінити блоки: %s", + "litematica.hud.misc.schematic_paste.ignore_inventory_contents": "Ignore inventory contents: %s", + + "litematica.hud.schematic_placement.hover_info.lock_coordinate": "Заблокувати цю координату\nЦе дозволяє змінювати інші координати, не впливаючи на заблоковані", + "litematica.hud.schematic_placement.hover_info.placement_locked": "Це розміщення заблоковано, і його не можна змінити, не розблокувавши його", + "litematica.hud.schematic_placement.hover_info.placement_modified": "Розміщення було модифіковано", + "litematica.hud.schematic_placement.hover_info.placement_sub_region_modified": "Підрегіон було модифіковано", + "litematica.hud.schematic_placement.selected_placement": "Розіщення", + "litematica.hud.schematic_placement.selected_sub_region": "Підрегіон", + "litematica.hud.schematic_placement.sub_region_count": "Регіони", + "litematica.hud.schematic_placement.sub_region_modified": "Модифіковано", + "litematica.hud.schematic_placement.sub_region_origin": "Регіон: %s", + "litematica.hud.schematic_placement.sub_regions_modified": "Модифіковані регіони", + + "litematica.hud.selected_mode": "Режим", + + "litematica.hud.schematic_projects.current_version_date": "Дата: %s", + "litematica.hud.schematic_projects.current_version": "Версія: %s/%s - назва: %s", + "litematica.hud.schematic_projects.no_project_open": "<Проєкт не відкрито>", + "litematica.hud.schematic_projects.no_versions": "<Немає версії>", + "litematica.hud.schematic_projects.origin": "Проєкт: %s", + "litematica.hud.schematic_projects.project_name": "Проєкт: %s", + "litematica.hud.schematic_projects_mode": "§6Режим VCS схематик§r", + + "litematica.info.material_list": "- Гаряча клавіша «Список матеріалів» відкриває останній переглянутий список матеріалів, якщо він збережений\n- Щоб перейти до іншого списку матеріалів, відкрийте його через кнопку в налаштуваннях розміщення або в браузері схематик\n- Збережений/останній переглянутий список також забувається, якщо вибране розміщення схематики змінено\n- Якщо останнього переглянутого списку матеріалів немає, використовується вибране розташування, якщо воно є", + + "litematica.label.alignment.center": "Центр", + "litematica.label.alignment.top_center": "Зверху поцетру", + + "litematica.label.none_lower": "Нічого", + "litematica.label.no": "Ні", + "litematica.label.yes": "Так", + + "litematica.message.error.area_deletion_aborted": "Видалення області перервано або скасовано", + "litematica.message.error.empty_area_selection": "Вибрана область порощня (без кубів)", + "litematica.message.error.invalid_schematic_name": "Недійсна назва схематики «%s»", + "litematica.message.error.no_area_selected": "§cЛюласть не вибрано§r", + "litematica.message.error.no_placement_selected": "§cРозміщення не вибрано§r", + "litematica.message.error.only_works_in_single_player": "§cЦя операція працює лише в грі наодинці§r", + "litematica.message.error.move.pending_tasks": "§cНеможливо розпочати переміщення, якщо є незавершені завдання§r", + "litematica.message.error.placement_paste_outside_world": "Розміщення не можна вставити в поточну позицію, оскільки воно виходить за межі світу", + "litematica.message.error.schematic_paste_failed": "§cНе вдалося вставити схематику§r", + "litematica.message.error.schematic_save_failed": "Не вдалося зберегти схематику до файлу «%s»", + "litematica.message.error.schematic_save_interrupted": "Збереження схематики перервано або зупинено", + "litematica.message.error.schematic_save_no_area_selected": "§cНе владося зберегти схематику – область не вибрана§r", + "litematica.message.warn.pickblock.no_suitable_slot_found": "Не знайдено відповідного слота гарячої панелі для вибору блока!\nПеревірте §epickBlockableSlots§r в «Загальні»\nКрім того, залежно від значення §epickBlockAvoid*§6, функція блокування вибору може відмовитися замінити будь-які інструменти чи інші пошкоджені предмети в цих слотах", + "litematica.message.warn.pickblock.no_valid_slots_configured": "Немає слотів гарячої панелі для §epickBlockableSlots§r в «Загальні»!", + + "litematica.message.added_selection_box": "Додано нову вибрану область як %s", + "litematica.message.area_clear_fail": "§cНе вдалося очистити область§r", + "litematica.message.area_cleared": "Область очищено", + "litematica.message.area_filled": "Область заповнено", + "litematica.message.area_fill_fail": "Не вдалося заповнити область", + "litematica.message.area_selections.selection_created_from_placement": "Створено новий вибір із місця розташування «%s»", + "litematica.message.easy_place_fail": "§6Дії заважають режим «Легке розміщення»", + "litematica.message.grabbed_element_for_moving": "Взяв елемент для переміщення", + "litematica.message.in_memory_schematic_created": "Створено схематику в пам’яті як «%s»", + "litematica.message.litematic_saved_as": "Успішно оновлено версію даних схематики Litematica\nСхематику збережено як «%s»", + "litematica.message.material_list.material_cache_cleared": "Кеш матеріалів очищено", + "litematica.message.material_list_written_to_file": "Список матеріалів записаний у файл «%s»", + "litematica.message.moved_area_origin": "Переміщено початкову точку області з %s до %s", + "litematica.message.moved_selection": "Переміщено поточний вибір із %s до %s", + "litematica.message.paste_with_servux": "§6Місце розміщення завантажується в Servux для вставки", + "litematica.message.placement.cant_modify_is_locked": "§cРозташування заблоковано і не може бути змінено§r", + "litematica.message.placement.moved_placement_origin": "Переміщено місце розташування з %s до %s", + "litematica.message.placement.moved_subregion_to": "Переміщено підрегіон до %s", + "litematica.message.placement.rotation_set_to": "Розміщення повернуто до %s", + "litematica.message.placement.mirror_set_to": "Розміщення відзеркалено до %s", + "litematica.message.placement_restriction_fail": "§6Дії заборонено режимом обмеження розміщення", + "litematica.message.removed_area_origin": "Видалено явну/ручну початкову точку області", + "litematica.message.removed_selection_box": "Видалено вибрану область %s", + "litematica.message.scheduled_task_added": "Додано заплановане завдання..", + "litematica.message.litematic_downgrade_exported_as": "Ескпорт схематики знижено як «%s»\n§6ПРИМІТКА: Це експериментальна функція; може статися втрата даних§r", + "litematica.message.schematic_exported_as": "Схематику експортовано як «%s»", + "litematica.message.schematic_pasted": "Схематику вставлено в світ", + "litematica.message.schematic_pasted_using_fill_and_setblock": "Схематику вставлено за допомогою §b%s§r і заповнено §b%§r командою /setblock", + "litematica.message.schematic_pasted_using_setblock": "Схематику вставлено за допомогою §b%§r команди /setblock", + "litematica.message.schematic_pasted_using_world_edit": "Схематику вставлено за допомогою §b%§r World Edit команди //set", + "litematica.message.schematic_placement_created": "Розміщення створено як «%s»", + "litematica.message.schematic_preview_cancelled": "Завдання переглядку схематики скасовано", + "litematica.message.schematic_read_from_file_success": "Завантажено файл схематики «%s»", + "litematica.message.schematic_rendering_refreshed": "Зображення схематики оновлено", + "litematica.message.schematic_saved_as": "Схематику збережено як «%s»", + "litematica.message.schematic_save_task_created": "Створено завдання збереження схематики", + "litematica.message.set_area_origin": "Встановлено початкову точку області на %s", + "litematica.message.set_selection_box_point": "Встановлено/переміщено точку %d до %s", + "litematica.message.toggled": "Перемикач %s %s", + "litematica.message.value.on": "УВІМК.", + "litematica.message.value.off": "ВИМК.", + + "litematica.message.schematic_projects.project_created": "Проєкт «%s» створено", + "litematica.message.schematic_projects.project_loaded": "Проєкт «%s» завантажено", + "litematica.message.schematic_projects.version_saved": "Нова версія (#%s) збережена як «%s»", + + "litematica.message.warn.area_selection.browser_open_in_simple_mode": "Примітка: зараз ви перебуваєте в режимі простого «Вибір області»", + "litematica.message.warn.layer_mode_currently_at": "Примітка: зараз ви перебуваєте в режимі показу шару «%s»", + "litematica.message.warn.main_rendering_disabled": "Попередження: основне промальовування наразі вимкнено\nДив. Візуал -> %s або гарячі клавіші -> %s [«%s»]", + "litematica.message.warn.schematic_blocks_rendering_disabled": "Попередження: промальовування блоків схематики наразі вимкнено\nДив. Візуал -> %s або гарячі клавіші -> %s [«%s»]", + "litematica.message.warn.schematic_load_non_litematica": "Попередження: коли ви безпосередньо завантажуєте схематику, відмінну від Litematica, створені розміщення не будуть постійними\nКрім того, якщо вам доведеться завантажувати схематику багато разів, затримки перетворення типу схематики (для великих схематик) відбуватиметься кожного разу, коли ви завантажуєте її\n\nТому рекомендується або імпортувати схематику та зберегти її у форматі Litematica за допомогою меню «Менеджер схематик», або ще краще вставити оригінальну схематику у тимчасовий світ за допомогою MCEdit або режиму вставки в Litematica, а потім створтити нову схематику Litematica з цього, бажано використовуючи кілька підрегіонів, щоб щільно охопити збірку, де це можливо", + "litematica.message.warn.schematic_rebuild_placement_not_selected": "Цільове розташування наразі не вибрано. Гаряча клавіша «Замінити все» працює лише для поточних вибраних підрегіонів розміщення, яке ви натискаєте. Щоб замінити блоки лише в одному підрегіоні, виберіть цей підрегіон. Щоб замінити всю схематику (всі сонячні області), виберіть розміщення повністю, а не його підобласть. Блоки також замінюються лише в межах області, обмеженої поточним значень «Промальовування шарів»", + "litematica.message.warn.schematic_rendering_disabled": "Попередження: промальовування схематики наразі вимкнено\nДив. Візуал -> %s або гарячі клавіші -> %s [«%s»]]", + "litematica.message.warn.schematic_verifier.overlay_disabled": "Попередження: промальовування накладання верифікатора наразі вимкнено! Див. інформацію про накладання -> %s (або гарячі клавіші -> %s [«%s»])", + + "litematica.message.warning.invalid_number": "Недійсне введення числа «%s»", + "litematica.message.warning.schematic_projects_hidden": "Попередження: система контролю версій схематики наразі прихована. Загалом, ви НЕ повинні використовувати це, якщо ви дійсно не знаєте, як це працює та змінює деякі дії мода. Він призначений для повторення роботи з проєктування на місці, де потрібне перемикання між різними версіями збірки на місці (= видалення та заміна попередньої версії). Якщо ви хочете його використовувати, увімкніть «unhideSchematicVCS» у «Загальні»", + + "litematica.warning.area_editor.area_rendering_disabled": "Примітка: промальовування полів вибору області наразі вимкнено\nДив. Візуал -> %s або гарячі клавіші -> %s [«%s»]", + + "litematica.tool_hud.block_1": "Блок: %s", + "litematica.tool_hud.block_2": "Замінити: %s", + "litematica.tool_hud.facing": "Напрямок: %s", + + "litematica.tool_mode.name.area_selection": "Вибір області", + "litematica.tool_mode.name.delete": "Видалити", + "litematica.tool_mode.name.fill": "Заповнити", + "litematica.tool_mode.name.grid_paste": "Сітка при вставлені схематики в світ", + "litematica.tool_mode.name.move": "Рухати", + "litematica.tool_mode.name.paste_schematic": "Вставити схематику в світ", + "litematica.tool_mode.name.rebuild": "Редагувати схематику", + "litematica.tool_mode.name.replace_block": "Замінити блок", + "litematica.tool_mode.name.schematic_placement": "Розміщення схематики" +} \ No newline at end of file diff --git a/src/main/resources/assets/litematica/lang/zh_cn.json b/src/main/resources/assets/litematica/lang/zh_cn.json new file mode 100644 index 0000000..eed4c91 --- /dev/null +++ b/src/main/resources/assets/litematica/lang/zh_cn.json @@ -0,0 +1,926 @@ +{ + "litematica.config.colors.comment.areaSelectionBoxSideColor": "选区未被选中时边框的颜色", + "litematica.config.colors.comment.hightlightBlockInInventoryColor": "在物品栏中高亮显示目标方块的颜色", + "litematica.config.colors.comment.materialListHudItemCountsColor": "材料列表开启 HUD 后的游戏内材料数量的颜色", + "litematica.config.colors.comment.schematicOverlayColorExtra": "多余方块在原理图错误渲染器内显示的颜色", + "litematica.config.colors.comment.schematicOverlayColorMissing": "缺失方块在原理图错误渲染器内显示的颜色", + "litematica.config.colors.comment.schematicOverlayColorWrongBlock": "错误方块在原理图错误渲染器内显示的颜色", + "litematica.config.colors.comment.schematicOverlayColorWrongState": "方块状态错误在原理图错误渲染器内显示的颜色", + "litematica.config.colors.comment.schematicRebuildBreakExceptPlaceOverlayColor": "在重建原理图模式当中,选择保留方块的指示器颜色", + "litematica.config.colors.comment.schematicRebuildBreakPlaceOverlayColor": "在重建原理图模式的批量删除当中,\n在方向选择器上的指示器颜色", + "litematica.config.colors.comment.schematicRebuildReplaceOverlayColor": "在重建原理图模式的批量替换当中,\n在方向选择器上的指示器颜色", + "litematica.config.colors.name.areaSelectionBoxSideColor": "选区边框颜色", + "litematica.config.colors.name.hightlightBlockInInventoryColor": "高亮显示颜色", + "litematica.config.colors.name.materialListHudItemCountsColor": "材料数量颜色", + "litematica.config.colors.name.schematicOverlayColorExtra": "多余方块颜色", + "litematica.config.colors.name.schematicOverlayColorMissing": "缺失方块颜色", + "litematica.config.colors.name.schematicOverlayColorWrongBlock": "错误方块颜色", + "litematica.config.colors.name.schematicOverlayColorWrongState": "错误状态颜色", + "litematica.config.colors.name.schematicRebuildBreakExceptPlaceOverlayColor": "重建原理图保留指示器颜色", + "litematica.config.colors.name.schematicRebuildBreakPlaceOverlayColor": "重建原理图删除指示器颜色", + "litematica.config.colors.name.schematicRebuildReplaceOverlayColor": "重建原理图替换指示器颜色", + "litematica.config.generic.comment.areaSelectionsPerWorld": "使用每个世界或服务器根目录进行区域选择\n§6注意:直播时§l请勿关闭§6此功能,\n否则区域选择浏览器将显示服务器 IP 到指南以及当前选择名称/路径中,\n直到您再次更改当前目录和选择", + "litematica.config.generic.comment.betterRenderOrder": "如果启用,那么结构图的渲染将通过使用不同的渲染调用注入到原版渲染代码中。\n这应该可以改善透明方块的渲染/排序,\n并且避免结构图中的方块穿过客户端世界的方块/地形被渲染。\n如果渲染不起作用(例如在使用 Optifine 时),请尝试禁用此选项", + "litematica.config.generic.comment.changeSelectedCornerOnMove": "如果启用,那么在使用角点模式进行区域选择时\n区域选择的角总是被设置为最后选择的角\n(最后选择的角就是角点的框线与面都有颜色)\n(PS:虽然在实际使用过程当中没有太大影响)", + "litematica.config.generic.comment.cloneAtOriginalPosition": "如果启用,那么使用克隆快捷键时\n将在原来选择的区域位置克隆,\n而不是在玩家的当前位置", + "litematica.config.generic.comment.commandDisableFeedback": "如果启用此选项,则在进行多人模式下的粘贴、填充和删除操作时\n(这些操作使用 /setblock 和 /fill 命令),\n命令反馈会自动禁用并在任务完成后重新启用。\n通过在任务结束时禁用并重新启用 §6禁用命令反馈§r 实现", + "litematica.config.generic.comment.commandFillMaxVolume": "可以通过命令填充/删除操作更改的每个单独框的最大的大小/体积。\n更大的区域/体积将被分割为多个命令去执行。\n但无论如何,所有区域在一开始也被分割为多个区块", + "litematica.config.generic.comment.commandFillNoChunkClamp": "禁用将填充体积划分为子区块\n(在填充、替换和删除模式下)\n\n§b译注:填充、替换和删除操作在功能开启前是按子区块操作的\n开启功能后是直接批量删\n(样本较少没有看出是什么方式)", + "litematica.config.generic.comment.commandLimitPerTick": "当玩家在服务器上使用粘贴,填充和删除功能时,他们将使用 setblock 和 fill 指令\n请注意,使用 NBT 恢复功能时,由于每个方块需要两个额外的命令粘贴,该功能可能会超过预定的命令数量,", + "litematica.config.generic.comment.commandNameClone": "在服务器的创造模式中使用 clone 命令时要使用的 clone 命令名\n如果 NBT 迁移选项设置为 [放置 & /clone],则当前功能仅使用粘贴", + "litematica.config.generic.comment.commandNameFill": "在服务器的创造模式中使用 fill 命令时要使用的 fill 命令名", + "litematica.config.generic.comment.commandNameSetblock": "在服务器的创造模式中使用 setblock 命令时要使用的\nsetblock 命令名,即在使用世界上粘贴原理图的功能时", + "litematica.config.generic.comment.commandNameSummon": "在服务器的创造模式中使用 summon 命令时要使用的\nsummon 命令名,即在使用世界上粘贴原理图的功能时", + "litematica.config.generic.comment.commandTaskInterval": "游戏中的粘贴,填充和删除任务的 Tick 间隔。\n在 §6[命令限速]§r 中设置每次执行发送的命令的最大数量,\n在这个变量配置下一次执行命令之前的游戏时间间隔", + "litematica.config.generic.comment.commandUseWorldEdit": "如果启用此选项,将使用 WorldEdit 的 //pos1,//pos2 和 //set 命令,\n而不是配置的 setblock 和 fill 命令\n\n请注意,使用 WorldEdit 命令比使用原版命令慢大约 3 倍,\n因为每 Tick 的命令限制,并且 WE 每个方块或区域需要多个命令(//pos1,//pos2,//set)\n\n§6警告:如果使用 WorldEdit 命令,而不是单独的 setblock 命令,粘贴替换行为选项将无法工作!\n因此,建议在有权限运行原版命令时,优先使用原版命令\n另外,WorldEdit 命令在某些情况下的一个优势是可以防止方块更新,\n尤其是在服务器没有 Carpet 模组,且无法使用 [/carpet fillUpdates false] 规则时", + "litematica.config.generic.comment.customSchematicBaseDirectory": "如果启用了 §6[自定义原理图目录]§f\n所要使用的原理图的根目录", + "litematica.config.generic.comment.customSchematicBaseDirectoryEnabled": "如果启用该功能,则在 §6[自定义原理图目录]§f\n中设置的目录路径将用为原理图的根目录,\n而不是正常的§9 .minecraft/schematics/ §r目录", + "litematica.config.generic.comment.datafixerDefaultSchema": "用于 Vanilla 数据修正器的默认架构值\n\n用于调整最低可能值,以及当加载的结构图不包含此信息时使用的值。\n\n§6警告:此设置应按照 Litematica 开发者(如 Masa 本人)的指导使用。\n§6如果不确定,请保持 Minecraft 1.12 的默认值", + "litematica.config.generic.comment.datafixerMode": "可配置的数据修正器级别,用于应用于加载的结构图。\n此选项可以通过绕过原版数据修正器来提高加载结构图的性能,但如果禁用它,可能会导致严重的数据丢失", + "litematica.config.generic.comment.debugLogging": "在游戏控制台中启用一些调试日志消息,用于调试某些问题或崩溃", + "litematica.config.generic.comment.easyPlaceClickAdjacent": "使用来自 1.12.2 版本 Ornithe 模组的 Clicks Adjacent 功能\n此功能仅在启用 §6[简单放置模式重写]§r 时生效", + "litematica.config.generic.comment.easyPlaceFirst": "此选项会使 §6[简单放置模式]§r 优先放置你正在看着的第一个/最近的方块,而不是最远/最底部的方块\n将其设置为 false 可以让你一次放置多层,因为最远的方块会在较近的方块阻挡视线之前先被放置", + "litematica.config.generic.comment.easyPlaceHoldEnabled": "启用后,您可以按住使用键,然后根据投影以放置对应的方块,\n而无需单独点击每一个方块", + "litematica.config.generic.comment.easyPlaceMode": "启用后,尝试在投影上使用物品或放置方块时,会直接将该方块放置在该位置", + "litematica.config.generic.comment.easyPlacePostRewrite": "启用后,简易放置模式将使用来自 1.12.2 版本 Ornithe 模组的 Post-Rewrite 功能\n§6警告!此功能为实验性功能", + "litematica.config.generic.comment.easyPlaceProtocolVersion": "要使用的 §6[简单放置协议]§f 的模式\n\n- 自动:在单人模式下使用 §6[模式 3]§r,\n在多人模式下默认使用 §6[仅台阶]§r,\n如果服务器装有 Carpet 模组并发送了「carpet:hello」数据包,\n将会使用 §6[模式 2]§r\n- 模式 3:仅支持 Litematica 本身(在单人游戏中)或与 Servux 一起使用。\n- 模式 2:与装有 Carpet 模组的服务器兼容\n(包括由 Skyrising 和 DeadlyMC 开发的 QuickCarpet,\n或者安装了 CarpetExtra 和 FabricCarpet 的服务器。\n此外,服务器上需要启用「accurateBlockPlacement」规则)。\n- 仅台阶:只修复 top slabs 兼容 Paper servers\n- 关闭:不做调整", + "litematica.config.generic.comment.easyPlaceSinglePlayerHandling": "启用后,Litematica 将在单人模式中启用的「Carpet mod Accurate Block Placement Protocol」\n如果你打算在单人模式中使用 §6[简单放置模式]§r,建议保持该选项启用", + "litematica.config.generic.comment.easyPlaceSwapInterval": "§6[简单放置模式]§r 在背包和手中方块交换后等待的间隔(以毫秒为单位)。\n在高延迟时,此选项有助于避免放置错误的方块", + "litematica.config.generic.comment.easyPlaceSwingHand": "使用 §6[简单放置模式]§r 时,放置方块时玩家的手是否挥动", + "litematica.config.generic.comment.easyPlaceVanillaReach": "如果启用此选项,将把手长从 6 减少到原版 Minecraft 的默认值(4.5),以防止服务器拒绝放置远处的方块", + "litematica.config.generic.comment.entityDataSync": "使用 Servux 的实体数据同步协议,从服务器获取实体数据", + "litematica.config.generic.comment.entityDataSyncBackup": "当 Servux 不可用时,使用原版 NBT 查询方法\n此方法需要管理员权限", + "litematica.config.generic.comment.entityDataSyncCacheTimeout": "实体数据缓存的超时时间值,以秒为单位。值越低,更新越频繁。\n但如果您的原理图未能保存所有的 NBT 数据,您可能需要考虑设置更高的值", + "litematica.config.generic.comment.entityDataSyncLoadNbt": "将同步的 NBT 数据加载到客户端世界中\n§6警告!此功能会导致与依赖这些数据的其他模组不兼容", + "litematica.config.generic.comment.executeRequireHoldingTool": "需要持有已启用的工具项以使 §6[执行操作]§f 热键工作", + "litematica.config.generic.comment.fixChestMirror": "修复投影中破碎的大箱子", + "litematica.config.generic.comment.fixRailRotation": "如果为真,那么就对轨道中常见的 Bug 进行了修正,\n即南北方向和东西方向的直线轨道 180 度旋转时逆时针旋转90度,而不是 >_>", + "litematica.config.generic.comment.generateLowercaseNames": "如果启用,则默认情况下建议的原理图名称将为小写并使用下划线而不是空格", + "litematica.config.generic.comment.highlightBlockInInventory": "当启用时,背包内将高亮显示指向原理图的方块\n(无论是物品栏还是潜影盒)", + "litematica.config.generic.comment.itemUsePacketCheckBypass": "该功能绕过了 1.18.2 中新添加的距离/坐标校验\n\n该校验破坏了 §6[精确放置协议]§f 的功能\n并导致任何带有旋转(或其他属性)\n请求放置的方块变成了幽灵方块\n\n基本上没有必要禁用这个校验\n因为在 1.18.2 之前,这个校验甚至都不存在", + "litematica.config.generic.comment.layerModeFollowsPlayer": "如果开启,则渲染层跟随玩家,但是只能跟随当前高度\n注:在渲染层为 范围 模式时不起作用", + "litematica.config.generic.comment.loadEntireSchematics": "如果启用,那么整个投影总是同时加载\n如果关闭,则只加载客户端视距内的部分", + "litematica.config.generic.comment.materialListIgnoreState": "启用后,将忽略确切的方块状态,仅匹配方块类型", + "litematica.config.generic.comment.pasteAlwaysUseFill": "这将会强制使用 fill 命令(而不是 setblock),即使是单个方块", + "litematica.config.generic.comment.pasteIgnoreBlockEntitiesEntirely": "如果启用,方块实体将不会通过基于命令的方式在多人模式下粘贴\n这使得你可以更轻松地分两步粘贴:第一步粘贴方块,第二步使用 §6[NBT 数据恢复]§r(如物品栏等)。\n因此该过程通常需要更慢的粘贴速度或命令执行频率", + "litematica.config.generic.comment.pasteIgnoreBlockEntitiesFromFill": "如果启用,那么在使用 fill 命令粘贴时将忽略所有实体方块。\n这使得实体方块可以单独粘贴,\n如果使用 §6[NBT 数据恢复]§r,这是必须的", + "litematica.config.generic.comment.pasteIgnoreCommandLimitWithNbtRestore": "如果启用,在开启 §6[NBT 数据恢复]§r 时,粘贴带有方块实体的方块时将忽略命令限制\n这似乎能够修复在较低命令执行频率下,许多方块的 NBT 恢复会失败的问题", + "litematica.config.generic.comment.pasteIgnoreEntities": "如果启用,则粘贴功能将不会粘贴任何实体", + "litematica.config.generic.comment.pasteIgnoreInventories": "粘贴原理图时不要粘贴容器的内容物", + "litematica.config.generic.comment.pasteNbtRestoreBehavior": "是否尝试恢复方块的 NBT 数据,以及使用哪种方法来进行恢复\n\n- 放置 & /data modify:尝试在玩家附近放置带有 NBT 数据的方块,然后使用 /data modify 命令将 NBT 数据传输到 /setblock 放置的方块上\n- 放置 & /clone:尝试在玩家附近放置带有 NBT 数据的方块,然后将其克隆到最终位置\n- /tp & 放置:尝试将玩家传送到附近,然后直接将带有 NBT 数据的物品放置在正确的位置\n\n请注意,/tp & 放置 方法目前无法正常工作\n推荐使用的方法是 §e放置 & /data modify§r,但为使其正常工作,您可能需要将 §6[命令限速]§r 降低到每 Tick 1 个命令,并将 §6[任务间隔]§6 增加到 1-4 Ticks 左右\n因此建议仅在粘贴需要保留数据的重要方块时使用该方法,比如制作仅包含物品栏的结构文件,然后在粘贴时将替换行为设置为「无」", + "litematica.config.generic.comment.pasteReplaceBehavior": "在粘贴原理图工具中替换现有方块的模式", + "litematica.config.generic.comment.pasteToMcFunctionFiles": "如果启用,将不会直接粘贴实际的原理图,\n方块信息将作为 setblock 命令写入文本文件后再粘贴", + "litematica.config.generic.comment.pasteUseFillCommand": "如果启用,在服务器上进行基于命令的粘贴操作,除了使用 /setblock 命令外,还会尝试对连续的同种方块区域使用 /fill 命令\n在单人模式中将不会起作用,因为模组会直接在服务器世界中设置方块,而不会使用命令", + "litematica.config.generic.comment.pasteUsingCommandsInSp": "这是一个临时的方法,可以在单人游戏中基于命令粘贴,\n这使得在单人游戏中可以使用部分渲染层粘贴原理图,\n但该功能目前无法与单人模式正常使用的直接世界访问粘贴方式兼容\n\n请注意,这将具有与多人模式粘贴相同的 NBT 数据恢复限制", + "litematica.config.generic.comment.pasteUsingServux": "使用 Servux 将结构图直接粘贴到服务器上。\n这种方法比传统的基于命令的方法快得多,\n并且支持恢复实体 NBT 数据", + "litematica.config.generic.comment.pickBlockAvoidDamageable": "在开启简单放置后,避免方块替换掉任何在快捷栏中\n有耐久度的物品。§d例如:打火石,毛刷等§r", + "litematica.config.generic.comment.pickBlockAvoidTools": "在开启简单放置后,避免方块替换掉任何在快捷栏中的工具", + "litematica.config.generic.comment.pickBlockEnabled": "启用原理图的拾取方块快捷键。\n还有一个快捷键可以切换此选项,从而切换这些快捷键...o.o", + "litematica.config.generic.comment.pickBlockIgnoreNbt": "启用 §6[拾取方块忽略 NBT]§r 功能,用于来自 1.12.2 版本 Ornithe 模组的 §6[简单放置模式重写]§r 功能", + "litematica.config.generic.comment.pickBlockShulkers": "如果启用,那么如果选取方块物品没有在玩家背包找到\n那么就切换出包含它的潜影盒", + "litematica.config.generic.comment.pickBlockableSlots": "允许用于投影原理图挑选的快捷栏\n\n§b译注:12345 指的是物品栏 1-5 的位置,也就是说你物品栏 1-5 位置全是工具,且开启了 §6[避免替换工具]§r,投影会报错", + "litematica.config.generic.comment.placementReplaceBehavior": "当原理图粘贴时,方块的替换方式\n\n\n这允许在使用重叠放置时,\n后处理的放置不会总是用空气覆盖先前的放置\n另一方面,一些像光照方块这样的方块被认为是空气,\n所以它们需要 [全部] 替换行为来放置", + "litematica.config.generic.comment.placementRestriction": "启用后,使用键只能在手持针对目标位置的正确物品时使用,\n并且目标位置在结构图中必须是一个缺失的方块", + "litematica.config.generic.comment.placementRestrictionWarn": "当简单放置模式或放置限制阻止玩家放置一个方块时,\n选择要显示的警告信息类型\n- 物品栏模式:显示在物品栏上方\n- 消息模式:弹出橙色的消息文字", + "litematica.config.generic.comment.renderMaterialListInGuis": "材质列表是否会在 GUI 中呈现", + "litematica.config.generic.comment.renderThreadNoTimeout": "从渲染工作线程中移除超时内容\n如果你在处理大型原理图的时候渲染的很不流畅,\n试着禁用它。\n但是在某些情况下,它会使原理图的渲染速度慢很多", + "litematica.config.generic.comment.selectionCornersMode": "要使用的区域选择模式(角点,或展开)", + "litematica.config.generic.comment.serverNbtRequestRate": "限制服务器实体数据同步器的请求速率", + "litematica.config.generic.comment.signTextPaste": "该功能能在原理图中显示告示牌的内容\n§d这样就不用背了捏~", + "litematica.config.generic.comment.toolItem": "作为用于原理图操作的工具,虽然默认是木棍\n\n§b译注:但是其实你想拿末影龙头也是可以的hhh", + "litematica.config.generic.comment.toolItemComponents": "一个数据组件感知版本的 §6[投影操作工具]§r\n设置「Empty」以禁用。\n接收与「/give」命令相同的语法\n(译注:你可以自定义投影操作工具的附魔等性质,比如必须带有 亡灵杀手附魔 的剑才能操作投影,普通的剑不可以)", + "litematica.config.generic.comment.toolItemEnabled": "如果启用该选项,那么你可以使用工具进行原理图操作", + "litematica.config.generic.comment.unhideSchematicVCS": "取消隐藏 Schematic VCS(版本控制系统)菜单按钮,\n并启用热键和 VCS 功能。\n(这之前被称为原理图项目。)\n\n一般来说,你§6不应该§r使用这个功能,\n除非你真的知道它是如何工作的。\n它在一定程度上改变了区域选择、放置和粘贴的工作方式,\n特别是在粘贴时还存在一个区域删除操作。\n\n基本上,这个功能是为更新、修改原理图而设计的,\n它允许你更容易地为同一版本原理图创建多个版本/快照,\n也可以通过先删除当前版本,\n然后粘贴下一个版本来在不同版本之间切换", + "litematica.config.generic.name.areaSelectionsPerWorld": "世界区域选择", + "litematica.config.generic.name.betterRenderOrder": "更好的渲染顺序", + "litematica.config.generic.name.changeSelectedCornerOnMove": "更改角点选择", + "litematica.config.generic.name.cloneAtOriginalPosition": "原位克隆", + "litematica.config.generic.name.commandDisableFeedback": "禁用命令反馈", + "litematica.config.generic.name.commandFillMaxVolume": "最大命令填充体积", + "litematica.config.generic.name.commandFillNoChunkClamp": "命令填充无区块限制", + "litematica.config.generic.name.commandLimitPerTick": "命令限速", + "litematica.config.generic.name.commandNameClone": "Clone 命令名", + "litematica.config.generic.name.commandNameFill": "Fill 命令名", + "litematica.config.generic.name.commandNameSetblock": "Setblock 命令名", + "litematica.config.generic.name.commandNameSummon": "Summon 命令名", + "litematica.config.generic.name.commandTaskInterval": "任务间隔", + "litematica.config.generic.name.commandUseWorldEdit": "使用 WorldEdit 指令", + "litematica.config.generic.name.customSchematicBaseDirectory": "自定义目录路径", + "litematica.config.generic.name.customSchematicBaseDirectoryEnabled": "自定义原理图目录", + "litematica.config.generic.name.datafixerDefaultSchema": "默认数据修复", + "litematica.config.generic.name.datafixerMode": "数据修复模式", + "litematica.config.generic.name.debugLogging": "调试日志", + "litematica.config.generic.name.easyPlaceClickAdjacent": "简单放置点击相邻方块", + "litematica.config.generic.name.easyPlaceFirst": "简单放置最近块", + "litematica.config.generic.name.easyPlaceHoldEnabled": "简单放置状态", + "litematica.config.generic.name.easyPlaceMode": "简单放置模式", + "litematica.config.generic.name.easyPlacePostRewrite": "简单放置模式重写", + "litematica.config.generic.name.easyPlaceProtocolVersion": "简单放置协议模式", + "litematica.config.generic.name.easyPlaceSinglePlayerHandling": "单机简单放置", + "litematica.config.generic.name.easyPlaceSwapInterval": "简单放置延迟", + "litematica.config.generic.name.easyPlaceSwingHand": "简单放置挥手动作", + "litematica.config.generic.name.easyPlaceVanillaReach": "简单放置使用原版手长", + "litematica.config.generic.name.entityDataSync": "实体数据同步", + "litematica.config.generic.name.entityDataSyncBackup": "备用实体数据同步", + "litematica.config.generic.name.entityDataSyncCacheTimeout": "实体数据同步缓存超时", + "litematica.config.generic.name.entityDataSyncLoadNbt": "实体数据同步加载 NBT", + "litematica.config.generic.name.executeRequireHoldingTool": "执行操作需要工具", + "litematica.config.generic.name.fixChestMirror": "大箱子修复", + "litematica.config.generic.name.fixRailRotation": "铁路旋转修复", + "litematica.config.generic.name.generateLowercaseNames": "命令建议", + "litematica.config.generic.name.highlightBlockInInventory": "物品栏物品高亮提示", + "litematica.config.generic.name.itemUsePacketCheckBypass": "物品使用校验", + "litematica.config.generic.name.layerModeFollowsPlayer": "图层显示跟随玩家", + "litematica.config.generic.name.loadEntireSchematics": "加载全部投影", + "litematica.config.generic.name.materialListIgnoreState": "材料列表忽略状态", + "litematica.config.generic.name.pasteAlwaysUseFill": "粘贴总是使用 Fill", + "litematica.config.generic.name.pasteIgnoreBlockEntitiesEntirely": "粘贴忽略实体方块", + "litematica.config.generic.name.pasteIgnoreBlockEntitiesFromFill": "Fill 忽略实体方块", + "litematica.config.generic.name.pasteIgnoreCommandLimitWithNbtRestore": "粘贴忽略命令限制与 NBT 恢复", + "litematica.config.generic.name.pasteIgnoreEntities": "粘贴忽略实体", + "litematica.config.generic.name.pasteIgnoreInventories": "粘贴忽略容器内容物", + "litematica.config.generic.name.pasteNbtRestoreBehavior": "NBT 数据恢复", + "litematica.config.generic.name.pasteReplaceBehavior": "粘贴替换模式", + "litematica.config.generic.name.pasteToMcFunctionFiles": "粘贴原理图转为命令", + "litematica.config.generic.name.pasteUseFillCommand": "粘贴使用 Fill 命令", + "litematica.config.generic.name.pasteUsingCommandsInSp": "单人模式使用命令粘贴", + "litematica.config.generic.name.pasteUsingServux": "粘贴使用 Servux", + "litematica.config.generic.name.pickBlockAvoidDamageable": "避免替换耐久物品", + "litematica.config.generic.name.pickBlockAvoidTools": "避免替换工具", + "litematica.config.generic.name.pickBlockEnabled": "启用方块选取", + "litematica.config.generic.name.pickBlockIgnoreNbt": "拾取方块忽略 NBT", + "litematica.config.generic.name.pickBlockShulkers": "从潜影盒选取方块", + "litematica.config.generic.name.pickBlockableSlots": "快捷选择栏位", + "litematica.config.generic.name.placementReplaceBehavior": "粘贴替换模式优化", + "litematica.config.generic.name.placementRestriction": "限制放置", + "litematica.config.generic.name.placementRestrictionWarn": "放置限制警告", + "litematica.config.generic.name.renderMaterialListInGuis": "在 GUI 中显示物品材质", + "litematica.config.generic.name.renderThreadNoTimeout": "移除渲染超时", + "litematica.config.generic.name.selectionCornersMode": "选择选区模式", + "litematica.config.generic.name.serverNbtRequestRate": "服务器 NBT 请求速率", + "litematica.config.generic.name.signTextPaste": "粘贴告示牌文本", + "litematica.config.generic.name.toolItem": "投影操作工具", + "litematica.config.generic.name.toolItemComponents": "自定义投影操作工具组件", + "litematica.config.generic.name.toolItemEnabled": "启用投影操作工具", + "litematica.config.generic.name.unhideSchematicVCS": "不隐藏原理图版本控制系统", + "litematica.config.generic.prettyName.easyPlaceMode": "简单放置模式", + "litematica.config.generic.prettyName.pickBlockEnabled": "方块选取", + "litematica.config.generic.prettyName.placementRestriction": "放置位置限制", + "litematica.config.generic.prettyName.signTextPaste": "粘贴告示牌文本", + "litematica.config.generic.prettyName.toolItemEnabled": "投影操作工具", + "litematica.config.hotkeys.comment.addSelectionBox": "在当前位置添加一个新的选区(位置 1)", + "litematica.config.hotkeys.comment.cloneSelection": "快速克隆当前选定的区域\n这将创建一个仅存在于内存中的原理图文件,放置该原理图,并选中它,同时将工具模式切换到粘贴模式", + "litematica.config.hotkeys.comment.deleteSelectionBox": "删除当前选区", + "litematica.config.hotkeys.comment.easyPlaceToggle": "允许玩家快速的切换 §6[简单放置模式]§r", + "litematica.config.hotkeys.comment.easyPlaceUseKey": "当启用 §6[简单放置模式]§r 时,此快捷键用于放置方块", + "litematica.config.hotkeys.comment.executeOperation": "使用当前的选择或放置,执行当前选定的工具操作,例如填充、替换、粘贴原理图等模式", + "litematica.config.hotkeys.comment.invertGhostBlockRenderState": "当按住此按键时,调整原理图/半透明方块的渲染状态", + "litematica.config.hotkeys.comment.invertOverlayRenderState": "当按住此按键时,调整原理图错误渲染器的渲染状态", + "litematica.config.hotkeys.comment.layerModeNext": "切换为下一个渲染模式", + "litematica.config.hotkeys.comment.layerModePrevious": "切换为上一个渲染模式", + "litematica.config.hotkeys.comment.layerNext": "将渲染的图层向上移动一层", + "litematica.config.hotkeys.comment.layerPrevious": "将渲染的图层向下移动一层", + "litematica.config.hotkeys.comment.layerSetHere": "将渲染层的初始位置设定为玩家当前位置", + "litematica.config.hotkeys.comment.moveEntireSelection": "移动整个选区至玩家所在的当前位置", + "litematica.config.hotkeys.comment.nudgeSelectionNegative": "向面向方向前移选区位置,其效果与 Alt + 鼠标滚轮效果类似", + "litematica.config.hotkeys.comment.nudgeSelectionPositive": "向面向方向后移选区位置,其效果与 Alt + 鼠标滚轮效果类似", + "litematica.config.hotkeys.comment.openGuiAreaSettings": "打开当前选区的区域设置 GUI 界面", + "litematica.config.hotkeys.comment.openGuiLoadedSchematics": "打开原理图加载的 GUI 界面", + "litematica.config.hotkeys.comment.openGuiMainMenu": "打开 Litematica 的主界面菜单", + "litematica.config.hotkeys.comment.openGuiMaterialList": "打开当前选择的投影材料列表 GUI ", + "litematica.config.hotkeys.comment.openGuiPlacementSettings": "打开当前选区或其子区域的配置原理图放置 GUI ", + "litematica.config.hotkeys.comment.openGuiSchematicPlacements": "打开管理原理图放置 GUI ", + "litematica.config.hotkeys.comment.openGuiSchematicProjects": "打开原理图工程文件夹 GUI ", + "litematica.config.hotkeys.comment.openGuiSchematicVerifier": "打开当前选定的原理图的原理图验证器 GUI ", + "litematica.config.hotkeys.comment.openGuiSelectionManager": "打开区域选择管理器的 GUI ", + "litematica.config.hotkeys.comment.openGuiSettings": "打开投影配置菜单的 GUI ", + "litematica.config.hotkeys.comment.operationModeChangeModifier": "快速修改模式,当玩家手 [投影操作工具] 时。\n玩家可以按住该按键滚动滚轮快速调整模式", + "litematica.config.hotkeys.comment.pickBlockFirst": "该按键可以选中指向的表面方块,\n并将将其切换至手中", + "litematica.config.hotkeys.comment.pickBlockLast": "该按键可以选中当前可以放置的最远的方块\n当然这得看你对准了哪个面", + "litematica.config.hotkeys.comment.pickBlockToggle": "在通用配置当中快速关闭或开启 [方块选取] 的快捷键\n\n如果它们产生了功能冲突,这是一种快速切换其模式的方法", + "litematica.config.hotkeys.comment.renderInfoOverlay": "按下时显示在原理图中和实际世界中你看向的方块的状态信息,包括类型和方块属性。\n如果不设置,那么将无需按下任何键永远显示", + "litematica.config.hotkeys.comment.renderOverlayThroughBlocks": "该快捷键将用于允许 [原理图错误渲染器] 穿过方块渲染\n这是一个更快捷的方式,开启后与 §6[视觉]§r 选项中的 §6[原理图透视]§r 拥有相同的功能", + "litematica.config.hotkeys.comment.rerenderSchematic": "使用该快捷键重载原理图,而不需要使用 F3 + A 刷新区块", + "litematica.config.hotkeys.comment.saveAreaAsInMemorySchematic": "将当前选中区域的原理图保存于内存当中", + "litematica.config.hotkeys.comment.saveAreaAsSchematicToFile": "将当前选中区域的原理图保存于文件当中", + "litematica.config.hotkeys.comment.schematicEditBreakAllExcept": "在重建原理图的模式当中\n按住该键可使得玩家在原理图当中仅保留指定的选中方块\n这也就意味着除了你选中的方块,其他投影方块将被删除", + "litematica.config.hotkeys.comment.schematicEditBreakPlaceAll": "在重建原理图模式当中\n按住该按键可以删除所有同类方块", + "litematica.config.hotkeys.comment.schematicEditBreakPlaceDirection": "在重建原理图的模式当中\n按住该键可添加或删除原理图内指定方向的相同方块\n如果使用添加,该方块会填满该方向的所有空位", + "litematica.config.hotkeys.comment.schematicEditReplaceAll": "在重建原理图的模式当中\n按住该键可使用手中方块替换原理图内的相同方块", + "litematica.config.hotkeys.comment.schematicEditReplaceBlock": "在重建原理图的模式当中\n按住该键可使用手中方块替换原理图内的相同类型方块\n然而这个类型很模糊", + "litematica.config.hotkeys.comment.schematicEditReplaceDirection": "在重建原理图的模式当中\n按住该键可使用手中方块替换原理图内指定方向的相同方块", + "litematica.config.hotkeys.comment.schematicPlacementMirror": "按下该键时原理图会镜像翻转", + "litematica.config.hotkeys.comment.schematicPlacementRotation": "按下该键时将原理图顺时针旋转 90 度", + "litematica.config.hotkeys.comment.schematicVersionCycleModifier": "按住该键滚动滚轮可以选择投影的版本", + "litematica.config.hotkeys.comment.schematicVersionCycleNext": "在版本控制工具模式下,循环到上一个投影版本的热键", + "litematica.config.hotkeys.comment.schematicVersionCyclePrevious": "用于在版本控制工具模式下切换到下一个结构图版本的快捷键", + "litematica.config.hotkeys.comment.selectionGrabModifier": "按住快捷键,抓取选择框角点,\n移动选区(模式 7 移动)", + "litematica.config.hotkeys.comment.selectionGrow": "点击快捷键后,自动扩展 选择区域 以包含任何相邻或对角连接方块\n\n§b译注:然而它直接选中了我能看到的整个地图 384*72*384 ——来自 ZMDF 的吐槽", + "litematica.config.hotkeys.comment.selectionGrowModifier": "按住快捷键,滑动滚轮\n可以延长体对角线的长度", + "litematica.config.hotkeys.comment.selectionModeCycle": "在选区模式当中切换角点或展开模式", + "litematica.config.hotkeys.comment.selectionNudgeModifier": "按住快捷键,滑动滚轮\n可以移动选区位置", + "litematica.config.hotkeys.comment.selectionShrink": "用于缩小选择框的操作快捷键,使其在任何一侧都没有空白区域", + "litematica.config.hotkeys.comment.setAreaOrigin": "设置/移动当前区域选择的原点到玩家的位置", + "litematica.config.hotkeys.comment.setSelectionBoxPosition1": "将选区第一个角点的位置设置为玩家当前位置", + "litematica.config.hotkeys.comment.setSelectionBoxPosition2": "将选区第二个角点的位置设置为玩家当前位置", + "litematica.config.hotkeys.comment.toggleAllRendering": "打开或关闭所有的渲染", + "litematica.config.hotkeys.comment.toggleAreaSelectionBoxesRendering": "切换选择区域的框线是否显示的快捷键", + "litematica.config.hotkeys.comment.toggleInfoOverlayRendering": "切换方块信息是否显示的快捷键", + "litematica.config.hotkeys.comment.toggleOverlayOutlineRendering": "切换是否显示原理图错误渲染器边框的快捷键", + "litematica.config.hotkeys.comment.toggleOverlayRendering": "切换投影区域的方块是否显示方块边框及方块色差的快捷键", + "litematica.config.hotkeys.comment.toggleOverlaySideRendering": "切换是否显示原理图错误渲染器侧边的快捷键", + "litematica.config.hotkeys.comment.togglePlacementBoxesRendering": "切换投影范围框线是否显示的快捷键", + "litematica.config.hotkeys.comment.togglePlacementRestriction": "切换放置位置限制模式的快捷键", + "litematica.config.hotkeys.comment.toggleSchematicBlockRendering": "切换投影方块的贴图是否显示的快捷键", + "litematica.config.hotkeys.comment.toggleSchematicRendering": "切换投影区域内方块是否显示的快捷键", + "litematica.config.hotkeys.comment.toggleSignTextPaste": "切换是否粘贴告示牌文本的快捷键(在通用类别中)", + "litematica.config.hotkeys.comment.toggleTranslucentRendering": "切换投影方块是否为半透明或透明的快捷键", + "litematica.config.hotkeys.comment.toggleVerifierOverlayRendering": "切换原理图错误渲染器是否启用", + "litematica.config.hotkeys.comment.toolEnabledToggle": "切换是否开启 [投影操作工具](默认为木棍)的快捷键", + "litematica.config.hotkeys.comment.toolPlaceCorner1": "当手持范围 [投影操作工具](默认为木棍)时放置角点 1", + "litematica.config.hotkeys.comment.toolPlaceCorner2": "当手持范围 [投影操作工具](默认为木棍)时放置角点 2", + "litematica.config.hotkeys.comment.toolSelectElements": "当手持范围 [投影操作工具](默认为木棍)时指向角点或区域将选中角点或区域", + "litematica.config.hotkeys.comment.toolSelectModifierBlock1": "使用 §6[区域选择]§r 快捷键时需要按住的修饰键\n用于选择某些工具模式中使用的主要方块类型\n(§4适用于替换填充等功能§r)", + "litematica.config.hotkeys.comment.toolSelectModifierBlock2": "使用 §6[区域选择]§r 快捷键时需要按住的修饰键\n用于选择某些工具模式中使用的主要方块类型\n(§4适用于替换填充等功能§r)", + "litematica.config.hotkeys.comment.unloadCurrentSchematic": "卸载当前选定放置点的结构图,从而移除所有由其创建的放置点", + "litematica.config.hotkeys.name.addSelectionBox": "添加选区", + "litematica.config.hotkeys.name.cloneSelection": "克隆选区", + "litematica.config.hotkeys.name.deleteSelectionBox": "删除选区", + "litematica.config.hotkeys.name.easyPlaceToggle": "简单放置模式切换", + "litematica.config.hotkeys.name.easyPlaceUseKey": "简单放置快捷键", + "litematica.config.hotkeys.name.executeOperation": "执行操作", + "litematica.config.hotkeys.name.invertGhostBlockRenderState": "调整半透明方块渲染状态", + "litematica.config.hotkeys.name.invertOverlayRenderState": "调整原理图错误渲染器的渲染状态", + "litematica.config.hotkeys.name.layerModeNext": "下一渲染模式", + "litematica.config.hotkeys.name.layerModePrevious": "上一渲染模式", + "litematica.config.hotkeys.name.layerNext": "下一层", + "litematica.config.hotkeys.name.layerPrevious": "上一层", + "litematica.config.hotkeys.name.layerSetHere": "设置初始层", + "litematica.config.hotkeys.name.moveEntireSelection": "移动整个选区", + "litematica.config.hotkeys.name.nudgeSelectionNegative": "反向推动选区", + "litematica.config.hotkeys.name.nudgeSelectionPositive": "正向推动选区", + "litematica.config.hotkeys.name.openGuiAreaSettings": "区域编辑器", + "litematica.config.hotkeys.name.openGuiLoadedSchematics": "原理图加载", + "litematica.config.hotkeys.name.openGuiMainMenu": "主界面", + "litematica.config.hotkeys.name.openGuiMaterialList": "材料列表", + "litematica.config.hotkeys.name.openGuiPlacementSettings": "配置原理图放置", + "litematica.config.hotkeys.name.openGuiSchematicPlacements": "管理原理图放置", + "litematica.config.hotkeys.name.openGuiSchematicProjects": "原理图文件夹", + "litematica.config.hotkeys.name.openGuiSchematicVerifier": "原理图验证器", + "litematica.config.hotkeys.name.openGuiSelectionManager": "区域选择管理器", + "litematica.config.hotkeys.name.openGuiSettings": "配置菜单", + "litematica.config.hotkeys.name.operationModeChangeModifier": "模式选择", + "litematica.config.hotkeys.name.pickBlockFirst": "选取当前方块", + "litematica.config.hotkeys.name.pickBlockLast": "选取最远方块", + "litematica.config.hotkeys.name.pickBlockToggle": "选取方块开关", + "litematica.config.hotkeys.name.renderInfoOverlay": "方块信息", + "litematica.config.hotkeys.name.renderOverlayThroughBlocks": "原理图透视渲染", + "litematica.config.hotkeys.name.rerenderSchematic": "重载渲染图", + "litematica.config.hotkeys.name.saveAreaAsInMemorySchematic": "将原理图存至内存", + "litematica.config.hotkeys.name.saveAreaAsSchematicToFile": "将原理图存至文件", + "litematica.config.hotkeys.name.schematicEditBreakAllExcept": "删除其他方块", + "litematica.config.hotkeys.name.schematicEditBreakPlaceAll": "删除相同方块", + "litematica.config.hotkeys.name.schematicEditBreakPlaceDirection": "相同方块线性增删", + "litematica.config.hotkeys.name.schematicEditReplaceAll": "替换同类方块", + "litematica.config.hotkeys.name.schematicEditReplaceBlock": "替换其他方块", + "litematica.config.hotkeys.name.schematicEditReplaceDirection": "同方块线性替换", + "litematica.config.hotkeys.name.schematicPlacementMirror": "镜像投影图", + "litematica.config.hotkeys.name.schematicPlacementRotation": "旋转投影图", + "litematica.config.hotkeys.name.schematicVersionCycleModifier": "投影版本选择", + "litematica.config.hotkeys.name.schematicVersionCycleNext": "下一个投影版本", + "litematica.config.hotkeys.name.schematicVersionCyclePrevious": "上一个投影版本", + "litematica.config.hotkeys.name.selectionGrabModifier": "移动选区", + "litematica.config.hotkeys.name.selectionGrow": "扩大选区", + "litematica.config.hotkeys.name.selectionGrowModifier": "扩大选区调节器", + "litematica.config.hotkeys.name.selectionModeCycle": "选区模式选择", + "litematica.config.hotkeys.name.selectionNudgeModifier": "位移调节器", + "litematica.config.hotkeys.name.selectionShrink": "精简选框", + "litematica.config.hotkeys.name.setAreaOrigin": "设置初始角点", + "litematica.config.hotkeys.name.setSelectionBoxPosition1": "设置角点 1", + "litematica.config.hotkeys.name.setSelectionBoxPosition2": "设置角点 2", + "litematica.config.hotkeys.name.toggleAllRendering": "切换全部渲染", + "litematica.config.hotkeys.name.toggleAreaSelectionBoxesRendering": "切换区域选框渲染", + "litematica.config.hotkeys.name.toggleInfoOverlayRendering": "切换方块信息渲染", + "litematica.config.hotkeys.name.toggleOverlayOutlineRendering": "切换原理图错误渲染器的边框渲染", + "litematica.config.hotkeys.name.toggleOverlayRendering": "切换投影方块渲染", + "litematica.config.hotkeys.name.toggleOverlaySideRendering": "切换原理图错误渲染器的侧边渲染", + "litematica.config.hotkeys.name.togglePlacementBoxesRendering": "切换投影区域框线显示", + "litematica.config.hotkeys.name.togglePlacementRestriction": "位置限制", + "litematica.config.hotkeys.name.toggleSchematicBlockRendering": "切换投影方块渲染", + "litematica.config.hotkeys.name.toggleSchematicRendering": "切换投影方块渲染", + "litematica.config.hotkeys.name.toggleSignTextPaste": "切换告示牌文本粘贴", + "litematica.config.hotkeys.name.toggleTranslucentRendering": "切换方块半透明化", + "litematica.config.hotkeys.name.toggleVerifierOverlayRendering": "切换原理图验证渲染", + "litematica.config.hotkeys.name.toolEnabledToggle": "工具切换", + "litematica.config.hotkeys.name.toolPlaceCorner1": "角点 1 放置", + "litematica.config.hotkeys.name.toolPlaceCorner2": "角点 2 放置", + "litematica.config.hotkeys.name.toolSelectElements": "区域选择", + "litematica.config.hotkeys.name.toolSelectModifierBlock1": "主方块选择", + "litematica.config.hotkeys.name.toolSelectModifierBlock2": "副方块选择", + "litematica.config.hotkeys.name.unloadCurrentSchematic": "卸载当前原理图", + "litematica.config.hotkeys.prettyName.toggleAllRendering": "全部渲染", + "litematica.config.info_overlays.comment.blockInfoLinesAlignment": "方块信息的显示位置", + "litematica.config.info_overlays.comment.blockInfoLinesEnabled": "如果开启该功能,MiniHUD 样式的方块信息显示将默认位于屏幕右上角", + "litematica.config.info_overlays.comment.blockInfoLinesFontScale": "方块信息的字体大小", + "litematica.config.info_overlays.comment.blockInfoLinesOffsetX": "方块信息相对于屏幕边缘的 X 轴偏移量", + "litematica.config.info_overlays.comment.blockInfoLinesOffsetY": "方块信息相对于屏幕边缘的 Y 轴偏移量", + "litematica.config.info_overlays.comment.blockInfoOverlayAlignment": "方块提示弹窗的显示位置", + "litematica.config.info_overlays.comment.blockInfoOverlayEnabled": "启用方块信息弹窗,以图形方式显示方块贴图\n可以在投影放错时,为您提供投影原本方块的信息", + "litematica.config.info_overlays.comment.blockInfoOverlayOffsetY": "方块提示弹窗相对于屏幕边缘的 Y 轴偏移量", + "litematica.config.info_overlays.comment.infoHudAlignment": "信息 HUD 的显示位置\n包括材料列表、原理图验证等界面", + "litematica.config.info_overlays.comment.infoHudMaxLines": "材料 HUD 一次显示的最大行数", + "litematica.config.info_overlays.comment.infoHudOffsetX": "工具 HUD 相对于屏幕边缘的 X 轴偏移量", + "litematica.config.info_overlays.comment.infoHudOffsetY": "材料 HUD 相对于屏幕边缘的 Y 轴偏移量", + "litematica.config.info_overlays.comment.infoHudScale": "材料 HUD 的缩放大小", + "litematica.config.info_overlays.comment.infoOverlaysTargetFluids": "启用后,方块信息叠加时\n将能够焦点定位到流体而不是穿过它们", + "litematica.config.info_overlays.comment.materialListHudMaxLines": "控制材料 HUD 的最大行数", + "litematica.config.info_overlays.comment.materialListHudScale": "控制材料 HUD 的缩放大小", + "litematica.config.info_overlays.comment.statusInfoHud": "启用状态信息 HUD 显示,它会显示一些状态信息,比如当前的图层模式和渲染器的状态", + "litematica.config.info_overlays.comment.statusInfoHudAuto": "当需要时,允许自动暂时开启状态信息 HUD\n例如当创建一个位置或者禁用渲染时", + "litematica.config.info_overlays.comment.toolHudAlignment": "当你手持 [投影操作工具](默认是木棍)时,投影操作 HUD 的位置 ", + "litematica.config.info_overlays.comment.toolHudOffsetX": "信息 HUD 相对于屏幕边缘的 X 轴偏移量", + "litematica.config.info_overlays.comment.toolHudOffsetY": "信息 HUD 相对于屏幕边缘的 Y 轴偏移量", + "litematica.config.info_overlays.comment.toolHudScale": "控制工具 HUD 的文本缩放大小", + "litematica.config.info_overlays.comment.verifierErrorHilightAlpha": "错误标记框侧面的透明度值", + "litematica.config.info_overlays.comment.verifierErrorHilightMaxPositions": "在打开原理图验证程序对当前放置进行验证后,\n点击验证当中出现问题的方块时,\n错误的方块在透视状态下所显示的最大数量", + "litematica.config.info_overlays.comment.verifierOverlayEnabled": "启用原理图验证渲染", + "litematica.config.info_overlays.comment.warnDisabledRendering": "当加载一个新的原理图或创建一个新的位置时,\n是否应该显示关于该层的一些警告消息", + "litematica.config.info_overlays.name.blockInfoLinesAlignment": "方块信息位置", + "litematica.config.info_overlays.name.blockInfoLinesEnabled": "启用方块信息", + "litematica.config.info_overlays.name.blockInfoLinesFontScale": "方块信息大小", + "litematica.config.info_overlays.name.blockInfoLinesOffsetX": "方块信息位置横移", + "litematica.config.info_overlays.name.blockInfoLinesOffsetY": "方块信息位置纵移", + "litematica.config.info_overlays.name.blockInfoOverlayAlignment": "方块提示弹窗位置", + "litematica.config.info_overlays.name.blockInfoOverlayEnabled": "启用方块提示", + "litematica.config.info_overlays.name.blockInfoOverlayOffsetY": "方块提示弹窗位置纵移", + "litematica.config.info_overlays.name.infoHudAlignment": "材料 HUD 位置", + "litematica.config.info_overlays.name.infoHudMaxLines": "材料 HUD 行数", + "litematica.config.info_overlays.name.infoHudOffsetX": "材料 HUD 位置横移", + "litematica.config.info_overlays.name.infoHudOffsetY": "材料 HUD 位置纵移", + "litematica.config.info_overlays.name.infoHudScale": "材料 HUD 缩放", + "litematica.config.info_overlays.name.infoOverlaysTargetFluids": "显示流体信息", + "litematica.config.info_overlays.name.materialListHudMaxLines": "材料 HUD 最大行数", + "litematica.config.info_overlays.name.materialListHudScale": "材料 HUD 缩放", + "litematica.config.info_overlays.name.statusInfoHud": "状态信息 HUD", + "litematica.config.info_overlays.name.statusInfoHudAuto": "状态 HUD 自动显示", + "litematica.config.info_overlays.name.toolHudAlignment": "工具 HUD 位置", + "litematica.config.info_overlays.name.toolHudOffsetX": "工具 HUD 位置横移", + "litematica.config.info_overlays.name.toolHudOffsetY": "工具 HUD 位置纵移", + "litematica.config.info_overlays.name.toolHudScale": "工具 HUD 缩放", + "litematica.config.info_overlays.name.verifierErrorHilightAlpha": "高亮验证错误方块", + "litematica.config.info_overlays.name.verifierErrorHilightMaxPositions": "验证错误方块高亮上限", + "litematica.config.info_overlays.name.verifierOverlayEnabled": "原理图验证渲染", + "litematica.config.info_overlays.name.warnDisabledRendering": "关闭警告信息", + "litematica.config.info_overlays.prettyName.blockInfoOverlayEnabled": "显示方块信息", + "litematica.config.info_overlays.prettyName.verifierOverlayEnabled": "原理图验证渲染", + "litematica.config.visuals.comment.enableAreaSelectionBoxesRendering": "该选项可以切换是否显示选区的边框", + "litematica.config.visuals.comment.enablePlacementBoxesRendering": "该选项可以切换是否显示投影区域的边框", + "litematica.config.visuals.comment.enableRendering": "渲染的主开关,该选项可切换所有渲染是否开启", + "litematica.config.visuals.comment.enableSchematicBlocksRendering": "启用原理图方块渲染\n禁用后你将只能看见原理图错误渲染器,看不见具体的方块", + "litematica.config.visuals.comment.enableSchematicFluidRendering": "开启原理图的流体渲染\n关闭这个功能可以让你更容易查看被流体覆盖方块和边框\n此功能还会移除液体所在区域的原理图错误渲染器显示", + "litematica.config.visuals.comment.enableSchematicOverlay": "原理图错误渲染器的主开关", + "litematica.config.visuals.comment.enableSchematicRendering": "该选项可以切换是否显示原理图和原理图错误渲染器", + "litematica.config.visuals.comment.ghostBlockAlpha": "当方块渲染为半透明时,半透明方块的透明度\n§6注意:§7您还需要单独启用§6 [方块半透明化]§7!", + "litematica.config.visuals.comment.ignoreExistingFluids": "启用后,任何液体方块将不会被视为 [额外方块] 或 [错误方块],即使结构文件中显示的是空气或其他方块\n这让您可以更加方便的在水下建造\n注意:您很可能还得同时启用 §6[渲染重叠方块]§r,以允许方块在流体中渲染", + "litematica.config.visuals.comment.overlayReducedInnerSides": "如果启用,可以使得投影内方块接触的侧面不被显示\n有两个优点\n-1. 首先减少了投影的渲染工作量\n-2. 在投影内部时,内部的杂色会变淡\n\n§b译注:虽然默认是关闭但建议开启 - ZMDF", + "litematica.config.visuals.comment.placementBoxSideAlpha": "子区域边框侧面的透明度", + "litematica.config.visuals.comment.renderAOModernEnable": "启用一个新的环境光遮蔽处理器,能够修复阴影的显示错误。\n但它也可能导致投影图层出现来自相邻图层的阴影,这在你建造时可能会分散注意力", + "litematica.config.visuals.comment.renderAreaSelectionBoxSides": "启用后,区域选择边框的侧面将被渲染", + "litematica.config.visuals.comment.renderBlocksAsTranslucent": "启用后,投影原理图内的方块展示将由\n不透明变为半透明状态", + "litematica.config.visuals.comment.renderCollidingSchematicBlocks": "启用后,当客户端世界中存在错误的方块时\n投影原理图内的方块仍然会进行显示\n\n当您试图在一些有水或着雪层的地方建造时会很有用", + "litematica.config.visuals.comment.renderErrorMarkerConnections": "启用后,在验证原理图时,高亮方块之间会有连接线\n这是一些玩家遇到的渲染错误,但部分玩家喜欢这个效果并要求保留,所以此选项「恢复」了该功能", + "litematica.config.visuals.comment.renderErrorMarkerSides": "启用后,用户在使用验证器验证原理图是否正确后,\n当你在验证器内选中了错误方块\n它的展示方式将不仅仅标明颜色,\n还会标明它的贴图(便于用户知道错误的方块是什么)", + "litematica.config.visuals.comment.renderPlacementBoxSides": "启用后,[投影区域] 的 [子区域] 会显示侧面颜色\n\n§b译注:就是侧面将显示默认的选区颜色,影响视线——ZMDF", + "litematica.config.visuals.comment.renderPlacementEnclosingBox": "启用后,会在 [投影区域] 中的所有 [子区域] 周围呈现一个封闭框", + "litematica.config.visuals.comment.renderPlacementEnclosingBoxSides": "启用后,则在投影中的所有 [子区域] 周围的封闭框会渲染侧面", + "litematica.config.visuals.comment.renderSchematicMaxThreads": "最大结构图世界渲染线程大小\n这将直接影响整体多线程性能\n\n§6请谨慎使用!!此设置只会在您退出游戏并重新加入后生效", + "litematica.config.visuals.comment.renderTranslucentBlockInnerSides": "如果启用该选项,则投影内所有方块的内表面将变为透明\n需要开启 §6[方块半透明化]§r\n", + "litematica.config.visuals.comment.schematicOverlayEnableOutlines": "启用后,将会渲染投影原理图方块边框的框线", + "litematica.config.visuals.comment.schematicOverlayEnableResorting": "启用 投影原理图错误渲染器 的透明排序功能", + "litematica.config.visuals.comment.schematicOverlayEnableSides": "启用后,将会渲染投影原理图 半透明方块 的外表面", + "litematica.config.visuals.comment.schematicOverlayModelOutline": "启用后,[原理图错误渲染器] 的渲染将使用块模型的四边形/顶点,而不是传统的覆盖一整个方块\n(主要针对不完整方块)", + "litematica.config.visuals.comment.schematicOverlayModelSides": "如果启用,[原理图错误渲染器] 的渲染将使用方块模型的四边形/顶点,\n而不是传统的覆盖一整个方块", + "litematica.config.visuals.comment.schematicOverlayOutlineWidth": "投影原理图中方块轮廓线的宽度设置", + "litematica.config.visuals.comment.schematicOverlayOutlineWidthThrough": "投影原理图中透视方块轮廓线的宽度设置", + "litematica.config.visuals.comment.schematicOverlayRenderThroughBlocks": "启用后,[原理图错误渲染器] 将穿过方块进行渲染\n在您完成建筑后,这可能会更容易查看建筑中的错误", + "litematica.config.visuals.comment.schematicOverlayTypeExtra": "当开启了原理图透视后,开启该选项将显示多余的方块", + "litematica.config.visuals.comment.schematicOverlayTypeMissing": "当开启了原理图透视后,开启该选项将显示缺失的方块", + "litematica.config.visuals.comment.schematicOverlayTypeWrongBlock": "当开启了原理图透视后,开启该选项将显示错误的方块", + "litematica.config.visuals.comment.schematicOverlayTypeWrongState": "当开启了原理图透视后,开启该选项将显示错误状态的方块", + "litematica.config.visuals.comment.schematicVerifierUseBlockModels": "强制在原理图验证的结果列表中为所有内容使用方块模型,\n对于含有有物品的方块会使用物品模型,\n没有对应物品的方块会使用方块模型,\n以及用于查看花盆中的植物", + "litematica.config.visuals.name.enableAreaSelectionBoxesRendering": "启用选区边框", + "litematica.config.visuals.name.enablePlacementBoxesRendering": "启用投影边框", + "litematica.config.visuals.name.enableRendering": "开启全部渲染", + "litematica.config.visuals.name.enableSchematicBlocksRendering": "启用投影方块渲染", + "litematica.config.visuals.name.enableSchematicFluidRendering": "启用流体渲染", + "litematica.config.visuals.name.enableSchematicOverlay": "启用原理图错误渲染器", + "litematica.config.visuals.name.enableSchematicRendering": "启用投影渲染", + "litematica.config.visuals.name.ghostBlockAlpha": "方块透明度", + "litematica.config.visuals.name.ignoreExistingFluids": "忽略投影内液体", + "litematica.config.visuals.name.overlayReducedInnerSides": "减少内侧面渲染", + "litematica.config.visuals.name.placementBoxSideAlpha": "投影区域边框侧面透明度", + "litematica.config.visuals.name.renderAOModernEnable": "启用环境光遮蔽处理器", + "litematica.config.visuals.name.renderAreaSelectionBoxSides": "选择区域边框侧面渲染", + "litematica.config.visuals.name.renderBlocksAsTranslucent": "方块半透明化", + "litematica.config.visuals.name.renderCollidingSchematicBlocks": "渲染重叠方块", + "litematica.config.visuals.name.renderErrorMarkerConnections": "验证器错误连线", + "litematica.config.visuals.name.renderErrorMarkerSides": "验证器错误显示", + "litematica.config.visuals.name.renderPlacementBoxSides": "渲染投影区域边框", + "litematica.config.visuals.name.renderPlacementEnclosingBox": "渲染投影区域封闭边框", + "litematica.config.visuals.name.renderPlacementEnclosingBoxSides": "渲染投影区域封闭边框侧面", + "litematica.config.visuals.name.renderSchematicMaxThreads": "渲染投影最大线程", + "litematica.config.visuals.name.renderTranslucentBlockInnerSides": "渲染半透明方块内表面", + "litematica.config.visuals.name.schematicOverlayEnableOutlines": "原理图错误渲染框线", + "litematica.config.visuals.name.schematicOverlayEnableResorting": "原理图错误渲染器半透明重排", + "litematica.config.visuals.name.schematicOverlayEnableSides": "原理图错误渲染侧面", + "litematica.config.visuals.name.schematicOverlayModelOutline": "原理图错误渲染模型轮廓", + "litematica.config.visuals.name.schematicOverlayModelSides": "原理图错误渲染模型边缘", + "litematica.config.visuals.name.schematicOverlayOutlineWidth": "原理图错误渲染轮廓线宽度", + "litematica.config.visuals.name.schematicOverlayOutlineWidthThrough": "原理图错误渲染轮廓线透视宽度", + "litematica.config.visuals.name.schematicOverlayRenderThroughBlocks": "原理图透视", + "litematica.config.visuals.name.schematicOverlayTypeExtra": "原理图透视多余方块", + "litematica.config.visuals.name.schematicOverlayTypeMissing": "原理图透视缺失方块", + "litematica.config.visuals.name.schematicOverlayTypeWrongBlock": "原理图透视错误方块", + "litematica.config.visuals.name.schematicOverlayTypeWrongState": "原理图透视错误状态", + "litematica.config.visuals.name.schematicVerifierUseBlockModels": "原理图验证器使用方块模型", + "litematica.config.visuals.prettyName.enableAreaSelectionBoxesRendering": "选区边框渲染", + "litematica.config.visuals.prettyName.enablePlacementBoxesRendering": "投影边框渲染", + "litematica.config.visuals.prettyName.enableRendering": "全部渲染", + "litematica.config.visuals.prettyName.enableSchematicBlocksRendering": "投影方块显示", + "litematica.config.visuals.prettyName.enableSchematicFluidRendering": "流体渲染", + "litematica.config.visuals.prettyName.enableSchematicOverlay": "原理图错误渲染器", + "litematica.config.visuals.prettyName.enableSchematicRendering": "渲染投影", + "litematica.config.visuals.prettyName.renderAOModernEnable": "环境光遮蔽处理器", + "litematica.config.visuals.prettyName.renderBlocksAsTranslucent": "方块半透明化", + "litematica.config.visuals.prettyName.schematicOverlayEnableOutlines": "原理图错误渲染器启用框线", + "litematica.config.visuals.prettyName.schematicOverlayEnableResorting": "原理图错误渲染器启用半透明重排", + "litematica.config.visuals.prettyName.schematicOverlayEnableSides": "原理图错误渲染器启用侧面", + "litematica.error.area_editor.create_sub_region.exists": "名为「%s」子区域已经存在", + "litematica.error.area_editor.no_selection": "没有活动的区域选择", + "litematica.error.area_editor.open_gui.no_selection": "当前处于选择模式:正常,但当前未选择任何区域", + "litematica.error.area_editor.rename_sub_region.exists": "重命名子区域失败\n已存在同名子区域「%s」", + "litematica.error.area_editor.switch_mode.no_selection": "无法切换到选择模式:正常,因为当前没有选择区域。\n请在区域选择浏览器中选择一个区域或创建一个新的选择", + "litematica.error.area_selection.copy_failed": "无法复制选区", + "litematica.error.area_selection.create_failed": "无法创建一个名为「%s」的新选区文件,因为文件已存在", + "litematica.error.area_selection.failed_to_load": "无法加载选区", + "litematica.error.area_selection.grow.no_sub_region_selected": "没有选中子区域", + "litematica.error.area_selection.no_placement_selected": "没有选中放置的投影!", + "litematica.error.area_selection.rename.already_exists": "错误:已经存在一个文件名为「%s」的区域", + "litematica.error.area_selection.rename.invalid_safe_file_name": "生成的安全文件名无效:「%s」", + "litematica.error.duplicate_schematic_placement": "错误:尝试添加一个已经存在的投影放置", + "litematica.error.generic.creative_mode_only": "这个行为仅在创造模式中可用", + "litematica.error.generic.failed_to_delete_file": "无法删除文件「%s」", + "litematica.error.generic.failed_to_sort_list_of_ignored_states": "无法对忽略状态列表进行排序", + "litematica.error.generic.schematic_world_not_loaded": "原理图世界未被加载", + "litematica.error.schematic.create.no_selections": "没有选择任何有效的区域!", + "litematica.error.schematic_conversion.litematic_to_litematica.failed_to_downgrade_litematic": "无法降级原理图文件", + "litematica.error.schematic_conversion.litematic_to_litematica.failed_to_read_litematic": "无法加载 Litematica 原理图", + "litematica.error.schematic_conversion.schematic_to_litematica.failed_to_create_schematic": "创建 Litematica 原理图失败", + "litematica.error.schematic_conversion.schematic_to_litematica.failed_to_read_schematic": "加载原理图失败", + "litematica.error.schematic_conversion.structure_to_litematica_failed": "无法将结构转换为 Litematica 原理图", + "litematica.error.schematic_load.cant_read_file": "无法读取原理图文件「%s」(文件不存在或权限问题)", + "litematica.error.schematic_load.no_schematic_selected": "未选择原理图文件!", + "litematica.error.schematic_load.no_schematic_version_information": "该原理图没有版本信息,无法被安全加载", + "litematica.error.schematic_load.unsupported_schematic_version": "不支持的或将来版本的原理图「%d」", + "litematica.error.schematic_load.unsupported_type": "未知或不支持的文件类型「%s」", + "litematica.error.schematic_manager.schematic_export.unsupported_type": "只能以其他格式导出 Litematica 原理图", + "litematica.error.schematic_manager.schematic_import.unsupported_type": "所选的原理图类型不支持导入", + "litematica.error.schematic_placements.remove_fail_locked": "位置已锁定\n- 按住 Shift 键强制删除", + "litematica.error.schematic_projects.empty_selection": "空白区域选择(0 个子区域)", + "litematica.error.schematic_projects.failed_to_load_project": "加载项目失败", + "litematica.error.schematic_projects.failed_to_load_schematic": "加载当前版本的原理图失败", + "litematica.error.schematic_projects.failed_to_rename_project_file_exception": "未能将项目文件重命名为「%s」(错误)", + "litematica.error.schematic_projects.failed_to_rename_project_file_exists": "无法将项目重命名为「%s」,文件已存在", + "litematica.error.schematic_projects.in_projects_mode_but_no_project_open": "目前处于原理图项目模式,但目前没有打开的项目", + "litematica.error.schematic_projects.invalid_project_directory": "项目目录无效或不存在", + "litematica.error.schematic_projects.no_project_open": "没有项目被打开", + "litematica.error.schematic_projects.null_player": "玩家为空", + "litematica.error.schematic_projects.project_already_exists": "项目「%s」已经存在", + "litematica.error.schematic_projects.save_already_in_progress": "正在保存", + "litematica.error.schematic_read_from_file_failed.cant_read": "无法从文件「%s」中读取原理图", + "litematica.error.schematic_read_from_file_failed.exception": "从文件「%s」中读取原理图时出现异常", + "litematica.error.schematic_read_from_file_failed.no_file": "无法从文件中读取原理图:没有可用的文件(可能是您将原理图保存在内存中?)", + "litematica.error.schematic_save.directory_doesnt_exist": "没有目录:「%s」", + "litematica.error.schematic_save.file_already_exists": "文件「%s」已经存在", + "litematica.error.schematic_save.invalid_directory": "无效目录「%s」", + "litematica.error.schematic_save.invalid_schematic_name": "无效的原理图名称「%s」", + "litematica.error.schematic_save.schematic_creation_failed": "创建原理图失败", + "litematica.error.schematic_write_to_file_failed.directory_creation_failed": "未能创建原理图目录「%s」", + "litematica.error.schematic_write_to_file_failed.exception": "未能将原理图写入文件「%s」(错误)", + "litematica.error.schematic_write_to_file_failed.exists": "未能将结构写入文件「%s」,文件已存在", + "litematica.error.structure_write_to_file_failed.exception": "未能将结构写入文件「%s」(错误)", + "litematica.error.structure_write_to_file_failed.exists": "未能将结构写入文件「%s」,文件已存在", + "litematica.gui.button.area_editor.analyze_area": "分析区域", + "litematica.gui.button.area_editor.change_corner_mode": "角点模式:%s", + "litematica.gui.button.area_editor.change_selection_mode": "选择模式:%s", + "litematica.gui.button.area_editor.create_schematic": "保存原理图", + "litematica.gui.button.area_editor.create_sub_region": "新建子区域", + "litematica.gui.button.area_editor.origin_enabled": "手动来源:%s", + "litematica.gui.button.area_editor.set_box_name": "确定", + "litematica.gui.button.area_editor.set_selection_name": "确定", + "litematica.gui.button.area_selection_mode": "区域选择模式:%s", + "litematica.gui.button.area_selections.create_directory": "创建目录", + "litematica.gui.button.area_selections.create_new_selection": "新选择", + "litematica.gui.button.area_selections.create_selection_from_placement": "从位置", + "litematica.gui.button.area_selections.unselect": "取消选择", + "litematica.gui.button.cancel": "取消", + "litematica.gui.button.change_menu.area_editor": "选区编辑器", + "litematica.gui.button.change_menu.configuration_menu": "配置菜单", + "litematica.gui.button.change_menu.load_schematics_to_memory": "加载原理图", + "litematica.gui.button.change_menu.schematic_manager": "原理图目录", + "litematica.gui.button.change_menu.schematic_projects_manager": "原理图文件夹", + "litematica.gui.button.change_menu.show_area_selections": "选区目录", + "litematica.gui.button.change_menu.show_loaded_schematics": "已加载原理图", + "litematica.gui.button.change_menu.show_schematic_placements": "原理图编辑", + "litematica.gui.button.change_menu.task_manager": "任务管理器", + "litematica.gui.button.change_menu.to_main_menu": "投影菜单", + "litematica.gui.button.config_gui.colors": "颜色", + "litematica.gui.button.config_gui.generic": "通用", + "litematica.gui.button.config_gui.hotkeys": "热键", + "litematica.gui.button.config_gui.info_overlays": "信息覆盖", + "litematica.gui.button.config_gui.render_layers": "渲染层", + "litematica.gui.button.config_gui.test": "测试", + "litematica.gui.button.config_gui.visuals": "视觉", + "litematica.gui.button.configure": "配置", + "litematica.gui.button.copy": "复制", + "litematica.gui.button.create_directory": "新建目录", + "litematica.gui.button.create_placement": "创造放置", + "litematica.gui.button.delete": "删除", + "litematica.gui.button.disable": "禁用", + "litematica.gui.button.enable": "启用", + "litematica.gui.button.hover.area_editor.shift_for_in_memory": "按住 Shift 创建一个仅在内存中的原理图", + "litematica.gui.button.hover.area_selections.unselect": "取消选择当前区域选择", + "litematica.gui.button.hover.material_list.clear_cache": "清除材料缓存\n通常这不应该需要做的\n这可以用来代替删除「material_cache.nbt」文件,以防缓存含有一些错误的数据,比如一些不应存在的物品(活塞头)", + "litematica.gui.button.hover.material_list.write_hold_shift_for_csv": "按住 Shift 写入 csv 文件,\n而不是普通的 ASCII-art 文本文件", + "litematica.gui.button.hover.material_list_shift_to_select_sub_regions": "按住 Shift 选择用于材料列表的子区域", + "litematica.gui.button.hover.plus_minus_tip": "左键单击可增大\n右键单击可减小\nShift/Alt 增加步长", + "litematica.gui.button.hover.plus_minus_tip_ctrl_alt_shift": "左键单击可增大\n右键单击可减小\nShift/Alt/Ctrl 增加步长(乘法)", + "litematica.gui.button.hover.schematic_list.reload_schematic": "从文件重新加载原理图\n如果你在原理图编辑模式犯错了这会很有用", + "litematica.gui.button.hover.schematic_projects.area_browser_disabled_currently_in_projects_mode": "当前打开了一个原理图项目\n原理图项目将覆盖正常区域选择功能", + "litematica.gui.button.hover.schematic_projects.delete_area": "§6删除最后放置或保存的区域§r", + "litematica.gui.button.hover.schematic_projects.menu_warning": "(这个功能之前叫做 Schematic Projects)\n一般来说,除非你确实了解它的工作原理和功能,否则你§6不应该§r使用这个功能。\n它在某种程度上改变了区域选择、放置和粘贴的工作方式,尤其是在粘贴时还有一个区域删除操作。\n\n基本上,这个功能是为了 §6迭代、就地§r 设计工作而设计的,它可以让你更容易创建同一建筑的多个版本/快照,并且通过先删除世界中的内容,然后在其位置粘贴下一个版本来切换版本", + "litematica.gui.button.hover.schematic_projects.move_origin_to_player": "将项目原点移动到玩家当前位置\n这还会移动区域选择和放置", + "litematica.gui.button.hover.schematic_projects.place_to_world_warning": "§6警告:这将在一个之前放置或者保存的\n§6一个版本的区域里,删除/覆盖当前世界里的方块\n§6(基本上是最后一次看到的「有效区域选择」)", + "litematica.gui.button.hover.schematic_projects.save_new_version": "将新的原理图/版本保存到当前项目", + "litematica.gui.button.import": "导入", + "litematica.gui.button.load_schematic_to_memory": "加载原理图", + "litematica.gui.button.material_list": "材料列表", + "litematica.gui.button.material_list.clear_cache": "清除缓存", + "litematica.gui.button.material_list.clear_ignored": "清除忽略", + "litematica.gui.button.material_list.hide_available": "隐藏可用:%s", + "litematica.gui.button.material_list.ignore": "忽略", + "litematica.gui.button.material_list.list_type": "显示:%s", + "litematica.gui.button.material_list.refresh_list": "刷新", + "litematica.gui.button.material_list.toggle_info_hud": "信息 HUD:%s", + "litematica.gui.button.material_list.write_to_file": "写入文件", + "litematica.gui.button.mirror_value": "镜像:%s", + "litematica.gui.button.move_to_player": "移动到玩家", + "litematica.gui.button.ok": "OK", + "litematica.gui.button.placement_sub.placement_configuration": "放置配置", + "litematica.gui.button.placement_sub.reset_sub_region_placement": "重置子区域", + "litematica.gui.button.placement_sub.slice_type": "切片:%s", + "litematica.gui.button.reload": "重载", + "litematica.gui.button.remove": "删除", + "litematica.gui.button.remove_placement": "删除放置", + "litematica.gui.button.rename": "重命名", + "litematica.gui.button.rotation_value": "旋转:%s", + "litematica.gui.button.save_new_schematic_version": "保存版本", + "litematica.gui.button.save_schematic": "保存原理图", + "litematica.gui.button.save_to_file": "保存到文件", + "litematica.gui.button.schematic_manager.export_as": "导出为 :", + "litematica.gui.button.schematic_placement.abbr.rendering": "R", + "litematica.gui.button.schematic_placement.hover.enclosing_box": "封闭框呈现:%s", + "litematica.gui.button.schematic_placement.hover.lock": "锁定位置可防止移动\n以其他方式更改它(意外地)", + "litematica.gui.button.schematic_placement.hover.rendering": "渲染:%s\n请注意,这有点奇怪,并且不会阻止实体渲染。\n通常,您应该完全禁用放置功能", + "litematica.gui.button.schematic_placement.ignore_entities": "忽略实体:%s", + "litematica.gui.button.schematic_placement.region_enabled": "区域:%s", + "litematica.gui.button.schematic_placement.reset_sub_region_placements": "重置所有子区域", + "litematica.gui.button.schematic_placement.toggle_all_off": "全部 §c关闭§r", + "litematica.gui.button.schematic_placement.toggle_all_on": "全部 §a打开§r", + "litematica.gui.button.schematic_placements.configure": "配置", + "litematica.gui.button.schematic_placements.disable": "禁用", + "litematica.gui.button.schematic_placements.locked": "已锁定:%s", + "litematica.gui.button.schematic_placements.placement_enabled": "位置:%s", + "litematica.gui.button.schematic_placements.remove": "删除", + "litematica.gui.button.schematic_placements.rendering_enabled": "渲染:%s", + "litematica.gui.button.schematic_placements.select": "选择", + "litematica.gui.button.schematic_projects.close_project": "关闭当前项目", + "litematica.gui.button.schematic_projects.create_project": "创建项目", + "litematica.gui.button.schematic_projects.delete_area": "删除区域", + "litematica.gui.button.schematic_projects.load_project": "加载项目", + "litematica.gui.button.schematic_projects.move_origin_to_player": "移动到玩家", + "litematica.gui.button.schematic_projects.open_area_editor": "区域编辑", + "litematica.gui.button.schematic_projects.open_manager_gui": "打开管理器", + "litematica.gui.button.schematic_projects.open_project_browser": "项目浏览器", + "litematica.gui.button.schematic_projects.place_to_world": "在世界上放置", + "litematica.gui.button.schematic_projects.save_version": "保存版本", + "litematica.gui.button.schematic_verifier": "原理图验证程序", + "litematica.gui.button.schematic_verifier.ignore": "忽略", + "litematica.gui.button.schematic_verifier.range_type": "范围:%s", + "litematica.gui.button.schematic_verifier.reset_ignored": "重置被忽略", + "litematica.gui.button.schematic_verifier.reset_verifier": "重置数据", + "litematica.gui.button.schematic_verifier.resume": "摘要验证", + "litematica.gui.button.schematic_verifier.start": "开始验证", + "litematica.gui.button.schematic_verifier.stop": "停止验证", + "litematica.gui.button.schematic_verifier.toggle_info_hud": "信息 HUD:%s", + "litematica.gui.button.set_preview": "设置预览", + "litematica.gui.button.tool_mode": "工具模式:%s", + "litematica.gui.button.unload": "卸载", + "litematica.gui.button.unlocked": "解锁", + "litematica.gui.label.area_editor.box_name": "子区域框名称", + "litematica.gui.label.area_editor.corner_1": "角 1", + "litematica.gui.label.area_editor.corner_2": "角 2", + "litematica.gui.label.area_editor.dimensions": "尺寸", + "litematica.gui.label.area_editor.origin": "原点", + "litematica.gui.label.area_editor.pos1": "角 1", + "litematica.gui.label.area_editor.pos2": "角 2", + "litematica.gui.label.area_editor.selection_name": "选择名称", + "litematica.gui.label.area_editor.sub_regions": "子区域(%s)", + "litematica.gui.label.area_selection.mode.normal": "正常", + "litematica.gui.label.area_selection.mode.simple": "简单", + "litematica.gui.label.area_selection_box_count": "框数:%d", + "litematica.gui.label.area_selection_manager.current_selection": "所选区域:%s", + "litematica.gui.label.area_selection_origin": "原点:%s", + "litematica.gui.label.block_info.state_client": "客户端世界的方块信息", + "litematica.gui.label.block_info.state_schematic": "原理图世界的方块信息", + "litematica.gui.label.block_info_list_type.all": "全部", + "litematica.gui.label.block_info_list_type.render_layers": "渲染层", + "litematica.gui.label.data_fixer_mode.always": "总是", + "litematica.gui.label.data_fixer_mode.below_112X": "仅低于 1.12.x", + "litematica.gui.label.data_fixer_mode.below_113X": "仅低于 1.13.x", + "litematica.gui.label.data_fixer_mode.below_116X": "仅低于 1.16.x", + "litematica.gui.label.data_fixer_mode.below_117X": "仅低于 1.17.x", + "litematica.gui.label.data_fixer_mode.below_119X": "仅低于 1.19.x", + "litematica.gui.label.data_fixer_mode.below_1205": "仅低于 1.20.5", + "litematica.gui.label.data_fixer_mode.below_120X": "仅低于 1.20.x", + "litematica.gui.label.data_fixer_mode.never": "从不", + "litematica.gui.label.easy_place_protocol.auto": "自动", + "litematica.gui.label.easy_place_protocol.none": "关闭", + "litematica.gui.label.easy_place_protocol.slabs_only": "仅台阶", + "litematica.gui.label.easy_place_protocol.v2": "模式 2", + "litematica.gui.label.easy_place_protocol.v3": "模式 3", + "litematica.gui.label.loaded_schematic.modified_on": "§6修改于 %s§r", + "litematica.gui.label.material_list.abbr.shulker_box": "盒", + "litematica.gui.label.material_list.multiplier": "倍数:", + "litematica.gui.label.material_list.name": "名称", + "litematica.gui.label.material_list.progress": "进度:%s", + "litematica.gui.label.material_list.progress.done": "完成 %s", + "litematica.gui.label.material_list.progress.mismatch": "不匹配的 %s", + "litematica.gui.label.material_list.progress.missing": "缺少 %s", + "litematica.gui.label.material_list.title.available": "可用", + "litematica.gui.label.material_list.title.item": "项目", + "litematica.gui.label.material_list.title.missing": "缺少", + "litematica.gui.label.material_list.title.total": "总计", + "litematica.gui.label.material_list.total": "总计:%s 个物品", + "litematica.gui.label.origin.auto": "自动", + "litematica.gui.label.origin.manual": "手动", + "litematica.gui.label.paste_nbt_behavior.none": "无", + "litematica.gui.label.paste_nbt_behavior.place_clone": "放置 & /clone", + "litematica.gui.label.paste_nbt_behavior.place_data_modify": "放置 & /data modify", + "litematica.gui.label.placement_settings.placement_origin": "放置原点", + "litematica.gui.label.placement_sub.region_name": "区域名:%s", + "litematica.gui.label.placement_sub.region_position": "区域位置", + "litematica.gui.label.placement_sub.region_size": "区域大小:%s", + "litematica.gui.label.render_layers.hotkey": "热键", + "litematica.gui.label.render_layers.hover.hotkey": "下一个/上一个图层热键将影响此边界\n如果两者都被选中,那么热键将影响最接近玩家的边界", + "litematica.gui.label.replace_behavior.all": "所有", + "litematica.gui.label.replace_behavior.none": "无", + "litematica.gui.label.replace_behavior.with_non_air": "非空气", + "litematica.gui.label.schematic_info.description": "说明:", + "litematica.gui.label.schematic_info.enclosing_size": "框大小:", + "litematica.gui.label.schematic_info.enclosing_size_value": "框大小:§f%s§r", + "litematica.gui.label.schematic_info.name": "名字:", + "litematica.gui.label.schematic_info.region_count": "区域:§f%d§r", + "litematica.gui.label.schematic_info.schema": "我的世界:§f%s§r [数据版本 §f%d§r]", + "litematica.gui.label.schematic_info.schematic_author": "原理图作者:§f%s§r", + "litematica.gui.label.schematic_info.sponge_version": "Sponge 版本:§f%d§r", + "litematica.gui.label.schematic_info.time_created": "已创建:§f%s§r", + "litematica.gui.label.schematic_info.time_modified": "修改自:§f%s§r", + "litematica.gui.label.schematic_info.total_blocks": "方块总数:§f%d§r", + "litematica.gui.label.schematic_info.total_blocks_and_volume": "方块/体积:§f%d§r/§f%d§r", + "litematica.gui.label.schematic_info.total_volume": "总体积:§f%d§r 个方块", + "litematica.gui.label.schematic_info.vanilla_version": "原版结构", + "litematica.gui.label.schematic_info.version": "Litematica 版本:§f%d§r", + "litematica.gui.label.schematic_load.checkbox.create_placement": "创建放置", + "litematica.gui.label.schematic_load.hoverinfo.create_placement": "立即创建新位置并选择该位置", + "litematica.gui.label.schematic_placement.enclosing_size": "框尺寸:%s", + "litematica.gui.label.schematic_placement.hoverinfo.hold_shift_to_create_as_disabled": "按住Shift以在创建时禁用放置", + "litematica.gui.label.schematic_placement.in_memory": "仅限内存", + "litematica.gui.label.schematic_placement.origin": "来源:%s", + "litematica.gui.label.schematic_placement.rename_placement": "重命名放置:", + "litematica.gui.label.schematic_placement.schematic_file": "文件:%s", + "litematica.gui.label.schematic_placement.schematic_name": "原理图:%s", + "litematica.gui.label.schematic_placement.sub_region_count": "子区域:%s", + "litematica.gui.label.schematic_placement.sub_regions": "子区域(%s):", + "litematica.gui.label.schematic_projects.currently_open_project": "当前打开的项目:%s", + "litematica.gui.label.schematic_projects.origin": "来源:", + "litematica.gui.label.schematic_projects.project": "项目:", + "litematica.gui.label.schematic_projects.version": "版本:%s(of %s)", + "litematica.gui.label.schematic_projects.version_entry": "请参见。%d - %s", + "litematica.gui.label.schematic_projects.version_name": "版本名:", + "litematica.gui.label.schematic_save.checkbox.ignore_entities": "忽略实体", + "litematica.gui.label.schematic_save.checkbox.save_from_schematic_world": "从结构世界中保存", + "litematica.gui.label.schematic_save.checkbox.support_blocks": "支撑方块", + "litematica.gui.label.schematic_save.checkbox.visible_blocks_only": "仅包含可见方块 [实验性内容]", + "litematica.gui.label.schematic_save.hover_info.hold_shift_to_overwrite": "按住 Shift 覆盖现有文件", + "litematica.gui.label.schematic_save.hover_info.save_from_schematic_world": "如果启用该选项,那么会从「结构世界」中选定的内容来创建结构文件,而不是从普通的原版世界中创建\n这可以让你在不需要将结构粘贴到临时创造世界的情况下,直接合并或裁剪结构文件", + "litematica.gui.label.schematic_save.hover_info.support_blocks": "在 §6[仅包含可见方块]§r 模式下,包含所有必要的支撑方块,例如红石中继器、红石比较器、地毯等可能受重力影响的方块", + "litematica.gui.label.schematic_save.hoverinfo.hold_shift_to_overwrite": "按住 Shift 覆盖现有文件", + "litematica.gui.label.schematic_verifier.count": "数量", + "litematica.gui.label.schematic_verifier.expected": "预期", + "litematica.gui.label.schematic_verifier.found": "找到", + "litematica.gui.label.schematic_verifier.status.done_correct_total": "§a正确:%s§r,总共:%s", + "litematica.gui.label.schematic_verifier.status.done_errors": "警告:§c方块:%s§r,§6状态:%s§r,§b缺失:%s§r,§d额外:%s§r", + "litematica.gui.label.schematic_verifier.status.verifying": "不可见的区块:%s / %s", + "litematica.gui.label.schematic_verifier.verifier": "原理图验证程序", + "litematica.gui.label.schematic_verifier_display_type.all": "全部(非忽略的)", + "litematica.gui.label.schematic_verifier_display_type.correct_state": "正确状态", + "litematica.gui.label.schematic_verifier_display_type.extra": "额外的方块", + "litematica.gui.label.schematic_verifier_display_type.missing": "缺失的方块", + "litematica.gui.label.schematic_verifier_display_type.wrong_blocks": "错误的方块", + "litematica.gui.label.schematic_verifier_display_type.wrong_state": "错误的状态", + "litematica.gui.label.task.title.remaining_chunks": "%s,剩余区块(%s)", + "litematica.gui.label.task_name.area_analyzer": "区域分析器", + "litematica.gui.label.task_name.delete": "删除任务", + "litematica.gui.label.task_name.fill": "填充任务", + "litematica.gui.label.task_name.material_list": "材料列表", + "litematica.gui.label.task_name.paste": "粘贴原理图", + "litematica.gui.label.task_name.save_schematic": "保存原理图", + "litematica.gui.label.task_name.verifier": "验证程序", + "litematica.gui.message.confirm_file_deletion": "是否要删除文件「%s」", + "litematica.gui.message.schematic_projects.confirm_delete_area": "是否删除「上次受影响」的区域?\n这将删除这个工程管理器上次放置在世界上的,或者上次保存为一个版本文件的区域中任何方块实体\n(基本上是「最后一次看到受影响的区域」,这样如果你要循环版本,它就不会留下以前版本的方块)", + "litematica.gui.message.schematic_projects.confirm_place_to_world": "你想把这个版本放到世界吗?\n这将删除项目管理器最后放置到世界的区域内的任何方块和实体,或最后保存为版本。(基本上是「最后见过受影响的区域」,这样,如果你要循环版本,它不会留下以前版本的方块)", + "litematica.gui.title.area_editor.sub_region_name": "子区域名称", + "litematica.gui.title.area_editor_normal": "区域编辑器(普通/多框模式)", + "litematica.gui.title.area_editor_normal_schematic_projects": "区域编辑器(§6§l版本控制系统区域§r)", + "litematica.gui.title.area_editor_simple": "区域编辑器(简单模式)", + "litematica.gui.title.area_editor_sub_region": "区域编辑器(子区域)", + "litematica.gui.title.area_selection_manager": "区域选择管理器", + "litematica.gui.title.configs": "Litematica 设置界面 - %s", + "litematica.gui.title.configure_schematic_placement": "配置原理图放置", + "litematica.gui.title.configure_schematic_sub_region": "配置放置子区域", + "litematica.gui.title.confirm_file_deletion": "确认文件删除", + "litematica.gui.title.copy_area_selection": "复制区域选择「%s」", + "litematica.gui.title.create_area_selection": "新建区域选择", + "litematica.gui.title.create_area_selection_from_placement": "从原理图位置创建新的区域选择", + "litematica.gui.title.create_directory": "新建目录", + "litematica.gui.title.create_in_memory_schematic": "创建内存中的原理图", + "litematica.gui.title.create_schematic_from_selection": "将当前选定的区域另存为原理图", + "litematica.gui.title.create_schematic_project": "新建原理图项目", + "litematica.gui.title.litematica_main_menu": "投影 %s", + "litematica.gui.title.load_schematic": "加载原理图", + "litematica.gui.title.manage_loaded_schematics": "管理加载的原理图", + "litematica.gui.title.manage_schematic_placements": "管理原理图放置", + "litematica.gui.title.material_list.area_analyzer": "选择区域分析「%s」", + "litematica.gui.title.material_list.placement": "放置材料列表「%s」", + "litematica.gui.title.material_list.schematic": "原理图的材料清单「%s」(%s of %s 区域)", + "litematica.gui.title.material_list.select_schematic_regions": "选择材料列表的子区域「%s」", + "litematica.gui.title.rename_area_selection": "重命名选择区域", + "litematica.gui.title.rename_area_sub_region": "重命名子区域", + "litematica.gui.title.rename_schematic": "重命名原理图", + "litematica.gui.title.save_exported_schematic": "保存导出 %s 属于「%s」", + "litematica.gui.title.save_imported_schematic": "保存导入的原理图", + "litematica.gui.title.save_schematic_filename": "原理图文件名", + "litematica.gui.title.save_schematic_from_memory": "将内存中的原理图保存到文件", + "litematica.gui.title.schematic_browser": "原理图浏览器", + "litematica.gui.title.schematic_manager": "原理图管理器", + "litematica.gui.title.schematic_project_manager": "原理图工程目录", + "litematica.gui.title.schematic_projects.confirm_delete_area": "确认删除区域", + "litematica.gui.title.schematic_projects.confirm_place_to_world": "确认在世界中放置的操作", + "litematica.gui.title.schematic_projects.save_new_version": "保存一个新的原理图版本", + "litematica.gui.title.schematic_projects_browser": "原理图工程浏览器", + "litematica.gui.title.schematic_verifier": "验证「%s」原理图", + "litematica.gui.title.schematic_verifier_errors": "原理图验证错误", + "litematica.gui.title.task_manager": "任务管理器", + "litematica.hotkeys.category.generic_hotkeys": "通用热键", + "litematica.hud.area_selection.box_count": "框数:%s", + "litematica.hud.area_selection.dimensions_position": "尺寸:%s - p1:%s,p2:%s", + "litematica.hud.area_selection.mode.corners": "角点", + "litematica.hud.area_selection.mode.expand": "展开", + "litematica.hud.area_selection.origin": "原点:%s", + "litematica.hud.area_selection.selected_area_normal": "区域:%s", + "litematica.hud.area_selection.selected_area_simple": "区域 [§6简单模式§r]:%s", + "litematica.hud.area_selection.selected_sub_region": "子区域:%s", + "litematica.hud.area_selection.selection_corners_mode": "角点模式:%s", + "litematica.hud.delete.target_mode": "删除目标模式:%s", + "litematica.hud.delete.target_mode.area": "当前区域", + "litematica.hud.delete.target_mode.placement": "当前放置", + "litematica.hud.misc.easy_place_mode_enabled": "简单放置模式 §a开启§r", + "litematica.hud.misc.none_brackets": "", + "litematica.hud.misc.placement_restriction_mode_enabled": "限制放置模式 §a开启§r", + "litematica.hud.misc.render_layer_mode": "图层模式:%s - %s", + "litematica.hud.misc.render_layer_mode_all": "图层模式:%s", + "litematica.hud.misc.renderer_status": "渲染器:A: %s S: %s B: %s O: %s SEL: %s", + "litematica.hud.misc.schematic_paste.data_restore_mode": "数据粘贴模式:§b%s", + "litematica.hud.misc.schematic_paste.ignore_inventory_contents": "粘贴忽略容器的内容物:%s", + "litematica.hud.misc.schematic_paste.replace_mode": "替换模式:%s", + "litematica.hud.schematic_placement.hover_info.lock_coordinate": "锁定此坐标\n这允许改变其他坐标\n不影响锁定的", + "litematica.hud.schematic_placement.hover_info.placement_locked": "此位置已锁定,如果不先解锁,则无法修改", + "litematica.hud.schematic_placement.hover_info.placement_modified": "此位置已修改", + "litematica.hud.schematic_placement.hover_info.placement_sub_region_modified": "此子区域已修改", + "litematica.hud.schematic_placement.selected_placement": "放置", + "litematica.hud.schematic_placement.selected_sub_region": "子区域", + "litematica.hud.schematic_placement.sub_region_count": "区域", + "litematica.hud.schematic_placement.sub_region_modified": "修改", + "litematica.hud.schematic_placement.sub_region_origin": "区域原点:%s", + "litematica.hud.schematic_placement.sub_regions_modified": "修改区域", + "litematica.hud.schematic_projects.current_version": "版本:%s/%s - 名字:%s", + "litematica.hud.schematic_projects.current_version_date": "数据:%s", + "litematica.hud.schematic_projects.no_project_open": "<没有项目打开>", + "litematica.hud.schematic_projects.no_versions": "<没有该版本>", + "litematica.hud.schematic_projects.origin": "项目来源:%s", + "litematica.hud.schematic_projects.project_name": "项目:%s", + "litematica.hud.schematic_projects_mode": "§6原理图版本控制模式§r", + "litematica.hud.selected_mode": "模式", + "litematica.info.material_list": "- 按下材料列表快捷键将打开上次查看的材料列表(如果有存储的列表)\n- 要切换到不同的材料列表,请通过放置配置 GUI 中的按钮或结构浏览器打开一个新列表\n- 如果更改了选定的结构放置,存储的/上次查看的列表也会被忘记\n- 如果尚未查看任何材料列表,则会使用当前选定的放置(如果有)", + "litematica.info.schematic_load.schematic_loaded": "原理图「%s」成功加载到内存中", + "litematica.info.schematic_manager.preview.right_click_to_cancel": "- 右键单击按钮以取消挂起的预览操作\n- 按 Ctrl + Alt + Shift 并单击,将从与原理图文件位于同一目录中的名为「thumb.png」的现有 PNG 图片设置为缩略图", + "litematica.info.schematic_manager.preview.set_preview_by_taking_a_screenshot": "使用普通屏幕截图键设置预览\n或者右键单击 [设置预览] 按钮取消设置预览", + "litematica.info.schematic_manager.preview.success": "已成功设置预览图像", + "litematica.label.alignment.center": "中心", + "litematica.label.alignment.top_center": "顶部中心", + "litematica.label.no": "No", + "litematica.label.none_lower": "None", + "litematica.label.yes": "Yes", + "litematica.message.added_selection_box": "添加了一个新的选择框在 %s", + "litematica.message.area_clear_fail": "§c清除区域失败§r", + "litematica.message.area_cleared": "已清除区域", + "litematica.message.area_fill_fail": "填充区域失败", + "litematica.message.area_filled": "已填充区域", + "litematica.message.area_selections.selection_created_from_placement": "在位置「%s」创建了新的选择", + "litematica.message.easy_place_fail": "由轻松放置模式阻止的操作", + "litematica.message.error.area_deletion_aborted": "区域删除中断或中止", + "litematica.message.error.empty_area_selection": "空白区域选择(无边框)", + "litematica.message.error.invalid_schematic_name": "无效的原理图名称「%s」", + "litematica.message.error.move.pending_tasks": "§c当有待处理的任务时,无法进行移动§r", + "litematica.message.error.no_area_selected": "§c没有区域被选择§r", + "litematica.message.error.no_placement_selected": "§c没有选择展示位置§r", + "litematica.message.error.only_works_in_single_player": "§c此操作仅在单个玩家中运行§r", + "litematica.message.error.placement_paste_outside_world": "无法将放置粘贴到当前位置,因为它超出了世界边界", + "litematica.message.error.schematic_paste_failed": "§c原理图粘贴到世界失败§r", + "litematica.message.error.schematic_save_failed": "无法将原理图保存到文件「%s」", + "litematica.message.error.schematic_save_interrupted": "原理图保存中断或停止", + "litematica.message.error.schematic_save_no_area_selected": "§c原理图保存失败,未选择任何区域§r", + "litematica.message.grabbed_element_for_moving": "抓住要移动的元件", + "litematica.message.in_memory_schematic_created": "已将内存中的原理图创建为「%s」", + "litematica.message.litematic_downgrade_exported_as": "原理图已降级导出为「%s」\n§6注意:这是一个实验性功能,可能会发生数据丢失§r", + "litematica.message.litematic_saved_as": "已成功升级投影射数据版本版本\n投影已保存为「%s」", + "litematica.message.material_list.material_cache_cleared": "已清除材料缓存", + "litematica.message.material_list_written_to_file": "材料列表写入文件「%s」", + "litematica.message.moved_area_origin": "移动区域原点 %s => %s", + "litematica.message.moved_selection": "移动所选内容 %s => %s", + "litematica.message.paste_with_servux": "§6正在将展示位置上传至 Servux 进行粘贴", + "litematica.message.placement.cant_modify_is_locked": "§c展示位置已锁定且无法修改§r", + "litematica.message.placement.mirror_set_to": "放置镜像为 %s 方向", + "litematica.message.placement.moved_placement_origin": "已移动展示位置 原点%s => %s", + "litematica.message.placement.moved_subregion_to": "移动子区域到 %s", + "litematica.message.placement.rotation_set_to": "放置旋转为 %s 方向", + "litematica.message.placement_restriction_fail": "放置限制模式阻止的操作", + "litematica.message.removed_area_origin": "删除了展示的/手动区域原点", + "litematica.message.removed_selection_box": "已删除选择框 %s", + "litematica.message.scheduled_task_added": "添加的计划任务...", + "litematica.message.schematic_exported_as": "原理图导出为「%s」", + "litematica.message.schematic_pasted": "在世界上粘贴原理图", + "litematica.message.schematic_pasted_using_fill_and_setblock": "使用§b%s§r fill 和 §b%s§r setblock 命令粘贴投影文件", + "litematica.message.schematic_pasted_using_setblock": "原理图粘贴使用 %s 放置命令", + "litematica.message.schematic_pasted_using_world_edit": "使用§b%s§r WorldEdit //set 命令粘贴投影文件", + "litematica.message.schematic_placement_created": "创建放置「%s」", + "litematica.message.schematic_preview_cancelled": "预览任务已取消", + "litematica.message.schematic_projects.project_created": "已创建项目「%s」", + "litematica.message.schematic_projects.project_loaded": "已加载项目「%s」", + "litematica.message.schematic_projects.version_saved": "新版本(#%s)保存为「%s」", + "litematica.message.schematic_read_from_file_success": "加载原理图从文件中「%s」", + "litematica.message.schematic_rendering_refreshed": "原理图渲染已刷新", + "litematica.message.schematic_save_task_created": "已创建原理图保存任务", + "litematica.message.schematic_saved_as": "原理图保存为「%s」", + "litematica.message.set_area_origin": "将区域原点设置为 %s", + "litematica.message.set_selection_box_point": "设置/移动点从 %d 到 %s", + "litematica.message.toggled": "已切换 %s %s", + "litematica.message.value.off": "关闭", + "litematica.message.value.on": "开启", + "litematica.message.warn.area_selection.browser_open_in_simple_mode": "注意:您当前处于简单区域选择模式", + "litematica.message.warn.layer_mode_currently_at": "注意:你当前处在「%s」显示层模式", + "litematica.message.warn.main_rendering_disabled": "警告:主渲染当前已禁用\n查看视觉效果 -> %s,或者热键 -> %s ['%s']", + "litematica.message.warn.pickblock.no_suitable_slot_found": "没有可用的槽位来放置方块!\n检查 [通用] -> §e[快捷选择栏位]§r 配置项。\n这也取决于 §e[避免选择耐久物品/工具]§6 配置,只要某个槽位中有具有耐久度的物品,投影将不会选取它用来放置方块", + "litematica.message.warn.pickblock.no_valid_slots_configured": "[通用] -> §e[快捷选择栏位]§6 中的配置无效!", + "litematica.message.warn.schematic_blocks_rendering_disabled": "警告:原理图块呈现当前被禁用\n查看视觉效果 -> %s,or 或者热键 -> %s ['%s']", + "litematica.message.warn.schematic_load_non_litematica": "警告:当你直接加载非 Litematica 原理图时,创建的放置将不会是持久的\n此外,如果你需要多次加载原理图文件,那么每次加载时都会发生结构类型转换的卡顿(尤其是大型结构)\n\n因此,建议通过 原理图管理器 菜单导入结构并将其保存为 Litematica 格式,或者使用 MCEdit 或 Litematica 的粘贴模式将原始结构粘贴到一个临时世界中,然后从中创建一个新的 Litematica 结构文件\n建议使用多个子区域来框选建筑", + "litematica.message.warn.schematic_rebuild_placement_not_selected": "目前未选择目标展示位置。\n[全部替换] 热键仅适用于您单击的放置的当前选定子区域。因此,要仅替换一个子区域中的块,请选择该子区域。\n要替换整个原理图(所有子区域),请选择整个位置而不是其子区域。 \n这些方块也仅在当前「渲染层」设置限制的区域内被替换", + "litematica.message.warn.schematic_rendering_disabled": "警告:当前禁用了原理图渲染\n查看视觉效果 -> %s,或者热键 -> %s ['%s']", + "litematica.message.warn.schematic_verifier.overlay_disabled": "警告:验证程序重叠渲染当前已禁用!请参阅信息 -> %s(或者热键 -> %s ['%s'])", + "litematica.message.warning.invalid_number": "输入无效的数字「%s」", + "litematica.message.warning.schematic_projects_hidden": "警告:原理图版本控制系统当前处于隐藏状态。\n一般来说,你不应该使用它,除非你真的知道它是如何工作的并改变了一些 Mod 行为。\n如果您想使用它,请启用选项 [通用] -> [不隐藏原理图版本控制系统]", + "litematica.tool_hud.block_1": "方块:%s", + "litematica.tool_hud.block_2": "替换:%s", + "litematica.tool_hud.facing": "朝向:%s", + "litematica.tool_mode.name.area_selection": "区域选择", + "litematica.tool_mode.name.delete": "删除", + "litematica.tool_mode.name.fill": "填充", + "litematica.tool_mode.name.grid_paste": "在世界上粘贴原理图网格", + "litematica.tool_mode.name.move": "移动", + "litematica.tool_mode.name.paste_schematic": "在世界上粘贴原理图", + "litematica.tool_mode.name.rebuild": "重建原理", + "litematica.tool_mode.name.replace_block": "替换方块", + "litematica.tool_mode.name.schematic_placement": "原理图放置", + "litematica.warning.area_editor.area_rendering_disabled": "注意:区域选择框呈现当前被禁用\n查看视觉效果 -> %s,或者热键 -> %s ['%s']" +} diff --git a/src/main/resources/assets/litematica/lang/zh_tw.json b/src/main/resources/assets/litematica/lang/zh_tw.json new file mode 100644 index 0000000..1e71412 --- /dev/null +++ b/src/main/resources/assets/litematica/lang/zh_tw.json @@ -0,0 +1,926 @@ +{ + "litematica.config.generic.name.easyPlaceProtocolVersion": "簡單放置協定模式", + "litematica.config.generic.name.pasteNbtRestoreBehavior": "NBT 資料復原", + "litematica.config.generic.name.pasteReplaceBehavior": "貼上取代模式", + "litematica.config.generic.name.placementReplaceBehavior": "貼上取代模式最佳化", + "litematica.config.generic.name.placementRestrictionWarn": "放置限制警告", + "litematica.config.generic.name.selectionCornersMode": "選擇選區模式", + "litematica.config.generic.name.customSchematicBaseDirectoryEnabled": "自訂原理圖目錄", + "litematica.config.generic.name.customSchematicBaseDirectory": "自訂目錄路徑", + "litematica.config.generic.name.areaSelectionsPerWorld": "世界區域選擇", + "litematica.config.generic.name.betterRenderOrder": "更好的繪製順序", + "litematica.config.generic.name.changeSelectedCornerOnMove": "變更角點選擇", + "litematica.config.generic.name.cloneAtOriginalPosition": "原位複製", + "litematica.config.generic.name.commandDisableFeedback": "停用指令回饋", + "litematica.config.generic.name.commandFillMaxVolume": "最大指令填充體積", + "litematica.config.generic.name.commandFillNoChunkClamp": "指令填充無區塊限制", + "litematica.config.generic.name.commandLimitPerTick": "指令限速", + "litematica.config.generic.name.commandNameClone": "Clone 指令名", + "litematica.config.generic.name.commandNameFill": "Fill 指令名", + "litematica.config.generic.name.commandNameSetblock": "Setblock 指令名", + "litematica.config.generic.name.commandNameSummon": "Summon 指令名", + "litematica.config.generic.name.commandTaskInterval": "任務間隔", + "litematica.config.generic.name.commandUseWorldEdit": "使用 WorldEdit 指令", + "litematica.config.generic.name.debugLogging": "除錯日誌", + "litematica.config.generic.name.datafixerMode": "資料修復模式", + "litematica.config.generic.name.datafixerDefaultSchema": "預設資料修復", + "litematica.config.generic.name.easyPlaceClickAdjacent": "簡單放置點擊相鄰方塊", + "litematica.config.generic.name.easyPlaceFirst": "簡單放置最近塊", + "litematica.config.generic.name.easyPlaceHoldEnabled": "簡單放置狀態", + "litematica.config.generic.name.easyPlaceMode": "簡單放置模式", + "litematica.config.generic.name.easyPlacePostRewrite": "簡單放置模式重寫", + "litematica.config.generic.name.easyPlaceSinglePlayerHandling": "單機簡單放置", + "litematica.config.generic.name.easyPlaceSwapInterval": "簡單放置延遲", + "litematica.config.generic.name.easyPlaceSwingHand": "簡單放置揮手動作", + "litematica.config.generic.name.easyPlaceVanillaReach": "簡單放置使用原版手長", + "litematica.config.generic.name.entityDataSync": "實體資料同步", + "litematica.config.generic.name.entityDataSyncBackup": "備用實體資料同步", + "litematica.config.generic.name.entityDataSyncCacheTimeout": "實體資料同步快取逾時", + "litematica.config.generic.name.entityDataSyncLoadNbt": "實體資料同步載入 NBT", + "litematica.config.generic.name.executeRequireHoldingTool": "執行操作需要工具", + "litematica.config.generic.name.fixChestMirror": "大型儲物箱修復", + "litematica.config.generic.name.fixRailRotation": "鐵路旋轉修復", + "litematica.config.generic.name.generateLowercaseNames": "指令建議", + "litematica.config.generic.name.highlightBlockInInventory": "物品欄物品凸顯提示", + "litematica.config.generic.name.itemUsePacketCheckBypass": "物品使用校驗", + "litematica.config.generic.name.layerModeFollowsPlayer": "圖層顯示跟隨玩家", + "litematica.config.generic.name.loadEntireSchematics": "載入全部投影", + "litematica.config.generic.name.materialListIgnoreState": "材料列表忽略狀態", + "litematica.config.generic.name.pasteAlwaysUseFill": "貼上總是使用 Fill", + "litematica.config.generic.name.pasteIgnoreBlockEntitiesEntirely": "貼上忽略實體方塊", + "litematica.config.generic.name.pasteIgnoreBlockEntitiesFromFill": "Fill 忽略實體方塊", + "litematica.config.generic.name.pasteIgnoreCommandLimitWithNbtRestore": "貼上忽略指令限制與 NBT 復原", + "litematica.config.generic.name.pasteIgnoreEntities": "貼上忽略實體", + "litematica.config.generic.name.pasteIgnoreInventories": "貼上忽略容器內容物", + "litematica.config.generic.name.pasteToMcFunctionFiles": "貼上原理圖轉為指令", + "litematica.config.generic.name.pasteUseFillCommand": "貼上使用 Fill 指令", + "litematica.config.generic.name.pasteUsingCommandsInSp": "單人模式使用指令貼上", + "litematica.config.generic.name.pasteUsingServux": "貼上使用 Servux", + "litematica.config.generic.name.pickBlockAvoidDamageable": "避免取代耐久物品", + "litematica.config.generic.name.pickBlockAvoidTools": "避免取代工具", + "litematica.config.generic.name.pickBlockEnabled": "啟用方塊選取", + "litematica.config.generic.name.pickBlockIgnoreNbt": "拾取方塊忽略 NBT", + "litematica.config.generic.name.pickBlockShulkers": "從界伏盒選取方塊", + "litematica.config.generic.name.pickBlockableSlots": "快捷選擇欄位", + "litematica.config.generic.name.placementRestriction": "限制放置", + "litematica.config.generic.name.renderMaterialListInGuis": "在 GUI 中顯示物品材質", + "litematica.config.generic.name.renderThreadNoTimeout": "移除繪製逾時", + "litematica.config.generic.name.serverNbtRequestRate": "伺服器 NBT 請求速率", + "litematica.config.generic.name.signTextPaste": "貼上告示牌文字", + "litematica.config.generic.name.toolItem": "投影操作工具", + "litematica.config.generic.name.toolItemEnabled": "啟用投影操作工具", + "litematica.config.generic.name.toolItemComponents": "自訂投影操作工具元件", + "litematica.config.generic.name.unhideSchematicVCS": "不隱藏原理圖版本控制系統", + "litematica.config.visuals.name.enableAreaSelectionBoxesRendering": "啟用選區邊框", + "litematica.config.visuals.name.enablePlacementBoxesRendering": "啟用投影邊框", + "litematica.config.visuals.name.enableRendering": "開啟全部繪製", + "litematica.config.visuals.name.enableSchematicBlocksRendering": "啟用投影方塊繪製", + "litematica.config.visuals.name.enableSchematicFluidRendering": "啟用流體繪製", + "litematica.config.visuals.name.enableSchematicOverlay": "啟用原理圖錯誤渲染器", + "litematica.config.visuals.name.enableSchematicRendering": "啟用投影繪製", + "litematica.config.visuals.name.renderSchematicMaxThreads": "繪製投影最大執行緒", + "litematica.config.visuals.name.ghostBlockAlpha": "方塊透明度", + "litematica.config.visuals.name.ignoreExistingFluids": "忽略投影內液體", + "litematica.config.visuals.name.overlayReducedInnerSides": "減少內側面繪製", + "litematica.config.visuals.name.placementBoxSideAlpha": "投影區域邊框側面透明度", + "litematica.config.visuals.name.renderAOModernEnable": "啟用環境光遮蔽處理器", + "litematica.config.visuals.name.renderAreaSelectionBoxSides": "選擇區域邊框側面繪製", + "litematica.config.visuals.name.renderBlocksAsTranslucent": "方塊半透明化", + "litematica.config.visuals.name.renderCollidingSchematicBlocks": "繪製重疊方塊", + "litematica.config.visuals.name.renderErrorMarkerConnections": "驗證器錯誤連線", + "litematica.config.visuals.name.renderErrorMarkerSides": "驗證器錯誤顯示", + "litematica.config.visuals.name.renderPlacementBoxSides": "繪製投影區域邊框", + "litematica.config.visuals.name.renderPlacementEnclosingBox": "繪製投影區域封閉邊框", + "litematica.config.visuals.name.renderPlacementEnclosingBoxSides": "繪製投影區域封閉邊框側面", + "litematica.config.visuals.name.renderTranslucentBlockInnerSides": "繪製半透明方塊內表面", + "litematica.config.visuals.name.schematicOverlayEnableOutlines": "原理圖錯誤繪製框線", + "litematica.config.visuals.name.schematicOverlayEnableResorting": "原理圖錯誤渲染器半透明重排", + "litematica.config.visuals.name.schematicOverlayEnableSides": "原理圖錯誤繪製側面", + "litematica.config.visuals.name.schematicOverlayModelOutline": "原理圖錯誤繪製模型輪廓", + "litematica.config.visuals.name.schematicOverlayModelSides": "原理圖錯誤繪製模型邊緣", + "litematica.config.visuals.name.schematicOverlayOutlineWidth": "原理圖錯誤繪製輪廓線寬度", + "litematica.config.visuals.name.schematicOverlayOutlineWidthThrough": "原理圖錯誤繪製輪廓線透視寬度", + "litematica.config.visuals.name.schematicOverlayRenderThroughBlocks": "原理圖透視", + "litematica.config.visuals.name.schematicOverlayTypeExtra": "原理圖透視多餘方塊", + "litematica.config.visuals.name.schematicOverlayTypeMissing": "原理圖透視缺失方塊", + "litematica.config.visuals.name.schematicOverlayTypeWrongBlock": "原理圖透視錯誤方塊", + "litematica.config.visuals.name.schematicOverlayTypeWrongState": "原理圖透視錯誤狀態", + "litematica.config.visuals.name.schematicVerifierUseBlockModels": "原理圖驗證器使用方塊模型", + "litematica.config.info_overlays.name.blockInfoLinesAlignment": "方塊資訊位置", + "litematica.config.info_overlays.name.blockInfoOverlayAlignment": "方塊提示彈出視窗位置", + "litematica.config.info_overlays.name.infoHudAlignment": "材料 HUD 位置", + "litematica.config.info_overlays.name.toolHudAlignment": "工具 HUD 位置", + "litematica.config.info_overlays.name.blockInfoLinesEnabled": "啟用方塊資訊", + "litematica.config.info_overlays.name.blockInfoLinesFontScale": "方塊資訊大小", + "litematica.config.info_overlays.name.blockInfoLinesOffsetX": "方塊資訊位置橫移", + "litematica.config.info_overlays.name.blockInfoLinesOffsetY": "方塊資訊位置縱移", + "litematica.config.info_overlays.name.blockInfoOverlayOffsetY": "方塊提示彈出視窗位置縱移", + "litematica.config.info_overlays.name.blockInfoOverlayEnabled": "啟用方塊提示", + "litematica.config.info_overlays.name.infoHudMaxLines": "材料 HUD 行數", + "litematica.config.info_overlays.name.infoHudOffsetX": "材料 HUD 位置橫移", + "litematica.config.info_overlays.name.infoHudOffsetY": "材料 HUD 位置縱移", + "litematica.config.info_overlays.name.infoHudScale": "材料 HUD 縮放", + "litematica.config.info_overlays.name.infoOverlaysTargetFluids": "顯示流體資訊", + "litematica.config.info_overlays.name.materialListHudMaxLines": "材料 HUD 最大行數", + "litematica.config.info_overlays.name.materialListHudScale": "材料 HUD 縮放", + "litematica.config.info_overlays.name.statusInfoHud": "狀態資訊 HUD", + "litematica.config.info_overlays.name.statusInfoHudAuto": "狀態 HUD 自動顯示", + "litematica.config.info_overlays.name.toolHudOffsetX": "工具 HUD 位置橫移", + "litematica.config.info_overlays.name.toolHudOffsetY": "工具 HUD 位置縱移", + "litematica.config.info_overlays.name.toolHudScale": "工具 HUD 縮放", + "litematica.config.info_overlays.name.verifierErrorHilightAlpha": "凸顯驗證錯誤方塊", + "litematica.config.info_overlays.name.verifierErrorHilightMaxPositions": "驗證錯誤方塊凸顯上限", + "litematica.config.info_overlays.name.verifierOverlayEnabled": "原理圖驗證繪製", + "litematica.config.info_overlays.name.warnDisabledRendering": "關閉警告資訊", + "litematica.config.colors.name.areaSelectionBoxSideColor": "選區邊框顏色", + "litematica.config.colors.name.hightlightBlockInInventoryColor": "凸顯顯示顏色", + "litematica.config.colors.name.materialListHudItemCountsColor": "材料數量顏色", + "litematica.config.colors.name.schematicRebuildBreakPlaceOverlayColor": "重建原理圖刪除指示器顏色", + "litematica.config.colors.name.schematicRebuildBreakExceptPlaceOverlayColor": "重建原理圖保留指示器顏色", + "litematica.config.colors.name.schematicRebuildReplaceOverlayColor": "重建原理圖取代指示器顏色", + "litematica.config.colors.name.schematicOverlayColorExtra": "多餘方塊顏色", + "litematica.config.colors.name.schematicOverlayColorMissing": "缺失方塊顏色", + "litematica.config.colors.name.schematicOverlayColorWrongBlock": "錯誤方塊顏色", + "litematica.config.colors.name.schematicOverlayColorWrongState": "錯誤狀態顏色", + "litematica.config.hotkeys.name.addSelectionBox": "加入選區", + "litematica.config.hotkeys.name.cloneSelection": "複製選區", + "litematica.config.hotkeys.name.deleteSelectionBox": "刪除選區", + "litematica.config.hotkeys.name.easyPlaceUseKey": "簡單放置快捷鍵", + "litematica.config.hotkeys.name.easyPlaceToggle": "簡單放置模式切換", + "litematica.config.hotkeys.name.executeOperation": "執行操作", + "litematica.config.hotkeys.name.invertGhostBlockRenderState": "調整半透明方塊繪製狀態", + "litematica.config.hotkeys.name.invertOverlayRenderState": "調整原理圖錯誤渲染器的繪製狀態", + "litematica.config.hotkeys.name.layerModeNext": "下一繪製模式", + "litematica.config.hotkeys.name.layerModePrevious": "上一繪製模式", + "litematica.config.hotkeys.name.layerNext": "下一層", + "litematica.config.hotkeys.name.layerPrevious": "上一層", + "litematica.config.hotkeys.name.layerSetHere": "設定初始層", + "litematica.config.hotkeys.name.nudgeSelectionNegative": "反向推動選區", + "litematica.config.hotkeys.name.nudgeSelectionPositive": "正向推動選區", + "litematica.config.hotkeys.name.moveEntireSelection": "移動整個選區", + "litematica.config.hotkeys.name.openGuiAreaSettings": "區域編輯器", + "litematica.config.hotkeys.name.openGuiLoadedSchematics": "原理圖載入", + "litematica.config.hotkeys.name.openGuiMainMenu": "主介面", + "litematica.config.hotkeys.name.openGuiMaterialList": "材料列表", + "litematica.config.hotkeys.name.openGuiPlacementSettings": "設定原理圖放置", + "litematica.config.hotkeys.name.openGuiSchematicPlacements": "管理原理圖放置", + "litematica.config.hotkeys.name.openGuiSchematicProjects": "原理圖資料夾", + "litematica.config.hotkeys.name.openGuiSchematicVerifier": "原理圖驗證器", + "litematica.config.hotkeys.name.openGuiSelectionManager": "區域選擇管理器", + "litematica.config.hotkeys.name.openGuiSettings": "設定選單", + "litematica.config.hotkeys.name.operationModeChangeModifier": "模式選擇", + "litematica.config.hotkeys.name.pickBlockFirst": "選取目前方塊", + "litematica.config.hotkeys.name.pickBlockLast": "選取最遠方塊", + "litematica.config.hotkeys.name.pickBlockToggle": "選取方塊開關", + "litematica.config.hotkeys.name.renderInfoOverlay": "方塊資訊", + "litematica.config.hotkeys.name.renderOverlayThroughBlocks": "原理圖透視繪製", + "litematica.config.hotkeys.name.rerenderSchematic": "重載繪製圖", + "litematica.config.hotkeys.name.saveAreaAsInMemorySchematic": "將原理圖存至記憶體", + "litematica.config.hotkeys.name.saveAreaAsSchematicToFile": "將原理圖存至檔案", + "litematica.config.hotkeys.name.schematicEditBreakAllExcept": "刪除其他方塊", + "litematica.config.hotkeys.name.schematicEditBreakPlaceAll": "刪除相同方塊", + "litematica.config.hotkeys.name.schematicEditBreakPlaceDirection": "相同方塊線性增刪", + "litematica.config.hotkeys.name.schematicEditReplaceAll": "取代同類方塊", + "litematica.config.hotkeys.name.schematicEditReplaceBlock": "取代其他方塊", + "litematica.config.hotkeys.name.schematicEditReplaceDirection": "同方塊線性取代", + "litematica.config.hotkeys.name.schematicPlacementRotation": "旋轉投影圖", + "litematica.config.hotkeys.name.schematicPlacementMirror": "鏡像投影圖", + "litematica.config.hotkeys.name.schematicVersionCycleModifier": "投影版本選擇", + "litematica.config.hotkeys.name.schematicVersionCycleNext": "下一個投影版本", + "litematica.config.hotkeys.name.schematicVersionCyclePrevious": "上一個投影版本", + "litematica.config.hotkeys.name.selectionGrabModifier": "移動選區", + "litematica.config.hotkeys.name.selectionGrow": "擴大選區", + "litematica.config.hotkeys.name.selectionGrowModifier": "擴大選區調節器", + "litematica.config.hotkeys.name.selectionNudgeModifier": "位移調節器", + "litematica.config.hotkeys.name.selectionModeCycle": "選區模式選擇", + "litematica.config.hotkeys.name.selectionShrink": "精簡選框", + "litematica.config.hotkeys.name.setAreaOrigin": "設定初始角點", + "litematica.config.hotkeys.name.setSelectionBoxPosition1": "設定角點 1", + "litematica.config.hotkeys.name.setSelectionBoxPosition2": "設定角點 2", + "litematica.config.hotkeys.name.toggleAllRendering": "切換全部繪製", + "litematica.config.hotkeys.name.toggleAreaSelectionBoxesRendering": "切換區域選框繪製", + "litematica.config.hotkeys.name.toggleSchematicRendering": "切換投影方塊繪製", + "litematica.config.hotkeys.name.toggleInfoOverlayRendering": "切換方塊資訊繪製", + "litematica.config.hotkeys.name.toggleOverlayRendering": "切換投影方塊繪製", + "litematica.config.hotkeys.name.toggleOverlayOutlineRendering": "切換原理圖錯誤渲染器的邊框繪製", + "litematica.config.hotkeys.name.toggleOverlaySideRendering": "切換原理圖錯誤渲染器的側邊繪製", + "litematica.config.hotkeys.name.togglePlacementBoxesRendering": "切換投影區域框線顯示", + "litematica.config.hotkeys.name.togglePlacementRestriction": "位置限制", + "litematica.config.hotkeys.name.toggleSchematicBlockRendering": "切換投影方塊繪製", + "litematica.config.hotkeys.name.toggleSignTextPaste": "切換告示牌文字貼上", + "litematica.config.hotkeys.name.toggleTranslucentRendering": "切換方塊半透明化", + "litematica.config.hotkeys.name.toggleVerifierOverlayRendering": "切換原理圖驗證繪製", + "litematica.config.hotkeys.name.toolEnabledToggle": "工具切換", + "litematica.config.hotkeys.name.toolPlaceCorner1": "角點 1 放置", + "litematica.config.hotkeys.name.toolPlaceCorner2": "角點 2 放置", + "litematica.config.hotkeys.name.toolSelectElements": "區域選擇", + "litematica.config.hotkeys.name.toolSelectModifierBlock1": "主方塊選擇", + "litematica.config.hotkeys.name.toolSelectModifierBlock2": "副方塊選擇", + "litematica.config.hotkeys.name.unloadCurrentSchematic": "移除目前原理圖", + "litematica.config.generic.comment.easyPlaceProtocolVersion": "要使用的 §6[簡單放置協定]§f 的模式\n\n- 自動:在單人模式下使用 §6[模式 3]§r,\n在多人模式下預設使用 §6[僅半磚]§r,\n如果伺服器裝有 Carpet 模組並傳送了「carpet:hello」資料包,\n將會使用 §6[模式 2]§r\n- 模式 3:僅支援 Litematica 本身(在單人遊戲中)或與 Servux 一起使用。\n- 模式 2:與裝有 Carpet 模組的伺服器相容\n(包括由 Skyrising 和 DeadlyMC 開發的 QuickCarpet,\n或者安裝了 CarpetExtra 和 FabricCarpet 的伺服器。\n此外,伺服器上需要啟用「accurateBlockPlacement」規則)。\n- 僅半磚:只修復 top slabs 相容 Paper servers\n- 關閉:不做調整", + "litematica.config.generic.comment.pasteNbtRestoreBehavior": "是否嘗試復原方塊的 NBT 資料,以及使用哪種方法來進行復原\n\n- 放置 & /data modify:嘗試在玩家附近放置帶有 NBT 資料的方塊,然後使用 /data modify 指令將 NBT 資料傳輸到 /setblock 放置的方塊上\n- 放置 & /clone:嘗試在玩家附近放置帶有 NBT 資料的方塊,然後將其複製到最終位置\n- /tp & 放置:嘗試將玩家傳送到附近,然後直接將帶有 NBT 資料的物品放置在正確的位置\n\n請注意,/tp & 放置 方法目前無法正常工作\n推薦使用的方法是 §e放置 & /data modify§r,但為使其正常工作,您可能需要將 §6[指令限速]§r 降低到每 Tick 1 個指令,並將 §6[任務間隔]§6 增加到 1-4 Ticks 左右\n因此建議僅在貼上需要保留資料的重要方塊時使用該方法,比如製作僅包含物品欄的結構檔案,然後在貼上時將取代行為設定為「無」", + "litematica.config.generic.comment.pasteReplaceBehavior": "在貼上原理圖工具中取代現有方塊的模式", + "litematica.config.generic.comment.placementReplaceBehavior": "當原理圖貼上時,方塊的取代方式\n\n\n這允許在使用重疊放置時,\n後處理的放置不會總是用空氣覆蓋先前的放置\n另一方面,一些像光照方塊這樣的方塊被認為是空氣,\n所以它們需要 [全部] 取代行為來放置", + "litematica.config.generic.comment.placementRestrictionWarn": "當簡單放置模式或放置限制阻止玩家放置一個方塊時,\n選擇要顯示的警告資訊類型\n- 物品欄模式:顯示在物品欄上方\n- 訊息模式:彈出橙色的訊息文字", + "litematica.config.generic.comment.selectionCornersMode": "要使用的區域選擇模式(角點,或展開)", + "litematica.config.generic.comment.customSchematicBaseDirectoryEnabled": "如果啟用該功能,則在 §6[自訂原理圖目錄]§f\n中設定的目錄路徑將用為原理圖的根目錄,\n而不是正常的§9 .minecraft/schematics/ §r目錄", + "litematica.config.generic.comment.customSchematicBaseDirectory": "如果啟用了 §6[自訂原理圖目錄]§f\n所要使用的原理圖的根目錄", + "litematica.config.generic.comment.areaSelectionsPerWorld": "使用每個世界或伺服器根目錄進行區域選擇\n§6注意:直播時§l請勿關閉§6此功能,\n否則區域選擇瀏覽器將顯示伺服器 IP 到指南以及目前選擇名稱/路徑中,\n直到您再次變更目前目錄和選擇", + "litematica.config.generic.comment.betterRenderOrder": "如果啟用,那麼結構圖的繪製將透過使用不同的繪製呼叫注入到原版繪製程式碼中。\n這應該可以改善透明方塊的繪製/排序,\n並且避免結構圖中的方塊穿過客戶端世界的方塊/地形被繪製。\n如果繪製不起作用(例如在使用 Optifine 時),請嘗試停用此選項", + "litematica.config.generic.comment.changeSelectedCornerOnMove": "如果啟用,那麼在使用角點模式進行區域選擇時\n區域選擇的角總是被設定為最後選擇的角\n(最後選擇的角就是角點的框線與面都有顏色)\n(PS:雖然在實際使用過程當中沒有太大影響)", + "litematica.config.generic.comment.cloneAtOriginalPosition": "如果啟用,那麼使用複製快捷鍵時\n將在原來選擇的區域位置複製,\n而不是在玩家的目前位置", + "litematica.config.generic.comment.commandDisableFeedback": "如果啟用此選項,則在進行多人模式下的貼上、填充和刪除操作時\n(這些操作使用 /setblock 和 /fill 指令),\n指令回饋會自動停用並在任務完成後重新啟用。\n透過在任務結束時停用並重新啟用 §6停用指令回饋§r 實現", + "litematica.config.generic.comment.commandFillMaxVolume": "可以透過指令填充/刪除操作變更的每個單獨框的最大的大小/體積。\n更大的區域/體積將被分割為多個指令去執行。\n但無論如何,所有區域在一開始也被分割為多個區塊", + "litematica.config.generic.comment.commandFillNoChunkClamp": "停用將填充體積劃分為子區塊\n(在填充、取代和刪除模式下)\n\n§b譯註:填充、取代和刪除操作在功能開啟前是按子區塊操作的\n開啟功能後是直接批次刪\n(樣本較少沒有看出是什麼方式)", + "litematica.config.generic.comment.commandLimitPerTick": "當玩家在伺服器上使用貼上,填充和刪除功能時,他們將使用 setblock 和 fill 指令\n請注意,使用 NBT 復原功能時,由於每個方塊需要兩個額外的指令貼上,該功能可能會超過預定的指令數量,", + "litematica.config.generic.comment.commandNameClone": "在伺服器的創造模式中使用 clone 指令時要使用的 clone 指令名\n如果 NBT 遷移選項設定為 [放置 & /clone],則目前功能僅使用貼上", + "litematica.config.generic.comment.commandNameFill": "在伺服器的創造模式中使用 fill 指令時要使用的 fill 指令名", + "litematica.config.generic.comment.commandNameSetblock": "在伺服器的創造模式中使用 setblock 指令時要使用的\nsetblock 指令名,即在使用世界上貼上原理圖的功能時", + "litematica.config.generic.comment.commandNameSummon": "在伺服器的創造模式中使用 summon 指令時要使用的\nsummon 指令名,即在使用世界上貼上原理圖的功能時", + "litematica.config.generic.comment.commandTaskInterval": "遊戲中的貼上,填充和刪除任務的 Tick 間隔。\n在 §6[指令限速]§r 中設定每次執行傳送的指令的最大數量,\n在這個變數設定下一次執行指令之前的遊戲時間間隔", + "litematica.config.generic.comment.commandUseWorldEdit": "如果啟用此選項,將使用 WorldEdit 的 //pos1,//pos2 和 //set 指令,\n而不是設定的 setblock 和 fill 指令\n\n請注意,使用 WorldEdit 指令比使用原版指令慢大約 3 倍,\n因為每 Tick 的指令限制,並且 WE 每個方塊或區域需要多個指令(//pos1,//pos2,//set)\n\n§6警告:如果使用 WorldEdit 指令,而不是單獨的 setblock 指令,貼上取代行為選項將無法工作!\n因此,建議在有權限執行原版指令時,優先使用原版指令\n另外,WorldEdit 指令在某些情況下的一個優勢是可以防止方塊更新,\n尤其是在伺服器沒有 Carpet 模組,且無法使用 [/carpet fillUpdates false] 規則時", + "litematica.config.generic.comment.debugLogging": "在遊戲控制台中啟用一些除錯日誌訊息,用於除錯某些問題或崩潰", + "litematica.config.generic.comment.datafixerMode": "可設定的資料修正器級別,用於套用於載入的結構圖。\n此選項可以透過繞過原版資料修正器來提高載入結構圖的效能,但如果停用它,可能會導致嚴重的資料遺失", + "litematica.config.generic.comment.datafixerDefaultSchema": "用於 Vanilla 資料修正器的預設架構值\n\n用於調整最低可能值,以及當載入的結構圖不包含此資訊時使用的值。\n\n§6警告:此設定應按照 Litematica 開發者(如 Masa 本人)的指導使用。\n§6如果不確定,請保持 Minecraft 1.12 的預設值", + "litematica.config.generic.comment.easyPlaceClickAdjacent": "使用來自 1.12.2 版本 Ornithe 模組的 Clicks Adjacent 功能\n此功能僅在啟用 §6[簡單放置模式重寫]§r 時生效", + "litematica.config.generic.comment.easyPlaceFirst": "此選項會使 §6[簡單放置模式]§r 優先放置你正在看著的第一個/最近的方塊,而不是最遠/最底部的方塊\n將其設定為 false 可以讓你一次放置多層,因為最遠的方塊會在較近的方塊阻擋視線之前先被放置", + "litematica.config.generic.comment.easyPlaceHoldEnabled": "啟用後,您可以按住使用鍵,然後根據投影以放置對應的方塊,\n而無需單獨點擊每一個方塊", + "litematica.config.generic.comment.easyPlaceMode": "啟用後,嘗試在投影上使用物品或放置方塊時,會直接將該方塊放置在該位置", + "litematica.config.generic.comment.easyPlacePostRewrite": "啟用後,簡易放置模式將使用來自 1.12.2 版本 Ornithe 模組的 Post-Rewrite 功能\n§6警告!此功能為實驗性功能", + "litematica.config.generic.comment.easyPlaceSinglePlayerHandling": "啟用後,Litematica 將在單人模式中啟用的「Carpet mod Accurate Block Placement Protocol」\n如果你打算在單人模式中使用 §6[簡單放置模式]§r,建議保持該選項啟用", + "litematica.config.generic.comment.easyPlaceSwapInterval": "§6[簡單放置模式]§r 在背包和手中方塊交換後等待的間隔(以毫秒為單位)。\n在高延遲時,此選項有助於避免放置錯誤的方塊", + "litematica.config.generic.comment.easyPlaceSwingHand": "使用 §6[簡單放置模式]§r 時,放置方塊時玩家的手是否揮動", + "litematica.config.generic.comment.easyPlaceVanillaReach": "如果啟用此選項,將把手長從 6 減少到原版 Minecraft 的預設值(4.5),以防止伺服器拒絕放置遠處的方塊", + "litematica.config.generic.comment.entityDataSync": "使用 Servux 的實體資料同步協定,從伺服器取得實體資料", + "litematica.config.generic.comment.entityDataSyncBackup": "當 Servux 不可用時,使用原版 NBT 查詢方法\n此方法需要管理員權限", + "litematica.config.generic.comment.entityDataSyncCacheTimeout": "實體資料快取的逾時時間值,以秒為單位。值越低,更新越頻繁。\n但如果您的原理圖未能儲存所有的 NBT 資料,您可能需要考慮設定更高的值", + "litematica.config.generic.comment.entityDataSyncLoadNbt": "將同步的 NBT 資料載入到客戶端世界中\n§6警告!此功能會導致與依賴這些資料的其他模組不相容", + "litematica.config.generic.comment.executeRequireHoldingTool": "需要持有已啟用的工具項以使 §6[執行操作]§f 快速鍵工作", + "litematica.config.generic.comment.fixChestMirror": "修復投影中破碎的大型儲物箱", + "litematica.config.generic.comment.fixRailRotation": "如果為真,那麼就對軌道中常見的 Bug 進行了修正,\n即南北方向和東西方向的直線軌道 180 度旋轉時逆時針旋轉90度,而不是 >_>", + "litematica.config.generic.comment.generateLowercaseNames": "如果啟用,則預設情況下建議的原理圖名稱將為小寫並使用底線而不是空格", + "litematica.config.generic.comment.highlightBlockInInventory": "當啟用時,背包內將凸顯顯示指向原理圖的方塊\n(無論是物品欄還是界伏盒)", + "litematica.config.generic.comment.itemUsePacketCheckBypass": "該功能繞過了 1.18.2 中新加入的距離/座標校驗\n\n該校驗破壞了 §6[精確放置協定]§f 的功能\n並導致任何帶有旋轉(或其他屬性)\n請求放置的方塊變成了幽靈方塊\n\n基本上沒有必要停用這個校驗\n因為在 1.18.2 之前,這個校驗甚至都不存在", + "litematica.config.generic.comment.layerModeFollowsPlayer": "如果開啟,則繪製層跟隨玩家,但是只能跟隨目前高度\n註:在繪製層為 範圍 模式時不起作用", + "litematica.config.generic.comment.loadEntireSchematics": "如果啟用,那麼整個投影總是同時載入\n如果關閉,則只載入客戶端視距內的部分", + "litematica.config.generic.comment.materialListIgnoreState": "啟用後,將忽略確切的方塊狀態,僅匹配方塊類型", + "litematica.config.generic.comment.pasteAlwaysUseFill": "這將會強制使用 fill 指令(而不是 setblock),即使是單個方塊", + "litematica.config.generic.comment.pasteIgnoreBlockEntitiesEntirely": "如果啟用,方塊實體將不會透過基於指令的方式在多人模式下貼上\n這使得你可以更輕鬆地分兩步貼上:第一步貼上方塊,第二步使用 §6[NBT 資料復原]§r(如物品欄等)。\n因此該過程通常需要更慢的貼上速度或指令執行頻率", + "litematica.config.generic.comment.pasteIgnoreBlockEntitiesFromFill": "如果啟用,那麼在使用 fill 指令貼上時將忽略所有實體方塊。\n這使得實體方塊可以單獨貼上,\n如果使用 §6[NBT 資料復原]§r,這是必須的", + "litematica.config.generic.comment.pasteIgnoreCommandLimitWithNbtRestore": "如果啟用,在開啟 §6[NBT 資料復原]§r 時,貼上帶有方塊實體的方塊時將忽略指令限制\n這似乎能夠修復在較低指令執行頻率下,許多方塊的 NBT 復原會失敗的問題", + "litematica.config.generic.comment.pasteIgnoreEntities": "如果啟用,則貼上功能將不會貼上任何實體", + "litematica.config.generic.comment.pasteIgnoreInventories": "貼上原理圖時不要貼上容器的內容物", + "litematica.config.generic.comment.pasteToMcFunctionFiles": "如果啟用,將不會直接貼上實際的原理圖,\n方塊資訊將作為 setblock 指令寫入文字檔案後再貼上", + "litematica.config.generic.comment.pasteUseFillCommand": "如果啟用,在伺服器上進行基於指令的貼上操作,除了使用 /setblock 指令外,還會嘗試對連續的同種方塊區域使用 /fill 指令\n在單人模式中將不會起作用,因為模組會直接在伺服器世界中設定方塊,而不會使用指令", + "litematica.config.generic.comment.pasteUsingCommandsInSp": "這是一個臨時的方法,可以在單人遊戲中基於指令貼上,\n這使得在單人遊戲中可以使用部分繪製層貼上原理圖,\n但該功能目前無法與單人模式正常使用的直接世界訪問貼上方式相容\n\n請注意,這將具有與多人模式貼上相同的 NBT 資料復原限制", + "litematica.config.generic.comment.pasteUsingServux": "使用 Servux 將結構圖直接貼上到伺服器上。\n這種方法比傳統的基於指令的方法快得多,\n並且支援復原實體 NBT 資料", + "litematica.config.generic.comment.pickBlockAvoidDamageable": "在開啟簡單放置後,避免方塊取代掉任何在快捷欄欄位中\n有耐久度的物品。§d例如:打火石,毛刷等§r", + "litematica.config.generic.comment.pickBlockAvoidTools": "在開啟簡單放置後,避免方塊取代掉任何在快捷欄欄位中的工具", + "litematica.config.generic.comment.pickBlockEnabled": "啟用原理圖的拾取方塊快捷鍵。\n還有一個快捷鍵可以切換此選項,從而切換這些快捷鍵...o.o", + "litematica.config.generic.comment.pickBlockIgnoreNbt": "啟用 §6[拾取方塊忽略 NBT]§r 功能,用於來自 1.12.2 版本 Ornithe 模組的 §6[簡單放置模式重寫]§r 功能", + "litematica.config.generic.comment.pickBlockShulkers": "如果啟用,那麼如果選取方塊物品沒有在玩家背包找到\n那麼就切換出包含它的界伏盒", + "litematica.config.generic.comment.pickBlockableSlots": "允許用於投影原理圖挑選的快捷欄欄位\n\n§b譯註:12345 指的是物品欄 1-5 的位置,也就是說你物品欄 1-5 位置全是工具,且開啟了 §6[避免取代工具]§r,投影會報錯", + "litematica.config.generic.comment.placementRestriction": "啟用後,使用鍵只能在手持針對目標位置的正確物品時使用,\n並且目標位置在結構圖中必須是一個缺失的方塊", + "litematica.config.generic.comment.renderMaterialListInGuis": "材質列表是否會在 GUI 中呈現", + "litematica.config.generic.comment.renderThreadNoTimeout": "從繪製工作執行緒中移除逾時內容\n如果你在處理大型原理圖的時候繪製的很不流暢,\n試著停用它。\n但是在某些情況下,它會使原理圖的繪製速度慢很多", + "litematica.config.generic.comment.serverNbtRequestRate": "限制伺服器實體資料同步器的請求速率", + "litematica.config.generic.comment.signTextPaste": "該功能能在原理圖中顯示告示牌的內容\n§d這樣就不用背了捏~", + "litematica.config.generic.comment.toolItem": "作為用於原理圖操作的工具,雖然預設是木棒\n\n§b譯註:但是其實你想拿終界龍頭也是可以的hhh", + "litematica.config.generic.comment.toolItemEnabled": "如果啟用該選項,那麼你可以使用工具進行原理圖操作", + "litematica.config.generic.comment.toolItemComponents": "一個資料元件感知版本的 §6[投影操作工具]§r\n設定「Empty」以停用。\n接收與「/give」指令相同的語法\n(譯註:你可以自訂投影操作工具的附魔等性質,比如必須帶有 不死殺手附魔 的劍才能操作投影,普通的劍不可以)", + "litematica.config.generic.comment.unhideSchematicVCS": "取消隱藏 Schematic VCS(版本控制系統)選單按鈕,\n並啟用快速鍵和 VCS 功能。\n(這之前被稱為原理圖項目。)\n\n一般來說,你§6不應該§r使用這個功能,\n除非你真的知道它是如何工作的。\n它在一定程度上改變了區域選擇、放置和貼上的工作方式,\n特別是在貼上時還存在一個區域刪除操作。\n\n基本上,這個功能是為更新、修改原理圖而設計的,\n它允許你更容易地為同一版本原理圖建立多個版本/快照,\n也可以透過先刪除目前版本,\n然後貼上下一個版本來在不同版本之間切換", + "litematica.config.visuals.comment.enableAreaSelectionBoxesRendering": "該選項可以切換是否顯示選區的邊框", + "litematica.config.visuals.comment.enablePlacementBoxesRendering": "該選項可以切換是否顯示投影區域的邊框", + "litematica.config.visuals.comment.enableRendering": "繪製的主開關,該選項可切換所有繪製是否開啟", + "litematica.config.visuals.comment.enableSchematicBlocksRendering": "啟用原理圖方塊繪製\n停用後你將只能看見原理圖錯誤渲染器,看不見具體的方塊", + "litematica.config.visuals.comment.enableSchematicFluidRendering": "開啟原理圖的流體繪製\n關閉這個功能可以讓你更容易查看被流體覆蓋方塊和邊框\n此功能還會移除液體所在區域的原理圖錯誤渲染器顯示", + "litematica.config.visuals.comment.enableSchematicOverlay": "原理圖錯誤渲染器的主開關", + "litematica.config.visuals.comment.enableSchematicRendering": "該選項可以切換是否顯示原理圖和原理圖錯誤渲染器", + "litematica.config.visuals.comment.renderSchematicMaxThreads": "最大結構圖世界繪製執行緒大小\n這將直接影響整體多執行緒效能\n\n§6請謹慎使用!!此設定只會在您退出遊戲並重新加入後生效", + "litematica.config.visuals.comment.ghostBlockAlpha": "當方塊繪製為半透明時,半透明方塊的透明度\n§6注意:§7您還需要單獨啟用§6 [方塊半透明化]§7!", + "litematica.config.visuals.comment.ignoreExistingFluids": "啟用後,任何液體方塊將不會被視為 [額外方塊] 或 [錯誤方塊],即使結構檔案中顯示的是空氣或其他方塊\n這讓您可以更加方便的在水下建造\n注意:您很可能還得同時啟用 §6[繪製重疊方塊]§r,以允許方塊在流體中繪製", + "litematica.config.visuals.comment.overlayReducedInnerSides": "如果啟用,可以使得投影內方塊接觸的側面不被顯示\n有兩個優點\n-1. 首先減少了投影的繪製工作量\n-2. 在投影內部時,內部的雜色會變淡\n\n§b譯註:雖然預設是關閉但建議開啟 - ZMDF", + "litematica.config.visuals.comment.placementBoxSideAlpha": "子區域邊框側面的透明度", + "litematica.config.visuals.comment.renderAOModernEnable": "啟用一個新的環境光遮蔽處理器,能夠修復陰影的顯示錯誤。\n但它也可能導致投影圖層出現來自相鄰圖層的陰影,這在你建造時可能會分散注意力", + "litematica.config.visuals.comment.renderAreaSelectionBoxSides": "啟用後,區域選擇邊框的側面將被繪製", + "litematica.config.visuals.comment.renderBlocksAsTranslucent": "啟用後,投影原理圖內的方塊展示將由\n不透明變為半透明狀態", + "litematica.config.visuals.comment.renderCollidingSchematicBlocks": "啟用後,當客戶端世界中存在錯誤的方塊時\n投影原理圖內的方塊仍然會進行顯示\n\n當您試圖在一些有水或著雪層的地方建造時會很有用", + "litematica.config.visuals.comment.renderErrorMarkerConnections": "啟用後,在驗證原理圖時,凸顯方塊之間會有連接線\n這是一些玩家遇到的繪製錯誤,但部分玩家喜歡這個效果並要求保留,所以此選項「復原」了該功能", + "litematica.config.visuals.comment.renderErrorMarkerSides": "啟用後,使用者在使用驗證器驗證原理圖是否正確後,\n當你在驗證器內選中了錯誤方塊\n它的展示方式將不僅僅標明顏色,\n還會標明它的貼圖(便於使用者知道錯誤的方塊是什麼)", + "litematica.config.visuals.comment.renderPlacementBoxSides": "啟用後,[投影區域] 的 [子區域] 會顯示側面顏色\n\n§b譯註:就是側面將顯示預設的選區顏色,影響視線——ZMDF", + "litematica.config.visuals.comment.renderPlacementEnclosingBox": "啟用後,會在 [投影區域] 中的所有 [子區域] 周圍呈現一個封閉框", + "litematica.config.visuals.comment.renderPlacementEnclosingBoxSides": "啟用後,則在投影中的所有 [子區域] 周圍的封閉框會繪製側面", + "litematica.config.visuals.comment.renderTranslucentBlockInnerSides": "如果啟用該選項,則投影內所有方塊的內表面將變為透明\n需要開啟 §6[方塊半透明化]§r\n", + "litematica.config.visuals.comment.schematicOverlayEnableOutlines": "啟用後,將會繪製投影原理圖方塊邊框的框線", + "litematica.config.visuals.comment.schematicOverlayEnableResorting": "啟用 投影原理圖錯誤渲染器 的透明排序功能", + "litematica.config.visuals.comment.schematicOverlayEnableSides": "啟用後,將會繪製投影原理圖 半透明方塊 的外表面", + "litematica.config.visuals.comment.schematicOverlayModelOutline": "啟用後,[原理圖錯誤渲染器] 的繪製將使用塊模型的四邊形/頂點,而不是傳統的覆蓋一整個方塊\n(主要針對不完整方塊)", + "litematica.config.visuals.comment.schematicOverlayModelSides": "如果啟用,[原理圖錯誤渲染器] 的繪製將使用方塊模型的四邊形/頂點,\n而不是傳統的覆蓋一整個方塊", + "litematica.config.visuals.comment.schematicOverlayOutlineWidth": "投影原理圖中方塊輪廓線的寬度設定", + "litematica.config.visuals.comment.schematicOverlayOutlineWidthThrough": "投影原理圖中透視方塊輪廓線的寬度設定", + "litematica.config.visuals.comment.schematicOverlayRenderThroughBlocks": "啟用後,[原理圖錯誤渲染器] 將穿過方塊進行繪製\n在您完成建築後,這可能會更容易查看建築中的錯誤", + "litematica.config.visuals.comment.schematicOverlayTypeExtra": "當開啟了原理圖透視後,開啟該選項將顯示多餘的方塊", + "litematica.config.visuals.comment.schematicOverlayTypeMissing": "當開啟了原理圖透視後,開啟該選項將顯示缺失的方塊", + "litematica.config.visuals.comment.schematicOverlayTypeWrongBlock": "當開啟了原理圖透視後,開啟該選項將顯示錯誤的方塊", + "litematica.config.visuals.comment.schematicOverlayTypeWrongState": "當開啟了原理圖透視後,開啟該選項將顯示錯誤狀態的方塊", + "litematica.config.visuals.comment.schematicVerifierUseBlockModels": "強制在原理圖驗證的結果列表中為所有內容使用方塊模型,\n對於含有有物品的方塊會使用物品模型,\n沒有對應物品的方塊會使用方塊模型,\n以及用於查看花盆中的植物", + "litematica.config.info_overlays.comment.blockInfoLinesAlignment": "方塊資訊的顯示位置", + "litematica.config.info_overlays.comment.blockInfoOverlayAlignment": "方塊提示彈出視窗的顯示位置", + "litematica.config.info_overlays.comment.infoHudAlignment": "資訊 HUD 的顯示位置\n包括材料列表、原理圖驗證等介面", + "litematica.config.info_overlays.comment.toolHudAlignment": "當你手持 [投影操作工具](預設是木棒)時,投影操作 HUD 的位置 ", + "litematica.config.info_overlays.comment.blockInfoLinesEnabled": "如果開啟該功能,MiniHUD 樣式的方塊資訊顯示將預設位於畫面右上角", + "litematica.config.info_overlays.comment.blockInfoLinesFontScale": "方塊資訊的字體大小", + "litematica.config.info_overlays.comment.blockInfoLinesOffsetX": "方塊資訊相對於畫面邊緣的 X 軸偏移量", + "litematica.config.info_overlays.comment.blockInfoLinesOffsetY": "方塊資訊相對於畫面邊緣的 Y 軸偏移量", + "litematica.config.info_overlays.comment.blockInfoOverlayOffsetY": "方塊提示彈出視窗相對於畫面邊緣的 Y 軸偏移量", + "litematica.config.info_overlays.comment.blockInfoOverlayEnabled": "啟用方塊資訊彈出視窗,以圖形方式顯示方塊貼圖\n可以在投影放錯時,為您提供投影原本方塊的資訊", + "litematica.config.info_overlays.comment.infoHudMaxLines": "材料 HUD 一次顯示的最大行數", + "litematica.config.info_overlays.comment.infoHudOffsetX": "工具 HUD 相對於畫面邊緣的 X 軸偏移量", + "litematica.config.info_overlays.comment.infoHudOffsetY": "材料 HUD 相對於畫面邊緣的 Y 軸偏移量", + "litematica.config.info_overlays.comment.infoHudScale": "材料 HUD 的縮放大小", + "litematica.config.info_overlays.comment.infoOverlaysTargetFluids": "啟用後,方塊資訊疊加時\n將能夠焦點定位到流體而不是穿過它們", + "litematica.config.info_overlays.comment.materialListHudMaxLines": "控制材料 HUD 的最大行數", + "litematica.config.info_overlays.comment.materialListHudScale": "控制材料 HUD 的縮放大小", + "litematica.config.info_overlays.comment.statusInfoHud": "啟用狀態資訊 HUD 顯示,它會顯示一些狀態資訊,比如目前的圖層模式和渲染器的狀態", + "litematica.config.info_overlays.comment.statusInfoHudAuto": "當需要時,允許自動暫時開啟狀態資訊 HUD\n例如當建立一個位置或者停用繪製時", + "litematica.config.info_overlays.comment.toolHudOffsetX": "資訊 HUD 相對於畫面邊緣的 X 軸偏移量", + "litematica.config.info_overlays.comment.toolHudOffsetY": "資訊 HUD 相對於畫面邊緣的 Y 軸偏移量", + "litematica.config.info_overlays.comment.toolHudScale": "控制工具 HUD 的文字縮放大小", + "litematica.config.info_overlays.comment.verifierErrorHilightAlpha": "錯誤標記框側面的透明度值", + "litematica.config.info_overlays.comment.verifierErrorHilightMaxPositions": "在開啟原理圖驗證程式對目前放置進行驗證後,\n點擊驗證當中出現問題的方塊時,\n錯誤的方塊在透視狀態下所顯示的最大數量", + "litematica.config.info_overlays.comment.verifierOverlayEnabled": "啟用原理圖驗證繪製", + "litematica.config.info_overlays.comment.warnDisabledRendering": "當載入一個新的原理圖或建立一個新的位置時,\n是否應該顯示關於該層的一些警告訊息", + "litematica.config.colors.comment.areaSelectionBoxSideColor": "選區未被選中時邊框的顏色", + "litematica.config.colors.comment.hightlightBlockInInventoryColor": "在物品欄中凸顯顯示目標方塊的顏色", + "litematica.config.colors.comment.materialListHudItemCountsColor": "材料列表開啟 HUD 後的遊戲內材料數量的顏色", + "litematica.config.colors.comment.schematicRebuildBreakPlaceOverlayColor": "在重建原理圖模式的批次刪除當中,\n在方向選擇器上的指示器顏色", + "litematica.config.colors.comment.schematicRebuildBreakExceptPlaceOverlayColor": "在重建原理圖模式當中,選擇保留方塊的指示器顏色", + "litematica.config.colors.comment.schematicRebuildReplaceOverlayColor": "在重建原理圖模式的批次取代當中,\n在方向選擇器上的指示器顏色", + "litematica.config.colors.comment.schematicOverlayColorExtra": "多餘方塊在原理圖錯誤渲染器內顯示的顏色", + "litematica.config.colors.comment.schematicOverlayColorMissing": "缺失方塊在原理圖錯誤渲染器內顯示的顏色", + "litematica.config.colors.comment.schematicOverlayColorWrongBlock": "錯誤方塊在原理圖錯誤渲染器內顯示的顏色", + "litematica.config.colors.comment.schematicOverlayColorWrongState": "方塊狀態錯誤在原理圖錯誤渲染器內顯示的顏色", + "litematica.config.hotkeys.comment.addSelectionBox": "在目前位置加入一個新的選區(位置 1)", + "litematica.config.hotkeys.comment.cloneSelection": "快速複製目前選定的區域\n這將建立一個僅存在於記憶體中的原理圖檔案,放置該原理圖,並選中它,同時將工具模式切換到貼上模式", + "litematica.config.hotkeys.comment.deleteSelectionBox": "刪除目前選區", + "litematica.config.hotkeys.comment.easyPlaceUseKey": "當啟用 §6[簡單放置模式]§r 時,此快捷鍵用於放置方塊", + "litematica.config.hotkeys.comment.easyPlaceToggle": "允許玩家快速的切換 §6[簡單放置模式]§r", + "litematica.config.hotkeys.comment.executeOperation": "使用目前的選擇或放置,執行目前選定的工具操作,例如填充、取代、貼上原理圖等模式", + "litematica.config.hotkeys.comment.invertGhostBlockRenderState": "當按住此按鍵時,調整原理圖/半透明方塊的繪製狀態", + "litematica.config.hotkeys.comment.invertOverlayRenderState": "當按住此按鍵時,調整原理圖錯誤渲染器的繪製狀態", + "litematica.config.hotkeys.comment.layerModeNext": "切換為下一個繪製模式", + "litematica.config.hotkeys.comment.layerModePrevious": "切換為上一個繪製模式", + "litematica.config.hotkeys.comment.layerNext": "將繪製的圖層向上移動一層", + "litematica.config.hotkeys.comment.layerPrevious": "將繪製的圖層向下移動一層", + "litematica.config.hotkeys.comment.layerSetHere": "將繪製層的初始位置設定為玩家目前位置", + "litematica.config.hotkeys.comment.nudgeSelectionNegative": "向面向方向前移選區位置,其效果與 Alt + 滑鼠滾輪效果類似", + "litematica.config.hotkeys.comment.nudgeSelectionPositive": "向面向方向後移選區位置,其效果與 Alt + 滑鼠滾輪效果類似", + "litematica.config.hotkeys.comment.moveEntireSelection": "移動整個選區至玩家所在的目前位置", + "litematica.config.hotkeys.comment.openGuiAreaSettings": "開啟目前選區的區域設定 GUI 介面", + "litematica.config.hotkeys.comment.openGuiLoadedSchematics": "開啟原理圖載入的 GUI 介面", + "litematica.config.hotkeys.comment.openGuiMainMenu": "開啟 Litematica 的主介面選單", + "litematica.config.hotkeys.comment.openGuiMaterialList": "開啟目前選擇的投影材料列表 GUI ", + "litematica.config.hotkeys.comment.openGuiPlacementSettings": "開啟目前選區或其子區域的設定原理圖放置 GUI ", + "litematica.config.hotkeys.comment.openGuiSchematicPlacements": "開啟管理原理圖放置 GUI ", + "litematica.config.hotkeys.comment.openGuiSchematicProjects": "開啟原理圖工程資料夾 GUI ", + "litematica.config.hotkeys.comment.openGuiSchematicVerifier": "開啟目前選定的原理圖的原理圖驗證器 GUI ", + "litematica.config.hotkeys.comment.openGuiSelectionManager": "開啟區域選擇管理器的 GUI ", + "litematica.config.hotkeys.comment.openGuiSettings": "開啟投影設定選單的 GUI ", + "litematica.config.hotkeys.comment.operationModeChangeModifier": "快速修改模式,當玩家手 [投影操作工具] 時。\n玩家可以按住該按鍵捲動滾輪快速調整模式", + "litematica.config.hotkeys.comment.pickBlockFirst": "該按鍵可以選中指向的表面方塊,\n並將將其切換至手中", + "litematica.config.hotkeys.comment.pickBlockLast": "該按鍵可以選中目前可以放置的最遠的方塊\n當然這得看你對準了哪個面", + "litematica.config.hotkeys.comment.pickBlockToggle": "在通用設定當中快速關閉或開啟 [方塊選取] 的快捷鍵\n\n如果它們產生了功能衝突,這是一種快速切換其模式的方法", + "litematica.config.hotkeys.comment.renderInfoOverlay": "按下時顯示在原理圖中和實際世界中你看向的方塊的狀態資訊,包括類型和方塊屬性。\n如果不設定,那麼將無需按下任何鍵永遠顯示", + "litematica.config.hotkeys.comment.renderOverlayThroughBlocks": "該快捷鍵將用於允許 [原理圖錯誤渲染器] 穿過方塊繪製\n這是一個更快捷的方式,開啟後與 §6[視覺]§r 選項中的 §6[原理圖透視]§r 擁有相同的功能", + "litematica.config.hotkeys.comment.rerenderSchematic": "使用該快捷鍵重載原理圖,而不需要使用 F3 + A 重新整理區塊", + "litematica.config.hotkeys.comment.saveAreaAsInMemorySchematic": "將目前選中區域的原理圖儲存於記憶體當中", + "litematica.config.hotkeys.comment.saveAreaAsSchematicToFile": "將目前選中區域的原理圖儲存於檔案當中", + "litematica.config.hotkeys.comment.schematicEditBreakAllExcept": "在重建原理圖的模式當中\n按住該鍵可使得玩家在原理圖當中僅保留指定的選中方塊\n這也就意味著除了你選中的方塊,其他投影方塊將被刪除", + "litematica.config.hotkeys.comment.schematicEditBreakPlaceAll": "在重建原理圖模式當中\n按住該按鍵可以刪除所有同類方塊", + "litematica.config.hotkeys.comment.schematicEditBreakPlaceDirection": "在重建原理圖的模式當中\n按住該鍵可加入或刪除原理圖內指定方向的相同方塊\n如果使用加入,該方塊會填滿該方向的所有空位", + "litematica.config.hotkeys.comment.schematicEditReplaceAll": "在重建原理圖的模式當中\n按住該鍵可使用手中方塊取代原理圖內的相同方塊", + "litematica.config.hotkeys.comment.schematicEditReplaceBlock": "在重建原理圖的模式當中\n按住該鍵可使用手中方塊取代原理圖內的相同類型方塊\n然而這個類型很模糊", + "litematica.config.hotkeys.comment.schematicEditReplaceDirection": "在重建原理圖的模式當中\n按住該鍵可使用手中方塊取代原理圖內指定方向的相同方塊", + "litematica.config.hotkeys.comment.schematicPlacementRotation": "按下該鍵時將原理圖順時針旋轉 90 度", + "litematica.config.hotkeys.comment.schematicPlacementMirror": "按下該鍵時原理圖會鏡像翻轉", + "litematica.config.hotkeys.comment.schematicVersionCycleModifier": "按住該鍵捲動滾輪可以選擇投影的版本", + "litematica.config.hotkeys.comment.schematicVersionCycleNext": "在版本控制工具模式下,循環到上一個投影版本的快速鍵", + "litematica.config.hotkeys.comment.schematicVersionCyclePrevious": "用於在版本控制工具模式下切換到下一個結構圖版本的快捷鍵", + "litematica.config.hotkeys.comment.selectionGrabModifier": "按住快捷鍵,抓取選擇框角點,\n移動選區(模式 7 移動)", + "litematica.config.hotkeys.comment.selectionGrow": "點擊快捷鍵後,自動擴展 選擇區域 以包含任何相鄰或對角連接方塊\n\n§b譯註:然而它直接選中了我能看到的整個地圖 384*72*384 ——來自 ZMDF 的吐欄", + "litematica.config.hotkeys.comment.selectionGrowModifier": "按住快捷鍵,滑動滾輪\n可以延長體對角線的長度", + "litematica.config.hotkeys.comment.selectionNudgeModifier": "按住快捷鍵,滑動滾輪\n可以移動選區位置", + "litematica.config.hotkeys.comment.selectionModeCycle": "在選區模式當中切換角點或展開模式", + "litematica.config.hotkeys.comment.selectionShrink": "用於縮小選擇框的操作快捷鍵,使其在任何一側都沒有空白區域", + "litematica.config.hotkeys.comment.setAreaOrigin": "設定/移動目前區域選擇的原點到玩家的位置", + "litematica.config.hotkeys.comment.setSelectionBoxPosition1": "將選區第一個角點的位置設定為玩家目前位置", + "litematica.config.hotkeys.comment.setSelectionBoxPosition2": "將選區第二個角點的位置設定為玩家目前位置", + "litematica.config.hotkeys.comment.toggleAllRendering": "開啟或關閉所有的繪製", + "litematica.config.hotkeys.comment.toggleAreaSelectionBoxesRendering": "切換選擇區域的框線是否顯示的快捷鍵", + "litematica.config.hotkeys.comment.toggleSchematicRendering": "切換投影區域內方塊是否顯示的快捷鍵", + "litematica.config.hotkeys.comment.toggleInfoOverlayRendering": "切換方塊資訊是否顯示的快捷鍵", + "litematica.config.hotkeys.comment.toggleOverlayRendering": "切換投影區域的方塊是否顯示方塊邊框及方塊色差的快捷鍵", + "litematica.config.hotkeys.comment.toggleOverlayOutlineRendering": "切換是否顯示原理圖錯誤渲染器邊框的快捷鍵", + "litematica.config.hotkeys.comment.toggleOverlaySideRendering": "切換是否顯示原理圖錯誤渲染器側邊的快捷鍵", + "litematica.config.hotkeys.comment.togglePlacementBoxesRendering": "切換投影範圍框線是否顯示的快捷鍵", + "litematica.config.hotkeys.comment.togglePlacementRestriction": "切換放置位置限制模式的快捷鍵", + "litematica.config.hotkeys.comment.toggleSchematicBlockRendering": "切換投影方塊的貼圖是否顯示的快捷鍵", + "litematica.config.hotkeys.comment.toggleSignTextPaste": "切換是否貼上告示牌文字的快捷鍵(在通用類別中)", + "litematica.config.hotkeys.comment.toggleTranslucentRendering": "切換投影方塊是否為半透明或透明的快捷鍵", + "litematica.config.hotkeys.comment.toggleVerifierOverlayRendering": "切換原理圖錯誤渲染器是否啟用", + "litematica.config.hotkeys.comment.toolEnabledToggle": "切換是否開啟 [投影操作工具](預設為木棒)的快捷鍵", + "litematica.config.hotkeys.comment.toolPlaceCorner1": "當手持範圍 [投影操作工具](預設為木棒)時放置角點 1", + "litematica.config.hotkeys.comment.toolPlaceCorner2": "當手持範圍 [投影操作工具](預設為木棒)時放置角點 2", + "litematica.config.hotkeys.comment.toolSelectElements": "當手持範圍 [投影操作工具](預設為木棒)時指向角點或區域將選中角點或區域", + "litematica.config.hotkeys.comment.toolSelectModifierBlock1": "使用 §6[區域選擇]§r 快捷鍵時需要按住的修飾鍵\n用於選擇某些工具模式中使用的主要方塊類型\n(§4適用於取代填充等功能§r)", + "litematica.config.hotkeys.comment.toolSelectModifierBlock2": "使用 §6[區域選擇]§r 快捷鍵時需要按住的修飾鍵\n用於選擇某些工具模式中使用的主要方塊類型\n(§4適用於取代填充等功能§r)", + "litematica.config.hotkeys.comment.unloadCurrentSchematic": "移除目前選定放置點的結構圖,從而移除所有由其建立的放置點", + "litematica.config.generic.prettyName.pickBlockEnabled": "方塊選取", + "litematica.config.generic.prettyName.easyPlaceMode": "簡單放置模式", + "litematica.config.generic.prettyName.placementRestriction": "放置位置限制", + "litematica.config.generic.prettyName.signTextPaste": "貼上告示牌文字", + "litematica.config.generic.prettyName.toolItemEnabled": "投影操作工具", + "litematica.config.visuals.prettyName.enableAreaSelectionBoxesRendering": "選區邊框繪製", + "litematica.config.visuals.prettyName.enablePlacementBoxesRendering": "投影邊框繪製", + "litematica.config.visuals.prettyName.enableRendering": "全部繪製", + "litematica.config.visuals.prettyName.enableSchematicBlocksRendering": "投影方塊顯示", + "litematica.config.visuals.prettyName.enableSchematicFluidRendering": "流體繪製", + "litematica.config.visuals.prettyName.enableSchematicOverlay": "原理圖錯誤渲染器", + "litematica.config.visuals.prettyName.enableSchematicRendering": "繪製投影", + "litematica.config.visuals.prettyName.renderAOModernEnable": "環境光遮蔽處理器", + "litematica.config.visuals.prettyName.renderBlocksAsTranslucent": "方塊半透明化", + "litematica.config.visuals.prettyName.schematicOverlayEnableOutlines": "原理圖錯誤渲染器啟用框線", + "litematica.config.visuals.prettyName.schematicOverlayEnableResorting": "原理圖錯誤渲染器啟用半透明重排", + "litematica.config.visuals.prettyName.schematicOverlayEnableSides": "原理圖錯誤渲染器啟用側面", + "litematica.config.info_overlays.prettyName.blockInfoOverlayEnabled": "顯示方塊資訊", + "litematica.config.info_overlays.prettyName.verifierOverlayEnabled": "原理圖驗證繪製", + "litematica.config.hotkeys.prettyName.toggleAllRendering": "全部繪製", + "litematica.error.area_selection.copy_failed": "無法複製選區", + "litematica.error.area_selection.create_failed": "無法建立一個名為「%s」的新選區檔案,因為檔案已存在", + "litematica.error.area_selection.failed_to_load": "無法載入選區", + "litematica.error.area_selection.grow.no_sub_region_selected": "沒有選中子區域", + "litematica.error.area_selection.no_placement_selected": "沒有選中放置的投影!", + "litematica.error.area_selection.rename.already_exists": "錯誤:已經存在一個檔案名為「%s」的區域", + "litematica.error.area_selection.rename.invalid_safe_file_name": "生成的安全檔案名無效:「%s」", + "litematica.error.duplicate_schematic_placement": "錯誤:嘗試加入一個已經存在的投影放置", + "litematica.error.generic.creative_mode_only": "這個行為僅在創造模式中可用", + "litematica.error.generic.failed_to_delete_file": "無法刪除檔案「%s」", + "litematica.error.generic.failed_to_sort_list_of_ignored_states": "無法對忽略狀態列表進行排序", + "litematica.error.generic.schematic_world_not_loaded": "原理圖世界未被載入", + "litematica.error.area_editor.create_sub_region.exists": "名為「%s」子區域已經存在", + "litematica.error.area_editor.no_selection": "沒有活動的區域選擇", + "litematica.error.area_editor.open_gui.no_selection": "目前處於選擇模式:正常,但目前未選擇任何區域", + "litematica.error.area_editor.rename_sub_region.exists": "重新命名子區域失敗\n已存在同名子區域「%s」", + "litematica.error.area_editor.switch_mode.no_selection": "無法切換到選擇模式:正常,因為目前沒有選擇區域。\n請在區域選擇瀏覽器中選擇一個區域或建立一個新的選擇", + "litematica.error.schematic_conversion.litematic_to_litematica.failed_to_read_litematic": "無法載入 Litematica 原理圖", + "litematica.error.schematic_conversion.litematic_to_litematica.failed_to_downgrade_litematic": "無法降級原理圖檔案", + "litematica.error.schematic_conversion.schematic_to_litematica.failed_to_create_schematic": "建立 Litematica 原理圖失敗", + "litematica.error.schematic_conversion.schematic_to_litematica.failed_to_read_schematic": "載入原理圖失敗", + "litematica.error.schematic_conversion.structure_to_litematica_failed": "無法將結構轉換為 Litematica 原理圖", + "litematica.error.schematic.create.no_selections": "沒有選擇任何有效的區域!", + "litematica.error.schematic_load.cant_read_file": "無法讀取原理圖檔案「%s」(檔案不存在或權限問題)", + "litematica.error.schematic_load.no_schematic_selected": "未選擇原理圖檔案!", + "litematica.error.schematic_load.no_schematic_version_information": "該原理圖沒有版本資訊,無法被安全載入", + "litematica.error.schematic_load.unsupported_schematic_version": "不支援的或將來版本的原理圖「%d」", + "litematica.error.schematic_load.unsupported_type": "未知或不支援的檔案類型「%s」", + "litematica.error.schematic_manager.schematic_export.unsupported_type": "只能以其他格式匯出 Litematica 原理圖", + "litematica.error.schematic_manager.schematic_import.unsupported_type": "所選的原理圖類型不支援匯入", + "litematica.error.schematic_placements.remove_fail_locked": "位置已鎖定\n- 按住 Shift 鍵強制刪除", + "litematica.error.schematic_save.directory_doesnt_exist": "沒有目錄:「%s」", + "litematica.error.schematic_save.file_already_exists": "檔案「%s」已經存在", + "litematica.error.schematic_save.invalid_directory": "無效目錄「%s」", + "litematica.error.schematic_save.invalid_schematic_name": "無效的原理圖名稱「%s」", + "litematica.error.schematic_save.schematic_creation_failed": "建立原理圖失敗", + "litematica.error.schematic_read_from_file_failed.cant_read": "無法從檔案「%s」中讀取原理圖", + "litematica.error.schematic_read_from_file_failed.exception": "從檔案「%s」中讀取原理圖時出現異常", + "litematica.error.schematic_read_from_file_failed.no_file": "無法從檔案中讀取原理圖:沒有可用的檔案(可能是您將原理圖儲存在記憶體中?)", + "litematica.error.schematic_projects.empty_selection": "空白區域選擇(0 個子區域)", + "litematica.error.schematic_projects.failed_to_load_project": "載入項目失敗", + "litematica.error.schematic_projects.failed_to_load_schematic": "載入目前版本的原理圖失敗", + "litematica.error.schematic_projects.failed_to_rename_project_file_exception": "未能將項目檔案重新命名為「%s」(錯誤)", + "litematica.error.schematic_projects.failed_to_rename_project_file_exists": "無法將項目重新命名為「%s」,檔案已存在", + "litematica.error.schematic_projects.invalid_project_directory": "項目目錄無效或不存在", + "litematica.error.schematic_projects.no_project_open": "沒有項目被開啟", + "litematica.error.schematic_projects.in_projects_mode_but_no_project_open": "目前處於原理圖項目模式,但目前沒有開啟的項目", + "litematica.error.schematic_projects.null_player": "玩家為空", + "litematica.error.schematic_projects.project_already_exists": "項目「%s」已經存在", + "litematica.error.schematic_projects.save_already_in_progress": "正在儲存", + "litematica.error.schematic_write_to_file_failed.directory_creation_failed": "未能建立原理圖目錄「%s」", + "litematica.error.schematic_write_to_file_failed.exception": "未能將原理圖寫入檔案「%s」(錯誤)", + "litematica.error.schematic_write_to_file_failed.exists": "未能將結構寫入檔案「%s」,檔案已存在", + "litematica.error.structure_write_to_file_failed.exception": "未能將結構寫入檔案「%s」(錯誤)", + "litematica.error.structure_write_to_file_failed.exists": "未能將結構寫入檔案「%s」,檔案已存在", + "litematica.hotkeys.category.generic_hotkeys": "通用快速鍵", + "litematica.info.schematic_load.schematic_loaded": "原理圖「%s」成功載入到記憶體中", + "litematica.info.schematic_manager.preview.right_click_to_cancel": "- 右鍵點擊按鈕以取消掛起的預覽操作\n- 按 Ctrl + Alt + Shift 並點擊,將從與原理圖檔案位於同一目錄中的名為「thumb.png」的現有 PNG 圖片設定為縮圖", + "litematica.info.schematic_manager.preview.set_preview_by_taking_a_screenshot": "使用普通畫面擷圖鍵設定預覽\n或者右鍵點擊 [設定預覽] 按鈕取消設定預覽", + "litematica.info.schematic_manager.preview.success": "已成功設定預覽影像", + "litematica.gui.button.area_editor.analyze_area": "分析區域", + "litematica.gui.button.area_editor.change_corner_mode": "角點模式:%s", + "litematica.gui.button.area_editor.change_selection_mode": "選擇模式:%s", + "litematica.gui.button.area_editor.create_schematic": "儲存原理圖", + "litematica.gui.button.area_editor.create_sub_region": "新增子區域", + "litematica.gui.button.area_editor.origin_enabled": "手動來源:%s", + "litematica.gui.button.area_editor.set_box_name": "確定", + "litematica.gui.button.area_editor.set_selection_name": "確定", + "litematica.gui.button.area_selection_mode": "區域選擇模式:%s", + "litematica.gui.button.area_selections.create_directory": "建立目錄", + "litematica.gui.button.area_selections.create_new_selection": "新選擇", + "litematica.gui.button.area_selections.create_selection_from_placement": "從位置", + "litematica.gui.button.area_selections.unselect": "取消選擇", + "litematica.gui.button.change_menu.area_editor": "選區編輯器", + "litematica.gui.button.change_menu.configuration_menu": "設定選單", + "litematica.gui.button.change_menu.load_schematics_to_memory": "載入原理圖", + "litematica.gui.button.change_menu.schematic_manager": "原理圖目錄", + "litematica.gui.button.change_menu.schematic_projects_manager": "原理圖資料夾", + "litematica.gui.button.change_menu.show_area_selections": "選區目錄", + "litematica.gui.button.change_menu.show_loaded_schematics": "已載入原理圖", + "litematica.gui.button.change_menu.show_schematic_placements": "原理圖編輯", + "litematica.gui.button.change_menu.task_manager": "任務管理器", + "litematica.gui.button.change_menu.to_main_menu": "投影選單", + "litematica.gui.button.config_gui.colors": "顏色", + "litematica.gui.button.config_gui.generic": "通用", + "litematica.gui.button.config_gui.hotkeys": "快速鍵", + "litematica.gui.button.config_gui.info_overlays": "資訊覆蓋", + "litematica.gui.button.config_gui.render_layers": "繪製層", + "litematica.gui.button.config_gui.visuals": "視覺", + "litematica.gui.button.config_gui.test": "測試", + "litematica.gui.button.hover.area_editor.shift_for_in_memory": "按住 Shift 建立一個僅在記憶體中的原理圖", + "litematica.gui.button.hover.area_selections.unselect": "取消選擇目前區域選擇", + "litematica.gui.button.hover.material_list.clear_cache": "清除材料快取\n通常這不應該需要做的\n這可以用來代替刪除「material_cache.nbt」檔案,以防快取含有一些錯誤的資料,比如一些不應存在的物品(活塞頭)", + "litematica.gui.button.hover.material_list.write_hold_shift_for_csv": "按住 Shift 寫入 csv 檔案,\n而不是普通的 ASCII-art 文字檔案", + "litematica.gui.button.hover.material_list_shift_to_select_sub_regions": "按住 Shift 選擇用於材料列表的子區域", + "litematica.gui.button.hover.plus_minus_tip": "左鍵點擊可增大\n右鍵點擊可減小\nShift/Alt 增加步長", + "litematica.gui.button.hover.plus_minus_tip_ctrl_alt_shift": "左鍵點擊可增大\n右鍵點擊可減小\nShift/Alt/Ctrl 增加步長(乘法)", + "litematica.gui.button.hover.schematic_list.reload_schematic": "從檔案重新載入原理圖\n如果你在原理圖編輯模式犯錯了這會很有用", + "litematica.gui.button.hover.schematic_projects.area_browser_disabled_currently_in_projects_mode": "目前開啟了一個原理圖項目\n原理圖項目將覆蓋正常區域選擇功能", + "litematica.gui.button.hover.schematic_projects.delete_area": "§6刪除最後放置或儲存的區域§r", + "litematica.gui.button.hover.schematic_projects.menu_warning": "(這個功能之前叫做 Schematic Projects)\n一般來說,除非你確實了解它的工作原理和功能,否則你§6不應該§r使用這個功能。\n它在某種程度上改變了區域選擇、放置和貼上的工作方式,尤其是在貼上時還有一個區域刪除操作。\n\n基本上,這個功能是為了 §6疊代、就地§r 設計工作而設計的,它可以讓你更容易建立同一建築的多個版本/快照,並且透過先刪除世界中的內容,然後在其位置貼上下一個版本來切換版本", + "litematica.gui.button.hover.schematic_projects.move_origin_to_player": "將項目原點移動到玩家目前位置\n這還會移動區域選擇和放置", + "litematica.gui.button.hover.schematic_projects.place_to_world_warning": "§6警告:這將在一個之前放置或者儲存的\n§6一個版本的區域裡,刪除/覆蓋目前世界裡的方塊\n§6(基本上是最後一次看到的「有效區域選擇」)", + "litematica.gui.button.hover.schematic_projects.save_new_version": "將新的原理圖/版本儲存到目前項目", + "litematica.gui.button.material_list": "材料列表", + "litematica.gui.button.material_list.clear_cache": "清除快取", + "litematica.gui.button.material_list.clear_ignored": "清除忽略", + "litematica.gui.button.material_list.hide_available": "隱藏可用:%s", + "litematica.gui.button.material_list.ignore": "忽略", + "litematica.gui.button.material_list.list_type": "顯示:%s", + "litematica.gui.button.material_list.refresh_list": "重新整理", + "litematica.gui.button.material_list.toggle_info_hud": "資訊 HUD:%s", + "litematica.gui.button.material_list.write_to_file": "寫入檔案", + "litematica.gui.button.placement_sub.placement_configuration": "放置設定", + "litematica.gui.button.placement_sub.reset_sub_region_placement": "重設子區域", + "litematica.gui.button.placement_sub.slice_type": "切片:%s", + "litematica.gui.button.schematic_manager.export_as": "匯出為 :", + "litematica.gui.button.schematic_placement.abbr.rendering": "R", + "litematica.gui.button.schematic_placement.ignore_entities": "忽略實體:%s", + "litematica.gui.button.schematic_placement.region_enabled": "區域:%s", + "litematica.gui.button.schematic_placement.reset_sub_region_placements": "重設所有子區域", + "litematica.gui.button.schematic_placement.toggle_all_off": "全部 §c關閉§r", + "litematica.gui.button.schematic_placement.toggle_all_on": "全部 §a開啟§r", + "litematica.gui.button.schematic_placement.hover.enclosing_box": "封閉框呈現:%s", + "litematica.gui.button.schematic_placement.hover.lock": "鎖定位置可防止移動\n以其他方式變更它(意外地)", + "litematica.gui.button.schematic_placement.hover.rendering": "繪製:%s\n請注意,這有點奇怪,並且不會阻止實體繪製。\n通常,您應該完全停用放置功能", + "litematica.gui.button.schematic_placements.configure": "設定", + "litematica.gui.button.schematic_placements.disable": "停用", + "litematica.gui.button.schematic_placements.locked": "已鎖定:%s", + "litematica.gui.button.schematic_placements.placement_enabled": "位置:%s", + "litematica.gui.button.schematic_placements.remove": "刪除", + "litematica.gui.button.schematic_placements.rendering_enabled": "繪製:%s", + "litematica.gui.button.schematic_placements.select": "選擇", + "litematica.gui.button.schematic_projects.close_project": "關閉目前項目", + "litematica.gui.button.schematic_projects.create_project": "建立項目", + "litematica.gui.button.schematic_projects.delete_area": "刪除區域", + "litematica.gui.button.schematic_projects.load_project": "載入項目", + "litematica.gui.button.schematic_projects.move_origin_to_player": "移動到玩家", + "litematica.gui.button.schematic_projects.open_area_editor": "區域編輯", + "litematica.gui.button.schematic_projects.open_manager_gui": "開啟管理器", + "litematica.gui.button.schematic_projects.open_project_browser": "項目瀏覽器", + "litematica.gui.button.schematic_projects.place_to_world": "在世界上放置", + "litematica.gui.button.schematic_projects.save_version": "儲存版本", + "litematica.gui.button.schematic_verifier.ignore": "忽略", + "litematica.gui.button.schematic_verifier.range_type": "範圍:%s", + "litematica.gui.button.schematic_verifier.reset_ignored": "重設被忽略", + "litematica.gui.button.schematic_verifier.reset_verifier": "重設資料", + "litematica.gui.button.schematic_verifier.resume": "摘要驗證", + "litematica.gui.button.schematic_verifier.start": "開始驗證", + "litematica.gui.button.schematic_verifier.stop": "停止驗證", + "litematica.gui.button.schematic_verifier.toggle_info_hud": "資訊 HUD:%s", + "litematica.gui.button.cancel": "取消", + "litematica.gui.button.configure": "設定", + "litematica.gui.button.copy": "複製", + "litematica.gui.button.create_directory": "新增目錄", + "litematica.gui.button.create_placement": "創造放置", + "litematica.gui.button.delete": "刪除", + "litematica.gui.button.disable": "停用", + "litematica.gui.button.enable": "啟用", + "litematica.gui.button.import": "匯入", + "litematica.gui.button.load_schematic_to_memory": "載入原理圖", + "litematica.gui.button.mirror_value": "鏡像:%s", + "litematica.gui.button.move_to_player": "移動到玩家", + "litematica.gui.button.ok": "OK", + "litematica.gui.button.reload": "重載", + "litematica.gui.button.remove": "刪除", + "litematica.gui.button.remove_placement": "刪除放置", + "litematica.gui.button.rename": "重新命名", + "litematica.gui.button.rotation_value": "旋轉:%s", + "litematica.gui.button.save_new_schematic_version": "儲存版本", + "litematica.gui.button.save_schematic": "儲存原理圖", + "litematica.gui.button.save_to_file": "儲存到檔案", + "litematica.gui.button.schematic_verifier": "原理圖驗證程式", + "litematica.gui.button.set_preview": "設定預覽", + "litematica.gui.button.tool_mode": "工具模式:%s", + "litematica.gui.button.unload": "移除", + "litematica.gui.button.unlocked": "解鎖", + "litematica.gui.label.area_editor.box_name": "子區域框名稱", + "litematica.gui.label.area_editor.selection_name": "選擇名稱", + "litematica.gui.label.area_editor.corner_1": "角 1", + "litematica.gui.label.area_editor.corner_2": "角 2", + "litematica.gui.label.area_editor.origin": "原點", + "litematica.gui.label.area_editor.dimensions": "尺寸", + "litematica.gui.label.area_editor.pos1": "角 1", + "litematica.gui.label.area_editor.pos2": "角 2", + "litematica.gui.label.area_editor.sub_regions": "子區域(%s)", + "litematica.gui.label.area_selection_manager.current_selection": "所選區域:%s", + "litematica.gui.label.area_selection_box_count": "框數:%d", + "litematica.gui.label.area_selection_origin": "原點:%s", + "litematica.gui.label.area_selection.mode.normal": "正常", + "litematica.gui.label.area_selection.mode.simple": "簡單", + "litematica.gui.label.block_info.state_client": "客戶端世界的方塊資訊", + "litematica.gui.label.block_info.state_schematic": "原理圖世界的方塊資訊", + "litematica.gui.label.block_info_list_type.all": "全部", + "litematica.gui.label.block_info_list_type.render_layers": "繪製層", + "litematica.gui.label.easy_place_protocol.auto": "自動", + "litematica.gui.label.easy_place_protocol.none": "關閉", + "litematica.gui.label.easy_place_protocol.slabs_only": "僅半磚", + "litematica.gui.label.easy_place_protocol.v2": "模式 2", + "litematica.gui.label.easy_place_protocol.v3": "模式 3", + "litematica.gui.label.data_fixer_mode.always": "總是", + "litematica.gui.label.data_fixer_mode.below_1205": "僅低於 1.20.5", + "litematica.gui.label.data_fixer_mode.below_120X": "僅低於 1.20.x", + "litematica.gui.label.data_fixer_mode.below_119X": "僅低於 1.19.x", + "litematica.gui.label.data_fixer_mode.below_117X": "僅低於 1.17.x", + "litematica.gui.label.data_fixer_mode.below_116X": "僅低於 1.16.x", + "litematica.gui.label.data_fixer_mode.below_113X": "僅低於 1.13.x", + "litematica.gui.label.data_fixer_mode.below_112X": "僅低於 1.12.x", + "litematica.gui.label.data_fixer_mode.never": "從不", + "litematica.gui.label.loaded_schematic.modified_on": "§6修改於 %s§r", + "litematica.gui.label.material_list.abbr.shulker_box": "盒", + "litematica.gui.label.material_list.title.available": "可用", + "litematica.gui.label.material_list.title.item": "項目", + "litematica.gui.label.material_list.title.missing": "缺少", + "litematica.gui.label.material_list.title.total": "總計", + "litematica.gui.label.material_list.multiplier": "倍數:", + "litematica.gui.label.material_list.name": "名稱", + "litematica.gui.label.material_list.progress": "進度:%s", + "litematica.gui.label.material_list.progress.done": "完成 %s", + "litematica.gui.label.material_list.progress.mismatch": "不匹配的 %s", + "litematica.gui.label.material_list.progress.missing": "缺少 %s", + "litematica.gui.label.material_list.total": "總計:%s 個物品", + "litematica.gui.label.origin.auto": "自動", + "litematica.gui.label.origin.manual": "手動", + "litematica.gui.label.paste_nbt_behavior.none": "無", + "litematica.gui.label.paste_nbt_behavior.place_data_modify": "放置 & /data modify", + "litematica.gui.label.paste_nbt_behavior.place_clone": "放置 & /clone", + "litematica.gui.label.placement_sub.region_name": "區域名:%s", + "litematica.gui.label.placement_sub.region_position": "區域位置", + "litematica.gui.label.placement_sub.region_size": "區域大小:%s", + "litematica.gui.label.placement_settings.placement_origin": "放置原點", + "litematica.gui.label.render_layers.hotkey": "快速鍵", + "litematica.gui.label.render_layers.hover.hotkey": "下一個/上一個圖層快速鍵將影響此邊界\n如果兩者都被選中,那麼快速鍵將影響最接近玩家的邊界", + "litematica.gui.label.replace_behavior.all": "所有", + "litematica.gui.label.replace_behavior.none": "無", + "litematica.gui.label.replace_behavior.with_non_air": "非空氣", + "litematica.gui.label.schematic_info.schematic_author": "原理圖作者:§f%s§r", + "litematica.gui.label.schematic_info.description": "說明:", + "litematica.gui.label.schematic_info.enclosing_size": "框大小:", + "litematica.gui.label.schematic_info.enclosing_size_value": "框大小:§f%s§r", + "litematica.gui.label.schematic_info.name": "名字:", + "litematica.gui.label.schematic_info.region_count": "區域:§f%d§r", + "litematica.gui.label.schematic_info.time_created": "已建立:§f%s§r", + "litematica.gui.label.schematic_info.time_modified": "修改自:§f%s§r", + "litematica.gui.label.schematic_info.total_blocks": "方塊總數:§f%d§r", + "litematica.gui.label.schematic_info.total_blocks_and_volume": "方塊/體積:§f%d§r/§f%d§r", + "litematica.gui.label.schematic_info.total_volume": "總體積:§f%d§r 個方塊", + "litematica.gui.label.schematic_info.version": "Litematica 版本:§f%d§r", + "litematica.gui.label.schematic_info.sponge_version": "Sponge 版本:§f%d§r", + "litematica.gui.label.schematic_info.vanilla_version": "原版結構", + "litematica.gui.label.schematic_info.schema": "我的世界:§f%s§r [資料版本 §f%d§r]", + "litematica.gui.label.schematic_load.checkbox.create_placement": "建立放置", + "litematica.gui.label.schematic_load.hoverinfo.create_placement": "立即建立新位置並選擇該位置", + "litematica.gui.label.schematic_placement.enclosing_size": "框尺寸:%s", + "litematica.gui.label.schematic_placement.hoverinfo.hold_shift_to_create_as_disabled": "按住Shift以在建立時停用放置", + "litematica.gui.label.schematic_placement.in_memory": "僅限記憶體", + "litematica.gui.label.schematic_placement.origin": "來源:%s", + "litematica.gui.label.schematic_placement.rename_placement": "重新命名放置:", + "litematica.gui.label.schematic_placement.schematic_file": "檔案:%s", + "litematica.gui.label.schematic_placement.schematic_name": "原理圖:%s", + "litematica.gui.label.schematic_placement.sub_region_count": "子區域:%s", + "litematica.gui.label.schematic_placement.sub_regions": "子區域(%s):", + "litematica.gui.label.schematic_projects.currently_open_project": "目前開啟的項目:%s", + "litematica.gui.label.schematic_projects.origin": "來源:", + "litematica.gui.label.schematic_projects.project": "項目:", + "litematica.gui.label.schematic_projects.version": "版本:%s(of %s)", + "litematica.gui.label.schematic_projects.version_entry": "請參見。%d - %s", + "litematica.gui.label.schematic_projects.version_name": "版本名:", + "litematica.gui.label.schematic_save.checkbox.ignore_entities": "忽略實體", + "litematica.gui.label.schematic_save.hover_info.hold_shift_to_overwrite": "按住 Shift 覆蓋現有檔案", + "litematica.gui.label.schematic_save.checkbox.save_from_schematic_world": "從結構世界中儲存", + "litematica.gui.label.schematic_save.hover_info.save_from_schematic_world": "如果啟用該選項,那麼會從「結構世界」中選定的內容來建立結構檔案,而不是從普通的原版世界中建立\n這可以讓你在不需要將結構貼上到臨時創造世界的情況下,直接合並或裁剪結構檔案", + "litematica.gui.label.schematic_save.checkbox.visible_blocks_only": "僅包含可見方塊 [實驗性內容]", + "litematica.gui.label.schematic_save.checkbox.support_blocks": "支撐方塊", + "litematica.gui.label.schematic_save.hover_info.support_blocks": "在 §6[僅包含可見方塊]§r 模式下,包含所有必要的支撐方塊,例如紅石中繼器、紅石比較器、地毯等可能受重力影響的方塊", + "litematica.gui.label.schematic_save.hoverinfo.hold_shift_to_overwrite": "按住 Shift 覆蓋現有檔案", + "litematica.gui.label.schematic_verifier.count": "數量", + "litematica.gui.label.schematic_verifier.expected": "預期", + "litematica.gui.label.schematic_verifier.found": "找到", + "litematica.gui.label.schematic_verifier_display_type.all": "全部(非忽略的)", + "litematica.gui.label.schematic_verifier_display_type.correct_state": "正確狀態", + "litematica.gui.label.schematic_verifier_display_type.extra": "額外的方塊", + "litematica.gui.label.schematic_verifier_display_type.missing": "缺失的方塊", + "litematica.gui.label.schematic_verifier_display_type.wrong_blocks": "錯誤的方塊", + "litematica.gui.label.schematic_verifier_display_type.wrong_state": "錯誤的狀態", + "litematica.gui.label.schematic_verifier.status.done_errors": "警告:§c方塊:%s§r,§6狀態:%s§r,§b缺失:%s§r,§d額外:%s§r", + "litematica.gui.label.schematic_verifier.status.done_correct_total": "§a正確:%s§r,總共:%s", + "litematica.gui.label.schematic_verifier.status.verifying": "不可見的區塊:%s / %s", + "litematica.gui.label.schematic_verifier.verifier": "原理圖驗證程式", + "litematica.gui.label.task.title.remaining_chunks": "%s,剩餘區塊(%s)", + "litematica.gui.label.task_name.area_analyzer": "區域分析器", + "litematica.gui.label.task_name.delete": "刪除任務", + "litematica.gui.label.task_name.fill": "填充任務", + "litematica.gui.label.task_name.material_list": "材料列表", + "litematica.gui.label.task_name.paste": "貼上原理圖", + "litematica.gui.label.task_name.save_schematic": "儲存原理圖", + "litematica.gui.label.task_name.verifier": "驗證程式", + "litematica.gui.message.confirm_file_deletion": "是否要刪除檔案「%s」", + "litematica.gui.message.schematic_projects.confirm_delete_area": "是否刪除「上次受影響」的區域?\n這將刪除這個工程管理器上次放置在世界上的,或者上次儲存為一個版本檔案的區域中任何方塊實體\n(基本上是「最後一次看到受影響的區域」,這樣如果你要循環版本,它就不會留下以前版本的方塊)", + "litematica.gui.message.schematic_projects.confirm_place_to_world": "你想把這個版本放到世界嗎?\n這將刪除項目管理器最後放置到世界的區域內的任何方塊和實體,或最後儲存為版本。(基本上是「最後見過受影響的區域」,這樣,如果你要循環版本,它不會留下以前版本的方塊)", + "litematica.gui.title.area_editor_normal": "區域編輯器(普通/多框模式)", + "litematica.gui.title.area_editor_normal_schematic_projects": "區域編輯器(§6§l版本控制系統區域§r)", + "litematica.gui.title.area_editor_simple": "區域編輯器(簡單模式)", + "litematica.gui.title.area_editor_sub_region": "區域編輯器(子區域)", + "litematica.gui.title.area_editor.sub_region_name": "子區域名稱", + "litematica.gui.title.area_selection_manager": "區域選擇管理器", + "litematica.gui.title.configure_schematic_placement": "設定原理圖放置", + "litematica.gui.title.configure_schematic_sub_region": "設定放置子區域", + "litematica.gui.title.configs": "Litematica 設定介面 - %s", + "litematica.gui.title.confirm_file_deletion": "確認檔案刪除", + "litematica.gui.title.copy_area_selection": "複製區域選擇「%s」", + "litematica.gui.title.create_area_selection": "新增區域選擇", + "litematica.gui.title.create_area_selection_from_placement": "從原理圖位置建立新的區域選擇", + "litematica.gui.title.create_directory": "新增目錄", + "litematica.gui.title.create_in_memory_schematic": "建立記憶體中的原理圖", + "litematica.gui.title.create_schematic_project": "新增原理圖項目", + "litematica.gui.title.litematica_main_menu": "投影 %s", + "litematica.gui.title.load_schematic": "載入原理圖", + "litematica.gui.title.manage_loaded_schematics": "管理載入的原理圖", + "litematica.gui.title.manage_schematic_placements": "管理原理圖放置", + "litematica.gui.title.material_list.area_analyzer": "選擇區域分析「%s」", + "litematica.gui.title.material_list.placement": "放置材料列表「%s」", + "litematica.gui.title.material_list.schematic": "原理圖的材料清單「%s」(%s of %s 區域)", + "litematica.gui.title.material_list.select_schematic_regions": "選擇材料列表的子區域「%s」", + "litematica.gui.title.rename_area_selection": "重新命名選擇區域", + "litematica.gui.title.rename_area_sub_region": "重新命名子區域", + "litematica.gui.title.rename_schematic": "重新命名原理圖", + "litematica.gui.title.create_schematic_from_selection": "將目前選定的區域另存新檔原理圖", + "litematica.gui.title.save_exported_schematic": "儲存匯出 %s 屬於「%s」", + "litematica.gui.title.save_imported_schematic": "儲存匯入的原理圖", + "litematica.gui.title.save_schematic_from_memory": "將記憶體中的原理圖儲存到檔案", + "litematica.gui.title.save_schematic_filename": "原理圖檔案名", + "litematica.gui.title.schematic_browser": "原理圖瀏覽器", + "litematica.gui.title.schematic_manager": "原理圖管理器", + "litematica.gui.title.schematic_project_manager": "原理圖工程目錄", + "litematica.gui.title.schematic_projects.confirm_delete_area": "確認刪除區域", + "litematica.gui.title.schematic_projects.confirm_place_to_world": "確認在世界中放置的操作", + "litematica.gui.title.schematic_projects.save_new_version": "儲存一個新的原理圖版本", + "litematica.gui.title.schematic_projects_browser": "原理圖工程瀏覽器", + "litematica.gui.title.schematic_verifier": "驗證「%s」原理圖", + "litematica.gui.title.schematic_verifier_errors": "原理圖驗證錯誤", + "litematica.gui.title.task_manager": "任務管理器", + "litematica.hud.area_selection.box_count": "框數:%s", + "litematica.hud.area_selection.dimensions_position": "尺寸:%s - p1:%s,p2:%s", + "litematica.hud.area_selection.mode.corners": "角點", + "litematica.hud.area_selection.mode.expand": "展開", + "litematica.hud.area_selection.origin": "原點:%s", + "litematica.hud.area_selection.selected_area_normal": "區域:%s", + "litematica.hud.area_selection.selected_area_simple": "區域 [§6簡單模式§r]:%s", + "litematica.hud.area_selection.selected_sub_region": "子區域:%s", + "litematica.hud.area_selection.selection_corners_mode": "角點模式:%s", + "litematica.hud.delete.target_mode": "刪除目標模式:%s", + "litematica.hud.delete.target_mode.area": "目前區域", + "litematica.hud.delete.target_mode.placement": "目前放置", + "litematica.hud.misc.easy_place_mode_enabled": "簡單放置模式 §a開啟§r", + "litematica.hud.misc.none_brackets": "", + "litematica.hud.misc.placement_restriction_mode_enabled": "限制放置模式 §a開啟§r", + "litematica.hud.misc.render_layer_mode": "圖層模式:%s - %s", + "litematica.hud.misc.render_layer_mode_all": "圖層模式:%s", + "litematica.hud.misc.renderer_status": "渲染器:A: %s S: %s B: %s O: %s SEL: %s", + "litematica.hud.misc.schematic_paste.data_restore_mode": "資料貼上模式:§b%s", + "litematica.hud.misc.schematic_paste.replace_mode": "取代模式:%s", + "litematica.hud.misc.schematic_paste.ignore_inventory_contents": "貼上忽略容器的內容物:%s", + "litematica.hud.schematic_placement.hover_info.lock_coordinate": "鎖定此座標\n這允許改變其他座標\n不影響鎖定的", + "litematica.hud.schematic_placement.hover_info.placement_locked": "此位置已鎖定,如果不先解鎖,則無法修改", + "litematica.hud.schematic_placement.hover_info.placement_modified": "此位置已修改", + "litematica.hud.schematic_placement.hover_info.placement_sub_region_modified": "此子區域已修改", + "litematica.hud.schematic_placement.selected_placement": "放置", + "litematica.hud.schematic_placement.selected_sub_region": "子區域", + "litematica.hud.schematic_placement.sub_region_count": "區域", + "litematica.hud.schematic_placement.sub_region_modified": "修改", + "litematica.hud.schematic_placement.sub_region_origin": "區域原點:%s", + "litematica.hud.schematic_placement.sub_regions_modified": "修改區域", + "litematica.hud.selected_mode": "模式", + "litematica.hud.schematic_projects.current_version_date": "資料:%s", + "litematica.hud.schematic_projects.current_version": "版本:%s/%s - 名字:%s", + "litematica.hud.schematic_projects.no_project_open": "<沒有項目開啟>", + "litematica.hud.schematic_projects.no_versions": "<沒有該版本>", + "litematica.hud.schematic_projects.origin": "項目來源:%s", + "litematica.hud.schematic_projects.project_name": "項目:%s", + "litematica.hud.schematic_projects_mode": "§6原理圖版本控制模式§r", + "litematica.info.material_list": "- 按下材料列表快捷鍵將開啟上次查看的材料列表(如果有儲存的列表)\n- 要切換到不同的材料列表,請透過放置設定 GUI 中的按鈕或結構瀏覽器開啟一個新列表\n- 如果變更了選定的結構放置,儲存的/上次查看的列表也會被忘記\n- 如果尚未查看任何材料列表,則會使用目前選定的放置(如果有)", + "litematica.label.alignment.center": "中心", + "litematica.label.alignment.top_center": "頂部中心", + "litematica.label.none_lower": "None", + "litematica.label.no": "No", + "litematica.label.yes": "Yes", + "litematica.message.error.area_deletion_aborted": "區域刪除中斷或中止", + "litematica.message.error.empty_area_selection": "空白區域選擇(無邊框)", + "litematica.message.error.invalid_schematic_name": "無效的原理圖名稱「%s」", + "litematica.message.error.no_area_selected": "§c沒有區域被選擇§r", + "litematica.message.error.no_placement_selected": "§c沒有選擇展示位置§r", + "litematica.message.error.only_works_in_single_player": "§c此操作僅在單個玩家中執行§r", + "litematica.message.error.move.pending_tasks": "§c當有待處理的任務時,無法進行移動§r", + "litematica.message.error.placement_paste_outside_world": "無法將放置貼上到目前位置,因為它超出了世界邊界", + "litematica.message.error.schematic_paste_failed": "§c原理圖貼上到世界失敗§r", + "litematica.message.error.schematic_save_failed": "無法將原理圖儲存到檔案「%s」", + "litematica.message.error.schematic_save_interrupted": "原理圖儲存中斷或停止", + "litematica.message.error.schematic_save_no_area_selected": "§c原理圖儲存失敗,未選擇任何區域§r", + "litematica.message.warn.pickblock.no_suitable_slot_found": "沒有可用的欄位來放置方塊!\n檢查 [通用] -> §e[快捷選擇欄位]§r 設定項。\n這也取決於 §e[避免選擇耐久物品/工具]§6 設定,只要某個欄位中有具有耐久度的物品,投影將不會選取它用來放置方塊", + "litematica.message.warn.pickblock.no_valid_slots_configured": "[通用] -> §e[快捷選擇欄位]§6 中的設定無效!", + "litematica.message.added_selection_box": "加入了一個新的選擇框在 %s", + "litematica.message.area_clear_fail": "§c清除區域失敗§r", + "litematica.message.area_cleared": "已清除區域", + "litematica.message.area_filled": "已填充區域", + "litematica.message.area_fill_fail": "填充區域失敗", + "litematica.message.area_selections.selection_created_from_placement": "在位置「%s」建立了新的選擇", + "litematica.message.easy_place_fail": "由輕鬆放置模式阻止的操作", + "litematica.message.grabbed_element_for_moving": "抓住要移動的元件", + "litematica.message.in_memory_schematic_created": "已將記憶體中的原理圖建立為「%s」", + "litematica.message.litematic_saved_as": "已成功升級投影射資料版本版本\n投影已儲存為「%s」", + "litematica.message.material_list.material_cache_cleared": "已清除材料快取", + "litematica.message.material_list_written_to_file": "材料列表寫入檔案「%s」", + "litematica.message.moved_area_origin": "移動區域原點 %s => %s", + "litematica.message.moved_selection": "移動所選內容 %s => %s", + "litematica.message.paste_with_servux": "§6正在將展示位置上傳至 Servux 進行貼上", + "litematica.message.placement.cant_modify_is_locked": "§c展示位置已鎖定且無法修改§r", + "litematica.message.placement.moved_placement_origin": "已移動展示位置 原點%s => %s", + "litematica.message.placement.moved_subregion_to": "移動子區域到 %s", + "litematica.message.placement.rotation_set_to": "放置旋轉為 %s 方向", + "litematica.message.placement.mirror_set_to": "放置鏡像為 %s 方向", + "litematica.message.placement_restriction_fail": "放置限制模式阻止的操作", + "litematica.message.removed_area_origin": "刪除了展示的/手動區域原點", + "litematica.message.removed_selection_box": "已刪除選擇框 %s", + "litematica.message.scheduled_task_added": "加入的計劃任務...", + "litematica.message.litematic_downgrade_exported_as": "原理圖已降級匯出為「%s」\n§6注意:這是一個實驗性功能,可能會發生資料遺失§r", + "litematica.message.schematic_exported_as": "原理圖匯出為「%s」", + "litematica.message.schematic_pasted": "在世界上貼上原理圖", + "litematica.message.schematic_pasted_using_fill_and_setblock": "使用§b%s§r fill 和 §b%s§r setblock 指令貼上投影檔案", + "litematica.message.schematic_pasted_using_setblock": "原理圖貼上使用 %s 放置指令", + "litematica.message.schematic_pasted_using_world_edit": "使用§b%s§r WorldEdit //set 指令貼上投影檔案", + "litematica.message.schematic_placement_created": "建立放置「%s」", + "litematica.message.schematic_preview_cancelled": "預覽任務已取消", + "litematica.message.schematic_read_from_file_success": "載入原理圖從檔案中「%s」", + "litematica.message.schematic_rendering_refreshed": "原理圖繪製已重新整理", + "litematica.message.schematic_saved_as": "原理圖儲存為「%s」", + "litematica.message.schematic_save_task_created": "已建立原理圖儲存任務", + "litematica.message.set_area_origin": "將區域原點設定為 %s", + "litematica.message.set_selection_box_point": "設定/移動點從 %d 到 %s", + "litematica.message.toggled": "已切換 %s %s", + "litematica.message.value.on": "開啟", + "litematica.message.value.off": "關閉", + "litematica.message.schematic_projects.project_created": "已建立項目「%s」", + "litematica.message.schematic_projects.project_loaded": "已載入項目「%s」", + "litematica.message.schematic_projects.version_saved": "新版本(#%s)儲存為「%s」", + "litematica.message.warn.area_selection.browser_open_in_simple_mode": "注意:您目前處於簡單區域選擇模式", + "litematica.message.warn.layer_mode_currently_at": "注意:你目前處在「%s」顯示層模式", + "litematica.message.warn.main_rendering_disabled": "警告:主繪製目前已停用\n查看視覺效果 -> %s,或者快速鍵 -> %s ['%s']", + "litematica.message.warn.schematic_blocks_rendering_disabled": "警告:原理圖塊呈現目前被停用\n查看視覺效果 -> %s,or 或者快速鍵 -> %s ['%s']", + "litematica.message.warn.schematic_load_non_litematica": "警告:當你直接載入非 Litematica 原理圖時,建立的放置將不會是持久的\n此外,如果你需要多次載入原理圖檔案,那麼每次載入時都會發生結構類型轉換的卡頓(尤其是大型結構)\n\n因此,建議透過 原理圖管理器 選單匯入結構並將其儲存為 Litematica 格式,或者使用 MCEdit 或 Litematica 的貼上模式將原始結構貼上到一個臨時世界中,然後從中建立一個新的 Litematica 結構檔案\n建議使用多個子區域來框選建築", + "litematica.message.warn.schematic_rebuild_placement_not_selected": "目前未選擇目標展示位置。\n[全部取代] 快速鍵僅適用於您點擊的放置的目前選定子區域。因此,要僅取代一個子區域中的塊,請選擇該子區域。\n要取代整個原理圖(所有子區域),請選擇整個位置而不是其子區域。 \n這些方塊也僅在目前「繪製層」設定限制的區域內被取代", + "litematica.message.warn.schematic_rendering_disabled": "警告:目前停用了原理圖繪製\n查看視覺效果 -> %s,或者快速鍵 -> %s ['%s']", + "litematica.message.warn.schematic_verifier.overlay_disabled": "警告:驗證程式重疊繪製目前已停用!請參閱資訊 -> %s(或者快速鍵 -> %s ['%s'])", + "litematica.message.warning.invalid_number": "輸入無效的數位「%s」", + "litematica.message.warning.schematic_projects_hidden": "警告:原理圖版本控制系統目前處於隱藏狀態。\n一般來說,你不應該使用它,除非你真的知道它是如何工作的並改變了一些 Mod 行為。\n如果您想使用它,請啟用選項 [通用] -> [不隱藏原理圖版本控制系統]", + "litematica.warning.area_editor.area_rendering_disabled": "注意:區域選擇框呈現目前被停用\n查看視覺效果 -> %s,或者快速鍵 -> %s ['%s']", + "litematica.tool_hud.block_1": "方塊:%s", + "litematica.tool_hud.block_2": "取代:%s", + "litematica.tool_hud.facing": "朝向:%s", + "litematica.tool_mode.name.area_selection": "區域選擇", + "litematica.tool_mode.name.delete": "刪除", + "litematica.tool_mode.name.fill": "填充", + "litematica.tool_mode.name.grid_paste": "在世界上貼上原理圖網格", + "litematica.tool_mode.name.move": "移動", + "litematica.tool_mode.name.paste_schematic": "在世界上貼上原理圖", + "litematica.tool_mode.name.rebuild": "重建原理", + "litematica.tool_mode.name.replace_block": "取代方塊", + "litematica.tool_mode.name.schematic_placement": "原理圖放置" +}