public void Patch()
        {
            Utilities.Logger.Print($"Added ProcurmentTemplate {Title}");
            Type = EnumCache <Enums.ProcureableProductType> .Instance.Patch(ProcureableProductTypeEnumName);

            ProcurmentManager.ProcureableProducts.Add(Type, this);
        }
            public static bool Prefix(Sprite __result, Enums.ProcureableProductType procureableProductType)
            {
                if (ProcureableProducts.ContainsKey(procureableProductType))
                {
                    __result = ProcureableProducts[procureableProductType].Sprite;
                    return(false);
                }

                return(true);
            }
            public static bool Prefix(ProcurementController __instance, Enums.ProcureableProductType productType)
            {
                if (ProcureableProducts.ContainsKey(productType))
                {
                    ProcureableProduct pp = ProcureableProducts[productType].CreateProcureableProduct();
                    __instance.allAvailableProcureableProducts.Add(pp);
                    return(false);
                }

                return(true);
            }
            public static bool Prefix(Enums.ProcureableProductType productType)
            {
                if (ProcureableProducts.ContainsKey(productType))
                {
                    ACMFProcurmentTemplate pt = ProcureableProducts[productType];
                    pt.SpawnProcureable();
                    NotificationController.Instance.AttemptSendNotification("A new product has arrived!", CameraController.Instance.GetWorldCenter(),
                                                                            Enums.NotificationType.Other, Enums.MessageSeverity.Unspecified, pt.Title + "NewProduct", pt.Title, Enums.InteractableObjectType.Vehicle, true);
                    return(false);
                }

                return(true);
            }