|
|
|
@ -44,9 +44,10 @@ public enum ZoneManager {
@@ -44,9 +44,10 @@ public enum ZoneManager {
|
|
|
|
|
private static final ConcurrentHashMap<Integer, Zone> zonesByID = new ConcurrentHashMap<>(MBServerStatics.CHM_INIT_CAP, MBServerStatics.CHM_LOAD); |
|
|
|
|
private static final ConcurrentHashMap<Integer, Zone> zonesByUUID = new ConcurrentHashMap<>(MBServerStatics.CHM_INIT_CAP, MBServerStatics.CHM_LOAD); |
|
|
|
|
private static final ConcurrentHashMap<String, Zone> zonesByName = new ConcurrentHashMap<>(MBServerStatics.CHM_INIT_CAP, MBServerStatics.CHM_LOAD); |
|
|
|
|
private static final Set<Zone> macroZones = Collections.newSetFromMap(new ConcurrentHashMap<>()); |
|
|
|
|
public static final Set<Zone> macroZones = Collections.newSetFromMap(new ConcurrentHashMap<>()); |
|
|
|
|
private static final Set<Zone> npcCityZones = Collections.newSetFromMap(new ConcurrentHashMap<>()); |
|
|
|
|
private static final Set<Zone> playerCityZones = Collections.newSetFromMap(new ConcurrentHashMap<>()); |
|
|
|
|
|
|
|
|
|
// Find all zones coordinates fit into, starting with Sea Floor
|
|
|
|
|
|
|
|
|
|
public static ArrayList<Zone> getAllZonesIn(final Vector3fImmutable loc) { |
|
|
|
@ -108,6 +109,30 @@ public enum ZoneManager {
@@ -108,6 +109,30 @@ public enum ZoneManager {
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Returns the number of available hotZones
|
|
|
|
|
// remaining in this cycle (1am)
|
|
|
|
|
public static int availableHotZones() { |
|
|
|
|
|
|
|
|
|
int count = 0; |
|
|
|
|
|
|
|
|
|
for (Zone zone : ZoneManager.macroZones) |
|
|
|
|
if (zone.hasBeenHotzone) |
|
|
|
|
count = count + 1; |
|
|
|
|
|
|
|
|
|
return count; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Resets the availability of hotZones
|
|
|
|
|
// for this cycle
|
|
|
|
|
|
|
|
|
|
public static void resetHotZones() { |
|
|
|
|
|
|
|
|
|
for (Zone zone : ZoneManager.macroZones) |
|
|
|
|
if (zone.hasBeenHotzone) |
|
|
|
|
zone.hasBeenHotzone = false; |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static Zone getZoneByUUID(final int zoneUUID) { |
|
|
|
|
return ZoneManager.zonesByUUID.get(zoneUUID); |
|
|
|
|
} |
|
|
|
@ -129,7 +154,6 @@ public enum ZoneManager {
@@ -129,7 +154,6 @@ public enum ZoneManager {
|
|
|
|
|
ZoneManager.hotZone = zone; |
|
|
|
|
ZoneManager.hotZoneCycle = 1; // Used with HOTZONE_DURATION from config.
|
|
|
|
|
zone.hasBeenHotzone = true; |
|
|
|
|
zone.becameHotzone = LocalDateTime.now(); |
|
|
|
|
WorldServer.hotZoneLastUpdate = LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant(); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|