private void DropComponent()
    {
        if (currentObject == null) //just drop it on the floor
        {
            holdingComponent.transform.SetParent(null);
            holdingComponent.gameObject.SetActive(true);
            holdingComponent.SetAffectedByGravity(true);
        }
        else if (currentObject.AddPickableComponent(holdingComponent))
        {
        }

        holdingComponent = null;
    }
示例#2
0
 public override bool AddPickableComponent(PickAbleObject pickAbleObject)
 {
     if (pickAbleObject is ConstructedRepairComponent)
     {
         ConstructedRepairComponent newComponent = (ConstructedRepairComponent)pickAbleObject;
         if (currentIssue.seekedWord.ToString() == newComponent.partName)
         {
             Destroy(newComponent.gameObject);
             FixObject();
             return(true);
         }
         return(false);
     }
     return(false);
 }
    private void PickUpComponent()
    {
        if (currentObject == null)
        {
            List <PickAbleObject> componentsInScene = new List <PickAbleObject>();
            componentsInScene.AddRange(FindObjectsOfType <PickAbleObject>());
            componentsInScene.RemoveAll(i => Vector3.Distance(i.transform.position, transform.position) > 3f);

            PickAbleObject componentToPick = null;

            if (componentsInScene.Count > 0)
            {
                componentToPick = componentsInScene.OrderBy(i => Vector3.Distance(i.transform.position, transform.position)).First();
            }

            if (componentToPick != null && componentToPick.pickable)
            {
                holdingComponent = componentToPick;
                holdingComponent.transform.SetParent(transform);
                holdingComponent.gameObject.SetActive(true);
                holdingComponent.transform.position = holdingTransform.position;
                holdingComponent.SetAffectedByGravity(false);
            }
            else
            {
                componentToPick = null;
            }
        }
        else
        {
            holdingComponent = currentObject.GetRepairComponent();
            if (holdingComponent != null)
            {
                holdingComponent.transform.SetParent(transform);
                holdingComponent.gameObject.SetActive(true);
                holdingComponent.transform.position = holdingTransform.position;
                holdingComponent.SetAffectedByGravity(false);
            }
        }


        //component.gameObject.GetComponent<Renderer>().enabled = false;
    }
示例#4
0
 public virtual bool AddPickableComponent(PickAbleObject pickAbleObject) => false;
示例#5
0
    //================= Overide Methods =====================

    public override bool AddPickableComponent(PickAbleObject pickAbleObject)
    {
        return(AddComponentToConstructionPlace((RepairComponent)pickAbleObject));
    }