public void CollisionDetection() //This detects in
        {
            RaycastHit hit;

            if (Physics.Raycast(transform.position, transform.TransformDirection(Vector3.down), out hit, 5))
            {
                Debug.DrawRay(transform.position, transform.TransformDirection(Vector3.down) * hit.distance, Color.red);
            }

            if (this.transform.parent != null)
            {
                if (_StateHolder != RefinedReasourceState.Empty)
                {
                    _StateHolder = RefinedReasourceState.Idle;
                }

                return;
            }
            else
            {
                if (_StateHolder != RefinedReasourceState.Empty)
                {
                    if (hit.transform.tag == CraftingOutputTag)
                    {
                        FindClosestCraftingBench();
                        _StateHolder = RefinedReasourceState.OnOutput;
                    }


                    if (hit.transform.tag == InUseTag)
                    {
                        var temp = hit.transform.GetComponent <Beta_Script_Refined_Output>()._outputType;
                        if ((int)temp == (int)_ResourceType)
                        {
                            _StateHolder = RefinedReasourceState.InUse;
                        }
                    }

                    if (hit.transform.tag != CraftingOutputTag && hit.transform.tag != InUseTag)
                    {
                        _StateHolder = RefinedReasourceState.Idle;
                    }
                }

                if (hit.transform.tag == DestroyTag)
                {
                    Destroy(gameObject);
                }
            }
        }
        public void ManageResource()
        {
            if (_StateHolder == RefinedReasourceState.InUse)
            {
                ResourceAmount -= ResourceUseRate * Time.deltaTime;
            }

            if (ResourceAmount <= 0)
            {
                _StateHolder = RefinedReasourceState.Empty;
                Material mat = GetComponent <MeshRenderer>().material;
                mat.color = DeadMat.color;
            }
        }