private static bool Prefix(Locker __instance, Locker.ItemToSpawn item) { try { if (!__instance.Spawned) { return(false); } if (__instance.SpawnOnOpen || __instance.TriggeredByDoor) { if (__instance._itemsToSpawn == null) { __instance._itemsToSpawn = new System.Collections.Generic.List <Locker.ItemToSpawn>(); } __instance._itemsToSpawn.Add(item); return(false); } SpawnItemPatch.SpawnItemToSpawn(item, __instance, true); } catch (Exception e) { Logger.Get.Error($"Synapse-Item: SpawnItem failed!!\n{e}\nStackTrace:\n{e.StackTrace}"); } return(false); }
private static bool Prefix(Locker __instance, bool state, uint chamberId, bool anyOpen) { try { if (!state && (__instance.SpawnOnOpen || __instance.TriggeredByDoor)) { __instance.ProcessChambers(); for (int i = __instance._itemsToSpawn.Count - 1; i >= 0; i--) { if (__instance._itemsToSpawn[i].chamberId == chamberId || __instance.chambers[(int)__instance._itemsToSpawn[i].chamberId].Virtual) { SpawnItemPatch.SpawnItemToSpawn(__instance._itemsToSpawn[i], __instance, false); __instance._itemsToSpawn.RemoveAt(i); } } } if (__instance._assignedPickups == null) { return(false); } for (int j = __instance._assignedPickups.Count - 1; j >= 0; j--) { if (__instance._assignedPickups[j] == null) { __instance._assignedPickups.RemoveAt(j); } else { if (__instance._assignedPickups[j].Chamber == chamberId) { __instance._assignedPickups[j].Locked = state; } if (__instance.chambers[(int)__instance._assignedPickups[j].Chamber].Virtual) { __instance._assignedPickups[j].Locked = anyOpen; } } } } catch (Exception e) { Logger.Get.Error($"Synapse-Item: SpawnItem failed!!\n{e}\nStackTrace:\n{e.StackTrace}"); } return(false); }