Decompiled source of KommooLoader v1.0.1
KommooLoader.dll
Decompiled 3 weeks ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Security.Permissions; using BepInEx; using BepInEx.Logging; using DynamicSkinBuilder; using MonoMod.RuntimeDetour; using MonoMod.RuntimeDetour.HookGen; using RoR2; using RuneFoxMods; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Rendering; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("0.0.0.0")] namespace KommooLoader { [BepInPlugin("com.TailLover.KommooLoader", "KommooLoader", "0.5.0")] public class KommooLoaderPlugin : BaseUnityPlugin { private class Modification { public string prefabpath; public string bodyname; public string parentname; public GameObject prefab; public bool affectsbasemodel; public DynamicBoneData dynamicBoneData; public string parentSkinToken; public int boneIndex; public int boneCount; public GameObject instance; public GameObject inst_armature; public DynamicBone inst_dynamicBone; public List<DynamicBoneCollider> inst_DB_colliders = new List<DynamicBoneCollider>(); public Modification(string PrefabPath, string ParentName, string BodyName, string ParentSkinToken, bool AffectsBaseModel, AssetBundle assetBundle) { bodyname = BodyName; prefabpath = PrefabPath; parentname = ParentName; parentSkinToken = ParentSkinToken; affectsbasemodel = AffectsBaseModel; prefab = assetBundle.LoadAsset<GameObject>(prefabpath); if ((Object)(object)prefab == (Object)null) { Debug.LogWarning((object)("Asset at " + PrefabPath + " was not loaded")); } } } private class AppliedModifications { public Stack<Modification> BaseModelModifications = new Stack<Modification>(); public List<Modification> OtherModifications = new List<Modification>(); } private class DynamicBoneData { public string m_Root; public float m_Damping; public AnimationCurve m_DampingDistrib; public float m_Elasticity; public AnimationCurve m_ElasticityDistrib; public float m_Stiffness; public AnimationCurve m_StiffnessDistrib; public float m_Inert; public AnimationCurve m_InertDistrib; public float m_Radius; public AnimationCurve m_RadiusDistrib; public float m_EndLength; public Vector3 m_EndOffset; public Vector3 m_Gravity; public Vector3 m_Force; public List<DynamicBoneColliderData> m_Colliders; public List<string> m_Exclusions; public FreezeAxis m_FreezeAxis; public DynamicBoneData(string root, float damping, AnimationCurve damping_dist, float elasticity, AnimationCurve elasticity_dist, float stiffness, AnimationCurve stiffness_dist, float inert, AnimationCurve inert_dist, float radius, AnimationCurve radius_dist, float end_length, Vector3 end_offset, Vector3 gravity, Vector3 force, List<DynamicBoneColliderData> colliders, List<string> exclusions, FreezeAxis freeze_axis) { //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) m_Root = root; m_Damping = damping; m_DampingDistrib = damping_dist; m_Elasticity = elasticity; m_ElasticityDistrib = elasticity_dist; m_Stiffness = stiffness; m_StiffnessDistrib = stiffness_dist; m_Inert = inert; m_InertDistrib = inert_dist; m_Radius = radius; m_RadiusDistrib = radius_dist; m_EndLength = end_length; m_EndOffset = end_offset; m_Gravity = gravity; m_Force = force; m_Colliders = colliders; m_Exclusions = exclusions; m_FreezeAxis = freeze_axis; } } private class DynamicBoneColliderData { public string m_parent_name; public Direction m_Direction; public Vector3 m_Center; public Bound m_Bound; public float m_Radius; public float m_Height; public DynamicBoneColliderData(string parent_name, Direction direction, Vector3 Center, Bound bound, float radius, float heaight) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) m_parent_name = parent_name; m_Direction = direction; m_Center = Center; m_Bound = bound; m_Radius = radius; m_Height = heaight; } } private Modification KommoLoaderSkinarmplate1_lModification; private Modification KommoLoaderSkinarmplate1_rModification; private Modification KommoLoaderSkinarmplate2_lModification; private Modification KommoLoaderSkinarmplate2_rModification; private Modification KommoLoaderSkinarmplate3_lModification; private Modification KommoLoaderSkinarmplate3_rModification; private Modification KommoLoaderSkinarmplate4_lModification; private Modification KommoLoaderSkinarmplate4_rModification; private Modification KommoLoaderSkinChimes1_1Modification; private Modification KommoLoaderSkinChimes2_1Modification; private Modification KommoLoaderSkinChimes3_1Modification; private Modification KommoLoaderSkinChimes4_1Modification; private Modification KommoLoaderSkinFluffCRootModification; private Modification KommoLoaderSkinFluffLRootModification; private Modification KommoLoaderSkinFluffRRootModification; private Modification KommoLoaderSkinHeadChimeCModification; private Modification KommoLoaderSkinHeadChimeLModification; private Modification KommoLoaderSkinHeadChimeRModification; private Modification KommoLoaderSkinTail1Modification; private Modification ShinyKommoLoaderSkinarmplate1_lModification; private Modification ShinyKommoLoaderSkinarmplate1_rModification; private Modification ShinyKommoLoaderSkinarmplate2_lModification; private Modification ShinyKommoLoaderSkinarmplate2_rModification; private Modification ShinyKommoLoaderSkinarmplate3_lModification; private Modification ShinyKommoLoaderSkinarmplate3_rModification; private Modification ShinyKommoLoaderSkinarmplate4_lModification; private Modification ShinyKommoLoaderSkinarmplate4_rModification; private Modification ShinyKommoLoaderSkinChimes1_1Modification; private Modification ShinyKommoLoaderSkinChimes2_1Modification; private Modification ShinyKommoLoaderSkinChimes3_1Modification; private Modification ShinyKommoLoaderSkinChimes4_1Modification; private Modification ShinyKommoLoaderSkinFluffCRootModification; private Modification ShinyKommoLoaderSkinFluffLRootModification; private Modification ShinyKommoLoaderSkinFluffRRootModification; private Modification ShinyKommoLoaderSkinHeadChimeCModification; private Modification ShinyKommoLoaderSkinHeadChimeLModification; private Modification ShinyKommoLoaderSkinHeadChimeRModification; private Modification ShinyKommoLoaderSkinTail1Modification; public static Dictionary<string, SkinDef> SkinDefs = new Dictionary<string, SkinDef>(); private static GameObject LastModelObject; private static List<Modification> ModificationList = new List<Modification>(); private static Dictionary<GameObject, AppliedModifications> ModifiedObjects = new Dictionary<GameObject, AppliedModifications>(); private static AssetBundle assetBundle; private static readonly List<Material> materialsWithRoRShader = new List<Material>(); internal static KommooLoaderPlugin Instance { get; private set; } internal static ManualLogSource InstanceLogger { get { KommooLoaderPlugin instance = Instance; return (instance != null) ? ((BaseUnityPlugin)instance).Logger : null; } } private static void SkinDefApply(Action<SkinDef, GameObject> orig, SkinDef self, GameObject modelObject) { orig(self, modelObject); RemoveInvalidModelObjects(); ModifiedObjects.TryGetValue(modelObject, out var value); try { if (!SkinDefs.TryGetValue(self.nameToken, out var _)) { if (value != null) { ClearSkinModifications(LastModelObject, value); } } else if (value == null) { AppliedModifications appliedModifications = new AppliedModifications(); ModifiedObjects.Add(modelObject, appliedModifications); ApplySkinModifications(self, modelObject, appliedModifications); } } catch (Exception ex) { InstanceLogger.LogWarning((object)"An error occured while adding accessories to a skin"); InstanceLogger.LogError((object)ex); } } private static void RemoveInvalidModelObjects() { foreach (GameObject item in ModifiedObjects.Keys.Where((GameObject el) => !Object.op_Implicit((Object)(object)el)).ToList()) { ModifiedObjects.Remove(item); } } private static void ClearSkinModifications(GameObject modelObject, AppliedModifications modifications) { while (modifications.BaseModelModifications.Count != 0) { Modification modification = modifications.BaseModelModifications.Pop(); clearModification(modification, modelObject, modifications); } while (modifications.OtherModifications.Count != 0) { clearModification(modifications.OtherModifications[0], modelObject, modifications); } ModifiedObjects.Remove(modelObject); } private static void ApplySkinModifications(SkinDef skindef, GameObject modelObject, AppliedModifications modifications) { CharacterModel component = modelObject.GetComponent<CharacterModel>(); LastModelObject = modelObject; foreach (Modification modification in ModificationList) { if (modification.parentSkinToken == skindef.nameToken) { ApplyModification(modelObject, component, modification, modifications); } } } private static void ApplyModification(GameObject modelObject, CharacterModel characterModel, Modification modification, AppliedModifications modifications) { //IL_043e: Unknown result type (might be due to invalid IL or missing references) //IL_0460: Unknown result type (might be due to invalid IL or missing references) //IL_0473: Unknown result type (might be due to invalid IL or missing references) //IL_0475: Unknown result type (might be due to invalid IL or missing references) //IL_01b9: Unknown result type (might be due to invalid IL or missing references) //IL_01be: Unknown result type (might be due to invalid IL or missing references) //IL_01c7: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: Unknown result type (might be due to invalid IL or missing references) //IL_01d5: Unknown result type (might be due to invalid IL or missing references) //IL_01da: Unknown result type (might be due to invalid IL or missing references) //IL_031f: Unknown result type (might be due to invalid IL or missing references) //IL_0324: Unknown result type (might be due to invalid IL or missing references) //IL_0331: Unknown result type (might be due to invalid IL or missing references) //IL_0336: Unknown result type (might be due to invalid IL or missing references) //IL_0343: Unknown result type (might be due to invalid IL or missing references) //IL_0348: Unknown result type (might be due to invalid IL or missing references) //IL_03d9: Unknown result type (might be due to invalid IL or missing references) //IL_03de: Unknown result type (might be due to invalid IL or missing references) string bodyname = modification.bodyname; string parentname = modification.parentname; Transform val = Utils.FindChildInTree(modelObject.transform, parentname); GameObject val2; if (modification.affectsbasemodel) { val2 = Object.Instantiate<GameObject>(modification.prefab, val, false); ((Object)val2).name = Utils.RemoveCloneNaming(((Object)val2).name); modification.instance = val2; modification.inst_armature = val2; SkinnedMeshRenderer[] baseSkinRenderers = DynamicSkinHelpers.GetBaseSkinRenderers(modelObject); List<Transform> list = baseSkinRenderers[0].bones.ToList(); int num = DynamicSkinHelpers.FindBoneIndex2(val, list); Transform[] array = DynamicSkinHelpers.BoneArrayBuilder(modification.instance.transform); list.InsertRange(num, array); modification.boneIndex = num; modification.boneCount = array.Length; SkinnedMeshRenderer[] array2 = baseSkinRenderers; foreach (SkinnedMeshRenderer val3 in array2) { val3.bones = list.ToArray(); } modifications.BaseModelModifications.Push(modification); } else { val2 = Object.Instantiate<GameObject>(modification.prefab, modelObject.transform, false); ((Object)val2).name = Utils.RemoveCloneNaming(((Object)val2).name); modification.instance = val2; Transform armature = DynamicSkinHelpers.GetArmature(val2); ((Component)armature).transform.SetParent(val, false); modification.inst_armature = ((Component)armature).gameObject; } modification.instance = val2; if (modification.dynamicBoneData != null) { DynamicBone val4 = (modification.inst_dynamicBone = modification.instance.AddComponent<DynamicBone>()); List<DynamicBoneCollider> list2 = new List<DynamicBoneCollider>(); foreach (DynamicBoneColliderData collider in modification.dynamicBoneData.m_Colliders) { Transform val5 = Utils.FindChildInTree(modelObject.transform, collider.m_parent_name); DynamicBoneCollider val6 = ((Component)val5).gameObject.AddComponent<DynamicBoneCollider>(); val6.m_Direction = collider.m_Direction; val6.m_Center = collider.m_Center; val6.m_Bound = collider.m_Bound; val6.m_Radius = collider.m_Radius; val6.m_Height = collider.m_Height; list2.Add(val6); } modification.inst_DB_colliders = list2; Transform root = (val4.m_Root = Utils.FindChildInTree(modification.inst_armature.transform, modification.dynamicBoneData.m_Root)); val4.m_Damping = modification.dynamicBoneData.m_Damping; val4.m_DampingDistrib = modification.dynamicBoneData.m_DampingDistrib; val4.m_Elasticity = modification.dynamicBoneData.m_Elasticity; val4.m_ElasticityDistrib = modification.dynamicBoneData.m_ElasticityDistrib; val4.m_Stiffness = modification.dynamicBoneData.m_Stiffness; val4.m_StiffnessDistrib = modification.dynamicBoneData.m_StiffnessDistrib; val4.m_Inert = modification.dynamicBoneData.m_Inert; val4.m_InertDistrib = modification.dynamicBoneData.m_InertDistrib; val4.m_Radius = modification.dynamicBoneData.m_Radius; val4.m_RadiusDistrib = modification.dynamicBoneData.m_RadiusDistrib; val4.m_EndLength = modification.dynamicBoneData.m_EndLength; val4.m_EndOffset = modification.dynamicBoneData.m_EndOffset; val4.m_Gravity = modification.dynamicBoneData.m_Gravity; val4.m_Force = modification.dynamicBoneData.m_Force; val4.m_Colliders = list2; val4.m_Exclusions = new List<Transform>(); foreach (string exclusion in modification.dynamicBoneData.m_Exclusions) { Transform val7 = Utils.FindChildInTree(root, exclusion); if ((Object)(object)val7 != (Object)null) { val4.m_Exclusions.Add(val7); } else { Debug.LogWarning((object)"Tried to exclude a transform that could not be found"); } } val4.m_FreezeAxis = modification.dynamicBoneData.m_FreezeAxis; } SkinnedMeshRenderer[] componentsInChildren = val2.GetComponentsInChildren<SkinnedMeshRenderer>(true); Array.Resize(ref characterModel.baseRendererInfos, characterModel.baseRendererInfos.Length + componentsInChildren.Length); if (componentsInChildren.Length != 0) { int num2 = componentsInChildren.Length; SkinnedMeshRenderer[] array3 = componentsInChildren; foreach (SkinnedMeshRenderer val8 in array3) { characterModel.baseRendererInfos[characterModel.baseRendererInfos.Length - num2] = new RendererInfo { renderer = (Renderer)(object)componentsInChildren[^num2], ignoreOverlays = false, defaultShadowCastingMode = (ShadowCastingMode)1, defaultMaterial = ((Renderer)val8).sharedMaterial }; num2--; } } modifications.OtherModifications.Add(modification); } private static void clearModification(Modification modification, GameObject modelObject, AppliedModifications modifications) { if (modification.inst_DB_colliders != null) { foreach (DynamicBoneCollider inst_DB_collider in modification.inst_DB_colliders) { Object.Destroy((Object)(object)inst_DB_collider); } } if (modification.affectsbasemodel) { SkinnedMeshRenderer[] baseSkinRenderers = DynamicSkinHelpers.GetBaseSkinRenderers(modelObject); List<Transform> list = baseSkinRenderers[0].bones.ToList(); list.RemoveRange(modification.boneIndex, modification.boneCount); SkinnedMeshRenderer[] array = baseSkinRenderers; foreach (SkinnedMeshRenderer val in array) { val.bones = list.ToArray(); } } Object.Destroy((Object)(object)modifications.OtherModifications[0].inst_dynamicBone); Object.Destroy((Object)(object)modifications.OtherModifications[0].inst_armature); Object.Destroy((Object)(object)modifications.OtherModifications[0].instance); if (!modifications.OtherModifications.Remove(modification)) { InstanceLogger.LogError((object)"Skin Modification was not removed"); } } private void Start() { Instance = this; BeforeStart(); using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("KommooLoader.tailloverkommooloader")) { assetBundle = AssetBundle.LoadFromStream(stream); } ((ResourceAvailability)(ref BodyCatalog.availability)).CallWhenAvailable((Action)BodyCatalogInit); HookEndpointManager.Add((MethodBase)typeof(Language).GetMethod("LoadStrings"), (Delegate)new Action<Action<Language>, Language>(LanguageLoadStrings)); ReplaceShaders(); AfterStart(); } private void BeforeStart() { //IL_0028: Unknown result type (might be due to invalid IL or missing references) Instance = this; new Hook((MethodBase)typeof(SkinDef).GetMethod("Apply"), (Delegate)new Action<Action<SkinDef, GameObject>, SkinDef, GameObject>(SkinDefApply)).Apply(); } private void AfterStart() { //IL_05bc: Unknown result type (might be due to invalid IL or missing references) //IL_05d0: Unknown result type (might be due to invalid IL or missing references) //IL_05e4: Unknown result type (might be due to invalid IL or missing references) //IL_0604: Unknown result type (might be due to invalid IL or missing references) //IL_066c: Unknown result type (might be due to invalid IL or missing references) //IL_0680: Unknown result type (might be due to invalid IL or missing references) //IL_0694: Unknown result type (might be due to invalid IL or missing references) //IL_06b4: Unknown result type (might be due to invalid IL or missing references) //IL_071c: Unknown result type (might be due to invalid IL or missing references) //IL_0730: Unknown result type (might be due to invalid IL or missing references) //IL_0744: Unknown result type (might be due to invalid IL or missing references) //IL_0764: Unknown result type (might be due to invalid IL or missing references) //IL_07cc: Unknown result type (might be due to invalid IL or missing references) //IL_07e0: Unknown result type (might be due to invalid IL or missing references) //IL_07f4: Unknown result type (might be due to invalid IL or missing references) //IL_0814: Unknown result type (might be due to invalid IL or missing references) //IL_087c: Unknown result type (might be due to invalid IL or missing references) //IL_0890: Unknown result type (might be due to invalid IL or missing references) //IL_08a4: Unknown result type (might be due to invalid IL or missing references) //IL_08c4: Unknown result type (might be due to invalid IL or missing references) //IL_0938: Unknown result type (might be due to invalid IL or missing references) //IL_094c: Unknown result type (might be due to invalid IL or missing references) //IL_0960: Unknown result type (might be due to invalid IL or missing references) //IL_0980: Unknown result type (might be due to invalid IL or missing references) //IL_09e8: Unknown result type (might be due to invalid IL or missing references) //IL_09fc: Unknown result type (might be due to invalid IL or missing references) //IL_0a10: Unknown result type (might be due to invalid IL or missing references) //IL_0a30: Unknown result type (might be due to invalid IL or missing references) //IL_0aa4: Unknown result type (might be due to invalid IL or missing references) //IL_0ab8: Unknown result type (might be due to invalid IL or missing references) //IL_0acc: Unknown result type (might be due to invalid IL or missing references) //IL_0aec: Unknown result type (might be due to invalid IL or missing references) //IL_0b54: Unknown result type (might be due to invalid IL or missing references) //IL_0b68: Unknown result type (might be due to invalid IL or missing references) //IL_0b7c: Unknown result type (might be due to invalid IL or missing references) //IL_0bd3: Unknown result type (might be due to invalid IL or missing references) //IL_0be7: Unknown result type (might be due to invalid IL or missing references) //IL_0bfb: Unknown result type (might be due to invalid IL or missing references) //IL_0c52: Unknown result type (might be due to invalid IL or missing references) //IL_0c66: Unknown result type (might be due to invalid IL or missing references) //IL_0c7a: Unknown result type (might be due to invalid IL or missing references) //IL_0cd1: Unknown result type (might be due to invalid IL or missing references) //IL_0ce5: Unknown result type (might be due to invalid IL or missing references) //IL_0cf9: Unknown result type (might be due to invalid IL or missing references) //IL_0d50: Unknown result type (might be due to invalid IL or missing references) //IL_0d64: Unknown result type (might be due to invalid IL or missing references) //IL_0d78: Unknown result type (might be due to invalid IL or missing references) //IL_0dcf: Unknown result type (might be due to invalid IL or missing references) //IL_0de3: Unknown result type (might be due to invalid IL or missing references) //IL_0df7: Unknown result type (might be due to invalid IL or missing references) //IL_0e4e: Unknown result type (might be due to invalid IL or missing references) //IL_0e62: Unknown result type (might be due to invalid IL or missing references) //IL_0e76: Unknown result type (might be due to invalid IL or missing references) //IL_0ecd: Unknown result type (might be due to invalid IL or missing references) //IL_0ee1: Unknown result type (might be due to invalid IL or missing references) //IL_0ef5: Unknown result type (might be due to invalid IL or missing references) //IL_0f4c: Unknown result type (might be due to invalid IL or missing references) //IL_0f60: Unknown result type (might be due to invalid IL or missing references) //IL_0f74: Unknown result type (might be due to invalid IL or missing references) //IL_0fcb: Unknown result type (might be due to invalid IL or missing references) //IL_0fdf: Unknown result type (might be due to invalid IL or missing references) //IL_0ff3: Unknown result type (might be due to invalid IL or missing references) //IL_104a: Unknown result type (might be due to invalid IL or missing references) //IL_105e: Unknown result type (might be due to invalid IL or missing references) //IL_1072: Unknown result type (might be due to invalid IL or missing references) //IL_10c9: Unknown result type (might be due to invalid IL or missing references) //IL_10dd: Unknown result type (might be due to invalid IL or missing references) //IL_10f1: Unknown result type (might be due to invalid IL or missing references) //IL_1111: Unknown result type (might be due to invalid IL or missing references) //IL_1179: Unknown result type (might be due to invalid IL or missing references) //IL_118d: Unknown result type (might be due to invalid IL or missing references) //IL_11a1: Unknown result type (might be due to invalid IL or missing references) //IL_11c1: Unknown result type (might be due to invalid IL or missing references) //IL_1229: Unknown result type (might be due to invalid IL or missing references) //IL_123d: Unknown result type (might be due to invalid IL or missing references) //IL_1251: Unknown result type (might be due to invalid IL or missing references) //IL_1271: Unknown result type (might be due to invalid IL or missing references) //IL_12d9: Unknown result type (might be due to invalid IL or missing references) //IL_12ed: Unknown result type (might be due to invalid IL or missing references) //IL_1301: Unknown result type (might be due to invalid IL or missing references) //IL_1321: Unknown result type (might be due to invalid IL or missing references) //IL_1389: Unknown result type (might be due to invalid IL or missing references) //IL_139d: Unknown result type (might be due to invalid IL or missing references) //IL_13b1: Unknown result type (might be due to invalid IL or missing references) //IL_13d1: Unknown result type (might be due to invalid IL or missing references) //IL_1445: Unknown result type (might be due to invalid IL or missing references) //IL_1459: Unknown result type (might be due to invalid IL or missing references) //IL_146d: Unknown result type (might be due to invalid IL or missing references) //IL_148d: Unknown result type (might be due to invalid IL or missing references) //IL_14f5: Unknown result type (might be due to invalid IL or missing references) //IL_1509: Unknown result type (might be due to invalid IL or missing references) //IL_151d: Unknown result type (might be due to invalid IL or missing references) //IL_153d: Unknown result type (might be due to invalid IL or missing references) //IL_15b1: Unknown result type (might be due to invalid IL or missing references) //IL_15c5: Unknown result type (might be due to invalid IL or missing references) //IL_15d9: Unknown result type (might be due to invalid IL or missing references) //IL_15f9: Unknown result type (might be due to invalid IL or missing references) //IL_1661: Unknown result type (might be due to invalid IL or missing references) //IL_1675: Unknown result type (might be due to invalid IL or missing references) //IL_1689: Unknown result type (might be due to invalid IL or missing references) //IL_16e0: Unknown result type (might be due to invalid IL or missing references) //IL_16f4: Unknown result type (might be due to invalid IL or missing references) //IL_1708: Unknown result type (might be due to invalid IL or missing references) //IL_175f: Unknown result type (might be due to invalid IL or missing references) //IL_1773: Unknown result type (might be due to invalid IL or missing references) //IL_1787: Unknown result type (might be due to invalid IL or missing references) //IL_17de: Unknown result type (might be due to invalid IL or missing references) //IL_17f2: Unknown result type (might be due to invalid IL or missing references) //IL_1806: Unknown result type (might be due to invalid IL or missing references) //IL_185d: Unknown result type (might be due to invalid IL or missing references) //IL_1871: Unknown result type (might be due to invalid IL or missing references) //IL_1885: Unknown result type (might be due to invalid IL or missing references) //IL_18dc: Unknown result type (might be due to invalid IL or missing references) //IL_18f0: Unknown result type (might be due to invalid IL or missing references) //IL_1904: Unknown result type (might be due to invalid IL or missing references) //IL_195b: Unknown result type (might be due to invalid IL or missing references) //IL_196f: Unknown result type (might be due to invalid IL or missing references) //IL_1983: Unknown result type (might be due to invalid IL or missing references) //IL_19da: Unknown result type (might be due to invalid IL or missing references) //IL_19ee: Unknown result type (might be due to invalid IL or missing references) //IL_1a02: Unknown result type (might be due to invalid IL or missing references) //IL_1a59: Unknown result type (might be due to invalid IL or missing references) //IL_1a6d: Unknown result type (might be due to invalid IL or missing references) //IL_1a81: Unknown result type (might be due to invalid IL or missing references) //IL_1ad8: Unknown result type (might be due to invalid IL or missing references) //IL_1aec: Unknown result type (might be due to invalid IL or missing references) //IL_1b00: Unknown result type (might be due to invalid IL or missing references) //IL_1b57: Unknown result type (might be due to invalid IL or missing references) //IL_1b6b: Unknown result type (might be due to invalid IL or missing references) //IL_1b7f: Unknown result type (might be due to invalid IL or missing references) KommoLoaderSkinarmplate1_lModification = new Modification("armplate1.l.prefab", "mech.upper_arm.l", "LoaderBody", "TAILLOVER_SKIN_KOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); KommoLoaderSkinarmplate1_rModification = new Modification("armplate1.r.prefab", "mech.upper_arm.r", "LoaderBody", "TAILLOVER_SKIN_KOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); KommoLoaderSkinarmplate2_lModification = new Modification("armplate2.l.prefab", "mech.upper_arm.l", "LoaderBody", "TAILLOVER_SKIN_KOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); KommoLoaderSkinarmplate2_rModification = new Modification("armplate2.r.prefab", "mech.upper_arm.r", "LoaderBody", "TAILLOVER_SKIN_KOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); KommoLoaderSkinarmplate3_lModification = new Modification("armplate3.l.prefab", "mech.lower_arm.l", "LoaderBody", "TAILLOVER_SKIN_KOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); KommoLoaderSkinarmplate3_rModification = new Modification("armplate3.r.prefab", "mech.lower_arm.r", "LoaderBody", "TAILLOVER_SKIN_KOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); KommoLoaderSkinarmplate4_lModification = new Modification("armplate4.l.prefab", "mech.lower_arm.l", "LoaderBody", "TAILLOVER_SKIN_KOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); KommoLoaderSkinarmplate4_rModification = new Modification("armplate4.r.prefab", "mech.lower_arm.r", "LoaderBody", "TAILLOVER_SKIN_KOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); KommoLoaderSkinChimes1_1Modification = new Modification("Chimes1.1.prefab", "neck", "LoaderBody", "TAILLOVER_SKIN_KOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); KommoLoaderSkinChimes2_1Modification = new Modification("Chimes2.1.prefab", "neck", "LoaderBody", "TAILLOVER_SKIN_KOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); KommoLoaderSkinChimes3_1Modification = new Modification("Chimes3.1.prefab", "neck", "LoaderBody", "TAILLOVER_SKIN_KOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); KommoLoaderSkinChimes4_1Modification = new Modification("Chimes4.1.prefab", "neck", "LoaderBody", "TAILLOVER_SKIN_KOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); KommoLoaderSkinFluffCRootModification = new Modification("FluffCRoot.prefab", "neck", "LoaderBody", "TAILLOVER_SKIN_KOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); KommoLoaderSkinFluffLRootModification = new Modification("FluffLRoot.prefab", "neck", "LoaderBody", "TAILLOVER_SKIN_KOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); KommoLoaderSkinFluffRRootModification = new Modification("FluffRRoot.prefab", "neck", "LoaderBody", "TAILLOVER_SKIN_KOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); KommoLoaderSkinHeadChimeCModification = new Modification("HeadChimeC.prefab", "head", "LoaderBody", "TAILLOVER_SKIN_KOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); KommoLoaderSkinHeadChimeLModification = new Modification("HeadChimeL.prefab", "head", "LoaderBody", "TAILLOVER_SKIN_KOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); KommoLoaderSkinHeadChimeRModification = new Modification("HeadChimeR.prefab", "head", "LoaderBody", "TAILLOVER_SKIN_KOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); KommoLoaderSkinTail1Modification = new Modification("Tail1.prefab", "pelvis", "LoaderBody", "TAILLOVER_SKIN_KOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); ShinyKommoLoaderSkinarmplate1_lModification = new Modification("armplate1.l.prefab", "mech.upper_arm.l", "LoaderBody", "TAILLOVER_SKIN_SHINYKOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); ShinyKommoLoaderSkinarmplate1_rModification = new Modification("armplate1.r.prefab", "mech.upper_arm.r", "LoaderBody", "TAILLOVER_SKIN_SHINYKOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); ShinyKommoLoaderSkinarmplate2_lModification = new Modification("armplate2.l.prefab", "mech.upper_arm.l", "LoaderBody", "TAILLOVER_SKIN_SHINYKOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); ShinyKommoLoaderSkinarmplate2_rModification = new Modification("armplate2.r.prefab", "mech.upper_arm.r", "LoaderBody", "TAILLOVER_SKIN_SHINYKOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); ShinyKommoLoaderSkinarmplate3_lModification = new Modification("armplate3.l.prefab", "mech.lower_arm.l", "LoaderBody", "TAILLOVER_SKIN_SHINYKOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); ShinyKommoLoaderSkinarmplate3_rModification = new Modification("armplate3.r.prefab", "mech.lower_arm.r", "LoaderBody", "TAILLOVER_SKIN_SHINYKOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); ShinyKommoLoaderSkinarmplate4_lModification = new Modification("armplate4.l.prefab", "mech.lower_arm.l", "LoaderBody", "TAILLOVER_SKIN_SHINYKOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); ShinyKommoLoaderSkinarmplate4_rModification = new Modification("armplate4.r.prefab", "mech.lower_arm.r", "LoaderBody", "TAILLOVER_SKIN_SHINYKOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); ShinyKommoLoaderSkinChimes1_1Modification = new Modification("Chimes1.1.prefab", "neck", "LoaderBody", "TAILLOVER_SKIN_SHINYKOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); ShinyKommoLoaderSkinChimes2_1Modification = new Modification("Chimes2.1.prefab", "neck", "LoaderBody", "TAILLOVER_SKIN_SHINYKOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); ShinyKommoLoaderSkinChimes3_1Modification = new Modification("Chimes3.1.prefab", "neck", "LoaderBody", "TAILLOVER_SKIN_SHINYKOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); ShinyKommoLoaderSkinChimes4_1Modification = new Modification("Chimes4.1.prefab", "neck", "LoaderBody", "TAILLOVER_SKIN_SHINYKOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); ShinyKommoLoaderSkinFluffCRootModification = new Modification("FluffCRoot.prefab", "neck", "LoaderBody", "TAILLOVER_SKIN_SHINYKOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); ShinyKommoLoaderSkinFluffLRootModification = new Modification("FluffLRoot.prefab", "neck", "LoaderBody", "TAILLOVER_SKIN_SHINYKOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); ShinyKommoLoaderSkinFluffRRootModification = new Modification("FluffRRoot.prefab", "neck", "LoaderBody", "TAILLOVER_SKIN_SHINYKOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); ShinyKommoLoaderSkinHeadChimeCModification = new Modification("HeadChimeC.prefab", "head", "LoaderBody", "TAILLOVER_SKIN_SHINYKOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); ShinyKommoLoaderSkinHeadChimeLModification = new Modification("HeadChimeL.prefab", "head", "LoaderBody", "TAILLOVER_SKIN_SHINYKOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); ShinyKommoLoaderSkinHeadChimeRModification = new Modification("HeadChimeR.prefab", "head", "LoaderBody", "TAILLOVER_SKIN_SHINYKOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); ShinyKommoLoaderSkinTail1Modification = new Modification("Tail1.prefab", "pelvis", "LoaderBody", "TAILLOVER_SKIN_SHINYKOMMOLOADERSKIN_NAME", AffectsBaseModel: true, assetBundle); KommoLoaderSkinarmplate1_lModification.dynamicBoneData = new DynamicBoneData("armplate1.l", 0.25f, null, 0.1f, null, 0.2f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData> { new DynamicBoneColliderData("mech.upper_arm.l", (Direction)1, new Vector3(0.06f, 0.1f, 0.17f), (Bound)0, 0.05f, 0.2f) }, new List<string>(), (FreezeAxis)0); KommoLoaderSkinarmplate1_rModification.dynamicBoneData = new DynamicBoneData("armplate1.r", 0.25f, null, 0.1f, null, 0.2f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData> { new DynamicBoneColliderData("mech.upper_arm.r", (Direction)1, new Vector3(0.06f, 0.1f, 0.17f), (Bound)0, 0.05f, 0.2f) }, new List<string>(), (FreezeAxis)0); KommoLoaderSkinarmplate2_lModification.dynamicBoneData = new DynamicBoneData("armplate2.l", 0.25f, null, 0.1f, null, 0.2f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData> { new DynamicBoneColliderData("mech.upper_arm.l", (Direction)1, new Vector3(0.06f, 0.1f, 0.17f), (Bound)0, 0.05f, 0.2f) }, new List<string>(), (FreezeAxis)0); KommoLoaderSkinarmplate2_rModification.dynamicBoneData = new DynamicBoneData("armplate2.r", 0.25f, null, 0.1f, null, 0.2f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData> { new DynamicBoneColliderData("mech.upper_arm.r", (Direction)1, new Vector3(0.06f, 0.1f, 0.17f), (Bound)0, 0.05f, 0.2f) }, new List<string>(), (FreezeAxis)0); KommoLoaderSkinarmplate3_lModification.dynamicBoneData = new DynamicBoneData("armplate3.l", 0.25f, null, 0.1f, null, 0.2f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData> { new DynamicBoneColliderData("mech.lower_arm.l", (Direction)1, new Vector3(0.2f, 0.6f, 0.04f), (Bound)0, 0.05f, 0.2f) }, new List<string> { "mech.lower_arm.l" }, (FreezeAxis)0); KommoLoaderSkinarmplate3_rModification.dynamicBoneData = new DynamicBoneData("armplate3.r", 0.25f, null, 0.1f, null, 0.2f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData> { new DynamicBoneColliderData("mech.lower_arm.r", (Direction)1, new Vector3(0.2f, 0.6f, 0.04f), (Bound)0, 0.05f, 0.2f) }, new List<string>(), (FreezeAxis)0); KommoLoaderSkinarmplate4_lModification.dynamicBoneData = new DynamicBoneData("armplate4.l", 0.25f, null, 0.1f, null, 0.2f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData> { new DynamicBoneColliderData("mech.lower_arm.l", (Direction)1, new Vector3(0.2f, 0.6f, 0.04f), (Bound)0, 0.05f, 0.2f) }, new List<string> { "mech.lower_arm.l" }, (FreezeAxis)0); KommoLoaderSkinarmplate4_rModification.dynamicBoneData = new DynamicBoneData("armplate4.r", 0.25f, null, 0.1f, null, 0.2f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData> { new DynamicBoneColliderData("mech.lower_arm.r", (Direction)1, new Vector3(0.2f, 0.6f, 0.04f), (Bound)0, 0.05f, 0.2f) }, new List<string>(), (FreezeAxis)0); KommoLoaderSkinChimes1_1Modification.dynamicBoneData = new DynamicBoneData("Chimes1.1", 0.2f, null, 0.05f, null, 0.7f, null, 0.5f, null, 0.15f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, -0.002f, 0f), new Vector3(0f, -0.005f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0); KommoLoaderSkinChimes2_1Modification.dynamicBoneData = new DynamicBoneData("Chimes2.1", 0.2f, null, 0.05f, null, 0.7f, null, 0.5f, null, 0.15f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, -0.002f, 0f), new Vector3(0f, -0.005f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0); KommoLoaderSkinChimes3_1Modification.dynamicBoneData = new DynamicBoneData("Chimes3.1", 0.2f, null, 0.05f, null, 0.7f, null, 0.5f, null, 0.15f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, -0.002f, 0f), new Vector3(0f, -0.005f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0); KommoLoaderSkinChimes4_1Modification.dynamicBoneData = new DynamicBoneData("Chimes4.1", 0.2f, null, 0.05f, null, 0.7f, null, 0.5f, null, 0.15f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, -0.002f, 0f), new Vector3(0f, -0.005f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0); KommoLoaderSkinFluffCRootModification.dynamicBoneData = new DynamicBoneData("FluffCRoot", 0.2f, null, 0.05f, null, 0.7f, null, 0.5f, null, 0.15f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, -0.002f, 0f), new Vector3(0f, -0.005f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0); KommoLoaderSkinFluffLRootModification.dynamicBoneData = new DynamicBoneData("FluffLRoot", 0.2f, null, 0.05f, null, 0.7f, null, 0.5f, null, 0.15f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, -0.002f, 0f), new Vector3(0f, -0.005f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0); KommoLoaderSkinFluffRRootModification.dynamicBoneData = new DynamicBoneData("FluffRRoot", 0.2f, null, 0.05f, null, 0.7f, null, 0.5f, null, 0.15f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, -0.002f, 0f), new Vector3(0f, -0.005f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0); KommoLoaderSkinHeadChimeCModification.dynamicBoneData = new DynamicBoneData("HeadChimeC", 0.2f, null, 0.05f, null, 0.7f, null, 0.5f, null, 0.15f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, -0.002f, 0f), new Vector3(0f, -0.005f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0); KommoLoaderSkinHeadChimeLModification.dynamicBoneData = new DynamicBoneData("HeadChimeL", 0.2f, null, 0.05f, null, 0.7f, null, 0.5f, null, 0.15f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, -0.002f, 0f), new Vector3(0f, -0.005f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0); KommoLoaderSkinHeadChimeRModification.dynamicBoneData = new DynamicBoneData("HeadChimeR", 0.2f, null, 0.05f, null, 0.7f, null, 0.5f, null, 0.15f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, -0.002f, 0f), new Vector3(0f, -0.005f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0); KommoLoaderSkinTail1Modification.dynamicBoneData = new DynamicBoneData("Tail1", 0.2f, null, 0.05f, null, 0.7f, null, 0.5f, null, 0.15f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, -0.002f, 0f), new Vector3(0f, -0.005f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0); ShinyKommoLoaderSkinarmplate1_lModification.dynamicBoneData = new DynamicBoneData("armplate1.l", 0.25f, null, 0.1f, null, 0.2f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData> { new DynamicBoneColliderData("mech.upper_arm.l", (Direction)1, new Vector3(0.06f, 0.1f, 0.17f), (Bound)0, 0.05f, 0.2f) }, new List<string>(), (FreezeAxis)0); ShinyKommoLoaderSkinarmplate1_rModification.dynamicBoneData = new DynamicBoneData("armplate1.r", 0.25f, null, 0.1f, null, 0.2f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData> { new DynamicBoneColliderData("mech.upper_arm.r", (Direction)1, new Vector3(0.06f, 0.1f, 0.17f), (Bound)0, 0.05f, 0.2f) }, new List<string>(), (FreezeAxis)0); ShinyKommoLoaderSkinarmplate2_lModification.dynamicBoneData = new DynamicBoneData("armplate2.l", 0.25f, null, 0.1f, null, 0.2f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData> { new DynamicBoneColliderData("mech.upper_arm.l", (Direction)1, new Vector3(0.06f, 0.1f, 0.17f), (Bound)0, 0.05f, 0.2f) }, new List<string>(), (FreezeAxis)0); ShinyKommoLoaderSkinarmplate2_rModification.dynamicBoneData = new DynamicBoneData("armplate2.r", 0.25f, null, 0.1f, null, 0.2f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData> { new DynamicBoneColliderData("mech.upper_arm.r", (Direction)1, new Vector3(0.06f, 0.1f, 0.17f), (Bound)0, 0.05f, 0.2f) }, new List<string>(), (FreezeAxis)0); ShinyKommoLoaderSkinarmplate3_lModification.dynamicBoneData = new DynamicBoneData("armplate3.l", 0.25f, null, 0.1f, null, 0.2f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData> { new DynamicBoneColliderData("mech.lower_arm.l", (Direction)1, new Vector3(0.2f, 0.6f, 0.04f), (Bound)0, 0.05f, 0.2f) }, new List<string> { "mech.lower_arm.l" }, (FreezeAxis)0); ShinyKommoLoaderSkinarmplate3_rModification.dynamicBoneData = new DynamicBoneData("armplate3.r", 0.25f, null, 0.1f, null, 0.2f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData> { new DynamicBoneColliderData("mech.lower_arm.r", (Direction)1, new Vector3(0.2f, 0.6f, 0.04f), (Bound)0, 0.05f, 0.2f) }, new List<string>(), (FreezeAxis)0); ShinyKommoLoaderSkinarmplate4_lModification.dynamicBoneData = new DynamicBoneData("armplate4.l", 0.25f, null, 0.1f, null, 0.2f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData> { new DynamicBoneColliderData("mech.lower_arm.l", (Direction)1, new Vector3(0.2f, 0.6f, 0.04f), (Bound)0, 0.05f, 0.2f) }, new List<string> { "mech.lower_arm.l" }, (FreezeAxis)0); ShinyKommoLoaderSkinarmplate4_rModification.dynamicBoneData = new DynamicBoneData("armplate4.r", 0.25f, null, 0.1f, null, 0.2f, null, 0f, null, 0f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new List<DynamicBoneColliderData> { new DynamicBoneColliderData("mech.lower_arm.r", (Direction)1, new Vector3(0.2f, 0.6f, 0.04f), (Bound)0, 0.05f, 0.2f) }, new List<string>(), (FreezeAxis)0); ShinyKommoLoaderSkinChimes1_1Modification.dynamicBoneData = new DynamicBoneData("Chimes1.1", 0.2f, null, 0.05f, null, 0.7f, null, 0.5f, null, 0.15f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, -0.002f, 0f), new Vector3(0f, -0.005f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0); ShinyKommoLoaderSkinChimes2_1Modification.dynamicBoneData = new DynamicBoneData("Chimes2.1", 0.2f, null, 0.05f, null, 0.7f, null, 0.5f, null, 0.15f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, -0.002f, 0f), new Vector3(0f, -0.005f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0); ShinyKommoLoaderSkinChimes3_1Modification.dynamicBoneData = new DynamicBoneData("Chimes3.1", 0.2f, null, 0.05f, null, 0.7f, null, 0.5f, null, 0.15f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, -0.002f, 0f), new Vector3(0f, -0.005f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0); ShinyKommoLoaderSkinChimes4_1Modification.dynamicBoneData = new DynamicBoneData("Chimes4.1", 0.2f, null, 0.05f, null, 0.7f, null, 0.5f, null, 0.15f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, -0.002f, 0f), new Vector3(0f, -0.005f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0); ShinyKommoLoaderSkinFluffCRootModification.dynamicBoneData = new DynamicBoneData("FluffCRoot", 0.2f, null, 0.05f, null, 0.7f, null, 0.5f, null, 0.15f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, -0.002f, 0f), new Vector3(0f, -0.005f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0); ShinyKommoLoaderSkinFluffLRootModification.dynamicBoneData = new DynamicBoneData("FluffLRoot", 0.2f, null, 0.05f, null, 0.7f, null, 0.5f, null, 0.15f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, -0.002f, 0f), new Vector3(0f, -0.005f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0); ShinyKommoLoaderSkinFluffRRootModification.dynamicBoneData = new DynamicBoneData("FluffRRoot", 0.2f, null, 0.05f, null, 0.7f, null, 0.5f, null, 0.15f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, -0.002f, 0f), new Vector3(0f, -0.005f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0); ShinyKommoLoaderSkinHeadChimeCModification.dynamicBoneData = new DynamicBoneData("HeadChimeC", 0.2f, null, 0.05f, null, 0.7f, null, 0.5f, null, 0.15f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, -0.002f, 0f), new Vector3(0f, -0.005f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0); ShinyKommoLoaderSkinHeadChimeLModification.dynamicBoneData = new DynamicBoneData("HeadChimeL", 0.2f, null, 0.05f, null, 0.7f, null, 0.5f, null, 0.15f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, -0.002f, 0f), new Vector3(0f, -0.005f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0); ShinyKommoLoaderSkinHeadChimeRModification.dynamicBoneData = new DynamicBoneData("HeadChimeR", 0.2f, null, 0.05f, null, 0.7f, null, 0.5f, null, 0.15f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, -0.002f, 0f), new Vector3(0f, -0.005f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0); ShinyKommoLoaderSkinTail1Modification.dynamicBoneData = new DynamicBoneData("Tail1", 0.2f, null, 0.05f, null, 0.7f, null, 0.5f, null, 0.15f, null, 0f, new Vector3(0f, 0f, 0f), new Vector3(0f, -0.002f, 0f), new Vector3(0f, -0.005f, 0f), new List<DynamicBoneColliderData>(), new List<string>(), (FreezeAxis)0); ModificationList.Add(KommoLoaderSkinTail1Modification); ModificationList.Add(KommoLoaderSkinarmplate1_lModification); ModificationList.Add(KommoLoaderSkinarmplate2_lModification); ModificationList.Add(KommoLoaderSkinarmplate3_lModification); ModificationList.Add(KommoLoaderSkinarmplate4_lModification); ModificationList.Add(KommoLoaderSkinarmplate1_rModification); ModificationList.Add(KommoLoaderSkinarmplate2_rModification); ModificationList.Add(KommoLoaderSkinarmplate3_rModification); ModificationList.Add(KommoLoaderSkinarmplate4_rModification); ModificationList.Add(KommoLoaderSkinFluffLRootModification); ModificationList.Add(KommoLoaderSkinFluffRRootModification); ModificationList.Add(KommoLoaderSkinFluffCRootModification); ModificationList.Add(KommoLoaderSkinChimes1_1Modification); ModificationList.Add(KommoLoaderSkinChimes2_1Modification); ModificationList.Add(KommoLoaderSkinChimes3_1Modification); ModificationList.Add(KommoLoaderSkinChimes4_1Modification); ModificationList.Add(KommoLoaderSkinHeadChimeCModification); ModificationList.Add(KommoLoaderSkinHeadChimeRModification); ModificationList.Add(KommoLoaderSkinHeadChimeLModification); ModificationList.Add(ShinyKommoLoaderSkinTail1Modification); ModificationList.Add(ShinyKommoLoaderSkinarmplate1_lModification); ModificationList.Add(ShinyKommoLoaderSkinarmplate2_lModification); ModificationList.Add(ShinyKommoLoaderSkinarmplate3_lModification); ModificationList.Add(ShinyKommoLoaderSkinarmplate4_lModification); ModificationList.Add(ShinyKommoLoaderSkinarmplate1_rModification); ModificationList.Add(ShinyKommoLoaderSkinarmplate2_rModification); ModificationList.Add(ShinyKommoLoaderSkinarmplate3_rModification); ModificationList.Add(ShinyKommoLoaderSkinarmplate4_rModification); ModificationList.Add(ShinyKommoLoaderSkinFluffLRootModification); ModificationList.Add(ShinyKommoLoaderSkinFluffRRootModification); ModificationList.Add(ShinyKommoLoaderSkinFluffCRootModification); ModificationList.Add(ShinyKommoLoaderSkinChimes1_1Modification); ModificationList.Add(ShinyKommoLoaderSkinChimes2_1Modification); ModificationList.Add(ShinyKommoLoaderSkinChimes3_1Modification); ModificationList.Add(ShinyKommoLoaderSkinChimes4_1Modification); ModificationList.Add(ShinyKommoLoaderSkinHeadChimeCModification); ModificationList.Add(ShinyKommoLoaderSkinHeadChimeRModification); ModificationList.Add(ShinyKommoLoaderSkinHeadChimeLModification); } private static void ReplaceShaders() { LoadMaterialsWithReplacedShader("RoR2/Base/Shaders/HGStandard.shader", "Assets/Resources/KommoLoader/matKommoLoader.mat", "Assets/Resources/KommoLoader/matShinyKommoLoader.mat"); } private static void LoadMaterialsWithReplacedShader(string shaderPath, params string[] materialPaths) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) Shader shader = Addressables.LoadAssetAsync<Shader>((object)shaderPath).WaitForCompletion(); foreach (string text in materialPaths) { Material val = assetBundle.LoadAsset<Material>(text); val.shader = shader; materialsWithRoRShader.Add(val); } } private static void LanguageLoadStrings(Action<Language> orig, Language self) { orig(self); self.SetStringByToken("TAILLOVER_SKIN_KOMMOLOADERSKIN_NAME", "Kommo-o"); self.SetStringByToken("TAILLOVER_SKIN_SHINYKOMMOLOADERSKIN_NAME", "Shiny Kommo-o"); } private static void Nothing(Action<SkinDef> orig, SkinDef self) { } private static void BodyCatalogInit() { MethodInfo method = typeof(SkinDef).GetMethod("Awake", BindingFlags.Instance | BindingFlags.NonPublic); HookEndpointManager.Add((MethodBase)method, (Delegate)new Action<Action<SkinDef>, SkinDef>(Nothing)); AddLoaderBodyKommoLoaderSkinSkin(); AddLoaderBodyShinyKommoLoaderSkinSkin(); HookEndpointManager.Remove((MethodBase)method, (Delegate)new Action<Action<SkinDef>, SkinDef>(Nothing)); } private static void LoaderBodyKommoLoaderSkinSkinAdded(SkinDef skinDef, GameObject bodyPrefab) { SkinDefs.Add(skinDef.nameToken, skinDef); } private static void AddLoaderBodyKommoLoaderSkinSkin() { //IL_0180: Unknown result type (might be due to invalid IL or missing references) string text = "LoaderBody"; string text2 = "KommoLoaderSkin"; try { GameObject val = BodyCatalog.FindBodyPrefab(text); ModelLocator component = val.GetComponent<ModelLocator>(); GameObject gameObject = ((Component)component.modelTransform).gameObject; ModelSkinController skinController = gameObject.GetComponent<ModelSkinController>(); Renderer[] renderers = gameObject.GetComponentsInChildren<Renderer>(true); SkinDef skin = ScriptableObject.CreateInstance<SkinDef>(); TryCatchThrow("Icon", delegate { skin.icon = assetBundle.LoadAsset<Sprite>("Assets\\SkinMods\\KommooLoader\\Icons\\KommoLoaderSkinIcon.png"); }); ((Object)skin).name = text2; skin.nameToken = "TAILLOVER_SKIN_KOMMOLOADERSKIN_NAME"; skin.rootObject = gameObject; TryCatchThrow("Base Skins", delegate { skin.baseSkins = (SkinDef[])(object)new SkinDef[1] { skinController.skins[0] }; }); TryCatchThrow("Unlockable Name", delegate { skin.unlockableDef = null; }); TryCatchThrow("Game Object Activations", delegate { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) skin.gameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[2] { new GameObjectActivation { gameObject = ((Component)renderers[0]).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)renderers[1]).gameObject, shouldActivate = false } }; }); TryCatchThrow("Renderer Infos", delegate { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) skin.rendererInfos = (RendererInfo[])(object)new RendererInfo[1] { new RendererInfo { defaultMaterial = assetBundle.LoadAsset<Material>("Assets/Resources/KommoLoader/matKommoLoader.mat"), defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false, renderer = renderers[2] } }; }); TryCatchThrow("Mesh Replacements", delegate { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) skin.meshReplacements = (MeshReplacement[])(object)new MeshReplacement[1] { new MeshReplacement { mesh = assetBundle.LoadAsset<Mesh>("Assets\\SkinMods\\KommooLoader\\Meshes\\Kommo-o.mesh"), renderer = renderers[2] } }; }); TryCatchThrow("Minion Skin Replacements", delegate { skin.minionSkinReplacements = Array.Empty<MinionSkinReplacement>(); }); TryCatchThrow("Projectile Ghost Replacements", delegate { skin.projectileGhostReplacements = Array.Empty<ProjectileGhostReplacement>(); }); Array.Resize(ref skinController.skins, skinController.skins.Length + 1); skinController.skins[skinController.skins.Length - 1] = skin; BodyCatalog.skins[BodyCatalog.FindBodyIndex(val)] = skinController.skins; LoaderBodyKommoLoaderSkinSkinAdded(skin, val); } catch (Exception ex) { InstanceLogger.LogWarning((object)("Failed to add \"" + text2 + "\" skin to \"" + text + "\"")); InstanceLogger.LogWarning((object)("Field causing issue: " + ex.Message)); InstanceLogger.LogError((object)ex.InnerException); } } private static void LoaderBodyShinyKommoLoaderSkinSkinAdded(SkinDef skinDef, GameObject bodyPrefab) { SkinDefs.Add(skinDef.nameToken, skinDef); } private static void AddLoaderBodyShinyKommoLoaderSkinSkin() { //IL_0180: Unknown result type (might be due to invalid IL or missing references) string text = "LoaderBody"; string text2 = "ShinyKommoLoaderSkin"; try { GameObject val = BodyCatalog.FindBodyPrefab(text); ModelLocator component = val.GetComponent<ModelLocator>(); GameObject gameObject = ((Component)component.modelTransform).gameObject; ModelSkinController skinController = gameObject.GetComponent<ModelSkinController>(); Renderer[] renderers = gameObject.GetComponentsInChildren<Renderer>(true); SkinDef skin = ScriptableObject.CreateInstance<SkinDef>(); TryCatchThrow("Icon", delegate { skin.icon = assetBundle.LoadAsset<Sprite>("Assets\\SkinMods\\KommooLoader\\Icons\\ShinyKommoLoaderSkinIcon.png"); }); ((Object)skin).name = text2; skin.nameToken = "TAILLOVER_SKIN_SHINYKOMMOLOADERSKIN_NAME"; skin.rootObject = gameObject; TryCatchThrow("Base Skins", delegate { skin.baseSkins = (SkinDef[])(object)new SkinDef[1] { skinController.skins[0] }; }); TryCatchThrow("Unlockable Name", delegate { skin.unlockableDef = null; }); TryCatchThrow("Game Object Activations", delegate { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) skin.gameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[2] { new GameObjectActivation { gameObject = ((Component)renderers[0]).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)renderers[1]).gameObject, shouldActivate = false } }; }); TryCatchThrow("Renderer Infos", delegate { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) skin.rendererInfos = (RendererInfo[])(object)new RendererInfo[1] { new RendererInfo { defaultMaterial = assetBundle.LoadAsset<Material>("Assets/Resources/KommoLoader/matShinyKommoLoader.mat"), defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false, renderer = renderers[2] } }; }); TryCatchThrow("Mesh Replacements", delegate { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) skin.meshReplacements = (MeshReplacement[])(object)new MeshReplacement[1] { new MeshReplacement { mesh = assetBundle.LoadAsset<Mesh>("Assets\\SkinMods\\KommooLoader\\Meshes\\Kommo-o.mesh"), renderer = renderers[2] } }; }); TryCatchThrow("Minion Skin Replacements", delegate { skin.minionSkinReplacements = Array.Empty<MinionSkinReplacement>(); }); TryCatchThrow("Projectile Ghost Replacements", delegate { skin.projectileGhostReplacements = Array.Empty<ProjectileGhostReplacement>(); }); Array.Resize(ref skinController.skins, skinController.skins.Length + 1); skinController.skins[skinController.skins.Length - 1] = skin; BodyCatalog.skins[BodyCatalog.FindBodyIndex(val)] = skinController.skins; LoaderBodyShinyKommoLoaderSkinSkinAdded(skin, val); } catch (Exception ex) { InstanceLogger.LogWarning((object)("Failed to add \"" + text2 + "\" skin to \"" + text + "\"")); InstanceLogger.LogWarning((object)("Field causing issue: " + ex.Message)); InstanceLogger.LogError((object)ex.InnerException); } } private static void TryCatchThrow(string message, Action action) { try { action?.Invoke(); } catch (Exception innerException) { throw new Exception(message, innerException); } } } } namespace DynamicSkinBuilder { internal static class DynamicSkinHelpers { public static int FindBoneIndex(Transform targetBone, List<Transform> BoneList) { if (((Object)targetBone.parent).name.Contains("Armature")) { return BoneList.Count; } Transform parent = targetBone.parent; int siblingIndex = targetBone.GetSiblingIndex(); int childCount = parent.childCount; if (siblingIndex == childCount - 1) { return FindBoneIndex(targetBone.parent, BoneList); } Transform nextBone = targetBone.parent.GetChild(siblingIndex + 1); int num = BoneList.FindIndex((Transform x) => (Object)(object)x == (Object)(object)nextBone); if (num == -1) { FindBoneIndex(nextBone, BoneList); } return num; } public static int FindBoneIndex2(Transform targetBone, List<Transform> BoneList) { Dictionary<Transform, bool> dictionary = new Dictionary<Transform, bool>(); int num = 99999; for (int i = 0; i < BoneList.Count; i++) { Transform val = BoneList[i]; if (((Object)val).name == "ROOT") { dictionary.Add(val, value: false); continue; } if ((Object)(object)val == (Object)(object)targetBone) { num = i; } Transform parent = ((Component)val).transform.parent; if ((Object)(object)parent == (Object)(object)targetBone) { dictionary.Add(val, value: true); } else { if (!dictionary.ContainsKey(parent)) { continue; } if (dictionary[parent]) { dictionary.Add(val, value: true); continue; } dictionary.Add(val, value: false); if (i > num) { return i; } } } return BoneList.Count - 1; } public static SkinnedMeshRenderer[] GetBaseSkinRenderers(GameObject modelObject) { SkinnedMeshRenderer[] componentsInChildren = modelObject.GetComponentsInChildren<SkinnedMeshRenderer>(true); List<SkinnedMeshRenderer> list = new List<SkinnedMeshRenderer>(); SkinnedMeshRenderer[] array = componentsInChildren; foreach (SkinnedMeshRenderer val in array) { if ((Object)(object)((Component)val).transform.parent == (Object)(object)modelObject.transform) { list.Add(val); } } return list.ToArray(); } public static Transform[] BoneArrayBuilder(Transform NewBoneRoot) { List<Transform> list = new List<Transform>(); BoneArrayBuilderHelper(NewBoneRoot, list); return list.ToArray(); } public static void BoneArrayBuilderHelper(Transform parent, List<Transform> list) { if (!((Object)parent).name.EndsWith("_end")) { list.Add(parent); } for (int i = 0; i < parent.childCount; i++) { BoneArrayBuilderHelper(parent.GetChild(i), list); } } public static Transform GetArmature(GameObject obj) { return GetArmatureHelper(obj); } public static Transform GetArmatureHelper(GameObject obj) { if (((Object)obj).name.ToLower().Contains("armature")) { return obj.transform; } for (int i = 0; i < obj.transform.childCount; i++) { Transform armatureHelper = GetArmatureHelper(((Component)obj.transform.GetChild(i)).gameObject); if (Object.op_Implicit((Object)(object)armatureHelper)) { return armatureHelper; } } return null; } } } namespace RuneFoxMods { internal class ChildHelper { private static Dictionary<string, Dictionary<string, string>> PrefabDictionary = new Dictionary<string, Dictionary<string, string>> { { "CommandoBody", new Dictionary<string, string> { { "CommandoArmature", "CommandoArmature" }, { "ROOT", "CommandoArmature/ROOT" }, { "base", "CommandoArmature/ROOT/base" }, { "IKArmTarget.l", "CommandoArmature/ROOT/base/IKArmTarget.l" }, { "IKArmPole.l", "CommandoArmature/ROOT/base/IKArmTarget.l/IKArmPole.l" }, { "IKArmTarget.r", "CommandoArmature/ROOT/base/IKArmTarget.r" }, { "IKArmPole.r", "CommandoArmature/ROOT/base/IKArmTarget.r/IKArmPole.r" }, { "pelvis", "CommandoArmature/ROOT/base/pelvis" }, { "thigh.l", "CommandoArmature/ROOT/base/pelvis/thigh.l" }, { "calf.l", "CommandoArmature/ROOT/base/pelvis/thigh.l/calf.l" }, { "foot.l", "CommandoArmature/ROOT/base/pelvis/thigh.l/calf.l/foot.l" }, { "toe.l", "CommandoArmature/ROOT/base/pelvis/thigh.l/calf.l/foot.l/toe.l" }, { "thigh.r", "CommandoArmature/ROOT/base/pelvis/thigh.r" }, { "calf.r", "CommandoArmature/ROOT/base/pelvis/thigh.r/calf.r" }, { "foot.r", "CommandoArmature/ROOT/base/pelvis/thigh.r/calf.r/foot.r" }, { "toe.r", "CommandoArmature/ROOT/base/pelvis/thigh.r/calf.r/foot.r/toe.r" }, { "stomach", "CommandoArmature/ROOT/base/stomach" }, { "chest", "CommandoArmature/ROOT/base/stomach/chest" }, { "head", "CommandoArmature/ROOT/base/stomach/chest/head" }, { "upper_arm.l", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.l" }, { "lower_arm.l", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l" }, { "hand.l", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l" }, { "finger1.1.l", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger1.1.l" }, { "finger1.2.l", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger1.1.l/finger1.2.l" }, { "finger1.3.l", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger1.1.l/finger1.2.l/finger1.3.l" }, { "finger1IKBender.l", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger1IKBender.l" }, { "finger1IKTarget.l", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger1IKBender.l/finger1IKTarget.l" }, { "finger2.1.l", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger2.1.l" }, { "finger2.2.l", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger2.1.l/finger2.2.l" }, { "finger2.3.l", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger2.1.l/finger2.2.l/finger2.3.l" }, { "finger2IKBender.l", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger2IKBender.l" }, { "finger2IKTarget.l", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger2IKBender.l/finger2IKTarget.l" }, { "finger3.1.l", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger3.1.l" }, { "finger3.2.l", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger3.1.l/finger3.2.l" }, { "finger3.3.l", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger3.1.l/finger3.2.l/finger3.3.l" }, { "finger3IKBender.l", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger3IKBender.l" }, { "finger3IKTarget.l", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger3IKBender.l/finger3IKTarget.l" }, { "finger4.1.l", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger4.1.l" }, { "finger4.2.l", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger4.1.l/finger4.2.l" }, { "finger4.3.l", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger4.1.l/finger4.2.l/finger4.3.l" }, { "finger4IKBender.l", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger4IKBender.l" }, { "finger4IKTarget.l", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger4IKBender.l/finger4IKTarget.l" }, { "gun.l", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/gun.l" }, { "thumb.1.l", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/thumb.1.l" }, { "thumb.2.l", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/thumb.1.l/thumb.2.l" }, { "thumbIKBender.l", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/thumbIKBender.l" }, { "thumbIKTarget.l", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/thumbIKBender.l/thumbIKTarget.l" }, { "upper_arm.r", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.r" }, { "lower_arm.r", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r" }, { "hand.r", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r" }, { "finger1.1.r", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger1.1.r" }, { "finger1.2.r", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger1.1.r/finger1.2.r" }, { "finger1.3.r", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger1.1.r/finger1.2.r/finger1.3.r" }, { "finger1IKBender.r", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger1IKBender.r" }, { "finger1IKTarget.r", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger1IKBender.r/finger1IKTarget.r" }, { "finger2.1.r", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger2.1.r" }, { "finger2.2.r", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger2.1.r/finger2.2.r" }, { "finger2.3.r", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger2.1.r/finger2.2.r/finger2.3.r" }, { "finger2IKBender.r", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger2IKBender.r" }, { "finger2IKTarget.r", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger2IKBender.r/finger2IKTarget.r" }, { "finger3.1.r", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger3.1.r" }, { "finger3.2.r", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger3.1.r/finger3.2.r" }, { "finger3.3.r", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger3.1.r/finger3.2.r/finger3.3.r" }, { "finger3IKBender.r", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger3IKBender.r" }, { "finger3IKTarget.r", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger3IKBender.r/finger3IKTarget.r" }, { "finger4.1.r", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger4.1.r" }, { "finger4.2.r", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger4.1.r/finger4.2.r" }, { "finger4.3.r", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger4.1.r/finger4.2.r/finger4.3.r" }, { "finger4IKBender.r", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger4IKBender.r" }, { "finger4IKTarget.r", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger4IKBender.r/finger4IKTarget.r" }, { "gun.r", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/gun.r" }, { "thumb.1.r", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/thumb.1.r" }, { "thumb.2.r", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/thumb.1.r/thumb.2.r" }, { "thumbIKBender.r", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/thumbIKBender.r" }, { "thumbIKTarget.r", "CommandoArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/thumbIKBender.r/thumbIKTarget.r" }, { "LeftJet", "CommandoArmature/ROOT/base/stomach/chest/LeftJet" }, { "RightJet", "CommandoArmature/ROOT/base/stomach/chest/RightJet" }, { "IKLegTarget.l", "CommandoArmature/ROOT/IKLegTarget.l" }, { "IKLegPole.l", "CommandoArmature/ROOT/IKLegTarget.l/IKLegPole.l" }, { "IKLegTarget.r", "CommandoArmature/ROOT/IKLegTarget.r" }, { "IKLegPole.r", "CommandoArmature/ROOT/IKLegTarget.r/IKLegPole.r" }, { "MuzzleCenter", "CommandoArmature/MuzzleCenter" } } }, { "EngiBody", new Dictionary<string, string> { { "EngiArmature", "EngiArmature" }, { "cannonIKTarget.l", "EngiArmature/cannonIKTarget.l" }, { "cannonIKTarget.r", "EngiArmature/cannonIKTarget.r" }, { "ROOT", "EngiArmature/ROOT" }, { "base", "EngiArmature/ROOT/base" }, { "IKArmTarget.l", "EngiArmature/ROOT/base/IKArmTarget.l" }, { "IKArmPole.l", "EngiArmature/ROOT/base/IKArmTarget.l/IKArmPole.l" }, { "IKArmTarget.r", "EngiArmature/ROOT/base/IKArmTarget.r" }, { "IKArmPole.r", "EngiArmature/ROOT/base/IKArmTarget.r/IKArmPole.r" }, { "pelvis", "EngiArmature/ROOT/base/pelvis" }, { "thigh.l", "EngiArmature/ROOT/base/pelvis/thigh.l" }, { "calf.l", "EngiArmature/ROOT/base/pelvis/thigh.l/calf.l" }, { "foot.l", "EngiArmature/ROOT/base/pelvis/thigh.l/calf.l/foot.l" }, { "toe.l", "EngiArmature/ROOT/base/pelvis/thigh.l/calf.l/foot.l/toe.l" }, { "thigh.r", "EngiArmature/ROOT/base/pelvis/thigh.r" }, { "calf.r", "EngiArmature/ROOT/base/pelvis/thigh.r/calf.r" }, { "foot.r", "EngiArmature/ROOT/base/pelvis/thigh.r/calf.r/foot.r" }, { "toe.r", "EngiArmature/ROOT/base/pelvis/thigh.r/calf.r/foot.r/toe.r" }, { "stomach", "EngiArmature/ROOT/base/stomach" }, { "chest", "EngiArmature/ROOT/base/stomach/chest" }, { "cannonJoint1.l", "EngiArmature/ROOT/base/stomach/chest/cannonJoint1.l" }, { "cannonJoint2.l", "EngiArmature/ROOT/base/stomach/chest/cannonJoint1.l/cannonJoint2.l" }, { "cannonHead.l", "EngiArmature/ROOT/base/stomach/chest/cannonJoint1.l/cannonJoint2.l/cannonHead.l" }, { "cannonJoint1.r", "EngiArmature/ROOT/base/stomach/chest/cannonJoint1.r" }, { "cannonJoint2.r", "EngiArmature/ROOT/base/stomach/chest/cannonJoint1.r/cannonJoint2.r" }, { "cannonHead.r", "EngiArmature/ROOT/base/stomach/chest/cannonJoint1.r/cannonJoint2.r/cannonHead.r" }, { "EngiJet", "EngiArmature/ROOT/base/stomach/chest/cannonJoint1.r/cannonJoint2.r/cannonHead.r/EngiJet" }, { "Distortion", "EngiArmature/ROOT/base/stomach/chest/cannonJoint1.r/cannonJoint2.r/cannonHead.r/EngiJet/Distortion" }, { "Jet", "EngiArmature/ROOT/base/stomach/chest/cannonJoint1.r/cannonJoint2.r/cannonHead.r/EngiJet/Jet" }, { "MuzzleRight", "EngiArmature/ROOT/base/stomach/chest/cannonJoint1.r/cannonJoint2.r/cannonHead.r/MuzzleRight" }, { "upper_arm.l", "EngiArmature/ROOT/base/stomach/chest/upper_arm.l" }, { "lower_arm.l", "EngiArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l" }, { "hand.l", "EngiArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l" }, { "finger1.1.l", "EngiArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger1.1.l" }, { "finger1.2.l", "EngiArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger1.1.l/finger1.2.l" }, { "finger1.3.l", "EngiArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger1.1.l/finger1.2.l/finger1.3.l" }, { "finger1IKBender.l", "EngiArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger1IKBender.l" }, { "finger1IKTarget.l", "EngiArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger1IKBender.l/finger1IKTarget.l" }, { "finger2.1.l", "EngiArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger2.1.l" }, { "finger2.2.l", "EngiArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger2.1.l/finger2.2.l" }, { "finger2.3.l", "EngiArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger2.1.l/finger2.2.l/finger2.3.l" }, { "finger2IKBender.l", "EngiArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger2IKBender.l" }, { "finger2IKTarget.l", "EngiArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger2IKBender.l/finger2IKTarget.l" }, { "finger3.1.l", "EngiArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger3.1.l" }, { "finger3.2.l", "EngiArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger3.1.l/finger3.2.l" }, { "finger3.3.l", "EngiArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger3.1.l/finger3.2.l/finger3.3.l" }, { "finger3IKBender.l", "EngiArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger3IKBender.l" }, { "finger3IKTarget.l", "EngiArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger3IKBender.l/finger3IKTarget.l" }, { "finger4.1.l", "EngiArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger4.1.l" }, { "finger4.2.l", "EngiArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger4.1.l/finger4.2.l" }, { "finger4.3.l", "EngiArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger4.1.l/finger4.2.l/finger4.3.l" }, { "finger4IKBender.l", "EngiArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger4IKBender.l" }, { "finger4IKTarget.l", "EngiArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger4IKBender.l/finger4IKTarget.l" }, { "thumb.1.l", "EngiArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/thumb.1.l" }, { "thumb.2.l", "EngiArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/thumb.1.l/thumb.2.l" }, { "thumbIKBender.l", "EngiArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/thumbIKBender.l" }, { "thumbIKTarget.l", "EngiArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/thumbIKBender.l/thumbIKTarget.l" }, { "WristDisplay", "EngiArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/WristDisplay" }, { "upper_arm.r", "EngiArmature/ROOT/base/stomach/chest/upper_arm.r" }, { "lower_arm.r", "EngiArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r" }, { "hand.r", "EngiArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r" }, { "finger1.1.r", "EngiArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger1.1.r" }, { "finger1.2.r", "EngiArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger1.1.r/finger1.2.r" }, { "finger1.3.r", "EngiArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger1.1.r/finger1.2.r/finger1.3.r" }, { "finger1IKBender.r", "EngiArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger1IKBender.r" }, { "finger1IKTarget.r", "EngiArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger1IKBender.r/finger1IKTarget.r" }, { "finger2.1.r", "EngiArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger2.1.r" }, { "finger2.2.r", "EngiArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger2.1.r/finger2.2.r" }, { "finger2.3.r", "EngiArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger2.1.r/finger2.2.r/finger2.3.r" }, { "finger2IKBender.r", "EngiArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger2IKBender.r" }, { "finger2IKTarget.r", "EngiArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger2IKBender.r/finger2IKTarget.r" }, { "finger3.1.r", "EngiArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger3.1.r" }, { "finger3.2.r", "EngiArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger3.1.r/finger3.2.r" }, { "finger3.3.r", "EngiArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger3.1.r/finger3.2.r/finger3.3.r" }, { "finger3IKBender.r", "EngiArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger3IKBender.r" }, { "finger3IKTarget.r", "EngiArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger3IKBender.r/finger3IKTarget.r" }, { "finger4.1.r", "EngiArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger4.1.r" }, { "finger4.2.r", "EngiArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger4.1.r/finger4.2.r" }, { "finger4.3.r", "EngiArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger4.1.r/finger4.2.r/finger4.3.r" }, { "finger4IKBender.r", "EngiArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger4IKBender.r" }, { "finger4IKTarget.r", "EngiArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger4IKBender.r/finger4IKTarget.r" }, { "thumb.1.r", "EngiArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/thumb.1.r" }, { "thumb.2.r", "EngiArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/thumb.1.r/thumb.2.r" }, { "thumbIKBender.r", "EngiArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/thumbIKBender.r" }, { "thumbIKTarget.r", "EngiArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/thumbIKBender.r/thumbIKTarget.r" }, { "MuzzleCenter", "EngiArmature/ROOT/base/stomach/chest/MuzzleCenter" }, { "HeadCenter", "EngiArmature/ROOT/base/stomach/chest/HeadCenter" }, { "IKLegTarget.l", "EngiArmature/ROOT/IKLegTarget.l" }, { "IKLegPole.l", "EngiArmature/ROOT/IKLegTarget.l/IKLegPole.l" }, { "IKLegTarget.r", "EngiArmature/ROOT/IKLegTarget.r" }, { "IKLegPole.r", "EngiArmature/ROOT/IKLegTarget.r/IKLegPole.r" } } }, { "HuntressBody", new Dictionary<string, string> { { "HuntressArmature", "HuntressArmature" }, { "HandGripControl.l", "HuntressArmature/HandGripControl.l" }, { "HandGripControl.r", "HuntressArmature/HandGripControl.r" }, { "IKArmTarget.r", "HuntressArmature/IKArmTarget.r" }, { "IKArmPole.r", "HuntressArmature/IKArmTarget.r/IKArmPole.r" }, { "ROOT", "HuntressArmature/ROOT" }, { "base", "HuntressArmature/ROOT/base" }, { "BowRoot", "HuntressArmature/ROOT/base/BowRoot" }, { "BowBase", "HuntressArmature/ROOT/base/BowRoot/BowBase" }, { "BowHinge1.l", "HuntressArmature/ROOT/base/BowRoot/BowBase/BowHinge1.l" }, { "BowHinge2.l", "HuntressArmature/ROOT/base/BowRoot/BowBase/BowHinge1.l/BowHinge2.l" }, { "BowString.L", "HuntressArmature/ROOT/base/BowRoot/BowBase/BowHinge1.l/BowHinge2.l/BowString.L" }, { "BowHinge1.r", "HuntressArmature/ROOT/base/BowRoot/BowBase/BowHinge1.r" }, { "BowHinge2.r", "HuntressArmature/ROOT/base/BowRoot/BowBase/BowHinge1.r/BowHinge2.r" }, { "BowString.R", "HuntressArmature/ROOT/base/BowRoot/BowBase/BowHinge1.r/BowHinge2.r/BowString.R" }, { "HelperBowBase", "HuntressArmature/ROOT/base/BowRoot/BowBase/HelperBowBase" }, { "Muzzle", "HuntressArmature/ROOT/base/BowRoot/BowBase/Muzzle" }, { "BowStringIKTarget", "HuntressArmature/ROOT/base/BowRoot/BowStringIKTarget" }, { "HelperBowString", "HuntressArmature/ROOT/base/BowRoot/BowStringIKTarget/HelperBowString" }, { "ArrowDisplay", "HuntressArmature/ROOT/base/BowRoot/BowStringIKTarget/ArrowDisplay" }, { "Quad 1", "HuntressArmature/ROOT/base/BowRoot/BowStringIKTarget/ArrowDisplay/Quad 1" }, { "Quad 2", "HuntressArmature/ROOT/base/BowRoot/BowStringIKTarget/ArrowDisplay/Quad 2" }, { "Flash", "HuntressArmature/ROOT/base/BowRoot/BowStringIKTarget/ArrowDisplay/Flash" }, { "ClusterArrowDisplay", "HuntressArmature/ROOT/base/BowRoot/BowStringIKTarget/ClusterArrowDisplay" }, { "Quad Cluster 1", "HuntressArmature/ROOT/base/BowRoot/BowStringIKTarget/ClusterArrowDisplay/Quad Cluster 1" }, { "Quad Cluster 2", "HuntressArmature/ROOT/base/BowRoot/BowStringIKTarget/ClusterArrowDisplay/Quad Cluster 2" }, { "Quad Cluster 3", "HuntressArmature/ROOT/base/BowRoot/BowStringIKTarget/ClusterArrowDisplay/Quad Cluster 3" }, { "Quad Cluster 4", "HuntressArmature/ROOT/base/BowRoot/BowStringIKTarget/ClusterArrowDisplay/Quad Cluster 4" }, { "Quad Cluster 5", "HuntressArmature/ROOT/base/BowRoot/BowStringIKTarget/ClusterArrowDisplay/Quad Cluster 5" }, { "IKArmTarget.l", "HuntressArmature/ROOT/base/BowRoot/IKArmTarget.l" }, { "IKArmPole.l", "HuntressArmature/ROOT/base/BowRoot/IKArmTarget.l/IKArmPole.l" }, { "pelvis", "HuntressArmature/ROOT/base/pelvis" }, { "thigh.l", "HuntressArmature/ROOT/base/pelvis/thigh.l" }, { "calf.l", "HuntressArmature/ROOT/base/pelvis/thigh.l/calf.l" }, { "foot.l", "HuntressArmature/ROOT/base/pelvis/thigh.l/calf.l/foot.l" }, { "toe.l", "HuntressArmature/ROOT/base/pelvis/thigh.l/calf.l/foot.l/toe.l" }, { "thigh.r", "HuntressArmature/ROOT/base/pelvis/thigh.r" }, { "calf.r", "HuntressArmature/ROOT/base/pelvis/thigh.r/calf.r" }, { "foot.r", "HuntressArmature/ROOT/base/pelvis/thigh.r/calf.r/foot.r" }, { "toe.r", "HuntressArmature/ROOT/base/pelvis/thigh.r/calf.r/foot.r/toe.r" }, { "stomach", "HuntressArmature/ROOT/base/stomach" }, { "chest", "HuntressArmature/ROOT/base/stomach/chest" }, { "ClippingBlocker", "HuntressArmature/ROOT/base/stomach/chest/ClippingBlocker" }, { "head", "HuntressArmature/ROOT/base/stomach/chest/head" }, { "HuntressScarfArmature Detatched", "HuntressArmature/ROOT/base/stomach/chest/HuntressScarfArmature Detatched" }, { "ScarfBase Detatched", "HuntressArmature/ROOT/base/stomach/chest/HuntressScarfArmature Detatched/ScarfBase Detatched" }, { "Scarf", "HuntressArmature/ROOT/base/stomach/chest/HuntressScarfArmature Detatched/ScarfBase Detatched/Scarf" }, { "Scarf.004", "HuntressArmature/ROOT/base/stomach/chest/HuntressScarfArmature Detatched/ScarfBase Detatched/Scarf/Scarf.004" }, { "Scarf.002", "HuntressArmature/ROOT/base/stomach/chest/HuntressScarfArmature Detatched/ScarfBase Detatched/Scarf/Scarf.004/Scarf.002" }, { "Scarf.006", "HuntressArmature/ROOT/base/stomach/chest/HuntressScarfArmature Detatched/ScarfBase Detatched/Scarf/Scarf.004/Scarf.002/Scarf.006" }, { "Scarf.001", "HuntressArmature/ROOT/base/stomach/chest/HuntressScarfArmature Detatched/ScarfBase Detatched/Scarf/Scarf.004/Scarf.002/Scarf.006/Scarf.001" }, { "Scarf.005", "HuntressArmature/ROOT/base/stomach/chest/HuntressScarfArmature Detatched/ScarfBase Detatched/Scarf/Scarf.004/Scarf.002/Scarf.006/Scarf.001/Scarf.005" }, { "Scarf.003", "HuntressArmature/ROOT/base/stomach/chest/HuntressScarfArmature Detatched/ScarfBase Detatched/Scarf/Scarf.004/Scarf.002/Scarf.006/Scarf.001/Scarf.005/Scarf.003" }, { "Scarf.007", "HuntressArmature/ROOT/base/stomach/chest/HuntressScarfArmature Detatched/ScarfBase Detatched/Scarf/Scarf.004/Scarf.002/Scarf.006/Scarf.001/Scarf.005/Scarf.003/Scarf.007" }, { "upper_arm.l", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.l" }, { "lower_arm.l", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l" }, { "hand.l", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l" }, { "finger1.1.l", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger1.1.l" }, { "finger1.2.l", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger1.1.l/finger1.2.l" }, { "finger1.3.l", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger1.1.l/finger1.2.l/finger1.3.l" }, { "finger2.1.l", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger2.1.l" }, { "finger2.2.l", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger2.1.l/finger2.2.l" }, { "finger2.3.l", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger2.1.l/finger2.2.l/finger2.3.l" }, { "finger3.1.l", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger3.1.l" }, { "finger3.2.l", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger3.1.l/finger3.2.l" }, { "finger3.3.l", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger3.1.l/finger3.2.l/finger3.3.l" }, { "finger4.1.l", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger4.1.l" }, { "finger4.2.l", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger4.1.l/finger4.2.l" }, { "finger4.3.l", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/finger4.1.l/finger4.2.l/finger4.3.l" }, { "thumb.1.l", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/thumb.1.l" }, { "thumb.2.l", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.l/lower_arm.l/hand.l/thumb.1.l/thumb.2.l" }, { "upper_arm.r", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.r" }, { "lower_arm.r", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r" }, { "hand.r", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r" }, { "finger1.1.r", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger1.1.r" }, { "finger1.2.r", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger1.1.r/finger1.2.r" }, { "finger1.3.r", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger1.1.r/finger1.2.r/finger1.3.r" }, { "finger2.1.r", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger2.1.r" }, { "finger2.2.r", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger2.1.r/finger2.2.r" }, { "finger2.3.r", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger2.1.r/finger2.2.r/finger2.3.r" }, { "finger3.1.r", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger3.1.r" }, { "finger3.2.r", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger3.1.r/finger3.2.r" }, { "finger3.3.r", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger3.1.r/finger3.2.r/finger3.3.r" }, { "finger4.1.r", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger4.1.r" }, { "finger4.2.r", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger4.1.r/finger4.2.r" }, { "finger4.3.r", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/finger4.1.r/finger4.2.r/finger4.3.r" }, { "thumb.1.r", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/thumb.1.r" }, { "thumb.2.r", "HuntressArmature/ROOT/base/stomach/chest/upper_arm.r/lower_arm.r/hand.r/thumb.1.r/thumb.2.r" }, { "IKLegTarget.l", "HuntressArmature/ROOT/IKLegTarget.l" }, { "IKLegPole.l", "HuntressArmature/ROOT/IKLegTarget.l/IKLegPole.l" }, { "IKLegTarget.r", "HuntressArmature/ROOT/IKLegTarget.r" }, { "IKLegPole.r", "HuntressArmature/ROOT/IKLegTarget.r/IKLegPole.r" } } }, { "MageBody", new Dictionary<string, string> { { "MageArmature", "MageArmature" }, { "HeelRoll.l", "MageArmature/HeelRoll.l" }, { "IKLegPole.l", "MageArmature/HeelRoll.l/IKLegPole.l" }, { "ToeRoll.l", "MageArmature/HeelRoll.l/ToeRoll.l" }, { "FootRoll.l", "MageArmature/HeelRoll.l/ToeRoll.l/FootRoll.l" }, { "IKLegTarget.l", "MageArmature/HeelRoll.l/ToeRoll.l/FootRoll.l/IKLegTarget.l" }, { "IKFoot.l", "MageArmature/HeelRoll.l/ToeRoll.l/IKFoot.l" }, { "ToeControl.l", "MageArmature/HeelRoll.l/ToeRoll.l/ToeControl.l" }, { "IKToe.l", "MageArmature/HeelRoll.l/ToeRoll.l/ToeControl.l/IKToe.l" }, { "HeelRoll.r", "MageArmature/HeelRoll.r" }, { "IKLegPole.r", "MageArmature/HeelRoll.r/IKLegPole.r" }, { "ToeRoll.l.002", "MageArmature/HeelRoll.r/ToeRoll.l.002" }, { "FootRoll.r", "MageArmature/HeelRoll.r/ToeRoll.l.002/FootRoll.r" }, { "IKLegTarget.r", "MageArmature/HeelRoll.r/ToeRoll.l.002/FootRoll.r/IKLegTarget.r" }, { "IKFoot.r", "MageArmature/HeelRoll.r/ToeRoll.l.002/IKFoot.r" }, { "ToeControl.r", "MageArmature/HeelRoll.r/ToeRoll.l.002/ToeControl.r" }, { "IKToe.r", "MageArmature/HeelRoll.r/ToeRoll.l.002/ToeControl.r/IKToe.r" }, { "ROOT", "MageArmature/ROOT" }, { "base", "MageArmature/ROOT/base" }, { "IKArmTarget.l", "MageArmature/ROOT/base/IKArmTarget.l" }, { "IKArmPole.l", "MageArmature/ROOT/base/IKArmTarget.l/IKArmPole.l" }, { "IKArmTarget.r", "MageArmature/ROOT/base/IKArmTarget.r" }, { "IKArmPole.r", "MageArmature/ROOT/base/IKArmTarget.r/IKArmPole.r" }, { "pelvis", "MageArmature/ROOT/base/pelvis" }, { "ClothA.1.l", "MageArmature/ROOT/base/pelvis/ClothA.1.l" }, { "ClothA.2.l", "MageArmature/ROOT/base/pelvis/ClothA.1.l/ClothA.2.l" }, { "ClothA.3.l", "MageArmature/ROOT/base/pelvis/ClothA.1.l/ClothA.2.l/ClothA.3.l" }, { "ClothA.4.l", "MageArmature/ROOT/base/pelvis/ClothA.1.l/ClothA.2.l/ClothA.3.l/ClothA.4.l" }, { "ClothA.1.r", "MageArmature/ROOT/base/pelvis/ClothA.1.r" }, { "ClothA.2.r", "MageArmature/ROOT/base/pelvis/ClothA.1.r/ClothA.2.r" }, { "ClothA.3.r", "MageArmature/ROOT/base/pelvis/ClothA.1.r/ClothA.2.r/ClothA.3.r" }, { "ClothA.4.r", "MageArmature/ROOT/base/pelvis/ClothA.1.r/ClothA.2.r/ClothA.3.r/ClothA.4.r" }, { "ClothB.1.l", "MageArmature/ROOT/base/pelvis/ClothB.1.l" }, { "ClothB.2.l", "MageArmature/ROOT/base/pelvis/ClothB.1.l/ClothB.2.l" }, { "ClothB.3.l", "MageArmature/ROOT/base/pelvis/ClothB.1.l/ClothB.2.l/ClothB.3.l" }, { "ClothB.4.l", "MageArmature/ROOT/base/pelvis/ClothB.1.l/ClothB.2.l/ClothB.3.l/ClothB.4.l" }, { "ClothB.1.r", "MageArmature/ROOT/base/pelvis/ClothB.1.r" }, { "ClothB.2.r", "MageArmature/ROOT/base/pelvis/ClothB.1.r/ClothB.2.r" }, { "ClothB.3.r", "MageArmature/ROOT/base/pelvis/ClothB.1.r/ClothB.2.r/ClothB.3.r" }, { "ClothB.4.r", "MageArmature/ROOT/base/pelvis/ClothB.1.r/ClothB.2.r/ClothB.3.r/ClothB.4.r" }, { "ClothC.1.l", "MageArmature/ROOT/base/pelvis/ClothC.1.l" }, { "ClothC.2.l", "MageArmature/ROOT/base/pelvis/ClothC.1.l/ClothC.2.l" }, { "ClothC.3.l", "MageArmature/ROOT/base/pelvis/ClothC.1.l/ClothC.2.l/ClothC.3.l" }, { "ClothC.4.l", "MageArmature/ROOT/base/pelvis/ClothC.1.l/ClothC.2.l/ClothC.3.l/ClothC.4.l" }, { "ClothC.1.r", "MageArmature/ROOT/base/pelvis/ClothC.1.r" }, { "ClothC.2.r", "MageArmature/ROOT/base/pelvis/ClothC.1.r/ClothC.2.r" }, { "ClothC.3.r", "MageArmature/ROOT/base/pelvis/ClothC.1.r/ClothC.2.r/ClothC.3.r" }, { "ClothC.4.r", "MageArmature/ROOT/base/pelvis/ClothC.1.r/ClothC.2.r/ClothC.3.r/ClothC.4.r" }, { "ClothD.1", "MageArmature/ROOT/base/pelvis/ClothD.1" }, { "ClothD.2", "MageArmature/ROOT/base/pelvis/ClothD.1/ClothD.2" }, { "ClothD.3", "MageArmature/ROOT/base/pelvis/ClothD.1/ClothD.2/ClothD.3" }, { "ClothD.4", "MageArmature/ROOT/base/pelvis/ClothD.1/ClothD.2/ClothD.3/ClothD.4" }, { "ClothD.5", "MageArmature/ROOT/base/pelvis/ClothD.1/ClothD.2/ClothD.3/ClothD.4/ClothD.5" }, { "ClothD.6", "MageArmature/ROOT/base/pelvis/ClothD.1/ClothD.2/ClothD.3/ClothD.4/ClothD.5/ClothD.6" }, { "thigh.l", "MageArmature/ROOT/base/pelvis/thigh.l" }, { "calf.l", "MageArmature/ROOT/base/pelvis/thigh.l/calf.l" }, { "foot.l", "MageArmature/ROOT/base/pelvis/thigh.l/calf.l/foot.l" }, { "toe.l", "MageArmature/ROOT/base/pelvis/thigh.l/calf.l/foot.l/toe.l" }, { "thigh.r", "MageArmature/ROOT/base/pelvis/thigh.r" }, { "calf.r", "MageArmature/ROOT/base/pelvis/thigh.r/calf.r" }, { "foot.r", "MageArmature/ROOT/base/pelvis/thigh.r/calf.r/foot.r" }, { "toe.r", "MageArmature/ROOT/base/pelvis/thigh.r/calf.r/foot.r/toe.r" }, { "stomach", "MageArmature/ROOT/base/stomach" }, { "chest", "MageArmature/ROOT/base/stomach/chest" }, { "clavicle.l", "MageArmature/ROOT/base/stomach/chest/clavicle.l" }, { "upper_arm.l", "MageArmature/ROOT/base/stomach/chest/clavicle.l/upper_arm.l" }, { "lower_arm.l", "MageArmature/ROOT/base/stomach/chest/clavicle.l/upper_arm.l/lower_arm.l" }, { "hand.l", "MageArmature/ROOT/base/stomach/chest/clavicle.l/upper_arm.l/lower_arm.l/hand.l" }, { "finger1.1.l", "MageArmature/ROOT/base/stomach/chest/clavicle.l/upper_arm.l/lower_arm.l/hand.l/finger1.1.l" }, { "finger1.2.l", "MageArmature/ROOT/base/stomach/chest/clavicle.l/upper_arm.l/lower_arm.l/hand.l/finger1.1.l/finger1.2.l" }, { "finger1.3.l", "MageArmature/ROOT/base/stomach/chest/clavicle.l/upper_arm.l/lower_arm.l/hand.l/finger1.1.l/finger1.2.l/finger1.3.l" }, { "finger2.1.l", "MageArmature/ROOT/base/stomach/chest/clavicle.l/upper_arm.l/lower_arm.l/hand.l/finger2.1.l" }, { "finger2.2.l", "MageArmature/ROOT/base/stomach/chest/clavicle.l/upper_arm.l/lower_arm.l/hand.l/finger2.1.l/finger2.2.l" }, { "finger2.3.l", "MageArmature/ROOT/base/stomach/chest/clavicle.l/upper_arm.l/lower_arm.l/hand.l/finger2.1.l/finger2.2.l/finger2.3.l" }, { "finger3.1.l", "MageArmature/ROOT/base/stomach/chest/clavicle.l/upper_arm.l/lower_arm.l/hand.l/finger3.1.l" }, { "finger3.2.l", "MageArmature/ROOT/base/stomach/chest/clavicle.l/upper_arm.l/lower_arm.l/hand.l/finger3.1.l/finger3.2.l" }, { "finger3.3.l", "MageArmature/ROOT/base/stomach/chest/clavicle.l/upper_arm.l/lower_arm.l/hand.l/finger3.1.l/finger3.2.l/finger3.3.l" }, { "finger4.1.l", "MageArmature/ROOT/base/stomach/chest/clavicle.l/upper_arm.l/lower_arm.l/hand.l/finger4.1.l" }, { "finger4.2.l", "MageArmature/ROOT/base/stomach/chest/clavicle.l/upper_arm.l/lower_arm.