public UMADynamicCharacterAvatarRecipe(DynamicCharacterAvatar dca, string recipeName = "", DynamicCharacterAvatar.SaveOptions customSaveOptions = DynamicCharacterAvatar.SaveOptions.useDefaults) { recipeType = "DynamicCharacterAvatar"; if (customSaveOptions.HasFlagSet(DynamicCharacterAvatar.SaveOptions.useDefaults)) { customSaveOptions = dca.defaultSaveOptions; } if (recipeName == "") { recipeName = dca.gameObject.name; } recipeString = JsonUtility.ToJson(new DCSPackRecipe(dca, recipeName, "DynamicCharacterAvatar", customSaveOptions)); }
/// <summary> /// Use this model for saving a DCS Avatar to a light weight json string. Use the save options flags to determine what aspects of the avatar are saved /// </summary> /// <param name="dcaToSave"></param> /// <param name="recipeName"></param> /// <param name="pRecipeType"></param> /// <param name="saveOptions"></param> /// <param name="slotsToSave"></param> public DCSPackRecipe(DynamicCharacterAvatar dcaToSave, string recipeName, string pRecipeType, DynamicCharacterAvatar.SaveOptions saveOptions, params string[] slotsToSave) { if (pRecipeType != "DynamicCharacterAvatar") { Debug.LogWarning("DCSPackRecipe Type can only be used for recipeTypes 'DynamicCharacterAvatar'"); return; } var recipeToSave = dcaToSave.umaData.umaRecipe; packedRecipeType = pRecipeType; name = recipeName; race = dcaToSave.activeRace.racedata.raceName; if (saveOptions.HasFlagSet(DynamicCharacterAvatar.SaveOptions.saveDNA)) { dna = GetPackedDNA(recipeToSave); } if (saveOptions.HasFlagSet(DynamicCharacterAvatar.SaveOptions.saveColors)) { characterColors = new List <PackedOverlayColorDataV3>(); for (int i = 0; i < recipeToSave.sharedColors.Length; i++) { characterColors.Add(new PackedOverlayColorDataV3(recipeToSave.sharedColors[i])); } } if (saveOptions.HasFlagSet(DynamicCharacterAvatar.SaveOptions.saveWardrobe)) { wardrobeSet = GenerateWardrobeSet(dcaToSave.WardrobeRecipes, dcaToSave.WardrobeCollections, slotsToSave); } if (saveOptions.HasFlagSet(DynamicCharacterAvatar.SaveOptions.saveAnimator)) { if (dcaToSave.animationController != null) { raceAnimatorController = (dcaToSave.animationController.name); } } }