Browse Source

optimized mob ai thread

lakebane
FatBoy-DOTC 14 hours ago
parent
commit
99a9cd297c
  1. 26
      src/engine/mobileAI/Threads/MobAIThread.java
  2. 2
      src/engine/workthreads/BaneThread.java

26
src/engine/mobileAI/Threads/MobAIThread.java

@ -28,18 +28,26 @@ public class MobAIThread implements Runnable{
AI_BASE_AGGRO_RANGE = (int)(60 * Float.parseFloat(ConfigManager.MB_AI_AGGRO_RANGE.getValue())); AI_BASE_AGGRO_RANGE = (int)(60 * Float.parseFloat(ConfigManager.MB_AI_AGGRO_RANGE.getValue()));
while (true) { while (true) {
for (Zone zone : ZoneManager.getAllZones()) { for (Zone zone : ZoneManager.getAllZones()) {
if (zone != null && zone.zoneMobSet != null) {
for (Mob mob : zone.zoneMobSet) { synchronized (zone.zoneMobSet) {
for (Mob mob : zone.zoneMobSet) {
try { try {
if (mob != null) if (mob != null) {
MobAI.DetermineAction(mob); MobAI.DetermineAction(mob);
} catch (Exception e) { }
Logger.error("Mob: " + mob.getName() + " UUID: " + mob.getObjectUUID() + " ERROR: " + e); } catch (Exception e) {
e.printStackTrace(); Logger.error("Error processing Mob [Name: {}, UUID: {}]", mob.getName(), mob.getObjectUUID(), e);
}
}
} }
} }
} }
try {
Thread.sleep(100);
} catch (InterruptedException e) {
Logger.error("AI Thread interrupted", e);
Thread.currentThread().interrupt();
}
} }
} }
public static void startAIThread() { public static void startAIThread() {

2
src/engine/workthreads/BaneThread.java

@ -60,7 +60,7 @@ public class BaneThread implements Runnable {
lastRun = System.currentTimeMillis(); // Update lastRun after processing lastRun = System.currentTimeMillis(); // Update lastRun after processing
}else { }else {
try { try {
Thread.sleep(100); // Pause for 10ms to reduce CPU usage Thread.sleep(100); // Pause for 100ms to reduce CPU usage
} catch (InterruptedException e) { } catch (InterruptedException e) {
Logger.error("Thread interrupted", e); Logger.error("Thread interrupted", e);
Thread.currentThread().interrupt(); Thread.currentThread().interrupt();

Loading…
Cancel
Save