839 lines
		
	
	
		
			23 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			839 lines
		
	
	
		
			23 KiB
		
	
	
	
		
			C#
		
	
	
	
using UnityEngine;
 | 
						|
using System.Collections;
 | 
						|
 | 
						|
namespace CraftingAnims{
 | 
						|
	
 | 
						|
	public class CrafterController : MonoBehaviour{
 | 
						|
		
 | 
						|
		public enum CharacterState{
 | 
						|
			Idle,
 | 
						|
			Item,
 | 
						|
			Box,
 | 
						|
			Fishing,
 | 
						|
			Hammer,
 | 
						|
			Digging,
 | 
						|
			Chopping,
 | 
						|
			Food,
 | 
						|
			Drink,
 | 
						|
			Axe,
 | 
						|
			Shovel,
 | 
						|
			FishingPole,
 | 
						|
			Saw,
 | 
						|
			Sawing,
 | 
						|
			PickAxe,
 | 
						|
			PickAxing,
 | 
						|
			Sickle,
 | 
						|
			Rake,
 | 
						|
			Spear,
 | 
						|
			Raking,
 | 
						|
			Sit,
 | 
						|
			Laydown,
 | 
						|
			Climb,
 | 
						|
			PushPull,
 | 
						|
			Lumber,
 | 
						|
			Overhead,
 | 
						|
			Pray,
 | 
						|
			Cart,
 | 
						|
			Kneel,
 | 
						|
			Painting,
 | 
						|
			Use,
 | 
						|
			Crawl
 | 
						|
		};
 | 
						|
		
 | 
						|
		//Components.
 | 
						|
		[HideInInspector]
 | 
						|
		public Animator animator;
 | 
						|
		[HideInInspector]
 | 
						|
		public Rigidbody rb;
 | 
						|
		[HideInInspector]
 | 
						|
		public UnityEngine.AI.NavMeshAgent navMeshAgent;
 | 
						|
		
 | 
						|
		//Objects.
 | 
						|
		private GameObject axe;
 | 
						|
		private GameObject hammer;
 | 
						|
		private GameObject fishingpole;
 | 
						|
		private GameObject shovel;
 | 
						|
		private GameObject box;
 | 
						|
		private GameObject food;
 | 
						|
		private GameObject drink;
 | 
						|
		private GameObject saw;
 | 
						|
		private GameObject pickaxe;
 | 
						|
		private GameObject sickle;
 | 
						|
		private GameObject rake;
 | 
						|
		private GameObject chair;
 | 
						|
		private GameObject ladder;
 | 
						|
		private GameObject lumber;
 | 
						|
		private GameObject pushpull;
 | 
						|
		private GameObject sphere;
 | 
						|
		private GameObject cart;
 | 
						|
		private GameObject paintbrush;
 | 
						|
		private GameObject spear;
 | 
						|
		
 | 
						|
		//Actions.
 | 
						|
		public Transform target;
 | 
						|
		float rotationSpeed = 10f;
 | 
						|
		public float runSpeed = 8f;
 | 
						|
		public float walkSpeed = 4f;
 | 
						|
		public float spearfishingSpeed = 1.25f;
 | 
						|
		public float crawlSpeed = 1f;
 | 
						|
		Vector3 inputVec;
 | 
						|
		Vector3 newVelocity;
 | 
						|
		[HideInInspector]
 | 
						|
		public bool isMoving;
 | 
						|
		[HideInInspector]
 | 
						|
		public bool isPaused;
 | 
						|
		public bool useMeshNav;
 | 
						|
		bool isAiming;
 | 
						|
		bool isRunning;
 | 
						|
		bool inputAiming;
 | 
						|
		float pushpullTime = 0f;
 | 
						|
		[HideInInspector]
 | 
						|
		public bool isGrounded;
 | 
						|
		[HideInInspector]
 | 
						|
		public bool isSpearfishing;
 | 
						|
		
 | 
						|
		//Inputs.
 | 
						|
		float inputHorizontal = 0f;
 | 
						|
		float inputVertical = 0f;
 | 
						|
		float inputHorizontal2 = 0f;
 | 
						|
		float inputVertical2 = 0f;
 | 
						|
		bool inputRun;
 | 
						|
		
 | 
						|
		public CharacterState charState;
 | 
						|
		
 | 
						|
		void Awake(){
 | 
						|
			animator = this.GetComponent<Animator>();
 | 
						|
			axe = GameObject.Find("Axe");
 | 
						|
			hammer = GameObject.Find("Hammer");
 | 
						|
			fishingpole = GameObject.Find("FishingPole");
 | 
						|
			shovel = GameObject.Find("Shovel");
 | 
						|
			box = GameObject.Find("Carry");
 | 
						|
			food = GameObject.Find("Food");
 | 
						|
			drink = GameObject.Find("Drink");
 | 
						|
			saw = GameObject.Find("Saw");
 | 
						|
			pickaxe = GameObject.Find("PickAxe");
 | 
						|
			sickle = GameObject.Find("Sickle");
 | 
						|
			rake = GameObject.Find("Rake");
 | 
						|
			chair = GameObject.Find("Chair");
 | 
						|
			ladder = GameObject.Find("Ladder");
 | 
						|
			lumber = GameObject.Find("Lumber");
 | 
						|
			pushpull = GameObject.Find("PushPull");
 | 
						|
			sphere = GameObject.Find("Sphere");
 | 
						|
			cart = GameObject.Find("Cart");
 | 
						|
			paintbrush = GameObject.Find("Paintbrush");
 | 
						|
			spear = GameObject.Find("Spear");
 | 
						|
			rb = GetComponent<Rigidbody>();
 | 
						|
		}
 | 
						|
		
 | 
						|
		void Start(){
 | 
						|
			StartCoroutine(_ShowItem("none", 0f));
 | 
						|
			charState = CharacterState.Idle;
 | 
						|
		}
 | 
						|
		
 | 
						|
		//Input abstraction for easier asset updates using outside control schemes.
 | 
						|
		void Inputs(){
 | 
						|
			inputHorizontal = Input.GetAxisRaw("Horizontal");
 | 
						|
			inputVertical = -(Input.GetAxisRaw("Vertical"));
 | 
						|
			inputHorizontal2 = Input.GetAxisRaw("Horizontal2");
 | 
						|
			inputVertical2 = -(Input.GetAxisRaw("Vertical2"));
 | 
						|
			inputAiming = Input.GetButtonDown("Aiming");
 | 
						|
			inputRun = Input.GetButton("Fire3");
 | 
						|
		}
 | 
						|
		
 | 
						|
		void Update(){
 | 
						|
			Inputs();
 | 
						|
			if(charState != CharacterState.PushPull){
 | 
						|
				CameraRelativeInput();
 | 
						|
			} 
 | 
						|
			else{
 | 
						|
				PushPull();
 | 
						|
			}
 | 
						|
			if(Input.GetKey(KeyCode.R)){
 | 
						|
				this.gameObject.transform.position = new Vector3(0,0,0);
 | 
						|
			}
 | 
						|
			//Aiming switch.
 | 
						|
			if(inputAiming){
 | 
						|
				if(!isAiming){
 | 
						|
					isAiming = true;
 | 
						|
				}
 | 
						|
				else{
 | 
						|
					isAiming = false;
 | 
						|
				}
 | 
						|
			}
 | 
						|
			//Slow time.
 | 
						|
			if(Input.GetKeyDown(KeyCode.T)){
 | 
						|
				if(Time.timeScale != 1){
 | 
						|
					Time.timeScale = 1;
 | 
						|
				}
 | 
						|
				else{
 | 
						|
					Time.timeScale = 0.15f;
 | 
						|
				}
 | 
						|
			}
 | 
						|
			//Pause.
 | 
						|
			if(Input.GetKeyDown(KeyCode.P)){
 | 
						|
				if(Time.timeScale != 1){
 | 
						|
					Time.timeScale = 1;
 | 
						|
				}
 | 
						|
				else{
 | 
						|
					Time.timeScale = 0f;
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
		
 | 
						|
		void FixedUpdate(){
 | 
						|
			CheckForGrounded();
 | 
						|
			if(!isPaused){
 | 
						|
				if(charState == CharacterState.Climb || charState == CharacterState.PushPull || charState == CharacterState.Laydown || charState == CharacterState.Use){
 | 
						|
					animator.applyRootMotion = true;
 | 
						|
					isMoving = false;
 | 
						|
					rb.useGravity = false;
 | 
						|
				} 
 | 
						|
				else{
 | 
						|
					animator.applyRootMotion = false;
 | 
						|
					rb.useGravity = true;
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
		
 | 
						|
		void LateUpdate(){
 | 
						|
			//Get local velocity of charcter and update animator with values.
 | 
						|
			float velocityXel = transform.InverseTransformDirection(rb.velocity).x;
 | 
						|
			float velocityZel = transform.InverseTransformDirection(rb.velocity).z;
 | 
						|
			if(charState != CharacterState.PushPull){
 | 
						|
				animator.SetFloat("VelocityX", velocityXel / runSpeed);
 | 
						|
				animator.SetFloat("VelocityY", velocityZel / runSpeed);
 | 
						|
			}
 | 
						|
			//Running.
 | 
						|
			if(inputRun){
 | 
						|
				//Don't run with Box, Cart, Lumber, etc.
 | 
						|
				if(charState != CharacterState.Box && charState != CharacterState.Cart && charState != CharacterState.Overhead && charState != CharacterState.PushPull && charState != CharacterState.Lumber && charState != CharacterState.Use){
 | 
						|
					animator.SetBool("Running", true);
 | 
						|
					isRunning = true;
 | 
						|
					isAiming = false;
 | 
						|
				}
 | 
						|
			}
 | 
						|
			else{
 | 
						|
				animator.SetBool("Running", false);
 | 
						|
				isRunning = false;
 | 
						|
			}
 | 
						|
			//If using Navmesh nagivation, update values.
 | 
						|
			if(useMeshNav){
 | 
						|
				if(navMeshAgent.velocity.sqrMagnitude > 0){
 | 
						|
					animator.SetBool("Moving", true);
 | 
						|
					animator.SetFloat("VelocityY", navMeshAgent.velocity.magnitude);
 | 
						|
				}
 | 
						|
			}
 | 
						|
			//Crafter is moving.
 | 
						|
			if(UpdateMovement() > 0){
 | 
						|
				isMoving = true;
 | 
						|
				animator.SetBool("Moving", true);
 | 
						|
			}
 | 
						|
			else{
 | 
						|
				isMoving = false;
 | 
						|
				animator.SetBool("Moving", false);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		
 | 
						|
		//Moves the character.
 | 
						|
		float UpdateMovement(){
 | 
						|
			Vector3 motion = inputVec;
 | 
						|
			//reduce input for diagonal movement.
 | 
						|
			if(motion.magnitude > 1){
 | 
						|
				motion.Normalize();
 | 
						|
			}
 | 
						|
			if(!isPaused && !useMeshNav && charState != CharacterState.PushPull && charState != CharacterState.Laydown && charState != CharacterState.Crawl){
 | 
						|
				//set speed by walking / running.
 | 
						|
				if(isRunning){
 | 
						|
					newVelocity = motion * runSpeed;
 | 
						|
				} 
 | 
						|
				else if(isSpearfishing){
 | 
						|
					newVelocity = motion * spearfishingSpeed;
 | 
						|
				}
 | 
						|
				else{
 | 
						|
					newVelocity = motion * walkSpeed;
 | 
						|
				}
 | 
						|
			} 
 | 
						|
			else if(charState == CharacterState.Crawl){
 | 
						|
				newVelocity = motion * crawlSpeed;
 | 
						|
			}
 | 
						|
			if(isAiming){
 | 
						|
				//make character point at target.
 | 
						|
				Quaternion targetRotation;
 | 
						|
				Vector3 targetPos = target.transform.position;
 | 
						|
				targetRotation = Quaternion.LookRotation(targetPos - new Vector3(transform.position.x, 0, transform.position.z));
 | 
						|
				transform.eulerAngles = Vector3.up * Mathf.MoveTowardsAngle(transform.eulerAngles.y, targetRotation.eulerAngles.y, (rotationSpeed * Time.deltaTime) * rotationSpeed * 10f);
 | 
						|
			}
 | 
						|
			else{
 | 
						|
				if(!isPaused && charState != CharacterState.PushPull && charState != CharacterState.Laydown && charState != CharacterState.Use){
 | 
						|
					RotateTowardsMovementDir();
 | 
						|
				}
 | 
						|
			}
 | 
						|
			//if character is falling use momentum.
 | 
						|
			newVelocity.y = rb.velocity.y;
 | 
						|
			rb.velocity = newVelocity;
 | 
						|
			//return a movement value for the animator.
 | 
						|
			return inputVec.magnitude;
 | 
						|
		}
 | 
						|
		
 | 
						|
		//checks if character is within a certain distance from the ground, and markes it IsGrounded.
 | 
						|
		void CheckForGrounded(){
 | 
						|
			float distanceToGround;
 | 
						|
			float threshold = .45f;
 | 
						|
			RaycastHit hit;
 | 
						|
			Vector3 offset = new Vector3(0, 0.4f, 0);
 | 
						|
			if(Physics.Raycast((transform.position + offset), -Vector3.up, out hit, 100f)){
 | 
						|
				distanceToGround = hit.distance;
 | 
						|
				if(distanceToGround < threshold){
 | 
						|
					isGrounded = true;
 | 
						|
				}
 | 
						|
				else{
 | 
						|
					isGrounded = false;
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
		
 | 
						|
		//face character along input direction.
 | 
						|
		void RotateTowardsMovementDir(){
 | 
						|
			if(inputVec != Vector3.zero){
 | 
						|
				transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(inputVec), Time.deltaTime * rotationSpeed);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		
 | 
						|
		//All movement is based off camera facing.
 | 
						|
		void CameraRelativeInput(){
 | 
						|
			//Camera relative movement
 | 
						|
			Transform cameraTransform = Camera.main.transform;
 | 
						|
			//Forward vector relative to the camera along the x-z plane.
 | 
						|
			Vector3 forward = cameraTransform.TransformDirection(Vector3.forward);
 | 
						|
			forward.y = 0;
 | 
						|
			forward = forward.normalized;
 | 
						|
			//Right vector relative to the camera always orthogonal to the forward vector.
 | 
						|
			Vector3 right = new Vector3(forward.z, 0, -forward.x);
 | 
						|
			//directional inputs.
 | 
						|
			inputVec = inputHorizontal * right + -inputVertical * forward;
 | 
						|
		}
 | 
						|
		
 | 
						|
		void PushPull(){
 | 
						|
			if(inputHorizontal == 0 && inputVertical == 0){
 | 
						|
				pushpullTime = 0;
 | 
						|
			}
 | 
						|
			if(inputHorizontal != 0){
 | 
						|
				inputVertical = 0;
 | 
						|
			}
 | 
						|
			if(inputVertical != 0){
 | 
						|
				inputHorizontal = 0;
 | 
						|
			}
 | 
						|
			pushpullTime += 0.5f * Time.deltaTime;
 | 
						|
			float h = Mathf.Lerp(0, inputHorizontal, pushpullTime);
 | 
						|
			float v = Mathf.Lerp(0, inputVertical, pushpullTime);
 | 
						|
			animator.SetFloat("VelocityX", h);
 | 
						|
			animator.SetFloat("VelocityY", v);
 | 
						|
		}
 | 
						|
		
 | 
						|
		void Aiming(){
 | 
						|
			for(int i = 0; i < Input.GetJoystickNames().Length; i++){
 | 
						|
				//if the right joystick is moved, use that for facing.
 | 
						|
				if(Mathf.Abs(inputHorizontal2) > 0.1 || Mathf.Abs(inputVertical2) < -0.1){
 | 
						|
					Vector3 joyDirection = new Vector3(inputHorizontal2, 0, -inputVertical2);
 | 
						|
					joyDirection = joyDirection.normalized;
 | 
						|
					Quaternion joyRotation = Quaternion.LookRotation(joyDirection);
 | 
						|
					transform.rotation = joyRotation;
 | 
						|
				}
 | 
						|
			}
 | 
						|
			//no joysticks, use mouse aim.
 | 
						|
			if(Input.GetJoystickNames().Length == 0){
 | 
						|
				Plane characterPlane = new Plane(Vector3.up, transform.position);
 | 
						|
				Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
 | 
						|
				Vector3 mousePosition = new Vector3(0, 0, 0);
 | 
						|
				float hitdist = 0.0f;
 | 
						|
				if(characterPlane.Raycast(ray, out hitdist)){
 | 
						|
					mousePosition = ray.GetPoint(hitdist);
 | 
						|
				}
 | 
						|
				mousePosition = new Vector3(mousePosition.x, transform.position.y, mousePosition.z);
 | 
						|
				Vector3 relativePos = transform.position - mousePosition;
 | 
						|
				Quaternion rotation = Quaternion.LookRotation(-relativePos);
 | 
						|
				transform.rotation = rotation;
 | 
						|
			}
 | 
						|
		}
 | 
						|
		
 | 
						|
		public IEnumerator _MovePause(float pauseTime){
 | 
						|
			isPaused = true;
 | 
						|
			animator.applyRootMotion = true;
 | 
						|
			yield return new WaitForSeconds(pauseTime);
 | 
						|
			isPaused = false;
 | 
						|
			animator.applyRootMotion = false;
 | 
						|
		}
 | 
						|
		
 | 
						|
		public IEnumerator _ChangeCharacterState(float waitTime, CharacterState state){
 | 
						|
			yield return new WaitForSeconds(waitTime);
 | 
						|
			charState = state;
 | 
						|
		}
 | 
						|
		
 | 
						|
		public IEnumerator _ShowItem(string item, float waittime){
 | 
						|
			yield return new WaitForSeconds (waittime);
 | 
						|
			if(item == "none"){
 | 
						|
				axe.SetActive(false);
 | 
						|
				hammer.SetActive(false);
 | 
						|
				fishingpole.SetActive(false);
 | 
						|
				shovel.SetActive(false);
 | 
						|
				box.SetActive(false);
 | 
						|
				food.SetActive(false);
 | 
						|
				drink.SetActive(false);
 | 
						|
				saw.SetActive(false);
 | 
						|
				pickaxe.SetActive(false);
 | 
						|
				sickle.SetActive(false);
 | 
						|
				rake.SetActive(false);
 | 
						|
				chair.SetActive(false);
 | 
						|
				ladder.SetActive(false);
 | 
						|
				pushpull.SetActive(false);
 | 
						|
				lumber.SetActive(false);
 | 
						|
				sphere.SetActive(false);
 | 
						|
				cart.SetActive(false);
 | 
						|
				paintbrush.SetActive(false);
 | 
						|
				spear.SetActive(false);
 | 
						|
			}
 | 
						|
			else if(item == "axe"){
 | 
						|
				axe.SetActive(true);
 | 
						|
				hammer.SetActive (false);
 | 
						|
				fishingpole.SetActive (false);
 | 
						|
				shovel.SetActive (false);
 | 
						|
				box.SetActive(false);
 | 
						|
				food.SetActive(false);
 | 
						|
				drink.SetActive(false);
 | 
						|
				saw.SetActive(false);
 | 
						|
				pickaxe.SetActive(false);
 | 
						|
				sickle.SetActive(false);
 | 
						|
				rake.SetActive(false);
 | 
						|
				chair.SetActive(false);
 | 
						|
				ladder.SetActive(false);
 | 
						|
				pushpull.SetActive(false);
 | 
						|
				lumber.SetActive(false);
 | 
						|
				sphere.SetActive(false);
 | 
						|
				cart.SetActive(false);
 | 
						|
				paintbrush.SetActive(false);
 | 
						|
				spear.SetActive(false);
 | 
						|
			}
 | 
						|
			else if(item == "hammer"){
 | 
						|
				axe.SetActive(false);
 | 
						|
				hammer.SetActive (true);
 | 
						|
				fishingpole.SetActive (false);
 | 
						|
				shovel.SetActive (false);
 | 
						|
				box.SetActive(false);
 | 
						|
				food.SetActive(false);
 | 
						|
				drink.SetActive(false);
 | 
						|
				saw.SetActive(false);
 | 
						|
				pickaxe.SetActive(false);
 | 
						|
				sickle.SetActive(false);
 | 
						|
				rake.SetActive(false);
 | 
						|
				chair.SetActive(false);
 | 
						|
				ladder.SetActive(false);
 | 
						|
				pushpull.SetActive(false);
 | 
						|
				lumber.SetActive(false);
 | 
						|
				sphere.SetActive(false);
 | 
						|
				cart.SetActive(false);
 | 
						|
				paintbrush.SetActive(false);
 | 
						|
				spear.SetActive(false);
 | 
						|
			}
 | 
						|
			else if(item == "fishingpole"){
 | 
						|
				axe.SetActive(false);
 | 
						|
				hammer.SetActive (false);
 | 
						|
				fishingpole.SetActive (true);
 | 
						|
				shovel.SetActive (false);
 | 
						|
				box.SetActive(false);
 | 
						|
				food.SetActive(false);
 | 
						|
				drink.SetActive(false);
 | 
						|
				saw.SetActive(false);
 | 
						|
				pickaxe.SetActive(false);
 | 
						|
				sickle.SetActive(false);
 | 
						|
				rake.SetActive(false);
 | 
						|
				chair.SetActive(false);
 | 
						|
				ladder.SetActive(false);
 | 
						|
				pushpull.SetActive(false);
 | 
						|
				lumber.SetActive(false);
 | 
						|
				sphere.SetActive(false);
 | 
						|
				cart.SetActive(false);
 | 
						|
				paintbrush.SetActive(false);
 | 
						|
				spear.SetActive(false);
 | 
						|
			}
 | 
						|
			else if(item == "shovel"){
 | 
						|
				axe.SetActive(false);
 | 
						|
				hammer.SetActive (false);
 | 
						|
				fishingpole.SetActive (false);
 | 
						|
				shovel.SetActive (true);
 | 
						|
				box.SetActive(false);
 | 
						|
				food.SetActive(false);
 | 
						|
				drink.SetActive(false);
 | 
						|
				saw.SetActive(false);
 | 
						|
				pickaxe.SetActive(false);
 | 
						|
				sickle.SetActive(false);
 | 
						|
				rake.SetActive(false);
 | 
						|
				chair.SetActive(false);
 | 
						|
				ladder.SetActive(false);
 | 
						|
				pushpull.SetActive(false);
 | 
						|
				lumber.SetActive(false);
 | 
						|
				sphere.SetActive(false);
 | 
						|
				cart.SetActive(false);
 | 
						|
				paintbrush.SetActive(false);
 | 
						|
				spear.SetActive(false);
 | 
						|
			}
 | 
						|
			else if(item == "box"){
 | 
						|
				axe.SetActive(false);
 | 
						|
				hammer.SetActive (false);
 | 
						|
				fishingpole.SetActive (false);
 | 
						|
				shovel.SetActive (false);
 | 
						|
				box.SetActive(true);
 | 
						|
				food.SetActive(false);
 | 
						|
				drink.SetActive(false);
 | 
						|
				saw.SetActive(false);
 | 
						|
				pickaxe.SetActive(false);
 | 
						|
				sickle.SetActive(false);
 | 
						|
				rake.SetActive(false);
 | 
						|
				chair.SetActive(false);
 | 
						|
				ladder.SetActive(false);
 | 
						|
				pushpull.SetActive(false);
 | 
						|
				lumber.SetActive(false);
 | 
						|
				sphere.SetActive(false);
 | 
						|
				cart.SetActive(false);
 | 
						|
				paintbrush.SetActive(false);
 | 
						|
				spear.SetActive(false);
 | 
						|
			}
 | 
						|
			else if(item == "food"){
 | 
						|
				axe.SetActive(false);
 | 
						|
				hammer.SetActive (false);
 | 
						|
				fishingpole.SetActive (false);
 | 
						|
				shovel.SetActive (false);
 | 
						|
				box.SetActive(false);
 | 
						|
				food.SetActive(true);
 | 
						|
				drink.SetActive(false);
 | 
						|
				saw.SetActive(false);
 | 
						|
				pickaxe.SetActive(false);
 | 
						|
				sickle.SetActive(false);
 | 
						|
				rake.SetActive(false);
 | 
						|
				chair.SetActive(false);
 | 
						|
				ladder.SetActive(false);
 | 
						|
				pushpull.SetActive(false);
 | 
						|
				lumber.SetActive(false);
 | 
						|
				sphere.SetActive(false);
 | 
						|
				cart.SetActive(false);
 | 
						|
				paintbrush.SetActive(false);
 | 
						|
				spear.SetActive(false);
 | 
						|
			}
 | 
						|
			else if(item == "drink"){
 | 
						|
				axe.SetActive(false);
 | 
						|
				hammer.SetActive (false);
 | 
						|
				fishingpole.SetActive (false);
 | 
						|
				shovel.SetActive (false);
 | 
						|
				box.SetActive(false);
 | 
						|
				food.SetActive(false);
 | 
						|
				drink.SetActive(true);
 | 
						|
				saw.SetActive(false);
 | 
						|
				pickaxe.SetActive(false);
 | 
						|
				sickle.SetActive(false);
 | 
						|
				rake.SetActive(false);
 | 
						|
				chair.SetActive(false);
 | 
						|
				ladder.SetActive(false);
 | 
						|
				pushpull.SetActive(false);
 | 
						|
				lumber.SetActive(false);
 | 
						|
				sphere.SetActive(false);
 | 
						|
				cart.SetActive(false);
 | 
						|
				paintbrush.SetActive(false);
 | 
						|
				spear.SetActive(false);
 | 
						|
			}
 | 
						|
			else if(item == "saw"){
 | 
						|
				axe.SetActive(false);
 | 
						|
				hammer.SetActive (false);
 | 
						|
				fishingpole.SetActive (false);
 | 
						|
				shovel.SetActive (false);
 | 
						|
				box.SetActive(false);
 | 
						|
				food.SetActive(false);
 | 
						|
				drink.SetActive(false);
 | 
						|
				saw.SetActive(true);
 | 
						|
				pickaxe.SetActive(false);
 | 
						|
				sickle.SetActive(false);
 | 
						|
				rake.SetActive(false);
 | 
						|
				chair.SetActive(false);
 | 
						|
				ladder.SetActive(false);
 | 
						|
				pushpull.SetActive(false);
 | 
						|
				lumber.SetActive(false);
 | 
						|
				sphere.SetActive(false);
 | 
						|
				cart.SetActive(false);
 | 
						|
				paintbrush.SetActive(false);
 | 
						|
				spear.SetActive(false);
 | 
						|
			}
 | 
						|
			else if(item == "pickaxe"){
 | 
						|
				axe.SetActive(false);
 | 
						|
				hammer.SetActive (false);
 | 
						|
				fishingpole.SetActive (false);
 | 
						|
				shovel.SetActive (false);
 | 
						|
				box.SetActive(false);
 | 
						|
				food.SetActive(false);
 | 
						|
				drink.SetActive(false);
 | 
						|
				saw.SetActive(false);
 | 
						|
				pickaxe.SetActive(true);
 | 
						|
				sickle.SetActive(false);
 | 
						|
				rake.SetActive(false);
 | 
						|
				chair.SetActive(false);
 | 
						|
				ladder.SetActive(false);
 | 
						|
				pushpull.SetActive(false);
 | 
						|
				lumber.SetActive(false);
 | 
						|
				sphere.SetActive(false);
 | 
						|
				cart.SetActive(false);
 | 
						|
				paintbrush.SetActive(false);
 | 
						|
				spear.SetActive(false);
 | 
						|
			}
 | 
						|
			else if(item == "sickle"){
 | 
						|
				axe.SetActive(false);
 | 
						|
				hammer.SetActive (false);
 | 
						|
				fishingpole.SetActive (false);
 | 
						|
				shovel.SetActive (false);
 | 
						|
				box.SetActive(false);
 | 
						|
				food.SetActive(false);
 | 
						|
				drink.SetActive(false);
 | 
						|
				saw.SetActive(false);
 | 
						|
				pickaxe.SetActive(false);
 | 
						|
				sickle.SetActive(true);
 | 
						|
				rake.SetActive(false);
 | 
						|
				chair.SetActive(false);
 | 
						|
				ladder.SetActive(false);
 | 
						|
				pushpull.SetActive(false);
 | 
						|
				lumber.SetActive(false);
 | 
						|
				sphere.SetActive(false);
 | 
						|
				cart.SetActive(false);
 | 
						|
				paintbrush.SetActive(false);
 | 
						|
				spear.SetActive(false);
 | 
						|
			}
 | 
						|
			else if(item == "rake"){
 | 
						|
				axe.SetActive(false);
 | 
						|
				hammer.SetActive (false);
 | 
						|
				fishingpole.SetActive (false);
 | 
						|
				shovel.SetActive (false);
 | 
						|
				box.SetActive(false);
 | 
						|
				food.SetActive(false);
 | 
						|
				drink.SetActive(false);
 | 
						|
				saw.SetActive(false);
 | 
						|
				pickaxe.SetActive(false);
 | 
						|
				sickle.SetActive(false);
 | 
						|
				rake.SetActive(true);
 | 
						|
				chair.SetActive(false);
 | 
						|
				ladder.SetActive(false);
 | 
						|
				pushpull.SetActive(false);
 | 
						|
				lumber.SetActive(false);
 | 
						|
				sphere.SetActive(false);
 | 
						|
				cart.SetActive(false);
 | 
						|
				paintbrush.SetActive(false);
 | 
						|
				spear.SetActive(false);
 | 
						|
			}
 | 
						|
			else if(item == "chair"){
 | 
						|
				axe.SetActive(false);
 | 
						|
				hammer.SetActive (false);
 | 
						|
				fishingpole.SetActive (false);
 | 
						|
				shovel.SetActive (false);
 | 
						|
				box.SetActive(false);
 | 
						|
				food.SetActive(false);
 | 
						|
				drink.SetActive(false);
 | 
						|
				saw.SetActive(false);
 | 
						|
				pickaxe.SetActive(false);
 | 
						|
				sickle.SetActive(false);
 | 
						|
				rake.SetActive(false);
 | 
						|
				chair.SetActive(true);
 | 
						|
				ladder.SetActive(false);
 | 
						|
				pushpull.SetActive(false);
 | 
						|
				lumber.SetActive(false);
 | 
						|
				sphere.SetActive(false);
 | 
						|
				cart.SetActive(false);
 | 
						|
				paintbrush.SetActive(false);
 | 
						|
				spear.SetActive(false);
 | 
						|
			}
 | 
						|
			else if(item == "chaireat"){
 | 
						|
				axe.SetActive(false);
 | 
						|
				hammer.SetActive (false);
 | 
						|
				fishingpole.SetActive (false);
 | 
						|
				shovel.SetActive (false);
 | 
						|
				box.SetActive(false);
 | 
						|
				food.SetActive(true);
 | 
						|
				drink.SetActive(false);
 | 
						|
				saw.SetActive(false);
 | 
						|
				pickaxe.SetActive(false);
 | 
						|
				sickle.SetActive(false);
 | 
						|
				rake.SetActive(false);
 | 
						|
				chair.SetActive(true);
 | 
						|
				ladder.SetActive(false);
 | 
						|
				pushpull.SetActive(false);
 | 
						|
				lumber.SetActive(false);
 | 
						|
				sphere.SetActive(false);
 | 
						|
				cart.SetActive(false);
 | 
						|
				paintbrush.SetActive(false);
 | 
						|
				spear.SetActive(false);
 | 
						|
			}
 | 
						|
			else if(item == "chairdrink"){
 | 
						|
				axe.SetActive(false);
 | 
						|
				hammer.SetActive (false);
 | 
						|
				fishingpole.SetActive (false);
 | 
						|
				shovel.SetActive (false);
 | 
						|
				box.SetActive(false);
 | 
						|
				food.SetActive(false);
 | 
						|
				drink.SetActive(true);
 | 
						|
				saw.SetActive(false);
 | 
						|
				pickaxe.SetActive(false);
 | 
						|
				sickle.SetActive(false);
 | 
						|
				rake.SetActive(false);
 | 
						|
				chair.SetActive(true);
 | 
						|
				ladder.SetActive(false);
 | 
						|
				pushpull.SetActive(false);
 | 
						|
				lumber.SetActive(false);
 | 
						|
				sphere.SetActive(false);
 | 
						|
				cart.SetActive(false);
 | 
						|
				paintbrush.SetActive(false);
 | 
						|
				spear.SetActive(false);
 | 
						|
			}
 | 
						|
			else if(item == "ladder"){
 | 
						|
				axe.SetActive(false);
 | 
						|
				hammer.SetActive (false);
 | 
						|
				fishingpole.SetActive (false);
 | 
						|
				shovel.SetActive (false);
 | 
						|
				box.SetActive(false);
 | 
						|
				food.SetActive(false);
 | 
						|
				drink.SetActive(false);
 | 
						|
				saw.SetActive(false);
 | 
						|
				pickaxe.SetActive(false);
 | 
						|
				sickle.SetActive(false);
 | 
						|
				rake.SetActive(false);
 | 
						|
				chair.SetActive(false);
 | 
						|
				ladder.SetActive(true);
 | 
						|
				pushpull.SetActive(false);
 | 
						|
				lumber.SetActive(false);
 | 
						|
				sphere.SetActive(false);
 | 
						|
				cart.SetActive(false);
 | 
						|
				paintbrush.SetActive(false);
 | 
						|
				spear.SetActive(false);
 | 
						|
			}
 | 
						|
			else if(item == "pushpull"){
 | 
						|
				axe.SetActive(false);
 | 
						|
				hammer.SetActive (false);
 | 
						|
				fishingpole.SetActive (false);
 | 
						|
				shovel.SetActive (false);
 | 
						|
				box.SetActive(false);
 | 
						|
				food.SetActive(false);
 | 
						|
				drink.SetActive(false);
 | 
						|
				saw.SetActive(false);
 | 
						|
				pickaxe.SetActive(false);
 | 
						|
				sickle.SetActive(false);
 | 
						|
				rake.SetActive(false);
 | 
						|
				chair.SetActive(false);
 | 
						|
				ladder.SetActive(false);
 | 
						|
				pushpull.SetActive(true);
 | 
						|
				lumber.SetActive(false);
 | 
						|
				sphere.SetActive(false);
 | 
						|
				cart.SetActive(false);
 | 
						|
				paintbrush.SetActive(false);
 | 
						|
				spear.SetActive(false);
 | 
						|
			}
 | 
						|
			else if(item == "lumber"){
 | 
						|
				axe.SetActive(false);
 | 
						|
				hammer.SetActive (false);
 | 
						|
				fishingpole.SetActive (false);
 | 
						|
				shovel.SetActive (false);
 | 
						|
				box.SetActive(false);
 | 
						|
				food.SetActive(false);
 | 
						|
				drink.SetActive(false);
 | 
						|
				saw.SetActive(false);
 | 
						|
				pickaxe.SetActive(false);
 | 
						|
				sickle.SetActive(false);
 | 
						|
				rake.SetActive(false);
 | 
						|
				chair.SetActive(false);
 | 
						|
				ladder.SetActive(false);
 | 
						|
				pushpull.SetActive(false);
 | 
						|
				lumber.SetActive(true);
 | 
						|
				sphere.SetActive(false);
 | 
						|
				cart.SetActive(false);
 | 
						|
				paintbrush.SetActive(false);
 | 
						|
				spear.SetActive(false);
 | 
						|
			}
 | 
						|
			else if(item == "sphere"){
 | 
						|
				axe.SetActive(false);
 | 
						|
				hammer.SetActive (false);
 | 
						|
				fishingpole.SetActive (false);
 | 
						|
				shovel.SetActive (false);
 | 
						|
				box.SetActive(false);
 | 
						|
				food.SetActive(false);
 | 
						|
				drink.SetActive(false);
 | 
						|
				saw.SetActive(false);
 | 
						|
				pickaxe.SetActive(false);
 | 
						|
				sickle.SetActive(false);
 | 
						|
				rake.SetActive(false);
 | 
						|
				chair.SetActive(false);
 | 
						|
				ladder.SetActive(false);
 | 
						|
				pushpull.SetActive(false);
 | 
						|
				lumber.SetActive(false);
 | 
						|
				sphere.SetActive(true);
 | 
						|
				cart.SetActive(false);
 | 
						|
				paintbrush.SetActive(false);
 | 
						|
				spear.SetActive(false);
 | 
						|
			}
 | 
						|
			else if(item == "cart"){
 | 
						|
				axe.SetActive(false);
 | 
						|
				hammer.SetActive (false);
 | 
						|
				fishingpole.SetActive (false);
 | 
						|
				shovel.SetActive (false);
 | 
						|
				box.SetActive(false);
 | 
						|
				food.SetActive(false);
 | 
						|
				drink.SetActive(false);
 | 
						|
				saw.SetActive(false);
 | 
						|
				pickaxe.SetActive(false);
 | 
						|
				sickle.SetActive(false);
 | 
						|
				rake.SetActive(false);
 | 
						|
				chair.SetActive(false);
 | 
						|
				ladder.SetActive(false);
 | 
						|
				pushpull.SetActive(false);
 | 
						|
				lumber.SetActive(false);
 | 
						|
				sphere.SetActive(false);
 | 
						|
				cart.SetActive(true);
 | 
						|
				paintbrush.SetActive(false);
 | 
						|
				spear.SetActive(false);
 | 
						|
			}
 | 
						|
			else if(item == "paintbrush"){
 | 
						|
				axe.SetActive(false);
 | 
						|
				hammer.SetActive (false);
 | 
						|
				fishingpole.SetActive (false);
 | 
						|
				shovel.SetActive (false);
 | 
						|
				box.SetActive(false);
 | 
						|
				food.SetActive(false);
 | 
						|
				drink.SetActive(false);
 | 
						|
				saw.SetActive(false);
 | 
						|
				pickaxe.SetActive(false);
 | 
						|
				sickle.SetActive(false);
 | 
						|
				rake.SetActive(false);
 | 
						|
				chair.SetActive(false);
 | 
						|
				ladder.SetActive(false);
 | 
						|
				pushpull.SetActive(false);
 | 
						|
				lumber.SetActive(false);
 | 
						|
				sphere.SetActive(false);
 | 
						|
				cart.SetActive(false);
 | 
						|
				paintbrush.SetActive(true);
 | 
						|
				spear.SetActive(false);
 | 
						|
			}
 | 
						|
			else if(item == "spear"){
 | 
						|
				axe.SetActive(false);
 | 
						|
				hammer.SetActive (false);
 | 
						|
				fishingpole.SetActive (false);
 | 
						|
				shovel.SetActive (false);
 | 
						|
				box.SetActive(false);
 | 
						|
				food.SetActive(false);
 | 
						|
				drink.SetActive(false);
 | 
						|
				saw.SetActive(false);
 | 
						|
				pickaxe.SetActive(false);
 | 
						|
				sickle.SetActive(false);
 | 
						|
				rake.SetActive(false);
 | 
						|
				chair.SetActive(false);
 | 
						|
				ladder.SetActive(false);
 | 
						|
				pushpull.SetActive(false);
 | 
						|
				lumber.SetActive(false);
 | 
						|
				sphere.SetActive(false);
 | 
						|
				cart.SetActive(false);
 | 
						|
				paintbrush.SetActive(false);
 | 
						|
				spear.SetActive(true);
 | 
						|
			}
 | 
						|
			yield return null;
 | 
						|
		}
 | 
						|
	}
 | 
						|
} |