chore: lava

This commit is contained in:
jull 2025-03-03 19:04:19 +01:00
parent f5d2920a9a
commit ddb8deffe9
3 changed files with 89 additions and 0 deletions

View File

@ -14,6 +14,7 @@ public class SpriteLoader {
// Blocks
AIR,
WATER,
LAVA,
DIRT,
GRASS,
STONE,
@ -142,6 +143,7 @@ public class SpriteLoader {
// Block
SPRITES_MAP.put(SPRITES.AIR, new Air());
SPRITES_MAP.put(SPRITES.WATER, new Water());
SPRITES_MAP.put(SPRITES.LAVA, new Lava());
SPRITES_MAP.put(SPRITES.DIRT, new SimpleSprite("dirt.ans"));
SPRITES_MAP.put(SPRITES.GRASS, new SimpleSprite("grass.ans"));
SPRITES_MAP.put(SPRITES.STONE, new SimpleSprite("stone.ans"));

View File

@ -0,0 +1,62 @@
package cz.jzitnik.game.sprites;
import cz.jzitnik.tui.ResourceLoader;
import cz.jzitnik.tui.Sprite;
import java.util.Optional;
public class Lava extends Sprite {
public enum LavaState {
FIRST,
SECOND,
THIRD,
FOURTH,
FIFTH;
public static LavaState get(int x) {
return switch (x) {
case 5 -> FIRST;
case 4 -> SECOND;
case 3 -> THIRD;
case 2 -> FOURTH;
case 1 -> FIFTH;
default -> throw new IllegalStateException("Unexpected value: " + x);
};
}
}
public String getSprite() {
return getSprite(LavaState.FIRST);
}
public String getSprite(Enum e) {
String[] resource = ResourceLoader.loadResource("lava.ans").split("\n");
int numberFormTop = switch (e) {
case LavaState.FIRST -> 0;
case LavaState.SECOND -> 5;
case LavaState.THIRD -> 10;
case LavaState.FOURTH -> 15;
case LavaState.FIFTH -> 20;
default -> throw new IllegalStateException("Unexpected value: " + e);
};
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < 25; i++) {
if (i < numberFormTop) {
stringBuilder.append("\033[49m ".repeat(50));
} else {
stringBuilder.append(resource[i]);
}
stringBuilder.append("\n");
}
return stringBuilder.toString();
}
@Override
public Optional<Class<LavaState>> getStates() {
return Optional.of(LavaState.class);
}
}

View File

@ -0,0 +1,25 @@