chore: I hate my life
This commit is contained in:
@ -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
|
||||||
gameStates.dependencies.entityKill.get(mob.getBlockId()).killed(this, mob, x, y);
|
try {
|
||||||
|
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);
|
||||||
|
@ -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);
|
||||||
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user