public Zone(Vector3D point1, Vector3D point2, string owner, string name, byte minimumGroup, Level level, bool skipChecks = false) { ProtectedZone = new Cuboid(point1, point2); Owner = owner; Permission = minimumGroup; Zones.Add(this); Level = level; Name = name; if (skipChecks) { return; } ZoneList zones; if (Level.ExtraData.ContainsKey("zones")) { zones = ZoneList.FromString((string)Level.ExtraData.GetIfExist("zones")); zones.Add(this); } else { zones = GetAllZonesForLevel(Level); } Level.ExtraData["zones"] = zones; }
public static ZoneList GetAllZonesForLevel(Level level) { ZoneList zonelist = null; if (level.ExtraData.ContainsKey("zones")) { zonelist = ZoneList.FromString((string)level.ExtraData.GetIfExist("zones"), level); } if (zonelist != null) { foreach (var zone in zonelist.ToArray()) { if (!Zones.Contains(zone)) { Zones.Add(zone); } } } var zones = new ZoneList(); foreach (var zone in Zones) { if (zone.Level == level) { zones.Add(zone); } } return(zones); }
public void Delete() { ZoneList zones; Zones.Remove(this); if (Level.ExtraData.ContainsKey("zones")) { zones = ZoneList.FromString((string)Level.ExtraData["zones"]); zones.Remove(this); } else { zones = GetAllZonesForLevel(Level); } Level.ExtraData["zones"] = zones; }
public Zone(Vector3D point1, Vector3D point2, Player owner, string name, byte minimumGroup) { ProtectedZone = new Cuboid(point1, point2); Owner = owner.DisplayName; Permission = minimumGroup; Zones.Add(this); Level = owner.Level; Name = name; ZoneList zones; if (Level.ExtraData.ContainsKey("zones")) { zones = ZoneList.FromString((string)Level.ExtraData.GetIfExist("zones")); zones.Add(this); } else { zones = GetAllZonesForLevel(Level); } Level.ExtraData["zones"] = zones; }