mirror of
https://github.com/ProjectSWGCore/NGECore2.git
synced 2026-08-02 03:15:52 -04:00
Added MixedSpawnArea
To save server resources, a mixed spawn area can consist of dynamic groups and lair groups. Also the minimal distance from dynamic group to nearest lair will be kept to prevent lairs and NPCs too close together a bit more.
This commit is contained in:
@@ -418,6 +418,28 @@ public class SpawnService {
|
||||
spawnAreas.get(planet).add(dynamicSpawnArea);
|
||||
core.simulationService.addCollidable(collidableCircle, x, z);
|
||||
}
|
||||
|
||||
public void addMixedSpawnArea(Vector<String> passedGroups, float x, float z, float radius, String planetName) {
|
||||
Vector<SpawnGroup> mixedSpawnGroups = new Vector<SpawnGroup>();
|
||||
for (String template : passedGroups){
|
||||
if (dynamicGroupTemplates.get(template)!=null){
|
||||
mixedSpawnGroups.add(dynamicGroupTemplates.get(template));
|
||||
}
|
||||
if (lairGroupTemplates.get(template)!=null){
|
||||
mixedSpawnGroups.add(lairGroupTemplates.get(template));
|
||||
}
|
||||
if(dynamicGroupTemplates.get(template) == null && lairGroupTemplates.get(template)==null)
|
||||
return;
|
||||
}
|
||||
|
||||
Planet planet = core.terrainService.getPlanetByName(planetName);
|
||||
if(mixedSpawnGroups == null || mixedSpawnGroups.size() == 0 || planet == null)
|
||||
return;
|
||||
CollidableCircle collidableCircle = new CollidableCircle(new Point3D(x, 0, z), radius, planet);
|
||||
MixedSpawnArea dynamicSpawnArea = new MixedSpawnArea(planet, collidableCircle, mixedSpawnGroups);
|
||||
spawnAreas.get(planet).add(dynamicSpawnArea);
|
||||
core.simulationService.addCollidable(collidableCircle, x, z);
|
||||
}
|
||||
|
||||
public Map<String, MobileTemplate> getMobileTemplates() {
|
||||
return mobileTemplates;
|
||||
|
||||
Reference in New Issue
Block a user