private void toPreparation() { Vector3 pointerPosition = worldmapController.pointer.localPosition; GenerationState.get().localGenConfig.location = new IntVector2((int)pointerPosition.x, (int)pointerPosition.y); switchTo(preparationStage); }
public override void generate() { Debug.Log("placing ramps"); localMap = GenerationState.get().localGenContainer.localMap; fillRamps(); fillFloors(); }
private void createTestSettler() { SettlerData settler = new SettlerData(); settler.name = "test settler"; settler.age = 30; GenerationState.get().preparationState.settlers.Add(settler); }
private void createTestItem() { ItemData item = new ItemData() { material = "iron", type = "pickaxe", quantity = 1 }; GenerationState.get().preparationState.items.Add(item); }
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); }
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); }); }
// 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(); }
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(); }
// 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); }
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"); } }
// 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]; }
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(); }
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); }
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"); }
public WorldOceanFiller() { seaLevel = GenerationState.get().worldGenConfig.seaLevel; }
public override void generate() { Debug.Log("generating local items"); map = GenerationState.get().localGenContainer.localMap; spawnItems(GenerationState.get().preparationState.items); }
void OnEnable() { GenerationState.get().generateLocalMap(); // TODO move to generation stage with progress bar }
// public Tilemap tilemap; // public TileBase tile; protected WorldGenerator() { config = GenerationState.get().worldGenConfig; container = GenerationState.get().worldGenContainer; }
public override void generate() { map = GenerationState.get().localGenContainer.localMap; spawnSettlers(GenerationState.get().preparationState.settlers); }
protected LocalGenerator() { container = GenerationState.get().localGenContainer; config = GenerationState.get().localGenConfig; bounds.set(0, 0, config.areaSize - 1, config.areaSize - 1); }