From 4f3f7b476aa84f1d7b230489a453edb53e29ed35 Mon Sep 17 00:00:00 2001 From: TheBigEye Date: Sat, 5 Aug 2023 15:59:09 -0300 Subject: [PATCH] Fixed inventory searcher-bar Changes: * Now the error messages of the commands will be shown in the chat. * Now when typing in the search bar, words will automatically be capitalized. * Updated Spanish translation --- .../minicraft/screen/CommandsDisplay.java | 6 +- src/main/java/minicraft/screen/Menu.java | 20 +- .../minicraft/screen/entry/InputEntry.java | 3 +- .../minicraft/screen/entry/ItemEntry.java | 2 +- src/main/java/minicraft/util/Command.java | 48 ++- .../resources/localization/spanish_es.mcpl | 361 +++++++++--------- 6 files changed, 225 insertions(+), 215 deletions(-) diff --git a/src/main/java/minicraft/screen/CommandsDisplay.java b/src/main/java/minicraft/screen/CommandsDisplay.java index 7afbb3af..e5690b5e 100644 --- a/src/main/java/minicraft/screen/CommandsDisplay.java +++ b/src/main/java/minicraft/screen/CommandsDisplay.java @@ -17,10 +17,6 @@ public class CommandsDisplay extends Display { - private static final int CHAT_BACKGOUND_COLOR = Color.BLACK; - private static final int CHAT_FOREGOUND_COLOR = Color.GRAY; - private static final float CHAT_OPACITY = 0.8F; - public static InputEntry command = new InputEntry("", ".*", 43, false); public CommandsDisplay() { @@ -103,7 +99,7 @@ public void render(Screen screen) { int lineNumber = 0; for (int j = Math.max(0, messages.size() - 7); j < messages.size(); j++) { Font.draw("", screen, 8, (lineNumber * 8) + Screen.h - 80, Color.DARK_GREEN); - Font.draw(messages.get(j), screen, 6 * 8 + 4, (lineNumber * 8) + Screen.h - 80, CHAT_FOREGOUND_COLOR); + Font.draw(messages.get(j), screen, 6 * 8 + 4, (lineNumber * 8) + Screen.h - 80, Color.GRAY); lineNumber++; } diff --git a/src/main/java/minicraft/screen/Menu.java b/src/main/java/minicraft/screen/Menu.java index 28ffb65d..40175243 100644 --- a/src/main/java/minicraft/screen/Menu.java +++ b/src/main/java/minicraft/screen/Menu.java @@ -229,6 +229,21 @@ public void tick(InputHandler input) { if (searcherBarActive) { String typingSearcher = input.addKeyTyped(this.typingSearcher, null); + + if (typingSearcher.length() > 0) { + // Convert the first letter on uppercase + typingSearcher = typingSearcher.substring(0, 1).toUpperCase() + typingSearcher.substring(1); + + // Iterate over the remaining characters to convert to lowercase until a space is found + for (int i = 1; i < typingSearcher.length(); i++) { + if (typingSearcher.charAt(i - 1) == ' ') { + typingSearcher = typingSearcher.substring(0, i) + typingSearcher.substring(i, i + 1).toUpperCase() + typingSearcher.substring(i + 1); + } + } + } + + + for (String pressedKey : input.getAllPressedKeys()) { if (pressedKey.equals("ENTER")) { continue; @@ -240,6 +255,7 @@ public void tick(InputHandler input) { // check if word was updated if (typingSearcher.length() <= ((entryBounds.getWidth() / 8)) && typingSearcher.length() != this.typingSearcher.length()) { this.typingSearcher = typingSearcher; + listSearcher.clear(); listPositionSearcher = 0; @@ -247,7 +263,7 @@ public void tick(InputHandler input) { boolean shouldSelect = true; for (int i = 0; entryIt.hasNext(); i++) { ListEntry entry = entryIt.next(); - + String stringEntry = entry.toString(); String typingString = typingSearcher; @@ -326,6 +342,8 @@ private void doScroll() { public void render(Screen screen) { // render searcher bar if (searcherBarActive && useSearcherBar) { + + int leading = Font.textWidth(typingSearcher) * Font.textWidth(" ") / 15; int xSearcherBar = titleLoc.x + title.length() * 8 / 2 - 16; diff --git a/src/main/java/minicraft/screen/entry/InputEntry.java b/src/main/java/minicraft/screen/entry/InputEntry.java index 47103886..7f66148b 100644 --- a/src/main/java/minicraft/screen/entry/InputEntry.java +++ b/src/main/java/minicraft/screen/entry/InputEntry.java @@ -39,9 +39,10 @@ public InputEntry(String prompt, String regex, int maxLen, String initValue, boo public void tick(InputHandler input) { String prev = userInput; userInput = input.addKeyTyped(userInput, regex); + if (!prev.equals(userInput) && listener != null) listener.onChange(userInput); - + if (maxLength > 0 && userInput.length() > maxLength) userInput = userInput.substring(0, maxLength); // truncates extra if (input.getKey("CTRL-V").clicked) { diff --git a/src/main/java/minicraft/screen/entry/ItemEntry.java b/src/main/java/minicraft/screen/entry/ItemEntry.java index f070b93d..d2ed1b33 100644 --- a/src/main/java/minicraft/screen/entry/ItemEntry.java +++ b/src/main/java/minicraft/screen/entry/ItemEntry.java @@ -35,7 +35,7 @@ public void tick(InputHandler input) { @Override public void render(Screen screen, int x, int y, boolean isSelected) { super.render(screen, x, y, true); - item.sprite.render(screen, x, y); + item.sprite.render(screen, x - 4, y); } // if you add to the length of the string, and therefore the width of the entry, diff --git a/src/main/java/minicraft/util/Command.java b/src/main/java/minicraft/util/Command.java index 9d57f5d9..b6df285c 100644 --- a/src/main/java/minicraft/util/Command.java +++ b/src/main/java/minicraft/util/Command.java @@ -23,10 +23,10 @@ public Entity[] getEntitiesBySelector(String targetSelector) { Entity[] entities = new Entity[0]; switch (targetSelector) { - case "@a": entities = currentLevel.getPlayers(); break; // all players - case "@e": entities = currentLevel.getEntities(); break; // all entities - case "@p": entities = new Entity[]{currentPlayer}; break; // nearest player - case "@s": entities = new Entity[]{currentPlayer}; break; // executing entity + case ALL_PLAYERS: entities = currentLevel.getPlayers(); break; // all players + case ALL_ENTITIES: entities = currentLevel.getEntities(); break; // all entities + case NEAR_PLAYER: entities = new Entity[]{currentPlayer}; break; // nearest player + case EXECUTING_ENTITY: entities = new Entity[]{currentPlayer}; break; // executing entity default: // parse target selector and return matching entities @@ -38,7 +38,7 @@ public Entity[] getEntitiesBySelector(String targetSelector) { public static void gamemodeCommand(String[] arguments) { if (arguments.length < 2) { - Game.notifications.add("- missing gamemode -"); + Game.player.sendMessage("{?} - Missing gamemode [creative, survival]"); return; } @@ -48,14 +48,14 @@ public static void gamemodeCommand(String[] arguments) { } else if (mode.equals("survival") || mode.equals("s") || mode.equals("0")) { Settings.set("mode", "survival"); } else { - Game.notifications.add("- unknown gamemode -"); + Game.player.sendMessage("{?} - Unknown gamemode"); } } public static void timeCommand(String[] arguments) { if (arguments.length < 2) { - Game.notifications.add("- missing time action -"); + Game.player.sendMessage("{?} - Missing time action [add, set, get]"); return; } @@ -64,17 +64,18 @@ public static void timeCommand(String[] arguments) { case "set": if (arguments.length < 3) { - Game.notifications.add("- missing time of day -"); + Game.player.sendMessage("{?} - Missing time of day [day, night, 12000]"); return; } String timeString = arguments[2]; // morning, night, etc int timeValue = 0; + if (timeString.matches("\\d+")) { try { timeValue = Integer.parseInt(timeString); } catch (NumberFormatException exception) { - Game.notifications.add("- Time value must be a numeric value -"); + Game.player.sendMessage("{?} - Time value must be a numeric value"); return; } Updater.tickCount = timeValue; @@ -85,7 +86,9 @@ public static void timeCommand(String[] arguments) { case "evening": Updater.changeTimeOfDay(Updater.Time.Evening); break; case "night": Updater.changeTimeOfDay(Updater.Time.Night); break; - default: Game.notifications.add("- Unknown time status '"+ timeString + "' -"); break; + default: + Game.player.sendMessage("{?} - Unknown time status '"+ timeString + "'"); + break; } break; } @@ -93,14 +96,23 @@ public static void timeCommand(String[] arguments) { case "add": if (arguments.length < 3) { - Game.notifications.add("- missing time of day -"); + Game.player.sendMessage("{?} - Missing time of day [1000, 6000, 32000]"); return; } - - int timeIndex = Integer.parseInt(arguments[2]); // 6000, 18000, 64000 + + int timeIndex = 0; + + try { + timeIndex = Integer.parseInt(arguments[2]); // 6000, 18000, 64000 + } catch (NumberFormatException exception) { + Game.player.sendMessage("{?} - Time value must be a numeric value"); + } + Updater.tickCount += timeIndex; break; - default: Game.notifications.add("- Unknown time modifier'" + timeAction + "' -"); break; + default: + Game.player.sendMessage("{?} - Unknown time action '" + timeAction + "'"); + break; } } @@ -122,7 +134,7 @@ public static void killCommand(String[] arguments) { for (Player player : players) { player.die(); } - Game.notifications.add("Ouch! That looked like it hurt"); + Game.player.sendMessage("{!} - All the players has died"); } break; @@ -131,18 +143,18 @@ public static void killCommand(String[] arguments) { for (Entity entity : entities) { entity.die(); } - Game.notifications.add("Ouch! That looked like it hurt"); + Game.player.sendMessage("{!} - All the entities has died"); } break; case NEAR_PLAYER: // Get the closest player on the level and kill them currentPlayer.die(); - Game.notifications.add("Ouch! That looked like it hurt"); + Game.player.sendMessage("{!} - A player has died"); break; case EXECUTING_ENTITY: // Kills the entity that executes the command executorEntity.die(); - Game.notifications.add("Ouch! That looked like it hurt"); + Game.player.sendMessage("{!} - A player has commit suicide"); break; default: diff --git a/src/main/resources/resources/localization/spanish_es.mcpl b/src/main/resources/resources/localization/spanish_es.mcpl index e0c1b04c..e081cc95 100644 --- a/src/main/resources/resources/localization/spanish_es.mcpl +++ b/src/main/resources/resources/localization/spanish_es.mcpl @@ -217,22 +217,22 @@ No puedes ir a casa desde aqui! # ArmorItem.java Leather Armor -Armadura de Cuero +Armadura De Cuero Snake Armor -Armadura de Serpiente +Armadura De Serpiente ChainMail Armor -Armadura Cota de malla +Armadura Cota De Malla Iron Armor -Armadura de Hierro +Armadura De Hierro Gold Armor -Armadura de Oro +Armadura De Oro Gem Armor -Armadura de Gema +Armadura De Gema # BoatItem.java @@ -248,18 +248,18 @@ Antidious Antidoto AlAzif -Libro del Aire +Libro Del Aire # BucketItem.java Empty Bucket -Cubeta vacia +Cubeta Vacia Water Bucket -Cubeta de Agua +Cubeta De Agua Lava Bucket -Cubeta de Lava +Cubeta De Lava Bucket Cubeta @@ -302,37 +302,37 @@ Apple Manzana Frozen palette -Paleta congelada +Paleta Congelada Mushroom Soup -Sopa de hongos +Sopa De hongos Carrot Soup -Sopa de Zanahoria +Sopa De Zanahoria Raw Chicken -Pollo crudo +Pollo Crudo Raw Pork -Cerdo crudo +Cerdo Crudo Raw Fish -Pescado crudo +Pescado Crudo Raw Beef -Bistec crudo +Bistec Crudo Cooked Chicken -Pollo cocinado +Pollo Cocinado Pork Chop -Chuleta de Cerdo +Chuleta De Cerdo Cooked Fish -Pescado cocido +Pescado Cocido Cooked Pork -Cerdo cocido +Cerdo Cocido Steak Bistec @@ -346,76 +346,76 @@ Zanahoria Dorada # FurnitureItem.java KingZombie Spawner -Generador de Reyes Zombies +Generador De Reyes Zombies Cow Spawner -Generador de Vacas +Generador De Vacas Pig Spawner -Generador de Cerdos +Generador De Cerdos Sheep Spawner -Generador de Ovejas +Generador De Ovejas Goat Spawner -Generador de Cabras +Generador De Cabras Chicken Spawner -Generador de Pollos +Generador De Pollos Cleric Spawner -Generador de Clerigos +Generador De Clerigos Librarian Spawner -Generador de Bibliotecarios +Generador De Bibliotecarios GuiMan Spawner -Generador de Pinguinos +Generador De Pinguinos Cat Spawner -Generador de Gatos +Generador De Gatos Golem Spawner -Generador de Golems +Generador De Golems Slime Spawner -Generador de Slimes +Generador De Slimes Zombie Spawner -Generador de Zombies +Generador De Zombies Mooshroom Spawner -Generador de Vacahongos +Generador De Vacahongos Creeper Spawner -Generador de Creepers +Generador De Creepers Skeleton Spawner -Generador de Esqueletos +Generador De Esqueletos Snake Spawner -Generador de Serpientes +Generador De Serpientes Knight Spawner -Generador de Caballeros +Generador De Caballeros OldGolem Spawner -Generador de Golems viejos +Generador De Golems viejos AirWizard Spawner -Generador de Magos de Aire +Generador De Magos de Aire EyeQueen Spawner -Generador de Reinas Ojo +Generador De Reinas Ojo Cthulhu Spawner -Generador de Cthulhu +Generador De Cthulhu Keeper Spawner -Generador de Guardian +Generador De Guardian Workbench -Mesa de Crafteo +Mesa De Trabajo Oven Horno @@ -445,10 +445,10 @@ Lantern Linterna Iron Lantern -Linterna de Hierro +Linterna De Hierro Gold Lantern -Linterna de Oro +Linterna De Oro Tnt Dinamita @@ -457,94 +457,94 @@ Bed Cama Slime Statue -Estatua de slime +Estatua De Slime Zombie Statue -Estatua de Zombie +Estatua De Zombie Skeleton Statue -Estatua de Esqueleto +Estatua De Esqueleto Chest Cofre Dungeon Chest -Cofre de mazmorra +Cofre De mazmorra # MapItem.java Map book -Libro de mapas +Libro De mapas # AmuletItem.java Eye Amulet -Amuleto del ojo +Amuleto Del ojo # PotionType.java None Potion -Ninguna Poción +Ninguna Pocion Speed Potion -Pocion de Velocidad +Pocion De Velocidad xSpeed Potion -Pocion de Velocidad II +Pocion De Velocidad II Light Potion -Pocion de Luz +Pocion De Luz xLight Potion -Pocion de Luz II +Pocion De Luz II Swim Potion -Pocion de Nadar +Pocion De Nadar xSwim Potion -Pocion de Nadar II +Pocion De Nadar II Energy Potion -Pocion de Energia +Pocion De Energia xEnergy Potion -Pocion de Energia II +Pocion De Energia II Regen Potion -Pocion de Regeneracion +Pocion De Curacion xRegen Potion -Pocion de Regen II +Pocion De Curacion II Health Potion -Pocion de Vida +Pocion De Vida xHealth Potion -Pocion de Vida II +Pocion De Vida II Time Potion -Pocion de Tiempo +Pocion De Tiempo Lava Potion -Pocion de Lava +Pocion De Lava xLava Potion -Pocion de Lava II +Pocion De Lava II Shield Potion -Pocion de Escudo +Pocion De Escudo xShield Potion -Pocion de Escudo II +Pocion De Escudo II Haste Potion -Pocion de Prisa +Pocion De Prisa Escape Potion -Pocion de Escapar +Pocion De Escape Blindness Potion -Pocion de ceguera +Pocion De Ceguera Potion Pocion @@ -562,13 +562,13 @@ Tijeras # StackableItem.java Oak Wood -Madera de Roble +Madera De Roble Spruce Wood -Madera de Abeto +Madera De Abeto Birch Wood -Madera de Abedul +Madera De Abedul Leaf Hoja @@ -610,7 +610,7 @@ Stone Piedra Holy Stone -Piedra sagrada +Piedra Sagrada Andesite Andesita @@ -631,64 +631,64 @@ Quartzite Cuarcita Light gray dye -Tinte gris claro +Tinte Gris Claro Gray dye -Tinte gris +Tinte Gris Ink sac -Saco de tinta +Saco De Tinta Lime dye -Tinte lima +Tinte Lima Yellow dye -Tinte amarillo +Tinte Amarillo Green dye -Tinte verde +Tinte Verde Brown dye -Tinte marron +Tinte Marron Red dye -Tinte rojo +Tinte Rojo Purple dye Tinte Morado Pink dye -Tinte rosa +Tinte Rosa Magenta dye -Tinte magenta +Tinte Magenta Dark green dye -Tinte verde oscuro +Tinte Verde Oscuro Orange dye -Tinte naranja +Tinte Naranja Blue dye -Tinte azul +Tinte Azul Cyan dye -Tinte cian +Tinte Cian Light blue dye -Tinte celeste +Tinte Celeste Coal Carbon Iron Ore -Mena de Hierro +Mena De Hierro Lapis Lapis Gold Ore -Mena de Oro +Mena De Oro Iron Hierro @@ -754,90 +754,100 @@ Sharp III Filo III Cordyceps essence -Esencia de cordyceps +Esencia De Cordyceps Sticky essence -Esencia pegajosa +Esencia Pegajosa Gaseous essence -Esencia gaseosa +Esencia Gaseosa Master essence -Esencia maestra +Esencia Maestra # TileItem.java -Flower -Flor +Daisy +Margarita -Orange Tulip -Tulipan naranja +Rose +Rosa -Red Mushroom -Hongo rojo +Dandelion +Diente De Leon + +Poppy +Amapola -Brown Mushroom -Hongo cafe Acorn Bellota Birch Cone -Cono de abedul +Piña De Abedul Fir Cone -Cono de abeto +Piña De Abeto Pine Cone -Cono de pino +Piña De Pino Dirt Tierra -Sky dirt -Tierra del cielo +Sky Grass +Cesped Del Cielo + +Ice +Hielo + +Red Mushroom +Hongo Rojo + +Brown Mushroom +Hongo Cafe Natural Rock -Piedra natural +Piedra Natural Natural Hard Rock -Piedra natural dura +Piedra Natural Dura Oak Plank -Tablon de Roble +Tablon De Roble Spruce Plank -Tablon de Abeto +Tablon De Abeto Birch Plank -Tablon de Abedul +Tablon De Abedul Oak Wall -Muro de Roble +Muro De Roble Spruce Wall -Muro de Abeto +Muro De Abeto Birch Wall -Muro de Abedul +Muro De Abedul Oak Door -Puerta de Roble +Puerta De Roble Spruce Door -Puerta de Abeto +Puerta De Abeto Birch Door -Puerta de Abedul +Puerta De Abedul Stone Brick -Ladrillo de Piedra +Ladrillo De Piedra Stone Wall -Muro de Piedra +Muro De Piedra Stone Door -Puerta de Piedra +Puerta De Piedra Holy Brick Ladrillo Sagrado @@ -849,61 +859,61 @@ Holy Door Puerta Sagrada Obsidian Brick -Ladrillo de Obsidiana +Ladrillo De Obsidiana Obsidian Wall -Muro de Obsidiana +Muro De Obsidiana Obsidian Door -Puerta de Obsidiana +Puerta De Obsidiana Wool Lana Light Gray Wool -Lana gris claro +Lana Gris Claro Gray Wool -Lana gris +Lana Gris Black Wool -Lana negra +Lana Negra Brown Wool Lana Marron Red Wool -Lana roja +Lana Roja Orange Wool -Lana naranja +Lana Naranja Yellow Wool -Lana amarilla +Lana Amarilla Lime Wool -Lana lima +Lana Lima Green Wool -Lana verde +Lana Verde Cyan Wool -Lana cian +Lana Cian Light Blue Wool -Lana celeste +Lana Celeste Blue Wool -Lana azul +Lana Azul Purple Wool -Lana morada +Lana Morada Magenta Wool -Lana magenta +Lana Magenta Pink Wool -Lana rosa +Lana Rosa Sand Arena @@ -927,22 +937,22 @@ Potato Patata Sky wart -Verruga del Cielo +Verruga Del Cielo Sky Seeds -Semillas del Cielo +Semillas Del Cielo Grass Seeds -Semillas de Pasto +Semillas De Cesped Bone Hueso Bone Powder -Polvo de Hueso +Polvo De Hueso Ferrosite -Nube rapida +Nube Rapida Cloud Nube @@ -976,16 +986,16 @@ Caña de Pescar # FishingRodItem.java Wood Fishing rod -Caña de pescar de madera +Caña De Pescar De Madera Iron Fishing rod -Caña de pescar de hierro +Caña De Pescar De Hierro Gold Fishing rod -Caña de pescar de oro +Caña De Pescar De Oro Gem Fishing rod -Caña de pescar de gema +Caña De Pescar De Gema # ToolType.java @@ -1039,16 +1049,16 @@ Gem Ore Mena de Gema Oak Planks -Tablon de roble +Tablon De roble Spruce Planks -Tablon de abeto +Tablon De abeto Birch Planks -Tablon de abedul +Tablon De abedul Stone Bricks -Ladrillo de piedra +Ladrillo De piedra Obsidian Obsidiana @@ -1057,10 +1067,10 @@ Oak Wall Muro de roble Spruce Wall -Muro de abeto +Muro De abeto Birch Wall -Muro de abedul +Muro De abedul Grass Cesped @@ -1093,7 +1103,7 @@ Tree Arbol Tree Sapling -Brote de Arbol +Brote De Arbol Sand Arena @@ -1102,19 +1112,19 @@ Cactus Cactus Cactus Sapling -Brote de Cactus +Brote De Cactus Lava Lava Lava Brick -Ladrillo de Lava +Ladrillo De Lava Explode Explotar Farmland -Tierras de cultivo +Tierras De Cultivo Wheat Trigo @@ -1299,33 +1309,6 @@ Cargando Generating Generando -Separating -Separando - -Planting -Plantando - -Eroding -Erosionando - -Digging -Cavando - -Raising -Elevenado - -Leveling -Nivelando - -Flattening -Aplanando - -Molding -Moldeando - -Building -Construyendo - Rendering Renderizando