private static Sprite LoadSprite(string languageName, string assetPath, InAssetBundles inassetbundles = InAssetBundles.All)
            {
                var ingotsplus      = Load.ingotDict["yenzen-ingotsplus"];
                var ingotsplus_salt = Load.ingotDict["salt-yenzen"];
                var sulphur         = Load.ingotDict["sulphur"];

                Log.Debug(languageName, "Starting sprite loading...");
                if (inassetbundles == InAssetBundles.All)
                {
                    Log.Debug(languageName, "Asset bundle \"yenzen-ingotsplus\" selected");
                    Log.Debug(languageName, "Obtaining sprite...");
                    if (ingotsplus.LoadAsset <Sprite>(assetPath) == null)
                    {
                        Log.Error(languageName, "Sprite is null");
                        Log.Debug(languageName, Status.Stop);
                        return(null);
                    }
                    Log.Debug(languageName, "Sprite obtained");
                    return(ingotsplus.LoadAsset <Sprite>(assetPath));
                }
                else if (inassetbundles == InAssetBundles.Salt)
                {
                    Log.Debug(languageName, "Asset bundle \"salt-yenzen\" selected");
                    Log.Debug(languageName, "Obtaining sprite...");
                    if (ingotsplus_salt.LoadAsset <Sprite>(assetPath) == null)
                    {
                        Log.Error(languageName, "Sprite is null");
                        Log.Debug(languageName, Status.Stop);
                        return(null);
                    }

                    Log.Debug(languageName, "Sprite obtained");
                    return(ingotsplus_salt.LoadAsset <Sprite>(assetPath));
                }
                else if (inassetbundles == InAssetBundles.Sulphur)
                {
                    Log.Debug(languageName, "Asset bundle \"sulphur\" selected");
                    Log.Debug(languageName, "Obtaining sprite...");
                    if (sulphur.LoadAsset <Sprite>(assetPath) == null)
                    {
                        Log.Error(languageName, "Sprite is null");
                        Log.Debug(languageName, Status.Stop);
                        return(null);
                    }
                    Log.Debug(languageName, "Sprite obtained");
                    return(sulphur.LoadAsset <Sprite>(assetPath));
                }
                Log.Error(languageName, "Found no matching sprites");
                return(null);
            }
Esempio n. 2
0
 /// <summary>
 /// Loads a custom item
 /// </summary>
 /// <param name="name">Item's internal name</param>
 /// <param name="languageName">Item's display name</param>
 /// <param name="languageTooltip">Item's tooltip</param>
 /// <param name="from">Item's ingredient</param>
 /// <param name="fromstring">Item's ingredient's name</param>
 /// <param name="inassetbundles">What assetbundle the sprite of the item is in</param>
 /// <param name="assetPath">The name of the sprite</param>
 /// <param name="alt_assetPath">The name of the alternative sprite</param>
 public static void Custom(string name, string languageName, string languageTooltip, TechType from, string alt_assetPath, string assetPath, InAssetBundles inassetbundles = InAssetBundles.All)
 {
     try
     {
         var _x              = 1;
         var _y              = 1;
         var _a              = 10;
         var _e              = true;
         var Config          = MI.Config.cfgfile;
         var moreingots      = Load.moreingots;
         var ingotsplus      = Load.ingotsplus;
         var moreingots_salt = Load.moreingots_salt;
         var ingotsplus_salt = Load.ingotsplus_salt;
         var fromstring      = from.ToString();
         Config.TryGet(ref _x, languageName, "Size", "x");
         Config.TryGet(ref _y, languageName, "Size", "y");
         Config.TryGet(ref _a, languageName, "Craft amount");
         Config.TryGet(ref _e, languageName, "Enabled");
         Log.Debug(languageName, Status.Start);
         if (_e == false)
         {
             Log.Debug(languageName, "Item is disabled");
             return;
         }
         Log.Debug(languageName, "Checking config data for errors... (0/6)");
         if (_x <= 0)
         {
             _x = 1;
             Config[languageName, "Size", "x"] = _x;
             Log.Warning(languageName, "X can't be less than 1");
             Log.Info(languageName, "X was set to 1");
         }
         Log.Debug(languageName, "Checking config data for errors... (1/6)");
         if (_x > 6)
         {
             _x = 1;
             Config[languageName, "Size", "x"] = _x;
             Log.Warning(languageName, "X can't be greater than 6");
             Log.Info(languageName, "X was set to 1");
         }
         Log.Debug(languageName, "Checking config data for errors... (2/6)");
         if (_y <= 0)
         {
             _y = 1;
             Config[languageName, "Size", "y"] = _y;
             Log.Warning(languageName, "Y can't be less than 1");
             Log.Info(languageName, "Y was set to 1");
         }
         Log.Debug(languageName, "Checking config data for errors... (3/6)");
         if (_y > 8)
         {
             _y = 1;
             Config[languageName, "Size", "y"] = _y;
             Log.Warning(languageName, "Y can't be greater than 8");
             Log.Info(languageName, "Y was set to 1");
         }
         Log.Debug(languageName, "Checking config data for errors... (4/6)");
         if (_a <= 0)
         {
             _a = 10;
             Config[languageName, "Craft amount"] = _a;
             Log.Warning(languageName, "Craft amount can't be less than 1");
             Log.Info(languageName, "Craft amount was set to 10");
         }
         Log.Debug(languageName, "Checking config data for errors... (5/6)");
         if (_a > 10)
         {
             _a = 10;
             Config[languageName, "Craft amount"] = _a;
             Log.Warning(languageName, "Craft amount can't be greater than 10");
             Log.Info(languageName, "Craft amount was set to 10");
         }
         Log.Debug(languageName, "Checking config data for errors... (6/6)");
         Log.Debug(languageName, "Error check complete");
         MI.Config.Save(languageName);
         Log.Debug(languageName, "Adding TechType...");
         var techType = TechTypePatcher.AddTechType(name, languageName, languageTooltip);
         Log.Debug(languageName, "TechType added");
         Log.Debug(languageName, "Loading TechDatas... (0/2)");
         var techData = new TechDataHelper
         {
             _craftAmount = 1,
             _ingredients = new List <IngredientHelper>()
             {
                 new IngredientHelper(from, _a)
             },
             _techType = techType
         };
         Log.Debug(languageName, "Loading TechDatas... (1/2)");
         var techDataB = new TechDataHelper
         {
             _craftAmount = _a,
             _ingredients = new List <IngredientHelper>()
             {
                 new IngredientHelper(techType, 1)
             },
             _techType = from
         };
         Log.Debug(languageName, "Loading TechDatas... (2/2)");
         Log.Debug(languageName, "TechDatas loaded");
         Log.Debug(languageName, "Adding unlock on start for " + from + "...");
         KnownTechPatcher.unlockedAtStart.Add(from);
         Log.Debug(languageName, "Unlock on start added for " + from);
         Log.Debug(languageName, "Adding TechTypes to the PDA Databank... (0/2)");
         CraftDataPatcher.AddToCustomGroup(TechGroup.Resources, TechCategory.BasicMaterials, techType);
         Log.Debug(languageName, "Adding TechTypes to the PDA Databank... (1/2)");
         CraftDataPatcher.AddToCustomGroup(TechGroup.Resources, TechCategory.BasicMaterials, from);
         Log.Debug(languageName, "Adding TechTypes to the PDA Databank... (2/2)");
         Log.Debug(languageName, "TechTypes added to the PDA Databank");
         Log.Debug(languageName, "Linking TechDatas with TechTypes... (0/2)");
         CraftDataPatcher.customTechData.Add(techType, techData);
         Log.Debug(languageName, "Linking TechDatas with TechTypes... (1/2)");
         CraftDataPatcher.customTechData.Add(from, techDataB);
         Log.Debug(languageName, "Linking TechDatas with TechTypes... (2/2)");
         Log.Debug(languageName, "TechDatas linked with TechTypes");
         Log.Debug(languageName, "Adding Fabricator nodes... (0/2)");
         CraftTreePatcher.customNodes.Add(new CustomCraftNode(techType, CraftScheme.Fabricator, "Resources/Craft/" + name));
         Log.Debug(languageName, "Adding Fabricator nodes... (1/2)");
         CraftTreePatcher.customNodes.Add(new CustomCraftNode(from, CraftScheme.Fabricator, "Resources/Unpack/" + fromstring));
         Log.Debug(languageName, "Adding Fabricator nodes... (2/2)");
         Log.Debug(languageName, "Fabricator nodes added");
         Log.Debug(languageName, "Applying item sizes...");
         CraftDataPatcher.customItemSizes[key : techType] = new Vector2int(_x, _y);
         Log.Debug(languageName, "Item sizes applied");
         Log.Debug(languageName, "Starting sprite loading...");
         if (inassetbundles == InAssetBundles.All)
         {
             if (MI.Config._alttextures)
             {
                 Log.Debug(languageName, "Asset bundle \"moreingots\" selected");
                 Log.Debug(languageName, "Obtaining sprite...");
                 if (moreingots.LoadAsset <Sprite>(alt_assetPath) == null)
                 {
                     Log.Error(languageName, "Sprite is null");
                     Log.Debug(languageName, Status.Stop);
                     return;
                 }
                 var alt_sprite = moreingots.LoadAsset <Sprite>(alt_assetPath);
                 Log.Debug(languageName, "Sprite obtained");
                 Log.Debug(languageName, "Applying sprite...");
                 CustomSpriteHandler.customSprites.Add(new CustomSprite(techType, alt_sprite));
                 Log.Debug(languageName, "Sprite applied");
             }
             else
             {
                 Log.Debug(languageName, "Asset bundle \"yenzen-ingotsplus\" selected");
                 Log.Debug(languageName, "Obtaining sprite...");
                 if (ingotsplus.LoadAsset <Sprite>(assetPath) == null)
                 {
                     Log.Error(languageName, "Sprite is null");
                     Log.Debug(languageName, Status.Stop);
                     return;
                 }
                 var sprite = ingotsplus.LoadAsset <Sprite>(assetPath);
                 Log.Debug(languageName, "Sprite obtained");
                 Log.Debug(languageName, "Applying sprite...");
                 CustomSpriteHandler.customSprites.Add(new CustomSprite(techType, sprite));
                 Log.Debug(languageName, "Sprite applied");
             }
         }
         if (inassetbundles == InAssetBundles.Salt)
         {
             if (MI.Config._alttextures)
             {
                 Log.Debug(languageName, "Asset bundle \"salt-alexejheroytb\" selected");
                 Log.Debug(languageName, "Obtaining sprite...");
                 if (moreingots_salt.LoadAsset <Sprite>(alt_assetPath) == null)
                 {
                     Log.Error(languageName, "Sprite is null");
                     Log.Debug(languageName, Status.Stop);
                     return;
                 }
                 var alt_sprite = moreingots_salt.LoadAsset <Sprite>(alt_assetPath);
                 Log.Debug(languageName, "Sprite obtained");
                 Log.Debug(languageName, "Applying sprite...");
                 CustomSpriteHandler.customSprites.Add(new CustomSprite(techType, alt_sprite));
                 Log.Debug(languageName, "Sprite applied");
             }
             else
             {
                 Log.Debug(languageName, "Asset bundle \"salt-yenzen\" selected");
                 Log.Debug(languageName, "Obtaining sprite...");
                 if (ingotsplus_salt.LoadAsset <Sprite>(assetPath) == null)
                 {
                     Log.Error(languageName, "Sprite is null");
                     Log.Debug(languageName, Status.Stop);
                     return;
                 }
                 var sprite = ingotsplus_salt.LoadAsset <Sprite>(assetPath);
                 Log.Debug(languageName, "Sprite obtained");
                 Log.Debug(languageName, "Applying sprite...");
                 CustomSpriteHandler.customSprites.Add(new CustomSprite(techType, sprite));
                 Log.Debug(languageName, "Sprite applied");
             }
         }
         if (inassetbundles == InAssetBundles.Sulphur)
         {
             Log.Debug(languageName, "Asset bundle \"sulphur\" selected");
             Log.Debug(languageName, "Obtaining sprite...");
             if (sulphur.LoadAsset <Sprite>(assetPath) == null)
             {
                 Log.Error(languageName, "Sprite is null");
                 Log.Debug(languageName, Status.Stop);
                 return;
             }
             var s_sprite = sulphur.LoadAsset <Sprite>(assetPath);
             Log.Debug(languageName, "Sprite obtained");
             Log.Debug(languageName, "Applying sprite...");
             CustomSpriteHandler.customSprites.Add(new CustomSprite(techType, s_sprite));
             Log.Debug(languageName, "Sprite applied");
         }
         Log.Debug(languageName, Status.Stop);
     }
     catch (Exception e)
     {
         Log.e(e);
     }
 }
Esempio n. 3
0
 /// <summary>
 /// Loads a custom item
 /// Only for new items that dont have an alternative sprite
 /// </summary>
 /// <param name="name">Item's internal name</param>
 /// <param name="languageName">Item's display name</param>
 /// <param name="languageTooltip">Item's tooltip</param>
 /// <param name="from">Item's ingredient</param>
 /// <param name="fromstring">Item's ingredient's name</param>
 /// <param name="inassetbundles">What assetbundle the sprite of the item is in</param>
 /// <param name="assetPath">The name of the sprite</param>
 public static void Custom(string name, string languageName, string languageTooltip, TechType from, string assetPath, InAssetBundles inassetbundles = InAssetBundles.All)
 {
     Custom(name, languageName, languageTooltip, from, null, assetPath, inassetbundles);
 }
            /// <summary>
            /// Loads a custom item
            /// </summary>
            /// <param name="name">Item's internal name</param>
            /// <param name="languageName">Item's display name</param>
            /// <param name="languageTooltip">Item's tooltip</param>
            /// <param name="from">Item's ingredient</param>
            /// <param name="fromstring">Item's ingredient's name</param>
            /// <param name="inassetbundles">What assetbundle the sprite of the item is in</param>
            /// <param name="assetPath">The name of the sprite</param>
            public static void Custom(string name, string languageName, string languageTooltip, TechType from, string assetPath, InAssetBundles inassetbundles = InAssetBundles.All)
            {
                try
                {
                    TechType techType;
                    var      _x = 1;
                    var      _y = 1;
                    var      _a = 10;
                    var      _e = true;

                    var fromstring = from.ToString();

                    Log.Debug(languageName, Status.Start);
                    if (ConfigCheck(languageName))
                    {
                        var Config = MI.Config.cfgfile;
                        Config.TryGet(ref _x, languageName, "Size", "x");
                        Config.TryGet(ref _y, languageName, "Size", "y");
                        Config.TryGet(ref _a, languageName, "Craft amount");
                        Config.TryGet(ref _e, languageName, "Enabled");
                    }
                    else
                    {
                        return;
                    }
                    Log.Debug(languageName, "Starting sprite loading...");
                    var sprite = LoadSprite(languageName, assetPath, inassetbundles);
                    if (sprite == null)
                    {
                        return;
                    }
                    Log.Debug(languageName, "Adding TechType...");
                    techType = TechTypeHandler.AddTechType(name, languageName, languageTooltip, sprite);
                    Log.Debug(languageName, "TechType added");
                    Log.Debug(languageName, "Loading TechDatas... (0/2)");
                    var techData = new TechData()
                    {
                        craftAmount = 1,
                        Ingredients = new List <Ingredient>()
                        {
                            new Ingredient(from, _a)
                        }
                    };
                    Log.Debug(languageName, "Loading TechDatas... (1/2)");
                    var techDataB = new TechData()
                    {
                        craftAmount = _a,
                        Ingredients = new List <Ingredient>()
                        {
                            new Ingredient(techType, 1)
                        }
                    };
                    Log.Debug(languageName, "Loading TechDatas... (2/2)");
                    Log.Debug(languageName, "TechDatas loaded");
                    #region Add to PDA/Fabricator
                    Log.Debug(languageName, "Adding TechTypes to the PDA Databank... (0/2)");
                    CraftDataHandler.AddToGroup(TechGroup.Resources, TechCategory.BasicMaterials, techType);
                    Log.Debug(languageName, "Adding TechTypes to the PDA Databank... (1/2)");
                    CraftDataHandler.AddToGroup(TechGroup.Resources, TechCategory.BasicMaterials, from);
                    Log.Debug(languageName, "Adding TechTypes to the PDA Databank... (2/2)");
                    Log.Debug(languageName, "TechTypes added to the PDA Databank");
                    Log.Debug(languageName, "Linking TechDatas with TechTypes... (0/2)");
                    CraftDataHandler.SetTechData(techType, techData);
                    Log.Debug(languageName, "Linking TechDatas with TechTypes... (1/2)");
                    CraftDataHandler.SetTechData(from, techDataB);
                    Log.Debug(languageName, "Linking TechDatas with TechTypes... (2/2)");
                    Log.Debug(languageName, "TechDatas linked with TechTypes");
                    Log.Debug(languageName, "Adding Fabricator nodes... (0/2)");
                    CraftTreeHandler.AddCraftingNode(CraftTree.Type.Fabricator, techType, "Resources", "Craft");
                    Log.Debug(languageName, "Adding Fabricator nodes... (1/2)");
                    CraftTreeHandler.AddCraftingNode(CraftTree.Type.Fabricator, from, "Resources", "Unpack");
                    Log.Debug(languageName, "Adding Fabricator nodes... (2/2)");
                    Log.Debug(languageName, "Fabricator nodes added");
                    Log.Debug(languageName, "Applying item sizes...");
                    CraftDataHandler.SetItemSize(techType, new Vector2int(_x, _y));
                    Log.Debug(languageName, "Item sizes applied");
                    #endregion
                    Log.Debug(languageName, Status.Stop);
                }
                catch (Exception e)
                {
                    Log.e(e);
                }
            }