Exemplo n.º 1
0
        public static void Load()
        {
            Persistence.Deserialize(
                _FilePath,
                reader =>
            {
                var version = reader.ReadInt();

                switch (version)
                {
                case 1:
                    {
                        var entries = reader.ReadInt();

                        while (--entries >= 0)
                        {
                            var key = reader.ReadString();

                            var ents = reader.ReadInt();

                            var col = new EntityCollection(ents);

                            IEntity ent;

                            while (--ents >= 0)
                            {
                                ent = World.FindEntity(reader.ReadInt());

                                if (ent != null && !ent.Deleted)
                                {
                                    col.Add(ent);
                                }
                            }

                            _Collections[key] = col;
                        }
                    }
                    break;

                case 0:
                    {
                        var entries = reader.ReadInt();

                        while (--entries >= 0)
                        {
                            var key = reader.ReadString();

                            var items   = reader.ReadStrongItemList();
                            var mobiles = reader.ReadStrongMobileList();

                            var col = new EntityCollection(items.Count + mobiles.Count);

                            col.AddRange(items);
                            col.AddRange(mobiles);

                            _Collections[key] = col;
                        }
                    }
                    break;
                }
            });
        }
Exemplo n.º 2
0
 public static IEntity ReadEntity(this GenericReader reader)
 {
     return(World.FindEntity(reader.ReadInt()));
 }