mirror of
https://github.com/RHeavenStudioPlus/HeavenStudioPlus.git
synced 2024-11-15 06:05:10 +00:00
Merge branch 'release_1'
This commit is contained in:
commit
3e940afb76
12 changed files with 324 additions and 25 deletions
|
@ -14,8 +14,8 @@ RenderTexture:
|
||||||
m_DownscaleFallback: 0
|
m_DownscaleFallback: 0
|
||||||
m_IsAlphaChannelOptional: 0
|
m_IsAlphaChannelOptional: 0
|
||||||
serializedVersion: 5
|
serializedVersion: 5
|
||||||
m_Width: 1280
|
m_Width: 1600
|
||||||
m_Height: 720
|
m_Height: 900
|
||||||
m_AntiAliasing: 2
|
m_AntiAliasing: 2
|
||||||
m_MipCount: -1
|
m_MipCount: -1
|
||||||
m_DepthStencilFormat: 92
|
m_DepthStencilFormat: 92
|
||||||
|
|
|
@ -14,8 +14,8 @@ RenderTexture:
|
||||||
m_DownscaleFallback: 0
|
m_DownscaleFallback: 0
|
||||||
m_IsAlphaChannelOptional: 0
|
m_IsAlphaChannelOptional: 0
|
||||||
serializedVersion: 5
|
serializedVersion: 5
|
||||||
m_Width: 1920
|
m_Width: 2400
|
||||||
m_Height: 1080
|
m_Height: 1350
|
||||||
m_AntiAliasing: 1
|
m_AntiAliasing: 1
|
||||||
m_MipCount: -1
|
m_MipCount: -1
|
||||||
m_DepthStencilFormat: 92
|
m_DepthStencilFormat: 92
|
||||||
|
|
|
@ -16,7 +16,26 @@ AnimationClip:
|
||||||
m_EulerCurves: []
|
m_EulerCurves: []
|
||||||
m_PositionCurves: []
|
m_PositionCurves: []
|
||||||
m_ScaleCurves: []
|
m_ScaleCurves: []
|
||||||
m_FloatCurves: []
|
m_FloatCurves:
|
||||||
|
- curve:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Curve:
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0
|
||||||
|
value: 0
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 136
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0
|
||||||
|
outWeight: 0
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
|
attribute: m_AnchoredPosition.y
|
||||||
|
path: Graphic
|
||||||
|
classID: 224
|
||||||
|
script: {fileID: 0}
|
||||||
m_PPtrCurves:
|
m_PPtrCurves:
|
||||||
- curve:
|
- curve:
|
||||||
- time: 0
|
- time: 0
|
||||||
|
@ -39,6 +58,13 @@ AnimationClip:
|
||||||
typeID: 114
|
typeID: 114
|
||||||
customType: 0
|
customType: 0
|
||||||
isPPtrCurve: 1
|
isPPtrCurve: 1
|
||||||
|
- serializedVersion: 2
|
||||||
|
path: 3003628726
|
||||||
|
attribute: 538195251
|
||||||
|
script: {fileID: 0}
|
||||||
|
typeID: 224
|
||||||
|
customType: 28
|
||||||
|
isPPtrCurve: 0
|
||||||
pptrCurveMapping:
|
pptrCurveMapping:
|
||||||
- {fileID: -1983818443, guid: 655fc978fc6e6ca41a3d3104b43298bd, type: 3}
|
- {fileID: -1983818443, guid: 655fc978fc6e6ca41a3d3104b43298bd, type: 3}
|
||||||
m_AnimationClipSettings:
|
m_AnimationClipSettings:
|
||||||
|
@ -61,7 +87,26 @@ AnimationClip:
|
||||||
m_KeepOriginalPositionXZ: 0
|
m_KeepOriginalPositionXZ: 0
|
||||||
m_HeightFromFeet: 0
|
m_HeightFromFeet: 0
|
||||||
m_Mirror: 0
|
m_Mirror: 0
|
||||||
m_EditorCurves: []
|
m_EditorCurves:
|
||||||
|
- curve:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Curve:
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0
|
||||||
|
value: 0
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 136
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0
|
||||||
|
outWeight: 0
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
|
attribute: m_AnchoredPosition.y
|
||||||
|
path: Graphic
|
||||||
|
classID: 224
|
||||||
|
script: {fileID: 0}
|
||||||
m_EulerEditorCurves: []
|
m_EulerEditorCurves: []
|
||||||
m_HasGenericRootTransform: 0
|
m_HasGenericRootTransform: 0
|
||||||
m_HasMotionFloatCurves: 0
|
m_HasMotionFloatCurves: 0
|
||||||
|
|
|
@ -10135,7 +10135,7 @@ RectTransform:
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 1}
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
m_AnchorMax: {x: 0, y: 1}
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
m_AnchoredPosition: {x: 177.66986, y: -60.01}
|
m_AnchoredPosition: {x: 177.66988, y: -60.01}
|
||||||
m_SizeDelta: {x: 42, y: 42}
|
m_SizeDelta: {x: 42, y: 42}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!114 &449176922
|
--- !u!114 &449176922
|
||||||
|
@ -10986,7 +10986,7 @@ MonoBehaviour:
|
||||||
m_TargetGraphic: {fileID: 171581557}
|
m_TargetGraphic: {fileID: 171581557}
|
||||||
m_HandleRect: {fileID: 171581556}
|
m_HandleRect: {fileID: 171581556}
|
||||||
m_Direction: 2
|
m_Direction: 2
|
||||||
m_Value: 1
|
m_Value: 0
|
||||||
m_Size: 1
|
m_Size: 1
|
||||||
m_NumberOfSteps: 0
|
m_NumberOfSteps: 0
|
||||||
m_OnValueChanged:
|
m_OnValueChanged:
|
||||||
|
@ -18620,8 +18620,8 @@ RectTransform:
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 1}
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
m_AnchorMax: {x: 0, y: 1}
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
m_AnchoredPosition: {x: 29, y: -29}
|
m_AnchoredPosition: {x: 29.3, y: -29.3}
|
||||||
m_SizeDelta: {x: 48, y: 48}
|
m_SizeDelta: {x: 48.6, y: 48.6}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!114 &781200687
|
--- !u!114 &781200687
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
|
@ -20896,8 +20896,8 @@ MonoBehaviour:
|
||||||
m_TargetGraphic: {fileID: 1589389272}
|
m_TargetGraphic: {fileID: 1589389272}
|
||||||
m_HandleRect: {fileID: 1589389271}
|
m_HandleRect: {fileID: 1589389271}
|
||||||
m_Direction: 2
|
m_Direction: 2
|
||||||
m_Value: 0
|
m_Value: 1
|
||||||
m_Size: 0.9999943
|
m_Size: 0.9999938
|
||||||
m_NumberOfSteps: 0
|
m_NumberOfSteps: 0
|
||||||
m_OnValueChanged:
|
m_OnValueChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
|
@ -24751,6 +24751,82 @@ CanvasRenderer:
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 1128012797}
|
m_GameObject: {fileID: 1128012797}
|
||||||
m_CullTransparentMesh: 1
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!1 &1134629697
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1134629698}
|
||||||
|
- component: {fileID: 1134629700}
|
||||||
|
- component: {fileID: 1134629699}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Image
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &1134629698
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1134629697}
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 1806429019}
|
||||||
|
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 &1134629699
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1134629697}
|
||||||
|
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: f9232c079e126cd48a7344b23eaf42a5, 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: 1
|
||||||
|
--- !u!222 &1134629700
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1134629697}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
--- !u!1 &1144123704
|
--- !u!1 &1144123704
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -25465,7 +25541,7 @@ RectTransform:
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0.5}
|
m_AnchorMin: {x: 0, y: 0.5}
|
||||||
m_AnchorMax: {x: 1, y: 0.5}
|
m_AnchorMax: {x: 1, y: 0.5}
|
||||||
m_AnchoredPosition: {x: 0, y: 125.591866}
|
m_AnchoredPosition: {x: 0, y: 162.32596}
|
||||||
m_SizeDelta: {x: 0, y: 0}
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
m_Pivot: {x: 0.5, y: 1}
|
m_Pivot: {x: 0.5, y: 1}
|
||||||
--- !u!222 &1154875945
|
--- !u!222 &1154875945
|
||||||
|
@ -34511,8 +34587,8 @@ MonoBehaviour:
|
||||||
m_TargetGraphic: {fileID: 1220118245}
|
m_TargetGraphic: {fileID: 1220118245}
|
||||||
m_HandleRect: {fileID: 1220118244}
|
m_HandleRect: {fileID: 1220118244}
|
||||||
m_Direction: 2
|
m_Direction: 2
|
||||||
m_Value: 1.0000002
|
m_Value: 1.0000017
|
||||||
m_Size: 0.6423325
|
m_Size: 0.9467054
|
||||||
m_NumberOfSteps: 0
|
m_NumberOfSteps: 0
|
||||||
m_OnValueChanged:
|
m_OnValueChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
|
@ -37731,6 +37807,57 @@ CanvasRenderer:
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 1800461596}
|
m_GameObject: {fileID: 1800461596}
|
||||||
m_CullTransparentMesh: 1
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!1 &1806429018
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1806429019}
|
||||||
|
- component: {fileID: 1806429020}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: BlockDeleteFXTemplate
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 0
|
||||||
|
--- !u!224 &1806429019
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1806429018}
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 1134629698}
|
||||||
|
m_Father: {fileID: 1838356727}
|
||||||
|
m_RootOrder: 3
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 91.4, y: 50.84}
|
||||||
|
m_Pivot: {x: 0, y: 1}
|
||||||
|
--- !u!114 &1806429020
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1806429018}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: d7f2c4dbc99f13d4eac41ff79ee2844e, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
mainImage: {fileID: 1134629699}
|
||||||
--- !u!1 &1813644963
|
--- !u!1 &1813644963
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -38026,6 +38153,7 @@ RectTransform:
|
||||||
- {fileID: 743531236}
|
- {fileID: 743531236}
|
||||||
- {fileID: 2142375787}
|
- {fileID: 2142375787}
|
||||||
- {fileID: 1962968340}
|
- {fileID: 1962968340}
|
||||||
|
- {fileID: 1806429019}
|
||||||
m_Father: {fileID: 259713290}
|
m_Father: {fileID: 259713290}
|
||||||
m_RootOrder: 1
|
m_RootOrder: 1
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
@ -38268,6 +38396,7 @@ MonoBehaviour:
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
EntityTemplate: {fileID: 798021450}
|
EntityTemplate: {fileID: 798021450}
|
||||||
|
BlockDeleteFXTemplate: {fileID: 1806429020}
|
||||||
--- !u!1 &1863600390
|
--- !u!1 &1863600390
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
|
@ -107,6 +107,20 @@ namespace HeavenStudio.Editor
|
||||||
else
|
else
|
||||||
sizeText.text = string.Empty;
|
sizeText.text = string.Empty;
|
||||||
|
|
||||||
|
// Keeps the text always in view
|
||||||
|
var sizeTextLeft = Timeline.instance.leftSide - start.x;
|
||||||
|
sizeTextLeft = Mathf.Max(sizeTextLeft, 0);
|
||||||
|
var sizeTextRight = -(Timeline.instance.rightSide - end.x);
|
||||||
|
sizeTextRight = Mathf.Max(sizeTextRight, 0);
|
||||||
|
|
||||||
|
var sizeTextTop = Timeline.instance.topSide - start.y;
|
||||||
|
sizeTextTop = Mathf.Max(sizeTextTop, 0);
|
||||||
|
var sizeTextBottom = -(Timeline.instance.bottomSide - end.y);
|
||||||
|
sizeTextBottom = Mathf.Max(sizeTextBottom, 0);
|
||||||
|
|
||||||
|
sizeText.rectTransform.offsetMin = new Vector2(sizeTextLeft * Timeline.instance.PixelsPerBeat, -sizeTextTop * Timeline.instance.LayerHeight());
|
||||||
|
sizeText.rectTransform.offsetMax = new Vector2(-sizeTextRight * Timeline.instance.PixelsPerBeat, sizeTextBottom * Timeline.instance.LayerHeight());
|
||||||
|
|
||||||
Select(start, end);
|
Select(start, end);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -37,10 +37,11 @@ namespace HeavenStudio.Editor.Commands
|
||||||
var marker = TimelineBlockManager.Instance.EntityMarkers[entity.guid];
|
var marker = TimelineBlockManager.Instance.EntityMarkers[entity.guid];
|
||||||
|
|
||||||
var clonedEntity = entity.DeepCopy();
|
var clonedEntity = entity.DeepCopy();
|
||||||
clonedEntity.guid = entity.guid; // We have to do this because entities (as of when I'm typing this), do not have Guids.
|
clonedEntity.guid = entity.guid;
|
||||||
|
|
||||||
deletedEntities.Add(new() { riqEntity = clonedEntity, selected = marker.selected });
|
deletedEntities.Add(new() { riqEntity = clonedEntity, selected = marker.selected });
|
||||||
|
|
||||||
|
TimelineBlockManager.Instance.CreateDestroyFX(entity);
|
||||||
|
|
||||||
Selections.instance.Deselect(marker);
|
Selections.instance.Deselect(marker);
|
||||||
|
|
||||||
|
@ -107,15 +108,16 @@ namespace HeavenStudio.Editor.Commands
|
||||||
{
|
{
|
||||||
placedEntityData = createdEntity.DeepCopy();
|
placedEntityData = createdEntity.DeepCopy();
|
||||||
|
|
||||||
|
if (TimelineBlockManager.Instance.EntityMarkers.ContainsKey(createdEntity.guid))
|
||||||
|
{
|
||||||
var marker = TimelineBlockManager.Instance.EntityMarkers[createdEntity.guid];
|
var marker = TimelineBlockManager.Instance.EntityMarkers[createdEntity.guid];
|
||||||
|
|
||||||
Selections.instance.Deselect(marker);
|
Selections.instance.Deselect(marker);
|
||||||
|
|
||||||
GameManager.instance.Beatmap.Entities.Remove(createdEntity);
|
|
||||||
|
|
||||||
TimelineBlockManager.Instance.EntityMarkers.Remove(createdEntity.guid);
|
TimelineBlockManager.Instance.EntityMarkers.Remove(createdEntity.guid);
|
||||||
GameObject.Destroy(marker.gameObject);
|
GameObject.Destroy(marker.gameObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
GameManager.instance.Beatmap.Entities.Remove(createdEntity);
|
||||||
GameManager.instance.SortEventsList();
|
GameManager.instance.SortEventsList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
using HeavenStudio.Editor.Track;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using Starpelly;
|
using Starpelly;
|
||||||
using System;
|
using System;
|
||||||
|
@ -55,5 +56,10 @@ namespace HeavenStudio.Editor
|
||||||
|
|
||||||
LayersGradient.colorKeys = colorKeys.ToArray();
|
LayersGradient.colorKeys = colorKeys.ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Color LayerGradientIndex(int layer)
|
||||||
|
{
|
||||||
|
return EditorTheme.theme.LayersGradient.Evaluate(layer / (float)(Timeline.instance.LayerCount - 1));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
62
Assets/Scripts/LevelEditor/Timeline/BlockDeleteFX.cs
Normal file
62
Assets/Scripts/LevelEditor/Timeline/BlockDeleteFX.cs
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
using HeavenStudio.Util;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
using static UnityEditor.Experimental.GraphView.GraphView;
|
||||||
|
|
||||||
|
namespace HeavenStudio.Editor.Track
|
||||||
|
{
|
||||||
|
public class BlockDeleteFX : MonoBehaviour
|
||||||
|
{
|
||||||
|
private RectTransform rectTransform;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private Image mainImage;
|
||||||
|
|
||||||
|
private bool started = false;
|
||||||
|
private float deleteTime = 0.0f;
|
||||||
|
|
||||||
|
private double eBeat;
|
||||||
|
private float eLength;
|
||||||
|
private int eLayer;
|
||||||
|
private bool wasESelected = false;
|
||||||
|
|
||||||
|
public void Awake()
|
||||||
|
{
|
||||||
|
rectTransform = GetComponent<RectTransform>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Create(double beat, float length, int layer, bool selected)
|
||||||
|
{
|
||||||
|
started = true;
|
||||||
|
deleteTime = Time.time;
|
||||||
|
|
||||||
|
eBeat = beat;
|
||||||
|
eLength = length;
|
||||||
|
eLayer = layer;
|
||||||
|
wasESelected = selected;
|
||||||
|
|
||||||
|
Destroy(this.gameObject, 0.714f);
|
||||||
|
|
||||||
|
Update();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
if (!started) return;
|
||||||
|
|
||||||
|
rectTransform.anchoredPosition = new Vector2((float)eBeat * Timeline.instance.PixelsPerBeat, -eLayer * Timeline.instance.LayerHeight());
|
||||||
|
rectTransform.sizeDelta = new Vector2(eLength * Timeline.instance.PixelsPerBeat, Timeline.instance.LayerHeight());
|
||||||
|
|
||||||
|
|
||||||
|
// I added this because I was going to use the effect when you undo a place as well, but I didn't like it.
|
||||||
|
// var color = (wasESelected) ? Color.cyan : EditorTheme.theme.LayerGradientIndex(eLayer);
|
||||||
|
|
||||||
|
var color = EditorTheme.theme.LayerGradientIndex(eLayer);
|
||||||
|
var norm = (Time.time - deleteTime) * 1.4f;
|
||||||
|
mainImage.color = Color.Lerp(color, new Color(color.r, color.g, color.b, 0.0f), EasingFunction.EaseOutCirc(0, 1, norm));
|
||||||
|
|
||||||
|
var extrudeAnim = EasingFunction.EaseOutCirc(0.0f, 8.0f, norm);
|
||||||
|
mainImage.rectTransform.sizeDelta = new Vector2(extrudeAnim, extrudeAnim);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
11
Assets/Scripts/LevelEditor/Timeline/BlockDeleteFX.cs.meta
Normal file
11
Assets/Scripts/LevelEditor/Timeline/BlockDeleteFX.cs.meta
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d7f2c4dbc99f13d4eac41ff79ee2844e
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -182,9 +182,14 @@ namespace HeavenStudio.Editor.Track
|
||||||
|
|
||||||
public Vector3[] LayerCorners = new Vector3[4];
|
public Vector3[] LayerCorners = new Vector3[4];
|
||||||
|
|
||||||
|
// Beats
|
||||||
public float leftSide => (RealTimelineContent.anchoredPosition.x / PixelsPerBeat) * -1;
|
public float leftSide => (RealTimelineContent.anchoredPosition.x / PixelsPerBeat) * -1;
|
||||||
public float rightSide => (TimelineScroll.viewport.rect.width / PixelsPerBeat) + leftSide;
|
public float rightSide => (TimelineScroll.viewport.rect.width / PixelsPerBeat) + leftSide;
|
||||||
|
|
||||||
|
// Layer Height
|
||||||
|
public float topSide => RealTimelineContent.anchoredPosition.y / LayerHeight();
|
||||||
|
public float bottomSide => topSide + (TimelineScroll.viewport.rect.height / LayerHeight());
|
||||||
|
|
||||||
private Vector2 lastScreenSize;
|
private Vector2 lastScreenSize;
|
||||||
|
|
||||||
public static Timeline instance { get; private set; }
|
public static Timeline instance { get; private set; }
|
||||||
|
|
|
@ -5,6 +5,7 @@ using UnityEngine.Pool;
|
||||||
|
|
||||||
using Jukebox;
|
using Jukebox;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using static Jukebox.Legacy.Beatmap;
|
||||||
|
|
||||||
namespace HeavenStudio.Editor.Track
|
namespace HeavenStudio.Editor.Track
|
||||||
{
|
{
|
||||||
|
@ -13,6 +14,7 @@ namespace HeavenStudio.Editor.Track
|
||||||
public static TimelineBlockManager Instance { get; private set; }
|
public static TimelineBlockManager Instance { get; private set; }
|
||||||
|
|
||||||
public TimelineEventObj EntityTemplate;
|
public TimelineEventObj EntityTemplate;
|
||||||
|
public BlockDeleteFX BlockDeleteFXTemplate;
|
||||||
public Dictionary<Guid, TimelineEventObj> EntityMarkers = new();
|
public Dictionary<Guid, TimelineEventObj> EntityMarkers = new();
|
||||||
public ObjectPool<TimelineEventObj> Pool { get; private set; }
|
public ObjectPool<TimelineEventObj> Pool { get; private set; }
|
||||||
|
|
||||||
|
@ -186,5 +188,22 @@ namespace HeavenStudio.Editor.Track
|
||||||
{
|
{
|
||||||
Destroy(marker.gameObject);
|
Destroy(marker.gameObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NOTE (PELLY): This should probably be pooled in the future.
|
||||||
|
public void CreateDestroyFX(RiqEntity entity)
|
||||||
|
{
|
||||||
|
var deleteFX = Instantiate(BlockDeleteFXTemplate, BlockDeleteFXTemplate.transform.parent);
|
||||||
|
deleteFX.gameObject.SetActive(true);
|
||||||
|
|
||||||
|
bool selected = false;
|
||||||
|
if (EntityMarkers.ContainsKey(entity.guid))
|
||||||
|
{
|
||||||
|
if (Selections.instance.eventsSelected.Contains(EntityMarkers[entity.guid]))
|
||||||
|
{
|
||||||
|
selected = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
deleteFX.Create(entity.beat, entity.length, (int)entity["track"], selected);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -6,6 +6,7 @@ using Jukebox;
|
||||||
using TMPro;
|
using TMPro;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine.Timeline;
|
||||||
|
|
||||||
namespace HeavenStudio.Editor.Track
|
namespace HeavenStudio.Editor.Track
|
||||||
{
|
{
|
||||||
|
@ -148,8 +149,11 @@ namespace HeavenStudio.Editor.Track
|
||||||
|
|
||||||
if (selected)
|
if (selected)
|
||||||
{
|
{
|
||||||
if (moving)
|
if (TimelineBlockManager.Instance.MovingAnyEvents)
|
||||||
|
{
|
||||||
outline.color = Color.magenta;
|
outline.color = Color.magenta;
|
||||||
|
SetColor((int)entity["track"]);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
outline.color = Color.cyan;
|
outline.color = Color.cyan;
|
||||||
}
|
}
|
||||||
|
@ -200,6 +204,7 @@ namespace HeavenStudio.Editor.Track
|
||||||
|
|
||||||
if (!isCreating && movedEntity)
|
if (!isCreating && movedEntity)
|
||||||
{
|
{
|
||||||
|
// NOTE (PELLY): Replace with arrays soon
|
||||||
List<double> lastBeats = new();
|
List<double> lastBeats = new();
|
||||||
List<int> lastLayers = new();
|
List<int> lastLayers = new();
|
||||||
foreach (var marker in Selections.instance.eventsSelected)
|
foreach (var marker in Selections.instance.eventsSelected)
|
||||||
|
@ -318,6 +323,7 @@ namespace HeavenStudio.Editor.Track
|
||||||
|
|
||||||
if (Input.GetMouseButton(1) || Input.GetMouseButton(2)) return;
|
if (Input.GetMouseButton(1) || Input.GetMouseButton(2)) return;
|
||||||
if (!moving)
|
if (!moving)
|
||||||
|
if (!altWhenClicked)
|
||||||
altWhenClicked = Input.GetKey(KeyCode.LeftAlt);
|
altWhenClicked = Input.GetKey(KeyCode.LeftAlt);
|
||||||
|
|
||||||
if (!altWhenClicked)
|
if (!altWhenClicked)
|
||||||
|
@ -500,7 +506,7 @@ namespace HeavenStudio.Editor.Track
|
||||||
|
|
||||||
public void SetColor(int type)
|
public void SetColor(int type)
|
||||||
{
|
{
|
||||||
var c = EditorTheme.theme.LayersGradient.Evaluate(type / (float)(Timeline.instance.LayerCount - 1));
|
var c = EditorTheme.theme.LayerGradientIndex(type);
|
||||||
transform.GetChild(0).GetComponent<Image>().color = c;
|
transform.GetChild(0).GetComponent<Image>().color = c;
|
||||||
|
|
||||||
if (resizable)
|
if (resizable)
|
||||||
|
|
Loading…
Reference in a new issue