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));
        }
Exemple #2
0
        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());
                }
            }
        }