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); } }
/// <summary> /// Called after an item is spawned. /// </summary> /// <param name="ev">The <see cref="SpawnedItemEventArgs"/> instance.</param> public static void OnSpawnedItem(SpawnedItemEventArgs ev) => SpawnedItem.InvokeSafely(ev);