Ejemplo n.º 1
0
        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();
        }
    }