diff --git a/pom.xml b/pom.xml
index 11a0ca7..fc494f7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,8 +26,8 @@
org.jline
jline-reader
- 3.20.0
+ 3.20.0
-
\ No newline at end of file
+
diff --git a/src/main/java/cz/jzitnik/Main.java b/src/main/java/cz/jzitnik/Main.java
index 1043859..6b69439 100644
--- a/src/main/java/cz/jzitnik/Main.java
+++ b/src/main/java/cz/jzitnik/Main.java
@@ -1,12 +1,9 @@
package cz.jzitnik;
import cz.jzitnik.game.Game;
-import cz.jzitnik.game.MouseHandler;
+import cz.jzitnik.game.ui.*;
+import cz.jzitnik.tui.MouseHandler;
import cz.jzitnik.game.SpriteLoader;
-import cz.jzitnik.game.ui.Chest;
-import cz.jzitnik.game.ui.CloseHandler;
-import cz.jzitnik.game.ui.Window;
-import cz.jzitnik.game.ui.InventoryClickHandler;
import cz.jzitnik.tui.ScreenRenderer;
import org.jline.terminal.MouseEvent;
import org.jline.terminal.Terminal;
@@ -53,6 +50,7 @@ public class Main {
case INVENTORY -> InventoryClickHandler.click(mouseEvent, terminal, screenRenderer, game, Optional.empty(), Optional.empty());
case CRAFTING_TABLE -> game.getGameStates().craftingTable.click(mouseEvent, terminal, screenRenderer);
case CHEST -> ((Chest) game.getWorld()[game.getGameStates().clickY][game.getGameStates().clickX].stream().filter(i -> i.getBlockId().equals("chest")).toList().getFirst().getData()).click(game, mouseEvent, terminal, screenRenderer);
+ case FURNACE -> ((Furnace) game.getWorld()[game.getGameStates().clickY][game.getGameStates().clickX].stream().filter(i -> i.getBlockId().equals("furnace")).toList().getFirst().getData()).click(game, mouseEvent, terminal, screenRenderer);
}
}
}
diff --git a/src/main/java/cz/jzitnik/game/Game.java b/src/main/java/cz/jzitnik/game/Game.java
index 7586160..364c4c2 100644
--- a/src/main/java/cz/jzitnik/game/Game.java
+++ b/src/main/java/cz/jzitnik/game/Game.java
@@ -5,8 +5,10 @@ import cz.jzitnik.game.items.ItemType;
import cz.jzitnik.game.sprites.Breaking;
import cz.jzitnik.game.sprites.Steve;
import cz.jzitnik.game.ui.Chest;
+import cz.jzitnik.game.ui.Furnace;
import cz.jzitnik.game.ui.Window;
import cz.jzitnik.game.ui.Inventory;
+import cz.jzitnik.tui.RightClickHandler;
import cz.jzitnik.tui.ScreenMovingCalculationProvider;
import cz.jzitnik.tui.ScreenRenderer;
import lombok.Getter;
@@ -179,7 +181,9 @@ public class Game {
for (Block block : blocks) {
if (block.getBlockId().equals("chest")) {
- ((Chest) block.getData()).breakChest(this);
+ ((Chest) block.getData()).breakBlock(this);
+ } else if (block.getBlockId().equals("furnace")) {
+ ((Furnace) block.getData()).breakBlock(this);
}
}
diff --git a/src/main/java/cz/jzitnik/game/SpriteLoader.java b/src/main/java/cz/jzitnik/game/SpriteLoader.java
index 97d8e53..06d41ff 100644
--- a/src/main/java/cz/jzitnik/game/SpriteLoader.java
+++ b/src/main/java/cz/jzitnik/game/SpriteLoader.java
@@ -17,6 +17,7 @@ public class SpriteLoader {
BEDROCK,
BREAKING,
COBBLESTONE,
+ FURNACE,
CHEST,
CRAFTING_TABLE,
@@ -38,6 +39,8 @@ public class SpriteLoader {
ITEM_OAK_PLANKS,
ITEM_STICK,
ITEM_COBBLESTONE,
+ ITEM_STONE,
+ ITEM_FURNACE,
ITEM_CRAFTING_TABLE,
ITEM_CHEST
@@ -48,7 +51,7 @@ public class SpriteLoader {
static {
SPRITES_MAP.put(SPRITES.AIR, new Air());
SPRITES_MAP.put(SPRITES.DIRT, new SimpleSprite("dirt.ans"));
- SPRITES_MAP.put(SPRITES.GRASS, new Grass());
+ SPRITES_MAP.put(SPRITES.GRASS, new SimpleSprite("grass.ans"));
SPRITES_MAP.put(SPRITES.STONE, new SimpleSprite("stone.ans"));
SPRITES_MAP.put(SPRITES.STEVE, new Steve());
SPRITES_MAP.put(SPRITES.BEDROCK, new SimpleSprite("bedrock.ans"));
@@ -59,6 +62,7 @@ public class SpriteLoader {
SPRITES_MAP.put(SPRITES.CRAFTING_TABLE, new SimpleSprite("crafting_table.ans"));
SPRITES_MAP.put(SPRITES.CHEST, new SimpleSprite("chest.ans"));
SPRITES_MAP.put(SPRITES.COBBLESTONE, new SimpleSprite("cobblestone.ans"));
+ SPRITES_MAP.put(SPRITES.FURNACE, new Furnace());
SPRITES_MAP.put(SPRITES.WOODEN_PICKAXE, new SimpleSprite("items/wooden_pickaxe.ans"));
SPRITES_MAP.put(SPRITES.STONE_PICKAXE, new SimpleSprite("items/stone_pickaxe.ans"));
@@ -72,7 +76,9 @@ public class SpriteLoader {
SPRITES_MAP.put(SPRITES.ITEM_STICK, new SimpleSprite("items/stick.ans"));
SPRITES_MAP.put(SPRITES.ITEM_CRAFTING_TABLE, new SimpleSprite("items/crafting_table.ans"));
SPRITES_MAP.put(SPRITES.ITEM_COBBLESTONE, new SimpleSprite("items/cobblestone.ans"));
+ SPRITES_MAP.put(SPRITES.ITEM_STONE, new SimpleSprite("items/stone.ans"));
SPRITES_MAP.put(SPRITES.ITEM_CHEST, new SimpleSprite("items/chest.ans"));
+ SPRITES_MAP.put(SPRITES.ITEM_FURNACE, new SimpleSprite("items/furnace.ans"));
}
public static SpriteList load() {
diff --git a/src/main/java/cz/jzitnik/game/crafting/CraftingRecipeList.java b/src/main/java/cz/jzitnik/game/crafting/CraftingRecipeList.java
index bd828db..9b3c867 100644
--- a/src/main/java/cz/jzitnik/game/crafting/CraftingRecipeList.java
+++ b/src/main/java/cz/jzitnik/game/crafting/CraftingRecipeList.java
@@ -90,10 +90,10 @@ public class CraftingRecipeList {
}, () -> new InventoryItem(1, ItemBlockSupplier.Items.stoneShovel())));
recipes.add(new CraftingRecipe(new String[][]{
- {"dirt", null, null},
- {null, null, null},
- {null, null, null}
- }, () -> new InventoryItem(1, ItemBlockSupplier.Items.chest())));
+ {"cobblestone", "cobblestone", "cobblestone"},
+ {"cobblestone", null, "cobblestone"},
+ {"cobblestone", "cobblestone", "cobblestone"}
+ }, () -> new InventoryItem(1, ItemBlockSupplier.Items.furnace())));
}
public static Optional getRecipe(String[] r) {
diff --git a/src/main/java/cz/jzitnik/game/items/InventoryItem.java b/src/main/java/cz/jzitnik/game/items/InventoryItem.java
index d255812..80fe605 100644
--- a/src/main/java/cz/jzitnik/game/items/InventoryItem.java
+++ b/src/main/java/cz/jzitnik/game/items/InventoryItem.java
@@ -15,7 +15,9 @@ public class InventoryItem {
public InventoryItem(int amount, Item item) {
this.amount = amount;
this.item = new ArrayList<>();
- this.item.add(item);
+ for (int i = 0; i < amount; i++) {
+ this.item.add(item);
+ }
}
public InventoryItem() {
@@ -33,10 +35,6 @@ public class InventoryItem {
item.add(i);
}
- public void setAmount(int amount) {
- this.amount = amount;
- }
-
public InventoryItem(Item item) {
this.amount = 1;
this.item = new ArrayList<>();
diff --git a/src/main/java/cz/jzitnik/game/items/ItemBlockSupplier.java b/src/main/java/cz/jzitnik/game/items/ItemBlockSupplier.java
index cdf7777..bc6ef14 100644
--- a/src/main/java/cz/jzitnik/game/items/ItemBlockSupplier.java
+++ b/src/main/java/cz/jzitnik/game/items/ItemBlockSupplier.java
@@ -3,6 +3,7 @@ package cz.jzitnik.game.items;
import cz.jzitnik.game.SpriteLoader;
import cz.jzitnik.game.Block;
import cz.jzitnik.game.ui.Chest;
+import cz.jzitnik.game.ui.Furnace;
import java.util.ArrayList;
import java.util.Arrays;
@@ -17,6 +18,9 @@ public class ItemBlockSupplier {
public static Item cobblestone(Block ref) {
return new Item("cobblestone", "Cobblestone", ItemType.BLOCK, SpriteLoader.SPRITES.ITEM_COBBLESTONE, ref);
}
+ public static Item stone(Block ref) {
+ return new Item("stone", "Stone", ItemType.BLOCK, SpriteLoader.SPRITES.ITEM_STONE, ref);
+ }
public static Item oakLog(Block ref) {
return new Item("oak_log", "Oak log", ItemType.BLOCK, SpriteLoader.SPRITES.ITEM_OAK_LOG, ref);
}
@@ -29,6 +33,9 @@ public class ItemBlockSupplier {
public static Item chest(Block ref) {
return new Item("chest", "Chest", ItemType.BLOCK, SpriteLoader.SPRITES.ITEM_CHEST, ref);
}
+ public static Item furnace(Block ref) {
+ return new Item("furnace", "Furnace", ItemType.BLOCK, SpriteLoader.SPRITES.ITEM_FURNACE, ref);
+ }
}
public static class Blocks {
@@ -72,6 +79,12 @@ public class ItemBlockSupplier {
block.setDrops(List.of(Helper.chest(block)));
return block;
}
+ public static Block furnace() {
+ var block = new Block("furnace", SpriteLoader.SPRITES.FURNACE, 15, ItemType.PICKAXE, Arrays.stream(ToolVariant.values()).toList());
+ block.setData(new Furnace(block));
+ block.setDrops(List.of(Helper.furnace(block)));
+ return block;
+ }
}
// I hate this but whatever
@@ -112,5 +125,11 @@ public class ItemBlockSupplier {
public static Item stoneShovel() {
return new Item("stone_shovel", "Stone shovel", ItemType.SHOVEL, SpriteLoader.SPRITES.STONE_SHOVEL, ToolVariant.STONE, 0.5, 132, false);
}
+ public static Item stone() {
+ return Helper.stone(Blocks.stone());
+ }
+ public static Item furnace() {
+ return Helper.furnace(Blocks.furnace());
+ }
}
}
diff --git a/src/main/java/cz/jzitnik/game/smelting/Smelting.java b/src/main/java/cz/jzitnik/game/smelting/Smelting.java
new file mode 100644
index 0000000..8aac464
--- /dev/null
+++ b/src/main/java/cz/jzitnik/game/smelting/Smelting.java
@@ -0,0 +1,21 @@
+package cz.jzitnik.game.smelting;
+
+import cz.jzitnik.game.items.Item;
+import cz.jzitnik.game.items.ItemBlockSupplier;
+
+import java.util.HashMap;
+import java.util.function.Supplier;
+
+
+public class Smelting {
+ public static final HashMap> smeltingList = new HashMap<>();
+ static {
+ smeltingList.put("cobblestone", ItemBlockSupplier.Items::stone);
+ }
+
+ public static final HashMap fuelList = new HashMap<>();
+ static {
+ fuelList.put("oak_log", 1.5);
+ fuelList.put("oak_planks", 1.5);
+ }
+}
diff --git a/src/main/java/cz/jzitnik/game/sprites/Furnace.java b/src/main/java/cz/jzitnik/game/sprites/Furnace.java
new file mode 100644
index 0000000..e40dae0
--- /dev/null
+++ b/src/main/java/cz/jzitnik/game/sprites/Furnace.java
@@ -0,0 +1,25 @@
+package cz.jzitnik.game.sprites;
+
+import cz.jzitnik.tui.ResourceLoader;
+import cz.jzitnik.tui.Sprite;
+
+public class Furnace extends Sprite {
+ public enum FurnaceState {
+ OFF,
+ ON,
+ }
+
+ public String getSprite() {
+ return ResourceLoader.loadResource("furnace.ans");
+ }
+
+ public String getSprite(Enum e) {
+ return ResourceLoader.loadResource(
+ switch (e) {
+ case FurnaceState.OFF -> "furnace.ans";
+ case FurnaceState.ON -> "furnace2.ans";
+ default -> throw new IllegalStateException("Unexpected value: " + e);
+ }
+ );
+ }
+}
diff --git a/src/main/java/cz/jzitnik/game/sprites/Grass.java b/src/main/java/cz/jzitnik/game/sprites/Grass.java
deleted file mode 100644
index 3e0e61b..0000000
--- a/src/main/java/cz/jzitnik/game/sprites/Grass.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package cz.jzitnik.game.sprites;
-
-import cz.jzitnik.tui.ResourceLoader;
-import cz.jzitnik.tui.Sprite;
-
-public class Grass extends Sprite {
- public String getSprite() {
- return ResourceLoader.loadResource("grass.ans");
- }
-
- public String getSprite(Enum key) {
- throw new RuntimeException("Imposible state");
- }
-}
diff --git a/src/main/java/cz/jzitnik/game/ui/Chest.java b/src/main/java/cz/jzitnik/game/ui/Chest.java
index e165ef0..64f7a8d 100644
--- a/src/main/java/cz/jzitnik/game/ui/Chest.java
+++ b/src/main/java/cz/jzitnik/game/ui/Chest.java
@@ -1,15 +1,12 @@
package cz.jzitnik.game.ui;
import cz.jzitnik.game.Game;
-import cz.jzitnik.game.crafting.CraftingRecipe;
-import cz.jzitnik.game.crafting.CraftingRecipeList;
import cz.jzitnik.game.items.InventoryItem;
import cz.jzitnik.tui.ScreenRenderer;
import cz.jzitnik.tui.SpriteList;
import org.jline.terminal.MouseEvent;
import org.jline.terminal.Terminal;
-import java.util.Arrays;
import java.util.List;
import java.util.Optional;
@@ -17,7 +14,7 @@ public class Chest {
private static final int ROW_AMOUNT = 4;
private static final int COLUMN_AMOUNT = 6;
private static final int CELL_WIDTH = 50;
- private static final int CELL_HEIGHT = 25;
+ private static final int CELL_HEIGHT = 26;
private static final int BORDER_SIZE = 2;
private final InventoryItem[] items = new InventoryItem[ROW_AMOUNT * COLUMN_AMOUNT];
@@ -31,10 +28,6 @@ public class Chest {
List sprites = game.getInventory().getSprites(items, spriteList, inventory.getSelectedItemInv() - 50);
- Optional recipe = CraftingRecipeList.getRecipe(Arrays.stream(items).map(item -> item == null ? null: item.getItem().getFirst().getId()).toArray(String[]::new));
-
- Optional craftedItem = recipe.map(craftingRecipe -> craftingRecipe.getItemSupplier().get());
-
for (int i = 0; i < ROW_AMOUNT; i++) {
for (int j = 0; j < CELL_HEIGHT; j++) {
buffer.append("\033[0m").append(" ".repeat(moveLeft));
@@ -48,7 +41,7 @@ public class Chest {
buffer.append("\033[0m ".repeat(CELL_WIDTH));
} else {
String[] spriteLines = sprite.split("\n");
- buffer.append(spriteLines[j + 1]);
+ buffer.append(spriteLines[j - 1]);
}
}
buffer.append("\033[38;5;231;48;5;231m▓".repeat(BORDER_SIZE));
@@ -68,8 +61,8 @@ public class Chest {
public void click(Game game, MouseEvent mouseEvent, Terminal terminal, ScreenRenderer screenRenderer) {
int x = mouseEvent.getX();
int y = mouseEvent.getY();
- int widthPixels = COLUMN_AMOUNT * (CELL_WIDTH + BORDER_SIZE) + BORDER_SIZE;
- int heightPixels = ROW_AMOUNT * (CELL_HEIGHT + 1);
+ int widthPixels = COLUMN_AMOUNT * (CELL_WIDTH + BORDER_SIZE) + BORDER_SIZE + 5;
+ int heightPixels = ROW_AMOUNT * (CELL_HEIGHT) - 10;
int moveLeft = (terminal.getWidth() / 2) - (widthPixels / 2);
if (x > moveLeft && x <= moveLeft + widthPixels && y > 0 && y <= heightPixels && mouseEvent.getType() == MouseEvent.Type.Pressed) {
@@ -89,7 +82,7 @@ public class Chest {
InventoryClickHandler.click(mouseEvent, terminal, screenRenderer, game, Optional.of(size + 20), Optional.of(items));
}
- public void breakChest(Game game) {
+ public void breakBlock(Game game) {
for (var i = 0; i < items.length; i++) {
if (items[i] == null) {
continue;
diff --git a/src/main/java/cz/jzitnik/game/ui/CloseHandler.java b/src/main/java/cz/jzitnik/game/ui/CloseHandler.java
index 7f3acec..09ac484 100644
--- a/src/main/java/cz/jzitnik/game/ui/CloseHandler.java
+++ b/src/main/java/cz/jzitnik/game/ui/CloseHandler.java
@@ -14,6 +14,7 @@ public class CloseHandler {
static {
handles.put(Window.CRAFTING_TABLE, game -> game.getGameStates().craftingTable.exit());
+ handles.put(Window.INVENTORY, game -> game.getInventory().exit());
}
public static void handle(Window window, Game game) {
diff --git a/src/main/java/cz/jzitnik/game/ui/CraftingTable.java b/src/main/java/cz/jzitnik/game/ui/CraftingTable.java
index 7226640..93fba24 100644
--- a/src/main/java/cz/jzitnik/game/ui/CraftingTable.java
+++ b/src/main/java/cz/jzitnik/game/ui/CraftingTable.java
@@ -128,7 +128,7 @@ public class CraftingTable {
return;
}
- if (x > moveLeft && x <= moveLeft + widthPixels && y > 0 && y <= heightPixels && mouseEvent.getType() == MouseEvent.Type.Pressed) {
+ if (x > moveLeft && x <= moveLeft + widthPixels && y > 0 && y < heightPixels && mouseEvent.getType() == MouseEvent.Type.Pressed) {
if (mouseEvent.getType() != MouseEvent.Type.Pressed) return;
int blockX = (x - moveLeft) / 52;
diff --git a/src/main/java/cz/jzitnik/game/ui/Furnace.java b/src/main/java/cz/jzitnik/game/ui/Furnace.java
new file mode 100644
index 0000000..7d6b107
--- /dev/null
+++ b/src/main/java/cz/jzitnik/game/ui/Furnace.java
@@ -0,0 +1,257 @@
+package cz.jzitnik.game.ui;
+
+import cz.jzitnik.game.Block;
+import cz.jzitnik.game.Game;
+import cz.jzitnik.game.items.InventoryItem;
+import cz.jzitnik.game.items.Item;
+import cz.jzitnik.game.smelting.Smelting;
+import cz.jzitnik.tui.ScreenRenderer;
+import cz.jzitnik.tui.SpriteList;
+import cz.jzitnik.tui.utils.Numbers;
+import cz.jzitnik.tui.utils.SpriteCombiner;
+import org.jline.terminal.MouseEvent;
+import org.jline.terminal.Terminal;
+
+import java.util.List;
+import java.util.Optional;
+
+public class Furnace {
+ private final Block block;
+ private final InventoryItem[] items = new InventoryItem[2];
+ private InventoryItem outputItem;
+ private int size;
+ private boolean smelting;
+
+ private static final int COLUMN_AMOUNT = 3;
+ private static final int CELL_WIDTH = 50;
+ private static final int CELL_HEIGHT = 27;
+ private static final int BORDER_SIZE = 2;
+
+ public Furnace(Block block) {
+ this.block = block;
+ }
+
+ public void render(Game game, StringBuilder buffer, Terminal terminal, SpriteList spriteList) {
+ int widthPixels = COLUMN_AMOUNT * (CELL_WIDTH + BORDER_SIZE) + BORDER_SIZE;
+ var inventory = game.getInventory();
+ int moveLeft = (terminal.getWidth() / 2) - (widthPixels / 2);
+
+ List sprites = game.getInventory().getSprites(items, spriteList, inventory.getSelectedItemInv() - 50);
+
+ String[] outputSprite = outputItem == null ? null : SpriteCombiner.combineTwoSprites(
+ spriteList.getSprite(outputItem.getItem().getFirst().getSprite()).getSprite(),
+ Numbers.getNumberSprite(outputItem.getAmount())
+ ).split("\n");
+
+ for (int j = 0; j < CELL_HEIGHT; j++) {
+ buffer.append("\033[0m").append(" ".repeat(moveLeft));
+
+ buffer.append("\033[38;5;231;48;5;231m▓".repeat(BORDER_SIZE));
+ if (j == 0 || j == CELL_HEIGHT - 1) {
+ buffer.append("\033[38;5;231;48;5;231m▓".repeat(CELL_WIDTH));
+ } else {
+ if (items[0] == null) {
+ buffer.append("\033[0m ".repeat(CELL_WIDTH));
+ } else {
+ String sprite = sprites.get(0);
+ String[] spriteLines = sprite.split("\n");
+ buffer.append(spriteLines[j - 1]);
+ }
+ }
+ buffer.append("\033[38;5;231;48;5;231m▓".repeat(BORDER_SIZE));
+
+ buffer.append("\n");
+ }
+
+ for (int j = 0; j < CELL_HEIGHT; j++) {
+ buffer.append("\033[0m").append(" ".repeat(moveLeft));
+
+ buffer.append("\033[0m").append(" ".repeat(2 * (2 * BORDER_SIZE + CELL_WIDTH)));
+
+ buffer.append("\033[38;5;231;48;5;231m▓".repeat(BORDER_SIZE));
+ if (j == 0 || j == CELL_HEIGHT - 1) {
+ buffer.append("\033[38;5;231;48;5;231m▓".repeat(CELL_WIDTH));
+ } else {
+ if (outputItem == null) {
+ buffer.append("\033[0m ".repeat(CELL_WIDTH));
+ } else {
+ buffer.append(outputSprite[j - 1]);
+ }
+ }
+ buffer.append("\033[38;5;231;48;5;231m▓".repeat(BORDER_SIZE));
+ buffer.append("\n");
+ }
+
+ for (int j = 0; j < CELL_HEIGHT; j++) {
+ buffer.append("\033[0m").append(" ".repeat(moveLeft));
+
+ buffer.append("\033[38;5;231;48;5;231m▓".repeat(BORDER_SIZE));
+ if (j == 0 || j == CELL_HEIGHT - 1) {
+ buffer.append("\033[38;5;231;48;5;231m▓".repeat(CELL_WIDTH));
+ } else {
+ if (items[1] == null) {
+ buffer.append("\033[0m ".repeat(CELL_WIDTH));
+ } else {
+ String sprite = sprites.get(1);
+ String[] spriteLines = sprite.split("\n");
+ buffer.append(spriteLines[j - 1]);
+ }
+ }
+ buffer.append("\033[38;5;231;48;5;231m▓".repeat(BORDER_SIZE));
+
+ buffer.append("\n");
+ }
+
+ buffer.append("\n".repeat(20));
+
+ size = buffer.toString().split("\n").length;
+
+ game.getInventory().renderFull(buffer, terminal, spriteList, false, Optional.of(size));
+ }
+
+ public void click(Game game, MouseEvent mouseEvent, Terminal terminal, ScreenRenderer screenRenderer) {
+ int x = mouseEvent.getX();
+ int y = mouseEvent.getY();
+ int widthPixels = COLUMN_AMOUNT * (CELL_WIDTH + BORDER_SIZE) + BORDER_SIZE;
+ int moveLeft = (terminal.getWidth() / 2) - (widthPixels / 2);
+
+ if (x > moveLeft && x <= moveLeft + CELL_WIDTH + BORDER_SIZE && y > 0 && y < CELL_HEIGHT && mouseEvent.getType() == MouseEvent.Type.Pressed) {
+ InventoryItem selectedItem = game.getInventory().getSelectedItemNo(Optional.of(items));
+ if (selectedItem != null && !Smelting.smeltingList.containsKey(selectedItem.getItem().getFirst().getId())) {
+ return;
+ }
+
+ InventoryClickHandler.handleItemClick(mouseEvent, game.getInventory(), items, 0, 50, Optional.of(items));
+
+ screenRenderer.render(game);
+ checkSmelt(game, screenRenderer);
+ } else if (x > moveLeft + (2 * (2 * BORDER_SIZE + CELL_WIDTH)) && x <= moveLeft + (3 * (2 * BORDER_SIZE + CELL_WIDTH)) && y > CELL_HEIGHT && y <= 2*CELL_HEIGHT && mouseEvent.getType() == MouseEvent.Type.Pressed) {
+ pickup(game);
+ screenRenderer.render(game);
+ } else if (x > moveLeft && x <= moveLeft + CELL_WIDTH + BORDER_SIZE && y > 2 * CELL_HEIGHT && y < 3 * CELL_HEIGHT && mouseEvent.getType() == MouseEvent.Type.Pressed) {
+ InventoryItem selectedItem = game.getInventory().getSelectedItemNo(Optional.of(items));
+ if (selectedItem != null && !Smelting.fuelList.containsKey(selectedItem.getItem().getFirst().getId())) {
+ return;
+ }
+
+ InventoryClickHandler.handleItemClick(mouseEvent, game.getInventory(), items, 1, 50, Optional.of(items));
+
+ screenRenderer.render(game);
+ checkSmelt(game, screenRenderer);
+ } else {
+ InventoryClickHandler.click(mouseEvent, terminal, screenRenderer, game, Optional.of(size + 20), Optional.of(items));
+ }
+ }
+
+ public void setSmelting(boolean smelting) {
+ this.smelting = smelting;
+ this.block.setSpriteState(smelting ? cz.jzitnik.game.sprites.Furnace.FurnaceState.ON : cz.jzitnik.game.sprites.Furnace.FurnaceState.OFF);
+ }
+
+ public void checkSmelt(Game game, ScreenRenderer screenRenderer) {
+ if (items[0] == null || items[1] == null) {
+ return;
+ }
+
+ if (!smelting) {
+ startSmelting(game, screenRenderer);
+ }
+ }
+
+ public void rerender(Game game, ScreenRenderer screenRenderer) {
+ if (game.getWindow() == Window.FURNACE) {
+ screenRenderer.render(game);
+ }
+ }
+
+ public void pickup(Game game) {
+ if (outputItem == null) {
+ return;
+ }
+
+ game.getInventory().addItem(outputItem);
+ outputItem = null;
+ }
+
+ public void startSmelting(Game game, ScreenRenderer screenRenderer) {
+ setSmelting(true);
+
+ // Add smelt item
+ Thread thread1 = new Thread(() -> {
+ while (true) {
+ try {
+ Thread.sleep(10000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+
+ if (smelting) {
+ var supplier = Smelting.smeltingList.get(items[0].getItem().getFirst().getId());
+ if (outputItem == null) {
+ outputItem = new InventoryItem(1, supplier.get());
+ } else {
+ outputItem.add(supplier.get());
+ }
+
+ items[0].decrease();
+ if (items[0].getAmount() == 0) {
+ items[0] = null;
+ }
+ rerender(game, screenRenderer);
+ }
+
+ if (items[0] == null || !smelting) {
+ break;
+ }
+ }
+ });
+
+ Thread thread2 = new Thread(() -> {
+ while (true) {
+ Item fuel = items[1].getItem().getFirst();
+ double smelts = Smelting.fuelList.get(fuel.getId());
+
+ items[1].decrease();
+ if (items[1].getAmount() == 0) {
+ items[1] = null;
+ }
+ rerender(game, screenRenderer);
+
+ try {
+ Thread.sleep((long) (10000 * smelts));
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+
+ if (items[0] == null || items[1] == null) {
+ setSmelting(false);
+ rerender(game, screenRenderer);
+ break;
+ }
+
+ rerender(game, screenRenderer);
+ }
+ });
+
+ thread1.start();
+ thread2.start();
+ }
+
+ public void breakBlock(Game game) {
+ for (var i = 0; i < items.length; i++) {
+ if (items[i] == null) {
+ continue;
+ }
+
+ game.getInventory().addItem(items[i]);
+ items[i] = null;
+ }
+
+ if (outputItem != null) {
+ game.getInventory().addItem(outputItem);
+ outputItem = null;
+ }
+
+ setSmelting(false);
+ }
+}
diff --git a/src/main/java/cz/jzitnik/game/ui/Inventory.java b/src/main/java/cz/jzitnik/game/ui/Inventory.java
index 3b0339a..c99b6fc 100644
--- a/src/main/java/cz/jzitnik/game/ui/Inventory.java
+++ b/src/main/java/cz/jzitnik/game/ui/Inventory.java
@@ -19,9 +19,9 @@ public class Inventory {
public static final int COLUMN_AMOUNT = 5;
public static final int ROW_AMOUNT = 4;
- private InventoryItem[] items = new InventoryItem[20];
- private InventoryItem[] hotbar = new InventoryItem[9];
- private SmallCraftingTable smallCraftingTable = new SmallCraftingTable( this);
+ private final InventoryItem[] items = new InventoryItem[20];
+ private final InventoryItem[] hotbar = new InventoryItem[9];
+ private final SmallCraftingTable smallCraftingTable = new SmallCraftingTable( this);
@Setter
private int itemInhHandIndex = 0;
@@ -253,6 +253,14 @@ public class Inventory {
}
}
+ public InventoryItem getSelectedItemNo(Optional i) {
+ InventoryDTO data = getItem(selectedItemInv, i);
+ if (selectedItemInv == -1) {
+ return null;
+ }
+ return data.getObj()[data.getIndex()];
+ }
+
public InventoryItem getSelectedItem(Optional i) {
InventoryItem temp;
InventoryDTO data = getItem(selectedItemInv, i);
@@ -267,6 +275,9 @@ public class Inventory {
public InventoryItem getOne(Optional i) {
InventoryDTO inventoryItem = getItem(selectedItemInv, i);
+ if (inventoryItem.getIndex() == -1) {
+ return null;
+ }
InventoryItem item = inventoryItem.getObj()[inventoryItem.getIndex()];
if (item.getAmount() == 1) {
return getSelectedItem(i);
@@ -363,4 +374,17 @@ public class Inventory {
selectedItemInv = -1;
}
}
+
+ public void exit() {
+ // Put all items from crafting to inv
+ for (int i = 0; i < smallCraftingTable.getItems().length; i++) {
+ InventoryItem item = smallCraftingTable.getItems()[i];
+ if (item == null) {
+ continue;
+ }
+
+ addItem(item);
+ smallCraftingTable.getItems()[i] = null;
+ }
+ }
}
diff --git a/src/main/java/cz/jzitnik/game/ui/InventoryClickHandler.java b/src/main/java/cz/jzitnik/game/ui/InventoryClickHandler.java
index 399e373..95b7a33 100644
--- a/src/main/java/cz/jzitnik/game/ui/InventoryClickHandler.java
+++ b/src/main/java/cz/jzitnik/game/ui/InventoryClickHandler.java
@@ -38,14 +38,20 @@ public class InventoryClickHandler {
int startLeftCrafting = moveLeft + (COLUMN_AMOUNT * (50 + 4) + 2) + 20;
int startTopCrafting = moveTop + 26;
- if (x < startLeftCrafting || y < startTopCrafting || x > startLeftCrafting + 167 || y > startTopCrafting + 52) return false;
+ if (x < startLeftCrafting || y < startTopCrafting || x > startLeftCrafting + 166 || y > startTopCrafting + 51) return false;
int craftX = x - startLeftCrafting;
int craftY = y - startTopCrafting;
- if (craftX > 106 && craftY > 10 && craftY < 37) {
- inventory.getSmallCraftingTable().pickup();
- screenRenderer.render(game);
+ if (craftX > 116) {
+ if (craftY > 10 && craftY < 37) {
+ inventory.getSmallCraftingTable().pickup();
+ screenRenderer.render(game);
+ }
+ return true;
+ }
+
+ if (craftX > 105) {
return true;
}
@@ -59,7 +65,7 @@ public class InventoryClickHandler {
int startLeftHotbar = (terminal.getWidth() / 2) - (INVENTORY_SIZE_PX / 2) + 2;
int startTopHotbar = moveTop + (ROW_AMOUNT * (25 + 1)) + 10;
- if (x < startLeftHotbar || y < startTopHotbar || x > startLeftHotbar + INVENTORY_SIZE_PX || y > startTopHotbar + 26) return false;
+ if (x < startLeftHotbar || y < startTopHotbar || x > startLeftHotbar + INVENTORY_SIZE_PX - 2 || y > startTopHotbar + 26) return false;
int index = (x - startLeftHotbar) / 52;
handleItemClick(mouseEvent, inventory, inventory.getHotbar(), index, 20, i);
@@ -74,7 +80,7 @@ public class InventoryClickHandler {
int widthPixels = COLUMN_AMOUNT * (50 + 4) + 2;
int heightPixels = ROW_AMOUNT * (25 + 1);
- if (fx < 0 || fx > widthPixels || fy < 0 || fy > heightPixels) return;
+ if (fx < 0 || fx > widthPixels - 3 || fy < 0 || fy > heightPixels - 1) return;
int blockIndex = (fy / 26) * COLUMN_AMOUNT + (fx / 54);
handleItemClick(mouseEvent, inventory, inventory.getItems(), blockIndex, 0, i);
diff --git a/src/main/java/cz/jzitnik/game/ui/Window.java b/src/main/java/cz/jzitnik/game/ui/Window.java
index 7f540b6..c896843 100644
--- a/src/main/java/cz/jzitnik/game/ui/Window.java
+++ b/src/main/java/cz/jzitnik/game/ui/Window.java
@@ -4,5 +4,6 @@ public enum Window {
WORLD,
INVENTORY,
CRAFTING_TABLE,
- CHEST
+ CHEST,
+ FURNACE
}
diff --git a/src/main/java/cz/jzitnik/game/MouseHandler.java b/src/main/java/cz/jzitnik/tui/MouseHandler.java
similarity index 97%
rename from src/main/java/cz/jzitnik/game/MouseHandler.java
rename to src/main/java/cz/jzitnik/tui/MouseHandler.java
index 5efbb4c..c01cd20 100644
--- a/src/main/java/cz/jzitnik/game/MouseHandler.java
+++ b/src/main/java/cz/jzitnik/tui/MouseHandler.java
@@ -1,8 +1,7 @@
-package cz.jzitnik.game;
+package cz.jzitnik.tui;
+import cz.jzitnik.game.Game;
import cz.jzitnik.game.ui.Window;
-import cz.jzitnik.tui.ScreenMovingCalculationProvider;
-import cz.jzitnik.tui.ScreenRenderer;
import lombok.AllArgsConstructor;
import org.jline.terminal.MouseEvent;
import org.jline.terminal.Terminal;
diff --git a/src/main/java/cz/jzitnik/game/RightClickHandler.java b/src/main/java/cz/jzitnik/tui/RightClickHandler.java
similarity index 83%
rename from src/main/java/cz/jzitnik/game/RightClickHandler.java
rename to src/main/java/cz/jzitnik/tui/RightClickHandler.java
index 2a49767..1e24353 100644
--- a/src/main/java/cz/jzitnik/game/RightClickHandler.java
+++ b/src/main/java/cz/jzitnik/tui/RightClickHandler.java
@@ -1,5 +1,7 @@
-package cz.jzitnik.game;
+package cz.jzitnik.tui;
+import cz.jzitnik.game.Block;
+import cz.jzitnik.game.Game;
import cz.jzitnik.game.ui.Window;
import java.util.HashMap;
@@ -18,6 +20,7 @@ public class RightClickHandler {
HashMap> functionMap = new HashMap<>();
functionMap.put("crafting_table", game.getGameStates().craftingTable::render);
functionMap.put("chest", (Integer ignored, Integer ignored2) -> game.setWindow(Window.CHEST));
+ functionMap.put("furnace", (Integer ignored, Integer ignored2) -> game.setWindow(Window.FURNACE));
game.getGameStates().clickX = x;
game.getGameStates().clickY = y;
diff --git a/src/main/java/cz/jzitnik/tui/ScreenRenderer.java b/src/main/java/cz/jzitnik/tui/ScreenRenderer.java
index fd95f68..6bdde91 100644
--- a/src/main/java/cz/jzitnik/tui/ScreenRenderer.java
+++ b/src/main/java/cz/jzitnik/tui/ScreenRenderer.java
@@ -4,6 +4,7 @@ import cz.jzitnik.game.Block;
import cz.jzitnik.game.Game;
import cz.jzitnik.game.sprites.Steve;
import cz.jzitnik.game.ui.Chest;
+import cz.jzitnik.game.ui.Furnace;
import cz.jzitnik.tui.utils.SpriteCombiner;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@@ -48,6 +49,7 @@ public class ScreenRenderer {
case INVENTORY -> game.getInventory().renderFull(main, terminal, spriteList, true, Optional.empty());
case CRAFTING_TABLE -> game.getGameStates().craftingTable.render(main, terminal, spriteList);
case CHEST -> ((Chest) game.getWorld()[game.getGameStates().clickY][game.getGameStates().clickX].stream().filter(i -> i.getBlockId().equals("chest")).toList().getFirst().getData()).render(game, main, terminal, spriteList);
+ case FURNACE -> ((Furnace) game.getWorld()[game.getGameStates().clickY][game.getGameStates().clickX].stream().filter(i -> i.getBlockId().equals("furnace")).toList().getFirst().getData()).render(game, main, terminal, spriteList);
case WORLD -> {
// World
diff --git a/src/main/resources/textures/bedrock.ans b/src/main/resources/textures/bedrock.ans
index d4e4ad9..4915a04 100644
--- a/src/main/resources/textures/bedrock.ans
+++ b/src/main/resources/textures/bedrock.ans
@@ -1,26 +1,25 @@
-[38;5;241;48;5;59m▓[38;5;241;48;5;59m▓[38;5;241;48;5;59m▓[38;5;237;48;5;237m▓[38;5;235;48;5;235m▓[38;5;235;48;5;235m▓[38;5;235;48;5;235m▓[38;5;235;48;5;235m▓[38;5;235;48;5;235m▓[38;5;235;48;5;235m▓[38;5;235;48;5;235m▓[38;5;235;48;5;235m▓[38;5;235;48;5;235m▓[38;5;235;48;5;235m▓[38;5;235;48;5;235m▓[38;5;235;48;5;235m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;247;48;5;247m▓[38;5;247;48;5;247m▓[38;5;247;48;5;247m▓[38;5;241;48;5;59m▓[38;5;241;48;5;59m▓[38;5;241;48;5;59m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;244;48;5;244m▓[38;5;247;48;5;247m▓[38;5;247;48;5;247m▓[38;5;245;48;5;245m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;235m▓[38;5;235;48;5;235m▓[38;5;235;48;5;235m▓[38;5;235;48;5;235m▓[38;5;235;48;5;235m▓[38;5;235;48;5;235m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;235m▓[38;5;235;48;5;235m▓[38;5;235;48;5;235m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[0m
-[38;5;241;48;5;59m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;237;48;5;237m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;244;48;5;243m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;245;48;5;245m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[0m
-[38;5;235;48;5;235m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;238;48;5;238m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;235;48;5;235m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;242;48;5;241m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[0m
-[38;5;235;48;5;235m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;237;48;5;237m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;244;48;5;244m▓[38;5;244;48;5;244m▓[38;5;244;48;5;244m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;244;48;5;244m▓[38;5;244;48;5;244m▓[38;5;244;48;5;244m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;244;48;5;244m▓[38;5;244;48;5;244m▓[38;5;244;48;5;244m▓[38;5;237;48;5;237m▓[38;5;237;48;5;237m▓[38;5;237;48;5;237m▓[38;5;242;48;5;241m▓[38;5;244;48;5;244m▓[38;5;244;48;5;244m▓[38;5;244;48;5;244m▓[38;5;245;48;5;245m▓[38;5;245;48;5;245m▓[38;5;245;48;5;245m▓[38;5;240;48;5;240m▓[38;5;240;48;5;240m▓[38;5;240;48;5;240m▓[38;5;234;48;5;234m▓[38;5;234;48;5;234m▓[38;5;234;48;5;234m▓[38;5;237;48;5;237m▓[38;5;237;48;5;237m▓[38;5;237;48;5;237m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;236;48;5;236m▓[38;5;236;48;5;236m▓[38;5;236;48;5;236m▓[0m
-[38;5;235;48;5;235m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;233;48;5;233m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;233;48;5;233m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;240;48;5;240m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;235m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[0m
-[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;244;48;5;244m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;245;48;5;245m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;238;48;5;238m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[0m
-[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;244;48;5;244m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;245;48;5;245m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;238;48;5;238m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[0m
-[38;5;232;48;5;233m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;234;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;237;48;5;237m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;235m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;236;48;5;235m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[0m
-[38;5;235;48;5;235m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;237;48;5;237m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;233;48;5;233m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;234;48;5;234m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;235;48;5;234m▓[38;5;235;48;5;235m▓[38;5;235;48;5;234m▓[0m
-[38;5;235;48;5;235m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;237;48;5;237m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;233;48;5;233m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;234;48;5;234m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[0m
-[38;5;247;48;5;247m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;245;48;5;245m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;240;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;242;48;5;241m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[0m
-[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;233;48;5;233m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;233;48;5;233m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[0m
-[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;233;48;5;233m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;233;48;5;233m▓[38;5;235;48;5;235m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[0m
-[38;5;241;48;5;59m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;244;48;5;244m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;244;48;5;244m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[0m
-[38;5;240;48;5;240m▓[38;5;240;48;5;239m▓[38;5;240;48;5;239m▓[38;5;240;48;5;239m▓[38;5;240;48;5;240m▓[38;5;240;48;5;240m▓[38;5;240;48;5;240m▓[38;5;240;48;5;240m▓[38;5;240;48;5;240m▓[38;5;240;48;5;240m▓[38;5;235;48;5;235m▓[38;5;235;48;5;235m▓[38;5;235;48;5;235m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;237;48;5;237m▓[38;5;237;48;5;237m▓[38;5;237;48;5;237m▓[38;5;236;48;5;236m▓[38;5;236;48;5;236m▓[38;5;236;48;5;236m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;237;48;5;237m▓[38;5;237;48;5;237m▓[38;5;237;48;5;237m▓[38;5;241;48;5;59m▓[38;5;243;48;5;243m▓[38;5;243;48;5;243m▓[38;5;243;48;5;243m▓[38;5;242;48;5;242m▓[38;5;242;48;5;242m▓[38;5;242;48;5;242m▓[38;5;237;48;5;237m▓[38;5;237;48;5;237m▓[38;5;237;48;5;237m▓[38;5;240;48;5;240m▓[38;5;240;48;5;240m▓[38;5;240;48;5;240m▓[38;5;240;48;5;240m▓[38;5;240;48;5;240m▓[38;5;240;48;5;240m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;243;48;5;243m▓[38;5;243;48;5;243m▓[38;5;243;48;5;243m▓[0m
-[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;236;48;5;236m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;235m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;238;48;5;238m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;240;48;5;240m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[0m
-[38;5;241;48;5;59m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;242;48;5;241m▓[38;5;247;48;5;246m▓[38;5;247;48;5;247m▓[38;5;247;48;5;246m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;247;48;5;247m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;235m▓[38;5;232;48;5;233m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;234;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;237;48;5;237m▓[38;5;247;48;5;247m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;247m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;235m▓[38;5;235;48;5;234m▓[0m
-[38;5;241;48;5;59m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;242;48;5;241m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;232;48;5;233m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;234;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;237;48;5;237m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[0m
-[38;5;232;48;5;233m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;236;48;5;236m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;245;48;5;245m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[0m
-[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;236;48;5;236m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;240;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;244;48;5;244m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;102;48;5;102m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[0m
-[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;236;48;5;236m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;240;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;244;48;5;244m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;102;48;5;102m▓[38;5;235;48;5;235m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[0m
-[38;5;241;48;5;59m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;244;48;5;244m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;245;48;5;245m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;234;48;5;234m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[0m
-[38;5;241;48;5;59m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;240;48;5;240m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;240;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;242;48;5;241m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[0m
-[38;5;241;48;5;59m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;240;48;5;240m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;240;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;242;48;5;241m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[0m
-[38;5;235;48;5;235m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;233;48;5;233m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;233;48;5;233m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;247;48;5;247m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;247;48;5;246m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;235;48;5;235m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;237;48;5;237m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;241;48;5;59m▓[38;5;241;48;5;240m▓[38;5;241;48;5;240m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;232;48;5;232m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;235;48;5;234m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;239;48;5;239m▓[38;5;241;48;5;240m▓[38;5;241;48;5;59m▓[38;5;241;48;5;240m▓[0m
-[0m
\ No newline at end of file
+[48;2;87;87;87m [48;2;86;86;86m [48;2;51;51;51m [48;2;87;87;87m [48;2;151;151;151m [48;2;129;129;129m [48;2;7;7;7m [48;2;151;151;151m [48;2;149;149;149m [48;2;87;87;87m [48;2;51;51;51m [48;2;89;89;89m [48;2;87;87;87m [m
+[48;2;87;85;87m [48;2;86;86;86m [48;2;51;51;51m [48;2;50;50;50m [48;2;86;86;86m [48;2;153;152;152m [48;2;151;151;151m [48;2;149;151;151m [48;2;129;129;129m [48;2;6;6;6m [48;2;151;151;151m [48;2;149;149;149m [48;2;86;84;86m [48;2;50;50;50m [48;2;50;48;48m [48;2;51;51;51m [48;2;88;91;88m [48;2;86;86;86m [m
+[48;2;87;87;87m [48;2;87;86;87m [48;2;87;87;87m [48;2;151;151;151m [48;2;151;151;149m [48;2;151;151;151m [48;2;151;151;149m [48;2;151;151;151m [48;2;133;133;133m [48;2;51;51;51m [48;2;151;151;151m [48;2;150;150;150m [48;2;7;7;7m [48;2;87;87;85m [48;2;87;87;87m [48;2;48;48;48m [48;2;51;51;51m [m
+[48;2;87;87;87m [48;2;86;86;86m [48;2;6;6;6m [48;2;51;51;50m [48;2;51;51;51m [48;2;7;7;7m [48;2;51;51;51m [48;2;72;72;72m [48;2;150;150;150m [48;2;51;51;51m [48;2;87;87;87m [48;2;151;151;151m [48;2;87;87;87m [m
+[48;2;87;87;87m [48;2;5;5;5m [48;2;51;51;51m [48;2;7;7;7m [48;2;51;51;51m [48;2;73;73;73m [48;2;151;149;151m [48;2;51;51;49m [48;2;51;51;51m [48;2;87;87;87m [48;2;151;151;151m [48;2;87;87;87m [m
+[48;2;87;87;87m [48;2;85;85;85m [48;2;151;151;151m [48;2;87;87;87m [48;2;86;87;87m [48;2;87;87;87m [48;2;7;7;7m [48;2;88;88;88m [48;2;87;87;87m [48;2;151;151;151m [48;2;135;135;135m [48;2;87;87;87m [48;2;85;85;85m [48;2;51;51;51m [48;2;89;89;89m [48;2;87;87;87m [m
+[48;2;87;87;87m [48;2;85;85;85m [48;2;151;151;151m [48;2;51;51;51m [48;2;50;50;50m [48;2;50;50;51m [48;2;50;51;51m [48;2;51;51;51m [48;2;54;54;54m [48;2;151;150;151m [48;2;151;151;151m [48;2;1;1;1m [48;2;8;8;8m [m
+[48;2;87;87;87m [48;2;85;85;85m [48;2;151;151;151m [48;2;51;51;51m [48;2;49;51;51m [48;2;51;51;51m [48;2;56;56;56m [48;2;151;151;151m [48;2;150;151;151m [48;2;151;151;151m [48;2;1;1;1m [48;2;7;7;7m [m
+[48;2;51;51;51m [48;2;87;87;87m [48;2;51;51;51m [48;2;61;61;61m [48;2;87;87;87m [48;2;7;7;7m [48;2;85;87;87m [48;2;87;87;87m [48;2;51;51;51m [48;2;51;50;51m [48;2;7;7;7m [48;2;91;91;91m [48;2;87;87;87m [m
+[48;2;155;155;155m [48;2;87;87;87m [48;2;99;99;99m [48;2;87;87;87m [48;2;51;51;51m [48;2;153;153;153m [48;2;138;138;138m [48;2;87;87;87m [48;2;89;89;89m [48;2;89;88;89m [48;2;87;87;87m [48;2;153;153;153m [48;2;152;152;152m [48;2;0;0;0m [48;2;2;2;2m [m
+[48;2;151;151;151m [48;2;87;87;87m [48;2;99;97;99m [48;2;87;87;87m [48;2;51;51;51m [48;2;153;153;153m [48;2;151;151;151m [48;2;150;151;151m [48;2;136;136;136m [48;2;87;87;87m [48;2;151;151;151m [48;2;0;0;0m [48;2;7;7;7m [m
+[48;2;87;87;87m [48;2;87;85;87m [48;2;87;87;87m [48;2;51;51;51m [48;2;7;7;7m [48;2;8;8;8m [48;2;51;51;51m [48;2;87;87;87m [m
+[48;2;87;87;87m [48;2;87;86;87m [48;2;105;105;105m [48;2;43;43;43m [48;2;74;74;74m [48;2;75;75;75m [48;2;51;51;51m [48;2;62;62;62m [48;2;61;61;61m [48;2;74;74;74m [48;2;105;105;105m [48;2;105;107;105m [48;2;105;105;105m [m
+[48;2;87;87;87m [48;2;86;86;86m [48;2;151;151;150m [48;2;149;151;151m [48;2;150;150;150m [48;2;7;7;7m [48;2;151;151;151m [48;2;51;51;51m [48;2;86;86;87m [48;2;87;87;87m [48;2;87;86;87m [48;2;150;150;150m [48;2;151;151;151m [48;2;149;151;151m [48;2;151;151;151m [m
+[48;2;87;85;87m [48;2;85;85;85m [48;2;50;50;50m [48;2;51;51;51m [48;2;49;51;51m [48;2;51;51;51m [48;2;87;87;87m [48;2;75;75;75m [48;2;7;7;7m [48;2;87;87;87m [48;2;87;85;87m [48;2;87;87;87m [48;2;51;51;51m [48;2;51;50;51m [48;2;51;51;51m [48;2;151;151;151m [48;2;79;79;79m [48;2;87;87;87m [m
+[48;2;87;87;87m [48;2;86;86;86m [48;2;52;52;52m [48;2;56;56;56m [48;2;51;51;51m [48;2;55;54;54m [48;2;54;54;54m [48;2;55;55;55m [48;2;85;85;85m [48;2;74;74;74m [48;2;7;7;7m [48;2;85;85;85m [48;2;87;87;87m [48;2;54;54;54m [48;2;52;52;52m [48;2;51;51;51m [48;2;150;150;148m [48;2;79;79;79m [48;2;87;87;87m [m
+[48;2;87;87;87m [48;2;151;151;151m [48;2;51;51;51m [48;2;51;51;50m [48;2;151;151;151m [48;2;51;51;51m [48;2;43;43;43m [48;2;7;7;7m [48;2;51;51;51m [48;2;57;57;57m [48;2;151;151;151m [48;2;86;86;86m [48;2;87;87;87m [m
+[48;2;6;6;6m [48;2;4;4;4m [48;2;87;87;87m [48;2;87;87;85m [48;2;87;87;87m [48;2;50;50;50m [48;2;51;51;51m [48;2;86;86;86m [48;2;87;87;87m [48;2;104;104;104m [48;2;151;151;151m [48;2;149;149;149m [48;2;87;87;87m [48;2;152;152;152m [48;2;151;151;151m [48;2;0;0;0m [48;2;6;6;6m [m
+[48;2;7;7;7m [48;2;4;4;4m [48;2;86;86;86m [48;2;87;86;86m [48;2;86;86;86m [48;2;51;51;51m [48;2;87;87;87m [48;2;85;87;87m [48;2;104;104;104m [48;2;151;151;151m [48;2;149;149;149m [48;2;87;87;87m [48;2;87;87;86m [48;2;87;87;87m [48;2;151;151;151m [48;2;0;0;0m [48;2;7;7;7m [m
+[48;2;87;85;87m [48;2;87;87;87m [48;2;51;51;51m [48;2;51;51;50m [48;2;51;51;51m [48;2;74;74;74m [48;2;151;151;151m [48;2;150;150;150m [48;2;51;51;51m [48;2;90;90;90m [48;2;87;87;87m [m
+[48;2;87;87;87m [48;2;88;88;88m [48;2;151;151;151m [48;2;51;50;50m [48;2;51;51;51m [48;2;152;152;152m [48;2;6;4;4m [48;2;7;7;7m [48;2;87;87;87m [48;2;51;51;51m [48;2;50;50;50m [48;2;6;6;6m [48;2;51;51;51m [48;2;85;87;87m [48;2;87;87;87m [48;2;151;151;151m [48;2;152;152;152m [m
+[48;2;86;87;87m [48;2;87;87;87m [48;2;151;151;149m [48;2;51;51;51m [48;2;151;151;151m [48;2;6;6;6m [48;2;7;7;7m [48;2;87;87;87m [48;2;87;87;85m [48;2;87;87;87m [48;2;51;51;51m [48;2;7;7;7m [48;2;51;51;51m [48;2;87;87;87m [48;2;85;87;87m [48;2;151;150;151m [48;2;151;151;151m [m
+[48;2;87;87;87m [48;2;51;51;51m [48;2;49;51;51m [48;2;51;51;51m [48;2;61;61;61m [48;2;87;87;87m [48;2;151;151;151m [48;2;87;87;87m [48;2;51;51;51m [48;2;90;90;90m [48;2;87;87;87m [m
+[48;2;44;44;44m [48;2;51;51;51m [48;2;3;3;3m [48;2;1;1;1m [48;2;156;156;156m [48;2;157;157;157m [48;2;89;89;89m [48;2;87;87;87m [48;2;85;85;85m [48;2;79;79;79m [48;2;25;25;25m [48;2;24;24;24m [48;2;45;45;45m [48;2;51;51;51m [48;2;89;89;89m [48;2;87;87;87m [m
+[48;2;51;51;51m [48;2;7;7;7m [48;2;151;151;151m [48;2;87;87;87m [48;2;51;51;51m [48;2;87;87;87m [m
diff --git a/src/main/resources/textures/furnace.ans b/src/main/resources/textures/furnace.ans
new file mode 100644
index 0000000..4d991e9
--- /dev/null
+++ b/src/main/resources/textures/furnace.ans
@@ -0,0 +1,25 @@
+[48;2;81;78;79m [48;2;59;59;59m [48;2;81;78;79m [48;2;81;79;79m [48;2;59;59;59m [48;2;80;77;78m [48;2;81;78;79m [48;2;59;59;59m [48;2;81;78;79m [m
+[48;2;81;78;79m [48;2;137;135;136m [48;2;142;142;142m [48;2;157;157;157m [48;2;156;156;156m [48;2;113;113;112m [48;2;113;113;113m [48;2;113;113;112m [48;2;59;59;59m [48;2;162;162;162m [48;2;157;157;157m [48;2;158;158;158m [48;2;142;142;142m [48;2;113;113;113m [48;2;60;60;60m [48;2;59;59;59m [48;2;75;75;75m [48;2;116;116;116m [48;2;113;113;113m [48;2;86;86;86m [48;2;81;78;79m [m
+[48;2;81;78;79m [48;2;137;135;136m [48;2;143;143;143m [48;2;158;156;158m [48;2;157;157;157m [48;2;113;113;113m [48;2;59;59;59m [48;2;162;162;162m [48;2;158;158;158m [48;2;160;160;160m [48;2;143;143;143m [48;2;115;113;113m [48;2;113;113;113m [48;2;60;60;60m [48;2;59;59;59m [48;2;75;75;75m [48;2;116;116;116m [48;2;113;113;113m [48;2;86;86;86m [48;2;81;78;79m [m
+[48;2;59;59;59m [48;2;132;132;132m [48;2;143;143;143m [48;2;113;113;113m [48;2;143;143;143m [48;2;84;86;86m [48;2;86;86;86m [48;2;73;75;75m [48;2;146;146;146m [48;2;143;143;143m [48;2;113;113;113m [48;2;113;112;113m [48;2;113;113;113m [48;2;143;143;143m [48;2;143;143;142m [48;2;86;86;86m [48;2;75;75;75m [48;2;59;59;59m [48;2;76;76;76m [48;2;75;75;75m [48;2;113;113;113m [48;2;112;112;112m [48;2;81;78;79m [m
+[48;2;73;70;71m [48;2;99;99;99m [48;2;101;101;101m [48;2;113;113;113m [48;2;110;110;110m [48;2;68;69;69m [48;2;69;71;69m [48;2;48;48;48m [48;2;78;78;78m [48;2;76;76;76m [48;2;64;64;64m [48;2;77;77;77m [48;2;55;55;55m [48;2;63;63;63m [48;2;64;64;64m [48;2;108;108;108m [48;2;95;95;95m [48;2;97;97;97m [48;2;89;91;89m [48;2;89;89;89m [48;2;81;78;79m [m
+[48;2;81;78;79m [48;2;76;76;76m [48;2;75;75;75m [48;2;113;113;113m [48;2;112;112;112m [48;2;86;86;86m [48;2;59;59;59m [48;2;33;33;33m [48;2;32;33;33m [48;2;33;33;33m [48;2;33;35;33m [48;2;58;58;58m [48;2;59;59;59m [48;2;143;143;143m [48;2;109;109;109m [48;2;113;113;113m [48;2;75;75;75m [48;2;81;78;79m [m
+[48;2;81;78;79m [48;2;85;85;85m [48;2;86;86;86m [48;2;75;75;75m [48;2;59;59;59m [48;2;17;17;17m [48;2;19;17;17m [48;2;17;17;17m [48;2;59;59;59m [48;2;153;153;153m [48;2;143;143;143m [48;2;113;113;113m [48;2;114;114;114m [48;2;59;59;59m [m
+[48;2;81;79;79m [48;2;85;85;85m [48;2;86;86;86m [48;2;69;69;69m [48;2;62;62;62m [48;2;17;17;17m [48;2;16;16;16m [48;2;16;16;17m [48;2;16;16;16m [48;2;17;16;16m [48;2;16;16;16m [48;2;17;17;17m [48;2;19;17;17m [48;2;17;17;16m [48;2;63;63;63m [48;2;154;154;154m [48;2;146;146;146m [48;2;114;114;114m [48;2;115;115;115m [48;2;59;58;59m [m
+[48;2;57;59;59m [48;2;82;82;82m [48;2;86;86;86m [48;2;143;143;143m [48;2;139;139;139m [48;2;17;17;17m [48;2;33;33;33m [48;2;17;17;17m [48;2;122;122;122m [48;2;113;113;113m [48;2;86;86;86m [48;2;87;87;87m [48;2;59;59;59m [m
+[48;2;81;78;79m [48;2;109;109;109m [48;2;113;113;113m [48;2;75;75;75m [48;2;72;72;72m [48;2;17;17;17m [48;2;59;59;59m [48;2;17;17;17m [48;2;19;17;17m [48;2;93;93;93m [48;2;86;86;86m [48;2;75;75;75m [48;2;81;78;79m [m
+[48;2;81;78;79m [48;2;109;109;109m [48;2;113;113;113m [48;2;75;75;75m [48;2;72;72;72m [48;2;17;17;17m [48;2;59;59;59m [48;2;17;17;17m [48;2;93;93;93m [48;2;86;86;86m [48;2;75;75;75m [48;2;81;78;79m [m
+[48;2;59;59;59m [48;2;106;106;106m [48;2;113;113;113m [48;2;86;86;86m [48;2;113;113;113m [48;2;113;113;115m [48;2;113;113;113m [48;2;85;85;85m [48;2;86;86;86m [48;2;75;75;75m [48;2;69;69;69m [48;2;113;113;113m [48;2;158;158;158m [48;2;143;143;143m [48;2;75;75;75m [48;2;86;86;86m [48;2;115;115;115m [48;2;113;113;113m [48;2;75;72;75m [48;2;75;75;75m [48;2;59;59;59m [m
+[48;2;59;59;59m [48;2;70;70;70m [48;2;166;166;166m [48;2;150;150;150m [48;2;84;84;84m [48;2;72;72;72m [48;2;72;73;73m [48;2;116;116;116m [48;2;112;112;112m [48;2;163;163;163m [48;2;106;106;106m [48;2;110;108;110m [48;2;117;117;117m [48;2;73;73;73m [48;2;70;70;70m [48;2;58;58;58m [48;2;57;57;57m [48;2;80;79;79m [m
+[48;2;59;59;59m [48;2;72;72;72m [48;2;75;75;75m [48;2;158;158;158m [48;2;143;143;143m [48;2;86;86;86m [48;2;73;73;73m [48;2;75;75;75m [48;2;113;113;113m [48;2;107;107;107m [48;2;159;158;158m [48;2;113;113;113m [48;2;75;75;75m [48;2;59;59;59m [48;2;58;58;58m [48;2;81;78;79m [m
+[48;2;81;78;79m [48;2;182;182;182m [48;2;197;197;197m [48;2;176;176;176m [48;2;177;177;177m [48;2;197;197;197m [48;2;168;168;168m [48;2;171;171;171m [48;2;81;78;79m [m
+[48;2;81;78;79m [48;2;179;179;179m [48;2;191;191;191m [48;2;175;175;175m [48;2;176;176;176m [48;2;191;191;191m [48;2;192;192;192m [48;2;190;190;190m [48;2;186;186;186m [48;2;192;192;192m [48;2;194;192;192m [48;2;191;191;191m [48;2;193;193;193m [48;2;167;166;167m [48;2;170;170;168m [48;2;76;74;75m [m
+[48;2;81;78;78m [48;2;157;157;157m [48;2;168;168;168m [48;2;177;176;176m [48;2;176;176;176m [48;2;168;168;168m [48;2;132;132;132m [48;2;133;133;133m [48;2;168;168;168m [48;2;176;176;176m [48;2;177;176;176m [48;2;168;168;168m [48;2;177;177;177m [48;2;176;177;176m [48;2;157;157;157m [48;2;161;161;161m [48;2;59;59;59m [m
+[48;2;81;78;79m [48;2;148;148;148m [48;2;157;157;157m [48;2;168;168;168m [48;2;146;146;146m [48;2;94;91;92m [48;2;33;33;33m [48;2;16;16;16m [48;2;17;17;17m [48;2;33;33;33m [48;2;92;90;91m [48;2;94;91;92m [48;2;146;146;146m [48;2;170;170;170m [48;2;168;168;168m [48;2;157;157;157m [48;2;160;160;160m [48;2;81;78;79m [m
+[48;2;81;78;79m [48;2;148;148;148m [48;2;157;157;157m [48;2;169;169;169m [48;2;168;168;168m [48;2;144;144;144m [48;2;92;90;91m [48;2;33;33;33m [48;2;16;16;16m [48;2;17;17;17m [48;2;33;33;33m [48;2;92;90;91m [48;2;143;143;143m [48;2;169;169;169m [48;2;168;168;168m [48;2;157;157;157m [48;2;160;160;160m [48;2;81;78;79m [m
+[48;2;81;78;79m [48;2;136;136;136m [48;2;146;146;146m [48;2;143;143;143m [48;2;81;78;79m [48;2;17;17;17m [48;2;16;17;17m [48;2;17;17;17m [48;2;81;78;79m [48;2;123;123;123m [48;2;119;119;119m [48;2;157;157;157m [48;2;160;160;160m [48;2;81;78;79m [m
+[48;2;81;78;79m [48;2;113;113;113m [48;2;119;119;119m [48;2;146;146;146m [48;2;141;141;141m [48;2;17;17;17m [48;2;33;33;33m [48;2;33;33;35m [48;2;33;33;33m [48;2;17;17;17m [48;2;173;173;173m [48;2;157;157;157m [48;2;146;146;146m [48;2;147;147;146m [48;2;80;78;79m [m
+[48;2;81;78;79m [48;2;113;113;113m [48;2;119;119;119m [48;2;146;146;146m [48;2;141;141;141m [48;2;17;17;17m [48;2;17;16;17m [48;2;17;17;17m [48;2;33;33;33m [48;2;17;17;17m [48;2;173;173;173m [48;2;157;157;157m [48;2;146;146;146m [48;2;147;147;147m [48;2;81;78;79m [m
+[48;2;59;59;59m [48;2;136;136;136m [48;2;146;146;146m [48;2;119;119;119m [48;2;116;116;116m [48;2;17;17;17m [48;2;33;33;33m [48;2;17;17;17m [48;2;132;132;132m [48;2;119;119;119m [48;2;157;157;157m [48;2;161;161;161m [48;2;59;59;59m [m
+[48;2;59;59;59m [48;2;96;96;96m [48;2;100;100;100m [48;2;54;54;54m [48;2;62;62;62m [48;2;82;81;82m [48;2;61;61;61m [48;2;62;62;62m [48;2;54;54;54m [48;2;55;55;55m [48;2;100;100;100m [48;2;59;59;59m [m
+[48;2;59;59;59m [48;2;98;98;98m [48;2;104;104;104m [48;2;59;59;59m [48;2;81;78;79m [48;2;60;60;60m [48;2;59;59;59m [48;2;104;104;104m [48;2;105;105;105m [48;2;59;59;59m [m
diff --git a/src/main/resources/textures/furnace2.ans b/src/main/resources/textures/furnace2.ans
new file mode 100644
index 0000000..36522d5
--- /dev/null
+++ b/src/main/resources/textures/furnace2.ans
@@ -0,0 +1,25 @@
+[48;2;74;70;71m [48;2;78;74;75m [48;2;75;75;75m [48;2;57;57;57m [48;2;75;75;75m [48;2;78;74;75m [48;2;68;66;67m [48;2;54;54;54m [48;2;57;57;57m [48;2;56;57;57m [48;2;73;73;73m [48;2;56;56;56m [48;2;57;56;57m [48;2;58;58;58m [48;2;75;75;75m [48;2;78;74;75m [m
+[48;2;75;71;72m [48;2;79;75;76m [48;2;78;74;75m [48;2;74;70;71m [48;2;67;67;67m [48;2;53;52;53m [48;2;55;54;55m [48;2;75;74;75m [48;2;80;76;77m [48;2;72;68;69m [48;2;76;72;73m [48;2;56;54;55m [48;2;52;52;52m [48;2;54;54;54m [48;2;55;53;53m [48;2;67;67;67m [48;2;69;69;69m [48;2;51;51;51m [48;2;52;52;52m [48;2;53;53;53m [48;2;74;74;72m [48;2;76;74;75m [48;2;77;73;74m [m
+[48;2;72;72;72m [48;2;74;74;74m [48;2;97;97;97m [48;2;96;96;96m [48;2;95;95;95m [48;2;108;108;108m [48;2;96;96;96m [48;2;110;111;110m [48;2;111;111;109m [48;2;100;100;102m [48;2;107;107;107m [48;2;110;108;108m [48;2;108;108;108m [48;2;96;96;96m [48;2;110;110;110m [48;2;111;111;111m [48;2;95;95;95m [48;2;111;109;111m [48;2;111;111;111m [48;2;91;91;91m [48;2;76;76;76m [48;2;74;74;74m [m
+[48;2;56;58;56m [48;2;54;54;54m [48;2;90;90;90m [48;2;103;103;103m [48;2;128;128;128m [48;2;108;108;108m [48;2;128;128;128m [48;2;94;94;95m [48;2;94;92;94m [48;2;111;111;111m [48;2;115;115;115m [48;2;119;119;119m [48;2;128;128;128m [48;2;131;131;131m [48;2;108;108;108m [48;2;127;127;127m [48;2;129;128;128m [48;2;109;108;108m [48;2;94;95;94m [48;2;96;96;96m [48;2;109;109;109m [48;2;67;67;67m [48;2;74;74;74m [m
+[48;2;57;56;56m [48;2;58;59;58m [48;2;91;91;91m [48;2;102;102;102m [48;2;101;101;101m [48;2;128;128;128m [48;2;103;103;103m [48;2;104;104;104m [48;2;130;130;130m [48;2;86;87;87m [48;2;96;98;96m [48;2;111;111;111m [48;2;116;118;116m [48;2;120;120;120m [48;2;130;131;130m [48;2;121;121;121m [48;2;109;109;109m [48;2;126;124;124m [48;2;125;125;125m [48;2;110;110;110m [48;2;94;94;94m [48;2;95;95;95m [48;2;110;110;110m [48;2;77;77;77m [48;2;74;74;74m [m
+[48;2;75;71;72m [48;2;74;70;72m [48;2;96;96;96m [48;2;117;117;117m [48;2;119;119;119m [48;2;118;118;118m [48;2;56;56;56m [48;2;54;54;54m [48;2;33;33;33m [48;2;32;32;32m [48;2;33;33;33m [48;2;33;33;35m [48;2;33;33;33m [48;2;58;58;58m [48;2;56;56;56m [48;2;128;128;128m [48;2;108;108;108m [48;2;105;105;105m [48;2;96;96;96m [48;2;74;74;74m [m
+[48;2;75;68;72m [48;2;76;72;73m [48;2;107;107;107m [48;2;118;118;118m [48;2;115;115;115m [48;2;56;56;56m [48;2;12;12;14m [48;2;15;15;15m [48;2;20;20;20m [48;2;14;14;14m [48;2;15;15;15m [48;2;57;57;57m [48;2;108;108;108m [48;2;106;106;106m [48;2;90;91;91m [48;2;54;54;54m [48;2;61;61;61m [m
+[48;2;73;73;73m [48;2;71;71;71m [48;2;108;108;108m [48;2;121;121;121m [48;2;114;114;114m [48;2;55;55;55m [48;2;14;14;14m [48;2;18;18;18m [48;2;17;17;16m [48;2;17;17;17m [48;2;16;16;16m [48;2;15;15;15m [48;2;16;16;16m [48;2;17;17;17m [48;2;18;18;18m [48;2;48;49;48m [48;2;109;109;109m [48;2;110;110;110m [48;2;91;91;91m [48;2;54;54;54m [48;2;61;61;61m [m
+[48;2;56;56;56m [48;2;54;54;54m [48;2;108;108;108m [48;2;94;94;94m [48;2;96;96;96m [48;2;18;18;18m [48;2;18;19;18m [48;2;18;18;18m [48;2;33;33;33m [48;2;35;33;33m [48;2;33;33;33m [48;2;33;35;33m [48;2;33;33;33m [48;2;33;35;33m [48;2;37;37;36m [48;2;18;18;18m [48;2;16;18;18m [48;2;18;18;18m [48;2;128;128;128m [48;2;127;127;127m [48;2;91;91;91m [48;2;52;54;54m [48;2;61;61;61m [m
+[48;2;75;75;75m [48;2;68;68;68m [48;2;108;108;108m [48;2;94;94;94m [48;2;96;96;96m [48;2;18;18;18m [48;2;19;18;18m [48;2;14;14;14m [48;2;57;56;57m [48;2;64;64;64m [48;2;60;60;60m [48;2;62;62;62m [48;2;56;57;57m [48;2;20;20;20m [48;2;18;18;18m [48;2;128;128;128m [48;2;127;127;127m [48;2;90;91;91m [48;2;92;92;92m [48;2;93;93;93m [m
+[48;2;73;73;73m [48;2;71;71;71m [48;2;108;108;108m [48;2;94;94;94m [48;2;96;96;96m [48;2;18;19;18m [48;2;18;18;18m [48;2;16;16;16m [48;2;57;57;57m [48;2;14;14;15m [48;2;16;18;19m [48;2;17;17;17m [48;2;128;128;128m [48;2;126;127;127m [48;2;91;91;91m [48;2;94;92;92m [m
+[48;2;58;58;58m [48;2;55;55;55m [48;2;108;108;108m [48;2;122;122;122m [48;2;132;133;132m [48;2;149;149;149m [48;2;151;149;149m [48;2;147;147;145m [48;2;157;157;157m [48;2;156;157;157m [48;2;157;157;157m [48;2;144;144;144m [48;2;149;149;149m [48;2;128;128;128m [48;2;130;130;130m [48;2;104;105;104m [48;2;60;60;60m [48;2;59;59;59m [m
+[48;2;55;55;55m [48;2;54;54;54m [48;2;108;108;108m [48;2;118;118;118m [48;2;130;130;130m [48;2;127;126;127m [48;2;120;120;120m [48;2;123;123;123m [48;2;121;121;121m [48;2;136;136;136m [48;2;129;129;129m [48;2;120;120;120m [48;2;119;119;119m [48;2;116;116;116m [48;2;122;122;122m [48;2;124;124;124m [48;2;129;129;129m [48;2;114;114;114m [48;2;112;113;113m [48;2;117;117;117m [48;2;119;119;119m [48;2;114;114;114m [48;2;108;108;108m [48;2;81;81;81m [48;2;75;75;75m [m
+[48;2;59;58;56m [48;2;56;56;56m [48;2;108;108;108m [48;2;116;116;116m [48;2;120;120;120m [48;2;108;108;108m [48;2;99;99;99m [48;2;101;103;101m [48;2;83;83;83m [48;2;109;109;109m [48;2;108;108;108m [48;2;96;96;96m [48;2;84;84;84m [48;2;83;83;83m [48;2;98;98;98m [48;2;108;108;108m [48;2;88;88;88m [48;2;82;83;82m [48;2;97;97;97m [48;2;108;108;108m [48;2;110;110;110m [48;2;106;104;106m [48;2;88;90;90m [48;2;91;91;91m [m
+[48;2;97;97;97m [48;2;96;96;96m [48;2;171;170;171m [48;2;162;162;162m [48;2;160;160;160m [48;2;171;171;171m [48;2;171;171;169m [48;2;171;171;171m [48;2;171;171;170m [48;2;171;171;171m [48;2;170;170;170m [48;2;128;128;129m [48;2;89;89;89m [48;2;91;91;91m [m
+[48;2;97;97;97m [48;2;92;92;92m [48;2;172;172;172m [48;2;162;162;162m [48;2;173;173;173m [48;2;169;171;169m [48;2;174;174;174m [48;2;175;175;175m [48;2;174;174;174m [48;2;173;173;173m [48;2;174;172;174m [48;2;178;178;178m [48;2;175;175;175m [48;2;176;176;176m [48;2;168;169;169m [48;2;173;173;173m [48;2;169;169;169m [48;2;175;175;175m [48;2;127;127;127m [48;2;85;85;85m [48;2;94;94;94m [m
+[48;2;99;97;96m [48;2;94;94;94m [48;2;147;146;146m [48;2;145;145;147m [48;2;147;147;147m [48;2;146;146;146m [48;2;159;159;159m [48;2;159;159;158m [48;2;147;147;147m [48;2;117;117;117m [48;2;119;119;119m [48;2;120;120;122m [48;2;147;144;144m [48;2;152;161;168m [48;2;163;159;156m [48;2;152;145;137m [48;2;162;161;161m [48;2;157;159;157m [48;2;146;146;147m [48;2;56;56;58m [48;2;61;61;61m [m
+[48;2;97;97;97m [48;2;91;91;89m [48;2;130;131;130m [48;2;145;145;145m [48;2;151;150;151m [48;2;100;100;100m [48;2;57;57;57m [48;2;58;58;58m [48;2;28;28;28m [48;2;13;13;13m [48;2;11;11;11m [48;2;13;13;13m [48;2;12;12;12m [48;2;8;17;24m [48;2;213;122;8m [48;2;227;127;16m [48;2;118;115;106m [48;2;129;129;129m [48;2;129;131;131m [48;2;146;146;146m [48;2;84;84;84m [48;2;91;91;91m [m
+[48;2;97;97;97m [48;2;95;95;95m [48;2;128;128;128m [48;2;147;147;147m [48;2;143;143;143m [48;2;105;96;101m [48;2;60;50;38m [48;2;60;54;28m [48;2;29;34;23m [48;2;20;15;9m [48;2;16;16;16m [48;2;2;17;14m [48;2;4;19;16m [48;2;22;7;30m [48;2;18;12;24m [48;2;12;18;16m [48;2;222;126;23m [48;2;223;134;0m [48;2;112;114;103m [48;2;128;128;128m [48;2;129;129;129m [48;2;146;146;146m [48;2;92;92;92m [48;2;91;91;91m [m
+[48;2;97;97;97m [48;2;95;95;95m [48;2;119;119;119m [48;2;120;120;120m [48;2;118;118;118m [48;2;55;54;62m [48;2;232;125;12m [48;2;223;135;0m [48;2;15;22;6m [48;2;151;90;46m [48;2;167;87;50m [48;2;223;124;5m [48;2;231;126;17m [48;2;226;125;9m [48;2;175;84;30m [48;2;161;89;13m [48;2;218;186;23m [48;2;213;180;26m [48;2;229;178;1m [48;2;54;53;49m [48;2;111;109;109m [48;2;107;107;107m [48;2;146;146;146m [48;2;92;92;92m [48;2;89;91;91m [m
+[48;2;97;97;97m [48;2;97;97;99m [48;2;108;108;108m [48;2;146;146;146m [48;2;35;29;31m [48;2;231;175;38m [48;2;221;180;12m [48;2;208;182;35m [48;2;212;131;0m [48;2;233;127;12m [48;2;222;217;113m [48;2;228;196;53m [48;2;233;179;19m [48;2;224;182;22m [48;2;220;186;37m [48;2;220;215;123m [48;2;223;130;24m [48;2;224;131;0m [48;2;9;19;8m [48;2;146;146;146m [48;2;128;128;128m [48;2;89;89;89m [48;2;91;91;91m [m
+[48;2;93;93;93m [48;2;101;101;101m [48;2;106;106;106m [48;2;150;148;149m [48;2;133;147;150m [48;2;33;31;34m [48;2;214;177;24m [48;2;224;186;11m [48;2;223;178;17m [48;2;215;134;0m [48;2;231;133;6m [48;2;218;216;101m [48;2;221;201;50m [48;2;218;183;31m [48;2;224;182;10m [48;2;201;180;35m [48;2;216;219;112m [48;2;226;133;12m [48;2;217;132;23m [48;2;11;17;31m [48;2;143;146;151m [48;2;144;144;144m [48;2;128;128;128m [48;2;90;90;90m [m
+[48;2;55;55;55m [48;2;56;56;56m [48;2;146;146;146m [48;2;97;97;97m [48;2;116;95;75m [48;2;183;85;22m [48;2;223;185;12m [48;2;219;189;23m [48;2;214;215;137m [48;2;204;190;32m [48;2;215;189;14m [48;2;218;211;218m [48;2;215;194;101m [48;2;226;187;22m [48;2;207;215;226m [48;2;214;214;190m [48;2;217;218;114m [48;2;218;189;9m [48;2;220;183;4m [48;2;187;85;37m [48;2;143;123;116m [48;2;129;129;129m [48;2;146;146;146m [48;2;56;56;56m [48;2;61;61;61m [m
+[48;2;56;56;56m [48;2;45;45;45m [48;2;93;93;93m [48;2;48;49;53m [48;2;47;49;44m [48;2;230;127;48m [48;2;215;135;10m [48;2;214;142;0m [48;2;219;216;185m [48;2;219;216;109m [48;2;236;215;100m [48;2;208;216;205m [48;2;207;170;99m [48;2;219;137;1m [48;2;213;213;149m [48;2;214;218;131m [48;2;202;183;44m [48;2;208;131;0m [48;2;212;128;0m [48;2;228;168;56m [48;2;63;46;52m [48;2;49;49;49m [48;2;90;90;90m [48;2;53;53;53m [48;2;61;61;61m [m
+[48;2;56;56;56m [48;2;53;53;53m [48;2;98;98;98m [48;2;56;57;59m [48;2;59;54;58m [48;2;226;125;17m [48;2;229;129;15m [48;2;223;132;18m [48;2;220;213;207m [48;2;214;211;142m [48;2;217;215;130m [48;2;213;217;202m [48;2;222;170;113m [48;2;232;127;18m [48;2;216;219;116m [48;2;227;218;97m [48;2;220;188;19m [48;2;228;131;14m [48;2;226;131;13m [48;2;219;176;12m [48;2;63;54;47m [48;2;55;55;55m [48;2;91;91;91m [48;2;54;54;54m [48;2;59;59;59m [m
diff --git a/src/main/resources/textures/items/furnace.ans b/src/main/resources/textures/items/furnace.ans
new file mode 100644
index 0000000..491256b
--- /dev/null
+++ b/src/main/resources/textures/items/furnace.ans
@@ -0,0 +1,25 @@
+[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;79;77;76m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
+[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;79;77;77m [48;2;92;90;90m [48;2;104;103;104m [48;2;92;88;90m [48;2;79;77;77m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
+[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;77;77;77m [48;2;103;103;103m [48;2;117;117;118m [48;2;131;129;132m [48;2;131;131;132m [48;2;143;143;144m [48;2;126;127;127m [48;2;131;131;132m [48;2;79;77;77m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
+[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;79;77;77m [48;2;143;143;144m [48;2;136;136;137m [48;2;140;140;141m [48;2;143;143;144m [48;2;103;103;103m [48;2;120;120;121m [48;2;117;117;118m [48;2;92;90;90m [48;2;98;96;97m [48;2;92;90;90m [48;2;57;58;59m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
+[49m [49m [49m [49m [49m [49m [49m [49m [48;2;59;58;59m [48;2;92;90;90m [48;2;136;136;137m [48;2;143;142;144m [48;2;143;143;144m [48;2;124;124;124m [48;2;110;110;110m [48;2;143;143;144m [48;2;120;120;121m [48;2;106;106;106m [48;2;119;117;118m [48;2;143;142;144m [48;2;142;140;141m [48;2;124;124;124m [48;2;117;117;118m [48;2;64;63;63m [49m [49m [49m [49m [49m [49m [49m [49m [m
+[49m [49m [49m [49m [48;2;79;77;77m [48;2;92;90;90m [48;2;136;136;137m [48;2;92;90;90m [48;2;101;100;100m [48;2;117;119;118m [48;2;136;136;137m [48;2;127;127;128m [48;2;103;103;103m [48;2;127;127;129m [48;2;143;143;144m [48;2;129;131;133m [48;2;106;106;106m [48;2;136;136;137m [48;2;143;143;144m [48;2;110;110;110m [48;2;131;131;135m [48;2;124;124;124m [48;2;92;90;90m [48;2;79;79;77m [49m [49m [49m [49m [m
+[49m [49m [48;2;65;64;64m [48;2;79;77;77m [48;2;97;96;98m [48;2;119;117;118m [48;2;99;96;97m [48;2;92;90;90m [48;2;123;123;126m [48;2;143;143;144m [48;2;143;143;146m [48;2;134;134;135m [48;2;103;103;103m [48;2;134;134;135m [48;2;130;131;132m [48;2;130;129;130m [48;2;121;120;121m [48;2;92;90;90m [48;2;110;110;111m [48;2;103;103;103m [48;2;107;107;107m [48;2;79;77;77m [48;2;49;48;48m [48;2;48;48;49m [49m [49m [m
+[49m [49m [48;2;65;64;64m [48;2;76;74;75m [48;2;65;65;64m [48;2;49;48;49m [48;2;79;77;77m [48;2;107;107;107m [48;2;88;87;87m [48;2;103;103;103m [48;2;143;143;144m [48;2;131;131;132m [48;2;124;124;124m [48;2;131;131;132m [48;2;143;143;144m [48;2;113;113;114m [48;2;97;96;96m [48;2;59;58;59m [48;2;49;48;48m [48;2;37;36;36m [48;2;57;56;56m [48;2;51;48;48m [49m [49m [m
+[49m [49m [48;2;65;64;64m [48;2;76;74;75m [48;2;110;110;111m [48;2;97;97;98m [48;2;65;64;64m [48;2;57;58;59m [48;2;92;91;92m [48;2;103;103;103m [48;2;118;117;118m [48;2;117;117;118m [48;2;120;120;121m [48;2;103;103;103m [48;2;92;90;90m [48;2;85;83;83m [48;2;79;77;77m [48;2;37;36;36m [48;2;73;73;74m [48;2;71;70;71m [48;2;73;73;74m [48;2;49;50;48m [49m [49m [m
+[49m [49m [48;2;65;64;66m [48;2;85;85;86m [48;2;111;109;110m [48;2;119;119;120m [48;2;86;85;86m [48;2;97;97;98m [48;2;49;48;49m [48;2;59;58;59m [48;2;94;93;93m [48;2;103;103;102m [48;2;131;131;132m [48;2;131;130;132m [48;2;114;114;115m [48;2;79;77;77m [48;2;49;48;48m [48;2;73;73;74m [48;2;81;80;82m [48;2;89;89;90m [48;2;81;81;82m [48;2;64;64;64m [48;2;37;36;36m [49m [49m [m
+[49m [49m [48;2;49;48;49m [48;2;76;74;75m [48;2;109;109;110m [48;2;97;96;97m [48;2;76;74;75m [48;2;103;103;104m [48;2;85;85;86m [48;2;65;65;64m [48;2;49;48;49m [48;2;79;77;77m [48;2;91;90;90m [48;2;79;77;77m [48;2;49;48;48m [48;2;37;36;36m [48;2;66;64;64m [48;2;70;70;71m [48;2;81;81;82m [48;2;20;20;20m [48;2;37;36;36m [48;2;36;36;36m [48;2;57;56;56m [48;2;37;36;36m [49m [49m [m
+[49m [49m [48;2;65;64;65m [48;2;85;85;86m [48;2;103;103;105m [48;2;86;85;86m [48;2;85;85;86m [48;2;97;97;98m [48;2;88;88;89m [48;2;85;85;86m [48;2;65;64;64m [48;2;57;56;56m [48;2;49;48;48m [48;2;64;64;64m [48;2;73;73;74m [48;2;81;81;82m [48;2;20;20;20m [48;2;11;10;10m [48;2;11;10;11m [48;2;10;10;10m [48;2;57;56;57m [48;2;49;48;48m [49m [49m [m
+[49m [49m [48;2;49;48;49m [48;2;97;97;98m [48;2;119;119;120m [48;2;97;99;98m [48;2;93;91;92m [48;2;102;102;103m [48;2;85;85;86m [48;2;111;109;109m [48;2;109;109;110m [48;2;91;91;92m [48;2;57;56;56m [48;2;58;58;58m [48;2;73;73;74m [48;2;37;36;36m [48;2;20;20;20m [48;2;10;10;10m [48;2;12;12;12m [48;2;15;15;15m [48;2;10;10;10m [48;2;73;73;74m [48;2;37;36;36m [49m [49m [m
+[49m [49m [48;2;61;60;60m [48;2;85;85;86m [48;2;109;109;110m [48;2;119;119;120m [48;2;99;97;98m [48;2;109;109;110m [48;2;113;113;114m [48;2;109;109;110m [48;2;51;50;50m [48;2;64;64;64m [48;2;81;80;82m [48;2;10;10;10m [48;2;10;10;11m [48;2;22;20;20m [48;2;37;36;36m [48;2;103;103;104m [48;2;64;64;64m [48;2;49;48;50m [49m [49m [m
+[49m [49m [48;2;65;64;64m [48;2;161;161;162m [48;2;145;145;146m [48;2;85;85;86m [48;2;97;97;98m [48;2;109;109;110m [48;2;119;119;120m [48;2;85;85;84m [48;2;109;109;110m [48;2;89;88;89m [48;2;85;85;86m [48;2;57;56;56m [48;2;73;73;74m [48;2;77;76;77m [48;2;10;10;10m [48;2;37;36;36m [48;2;107;107;109m [48;2;107;106;109m [48;2;64;64;64m [48;2;108;108;110m [48;2;103;103;104m [48;2;37;36;36m [49m [49m [m
+[49m [49m [48;2;49;48;49m [48;2;128;128;129m [48;2;137;137;139m [48;2;161;161;162m [48;2;139;139;140m [48;2;97;97;99m [48;2;119;119;120m [48;2;85;85;87m [48;2;97;97;98m [48;2;65;64;64m [48;2;46;47;45m [48;2;73;73;74m [48;2;64;64;64m [48;2;10;11;10m [48;2;107;107;109m [48;2;107;106;109m [48;2;57;56;56m [48;2;106;106;107m [48;2;120;120;122m [48;2;103;103;104m [48;2;96;98;97m [48;2;49;48;48m [49m [49m [m
+[49m [49m [48;2;49;48;48m [48;2;123;123;125m [48;2;137;137;137m [48;2;144;144;145m [48;2;140;140;142m [48;2;161;161;162m [48;2;139;139;142m [48;2;109;109;110m [48;2;108;109;110m [48;2;76;74;75m [48;2;57;56;56m [48;2;73;75;74m [48;2;91;88;90m [48;2;103;103;104m [48;2;57;56;56m [48;2;106;106;107m [48;2;121;120;122m [48;2;92;92;93m [48;2;107;107;109m [48;2;89;89;90m [48;2;96;96;97m [48;2;49;48;48m [49m [49m [m
+[49m [49m [48;2;67;64;64m [48;2;104;104;107m [48;2;128;128;131m [48;2;132;132;134m [48;2;137;136;139m [48;2;144;144;145m [48;2;161;161;162m [48;2;148;150;149m [48;2;97;97;98m [48;2;43;42;42m [48;2;73;73;74m [48;2;80;81;82m [48;2;106;106;107m [48;2;120;120;122m [48;2;81;81;82m [48;2;14;15;15m [48;2;35;33;35m [48;2;49;48;48m [48;2;88;89;90m [48;2;49;48;48m [49m [49m [m
+[49m [49m [48;2;65;64;64m [48;2;87;85;86m [48;2;128;128;129m [48;2;119;119;120m [48;2;132;132;134m [48;2;137;137;139m [48;2;145;144;145m [48;2;144;144;145m [48;2;161;161;163m [48;2;124;126;124m [48;2;51;50;50m [48;2;108;108;110m [48;2;107;107;109m [48;2;103;103;104m [48;2;10;10;10m [48;2;96;96;97m [48;2;37;36;36m [49m [49m [m
+[49m [49m [49m [49m [48;2;65;64;64m [48;2;97;97;98m [48;2;128;128;129m [48;2;137;137;139m [48;2;137;136;139m [48;2;144;144;145m [48;2;128;128;129m [48;2;57;56;56m [48;2;103;103;104m [48;2;57;56;56m [48;2;15;13;15m [48;2;10;10;10m [48;2;20;22;20m [48;2;15;15;13m [48;2;20;20;20m [48;2;10;10;10m [48;2;64;64;64m [49m [49m [49m [49m [m
+[49m [49m [49m [49m [49m [49m [49m [49m [48;2;49;48;49m [48;2;91;91;92m [48;2;97;97;98m [48;2;128;128;129m [48;2;137;137;139m [48;2;132;132;134m [48;2;119;117;120m [48;2;49;48;48m [48;2;96;96;97m [48;2;10;10;10m [48;2;20;20;20m [48;2;20;22;21m [48;2;20;20;20m [48;2;37;36;36m [49m [49m [49m [49m [49m [49m [49m [49m [m
+[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;65;64;65m [48;2;97;97;98m [48;2;119;119;120m [48;2;59;56;56m [48;2;89;89;90m [48;2;89;88;90m [48;2;10;10;10m [48;2;20;20;20m [48;2;49;48;48m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
+[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;49;48;49m [48;2;97;97;98m [48;2;85;85;86m [48;2;104;104;105m [48;2;57;56;56m [48;2;73;73;74m [48;2;20;20;20m [48;2;49;48;48m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
+[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;65;64;64m [48;2;85;85;86m [48;2;51;50;50m [48;2;89;89;90m [48;2;37;36;36m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
+[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;51;50;50m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
diff --git a/src/main/resources/textures/items/stone.ans b/src/main/resources/textures/items/stone.ans
new file mode 100644
index 0000000..f44a5e7
--- /dev/null
+++ b/src/main/resources/textures/items/stone.ans
@@ -0,0 +1,25 @@
+[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;142;140;140m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
+[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;140;140;140m [48;2;114;114;114m [48;2;113;113;113m [48;2;114;114;114m [48;2;140;140;140m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
+[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;114;114;114m [48;2;140;140;140m [48;2;124;124;124m [48;2;140;142;142m [48;2;114;114;114m [48;2;119;119;119m [48;2;140;140;140m [48;2;114;114;114m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
+[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;125;124;124m [48;2;140;142;140m [48;2;108;108;108m [48;2;113;113;113m [48;2;140;140;140m [48;2;124;124;124m [48;2;114;114;114m [48;2;115;114;114m [48;2;124;124;124m [48;2;119;119;119m [48;2;127;127;125m [48;2;140;140;140m [48;2;102;102;102m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
+[49m [49m [49m [49m [49m [49m [49m [49m [48;2;124;124;124m [48;2;119;119;119m [48;2;124;124;124m [48;2;140;140;140m [48;2;114;114;115m [48;2;121;121;121m [48;2;115;114;114m [48;2;124;124;124m [48;2;114;114;114m [48;2;124;124;124m [48;2;140;140;140m [48;2;114;114;114m [48;2;119;119;119m [48;2;102;102;102m [48;2;121;121;121m [49m [49m [49m [49m [49m [49m [49m [49m [m
+[49m [49m [49m [49m [48;2;124;124;124m [48;2;114;115;114m [48;2;132;132;132m [48;2;114;114;114m [48;2;116;116;116m [48;2;124;124;124m [48;2;114;114;114m [48;2;124;124;124m [48;2;114;114;114m [48;2;119;119;119m [48;2;112;114;114m [48;2;121;121;121m [48;2;124;124;126m [48;2;124;124;124m [48;2;140;140;140m [48;2;124;124;124m [48;2;119;119;119m [48;2;124;124;124m [48;2;140;140;140m [49m [49m [49m [49m [m
+[49m [49m [48;2;114;114;114m [48;2;102;102;102m [48;2;124;124;125m [48;2;124;124;124m [48;2;140;140;140m [48;2;112;114;114m [48;2;140;140;140m [48;2;102;102;102m [48;2;140;140;140m [48;2;124;124;124m [48;2;102;102;102m [48;2;114;114;114m [48;2;121;121;121m [48;2;114;114;114m [48;2;124;124;124m [48;2;114;112;114m [48;2;124;124;124m [48;2;87;87;87m [49m [49m [m
+[49m [49m [48;2;102;102;102m [48;2;114;114;114m [48;2;102;102;102m [48;2;124;124;126m [48;2;133;133;133m [48;2;132;132;132m [48;2;124;124;124m [48;2;124;126;124m [48;2;120;120;120m [48;2;140;140;140m [48;2;124;124;124m [48;2;124;126;124m [48;2;136;136;136m [48;2;124;124;124m [48;2;140;140;140m [48;2;132;132;132m [48;2;124;124;124m [48;2;140;140;140m [48;2;70;70;70m [48;2;77;77;79m [48;2;77;77;77m [48;2;75;75;75m [49m [49m [m
+[49m [49m [48;2;114;114;114m [48;2;93;93;93m [48;2;87;87;87m [48;2;102;102;102m [48;2;93;93;93m [48;2;102;102;102m [48;2;124;124;125m [48;2;136;136;136m [48;2;140;140;140m [48;2;124;124;124m [48;2;102;102;102m [48;2;111;111;111m [48;2;140;140;140m [48;2;124;124;124m [48;2;140;140;140m [48;2;136;136;136m [48;2;114;114;114m [48;2;70;70;70m [48;2;66;66;66m [48;2;63;63;63m [48;2;75;75;75m [48;2;77;77;77m [48;2;70;70;70m [49m [49m [m
+[49m [49m [48;2;93;92;93m [48;2;114;114;114m [48;2;93;93;93m [48;2;100;100;100m [48;2;114;114;114m [48;2;93;93;93m [48;2;124;124;124m [48;2;119;119;119m [48;2;114;114;114m [48;2;124;124;124m [48;2;125;125;125m [48;2;124;124;124m [48;2;70;70;70m [48;2;77;77;76m [48;2;87;87;87m [48;2;71;71;71m [48;2;77;77;77m [48;2;70;70;70m [48;2;77;77;77m [49m [49m [m
+[49m [49m [48;2;102;102;102m [48;2;108;108;108m [48;2;93;93;93m [48;2;102;100;102m [48;2;93;93;93m [48;2;98;98;98m [48;2;102;102;102m [48;2;93;93;93m [48;2;114;114;114m [48;2;140;140;140m [48;2;123;123;123m [48;2;124;124;124m [48;2;77;77;77m [48;2;87;87;87m [48;2;74;74;74m [48;2;70;70;70m [48;2;87;87;87m [48;2;77;77;77m [48;2;86;87;85m [48;2;73;73;73m [48;2;87;87;87m [49m [49m [m
+[49m [49m [48;2;93;93;93m [48;2;102;102;102m [48;2;102;102;100m [48;2;97;97;97m [48;2;102;102;102m [48;2;114;114;114m [48;2;93;93;93m [48;2;97;97;97m [48;2;93;93;95m [48;2;114;112;114m [48;2;100;100;100m [48;2;79;77;77m [48;2;70;70;70m [48;2;71;69;71m [48;2;70;70;70m [48;2;77;77;77m [48;2;87;87;87m [48;2;85;87;87m [48;2;72;75;75m [48;2;70;70;70m [48;2;79;77;77m [48;2;77;77;77m [49m [49m [m
+[49m [49m [48;2;93;93;93m [48;2;114;114;114m [48;2;114;115;114m [48;2;102;102;102m [48;2;97;97;97m [48;2;102;102;102m [48;2;114;114;114m [48;2;102;102;102m [48;2;103;102;102m [48;2;85;85;85m [48;2;71;71;71m [48;2;63;61;63m [48;2;70;70;70m [48;2;77;77;77m [48;2;70;70;70m [48;2;77;77;77m [48;2;73;73;73m [48;2;70;70;70m [48;2;77;77;77m [48;2;87;86;87m [48;2;87;87;87m [49m [49m [m
+[49m [49m [48;2;102;102;102m [48;2;114;114;114m [48;2;83;83;83m [48;2;93;93;93m [48;2;103;103;103m [48;2;114;114;114m [48;2;100;102;102m [48;2;103;103;103m [48;2;112;114;114m [48;2;93;93;93m [48;2;89;89;89m [48;2;87;87;87m [48;2;70;70;71m [48;2;73;73;73m [48;2;77;77;77m [48;2;87;87;87m [48;2;77;77;77m [48;2;70;70;70m [48;2;70;70;71m [48;2;87;87;87m [48;2;77;77;77m [49m [49m [m
+[49m [49m [48;2;83;81;83m [48;2;102;102;102m [48;2;114;114;114m [48;2;88;88;88m [48;2;93;93;93m [48;2;114;114;114m [48;2;102;102;102m [48;2;83;83;83m [48;2;88;88;88m [48;2;102;102;102m [48;2;91;90;90m [48;2;77;77;77m [48;2;79;77;77m [48;2;77;77;77m [48;2;87;87;87m [48;2;63;63;63m [48;2;66;66;66m [48;2;70;70;70m [48;2;87;87;87m [48;2;70;70;70m [49m [49m [m
+[49m [49m [48;2;102;102;102m [48;2;102;100;102m [48;2;102;102;102m [48;2;97;97;97m [48;2;102;102;100m [48;2;83;81;83m [48;2;83;83;83m [48;2;93;93;93m [48;2;103;102;102m [48;2;93;93;93m [48;2;90;90;90m [48;2;87;87;87m [48;2;76;77;77m [48;2;87;87;87m [48;2;63;63;63m [48;2;70;70;70m [48;2;77;77;77m [48;2;87;87;87m [48;2;77;77;77m [48;2;70;71;70m [48;2;70;70;70m [48;2;77;77;77m [49m [49m [m
+[49m [49m [48;2;102;102;103m [48;2;95;95;95m [48;2;102;102;102m [48;2;93;93;93m [48;2;88;90;88m [48;2;102;102;102m [48;2;114;114;114m [48;2;102;102;102m [48;2;93;93;93m [48;2;114;114;114m [48;2;102;102;102m [48;2;86;86;86m [48;2;77;77;76m [48;2;63;62;63m [48;2;70;70;70m [48;2;77;77;77m [48;2;87;87;87m [48;2;73;73;73m [48;2;70;70;70m [48;2;87;87;87m [48;2;79;79;79m [48;2;70;70;70m [49m [49m [m
+[49m [49m [48;2;114;114;114m [48;2;93;93;93m [48;2;102;102;102m [48;2;114;114;114m [48;2;83;83;83m [48;2;93;93;95m [48;2;114;114;114m [48;2;102;102;102m [48;2;114;114;114m [48;2;92;92;92m [48;2;70;70;70m [48;2;87;87;87m [48;2;77;77;77m [48;2;61;63;63m [48;2;70;70;70m [48;2;82;82;82m [48;2;66;66;64m [48;2;63;63;63m [48;2;77;77;77m [49m [49m [m
+[49m [49m [48;2;102;102;102m [48;2;93;93;93m [48;2;114;114;115m [48;2;98;99;98m [48;2;114;114;114m [48;2;102;102;102m [48;2;93;93;93m [48;2;114;114;114m [48;2;114;114;112m [48;2;90;90;90m [48;2;77;76;77m [48;2;77;77;77m [48;2;70;70;70m [48;2;87;87;87m [48;2;79;79;79m [48;2;70;70;70m [48;2;77;77;77m [48;2;71;70;70m [48;2;70;70;70m [48;2;79;79;79m [49m [49m [m
+[49m [49m [49m [49m [48;2;102;102;102m [48;2;114;114;114m [48;2;100;102;102m [48;2;102;102;102m [48;2;95;95;95m [48;2;102;102;103m [48;2;102;102;102m [48;2;93;93;93m [48;2;89;89;89m [48;2;77;77;77m [48;2;70;70;70m [48;2;77;77;77m [48;2;87;87;87m [48;2;70;70;70m [48;2;87;87;86m [48;2;77;77;77m [48;2;71;71;71m [48;2;87;87;87m [49m [49m [49m [49m [m
+[49m [49m [49m [49m [49m [49m [49m [49m [48;2;102;102;102m [48;2;111;111;111m [48;2;102;102;102m [48;2;114;112;114m [48;2;102;102;102m [48;2;83;83;83m [48;2;98;98;98m [48;2;114;114;114m [48;2;78;76;76m [48;2;77;77;77m [48;2;71;71;71m [48;2;77;77;77m [48;2;84;84;84m [48;2;77;77;77m [49m [49m [49m [49m [49m [49m [49m [49m [m
+[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;114;114;114m [48;2;102;102;102m [48;2;114;114;114m [48;2;102;102;102m [48;2;85;85;85m [48;2;70;70;70m [48;2;77;77;77m [48;2;70;70;70m [48;2;87;86;87m [48;2;79;79;79m [48;2;77;77;77m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
+[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;102;102;102m [48;2;93;93;93m [48;2;102;102;102m [48;2;94;94;94m [48;2;87;87;87m [48;2;70;70;70m [48;2;84;84;84m [48;2;77;77;77m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
+[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;102;102;102m [48;2;98;98;98m [48;2;89;89;89m [48;2;71;71;71m [48;2;77;77;77m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
+[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;95;95;95m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
diff --git a/src/main/resources/textures/steve.ans b/src/main/resources/textures/steve.ans
deleted file mode 100644
index 21f96ed..0000000
--- a/src/main/resources/textures/steve.ans
+++ /dev/null
@@ -1,23 +0,0 @@
-[38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;209;48;5;233m [38;5;216;48;5;232m [38;5;209;48;5;232m [38;5;209;48;5;232m [38;5;216;48;5;233m [38;5;166;48;5;233m [38;5;130;48;5;234m [38;5;215;48;5;234m [38;5;130;48;5;233m [38;5;209;48;5;232m [38;5;202;48;5;232m [38;5;216;48;5;232m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [0m
-[38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;209;48;5;233m [38;5;173;48;5;137m▒[38;5;202;48;5;173m▒[38;5;202;48;5;173m▒[38;5;173;48;5;174m▒[38;5;173;48;5;174m▒[38;5;202;48;5;173m▒[38;5;173;48;5;173m▒[38;5;173;48;5;173m▒[38;5;202;48;5;137m▒[38;5;173;48;5;95m▒[38;5;209;48;5;233m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [0m
-[38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;173;48;5;173m▒[38;5;230;48;5;231m [38;5;231;48;5;231m▓[38;5;98;48;5;239m▒[38;5;197;48;5;96m▓[38;5;209;48;5;137m▒[38;5;166;48;5;173m▒[38;5;161;48;5;96m▓[38;5;98;48;5;60m▒[38;5;231;48;5;231m▓[38;5;209;48;5;255m [38;5;173;48;5;137m▒[38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [0m
-[38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;173;48;5;131m▒[38;5;173;48;5;137m▒[38;5;173;48;5;137m▒[38;5;209;48;5;173m▒[38;5;209;48;5;95m▒[38;5;209;48;5;58m▒[38;5;209;48;5;58m▒[38;5;209;48;5;95m▒[38;5;173;48;5;173m▒[38;5;202;48;5;131m▒[38;5;202;48;5;131m▒[38;5;166;48;5;94m▒[38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [0m
-[38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;202;48;5;94m▒[38;5;202;48;5;94m▒[38;5;202;48;5;94m▒[38;5;209;48;5;233m [38;5;209;48;5;52m░[38;5;209;48;5;52m░[38;5;209;48;5;52m░[38;5;202;48;5;52m░[38;5;209;48;5;52m [38;5;202;48;5;95m▒[38;5;202;48;5;94m▒[38;5;202;48;5;94m▒[38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [0m
-[38;5;1;48;5;16m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;37m [38;5;45;48;5;37m [38;5;45;48;5;37m [38;5;45;48;5;31m [38;5;45;48;5;30m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;166;48;5;94m░[38;5;166;48;5;130m▒[38;5;173;48;5;131m▒[38;5;173;48;5;94m▒[38;5;173;48;5;94m▒[38;5;202;48;5;94m▒[38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;37m [38;5;45;48;5;37m [38;5;45;48;5;37m [0m
-[38;5;1;48;5;16m [38;5;45;48;5;37m [38;5;45;48;5;31m [38;5;45;48;5;37m [38;5;45;48;5;37m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;79;48;5;240m▓[38;5;209;48;5;95m▒[38;5;208;48;5;240m▒[38;5;50;48;5;240m▒[38;5;45;48;5;31m [38;5;45;48;5;37m [38;5;45;48;5;37m [38;5;45;48;5;37m [38;5;45;48;5;37m [38;5;45;48;5;37m [38;5;45;48;5;31m [38;5;45;48;5;37m [38;5;45;48;5;37m [38;5;45;48;5;31m [0m
-[38;5;1;48;5;16m [38;5;38;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;37m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;37m [38;5;45;48;5;37m [38;5;45;48;5;37m [38;5;45;48;5;37m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;37m [38;5;45;48;5;37m [38;5;45;48;5;37m [38;5;45;48;5;37m [38;5;38;48;5;31m [38;5;38;48;5;31m [38;5;45;48;5;37m [38;5;45;48;5;37m [38;5;45;48;5;37m [38;5;45;48;5;31m [0m
-[38;5;1;48;5;16m [38;5;173;48;5;137m▒[38;5;202;48;5;137m▓[38;5;202;48;5;137m▓[38;5;173;48;5;137m▒[38;5;173;48;5;137m▒[38;5;173;48;5;137m▓[38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;37m [38;5;45;48;5;37m [38;5;45;48;5;37m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;37m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;30m [38;5;173;48;5;137m▒[38;5;137;48;5;137m▒[38;5;173;48;5;137m▒[38;5;173;48;5;137m▒[38;5;173;48;5;137m▒[38;5;173;48;5;137m▒[0m
-[38;5;1;48;5;16m [38;5;173;48;5;137m▒[38;5;173;48;5;95m▓[38;5;173;48;5;131m▓[38;5;173;48;5;137m▒[38;5;173;48;5;137m▒[38;5;202;48;5;137m▓[38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;37m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;38;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;37m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;173;48;5;137m▒[38;5;166;48;5;137m▒[38;5;202;48;5;131m▒[38;5;173;48;5;137m▒[38;5;173;48;5;137m▒[38;5;173;48;5;137m▒[0m
-[38;5;1;48;5;16m [38;5;173;48;5;137m▒[38;5;173;48;5;137m▒[38;5;173;48;5;137m▒[38;5;173;48;5;137m▒[38;5;173;48;5;131m▒[38;5;173;48;5;95m▓[38;5;45;48;5;31m [38;5;45;48;5;37m [38;5;45;48;5;37m [38;5;45;48;5;37m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;37m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;202;48;5;137m▒[38;5;166;48;5;137m▒[38;5;173;48;5;137m▒[38;5;173;48;5;137m▒[38;5;173;48;5;137m▒[38;5;202;48;5;131m▒[0m
-[38;5;1;48;5;16m [38;5;202;48;5;137m▒[38;5;173;48;5;137m▒[38;5;202;48;5;137m▒[38;5;173;48;5;137m▒[38;5;173;48;5;131m▓[38;5;202;48;5;95m▓[38;5;45;48;5;37m [38;5;45;48;5;37m [38;5;45;48;5;37m [38;5;45;48;5;37m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;37m [38;5;45;48;5;37m [38;5;45;48;5;37m [38;5;45;48;5;37m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;202;48;5;137m▒[38;5;166;48;5;137m▒[38;5;173;48;5;137m▒[38;5;173;48;5;137m▒[38;5;173;48;5;137m▒[38;5;202;48;5;131m▒[0m
-[38;5;1;48;5;16m [38;5;202;48;5;137m▒[38;5;173;48;5;137m▒[38;5;173;48;5;137m▒[38;5;202;48;5;131m▒[38;5;202;48;5;137m▒[38;5;209;48;5;137m▓[38;5;69;48;5;25m▒[38;5;69;48;5;25m░[38;5;68;48;5;25m░[38;5;69;48;5;25m░[38;5;69;48;5;25m░[38;5;68;48;5;25m░[38;5;68;48;5;25m░[38;5;68;48;5;25m░[38;5;27;48;5;24m░[38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;45;48;5;31m [38;5;173;48;5;137m▒[38;5;202;48;5;137m▒[38;5;173;48;5;137m▒[38;5;202;48;5;131m▒[38;5;202;48;5;131m▒[38;5;202;48;5;137m▒[0m
-[38;5;1;48;5;16m [38;5;173;48;5;131m▒[38;5;173;48;5;137m▒[38;5;173;48;5;137m▒[38;5;202;48;5;131m▒[38;5;173;48;5;131m▒[38;5;209;48;5;131m▓[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;18m▒[38;5;26;48;5;24m░[38;5;45;48;5;31m [38;5;166;48;5;95m▒[38;5;166;48;5;131m▒[38;5;173;48;5;137m▒[38;5;202;48;5;95m▒[38;5;202;48;5;95m▓[38;5;173;48;5;131m▒[0m
-[38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;104;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;104;48;5;61m▒[38;5;62;48;5;61m▒[38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [0m
-[38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;104;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [0m
-[38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;104;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;104;48;5;61m▒[38;5;104;48;5;61m▒[38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [0m
-[38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;104;48;5;61m▒[38;5;62;48;5;18m▒[38;5;62;48;5;18m▒[38;5;62;48;5;18m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;55m▒[38;5;62;48;5;18m▒[38;5;62;48;5;18m▒[38;5;62;48;5;55m▒[38;5;62;48;5;61m▒[38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [0m
-[38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;104;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;104;48;5;61m▒[38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [0m
-[38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;104;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [0m
-[38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;104;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;62;48;5;61m▒[38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [0m
-[38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;101;48;5;241m▓[38;5;98;48;5;241m▓[38;5;98;48;5;241m▓[38;5;99;48;5;241m▓[38;5;99;48;5;241m▓[38;5;99;48;5;241m▓[38;5;98;48;5;241m▓[38;5;98;48;5;241m▓[38;5;98;48;5;241m▓[38;5;99;48;5;241m▓[38;5;60;48;5;242m▓[38;5;99;48;5;242m▓[38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [38;5;1;48;5;16m [0m
-[0m
\ No newline at end of file