Beispiel #1
0
        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);
        }