private static bool Prefix(DragDropCraftingPanel __instance) { if (!LoaderConfig.Instance.FreeCrafting) { return(true); } ProtoCraft instanceField = Util.GetInstanceField <ProtoCraft>(__instance, "_currentCraft"); int _craftMultiplier = Util.GetInstanceField <int>(__instance, "_craftMultiplier"); if (instanceField != null) { if (LoaderConfig.Instance.AvoidCraftNotice) { GameInventoryHelper.AddItem(instanceField.Result, instanceField.ResultCount * _craftMultiplier, false, false); } else { instanceField.Components.ForEach(delegate(CraftComponent comp) { ProtoItem item = comp.ValidItems.PickRandom <ProtoItem>(); int num = comp.RequiredCount * _craftMultiplier; if (!GameInventoryHelper.ContainsItem(item, num, false)) { GameInventoryHelper.AddItem(item, num, false, false); } }); } return(false); } return(true); }
private static bool Prefix(DragDropCraftingPanel __instance) { if (LoaderConfig.Instance.FreeCrafting) { ProtoCraft protoCraft = Util.GetInstanceField <ProtoCraft>(__instance, "_currentCraft"); if (Player.Local.Crafting.IsUnlocked(protoCraft)) { __instance.CraftButton.isEnabled = true; return(false); } return(true); } return(true); }
public static ProtoCraft getProtoCraft(ProtoItem item) { ProtoCraft result = null; foreach (ProtoCraft protoCraft in Loader.GetGameCraftings().Values) { if (protoCraft.Result == item) { result = protoCraft; break; } } return(result); }