// INTERACTIONS void HandleInteractions() { bool onFire1ButtonDown = fire1ButtonDown && !prevFire1ButtonDown; bool onFire1ButtonUp = !fire1ButtonDown && prevFire1ButtonDown; bool onFire2ButtonDown = fire2ButtonDown && !prevFire2ButtonDown; bool onFire2ButtonUp = !fire2ButtonDown && prevFire2ButtonDown; if (onFire1ButtonDown) { if (heldPickup != null) { SetCollider(false); heldPickup.Interact(); heldPickup = null; } else { iVolume.potentialInteracts.RemoveAll(item => item == null); if (iVolume.potentialInteracts.Count > 0) { interactObj = iVolume.potentialInteracts[0].GetComponent <InteractGeneric>(); if (!interactObj.requiresCostume || interactObj.costume == JobTag) { interactObj.StartUse(transform); iVolume.interactingObj = interactObj; } } } } if (onFire2ButtonDown) { if (heldPickup != null) { SetCollider(false); heldPickup.Drop(); heldPickup = null; } else { pVolume.potentialPickups.RemoveAll(item => item == null); if (pVolume.potentialPickups.Count > 0) { heldPickup = pVolume.potentialPickups[0].GetComponent <PickupGeneric>(); if (!heldPickup.requiresCostume || heldPickup.costume == JobTag) { heldPickup.Hold(transform); SetCollider(true); } } } } prevFire1ButtonDown = fire1ButtonDown; prevFire2ButtonDown = fire2ButtonDown; }
private void OnTriggerEnter(Collider other) { if (!isServer) { return; } if (other.CompareTag("Interact")) { InteractGeneric inter = other.GetComponent <InteractGeneric>(); if (inter != null && inter.inUse == false) { potentialInteracts.Add(other.transform); } } }
private void OnTriggerStay(Collider other) { if (!isServer) { return; } if (other.CompareTag("Interact")) { InteractGeneric inter = other.GetComponent <InteractGeneric>(); if (inter != null && inter.inUse == true) { if (potentialInteracts.Contains(other.transform)) { while (potentialInteracts.Contains(other.transform)) { potentialInteracts.Remove(other.transform); } } } } }