public static IEnumerable <Recipe> GetValidRecipes(this Dictionary <ItemType, Dictionary <Scp914.Scp914Knob, List <Recipe> > > recipes, ItemType item, List <ItemType> otherItems, Scp914.Scp914Knob setting) { return(recipes[item] is null ? null : recipes[item][setting].Where(r => r.Input.Select(e => e.Item).IsInList(otherItems))); }
public static void InvokeScp914Upgrade(Scp914.Scp914Machine machine, List <CharacterClassManager> characterClassManagers, ref List <Pickup> pickups, Scp914.Scp914Knob knobSetting, ref bool allow) { if (Scp914UpgradeEvent == null) { return; } List <ReferenceHub> players = new List <ReferenceHub>(); foreach (CharacterClassManager characterClassManager in characterClassManagers) { players.Add(characterClassManager.gameObject.GetPlayer()); } SCP914UpgradeEvent ev = new SCP914UpgradeEvent() { Allow = allow, Machine = machine, Players = players, Items = pickups, KnobSetting = knobSetting }; Scp914UpgradeEvent.Invoke(ref ev); pickups = ev.Items; allow = ev.Allow; }