Пример #1
0
        private void toPreparation()
        {
            Vector3 pointerPosition = worldmapController.pointer.localPosition;

            GenerationState.get().localGenConfig.location = new IntVector2((int)pointerPosition.x, (int)pointerPosition.y);
            switchTo(preparationStage);
        }
Пример #2
0
 public override void generate()
 {
     Debug.Log("placing ramps");
     localMap = GenerationState.get().localGenContainer.localMap;
     fillRamps();
     fillFloors();
 }
Пример #3
0
        private void createTestSettler()
        {
            SettlerData settler = new SettlerData();

            settler.name = "test settler";
            settler.age  = 30;
            GenerationState.get().preparationState.settlers.Add(settler);
        }
Пример #4
0
        private void createTestItem()
        {
            ItemData item = new ItemData()
            {
                material = "iron", type = "pickaxe", quantity = 1
            };

            GenerationState.get().preparationState.items.Add(item);
        }
Пример #5
0
        public LocalGenContainer()
        {
            LocalGenConfig config = GenerationState.get().localGenConfig;

            this.world            = GenerationState.get().world;
            heightsMap            = new float[config.areaSize, config.areaSize];
            config.localElevation = (int)(world.worldMap.elevation[config.location.x, config.location.y] * config.localElevation);
            Debug.Log("localGenContainer: area size" + config.areaSize);
            localMap = new LocalMap(config.areaSize, config.areaSize, config.localElevation + config.airLayersAboveGround);
        }
Пример #6
0
        private void spawnItems(List <ItemData> items)
        {
            Vector2Int center = new Vector2Int(map.xSize / 2, map.ySize / 2);

            items.ForEach(item => {
                Vector3Int spawnPoint = getSpawnPosition(center, 5);
                EcsEntity entity      = GenerationState.get().ecsWorld.NewEntity();
                generator.generateItem(item, spawnPoint, entity);
            });
        }
Пример #7
0
        // invoked several times
        public void createWorld()
        {
            int seed = Convert.ToInt32(seedField.text);
            int size = (int)sizeSlider.value * 100;

            GenerationState.get().worldGenConfig.seed = seed;
            GenerationState.get().worldGenConfig.size = size;
            GenerationState.get().generateWorld();
            worldmapController.drawWorld(GenerationState.get().world.worldMap);
            continueButton.gameObject.SetActive(true);
        }
 // preparation to game model
 private void startGame()
 {
     for (int i = 0; i < 1; i++)
     {
         SettlerData settler = new SettlerData();
         settler.name = "qwer" + i;
         settler.age  = 30;
         GenerationState.get().preparationState.settlers.Add(settler);
     }
     switchTo(localGenStage);
 }
 public override void generate()
 {
     container     = GenerationState.get().localGenContainer;
     currentHeight = new int[config.areaSize, config.areaSize];
     bounds.iterate((x, y) => currentHeight[x, y] = (int)container.heightsMap[x, y]);
     countAverageElevation();
     generateLayers();
     layers.ForEach(layer => {
         fillLayer(layer);
     });
     finalizeBottom();
 }
Пример #10
0
        private void spawnSettlers(List <SettlerData> settlers)
        {
            Vector2Int center = new Vector2Int(map.xSize / 2, map.ySize / 2);

            settlers.ForEach(settler => {
                Vector3Int spawnPoint = getSpawnPosition(center, 5);
                EcsEntity entity      = GenerationState.get().ecsWorld.NewEntity();
                unitGenerator.generateUnit(settler);
                entity.Get <PositionComponent>().position = spawnPoint;
                // Debug.Log("unit spawned at " + spawnPoint);
                // Debug.Log(entity.Get<MovementComponent>().position);
            });
        }
        // TODO take in account elevation of surrounding tiles
        public override void generate()
        {
            Debug.Log("generating elevation");
            LocalGenConfig config = GenerationState.get().localGenConfig;

            container = GenerationState.get().localGenContainer;
            IntVector2 location = config.location;

            bounds.set(0, 0, config.areaSize - 1, config.areaSize - 1);
            // GenerationState.get().world.worldMap.biome;
            createElevation();
            modifyElevation(8, 20);
            logElevation();
        }
Пример #12
0
 // gets world either from worldgen/localgen, savefile, or creates test one
 private void resolveWorld()
 {
     if (!GenerationState.get().ready)
     {
         if (true)
         {
             createTestLocalMap();
         }
         else
         {
             // TODO load save game
         }
     }
     GameModel.get().setWorld(GenerationState.get().world, GenerationState.get().ecsWorld);
 }
Пример #13
0
        void Update()
        {
            LocalGenSequence sequence = GenerationState.get().localGenSequence;

            if (sequence == null)
            {
                return;
            }
            float progress = sequence.progress / sequence.maxProgress;

            slider.SetValueWithoutNotify(progress);
            text.text = sequence.currentMessage;
            if (progress == 1)
            {
                SceneManager.LoadScene("LocalWorldScene");
            }
        }
Пример #14
0
        // public Random random;

        public WorldGenContainer()
        {
            WorldGenConfig config = GenerationState.get().worldGenConfig;

            this.size = config.size;
            Random.InitState(config.seed);
            elevation         = new float[size, size];
            drainage          = new float[size, size];
            summerTemperature = new float[size, size];
            winterTemperature = new float[size, size];
            rainfall          = new float[size, size];
            biome             = new int[size, size];

            rivers = new IntVector2[size, size];
            brooks = new IntVector2[size, size];
            debug  = new IntVector2[size, size];
        }
Пример #15
0
        private void createTestLocalMap()
        {
            LocalMap localmap = GameModel.localMap;

            if (localmap != null)
            {
                return;
            }
            GenerationState state = GenerationState.get();

            state.worldGenConfig.size = 10;
            state.generateWorld();
            createTestSettler();
            createTestItem();
            state.localGenConfig.location = new IntVector2(5, 5);
            state.generateLocalMap();
        }
Пример #16
0
        public override void generate()
        {
            WorldMap map        = GenerationState.get().world.worldMap;
            float    oceanCount = 0;
            int      size       = GenerationState.get().worldGenConfig.size;

            for (int x = 0; x < size; x++)
            {
                for (int y = 0; y < size; y++)
                {
                    if (map.elevation[x, y] < seaLevel)
                    {
                        oceanCount++;
                    }
                }
            }
            Debug.Log("sea tiles:" + oceanCount);
        }
Пример #17
0
        public void init(LocalGameRunner initializer)
        {
            Debug.Log("initializing view");
            mapHolder = initializer.mapHolder;
            selector  = initializer.selector;
            keyInputSystem.windowManager.addWindow(initializer.jobsWindow, KeyCode.J);
            keyInputSystem.widgetManager.addWidget(initializer.menuWidget);
            keyInputSystem.widgetManager.addWidget(initializer.toolbarWidget);

            initEcs(GenerationState.get().ecsWorld);
            tileUpdater           = new LocalMapTileUpdater(initializer.mapHolder);
            cameraAndMouseHandler = new CameraAndMouseHandler(initializer);
            cameraAndMouseHandler.init();
            zRange.set(0, GameModel.localMap.zSize - 1);
            resetCameraPosition();
            tileUpdater.flush();
            Debug.Log("view initialized");
        }
Пример #18
0
 public WorldOceanFiller()
 {
     seaLevel = GenerationState.get().worldGenConfig.seaLevel;
 }
Пример #19
0
 public override void generate()
 {
     Debug.Log("generating local items");
     map = GenerationState.get().localGenContainer.localMap;
     spawnItems(GenerationState.get().preparationState.items);
 }
Пример #20
0
 void OnEnable()
 {
     GenerationState.get().generateLocalMap(); // TODO move to generation stage with progress bar
 }
Пример #21
0
        // public Tilemap tilemap;
        // public TileBase tile;

        protected WorldGenerator()
        {
            config    = GenerationState.get().worldGenConfig;
            container = GenerationState.get().worldGenContainer;
        }
Пример #22
0
 public override void generate()
 {
     map = GenerationState.get().localGenContainer.localMap;
     spawnSettlers(GenerationState.get().preparationState.settlers);
 }
Пример #23
0
 protected LocalGenerator()
 {
     container = GenerationState.get().localGenContainer;
     config    = GenerationState.get().localGenConfig;
     bounds.set(0, 0, config.areaSize - 1, config.areaSize - 1);
 }