private void UnlockCustomizations(object sender, System.Windows.RoutedEventArgs e) { List <string> customizationAssetPaths = DataPathTranslations.GetCustomizationAssetPaths(); List <OakCustomizationSaveGameData> saveData = loadedProfile.UnlockedCustomizations; List <OakCustomizationSaveGameData> output = new List <OakCustomizationSaveGameData>(); foreach (string assetPath in customizationAssetPaths) { string lowerAsset = assetPath.ToLower(); if (lowerAsset.Contains("default") || (lowerAsset.Contains("emote") && (lowerAsset.Contains("wave") || lowerAsset.Contains("cheer") || lowerAsset.Contains("laugh") || lowerAsset.Contains("point")))) { continue; } //if (!lowerAsset.Contains("beastmaster")) continue; bool bAlreadyOwnsCustomization = false; foreach (OakCustomizationSaveGameData customizatonData in saveData) { if (customizatonData.CustomizationAssetPath.Equals(assetPath)) { bAlreadyOwnsCustomization = true; break; } } if (!bAlreadyOwnsCustomization) { OakCustomizationSaveGameData d = new OakCustomizationSaveGameData { CustomizationAssetPath = assetPath, IsNew = true }; output.Add(d); Console.WriteLine("Doesn't own customization: {0}", assetPath); } } saveData.AddRange(output); }
private void UnlockCustomizations(object sender, System.Windows.RoutedEventArgs e) { List <string> customizationAssetPaths = DataPathTranslations.GetCustomizationAssetPaths(); List <OakCustomizationSaveGameData> saveData = loadedProfile.UnlockedCustomizations; List <OakCustomizationSaveGameData> output = new List <OakCustomizationSaveGameData>(); foreach (string assetPath in customizationAssetPaths) { string lowerAsset = assetPath.ToLower(); if (lowerAsset.Contains("default") || (lowerAsset.Contains("emote") && (lowerAsset.Contains("wave") || lowerAsset.Contains("cheer") || lowerAsset.Contains("laugh") || lowerAsset.Contains("point")))) { continue; } bool bAlreadyOwnsCustomization = false; foreach (OakCustomizationSaveGameData customizatonData in saveData) { if (customizatonData.CustomizationAssetPath.Equals(assetPath)) { bAlreadyOwnsCustomization = true; break; } } if (!bAlreadyOwnsCustomization) { OakCustomizationSaveGameData d = new OakCustomizationSaveGameData { CustomizationAssetPath = assetPath, IsNew = true }; output.Add(d); Console.WriteLine("Doesn't own customization: {0}", assetPath); } } saveData.AddRange(output); // The weapon trinkets / skins use a different format so we'll want to add this List <OakInventoryCustomizationPartInfo> weaponOut = new List <OakInventoryCustomizationPartInfo>(); foreach (uint assetHash in DataPathTranslations.GetWeaponCustomizationPaths()) { bool bOwnsHash = false; foreach (OakInventoryCustomizationPartInfo partInfo in loadedProfile.UnlockedInventoryCustomizationParts) { if (partInfo.CustomizationPartHash.Equals(assetHash)) { bOwnsHash = true; break; } } if (!bOwnsHash) { OakInventoryCustomizationPartInfo customizationInfo = new OakInventoryCustomizationPartInfo { CustomizationPartHash = assetHash, IsNew = true }; weaponOut.Add(customizationInfo); } } loadedProfile.UnlockedInventoryCustomizationParts.AddRange(weaponOut); }