예제 #1
0
 public void Add(ObjectPool objectPool)
 {
     foreach (ObjectClass objClass in objectPool.ObjectClasses.Values) {
         _registry[objClass.Id] = objectPool;
         _objectRegistry[objClass.Id] = objClass;
     }
 }
예제 #2
0
 public ObjectInstance(ObjectPool objectPool, int id, int x, int y)
 {
     _objectPool = objectPool;
     Id = id;
     X = x;
     Y = y;
 }
예제 #3
0
파일: Level.cs 프로젝트: Elof3/Treefrog
        internal Level(ContentReader reader)
            : this()
        {
            string levelName = reader.ReadString();

            int originX = reader.ReadInt32();
            int originY = reader.ReadInt32();
            Width = reader.ReadInt32();
            Height = reader.ReadInt32();

            Properties = new PropertyCollection(reader);

            int tilesetCount = reader.ReadInt32();
            for (int i = 0; i < tilesetCount; i++) {
                TileSet tileset = new TileSet(reader);
                _tileRegistry.Add(tileset);
            }

            int objectPoolCount = reader.ReadInt32();
            for (int i = 0; i < objectPoolCount; i++) {
                //string asset = reader.ReadString();
                //ObjectPool pool = reader.ContentManager.Load<ObjectPool>(asset);
                ObjectPool pool = new ObjectPool(reader);
                _objectRegistry.Add(pool);
            }

            int layerCount = reader.ReadInt32();
            for (int i = 0; i < layerCount; i++) {
                string type = reader.ReadString();

                switch (type) {
                    case "TILE":
                        _layers.Add(new TileLayer(reader, _tileRegistry));
                        break;
                    case "OBJE":
                        _layers.Add(new ObjectLayer(reader, _objectRegistry));
                        break;
                }
            }
        }
예제 #4
0
 public ObjectClass(ObjectPool pool, int id, string name)
 {
     _objectPool = pool;
     Id = id;
     Name = name;
 }