public void Unclaim() { if (claimToken != null) { claimToken.Dispose(); claimToken = null; claimStatusChangedCallback?.Invoke(false); } this.resourceClaimId = null; }
private void TryClaim() { claimToken = claimKeeper.Claim(resourceClaimId); if (claimToken != null) { claimStatusChangedCallback?.Invoke(true); gameObject.SetActive(false); } else { timeSinceLastClaim = Time.realtimeSinceStartup; waitingToEditMessage.text = $"Waiting to edit after {claimKeeper.GetEffectiveOwnerNickname(resourceClaimId)}"; gameObject.SetActive(true); } }
void Update() { if (resourceClaimId == null) { return; } if (claimToken == null) { float time = Time.realtimeSinceStartup; if (time >= timeSinceLastClaim + TRY_CLAIM_INTERVAL_S) { TryClaim(); } } if (claimToken != null && !claimToken.IsStillMine()) { claimToken.Dispose(); claimToken = null; claimStatusChangedCallback?.Invoke(false); } }