예제 #1
0
		private static void SerializeChannels(GenericWriter writer)
		{
			writer.SetVersion(0);

			writer.WriteBlockArray(_PermaChannels, (w, c) => c.Serialize(w));

			writer.WriteBlockList(
				_Channels,
				(w, c) => w.WriteType(
					c,
					t =>
					{
						if (t != null)
						{
							c.Serialize(w);
						}
					}));
		}
예제 #2
0
		public override void Serialize(GenericWriter writer)
		{
			base.Serialize(writer);

			int version = writer.SetVersion(1);

			switch (version)
			{
				case 1:
					SpectateGate.Serialize(writer);
					goto case 0;
				case 0:
					{
						writer.Write(Map);
						writer.Write(BattlePriority);
						Eject.Serialize(writer);
						writer.Write(SpectateJoin);
						writer.WriteBlockList(BattleBounds, (w, b) => w.Write(b));
						writer.WriteBlockList(SpectateBounds, (w, b) => w.Write(b));
					}
					break;
			}
		}
예제 #3
0
		public override void Serialize(GenericWriter writer)
		{
			base.Serialize(writer);

			var version = writer.SetVersion(2);

			switch (version)
			{
				case 2:
					writer.Write(NotifyPlayer);
					goto case 1;
				case 1:
				{
					writer.WriteFlag(SearchMode);
					writer.Write(SearchCapsIgnore);
				}
					goto case 0;
				case 0:
				{
					writer.WriteBlockList(WhitespaceAliases, (w, a) => w.Write(a));
					writer.WriteBlockList(KeyWords, (w, k) => w.Write(k));

					writer.Write(LogEnabled);
					writer.Write(ConsoleWrite);

					writer.Write(PageStaff);

					writer.Write(NotifyStaff);
					writer.WriteFlag(NotifyAccess);

					writer.Write(Jail);
					JailPoint.Serialize(writer);

					writer.Write(Squelch);
					writer.Write(Kick);
					writer.Write(Ban);
				}
					break;
			}
		}
예제 #4
0
		public virtual void Serialize(GenericWriter writer)
		{
			int version = writer.SetVersion(7);

			if (version > 5)
			{
				writer.WriteBlock(
					w =>
					{
						if (version > 6)
						{
							Serial.Serialize(w);
						}
						else
						{
							w.WriteType(Serial, t => Serial.Serialize(w));
						}
					});
			}

			switch (version)
			{
				case 7:
				case 6:
				case 5:
					writer.Write(Hidden);
					goto case 4;
				case 4:
					writer.Write(FloorItemDelete);
					goto case 3;
				case 3:
				case 2:
					writer.Write(Gate);
					goto case 1;
				case 1:
					{
						writer.Write(Category);
						writer.Write(Ranked);
						writer.Write(InviteWhileRunning);
					}
					goto case 0;
				case 0:
					{
						if (version < 6)
						{
							writer.WriteBlock(w => w.WriteType(Serial, t => Serial.Serialize(w)));
						}

						writer.Write(DebugMode);
						writer.WriteFlag(State);
						writer.Write(Name);
						writer.Write(Description);
						writer.Write(AutoAssign);
						writer.Write(UseTeamColors);
						writer.Write(IgnoreCapacity);
						writer.Write(SubCommandPrefix);
						writer.Write(QueueAllowed);
						writer.Write(SpectateAllowed);
						writer.Write(KillPoints);
						writer.Write(PointsBase);
						writer.Write(PointsRankFactor);
						writer.Write(IdleKick);
						writer.Write(IdleThreshold);
						writer.WriteFlag(LastState);
						writer.Write(LastStateChange);
						writer.Write(LightLevel);
						writer.Write(LogoutDelay);
						writer.WriteItemList(Doors, true);

						writer.WriteBlock(w => w.WriteType(Options, t => Options.Serialize(w)));
						writer.WriteBlock(w => w.WriteType(Schedule, t => Schedule.Serialize(w)));
						writer.WriteBlock(w => w.WriteType(BattleRegion, t => BattleRegion.Serialize(w)));
						writer.WriteBlock(w => w.WriteType(SpectateRegion, t => SpectateRegion.Serialize(w)));

						writer.WriteBlockList(Teams, (w, team) => w.WriteType(team, t => team.Serialize(w)));
					}
					break;
			}
		}
예제 #5
0
		private static void SerializeReports(GenericWriter writer)
		{
			writer.SetVersion(0);

			writer.WriteBlockList(Reports, (w, r) => r.Serialize(w));
		}
예제 #6
0
		public void Serialize(GenericWriter writer)
		{
			int version = writer.SetVersion(0);

			switch (version)
			{
				case 0:
					{
						writer.Write(Owner);
						writer.Write(Deleted);

						if (!Deleted)
						{
							writer.WriteBlockDictionary(
								History,
								(k, v) =>
								{
									writer.Write(k.Stamp);
									writer.WriteBlockList(v, e => e.Serialize(writer));
								});
						}
					}
					break;
			}
		}
		private static bool SerializeHandlers(GenericWriter writer)
		{
			writer.WriteBlockList(
				new List<BaseTrashHandler>(Handlers.Values),
				obj => writer.WriteType(
					obj,
					t =>
					{
						if (t != null)
						{
							obj.Serialize(writer);
						}
					}));

			return true;
		}