public static Building Build(BuildingType buildingType) { #region Check Argument if (buildingType == null) { throw new ArgumentNullException(nameof(buildingType)); } //Todo: Use resources if (!BuildingTypes.Contains(buildingType)) { throw new ArgumentException($"{nameof(buildingType)} have not being registered", nameof(buildingType)); } #endregion Building building = Crate(buildingType); BuildBuildingEvent? .Invoke(typeof(Building), new BuildBuildingEventArgs ( building )); return(building); }
void Update() { //Cut tree if(Input.GetKeyDown(cutTree) && !isPause){ axeController.triggerCut(); } //Place building if(Input.GetKeyDown(placeBuilding)){ BuildBuildingEvent userEvent = new BuildBuildingEvent(); userEvent.execute(); } //Stop place building if(Input.GetKeyDown(stopPlaceBuilding)){ //Destroy the building which the player is placing Destroy(SetBuildingPositionController.instance.building); SetBuildingPositionController.instance.building = null; } //Buildmenu if(Input.GetKeyDown(buildmenu)){ switchToMenu(buildmenuPanel, false, true); if(isMenu){ BuildmenuManager.instance.activeMenu = null; } toggleTimeScale(); } //Pausemenu if(Input.GetKeyDown(pausemenu)){ switchToMenu(pausemenuPanel, false, true); toggleTimeScale(); } //Storemenu if(Input.GetKeyDown(storemenu)){ switchToMenu(storemenuPanel, false, false); } //TerrainEditor if(Input.GetKeyDown(terrainEditor)){ switchToMenu(terrainEditorPanel, false, false); //Activates the TerrainEditor if(currentMenu == terrainEditorPanel) TerrainEditor.instance.activateTerrainEditor(); else TerrainEditor.instance.deactivateTerrainEditor(); } //Selected TerrainHeight up if(Input.GetKeyDown(terrainHeightUp)){ if(TerrainEditor.instance.selectedTerrainHeight < TerrainEditor.instance.maxHeight){ TerrainEditor.instance.editSelectedHeight(1); timer = 0; } } if(Input.GetKey(terrainHeightUp)){ if(TerrainEditor.instance.selectedTerrainHeight < TerrainEditor.instance.maxHeight){ timer += Time.deltaTime; if(timer >= timerTime){ TerrainEditor.instance.editSelectedHeight(1); timer = 0; } } } //Selected TerrainHeight down if(Input.GetKeyDown(terrainHeightDown)){ if(TerrainEditor.instance.selectedTerrainHeight > TerrainEditor.instance.minHeight){ TerrainEditor.instance.editSelectedHeight(-1); timer = 0; } } if(Input.GetKey(terrainHeightDown)){ if(TerrainEditor.instance.selectedTerrainHeight > TerrainEditor.instance.minHeight){ timer += Time.deltaTime; if(timer >= timerTime){ TerrainEditor.instance.editSelectedHeight(-1); timer = 0; } } } //Edit terrain if(Input.GetKey(editTerrain)){ if(TerrainEditor.instance.Terrain != null) TerrainEditor.instance.editTerrain(); } if (Input.GetKeyUp(editTerrain)) { if (TerrainEditor.instance.Terrain != null) TerrainEditor.instance.stopEditing(); } }