Example #1
0
 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);
                    }
                }
            }