public static void SpawnBraziers(bool despawn = false) { if (!CMOptions.ModuleEnabled) { return; } if (despawn) { DespawnBraziers(); } Locations.ForEach( p => { var b = FindBrazier(p); if (b != null) { if (!b.Deleted) { return; } Registry.Remove(b); } b = new DeceitBrazier(); p.GetItemsInRange(p.Map, 0) .ForEach( i => { if (i != null && !i.Deleted && !i.Movable && i.Visible && i.RootParent == null) { i.Delete(); } }); b.MoveToWorld(p, p.Map); Registry.Add(b, p); }); Registry.Keys.Where(b => (b != null && !b.Deleted && Locations.TrueForAll(p => !p.Equals(b)))) .ToList() .ForEach( b => { b.Delete(); Registry.Remove(b); }); }
private static bool Deserialize(GenericReader reader) { int version = reader.GetVersion(); switch (version) { case 0: { reader.ReadBlockDictionary( () => { DeceitBrazier b = reader.ReadItem <DeceitBrazier>(); Point3D p = reader.ReadPoint3D(); Map m = reader.ReadMap(); return(new KeyValuePair <DeceitBrazier, MapPoint>(b, new MapPoint(m, p))); }, Registry); } break; } return(true); }
public static void SpawnBraziers(bool despawn = false) { if (!CMOptions.ModuleEnabled) { return; } if (despawn) { DespawnBraziers(); } Locations.ForEach( p => { var b = FindBrazier(p); if (b != null) { if (!b.Deleted) { return; } Registry.Remove(b); } b = new DeceitBrazier(); p.GetItemsInRange(p.Map, 0).ForEach( i => { if (i != null && !i.Deleted && !i.Movable && i.Visible && i.RootParent == null) { i.Delete(); } }); b.MoveToWorld(p, p.Map); Registry.Add(b, p); }); Registry.Keys.Where(b => (b != null && !b.Deleted && Locations.TrueForAll(p => !p.Equals(b)))).ToList().ForEach( b => { b.Delete(); Registry.Remove(b); }); }
public static Type GetRandomSpawn(this DeceitBrazier b) { return(Spawns.GetRandom()); }