示例#1
0
        /// <summary>
        /// Если размер мира 1*1 в зависимости от сида генерим тот или иной тестовый мир, иначе генерим по чсестному
        /// </summary>
        public Surface()
        {
            Ambient = new FColor(1f, 1f, 1f, 0.9f).Multiply(1.0f);

            switch (Constants.WORLD_MAP_SIZE)
            {
                case 1:
                    var r1 = new TestSurfaceGenerator1x1(World.Rnd);
                    m_worldMap = r1.Generate();
                    City = new SuperCity(this, new Point(0, 0));
                    break;
                case 2:
                    var r2 = new TestSurfaceGenerator2x2(World.Rnd);
                    m_worldMap = r2.Generate();
                    City = new SuperCity(this, new Point(0, 0));
                    break;
                default:
                    var worldMapGenerator = new WorldMapGenerator(Constants.WORLD_MAP_SIZE, World.Rnd);
                    m_worldMap = worldMapGenerator.Generate();
                    if (Constants.WORLD_MAP_SIZE > 31)
                    {
                        var cityBlockIds = worldMapGenerator.FindCityPlace((int)Math.Sqrt(Constants.WORLD_MAP_SIZE) / 2).ToArray();
                        foreach (var id in cityBlockIds)
                        {
                            m_worldMap[id.X, id.Y] = EMapBlockTypes.CITY;
                        }

                        City = new SuperCity(this, cityBlockIds.Select(_point => new Point(_point.X - Constants.WORLD_MAP_SIZE / 2, _point.Y - Constants.WORLD_MAP_SIZE / 2)).ToArray());
                    }
                    break;
            }
        }
示例#2
0
        /// <summary>
        /// Если размер мира 1*1 в зависимости от сида генерим тот или иной тестовый мир, иначе генерим по чсестному
        /// </summary>
        public Surface()
        {
            Ambient = new FColor(1f, 1f, 1f, 0.9f).Multiply(1.0f);

            switch (Constants.WORLD_MAP_SIZE)
            {
            case 1:
                var r1 = new TestSurfaceGenerator1x1(World.Rnd);
                m_worldMap = r1.Generate();
                City       = new SuperCity(this, new Point(0, 0));
                break;

            case 2:
                var r2 = new TestSurfaceGenerator2x2(World.Rnd);
                m_worldMap = r2.Generate();
                City       = new SuperCity(this, new Point(0, 0));
                break;

            default:
                var worldMapGenerator = new WorldMapGenerator(Constants.WORLD_MAP_SIZE, World.Rnd);
                m_worldMap = worldMapGenerator.Generate();
                if (Constants.WORLD_MAP_SIZE > 31)
                {
                    var cityBlockIds = worldMapGenerator.FindCityPlace((int)Math.Sqrt(Constants.WORLD_MAP_SIZE) / 2).ToArray();
                    foreach (var id in cityBlockIds)
                    {
                        m_worldMap[id.X, id.Y] = EMapBlockTypes.CITY;
                    }

                    City = new SuperCity(this, cityBlockIds.Select(_point => new Point(_point.X - Constants.WORLD_MAP_SIZE / 2, _point.Y - Constants.WORLD_MAP_SIZE / 2)).ToArray());
                }
                break;
            }
        }