private static void WriteNonPrimitive(WriterState writer, object val)
        {
            switch (val)
            {
            case IDictionary <string, object> dictAsObj:    // treat IDictionary<string, object> as Object type
                WriteDictionaryAsObject(writer, dictAsObj);
                break;

            case IDictionary _ when GenericWriter.WriteDictionary(writer, val):
                break;

            case IDictionary dictionary:
                WriteDictionary(writer, dictionary);
                break;

            case ICollection _ when GenericWriter.WriteDictionary(writer, val):
                break;

            case ICollection list:
                WriteList(writer, list);
                break;

            case IEnumerable enumerable:
                WriteEnumerable(writer, enumerable);
                break;

            default:
                WriteObject(writer, val);
                break;
            }
        }
        public virtual void Serialize(GenericWriter writer)
        {
            writer.SetVersion(0);

            writer.Write(Item);
            writer.Write(Created);
            writer.WriteDeltaTime(Expire);
            writer.Write(Winner);

            writer.WriteDictionary(
                Rolls,
                (w, k, v) =>
            {
                w.Write(k);

                if (v != null)
                {
                    w.Write(true);
                    v.Value.Serialize(w);
                }
                else
                {
                    w.Write(false);
                }
            });
        }
Esempio n. 3
0
        protected override void Serialize(GenericWriter writer)
        {
            int version = writer.SetVersion(0);

            switch (version)
            {
            case 0:
            {
                writer.WriteDictionary(
                    this,
                    (k, v) =>
                    {
                        writer.Write(k);
                        writer.WriteType(
                            v,
                            t =>
                        {
                            if (t != null)
                            {
                                v.Serialize(writer);
                            }
                        });
                    });
            }
            break;
            }
        }
Esempio n. 4
0
        public override void Serialize(GenericWriter writer)
        {
            base.Serialize(writer);

            var version = writer.SetVersion(0);

            switch (version)
            {
            case 0:
                writer.WriteDictionary(_List, SerializeEntry);
                break;
            }
        }
Esempio n. 5
0
        public override void Serialize(GenericWriter writer)
        {
            base.Serialize(writer);

            writer.SetVersion(0);

            writer.WriteDictionary(
                _Statistics,
                (w, k, v) =>
            {
                w.Write(k);
                w.Write(v);
            });
        }
Esempio n. 6
0
        public void Serialize(GenericWriter writer)
        {
            int version = writer.SetVersion(0);

            switch (version)
            {
            case 0:
            {
                writer.Write(Account);
                writer.Write(Credits);

                writer.WriteDictionary(
                    Transactions,
                    (k, v) =>
                    {
                        if (v == null || v.Account == null || String.IsNullOrWhiteSpace(v.Account.Username))
                        {
                            writer.Write(false);
                        }
                        else
                        {
                            writer.Write(true);
                            v.Serialize(writer);
                        }
                    });

                writer.WriteDictionary(
                    Gifts,
                    (k, v) =>
                    {
                        writer.Write(k);
                        writer.Write(v);
                    });
            }
            break;
            }
        }
Esempio n. 7
0
        public override void Serialize(GenericWriter writer)
        {
            base.Serialize(writer);

            int version = writer.SetVersion(0);

            switch (version)
            {
            case 0:
            {
                writer.Write(Flag);
                writer.Write(FlagPodium);
                writer.Write(Caps);

                writer.Write(FlagRespawnDelay);
                writer.Write(SolidHueOverride);

                writer.WriteDictionary(
                    Attackers,
                    (m, c) =>
                    {
                        writer.Write(m);
                        writer.Write(c);
                    });

                writer.WriteDictionary(
                    Defenders,
                    (m, c) =>
                    {
                        writer.Write(m);
                        writer.Write(c);
                    });
            }
            break;
            }
        }
Esempio n. 8
0
        public override void Serialize(GenericWriter writer)
        {
            _DynamicStock.RemoveRange(o => o.Key.Deleted || o.Value == null || o.Value.Item != o.Key);

            base.Serialize(writer);

            var version = writer.SetVersion(4);

            switch (version)
            {
            case 4:
            {
                writer.WriteDictionary(_DynamicStock, (w, item, info) => info.Serialize(w));
            }
                goto case 3;

            case 3:
            {
                writer.Write(_WasStocked);
                writer.Write(CanRestock);
            }
                goto case 2;

            case 2:
                writer.WriteTextDef(_CashAbbr);
                goto case 1;

            case 1:
                CashProperty.Serialize(writer);
                goto case 0;

            case 0:
            {
                CashType.Serialize(writer);

                writer.WriteTextDef(_CashName);
                writer.Write(_ShowCashName);

                writer.Write(_Trading);

                writer.Write(Discount);
                writer.Write(DiscountEnabled);
                writer.Write(DiscountYell);
            }
            break;
            }
        }
Esempio n. 9
0
        public override void Serialize(GenericWriter writer)
        {
            base.Serialize(writer);

            var version = writer.SetVersion(3);

            switch (version)
            {
            case 3:
                writer.WriteFlag(Level);
                goto case 2;

            case 2:
                writer.Write(RemoveLocked);
                goto case 1;

            case 1:
            {
                writer.Write(EditLocked);
                writer.Write(AddLocked);
                writer.Write(CloneEntryChargeCost);

                writer.WriteDictionary(
                    ChargeTypes,
                    (k, v) =>
                    {
                        writer.WriteType(k);
                        writer.Write(v);
                    });
            }
                goto case 0;

            case 0:
            {
                writer.Write(Charges);
                writer.Write(RecallChargeCost);
                writer.Write(GateChargeCost);
                writer.Write(_Descripton);
                Categories.Serialize(writer);
            }
            break;
            }
        }
Esempio n. 10
0
        public override void Serialize(GenericWriter writer)
        {
            base.Serialize(writer);

            writer.Write(0);
            writer.Write(_Stage);
            writer.Write(_EvolutionPoints);
            writer.Write(NextEvolution);
            writer.Write(MaxStage);
            writer.Write(MaxAbilities);
            writer.Write(CurrentAbilities);

            writer.WriteDictionary(
                Metaskills,
                (t, s) =>
            {
                writer.Write((int)t);

                s.Serialize(writer);
            });
        }
Esempio n. 11
0
		public void Serialize(GenericWriter writer)
		{
			var version = writer.SetVersion(1);

			switch (version)
			{
				case 1:
				case 0:
				{
					writer.Write(Account);
					writer.Write(Credit);

					writer.WriteDictionary(
						Transactions,
						(w, k, v) =>
						{
							if (v == null)
							{
								w.Write(false);
							}
							else
							{
								w.Write(true);

								if (version > 0)
								{
									w.Write(v.ID);
								}
								else
								{
									v.Serialize(w);
								}
							}
						});
				}
					break;
			}
		}
Esempio n. 12
0
        public override void Serialize(GenericWriter writer)
        {
            base.Serialize(writer);

            var version = writer.SetVersion(0);

            writer.Write(Owner);

            switch (version)
            {
            case 0:
            {
                writer.WriteDictionary(
                    Entries,
                    (w, k, v) =>
                    {
                        w.WriteFlag(k);
                        w.Write(v);
                    });
            }
            break;
            }
        }
Esempio n. 13
0
 public void Write(WriterState writer, T val) => GenericWriter.WriteDictionary(writer, val);
Esempio n. 14
0
        public override void Serialize(GenericWriter writer)
        {
            base.Serialize(writer);

            writer.Write(0);
            writer.Write(_Stage);
            writer.Write(_EvolutionPoints);
            writer.Write(NextEvolution);
            writer.Write(MaxStage);
            writer.Write(MaxAbilities);
            writer.Write(CurrentAbilities);

            writer.WriteDictionary(
                Metaskills,
                (t, s) =>
                {
                    writer.Write((int)t);

                    s.Serialize(writer);
                });
        }