Exemplo n.º 1
0
    public void generateScenery()
    {
        Vector2          selected_tile_index;
        GTile            selected_tile;
        TileSubdivisions subdivision;
        GStructure       veg;
        int objs = 1000;

        while (objs > 0)
        {
            selected_tile_index = new Vector2(UnityEngine.Random.Range(0, 50), UnityEngine.Random.Range(0, 50));
            selected_tile       = GameData.GData.getTile(selected_tile_index);
            veg = null;

            int vegType = UnityEngine.Random.Range(0, 100);
            if (vegType >= 0 && vegType < 20)
            {
                veg = getRandomTree();
            }
            if (vegType >= 20 && vegType < 30)
            {
                veg = getRandomSceneryProp();
            }
            if (vegType >= 30 && vegType < 100)
            {
                veg = getRandomBush();
            }


            if (veg != null)
            {
                if (veg.dimensions.size == StructureSizes.Large)
                {
                    if (!selected_tile.containsStructures())
                    {
                        // set position
                        objs--;
                    }
                }
                else if (veg.dimensions.size == StructureSizes.Medium)
                {
                    if (!selected_tile.containsStructures())
                    {
                        veg.setPosition(selected_tile, Vector2.zero);
                        objs--;
                    }
                }
                else if (veg.dimensions.size == StructureSizes.Small)
                {
                    subdivision = GTile.GetRandomSubdivision();
                    if (!selected_tile.containsStructures(subdivision))
                    {
                        veg.setPosition(selected_tile, subdivision);
                        objs--;
                    }
                }
            }
        }
    }