Beispiel #1
0
 protected override void HandleInput()
 {
     base.HandleInput();
     if (!pauseMenuUp)
     {
         if (Input.GetMouseButtonDown(1))
         {
             RaycastHit hit;
             if (Physics.Raycast(transform.GetChild(0).position, transform.GetChild(0).forward, out hit, 100))
             {
                 EditTerrain.SetBlock(hit, new BlockAir());
             }
         }
         else if (Input.GetMouseButtonDown(0))
         {
             RaycastHit hit;
             if (Physics.Raycast(transform.GetChild(0).position, transform.GetChild(0).forward, out hit, 100))
             {
                 EditTerrain.SetBlock(hit, new BlockDirt(), true);
             }
         }
     }
     transform.position += transform.forward * 3 * Input.GetAxis("Vertical");
     transform.position += transform.right * 3 * Input.GetAxis("Horizontal");
     transform.position += transform.up * 3 * Input.GetAxis("UpDown");
 }
Beispiel #2
0
    void Update()
    {
        if (lazer)
        {
            if (Input.GetKey("q"))
            {
                RaycastHit hit;
                if (Physics.Raycast(transform.position, transform.forward, out hit, 100))
                {
                    EditTerrain.SetBlock(hit, new BlockAir());
                }
            }
        }
        else
        {
            if (Input.GetKeyDown(KeyCode.Q))
            {
                RaycastHit hit;
                if (Physics.Raycast(transform.position, transform.forward, out hit, 100))
                {
                    EditTerrain.SetBlock(hit, new BlockAir());
                }
            }
        }

        rot = new Vector2(
            rot.x + Input.GetAxis("Mouse X") * 3,
            rot.y + Input.GetAxis("Mouse Y") * 3);

        transform.localRotation  = Quaternion.AngleAxis(rot.x, Vector3.up);
        transform.localRotation *= Quaternion.AngleAxis(rot.y, Vector3.left);

        /*transform.position += transform.forward * 3 * Input.GetAxis("Vertical");
        *  transform.position += transform.right * 3 * Input.GetAxis("Horizontal");*/
    }
Beispiel #3
0
    void Mine()
    {
        if (anim)
        {
            anim.SetTrigger("Mine");
        }
        // anim.Play("Mining");
        RaycastHit hit;

        //if (Physics.Raycast(transform.position, transform.forward, out hit, 100))
        if (Physics.Raycast(myCam.transform.position, myCam.transform.forward, out hit, 5))
        {
            Vector3 pos   = new Vector3(EditTerrain.GetBlockPos(hit).x, EditTerrain.GetBlockPos(hit).y, EditTerrain.GetBlockPos(hit).z);
            Block   block = EditTerrain.GetBlock(hit);
            EditTerrain.SetBlock(hit, new BlockAir(), false, true);
            if (block is BlockGrass)
            {
                Instantiate(item_grass, pos, Quaternion.identity);
            }
            else if (block is BlockSand)
            {
                Instantiate(item_sand, pos, Quaternion.identity);
            }
            else if (block is BlockWood)
            {
                Instantiate(item_wood, pos, Quaternion.identity);
            }
        }
    }
    /// <summary>
    /// Handles the mouse input for the player
    /// </summary>
    void HandleMouseInput()
    {
        // if the cursor is not locked, just return
        if (Cursor.lockState == CursorLockMode.None)
        {
            return;
        }

        float xMovement = Input.GetAxisRaw("Mouse X") * sensitivity;
        float yMovement = Input.GetAxisRaw("Mouse Y") * sensitivity;

        // apply the x-movement (rotation around y-axis) to the rigidbody
        transform.Rotate(Vector3.up * xMovement);
        // apply the y-movement (rotation around the x-axis) to the camera)
        transform.GetChild(0).transform.Rotate(Vector3.right * -yMovement);

        // handle any click event
        if (Input.GetMouseButtonDown(0))
        {
            RaycastHit raycastHit;
            Transform  camera = transform.GetChild(0).transform;
            if (Physics.Raycast(camera.position, camera.forward, out raycastHit, 100))
            {
                Vector3 blockPos = EditTerrain.GetBlockPos(raycastHit);
                EditTerrain.SetBlock(raycastHit, new AirBlock(blockPos));
            }
        }
    }
Beispiel #5
0
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.LeftControl))
        {
            RaycastHit hit;
            if (Physics.Raycast(transform.position, transform.forward, out hit, 100))
            {
                if (World.singleton.isClient)
                {
                    NetworkBlocksClient.SetBlock(hit, new BlockAir());
                }
                else
                {
                    EditTerrain.SetBlock(hit, new BlockAir());
                }
            }
        }

        rot = new Vector2(
            rot.x + Input.GetAxis("Mouse X") * 2,
            rot.y + Input.GetAxis("Mouse Y") * 2);

        transform.localRotation  = Quaternion.AngleAxis(rot.x, Vector3.up);
        transform.localRotation *= Quaternion.AngleAxis(rot.y, Vector3.left);

        transform.position += transform.forward * 2 * Input.GetAxis("Vertical");
        transform.position += transform.right * 2 * Input.GetAxis("Horizontal");
    }
Beispiel #6
0
 void Update()
 {
     ray = cam.ScreenPointToRay(Input.mousePosition);
     if (Input.GetMouseButton(0))
     {
         RaycastHit hit;
         if (Physics.Raycast(ray, out hit, 100))
         {
             EditTerrain.SetBlock(hit, new BlockAir());
         }
     }
 }
    void Update()
    {
        if (!isLaser) //1 click
        {
            if (Input.GetKeyDown(KeyCode.Mouse0))
            {
                RaycastHit hit;
                if (Physics.Raycast(transform.position, transform.forward, out hit, 100))
                {
                    EditTerrain.SetBlock(hit, new BlockAir());
                }
            }
        }
        else //laser
        {
            if (Input.GetKey(KeyCode.Mouse0))
            {
                RaycastHit hit;
                if (Physics.Raycast(transform.position, transform.forward, out hit, 100))
                {
                    EditTerrain.SetBlock(hit, new BlockAir());
                }
            }
        }

        if (Input.GetKeyDown(KeyCode.Mouse1))
        {
            RaycastHit hit;
            if (Physics.Raycast(transform.position, transform.forward, out hit, 100))
            {
                EditTerrain.SetBlock(hit, DefineSelectedBlock(selectedBlockName), true);
            }
        }
        if (Input.GetKeyDown(KeyCode.R))
        {
            SceneManager.LoadScene(0);
        }
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            Application.Quit();
        }

        /*rot = new Vector2(
         *  rot.x + Input.GetAxis("Mouse X") * 3,
         *  rot.y + Input.GetAxis("Mouse Y") * 3);
         *
         * transform.localRotation = Quaternion.AngleAxis(rot.x, Vector3.up);
         * transform.localRotation *= Quaternion.AngleAxis(rot.y, Vector3.left);
         *
         * transform.position += transform.forward * 3 * Input.GetAxis("Vertical");
         * transform.position += transform.right * 3 * Input.GetAxis("Horizontal");*/
    }
Beispiel #8
0
 //Function which allows player to collect ammo
 void CollectBricks()
 {
     //If ray from camera hits block then collect it
     ray = cam.ScreenPointToRay(Input.mousePosition);
     if (Input.GetMouseButtonDown(1))
     {
         RaycastHit hit;
         if (Physics.Raycast(ray, out hit, 100))
         {
             EditTerrain.SetBlock(hit, new BlockAir());
             Inventory.ammo += 1;
         }
     }
 }
Beispiel #9
0
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            RaycastHit hit;
            if (Physics.Raycast(playerCamera.transform.position, playerCamera.transform.forward, out hit, interactionDistance))
            {
                EditTerrain.SetBlock(hit, new Block_Air());
            }
        }

        if (Input.GetMouseButtonDown(1))
        {
            RaycastHit hit;
            if (Physics.Raycast(playerCamera.transform.position, playerCamera.transform.forward, out hit, interactionDistance))
            {
                EditTerrain.SetBlock(hit, new Block_Stone(), true);
            }
        }
    }
Beispiel #10
0
 protected override void HandleInput()
 {
     base.HandleInput();
     if (!pauseMenuUp)
     {
         if (Input.GetMouseButtonDown(1))
         {
             RaycastHit hit;
             if (Physics.Raycast(transform.GetChild(0).position, transform.GetChild(0).forward, out hit, 100))
             {
                 EditTerrain.SetBlock(hit, new BlockAir());
             }
         }
         else if (Input.GetMouseButtonDown(0))
         {
             RaycastHit hit;
             if (Physics.Raycast(transform.GetChild(0).position, transform.GetChild(0).forward, out hit, 100))
             {
                 EditTerrain.SetBlock(hit, new BlockDirt(), true);
             }
         }
     }
 }
Beispiel #11
0
    // Update is called once per frame
    void Update()
    {
        if (Time.timeScale == 1 && !CharacterEvent.armed && CharacterEvent.unsheatle)
        {
            if (Input.GetMouseButtonDown(0))
            {
                Ray        ray = GetComponent <Camera> ().ViewportPointToRay(new Vector3(0.5f, 0.5f, 0.5f));
                RaycastHit hit;
                if (Physics.Raycast(ray, out hit, 100))
                {
                    EditTerrain.SetBlock(hit, new BlockAir());
                }
            }

            if (Input.GetMouseButtonDown(1))
            {
                Ray        ray = GetComponent <Camera> ().ViewportPointToRay(new Vector3(0.5f, 0.5f, 0.5f));
                RaycastHit hit;
                if (Physics.Raycast(ray, out hit, 100))
                {
                    EditTerrain.SetBlock(hit, block, true);
                }
            }
        }

        /*if (!recuperateTown && Input.GetButtonDown ("R")) {
         *      recuperateTown = true;
         *      RecuperateTown rec = new RecuperateTown ();
         *      rec.LoadTown ();
         *      recuperateTown = false;
         * }*/

        if (!CharacterEvent.armed)
        {
            scrollPosition = (scrollPosition - Mathf.CeilToInt(Input.mouseScrollDelta [1])) % 10;
        }

        if (scrollPosition < 0)
        {
            scrollPosition = 9;
        }

        switch (scrollPosition)
        {
        case 0:
            block = new Block();
            cube.sharedMaterial = stone;
            break;

        case 2:
            block = new BlockDirt();
            cube.sharedMaterial = dirt;
            break;

        case 1:
            block = new BlockGrass();
            cube.sharedMaterial = grass;
            break;

        case 3:
            block = new BlockWood();
            cube.sharedMaterial = wood;
            break;

        case 4:
            block = new BlockLeaves();
            cube.sharedMaterial = leaves;
            break;

        case 5:
            block = new BlockWater();
            cube.sharedMaterial = water;
            break;

        case 6:
            block = new BlockWoodPlanks();
            cube.sharedMaterial = woodPlanks;
            break;

        case 7:
            block = new BlockStoneBricks();
            cube.sharedMaterial = stoneBricks;
            break;

        case 8:
            block = new BlockGlass();
            cube.sharedMaterial = glass;
            break;

        case 9:
            block = new BlockTile();
            cube.sharedMaterial = tiles;
            break;
        }
    }
    // Update is called once per frame
    void FixedUpdate()
    {
        timer += Time.deltaTime;
        //  if (Input.GetMouseButtonDown(0))
        // if(leapFinger != null && leapFinger.Pinch && throwBlock == null)
        //if(pinch && throwBlock == null)
        if (pinch && timer > pinchTimer)
        {
            //   RaycastHit hit = leapFinger.GetRaycast();
            // RaycastHit hit;
            //Vector3 fwd = transform.TransformDirection(Vector3.forward);
            //  if (Physics.Raycast(transform.position, fwd, out hit, destroyDist) && timer > 0.1)
            //   {
            if (hit.collider.name.Contains("Chunk"))
            {
                timer = 0;
                Block  block     = EditTerrain.GetBlock(hit);
                string blockName = block.ToString();
                if (blockName != "Air Block")
                {
                    //Debug.Log(block.ToString());
                    string firstWord = blockName.IndexOf(" ") > -1
                        ? blockName.Substring(0, blockName.IndexOf(" "))
                        : blockName;
                    if (firstWord == "Stock")
                    {
                        Debug.Log(blockName);

                        blockName = blockName.Substring(blockName.IndexOf(" ") + 1);
                        string companyName = blockName.Substring(0, blockName.IndexOf(" "));
                        Debug.Log(companyName);
                        if (!block.selling)
                        {
                            if (!inventory.AddToInventory(companyName))
                            {
                                return;
                            }
                        }
                        else
                        {
                            inventory.RemoveFromInventory(companyName);
                        }
                    }
                    else
                    {
                        return;
                    }
                    //create block to hold
                    //        throwBlock = (GameObject)Instantiate(Resources.Load(blockName), transform.position + transform.forward * 2 + transform.up * 0.5f, Quaternion.identity);
                    //        particles.SetActive(true);
                    //float gravityMultiplier = GameObject.Find("Player").GetComponent<FirstPersonController>().m_GravityMultiplier;
                    //  throwBlock.GetComponent<PrefabBlockPhysics>().gravityMultiplier = gravityMultiplier;
                    //  if (gravityMultiplier < 0)
                    //   {
                    //      throwBlock.GetComponent<PrefabBlockTexture>().upsideDown = true;
                    //  }

                    //delete block
                    EditTerrain.SetBlock(hit, new BlockAir());
                }
            }
            //    else if (hit.collider.name.Contains("Block"))
            //    {

            //     throwBlock = (GameObject)Instantiate(hit.collider.gameObject, transform.position + transform.forward * 2, Quaternion.identity);
            //     throwBlock.GetComponent<PrefabBlockPhysics>().Reset();

            //        if (hit.collider.gameObject.GetComponent<PrefabBlockPhysics>().gravityMultiplier < 0)
            //        {
            //           throwBlock.GetComponent<PrefabBlockTexture>().upsideDown = true;
            //        }
            //       Destroy(hit.collider.gameObject);
            //    }


            //// }
        }
        //   if (throwBlock != null && !throwBlock.GetComponent<PrefabBlockPhysics>().thrown)
        //   {
        //       throwBlock.transform.position = Vector3.MoveTowards(throwBlock.transform.position, transform.position + transform.forward * 2f + transform.up * 0.5f, 10 * Time.deltaTime);
        //       particles.transform.position = throwBlock.transform.position;
        //    }
        //if (Input.GetMouseButtonDown(1))
        //  if(pinch == false)
        //  {
        //   if (throwBlock != null && !throwBlock.GetComponent<PrefabBlockPhysics>().thrown)
        //   {
        //       throwBlock.GetComponent<PrefabBlockPhysics>().thrown = true;
        //        Rigidbody rb = throwBlock.GetComponent<Rigidbody>();
        //       if (rb != null)
        //       {
        // rb.useGravity = true;
        //             rb.isKinematic = false;
        //            rb.AddForce(transform.forward * 1000 + transform.up * 500);
        //              particles.SetActive(false);
        //         }
        //          throwBlock = null;
        //      }

        // }
        //moving controls

        /*
         *
         * rot = new Vector2(rot.x + Input.GetAxis("Mouse X") * speed, rot.y + Input.GetAxis("Mouse Y") * speed);
         *
         * transform.localRotation = Quaternion.AngleAxis(rot.x, Vector3.up);
         * transform.localRotation *= Quaternion.AngleAxis(rot.y, Vector3.left);
         *
         * transform.position += transform.forward * speed * Input.GetAxis("Vertical");
         * transform.position += transform.right * speed * Input.GetAxis("Horizontal");
         * */
    }
Beispiel #13
0
    void Update()
    {
        rotationX += Input.GetAxis("Mouse X") * cameraSensitivity * Time.deltaTime;
        rotationY += Input.GetAxis("Mouse Y") * cameraSensitivity * Time.deltaTime;
        rotationY  = Mathf.Clamp(rotationY, -90, 90);

        transform.localRotation  = Quaternion.AngleAxis(rotationX, Vector3.up);
        transform.localRotation *= Quaternion.AngleAxis(rotationY, Vector3.left);

        if (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift))
        {
            transform.position += transform.forward * (normalMoveSpeed * fastMoveFactor) * Input.GetAxis("Vertical") * Time.deltaTime;
            transform.position += transform.right * (normalMoveSpeed * fastMoveFactor) * Input.GetAxis("Horizontal") * Time.deltaTime;
        }
        else if (Input.GetKey(KeyCode.LeftControl) || Input.GetKey(KeyCode.RightControl))
        {
            transform.position += transform.forward * (normalMoveSpeed * slowMoveFactor) * Input.GetAxis("Vertical") * Time.deltaTime;
            transform.position += transform.right * (normalMoveSpeed * slowMoveFactor) * Input.GetAxis("Horizontal") * Time.deltaTime;
        }
        else
        {
            transform.position += transform.forward * normalMoveSpeed * Input.GetAxis("Vertical") * Time.deltaTime;
            transform.position += transform.right * normalMoveSpeed * Input.GetAxis("Horizontal") * Time.deltaTime;
        }


        if (Input.GetKey(KeyCode.Q))
        {
            transform.position += transform.up * climbSpeed * Time.deltaTime;
        }
        if (Input.GetKey(KeyCode.E))
        {
            transform.position -= transform.up * climbSpeed * Time.deltaTime;
        }

        if (Input.GetMouseButtonDown(0))
        {
            RaycastHit hit;
            if (Physics.Raycast(transform.position, transform.forward, out hit, 100))
            {
                EditTerrain.SetBlock(hit, new BlockAir());
            }
        }

        if (Input.GetMouseButtonDown(1))
        {
            RaycastHit hit;
            if (Physics.Raycast(transform.position, transform.forward, out hit, 100))
            {
                EditTerrain.SetBlock(hit, new BlockGrass(), true);
            }
        }

        if (Input.GetMouseButtonDown(2))
        {
            RaycastHit hitInfo;
            Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);

            if (Physics.Raycast(ray, out hitInfo))
            {
                int   x      = Mathf.CeilToInt(hitInfo.point.x);
                int   y      = Mathf.CeilToInt(hitInfo.point.y);
                int   z      = Mathf.CeilToInt(hitInfo.point.z);
                Block bl     = world.GetBlock(x, y, z);
                Block downBl = world.GetBlock(x, y - 1, z);

                //Check to see if we got a water block                                                                          ///---
                if (bl.GetType() == typeof(BlockAir) && downBl.GetType() != typeof(BlockWater))
                {
                    //set the new water block
                    world.SetBlock(x, y, z, new BlockWater());
                    //get the block we just placed
                    BlockWater newBlock = world.GetBlock(x, y, z) as BlockWater;
                    newBlock.SetWorld(world, x, y, z);
                    //and add it to register for update
                    newBlock.RegisterForUpdate();
                }
            }
        }

        if (Input.GetKeyDown(KeyCode.LeftAlt))
        {
            Cursor.lockState = (Cursor.lockState == CursorLockMode.Locked) ? CursorLockMode.Locked : CursorLockMode.None;
        }
    }
Beispiel #14
0
    //private List<Vector3> WaitingToAddBlocks = new List<Vector3>();
    // Update is called once per frame
    protected override void Update()
    {
        base.Update();

        //Releasing left click
        //Places block at position
        if (Input.GetMouseButtonUp(0))
        {
            Add.transform.GetComponent <MeshRenderer>().enabled = false;

            Ray        ray = Camera.main.ViewportPointToRay(new Vector3(0.5f, 0.5f, 0));
            RaycastHit hit;
            if (Physics.Raycast(ray, out hit, 30, ~(1 << 8)))
            {
                EditTerrain.SetBlock(hit, new BlockDirt(), true);
            }
        }

        //Holding left click
        //Shows Add block on screen
        else if (Input.GetMouseButton(0))
        {
            Ray        ray = Camera.main.ViewportPointToRay(new Vector3(0.5f, 0.5f, 0));
            RaycastHit hit;
            if (Physics.Raycast(ray, out hit, 30, ~(1 << 8)))
            {
                Add.transform.GetComponent <MeshRenderer>().enabled = true;
                Vector3 rawposition     = hit.point + hit.normal / 2;
                Vector3 roundedpostiion = new Vector3(Mathf.RoundToInt(rawposition.x), Mathf.RoundToInt(rawposition.y), Mathf.RoundToInt(rawposition.z));
                Add.transform.position = roundedpostiion;
            }
            else
            {
                Add.transform.GetComponent <MeshRenderer>().enabled = false;
            }
        }
        //not holding left click

        //Releasing right click
        //Deletes block at position
        if (Input.GetMouseButtonUp(1))
        {
            Delete.transform.GetComponent <MeshRenderer>().enabled = false;

            Ray        ray = Camera.main.ViewportPointToRay(new Vector3(0.5f, 0.5f, 0));
            RaycastHit hit;
            if (Physics.Raycast(ray, out hit, 30, ~(1 << 8)))
            {
                EditTerrain.SetBlock(hit, new BlockAir());
            }
        }
        //Holding right click
        //Shows delete on screen
        else if (Input.GetMouseButton(1))
        {
            Ray        ray = Camera.main.ViewportPointToRay(new Vector3(0.5f, 0.5f, 0));
            RaycastHit hit;
            if (Physics.Raycast(ray, out hit, 30, ~(1 << 8)))
            {
                Delete.transform.GetComponent <MeshRenderer>().enabled = true;
                Vector3 rawposition     = hit.point - hit.normal / 2;
                Vector3 roundedpostiion = new Vector3(Mathf.RoundToInt(rawposition.x), Mathf.RoundToInt(rawposition.y), Mathf.RoundToInt(rawposition.z));
                Delete.transform.position = roundedpostiion;
            }
            else
            {
                Delete.transform.GetComponent <MeshRenderer>().enabled = false;
            }
        }
    }