Added locate gui, partially implements #24

This commit is contained in:
Marcel Konrad
2022-07-29 22:40:02 +02:00
parent 3d72a40522
commit 3ce26b630d
11 changed files with 350 additions and 9 deletions

View File

@@ -0,0 +1,54 @@
package exopandora.worldhandler.builder.impl;
import exopandora.worldhandler.builder.CommandBuilder;
import exopandora.worldhandler.builder.CommandNode;
import exopandora.worldhandler.builder.CommandNodeLiteral;
import exopandora.worldhandler.builder.argument.Arguments;
import exopandora.worldhandler.builder.argument.PrimitiveArgument;
import net.minecraft.resources.ResourceLocation;
public class LocateCommandBuilder extends CommandBuilder
{
private final PrimitiveArgument<ResourceLocation> biome = Arguments.resourceLocation();
private final PrimitiveArgument<ResourceLocation> structure = Arguments.resourceLocation();
private final PrimitiveArgument<ResourceLocation> poi = Arguments.resourceLocation();
private final CommandNodeLiteral root = CommandNode.literal("locate")
.then(CommandNode.literal("biome")
.then(CommandNode.argument("biome", this.biome)
.label(Label.BIOME)))
.then(CommandNode.literal("structure")
.then(CommandNode.argument("structure", this.structure)
.label(Label.STRUCTURE)))
.then(CommandNode.literal("poi")
.then(CommandNode.argument("poi", this.poi)
.label(Label.POI)));
public PrimitiveArgument<ResourceLocation> biome()
{
return this.biome;
}
public PrimitiveArgument<ResourceLocation> structure()
{
return this.structure;
}
public PrimitiveArgument<ResourceLocation> poi()
{
return this.poi;
}
@Override
protected CommandNodeLiteral root()
{
return this.root;
}
public static enum Label
{
BIOME,
STRUCTURE,
POI;
}
}

View File

@@ -95,7 +95,7 @@ public class Category
RegistryHelper.register(event, REGISTRY_KEY, "entities", () -> new Category("summon", "butcher")); RegistryHelper.register(event, REGISTRY_KEY, "entities", () -> new Category("summon", "butcher"));
RegistryHelper.register(event, REGISTRY_KEY, "items", () -> new Category("custom_item", "enchantment", "recipes")); RegistryHelper.register(event, REGISTRY_KEY, "items", () -> new Category("custom_item", "enchantment", "recipes"));
RegistryHelper.register(event, REGISTRY_KEY, "blocks", () -> new Category("edit_blocks", "sign_editor", "note_editor")); RegistryHelper.register(event, REGISTRY_KEY, "blocks", () -> new Category("edit_blocks", "sign_editor", "note_editor"));
RegistryHelper.register(event, REGISTRY_KEY, "world", () -> new Category("world", "gamerules")); RegistryHelper.register(event, REGISTRY_KEY, "world", () -> new Category("world", "gamerules", "locate"));
RegistryHelper.register(event, REGISTRY_KEY, "player", () -> new Category("player", "experience", "advancements")); RegistryHelper.register(event, REGISTRY_KEY, "player", () -> new Category("player", "experience", "advancements"));
RegistryHelper.register(event, REGISTRY_KEY, "scoreboard", () -> new Category("scoreboard_objectives", "scoreboard_teams", "scoreboard_players")); RegistryHelper.register(event, REGISTRY_KEY, "scoreboard", () -> new Category("scoreboard_objectives", "scoreboard_teams", "scoreboard_players"));

View File

@@ -18,6 +18,7 @@ import exopandora.worldhandler.gui.content.impl.ContentEditBlocks;
import exopandora.worldhandler.gui.content.impl.ContentEnchantment; import exopandora.worldhandler.gui.content.impl.ContentEnchantment;
import exopandora.worldhandler.gui.content.impl.ContentExperience; import exopandora.worldhandler.gui.content.impl.ContentExperience;
import exopandora.worldhandler.gui.content.impl.ContentGamerules; import exopandora.worldhandler.gui.content.impl.ContentGamerules;
import exopandora.worldhandler.gui.content.impl.ContentLocate;
import exopandora.worldhandler.gui.content.impl.ContentMain; import exopandora.worldhandler.gui.content.impl.ContentMain;
import exopandora.worldhandler.gui.content.impl.ContentMultiplayer; import exopandora.worldhandler.gui.content.impl.ContentMultiplayer;
import exopandora.worldhandler.gui.content.impl.ContentNoteEditor; import exopandora.worldhandler.gui.content.impl.ContentNoteEditor;
@@ -86,6 +87,7 @@ public abstract class Content implements IContent
//WORLD //WORLD
RegistryHelper.register(event, REGISTRY_KEY, "world", () -> new ContentWorldInfo()); RegistryHelper.register(event, REGISTRY_KEY, "world", () -> new ContentWorldInfo());
RegistryHelper.register(event, REGISTRY_KEY, "gamerules", () -> new ContentGamerules()); RegistryHelper.register(event, REGISTRY_KEY, "gamerules", () -> new ContentGamerules());
RegistryHelper.register(event, REGISTRY_KEY, "locate", () -> new ContentLocate());
//PLAYER //PLAYER
RegistryHelper.register(event, REGISTRY_KEY, "player", () -> new ContentPlayer()); RegistryHelper.register(event, REGISTRY_KEY, "player", () -> new ContentPlayer());

View File

@@ -19,6 +19,7 @@ public class Contents
public static final Content CUSTOM_ITEM = Contents.getRegisteredContent("custom_item"); public static final Content CUSTOM_ITEM = Contents.getRegisteredContent("custom_item");
public static final Content ENCHANTMENT = Contents.getRegisteredContent("enchantment"); public static final Content ENCHANTMENT = Contents.getRegisteredContent("enchantment");
public static final Content RECIPES = Contents.getRegisteredContent("recipes");
public static final Content EDIT_BLOCKS = Contents.getRegisteredContent("edit_blocks"); public static final Content EDIT_BLOCKS = Contents.getRegisteredContent("edit_blocks");
public static final Content SIGN_EDITOR = Contents.getRegisteredContent("sign_editor"); public static final Content SIGN_EDITOR = Contents.getRegisteredContent("sign_editor");
@@ -26,7 +27,7 @@ public class Contents
public static final Content WORLD_INFO = Contents.getRegisteredContent("world"); public static final Content WORLD_INFO = Contents.getRegisteredContent("world");
public static final Content GAMERULES = Contents.getRegisteredContent("gamerules"); public static final Content GAMERULES = Contents.getRegisteredContent("gamerules");
public static final Content RECIPES = Contents.getRegisteredContent("recipes"); public static final Content LOCATE = Contents.getRegisteredContent("locate");
public static final Content PLAYER = Contents.getRegisteredContent("player"); public static final Content PLAYER = Contents.getRegisteredContent("player");
public static final Content EXPERIENCE = Contents.getRegisteredContent("experience"); public static final Content EXPERIENCE = Contents.getRegisteredContent("experience");

View File

@@ -0,0 +1,250 @@
package exopandora.worldhandler.gui.content.impl;
import java.util.ArrayList;
import java.util.List;
import exopandora.worldhandler.builder.impl.LocateCommandBuilder;
import exopandora.worldhandler.gui.category.Categories;
import exopandora.worldhandler.gui.category.Category;
import exopandora.worldhandler.gui.container.Container;
import exopandora.worldhandler.gui.content.Content;
import exopandora.worldhandler.gui.content.Contents;
import exopandora.worldhandler.gui.widget.button.GuiButtonBase;
import exopandora.worldhandler.gui.widget.button.GuiButtonTooltip;
import exopandora.worldhandler.gui.widget.menu.impl.ILogicPageList;
import exopandora.worldhandler.gui.widget.menu.impl.MenuPageList;
import exopandora.worldhandler.util.ActionHandler;
import exopandora.worldhandler.util.ActionHelper;
import exopandora.worldhandler.util.CommandHelper;
import exopandora.worldhandler.util.RegistryHelper;
import net.minecraft.core.Registry;
import net.minecraft.core.RegistryAccess;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.MutableComponent;
import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.registries.ForgeRegistries;
public class ContentLocate extends Content
{
private final LocateCommandBuilder builderLocate = new LocateCommandBuilder();
private final CommandPreview previewLocateBiome = new CommandPreview(this.builderLocate, LocateCommandBuilder.Label.BIOME);
private final CommandPreview previewLocateStructure = new CommandPreview(this.builderLocate, LocateCommandBuilder.Label.STRUCTURE);
private final CommandPreview previewLocatePoi = new CommandPreview(this.builderLocate, LocateCommandBuilder.Label.POI);
private Page page = Page.BIOME;
@Override
public CommandPreview getCommandPreview()
{
if(Page.BIOME.equals(this.page))
{
return this.previewLocateBiome;
}
else if(Page.STRUCTURE.equals(this.page))
{
return this.previewLocateStructure;
}
else if(Page.POI.equals(this.page))
{
return this.previewLocatePoi;
}
return null;
}
@Override
public void initGui(Container container, int x, int y)
{
if(Page.BIOME.equals(this.page))
{
List<ResourceLocation> biomes = new ArrayList<ResourceLocation>(ForgeRegistries.BIOMES.getKeys());
MenuPageList<ResourceLocation> list = new MenuPageList<ResourceLocation>(x + 118, y, biomes, 114, 20, 3, container, new ILogicPageList<ResourceLocation>()
{
@Override
public MutableComponent translate(ResourceLocation biome)
{
return Component.translatable(biome.toLanguageKey("biome"));
}
@Override
public MutableComponent toTooltip(ResourceLocation biome)
{
return Component.literal(biome.toString());
}
@Override
public void onClick(ResourceLocation biome)
{
ContentLocate.this.builderLocate.biome().set(biome);
container.initButtons();
}
@Override
public GuiButtonBase onRegister(int x, int y, int width, int height, MutableComponent text, ResourceLocation biome, ActionHandler actionHandler)
{
return new GuiButtonTooltip(x, y, width, height, text, this.toTooltip(biome), actionHandler);
}
@Override
public String getId()
{
return "biomes";
}
});
container.add(list);
}
else if(Page.STRUCTURE.equals(this.page))
{
List<ResourceLocation> structures = new ArrayList<ResourceLocation>(RegistryAccess.BUILTIN.get().registry(Registry.STRUCTURE_REGISTRY).get().keySet());
MenuPageList<ResourceLocation> list = new MenuPageList<ResourceLocation>(x + 118, y, structures, 114, 20, 3, container, new ILogicPageList<ResourceLocation>()
{
@Override
public MutableComponent translate(ResourceLocation structure)
{
return Component.literal(structure.toString());
}
@Override
public MutableComponent toTooltip(ResourceLocation structure)
{
return Component.literal(structure.toString());
}
@Override
public void onClick(ResourceLocation structure)
{
ContentLocate.this.builderLocate.structure().set(structure);
container.initButtons();
}
@Override
public GuiButtonBase onRegister(int x, int y, int width, int height, MutableComponent text, ResourceLocation structure, ActionHandler actionHandler)
{
return new GuiButtonTooltip(x, y, width, height, text, this.toTooltip(structure), actionHandler);
}
@Override
public String getId()
{
return "structures";
}
});
container.add(list);
}
else if(Page.POI.equals(this.page))
{
List<ResourceLocation> pois = new ArrayList<ResourceLocation>(ForgeRegistries.POI_TYPES.getKeys());
MenuPageList<ResourceLocation> list = new MenuPageList<ResourceLocation>(x + 118, y, pois, 114, 20, 3, container, new ILogicPageList<ResourceLocation>()
{
@Override
public MutableComponent translate(ResourceLocation poi)
{
String result = RegistryHelper.translate(poi);
if(result != null)
{
return Component.translatable(result);
}
return Component.literal(poi.toString());
}
@Override
public MutableComponent toTooltip(ResourceLocation poi)
{
return Component.literal(poi.toString());
}
@Override
public void onClick(ResourceLocation poi)
{
ContentLocate.this.builderLocate.poi().set(poi);
container.initButtons();
}
@Override
public GuiButtonBase onRegister(int x, int y, int width, int height, MutableComponent text, ResourceLocation poi, ActionHandler actionHandler)
{
return new GuiButtonTooltip(x, y, width, height, text, this.toTooltip(poi), actionHandler);
}
@Override
public String getId()
{
return "pois";
}
});
container.add(list);
}
}
public void initButtons(Container container, int x, int y)
{
GuiButtonBase button1;
GuiButtonBase button2;
GuiButtonBase button3;
container.add(new GuiButtonBase(x, y + 96, 114, 20, "gui.worldhandler.generic.back", () -> ActionHelper.back(this)));
container.add(new GuiButtonBase(x + 118, y + 96, 114, 20, "gui.worldhandler.generic.backToGame", ActionHelper::backToGame));
container.add(button1 = new GuiButtonBase(x, y, 114, 20, "gui.worldhandler.locate.biome", () -> this.changePage(container, Page.BIOME)));
container.add(button2 = new GuiButtonBase(x, y + 24, 114, 20, "gui.worldhandler.locate.structure", () -> this.changePage(container, Page.STRUCTURE)));
container.add(button3 = new GuiButtonBase(x, y + 48, 114, 20, "gui.worldhandler.locate.poi", () -> this.changePage(container, Page.POI)));
container.add(new GuiButtonBase(x, y + 72, 114, 20, "gui.worldhandler.locate.locate", () ->
{
CommandHelper.sendCommand(container.getPlayer(), this.builderLocate, this.page.getLabel());
}));
button1.active = !Page.BIOME.equals(this.page);
button2.active = !Page.STRUCTURE.equals(this.page);
button3.active = !Page.POI.equals(this.page);
}
private void changePage(Container container, Page page)
{
this.page = page;
container.init();
}
@Override
public Category getCategory()
{
return Categories.WORLD;
}
@Override
public MutableComponent getTitle()
{
return Component.translatable("gui.worldhandler.title.world.locate");
}
@Override
public MutableComponent getTabTitle()
{
return Component.translatable("gui.worldhandler.tab.world.locate");
}
@Override
public Content getActiveContent()
{
return Contents.LOCATE;
}
private static enum Page
{
BIOME(LocateCommandBuilder.Label.BIOME),
STRUCTURE(LocateCommandBuilder.Label.STRUCTURE),
POI(LocateCommandBuilder.Label.POI);
private final LocateCommandBuilder.Label label;
private Page(LocateCommandBuilder.Label label)
{
this.label = label;
}
public LocateCommandBuilder.Label getLabel()
{
return this.label;
}
}
}

View File

@@ -9,7 +9,6 @@ import javax.annotation.Nullable;
import exopandora.worldhandler.Main; import exopandora.worldhandler.Main;
import net.minecraft.core.Registry; import net.minecraft.core.Registry;
import net.minecraft.locale.Language;
import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.effect.MobEffect; import net.minecraft.world.effect.MobEffect;
@@ -30,15 +29,15 @@ public class RegistryHelper
registerRegistry(ForgeRegistries.BLOCKS, Block::getDescriptionId); registerRegistry(ForgeRegistries.BLOCKS, Block::getDescriptionId);
registerRegistry(ForgeRegistries.ITEMS, Item::getDescriptionId); registerRegistry(ForgeRegistries.ITEMS, Item::getDescriptionId);
registerRegistry(ForgeRegistries.MOB_EFFECTS, MobEffect::getDescriptionId); registerRegistry(ForgeRegistries.MOB_EFFECTS, MobEffect::getDescriptionId);
registerRegistry(ForgeRegistries.BIOMES, biome -> registerRegistry(ForgeRegistries.BIOMES, biome -> ForgeRegistries.BIOMES.getKey(biome).toLanguageKey("biome"));
{
ResourceLocation resource = ForgeRegistries.BIOMES.getKey(biome);
String key = "biome." + resource.getNamespace() + "." + resource.getPath();
return Language.getInstance().has(key) ? key : resource.toString();
});
registerRegistry(ForgeRegistries.ENCHANTMENTS, Enchantment::getDescriptionId); registerRegistry(ForgeRegistries.ENCHANTMENTS, Enchantment::getDescriptionId);
registerRegistry(ForgeRegistries.ENTITY_TYPES, EntityType::getDescriptionId); registerRegistry(ForgeRegistries.ENTITY_TYPES, EntityType::getDescriptionId);
registerRegistry(ForgeRegistries.STAT_TYPES, stat -> "stat." + stat.toString().replace(':', '.')); registerRegistry(ForgeRegistries.STAT_TYPES, stat -> "stat." + stat.toString().replace(':', '.'));
registerRegistry(ForgeRegistries.VILLAGER_PROFESSIONS, profession ->
{
ResourceLocation profName = ForgeRegistries.VILLAGER_PROFESSIONS.getKey(profession);
return EntityType.VILLAGER.getDescriptionId() + '.' + (!"minecraft".equals(profName.getNamespace()) ? profName.getNamespace() + '.' : "") + profName.getPath();
});
} }
private static <T> void registerRegistry(IForgeRegistry<T> registry, Function<T, String> mapper) private static <T> void registerRegistry(IForgeRegistry<T> registry, Function<T, String> mapper)

View File

@@ -69,6 +69,7 @@
"gui.worldhandler.tab.world.world": "Welt", "gui.worldhandler.tab.world.world": "Welt",
"gui.worldhandler.tab.world.gamerules": "Spielregeln", "gui.worldhandler.tab.world.gamerules": "Spielregeln",
"gui.worldhandler.tab.world.locate": "Finden",
"gui.worldhandler.tab.blocks.edit_blocks": "Blöcke Ändern", "gui.worldhandler.tab.blocks.edit_blocks": "Blöcke Ändern",
"gui.worldhandler.tab.blocks.sign_editor": "Schilder Ändern", "gui.worldhandler.tab.blocks.sign_editor": "Schilder Ändern",
@@ -96,6 +97,7 @@
"gui.worldhandler.title.world.world": "Welt", "gui.worldhandler.title.world.world": "Welt",
"gui.worldhandler.title.world.gamerules": "Gamerules", "gui.worldhandler.title.world.gamerules": "Gamerules",
"gui.worldhandler.title.world.locate": "Finden",
"gui.worldhandler.title.player.player": "Spieler", "gui.worldhandler.title.player.player": "Spieler",
"gui.worldhandler.title.player.experience": "Erfahrung", "gui.worldhandler.title.player.experience": "Erfahrung",
@@ -223,6 +225,11 @@
"gui.worldhandler.world_info.statistics.world_time": "Weltzeit", "gui.worldhandler.world_info.statistics.world_time": "Weltzeit",
"gui.worldhandler.world_info.statistics.played": "Played", "gui.worldhandler.world_info.statistics.played": "Played",
"gui.worldhandler.locate.biome": "Biom",
"gui.worldhandler.locate.structure": "Struktur",
"gui.worldhandler.locate.poi": "Interessanter Ort",
"gui.worldhandler.locate.locate": "Finden",
"gui.worldhandler.edit_blocks.coordinates": "Koordinaten", "gui.worldhandler.edit_blocks.coordinates": "Koordinaten",
"gui.worldhandler.edit_blocks.fill": "Füllen", "gui.worldhandler.edit_blocks.fill": "Füllen",
"gui.worldhandler.edit_blocks.replace": "Ersetzen", "gui.worldhandler.edit_blocks.replace": "Ersetzen",

View File

@@ -69,6 +69,7 @@
"gui.worldhandler.tab.world.world": "World", "gui.worldhandler.tab.world.world": "World",
"gui.worldhandler.tab.world.gamerules": "Gamerules", "gui.worldhandler.tab.world.gamerules": "Gamerules",
"gui.worldhandler.tab.world.locate": "Locate",
"gui.worldhandler.tab.blocks.edit_blocks": "Edit Blocks", "gui.worldhandler.tab.blocks.edit_blocks": "Edit Blocks",
"gui.worldhandler.tab.blocks.sign_editor": "Sign Editor", "gui.worldhandler.tab.blocks.sign_editor": "Sign Editor",
@@ -96,6 +97,7 @@
"gui.worldhandler.title.world.world": "World", "gui.worldhandler.title.world.world": "World",
"gui.worldhandler.title.world.gamerules": "Gamerules", "gui.worldhandler.title.world.gamerules": "Gamerules",
"gui.worldhandler.title.world.locate": "Locate",
"gui.worldhandler.title.player.player": "Player", "gui.worldhandler.title.player.player": "Player",
"gui.worldhandler.title.player.experience": "Experience", "gui.worldhandler.title.player.experience": "Experience",
@@ -223,6 +225,11 @@
"gui.worldhandler.world_info.statistics.world_time": "World Time", "gui.worldhandler.world_info.statistics.world_time": "World Time",
"gui.worldhandler.world_info.statistics.played": "Played", "gui.worldhandler.world_info.statistics.played": "Played",
"gui.worldhandler.locate.biome": "Biome",
"gui.worldhandler.locate.structure": "Structure",
"gui.worldhandler.locate.poi": "Point Of Interest",
"gui.worldhandler.locate.locate": "Locate",
"gui.worldhandler.edit_blocks.coordinates": "Coordinates", "gui.worldhandler.edit_blocks.coordinates": "Coordinates",
"gui.worldhandler.edit_blocks.fill": "Fill", "gui.worldhandler.edit_blocks.fill": "Fill",
"gui.worldhandler.edit_blocks.replace": "Replace", "gui.worldhandler.edit_blocks.replace": "Replace",

View File

@@ -69,6 +69,7 @@
"gui.worldhandler.tab.world.world": "Monde", "gui.worldhandler.tab.world.world": "Monde",
"gui.worldhandler.tab.world.gamerules": "Règles de jeu", "gui.worldhandler.tab.world.gamerules": "Règles de jeu",
"gui.worldhandler.tab.world.locate": "Locate",
"gui.worldhandler.tab.blocks.edit_blocks": "Blocs", "gui.worldhandler.tab.blocks.edit_blocks": "Blocs",
"gui.worldhandler.tab.blocks.sign_editor": "Pancarte", "gui.worldhandler.tab.blocks.sign_editor": "Pancarte",
@@ -96,6 +97,7 @@
"gui.worldhandler.title.world.world": "Monde", "gui.worldhandler.title.world.world": "Monde",
"gui.worldhandler.title.world.gamerules": "Règles de jeu", "gui.worldhandler.title.world.gamerules": "Règles de jeu",
"gui.worldhandler.title.world.locate": "Locate",
"gui.worldhandler.title.player.player": "Joueur", "gui.worldhandler.title.player.player": "Joueur",
"gui.worldhandler.title.player.experience": "Expérience ", "gui.worldhandler.title.player.experience": "Expérience ",
@@ -224,6 +226,11 @@
"gui.worldhandler.world_info.statistics.world_time": "Heure monde ", "gui.worldhandler.world_info.statistics.world_time": "Heure monde ",
"gui.worldhandler.world_info.statistics.played": "Ouvert ", "gui.worldhandler.world_info.statistics.played": "Ouvert ",
"gui.worldhandler.locate.biome": "Biome",
"gui.worldhandler.locate.structure": "Structure",
"gui.worldhandler.locate.poi": "Point Of Interest",
"gui.worldhandler.locate.locate": "Locate",
"gui.worldhandler.edit_blocks.coordinates": "Coordonnées", "gui.worldhandler.edit_blocks.coordinates": "Coordonnées",
"gui.worldhandler.edit_blocks.fill": "Remplir", "gui.worldhandler.edit_blocks.fill": "Remplir",
"gui.worldhandler.edit_blocks.replace": "Remplacer", "gui.worldhandler.edit_blocks.replace": "Remplacer",

View File

@@ -69,6 +69,7 @@
"gui.worldhandler.tab.world.world": "Мир", "gui.worldhandler.tab.world.world": "Мир",
"gui.worldhandler.tab.world.gamerules": "Правила игры", "gui.worldhandler.tab.world.gamerules": "Правила игры",
"gui.worldhandler.tab.world.locate": "Locate",
"gui.worldhandler.tab.blocks.edit_blocks": "Редактировать блоки", "gui.worldhandler.tab.blocks.edit_blocks": "Редактировать блоки",
"gui.worldhandler.tab.blocks.sign_editor": "Редактор знака", "gui.worldhandler.tab.blocks.sign_editor": "Редактор знака",
@@ -96,6 +97,7 @@
"gui.worldhandler.title.world.world": "Мир", "gui.worldhandler.title.world.world": "Мир",
"gui.worldhandler.title.world.gamerules": "Правила игры", "gui.worldhandler.title.world.gamerules": "Правила игры",
"gui.worldhandler.title.world.locate": "Locate",
"gui.worldhandler.title.player.player": "Игрок", "gui.worldhandler.title.player.player": "Игрок",
"gui.worldhandler.title.player.experience": "Опыт", "gui.worldhandler.title.player.experience": "Опыт",
@@ -223,6 +225,11 @@
"gui.worldhandler.world_info.statistics.world_time": "Время мира", "gui.worldhandler.world_info.statistics.world_time": "Время мира",
"gui.worldhandler.world_info.statistics.played": "Сыгранно", "gui.worldhandler.world_info.statistics.played": "Сыгранно",
"gui.worldhandler.locate.biome": "Biome",
"gui.worldhandler.locate.structure": "Structure",
"gui.worldhandler.locate.poi": "Point Of Interest",
"gui.worldhandler.locate.locate": "Locate",
"gui.worldhandler.edit_blocks.coordinates": "Координаты", "gui.worldhandler.edit_blocks.coordinates": "Координаты",
"gui.worldhandler.edit_blocks.fill": "Заполнить", "gui.worldhandler.edit_blocks.fill": "Заполнить",
"gui.worldhandler.edit_blocks.replace": "Заменить", "gui.worldhandler.edit_blocks.replace": "Заменить",

View File

@@ -70,6 +70,7 @@
"gui.worldhandler.tab.world.world": "世界", "gui.worldhandler.tab.world.world": "世界",
"gui.worldhandler.tab.world.gamerules": "游戏规则", "gui.worldhandler.tab.world.gamerules": "游戏规则",
"gui.worldhandler.tab.world.locate": "Locate",
"gui.worldhandler.tab.blocks.edit_blocks": "编辑方块", "gui.worldhandler.tab.blocks.edit_blocks": "编辑方块",
"gui.worldhandler.tab.blocks.sign_editor": "告示牌编辑器", "gui.worldhandler.tab.blocks.sign_editor": "告示牌编辑器",
@@ -97,6 +98,7 @@
"gui.worldhandler.title.world.world": "世界", "gui.worldhandler.title.world.world": "世界",
"gui.worldhandler.title.world.gamerules": "游戏规则", "gui.worldhandler.title.world.gamerules": "游戏规则",
"gui.worldhandler.title.world.locate": "Locate",
"gui.worldhandler.title.player.player": "玩家", "gui.worldhandler.title.player.player": "玩家",
"gui.worldhandler.title.player.experience": "经验等级", "gui.worldhandler.title.player.experience": "经验等级",
@@ -224,6 +226,11 @@
"gui.worldhandler.world_info.statistics.world_time": "世界时间", "gui.worldhandler.world_info.statistics.world_time": "世界时间",
"gui.worldhandler.world_info.statistics.played": "已游玩", "gui.worldhandler.world_info.statistics.played": "已游玩",
"gui.worldhandler.locate.biome": "Biome",
"gui.worldhandler.locate.structure": "Structure",
"gui.worldhandler.locate.poi": "Point Of Interest",
"gui.worldhandler.locate.locate": "Locate",
"gui.worldhandler.edit_blocks.coordinates": "坐标", "gui.worldhandler.edit_blocks.coordinates": "坐标",
"gui.worldhandler.edit_blocks.fill": "填充", "gui.worldhandler.edit_blocks.fill": "填充",
"gui.worldhandler.edit_blocks.replace": "替换", "gui.worldhandler.edit_blocks.replace": "替换",