mirror of
				https://gitgud.io/AbstractConcept/rimworld-animation-studio.git
				synced 2024-08-15 00:43:27 +00:00 
			
		
		
		
	Added editable stage lengths
This commit is contained in:
		
							parent
							
								
									8523abf957
								
							
						
					
					
						commit
						d2ca61c61c
					
				
					 194 changed files with 820 additions and 269 deletions
				
			
		
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -97,6 +97,7 @@
 | 
			
		|||
    <Compile Include="Assets\Scripts\Managers\ApplicationManager.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\Managers\CameraController.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\Managers\StageCardManager.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\Math\Constants\Constants.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\Math\Constants\Enums.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\Math\CurvePoint.cs" />
 | 
			
		||||
    <Compile Include="Assets\Scripts\Math\GenMath.cs" />
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -59,7 +59,7 @@ MonoBehaviour:
 | 
			
		|||
  m_Name: 
 | 
			
		||||
  m_EditorClassIdentifier: 
 | 
			
		||||
  m_Material: {fileID: 0}
 | 
			
		||||
  m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 1}
 | 
			
		||||
  m_Color: {r: 1, g: 0.85, b: 0, a: 1}
 | 
			
		||||
  m_RaycastTarget: 1
 | 
			
		||||
  m_Maskable: 1
 | 
			
		||||
  m_OnCullStateChanged:
 | 
			
		||||
| 
						 | 
				
			
			@ -87,5 +87,6 @@ MonoBehaviour:
 | 
			
		|||
  m_Script: {fileID: 11500000, guid: b3dd6b099b5c67744b84a5ec7283277b, type: 3}
 | 
			
		||||
  m_Name: 
 | 
			
		||||
  m_EditorClassIdentifier: 
 | 
			
		||||
  actorID: 0
 | 
			
		||||
  keyframeSliderPrefab: {fileID: 7758949423219383195, guid: 2482d1331163f49448eea3e9be15324b,
 | 
			
		||||
    type: 3}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -705,7 +705,7 @@ MonoBehaviour:
 | 
			
		|||
  m_Name: 
 | 
			
		||||
  m_EditorClassIdentifier: 
 | 
			
		||||
  m_Material: {fileID: 0}
 | 
			
		||||
  m_Color: {r: 1, g: 0.8333334, b: 0, a: 1}
 | 
			
		||||
  m_Color: {r: 1, g: 0.84313726, b: 0, a: 1}
 | 
			
		||||
  m_RaycastTarget: 1
 | 
			
		||||
  m_Maskable: 1
 | 
			
		||||
  m_OnCullStateChanged:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1476,6 +1476,84 @@ MonoBehaviour:
 | 
			
		|||
  m_EditorClassIdentifier: 
 | 
			
		||||
  m_HorizontalFit: 1
 | 
			
		||||
  m_VerticalFit: 1
 | 
			
		||||
--- !u!1 &233669860
 | 
			
		||||
GameObject:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  serializedVersion: 6
 | 
			
		||||
  m_Component:
 | 
			
		||||
  - component: {fileID: 233669861}
 | 
			
		||||
  - component: {fileID: 233669863}
 | 
			
		||||
  - component: {fileID: 233669862}
 | 
			
		||||
  m_Layer: 5
 | 
			
		||||
  m_Name: Text
 | 
			
		||||
  m_TagString: Untagged
 | 
			
		||||
  m_Icon: {fileID: 0}
 | 
			
		||||
  m_NavMeshLayer: 0
 | 
			
		||||
  m_StaticEditorFlags: 0
 | 
			
		||||
  m_IsActive: 1
 | 
			
		||||
--- !u!224 &233669861
 | 
			
		||||
RectTransform:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 233669860}
 | 
			
		||||
  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: 760297266}
 | 
			
		||||
  m_RootOrder: 0
 | 
			
		||||
  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.5}
 | 
			
		||||
  m_SizeDelta: {x: -20, y: -13}
 | 
			
		||||
  m_Pivot: {x: 0.5, y: 0.5}
 | 
			
		||||
--- !u!114 &233669862
 | 
			
		||||
MonoBehaviour:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 233669860}
 | 
			
		||||
  m_Enabled: 1
 | 
			
		||||
  m_EditorHideFlags: 0
 | 
			
		||||
  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
 | 
			
		||||
  m_Name: 
 | 
			
		||||
  m_EditorClassIdentifier: 
 | 
			
		||||
  m_Material: {fileID: 0}
 | 
			
		||||
  m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
 | 
			
		||||
  m_RaycastTarget: 1
 | 
			
		||||
  m_Maskable: 1
 | 
			
		||||
  m_OnCullStateChanged:
 | 
			
		||||
    m_PersistentCalls:
 | 
			
		||||
      m_Calls: []
 | 
			
		||||
  m_FontData:
 | 
			
		||||
    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
 | 
			
		||||
    m_FontSize: 14
 | 
			
		||||
    m_FontStyle: 0
 | 
			
		||||
    m_BestFit: 0
 | 
			
		||||
    m_MinSize: 10
 | 
			
		||||
    m_MaxSize: 40
 | 
			
		||||
    m_Alignment: 1
 | 
			
		||||
    m_AlignByGeometry: 0
 | 
			
		||||
    m_RichText: 0
 | 
			
		||||
    m_HorizontalOverflow: 1
 | 
			
		||||
    m_VerticalOverflow: 0
 | 
			
		||||
    m_LineSpacing: 1
 | 
			
		||||
  m_Text: 0
 | 
			
		||||
--- !u!222 &233669863
 | 
			
		||||
CanvasRenderer:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 233669860}
 | 
			
		||||
  m_CullTransparentMesh: 0
 | 
			
		||||
--- !u!1 &239634963
 | 
			
		||||
GameObject:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
| 
						 | 
				
			
			@ -3043,8 +3121,8 @@ RectTransform:
 | 
			
		|||
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 | 
			
		||||
  m_AnchorMin: {x: 1, y: 1}
 | 
			
		||||
  m_AnchorMax: {x: 1, y: 1}
 | 
			
		||||
  m_AnchoredPosition: {x: -80, y: -32}
 | 
			
		||||
  m_SizeDelta: {x: 107.324585, y: 30}
 | 
			
		||||
  m_AnchoredPosition: {x: -131.3, y: -32}
 | 
			
		||||
  m_SizeDelta: {x: 173.26788, y: 30}
 | 
			
		||||
  m_Pivot: {x: 0.5, y: 0.5}
 | 
			
		||||
--- !u!114 &429161118
 | 
			
		||||
MonoBehaviour:
 | 
			
		||||
| 
						 | 
				
			
			@ -3098,7 +3176,9 @@ MonoBehaviour:
 | 
			
		|||
      m_Image: {fileID: 0}
 | 
			
		||||
    - m_Text: Loop
 | 
			
		||||
      m_Image: {fileID: 0}
 | 
			
		||||
    - m_Text: Next Stage
 | 
			
		||||
    - m_Text: Next Stage (normal)
 | 
			
		||||
      m_Image: {fileID: 0}
 | 
			
		||||
    - m_Text: Next Stage (fast)
 | 
			
		||||
      m_Image: {fileID: 0}
 | 
			
		||||
  m_OnValueChanged:
 | 
			
		||||
    m_PersistentCalls:
 | 
			
		||||
| 
						 | 
				
			
			@ -3513,7 +3593,7 @@ Camera:
 | 
			
		|||
  m_Enabled: 1
 | 
			
		||||
  serializedVersion: 2
 | 
			
		||||
  m_ClearFlags: 2
 | 
			
		||||
  m_BackGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 0}
 | 
			
		||||
  m_BackGroundColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0}
 | 
			
		||||
  m_projectionMatrixMode: 1
 | 
			
		||||
  m_GateFitMode: 2
 | 
			
		||||
  m_FOVAxisMode: 0
 | 
			
		||||
| 
						 | 
				
			
			@ -3925,6 +4005,8 @@ GameObject:
 | 
			
		|||
  - component: {fileID: 539052777}
 | 
			
		||||
  - component: {fileID: 539052779}
 | 
			
		||||
  - component: {fileID: 539052778}
 | 
			
		||||
  - component: {fileID: 539052781}
 | 
			
		||||
  - component: {fileID: 539052780}
 | 
			
		||||
  m_Layer: 5
 | 
			
		||||
  m_Name: AnimStagePanel
 | 
			
		||||
  m_TagString: Untagged
 | 
			
		||||
| 
						 | 
				
			
			@ -3943,16 +4025,17 @@ RectTransform:
 | 
			
		|||
  m_LocalPosition: {x: 0, y: 0, z: 0}
 | 
			
		||||
  m_LocalScale: {x: 1, y: 1, z: 1}
 | 
			
		||||
  m_Children:
 | 
			
		||||
  - {fileID: 2095914857}
 | 
			
		||||
  - {fileID: 1607625112}
 | 
			
		||||
  - {fileID: 1567556987}
 | 
			
		||||
  - {fileID: 760297266}
 | 
			
		||||
  - {fileID: 567758162}
 | 
			
		||||
  - {fileID: 1676585154}
 | 
			
		||||
  m_Father: {fileID: 1335076903}
 | 
			
		||||
  m_RootOrder: 5
 | 
			
		||||
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 | 
			
		||||
  m_AnchorMin: {x: 0.5, y: 0}
 | 
			
		||||
  m_AnchorMax: {x: 0.5, y: 0}
 | 
			
		||||
  m_AnchoredPosition: {x: 695, y: 78}
 | 
			
		||||
  m_SizeDelta: {x: 160, y: 30}
 | 
			
		||||
  m_AnchoredPosition: {x: 728.6, y: 83}
 | 
			
		||||
  m_SizeDelta: {x: 0, y: 0}
 | 
			
		||||
  m_Pivot: {x: 0.5, y: 0.5}
 | 
			
		||||
--- !u!114 &539052778
 | 
			
		||||
MonoBehaviour:
 | 
			
		||||
| 
						 | 
				
			
			@ -3991,6 +4074,45 @@ CanvasRenderer:
 | 
			
		|||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 539052776}
 | 
			
		||||
  m_CullTransparentMesh: 0
 | 
			
		||||
--- !u!114 &539052780
 | 
			
		||||
MonoBehaviour:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 539052776}
 | 
			
		||||
  m_Enabled: 1
 | 
			
		||||
  m_EditorHideFlags: 0
 | 
			
		||||
  m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
 | 
			
		||||
  m_Name: 
 | 
			
		||||
  m_EditorClassIdentifier: 
 | 
			
		||||
  m_HorizontalFit: 1
 | 
			
		||||
  m_VerticalFit: 1
 | 
			
		||||
--- !u!114 &539052781
 | 
			
		||||
MonoBehaviour:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 539052776}
 | 
			
		||||
  m_Enabled: 1
 | 
			
		||||
  m_EditorHideFlags: 0
 | 
			
		||||
  m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
 | 
			
		||||
  m_Name: 
 | 
			
		||||
  m_EditorClassIdentifier: 
 | 
			
		||||
  m_Padding:
 | 
			
		||||
    m_Left: 5
 | 
			
		||||
    m_Right: 5
 | 
			
		||||
    m_Top: 5
 | 
			
		||||
    m_Bottom: 5
 | 
			
		||||
  m_ChildAlignment: 0
 | 
			
		||||
  m_Spacing: 0
 | 
			
		||||
  m_ChildForceExpandWidth: 0
 | 
			
		||||
  m_ChildForceExpandHeight: 0
 | 
			
		||||
  m_ChildControlWidth: 0
 | 
			
		||||
  m_ChildControlHeight: 0
 | 
			
		||||
  m_ChildScaleWidth: 0
 | 
			
		||||
  m_ChildScaleHeight: 0
 | 
			
		||||
--- !u!1 &542629602
 | 
			
		||||
GameObject:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
| 
						 | 
				
			
			@ -4027,7 +4149,7 @@ RectTransform:
 | 
			
		|||
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 | 
			
		||||
  m_AnchorMin: {x: 0, y: 0.5}
 | 
			
		||||
  m_AnchorMax: {x: 1, y: 0.5}
 | 
			
		||||
  m_AnchoredPosition: {x: 0, y: 86.972626}
 | 
			
		||||
  m_AnchoredPosition: {x: 0, y: 86.97261}
 | 
			
		||||
  m_SizeDelta: {x: 0, y: 0}
 | 
			
		||||
  m_Pivot: {x: 0, y: 1}
 | 
			
		||||
--- !u!114 &542629604
 | 
			
		||||
| 
						 | 
				
			
			@ -4202,10 +4324,10 @@ RectTransform:
 | 
			
		|||
  m_Father: {fileID: 539052777}
 | 
			
		||||
  m_RootOrder: 2
 | 
			
		||||
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 | 
			
		||||
  m_AnchorMin: {x: 0.5, y: 0.5}
 | 
			
		||||
  m_AnchorMax: {x: 0.5, y: 0.5}
 | 
			
		||||
  m_AnchorMin: {x: 0, y: 0}
 | 
			
		||||
  m_AnchorMax: {x: 0, y: 0}
 | 
			
		||||
  m_AnchoredPosition: {x: 0, y: 0}
 | 
			
		||||
  m_SizeDelta: {x: 67.44064, y: 30}
 | 
			
		||||
  m_SizeDelta: {x: 11.594109, y: 30}
 | 
			
		||||
  m_Pivot: {x: 0.5, y: 0.5}
 | 
			
		||||
--- !u!114 &567758163
 | 
			
		||||
MonoBehaviour:
 | 
			
		||||
| 
						 | 
				
			
			@ -5906,9 +6028,9 @@ RectTransform:
 | 
			
		|||
  m_RootOrder: 1
 | 
			
		||||
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 | 
			
		||||
  m_AnchorMin: {x: 0, y: 0}
 | 
			
		||||
  m_AnchorMax: {x: 0, y: 0}
 | 
			
		||||
  m_AnchorMax: {x: 1, y: 1}
 | 
			
		||||
  m_AnchoredPosition: {x: 0, y: 0}
 | 
			
		||||
  m_SizeDelta: {x: 0, y: 0}
 | 
			
		||||
  m_SizeDelta: {x: -17, y: 0}
 | 
			
		||||
  m_Pivot: {x: 0, y: 1}
 | 
			
		||||
--- !u!114 &749354208
 | 
			
		||||
MonoBehaviour:
 | 
			
		||||
| 
						 | 
				
			
			@ -5974,6 +6096,157 @@ CanvasRenderer:
 | 
			
		|||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 749354206}
 | 
			
		||||
  m_CullTransparentMesh: 0
 | 
			
		||||
--- !u!1 &760297265
 | 
			
		||||
GameObject:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  serializedVersion: 6
 | 
			
		||||
  m_Component:
 | 
			
		||||
  - component: {fileID: 760297266}
 | 
			
		||||
  - component: {fileID: 760297269}
 | 
			
		||||
  - component: {fileID: 760297268}
 | 
			
		||||
  - component: {fileID: 760297267}
 | 
			
		||||
  m_Layer: 5
 | 
			
		||||
  m_Name: AnimationClipTimeField
 | 
			
		||||
  m_TagString: Untagged
 | 
			
		||||
  m_Icon: {fileID: 0}
 | 
			
		||||
  m_NavMeshLayer: 0
 | 
			
		||||
  m_StaticEditorFlags: 0
 | 
			
		||||
  m_IsActive: 1
 | 
			
		||||
--- !u!224 &760297266
 | 
			
		||||
RectTransform:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 760297265}
 | 
			
		||||
  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:
 | 
			
		||||
  - {fileID: 233669861}
 | 
			
		||||
  m_Father: {fileID: 539052777}
 | 
			
		||||
  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: 0, y: 0}
 | 
			
		||||
  m_SizeDelta: {x: 55, y: 30}
 | 
			
		||||
  m_Pivot: {x: 0.5, y: 0.5}
 | 
			
		||||
--- !u!114 &760297267
 | 
			
		||||
MonoBehaviour:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 760297265}
 | 
			
		||||
  m_Enabled: 1
 | 
			
		||||
  m_EditorHideFlags: 0
 | 
			
		||||
  m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3}
 | 
			
		||||
  m_Name: 
 | 
			
		||||
  m_EditorClassIdentifier: 
 | 
			
		||||
  m_Navigation:
 | 
			
		||||
    m_Mode: 3
 | 
			
		||||
    m_SelectOnUp: {fileID: 0}
 | 
			
		||||
    m_SelectOnDown: {fileID: 0}
 | 
			
		||||
    m_SelectOnLeft: {fileID: 0}
 | 
			
		||||
    m_SelectOnRight: {fileID: 0}
 | 
			
		||||
  m_Transition: 1
 | 
			
		||||
  m_Colors:
 | 
			
		||||
    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
 | 
			
		||||
    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
 | 
			
		||||
    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
 | 
			
		||||
    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
 | 
			
		||||
    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
 | 
			
		||||
    m_ColorMultiplier: 1
 | 
			
		||||
    m_FadeDuration: 0.1
 | 
			
		||||
  m_SpriteState:
 | 
			
		||||
    m_HighlightedSprite: {fileID: 0}
 | 
			
		||||
    m_PressedSprite: {fileID: 0}
 | 
			
		||||
    m_SelectedSprite: {fileID: 0}
 | 
			
		||||
    m_DisabledSprite: {fileID: 0}
 | 
			
		||||
  m_AnimationTriggers:
 | 
			
		||||
    m_NormalTrigger: Normal
 | 
			
		||||
    m_HighlightedTrigger: Highlighted
 | 
			
		||||
    m_PressedTrigger: Pressed
 | 
			
		||||
    m_SelectedTrigger: Selected
 | 
			
		||||
    m_DisabledTrigger: Disabled
 | 
			
		||||
  m_Interactable: 1
 | 
			
		||||
  m_TargetGraphic: {fileID: 760297268}
 | 
			
		||||
  m_TextComponent: {fileID: 233669862}
 | 
			
		||||
  m_Placeholder: {fileID: 0}
 | 
			
		||||
  m_ContentType: 0
 | 
			
		||||
  m_InputType: 0
 | 
			
		||||
  m_AsteriskChar: 42
 | 
			
		||||
  m_KeyboardType: 0
 | 
			
		||||
  m_LineType: 0
 | 
			
		||||
  m_HideMobileInput: 0
 | 
			
		||||
  m_CharacterValidation: 0
 | 
			
		||||
  m_CharacterLimit: 0
 | 
			
		||||
  m_OnEndEdit:
 | 
			
		||||
    m_PersistentCalls:
 | 
			
		||||
      m_Calls:
 | 
			
		||||
      - m_Target: {fileID: 1323324190}
 | 
			
		||||
        m_MethodName: OnAnimationClipTimeFieldChange
 | 
			
		||||
        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_OnValueChanged:
 | 
			
		||||
    m_PersistentCalls:
 | 
			
		||||
      m_Calls: []
 | 
			
		||||
  m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
 | 
			
		||||
  m_CustomCaretColor: 0
 | 
			
		||||
  m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412}
 | 
			
		||||
  m_Text: 0
 | 
			
		||||
  m_CaretBlinkRate: 0.85
 | 
			
		||||
  m_CaretWidth: 1
 | 
			
		||||
  m_ReadOnly: 0
 | 
			
		||||
  m_ShouldActivateOnSelect: 1
 | 
			
		||||
--- !u!114 &760297268
 | 
			
		||||
MonoBehaviour:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 760297265}
 | 
			
		||||
  m_Enabled: 1
 | 
			
		||||
  m_EditorHideFlags: 0
 | 
			
		||||
  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
 | 
			
		||||
  m_Name: 
 | 
			
		||||
  m_EditorClassIdentifier: 
 | 
			
		||||
  m_Material: {fileID: 0}
 | 
			
		||||
  m_Color: {r: 1, g: 1, b: 1, a: 1}
 | 
			
		||||
  m_RaycastTarget: 1
 | 
			
		||||
  m_Maskable: 1
 | 
			
		||||
  m_OnCullStateChanged:
 | 
			
		||||
    m_PersistentCalls:
 | 
			
		||||
      m_Calls: []
 | 
			
		||||
  m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0}
 | 
			
		||||
  m_Type: 1
 | 
			
		||||
  m_PreserveAspect: 0
 | 
			
		||||
  m_FillCenter: 1
 | 
			
		||||
  m_FillMethod: 4
 | 
			
		||||
  m_FillAmount: 1
 | 
			
		||||
  m_FillClockwise: 1
 | 
			
		||||
  m_FillOrigin: 0
 | 
			
		||||
  m_UseSpriteMesh: 0
 | 
			
		||||
  m_PixelsPerUnitMultiplier: 1
 | 
			
		||||
--- !u!222 &760297269
 | 
			
		||||
CanvasRenderer:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 760297265}
 | 
			
		||||
  m_CullTransparentMesh: 0
 | 
			
		||||
--- !u!1 &765752266
 | 
			
		||||
GameObject:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
| 
						 | 
				
			
			@ -7825,7 +8098,7 @@ RectTransform:
 | 
			
		|||
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 | 
			
		||||
  m_AnchorMin: {x: 1, y: 1}
 | 
			
		||||
  m_AnchorMax: {x: 1, y: 1}
 | 
			
		||||
  m_AnchoredPosition: {x: -194.51001, y: -31.5}
 | 
			
		||||
  m_AnchoredPosition: {x: -278.81006, y: -31.5}
 | 
			
		||||
  m_SizeDelta: {x: 121.69061, y: 30}
 | 
			
		||||
  m_Pivot: {x: 0.5, y: 0.5}
 | 
			
		||||
--- !u!114 &1083597499
 | 
			
		||||
| 
						 | 
				
			
			@ -9370,7 +9643,7 @@ MonoBehaviour:
 | 
			
		|||
    m_PersistentCalls:
 | 
			
		||||
      m_Calls:
 | 
			
		||||
      - m_Target: {fileID: 1323324190}
 | 
			
		||||
        m_MethodName: UpdateFromStageTimelineSlider
 | 
			
		||||
        m_MethodName: OnStageTimelineSliderChange
 | 
			
		||||
        m_Mode: 1
 | 
			
		||||
        m_Arguments:
 | 
			
		||||
          m_ObjectArgument: {fileID: 0}
 | 
			
		||||
| 
						 | 
				
			
			@ -9646,8 +9919,8 @@ MonoBehaviour:
 | 
			
		|||
  stageLoopDropdown: {fileID: 429161118}
 | 
			
		||||
  cyclesNormalField: {fileID: 74082975}
 | 
			
		||||
  cyclesFastField: {fileID: 1463915054}
 | 
			
		||||
  stageTickText: {fileID: 2095914858}
 | 
			
		||||
  stageLengthText: {fileID: 1607625113}
 | 
			
		||||
  animationClipTimeField: {fileID: 760297267}
 | 
			
		||||
  animationClipLengthField: {fileID: 1676585155}
 | 
			
		||||
  actorCard: {fileID: 3804747680697097237, guid: 73a40f7e8cdb25c4390e3ea857ff50ea,
 | 
			
		||||
    type: 3}
 | 
			
		||||
  animationTimelines: {fileID: 219230438}
 | 
			
		||||
| 
						 | 
				
			
			@ -12747,6 +13020,84 @@ CanvasRenderer:
 | 
			
		|||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 1566290623}
 | 
			
		||||
  m_CullTransparentMesh: 0
 | 
			
		||||
--- !u!1 &1567556986
 | 
			
		||||
GameObject:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  serializedVersion: 6
 | 
			
		||||
  m_Component:
 | 
			
		||||
  - component: {fileID: 1567556987}
 | 
			
		||||
  - component: {fileID: 1567556989}
 | 
			
		||||
  - component: {fileID: 1567556988}
 | 
			
		||||
  m_Layer: 5
 | 
			
		||||
  m_Name: CurrentTimeLabel
 | 
			
		||||
  m_TagString: Untagged
 | 
			
		||||
  m_Icon: {fileID: 0}
 | 
			
		||||
  m_NavMeshLayer: 0
 | 
			
		||||
  m_StaticEditorFlags: 0
 | 
			
		||||
  m_IsActive: 1
 | 
			
		||||
--- !u!224 &1567556987
 | 
			
		||||
RectTransform:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 1567556986}
 | 
			
		||||
  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: 539052777}
 | 
			
		||||
  m_RootOrder: 0
 | 
			
		||||
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 | 
			
		||||
  m_AnchorMin: {x: 0, y: 0}
 | 
			
		||||
  m_AnchorMax: {x: 0, y: 0}
 | 
			
		||||
  m_AnchoredPosition: {x: 0, y: 0}
 | 
			
		||||
  m_SizeDelta: {x: 87.21118, y: 30}
 | 
			
		||||
  m_Pivot: {x: 0.5, y: 0.5}
 | 
			
		||||
--- !u!114 &1567556988
 | 
			
		||||
MonoBehaviour:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 1567556986}
 | 
			
		||||
  m_Enabled: 1
 | 
			
		||||
  m_EditorHideFlags: 0
 | 
			
		||||
  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
 | 
			
		||||
  m_Name: 
 | 
			
		||||
  m_EditorClassIdentifier: 
 | 
			
		||||
  m_Material: {fileID: 0}
 | 
			
		||||
  m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
 | 
			
		||||
  m_RaycastTarget: 1
 | 
			
		||||
  m_Maskable: 1
 | 
			
		||||
  m_OnCullStateChanged:
 | 
			
		||||
    m_PersistentCalls:
 | 
			
		||||
      m_Calls: []
 | 
			
		||||
  m_FontData:
 | 
			
		||||
    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
 | 
			
		||||
    m_FontSize: 14
 | 
			
		||||
    m_FontStyle: 0
 | 
			
		||||
    m_BestFit: 0
 | 
			
		||||
    m_MinSize: 10
 | 
			
		||||
    m_MaxSize: 40
 | 
			
		||||
    m_Alignment: 3
 | 
			
		||||
    m_AlignByGeometry: 0
 | 
			
		||||
    m_RichText: 1
 | 
			
		||||
    m_HorizontalOverflow: 0
 | 
			
		||||
    m_VerticalOverflow: 0
 | 
			
		||||
    m_LineSpacing: 1
 | 
			
		||||
  m_Text: 'Current time:'
 | 
			
		||||
--- !u!222 &1567556989
 | 
			
		||||
CanvasRenderer:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 1567556986}
 | 
			
		||||
  m_CullTransparentMesh: 0
 | 
			
		||||
--- !u!1 &1570199297
 | 
			
		||||
GameObject:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
| 
						 | 
				
			
			@ -13152,84 +13503,6 @@ MonoBehaviour:
 | 
			
		|||
  m_Name: 
 | 
			
		||||
  m_EditorClassIdentifier: 
 | 
			
		||||
  cloneObjects: []
 | 
			
		||||
--- !u!1 &1607625111
 | 
			
		||||
GameObject:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  serializedVersion: 6
 | 
			
		||||
  m_Component:
 | 
			
		||||
  - component: {fileID: 1607625112}
 | 
			
		||||
  - component: {fileID: 1607625114}
 | 
			
		||||
  - component: {fileID: 1607625113}
 | 
			
		||||
  m_Layer: 5
 | 
			
		||||
  m_Name: AnimStageLengthLabel
 | 
			
		||||
  m_TagString: Untagged
 | 
			
		||||
  m_Icon: {fileID: 0}
 | 
			
		||||
  m_NavMeshLayer: 0
 | 
			
		||||
  m_StaticEditorFlags: 0
 | 
			
		||||
  m_IsActive: 1
 | 
			
		||||
--- !u!224 &1607625112
 | 
			
		||||
RectTransform:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 1607625111}
 | 
			
		||||
  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: 539052777}
 | 
			
		||||
  m_RootOrder: 1
 | 
			
		||||
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 | 
			
		||||
  m_AnchorMin: {x: 0.5, y: 0.5}
 | 
			
		||||
  m_AnchorMax: {x: 0.5, y: 0.5}
 | 
			
		||||
  m_AnchoredPosition: {x: 24, y: 0}
 | 
			
		||||
  m_SizeDelta: {x: 36, y: 30}
 | 
			
		||||
  m_Pivot: {x: 0.5, y: 0.5}
 | 
			
		||||
--- !u!114 &1607625113
 | 
			
		||||
MonoBehaviour:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 1607625111}
 | 
			
		||||
  m_Enabled: 1
 | 
			
		||||
  m_EditorHideFlags: 0
 | 
			
		||||
  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
 | 
			
		||||
  m_Name: 
 | 
			
		||||
  m_EditorClassIdentifier: 
 | 
			
		||||
  m_Material: {fileID: 0}
 | 
			
		||||
  m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
 | 
			
		||||
  m_RaycastTarget: 1
 | 
			
		||||
  m_Maskable: 1
 | 
			
		||||
  m_OnCullStateChanged:
 | 
			
		||||
    m_PersistentCalls:
 | 
			
		||||
      m_Calls: []
 | 
			
		||||
  m_FontData:
 | 
			
		||||
    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
 | 
			
		||||
    m_FontSize: 14
 | 
			
		||||
    m_FontStyle: 0
 | 
			
		||||
    m_BestFit: 0
 | 
			
		||||
    m_MinSize: 10
 | 
			
		||||
    m_MaxSize: 40
 | 
			
		||||
    m_Alignment: 5
 | 
			
		||||
    m_AlignByGeometry: 0
 | 
			
		||||
    m_RichText: 1
 | 
			
		||||
    m_HorizontalOverflow: 0
 | 
			
		||||
    m_VerticalOverflow: 0
 | 
			
		||||
    m_LineSpacing: 1
 | 
			
		||||
  m_Text: 9999
 | 
			
		||||
--- !u!222 &1607625114
 | 
			
		||||
CanvasRenderer:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 1607625111}
 | 
			
		||||
  m_CullTransparentMesh: 0
 | 
			
		||||
--- !u!1 &1626372650
 | 
			
		||||
GameObject:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
| 
						 | 
				
			
			@ -13548,6 +13821,84 @@ RectTransform:
 | 
			
		|||
  m_AnchoredPosition: {x: 0, y: 0}
 | 
			
		||||
  m_SizeDelta: {x: -20, y: -20}
 | 
			
		||||
  m_Pivot: {x: 0.5, y: 0.5}
 | 
			
		||||
--- !u!1 &1670013372
 | 
			
		||||
GameObject:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  serializedVersion: 6
 | 
			
		||||
  m_Component:
 | 
			
		||||
  - component: {fileID: 1670013373}
 | 
			
		||||
  - component: {fileID: 1670013375}
 | 
			
		||||
  - component: {fileID: 1670013374}
 | 
			
		||||
  m_Layer: 5
 | 
			
		||||
  m_Name: Text
 | 
			
		||||
  m_TagString: Untagged
 | 
			
		||||
  m_Icon: {fileID: 0}
 | 
			
		||||
  m_NavMeshLayer: 0
 | 
			
		||||
  m_StaticEditorFlags: 0
 | 
			
		||||
  m_IsActive: 1
 | 
			
		||||
--- !u!224 &1670013373
 | 
			
		||||
RectTransform:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 1670013372}
 | 
			
		||||
  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: 1676585154}
 | 
			
		||||
  m_RootOrder: 0
 | 
			
		||||
  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.5}
 | 
			
		||||
  m_SizeDelta: {x: -20, y: -13}
 | 
			
		||||
  m_Pivot: {x: 0.5, y: 0.5}
 | 
			
		||||
--- !u!114 &1670013374
 | 
			
		||||
MonoBehaviour:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 1670013372}
 | 
			
		||||
  m_Enabled: 1
 | 
			
		||||
  m_EditorHideFlags: 0
 | 
			
		||||
  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
 | 
			
		||||
  m_Name: 
 | 
			
		||||
  m_EditorClassIdentifier: 
 | 
			
		||||
  m_Material: {fileID: 0}
 | 
			
		||||
  m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
 | 
			
		||||
  m_RaycastTarget: 1
 | 
			
		||||
  m_Maskable: 1
 | 
			
		||||
  m_OnCullStateChanged:
 | 
			
		||||
    m_PersistentCalls:
 | 
			
		||||
      m_Calls: []
 | 
			
		||||
  m_FontData:
 | 
			
		||||
    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
 | 
			
		||||
    m_FontSize: 14
 | 
			
		||||
    m_FontStyle: 0
 | 
			
		||||
    m_BestFit: 0
 | 
			
		||||
    m_MinSize: 10
 | 
			
		||||
    m_MaxSize: 40
 | 
			
		||||
    m_Alignment: 1
 | 
			
		||||
    m_AlignByGeometry: 0
 | 
			
		||||
    m_RichText: 0
 | 
			
		||||
    m_HorizontalOverflow: 1
 | 
			
		||||
    m_VerticalOverflow: 0
 | 
			
		||||
    m_LineSpacing: 1
 | 
			
		||||
  m_Text: 9999
 | 
			
		||||
--- !u!222 &1670013375
 | 
			
		||||
CanvasRenderer:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 1670013372}
 | 
			
		||||
  m_CullTransparentMesh: 0
 | 
			
		||||
--- !u!1 &1671366298
 | 
			
		||||
GameObject:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
| 
						 | 
				
			
			@ -13626,6 +13977,157 @@ CanvasRenderer:
 | 
			
		|||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 1671366298}
 | 
			
		||||
  m_CullTransparentMesh: 0
 | 
			
		||||
--- !u!1 &1676585153
 | 
			
		||||
GameObject:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  serializedVersion: 6
 | 
			
		||||
  m_Component:
 | 
			
		||||
  - component: {fileID: 1676585154}
 | 
			
		||||
  - component: {fileID: 1676585157}
 | 
			
		||||
  - component: {fileID: 1676585156}
 | 
			
		||||
  - component: {fileID: 1676585155}
 | 
			
		||||
  m_Layer: 5
 | 
			
		||||
  m_Name: AnimationClipLengthField
 | 
			
		||||
  m_TagString: Untagged
 | 
			
		||||
  m_Icon: {fileID: 0}
 | 
			
		||||
  m_NavMeshLayer: 0
 | 
			
		||||
  m_StaticEditorFlags: 0
 | 
			
		||||
  m_IsActive: 1
 | 
			
		||||
--- !u!224 &1676585154
 | 
			
		||||
RectTransform:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 1676585153}
 | 
			
		||||
  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:
 | 
			
		||||
  - {fileID: 1670013373}
 | 
			
		||||
  m_Father: {fileID: 539052777}
 | 
			
		||||
  m_RootOrder: 3
 | 
			
		||||
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 | 
			
		||||
  m_AnchorMin: {x: 0, y: 0}
 | 
			
		||||
  m_AnchorMax: {x: 0, y: 0}
 | 
			
		||||
  m_AnchoredPosition: {x: 0, y: 0}
 | 
			
		||||
  m_SizeDelta: {x: 55, y: 30}
 | 
			
		||||
  m_Pivot: {x: 0.5, y: 0.5}
 | 
			
		||||
--- !u!114 &1676585155
 | 
			
		||||
MonoBehaviour:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 1676585153}
 | 
			
		||||
  m_Enabled: 1
 | 
			
		||||
  m_EditorHideFlags: 0
 | 
			
		||||
  m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3}
 | 
			
		||||
  m_Name: 
 | 
			
		||||
  m_EditorClassIdentifier: 
 | 
			
		||||
  m_Navigation:
 | 
			
		||||
    m_Mode: 3
 | 
			
		||||
    m_SelectOnUp: {fileID: 0}
 | 
			
		||||
    m_SelectOnDown: {fileID: 0}
 | 
			
		||||
    m_SelectOnLeft: {fileID: 0}
 | 
			
		||||
    m_SelectOnRight: {fileID: 0}
 | 
			
		||||
  m_Transition: 1
 | 
			
		||||
  m_Colors:
 | 
			
		||||
    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
 | 
			
		||||
    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
 | 
			
		||||
    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
 | 
			
		||||
    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
 | 
			
		||||
    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
 | 
			
		||||
    m_ColorMultiplier: 1
 | 
			
		||||
    m_FadeDuration: 0.1
 | 
			
		||||
  m_SpriteState:
 | 
			
		||||
    m_HighlightedSprite: {fileID: 0}
 | 
			
		||||
    m_PressedSprite: {fileID: 0}
 | 
			
		||||
    m_SelectedSprite: {fileID: 0}
 | 
			
		||||
    m_DisabledSprite: {fileID: 0}
 | 
			
		||||
  m_AnimationTriggers:
 | 
			
		||||
    m_NormalTrigger: Normal
 | 
			
		||||
    m_HighlightedTrigger: Highlighted
 | 
			
		||||
    m_PressedTrigger: Pressed
 | 
			
		||||
    m_SelectedTrigger: Selected
 | 
			
		||||
    m_DisabledTrigger: Disabled
 | 
			
		||||
  m_Interactable: 1
 | 
			
		||||
  m_TargetGraphic: {fileID: 1676585156}
 | 
			
		||||
  m_TextComponent: {fileID: 1670013374}
 | 
			
		||||
  m_Placeholder: {fileID: 0}
 | 
			
		||||
  m_ContentType: 0
 | 
			
		||||
  m_InputType: 0
 | 
			
		||||
  m_AsteriskChar: 42
 | 
			
		||||
  m_KeyboardType: 0
 | 
			
		||||
  m_LineType: 0
 | 
			
		||||
  m_HideMobileInput: 0
 | 
			
		||||
  m_CharacterValidation: 0
 | 
			
		||||
  m_CharacterLimit: 0
 | 
			
		||||
  m_OnEndEdit:
 | 
			
		||||
    m_PersistentCalls:
 | 
			
		||||
      m_Calls:
 | 
			
		||||
      - m_Target: {fileID: 1323324190}
 | 
			
		||||
        m_MethodName: OnAnimationClipLengthFieldChange
 | 
			
		||||
        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_OnValueChanged:
 | 
			
		||||
    m_PersistentCalls:
 | 
			
		||||
      m_Calls: []
 | 
			
		||||
  m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
 | 
			
		||||
  m_CustomCaretColor: 0
 | 
			
		||||
  m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412}
 | 
			
		||||
  m_Text: 9999
 | 
			
		||||
  m_CaretBlinkRate: 0.85
 | 
			
		||||
  m_CaretWidth: 1
 | 
			
		||||
  m_ReadOnly: 0
 | 
			
		||||
  m_ShouldActivateOnSelect: 1
 | 
			
		||||
--- !u!114 &1676585156
 | 
			
		||||
MonoBehaviour:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 1676585153}
 | 
			
		||||
  m_Enabled: 1
 | 
			
		||||
  m_EditorHideFlags: 0
 | 
			
		||||
  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
 | 
			
		||||
  m_Name: 
 | 
			
		||||
  m_EditorClassIdentifier: 
 | 
			
		||||
  m_Material: {fileID: 0}
 | 
			
		||||
  m_Color: {r: 1, g: 1, b: 1, a: 1}
 | 
			
		||||
  m_RaycastTarget: 1
 | 
			
		||||
  m_Maskable: 1
 | 
			
		||||
  m_OnCullStateChanged:
 | 
			
		||||
    m_PersistentCalls:
 | 
			
		||||
      m_Calls: []
 | 
			
		||||
  m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0}
 | 
			
		||||
  m_Type: 1
 | 
			
		||||
  m_PreserveAspect: 0
 | 
			
		||||
  m_FillCenter: 1
 | 
			
		||||
  m_FillMethod: 4
 | 
			
		||||
  m_FillAmount: 1
 | 
			
		||||
  m_FillClockwise: 1
 | 
			
		||||
  m_FillOrigin: 0
 | 
			
		||||
  m_UseSpriteMesh: 0
 | 
			
		||||
  m_PixelsPerUnitMultiplier: 1
 | 
			
		||||
--- !u!222 &1676585157
 | 
			
		||||
CanvasRenderer:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 1676585153}
 | 
			
		||||
  m_CullTransparentMesh: 0
 | 
			
		||||
--- !u!1 &1697817321
 | 
			
		||||
GameObject:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
| 
						 | 
				
			
			@ -16104,84 +16606,6 @@ MonoBehaviour:
 | 
			
		|||
  m_ChildControlHeight: 0
 | 
			
		||||
  m_ChildScaleWidth: 0
 | 
			
		||||
  m_ChildScaleHeight: 0
 | 
			
		||||
--- !u!1 &2095914856
 | 
			
		||||
GameObject:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  serializedVersion: 6
 | 
			
		||||
  m_Component:
 | 
			
		||||
  - component: {fileID: 2095914857}
 | 
			
		||||
  - component: {fileID: 2095914859}
 | 
			
		||||
  - component: {fileID: 2095914858}
 | 
			
		||||
  m_Layer: 5
 | 
			
		||||
  m_Name: AnimStageTickLabel
 | 
			
		||||
  m_TagString: Untagged
 | 
			
		||||
  m_Icon: {fileID: 0}
 | 
			
		||||
  m_NavMeshLayer: 0
 | 
			
		||||
  m_StaticEditorFlags: 0
 | 
			
		||||
  m_IsActive: 1
 | 
			
		||||
--- !u!224 &2095914857
 | 
			
		||||
RectTransform:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 2095914856}
 | 
			
		||||
  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: 539052777}
 | 
			
		||||
  m_RootOrder: 0
 | 
			
		||||
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 | 
			
		||||
  m_AnchorMin: {x: 0.5, y: 0.5}
 | 
			
		||||
  m_AnchorMax: {x: 0.5, y: 0.5}
 | 
			
		||||
  m_AnchoredPosition: {x: -24, y: 0}
 | 
			
		||||
  m_SizeDelta: {x: 36, y: 30}
 | 
			
		||||
  m_Pivot: {x: 0.5, y: 0.5}
 | 
			
		||||
--- !u!114 &2095914858
 | 
			
		||||
MonoBehaviour:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 2095914856}
 | 
			
		||||
  m_Enabled: 1
 | 
			
		||||
  m_EditorHideFlags: 0
 | 
			
		||||
  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
 | 
			
		||||
  m_Name: 
 | 
			
		||||
  m_EditorClassIdentifier: 
 | 
			
		||||
  m_Material: {fileID: 0}
 | 
			
		||||
  m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
 | 
			
		||||
  m_RaycastTarget: 1
 | 
			
		||||
  m_Maskable: 1
 | 
			
		||||
  m_OnCullStateChanged:
 | 
			
		||||
    m_PersistentCalls:
 | 
			
		||||
      m_Calls: []
 | 
			
		||||
  m_FontData:
 | 
			
		||||
    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
 | 
			
		||||
    m_FontSize: 14
 | 
			
		||||
    m_FontStyle: 0
 | 
			
		||||
    m_BestFit: 0
 | 
			
		||||
    m_MinSize: 10
 | 
			
		||||
    m_MaxSize: 40
 | 
			
		||||
    m_Alignment: 5
 | 
			
		||||
    m_AlignByGeometry: 0
 | 
			
		||||
    m_RichText: 1
 | 
			
		||||
    m_HorizontalOverflow: 0
 | 
			
		||||
    m_VerticalOverflow: 0
 | 
			
		||||
    m_LineSpacing: 1
 | 
			
		||||
  m_Text: 0
 | 
			
		||||
--- !u!222 &2095914859
 | 
			
		||||
CanvasRenderer:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
  m_CorrespondingSourceObject: {fileID: 0}
 | 
			
		||||
  m_PrefabInstance: {fileID: 0}
 | 
			
		||||
  m_PrefabAsset: {fileID: 0}
 | 
			
		||||
  m_GameObject: {fileID: 2095914856}
 | 
			
		||||
  m_CullTransparentMesh: 0
 | 
			
		||||
--- !u!1 &2116605521
 | 
			
		||||
GameObject:
 | 
			
		||||
  m_ObjectHideFlags: 0
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,8 +13,8 @@ namespace RimWorldAnimationStudio
 | 
			
		|||
        public int playTimeTicksQuick = -1;
 | 
			
		||||
        public bool isLooping = false;
 | 
			
		||||
 | 
			
		||||
        [XmlArray("animationClips"), XmlArrayItem("li")]
 | 
			
		||||
        public List<PawnAnimationClip> animationClips = new List<PawnAnimationClip>();
 | 
			
		||||
        [XmlArray("animationClips"), XmlArrayItem("li")] public List<PawnAnimationClip> animationClips = new List<PawnAnimationClip>();
 | 
			
		||||
        [XmlIgnore] public int stageWindowSize = -1;
 | 
			
		||||
 | 
			
		||||
        public void Initialize()
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -54,5 +54,14 @@ namespace RimWorldAnimationStudio
 | 
			
		|||
            KeyframeSlider keyframeSlider = GetComponentsInChildren<KeyframeSlider>().FirstOrDefault(x => x.keyframeID == keyframeID);
 | 
			
		||||
            Destroy(keyframeSlider?.gameObject);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void Update()
 | 
			
		||||
        {
 | 
			
		||||
            if (Workspace.actorID == actorID)
 | 
			
		||||
            { GetComponent<Image>().color = Constants.ColorGoldYellow; }
 | 
			
		||||
 | 
			
		||||
            else
 | 
			
		||||
            { GetComponent<Image>().color = Constants.ColorGrey; }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,7 +32,7 @@ namespace RimWorldAnimationStudio
 | 
			
		|||
            this.keyframeID = keyframeID;
 | 
			
		||||
 | 
			
		||||
            PawnKeyframe keyframe = Workspace.Instance.GetPawnKeyframe(actorID, keyframeID);
 | 
			
		||||
            maxValue = Workspace.animationClipWindowSize;
 | 
			
		||||
            maxValue = Workspace.StageWindowSize;
 | 
			
		||||
            value = keyframe.atTick.Value;
 | 
			
		||||
           
 | 
			
		||||
            OnValueChanged();
 | 
			
		||||
| 
						 | 
				
			
			@ -61,7 +61,7 @@ namespace RimWorldAnimationStudio
 | 
			
		|||
 | 
			
		||||
            for (int i = 0; i < Mathf.Max(nGhosts, ghostSliders.childCount); i++)
 | 
			
		||||
            {
 | 
			
		||||
                if ((i - 1) * clip.duration + keyframe.atTick <= Workspace.animationClipWindowSize)
 | 
			
		||||
                if ((i - 1) * clip.duration + keyframe.atTick <= Workspace.StageWindowSize)
 | 
			
		||||
                {
 | 
			
		||||
                    if (ghostSliders.childCount <= i)
 | 
			
		||||
                    { Instantiate(ghostSliderPrefab, ghostSliders); }
 | 
			
		||||
| 
						 | 
				
			
			@ -91,7 +91,7 @@ namespace RimWorldAnimationStudio
 | 
			
		|||
            if (clip.duration <= 1)
 | 
			
		||||
            { return 0; }
 | 
			
		||||
 | 
			
		||||
            return Math.Min(Mathf.CeilToInt((float)Workspace.animationClipWindowSize / clip.duration), maxGhosts);
 | 
			
		||||
            return Math.Min(Mathf.CeilToInt((float)Workspace.StageWindowSize / clip.duration), maxGhosts);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void OnPointerClick(PointerEventData eventData)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,8 +21,8 @@ namespace RimWorldAnimationStudio
 | 
			
		|||
        public Dropdown stageLoopDropdown;
 | 
			
		||||
        public InputField cyclesNormalField;
 | 
			
		||||
        public InputField cyclesFastField;
 | 
			
		||||
        public Text stageTickText;
 | 
			
		||||
        public Text stageLengthText;
 | 
			
		||||
        public InputField animationClipTimeField;
 | 
			
		||||
        public InputField animationClipLengthField;
 | 
			
		||||
        public ActorCard actorCard;
 | 
			
		||||
        public Transform animationTimelines;       
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -54,33 +54,38 @@ namespace RimWorldAnimationStudio
 | 
			
		|||
                timeSinceLastUpdate -= 1f / 60f;
 | 
			
		||||
                stageTick += 1;
 | 
			
		||||
 | 
			
		||||
                if (stageTick > Workspace.animationClipWindowSize)
 | 
			
		||||
                stageTimelineSlider.value = stageTick;
 | 
			
		||||
                animationClipTimeField.text = stageTick.ToString();
 | 
			
		||||
 | 
			
		||||
                if (stageTick > Workspace.StageWindowSize)
 | 
			
		||||
                {
 | 
			
		||||
                    if (stageLoopDropdown.value == 1)
 | 
			
		||||
                    { stageTick = 1; }
 | 
			
		||||
 | 
			
		||||
                    else if (stageLoopDropdown.value == 2 && Workspace.stageID < Workspace.animationDef.animationStages.Count - 1)
 | 
			
		||||
                    else if (stageLoopDropdown.value >= 2 && Workspace.stageID < Workspace.animationDef.animationStages.Count - 1)
 | 
			
		||||
                    {
 | 
			
		||||
                        ++cycleIndex;
 | 
			
		||||
                        stageTick = 1;
 | 
			
		||||
 | 
			
		||||
                        if (cycleIndex > int.Parse(cyclesNormalField.text))
 | 
			
		||||
                        if ((stageLoopDropdown.value == 2 && cycleIndex > int.Parse(cyclesNormalField.text)) || 
 | 
			
		||||
                            (stageLoopDropdown.value == 3 && cycleIndex > int.Parse(cyclesFastField.text)))
 | 
			
		||||
                        {
 | 
			
		||||
                            ++Workspace.stageID;
 | 
			
		||||
                            cycleIndex = 0;
 | 
			
		||||
 | 
			
		||||
                            ResetAnimationTimeline();
 | 
			
		||||
                            InitializeAnimationTimeline();
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    else
 | 
			
		||||
                    { stageTick = Workspace.animationClipWindowSize; }
 | 
			
		||||
                    { stageTick = Workspace.StageWindowSize; }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // Update stage timeline
 | 
			
		||||
            stageTimelineSlider.maxValue = Workspace.animationClipWindowSize;
 | 
			
		||||
            stageTimelineSlider.value = stageTick;
 | 
			
		||||
            stageTickText.text = stageTick.ToString();
 | 
			
		||||
            stageLengthText.text = Workspace.animationClipWindowSize.ToString();
 | 
			
		||||
            animationClipTimeField.interactable = isAnimating == false;          
 | 
			
		||||
            animationClipLengthField.interactable = isAnimating == false;
 | 
			
		||||
 | 
			
		||||
            // Update animation
 | 
			
		||||
            UpdateAnimation();
 | 
			
		||||
| 
						 | 
				
			
			@ -150,10 +155,8 @@ namespace RimWorldAnimationStudio
 | 
			
		|||
 | 
			
		||||
        public void InitializeAnimationTimeline()
 | 
			
		||||
        {
 | 
			
		||||
            Workspace.animationClipWindowSize = Workspace.animationDef.animationStages[Workspace.stageID].animationClips.Select(x => x.duration).Max();
 | 
			
		||||
 
 | 
			
		||||
            cyclesNormalField.text = Mathf.Max(Mathf.CeilToInt((float)Workspace.animationDef.animationStages[Workspace.stageID].playTimeTicks / Workspace.animationClipWindowSize), 1).ToString();
 | 
			
		||||
            cyclesFastField.text = Mathf.Max(Mathf.CeilToInt((float)Workspace.animationDef.animationStages[Workspace.stageID].playTimeTicksQuick / Workspace.animationClipWindowSize), 1).ToString();
 | 
			
		||||
            cyclesNormalField.text = Mathf.Max(Mathf.CeilToInt((float)Workspace.animationDef.animationStages[Workspace.stageID].playTimeTicks / Workspace.StageWindowSize), 1).ToString();
 | 
			
		||||
            cyclesFastField.text = Mathf.Max(Mathf.CeilToInt((float)Workspace.animationDef.animationStages[Workspace.stageID].playTimeTicksQuick / Workspace.StageWindowSize), 1).ToString();
 | 
			
		||||
 | 
			
		||||
            for (int actorID = 0; actorID < Workspace.animationDef.actors.Count; actorID++)
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			@ -164,7 +167,9 @@ namespace RimWorldAnimationStudio
 | 
			
		|||
                animationTimeline.Initialize(actorID);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            stageTimelineSlider.maxValue = Workspace.animationClipWindowSize;
 | 
			
		||||
            animationClipLengthField.text = Workspace.StageWindowSize.ToString();
 | 
			
		||||
            animationClipTimeField.text = "1";
 | 
			
		||||
            stageTimelineSlider.maxValue = Workspace.StageWindowSize;
 | 
			
		||||
            stageTimelineSlider.value = 1;
 | 
			
		||||
            stageTick = 1;
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -299,13 +304,21 @@ namespace RimWorldAnimationStudio
 | 
			
		|||
 | 
			
		||||
        public void RemovePawnKeyframe()
 | 
			
		||||
        {
 | 
			
		||||
            PawnKeyframe keyframe = Workspace.Instance.GetCurrentPawnKeyframe(false);
 | 
			
		||||
            RemovePawnKeyframe(Workspace.actorID, Workspace.keyframeID);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void RemovePawnKeyframe(int actorID, int keyframeID)
 | 
			
		||||
        {
 | 
			
		||||
            PawnKeyframe keyframe = Workspace.Instance.GetPawnKeyframe(actorID, keyframeID);
 | 
			
		||||
 | 
			
		||||
            if (keyframe.atTick == 1)
 | 
			
		||||
            { Debug.LogWarning("Cannot delete key frame - the first key frame of an animation cannot be deleted"); return; }
 | 
			
		||||
 | 
			
		||||
            if (keyframe != null)
 | 
			
		||||
            {
 | 
			
		||||
                animationTimelines.GetChild(Workspace.actorID).GetComponent<AnimationTimeline>().RemovePawnKeyFrame(keyframe.keyframeID);
 | 
			
		||||
                animationTimelines.GetChild(actorID).GetComponent<AnimationTimeline>().RemovePawnKeyFrame(keyframe.keyframeID);
 | 
			
		||||
 | 
			
		||||
                PawnAnimationClip clip = Workspace.Instance.GetCurrentPawnAnimationClip();
 | 
			
		||||
                PawnAnimationClip clip = Workspace.animationDef.animationStages[Workspace.stageID].animationClips[actorID];
 | 
			
		||||
                clip.keyframes.Remove(keyframe);
 | 
			
		||||
                clip.BuildSimpleCurves();
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			@ -316,18 +329,78 @@ namespace RimWorldAnimationStudio
 | 
			
		|||
            isAnimating = !isAnimating;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void UpdateFromStageTimelineSlider()
 | 
			
		||||
        {
 | 
			
		||||
            if (Workspace.animationDef == null)
 | 
			
		||||
            { return; }
 | 
			
		||||
 | 
			
		||||
            if (stageTick != (int)stageTimelineSlider.value)
 | 
			
		||||
            { stageTick = (int)stageTimelineSlider.value; }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void ToggleActorManipulationMode(int mode)
 | 
			
		||||
        {
 | 
			
		||||
            Workspace.actorManipulationMode = (ActorManipulationMode)mode;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void OnStageTimelineSliderChange()
 | 
			
		||||
        {
 | 
			
		||||
            if (Workspace.animationDef == null) return;
 | 
			
		||||
 | 
			
		||||
            if (stageTick != (int)stageTimelineSlider.value)
 | 
			
		||||
            { 
 | 
			
		||||
                stageTick = (int)stageTimelineSlider.value;
 | 
			
		||||
                animationClipTimeField.text = stageTick.ToString();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void OnAnimationClipTimeFieldChange()
 | 
			
		||||
        {
 | 
			
		||||
            if (Workspace.animationDef == null) return;
 | 
			
		||||
 | 
			
		||||
            int.TryParse(animationClipTimeField.text, out int newStageTick);
 | 
			
		||||
            stageTick = Mathf.Clamp(newStageTick, 1, Workspace.StageWindowSize);
 | 
			
		||||
            stageTimelineSlider.value = stageTick;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void OnAnimationClipLengthFieldChange()
 | 
			
		||||
        {
 | 
			
		||||
            if (Workspace.animationDef == null) return;
 | 
			
		||||
 | 
			
		||||
            int.TryParse(animationClipLengthField.text, out int newstageWindowSize);
 | 
			
		||||
            newstageWindowSize = Mathf.Clamp(newstageWindowSize, Constants.minAnimationClipLength, Constants.maxAnimationClipLength);
 | 
			
		||||
 | 
			
		||||
            Debug.Log("Resizing animation clip length to " + newstageWindowSize.ToString() + " ticks.");
 | 
			
		||||
 | 
			
		||||
            for (int i = 0; i < Workspace.animationDef.animationStages[Workspace.stageID].animationClips.Count; i++)
 | 
			
		||||
            {
 | 
			
		||||
                PawnAnimationClip clip = Workspace.animationDef.animationStages[Workspace.stageID].animationClips[i];
 | 
			
		||||
                List<PawnKeyframe> keyframes = clip.keyframes.Where(x => x.atTick > newstageWindowSize)?.ToList();
 | 
			
		||||
 | 
			
		||||
                if (keyframes.NullOrEmpty())
 | 
			
		||||
                { continue; }
 | 
			
		||||
 | 
			
		||||
                foreach (PawnKeyframe keyframe in keyframes)
 | 
			
		||||
                { 
 | 
			
		||||
                    RemovePawnKeyframe(i, keyframe.keyframeID);
 | 
			
		||||
 | 
			
		||||
                    if (Workspace.animationDef.animationStages[Workspace.stageID].animationClips[i].keyframes.Count <= 2)
 | 
			
		||||
                    { break; }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            animationClipLengthField.text = newstageWindowSize.ToString();
 | 
			
		||||
            Workspace.animationDef.animationStages[Workspace.stageID].stageWindowSize = newstageWindowSize;
 | 
			
		||||
 | 
			
		||||
            ResetAnimationTimeline();
 | 
			
		||||
            InitializeAnimationTimeline();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void OnCycleNormalFieldChange()
 | 
			
		||||
        {
 | 
			
		||||
            if (Workspace.animationDef == null) return;
 | 
			
		||||
 | 
			
		||||
            if (int.TryParse(cyclesNormalField.text, out int cycles))
 | 
			
		||||
            { Workspace.animationDef.animationStages[Workspace.stageID].playTimeTicks = cycles * Workspace.StageWindowSize; }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void OnCycleFastFieldChange()
 | 
			
		||||
        {
 | 
			
		||||
            if (Workspace.animationDef == null) return;
 | 
			
		||||
 | 
			
		||||
            if (int.TryParse(cyclesFastField.text, out int cycles))
 | 
			
		||||
            { Workspace.animationDef.animationStages[Workspace.stageID].playTimeTicksQuick = cycles * Workspace.StageWindowSize; }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										17
									
								
								Assets/Scripts/Math/Constants/Constants.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								Assets/Scripts/Math/Constants/Constants.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,17 @@
 | 
			
		|||
using UnityEngine;
 | 
			
		||||
 | 
			
		||||
namespace RimWorldAnimationStudio
 | 
			
		||||
{
 | 
			
		||||
    public static class Constants
 | 
			
		||||
    {
 | 
			
		||||
        public static int defaultAnimationClipLength = 600;
 | 
			
		||||
        public static int minAnimationClipLength = 2;
 | 
			
		||||
        public static int maxAnimationClipLength = 9999;
 | 
			
		||||
 | 
			
		||||
        public static Color ColorWhite = new Color(1f, 1f, 1f);
 | 
			
		||||
        public static Color ColorGreen = new Color(0f, 1f, 0f);
 | 
			
		||||
        public static Color ColorGoldYellow = new Color(1f, 0.85f, 0f);
 | 
			
		||||
        public static Color ColorGrey = new Color(0.5f, 0.5f, 0.5f);
 | 
			
		||||
        public static Color ColorDarkGrey = new Color(0.2f, 0.2f, 0.2f);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										11
									
								
								Assets/Scripts/Math/Constants/Constants.cs.meta
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								Assets/Scripts/Math/Constants/Constants.cs.meta
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,11 @@
 | 
			
		|||
fileFormatVersion: 2
 | 
			
		||||
guid: 5736ef91f32211942abe6c2f765da6c4
 | 
			
		||||
MonoImporter:
 | 
			
		||||
  externalObjects: {}
 | 
			
		||||
  serializedVersion: 2
 | 
			
		||||
  defaultReferences: []
 | 
			
		||||
  executionOrder: 0
 | 
			
		||||
  icon: {instanceID: 0}
 | 
			
		||||
  userData: 
 | 
			
		||||
  assetBundleName: 
 | 
			
		||||
  assetBundleVariant: 
 | 
			
		||||
| 
						 | 
				
			
			@ -26,7 +26,20 @@ namespace RimWorldAnimationStudio
 | 
			
		|||
        private static int historyIndex = 0;
 | 
			
		||||
 | 
			
		||||
        public static ActorManipulationMode actorManipulationMode = ActorManipulationMode.Pan;
 | 
			
		||||
        public static int animationClipWindowSize = 600;
 | 
			
		||||
        
 | 
			
		||||
        public static int StageWindowSize 
 | 
			
		||||
        { 
 | 
			
		||||
            get 
 | 
			
		||||
            {
 | 
			
		||||
                if (animationDef == null)
 | 
			
		||||
                { return -1; }
 | 
			
		||||
 | 
			
		||||
                if (animationDef.animationStages[stageID].stageWindowSize < 0)
 | 
			
		||||
                { return animationDef.animationStages[stageID].animationClips.Select(x => x.duration).Max(); }
 | 
			
		||||
 | 
			
		||||
                return animationDef.animationStages[stageID].stageWindowSize;
 | 
			
		||||
            } 
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public PawnKeyframe GetCurrentPawnKeyframe(bool makeNewIfNull = true)
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											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.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Library/Artifacts/1d/1df26ba0dd34b84407d3d26a882130e7
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Library/Artifacts/1d/1df26ba0dd34b84407d3d26a882130e7
									
										
									
									
									
										Normal file
									
								
							
										
											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.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Library/Artifacts/4b/4bce872469a980222947446d5b168228
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Library/Artifacts/4b/4bce872469a980222947446d5b168228
									
										
									
									
									
										Normal file
									
								
							
										
											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.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Library/Artifacts/6f/6fe46d47fc9dba8cbee22c6dd1ffb8e2
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Library/Artifacts/6f/6fe46d47fc9dba8cbee22c6dd1ffb8e2
									
										
									
									
									
										Normal file
									
								
							
										
											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.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Library/Artifacts/7d/7dad8137662d77f2b3f6d0a76e6f4b6f
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Library/Artifacts/7d/7dad8137662d77f2b3f6d0a76e6f4b6f
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Library/Artifacts/89/89f5bceef91d9e041c59199b6ee8d3c7
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Library/Artifacts/89/89f5bceef91d9e041c59199b6ee8d3c7
									
										
									
									
									
										Normal file
									
								
							
										
											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