Browse Source

Refresh method created.

bugfix-slot-update-2
MagicBot 11 months ago
parent
commit
3cf6bba0f4
  1. 14
      src/engine/gameManager/BuildingManager.java
  2. 2
      src/engine/objects/Building.java

14
src/engine/gameManager/BuildingManager.java

@ -97,6 +97,20 @@ public enum BuildingManager { @@ -97,6 +97,20 @@ public enum BuildingManager {
return buildingLocation;
}
public static void refreshHirelingSlots(Building building) {
// Method updates all hirelings with the slot locations
// for the current mesh. The position and region can change
// such as when upgrading a TOL to R8.
for (AbstractCharacter hireling : building.hirelings.keySet()) {
hireling.setLoc(getSlotLocation(building, building.hirelings.get(hireling)).getLocation());
InterestManager.setObjectDirty(hireling);
}
}
public static boolean playerCanManage(PlayerCharacter player, Building building) {
if (player == null)

2
src/engine/objects/Building.java

@ -51,7 +51,7 @@ public class Building extends AbstractWorldObject { @@ -51,7 +51,7 @@ public class Building extends AbstractWorldObject {
// Used for thread safety
private final ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
public final ConcurrentHashMap<AbstractCharacter, Integer> hirelings = new ConcurrentHashMap<>(MBServerStatics.CHM_INIT_CAP, MBServerStatics.CHM_LOAD, MBServerStatics.CHM_THREAD_LOW);
public ConcurrentHashMap<AbstractCharacter, Integer> hirelings = new ConcurrentHashMap<>(MBServerStatics.CHM_INIT_CAP, MBServerStatics.CHM_LOAD, MBServerStatics.CHM_THREAD_LOW);
private final HashMap<Integer, DoorCloseJob> doorJobs = new HashMap<>();
public int meshUUID;
public Zone parentZone;

Loading…
Cancel
Save