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;
        }
    }
Exemple #3
0
    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;
        }
    }
Exemple #6
0
    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;
            }
        }
    }
Exemple #8
0
    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;
            }
        }
    }