diff --git a/src/main/java/cz/jzitnik/Main.java b/src/main/java/cz/jzitnik/Main.java index ddf2808..d30f3cc 100644 --- a/src/main/java/cz/jzitnik/Main.java +++ b/src/main/java/cz/jzitnik/Main.java @@ -48,7 +48,7 @@ public class Main { // Yeah, yeah I know. Deal with it } try { - customLogicProvider.update(game); + customLogicProvider.update(game, screenRenderer); } catch (Exception e) { e.printStackTrace(); } diff --git a/src/main/java/cz/jzitnik/game/Game.java b/src/main/java/cz/jzitnik/game/Game.java index 55411fa..39f14f4 100644 --- a/src/main/java/cz/jzitnik/game/Game.java +++ b/src/main/java/cz/jzitnik/game/Game.java @@ -3,13 +3,14 @@ package cz.jzitnik.game; import cz.jzitnik.game.entities.Block; import cz.jzitnik.game.entities.GameStates; import cz.jzitnik.game.entities.Player; +import cz.jzitnik.game.entities.SteveData; import cz.jzitnik.game.generation.Generation; import cz.jzitnik.game.entities.items.Item; import cz.jzitnik.game.entities.items.ItemType; import cz.jzitnik.game.handlers.place.CustomPlaceHandler; import cz.jzitnik.game.mobs.EntitySpawnProvider; import cz.jzitnik.game.sprites.Breaking; -import cz.jzitnik.game.sprites.Steve; +import cz.jzitnik.game.sprites.Steve.SteveState; import cz.jzitnik.game.annotations.AutoTransient; import cz.jzitnik.game.annotations.BreaksByPlace; import cz.jzitnik.game.blocks.Chest; @@ -56,9 +57,14 @@ public class Game extends AutoTransientSupport { for (int i = 0; i < world.length; i++) { for (int j = 0; j < world[i].length; j++) { for (Block block : world[i][j]) { - if (block.getBlockId().equals("steve") && block.getSpriteState().isPresent() - && block.getSpriteState().get() == Steve.SteveState.SECOND) { - return new int[] { j, i }; + if (block.getBlockId().equals("steve")) { + var steveData = (SteveData) block.getData(); + + if (steveData.isTop()) { + return new int[] { j, i + 1 }; + } else { + return new int[] { j, i }; + } } } } @@ -340,7 +346,7 @@ public class Game extends AutoTransientSupport { ArrayList<Block> combinedList = new ArrayList<>(); combinedList.addAll(world[cords2[1]][cords2[0]]); combinedList.addAll(world[cords2[1] + 1][cords2[0]]); - player.fell(combinedList); + player.fell(combinedList, this, screenRenderer); screenRenderer.render(this); break; } @@ -434,4 +440,21 @@ public class Game extends AutoTransientSupport { public boolean isSolid(List<Block> blocks) { return !blocks.stream().allMatch(Block::isGhost); } + + public void playerHit(ScreenRenderer screenRenderer) { + player.getPlayerBlock1().setSpriteState(SteveState.FIRST_HURT); + player.getPlayerBlock2().setSpriteState(SteveState.SECOND_HURT); + + new Thread(() -> { + try { + Thread.sleep(500); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + player.getPlayerBlock1().setSpriteState(SteveState.FIRST); + player.getPlayerBlock2().setSpriteState(SteveState.SECOND); + screenRenderer.render(this); + }).start(); + } } diff --git a/src/main/java/cz/jzitnik/game/entities/Player.java b/src/main/java/cz/jzitnik/game/entities/Player.java index e53c5b5..fb8c498 100644 --- a/src/main/java/cz/jzitnik/game/entities/Player.java +++ b/src/main/java/cz/jzitnik/game/entities/Player.java @@ -7,8 +7,10 @@ import java.io.Serializable; import java.lang.reflect.InvocationTargetException; import java.util.List; +import cz.jzitnik.game.Game; import cz.jzitnik.game.annotations.ReduceFallDamage; import cz.jzitnik.game.core.reducefalldamage.Reducer; +import cz.jzitnik.tui.ScreenRenderer; @Getter @Setter @@ -38,7 +40,7 @@ public class Player implements Serializable { fallDistance++; } - public void fell(List<Block> fallblock) { + public void fell(List<Block> fallblock, Game game, ScreenRenderer screenRenderer) { var block = fallblock.stream().filter(b -> b.getClass().isAnnotationPresent(ReduceFallDamage.class)).findFirst(); int damage = Math.max(fallDistance - 3, 0); if (block.isPresent()) { @@ -52,19 +54,22 @@ public class Player implements Serializable { System.exit(0); } } - dealDamage(damage); + dealDamage(damage, game, screenRenderer); fallDistance = 0; } - public synchronized void dealDamage(int amount) { + public synchronized void dealDamage(int amount, Game game, ScreenRenderer screenRenderer) { health = Math.max(0, health - amount); + if (amount != 0) { + game.playerHit(screenRenderer); + } if (health == 0) { // TODO: Implement dead } } - public synchronized void dealDamage() { - dealDamage(1); + public synchronized void dealDamage(Game game, ScreenRenderer screenRenderer) { + dealDamage(1, game, screenRenderer); } } diff --git a/src/main/java/cz/jzitnik/game/entities/SteveData.java b/src/main/java/cz/jzitnik/game/entities/SteveData.java new file mode 100644 index 0000000..c822323 --- /dev/null +++ b/src/main/java/cz/jzitnik/game/entities/SteveData.java @@ -0,0 +1,14 @@ +package cz.jzitnik.game.entities; + +import java.io.Serializable; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@NoArgsConstructor +@AllArgsConstructor +@Getter +public class SteveData implements Serializable { + private boolean top = false; +} diff --git a/src/main/java/cz/jzitnik/game/generation/Generation.java b/src/main/java/cz/jzitnik/game/generation/Generation.java index f9f48d6..aa2231a 100644 --- a/src/main/java/cz/jzitnik/game/generation/Generation.java +++ b/src/main/java/cz/jzitnik/game/generation/Generation.java @@ -1,6 +1,8 @@ package cz.jzitnik.game.generation; import cz.jzitnik.game.entities.Block; +import cz.jzitnik.game.entities.SteveData; +import cz.jzitnik.game.entities.items.ItemBlockSupplier; import cz.jzitnik.game.Game; import cz.jzitnik.game.SpriteLoader; import cz.jzitnik.game.sprites.Steve; @@ -16,10 +18,12 @@ public class Generation { Block steveBlock = new Block("steve", SpriteLoader.SPRITES.STEVE); steveBlock.setSpriteState(Steve.SteveState.FIRST); steveBlock.setGhost(true); + steveBlock.setData(new SteveData(true)); Block steveBlock2 = new Block("steve", SpriteLoader.SPRITES.STEVE); steveBlock2.setSpriteState(Steve.SteveState.SECOND); steveBlock2.setGhost(true); steveBlock2.setMob(true); + steveBlock2.setData(new SteveData(false)); int[] terrainHeight = PopulateWorld.generateTerrain(); @@ -32,6 +36,9 @@ public class Generation { // Spawn player at a valid starting point world[terrainHeight[256] - 1][256].add(steveBlock2); world[terrainHeight[256] - 2][256].add(steveBlock); + + game.getInventory().addItem(ItemBlockSupplier.getItem("sand")); + game.getInventory().addItem(ItemBlockSupplier.getItem("sand")); } private static void initializeWorld(List<Block>[][] world) { diff --git a/src/main/java/cz/jzitnik/game/logic/CustomLogicInterface.java b/src/main/java/cz/jzitnik/game/logic/CustomLogicInterface.java index e0fc0f5..2518cbe 100644 --- a/src/main/java/cz/jzitnik/game/logic/CustomLogicInterface.java +++ b/src/main/java/cz/jzitnik/game/logic/CustomLogicInterface.java @@ -1,7 +1,8 @@ package cz.jzitnik.game.logic; import cz.jzitnik.game.Game; +import cz.jzitnik.tui.ScreenRenderer; public interface CustomLogicInterface { - void nextIteration(Game game); + void nextIteration(Game game, ScreenRenderer screenRenderer); } diff --git a/src/main/java/cz/jzitnik/game/logic/CustomLogicProvider.java b/src/main/java/cz/jzitnik/game/logic/CustomLogicProvider.java index d7ee8ae..443c31b 100644 --- a/src/main/java/cz/jzitnik/game/logic/CustomLogicProvider.java +++ b/src/main/java/cz/jzitnik/game/logic/CustomLogicProvider.java @@ -6,6 +6,7 @@ import java.util.Set; import cz.jzitnik.game.Game; import cz.jzitnik.game.annotations.CustomLogic; +import cz.jzitnik.tui.ScreenRenderer; import lombok.extern.slf4j.Slf4j; import org.reflections.Reflections; @@ -14,10 +15,10 @@ import org.reflections.Reflections; public class CustomLogicProvider { private final List<CustomLogicInterface> logicList = new ArrayList<>(); - public void update(Game game) { + public void update(Game game, ScreenRenderer screenRenderer) { for (CustomLogicInterface logicInterface : logicList) { log.debug("Running logic {}.", logicInterface.getClass().getSimpleName()); - logicInterface.nextIteration(game); + logicInterface.nextIteration(game, screenRenderer); } } diff --git a/src/main/java/cz/jzitnik/game/logic/services/burning/Burning.java b/src/main/java/cz/jzitnik/game/logic/services/burning/Burning.java index 2efa3da..afba756 100644 --- a/src/main/java/cz/jzitnik/game/logic/services/burning/Burning.java +++ b/src/main/java/cz/jzitnik/game/logic/services/burning/Burning.java @@ -4,11 +4,12 @@ import cz.jzitnik.game.Game; import cz.jzitnik.game.annotations.CustomLogic; import cz.jzitnik.game.entities.Player; import cz.jzitnik.game.logic.CustomLogicInterface; +import cz.jzitnik.tui.ScreenRenderer; @CustomLogic public class Burning implements CustomLogicInterface { @Override - public void nextIteration(Game game) { + public void nextIteration(Game game, ScreenRenderer screenRenderer) { var world = game.getWorld(); int[] data = game.getPlayerCords(); int x = data[0]; @@ -31,7 +32,7 @@ public class Burning implements CustomLogicInterface { } if (player.isBurning() || player.getBurningTimeout() != 0) { - player.dealDamage(); + player.dealDamage(game, screenRenderer); player.setBurningState(true); } else { player.setBurningState(false); diff --git a/src/main/java/cz/jzitnik/game/logic/services/daytime/DayTimeLogic.java b/src/main/java/cz/jzitnik/game/logic/services/daytime/DayTimeLogic.java index d05593c..c02f21a 100644 --- a/src/main/java/cz/jzitnik/game/logic/services/daytime/DayTimeLogic.java +++ b/src/main/java/cz/jzitnik/game/logic/services/daytime/DayTimeLogic.java @@ -3,11 +3,12 @@ package cz.jzitnik.game.logic.services.daytime; import cz.jzitnik.game.Game; import cz.jzitnik.game.annotations.CustomLogic; import cz.jzitnik.game.logic.CustomLogicInterface; +import cz.jzitnik.tui.ScreenRenderer; @CustomLogic public class DayTimeLogic implements CustomLogicInterface { @Override - public void nextIteration(Game game) { + public void nextIteration(Game game, ScreenRenderer ignored) { int time = game.getDaytime(); if (time >= 600) { diff --git a/src/main/java/cz/jzitnik/game/logic/services/falling/FallingLogic.java b/src/main/java/cz/jzitnik/game/logic/services/falling/FallingLogic.java index caf76e1..92bf0b9 100644 --- a/src/main/java/cz/jzitnik/game/logic/services/falling/FallingLogic.java +++ b/src/main/java/cz/jzitnik/game/logic/services/falling/FallingLogic.java @@ -6,13 +6,14 @@ import cz.jzitnik.game.annotations.CustomLogic; import cz.jzitnik.game.annotations.FallingBlock; import cz.jzitnik.game.entities.Block; import cz.jzitnik.game.logic.CustomLogicInterface; +import cz.jzitnik.tui.ScreenRenderer; @CustomLogic public class FallingLogic implements CustomLogicInterface { private static final int RADIUS = 30; @Override - public void nextIteration(Game game) { + public void nextIteration(Game game, ScreenRenderer ignored) { var world = game.getWorld(); int[] data = game.getPlayerCords(); int playerX = data[0]; diff --git a/src/main/java/cz/jzitnik/game/logic/services/farmable/FarmableLogic.java b/src/main/java/cz/jzitnik/game/logic/services/farmable/FarmableLogic.java index 3ef7b5a..f280bda 100644 --- a/src/main/java/cz/jzitnik/game/logic/services/farmable/FarmableLogic.java +++ b/src/main/java/cz/jzitnik/game/logic/services/farmable/FarmableLogic.java @@ -4,6 +4,7 @@ import cz.jzitnik.game.Game; import cz.jzitnik.game.annotations.CustomLogic; import cz.jzitnik.game.annotations.Farmable; import cz.jzitnik.game.logic.CustomLogicInterface; +import cz.jzitnik.tui.ScreenRenderer; @CustomLogic public class FarmableLogic implements CustomLogicInterface { @@ -11,7 +12,7 @@ public class FarmableLogic implements CustomLogicInterface { private static int GROW_LENGTH = 600; @Override - public void nextIteration(Game game) { + public void nextIteration(Game game, ScreenRenderer ignored) { int[] data = game.getPlayerCords(); var world = game.getWorld(); int playerX = data[0]; diff --git a/src/main/java/cz/jzitnik/game/logic/services/farmland/FarmlandLogic.java b/src/main/java/cz/jzitnik/game/logic/services/farmland/FarmlandLogic.java index 7534982..6825a87 100644 --- a/src/main/java/cz/jzitnik/game/logic/services/farmland/FarmlandLogic.java +++ b/src/main/java/cz/jzitnik/game/logic/services/farmland/FarmlandLogic.java @@ -6,6 +6,7 @@ import cz.jzitnik.game.annotations.Farmable; import cz.jzitnik.game.entities.items.ItemBlockSupplier; import cz.jzitnik.game.logic.CustomLogicInterface; import cz.jzitnik.game.sprites.Farmland.FarmlandState; +import cz.jzitnik.tui.ScreenRenderer; @CustomLogic public class FarmlandLogic implements CustomLogicInterface { @@ -15,7 +16,7 @@ public class FarmlandLogic implements CustomLogicInterface { private static final int AGE_THRESHOLD = 5; @Override - public void nextIteration(Game game) { + public void nextIteration(Game game, ScreenRenderer ignored) { int[] data = game.getPlayerCords(); var world = game.getWorld(); int playerX = data[0]; diff --git a/src/main/java/cz/jzitnik/game/logic/services/firespreading/FireSpreadingLogic.java b/src/main/java/cz/jzitnik/game/logic/services/firespreading/FireSpreadingLogic.java index f1a9a3b..39f01d2 100644 --- a/src/main/java/cz/jzitnik/game/logic/services/firespreading/FireSpreadingLogic.java +++ b/src/main/java/cz/jzitnik/game/logic/services/firespreading/FireSpreadingLogic.java @@ -8,6 +8,7 @@ import cz.jzitnik.game.annotations.CustomLogic; import cz.jzitnik.game.annotations.Flamable; import cz.jzitnik.game.entities.Block; import cz.jzitnik.game.logic.CustomLogicInterface; +import cz.jzitnik.tui.ScreenRenderer; @CustomLogic public class FireSpreadingLogic implements CustomLogicInterface { @@ -15,7 +16,7 @@ public class FireSpreadingLogic implements CustomLogicInterface { private Random random = new Random(); @Override - public void nextIteration(Game game) { + public void nextIteration(Game game, ScreenRenderer ignored) { var world = game.getWorld(); int[] data = game.getPlayerCords(); int playerX = data[0]; diff --git a/src/main/java/cz/jzitnik/game/logic/services/flowing/FlowingLogic.java b/src/main/java/cz/jzitnik/game/logic/services/flowing/FlowingLogic.java index 1e10773..faeb19f 100644 --- a/src/main/java/cz/jzitnik/game/logic/services/flowing/FlowingLogic.java +++ b/src/main/java/cz/jzitnik/game/logic/services/flowing/FlowingLogic.java @@ -7,6 +7,7 @@ import cz.jzitnik.game.entities.Block; import cz.jzitnik.game.entities.items.ItemBlockSupplier; import cz.jzitnik.game.logic.CustomLogicInterface; import cz.jzitnik.game.sprites.Water; +import cz.jzitnik.tui.ScreenRenderer; import lombok.AllArgsConstructor; import lombok.Getter; @@ -29,7 +30,7 @@ public class FlowingLogic implements CustomLogicInterface { } @Override - public void nextIteration(Game game) { + public void nextIteration(Game game, ScreenRenderer ignored) { processFlow(game, "water"); processFlow(game, "lava"); } diff --git a/src/main/java/cz/jzitnik/game/logic/services/flowing/LavaFireLogic.java b/src/main/java/cz/jzitnik/game/logic/services/flowing/LavaFireLogic.java index 93f56ad..8c57fb0 100644 --- a/src/main/java/cz/jzitnik/game/logic/services/flowing/LavaFireLogic.java +++ b/src/main/java/cz/jzitnik/game/logic/services/flowing/LavaFireLogic.java @@ -7,6 +7,7 @@ import cz.jzitnik.game.annotations.CustomLogic; import cz.jzitnik.game.annotations.Flamable; import cz.jzitnik.game.entities.Block; import cz.jzitnik.game.logic.CustomLogicInterface; +import cz.jzitnik.tui.ScreenRenderer; @CustomLogic public class LavaFireLogic implements CustomLogicInterface { @@ -14,7 +15,7 @@ public class LavaFireLogic implements CustomLogicInterface { private Random random = new Random(); @Override - public void nextIteration(Game game) { + public void nextIteration(Game game, ScreenRenderer ignored) { int[] data = game.getPlayerCords(); var world = game.getWorld(); int playerX = data[0]; diff --git a/src/main/java/cz/jzitnik/game/logic/services/flowing/LavaWaterLogic.java b/src/main/java/cz/jzitnik/game/logic/services/flowing/LavaWaterLogic.java index c11e203..c54ebe0 100644 --- a/src/main/java/cz/jzitnik/game/logic/services/flowing/LavaWaterLogic.java +++ b/src/main/java/cz/jzitnik/game/logic/services/flowing/LavaWaterLogic.java @@ -4,13 +4,14 @@ import cz.jzitnik.game.Game; import cz.jzitnik.game.annotations.CustomLogic; import cz.jzitnik.game.entities.items.ItemBlockSupplier; import cz.jzitnik.game.logic.CustomLogicInterface; +import cz.jzitnik.tui.ScreenRenderer; @CustomLogic public class LavaWaterLogic implements CustomLogicInterface { private static final int RADIUS = 20; @Override - public void nextIteration(Game game) { + public void nextIteration(Game game, ScreenRenderer ignored) { int[] data = game.getPlayerCords(); var world = game.getWorld(); int playerX = data[0]; diff --git a/src/main/java/cz/jzitnik/game/logic/services/grass/GrassGrowingLogic.java b/src/main/java/cz/jzitnik/game/logic/services/grass/GrassGrowingLogic.java index 08b5347..991978e 100644 --- a/src/main/java/cz/jzitnik/game/logic/services/grass/GrassGrowingLogic.java +++ b/src/main/java/cz/jzitnik/game/logic/services/grass/GrassGrowingLogic.java @@ -5,6 +5,7 @@ import cz.jzitnik.game.annotations.CustomLogic; import cz.jzitnik.game.entities.Block; import cz.jzitnik.game.entities.items.ItemBlockSupplier; import cz.jzitnik.game.logic.CustomLogicInterface; +import cz.jzitnik.tui.ScreenRenderer; import java.util.*; @@ -13,7 +14,7 @@ public class GrassGrowingLogic implements CustomLogicInterface { private static final int RADIUS = 35; @Override - public void nextIteration(Game game) { + public void nextIteration(Game game, ScreenRenderer ignored) { int[] data = game.getPlayerCords(); var world = game.getWorld(); int playerX = data[0]; diff --git a/src/main/java/cz/jzitnik/game/logic/services/leaves/LeavesFallingLogic.java b/src/main/java/cz/jzitnik/game/logic/services/leaves/LeavesFallingLogic.java index d6639ae..aeb7094 100644 --- a/src/main/java/cz/jzitnik/game/logic/services/leaves/LeavesFallingLogic.java +++ b/src/main/java/cz/jzitnik/game/logic/services/leaves/LeavesFallingLogic.java @@ -4,6 +4,7 @@ import cz.jzitnik.game.Game; import cz.jzitnik.game.annotations.CustomLogic; import cz.jzitnik.game.entities.Block; import cz.jzitnik.game.logic.CustomLogicInterface; +import cz.jzitnik.tui.ScreenRenderer; import java.util.*; @@ -14,7 +15,7 @@ public class LeavesFallingLogic implements CustomLogicInterface { private final Random random = new Random(); @Override - public void nextIteration(Game game) { + public void nextIteration(Game game, ScreenRenderer ignored) { int[] data = game.getPlayerCords(); var world = game.getWorld(); int playerX = data[0]; diff --git a/src/main/java/cz/jzitnik/game/logic/services/saplings/SaplingLogic.java b/src/main/java/cz/jzitnik/game/logic/services/saplings/SaplingLogic.java index 7353762..f46dfb1 100644 --- a/src/main/java/cz/jzitnik/game/logic/services/saplings/SaplingLogic.java +++ b/src/main/java/cz/jzitnik/game/logic/services/saplings/SaplingLogic.java @@ -7,6 +7,8 @@ import cz.jzitnik.game.annotations.Sapling; import cz.jzitnik.game.entities.Block; import cz.jzitnik.game.generation.Trees; import cz.jzitnik.game.logic.CustomLogicInterface; +import cz.jzitnik.tui.ScreenRenderer; + import org.reflections.Reflections; import java.util.HashSet; @@ -32,7 +34,7 @@ public class SaplingLogic implements CustomLogicInterface { } @Override - public void nextIteration(Game game) { + public void nextIteration(Game game, ScreenRenderer ignored) { int[] data = game.getPlayerCords(); var world = game.getWorld(); int playerX = data[0]; diff --git a/src/main/java/cz/jzitnik/game/logic/services/suffocating/Suffocating.java b/src/main/java/cz/jzitnik/game/logic/services/suffocating/Suffocating.java index 98d7669..8362324 100644 --- a/src/main/java/cz/jzitnik/game/logic/services/suffocating/Suffocating.java +++ b/src/main/java/cz/jzitnik/game/logic/services/suffocating/Suffocating.java @@ -3,11 +3,12 @@ package cz.jzitnik.game.logic.services.suffocating; import cz.jzitnik.game.Game; import cz.jzitnik.game.annotations.CustomLogic; import cz.jzitnik.game.logic.CustomLogicInterface; +import cz.jzitnik.tui.ScreenRenderer; @CustomLogic public class Suffocating implements CustomLogicInterface { @Override - public void nextIteration(Game game) { + public void nextIteration(Game game, ScreenRenderer screenRenderer) { var world = game.getWorld(); int[] data = game.getPlayerCords(); int x = data[0]; @@ -17,7 +18,7 @@ public class Suffocating implements CustomLogicInterface { if (blocks.stream().anyMatch(i -> !i.isGhost())) { // Deal damage when solid block - game.getPlayer().dealDamage(); + game.getPlayer().dealDamage(game, screenRenderer); } } } diff --git a/src/main/java/cz/jzitnik/game/sprites/Steve.java b/src/main/java/cz/jzitnik/game/sprites/Steve.java index 23ac30c..a2cb96a 100644 --- a/src/main/java/cz/jzitnik/game/sprites/Steve.java +++ b/src/main/java/cz/jzitnik/game/sprites/Steve.java @@ -6,7 +6,7 @@ import java.util.HashMap; public class Steve extends Sprite<Steve.SteveState> { public enum SteveState { - FIRST, SECOND, + FIRST, SECOND, FIRST_HURT, SECOND_HURT } public Steve() { @@ -14,6 +14,8 @@ public class Steve extends Sprite<Steve.SteveState> { { put(SteveState.FIRST, "steve1.ans"); put(SteveState.SECOND, "steve2.ans"); + put(SteveState.FIRST_HURT, "steve1_hurt.ans"); + put(SteveState.SECOND_HURT, "steve2_hurt.ans"); } }, SteveState.class); } diff --git a/src/main/java/cz/jzitnik/game/threads/list/NoHungerThread.java b/src/main/java/cz/jzitnik/game/threads/list/NoHungerThread.java index 676a8c2..162c9b9 100644 --- a/src/main/java/cz/jzitnik/game/threads/list/NoHungerThread.java +++ b/src/main/java/cz/jzitnik/game/threads/list/NoHungerThread.java @@ -1,13 +1,17 @@ package cz.jzitnik.game.threads.list; +import cz.jzitnik.game.Game; import cz.jzitnik.game.annotations.ThreadRegistry; import cz.jzitnik.game.entities.Player; +import cz.jzitnik.tui.ScreenRenderer; import lombok.AllArgsConstructor; @AllArgsConstructor @ThreadRegistry public class NoHungerThread extends Thread { private final Player player; + private final Game game; + private final ScreenRenderer screenRenderer; @Override public void run() { @@ -15,7 +19,7 @@ public class NoHungerThread extends Thread { try { Thread.sleep(3000); if (player.getHunger() == 0) { - player.dealDamage(); + player.dealDamage(game, screenRenderer); } } catch (InterruptedException e) { break; diff --git a/src/main/java/cz/jzitnik/tui/ScreenRenderer.java b/src/main/java/cz/jzitnik/tui/ScreenRenderer.java index 0ddb0f7..be1d5b1 100644 --- a/src/main/java/cz/jzitnik/tui/ScreenRenderer.java +++ b/src/main/java/cz/jzitnik/tui/ScreenRenderer.java @@ -1,6 +1,7 @@ package cz.jzitnik.tui; import cz.jzitnik.game.entities.Block; +import cz.jzitnik.game.entities.SteveData; import cz.jzitnik.game.Game; import cz.jzitnik.game.sprites.Air; import cz.jzitnik.game.sprites.SimpleSprite; @@ -37,9 +38,15 @@ public class ScreenRenderer { private int[] getPlayerCords(List<Block>[][] world) { for (int i = 0; i < world.length; i++) { for (int j = 0; j < world[i].length; j++) { - if (world[i][j].stream().anyMatch(x -> x.getBlockId().equals("steve") && x.getSpriteState().isPresent() - && x.getSpriteState().get() == Steve.SteveState.SECOND)) { - return new int[] { j, i }; + var steve = world[i][j].stream().filter(x -> x.getBlockId().equals("steve")).findFirst(); + if (steve.isPresent()) { + var steveData = (SteveData) steve.get().getData(); + + if (steveData.isTop()) { + return new int[] { j, i + 1 }; + } else { + return new int[] { j, i }; + } } } } @@ -127,12 +134,14 @@ public class ScreenRenderer { sprites.add(stringBuilder.toString()); } - if (blocks.stream() - .anyMatch(block -> block.getBlockId().equals("steve") - && block.getSpriteState().get() == Steve.SteveState.SECOND) - && game.getPlayer().isBurningState()) { - SimpleSprite fire = new SimpleSprite("fire.ans"); - sprites.add(fire.getSprite()); + var steve = blocks.stream().filter(block -> block.getBlockId().equals("steve")).findFirst(); + if (steve.isPresent() && game.getPlayer().isBurning()) { + var steveData = (SteveData) steve.get().getData(); + + if (!steveData.isTop()) { + SimpleSprite fire = new SimpleSprite("fire.ans"); + sprites.add(fire.getSprite()); + } } var burningBlocks = blocks.stream().filter(Block::isOnFire).toList(); diff --git a/src/main/resources/textures/mobs/zombie/bottom.ans b/src/main/resources/textures/mobs/zombie/bottom.ans new file mode 100644 index 0000000..c8a7fc1 --- /dev/null +++ b/src/main/resources/textures/mobs/zombie/bottom.ans @@ -0,0 +1,25 @@ +[48;2;88;118;71m [48;2;97;132;81m [48;2;99;132;81m [48;2;0;153;153m [48;2;0;168;168m [48;2;0;173;173m [48;2;0;168;168m [48;2;0;158;158m [48;2;0;153;153m [48;2;0;173;173m [48;2;0;153;153m [48;2;99;132;81m [48;2;88;118;71m [m +[48;2;88;118;71m [48;2;99;132;81m [48;2;0;152;153m [48;2;0;168;168m [48;2;0;173;173m [48;2;0;168;168m [48;2;0;158;158m [48;2;0;153;153m [48;2;0;173;173m [48;2;0;157;157m [48;2;99;132;81m [48;2;99;132;83m [48;2;88;118;71m [m +[48;2;88;118;71m [48;2;99;132;81m [48;2;99;132;83m [48;2;99;132;81m [48;2;0;153;153m [48;2;0;173;173m [48;2;0;168;168m [48;2;0;158;158m [48;2;0;153;153m [48;2;0;173;173m [48;2;99;132;81m [48;2;88;118;69m [48;2;90;118;71m [m +[48;2;99;132;81m [48;2;0;153;153m [48;2;0;173;173m [48;2;0;171;171m [48;2;0;168;168m [48;2;0;173;173m [48;2;0;171;171m [48;2;0;168;168m [48;2;0;153;153m [48;2;99;132;81m [m +[48;2;99;132;81m [48;2;98;132;81m [48;2;99;130;80m [48;2;99;132;81m [48;2;0;153;153m [48;2;0;173;173m [48;2;0;171;169m [48;2;0;168;168m [48;2;0;173;173m [48;2;0;171;171m [48;2;0;168;168m [48;2;0;153;153m [48;2;0;152;153m [48;2;0;153;153m [48;2;99;132;81m [48;2;94;127;75m [48;2;99;132;81m [m +[48;2;99;132;81m [48;2;97;132;83m [48;2;88;118;71m [48;2;99;132;81m [48;2;0;153;153m [48;2;0;173;173m [48;2;31;107;154m [48;2;57;49;137m [48;2;69;57;165m [48;2;69;57;167m [48;2;69;57;165m [48;2;99;132;81m [48;2;88;118;71m [48;2;99;132;81m [m +[48;2;88;118;71m [48;2;99;132;81m [48;2;88;118;71m [48;2;0;153;153m [48;2;57;49;137m [48;2;63;52;152m [48;2;69;57;165m [48;2;88;118;71m [48;2;99;132;81m [48;2;88;118;71m [m +[48;2;88;118;71m [48;2;90;118;71m [48;2;88;118;71m [48;2;99;132;81m [48;2;88;118;71m [48;2;0;153;153m [48;2;57;49;137m [48;2;69;57;165m [48;2;69;56;165m [48;2;69;57;165m [48;2;88;118;71m [48;2;99;132;81m [48;2;99;127;84m [48;2;109;136;95m [m +[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;69;57;165m [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;69;57;167m [48;2;69;57;165m [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;69;57;165m [48;2;69;56;165m [48;2;69;57;165m [48;2;68;56;165m [48;2;69;57;165m [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;69;57;165m [48;2;68;57;165m [48;2;69;57;165m [48;2;69;57;164m [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;69;57;165m [48;2;69;57;164m [48;2;69;57;165m [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;69;57;165m [48;2;69;57;167m [48;2;69;57;165m [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;69;57;165m [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;69;57;165m [48;2;69;57;167m [48;2;57;49;137m [48;2;69;57;165m [48;2;57;49;137m [48;2;69;57;165m [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;69;57;165m [48;2;69;57;167m [48;2;69;57;165m [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;69;57;165m [48;2;69;56;165m [48;2;69;57;165m [48;2;69;57;164m [48;2;69;57;165m [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;69;57;165m [48;2;68;57;165m [48;2;69;57;165m [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;69;57;165m [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;69;57;165m [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;69;57;165m [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;107;107;107m [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;107;107;107m [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;107;107;107m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m diff --git a/src/main/resources/textures/mobs/zombie/bottomhurt.ans b/src/main/resources/textures/mobs/zombie/bottomhurt.ans new file mode 100644 index 0000000..7bf44cb --- /dev/null +++ b/src/main/resources/textures/mobs/zombie/bottomhurt.ans @@ -0,0 +1,25 @@ +[48;2;218;69;39m [48;2;220;78;46m [48;2;214;91;91m [48;2;214;101;101m [48;2;214;104;104m [48;2;214;101;101m [48;2;214;94;94m [48;2;214;91;91m [48;2;214;104;104m [48;2;214;91;91m [48;2;220;78;46m [48;2;218;69;39m [m +[48;2;218;69;39m [48;2;220;78;46m [48;2;220;78;44m [48;2;220;78;46m [48;2;214;91;91m [48;2;214;101;101m [48;2;214;104;104m [48;2;214;101;101m [48;2;214;94;94m [48;2;212;91;91m [48;2;214;104;104m [48;2;214;104;106m [48;2;214;104;104m [48;2;214;94;94m [48;2;220;78;46m [48;2;218;69;39m [m +[48;2;218;69;39m [48;2;220;78;46m [48;2;220;76;46m [48;2;214;91;91m [48;2;214;104;104m [48;2;214;101;101m [48;2;214;94;94m [48;2;214;91;91m [48;2;214;104;104m [48;2;220;78;46m [48;2;218;69;39m [m +[48;2;220;78;46m [48;2;214;91;91m [48;2;214;104;105m [48;2;214;104;104m [48;2;214;102;102m [48;2;214;101;101m [48;2;214;104;104m [48;2;214;102;102m [48;2;214;101;101m [48;2;214;91;91m [48;2;214;91;89m [48;2;220;78;46m [m +[48;2;220;78;46m [48;2;220;77;45m [48;2;220;78;46m [48;2;220;79;46m [48;2;220;78;46m [48;2;214;91;91m [48;2;214;104;104m [48;2;214;102;102m [48;2;214;101;101m [48;2;214;104;104m [48;2;214;102;102m [48;2;214;101;101m [48;2;214;91;91m [48;2;220;78;46m [48;2;219;73;42m [48;2;220;78;46m [m +[48;2;220;78;46m [48;2;218;69;39m [48;2;220;78;46m [48;2;214;91;91m [48;2;214;104;104m [48;2;214;62;92m [48;2;216;26;81m [48;2;217;31;99m [48;2;220;78;46m [48;2;218;69;39m [48;2;220;78;46m [m +[48;2;218;69;39m [48;2;220;78;46m [48;2;218;69;39m [48;2;214;91;90m [48;2;216;26;81m [48;2;216;28;90m [48;2;217;31;99m [48;2;217;30;99m [48;2;218;69;39m [48;2;220;78;46m [48;2;218;69;39m [m +[48;2;218;69;39m [48;2;220;78;46m [48;2;218;69;39m [48;2;214;91;91m [48;2;216;26;81m [48;2;217;31;99m [48;2;218;69;38m [48;2;220;78;46m [48;2;220;75;48m [48;2;223;80;55m [m +[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;217;31;99m [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;217;31;99m [48;2;217;31;98m [48;2;217;31;99m [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;217;31;99m [48;2;217;29;99m [48;2;217;31;99m [48;2;217;30;99m [48;2;217;31;99m [48;2;217;31;98m [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;217;31;99m [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;217;31;99m [48;2;219;31;99m [48;2;217;31;99m [48;2;217;31;98m [48;2;217;31;99m [48;2;217;31;97m [48;2;217;31;99m [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;217;31;99m [48;2;217;30;99m [48;2;217;31;99m [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;217;31;98m [48;2;217;31;99m [48;2;217;31;98m [48;2;217;31;99m [48;2;216;31;99m [48;2;217;31;99m [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;217;31;99m [48;2;216;26;81m [48;2;217;31;99m [48;2;216;26;81m [48;2;217;31;99m [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;217;31;99m [48;2;216;31;99m [48;2;217;31;99m [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;217;31;99m [48;2;217;30;99m [48;2;217;31;99m [48;2;217;31;98m [48;2;217;31;99m [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;217;31;99m [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;217;31;99m [48;2;219;31;99m [48;2;217;31;99m [48;2;217;30;99m [48;2;217;31;99m [48;2;219;31;99m [48;2;217;31;99m [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;217;31;99m [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;217;31;99m [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;221;62;62m [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;221;62;62m [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;221;62;62m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m diff --git a/src/main/resources/textures/mobs/zombie/top.ans b/src/main/resources/textures/mobs/zombie/top.ans new file mode 100644 index 0000000..ef59bf5 --- /dev/null +++ b/src/main/resources/textures/mobs/zombie/top.ans @@ -0,0 +1,25 @@ +[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;65;104;53m [48;2;67;105;54m [48;2;67;108;54m [48;2;59;98;47m [48;2;56;94;42m [48;2;57;96;44m [48;2;61;104;48m [48;2;75;118;55m [48;2;67;108;54m [48;2;69;118;55m [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;67;104;53m [48;2;67;105;54m [48;2;67;108;54m [48;2;59;98;47m [48;2;56;94;42m [48;2;57;96;44m [48;2;61;104;48m [48;2;75;118;55m [48;2;67;108;54m [48;2;69;118;55m [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;61;104;48m [48;2;63;105;48m [48;2;69;108;55m [48;2;91;145;66m [48;2;89;149;61m [48;2;87;144;61m [48;2;78;124;61m [48;2;67;108;54m [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;73;117;57m [48;2;77;119;58m [48;2;84;124;65m [48;2;104;147;80m [48;2;103;147;79m [48;2;102;149;76m [48;2;101;148;75m [48;2;99;140;82m [48;2;85;125;69m [48;2;83;123;68m [48;2;81;121;65m [48;2;74;114;60m [48;2;67;108;54m [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;124;62m [48;2;82;127;62m [48;2;94;135;70m [48;2;111;149;92m [48;2;115;149;91m [48;2;115;150;92m [48;2;120;156;101m [48;2;108;149;91m [48;2;104;144;85m [48;2;94;133;77m [48;2;67;108;54m [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;81;123;60m [48;2;112;148;90m [48;2;90;123;72m [48;2;93;126;75m [48;2;104;135;85m [48;2;99;132;81m [48;2;106;141;85m [48;2;102;139;84m [48;2;99;132;81m [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;81;123;60m [48;2;112;150;90m [48;2;112;148;90m [48;2;90;123;72m [48;2;93;126;75m [48;2;104;135;85m [48;2;99;132;81m [48;2;106;141;85m [48;2;102;138;84m [48;2;99;132;81m [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;99;132;81m [48;2;26;26;26m [48;2;112;148;90m [48;2;111;146;88m [48;2;107;141;80m [48;2;26;26;26m [48;2;106;141;85m [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;99;132;81m [48;2;26;26;26m [48;2;112;148;90m [48;2;111;146;88m [48;2;107;141;80m [48;2;26;26;26m [48;2;106;141;85m [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;57;101;41m [48;2;77;128;54m [48;2;105;149;85m [48;2;107;149;85m [48;2;56;82;38m [48;2;116;144;90m [48;2;101;141;78m [48;2;87;129;62m [48;2;78;123;55m [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;63;101;44m [48;2;68;113;49m [48;2;55;90;37m [48;2;78;108;48m [48;2;63;101;44m [48;2;72;118;50m [48;2;72;114;53m [48;2;72;113;54m [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;63;101;44m [48;2;68;113;49m [48;2;55;90;37m [48;2;78;108;50m [48;2;78;108;48m [48;2;63;101;44m [48;2;72;118;50m [48;2;72;113;54m [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;57;94;39m [48;2;66;104;47m [48;2;55;90;37m [48;2;63;101;44m [48;2;60;99;43m [48;2;55;90;37m [48;2;49;85;32m [48;2;51;85;34m [48;2;52;85;34m [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;57;94;39m [48;2;66;104;47m [48;2;55;90;37m [48;2;63;101;44m [48;2;60;99;43m [48;2;55;90;37m [48;2;49;85;32m [48;2;52;85;34m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m +[48;2;0;168;168m [48;2;0;173;173m [48;2;0;168;168m [48;2;0;158;158m [48;2;63;101;44m [48;2;63;100;44m [48;2;71;115;50m [48;2;76;128;55m [48;2;63;101;44m [48;2;0;158;158m [48;2;0;153;153m [48;2;0;153;152m [48;2;0;158;158m [48;2;0;168;168m [48;2;0;173;173m [48;2;0;168;168m [m +[48;2;0;168;170m [48;2;0;168;168m [48;2;0;173;173m [48;2;2;168;168m [48;2;0;168;168m [48;2;0;158;158m [48;2;2;158;158m [48;2;63;101;44m [48;2;71;115;50m [48;2;77;128;55m [48;2;63;101;44m [48;2;0;158;158m [48;2;0;153;153m [48;2;0;158;158m [48;2;0;168;168m [48;2;0;173;173m [48;2;0;168;168m [m +[48;2;0;158;158m [48;2;0;173;173m [48;2;0;168;168m [48;2;0;173;175m [48;2;0;173;173m [48;2;0;158;158m [48;2;63;101;44m [48;2;62;101;44m [48;2;63;101;44m [48;2;0;158;158m [48;2;0;168;168m [48;2;0;173;173m [48;2;0;168;168m [48;2;0;173;173m [48;2;0;158;158m [m +[48;2;0;173;173m [48;2;1;173;173m [48;2;0;168;168m [48;2;0;173;173m [48;2;0;168;168m [48;2;0;153;153m [48;2;0;157;157m [48;2;0;158;158m [48;2;0;168;168m [48;2;0;173;173m [48;2;0;172;173m [48;2;0;168;168m [48;2;0;173;173m [m +[48;2;0;173;173m [48;2;0;172;173m [48;2;0;173;173m [48;2;0;168;168m [48;2;0;173;173m [48;2;0;168;168m [48;2;0;153;153m [48;2;0;157;157m [48;2;0;158;158m [48;2;0;168;168m [48;2;0;173;173m [48;2;0;173;175m [48;2;0;173;173m [48;2;0;168;168m [48;2;0;173;173m [m +[48;2;0;158;158m [48;2;0;173;173m [48;2;0;158;158m [48;2;0;173;173m [48;2;0;175;173m [48;2;0;173;173m [48;2;0;153;153m [48;2;0;157;157m [48;2;0;158;158m [48;2;0;173;173m [48;2;1;173;173m [48;2;0;173;173m [48;2;0;158;158m [48;2;0;172;173m [48;2;0;173;173m [48;2;0;158;158m [m +[48;2;99;132;81m [48;2;0;153;153m [48;2;0;173;173m [48;2;0;153;153m [48;2;0;165;165m [48;2;0;173;173m [48;2;0;153;153m [48;2;99;134;81m [48;2;99;132;81m [m +[48;2;99;132;81m [48;2;0;153;153m [48;2;2;153;153m [48;2;0;153;153m [48;2;0;173;173m [48;2;2;173;173m [48;2;2;153;153m [48;2;0;165;165m [48;2;0;173;173m [48;2;0;153;153m [48;2;99;132;81m [48;2;99;132;80m [48;2;99;132;81m [m +[48;2;99;132;81m [48;2;88;118;71m [48;2;99;132;81m [48;2;0;153;153m [48;2;0;168;168m [48;2;0;173;173m [48;2;0;153;153m [48;2;0;162;162m [48;2;0;168;168m [48;2;0;173;173m [48;2;0;153;153m [48;2;99;132;81m [48;2;88;118;71m [48;2;99;132;81m [m +[48;2;88;118;71m [48;2;88;116;71m [48;2;99;132;81m [48;2;88;118;71m [48;2;99;132;81m [48;2;0;153;153m [48;2;0;168;168m [48;2;0;173;173m [48;2;0;168;168m [48;2;0;158;158m [48;2;0;153;153m [48;2;0;173;173m [48;2;0;153;153m [48;2;99;132;81m [48;2;88;118;71m [48;2;99;132;81m [48;2;88;118;71m [m +[48;2;88;118;71m [48;2;89;118;71m [48;2;99;132;81m [48;2;88;118;71m [48;2;99;132;81m [48;2;0;153;153m [48;2;0;168;168m [48;2;0;173;173m [48;2;0;170;168m [48;2;0;158;158m [48;2;0;153;153m [48;2;0;173;173m [48;2;0;153;153m [48;2;99;132;81m [48;2;88;118;71m [48;2;99;132;81m [48;2;88;118;71m [m diff --git a/src/main/resources/textures/mobs/zombie/tophurt.ans b/src/main/resources/textures/mobs/zombie/tophurt.ans new file mode 100644 index 0000000..eca9cbf --- /dev/null +++ b/src/main/resources/textures/mobs/zombie/tophurt.ans @@ -0,0 +1,25 @@ +[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;216;60;28m [48;2;216;61;29m [48;2;216;63;29m [48;2;216;56;24m [48;2;216;54;21m [48;2;216;55;22m [48;2;216;60;25m [48;2;217;69;29m [48;2;216;63;29m [48;2;217;69;29m [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;216;60;28m [48;2;216;61;29m [48;2;216;63;29m [48;2;216;56;24m [48;2;216;54;21m [48;2;216;55;22m [48;2;216;60;25m [48;2;217;69;29m [48;2;216;63;29m [48;2;217;69;29m [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;216;60;25m [48;2;216;61;25m [48;2;217;63;28m [48;2;219;86;36m [48;2;218;89;33m [48;2;218;85;33m [48;2;217;73;33m [48;2;216;63;29m [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;217;68;31m [48;2;217;70;31m [48;2;218;73;36m [48;2;220;87;45m [48;2;220;89;42m [48;2;220;88;42m [48;2;220;83;45m [48;2;218;73;38m [48;2;218;72;38m [48;2;218;71;36m [48;2;217;67;33m [48;2;216;63;31m [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;217;73;34m [48;2;218;75;34m [48;2;219;80;39m [48;2;221;89;53m [48;2;221;89;52m [48;2;222;89;53m [48;2;222;93;58m [48;2;221;89;52m [48;2;220;85;48m [48;2;219;78;43m [48;2;216;63;29m [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;219;72;33m [48;2;218;72;33m [48;2;221;88;51m [48;2;220;88;51m [48;2;218;72;40m [48;2;219;74;42m [48;2;220;80;48m [48;2;220;78;46m [48;2;220;84;48m [48;2;220;82;48m [48;2;220;76;46m [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;218;72;33m [48;2;221;88;51m [48;2;218;72;40m [48;2;219;74;42m [48;2;220;82;48m [48;2;221;78;46m [48;2;220;78;46m [48;2;220;84;48m [48;2;220;82;48m [48;2;220;76;46m [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;220;78;46m [48;2;214;11;11m [48;2;214;9;11m [48;2;214;11;11m [48;2;221;88;51m [48;2;221;87;48m [48;2;221;84;45m [48;2;214;11;11m [48;2;220;84;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 [48;2;220;78;46m [48;2;214;11;11m [48;2;221;88;51m [48;2;221;87;50m [48;2;221;84;45m [48;2;214;10;11m [48;2;214;11;11m [48;2;220;84;48m [48;2;222;84;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 [48;2;216;58;21m [48;2;217;75;29m [48;2;223;89;48m [48;2;221;89;48m [48;2;216;46;19m [48;2;217;46;19m [48;2;222;85;51m [48;2;223;85;51m [48;2;220;84;44m [48;2;218;76;34m [48;2;217;72;29m [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;216;58;22m [48;2;216;66;26m [48;2;216;51;18m [48;2;217;63;25m [48;2;216;58;22m [48;2;217;69;26m [48;2;217;67;28m [48;2;217;66;29m [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;216;58;22m [48;2;216;66;26m [48;2;216;51;18m [48;2;217;63;25m [48;2;216;58;22m [48;2;217;69;26m [48;2;217;66;29m [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;216;54;19m [48;2;216;60;24m [48;2;216;51;18m [48;2;216;58;22m [48;2;216;57;22m [48;2;216;51;18m [48;2;215;48;15m [48;2;215;48;16m [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;216;54;17m [48;2;216;52;19m [48;2;216;60;24m [48;2;216;51;18m [48;2;216;58;22m [48;2;216;59;22m [48;2;216;51;18m [48;2;215;48;15m [48;2;215;48;16m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m +[48;2;214;103;101m [48;2;214;101;101m [48;2;215;104;104m [48;2;214;101;101m [48;2;214;94;94m [48;2;216;58;22m [48;2;217;67;26m [48;2;217;75;29m [48;2;216;58;22m [48;2;214;94;94m [48;2;214;91;91m [48;2;215;94;94m [48;2;215;101;101m [48;2;214;101;101m [48;2;214;104;104m [48;2;214;101;101m [m +[48;2;214;101;101m [48;2;214;104;104m [48;2;214;101;101m [48;2;214;94;94m [48;2;216;58;22m [48;2;217;58;22m [48;2;217;67;26m [48;2;217;75;29m [48;2;216;58;22m [48;2;214;94;95m [48;2;214;91;91m [48;2;214;94;94m [48;2;214;101;101m [48;2;214;104;104m [48;2;214;101;101m [m +[48;2;214;94;94m [48;2;214;104;104m [48;2;214;101;101m [48;2;214;104;104m [48;2;214;94;94m [48;2;216;58;22m [48;2;214;94;94m [48;2;214;101;101m [48;2;214;100;101m [48;2;214;104;104m [48;2;214;101;101m [48;2;214;104;104m [48;2;214;94;94m [m +[48;2;214;104;104m [48;2;214;101;101m [48;2;214;104;104m [48;2;214;101;101m [48;2;214;91;91m [48;2;214;94;94m [48;2;214;101;101m [48;2;214;104;104m [48;2;214;101;101m [48;2;214;104;104m [m +[48;2;214;104;104m [48;2;214;101;101m [48;2;214;106;104m [48;2;214;104;104m [48;2;214;101;101m [48;2;214;91;91m [48;2;214;94;94m [48;2;214;101;101m [48;2;214;104;104m [48;2;214;101;101m [48;2;214;104;106m [48;2;214;104;104m [m +[48;2;214;94;94m [48;2;214;104;104m [48;2;214;94;94m [48;2;214;104;104m [48;2;212;91;91m [48;2;214;94;94m [48;2;214;104;104m [48;2;214;106;104m [48;2;214;104;105m [48;2;214;94;94m [48;2;214;104;104m [48;2;214;94;94m [m +[48;2;220;78;46m [48;2;220;79;46m [48;2;220;78;46m [48;2;214;91;91m [48;2;214;104;104m [48;2;215;91;91m [48;2;214;99;99m [48;2;214;104;104m [48;2;214;91;91m [48;2;215;91;91m [48;2;214;91;91m [48;2;220;78;46m [m +[48;2;220;78;46m [48;2;221;78;46m [48;2;220;76;46m [48;2;220;78;46m [48;2;221;78;46m [48;2;214;91;91m [48;2;214;104;104m [48;2;214;91;91m [48;2;214;99;99m [48;2;214;104;104m [48;2;214;91;91m [48;2;220;78;46m [m +[48;2;220;78;46m [48;2;218;69;39m [48;2;220;78;46m [48;2;214;91;91m [48;2;214;101;101m [48;2;215;106;104m [48;2;214;104;104m [48;2;214;91;91m [48;2;214;97;97m [48;2;214;101;101m [48;2;214;104;104m [48;2;214;91;91m [48;2;220;78;46m [48;2;218;69;39m [48;2;218;71;39m [48;2;220;78;46m [m +[48;2;218;69;39m [48;2;220;79;46m [48;2;218;69;39m [48;2;220;78;46m [48;2;214;91;90m [48;2;214;101;101m [48;2;214;100;101m [48;2;214;104;104m [48;2;214;101;101m [48;2;214;94;94m [48;2;214;91;91m [48;2;214;104;104m [48;2;214;91;91m [48;2;220;78;46m [48;2;218;69;39m [48;2;220;78;46m [48;2;218;69;39m [m +[48;2;219;69;39m [48;2;218;69;39m [48;2;221;78;46m [48;2;218;69;39m [48;2;220;78;46m [48;2;214;91;91m [48;2;214;101;101m [48;2;214;104;104m [48;2;214;101;101m [48;2;214;94;94m [48;2;214;91;91m [48;2;214;104;104m [48;2;214;91;91m [48;2;220;78;46m [48;2;218;69;37m [48;2;218;69;39m [48;2;220;78;44m [48;2;218;69;38m [48;2;218;69;39m [m diff --git a/src/main/resources/textures/steve1_hurt.ans b/src/main/resources/textures/steve1_hurt.ans new file mode 100644 index 0000000..cf42941 --- /dev/null +++ b/src/main/resources/textures/steve1_hurt.ans @@ -0,0 +1,25 @@ +[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;215;9;3m [48;2;214;8;2m [48;2;215;8;2m [48;2;214;7;2m [48;2;214;5;1m [48;2;214;6;1m [48;2;214;7;2m [48;2;214;8;2m [48;2;214;7;1m [48;2;214;6;1m [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;215;14;5m [48;2;215;15;7m [48;2;215;13;4m [48;2;215;15;3m [48;2;215;15;5m [48;2;215;15;6m [48;2;215;14;6m [48;2;215;12;4m [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;215;14;4m [48;2;215;12;4m [48;2;215;13;3m [48;2;215;12;5m [48;2;215;16;8m [48;2;216;19;8m [48;2;216;21;7m [48;2;216;23;6m [48;2;216;19;6m [48;2;215;11;3m [48;2;215;12;4m [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;215;10;4m [48;2;224;56;43m [48;2;236;86;71m [48;2;236;88;70m [48;2;237;89;74m [48;2;239;94;79m [48;2;238;91;75m [48;2;238;89;74m [48;2;238;90;75m [48;2;238;88;72m [48;2;233;75;57m [48;2;221;43;27m [48;2;215;19;9m [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;216;18;6m [48;2;224;52;34m [48;2;235;84;64m [48;2;235;84;62m [48;2;237;85;69m [48;2;239;89;74m [48;2;237;86;69m [48;2;236;84;66m [48;2;238;87;70m [48;2;237;82;65m [48;2;232;66;47m [48;2;221;38;24m [48;2;216;16;4m [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;232;75;65m [48;2;233;75;59m [48;2;235;81;63m [48;2;233;76;54m [48;2;233;76;60m [48;2;233;79;63m [48;2;232;74;61m [48;2;230;69;55m [48;2;235;80;65m [48;2;238;84;69m [48;2;230;63;40m [48;2;230;60;40m [48;2;231;65;43m [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;233;79;63m [48;2;247;120;110m [48;2;255;151;154m [48;2;217;36;61m [48;2;220;38;64m [48;2;235;79;56m [48;2;234;74;66m [48;2;238;86;70m [48;2;219;36;57m [48;2;218;36;58m [48;2;255;149;146m [48;2;240;104;93m [48;2;232;75;60m [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;233;78;58m [48;2;245;121;112m [48;2;254;152;153m [48;2;218;38;71m [48;2;219;33;62m [48;2;235;74;54m [48;2;236;77;67m [48;2;237;87;75m [48;2;219;33;57m [48;2;217;32;62m [48;2;255;153;152m [48;2;241;108;96m [48;2;233;75;56m [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;229;61;42m [48;2;232;67;46m [48;2;235;72;62m [48;2;236;76;70m [48;2;236;81;68m [48;2;221;36;28m [48;2;221;40;26m [48;2;221;36;22m [48;2;238;82;68m [48;2;239;84;74m [48;2;231;64;43m [48;2;227;53;30m [48;2;223;44;25m [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;230;59;43m [48;2;228;58;43m [48;2;230;58;45m [48;2;220;25;16m [48;2;219;22;13m [48;2;223;46;31m [48;2;224;46;33m [48;2;224;45;39m [48;2;220;27;14m [48;2;220;21;13m [48;2;229;57;33m [48;2;225;50;30m [48;2;226;50;30m [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;227;57;40m [48;2;227;56;35m [48;2;228;57;38m [48;2;216;17;2m [48;2;217;15;4m [48;2;227;48;36m [48;2;226;45;35m [48;2;217;14;3m [48;2;216;14;3m [48;2;226;54;33m [48;2;225;52;31m [48;2;225;50;28m [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;222;38;24m [48;2;222;38;21m [48;2;221;37;18m [48;2;216;16;3m [48;2;216;15;4m [48;2;216;14;3m [48;2;217;16;2m [48;2;217;16;3m [48;2;216;22;5m [48;2;216;14;4m [48;2;226;48;31m [48;2;224;46;29m [48;2;223;44;26m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m +[48;2;222;119;120m [48;2;222;120;123m [48;2;222;124;128m [48;2;222;128;130m [48;2;221;130;132m [48;2;223;121;128m [48;2;215;58;65m [48;2;216;57;65m [48;2;216;62;65m [48;2;220;34;19m [48;2;221;31;23m [48;2;223;40;21m [48;2;221;35;19m [48;2;220;34;17m [48;2;220;31;29m [48;2;216;69;69m [48;2;216;64;74m [48;2;216;61;70m [48;2;223;120;125m [48;2;223;122;130m [48;2;223;125;132m [48;2;223;125;128m [48;2;223;121;130m [48;2;226;126;128m [m +[48;2;214;84;94m [48;2;214;86;100m [48;2;214;87;105m [48;2;214;90;107m [48;2;214;92;109m [48;2;214;87;102m [48;2;214;82;94m [48;2;214;80;94m [48;2;214;83;96m [48;2;224;46;40m [48;2;225;50;32m [48;2;232;63;40m [48;2;225;50;33m [48;2;224;48;31m [48;2;224;48;33m [48;2;223;52;40m [48;2;214;85;94m [48;2;214;82;102m [48;2;214;83;103m [48;2;214;84;97m [48;2;214;88;104m [48;2;214;91;106m [48;2;214;93;104m [48;2;214;90;106m [48;2;214;89;96m [m +[48;2;214;90;99m [48;2;214;93;104m [48;2;215;90;104m [48;2;214;93;104m [48;2;214;95;106m [48;2;214;86;99m [48;2;214;87;99m [48;2;214;88;99m [48;2;214;87;103m [48;2;214;82;91m [48;2;214;74;78m [48;2;226;47;31m [48;2;224;48;33m [48;2;225;48;28m [48;2;214;77;82m [48;2;214;80;95m [48;2;214;93;108m [48;2;214;93;104m [48;2;214;92;103m [48;2;214;89;102m [48;2;214;92;106m [48;2;214;94;108m [48;2;214;87;104m [48;2;214;89;95m [m +[48;2;214;90;99m [48;2;214;93;104m [48;2;214;90;106m [48;2;214;92;107m [48;2;214;94;108m [48;2;214;88;102m [48;2;214;91;104m [48;2;214;92;104m [48;2;214;92;99m [48;2;214;86;98m [48;2;214;78;89m [48;2;219;58;51m [48;2;220;56;57m [48;2;220;60;48m [48;2;214;83;96m [48;2;214;87;100m [48;2;214;92;100m [48;2;214;94;108m [48;2;214;92;107m [48;2;214;91;105m [48;2;214;94;107m [48;2;214;93;106m [48;2;214;89;105m [48;2;214;91;96m [m +[48;2;214;87;101m [48;2;214;89;102m [48;2;214;94;106m [48;2;214;94;108m [48;2;214;92;107m [48;2;214;94;106m [48;2;214;93;106m [48;2;214;94;106m [48;2;214;91;104m [48;2;214;92;106m [48;2;214;83;98m [48;2;214;82;93m [48;2;214;81;93m [48;2;214;89;101m [48;2;214;91;103m [48;2;214;92;104m [48;2;214;94;108m [48;2;214;91;104m [48;2;214;94;106m [48;2;214;95;103m [48;2;214;94;108m [48;2;214;94;98m [m +[48;2;214;79;96m [48;2;214;85;100m [48;2;214;93;108m [48;2;214;86;98m [48;2;214;95;107m [48;2;214;94;106m [48;2;214;92;106m [48;2;214;92;101m [48;2;214;84;93m [48;2;214;82;93m [48;2;214;81;93m [48;2;214;91;101m [48;2;214;92;106m [48;2;214;93;107m [48;2;214;94;109m [48;2;214;94;108m [48;2;214;87;103m [48;2;214;94;101m [48;2;214;95;103m [48;2;214;89;104m [48;2;214;91;96m [m +[48;2;214;74;88m [48;2;214;80;91m [48;2;214;91;99m [48;2;214;89;97m [48;2;214;88;96m [48;2;214;84;87m [48;2;214;94;108m [48;2;214;91;104m [48;2;214;93;106m [48;2;214;93;108m [48;2;214;91;103m [48;2;214;87;101m [48;2;214;86;96m [48;2;214;81;93m [48;2;212;92;103m [48;2;214;94;108m [48;2;214;88;104m [48;2;214;92;109m [48;2;214;91;108m [48;2;214;80;80m [48;2;214;96;101m [48;2;214;90;96m [48;2;214;84;92m [48;2;214;84;83m [m +[48;2;231;77;61m [48;2;232;75;62m [48;2;232;74;62m [48;2;233;74;55m [48;2;214;80;93m [48;2;214;82;89m [48;2;214;79;92m [48;2;214;94;107m [48;2;214;96;108m [48;2;214;93;107m [48;2;214;86;97m [48;2;214;81;93m [48;2;212;94;103m [48;2;214;92;106m [48;2;214;80;96m [48;2;214;80;92m [48;2;214;80;91m [48;2;232;73;54m [48;2;231;73;62m [48;2;231;75;63m [48;2;232;75;62m [48;2;233;72;62m [48;2;232;81;72m [m +[48;2;231;72;61m [48;2;230;67;56m [48;2;233;70;60m [48;2;234;74;63m [48;2;235;73;60m [48;2;214;80;96m [48;2;214;79;92m [48;2;214;80;92m [48;2;214;95;105m [48;2;214;93;107m [48;2;214;91;106m [48;2;214;86;97m [48;2;214;81;93m [48;2;214;92;103m [48;2;214;94;108m [48;2;214;87;103m [48;2;214;84;97m [48;2;214;83;96m [48;2;231;72;59m [48;2;231;67;58m [48;2;231;69;59m [48;2;233;73;62m [48;2;235;75;65m [48;2;234;79;73m [m +[48;2;231;75;59m [48;2;232;74;60m [48;2;228;66;50m [48;2;231;72;58m [48;2;232;74;60m [48;2;214;84;90m [48;2;214;85;97m [48;2;214;84;96m [48;2;214;91;104m [48;2;214;93;107m [48;2;214;88;103m [48;2;214;86;99m [48;2;214;82;96m [48;2;214;92;104m [48;2;214;93;106m [48;2;214;90;103m [48;2;214;84;98m [48;2;214;80;93m [48;2;231;75;58m [48;2;229;65;50m [48;2;231;72;57m [48;2;232;77;62m [48;2;233;75;61m [48;2;231;77;68m [m +[48;2;231;75;59m [48;2;232;74;60m [48;2;228;67;50m [48;2;230;74;58m [48;2;232;74;60m [48;2;229;65;50m [48;2;214;82;86m [48;2;214;89;103m [48;2;214;92;107m [48;2;214;94;106m [48;2;214;93;106m [48;2;214;81;95m [48;2;214;87;102m [48;2;214;87;103m [48;2;214;92;105m [48;2;214;93;106m [48;2;214;90;103m [48;2;214;84;98m [48;2;214;81;93m [48;2;232;75;58m [48;2;229;65;50m [48;2;231;72;57m [48;2;231;75;60m [48;2;229;65;51m [48;2;229;70;62m [m +[48;2;231;74;58m [48;2;232;73;62m [48;2;230;70;55m [48;2;232;74;58m [48;2;232;76;60m [48;2;229;65;50m [48;2;214;80;92m [48;2;214;89;100m [48;2;214;94;109m [48;2;214;94;108m [48;2;214;91;103m [48;2;214;81;96m [48;2;214;86;100m [48;2;214;90;103m [48;2;214;93;107m [48;2;214;92;108m [48;2;214;89;105m [48;2;214;84;99m [48;2;214;82;94m [48;2;232;75;60m [48;2;231;70;56m [48;2;231;73;58m [48;2;232;76;61m [48;2;229;65;51m [48;2;228;72;62m [m +[48;2;231;73;60m [48;2;232;75;60m [48;2;233;75;60m [48;2;233;75;61m [48;2;230;66;52m [48;2;214;82;94m [48;2;214;91;101m [48;2;214;94;109m [48;2;214;94;108m [48;2;214;91;103m [48;2;214;81;96m [48;2;214;86;100m [48;2;214;90;103m [48;2;214;93;107m [48;2;214;92;108m [48;2;214;89;105m [48;2;214;84;99m [48;2;214;81;94m [48;2;232;75;59m [48;2;232;75;60m [48;2;232;75;61m [48;2;232;76;61m [48;2;229;65;51m [48;2;228;72;62m [m diff --git a/src/main/resources/textures/steve2_hurt.ans b/src/main/resources/textures/steve2_hurt.ans new file mode 100644 index 0000000..b490e8c --- /dev/null +++ b/src/main/resources/textures/steve2_hurt.ans @@ -0,0 +1,25 @@ +[48;2;231;75;58m [48;2;233;74;58m [48;2;232;75;59m [48;2;233;75;59m [48;2;229;65;50m [48;2;214;92;109m [48;2;214;92;103m [48;2;214;94;106m [48;2;214;92;103m [48;2;214;80;94m [48;2;214;89;98m [48;2;214;91;103m [48;2;214;92;106m [48;2;214;92;108m [48;2;214;93;108m [48;2;214;86;101m [48;2;214;80;94m [48;2;232;75;57m [48;2;233;75;60m [48;2;232;75;60m [48;2;229;63;50m [48;2;228;72;62m [m +[48;2;230;75;58m [48;2;233;74;58m [48;2;232;75;59m [48;2;233;75;59m [48;2;230;68;52m [48;2;214;91;107m [48;2;214;91;101m [48;2;214;91;103m [48;2;214;89;101m [48;2;214;84;98m [48;2;214;90;103m [48;2;214;91;106m [48;2;214;92;108m [48;2;214;93;108m [48;2;214;86;101m [48;2;214;80;94m [48;2;232;75;59m [48;2;233;75;61m [48;2;233;75;60m [48;2;232;77;62m [48;2;230;67;53m [48;2;229;74;64m [m +[48;2;231;75;57m [48;2;233;74;58m [48;2;232;74;55m [48;2;232;75;58m [48;2;232;77;61m [48;2;233;74;60m [48;2;214;83;96m [48;2;214;83;92m [48;2;214;80;92m [48;2;214;82;94m [48;2;214;89;99m [48;2;214;93;103m [48;2;214;97;106m [48;2;214;94;104m [48;2;214;92;103m [48;2;214;94;106m [48;2;214;86;99m [48;2;214;80;92m [48;2;232;75;59m [48;2;233;76;62m [48;2;232;75;60m [48;2;231;74;58m [48;2;234;75;62m [48;2;232;80;72m [m +[48;2;231;75;59m [48;2;233;74;61m [48;2;232;75;59m [48;2;231;72;57m [48;2;229;67;54m [48;2;231;76;60m [48;2;216;41;101m [48;2;216;40;96m [48;2;216;39;97m [48;2;216;38;97m [48;2;216;38;98m [48;2;216;40;100m [48;2;216;38;98m [48;2;216;39;98m [48;2;215;34;89m [48;2;214;40;84m [48;2;214;96;111m [48;2;214;86;99m [48;2;214;80;92m [48;2;232;75;59m [48;2;232;74;60m [48;2;231;73;57m [48;2;229;69;53m [48;2;232;74;60m [48;2;232;81;72m [m +[48;2;231;72;58m [48;2;232;70;57m [48;2;233;74;58m [48;2;231;70;54m [48;2;229;65;51m [48;2;232;73;58m [48;2;217;36;108m [48;2;216;35;106m [48;2;216;36;101m [48;2;217;36;101m [48;2;217;35;101m [48;2;216;35;100m [48;2;216;31;94m [48;2;215;37;87m [48;2;214;87;110m [48;2;214;82;97m [48;2;214;85;91m [48;2;233;73;57m [48;2;233;75;61m [48;2;230;69;55m [48;2;229;67;52m [48;2;231;70;56m [48;2;233;79;69m [m +[48;2;227;62;46m [48;2;229;65;50m [48;2;233;76;59m [48;2;231;70;54m [48;2;227;63;48m [48;2;229;64;50m [48;2;217;35;108m [48;2;216;35;107m [48;2;216;36;101m [48;2;217;36;101m [48;2;217;35;101m [48;2;216;35;101m [48;2;217;34;101m [48;2;216;23;86m [48;2;214;58;91m [48;2;214;81;93m [48;2;230;67;48m [48;2;232;73;57m [48;2;230;70;53m [48;2;228;65;50m [48;2;228;66;50m [48;2;229;72;63m [m +[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;217;35;108m [48;2;216;35;106m [48;2;216;36;102m [48;2;216;36;101m [48;2;217;36;102m [48;2;217;36;101m [48;2;217;36;103m [48;2;216;35;97m [48;2;217;34;96m [48;2;215;40;101m [48;2;215;43;96m [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;217;35;103m [48;2;217;36;99m [48;2;216;36;101m [48;2;216;35;101m [48;2;217;35;101m [48;2;217;37;101m [48;2;216;35;99m [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;217;35;103m [48;2;217;36;99m [48;2;216;36;101m [48;2;216;35;101m [48;2;217;35;101m [48;2;217;37;101m [48;2;216;35;98m [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;216;34;102m [48;2;217;36;100m [48;2;216;36;101m [48;2;217;36;101m [48;2;216;36;101m [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;216;34;102m [48;2;217;36;100m [48;2;216;36;101m [48;2;217;36;101m [48;2;216;36;101m [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;217;35;101m [48;2;217;36;99m [48;2;216;36;101m [48;2;217;36;101m [48;2;216;36;101m [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;217;35;101m [48;2;217;36;99m [48;2;216;36;101m [48;2;216;36;103m [48;2;216;36;101m [48;2;217;37;101m [48;2;216;36;101m [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;217;35;104m [48;2;216;34;96m [48;2;217;36;102m [48;2;216;36;98m [48;2;216;35;103m [48;2;219;36;101m [48;2;216;36;102m [48;2;217;36;101m [48;2;217;36;102m [48;2;217;36;101m [48;2;217;37;100m [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;217;36;106m [48;2;216;31;87m [48;2;215;28;81m [48;2;216;30;90m [48;2;217;36;101m [48;2;216;36;101m [48;2;217;37;101m [48;2;216;29;89m [48;2;215;28;81m [48;2;216;35;95m [48;2;217;36;101m [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;216;34;103m [48;2;216;35;94m [48;2;216;28;89m [48;2;216;29;89m [48;2;216;33;98m [48;2;218;35;100m [48;2;216;35;100m [48;2;216;36;101m [48;2;216;33;96m [48;2;216;29;87m [48;2;216;35;95m [48;2;216;35;99m [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;217;35;103m [48;2;217;36;97m [48;2;216;35;99m [48;2;217;35;99m [48;2;216;35;100m [48;2;216;36;101m [48;2;216;35;101m [48;2;217;35;103m [48;2;217;35;100m [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;217;35;103m [48;2;217;37;98m [48;2;216;35;101m [48;2;217;36;102m [48;2;217;36;101m [48;2;216;36;101m [48;2;216;36;100m [48;2;217;36;99m [48;2;217;36;104m [48;2;217;36;100m [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;217;36;102m [48;2;217;36;100m [48;2;216;36;101m [48;2;217;35;101m [48;2;216;35;101m [48;2;216;36;101m [48;2;216;37;103m [48;2;216;36;101m [48;2;217;36;101m [48;2;216;35;101m [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;217;36;102m [48;2;217;36;100m [48;2;216;36;101m [48;2;217;35;101m [48;2;216;36;101m [48;2;218;36;101m [48;2;216;36;101m [48;2;216;35;100m [48;2;216;35;99m [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;217;35;104m [48;2;217;36;101m [48;2;217;36;98m [48;2;217;35;99m [48;2;217;35;100m [48;2;216;36;98m [48;2;216;35;99m [48;2;217;36;98m [48;2;216;36;98m [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;217;35;101m [48;2;217;36;98m [48;2;217;37;97m [48;2;217;36;95m [48;2;217;36;93m [48;2;217;36;94m [48;2;217;36;93m [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;220;61;65m [48;2;220;60;66m [48;2;220;62;60m [48;2;220;62;61m [48;2;220;62;60m [48;2;220;62;61m [48;2;220;62;60m [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;220;61;65m [48;2;220;62;65m [48;2;220;63;55m [48;2;220;63;54m [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;221;65;65m [48;2;220;61;61m [48;2;220;62;62m [48;2;220;61;61m [48;2;220;62;62m [48;2;220;61;61m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m