forked from MagicBane/Server
Bugfix: R8 slot locations.
This commit is contained in:
@@ -55,6 +55,26 @@ public enum BuildingManager {
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int getLastAvailableSlot(Building building) {
|
||||||
|
|
||||||
|
ArrayList<BuildingLocation> slotLocations = _slotLocations.get(building.meshUUID);
|
||||||
|
|
||||||
|
// Some meshes might not have slot locations assigned.
|
||||||
|
|
||||||
|
if (slotLocations == null ||
|
||||||
|
slotLocations.isEmpty())
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
int numOfSlots = _slotLocations.get(building.meshUUID).size();
|
||||||
|
|
||||||
|
for (int i = numOfSlots; i > 0; i--) {
|
||||||
|
|
||||||
|
if (!building.getHirelings().containsValue(i))
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
public static BuildingLocation getSlotLocation(Building building, int slot) {
|
public static BuildingLocation getSlotLocation(Building building, int slot) {
|
||||||
|
|
||||||
BuildingLocation buildingLocation = new BuildingLocation();
|
BuildingLocation buildingLocation = new BuildingLocation();
|
||||||
|
|||||||
@@ -793,8 +793,12 @@ public class NPC extends AbstractCharacter {
|
|||||||
|
|
||||||
// Get next available slot for this NPC and use it
|
// Get next available slot for this NPC and use it
|
||||||
// to add the NPC to the building's hireling list
|
// to add the NPC to the building's hireling list
|
||||||
|
// Account for R8's having slots reversed.
|
||||||
|
|
||||||
slot = BuildingManager.getAvailableSlot(building);
|
if (building.getBlueprint() != null && building.getBlueprint().getBuildingGroup().equals(BuildingGroup.TOL) && building.getRank() == 8)
|
||||||
|
slot = BuildingManager.getLastAvailableSlot(building);
|
||||||
|
else
|
||||||
|
slot = BuildingManager.getAvailableSlot(building);
|
||||||
|
|
||||||
if (slot == -1)
|
if (slot == -1)
|
||||||
Logger.error("No available slot for NPC: " + this.getObjectUUID());
|
Logger.error("No available slot for NPC: " + this.getObjectUUID());
|
||||||
|
|||||||
Reference in New Issue
Block a user