diff --git a/Assets/Plugins/Starpelly/Extensions.cs b/Assets/Plugins/Starpelly/Extensions.cs new file mode 100644 index 000000000..bee2c9304 --- /dev/null +++ b/Assets/Plugins/Starpelly/Extensions.cs @@ -0,0 +1,18 @@ +using System; +using System.IO; +using System.Runtime.Serialization.Formatters.Binary; + +public static class Extensions +{ + public static T DeepClone(this T obj) + { + using (MemoryStream stream = new MemoryStream()) + { + BinaryFormatter formatter = new BinaryFormatter(); + formatter.Serialize(stream, obj); + stream.Position = 0; + + return (T)formatter.Deserialize(stream); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/Starpelly/Extensions.cs.meta b/Assets/Plugins/Starpelly/Extensions.cs.meta new file mode 100644 index 000000000..01c4d9a04 --- /dev/null +++ b/Assets/Plugins/Starpelly/Extensions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 98be75cbdf7662d43bf84e7f1ac7d58e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Editor/ui/redo.png b/Assets/Resources/Sprites/Editor/ui/redo.png new file mode 100644 index 000000000..18450b3bc Binary files /dev/null and b/Assets/Resources/Sprites/Editor/ui/redo.png differ diff --git a/Assets/Resources/Sprites/Editor/ui/redo.png.meta b/Assets/Resources/Sprites/Editor/ui/redo.png.meta new file mode 100644 index 000000000..097c235a4 --- /dev/null +++ b/Assets/Resources/Sprites/Editor/ui/redo.png.meta @@ -0,0 +1,96 @@ +fileFormatVersion: 2 +guid: 0c2c8bed0306b7d408a268884c6af79b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Editor/ui/undo.png b/Assets/Resources/Sprites/Editor/ui/undo.png new file mode 100644 index 000000000..e5ea5b627 Binary files /dev/null and b/Assets/Resources/Sprites/Editor/ui/undo.png differ diff --git a/Assets/Resources/Sprites/Editor/ui/undo.png.meta b/Assets/Resources/Sprites/Editor/ui/undo.png.meta new file mode 100644 index 000000000..cb400c51f --- /dev/null +++ b/Assets/Resources/Sprites/Editor/ui/undo.png.meta @@ -0,0 +1,96 @@ +fileFormatVersion: 2 +guid: 348825b5c77b9d143961119fc008e631 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Editor.unity b/Assets/Scenes/Editor.unity index 0668d4e26..7f3b62863 100644 --- a/Assets/Scenes/Editor.unity +++ b/Assets/Scenes/Editor.unity @@ -899,7 +899,7 @@ GameObject: - component: {fileID: 163092849} - component: {fileID: 163092851} - component: {fileID: 163092850} - m_Layer: 5 + m_Layer: 7 m_Name: 2 m_TagString: Untagged m_Icon: {fileID: 0} @@ -974,7 +974,7 @@ GameObject: - component: {fileID: 163256866} - component: {fileID: 163256868} - component: {fileID: 163256867} - m_Layer: 5 + m_Layer: 7 m_Name: ResizeLeft m_TagString: Untagged m_Icon: {fileID: 0} @@ -1014,7 +1014,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.6156863} - m_RaycastTarget: 1 + m_RaycastTarget: 0 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: @@ -1050,7 +1050,7 @@ GameObject: - component: {fileID: 184364179} - component: {fileID: 184364178} - component: {fileID: 184364177} - m_Layer: 5 + m_Layer: 7 m_Name: ResizeRight m_TagString: Untagged m_Icon: {fileID: 0} @@ -1315,6 +1315,9 @@ RectTransform: - {fileID: 1665554290} - {fileID: 678553525} - {fileID: 903653565} + - {fileID: 839543766} + - {fileID: 1747099762} + - {fileID: 2131880461} m_Father: {fileID: 1791483803} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -1412,7 +1415,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 + m_RaycastTarget: 0 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: @@ -1656,7 +1659,7 @@ GameObject: - component: {fileID: 258006092} - component: {fileID: 258006094} - component: {fileID: 258006093} - m_Layer: 5 + m_Layer: 7 m_Name: EventLabel m_TagString: Untagged m_Icon: {fileID: 0} @@ -1696,7 +1699,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 + m_RaycastTarget: 0 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: @@ -1924,7 +1927,7 @@ GameObject: - component: {fileID: 321288860} - component: {fileID: 321288862} - component: {fileID: 321288861} - m_Layer: 5 + m_Layer: 7 m_Name: Image (3) m_TagString: Untagged m_Icon: {fileID: 0} @@ -2209,6 +2212,49 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 411779173} m_CullTransparentMesh: 1 +--- !u!1 &423099697 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 423099698} + - component: {fileID: 423099699} + m_Layer: 0 + m_Name: CommandManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &423099698 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 423099697} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -3.8390641, y: 1.7596253, z: -0.85742325} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &423099699 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 423099697} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6187911411a100640b5f4f3f2f84b912, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &424396916 GameObject: m_ObjectHideFlags: 0 @@ -2730,7 +2776,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 + m_RaycastTarget: 0 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: @@ -3546,7 +3592,7 @@ GameObject: - component: {fileID: 660967737} - component: {fileID: 660967739} - component: {fileID: 660967738} - m_Layer: 5 + m_Layer: 7 m_Name: Block m_TagString: Untagged m_Icon: {fileID: 0} @@ -3627,7 +3673,7 @@ GameObject: - component: {fileID: 678553527} - component: {fileID: 678553526} m_Layer: 5 - m_Name: SaveBTN + m_Name: Save m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -4353,13 +4399,13 @@ GameObject: - component: {fileID: 798021451} - component: {fileID: 798021452} - component: {fileID: 798021450} - m_Layer: 5 + m_Layer: 7 m_Name: EventObj m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &798021449 RectTransform: m_ObjectHideFlags: 0 @@ -4399,6 +4445,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: eb5481d804b2aec42a04ea8f659fdc5a, type: 3} m_Name: m_EditorClassIdentifier: + lastPos_: {x: 0, y: 0} PosPreview: {fileID: 0} PosPreviewRef: {fileID: 2142375787} Icon: {fileID: 820032006} @@ -4407,12 +4454,22 @@ MonoBehaviour: resizeGraphic: {fileID: 880758902} leftDrag: {fileID: 2046851080} rightDrag: {fileID: 184364176} + entity: + beat: 0 + track: 0 + length: 0 + valA: 0 + type: 0 + datamodel: + eventObj: {fileID: 0} length: 0 selected: 0 mouseHovering: 0 resizable: 0 resizing: 0 moving: 0 + lastMovePos: {x: 0, y: 0} + eventObjID: NormalCol: {r: 0.8470589, g: 0.8470589, b: 1, a: 1} --- !u!222 &798021451 CanvasRenderer: @@ -4478,8 +4535,8 @@ GameObject: - component: {fileID: 820032005} - component: {fileID: 820032007} - component: {fileID: 820032006} - m_Layer: 5 - m_Name: Image + m_Layer: 7 + m_Name: IconGraphic m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -4518,7 +4575,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.46666667} - m_RaycastTarget: 1 + m_RaycastTarget: 0 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: @@ -4542,6 +4599,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 820032004} m_CullTransparentMesh: 1 +--- !u!1 &839543765 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 839543766} + - component: {fileID: 839543768} + - component: {fileID: 839543767} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &839543766 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 839543765} + 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: 202724642} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 122, y: 0} + m_SizeDelta: {x: 2, y: -4} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &839543767 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 839543765} + 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: 0.6226415, g: 0.6226415, b: 0.6226415, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + 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 &839543768 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 839543765} + m_CullTransparentMesh: 1 --- !u!1 &841081095 GameObject: m_ObjectHideFlags: 0 @@ -4626,7 +4758,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 880758902} - m_Layer: 5 + m_Layer: 7 m_Name: ResizeGraphic m_TagString: Untagged m_Icon: {fileID: 0} @@ -4691,7 +4823,7 @@ RectTransform: 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: -432, y: 0} + m_AnchoredPosition: {x: -270, y: 0} m_SizeDelta: {x: 160, y: 35} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &903653566 @@ -4852,7 +4984,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &932211466 GameObject: @@ -5208,7 +5340,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.69803923, g: 0.69803923, b: 0.69803923, a: 1} - m_RaycastTarget: 1 + m_RaycastTarget: 0 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: @@ -5243,7 +5375,7 @@ GameObject: - component: {fileID: 1031646381} - component: {fileID: 1031646383} - component: {fileID: 1031646382} - m_Layer: 5 + m_Layer: 7 m_Name: Image (1) m_TagString: Untagged m_Icon: {fileID: 0} @@ -5561,6 +5693,97 @@ MonoBehaviour: m_EditorClassIdentifier: m_Padding: {x: 0, y: 0, z: 0, w: 0} m_Softness: {x: 0, y: 0} +--- !u!1 &1071942424 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1071942425} + - component: {fileID: 1071942428} + - component: {fileID: 1071942427} + - component: {fileID: 1071942426} + m_Layer: 5 + m_Name: Graphic + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1071942425 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1071942424} + 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: 1747099762} + 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: 0, y: 0} + m_SizeDelta: {x: 35, y: 35} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1071942426 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1071942424} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7b30dd83a12669d4f973ff5a79ca9842, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 0.5} + m_EffectDistance: {x: 2, y: -2} + m_UseGraphicAlpha: 1 +--- !u!114 &1071942427 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1071942424} + 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: 0.7455157, g: 0.4481132, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 348825b5c77b9d143961119fc008e631, type: 3} + m_Type: 0 + 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 &1071942428 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1071942424} + m_CullTransparentMesh: 1 --- !u!1 &1090036109 GameObject: m_ObjectHideFlags: 0 @@ -6420,7 +6643,7 @@ GameObject: m_Component: - component: {fileID: 1231936949} - component: {fileID: 1231936951} - m_Layer: 5 + m_Layer: 7 m_Name: Outline m_TagString: Untagged m_Icon: {fileID: 0} @@ -6469,7 +6692,7 @@ GameObject: - component: {fileID: 1237250188} - component: {fileID: 1237250190} - component: {fileID: 1237250189} - m_Layer: 5 + m_Layer: 7 m_Name: 3 m_TagString: Untagged m_Icon: {fileID: 0} @@ -6900,7 +7123,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 + m_RaycastTarget: 0 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: @@ -7261,6 +7484,97 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1380319272} m_CullTransparentMesh: 1 +--- !u!1 &1412492898 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1412492899} + - component: {fileID: 1412492902} + - component: {fileID: 1412492901} + - component: {fileID: 1412492900} + m_Layer: 5 + m_Name: Graphic + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1412492899 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1412492898} + 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: 2131880461} + 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: 0, y: 0} + m_SizeDelta: {x: 35, y: 35} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1412492900 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1412492898} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7b30dd83a12669d4f973ff5a79ca9842, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 0.5} + m_EffectDistance: {x: 2, y: -2} + m_UseGraphicAlpha: 1 +--- !u!114 &1412492901 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1412492898} + 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: 0.4470588, g: 0.60128987, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 0c2c8bed0306b7d408a268884c6af79b, type: 3} + m_Type: 0 + 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 &1412492902 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1412492898} + m_CullTransparentMesh: 1 --- !u!1 &1423699435 GameObject: m_ObjectHideFlags: 0 @@ -7319,6 +7633,8 @@ MonoBehaviour: NewBTN: {fileID: 1683100750} OpenBTN: {fileID: 1665554291} SaveBTN: {fileID: 678553526} + UndoBTN: {fileID: 1747099763} + RedoBTN: {fileID: 2131880462} --- !u!114 &1423699438 MonoBehaviour: m_ObjectHideFlags: 0 @@ -7331,8 +7647,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: f86858990a87c764892672104bdaef1f, type: 3} m_Name: m_EditorClassIdentifier: - level: {fileID: 4900000, guid: 5e794baa94fb06d4f939aaf032fab5ea, type: 3} - music: {fileID: 8300000, guid: f3b9f9179bad8394a98f617bda265a62, type: 3} + level: {fileID: 4900000, guid: 244c565c8088cfa4597e0ebda9c7de98, type: 3} + music: {fileID: 8300000, guid: e5cf71158cc9bff4a8fbfbca1e73e500, type: 3} debugUI: 0 playOnStart: 0 editor: 1 @@ -7402,7 +7718,7 @@ GameObject: - component: {fileID: 1474986788} - component: {fileID: 1474986790} - component: {fileID: 1474986789} - m_Layer: 5 + m_Layer: 7 m_Name: Image (2) m_TagString: Untagged m_Icon: {fileID: 0} @@ -8067,7 +8383,7 @@ GameObject: - component: {fileID: 1665554292} - component: {fileID: 1665554291} m_Layer: 5 - m_Name: OpenBTN + m_Name: Open m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -8307,7 +8623,7 @@ GameObject: - component: {fileID: 1683100751} - component: {fileID: 1683100750} m_Layer: 5 - m_Name: NewBTN + m_Name: New m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -8426,7 +8742,7 @@ GameObject: - component: {fileID: 1701256165} - component: {fileID: 1701256167} - component: {fileID: 1701256166} - m_Layer: 5 + m_Layer: 7 m_Name: ResizeRight m_TagString: Untagged m_Icon: {fileID: 0} @@ -8466,7 +8782,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.6156863} - m_RaycastTarget: 1 + m_RaycastTarget: 0 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: @@ -8585,6 +8901,139 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1709317942} m_CullTransparentMesh: 1 +--- !u!1 &1747099761 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1747099762} + - component: {fileID: 1747099765} + - component: {fileID: 1747099764} + - component: {fileID: 1747099763} + m_Layer: 5 + m_Name: Undo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1747099762 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1747099761} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.0000798, y: 1.0000798, z: 1.0000798} + m_Children: + - {fileID: 1071942425} + m_Father: {fileID: 202724642} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 128.70001, y: 0} + m_SizeDelta: {x: 35, y: 35} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &1747099763 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1747099761} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_WrapAround: 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.7490196, g: 1, b: 1, 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 + 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: 1747099764} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 423099699} + m_TargetAssemblyTypeName: RhythmHeavenMania.Editor.CommandManager, Assembly-CSharp + m_MethodName: Undo + 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 +--- !u!114 &1747099764 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1747099761} + 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_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 77703dfffd29ca6439338d6adfc62c9b, type: 3} + 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: 10 +--- !u!222 &1747099765 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1747099761} + m_CullTransparentMesh: 1 --- !u!1 &1747224095 GameObject: m_ObjectHideFlags: 0 @@ -8990,7 +9439,7 @@ RectTransform: - {fileID: 1344377689} - {fileID: 1090036110} m_Father: {fileID: 0} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -9008,7 +9457,7 @@ GameObject: - component: {fileID: 1799484112} - component: {fileID: 1799484114} - component: {fileID: 1799484113} - m_Layer: 5 + m_Layer: 7 m_Name: ResizeLine m_TagString: Untagged m_Icon: {fileID: 0} @@ -9048,7 +9497,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.6156863} - m_RaycastTarget: 1 + m_RaycastTarget: 0 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: @@ -9083,7 +9532,7 @@ GameObject: - component: {fileID: 1837496588} - component: {fileID: 1837496590} - component: {fileID: 1837496589} - m_Layer: 5 + m_Layer: 7 m_Name: 4 m_TagString: Untagged m_Icon: {fileID: 0} @@ -9478,7 +9927,7 @@ GameObject: - component: {fileID: 1921041735} - component: {fileID: 1921041737} - component: {fileID: 1921041736} - m_Layer: 5 + m_Layer: 7 m_Name: Image m_TagString: Untagged m_Icon: {fileID: 0} @@ -9628,7 +10077,7 @@ GameObject: - component: {fileID: 1953621882} - component: {fileID: 1953621884} - component: {fileID: 1953621883} - m_Layer: 5 + m_Layer: 7 m_Name: 1 m_TagString: Untagged m_Icon: {fileID: 0} @@ -9971,7 +10420,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.454902, g: 0.454902, b: 0.454902, a: 1} - m_RaycastTarget: 1 + m_RaycastTarget: 0 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: @@ -10007,7 +10456,7 @@ GameObject: - component: {fileID: 2046851082} - component: {fileID: 2046851081} - component: {fileID: 2046851083} - m_Layer: 5 + m_Layer: 7 m_Name: ResizeLeft m_TagString: Untagged m_Icon: {fileID: 0} @@ -10242,7 +10691,7 @@ GameObject: - component: {fileID: 2127582757} - component: {fileID: 2127582759} - component: {fileID: 2127582758} - m_Layer: 5 + m_Layer: 7 m_Name: SelectedGraphic m_TagString: Untagged m_Icon: {fileID: 0} @@ -10282,7 +10731,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.2901961} - m_RaycastTarget: 1 + m_RaycastTarget: 0 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: @@ -10306,6 +10755,139 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2127582756} m_CullTransparentMesh: 1 +--- !u!1 &2131880460 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2131880461} + - component: {fileID: 2131880464} + - component: {fileID: 2131880463} + - component: {fileID: 2131880462} + m_Layer: 5 + m_Name: Redo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2131880461 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2131880460} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.0000798, y: 1.0000798, z: 1.0000798} + m_Children: + - {fileID: 1412492899} + m_Father: {fileID: 202724642} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 168.7, y: 0} + m_SizeDelta: {x: 35, y: 35} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &2131880462 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2131880460} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_WrapAround: 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.7490196, g: 1, b: 1, 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 + 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: 2131880463} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 423099699} + m_TargetAssemblyTypeName: RhythmHeavenMania.Editor.CommandManager, Assembly-CSharp + m_MethodName: Redo + 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 +--- !u!114 &2131880463 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2131880460} + 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_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 77703dfffd29ca6439338d6adfc62c9b, type: 3} + 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: 10 +--- !u!222 &2131880464 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2131880460} + m_CullTransparentMesh: 1 --- !u!1 &2142375786 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/Test.unity b/Assets/Scenes/Test.unity new file mode 100644 index 000000000..edfc89178 --- /dev/null +++ b/Assets/Scenes/Test.unity @@ -0,0 +1,942 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &477918638 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 477918639} + - component: {fileID: 477918642} + - component: {fileID: 477918641} + - component: {fileID: 477918640} + m_Layer: 5 + m_Name: Undo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &477918639 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 477918638} + 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: 823867629} + m_Father: {fileID: 1549258973} + 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: -478.5, y: 310.8} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &477918640 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 477918638} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 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: 477918641} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1408700917} + m_TargetAssemblyTypeName: RhythmHeavenMania.Editor.CommandManager, Assembly-CSharp + m_MethodName: Undo + 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 +--- !u!114 &477918641 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 477918638} + 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_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, 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 &477918642 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 477918638} + m_CullTransparentMesh: 1 +--- !u!1 &520344657 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 520344658} + - component: {fileID: 520344660} + - component: {fileID: 520344659} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &520344658 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 520344657} + 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: 984212318} + 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} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &520344659 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 520344657} + 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_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + 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: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Redo + +' +--- !u!222 &520344660 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 520344657} + m_CullTransparentMesh: 1 +--- !u!1 &593752857 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 593752860} + - component: {fileID: 593752859} + - component: {fileID: 593752858} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &593752858 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 593752857} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &593752859 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 593752857} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &593752860 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 593752857} + 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: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &660085351 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 660085353} + - component: {fileID: 660085352} + m_Layer: 0 + m_Name: Square + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &660085352 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 660085351} + 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_RayTraceProcedural: 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: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 7482667652216324306, guid: 48e93eef0688c4a259cb0eddcd8661f7, 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, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &660085353 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 660085351} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -3.8390641, y: 1.7596253, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &823867628 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 823867629} + - component: {fileID: 823867631} + - component: {fileID: 823867630} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &823867629 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 823867628} + 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: 477918639} + 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} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &823867630 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 823867628} + 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_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + 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: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Undo + +' +--- !u!222 &823867631 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 823867628} + m_CullTransparentMesh: 1 +--- !u!1 &984212317 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 984212318} + - component: {fileID: 984212321} + - component: {fileID: 984212320} + - component: {fileID: 984212319} + m_Layer: 5 + m_Name: Redo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &984212318 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 984212317} + 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: 520344658} + m_Father: {fileID: 1549258973} + 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: -298.8, y: 310.8} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &984212319 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 984212317} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 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: 984212320} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1408700917} + m_TargetAssemblyTypeName: RhythmHeavenMania.Editor.CommandManager, Assembly-CSharp + m_MethodName: Redo + 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 +--- !u!114 &984212320 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 984212317} + 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_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, 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 &984212321 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 984212317} + m_CullTransparentMesh: 1 +--- !u!1 &1408700916 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1408700918} + - component: {fileID: 1408700917} + - component: {fileID: 1408700919} + m_Layer: 0 + m_Name: Test + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1408700917 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1408700916} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6187911411a100640b5f4f3f2f84b912, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &1408700918 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1408700916} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -7.0898438, y: 4.4694767, z: -0.10655786} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1408700919 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1408700916} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 490e729f742a40644a3a2abd88fce1a3, type: 3} + m_Name: + m_EditorClassIdentifier: + test: {fileID: 660085351} +--- !u!1 &1505402500 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1505402503} + - component: {fileID: 1505402502} + - component: {fileID: 1505402501} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &1505402501 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1505402500} + m_Enabled: 1 +--- !u!20 &1505402502 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1505402500} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1505402503 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1505402500} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + 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!1 &1549258969 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1549258973} + - component: {fileID: 1549258972} + - component: {fileID: 1549258971} + - component: {fileID: 1549258970} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1549258970 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1549258969} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1549258971 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1549258969} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1280, y: 720} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!223 &1549258972 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1549258969} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 1 + m_Camera: {fileID: 1505402502} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &1549258973 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1549258969} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 477918639} + - {fileID: 984212318} + m_Father: {fileID: 0} + m_RootOrder: 2 + 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: 0, y: 0} + m_Pivot: {x: 0, y: 0} diff --git a/Assets/Scenes/Test.unity.meta b/Assets/Scenes/Test.unity.meta new file mode 100644 index 000000000..8c9d8dd60 --- /dev/null +++ b/Assets/Scenes/Test.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7f473b35a9dae6345816dc95decb921b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/LevelEditor/Commands.meta b/Assets/Scripts/LevelEditor/Commands.meta new file mode 100644 index 000000000..9a19b87dd --- /dev/null +++ b/Assets/Scripts/LevelEditor/Commands.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a5ceae4229e792d42aa0c1f6ad1e7ef6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/LevelEditor/Commands/CommandManager.cs b/Assets/Scripts/LevelEditor/Commands/CommandManager.cs new file mode 100644 index 000000000..dae1835c3 --- /dev/null +++ b/Assets/Scripts/LevelEditor/Commands/CommandManager.cs @@ -0,0 +1,75 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +using RhythmHeavenMania.Editor.Commands; + +namespace RhythmHeavenMania.Editor +{ + public class CommandManager : MonoBehaviour + { + private Stack historyStack = new Stack(); + private Stack redoHistoryStack = new Stack(); + + int maxItems = 128; + + public bool canUndo() + { + return historyStack.Count > 0; + } + public bool canRedo() + { + return redoHistoryStack.Count > 0; + } + + public static CommandManager instance { get; private set; } + + private void Awake() + { + instance = this; + } + + public void Execute(IAction action) + { + action.Execute(); + historyStack.Push(action); + redoHistoryStack.Clear(); + } + + public void Undo() + { + if (!canUndo()) return; + + if (historyStack.Count > 0) + { + redoHistoryStack.Push(historyStack.Peek()); + historyStack.Pop().Undo(); + } + } + + public void Redo() + { + if (!canRedo()) return; + + if (redoHistoryStack.Count > 0) + { + historyStack.Push(redoHistoryStack.Peek()); + redoHistoryStack.Pop().Redo(); + } + } + + // this is here as to not hog up memory, "max undos" basically + private void EnsureCapacity() + { + if (maxItems > 0) + { + } + } + + private void Clear() + { + historyStack.Clear(); + redoHistoryStack.Clear(); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/LevelEditor/Commands/CommandManager.cs.meta b/Assets/Scripts/LevelEditor/Commands/CommandManager.cs.meta new file mode 100644 index 000000000..d171339b0 --- /dev/null +++ b/Assets/Scripts/LevelEditor/Commands/CommandManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6187911411a100640b5f4f3f2f84b912 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/LevelEditor/Commands/IAction.cs b/Assets/Scripts/LevelEditor/Commands/IAction.cs new file mode 100644 index 000000000..5bc988264 --- /dev/null +++ b/Assets/Scripts/LevelEditor/Commands/IAction.cs @@ -0,0 +1,13 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace RhythmHeavenMania.Editor.Commands +{ + public interface IAction + { + void Execute(); + void Undo(); + void Redo(); + } +} \ No newline at end of file diff --git a/Assets/Scripts/LevelEditor/Commands/IAction.cs.meta b/Assets/Scripts/LevelEditor/Commands/IAction.cs.meta new file mode 100644 index 000000000..9ef7f1ecc --- /dev/null +++ b/Assets/Scripts/LevelEditor/Commands/IAction.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 64b35e3b4d623144a82ed956ee52a136 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/LevelEditor/Commands/Selections.cs b/Assets/Scripts/LevelEditor/Commands/Selections.cs new file mode 100644 index 000000000..a8fd3df98 --- /dev/null +++ b/Assets/Scripts/LevelEditor/Commands/Selections.cs @@ -0,0 +1,129 @@ +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; + +namespace RhythmHeavenMania.Editor.Commands +{ + public class Selection : IAction + { + public void Execute() + { + throw new System.NotImplementedException(); + } + + public void Redo() + { + throw new System.NotImplementedException(); + } + + public void Undo() + { + throw new System.NotImplementedException(); + } + } + + // I spent 7 hours trying to fix this instead of sleeping, which would've probably worked better. + // I'll go fuck myself later I'm just glad it works + // I give massive props to people who code undo/redo systems + // -- Starpelly + + public class Move : IAction + { + public List pos = new List(); + + public class Pos + { + public TimelineEventObj eventObj; + + public Vector2 lastPos_; + public Vector3 previousPos; + } + + public Move(List eventObjs) + { + pos.Clear(); + + for (int i = 0; i < eventObjs.Count; i++) + { + Pos p = new Pos(); + p.eventObj = eventObjs[i]; + p.lastPos_ = eventObjs[i].lastPos_; + p.previousPos = eventObjs[i].transform.localPosition; + this.pos.Add(p); + } + } + + public void Execute() + { + } + + public void Redo() + { + for (int i = 0; i < pos.Count; i++) + { + EnsureEventObj(i); + pos[i].eventObj.transform.localPosition = pos[i].previousPos; + } + } + + public void Undo() + { + + for (int i = 0; i < pos.Count; i++) + { + EnsureEventObj(i); + pos[i].eventObj.transform.localPosition = pos[i].lastPos_; + } + } + + private void EnsureEventObj(int id) + { + if (pos[id].eventObj == null) + { + pos[id].eventObj = GameManager.instance.Beatmap.entities.Find(c => c.eventObj.eventObjID == pos[id].eventObj.eventObjID).eventObj; + } + } + } + + public class Deletion : IAction + { + List eventObjs; + + List deletedObjs; + + public Deletion(List eventObjs) + { + this.eventObjs = eventObjs; + } + + public void Execute() + { + deletedObjs = eventObjs; + for (int i = 0; i < eventObjs.Count; i++) + { + Selections.instance.Deselect(eventObjs[i]); + Timeline.instance.DestroyEventObject(eventObjs[i].entity); + } + } + + public void Redo() + { + deletedObjs = eventObjs; + for (int i = 0; i < eventObjs.Count; i++) + { + Selections.instance.Deselect(eventObjs[i]); + Timeline.instance.DestroyEventObject(eventObjs[i].entity); + } + } + + public void Undo() + { + for (int i = 0; i < deletedObjs.Count; i++) + { + Beatmap.Entity e = deletedObjs[i].entity; + eventObjs[i] = Timeline.instance.AddEventObject(e.datamodel, false, new Vector3(e.beat, -e.track * Timeline.instance.LayerHeight()), e, true, e.eventObj.eventObjID); + } + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/LevelEditor/Commands/Selections.cs.meta b/Assets/Scripts/LevelEditor/Commands/Selections.cs.meta new file mode 100644 index 000000000..cbde7c0b8 --- /dev/null +++ b/Assets/Scripts/LevelEditor/Commands/Selections.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8e13e41a59182b74ba7f0be1e3b58ff9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/LevelEditor/Commands/TestCommand.cs b/Assets/Scripts/LevelEditor/Commands/TestCommand.cs new file mode 100644 index 000000000..2f07c7435 --- /dev/null +++ b/Assets/Scripts/LevelEditor/Commands/TestCommand.cs @@ -0,0 +1,34 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +using RhythmHeavenMania.Editor.Commands; + +public class TestCommand : IAction +{ + private GameObject prefab; + private Vector3 pos; + + private GameObject spawnedgameObj; + + public TestCommand(GameObject prefab, Vector3 pos) + { + this.prefab = prefab; + this.pos = pos; + } + + public void Execute() + { + spawnedgameObj = GameObject.Instantiate(prefab, pos, Quaternion.identity); + } + + public void Redo() + { + throw new System.NotImplementedException(); + } + + public void Undo() + { + GameObject.Destroy(spawnedgameObj); + } +} diff --git a/Assets/Scripts/LevelEditor/Commands/TestCommand.cs.meta b/Assets/Scripts/LevelEditor/Commands/TestCommand.cs.meta new file mode 100644 index 000000000..c01683e01 --- /dev/null +++ b/Assets/Scripts/LevelEditor/Commands/TestCommand.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1e32a4a20b85d944aa030268410b0101 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/LevelEditor/Editor.cs b/Assets/Scripts/LevelEditor/Editor.cs index 3f89301f3..2a41cc3de 100644 --- a/Assets/Scripts/LevelEditor/Editor.cs +++ b/Assets/Scripts/LevelEditor/Editor.cs @@ -6,6 +6,7 @@ using UnityEngine.UI; using Newtonsoft.Json; using TMPro; +using Starpelly; namespace RhythmHeavenMania.Editor { @@ -29,6 +30,8 @@ namespace RhythmHeavenMania.Editor [SerializeField] private Button NewBTN; [SerializeField] private Button OpenBTN; [SerializeField] private Button SaveBTN; + [SerializeField] private Button UndoBTN; + [SerializeField] private Button RedoBTN; public static List EventObjs = new List(); @@ -60,6 +63,8 @@ namespace RhythmHeavenMania.Editor Tooltip.AddTooltip(NewBTN.gameObject, "New"); Tooltip.AddTooltip(OpenBTN.gameObject, "Open"); Tooltip.AddTooltip(SaveBTN.gameObject, "Save"); + Tooltip.AddTooltip(UndoBTN.gameObject, "Undo"); + Tooltip.AddTooltip(RedoBTN.gameObject, "Redo"); } public void Update() @@ -77,6 +82,40 @@ namespace RhythmHeavenMania.Editor GetComponent().enabled = true; GetComponent().enabled = true; }*/ + + if (Input.GetKeyDown(KeyCode.Delete)) + { + List ev = new List(); + for (int i = 0; i < Selections.instance.eventsSelected.Count; i++) ev.Add(Selections.instance.eventsSelected[i]); + CommandManager.instance.Execute(new Commands.Deletion(ev)); + } + + if (CommandManager.instance.canUndo()) + UndoBTN.transform.GetChild(0).GetComponent().color = "BE72FF".Hex2RGB(); + else + UndoBTN.transform.GetChild(0).GetComponent().color = Color.gray; + + if (CommandManager.instance.canRedo()) + RedoBTN.transform.GetChild(0).GetComponent().color = "7299FF".Hex2RGB(); + else + RedoBTN.transform.GetChild(0).GetComponent().color = Color.gray; + + if (Input.GetMouseButtonUp(0) && Timeline.instance.CheckIfMouseInTimeline()) + { + List selectedEvents = Timeline.instance.eventObjs.FindAll(c => c.selected == true && c.eligibleToMove == true); + + if (selectedEvents.Count > 0) + { + List result = new List(); + + for (int i = 0; i < selectedEvents.Count; i++) + { + result.Add(selectedEvents[i]); + selectedEvents[i].OnUp(); + } + CommandManager.instance.Execute(new Commands.Move(result)); + } + } } public static Sprite GameIcon(string name) diff --git a/Assets/Scripts/LevelEditor/EventSelector/GridGameSelector.cs b/Assets/Scripts/LevelEditor/EventSelector/GridGameSelector.cs index 2a8141f53..a3d53a4b5 100644 --- a/Assets/Scripts/LevelEditor/EventSelector/GridGameSelector.cs +++ b/Assets/Scripts/LevelEditor/EventSelector/GridGameSelector.cs @@ -161,11 +161,11 @@ namespace RhythmHeavenMania.Editor dragTimes++; if (currentEventIndex == 0) { - Timeline.instance.AddEventObject($"gameManager/switchGame/{mg.name}", true, new Vector3(0, 0)); + Timeline.instance.AddEventObject($"gameManager/switchGame/{mg.name}", true, new Vector3(0, 0), null, true); } else { - Timeline.instance.AddEventObject(mg.name + "/" + mg.actions[currentEventIndex - 1].actionName, true, new Vector3(0, 0)); + Timeline.instance.AddEventObject(mg.name + "/" + mg.actions[currentEventIndex - 1].actionName, true, new Vector3(0, 0), null, true); } } } diff --git a/Assets/Scripts/LevelEditor/Selector.cs b/Assets/Scripts/LevelEditor/Selector.cs index 39be753da..fccad4b76 100644 --- a/Assets/Scripts/LevelEditor/Selector.cs +++ b/Assets/Scripts/LevelEditor/Selector.cs @@ -1,6 +1,7 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; +using UnityEngine.EventSystems; namespace RhythmHeavenMania.Editor { @@ -14,10 +15,5 @@ namespace RhythmHeavenMania.Editor { instance = this; } - - private void Update() - { - - } } } \ No newline at end of file diff --git a/Assets/Scripts/LevelEditor/Timeline.cs b/Assets/Scripts/LevelEditor/Timeline.cs index 50103904b..15d870f65 100644 --- a/Assets/Scripts/LevelEditor/Timeline.cs +++ b/Assets/Scripts/LevelEditor/Timeline.cs @@ -51,7 +51,7 @@ namespace RhythmHeavenMania.Editor var entity = GameManager.instance.Beatmap.entities[i]; var e = GameManager.instance.Beatmap.entities[i]; - AddEventObject(e.datamodel, false, new Vector3(e.beat, -e.track * LayerHeight()), i); + AddEventObject(e.datamodel, false, new Vector3(e.beat, -e.track * LayerHeight()), e, false, Starpelly.Random.Strings.RandomString(Starpelly.Enums.Strings.StringType.Alphanumeric, 128)); } TimelineSlider.GetChild(0).GetComponent().color = EditorTheme.theme.properties.BeatMarkerCol.Hex2RGB(); @@ -296,7 +296,7 @@ namespace RhythmHeavenMania.Editor #region Functions - public void AddEventObject(string eventName, bool dragNDrop = false, Vector3 pos = new Vector3(), int entityId = 0) + public TimelineEventObj AddEventObject(string eventName, bool dragNDrop = false, Vector3 pos = new Vector3(), Beatmap.Entity entity = null, bool addEvent = false, string eventId = "") { GameObject g = Instantiate(TimelineEventObjRef.gameObject, TimelineEventObjRef.parent); g.transform.localPosition = pos; @@ -322,9 +322,9 @@ namespace RhythmHeavenMania.Editor else { eventObj.resizable = true; - if (gameAction.defaultLength != GameManager.instance.Beatmap.entities[entityId].length && dragNDrop == false) + if (gameAction.defaultLength != entity.length && dragNDrop == false) { - g.GetComponent().sizeDelta = new Vector2(GameManager.instance.Beatmap.entities[entityId].length, LayerHeight()); + g.GetComponent().sizeDelta = new Vector2(entity.length, LayerHeight()); } else { @@ -340,32 +340,46 @@ namespace RhythmHeavenMania.Editor var mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); g.transform.position = new Vector3(mousePos.x, mousePos.y, 0); - Beatmap.Entity en = new Beatmap.Entity(); - en.datamodel = eventName; - en.eventObj = eventObj; - - GameManager.instance.Beatmap.entities.Add(en); - GameManager.instance.SortEventsList(); - Selections.instance.ClickSelect(eventObj); eventObj.moving = true; } else { - var entity = GameManager.instance.Beatmap.entities[entityId]; - entity.eventObj = g.GetComponent(); entity.track = (int)(g.transform.localPosition.y / LayerHeight() * -1); } + if (addEvent) + { + if (entity == null) + { + Beatmap.Entity en = new Beatmap.Entity(); + en.datamodel = eventName; + en.eventObj = eventObj; + + GameManager.instance.Beatmap.entities.Add(en); + GameManager.instance.SortEventsList(); + } + else + { + GameManager.instance.Beatmap.entities.Add(entity); + GameManager.instance.SortEventsList(); + } + } + Editor.EventObjs.Add(eventObj); eventObjs.Add(eventObj); + + eventObj.eventObjID = eventId; + + return eventObj; } public void DestroyEventObject(Beatmap.Entity entity) { Editor.EventObjs.Remove(entity.eventObj); GameManager.instance.Beatmap.entities.Remove(entity); + Timeline.instance.eventObjs.Remove(entity.eventObj); Destroy(entity.eventObj.gameObject); GameManager.instance.SortEventsList(); diff --git a/Assets/Scripts/LevelEditor/TimelineEventObj.cs b/Assets/Scripts/LevelEditor/TimelineEventObj.cs index a656cf05c..65ddecd24 100644 --- a/Assets/Scripts/LevelEditor/TimelineEventObj.cs +++ b/Assets/Scripts/LevelEditor/TimelineEventObj.cs @@ -14,6 +14,7 @@ namespace RhythmHeavenMania.Editor private float startPosY; private Vector3 lastPos; + public Vector2 lastPos_; private RectTransform rectTransform; [Header("Components")] @@ -27,9 +28,9 @@ namespace RhythmHeavenMania.Editor [SerializeField] private RectTransform rightDrag; [Header("Properties")] - private Beatmap.Entity entity; + public Beatmap.Entity entity; public float length; - private bool eligibleToMove = false; + public bool eligibleToMove = false; private bool lastVisible; public bool selected; public bool mouseHovering; @@ -39,18 +40,24 @@ namespace RhythmHeavenMania.Editor private bool resizingLeft; private bool resizingRight; private bool inResizeRegion; + public Vector2 lastMovePos; + public string eventObjID; [Header("Colors")] public Color NormalCol; private void Start() { + lastPos_ = transform.localPosition; + rectTransform = GetComponent(); if (!resizable) { Destroy(resizeGraphic.gameObject); } + + lastMovePos = transform.localPosition; } private void Update() @@ -89,8 +96,8 @@ namespace RhythmHeavenMania.Editor { if (Input.GetKeyDown(KeyCode.Delete)) { - Selections.instance.Deselect(this); - Timeline.instance.DestroyEventObject(entity); + /*Selections.instance.Deselect(this); + Timeline.instance.DestroyEventObject(entity);*/ } selectedImage.gameObject.SetActive(true); @@ -119,18 +126,22 @@ namespace RhythmHeavenMania.Editor } } - OnUp(); + // OnUp(); } if (Timeline.instance.eventObjs.FindAll(c => c.moving).Count > 0 && selected) { Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); + // lastPos_ = transform.localPosition; + this.transform.position = new Vector3(mousePos.x - startPosX, mousePos.y - startPosY - 0.40f, 0); this.transform.localPosition = new Vector3(Mathf.Clamp(Mathp.Round2Nearest(this.transform.localPosition.x, 0.25f), 0, Mathf.Infinity), Timeline.instance.SnapToLayer(this.transform.localPosition.y)); if (lastPos != transform.localPosition) + { OnMove(); + } lastPos = this.transform.localPosition; } @@ -148,7 +159,7 @@ namespace RhythmHeavenMania.Editor rectTransform.sizeDelta = new Vector2(Mathp.Round2Nearest(sizeDelta.x, 0.25f), sizeDelta.y); SetPivot(new Vector2(0, rectTransform.pivot.y)); - OnComplete(); + OnComplete(false); } else if (resizingRight) { @@ -162,7 +173,7 @@ namespace RhythmHeavenMania.Editor rectTransform.sizeDelta = new Vector2(Mathp.Round2Nearest(sizeDelta.x, 0.25f), sizeDelta.y); SetPivot(new Vector2(0, rectTransform.pivot.y)); - OnComplete(); + OnComplete(false); } if (Input.GetMouseButtonUp(0)) @@ -203,6 +214,8 @@ namespace RhythmHeavenMania.Editor { if (selected) { + lastPos_ = transform.localPosition; + for (int i = 0; i < Timeline.instance.eventObjs.Count; i++) { Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); @@ -211,22 +224,26 @@ namespace RhythmHeavenMania.Editor } moving = true; - - OnComplete(); + // lastMovePos = transform.localPosition; + // OnComplete(); } } public void OnUp() { + // lastPos_ = this.lastPos_; + // previousPos = this.transform.localPosition; + if (selected) { - moving = false; - if (eligibleToMove) { - OnComplete(); + + OnComplete(true); } + moving = false; + Cancel(); } } @@ -320,10 +337,10 @@ namespace RhythmHeavenMania.Editor eligibleToMove = true; } - OnComplete(); + OnComplete(true); } - private void OnComplete() + private void OnComplete(bool move) { entity.length = rectTransform.sizeDelta.x; entity.beat = this.transform.localPosition.x; diff --git a/Assets/Scripts/WTF.cs b/Assets/Scripts/WTF.cs index 824ff7206..f1191c7ba 100644 --- a/Assets/Scripts/WTF.cs +++ b/Assets/Scripts/WTF.cs @@ -2,12 +2,20 @@ using UnityEngine; // this is a script for testing +using RhythmHeavenMania.Editor; + namespace RhythmHeavenMania.Tests { public class WTF : MonoBehaviour { + public GameObject test; + private void Update() { + if (Input.GetKeyDown(KeyCode.Z)) + { + GetComponent().Execute(new TestCommand(test, new Vector3(Random.Range(-8f, 8f), Random.Range(-6f, 6f)))); + } } } } \ No newline at end of file diff --git a/Assets/karatekacombos.json b/Assets/karatekacombos.json index cf58a0ef9..449b70047 100644 --- a/Assets/karatekacombos.json +++ b/Assets/karatekacombos.json @@ -1 +1 @@ -{"bpm":180.0,"entities":[{"beat":2.0,"track":1,"length":26.0,"datamodel":"karateman/bop"},{"beat":8.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":8.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":16.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":16.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":24.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":24.0,"track":3,"length":1.0,"datamodel":"karateman/prepare"},{"beat":28.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":28.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":28.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":30.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":30.0,"track":1,"length":1.0,"datamodel":"karateman/prepare"},{"beat":31.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":32.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":34.0,"track":2,"length":12.0,"datamodel":"karateman/bop"},{"beat":34.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":36.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":38.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":40.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":42.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":44.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":44.5,"track":0,"length":1.0,"datamodel":"karateman/hit3"},{"beat":46.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":46.0,"track":1,"length":1.0,"datamodel":"karateman/prepare"},{"beat":47.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":48.0,"track":2,"length":2.0,"datamodel":"karateman/rock"},{"beat":50.0,"track":2,"length":48.0,"datamodel":"karateman/bop"},{"beat":50.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":52.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":54.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":56.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":58.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":60.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":62.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":64.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":66.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":68.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":70.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":72.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":74.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":76.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":78.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":80.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":82.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":84.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":86.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":88.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":90.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":92.0,"track":3,"length":2.0,"datamodel":"karateman/bulb"},{"beat":94.0,"track":2,"length":4.0,"datamodel":"karateman/combo"},{"beat":98.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":98.0,"track":2,"length":0.5,"datamodel":"karateman/bop"},{"beat":99.5,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":99.5,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":102.0,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":102.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":103.5,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":103.5,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":106.0,"track":3,"length":5.0,"datamodel":"karateman/bop"},{"beat":106.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":108.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":110.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":111.5,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":114.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":114.0,"track":3,"length":0.5,"datamodel":"karateman/bop"},{"beat":115.5,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":115.5,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":118.0,"track":2,"length":0.5,"datamodel":"karateman/bop"},{"beat":118.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":119.5,"track":0,"length":0.5,"datamodel":"karateman/bop"},{"beat":119.5,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":122.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":122.0,"track":0,"length":5.5,"datamodel":"karateman/bop"},{"beat":124.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":126.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":127.5,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":130.0,"track":2,"length":88.0,"datamodel":"karateman/bop"},{"beat":130.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":132.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":134.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":136.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":138.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":140.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":140.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":142.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":143.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":144.0,"track":2,"length":2.0,"datamodel":"karateman/rock"},{"beat":146.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":148.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":150.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":152.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":154.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":156.0,"track":2,"length":2.0,"datamodel":"karateman/bulb"},{"beat":158.0,"track":0,"length":4.0,"datamodel":"karateman/combo"},{"beat":162.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":164.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":166.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":168.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":170.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":172.0,"track":2,"length":2.0,"datamodel":"karateman/bulb"},{"beat":174.0,"track":2,"length":4.0,"datamodel":"karateman/combo"},{"beat":178.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":180.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":182.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":184.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":186.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":188.0,"track":1,"length":2.0,"datamodel":"karateman/bulb"},{"beat":190.0,"track":0,"length":4.0,"datamodel":"karateman/combo"},{"beat":194.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":196.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":198.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":200.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":202.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":204.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":206.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":208.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":210.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":212.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":214.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":216.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":218.0,"track":2,"length":2.0,"datamodel":"karateman/prepare"},{"beat":219.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":219.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":221.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":222.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":223.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":225.0,"track":1,"length":34.5,"datamodel":"karateman/bop"},{"beat":226.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":228.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":230.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":232.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":234.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":236.0,"track":0,"length":2.0,"datamodel":"karateman/bulb"},{"beat":238.0,"track":3,"length":4.0,"datamodel":"karateman/combo"},{"beat":242.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":244.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":246.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":248.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":248.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":250.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":251.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":252.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":252.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":254.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":255.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":256.0,"track":2,"length":2.0,"datamodel":"karateman/ball"},{"beat":258.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":259.5,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":262.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":262.0,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":263.5,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":263.5,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":266.0,"track":2,"length":5.5,"datamodel":"karateman/bop"},{"beat":266.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":268.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":270.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":271.5,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":274.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":274.0,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":275.5,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":278.0,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":278.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":279.5,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":282.0,"track":2,"length":5.0,"datamodel":"karateman/bop"},{"beat":282.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":284.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":286.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":287.5,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":290.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":290.0,"track":3,"length":33.0,"datamodel":"karateman/bop"},{"beat":292.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":294.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":296.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":298.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":300.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":302.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":304.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":306.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":308.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":310.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":312.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":312.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":314.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":315.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":316.0,"track":2,"length":2.0,"datamodel":"karateman/rock"},{"beat":316.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":318.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":319.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":320.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":322.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":323.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":326.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":327.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":330.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":331.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":334.0,"track":3,"length":1.0,"datamodel":"karateman/prepare"},{"beat":335.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":338.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":339.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":342.0,"track":0,"length":1.0,"datamodel":"karateman/prepare"},{"beat":343.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":346.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":347.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":350.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":351.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":353.0,"track":3,"length":30.0,"datamodel":"karateman/bop"},{"beat":354.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":356.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":358.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":360.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":362.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":364.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":364.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":366.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":367.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":368.0,"track":2,"length":2.0,"datamodel":"karateman/rock"},{"beat":370.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":372.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":372.5,"track":2,"length":1.0,"datamodel":"karateman/hit3"},{"beat":374.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":375.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":376.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":378.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":380.0,"track":2,"length":2.0,"datamodel":"karateman/bulb"},{"beat":382.0,"track":2,"length":4.0,"datamodel":"karateman/combo"}]} \ No newline at end of file +{"bpm":180.0,"entities":[{"beat":8.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":8.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":16.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":16.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":24.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":24.0,"track":3,"length":1.0,"datamodel":"karateman/prepare"},{"beat":28.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":28.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":28.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":30.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":30.0,"track":1,"length":1.0,"datamodel":"karateman/prepare"},{"beat":31.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":32.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":34.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":34.0,"track":2,"length":12.0,"datamodel":"karateman/bop"},{"beat":36.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":38.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":40.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":42.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":44.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":44.5,"track":0,"length":1.0,"datamodel":"karateman/hit3"},{"beat":46.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":46.0,"track":1,"length":1.0,"datamodel":"karateman/prepare"},{"beat":47.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":48.0,"track":2,"length":2.0,"datamodel":"karateman/rock"},{"beat":50.0,"track":2,"length":48.0,"datamodel":"karateman/bop"},{"beat":50.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":52.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":54.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":56.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":58.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":60.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":62.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":64.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":66.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":68.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":70.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":72.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":74.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":76.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":78.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":80.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":82.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":84.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":86.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":88.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":90.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":92.0,"track":3,"length":2.0,"datamodel":"karateman/bulb"},{"beat":94.0,"track":2,"length":4.0,"datamodel":"karateman/combo"},{"beat":98.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":98.0,"track":2,"length":0.5,"datamodel":"karateman/bop"},{"beat":99.5,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":99.5,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":102.0,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":102.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":103.5,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":103.5,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":106.0,"track":3,"length":5.0,"datamodel":"karateman/bop"},{"beat":106.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":108.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":110.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":111.5,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":114.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":114.0,"track":3,"length":0.5,"datamodel":"karateman/bop"},{"beat":115.5,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":115.5,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":118.0,"track":2,"length":0.5,"datamodel":"karateman/bop"},{"beat":118.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":119.5,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":119.5,"track":0,"length":0.5,"datamodel":"karateman/bop"},{"beat":122.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":122.0,"track":0,"length":5.5,"datamodel":"karateman/bop"},{"beat":124.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":126.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":127.5,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":130.0,"track":2,"length":88.0,"datamodel":"karateman/bop"},{"beat":130.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":132.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":134.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":136.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":138.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":140.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":140.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":142.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":143.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":144.0,"track":2,"length":2.0,"datamodel":"karateman/rock"},{"beat":146.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":148.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":150.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":152.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":154.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":156.0,"track":2,"length":2.0,"datamodel":"karateman/bulb"},{"beat":158.0,"track":0,"length":4.0,"datamodel":"karateman/combo"},{"beat":162.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":164.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":166.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":168.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":170.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":172.0,"track":2,"length":2.0,"datamodel":"karateman/bulb"},{"beat":174.0,"track":2,"length":4.0,"datamodel":"karateman/combo"},{"beat":178.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":180.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":182.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":184.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":186.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":188.0,"track":1,"length":2.0,"datamodel":"karateman/bulb"},{"beat":190.0,"track":0,"length":4.0,"datamodel":"karateman/combo"},{"beat":194.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":196.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":198.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":200.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":202.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":204.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":206.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":208.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":210.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":212.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":214.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":216.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":218.0,"track":2,"length":2.0,"datamodel":"karateman/prepare"},{"beat":219.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":219.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":221.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":222.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":223.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":225.0,"track":1,"length":34.5,"datamodel":"karateman/bop"},{"beat":226.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":228.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":230.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":232.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":234.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":236.0,"track":0,"length":2.0,"datamodel":"karateman/bulb"},{"beat":238.0,"track":3,"length":4.0,"datamodel":"karateman/combo"},{"beat":242.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":244.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":246.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":248.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":248.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":250.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":251.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":252.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":252.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":254.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":255.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":256.0,"track":2,"length":2.0,"datamodel":"karateman/ball"},{"beat":258.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":259.5,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":262.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":262.0,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":263.5,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":263.5,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":266.0,"track":2,"length":5.5,"datamodel":"karateman/bop"},{"beat":266.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":268.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":270.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":271.5,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":274.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":274.0,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":275.5,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":278.0,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":278.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":279.5,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":282.0,"track":2,"length":5.0,"datamodel":"karateman/bop"},{"beat":282.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":284.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":286.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":287.5,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":290.0,"track":3,"length":33.0,"datamodel":"karateman/bop"},{"beat":290.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":292.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":294.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":296.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":298.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":300.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":302.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":304.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":306.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":308.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":310.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":312.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":312.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":314.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":315.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":316.0,"track":2,"length":2.0,"datamodel":"karateman/rock"},{"beat":316.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":318.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":319.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":320.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":322.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":323.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":326.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":327.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":330.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":331.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":334.0,"track":3,"length":1.0,"datamodel":"karateman/prepare"},{"beat":335.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":338.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":339.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":342.0,"track":0,"length":1.0,"datamodel":"karateman/prepare"},{"beat":343.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":346.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":347.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":350.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":351.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":353.0,"track":3,"length":30.0,"datamodel":"karateman/bop"},{"beat":354.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":356.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":358.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":360.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":362.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":364.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":364.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":366.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":367.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":368.0,"track":2,"length":2.0,"datamodel":"karateman/rock"},{"beat":370.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":372.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":372.5,"track":2,"length":1.0,"datamodel":"karateman/hit3"},{"beat":374.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":375.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":376.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":378.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":380.0,"track":2,"length":2.0,"datamodel":"karateman/bulb"},{"beat":382.0,"track":2,"length":4.0,"datamodel":"karateman/combo"}]} \ No newline at end of file diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index 0a59dc824..2455620e4 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -12,7 +12,7 @@ TagManager: - Water - UI - Debug - - + - EventBlocks - - -