Compare commits
1 Commits
75393f2bea
...
main
Author | SHA1 | Date | |
---|---|---|---|
5c1ec41ac7
|
@ -117,7 +117,7 @@ public class Game {
|
||||
* @param screenRenderer the renderer used to refresh the screen.
|
||||
* @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) {
|
||||
return;
|
||||
}
|
||||
@ -137,9 +137,9 @@ public class Game {
|
||||
|
||||
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 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) {
|
||||
return;
|
||||
}
|
||||
@ -168,19 +168,19 @@ public class Game {
|
||||
|
||||
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.
|
||||
*
|
||||
* @param screenRenderer the renderer used to refresh the screen.
|
||||
*/
|
||||
public void movePlayerUp(ScreenRenderer screenRenderer) {
|
||||
public synchronized void movePlayerUp(ScreenRenderer screenRenderer) {
|
||||
if (playerMovingUp) {
|
||||
return;
|
||||
}
|
||||
@ -192,6 +192,7 @@ public class Game {
|
||||
int[] cords = getPlayerCords();
|
||||
|
||||
if (isSolid(world[cords[1] - 2][cords[0]]) || !isSolid(world[cords[1] + 1][cords[0]])) {
|
||||
playerMovingUp = false;
|
||||
return;
|
||||
}
|
||||
|
||||
@ -211,8 +212,9 @@ public class Game {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
update(screenRenderer);
|
||||
playerMovingUp = false;
|
||||
|
||||
update(screenRenderer);
|
||||
}).start();
|
||||
}
|
||||
|
||||
@ -235,7 +237,9 @@ public class Game {
|
||||
int dealDamage = inventory.getItemInHand().map(Item::getDealDamage).orElse(1);
|
||||
if (mob.getHp() - dealDamage <= 0) {
|
||||
// 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);
|
||||
} else {
|
||||
mob.decreaseHp(dealDamage);
|
||||
|
@ -27,7 +27,7 @@ public class Generation {
|
||||
|
||||
int[] terrainHeight = PopulateWorld.generateTerrain();
|
||||
|
||||
game.getInventory().addItem(ItemBlockSupplier.getItem("lava_bucket"));
|
||||
game.getInventory().addItem(ItemBlockSupplier.getItem("coal"));
|
||||
|
||||
game.getPlayer().setPlayerBlock1(steveBlock);
|
||||
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