public virtual void Interact(object interactor, Item.Uses interaction = Item.Uses.A) { IHasItem acquirer = interactor as IHasItem; if (acquirer != null) { PickUp(acquirer); } }
public void DeferredPickup(string acquirerPath) { if (acquirerPath == "") { GD.Print("acquirerPath is null"); } NodePath path = new NodePath(acquirerPath); Node acquirerNode = Session.session.GetNode(path); IHasItem acquirer = acquirerNode as IHasItem; if (acquirer == null) { GD.Print("No acquirer found!"); } if (acquirer.ReceiveItem(this)) { this.QueueFree(); } }
public void PickUp(IHasItem acquirer) { if (!Session.NetActive()) { if (acquirer.ReceiveItem(this)) { this.QueueFree(); } return; } Node acquirerNode = acquirer as Node; if (acquirerNode == null) { return; } string acquirerPath = acquirerNode.GetPath().ToString(); DeferredPickup(acquirerPath); Rpc(nameof(DeferredPickup), acquirerPath); }