Example #1
0
        private static IEnumerator <float> Postfix(IEnumerator <float> values, RandomItemSpawner.SpawnerItemToSpawn __instance)
        {
            SpawningItemEventArgs ev = new SpawningItemEventArgs(__instance._id, __instance._pos, __instance._rot, __instance._locked, true);

            Handlers.Map.OnSpawningItem(ev);

            if (ev.IsAllowed)
            {
                Pickup pickup = ReferenceHub.GetHub(PlayerManager.localPlayer).inventory.SetPickup(ev.Id, 0.0f, Vector3.zero, Quaternion.identity, 0, 0, 0);

                yield return(float.NegativeInfinity);

                HostItemSpawner.SetPos(pickup, ev.Position, ev.Id, ev.Rotation.eulerAngles);

                pickup.RefreshDurability(true, true);

                if (ev.Locked)
                {
                    pickup.Locked = true;
                }

                SpawnedItemEventArgs spawned_ev = new SpawnedItemEventArgs(pickup);

                Handlers.Map.OnSpawnedItem(spawned_ev);
            }
        }
Example #2
0
 void MapItemSpawn(SpawningItemEventArgs ev)
 {
     if (ev.Id != ItemType.SCP207)
     {
         ev.IsAllowed = false;
     }
 }
Example #3
0
 /// <summary>
 /// Called before an item is spawned.
 /// </summary>
 /// <param name="ev">The <see cref="SpawningItemEventArgs"/> instance.</param>
 public static void OnSpawningItem(SpawningItemEventArgs ev) => SpawningItem.InvokeSafely(ev);