Beispiel #1
0
        public Terrain(List <GameObject> objects, ResourceHolder resources, Wind wind)
        {
            trees     = new List <Tree>();
            houses    = new List <House>();
            lakes     = new List <Lake>();
            rocks     = new List <Rock>();
            this.wind = wind;

            foreach (GameObject item in objects)
            {
                // Создаем деревья
                if (item.name == "tree")
                {
                    Tree tree = new Tree(Textures.ID.Tree, resources);
                    tree.Position = new Vector2f(item.rect.Left + Utilities.GetInstance().TILE_SIZE / 2, item.rect.Top - Utilities.GetInstance().TILE_SIZE / 2);
                    if (item.GetPropertyBool("burns"))
                    {
                        // TODO: Такое себе место (чтобы подожглось, нужно сделать так)
                        tree.state.currentTimeToSpread = TreeState.timeToSpread;
                        tree.Fire(1);
                    }
                    tree.SetHitpoints(item.GetPropertyInt("hitpoints"));
                    trees.Add(tree);
                }

                // Создаем дома
                if (item.name == "house")
                {
                    House house = new House(Textures.ID.House, resources);
                    house.Position = new Vector2f(item.rect.Left + Utilities.GetInstance().TILE_SIZE / 2, item.rect.Top - Utilities.GetInstance().TILE_SIZE / 2);
                    if (item.GetPropertyBool("burns"))
                    {
                        // TODO: Такое себе место (чтобы подожглось, нужно сделать так)
                        house.state.currentTimeToSpread = house.state.timeToSpread;
                        house.Fire(1);
                    }
                    house.SetHitpoints(item.GetPropertyInt("hitpoints"));
                    houses.Add(house);
                }

                // Создаем озера
                if (item.name == "lake")
                {
                    Lake lake = new Lake(Textures.ID.Lake, resources);
                    lake.Position = new Vector2f(item.rect.Left + Utilities.GetInstance().TILE_SIZE / 2, item.rect.Top - Utilities.GetInstance().TILE_SIZE / 2);
                    lakes.Add(lake);
                }

                // Создаем скалы
                if (item.name == "rock")
                {
                    Rock rock = new Rock(Textures.ID.Rock, resources);
                    rock.Position = new Vector2f(item.rect.Left + Utilities.GetInstance().TILE_SIZE / 2, item.rect.Top - Utilities.GetInstance().TILE_SIZE / 2);
                    rocks.Add(rock);
                }
            }
        }
Beispiel #2
0
 public void SetLake(int index, Lake lake)
 {
     lakes[index] = lake;
 }