mirror of
				https://gitgud.io/AbstractConcept/rimworld-animation-studio.git
				synced 2024-08-15 00:43:27 +00:00 
			
		
		
		
	Code refactor
This commit is contained in:
		
							parent
							
								
									e14a12f2ab
								
							
						
					
					
						commit
						af4dab5546
					
				
					 278 changed files with 468 additions and 668 deletions
				
			
		
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -65,6 +65,7 @@
 | 
			
		|||
  <ItemGroup>
 | 
			
		||||
    <Compile Include="Assets\Editor\AdvancedPolygonColliderEditor.cs" />
 | 
			
		||||
    <Compile Include="Assets\Editor\ButtonWithKeyCodeEditor.cs" />
 | 
			
		||||
    <Compile Include="Assets\Editor\FindMissingScriptsRecursively.cs" />
 | 
			
		||||
    <Compile Include="Assets\Editor\KeyframeSliderEditor.cs" />
 | 
			
		||||
    <Reference Include="UnityEngine">
 | 
			
		||||
      <HintPath>C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data/Managed/UnityEngine/UnityEngine.dll</HintPath>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -87,12 +87,14 @@
 | 
			
		|||
    <Compile Include="Assets\Scripts\Extensions\ObjectExtensions.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\Extensions\TransformExtensions.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\Extensions\Vector3Extension.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\ActorManipulator.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\Actors\ActorBody.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\Actors\ActorBodyPart.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\AddSoundDefButton.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\AddonAnchorDropdown.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\AnimationLengthsCard.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\AnimationTimeline.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\ButtonWithKeyCode.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\Cards\ActorAddonCard.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\Cards\ActorAddonKeyframeCard.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\Cards\ActorCard.cs" />
 | 
			
		||||
| 
						 | 
				
			
			@ -101,6 +103,7 @@
 | 
			
		|||
    <Compile Include="Assets\Scripts\GUI\Cards\AnimationDefCard.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\Cards\StageCard.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\Cards\StageLoopsCard.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\Chaser.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\DialogBoxes\ConsoleMessagesDialog.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\DialogBoxes\DialogBox.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\DialogBoxes\RaceSettingsDialog.cs" />
 | 
			
		||||
| 
						 | 
				
			
			@ -114,21 +117,19 @@
 | 
			
		|||
    <Compile Include="Assets\Scripts\GUI\DialogBoxes\SelectSexTypesDialog.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\DialogBoxes\SelectSoundDefDialog.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\DropdownMenu.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\InactiveDuringAnimationPreview.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\KeybindLabel.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\KeyframeSlider.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\LinearScale.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\Props\SexProp.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\Props\SexPropManager.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\QuiverToggle.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\RequiresAnimationDef.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\SelectActorLayerButton.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\SelfContained\ActorManipulator.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\SelfContained\ButtonWithKeyCode.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\SelfContained\Chaser.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\SelfContained\InactiveDuringAnimationPreview.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\SelfContained\RequiresAnimationDef.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\SelfContained\SnapToKeyframe.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\SnapToKeyframe.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\Tooltips\Tooltip.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\GUI\Tooltips\TooltipMessage.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\Graphics\GraphicData.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\Graphics\MultiDirectionalGraphic.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\Graphics\SingleGraphic.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\Keybinds\Keybind.cs" />
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										130
									
								
								Assets/Editor/FindMissingScriptsRecursively.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										130
									
								
								Assets/Editor/FindMissingScriptsRecursively.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,130 @@
 | 
			
		|||
using UnityEditor;
 | 
			
		||||
using UnityEngine;
 | 
			
		||||
 | 
			
		||||
namespace AndroidUltimatePlugin.Helpers.Editor
 | 
			
		||||
{
 | 
			
		||||
    public class FindMissingScriptsRecursively : EditorWindow
 | 
			
		||||
    {
 | 
			
		||||
        static int _goCount = 0, _componentsCount = 0, _missingCount = 0;
 | 
			
		||||
 | 
			
		||||
        [MenuItem("Window/FindMissingScriptsRecursively")]
 | 
			
		||||
        public static void ShowWindow()
 | 
			
		||||
        {
 | 
			
		||||
            GetWindow(typeof(FindMissingScriptsRecursively));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void OnGUI()
 | 
			
		||||
        {
 | 
			
		||||
            if (GUILayout.Button("Find Missing Scripts in selected GameObjects"))
 | 
			
		||||
            {
 | 
			
		||||
                FindInSelected();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (GUILayout.Button("Find Missing Scripts"))
 | 
			
		||||
            {
 | 
			
		||||
                FindAll();
 | 
			
		||||
            }
 | 
			
		||||
            EditorGUILayout.BeginHorizontal();
 | 
			
		||||
            {
 | 
			
		||||
                EditorGUILayout.LabelField("Component Scanned:");
 | 
			
		||||
                EditorGUILayout.LabelField("" + (_componentsCount == -1 ? "---" : _componentsCount.ToString()));
 | 
			
		||||
            }
 | 
			
		||||
            EditorGUILayout.EndHorizontal();
 | 
			
		||||
            
 | 
			
		||||
            EditorGUILayout.BeginHorizontal();
 | 
			
		||||
            {
 | 
			
		||||
                EditorGUILayout.LabelField("Object Scanned:");
 | 
			
		||||
                EditorGUILayout.LabelField("" + (_goCount == -1 ? "---" : _goCount.ToString()));
 | 
			
		||||
            }
 | 
			
		||||
            EditorGUILayout.EndHorizontal();
 | 
			
		||||
            
 | 
			
		||||
            EditorGUILayout.BeginHorizontal();
 | 
			
		||||
            {
 | 
			
		||||
                EditorGUILayout.LabelField("Possible Missing Scripts:");
 | 
			
		||||
                EditorGUILayout.LabelField("" + (_missingCount == -1 ? "---" : _missingCount.ToString()));
 | 
			
		||||
            }
 | 
			
		||||
            EditorGUILayout.EndHorizontal();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private static void FindAll()
 | 
			
		||||
        {
 | 
			
		||||
            _componentsCount = 0;
 | 
			
		||||
            _goCount = 0;
 | 
			
		||||
            _missingCount = 0;
 | 
			
		||||
            
 | 
			
		||||
            string[] assetsPaths = AssetDatabase.GetAllAssetPaths();
 | 
			
		||||
 | 
			
		||||
            foreach (string assetPath in assetsPaths)
 | 
			
		||||
            {
 | 
			
		||||
                Object[] data = LoadAllAssetsAtPath(assetPath);
 | 
			
		||||
                foreach (Object o in data)
 | 
			
		||||
                {
 | 
			
		||||
                    if (o != null)
 | 
			
		||||
                    {
 | 
			
		||||
                        if (o is GameObject)
 | 
			
		||||
                        {
 | 
			
		||||
                            FindInGO((GameObject) o);
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            Debug.Log($"Searched {_goCount} GameObjects, {_componentsCount} components, found {_missingCount} missing");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public static Object[] LoadAllAssetsAtPath(string assetPath)
 | 
			
		||||
        {
 | 
			
		||||
            return typeof(SceneAsset).Equals(AssetDatabase.GetMainAssetTypeAtPath(assetPath))
 | 
			
		||||
                ?
 | 
			
		||||
                // prevent error "Do not use readobjectthreaded on scene objects!"
 | 
			
		||||
                new[] {AssetDatabase.LoadMainAssetAtPath(assetPath)}
 | 
			
		||||
                : AssetDatabase.LoadAllAssetsAtPath(assetPath);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private static void FindInSelected()
 | 
			
		||||
        {
 | 
			
		||||
            GameObject[] go = Selection.gameObjects;
 | 
			
		||||
            _goCount = 0;
 | 
			
		||||
            _componentsCount = 0;
 | 
			
		||||
            _missingCount = 0;
 | 
			
		||||
            foreach (GameObject g in go)
 | 
			
		||||
            {
 | 
			
		||||
 | 
			
		||||
                FindInGO(g);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            Debug.Log($"Searched {_goCount} GameObjects, {_componentsCount} components, found {_missingCount} missing");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private static void FindInGO(GameObject g)
 | 
			
		||||
        {
 | 
			
		||||
            _goCount++;
 | 
			
		||||
            Component[] components = g.GetComponents<Component>();
 | 
			
		||||
            for (int i = 0; i < components.Length; i++)
 | 
			
		||||
            {
 | 
			
		||||
                _componentsCount++;
 | 
			
		||||
                if (components[i] == null)
 | 
			
		||||
                {
 | 
			
		||||
                    _missingCount++;
 | 
			
		||||
                    string s = g.name;
 | 
			
		||||
                    Transform t = g.transform;
 | 
			
		||||
                    while (t.parent != null)
 | 
			
		||||
                    {
 | 
			
		||||
                        var parent = t.parent;
 | 
			
		||||
                        s = parent.name + "/" + s;
 | 
			
		||||
                        t = parent;
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    Debug.Log(s + " has an empty script attached in position: " + i, g);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // Now recurse through each child GO (if there are any):
 | 
			
		||||
            foreach (Transform childT in g.transform)
 | 
			
		||||
            {
 | 
			
		||||
                //Debug.Log("Searching " + childT.name  + " " );
 | 
			
		||||
                FindInGO(childT.gameObject);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										11
									
								
								Assets/Editor/FindMissingScriptsRecursively.cs.meta
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								Assets/Editor/FindMissingScriptsRecursively.cs.meta
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,11 @@
 | 
			
		|||
fileFormatVersion: 2
 | 
			
		||||
guid: f991f27152653b841901199172a12809
 | 
			
		||||
MonoImporter:
 | 
			
		||||
  externalObjects: {}
 | 
			
		||||
  serializedVersion: 2
 | 
			
		||||
  defaultReferences: []
 | 
			
		||||
  executionOrder: 0
 | 
			
		||||
  icon: {instanceID: 0}
 | 
			
		||||
  userData: 
 | 
			
		||||
  assetBundleName: 
 | 
			
		||||
  assetBundleVariant: 
 | 
			
		||||
| 
						 | 
				
			
			@ -1,344 +1,5 @@
 | 
			
		|||
%YAML 1.1
 | 
			
		||||
%TAG !u! tag:unity3d.com,2011:
 | 
			
		||||
--- !u!1 &111030959124096607
 | 
			
		||||
GameObject:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  serializedVersion: 6
 | 
			
		||||
  m_Component:
 | 
			
		||||
  - component: {fileID: 523924871185930481}
 | 
			
		||||
  - component: {fileID: 3345967395353432914}
 | 
			
		||||
  - component: {fileID: 7181959437973434010}
 | 
			
		||||
  - component: {fileID: 8578366366517098866}
 | 
			
		||||
  - component: {fileID: 2696481706634536602}
 | 
			
		||||
  m_Layer: 0
 | 
			
		||||
  m_Name: ActorHandRight
 | 
			
		||||
  m_TagString: Untagged
 | 
			
		||||
  m_Icon: {fileID: 0}
 | 
			
		||||
  m_NavMeshLayer: 0
 | 
			
		||||
  m_StaticEditorFlags: 0
 | 
			
		||||
  m_IsActive: 0
 | 
			
		||||
--- !u!4 &523924871185930481
 | 
			
		||||
Transform:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 111030959124096607}
 | 
			
		||||
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
 | 
			
		||||
  m_LocalPosition: {x: 0, y: 0, z: 0}
 | 
			
		||||
  m_LocalScale: {x: 1, y: 1, z: 1}
 | 
			
		||||
  m_Children: []
 | 
			
		||||
  m_Father: {fileID: 7929422520673851209}
 | 
			
		||||
  m_RootOrder: 5
 | 
			
		||||
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 | 
			
		||||
--- !u!212 &3345967395353432914
 | 
			
		||||
SpriteRenderer:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 111030959124096607}
 | 
			
		||||
  m_Enabled: 1
 | 
			
		||||
  m_CastShadows: 0
 | 
			
		||||
  m_ReceiveShadows: 0
 | 
			
		||||
  m_DynamicOccludee: 1
 | 
			
		||||
  m_MotionVectors: 1
 | 
			
		||||
  m_LightProbeUsage: 1
 | 
			
		||||
  m_ReflectionProbeUsage: 1
 | 
			
		||||
  m_RayTracingMode: 0
 | 
			
		||||
  m_RenderingLayerMask: 1
 | 
			
		||||
  m_RendererPriority: 0
 | 
			
		||||
  m_Materials:
 | 
			
		||||
  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
 | 
			
		||||
  m_StaticBatchInfo:
 | 
			
		||||
    firstSubMesh: 0
 | 
			
		||||
    subMeshCount: 0
 | 
			
		||||
  m_StaticBatchRoot: {fileID: 0}
 | 
			
		||||
  m_ProbeAnchor: {fileID: 0}
 | 
			
		||||
  m_LightProbeVolumeOverride: {fileID: 0}
 | 
			
		||||
  m_ScaleInLightmap: 1
 | 
			
		||||
  m_ReceiveGI: 1
 | 
			
		||||
  m_PreserveUVs: 0
 | 
			
		||||
  m_IgnoreNormalsForChartDetection: 0
 | 
			
		||||
  m_ImportantGI: 0
 | 
			
		||||
  m_StitchLightmapSeams: 1
 | 
			
		||||
  m_SelectedEditorRenderState: 0
 | 
			
		||||
  m_MinimumChartSize: 4
 | 
			
		||||
  m_AutoUVMaxDistance: 0.5
 | 
			
		||||
  m_AutoUVMaxAngle: 89
 | 
			
		||||
  m_LightmapParameters: {fileID: 0}
 | 
			
		||||
  m_SortingLayerID: -2115984483
 | 
			
		||||
  m_SortingLayer: 22
 | 
			
		||||
  m_SortingOrder: 3
 | 
			
		||||
  m_Sprite: {fileID: 21300000, guid: 68b94fce550ad52498142c9433df954b, type: 3}
 | 
			
		||||
  m_Color: {r: 1, g: 1, b: 1, a: 1}
 | 
			
		||||
  m_FlipX: 0
 | 
			
		||||
  m_FlipY: 0
 | 
			
		||||
  m_DrawMode: 0
 | 
			
		||||
  m_Size: {x: 1.3837838, y: 1.3837838}
 | 
			
		||||
  m_AdaptiveModeThreshold: 0.5
 | 
			
		||||
  m_SpriteTileMode: 0
 | 
			
		||||
  m_WasSpriteAssigned: 1
 | 
			
		||||
  m_MaskInteraction: 0
 | 
			
		||||
  m_SpriteSortPoint: 0
 | 
			
		||||
--- !u!60 &7181959437973434010
 | 
			
		||||
PolygonCollider2D:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 111030959124096607}
 | 
			
		||||
  m_Enabled: 1
 | 
			
		||||
  m_Density: 1
 | 
			
		||||
  m_Material: {fileID: 0}
 | 
			
		||||
  m_IsTrigger: 0
 | 
			
		||||
  m_UsedByEffector: 0
 | 
			
		||||
  m_UsedByComposite: 0
 | 
			
		||||
  m_Offset: {x: 0, y: 0}
 | 
			
		||||
  m_SpriteTilingProperty:
 | 
			
		||||
    border: {x: 0, y: 0, z: 0, w: 0}
 | 
			
		||||
    pivot: {x: 0.5, y: 0.5}
 | 
			
		||||
    oldSize: {x: 1.0039216, y: 1.0039216}
 | 
			
		||||
    newSize: {x: 1.3837838, y: 1.3837838}
 | 
			
		||||
    adaptiveTilingThreshold: 0.5
 | 
			
		||||
    drawMode: 0
 | 
			
		||||
    adaptiveTiling: 0
 | 
			
		||||
  m_AutoTiling: 0
 | 
			
		||||
  m_Points:
 | 
			
		||||
    m_Paths:
 | 
			
		||||
    - - {x: -0.013513514, y: -0.035135135}
 | 
			
		||||
      - {x: 0.029729731, y: -0.029729731}
 | 
			
		||||
      - {x: 0.040540542, y: -0.0027027028}
 | 
			
		||||
      - {x: 0.045945946, y: 0.12162162}
 | 
			
		||||
      - {x: 0.013513514, y: 0.15945946}
 | 
			
		||||
      - {x: -0.024324324, y: 0.14864865}
 | 
			
		||||
      - {x: -0.040540542, y: 0.12162162}
 | 
			
		||||
      - {x: -0.024324324, y: -0.029729731}
 | 
			
		||||
    - - {x: -0.056756757, y: 0.008108108}
 | 
			
		||||
      - {x: -0.051351354, y: 0.072972976}
 | 
			
		||||
      - {x: -0.056756757, y: 0.029729731}
 | 
			
		||||
    - - {x: 0.056756757, y: 0.008108108}
 | 
			
		||||
      - {x: 0.056756757, y: 0.01891892}
 | 
			
		||||
    - - {x: 0.056756757, y: 0.07837838}
 | 
			
		||||
      - {x: 0.062162165, y: 0.1}
 | 
			
		||||
      - {x: 0.056756757, y: 0.089189194}
 | 
			
		||||
--- !u!114 &8578366366517098866
 | 
			
		||||
MonoBehaviour:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 111030959124096607}
 | 
			
		||||
  m_Enabled: 1
 | 
			
		||||
  m_EditorHideFlags: 0
 | 
			
		||||
  m_Script: {fileID: 11500000, guid: 8c55c83d4c4dd1145ad5fbbab3c3df36, type: 3}
 | 
			
		||||
  m_Name: 
 | 
			
		||||
  m_EditorClassIdentifier: 
 | 
			
		||||
  AlphaTolerance: 50
 | 
			
		||||
  DistanceThreshold: 2
 | 
			
		||||
  Scale: 1
 | 
			
		||||
  Decompose: 0
 | 
			
		||||
  RunInPlayMode: 1
 | 
			
		||||
  UseCache: 0
 | 
			
		||||
  lastAlphaTolerance: 20
 | 
			
		||||
  lastScale: 1
 | 
			
		||||
  lastDistanceThreshold: 2
 | 
			
		||||
  lastDecompose: 0
 | 
			
		||||
  lastSprite: {fileID: 21300000, guid: 38c0bc38c0d71b04cb11a1eb610990e1, type: 3}
 | 
			
		||||
  lastRect:
 | 
			
		||||
    serializedVersion: 2
 | 
			
		||||
    x: 0
 | 
			
		||||
    y: 0
 | 
			
		||||
    width: 256
 | 
			
		||||
    height: 256
 | 
			
		||||
  lastOffset: {x: 128, y: 128}
 | 
			
		||||
  lastPixelsPerUnit: 185
 | 
			
		||||
  lastFlipX: 0
 | 
			
		||||
  lastFlipY: 0
 | 
			
		||||
  editorCache: []
 | 
			
		||||
--- !u!114 &2696481706634536602
 | 
			
		||||
MonoBehaviour:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 111030959124096607}
 | 
			
		||||
  m_Enabled: 1
 | 
			
		||||
  m_EditorHideFlags: 0
 | 
			
		||||
  m_Script: {fileID: 11500000, guid: b23e33f312d52c642b86f5f2138f4030, type: 3}
 | 
			
		||||
  m_Name: 
 | 
			
		||||
  m_EditorClassIdentifier: 
 | 
			
		||||
  bodyPartRenderer: {fileID: 3345967395353432914}
 | 
			
		||||
  parent: {fileID: -4411442180840688308}
 | 
			
		||||
  bodyPart: right hand
 | 
			
		||||
--- !u!1 &2846713953308910856
 | 
			
		||||
GameObject:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  serializedVersion: 6
 | 
			
		||||
  m_Component:
 | 
			
		||||
  - component: {fileID: 7268521810611446429}
 | 
			
		||||
  - component: {fileID: 4070361490379091543}
 | 
			
		||||
  - component: {fileID: 2766569757332877970}
 | 
			
		||||
  - component: {fileID: 1056544768350913866}
 | 
			
		||||
  - component: {fileID: 8546380208971044199}
 | 
			
		||||
  m_Layer: 0
 | 
			
		||||
  m_Name: ActorHandLeft
 | 
			
		||||
  m_TagString: Untagged
 | 
			
		||||
  m_Icon: {fileID: 0}
 | 
			
		||||
  m_NavMeshLayer: 0
 | 
			
		||||
  m_StaticEditorFlags: 0
 | 
			
		||||
  m_IsActive: 0
 | 
			
		||||
--- !u!4 &7268521810611446429
 | 
			
		||||
Transform:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 2846713953308910856}
 | 
			
		||||
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
 | 
			
		||||
  m_LocalPosition: {x: 0, y: 0, z: 0}
 | 
			
		||||
  m_LocalScale: {x: 1, y: 1, z: 1}
 | 
			
		||||
  m_Children: []
 | 
			
		||||
  m_Father: {fileID: 7929422520673851209}
 | 
			
		||||
  m_RootOrder: 4
 | 
			
		||||
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 | 
			
		||||
--- !u!212 &4070361490379091543
 | 
			
		||||
SpriteRenderer:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 2846713953308910856}
 | 
			
		||||
  m_Enabled: 1
 | 
			
		||||
  m_CastShadows: 0
 | 
			
		||||
  m_ReceiveShadows: 0
 | 
			
		||||
  m_DynamicOccludee: 1
 | 
			
		||||
  m_MotionVectors: 1
 | 
			
		||||
  m_LightProbeUsage: 1
 | 
			
		||||
  m_ReflectionProbeUsage: 1
 | 
			
		||||
  m_RayTracingMode: 0
 | 
			
		||||
  m_RenderingLayerMask: 1
 | 
			
		||||
  m_RendererPriority: 0
 | 
			
		||||
  m_Materials:
 | 
			
		||||
  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
 | 
			
		||||
  m_StaticBatchInfo:
 | 
			
		||||
    firstSubMesh: 0
 | 
			
		||||
    subMeshCount: 0
 | 
			
		||||
  m_StaticBatchRoot: {fileID: 0}
 | 
			
		||||
  m_ProbeAnchor: {fileID: 0}
 | 
			
		||||
  m_LightProbeVolumeOverride: {fileID: 0}
 | 
			
		||||
  m_ScaleInLightmap: 1
 | 
			
		||||
  m_ReceiveGI: 1
 | 
			
		||||
  m_PreserveUVs: 0
 | 
			
		||||
  m_IgnoreNormalsForChartDetection: 0
 | 
			
		||||
  m_ImportantGI: 0
 | 
			
		||||
  m_StitchLightmapSeams: 1
 | 
			
		||||
  m_SelectedEditorRenderState: 0
 | 
			
		||||
  m_MinimumChartSize: 4
 | 
			
		||||
  m_AutoUVMaxDistance: 0.5
 | 
			
		||||
  m_AutoUVMaxAngle: 89
 | 
			
		||||
  m_LightmapParameters: {fileID: 0}
 | 
			
		||||
  m_SortingLayerID: -2115984483
 | 
			
		||||
  m_SortingLayer: 22
 | 
			
		||||
  m_SortingOrder: 3
 | 
			
		||||
  m_Sprite: {fileID: 21300000, guid: 68b94fce550ad52498142c9433df954b, type: 3}
 | 
			
		||||
  m_Color: {r: 1, g: 1, b: 1, a: 1}
 | 
			
		||||
  m_FlipX: 0
 | 
			
		||||
  m_FlipY: 0
 | 
			
		||||
  m_DrawMode: 0
 | 
			
		||||
  m_Size: {x: 1.3837838, y: 1.3837838}
 | 
			
		||||
  m_AdaptiveModeThreshold: 0.5
 | 
			
		||||
  m_SpriteTileMode: 0
 | 
			
		||||
  m_WasSpriteAssigned: 1
 | 
			
		||||
  m_MaskInteraction: 0
 | 
			
		||||
  m_SpriteSortPoint: 0
 | 
			
		||||
--- !u!60 &2766569757332877970
 | 
			
		||||
PolygonCollider2D:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 2846713953308910856}
 | 
			
		||||
  m_Enabled: 1
 | 
			
		||||
  m_Density: 1
 | 
			
		||||
  m_Material: {fileID: 0}
 | 
			
		||||
  m_IsTrigger: 0
 | 
			
		||||
  m_UsedByEffector: 0
 | 
			
		||||
  m_UsedByComposite: 0
 | 
			
		||||
  m_Offset: {x: 0, y: 0}
 | 
			
		||||
  m_SpriteTilingProperty:
 | 
			
		||||
    border: {x: 0, y: 0, z: 0, w: 0}
 | 
			
		||||
    pivot: {x: 0.5, y: 0.5}
 | 
			
		||||
    oldSize: {x: 1.0039216, y: 1.0039216}
 | 
			
		||||
    newSize: {x: 1.3837838, y: 1.3837838}
 | 
			
		||||
    adaptiveTilingThreshold: 0.5
 | 
			
		||||
    drawMode: 0
 | 
			
		||||
    adaptiveTiling: 0
 | 
			
		||||
  m_AutoTiling: 0
 | 
			
		||||
  m_Points:
 | 
			
		||||
    m_Paths:
 | 
			
		||||
    - - {x: -0.013513514, y: -0.035135135}
 | 
			
		||||
      - {x: 0.035135135, y: -0.01891892}
 | 
			
		||||
      - {x: 0.040540542, y: 0.13243243}
 | 
			
		||||
      - {x: 0.01891892, y: 0.15405406}
 | 
			
		||||
      - {x: -0.013513514, y: 0.15405406}
 | 
			
		||||
      - {x: -0.035135135, y: 0.13243243}
 | 
			
		||||
      - {x: -0.024324324, y: -0.024324324}
 | 
			
		||||
--- !u!114 &1056544768350913866
 | 
			
		||||
MonoBehaviour:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 2846713953308910856}
 | 
			
		||||
  m_Enabled: 1
 | 
			
		||||
  m_EditorHideFlags: 0
 | 
			
		||||
  m_Script: {fileID: 11500000, guid: 8c55c83d4c4dd1145ad5fbbab3c3df36, type: 3}
 | 
			
		||||
  m_Name: 
 | 
			
		||||
  m_EditorClassIdentifier: 
 | 
			
		||||
  AlphaTolerance: 50
 | 
			
		||||
  DistanceThreshold: 2
 | 
			
		||||
  Scale: 1
 | 
			
		||||
  Decompose: 0
 | 
			
		||||
  RunInPlayMode: 1
 | 
			
		||||
  UseCache: 0
 | 
			
		||||
  lastAlphaTolerance: 50
 | 
			
		||||
  lastScale: 1
 | 
			
		||||
  lastDistanceThreshold: 2
 | 
			
		||||
  lastDecompose: 0
 | 
			
		||||
  lastSprite: {fileID: 21300000, guid: 38c0bc38c0d71b04cb11a1eb610990e1, type: 3}
 | 
			
		||||
  lastRect:
 | 
			
		||||
    serializedVersion: 2
 | 
			
		||||
    x: 0
 | 
			
		||||
    y: 0
 | 
			
		||||
    width: 256
 | 
			
		||||
    height: 256
 | 
			
		||||
  lastOffset: {x: 128, y: 128}
 | 
			
		||||
  lastPixelsPerUnit: 185
 | 
			
		||||
  lastFlipX: 0
 | 
			
		||||
  lastFlipY: 0
 | 
			
		||||
  editorCache: []
 | 
			
		||||
--- !u!114 &8546380208971044199
 | 
			
		||||
MonoBehaviour:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 2846713953308910856}
 | 
			
		||||
  m_Enabled: 1
 | 
			
		||||
  m_EditorHideFlags: 0
 | 
			
		||||
  m_Script: {fileID: 11500000, guid: b23e33f312d52c642b86f5f2138f4030, type: 3}
 | 
			
		||||
  m_Name: 
 | 
			
		||||
  m_EditorClassIdentifier: 
 | 
			
		||||
  bodyPartRenderer: {fileID: 4070361490379091543}
 | 
			
		||||
  parent: {fileID: -4411442180840688308}
 | 
			
		||||
  bodyPart: left hand
 | 
			
		||||
--- !u!1 &3158459618386162366
 | 
			
		||||
GameObject:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
| 
						 | 
				
			
			@ -670,9 +331,6 @@ Transform:
 | 
			
		|||
  - {fileID: 7516402502875270591}
 | 
			
		||||
  - {fileID: 7929422519883802245}
 | 
			
		||||
  - {fileID: 4090857286061458930}
 | 
			
		||||
  - {fileID: 366978152691480472}
 | 
			
		||||
  - {fileID: 7268521810611446429}
 | 
			
		||||
  - {fileID: 523924871185930481}
 | 
			
		||||
  m_Father: {fileID: 0}
 | 
			
		||||
  m_RootOrder: 0
 | 
			
		||||
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 | 
			
		||||
| 
						 | 
				
			
			@ -690,6 +348,8 @@ MonoBehaviour:
 | 
			
		|||
  m_EditorClassIdentifier: 
 | 
			
		||||
  actorID: 0
 | 
			
		||||
  bodyRenderer: {fileID: 5996161745621340017}
 | 
			
		||||
  actorBodyPartPrefab: {fileID: 6079743031150361545, guid: ffbd7531e8f98f94dba0fddefcae2441,
 | 
			
		||||
    type: 3}
 | 
			
		||||
--- !u!1 &9122292209377678227
 | 
			
		||||
GameObject:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
| 
						 | 
				
			
			@ -864,114 +524,3 @@ MonoBehaviour:
 | 
			
		|||
  bodyPartRenderer: {fileID: 4251726083449519904}
 | 
			
		||||
  parent: {fileID: -4411442180840688308}
 | 
			
		||||
  bodyPart: appendage
 | 
			
		||||
--- !u!1001 &8747398589072214225
 | 
			
		||||
PrefabInstance:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  serializedVersion: 2
 | 
			
		||||
  m_Modification:
 | 
			
		||||
    m_TransformParent: {fileID: 7929422520673851209}
 | 
			
		||||
    m_Modifications:
 | 
			
		||||
    - target: {fileID: 2259458396607883071, guid: ffbd7531e8f98f94dba0fddefcae2441,
 | 
			
		||||
        type: 3}
 | 
			
		||||
      propertyPath: m_Size.x
 | 
			
		||||
      value: 1.5058824
 | 
			
		||||
      objectReference: {fileID: 0}
 | 
			
		||||
    - target: {fileID: 2259458396607883071, guid: ffbd7531e8f98f94dba0fddefcae2441,
 | 
			
		||||
        type: 3}
 | 
			
		||||
      propertyPath: m_Size.y
 | 
			
		||||
      value: 1.5058824
 | 
			
		||||
      objectReference: {fileID: 0}
 | 
			
		||||
    - target: {fileID: 2259458396607883071, guid: ffbd7531e8f98f94dba0fddefcae2441,
 | 
			
		||||
        type: 3}
 | 
			
		||||
      propertyPath: m_Sprite
 | 
			
		||||
      value: 
 | 
			
		||||
      objectReference: {fileID: 21300000, guid: c8db866783ad2a3498006437fd914bc4,
 | 
			
		||||
        type: 3}
 | 
			
		||||
    - target: {fileID: 2259458396607883071, guid: ffbd7531e8f98f94dba0fddefcae2441,
 | 
			
		||||
        type: 3}
 | 
			
		||||
      propertyPath: m_WasSpriteAssigned
 | 
			
		||||
      value: 1
 | 
			
		||||
      objectReference: {fileID: 0}
 | 
			
		||||
    - target: {fileID: 3972152003096792844, guid: ffbd7531e8f98f94dba0fddefcae2441,
 | 
			
		||||
        type: 3}
 | 
			
		||||
      propertyPath: m_Name
 | 
			
		||||
      value: ActorSexToy
 | 
			
		||||
      objectReference: {fileID: 0}
 | 
			
		||||
    - target: {fileID: 4800170110735377442, guid: ffbd7531e8f98f94dba0fddefcae2441,
 | 
			
		||||
        type: 3}
 | 
			
		||||
      propertyPath: m_SpriteTilingProperty.newSize.x
 | 
			
		||||
      value: 1.5058824
 | 
			
		||||
      objectReference: {fileID: 0}
 | 
			
		||||
    - target: {fileID: 4800170110735377442, guid: ffbd7531e8f98f94dba0fddefcae2441,
 | 
			
		||||
        type: 3}
 | 
			
		||||
      propertyPath: m_SpriteTilingProperty.newSize.y
 | 
			
		||||
      value: 1.5058824
 | 
			
		||||
      objectReference: {fileID: 0}
 | 
			
		||||
    - target: {fileID: 6079743031150361545, guid: ffbd7531e8f98f94dba0fddefcae2441,
 | 
			
		||||
        type: 3}
 | 
			
		||||
      propertyPath: parent
 | 
			
		||||
      value: 
 | 
			
		||||
      objectReference: {fileID: -4411442180840688308}
 | 
			
		||||
    - target: {fileID: 8967445332558757705, guid: ffbd7531e8f98f94dba0fddefcae2441,
 | 
			
		||||
        type: 3}
 | 
			
		||||
      propertyPath: m_RootOrder
 | 
			
		||||
      value: 3
 | 
			
		||||
      objectReference: {fileID: 0}
 | 
			
		||||
    - target: {fileID: 8967445332558757705, guid: ffbd7531e8f98f94dba0fddefcae2441,
 | 
			
		||||
        type: 3}
 | 
			
		||||
      propertyPath: m_LocalPosition.x
 | 
			
		||||
      value: 0
 | 
			
		||||
      objectReference: {fileID: 0}
 | 
			
		||||
    - target: {fileID: 8967445332558757705, guid: ffbd7531e8f98f94dba0fddefcae2441,
 | 
			
		||||
        type: 3}
 | 
			
		||||
      propertyPath: m_LocalPosition.y
 | 
			
		||||
      value: 0
 | 
			
		||||
      objectReference: {fileID: 0}
 | 
			
		||||
    - target: {fileID: 8967445332558757705, guid: ffbd7531e8f98f94dba0fddefcae2441,
 | 
			
		||||
        type: 3}
 | 
			
		||||
      propertyPath: m_LocalPosition.z
 | 
			
		||||
      value: 0
 | 
			
		||||
      objectReference: {fileID: 0}
 | 
			
		||||
    - target: {fileID: 8967445332558757705, guid: ffbd7531e8f98f94dba0fddefcae2441,
 | 
			
		||||
        type: 3}
 | 
			
		||||
      propertyPath: m_LocalRotation.w
 | 
			
		||||
      value: 1
 | 
			
		||||
      objectReference: {fileID: 0}
 | 
			
		||||
    - target: {fileID: 8967445332558757705, guid: ffbd7531e8f98f94dba0fddefcae2441,
 | 
			
		||||
        type: 3}
 | 
			
		||||
      propertyPath: m_LocalRotation.x
 | 
			
		||||
      value: 0
 | 
			
		||||
      objectReference: {fileID: 0}
 | 
			
		||||
    - target: {fileID: 8967445332558757705, guid: ffbd7531e8f98f94dba0fddefcae2441,
 | 
			
		||||
        type: 3}
 | 
			
		||||
      propertyPath: m_LocalRotation.y
 | 
			
		||||
      value: 0
 | 
			
		||||
      objectReference: {fileID: 0}
 | 
			
		||||
    - target: {fileID: 8967445332558757705, guid: ffbd7531e8f98f94dba0fddefcae2441,
 | 
			
		||||
        type: 3}
 | 
			
		||||
      propertyPath: m_LocalRotation.z
 | 
			
		||||
      value: 0
 | 
			
		||||
      objectReference: {fileID: 0}
 | 
			
		||||
    - target: {fileID: 8967445332558757705, guid: ffbd7531e8f98f94dba0fddefcae2441,
 | 
			
		||||
        type: 3}
 | 
			
		||||
      propertyPath: m_LocalEulerAnglesHint.x
 | 
			
		||||
      value: 0
 | 
			
		||||
      objectReference: {fileID: 0}
 | 
			
		||||
    - target: {fileID: 8967445332558757705, guid: ffbd7531e8f98f94dba0fddefcae2441,
 | 
			
		||||
        type: 3}
 | 
			
		||||
      propertyPath: m_LocalEulerAnglesHint.y
 | 
			
		||||
      value: 0
 | 
			
		||||
      objectReference: {fileID: 0}
 | 
			
		||||
    - target: {fileID: 8967445332558757705, guid: ffbd7531e8f98f94dba0fddefcae2441,
 | 
			
		||||
        type: 3}
 | 
			
		||||
      propertyPath: m_LocalEulerAnglesHint.z
 | 
			
		||||
      value: 0
 | 
			
		||||
      objectReference: {fileID: 0}
 | 
			
		||||
    m_RemovedComponents: []
 | 
			
		||||
  m_SourcePrefab: {fileID: 100100000, guid: ffbd7531e8f98f94dba0fddefcae2441, type: 3}
 | 
			
		||||
--- !u!4 &366978152691480472 stripped
 | 
			
		||||
Transform:
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 8967445332558757705, guid: ffbd7531e8f98f94dba0fddefcae2441,
 | 
			
		||||
    type: 3}
 | 
			
		||||
  m_PrefabInstance: {fileID: 8747398589072214225}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,7 +14,7 @@ GameObject:
 | 
			
		|||
  - component: {fileID: 2544842580858030677}
 | 
			
		||||
  - component: {fileID: 6079743031150361545}
 | 
			
		||||
  m_Layer: 0
 | 
			
		||||
  m_Name: ActorSexToy
 | 
			
		||||
  m_Name: ActorBodyPArt
 | 
			
		||||
  m_TagString: Untagged
 | 
			
		||||
  m_Icon: {fileID: 0}
 | 
			
		||||
  m_NavMeshLayer: 0
 | 
			
		||||
| 
						 | 
				
			
			@ -173,4 +173,4 @@ MonoBehaviour:
 | 
			
		|||
  m_EditorClassIdentifier: 
 | 
			
		||||
  bodyPartRenderer: {fileID: 2259458396607883071}
 | 
			
		||||
  parent: {fileID: 0}
 | 
			
		||||
  bodyPart: dildo
 | 
			
		||||
  bodyPart: 
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1696,8 +1696,9 @@ RectTransform:
 | 
			
		|||
  m_LocalScale: {x: 1, y: 1, z: 1}
 | 
			
		||||
  m_Children:
 | 
			
		||||
  - {fileID: 1179107127}
 | 
			
		||||
  - {fileID: 681903173}
 | 
			
		||||
  m_Father: {fileID: 1552819969}
 | 
			
		||||
  m_RootOrder: 2
 | 
			
		||||
  m_RootOrder: 1
 | 
			
		||||
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 | 
			
		||||
  m_AnchorMin: {x: 1, y: 0}
 | 
			
		||||
  m_AnchorMax: {x: 1, y: 0}
 | 
			
		||||
| 
						 | 
				
			
			@ -12633,14 +12634,14 @@ RectTransform:
 | 
			
		|||
  m_LocalPosition: {x: 0, y: 0, z: 0}
 | 
			
		||||
  m_LocalScale: {x: 1, y: 1, z: 1}
 | 
			
		||||
  m_Children: []
 | 
			
		||||
  m_Father: {fileID: 1552819969}
 | 
			
		||||
  m_Father: {fileID: 121643454}
 | 
			
		||||
  m_RootOrder: 1
 | 
			
		||||
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 | 
			
		||||
  m_AnchorMin: {x: 0, y: 0}
 | 
			
		||||
  m_AnchorMax: {x: 0, y: 0}
 | 
			
		||||
  m_AnchoredPosition: {x: 145.19, y: 0}
 | 
			
		||||
  m_SizeDelta: {x: 30, y: 30}
 | 
			
		||||
  m_Pivot: {x: 0, y: 0}
 | 
			
		||||
  m_AnchorMin: {x: 0, y: 0.5}
 | 
			
		||||
  m_AnchorMax: {x: 0, y: 0.5}
 | 
			
		||||
  m_AnchoredPosition: {x: 5, y: 0}
 | 
			
		||||
  m_SizeDelta: {x: 25, y: 25}
 | 
			
		||||
  m_Pivot: {x: 0, y: 0.5}
 | 
			
		||||
--- !u!114 &681903174
 | 
			
		||||
MonoBehaviour:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
| 
						 | 
				
			
			@ -17847,12 +17848,12 @@ RectTransform:
 | 
			
		|||
  - {fileID: 225041961}
 | 
			
		||||
  - {fileID: 593007063}
 | 
			
		||||
  m_Father: {fileID: 1216651060}
 | 
			
		||||
  m_RootOrder: 5
 | 
			
		||||
  m_RootOrder: 4
 | 
			
		||||
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 | 
			
		||||
  m_AnchorMin: {x: 1, y: 1}
 | 
			
		||||
  m_AnchorMax: {x: 1, y: 1}
 | 
			
		||||
  m_AnchoredPosition: {x: -10, y: -60}
 | 
			
		||||
  m_SizeDelta: {x: 120, y: 30}
 | 
			
		||||
  m_AnchoredPosition: {x: -9, y: -60}
 | 
			
		||||
  m_SizeDelta: {x: 145, y: 30}
 | 
			
		||||
  m_Pivot: {x: 1, y: 1}
 | 
			
		||||
--- !u!114 &1001419736
 | 
			
		||||
MonoBehaviour:
 | 
			
		||||
| 
						 | 
				
			
			@ -20173,8 +20174,8 @@ RectTransform:
 | 
			
		|||
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 | 
			
		||||
  m_AnchorMin: {x: 0, y: 0}
 | 
			
		||||
  m_AnchorMax: {x: 1, y: 1}
 | 
			
		||||
  m_AnchoredPosition: {x: -7.5, y: -0.5}
 | 
			
		||||
  m_SizeDelta: {x: -35, y: -13}
 | 
			
		||||
  m_AnchoredPosition: {x: 5.13, y: -0.5}
 | 
			
		||||
  m_SizeDelta: {x: -60.255554, y: -13}
 | 
			
		||||
  m_Pivot: {x: 0.5, y: 0.5}
 | 
			
		||||
--- !u!114 &1151323894
 | 
			
		||||
MonoBehaviour:
 | 
			
		||||
| 
						 | 
				
			
			@ -20298,7 +20299,7 @@ MonoBehaviour:
 | 
			
		|||
  m_TargetGraphic: {fileID: 922060210}
 | 
			
		||||
  m_HandleRect: {fileID: 922060209}
 | 
			
		||||
  m_Direction: 2
 | 
			
		||||
  m_Value: 0
 | 
			
		||||
  m_Value: 1
 | 
			
		||||
  m_Size: 1
 | 
			
		||||
  m_NumberOfSteps: 0
 | 
			
		||||
  m_OnValueChanged:
 | 
			
		||||
| 
						 | 
				
			
			@ -21086,8 +21087,8 @@ RectTransform:
 | 
			
		|||
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 | 
			
		||||
  m_AnchorMin: {x: 0, y: 0}
 | 
			
		||||
  m_AnchorMax: {x: 1, y: 1}
 | 
			
		||||
  m_AnchoredPosition: {x: 0, y: 0}
 | 
			
		||||
  m_SizeDelta: {x: 0, y: 0}
 | 
			
		||||
  m_AnchoredPosition: {x: 16.48, y: 0}
 | 
			
		||||
  m_SizeDelta: {x: -32.94964, y: 0}
 | 
			
		||||
  m_Pivot: {x: 0.5, y: 0.5}
 | 
			
		||||
--- !u!114 &1179107128
 | 
			
		||||
MonoBehaviour:
 | 
			
		||||
| 
						 | 
				
			
			@ -21115,7 +21116,7 @@ MonoBehaviour:
 | 
			
		|||
    m_BestFit: 0
 | 
			
		||||
    m_MinSize: 10
 | 
			
		||||
    m_MaxSize: 40
 | 
			
		||||
    m_Alignment: 4
 | 
			
		||||
    m_Alignment: 3
 | 
			
		||||
    m_AlignByGeometry: 0
 | 
			
		||||
    m_RichText: 1
 | 
			
		||||
    m_HorizontalOverflow: 0
 | 
			
		||||
| 
						 | 
				
			
			@ -21692,8 +21693,8 @@ RectTransform:
 | 
			
		|||
  - {fileID: 4300837137793644386}
 | 
			
		||||
  - {fileID: 4070467796814498374}
 | 
			
		||||
  - {fileID: 6085830301866471447}
 | 
			
		||||
  - {fileID: 1470937577}
 | 
			
		||||
  - {fileID: 1001419735}
 | 
			
		||||
  - {fileID: 1470937577}
 | 
			
		||||
  - {fileID: 935483303288600285}
 | 
			
		||||
  - {fileID: 1012383901}
 | 
			
		||||
  - {fileID: 11575766}
 | 
			
		||||
| 
						 | 
				
			
			@ -22461,7 +22462,7 @@ PrefabInstance:
 | 
			
		|||
    - target: {fileID: 7715503544296011585, guid: 8b89f6c9e5f696c4997760829c45a505,
 | 
			
		||||
        type: 3}
 | 
			
		||||
      propertyPath: m_RootOrder
 | 
			
		||||
      value: 12
 | 
			
		||||
      value: 11
 | 
			
		||||
      objectReference: {fileID: 0}
 | 
			
		||||
    - target: {fileID: 7715503544296011585, guid: 8b89f6c9e5f696c4997760829c45a505,
 | 
			
		||||
        type: 3}
 | 
			
		||||
| 
						 | 
				
			
			@ -23039,7 +23040,7 @@ MonoBehaviour:
 | 
			
		|||
  m_GameObject: {fileID: 1289465653}
 | 
			
		||||
  m_Enabled: 1
 | 
			
		||||
  m_EditorHideFlags: 0
 | 
			
		||||
  m_Script: {fileID: 11500000, guid: 9b19816966eab6a4eba748f04532fb61, type: 3}
 | 
			
		||||
  m_Script: {fileID: 11500000, guid: 09b43781ddbab9c49b81b88c7a8b4076, type: 3}
 | 
			
		||||
  m_Name: 
 | 
			
		||||
  m_EditorClassIdentifier: 
 | 
			
		||||
--- !u!1 &1293104865
 | 
			
		||||
| 
						 | 
				
			
			@ -27076,11 +27077,11 @@ RectTransform:
 | 
			
		|||
  m_LocalScale: {x: 1, y: 1, z: 1}
 | 
			
		||||
  m_Children: []
 | 
			
		||||
  m_Father: {fileID: 1216651060}
 | 
			
		||||
  m_RootOrder: 4
 | 
			
		||||
  m_RootOrder: 5
 | 
			
		||||
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 | 
			
		||||
  m_AnchorMin: {x: 1, y: 1}
 | 
			
		||||
  m_AnchorMax: {x: 1, y: 1}
 | 
			
		||||
  m_AnchoredPosition: {x: -141, y: -63}
 | 
			
		||||
  m_AnchoredPosition: {x: -137, y: -63}
 | 
			
		||||
  m_SizeDelta: {x: 24, y: 24}
 | 
			
		||||
  m_Pivot: {x: 0.5, y: 1}
 | 
			
		||||
--- !u!114 &1470937578
 | 
			
		||||
| 
						 | 
				
			
			@ -28694,7 +28695,6 @@ RectTransform:
 | 
			
		|||
  m_LocalScale: {x: 1, y: 1, z: 1}
 | 
			
		||||
  m_Children:
 | 
			
		||||
  - {fileID: 1190554011}
 | 
			
		||||
  - {fileID: 681903173}
 | 
			
		||||
  - {fileID: 121643454}
 | 
			
		||||
  m_Father: {fileID: 1257725762}
 | 
			
		||||
  m_RootOrder: 0
 | 
			
		||||
| 
						 | 
				
			
			@ -30103,18 +30103,7 @@ MonoBehaviour:
 | 
			
		|||
  m_CharacterLimit: 0
 | 
			
		||||
  m_OnEndEdit:
 | 
			
		||||
    m_PersistentCalls:
 | 
			
		||||
      m_Calls:
 | 
			
		||||
      - m_Target: {fileID: 629081417}
 | 
			
		||||
        m_MethodName: OnValueChanged
 | 
			
		||||
        m_Mode: 1
 | 
			
		||||
        m_Arguments:
 | 
			
		||||
          m_ObjectArgument: {fileID: 0}
 | 
			
		||||
          m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
 | 
			
		||||
          m_IntArgument: 0
 | 
			
		||||
          m_FloatArgument: 0
 | 
			
		||||
          m_StringArgument: 
 | 
			
		||||
          m_BoolArgument: 0
 | 
			
		||||
        m_CallState: 2
 | 
			
		||||
      m_Calls: []
 | 
			
		||||
  m_OnValueChanged:
 | 
			
		||||
    m_PersistentCalls:
 | 
			
		||||
      m_Calls: []
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +0,0 @@
 | 
			
		|||
fileFormatVersion: 2
 | 
			
		||||
guid: ff71352a02fb53440a35dbeabb9ebc87
 | 
			
		||||
folderAsset: yes
 | 
			
		||||
DefaultImporter:
 | 
			
		||||
  externalObjects: {}
 | 
			
		||||
  userData: 
 | 
			
		||||
  assetBundleName: 
 | 
			
		||||
  assetBundleVariant: 
 | 
			
		||||
| 
						 | 
				
			
			@ -15,13 +15,12 @@ namespace RimWorldAnimationStudio
 | 
			
		|||
        public int? anchoringActor;
 | 
			
		||||
        public string anchorName;
 | 
			
		||||
        public string layer = "Pawn";
 | 
			
		||||
        public float? scale;
 | 
			
		||||
        public GraphicData graphicData;
 | 
			
		||||
        public bool? render;
 | 
			
		||||
 | 
			
		||||
        // Data serialization control
 | 
			
		||||
        public bool ShouldSerializeanchorName() { return string.IsNullOrEmpty(anchorName) == false && anchorName.ToLower() != "none"; }
 | 
			
		||||
        public bool ShouldSerializeanchoringActor() { return anchoringActor.HasValue; }
 | 
			
		||||
        public bool ShouldSerializescale() { return scale.HasValue; }
 | 
			
		||||
        public bool ShouldSerializerender() { return render == true; }
 | 
			
		||||
 | 
			
		||||
        // Data helper functions
 | 
			
		||||
| 
						 | 
				
			
			@ -49,10 +48,11 @@ namespace RimWorldAnimationStudio
 | 
			
		|||
            set { layer = value; }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [XmlIgnore] public float Scale
 | 
			
		||||
        [XmlIgnore]
 | 
			
		||||
        public GraphicData GraphicData
 | 
			
		||||
        {
 | 
			
		||||
            get { return scale.HasValue ? scale.Value : 0f; }
 | 
			
		||||
            set { scale = value; }
 | 
			
		||||
            get { return graphicData; }
 | 
			
		||||
            set { graphicData = value; }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [XmlIgnore] public bool Render
 | 
			
		||||
| 
						 | 
				
			
			@ -69,10 +69,10 @@ namespace RimWorldAnimationStudio
 | 
			
		|||
        // Constructors
 | 
			
		||||
        public ActorAddon() { }
 | 
			
		||||
 | 
			
		||||
        public ActorAddon(string addonName, float scale = 1f)
 | 
			
		||||
        public ActorAddon(ActorAddonDef actorAddonDef)
 | 
			
		||||
        {
 | 
			
		||||
            this.AddonName = addonName;
 | 
			
		||||
            this.Scale = scale;
 | 
			
		||||
            this.AddonName = actorAddonDef.addonName;
 | 
			
		||||
            this.GraphicData = actorAddonDef.graphicData.Copy();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,5 +11,7 @@ namespace RimWorldAnimationStudio
 | 
			
		|||
        public string addonName;
 | 
			
		||||
        public string label;
 | 
			
		||||
        public float scale = 1f;
 | 
			
		||||
 | 
			
		||||
        public GraphicData graphicData;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -62,6 +62,10 @@ namespace RimWorldAnimationStudio
 | 
			
		|||
        // Methods
 | 
			
		||||
        public void BuildSimpleCurves()
 | 
			
		||||
        {
 | 
			
		||||
            // Add addon data (if missing)
 | 
			
		||||
            foreach (ActorAddonDef actorAddonDef in ActorAddonDefs.allDefs)
 | 
			
		||||
            { AddActorAddon(actorAddonDef); }
 | 
			
		||||
 | 
			
		||||
            // Clear simple curve data
 | 
			
		||||
            BodyAngle.Clear();
 | 
			
		||||
            HeadAngle.Clear();
 | 
			
		||||
| 
						 | 
				
			
			@ -72,10 +76,6 @@ namespace RimWorldAnimationStudio
 | 
			
		|||
            HeadBob.Clear();
 | 
			
		||||
            GenitalAngle.Clear();
 | 
			
		||||
 | 
			
		||||
            AddActorAddon("left hand", 0.667f);
 | 
			
		||||
            AddActorAddon("right hand", 0.667f);
 | 
			
		||||
            AddActorAddon("dildo");
 | 
			
		||||
 | 
			
		||||
            foreach (ActorAddon addon in Addons)
 | 
			
		||||
            {
 | 
			
		||||
                addon.PosX.Clear();
 | 
			
		||||
| 
						 | 
				
			
			@ -83,7 +83,7 @@ namespace RimWorldAnimationStudio
 | 
			
		|||
                addon.Rotation.Clear();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // Start
 | 
			
		||||
            // Start building simple curves
 | 
			
		||||
            int keyframePosition = 0;
 | 
			
		||||
            int duration = 0;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -151,17 +151,15 @@ namespace RimWorldAnimationStudio
 | 
			
		|||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void AddActorAddon(string addonName, float scale = 1f)
 | 
			
		||||
        public void AddActorAddon(ActorAddonDef actorAddonDef)
 | 
			
		||||
        {
 | 
			
		||||
            if (Addons.Any(x => x.AddonName == addonName) == false)
 | 
			
		||||
            { 
 | 
			
		||||
                Addons.Add(new ActorAddon(addonName, scale));
 | 
			
		||||
            }
 | 
			
		||||
            if (Addons.Any(x => x.AddonName == actorAddonDef.addonName) == false)
 | 
			
		||||
            { Addons.Add(new ActorAddon(actorAddonDef)); }
 | 
			
		||||
 | 
			
		||||
            foreach (PawnKeyframe keyframe in Keyframes)
 | 
			
		||||
            {
 | 
			
		||||
                if (keyframe.AddonKeyframes.Any(x => x.AddonName == addonName) == false)
 | 
			
		||||
                { keyframe.AddonKeyframes.Add(new AddonKeyframe(addonName)); }
 | 
			
		||||
                if (keyframe.AddonKeyframes.Any(x => x.AddonName == actorAddonDef.addonName) == false)
 | 
			
		||||
                { keyframe.AddonKeyframes.Add(new AddonKeyframe(actorAddonDef.addonName)); }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,6 +10,7 @@ namespace RimWorldAnimationStudio
 | 
			
		|||
    {
 | 
			
		||||
        public int actorID;
 | 
			
		||||
        public SpriteRenderer bodyRenderer;
 | 
			
		||||
        public ActorBodyPart actorBodyPartPrefab;
 | 
			
		||||
 | 
			
		||||
        private Vector3 dragDelta = new Vector3();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -20,6 +21,12 @@ namespace RimWorldAnimationStudio
 | 
			
		|||
 | 
			
		||||
            if (Workspace.ActorID == actorID)
 | 
			
		||||
            { Activate(); }
 | 
			
		||||
 | 
			
		||||
            foreach (ActorAddonDef actorAddonDef in ActorAddonDefs.allDefs)
 | 
			
		||||
            {
 | 
			
		||||
                ActorBodyPart actorBodyPart = Instantiate(actorBodyPartPrefab, transform);
 | 
			
		||||
                actorBodyPart.Initialize(this, actorAddonDef);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void OnActorBodySelected(ActorBody actorBody)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,8 +14,10 @@ namespace RimWorldAnimationStudio
 | 
			
		|||
 | 
			
		||||
        private Vector3 dragDelta = new Vector3();
 | 
			
		||||
 | 
			
		||||
        public void Start()
 | 
			
		||||
        private void Start()
 | 
			
		||||
        {
 | 
			
		||||
            if (parent == null) return;
 | 
			
		||||
 | 
			
		||||
            EventsManager.onActorBodyPartSelected.AddListener(delegate (ActorBodyPart bodyPart) { OnActorBodyPartSelected(bodyPart); });
 | 
			
		||||
            EventsManager.onActorBodySelected.AddListener(delegate (ActorBody actorBody) { OnActorBodySelected(actorBody); });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -23,6 +25,17 @@ namespace RimWorldAnimationStudio
 | 
			
		|||
            { parent.Activate(); }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void Initialize(ActorBody parent, ActorAddonDef actorAddonDef)
 | 
			
		||||
        {
 | 
			
		||||
            this.parent = parent;
 | 
			
		||||
            this.bodyPart = actorAddonDef.addonName;
 | 
			
		||||
 | 
			
		||||
            bodyPartRenderer.sprite = actorAddonDef.graphicData.GetSprite();
 | 
			
		||||
            bodyPartRenderer.transform.localScale = (Vector3)actorAddonDef.graphicData.GetDrawSize();
 | 
			
		||||
 | 
			
		||||
            Start();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void OnActorAddonChange(ActorAddon actorAddon)
 | 
			
		||||
        {
 | 
			
		||||
            if (actorAddon.AddonName == bodyPart)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -52,6 +52,8 @@ namespace RimWorldAnimationStudio
 | 
			
		|||
                layerDropdown.SetValueWithoutNotify(layerDropdown.options.IndexOf(layerDropdown.options.First(x => x.text == clip.GetActorAddon(addonName).Layer)));
 | 
			
		||||
                anchoringPawnField.SetTextWithoutNotify(clip.GetActorAddon(addonName).AnchoringActor.ToString());
 | 
			
		||||
                toggle.SetIsOnWithoutNotify(clip.IsActorAddonVisible(addonName));
 | 
			
		||||
 | 
			
		||||
                anchoringPawnField.interactable = anchorDropdown.value != 0;
 | 
			
		||||
           }         
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +0,0 @@
 | 
			
		|||
fileFormatVersion: 2
 | 
			
		||||
guid: 96cc86ae315a7c34c91b9af2499fa23c
 | 
			
		||||
folderAsset: yes
 | 
			
		||||
DefaultImporter:
 | 
			
		||||
  externalObjects: {}
 | 
			
		||||
  userData: 
 | 
			
		||||
  assetBundleName: 
 | 
			
		||||
  assetBundleVariant: 
 | 
			
		||||
| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
fileFormatVersion: 2
 | 
			
		||||
guid: 9b19816966eab6a4eba748f04532fb61
 | 
			
		||||
guid: 09b43781ddbab9c49b81b88c7a8b4076
 | 
			
		||||
MonoImporter:
 | 
			
		||||
  externalObjects: {}
 | 
			
		||||
  serializedVersion: 2
 | 
			
		||||
							
								
								
									
										60
									
								
								Assets/Scripts/Graphics/GraphicData.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								Assets/Scripts/Graphics/GraphicData.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,60 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
using System.IO;
 | 
			
		||||
using UnityEngine;
 | 
			
		||||
 | 
			
		||||
namespace RimWorldAnimationStudio
 | 
			
		||||
{
 | 
			
		||||
    [Serializable]
 | 
			
		||||
    public class GraphicData
 | 
			
		||||
    {
 | 
			
		||||
        public string texPath;
 | 
			
		||||
        public string graphicClass;
 | 
			
		||||
        public string shaderType;
 | 
			
		||||
        public string drawSize;
 | 
			
		||||
 | 
			
		||||
        private Sprite sprite;
 | 
			
		||||
 | 
			
		||||
        public void SetDrawSize(Vector2 drawSize)
 | 
			
		||||
        {
 | 
			
		||||
            this.drawSize = "(" + drawSize.x + ", " + drawSize.y + ")";
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Vector3 GetDrawSize()
 | 
			
		||||
        {
 | 
			
		||||
            string drawSizeString = drawSize;
 | 
			
		||||
 | 
			
		||||
            drawSizeString = drawSizeString.Trim();
 | 
			
		||||
            drawSizeString = drawSizeString.Replace("(", "");
 | 
			
		||||
            drawSizeString = drawSizeString.Replace(")", "");
 | 
			
		||||
            var drawSizeStrings = drawSizeString.Split(',');
 | 
			
		||||
 | 
			
		||||
            return new Vector3(float.Parse(drawSizeStrings[0]), float.Parse(drawSizeStrings[1]));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Sprite GetSprite()
 | 
			
		||||
        {
 | 
			
		||||
            if (sprite != null) return sprite;
 | 
			
		||||
 | 
			
		||||
            if (string.IsNullOrEmpty(texPath)) return null;
 | 
			
		||||
 | 
			
		||||
            string fullPath = Path.GetFullPath(Path.Combine(Application.streamingAssetsPath, texPath)) + ".png";
 | 
			
		||||
 | 
			
		||||
            if (File.Exists(fullPath) == false) return null;
 | 
			
		||||
 | 
			
		||||
            byte[] pngBytes = File.ReadAllBytes(fullPath);
 | 
			
		||||
 | 
			
		||||
            Texture2D texture = new Texture2D(2, 2);
 | 
			
		||||
            texture.LoadImage(pngBytes);
 | 
			
		||||
 | 
			
		||||
            float scale = Mathf.Min(texture.width, texture.height) / 128f;
 | 
			
		||||
            sprite = Sprite.Create(texture, new Rect(0.0f, 0.0f, texture.width, texture.height), new Vector2(0.5f, 0.5f), 85.0f * scale);
 | 
			
		||||
 | 
			
		||||
            return sprite;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										11
									
								
								Assets/Scripts/Graphics/GraphicData.cs.meta
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								Assets/Scripts/Graphics/GraphicData.cs.meta
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,11 @@
 | 
			
		|||
fileFormatVersion: 2
 | 
			
		||||
guid: 6e8b46532a4e0ce42b40b1a1fd03935a
 | 
			
		||||
MonoImporter:
 | 
			
		||||
  externalObjects: {}
 | 
			
		||||
  serializedVersion: 2
 | 
			
		||||
  defaultReferences: []
 | 
			
		||||
  executionOrder: 0
 | 
			
		||||
  icon: {instanceID: 0}
 | 
			
		||||
  userData: 
 | 
			
		||||
  assetBundleName: 
 | 
			
		||||
  assetBundleVariant: 
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB  | 
| 
						 | 
				
			
			@ -45,7 +45,7 @@ TextureImporter:
 | 
			
		|||
  spriteMeshType: 1
 | 
			
		||||
  alignment: 0
 | 
			
		||||
  spritePivot: {x: 0.5, y: 0.5}
 | 
			
		||||
  spritePixelsToUnits: 510
 | 
			
		||||
  spritePixelsToUnits: 85
 | 
			
		||||
  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
 | 
			
		||||
  spriteGenerateFallbackPhysicsShape: 1
 | 
			
		||||
  alphaUsage: 1
 | 
			
		||||
| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
fileFormatVersion: 2
 | 
			
		||||
guid: e8128ddbd38f5c441b417b0318819eca
 | 
			
		||||
guid: 43f10c9566894a04d9e5774d580927d2
 | 
			
		||||
folderAsset: yes
 | 
			
		||||
DefaultImporter:
 | 
			
		||||
  externalObjects: {}
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 8.6 KiB  | 
| 
						 | 
				
			
			@ -45,7 +45,7 @@ TextureImporter:
 | 
			
		|||
  spriteMeshType: 1
 | 
			
		||||
  alignment: 0
 | 
			
		||||
  spritePivot: {x: 0.5, y: 0.5}
 | 
			
		||||
  spritePixelsToUnits: 170
 | 
			
		||||
  spritePixelsToUnits: 85
 | 
			
		||||
  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
 | 
			
		||||
  spriteGenerateFallbackPhysicsShape: 1
 | 
			
		||||
  alphaUsage: 1
 | 
			
		||||
| 
						 | 
				
			
			@ -4,19 +4,35 @@
 | 
			
		|||
  <ActorAddonDef>
 | 
			
		||||
    <addonName>left hand</addonName>   
 | 
			
		||||
	<label>Hand (left)</label>
 | 
			
		||||
    <scale>0.6667</scale>    
 | 
			
		||||
    <graphicData>
 | 
			
		||||
      <texPath>Textures/Humanlike/Hands/HandClean</texPath>
 | 
			
		||||
      <graphicClass>Graphic_Single</graphicClass>
 | 
			
		||||
      <shaderType>Cutout</shaderType>
 | 
			
		||||
      <drawSize>(0.6,0.6)</drawSize>
 | 
			
		||||
    </graphicData>
 | 
			
		||||
	
 | 
			
		||||
  </ActorAddonDef>
 | 
			
		||||
  
 | 
			
		||||
  <ActorAddonDef>
 | 
			
		||||
    <addonName>right hand</addonName>   
 | 
			
		||||
	<label>Hand (right)</label>
 | 
			
		||||
    <scale>0.6667</scale>    
 | 
			
		||||
    <graphicData>
 | 
			
		||||
      <texPath>Textures/Humanlike/Hands/HandClean</texPath>
 | 
			
		||||
      <graphicClass>Graphic_Single</graphicClass>
 | 
			
		||||
      <shaderType>Cutout</shaderType>
 | 
			
		||||
      <drawSize>(0.6,0.6)</drawSize>
 | 
			
		||||
    </graphicData>    
 | 
			
		||||
  </ActorAddonDef>
 | 
			
		||||
  
 | 
			
		||||
  <ActorAddonDef>
 | 
			
		||||
    <addonName>dildo</addonName>  
 | 
			
		||||
	<label>Sex toy</label>	
 | 
			
		||||
    <scale>1</scale>    
 | 
			
		||||
    <graphicData>
 | 
			
		||||
      <texPath>Textures/SexToys/Dildo</texPath>
 | 
			
		||||
      <graphicClass>Graphic_Single</graphicClass>
 | 
			
		||||
      <shaderType>Cutout</shaderType>
 | 
			
		||||
      <drawSize>(1,1)</drawSize>
 | 
			
		||||
    </graphicData>    
 | 
			
		||||
  </ActorAddonDef>
 | 
			
		||||
  
 | 
			
		||||
</ArrayOfActorAddonDef>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 11 KiB  | 
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 8.6 KiB  | 
| 
						 | 
				
			
			@ -4,19 +4,35 @@
 | 
			
		|||
  <ActorAddonDef>
 | 
			
		||||
    <addonName>left hand</addonName>   
 | 
			
		||||
	<label>Hand (left)</label>
 | 
			
		||||
    <scale>0.6667</scale>    
 | 
			
		||||
    <graphicData>
 | 
			
		||||
      <texPath>Textures/Humanlike/Hands/HandClean</texPath>
 | 
			
		||||
      <graphicClass>Graphic_Single</graphicClass>
 | 
			
		||||
      <shaderType>Cutout</shaderType>
 | 
			
		||||
      <drawSize>(0.6,0.6)</drawSize>
 | 
			
		||||
    </graphicData>
 | 
			
		||||
	
 | 
			
		||||
  </ActorAddonDef>
 | 
			
		||||
  
 | 
			
		||||
  <ActorAddonDef>
 | 
			
		||||
    <addonName>right hand</addonName>   
 | 
			
		||||
	<label>Hand (right)</label>
 | 
			
		||||
    <scale>0.6667</scale>    
 | 
			
		||||
    <graphicData>
 | 
			
		||||
      <texPath>Textures/Humanlike/Hands/HandClean</texPath>
 | 
			
		||||
      <graphicClass>Graphic_Single</graphicClass>
 | 
			
		||||
      <shaderType>Cutout</shaderType>
 | 
			
		||||
      <drawSize>(0.6,0.6)</drawSize>
 | 
			
		||||
    </graphicData>    
 | 
			
		||||
  </ActorAddonDef>
 | 
			
		||||
  
 | 
			
		||||
  <ActorAddonDef>
 | 
			
		||||
    <addonName>dildo</addonName>  
 | 
			
		||||
	<label>Sex toy</label>	
 | 
			
		||||
    <scale>1</scale>    
 | 
			
		||||
    <graphicData>
 | 
			
		||||
      <texPath>Textures/SexToys/Dildo</texPath>
 | 
			
		||||
      <graphicClass>Graphic_Single</graphicClass>
 | 
			
		||||
      <shaderType>Cutout</shaderType>
 | 
			
		||||
      <drawSize>(1,1)</drawSize>
 | 
			
		||||
    </graphicData>    
 | 
			
		||||
  </ActorAddonDef>
 | 
			
		||||
  
 | 
			
		||||
</ArrayOfActorAddonDef>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							Some files were not shown because too many files have changed in this diff Show more
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue