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); }
/// <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); } }
/// <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); } }