Browse Source

new mine handling system

lakebane-master
FatBoy-DOTC 5 months ago
parent
commit
a8e3cfa8f7
  1. 16
      src/engine/server/world/WorldServer.java
  2. 12
      src/engine/workthreads/MineThread.java

16
src/engine/server/world/WorldServer.java

@ -209,6 +209,7 @@ public class WorldServer {
LocalDateTime nextHourlyJobTime = LocalDateTime.now().withMinute(0).withSecond(0).plusHours(0); LocalDateTime nextHourlyJobTime = LocalDateTime.now().withMinute(0).withSecond(0).plusHours(0);
LocalDateTime nextWareHousePushTime = LocalDateTime.now(); LocalDateTime nextWareHousePushTime = LocalDateTime.now();
LocalDateTime nextDiscSpawn = LocalDateTime.now().withMinute(0).withSecond(0).plusHours(1); LocalDateTime nextDiscSpawn = LocalDateTime.now().withMinute(0).withSecond(0).plusHours(1);
LocalDateTime nextMinePulse = LocalDateTime.now().withMinute(0).withSecond(0);
// Begin execution of main game loop // Begin execution of main game loop
@ -265,6 +266,13 @@ public class WorldServer {
} }
nextDiscSpawn = nextDiscSpawn.plusHours(1); nextDiscSpawn = nextDiscSpawn.plusHours(1);
} }
if (LocalDateTime.now().isAfter(nextMinePulse)) {
Thread mineThread = new Thread(new MineThread());
mineThread.setName("mineThread");
mineThread.start();
nextMinePulse = nextMinePulse.plusMinutes(30);
}
ThreadUtils.sleep(50); ThreadUtils.sleep(50);
} }
} }
@ -544,10 +552,10 @@ public class WorldServer {
Logger.info("Running garbage collection..."); Logger.info("Running garbage collection...");
System.gc(); System.gc();
Logger.info("Starting Mine Thread..."); //Logger.info("Starting Mine Thread...");
Thread mineThread = new Thread(new MineThread()); //Thread mineThread = new Thread(new MineThread());
mineThread.setName("mine thread"); //mineThread.setName("mine thread");
mineThread.start(); //mineThread.start();
//Logger.info("Starting Power Thread..."); //Logger.info("Starting Power Thread...");
//Thread powerThread = new Thread(new PowersThread()); //Thread powerThread = new Thread(new PowersThread());

12
src/engine/workthreads/MineThread.java

@ -16,18 +16,12 @@ import org.pmw.tinylog.Logger;
import java.time.LocalDateTime; import java.time.LocalDateTime;
public class MineThread implements Runnable { public class MineThread implements Runnable {
public static LocalDateTime nextPulse;
public MineThread(){ public MineThread(){
} }
@Override @Override
public void run() { public void run() {
nextPulse = LocalDateTime.now().withMinute(0).withSecond(0).withNano(0); processMineWindows();
while (true) {
if(LocalDateTime.now().isAfter(nextPulse)) {
processMineWindows(nextPulse);
}
}
} }
public static void mineWindowOpen(Mine mine) { public static void mineWindowOpen(Mine mine) {
@ -104,7 +98,8 @@ public class MineThread implements Runnable {
return true; return true;
} }
public static void processMineWindows(LocalDateTime currentTime){ public static void processMineWindows(){
LocalDateTime currentTime = LocalDateTime.now();
for (Mine mine : Mine.getMines()) { for (Mine mine : Mine.getMines()) {
Building tower = BuildingManager.getBuildingFromCache(mine.getBuildingID()); Building tower = BuildingManager.getBuildingFromCache(mine.getBuildingID());
//if the tower comes back null, skip this mine //if the tower comes back null, skip this mine
@ -139,6 +134,5 @@ public class MineThread implements Runnable {
} }
} }
nextPulse = nextPulse.plusMinutes(30);
} }
} }

Loading…
Cancel
Save