private void CreateMouseHandler(Utils.MouseInputEvents mouseEvent) { KeyValuePair <Vector3, GameObject> info = Utils.ScreenToWorld(); switch (mouseEvent) { case Utils.MouseInputEvents.left_up: if (info.Value != null && info.Value.tag == "tile") { Tile t = info.Value.GetComponent <Tile>(); Section s = t.GetSection(); if (s != null) { PlacePerson(s, t.GetPos()); } } break; case Utils.MouseInputEvents.right_up: if (info.Value != null && info.Value.tag == "person") { people.Remove(info.Value.GetComponent <PersonBehavior>()); //sc.GetSceneInfo().numberOfPeople -= 1; GameObject.Destroy(info.Value); } break; default: break; } }
private void CreateMouseHandler(Utils.MouseInputEvents mouseEvent) { KeyValuePair <Vector3, GameObject> info = Utils.ScreenToWorld(); switch (mouseEvent) { case Utils.MouseInputEvents.left_down: initClickedPos = info.Key; break; case Utils.MouseInputEvents.left_held: if (!sectionsBuilt && Utils.ValidMousePos(initClickedPos)) { initClickedPos = ToMapPos(initClickedPos); HighlightSelectedTiles(); } break; case Utils.MouseInputEvents.left_up: CreateWallsOrDoor(); break; case Utils.MouseInputEvents.right_up: RightUpMouseEvent(info); break; default: break; } }
private void CreateMouseHandler(Utils.MouseInputEvents mouseEvent) { KeyValuePair <Vector3, GameObject> info = Utils.ScreenToWorld(); if (mouseEvent == Utils.MouseInputEvents.left_up && info.Value != null) { if (info.Value.tag == "tile") { Tile t = info.Value.GetComponent <Tile>(); Vector3 newNodePos = new Vector3(t.GetPos().x, this.transform.position.y, t.GetPos().z); InsertNode(t.GetSection(), newNodePos); } else if (info.Value.tag == "node" && startNode != null) { Node finishNode = info.Value.GetComponent <Node>(); Door connectiondoor = startNode.GetData().GetConnection(finishNode.GetData()); if (finishNode != startNode && (startNode.GetData() == finishNode.GetData() || (startNode.GetData() != finishNode.GetData() && connectiondoor != null))) { Edge edge = ContainsEdge(startNode, finishNode); if (edge != null) { DeleteEdge(edge); } else { edge = InsertEdge(null, startNode, finishNode); } } } startNode = null; } else if (mouseEvent == Utils.MouseInputEvents.right_up && info.Value != null) { if (info.Value.tag == "node") { Node removingnode = info.Value.GetComponent <Node>(); int edgeslistlength = removingnode.GetAdjacentEdges().Count; Edge e; for (int i = 0; i < edgeslistlength; i++) { e = removingnode.GetAdjacentEdges()[0]; e.GetOtherNode(removingnode).RemoveAdjacentEdge(e); removingnode.RemoveAdjacentEdge(e); GameObject.Destroy(e.gameObject); } nodes.Remove(removingnode); GameObject.Destroy(info.Value); } else if (info.Value.tag == "edge") { info.Value.GetComponent <Edge>().ClearNodes(); GameObject.Destroy(info.Value); } } }
public void MouseEvent(Utils.MouseInputEvents mouseEvent) { switch (state) { case SubMenuStates.create: CreateMouseHandler(mouseEvent); break; case SubMenuStates.edit: EditMouseHandler(mouseEvent); break; default: break; } }
private void MoveMouseHandler(Utils.MouseInputEvents mouseEvent) { KeyValuePair <Vector3, GameObject> info = Utils.ScreenToWorld(); // Pick up person if (mouseEvent == Utils.MouseInputEvents.left_down) { if (info.Value != null && info.Value.tag == "person") { movingPerson = info.Value.GetComponent <PersonBehavior>(); } } // Move person else if (mouseEvent == Utils.MouseInputEvents.left_held && movingPerson != null) { Vector3 destPos = Utils.ScreenToWorld().Key; if (destPos.x != Mathf.Infinity) { //Vector3 mapPos = sc.GetMap().ToMapPos(destPos); //movingPerson.transform.position = new Vector3(mapPos.x, movingPerson.transform.position.y, mapPos.z); movingPerson.transform.position = new Vector3(destPos.x, movingPerson.transform.position.y, destPos.z); } } // Place person else if (mouseEvent == Utils.MouseInputEvents.left_up && movingPerson != null) { if (info.Key.x != Mathf.Infinity) { Vector3 mapPos = sc.GetMap().ToMapPos(info.Key); Section s = sc.GetMap().IsPosSection(mapPos); if (s != null) { movingPerson.SetInitPos(new Vector3(mapPos.x, movingPerson.transform.position.y, mapPos.z)); movingPerson.SetInitSection(s); } else { movingPerson.transform.position = movingPerson.GetInitPos(); } } else { movingPerson.transform.position = movingPerson.GetInitPos(); } movingPerson = null; } }
private void MoveMouseHandler(Utils.MouseInputEvents mouseEvent) { KeyValuePair <Vector3, GameObject> info = Utils.ScreenToWorld(); if (mouseEvent == Utils.MouseInputEvents.left_held && startNode != null) { Vector3 destPos = Utils.ScreenToWorld().Key; if (destPos.x != Mathf.Infinity) { //Vector3 mapPos = sc.GetMap().ToMapPos(destPos); //startNode.transform.position = new Vector3(mapPos.x, this.transform.position.y, mapPos.z); startNode.transform.position = new Vector3(destPos.x, this.transform.position.y, destPos.z); foreach (Edge e in startNode.GetAdjacentEdges()) { e.PaintEdge(); } } } else if (mouseEvent == Utils.MouseInputEvents.left_up && startNode != null) { if (info.Key.x != Mathf.Infinity) { Vector3 mapPos = sc.GetMap().ToMapPos(info.Key); Section s = sc.GetMap().IsPosSection(mapPos); if (s != null) { startNode.SetPos(new Vector3(mapPos.x, this.transform.position.y, mapPos.z)); startNode.SetData(s); } else { startNode.transform.position = startNode.GetPos(); } } else { startNode.transform.position = startNode.GetPos(); } foreach (Edge e in startNode.GetAdjacentEdges()) { e.PaintEdge(); e.CalculateDistance(); } startNode = null; } }
private void EditMouseHandler(Utils.MouseInputEvents mouseEvent) { KeyValuePair <Vector3, GameObject> info = Utils.ScreenToWorld(); if (info.Value != null) { switch (mouseEvent) { case Utils.MouseInputEvents.left_up: if (info.Value.tag == "person") { sc.EnableEditMenu(info.Value); } break; default: break; } } }
public void MouseEvent(Utils.MouseInputEvents mouseEvent) { KeyValuePair <Vector3, GameObject> info = Utils.ScreenToWorld(); if (mouseEvent == Utils.MouseInputEvents.left_down) { if (info.Value != null && info.Value.tag == "node") { startNode = info.Value.GetComponent <Node>(); } } switch (state) { case SubMenuStates.move: MoveMouseHandler(mouseEvent); break; case SubMenuStates.create: CreateMouseHandler(mouseEvent); break; case SubMenuStates.edit: EditMouseHandler(mouseEvent); break; default: break; } }
private void EditMouseHandler(Utils.MouseInputEvents mouseEvent) { KeyValuePair <Vector3, GameObject> info = Utils.ScreenToWorld(); if (info.Value != null) { switch (mouseEvent) { case Utils.MouseInputEvents.left_up: if (info.Value.tag == "tile" && sectionsBuilt) { sc.EnableEditMenu(info.Value); } else if (info.Value.tag == "door") { Vector3 mappos = ToMapPos(info.Key); sc.EnableEditMenu(tiles[(int)mappos.x][(int)mappos.z].GetDoor().gameObject); } break; default: break; } } }