new mine handling system

This commit is contained in:
2024-05-29 20:51:48 -05:00
parent 0028b7be69
commit a8e3cfa8f7
2 changed files with 15 additions and 13 deletions
+12 -4
View File
@@ -209,6 +209,7 @@ public class WorldServer {
LocalDateTime nextHourlyJobTime = LocalDateTime.now().withMinute(0).withSecond(0).plusHours(0);
LocalDateTime nextWareHousePushTime = LocalDateTime.now();
LocalDateTime nextDiscSpawn = LocalDateTime.now().withMinute(0).withSecond(0).plusHours(1);
LocalDateTime nextMinePulse = LocalDateTime.now().withMinute(0).withSecond(0);
// Begin execution of main game loop
@@ -265,6 +266,13 @@ public class WorldServer {
}
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);
}
}
@@ -544,10 +552,10 @@ public class WorldServer {
Logger.info("Running garbage collection...");
System.gc();
Logger.info("Starting Mine Thread...");
Thread mineThread = new Thread(new MineThread());
mineThread.setName("mine thread");
mineThread.start();
//Logger.info("Starting Mine Thread...");
//Thread mineThread = new Thread(new MineThread());
//mineThread.setName("mine thread");
//mineThread.start();
//Logger.info("Starting Power Thread...");
//Thread powerThread = new Thread(new PowersThread());
+3 -9
View File
@@ -16,18 +16,12 @@ import org.pmw.tinylog.Logger;
import java.time.LocalDateTime;
public class MineThread implements Runnable {
public static LocalDateTime nextPulse;
public MineThread(){
}
@Override
public void run() {
nextPulse = LocalDateTime.now().withMinute(0).withSecond(0).withNano(0);
while (true) {
if(LocalDateTime.now().isAfter(nextPulse)) {
processMineWindows(nextPulse);
}
}
processMineWindows();
}
public static void mineWindowOpen(Mine mine) {
@@ -104,7 +98,8 @@ public class MineThread implements Runnable {
return true;
}
public static void processMineWindows(LocalDateTime currentTime){
public static void processMineWindows(){
LocalDateTime currentTime = LocalDateTime.now();
for (Mine mine : Mine.getMines()) {
Building tower = BuildingManager.getBuildingFromCache(mine.getBuildingID());
//if the tower comes back null, skip this mine
@@ -139,6 +134,5 @@ public class MineThread implements Runnable {
}
}
nextPulse = nextPulse.plusMinutes(30);
}
}