chore: I hate my life

This commit is contained in:
2025-09-25 09:58:22 +02:00
parent 75393f2bea
commit 5c1ec41ac7
3 changed files with 38 additions and 11 deletions

View File

@ -117,7 +117,7 @@ public class Game {
* @param screenRenderer the renderer used to refresh the screen. * @param screenRenderer the renderer used to refresh the screen.
* @param terminal the terminal instance used for layout. * @param terminal the terminal instance used for layout.
*/ */
public void movePlayerRight(ScreenRenderer screenRenderer, Terminal terminal) { public synchronized void movePlayerRight(ScreenRenderer screenRenderer, Terminal terminal) {
if (window != Window.WORLD) { if (window != Window.WORLD) {
return; return;
} }
@ -137,9 +137,9 @@ public class Game {
new Thread(() -> entitySpawnProvider.update(this, terminal)).start(); new Thread(() -> entitySpawnProvider.update(this, terminal)).start();
playMovePlayerSound(cords[0] + 1, cords[1]); new Thread(() -> playMovePlayerSound(cords[0] + 1, cords[1])).start();
update(screenRenderer); new Thread(() -> update(screenRenderer)).start();
} }
/** /**
@ -148,7 +148,7 @@ public class Game {
* @param screenRenderer the renderer used to refresh the screen. * @param screenRenderer the renderer used to refresh the screen.
* @param terminal the terminal instance used for layout. * @param terminal the terminal instance used for layout.
*/ */
public void movePlayerLeft(ScreenRenderer screenRenderer, Terminal terminal) { public synchronized void movePlayerLeft(ScreenRenderer screenRenderer, Terminal terminal) {
if (window != Window.WORLD) { if (window != Window.WORLD) {
return; return;
} }
@ -168,19 +168,19 @@ public class Game {
new Thread(() -> entitySpawnProvider.update(this, terminal)).start(); new Thread(() -> entitySpawnProvider.update(this, terminal)).start();
playMovePlayerSound(cords[0] - 1, cords[1]); new Thread(() -> playMovePlayerSound(cords[0] - 1, cords[1])).start();
update(screenRenderer); new Thread(() -> update(screenRenderer)).start();
} }
private boolean playerMovingUp = false; private transient boolean playerMovingUp = false;
/** /**
* Moves the player upward by one block, if jumping is valid. * Moves the player upward by one block, if jumping is valid.
* *
* @param screenRenderer the renderer used to refresh the screen. * @param screenRenderer the renderer used to refresh the screen.
*/ */
public void movePlayerUp(ScreenRenderer screenRenderer) { public synchronized void movePlayerUp(ScreenRenderer screenRenderer) {
if (playerMovingUp) { if (playerMovingUp) {
return; return;
} }
@ -192,6 +192,7 @@ public class Game {
int[] cords = getPlayerCords(); int[] cords = getPlayerCords();
if (isSolid(world[cords[1] - 2][cords[0]]) || !isSolid(world[cords[1] + 1][cords[0]])) { if (isSolid(world[cords[1] - 2][cords[0]]) || !isSolid(world[cords[1] + 1][cords[0]])) {
playerMovingUp = false;
return; return;
} }
@ -211,8 +212,9 @@ public class Game {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
update(screenRenderer);
playerMovingUp = false; playerMovingUp = false;
update(screenRenderer);
}).start(); }).start();
} }
@ -235,7 +237,9 @@ public class Game {
int dealDamage = inventory.getItemInHand().map(Item::getDealDamage).orElse(1); int dealDamage = inventory.getItemInHand().map(Item::getDealDamage).orElse(1);
if (mob.getHp() - dealDamage <= 0) { if (mob.getHp() - dealDamage <= 0) {
// Mob is killed // Mob is killed
try {
gameStates.dependencies.entityKill.get(mob.getBlockId()).killed(this, mob, x, y); gameStates.dependencies.entityKill.get(mob.getBlockId()).killed(this, mob, x, y);
} catch (Exception _) {}
world[y][x].remove(mob); world[y][x].remove(mob);
} else { } else {
mob.decreaseHp(dealDamage); mob.decreaseHp(dealDamage);

View File

@ -27,7 +27,7 @@ public class Generation {
int[] terrainHeight = PopulateWorld.generateTerrain(); int[] terrainHeight = PopulateWorld.generateTerrain();
game.getInventory().addItem(ItemBlockSupplier.getItem("lava_bucket")); game.getInventory().addItem(ItemBlockSupplier.getItem("coal"));
game.getPlayer().setPlayerBlock1(steveBlock); game.getPlayer().setPlayerBlock1(steveBlock);
game.getPlayer().setPlayerBlock2(steveBlock2); game.getPlayer().setPlayerBlock2(steveBlock2);

View File

@ -0,0 +1,23 @@
package cz.jzitnik.game.threads.list;
import cz.jzitnik.game.Game;
import cz.jzitnik.game.annotations.ThreadRegistry;
import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor
@ThreadRegistry
public class BackgroundSaveTask extends Thread {
private final Game game;
@Override
public void run() {
while (true) {
try {
Thread.sleep(10000);
game.getGameStates().dependencies.gameSaver.save(game);
} catch (InterruptedException e) {
break;
}
}
}
}