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);
        }
Esempio n. 3
0
		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());
 }