Code refactor

This commit is contained in:
AbstractConcept 2022-10-31 00:44:53 -05:00
parent 5ca7e486f8
commit e14a12f2ab
310 changed files with 4875 additions and 4102 deletions

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 013f4bcdcb176e2478c081219c513821
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,905 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &2959214801869174166
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2959214801869174167}
- component: {fileID: 2959214801869174163}
- component: {fileID: 2959214801869174162}
- component: {fileID: 2959214801869174165}
- component: {fileID: 2959214801869174164}
- component: {fileID: 2959214801869174160}
m_Layer: 5
m_Name: rotationField
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2959214801869174167
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214801869174166}
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: 2959214803873671157}
m_Father: {fileID: 2959214802706661728}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 240, y: 0}
m_SizeDelta: {x: 60, y: 30}
m_Pivot: {x: 0, y: 1}
--- !u!222 &2959214801869174163
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214801869174166}
m_CullTransparentMesh: 0
--- !u!114 &2959214801869174162
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214801869174166}
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!114 &2959214801869174165
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214801869174166}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 0
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: 2959214801869174162}
m_TextComponent: {fileID: 2959214803873671154}
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: 0}
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_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.000
m_CaretBlinkRate: 0.85
m_CaretWidth: 1
m_ReadOnly: 0
m_ShouldActivateOnSelect: 1
--- !u!114 &2959214801869174164
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214801869174166}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1f3886223a697384abc8109a51c855e2, type: 3}
m_Name:
m_EditorClassIdentifier:
valiationType: 2
--- !u!114 &2959214801869174160
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214801869174166}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 92068b39ed172084296a595f5a09e54b, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &2959214802527417763
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2959214802527417760}
- component: {fileID: 2959214802527417774}
- component: {fileID: 2959214802527417761}
m_Layer: 5
m_Name: Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2959214802527417760
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214802527417763}
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: 2959214802834023108}
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!222 &2959214802527417774
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214802527417763}
m_CullTransparentMesh: 0
--- !u!114 &2959214802527417761
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214802527417763}
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: 0
m_AlignByGeometry: 0
m_RichText: 0
m_HorizontalOverflow: 1
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: 0.000
--- !u!1 &2959214802659385800
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2959214802659385801}
- component: {fileID: 2959214802659385847}
- component: {fileID: 2959214802659385846}
m_Layer: 5
m_Name: Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2959214802659385801
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214802659385800}
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: 2959214803241694089}
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!222 &2959214802659385847
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214802659385800}
m_CullTransparentMesh: 0
--- !u!114 &2959214802659385846
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214802659385800}
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: 0
m_AlignByGeometry: 0
m_RichText: 0
m_HorizontalOverflow: 1
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: 0.000
--- !u!1 &2959214802706661731
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2959214802706661728}
- component: {fileID: 2959214802706661729}
m_Layer: 5
m_Name: ActorAddonKeyframeCard
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &2959214802706661728
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214802706661731}
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: 2959214803289300818}
- {fileID: 2959214803241694089}
- {fileID: 2959214802834023108}
- {fileID: 2959214801869174167}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 0, y: -155}
m_SizeDelta: {x: 310, y: 30}
m_Pivot: {x: 0, y: 0.5}
--- !u!114 &2959214802706661729
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214802706661731}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8a63bb35c73985c46b65383f08d4afd9, type: 3}
m_Name:
m_EditorClassIdentifier:
addonName: none
label: {fileID: 2959214803289300819}
xOffsetField: {fileID: 2959214803241694135}
zOffsetField: {fileID: 2959214802834023106}
rotationField: {fileID: 2959214801869174165}
--- !u!1 &2959214802834023111
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2959214802834023108}
- component: {fileID: 2959214802834023104}
- component: {fileID: 2959214802834023107}
- component: {fileID: 2959214802834023106}
- component: {fileID: 2959214802834023109}
- component: {fileID: 2959214802834023105}
m_Layer: 5
m_Name: posOffsetZField
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2959214802834023108
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214802834023111}
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: 2959214802527417760}
m_Father: {fileID: 2959214802706661728}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 175, y: 0}
m_SizeDelta: {x: 60, y: 30}
m_Pivot: {x: 0, y: 1}
--- !u!222 &2959214802834023104
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214802834023111}
m_CullTransparentMesh: 0
--- !u!114 &2959214802834023107
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214802834023111}
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!114 &2959214802834023106
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214802834023111}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 0
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: 2959214802834023107}
m_TextComponent: {fileID: 2959214802527417761}
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: 0}
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_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.000
m_CaretBlinkRate: 0.85
m_CaretWidth: 1
m_ReadOnly: 0
m_ShouldActivateOnSelect: 1
--- !u!114 &2959214802834023109
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214802834023111}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1f3886223a697384abc8109a51c855e2, type: 3}
m_Name:
m_EditorClassIdentifier:
valiationType: 2
--- !u!114 &2959214802834023105
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214802834023111}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 92068b39ed172084296a595f5a09e54b, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &2959214803241694088
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2959214803241694089}
- component: {fileID: 2959214803241694133}
- component: {fileID: 2959214803241694132}
- component: {fileID: 2959214803241694135}
- component: {fileID: 2959214803241694134}
- component: {fileID: 2959214803241694130}
m_Layer: 5
m_Name: posOffsetXField
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2959214803241694089
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214803241694088}
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: 2959214802659385801}
m_Father: {fileID: 2959214802706661728}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 110, y: 0}
m_SizeDelta: {x: 60, y: 30}
m_Pivot: {x: 0, y: 1}
--- !u!222 &2959214803241694133
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214803241694088}
m_CullTransparentMesh: 0
--- !u!114 &2959214803241694132
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214803241694088}
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!114 &2959214803241694135
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214803241694088}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 0
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: 2959214803241694132}
m_TextComponent: {fileID: 2959214802659385846}
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: 0}
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_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.000
m_CaretBlinkRate: 0.85
m_CaretWidth: 1
m_ReadOnly: 0
m_ShouldActivateOnSelect: 1
--- !u!114 &2959214803241694134
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214803241694088}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1f3886223a697384abc8109a51c855e2, type: 3}
m_Name:
m_EditorClassIdentifier:
valiationType: 2
--- !u!114 &2959214803241694130
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214803241694088}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 92068b39ed172084296a595f5a09e54b, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &2959214803289300821
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2959214803289300818}
- component: {fileID: 2959214803289300816}
- component: {fileID: 2959214803289300819}
m_Layer: 5
m_Name: Label
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2959214803289300818
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214803289300821}
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: 2959214802706661728}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 10, y: 0}
m_SizeDelta: {x: 90, y: 30}
m_Pivot: {x: 0, y: 1}
--- !u!222 &2959214803289300816
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214803289300821}
m_CullTransparentMesh: 0
--- !u!114 &2959214803289300819
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214803289300821}
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: 1, g: 1, b: 1, 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: Label
--- !u!1 &2959214803873671156
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2959214803873671157}
- component: {fileID: 2959214803873671155}
- component: {fileID: 2959214803873671154}
m_Layer: 5
m_Name: Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2959214803873671157
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214803873671156}
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: 2959214801869174167}
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!222 &2959214803873671155
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214803873671156}
m_CullTransparentMesh: 0
--- !u!114 &2959214803873671154
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2959214803873671156}
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: 0
m_AlignByGeometry: 0
m_RichText: 0
m_HorizontalOverflow: 1
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: 0.000

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 5e55dd63d3d4ece48ad5e588c55d5602
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -481,180 +481,6 @@ MonoBehaviour:
lastFlipX: 0
lastFlipY: 0
editorCache: []
--- !u!1 &5655091321662588893
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 366978152691480472}
- component: {fileID: 7367385255154626542}
- component: {fileID: 4321381840095243507}
- component: {fileID: 6499847047946158724}
- component: {fileID: 3259083001588921112}
m_Layer: 0
m_Name: ActorSexToy
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!4 &366978152691480472
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5655091321662588893}
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: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &7367385255154626542
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5655091321662588893}
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: 2
m_Sprite: {fileID: 21300000, guid: c8db866783ad2a3498006437fd914bc4, 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 &4321381840095243507
PolygonCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5655091321662588893}
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.5058824, y: 1.5058824}
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 &6499847047946158724
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5655091321662588893}
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 &3259083001588921112
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5655091321662588893}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b23e33f312d52c642b86f5f2138f4030, type: 3}
m_Name:
m_EditorClassIdentifier:
bodyPartRenderer: {fileID: 7367385255154626542}
parent: {fileID: -4411442180840688308}
bodyPart: dildo
--- !u!1 &7929422519883802246
GameObject:
m_ObjectHideFlags: 0
@ -1038,3 +864,114 @@ 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}

View file

@ -0,0 +1,176 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &3972152003096792844
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8967445332558757705}
- component: {fileID: 2259458396607883071}
- component: {fileID: 4800170110735377442}
- component: {fileID: 2544842580858030677}
- component: {fileID: 6079743031150361545}
m_Layer: 0
m_Name: ActorSexToy
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!4 &8967445332558757705
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3972152003096792844}
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: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &2259458396607883071
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3972152003096792844}
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: 2
m_Sprite: {fileID: 0}
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: 0
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!60 &4800170110735377442
PolygonCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3972152003096792844}
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.5058824, y: 1.5058824}
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 &2544842580858030677
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3972152003096792844}
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 &6079743031150361545
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3972152003096792844}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b23e33f312d52c642b86f5f2138f4030, type: 3}
m_Name:
m_EditorClassIdentifier:
bodyPartRenderer: {fileID: 2259458396607883071}
parent: {fileID: 0}
bodyPart: dildo

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: ffbd7531e8f98f94dba0fddefcae2441
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 473 B

After

Width:  |  Height:  |  Size: 2.6 KiB

Before After
Before After

View file

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 7aa731da3144dfa43b36c2e79b76a763
guid: 6dc4b8e8006e2c049be7c1849ad84c39
TextureImporter:
internalIDToNameTable: []
externalObjects: {}

File diff suppressed because it is too large Load diff

View file

@ -18,6 +18,12 @@ namespace RimWorldAnimationStudio
public float? scale;
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
[XmlIgnore] public string AddonName
{

View file

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace RimWorldAnimationStudio
{
public class ActorAddonDef
{
public string addonName;
public string label;
public float scale = 1f;
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 6d836663c2196924eab4a00f4f4ceb3d
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -13,6 +13,12 @@ namespace RimWorldAnimationStudio
public float? posZ;
public float? rotation;
// Data serialization control
public bool ShouldSerializeposX() { return posX.HasValue; }
public bool ShouldSerializeposZ() { return posZ.HasValue; }
public bool ShouldSerializerotation() { return rotation.HasValue; }
// Data helper functions
[XmlIgnore] public string AddonName
{

View file

@ -72,6 +72,10 @@ 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();
@ -347,10 +351,6 @@ namespace RimWorldAnimationStudio
{
keyframe.OnPostLoad();
}
AddActorAddon("left hand", 0.667f);
AddActorAddon("right hand", 0.667f);
AddActorAddon("dildo");
}
}
}

View file

@ -21,6 +21,17 @@ namespace RimWorldAnimationStudio
public static int minAnimationClipLength = 5;
public static int maxAnimationClipLength = 9999;
// Lists
public static Dictionary<string, string> bodyPartAnchorNames = new Dictionary<string, string>()
{
{ "none", "None" },
{ "torso", "Torso"},
{ "head", "Head"},
{ "groin", "Groin"},
{ "left breast", "Breast (left)"},
{ "right breast", "Breast (right)"},
};
// Colors used
public static Color ColorWhite = new Color(1f, 1f, 1f);
public static Color ColorGreen = new Color(0f, 1f, 0f);

View file

@ -0,0 +1,30 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace RimWorldAnimationStudio
{
public static class ActorAddonDefs
{
public static List<ActorAddonDef> allDefs = new List<ActorAddonDef>();
public static ActorAddonDef GetNamed(string addonName)
{
return allDefs.FirstOrDefault(x => x.addonName == addonName);
}
public static void AddDef(ActorAddonDef actorAddonDef)
{
if (allDefs.Any(x => x.addonName == actorAddonDef.addonName)) return;
allDefs.Add(actorAddonDef);
}
public static void OnLoad()
{
}
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 9fc7248e80b340a42a688378a9cc2296
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -99,7 +99,7 @@ namespace RimWorldAnimationStudio
dragDelta = Vector3.zero;
}
public ActorBodyPart GetBodyPart(string bodyPart)
public ActorBodyPart GetActorBodyPart(string bodyPart)
{
return GetComponentsInChildren<ActorBodyPart>(true)?.FirstOrDefault(x => x.bodyPart.ToLower() == bodyPart);
}

View file

@ -64,6 +64,7 @@ namespace RimWorldAnimationStudio
PawnKeyframe keyframe = Workspace.GetCurrentPawnKeyframe(true);
Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
mousePosition = new Vector3(mousePosition.x, mousePosition.y, 0f);
if (dragDelta == Vector3.zero)
{ dragDelta = mousePosition - transform.position; }
@ -114,8 +115,8 @@ namespace RimWorldAnimationStudio
if (Workspace.actorManipulationMode == ActorManipulationMode.Pan)
{
ActorBody anchoringActorBody = AnimationController.Instance.actorBodies.GetComponentsInChildren<ActorBody>()?.FirstOrDefault(x => x.actorID == addon.AnchoringActor);
Vector3 anchor = PawnUtility.GetBodyPartAnchor(anchoringActorBody, addon.addonName);
transform.position = new Vector3(mousePosition.x, mousePosition.y, 0f);
Vector3 anchor = PawnUtility.GetBodyPartAnchor(anchoringActorBody, addon.anchorName);
transform.position = mousePosition - dragDelta;
addonKeyframe.PosX = transform.position.x - anchor.x;
addonKeyframe.PosZ = transform.position.y - anchor.y;

View file

@ -0,0 +1,19 @@
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.UI;
namespace RimWorldAnimationStudio
{
public class AddonAnchorDropdown : MonoBehaviour
{
private void Start()
{
Dropdown dropdown = GetComponent<Dropdown>();
dropdown.ClearOptions();
dropdown.AddOptions(Constants.bodyPartAnchorNames.Values.ToList());
}
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 6a0ca236433ad584998f9c7a96dc3af8
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -34,6 +34,12 @@ namespace RimWorldAnimationStudio
UpdateGUI();
}
public void ClearKeyframeSliders()
{
foreach (KeyframeSlider slider in GetComponentsInChildren<KeyframeSlider>())
{ Destroy(slider.gameObject); }
}
public void UpdateGUI()
{
if (actorID < 0) return;
@ -43,8 +49,7 @@ namespace RimWorldAnimationStudio
clip.BuildSimpleCurves();
foreach (KeyframeSlider slider in GetComponentsInChildren<KeyframeSlider>())
{ RemovePawnKeyFrame(slider.keyframeID); }
ClearKeyframeSliders();
foreach (PawnKeyframe keyframe in clip.Keyframes)
{ AddPawnKeyFrame(keyframe.keyframeID); }

View file

@ -0,0 +1,100 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UnityEngine;
using UnityEngine.UI;
namespace RimWorldAnimationStudio
{
public class ActorAddonCard : MonoBehaviour
{
public string addonName;
public Text label;
public Toggle toggle;
public Dropdown anchorDropdown;
public InputField anchoringPawnField;
public Dropdown layerDropdown;
public ActorAddonKeyframeCard actorAddonKeyframeCard;
private ActorAddonDef actorAddonDef;
private PawnAnimationClip clip { get { return Workspace.GetCurrentPawnAnimationClip(); } }
private void Start()
{
}
public void Initialize(ActorAddonDef actorAddonDef, ActorAddonKeyframeCard actorAddonKeyframeCard)
{
this.actorAddonDef = actorAddonDef;
this.actorAddonKeyframeCard = actorAddonKeyframeCard;
addonName = actorAddonDef.addonName;
label.text = actorAddonDef.label;
EventsManager.onAnimationChanged.AddListener(delegate { UpdateGUI(); });
EventsManager.onActorIDChanged.AddListener(delegate { UpdateGUI(); });
UpdateGUI();
}
public void UpdateGUI()
{
if (Workspace.animationDef == null || string.IsNullOrEmpty(addonName)) return;
if (clip?.GetActorAddon(addonName) != null)
{
int i = Constants.bodyPartAnchorNames.Keys.ToList().IndexOf(clip.GetActorAddon(addonName).AnchorName);
anchorDropdown.SetValueWithoutNotify(i);
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));
}
}
public void OnToggleChanged()
{
if (clip?.GetActorAddon(addonName) != null)
{ clip.GetActorAddon(addonName).render = toggle.isOn; }
EventsManager.OnPawnKeyframeChanged(null);
UpdateGUI();
}
public void OnAnchorChanged()
{
if (clip?.GetActorAddon(addonName) != null)
{ clip.GetActorAddon(addonName).AnchorName = Constants.bodyPartAnchorNames.Keys.ElementAt(anchorDropdown.value); }
UpdateGUI();
}
public void OnLayerChanged()
{
if (clip?.GetActorAddon(addonName) != null)
{ clip.GetActorAddon(addonName).Layer = layerDropdown.options[layerDropdown.value].text; }
UpdateGUI();
}
public void OnAnchoringPawnChanged()
{
if (clip?.GetActorAddon(addonName) != null)
{
int i = int.Parse(anchoringPawnField.text);
if (i < 0) { i = clip.GetOwningActorID(); }
i = Mathf.Clamp(i, 0, Workspace.animationDef.Actors.Count - 1);
clip.GetActorAddon(addonName).AnchoringActor = i;
anchoringPawnField.SetTextWithoutNotify(i.ToString());
}
UpdateGUI();
}
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 919aed3c4b9671c4e8dc109c7d608683
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -11,16 +11,30 @@ namespace RimWorldAnimationStudio
public class ActorAddonKeyframeCard : MonoBehaviour
{
public string addonName;
public Text label;
public InputField xOffsetField;
public InputField zOffsetField;
public InputField rotationField;
private ActorAddonDef actorAddonDef;
public void Start()
{
}
public void Initialize(ActorAddonDef actorAddonDef)
{
this.actorAddonDef = actorAddonDef;
this.addonName = actorAddonDef.addonName;
label.text = actorAddonDef.label + ":";
EventsManager.onAnimationChanged.AddListener(delegate { UpdateGUI(); });
EventsManager.onStageIDChanged.AddListener(delegate { UpdateGUI(); });
EventsManager.onActorIDChanged.AddListener(delegate { UpdateGUI(); });
EventsManager.onStageTickChanged.AddListener(delegate { Debug.Log("stagetick"); UpdateGUI(); });
EventsManager.onActorIDChanged.AddListener(delegate { UpdateGUI(); });
EventsManager.onStageTickChanged.AddListener(delegate { UpdateGUI(); });
EventsManager.onPawnKeyframeChanged.AddListener(delegate { UpdateGUI(); });
xOffsetField.onEndEdit.AddListener(delegate { OnValueChanged(); });
zOffsetField.onEndEdit.AddListener(delegate { OnValueChanged(); });
@ -38,17 +52,20 @@ namespace RimWorldAnimationStudio
keyframe.GetAddonKeyframe(addonName).Rotation = float.Parse(rotationField.text);
Workspace.GetCurrentPawnAnimationClip().BuildSimpleCurves();
Workspace.RecordEvent("Actor addon position / orientation");
UpdateGUI();
}
public void UpdateGUI()
{
PawnAnimationClip clip = Workspace.GetCurrentPawnAnimationClip();
xOffsetField.SetTextWithoutNotify(clip.GetActorAddon(addonName).PosX.Evaluate((float)Workspace.StageTick / Workspace.StageWindowSize).ToString());
zOffsetField.SetTextWithoutNotify(clip.GetActorAddon(addonName).PosZ.Evaluate((float)Workspace.StageTick / Workspace.StageWindowSize).ToString());
rotationField.SetTextWithoutNotify(clip.GetActorAddon(addonName).Rotation.Evaluate((float)Workspace.StageTick / Workspace.StageWindowSize).ToString());
xOffsetField.SetTextWithoutNotify(string.Format("{0:0.000}", clip.GetActorAddon(addonName).PosX.Evaluate((float)Workspace.StageTick / Workspace.StageWindowSize)));
zOffsetField.SetTextWithoutNotify(string.Format("{0:0.000}", clip.GetActorAddon(addonName).PosZ.Evaluate((float)Workspace.StageTick / Workspace.StageWindowSize)));
rotationField.SetTextWithoutNotify(string.Format("{0:0.000}", clip.GetActorAddon(addonName).Rotation.Evaluate((float)Workspace.StageTick / Workspace.StageWindowSize)));
gameObject.SetActive(clip.GetActorAddon(addonName).render == true);
}
}
}

View file

@ -7,7 +7,7 @@ using UnityEngine.UI;
namespace RimWorldAnimationStudio
{
public class ActorKeyframeCard : Singleton<ActorKeyframeCard>
{
{
public InputField positionXField;
public InputField positionZField;
public InputField rotationField;
@ -15,6 +15,14 @@ namespace RimWorldAnimationStudio
public InputField headRotationField;
public InputField appendageRotationField;
public ActorAddonCard actorAddonCardPrefab;
public ActorAddonKeyframeCard actorAddonKeyframeCardPrefab;
public Transform actorAddonCards;
public Transform actorKeyframeCards;
public SelectActorAddonsDialog selectActorAddonsDialog;
private Actor actor { get { return Workspace.GetCurrentActor(); } }
private void Start()
@ -33,6 +41,17 @@ namespace RimWorldAnimationStudio
headRotationField.onEndEdit.AddListener(delegate { OnValueChanged(); });
appendageRotationField.onEndEdit.AddListener(delegate { OnValueChanged(); });
foreach (ActorAddonDef actorAddonDef in ActorAddonDefs.allDefs)
{
ActorAddonKeyframeCard actorAddonKeyframeCard = Instantiate(actorAddonKeyframeCardPrefab, actorKeyframeCards);
actorAddonKeyframeCard.Initialize(actorAddonDef);
ActorAddonCard actorAddonCard = Instantiate(actorAddonCardPrefab, actorAddonCards);
actorAddonCard.Initialize(actorAddonDef, actorAddonKeyframeCard);
selectActorAddonsDialog.AddActorAddonCard(actorAddonCard);
}
UpdateGUI();
}

View file

@ -13,7 +13,7 @@ namespace RimWorldAnimationStudio
{
public List<GameObject> cloneObjects;
public void OnEnable()
protected virtual void OnEnable()
{
Initialize();
}

View file

@ -17,6 +17,14 @@ namespace RimWorldAnimationStudio
public Toggle isHumanoidToggle;
public InputField scaleField;
protected override void OnEnable()
{
raceSelectDropdown.ClearOptions();
raceSelectDropdown.AddOptions(PawnRaceDefs.allDefs.Select(x => x.defName).ToList());
base.OnEnable();
}
public override void Initialize(bool addedNewTag = false)
{
Reset();
@ -78,12 +86,12 @@ namespace RimWorldAnimationStudio
AddCloneObjectToParent(raceSettingsWindow, 3);
}
scaleField.text = string.Format("{0:0.000}", pawnRaceDef.scale.ToString());
scaleField.text = string.Format("{0:0.000}", pawnRaceDef.scale);
}
public void Reset()
{
RemoveCloneObjectsFromParent(raceSettingsWindow);
RemoveCloneObjectsFromParent(raceSettingsWindow);
}
public void SetIsHumanoid()
@ -134,7 +142,9 @@ namespace RimWorldAnimationStudio
if (pawnRaceDef == null) return;
float scale = float.Parse(scaleField.text);
pawnRaceDef.scale = Mathf.Clamp(scale, 0.05f, 100f);
pawnRaceDef.scale = Mathf.Clamp(scale, 0.01f, 100f);
scaleField.text = string.Format("{0:0.000}", pawnRaceDef.scale);
}
}
}

View file

@ -10,204 +10,11 @@ namespace RimWorldAnimationStudio
{
public class SelectActorAddonsDialog : DialogBox
{
public class AddonDef
private List<ActorAddonCard> actorAddonCards = new List<ActorAddonCard>();
public void AddActorAddonCard(ActorAddonCard actorAddonCard)
{
public string addonName;
public Toggle toggle;
public Dropdown anchor;
public InputField anchoringPawn;
public Dropdown layer;
public GameObject controls;
public AddonDef(string addonName, Toggle toggle, Dropdown anchor, InputField anchoringPawn, Dropdown layer, GameObject controls)
{
this.addonName = addonName;
this.toggle = toggle;
this.anchor = anchor;
this.anchoringPawn = anchoringPawn;
this.layer = layer;
this.controls = controls;
}
}
private List<AddonDef> addonDefs = new List<AddonDef>();
public Toggle handLeftToggle;
public Toggle handRightToggle;
public Toggle sexToyToggle;
public Dropdown handLeftAnchor;
public Dropdown handRightAnchor;
public Dropdown sexToyAnchor;
public InputField handLeftAnchoringPawn;
public InputField handRightAnchoringPawn;
public InputField sexToyAnchoringPawn;
public Dropdown handLeftLayer;
public Dropdown handRightLayer;
public Dropdown sexToyLayer;
public GameObject handLeftControls;
public GameObject handRightControls;
public GameObject sexToyControls;
private PawnAnimationClip clip { get { return Workspace.GetCurrentPawnAnimationClip(); } }
private void Start()
{
EventsManager.onAnimationChanged.AddListener(delegate { UpdateGUI(); });
EventsManager.onActorIDChanged.AddListener(delegate { UpdateGUI(); });
InitializeAddonDefs();
UpdateGUI();
}
// temp code
public void InitializeAddonDefs()
{
if (addonDefs.NotNullOrEmpty()) return;
addonDefs.Add(new AddonDef("left hand", handLeftToggle, handLeftAnchor, handLeftAnchoringPawn, handLeftLayer, handLeftControls));
addonDefs.Add(new AddonDef("right hand", handRightToggle, handRightAnchor, handRightAnchoringPawn, handRightLayer, handRightControls));
addonDefs.Add(new AddonDef("dildo", sexToyToggle, sexToyAnchor, sexToyAnchoringPawn, sexToyLayer, sexToyControls));
}
public override void Initialize(bool addedNewTag = false)
{
InitializeAddonDefs();
}
public void UpdateGUI()
{
if (Workspace.animationDef == null) return;
Debug.Log("Actor: " + clip.GetOwningActorID());
foreach (AddonDef addonDef in addonDefs)
{
if (clip?.GetActorAddon(addonDef.addonName) != null)
{
switch (clip.GetActorAddon(addonDef.addonName).AnchorName)
{
case "torso": addonDef.anchor.SetValueWithoutNotify(1); break;
case "head": addonDef.anchor.SetValueWithoutNotify(2); break;
case "groin": addonDef.anchor.SetValueWithoutNotify(3); break;
case "left breast": addonDef.anchor.SetValueWithoutNotify(4); break;
case "right breast": addonDef.anchor.SetValueWithoutNotify(5); break;
default: addonDef.anchor.SetValueWithoutNotify(0); break;
}
addonDef.layer.SetValueWithoutNotify(addonDef.layer.options.IndexOf(addonDef.layer.options.First(x => x.text == clip.GetActorAddon(addonDef.addonName).Layer)));
addonDef.anchoringPawn.SetTextWithoutNotify(clip.GetActorAddon(addonDef.addonName).AnchoringActor.ToString());
addonDef.toggle.SetIsOnWithoutNotify(clip.IsActorAddonVisible(addonDef.addonName));
}
}
}
public void OnToggleChanged()
{
clip.ShowOrHideActorAddon("left hand", handLeftToggle.isOn);
clip.ShowOrHideActorAddon("right hand", handRightToggle.isOn);
clip.ShowOrHideActorAddon("dildo", sexToyToggle.isOn);
UpdateGUI();
}
public void OnValueChanged()
{
if (clip?.GetActorAddon("left hand") != null)
{
switch (handLeftAnchor.value)
{
case 1: clip.GetActorAddon("left hand").AnchorName = "torso"; break;
case 2: clip.GetActorAddon("left hand").AnchorName = "head"; break;
case 3: clip.GetActorAddon("left hand").AnchorName = "groin"; break;
case 4: clip.GetActorAddon("left hand").AnchorName = "left breast"; break;
case 5: clip.GetActorAddon("left hand").AnchorName = "right breast"; break;
default: clip.GetActorAddon("left hand").AnchorName = null; break;
}
}
if (clip?.GetActorAddon("right hand") != null)
{
switch (handRightAnchor.value)
{
case 1: clip.GetActorAddon("right hand").AnchorName = "torso"; break;
case 2: clip.GetActorAddon("right hand").AnchorName = "head"; break;
case 3: clip.GetActorAddon("right hand").AnchorName = "groin"; break;
case 4: clip.GetActorAddon("right hand").AnchorName = "left breast"; break;
case 5: clip.GetActorAddon("right hand").AnchorName = "right breast"; break;
default: clip.GetActorAddon("right hand").AnchorName = null; break;
}
}
if (clip?.GetActorAddon("dildo") != null)
{
switch (sexToyAnchor.value)
{
case 1: clip.GetActorAddon("dildo").AnchorName = "torso"; break;
case 2: clip.GetActorAddon("dildo").AnchorName = "head"; break;
case 3: clip.GetActorAddon("dildo").AnchorName = "groin"; break;
case 4: clip.GetActorAddon("dildo").AnchorName = "left breast"; break;
case 5: clip.GetActorAddon("dildo").AnchorName = "right breast"; break;
default: clip.GetActorAddon("dildo").AnchorName = null; break;
}
}
UpdateGUI();
}
public void OnLayerChanged()
{
if (clip?.GetActorAddon("left hand") != null)
{ clip.GetActorAddon("left hand").Layer = handLeftLayer.options[handLeftLayer.value].text; }
if (clip?.GetActorAddon("right hand") != null)
{ clip.GetActorAddon("right hand").Layer = handRightLayer.options[handRightLayer.value].text; }
if (clip?.GetActorAddon("dildo") != null)
{ clip.GetActorAddon("dildo").Layer = sexToyLayer.options[sexToyLayer.value].text; }
UpdateGUI();
}
public void OnAnchoringPawnChanged()
{
if (clip?.GetActorAddon("left hand") != null)
{
int i = int.Parse(handLeftAnchoringPawn.text);
if (i < 0) { i = clip.GetOwningActorID(); }
i = Mathf.Clamp(i, 0, Workspace.animationDef.Actors.Count - 1);
clip.GetActorAddon("left hand").AnchoringActor = i;
handLeftAnchoringPawn.SetTextWithoutNotify(i.ToString());
}
if (clip?.GetActorAddon("right hand") != null)
{
int i = int.Parse(handRightAnchoringPawn.text);
if (i < 0) { i = clip.GetOwningActorID(); }
i = Mathf.Clamp(i, 0, Workspace.animationDef.Actors.Count - 1);
clip.GetActorAddon("right hand").AnchoringActor = i;
handRightAnchoringPawn.SetTextWithoutNotify(i.ToString());
}
if (clip?.GetActorAddon("dildo") != null)
{
int i = int.Parse(sexToyAnchoringPawn.text);
if (i < 0) { i = clip.GetOwningActorID(); }
i = Mathf.Clamp(i, 0, Workspace.animationDef.Actors.Count - 1);
clip.GetActorAddon("dildo").AnchoringActor = i;
sexToyAnchoringPawn.SetTextWithoutNotify(i.ToString());
}
UpdateGUI();
actorAddonCards.Add(actorAddonCard);
}
}
}

View file

@ -66,6 +66,8 @@ namespace RimWorldAnimationStudio
for (int i = 0; i < Mathf.Max(requiredGhosts, currentGhostCount); i++)
{
if (clip == null || keyframe == null) continue;
int targetTick = (int)(i * clip.duration + keyframe.atTick);
if (ghostSliders.childCount <= i)

View file

@ -14,6 +14,10 @@ namespace RimWorldAnimationStudio
public SingleGraphic eastGraphic = new SingleGraphic();
public SingleGraphic southGraphic = new SingleGraphic();
public bool ShouldSerializenorthGraphic() { return string.IsNullOrEmpty(northGraphic.path) == false; }
public bool ShouldSerializeeastGraphic() { return string.IsNullOrEmpty(eastGraphic.path) == false; }
public bool ShouldSerializesouthGraphic() { return string.IsNullOrEmpty(southGraphic.path) == false; }
public MultiDirectionalGraphic() { }
public MultiDirectionalGraphic(string bodyType)

View file

@ -10,7 +10,7 @@ namespace RimWorldAnimationStudio
[Serializable]
public class SingleGraphic
{
public string path = "Invalid file path";
public string path;
[XmlIgnore] public Sprite sprite = null;
public void SetPath(string path)
@ -43,7 +43,9 @@ namespace RimWorldAnimationStudio
Texture2D texture = new Texture2D(2, 2);
texture.LoadImage(pngBytes);
Sprite sprite = Sprite.Create(texture, new Rect(0.0f, 0.0f, texture.width, texture.height), new Vector2(0.5f, 0.5f), 85.0f);
float scale = Mathf.Min(texture.width, texture.height) / 128f;
Sprite 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;
}

View file

@ -143,7 +143,7 @@ namespace RimWorldAnimationStudio
actorBody.bodyRenderer.gameObject.SetActive(actorBody.bodyRenderer.sprite != null);
// Head
actorBodypart = actorBody.GetBodyPart("head");
actorBodypart = actorBody.GetActorBodyPart("head");
actorBodypart.transform.localPosition = headPos;
actorBodypart.transform.eulerAngles = new Vector3(0, 0, -headAngle);
@ -156,13 +156,13 @@ namespace RimWorldAnimationStudio
actorBodypart.gameObject.SetActive(actorBodypart.bodyPartRenderer.sprite != null);
// Appendage
actorBodypart = actorBody.GetBodyPart("appendage");
actorBodypart = actorBody.GetActorBodyPart("appendage");
actorBodypart.transform.localPosition = new Vector3(appendagePos.x, appendagePos.z, 0f);
actorBodypart.transform.eulerAngles = new Vector3(0, 0, -genitalAngle);
actorBodypart.bodyPartRenderer.sortingLayerName = clip.Layer;
actorBodypart.bodyPartRenderer.sprite = requiresGenitals && pawnRaceDef.isHumanoid && bodyFacing != 0 ? Resources.Load<Sprite>("Textures/Humanlike/Appendages/Appendage" + bodyFacing) : null;
actorBodypart.bodyPartRenderer.sprite = requiresGenitals && pawnRaceDef.isHumanoid ? Resources.Load<Sprite>("Textures/Humanlike/Appendages/Appendage" + bodyFacing) : null;
//actorBody.appendageRenderer.flipX = bodyFacing == 3;
actorBodypart.gameObject.SetActive(actorBodypart.bodyPartRenderer.sprite != null);
@ -170,10 +170,11 @@ namespace RimWorldAnimationStudio
// Add-ons
foreach (ActorAddon addon in clip.Addons)
{
actorBodypart = actorBody.GetBodyPart(addon.AddonName);
actorBodypart = actorBody.GetActorBodyPart(addon.AddonName);
if (actorBodypart == null) continue;
ActorBody anchoringActorBody = actorBodies.GetComponentsInChildren<ActorBody>()?.FirstOrDefault(x => x.actorID == addon.AnchoringActor);
Vector3 anchor = PawnUtility.GetBodyPartAnchor(anchoringActorBody, addon.addonName);
Vector3 anchor = PawnUtility.GetBodyPartAnchor(anchoringActorBody, addon.anchorName);
actorBodypart.transform.position = anchor + new Vector3(addon.PosX.Evaluate(clipPercent), addon.PosZ.Evaluate(clipPercent), 0);
actorBodypart.transform.eulerAngles = new Vector3(0, 0, -addon.Rotation.Evaluate(clipPercent));

View file

@ -16,9 +16,10 @@ namespace RimWorldAnimationStudio
public DialogBox newAnimationDialog;
public SelectAnimationDialog selectAnimationDialog;
public void Start()
public void Awake()
{
LoadPawnRaceDefs();
LoadActorAddonDefs();
LoadCustomArrays();
}
@ -40,7 +41,7 @@ namespace RimWorldAnimationStudio
if (paths == null || paths.Any() == false)
{ Debug.LogWarning("Selected file was null or invalid"); return; }
AnimationDefs defs = null;
AnimationDefs defs = XmlUtility.ReadXML<AnimationDefs>(paths[0]);
try
{ defs = XmlUtility.ReadXML<AnimationDefs>(paths[0]); }
@ -248,10 +249,9 @@ namespace RimWorldAnimationStudio
else
{ path = Path.Combine(Application.streamingAssetsPath, "pawnRaceDefs.xml"); }
if (File.Exists(path) == false)
{ SavePawnRaceDefs(); return; }
PawnRaceDefs.allDefs = XmlUtility.ReadXML<List<PawnRaceDef>>(path);
SavePawnRaceDefs();
PawnRaceDefs.OnLoad();
}
@ -261,5 +261,26 @@ namespace RimWorldAnimationStudio
XmlUtility.WriteXML(PawnRaceDefs.allDefs, path);
}
public void LoadActorAddonDefs()
{
string path;
if (File.Exists(Path.Combine(Application.persistentDataPath, "actorAddonDefs.xml")))
{ path = Path.Combine(Application.persistentDataPath, "actorAddonDefs.xml"); }
else
{ path = Path.Combine(Application.streamingAssetsPath, "actorAddonDefs.xml"); }
ActorAddonDefs.allDefs = XmlUtility.ReadXML<List<ActorAddonDef>>(path);
SaveActorAddonDefs();
ActorAddonDefs.OnLoad();
}
public void SaveActorAddonDefs()
{
}
}
}

View file

@ -0,0 +1,22 @@
<?xml version="1.0"?>
<ArrayOfActorAddonDef>
<ActorAddonDef>
<addonName>left hand</addonName>
<label>Hand (left)</label>
<scale>0.6667</scale>
</ActorAddonDef>
<ActorAddonDef>
<addonName>right hand</addonName>
<label>Hand (right)</label>
<scale>0.6667</scale>
</ActorAddonDef>
<ActorAddonDef>
<addonName>dildo</addonName>
<label>Sex toy</label>
<scale>1</scale>
</ActorAddonDef>
</ArrayOfActorAddonDef>

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 2cec9024b3a0ea747856565d6918958c
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -94,7 +94,7 @@
<PawnRaceDef>
<defName>Wolf_Timber</defName>
<isHumanoid>false</isHumanoid>
<scale>1.3333</scale>
<scale>1.3</scale>
<bodyTypeGraphics>
<MultiDirectionalGraphic>
<bodyType>None</bodyType>
@ -149,7 +149,7 @@
<PawnRaceDef>
<defName>Horse</defName>
<isHumanoid>false</isHumanoid>
<scale>0.70</scale>
<scale>1.3667</scale>
<bodyTypeGraphics>
<MultiDirectionalGraphic>
<bodyType>Male</bodyType>