//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; }
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; } } } }
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); } }
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; } }