Example #1
0
    //Temp Method
    public void TestBuildDock()
    {
        GameObject obj = (GameObject)Instantiate(dock, new Vector3(0, 0, 0), dock.transform.rotation);

        services.buildService.StartBuildMode(obj);
        curMode = BuildModes.Build;
    }
Example #2
0
    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.F))
        {
            EnterForgeMode();
        }
        else if (Input.GetKeyDown(KeyCode.H))
        {
        }
        else if (Input.GetKeyDown(KeyCode.T))
        {
        }

        if (m_buildMode != BuildModes.NONE)
        {
            Vector3 position = Camera.main.ScreenToWorldPoint(Input.mousePosition);
            m_tmpBuilding.transform.position = new Vector3(Mathf.Round(position.x + 0.5f) - 0.5f, Mathf.Round(position.y + 0.5f) - 0.5f, 0.0f);

            if (Input.GetMouseButtonDown(0))
            {
                switch (m_buildMode)
                {
                case BuildModes.NONE:
                    break;

                case BuildModes.FORGE:
                    GameObject forge = Instantiate(m_forgePrefab);
                    forge.name = "Forge";
                    forge.transform.position = m_tmpBuilding.transform.position;
                    break;

                default:
                    break;
                }

                m_buildMode = BuildModes.NONE;
                Destroy(m_tmpBuilding);
                m_tmpBuilding = null;
            }
            else if (Input.GetMouseButtonDown(1))
            {
                if (Input.GetMouseButtonDown(0))
                {
                    m_buildMode = BuildModes.NONE;
                    Destroy(m_tmpBuilding);
                    m_tmpBuilding = null;
                }
            }
        }
    }
Example #3
0
 private void EnterForgeMode()
 {
     if (m_buildMode == BuildModes.FORGE)
     {
         m_buildMode = BuildModes.NONE;
         Destroy(m_tmpBuilding);
         m_tmpBuilding = null;
     }
     else
     {
         m_buildMode   = BuildModes.FORGE;
         m_tmpBuilding = Instantiate(m_tmpForgePrefab);
     }
 }
Example #4
0
 void Start()
 {
     curMode = BuildModes.Run;
 }
    public void SetMode(int mode)
    {
        BuildModes b = (BuildModes)mode;

        switch (b)
        {
        case BuildModes.None:
            buildMode = false;
            break;

        case BuildModes.RemoveInstalled:
            buildMode = true;
            dragMode  = true;
            build     = (tile) => {
                if (tile.Installed != null)
                {
                    //Spawns a picture to mark deletion
                    MapController.Instance.AddExtraGraphicalElement(tile, ExtraGraphicalElementHolder.Elements[1]);
                    //RemoveInstalled job also removes deletion graphic
                    JobController.Instance.AddJob(1f /*FIXME*/, new Job(tile, JobList.JobFunctions[(int)JobList.Jobs.RemoveInstalled]));
                }
            };
            ChangeObjID(-1);
            break;

        case BuildModes.DeletePlanned:
            buildMode = true;
            dragMode  = true;
            build     = (tile) => {
                if (tile.Planned != null)
                {
                    MapController.Instance.DestroyPlannedObjectGraphic(tile.Planned);
                    JobController.Instance.CancelJob(tile);
                }
            };
            ChangeObjID(-1);
            break;

        case BuildModes.BuildFloor:
            buildMode = true;
            dragMode  = true;
            build     = (tile /*, Material*/) => {
                tile.Type = Tile.TileType.WoodFloor;
            };
            ChangeObjID(-1);

            break;

        case BuildModes.BuildMultiple:
            buildMode = true;
            dragMode  = true;
            build     = (tile /*, Material*/) =>
            {
                if (currentInstalledObjID >= 0)
                {
                    MapController.Instance.CreatePlannedObject(tile, currentInstalledObjID);
                }
            };
            break;

        case BuildModes.BuildSingle:
            buildMode = true;
            dragMode  = false;
            build     = (tile /*, Material*/) =>
            {
                if (currentInstalledObjID >= 0)
                {
                    MapController.Instance.CreatePlannedObject(tile, currentInstalledObjID);
                }
            };
            break;

        case BuildModes.InstallImmediate:
            buildMode = true;
            dragMode  = true;
            build     = (tile) => {
                if (currentInstalledObjID >= 0)
                {
                    MapController.Instance.CreateObject(tile, currentInstalledObjID);
                }
            };
            break;

        default:
            Debug.LogError("Button needs setting!");
            break;
        }
    }