public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write(1); if (m_Timer != null) { writer.Write(m_Timer.Next); } else { writer.Write(DateTime.UtcNow + RestartDelay); } writer.Write(Bedrolls == null ? 0 : Bedrolls.Count); if (Bedrolls != null) { Bedrolls.ForEach(x => writer.Write(x)); } writer.Write(MysteriousTunnels == null ? 0 : MysteriousTunnels.Count); if (MysteriousTunnels != null) { MysteriousTunnels.ForEach(y => writer.Write(y)); } }
public void Cleanup() { if (Bedrolls != null) { Bedrolls.ForEach(f => f.Delete()); Bedrolls.Clear(); } if (MysteriousTunnels != null) { MysteriousTunnels.ForEach(f => f.Delete()); MysteriousTunnels.Clear(); } }
private void CheckRespawn() { Cleanup(); // Bedrolls Spawn foreach (BedrollEntry entry in m_Entries) { WrongBedrollBase item = (WrongBedrollBase)Activator.CreateInstance(entry.Type); item.Movable = false; item.MoveToWorld(entry.Location, Map); Bedrolls.Add(item); } // Mysterious Tunnels Spawn MysteriousTunnel mt; WrongBedrollBase bedroll; int mtrandom; for (int i = 0; i < m_OutsideTunnels.Length; i++) { mt = new MysteriousTunnel(); if (i < 3) { mtrandom = Utility.Random(m_Entries.Length); mt.PointDest = Bedrolls[mtrandom].Location; Bedrolls[mtrandom].PointDest = m_OutsideTunnels[i]; Bedrolls[mtrandom].BedrollSpawner = this; } else { mt.PointDest = m_RoomDestinations[Utility.Random(m_RoomDestinations.Length)]; bedroll = Bedrolls.Where(x => x.InRange(mt.PointDest, 4) && x.PointDest == Point3D.Zero).FirstOrDefault(); if (bedroll != null) { bedroll.PointDest = m_OutsideTunnels[i]; bedroll.BedrollSpawner = this; } } mt.MoveToWorld(m_OutsideTunnels[i], Map); MysteriousTunnels.Add(mt); } }
public void Cleanup() { if (Bedrolls != null) { for (var index = 0; index < Bedrolls.Count; index++) { var f = Bedrolls[index]; f.Delete(); } Bedrolls.Clear(); } if (MysteriousTunnels != null) { for (var index = 0; index < MysteriousTunnels.Count; index++) { var f = MysteriousTunnels[index]; f.Delete(); } MysteriousTunnels.Clear(); } }