コード例 #1
0
        public void Serialize(EB.BitStream bs)
        {
            bs.Serialize(ref _posX);
            bs.Serialize(ref _posZ);
            bs.Serialize(ref _selectedZone);
            bs.Serialize(ref _interactionSetIndex);
            bs.Serialize(ref _layoutName);

            if (bs.isWriting)
            {
                int numTags = Tags.Count;
                bs.Serialize(ref numTags);
                foreach (string tag in Tags)
                {
                    string t = tag;
                    bs.Serialize(ref t);
                }

                int numSpawners = Spawners.Count;
                bs.Serialize(ref numSpawners);
                foreach (SpawnerData spawner in Spawners)
                {
                    spawner.Serialize(bs);
                }

                int numLootables = Lootables.Count;
                bs.Serialize(ref numLootables);
                foreach (LootableData lootable in Lootables)
                {
                    lootable.Serialize(bs);
                }
            }
            else
            {
                int numTags = 0;
                bs.Serialize(ref numTags);
                Tags = new List <string>();
                for (int i = 0; i < numTags; i++)
                {
                    string tag = string.Empty;
                    bs.Serialize(ref tag);
                    Tags.Add(tag);
                }

                int numSpawners = 0;
                bs.Serialize(ref numSpawners);
                Spawners = new List <SpawnerData>();
                for (int i = 0; i < numSpawners; i++)
                {
                    SpawnerData spawner = new SpawnerData();
                    spawner.Serialize(bs);
                    Spawners.Add(spawner);
                }

                int numLootables = 0;
                bs.Serialize(ref numLootables);
                Lootables = new List <LootableData>();
                for (int i = 0; i < numLootables; i++)
                {
                    LootableData lootable = new LootableData();
                    lootable.Serialize(bs);
                    Lootables.Add(lootable);
                }
            }
        }