Beispiel #1
0
    void Update()
    {
        if (roomLoaded)
        {
            mp = gridInfo.GetGridPos(Camera.main.ScreenToWorldPoint(Input.mousePosition));
            if (roomController.Inbounds(mp))
            {
                highlight.enabled            = true;
                highlight.transform.position = gridInfo.GetGridVector(mp);

                //Commands executed on grid
                if (Input.GetKeyDown(KeyCode.Mouse0) || Input.GetKey(KeyCode.Mouse0) && mp != prevMousePos)
                {
                    loadedRoom.SetValue(mp, Layer.Tex, brush);
                    roomController.SetTex(mp, brush);
                }
                if (Input.GetKeyDown(KeyCode.Mouse1))
                {
                    SetBrush(loadedRoom.GetValue(mp, Layer.Tex));
                }
                if (Input.GetKeyDown(KeyCode.Mouse2))
                {
                    if (loadedRoom.GetValue(mp, Layer.Collision) == 0)
                    {
                        loadedRoom.SetValue(mp, Layer.Collision, 1);
                        roomController.AddBox(mp);
                    }
                    else
                    {
                        loadedRoom.SetValue(mp, Layer.Collision, 0);
                        roomController.RemoveBox(mp);
                    }
                }
            }
            else
            {
                highlight.enabled = false;
            }
        }

        //Other Commands
        if (Input.mouseScrollDelta.y > 0)
        {
            if (brush < roomController.tileSet.TileCount - 1)
            {
                SetBrush((byte)(brush + 1));
            }
            else
            {
                SetBrush(0);
            }
        }
        else if (Input.mouseScrollDelta.y < 0)
        {
            if (brush != 0)
            {
                SetBrush((byte)(brush - 1));
            }
            else
            {
                SetBrush((byte)(roomController.tileSet.TileCount - 1));
            }
        }

        if (Input.GetKeyDown(KeyCode.Alpha1))
        {
            loadedRoom.SetValue(mp, Layer.Other, NOTHING);
        }
        else if (Input.GetKeyDown(KeyCode.Alpha2))
        {
            loadedRoom.SetValue(mp, Layer.Other, FOUNTAIN);
        }
        else if (Input.GetKeyDown(KeyCode.Alpha3))
        {
            loadedRoom.SetValue(mp, Layer.Other, ARMSHROOM);
        }
        else if (Input.GetKeyDown(KeyCode.Alpha4))
        {
            loadedRoom.SetValue(mp, Layer.Other, DOOR);
        }
        else if (Input.GetKeyDown(KeyCode.Alpha5))
        {
            loadedRoom.SetValue(mp, Layer.Other, KEY);
        }
        else if (Input.GetKeyDown(KeyCode.Alpha6))
        {
            loadedRoom.SetValue(mp, Layer.Other, GEBLIN);
        }
        else if (Input.GetKeyDown(KeyCode.Alpha7))
        {
            loadedRoom.SetValue(mp, Layer.Other, NOMOVEU);
        }
        else if (Input.GetKeyDown(KeyCode.Alpha8))
        {
            loadedRoom.SetValue(mp, Layer.Other, NOMOVED);
        }
        else if (Input.GetKeyDown(KeyCode.Alpha9))
        {
            loadedRoom.SetValue(mp, Layer.Other, NOMOVEL);
        }
        else if (Input.GetKeyDown(KeyCode.Alpha0))
        {
            loadedRoom.SetValue(mp, Layer.Other, NOMOVER);
        }

        //Room travel
        if (Input.GetKeyDown(KeyCode.UpArrow))
        {
            Load(loadedRoom.exitNorth);
            UpdateRoom();
        }
        if (Input.GetKeyDown(KeyCode.DownArrow))
        {
            Load(loadedRoom.exitSouth);
            UpdateRoom();
        }
        if (Input.GetKeyDown(KeyCode.LeftArrow))
        {
            Load(loadedRoom.exitWest);
            UpdateRoom();
        }
        if (Input.GetKeyDown(KeyCode.RightArrow))
        {
            Load(loadedRoom.exitEast);
            UpdateRoom();
        }
        //Move Camera
        if (Input.GetKey(KeyCode.W))
        {
            editorCamera.Translate(0f, Time.deltaTime * cameraSpeed, 0f, Space.World);
        }
        if (Input.GetKey(KeyCode.A))
        {
            editorCamera.Translate(Time.deltaTime * -cameraSpeed, 0f, 0f, Space.World);
        }
        if (Input.GetKey(KeyCode.S))
        {
            editorCamera.Translate(0f, Time.deltaTime * -cameraSpeed, 0f, Space.World);
        }
        if (Input.GetKey(KeyCode.D))
        {
            editorCamera.Translate(Time.deltaTime * cameraSpeed, 0f, 0f, Space.World);
        }

        //End of update
        prevMousePos = mp;
    }