private void SetDespawnTime(DroppedItem item) { if (!_config.Enabled || item == null) { return; } item.CancelInvoke(nameof(DroppedItem.IdleDestroy)); item.Invoke(nameof(DroppedItem.IdleDestroy), item.GetDespawnDuration() * (item.GetBuildingPrivilege() == null ? _config.MultiplierNonCupboard : _config.MultiplierCupboard)); }
private float GetItemRate(Item item, DroppedItem droppedItem) { float current; if (!_config.MultiplierItems.TryGetValue(item.info.shortname, out current)) { current = 1.0f; } current *= droppedItem.GetDespawnDuration() * (droppedItem.GetBuildingPrivilege() == null ? _config.MultiplierNonCupboard : _config.MultiplierCupboard); return(current); }
void SetDespawnTime(DroppedItem item) { if (!enabled) { return; } if (item == null) { return; } var entityRadius = Physics.OverlapSphere(item.transform.position, 0.5f, LayerMask.GetMask("Trigger")); foreach (var cupboard in entityRadius) { if (cupboard.GetComponentInParent <BuildingPrivlidge>() != null) { item.CancelInvoke("IdleDestroy"); item.Invoke("IdleDestroy", despawnMultiplier * item.GetDespawnDuration()); } } }