modifier, zoom formula, tab name

tab name is future proofing.
also, dllnotfoundexception when using the file explorer? wtf
This commit is contained in:
AstrlJelly 2024-05-07 23:20:02 -04:00
parent 8dbc41dbcc
commit 24d3ee1afd
14 changed files with 382 additions and 167 deletions

View file

@ -0,0 +1,107 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: FOT-Rodin Pro B SDF Game Title
m_Shader: {fileID: 4800000, guid: 68e6db2ebdc24f95958faec2be5558d6, type: 3}
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _Cube:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _FaceTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: -6916996860123676527, guid: 4810e200fa0cb24438bac52343d7674b, type: 2}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OutlineTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _Ambient: 0.5
- _Bevel: 0.5
- _BevelClamp: 0
- _BevelOffset: 0
- _BevelRoundness: 0
- _BevelWidth: 0
- _BumpFace: 0
- _BumpOutline: 0
- _ColorMask: 15
- _CullMode: 0
- _Diffuse: 0.5
- _FaceDilate: 0.71
- _FaceUVSpeedX: 0
- _FaceUVSpeedY: 0
- _GlowInner: 0.05
- _GlowOffset: 0
- _GlowOuter: 0.05
- _GlowPower: 0.75
- _GradientScale: 10
- _LightAngle: 3.1416
- _MaskSoftnessX: 0
- _MaskSoftnessY: 0
- _OutlineSoftness: 0
- _OutlineUVSpeedX: 0
- _OutlineUVSpeedY: 0
- _OutlineWidth: 1
- _PerspectiveFilter: 0.875
- _Reflectivity: 10
- _ScaleRatioA: 0.47430828
- _ScaleRatioB: 0.092250064
- _ScaleRatioC: 0.092250064
- _ScaleX: 1
- _ScaleY: 1
- _ShaderFlags: 0
- _Sharpness: 0
- _SpecularPower: 2
- _Stencil: 0
- _StencilComp: 8
- _StencilOp: 0
- _StencilReadMask: 255
- _StencilWriteMask: 255
- _TextureHeight: 1024
- _TextureWidth: 1024
- _UnderlayDilate: 0
- _UnderlayOffsetX: 0
- _UnderlayOffsetY: 0
- _UnderlaySoftness: 0
- _VertexOffsetX: 0
- _VertexOffsetY: 0
- _WeightBold: 0.75
- _WeightNormal: 0
m_Colors:
- _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767}
- _EnvMatrixRotation: {r: 0, g: 0, b: 0, a: 0}
- _FaceColor: {r: 1, g: 1, b: 1, a: 1}
- _GlowColor: {r: 0, g: 1, b: 0, a: 0.5}
- _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767}
- _OutlineColor: {r: 0, g: 0, b: 0, a: 1}
- _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1}
- _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
- _UnderlayColor: {r: 0, g: 0, b: 0, a: 0.5}
m_BuildTextureStacks: []

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 17640bfdd8e085c43ad7e657ba4e5903
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View file

@ -414,9 +414,9 @@ RectTransform:
m_Father: {fileID: 574002313} m_Father: {fileID: 574002313}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: -21}
m_SizeDelta: {x: 32, y: 32} m_SizeDelta: {x: 32, y: 32}
m_Pivot: {x: 0, y: 0.5} m_Pivot: {x: 0, y: 0.5}
--- !u!114 &9435782 --- !u!114 &9435782
@ -4092,9 +4092,9 @@ RectTransform:
m_Father: {fileID: 539838476} m_Father: {fileID: 539838476}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 32, y: -21}
m_SizeDelta: {x: 32, y: 32} m_SizeDelta: {x: 32, y: 32}
m_Pivot: {x: 1, y: 0.5} m_Pivot: {x: 1, y: 0.5}
--- !u!114 &121871281 --- !u!114 &121871281
@ -4328,9 +4328,9 @@ RectTransform:
m_Father: {fileID: 539838476} m_Father: {fileID: 539838476}
m_RootOrder: 1 m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 72, y: -21}
m_SizeDelta: {x: 32, y: 32} m_SizeDelta: {x: 32, y: 32}
m_Pivot: {x: 1, y: 0.5} m_Pivot: {x: 1, y: 0.5}
--- !u!114 &129013734 --- !u!114 &129013734
@ -4541,9 +4541,9 @@ RectTransform:
m_Father: {fileID: 539838476} m_Father: {fileID: 539838476}
m_RootOrder: 2 m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 112, y: -21}
m_SizeDelta: {x: 32, y: 32} m_SizeDelta: {x: 32, y: 32}
m_Pivot: {x: 1, y: 0.5} m_Pivot: {x: 1, y: 0.5}
--- !u!114 &151246938 --- !u!114 &151246938
@ -5044,7 +5044,7 @@ MonoBehaviour:
m_Top: 0 m_Top: 0
m_Bottom: 0 m_Bottom: 0
m_ChildAlignment: 4 m_ChildAlignment: 4
m_Spacing: 0 m_Spacing: -10
m_ChildForceExpandWidth: 1 m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 1 m_ChildForceExpandHeight: 1
m_ChildControlWidth: 0 m_ChildControlWidth: 0
@ -6991,7 +6991,7 @@ MonoBehaviour:
m_text: Title m_text: Title
m_isRightToLeft: 0 m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 4810e200fa0cb24438bac52343d7674b, type: 2} m_fontAsset: {fileID: 11400000, guid: 4810e200fa0cb24438bac52343d7674b, type: 2}
m_sharedMaterial: {fileID: 8580487687356851718, guid: 4810e200fa0cb24438bac52343d7674b, type: 2} m_sharedMaterial: {fileID: 2100000, guid: 17640bfdd8e085c43ad7e657ba4e5903, type: 2}
m_fontSharedMaterials: [] m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0} m_fontMaterial: {fileID: 0}
m_fontMaterials: [] m_fontMaterials: []
@ -7018,9 +7018,9 @@ MonoBehaviour:
m_fontSize: 28 m_fontSize: 28
m_fontSizeBase: 28 m_fontSizeBase: 28
m_fontWeight: 400 m_fontWeight: 400
m_enableAutoSizing: 0 m_enableAutoSizing: 1
m_fontSizeMin: 8 m_fontSizeMin: 8
m_fontSizeMax: 24.3 m_fontSizeMax: 28
m_fontStyle: 1 m_fontStyle: 1
m_HorizontalAlignment: 2 m_HorizontalAlignment: 2
m_VerticalAlignment: 512 m_VerticalAlignment: 512
@ -7429,7 +7429,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: 656.00006, y: -25} m_AnchoredPosition: {x: 656.0001, y: -25}
m_SizeDelta: {x: 1288.0001, y: 40} m_SizeDelta: {x: 1288.0001, y: 40}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &278632245 --- !u!114 &278632245
@ -8731,7 +8731,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 172.05, y: 28} m_SizeDelta: {x: 169.39, y: 28}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &320483642 --- !u!114 &320483642
MonoBehaviour: MonoBehaviour:
@ -9859,9 +9859,85 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 3.4253845, y: 0} m_AnchoredPosition: {x: 3.425354, y: 0}
m_SizeDelta: {x: -6.8507814, y: 36} m_SizeDelta: {x: -6.8507814, y: 36}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &360512139
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 360512140}
- component: {fileID: 360512142}
- component: {fileID: 360512141}
m_Layer: 8
m_Name: DimEvents
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &360512140
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 360512139}
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: 1050802356}
m_RootOrder: 4
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: -8, y: 0}
m_SizeDelta: {x: 760, y: 444.12}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &360512141
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 360512139}
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, g: 0, b: 0, a: 0.50980395}
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 &360512142
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 360512139}
m_CullTransparentMesh: 1
--- !u!1 &365187977 --- !u!1 &365187977
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -14605,8 +14681,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -25.350006} m_AnchoredPosition: {x: 0, y: -23.20501}
m_SizeDelta: {x: 0, y: -54.69} m_SizeDelta: {x: 0, y: -50.39}
m_Pivot: {x: 0, y: 0.5} m_Pivot: {x: 0, y: 0.5}
--- !u!114 &546272878 --- !u!114 &546272878
MonoBehaviour: MonoBehaviour:
@ -17546,7 +17622,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: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -2, y: -51.1} m_AnchoredPosition: {x: -2, y: -48.399994}
m_SizeDelta: {x: -36, y: 2} m_SizeDelta: {x: -36, y: 2}
m_Pivot: {x: 0.5, y: 0} m_Pivot: {x: 0.5, y: 0}
--- !u!114 &643814084 --- !u!114 &643814084
@ -23663,7 +23739,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: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -0.000038146973} m_AnchoredPosition: {x: 0, y: -0.000030517578}
m_SizeDelta: {x: -14.000054, y: 0} m_SizeDelta: {x: -14.000054, y: 0}
m_Pivot: {x: 0, y: 1} m_Pivot: {x: 0, y: 1}
--- !u!114 &830452353 --- !u!114 &830452353
@ -29439,6 +29515,7 @@ RectTransform:
- {fileID: 246861489} - {fileID: 246861489}
- {fileID: 643814083} - {fileID: 643814083}
- {fileID: 546272877} - {fileID: 546272877}
- {fileID: 360512140}
- {fileID: 1056099132} - {fileID: 1056099132}
m_Father: {fileID: 374760605} m_Father: {fileID: 374760605}
m_RootOrder: 2 m_RootOrder: 2
@ -29650,12 +29727,12 @@ RectTransform:
m_Children: m_Children:
- {fileID: 590210126} - {fileID: 590210126}
m_Father: {fileID: 1050802356} m_Father: {fileID: 1050802356}
m_RootOrder: 4 m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -25.050003} m_AnchoredPosition: {x: 0, y: -23.200005}
m_SizeDelta: {x: 0, y: -54.1} m_SizeDelta: {x: 0, y: -50.4}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1056099133 --- !u!114 &1056099133
MonoBehaviour: MonoBehaviour:
@ -31462,7 +31539,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: 124.9388} m_AnchoredPosition: {x: 0, y: 122.897575}
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
@ -31509,13 +31586,15 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d9d826be8d1e71d4c971f5ed377ee873, type: 3} m_Script: {fileID: 11500000, guid: d9d826be8d1e71d4c971f5ed377ee873, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
GameEventSelectorCanScroll: {fileID: 110654310}
GameEventHolder: {fileID: 590210126}
tabsManager: {fileID: 0}
SelectedGameIcon: {fileID: 0} SelectedGameIcon: {fileID: 0}
GameEventSelector: {fileID: 1056099131} GameEventSelector: {fileID: 1056099131}
EventRef: {fileID: 1149103344} EventRef: {fileID: 1149103344}
CurrentSelected: {fileID: 841081095} CurrentSelected: {fileID: 841081095}
Scrollbar: {fileID: 910102826} Scrollbar: {fileID: 910102826}
GameSelectionRect: {fileID: 1183003086} GameSelectionRect: {fileID: 1183003086}
GameEventSelectorCanScroll: {fileID: 110654310}
SearchBar: {fileID: 320483642} SearchBar: {fileID: 320483642}
currentEventIndex: 0 currentEventIndex: 0
Square: {fileID: 2800000, guid: ef2fa2a75dc283e40b9d4fe1f20dc6fb, type: 3} Square: {fileID: 2800000, guid: ef2fa2a75dc283e40b9d4fe1f20dc6fb, type: 3}
@ -35849,9 +35928,9 @@ RectTransform:
m_Father: {fileID: 574002313} m_Father: {fileID: 574002313}
m_RootOrder: 1 m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 40, y: -21}
m_SizeDelta: {x: 32, y: 32} m_SizeDelta: {x: 32, y: 32}
m_Pivot: {x: 0, y: 0.5} m_Pivot: {x: 0, y: 0.5}
--- !u!114 &1345846031 --- !u!114 &1345846031
@ -41416,8 +41495,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: 0.9999995 m_Value: 1.0000002
m_Size: 0.6203498 m_Size: 0.60344017
m_NumberOfSteps: 0 m_NumberOfSteps: 0
m_OnValueChanged: m_OnValueChanged:
m_PersistentCalls: m_PersistentCalls:
@ -43226,7 +43305,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: 0.000061035156, y: 0.000061035156} m_AnchoredPosition: {x: 0.000061035156, y: -0.000030517578}
m_SizeDelta: {x: 100, y: 350} m_SizeDelta: {x: 100, y: 350}
m_Pivot: {x: 0, y: 1} m_Pivot: {x: 0, y: 1}
--- !u!114 &1702073032 --- !u!114 &1702073032
@ -44985,9 +45064,9 @@ RectTransform:
m_Father: {fileID: 574002313} m_Father: {fileID: 574002313}
m_RootOrder: 2 m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 80, y: -21}
m_SizeDelta: {x: 32, y: 32} m_SizeDelta: {x: 32, y: 32}
m_Pivot: {x: 0, y: 0.5} m_Pivot: {x: 0, y: 0.5}
--- !u!114 &1783491359 --- !u!114 &1783491359
@ -48664,7 +48743,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180}
m_AnchorMin: {x: 0.5, y: 1} m_AnchorMin: {x: 0.5, y: 1}
m_AnchorMax: {x: 0.5, y: 1} m_AnchorMax: {x: 0.5, y: 1}
m_AnchoredPosition: {x: 0, y: 0.30000305} m_AnchoredPosition: {x: 0, y: 0.2999878}
m_SizeDelta: {x: 18.8, y: 18.8} m_SizeDelta: {x: 18.8, y: 18.8}
m_Pivot: {x: 0.5, y: 0} m_Pivot: {x: 0.5, y: 0}
--- !u!114 &1928361020 --- !u!114 &1928361020
@ -54136,11 +54215,11 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 4198503453639850605, guid: e66ea59167e0edc41ad445d9226040a7, type: 3} - target: {fileID: 4198503453639850605, guid: e66ea59167e0edc41ad445d9226040a7, type: 3}
propertyPath: m_AnchoredPosition.x propertyPath: m_AnchoredPosition.x
value: -557.2 value: -557.1998
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 4198503453639850605, guid: e66ea59167e0edc41ad445d9226040a7, type: 3} - target: {fileID: 4198503453639850605, guid: e66ea59167e0edc41ad445d9226040a7, type: 3}
propertyPath: m_AnchoredPosition.y propertyPath: m_AnchoredPosition.y
value: -303.1 value: -303.09998
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 4198503453639850605, guid: e66ea59167e0edc41ad445d9226040a7, type: 3} - target: {fileID: 4198503453639850605, guid: e66ea59167e0edc41ad445d9226040a7, type: 3}
propertyPath: m_LocalEulerAnglesHint.x propertyPath: m_LocalEulerAnglesHint.x

View file

@ -33,6 +33,11 @@ namespace HeavenStudio.InputSystem
{ {
public class InputKeyboard : InputController public class InputKeyboard : InputController
{ {
#if UNITY_STANDALONE_OSX
public const KeyCode MODIFIER = KeyCode.LeftCommand;
#else
public const KeyCode MODIFIER = KeyCode.LeftControl;
#endif
private static readonly KeyCode[] keyCodes = Enum.GetValues(typeof(KeyCode)) private static readonly KeyCode[] keyCodes = Enum.GetValues(typeof(KeyCode))
.Cast<KeyCode>() .Cast<KeyCode>()
.Where(k => ((int)k < (int)KeyCode.Mouse0)) .Where(k => ((int)k < (int)KeyCode.Mouse0))

View file

@ -16,6 +16,7 @@ using Jukebox;
using UnityEditor; using UnityEditor;
using System.Linq; using System.Linq;
using BurstLinq; using BurstLinq;
using HeavenStudio.InputSystem;
namespace HeavenStudio.Editor namespace HeavenStudio.Editor
{ {
@ -178,7 +179,7 @@ namespace HeavenStudio.Editor
CommandManager.Instance.AddCommand(new Commands.Delete(Selections.instance.eventsSelected.Select(c => c.entity.guid).ToList())); CommandManager.Instance.AddCommand(new Commands.Delete(Selections.instance.eventsSelected.Select(c => c.entity.guid).ToList()));
} }
if (Input.GetKey(KeyCode.LeftControl) && !fullscreen) if (Input.GetKey(InputKeyboard.MODIFIER) && !fullscreen)
{ {
if (Input.GetKeyDown(KeyCode.Z)) if (Input.GetKeyDown(KeyCode.Z))
{ {
@ -201,7 +202,7 @@ namespace HeavenStudio.Editor
} }
} }
if (Input.GetKey(KeyCode.LeftControl)) if (Input.GetKey(InputKeyboard.MODIFIER))
{ {
if (Input.GetKeyDown(KeyCode.N)) if (Input.GetKeyDown(KeyCode.N))
{ {

View file

@ -95,8 +95,7 @@ namespace HeavenStudio.Editor
{ {
string[] split = entity.datamodel.Split('/'); string[] split = entity.datamodel.Split('/');
var minigame = EventCaller.instance.GetMinigame(split[0]); var minigame = EventCaller.instance.GetMinigame(split[0]);
int actionIndex = minigame.actions.IndexOf(minigame.actions.Find(c => c.actionName == split[1])); Minigames.GameAction action = minigame.actions.Find(c => c.actionName == split[1]);
Minigames.GameAction action = minigame.actions[actionIndex];
if (action.parameters != null) if (action.parameters != null)
{ {
@ -111,7 +110,13 @@ namespace HeavenStudio.Editor
4 => EditorTheme.theme.properties.Layer5Col, 4 => EditorTheme.theme.properties.Layer5Col,
_ => EditorTheme.theme.properties.Layer1Col _ => EditorTheme.theme.properties.Layer1Col
}; };
Editor.instance.SetGameEventTitle($"Properties for <color=#{col}>{action.displayName}</color> on Beat {entity.beat.ToString("F2")} on <color=#{col}>Track {(int)entity["track"] + 1}</color>"); string gameName = action.displayName;
const int cutOff = 20;
if (gameName.Length > (cutOff + 3)) {
gameName = gameName[..cutOff] + "...";
}
Editor.instance.SetGameEventTitle($"<color=#{col}>{gameName}</color> at ♪ {entity.beat:F2} on <color=#{col}>Track {(int)entity["track"] + 1}</color>");
DestroyParams(); DestroyParams();

View file

@ -12,6 +12,8 @@ using HeavenStudio.Util;
using HeavenStudio.Editor.Track; using HeavenStudio.Editor.Track;
using System.Text; using System.Text;
using System.Configuration; using System.Configuration;
using System;
using HeavenStudio.InputSystem;
namespace HeavenStudio.Editor namespace HeavenStudio.Editor
{ {
@ -163,7 +165,7 @@ namespace HeavenStudio.Editor
UpdateIndex(index, false); UpdateIndex(index, false);
// Editor.instance?.SetGameEventTitle($"Select game event for {SelectedMinigame.displayName.Replace("\n", "")}"); // Editor.instance?.SetGameEventTitle($"Select game event for {SelectedMinigame.displayName.Replace("\n", "")}");
Editor.instance?.SetGameEventTitle(SelectedMinigame.displayName.Replace("\n", "")); if (Editor.instance != null) Editor.instance.SetGameEventTitle(SelectedMinigame.displayName.Replace("\n", ""));
} }
private void AddEvents(int index = 0) private void AddEvents(int index = 0)
@ -173,7 +175,9 @@ namespace HeavenStudio.Editor
GameObject sg = Instantiate(EventRef, eventsParent); GameObject sg = Instantiate(EventRef, eventsParent);
sg.GetComponentInChildren<TMP_Text>().text = "Switch Game"; sg.GetComponentInChildren<TMP_Text>().text = "Switch Game";
sg.SetActive(true); sg.SetActive(true);
if (index == 0) sg.GetComponentInChildren<TMP_Text>().color = EditorTheme.theme.properties.EventSelectedCol.Hex2RGB(); if (index == 0) {
sg.GetComponentInChildren<TMP_Text>().color = EditorTheme.theme.properties.EventSelectedCol.Hex2RGB();
}
} else { } else {
index++; index++;
if (SelectedMinigame.name == "gameManager") index++; if (SelectedMinigame.name == "gameManager") index++;
@ -195,7 +199,6 @@ namespace HeavenStudio.Editor
label.color = EditorTheme.theme.properties.EventSelectedCol.Hex2RGB(); label.color = EditorTheme.theme.properties.EventSelectedCol.Hex2RGB();
g.SetActive(true); g.SetActive(true);
} }
} }
@ -236,28 +239,24 @@ namespace HeavenStudio.Editor
} }
} }
// TODO: find the equation to get the sizes automatically, nobody's been able to figure one out yet (might have to be manual?)
public void Zoom() public void Zoom()
{ {
if (!Input.GetKey(KeyCode.LeftControl)) return; if (!Input.GetKey(InputKeyboard.MODIFIER)) return;
var glg = GetComponent<GridLayoutGroup>(); var glg = GetComponent<GridLayoutGroup>();
var sizes = new List<float>() { int max = 20; // arbitrary
309.9f, // 1
152.6f, // 2
100.0f, // 3
73.8f, // 4
58.1f, // 5
48.6f, // 6
40.1f, // 7
34.5f, // 8
30.0f, // 9
26.5f, // 10
};
if (glg.constraintCount + 1 > sizes.Count && Input.GetAxisRaw("Mouse ScrollWheel") < 0) return; if (glg.constraintCount + 1 > max && Input.mouseScrollDelta.y < 0) return;
glg.constraintCount += (Input.GetAxisRaw("Mouse ScrollWheel") > 0) ? -1 : 1; glg.constraintCount += (Input.mouseScrollDelta.y > 0) ? -1 : 1;
glg.cellSize = Vector2.one * sizes[glg.constraintCount - 1];
// thanks to blank3times (tri) for helping me with this
var size = (1 / (0.00317 * glg.constraintCount)) - 4.75248;
// this, however, doesn't work
// var totalWidth = Editor.instance.GridGameSelectorRect.rect.width;
// var size = (totalWidth - glg.padding.right) * (glg.constraintCount + 1) / glg.constraintCount;
glg.cellSize = Vector2.one * (float)size;
} }
// method called when clicking the sort button in the editor, skips sorting fx only "games" // method called when clicking the sort button in the editor, skips sorting fx only "games"
@ -267,21 +266,14 @@ namespace HeavenStudio.Editor
List<RectTransform> mgsSort = mgsActive; List<RectTransform> mgsSort = mgsActive;
mgsSort.Sort((x, y) => string.Compare(x.name, y.name)); mgsSort.Sort((x, y) => string.Compare(x.name, y.name));
switch (type) Action<List<RectTransform>> action = type switch {
{ "favorites" => SortFavorites,
case "favorites": "chronologic" => SortChronologic,
SortFavorites(mgsSort); "usage" => SortUsage,
break; _ => SortAlphabet
case "chronologic": };
SortChronologic(mgsSort);
break; action.Invoke(mgsSort);
case "usage":
SortUsage(mgsSort);
break;
default: // "alphabet"
SortAlphabet(mgsSort);
break;
}
} }
void SortAlphabet(List<RectTransform> mgs) void SortAlphabet(List<RectTransform> mgs)
@ -295,7 +287,7 @@ namespace HeavenStudio.Editor
string AlphabetSortKey(RectTransform minigame) string AlphabetSortKey(RectTransform minigame)
{ {
Minigames.Minigame mg = EventCaller.instance.GetMinigame(minigame.name); Minigames.Minigame mg = EventCaller.instance.GetMinigame(minigame.name);
if (mg.displayName.StartsWith("the ", System.StringComparison.InvariantCultureIgnoreCase)) if (mg.displayName.StartsWith("the ", StringComparison.InvariantCultureIgnoreCase))
return mg.displayName[4..]; return mg.displayName[4..];
else else
return mg.displayName; return mg.displayName;
@ -413,7 +405,13 @@ namespace HeavenStudio.Editor
public void Drag() public void Drag()
{ {
if (Conductor.instance.NotStopped() || Editor.instance.inAuthorativeMenu) return; Debug.Log("Hmmm");
if (Conductor.instance.NotStopped() || Editor.instance.inAuthorativeMenu) {
if (Conductor.instance.isPaused) {
Debug.Log("it's fuckin paused dude");
}
return;
}
if (Timeline.instance.MouseInTimeline && dragTimes < 1) if (Timeline.instance.MouseInTimeline && dragTimes < 1)
{ {

View file

@ -4,6 +4,7 @@ using System.Linq;
using UnityEngine; using UnityEngine;
using HeavenStudio.Editor.Track; using HeavenStudio.Editor.Track;
using HeavenStudio.InputSystem;
namespace HeavenStudio.Editor namespace HeavenStudio.Editor
{ {
@ -31,7 +32,7 @@ namespace HeavenStudio.Editor
*/ */
if (Editor.instance.isShortcutsEnabled) if (Editor.instance.isShortcutsEnabled)
{ {
if (Input.GetKey(KeyCode.LeftControl)) if (Input.GetKey(InputKeyboard.MODIFIER))
if (Input.GetKeyDown(KeyCode.A)) if (Input.GetKeyDown(KeyCode.A))
SelectAll(); SelectAll();
} }

View file

@ -9,6 +9,7 @@ using HeavenStudio.Util;
using TMPro; using TMPro;
using Jukebox; using Jukebox;
using Jukebox.Legacy; using Jukebox.Legacy;
using HeavenStudio.InputSystem;
namespace HeavenStudio.Editor.Track namespace HeavenStudio.Editor.Track
{ {
@ -155,7 +156,7 @@ namespace HeavenStudio.Editor.Track
{ {
lastTempo *= 2f; lastTempo *= 2f;
} }
else if (Input.GetKey(KeyCode.LeftControl) || Input.GetKey(KeyCode.RightControl)) else if (Input.GetKey(InputKeyboard.MODIFIER) || Input.GetKey(KeyCode.RightCommand))
{ {
lastTempo /= 2f; lastTempo /= 2f;
} }

View file

@ -7,6 +7,7 @@ using TMPro;
using DG.Tweening; using DG.Tweening;
using Jukebox; using Jukebox;
using Jukebox.Legacy; using Jukebox.Legacy;
using HeavenStudio.InputSystem;
namespace HeavenStudio.Editor.Track namespace HeavenStudio.Editor.Track
{ {
@ -30,8 +31,9 @@ namespace HeavenStudio.Editor.Track
if (Input.GetKey(KeyCode.LeftShift)) if (Input.GetKey(KeyCode.LeftShift))
newTempo *= 5f; newTempo *= 5f;
if (Input.GetKey(KeyCode.LeftControl)) if (Input.GetKey(InputKeyboard.MODIFIER)) {
newTempo *= 0.01f; newTempo *= 0.01f;
}
if (newTempo != 0) if (newTempo != 0)
{ {

View file

@ -7,6 +7,7 @@ using TMPro;
using DG.Tweening; using DG.Tweening;
using Jukebox; using Jukebox;
using Jukebox.Legacy; using Jukebox.Legacy;
using HeavenStudio.InputSystem;
namespace HeavenStudio.Editor.Track namespace HeavenStudio.Editor.Track
{ {
@ -30,9 +31,9 @@ namespace HeavenStudio.Editor.Track
if (Input.GetKey(KeyCode.LeftShift)) if (Input.GetKey(KeyCode.LeftShift))
newVolume *= 5f; newVolume *= 5f;
if (Input.GetKey(KeyCode.LeftControl)) if (Input.GetKey(InputKeyboard.MODIFIER)) {
newVolume *= 0.01f; newVolume *= 0.01f;
}
if (newVolume != 0) if (newVolume != 0)
{ {
SetVolume(chartEntity["volume"] + newVolume); SetVolume(chartEntity["volume"] + newVolume);

View file

@ -12,6 +12,7 @@ using System.Linq;
using BurstLinq; using BurstLinq;
using HeavenStudio.Util; using HeavenStudio.Util;
using HeavenStudio.InputSystem;
namespace HeavenStudio.Editor.Track namespace HeavenStudio.Editor.Track
{ {
@ -474,11 +475,11 @@ namespace HeavenStudio.Editor.Track
float moveSpeed = 750; float moveSpeed = 750;
if (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) moveSpeed *= 6; if (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) moveSpeed *= 6;
if (Input.GetKey(KeyCode.LeftArrow) || (!Input.GetKey(KeyCode.LeftControl) && Input.GetKey(KeyCode.A))) if (Input.GetKey(InputKeyboard.MODIFIER) || (!Input.GetKey(KeyCode.LeftControl) && Input.GetKey(KeyCode.A)))
{ {
RealTimelineContent.transform.localPosition += new Vector3(moveSpeed * Time.deltaTime, 0); RealTimelineContent.transform.localPosition += new Vector3(moveSpeed * Time.deltaTime, 0);
} }
else if (Input.GetKey(KeyCode.RightArrow) || (!Input.GetKey(KeyCode.LeftControl) && Input.GetKey(KeyCode.D))) else if (Input.GetKey(InputKeyboard.MODIFIER) || (!Input.GetKey(KeyCode.LeftControl) && Input.GetKey(KeyCode.D)))
{ {
RealTimelineContent.transform.localPosition += new Vector3(-moveSpeed * Time.deltaTime, 0); RealTimelineContent.transform.localPosition += new Vector3(-moveSpeed * Time.deltaTime, 0);
} }

View file

@ -1,3 +1,4 @@
using HeavenStudio.InputSystem;
using UnityEngine; using UnityEngine;
using UnityEngine.EventSystems; using UnityEngine.EventSystems;
@ -49,13 +50,13 @@ namespace HeavenStudio.Editor.Track
} }
if (scrollDeltaY > 0) { if (scrollDeltaY > 0) {
if (Input.GetKey(KeyCode.LeftControl)) { if (Input.GetKey(InputKeyboard.MODIFIER)) {
ZoomInVertical(); ZoomInVertical();
} else { } else {
ZoomInHorizontal(); ZoomInHorizontal();
} }
} else if (scrollDeltaY < 0) { } else if (scrollDeltaY < 0) {
if (Input.GetKey(KeyCode.LeftControl)) { if (Input.GetKey(InputKeyboard.MODIFIER)) {
ZoomOutVertical(); ZoomOutVertical();
} else { } else {
ZoomOutHorizontal(); ZoomOutHorizontal();

View file

@ -197,9 +197,9 @@ namespace HeavenStudio
public static RiqBeatmapData? PreProcessBeatmap(string version, RiqBeatmapData data) public static RiqBeatmapData? PreProcessBeatmap(string version, RiqBeatmapData data)
{ {
Debug.Log("Preprocessing beatmap..."); Debug.Log("Preprocessing beatmap...");
Minigames.Minigame game; Minigame game;
Minigames.GameAction action; GameAction action;
System.Type type, pType; Type type, pType;
if (EventCaller.instance != null) if (EventCaller.instance != null)
{ {
string[] split; string[] split;
@ -212,7 +212,7 @@ namespace HeavenStudio
if (game == null) if (game == null)
{ {
Debug.LogWarning($"Unknown game {gameName} found in remix.json! Adding game..."); Debug.LogWarning($"Unknown game {gameName} found in remix.json! Adding game...");
game = new Minigames.Minigame(gameName, gameName.DisplayName() + " \n<color=#eb5454>[inferred from remix.json]</color>", "", false, false, new List<Minigames.GameAction>(), inferred: true); game = new Minigame(gameName, gameName.DisplayName() + " \n<color=#eb5454>[inferred from remix.json]</color>", "", false, false, new List<GameAction>(), inferred: true);
EventCaller.instance.minigames.Add(gameName, game); EventCaller.instance.minigames.Add(gameName, game);
if (Editor.Editor.instance != null) if (Editor.Editor.instance != null)
Editor.Editor.instance.AddIcon(game); Editor.Editor.instance.AddIcon(game);
@ -221,7 +221,7 @@ namespace HeavenStudio
if (action == null) if (action == null)
{ {
Debug.LogWarning($"Unknown action {gameName}/{actionName} found in remix.json! Adding action..."); Debug.LogWarning($"Unknown action {gameName}/{actionName} found in remix.json! Adding action...");
var parameters = new List<Minigames.Param>(); var parameters = new List<Param>();
foreach (var item in e.dynamicData) foreach (var item in e.dynamicData)
{ {
Debug.Log($"k: {item.Key}, v: {item.Value}"); Debug.Log($"k: {item.Key}, v: {item.Value}");
@ -234,9 +234,9 @@ namespace HeavenStudio
value = new EntityTypes.Integer(int.MinValue, int.MaxValue, (int)value); value = new EntityTypes.Integer(int.MinValue, int.MaxValue, (int)value);
else if (value.GetType() == typeof(double)) else if (value.GetType() == typeof(double))
value = new EntityTypes.Float(float.NegativeInfinity, float.PositiveInfinity, (float)value); value = new EntityTypes.Float(float.NegativeInfinity, float.PositiveInfinity, (float)value);
parameters.Add(new Minigames.Param(item.Key, value, item.Key.DisplayName(), "[inferred from remix.json]")); parameters.Add(new Param(item.Key, value, item.Key.DisplayName(), "[inferred from remix.json]"));
} }
action = new Minigames.GameAction(actionName, actionName.DisplayName(), e.length, true, parameters); action = new GameAction(actionName, actionName.DisplayName(), "Events", e.length, true, parameters);
game.actions.Add(action); game.actions.Add(action);
} }
@ -250,12 +250,14 @@ namespace HeavenStudio
if (!e.dynamicData.ContainsKey(param.propertyName)) if (!e.dynamicData.ContainsKey(param.propertyName))
{ {
Debug.LogWarning($"Property {param.propertyName} does not exist in the entity's dynamic data! Adding..."); Debug.LogWarning($"Property {param.propertyName} does not exist in the entity's dynamic data! Adding...");
if (type == typeof(EntityTypes.Integer)) if (param.parameter is EntityTypes.Integer intParam)
e.dynamicData.Add(param.propertyName, ((EntityTypes.Integer)param.parameter).val); e.dynamicData.Add(param.propertyName, intParam.val);
else if (type == typeof(EntityTypes.Float)) if (param.parameter is EntityTypes.Float floatParam)
e.dynamicData.Add(param.propertyName, ((EntityTypes.Float)param.parameter).val); e.dynamicData.Add(param.propertyName, floatParam.val);
else if (type == typeof(EntityTypes.Note)) if (param.parameter is EntityTypes.Dropdown ddParam)
e.dynamicData.Add(param.propertyName, ((EntityTypes.Note)param.parameter).val); e.dynamicData.Add(param.propertyName, new EntityTypes.DropdownObj(ddParam));
if (param.parameter is EntityTypes.Note noteParam)
e.dynamicData.Add(param.propertyName, noteParam.val);
else if (type.IsEnum) else if (type.IsEnum)
e.dynamicData.Add(param.propertyName, (int)param.parameter); e.dynamicData.Add(param.propertyName, (int)param.parameter);
else else
@ -657,6 +659,7 @@ namespace HeavenStudio
{ {
public string actionName; public string actionName;
public string displayName; public string displayName;
public string tabName;
public EventCallback function = delegate { }; public EventCallback function = delegate { };
public float defaultLength = 1; public float defaultLength = 1;
public bool resizable = false; public bool resizable = false;
@ -682,11 +685,12 @@ namespace HeavenStudio
/// <param name="preFunction">What the block does when the GameManager seeks to this cue for pre-scheduling.</param> /// <param name="preFunction">What the block does when the GameManager seeks to this cue for pre-scheduling.</param>
/// <param name="hidden">Prevents the block from being shown in the game list. Block will still function normally if it is in the timeline.</param> /// <param name="hidden">Prevents the block from being shown in the game list. Block will still function normally if it is in the timeline.</param>
/// <param name="priority">Priority of this event. Higher priority events will be run first.</param> /// <param name="priority">Priority of this event. Higher priority events will be run first.</param>
public GameAction(string actionName, string displayName, float defaultLength = 1, bool resizable = false, List<Param> parameters = null, EventCallback function = null, EventCallback inactiveFunction = null, EventCallback preFunction = null, bool hidden = false, int priority = 0, float preFunctionLength = 2.0f) public GameAction(string actionName, string displayName, string tabName, float defaultLength = 1, bool resizable = false, List<Param> parameters = null, EventCallback function = null, EventCallback inactiveFunction = null, EventCallback preFunction = null, bool hidden = false, int priority = 0, float preFunctionLength = 2.0f)
{ {
this.actionName = actionName; this.actionName = actionName;
if (displayName == String.Empty) this.displayName = actionName; this.displayName = string.IsNullOrEmpty(displayName) ? actionName : displayName;
else this.displayName = displayName; this.tabName = string.IsNullOrEmpty(tabName) ? "Events" : tabName;
this.defaultLength = defaultLength; this.defaultLength = defaultLength;
this.resizable = resizable; this.resizable = resizable;
this.parameters = parameters; this.parameters = parameters;
@ -704,11 +708,12 @@ namespace HeavenStudio
/// </summary> /// </summary>
/// <param name="actionName">Entity model name</param> /// <param name="actionName">Entity model name</param>
/// <param name="displayName">Name of the block used in the UI</param> /// <param name="displayName">Name of the block used in the UI</param>
public GameAction(string actionName, string displayName) /// <param name="tabName">Name of the tab to be under when spawning events</param>
public GameAction(string actionName, string displayName, string tabName = "")
{ {
this.actionName = actionName; this.actionName = actionName;
if (displayName == String.Empty) this.displayName = actionName; this.displayName = string.IsNullOrEmpty(displayName) ? actionName : displayName;
else this.displayName = displayName; this.tabName = tabName == string.Empty ? "Events" : tabName; // keep it null if it's null
} }
} }
@ -762,7 +767,7 @@ namespace HeavenStudio
{ {
new Minigame("gameManager", "Game Manager", "", false, true, new List<GameAction>() new Minigame("gameManager", "Game Manager", "", false, true, new List<GameAction>()
{ {
new GameAction("switchGame", "Switch Game", 0.5f, false, new GameAction("switchGame", "Switch Game", null, 0.5f, false,
function: delegate { var e = eventCaller.currentEntity; GameManager.instance.SwitchGame(eventCaller.currentSwitchGame, eventCaller.currentEntity.beat, e["toggle"]); }, function: delegate { var e = eventCaller.currentEntity; GameManager.instance.SwitchGame(eventCaller.currentSwitchGame, eventCaller.currentEntity.beat, e["toggle"]); },
parameters: new List<Param>() parameters: new List<Param>()
{ {
@ -770,7 +775,7 @@ namespace HeavenStudio
}, },
inactiveFunction: delegate { var e = eventCaller.currentEntity; GameManager.instance.SwitchGame(eventCaller.currentSwitchGame, eventCaller.currentEntity.beat, e["toggle"]); } inactiveFunction: delegate { var e = eventCaller.currentEntity; GameManager.instance.SwitchGame(eventCaller.currentSwitchGame, eventCaller.currentEntity.beat, e["toggle"]); }
), ),
new GameAction("end", "End Remix", new GameAction("end", "End Remix", "",
function: delegate { function: delegate {
Debug.Log("end"); Debug.Log("end");
if (Timeline.instance != null) if (Timeline.instance != null)
@ -779,7 +784,7 @@ namespace HeavenStudio
GameManager.instance.Stop(eventCaller.currentEntity.beat); GameManager.instance.Stop(eventCaller.currentEntity.beat);
} }
), ),
new GameAction("skill star", "Skill Star", 1f, true) new GameAction("skill star", "Skill Star", "", 1f, true)
{ {
//temp for testing //temp for testing
function = delegate { function = delegate {
@ -787,7 +792,7 @@ namespace HeavenStudio
Common.SkillStarManager.instance.DoStarIn(e.beat, e.length); Common.SkillStarManager.instance.DoStarIn(e.beat, e.length);
} }
}, },
new GameAction("toggle inputs", "Toggle Inputs", 0.5f, true, new GameAction("toggle inputs", "Toggle Inputs", "", 0.5f, true,
new List<Param>() new List<Param>()
{ {
new Param("toggle", true, "Allow Inputs", "Toggle if the player is able to input. Any missed cues while this is disabled will not be counted as a miss and will not break a perfect.") new Param("toggle", true, "Allow Inputs", "Toggle if the player is able to input. Any missed cues while this is disabled will not be counted as a miss and will not break a perfect.")
@ -801,7 +806,7 @@ namespace HeavenStudio
new Minigame("countIn", "Count-Ins", "", false, true, new List<GameAction>() new Minigame("countIn", "Count-Ins", "", false, true, new List<GameAction>()
{ {
new GameAction("count-in", "Count-In", 4f, true, new GameAction("count-in", "Count-In", "Built", 4f, true,
new List<Param>() new List<Param>()
{ {
new Param("alt", false, "Alt", "Set the type of sounds to use for the count-in."), new Param("alt", false, "Alt", "Set the type of sounds to use for the count-in."),
@ -812,7 +817,7 @@ namespace HeavenStudio
SoundEffects.CountIn(e.beat, e.length, e["alt"], e["go"]); SoundEffects.CountIn(e.beat, e.length, e["alt"], e["go"]);
} }
), ),
new GameAction("4 beat count-in", "4 Beat Count-In", 4f, true, new GameAction("4 beat count-in", "4 Beat Count-In", "Built", 4f, true,
new List<Param>() new List<Param>()
{ {
new Param("type", SoundEffects.CountInType.Normal, "Type", "Set the type of sounds to use for the count-in.") new Param("type", SoundEffects.CountInType.Normal, "Type", "Set the type of sounds to use for the count-in.")
@ -822,7 +827,7 @@ namespace HeavenStudio
SoundEffects.FourBeatCountIn(e.beat, e.length / 4f, e["type"]); SoundEffects.FourBeatCountIn(e.beat, e.length / 4f, e["type"]);
} }
), ),
new GameAction("8 beat count-in", "8 Beat Count-In", 8f, true, new GameAction("8 beat count-in", "8 Beat Count-In", "Built", 8f, true,
new List<Param>() new List<Param>()
{ {
new Param("type", SoundEffects.CountInType.Normal, "Type", "Set the type of sounds to use for the count-in.") new Param("type", SoundEffects.CountInType.Normal, "Type", "Set the type of sounds to use for the count-in.")
@ -832,7 +837,7 @@ namespace HeavenStudio
SoundEffects.EightBeatCountIn(e.beat, e.length / 8f, e["type"]); SoundEffects.EightBeatCountIn(e.beat, e.length / 8f, e["type"]);
} }
), ),
new GameAction("count", "Count", 1f, false, new GameAction("count", "Count", "Single", 1f, false,
new List<Param>() new List<Param>()
{ {
new Param("type", SoundEffects.CountNumbers.One, "Type", "Set the number to say."), new Param("type", SoundEffects.CountNumbers.One, "Type", "Set the number to say."),
@ -843,16 +848,16 @@ namespace HeavenStudio
SoundEffects.Count(e["type"], e["toggle"]); SoundEffects.Count(e["type"], e["toggle"]);
} }
), ),
new GameAction("cowbell", "Cowbell", new GameAction("cowbell", "Cowbell", "Single",
function: delegate { SoundEffects.Cowbell(); } function: delegate { SoundEffects.Cowbell(); }
), ),
new GameAction("ready!", "Ready!", 2f, true, new GameAction("ready!", "Ready!", "Single", 2f, true,
function: delegate { var e = eventCaller.currentEntity; SoundEffects.Ready(e.beat, (e.length / 2f)); } function: delegate { var e = eventCaller.currentEntity; SoundEffects.Ready(e.beat, (e.length / 2f)); }
), ),
new GameAction("and", "And", 0.5f, new GameAction("and", "And", "Single", 0.5f,
function: delegate { SoundEffects.And(); } function: delegate { SoundEffects.And(); }
), ),
new GameAction("go!", "Go!", 1f, false, new GameAction("go!", "Go!", "Single", 1f, false,
new List<Param>() new List<Param>()
{ {
new Param("toggle", false, "Alt", "Toggle if the alternate version of this voice line should be used.") new Param("toggle", false, "Alt", "Toggle if the alternate version of this voice line should be used.")
@ -860,26 +865,26 @@ namespace HeavenStudio
function: delegate { SoundEffects.Go(eventCaller.currentEntity["toggle"]); } function: delegate { SoundEffects.Go(eventCaller.currentEntity["toggle"]); }
), ),
// These are still here for backwards-compatibility but are hidden in the editor // // These are still here for backwards-compatibility but are hidden in the editor
new GameAction("4 beat count-in (alt)", "", 4f, function: delegate { var e = eventCaller.currentEntity; SoundEffects.FourBeatCountIn(e.beat, e.length, 1); }, hidden: true), // new GameAction("4 beat count-in (alt)", "", 4f, function: delegate { var e = eventCaller.currentEntity; SoundEffects.FourBeatCountIn(e.beat, e.length, 1); }, hidden: true),
new GameAction("4 beat count-in (cowbell)", "", 4f, function: delegate { var e = eventCaller.currentEntity; SoundEffects.FourBeatCountIn(e.beat, e.length, 2); }, hidden: true), // new GameAction("4 beat count-in (cowbell)", "", 4f, function: delegate { var e = eventCaller.currentEntity; SoundEffects.FourBeatCountIn(e.beat, e.length, 2); }, hidden: true),
new GameAction("8 beat count-in (alt)", "", 8f, function: delegate { var e = eventCaller.currentEntity; SoundEffects.EightBeatCountIn(e.beat, e.length, 1); }, hidden: true), // new GameAction("8 beat count-in (alt)", "", 8f, function: delegate { var e = eventCaller.currentEntity; SoundEffects.EightBeatCountIn(e.beat, e.length, 1); }, hidden: true),
new GameAction("8 beat count-in (cowbell)", "", 8f, function: delegate { var e = eventCaller.currentEntity; SoundEffects.EightBeatCountIn(e.beat, e.length, 2); }, hidden: true), // new GameAction("8 beat count-in (cowbell)", "", 8f, function: delegate { var e = eventCaller.currentEntity; SoundEffects.EightBeatCountIn(e.beat, e.length, 2); }, hidden: true),
new GameAction("one", "", function: delegate { SoundEffects.Count(0, false); }, hidden: true), // new GameAction("one", "", function: delegate { SoundEffects.Count(0, false); }, hidden: true),
new GameAction("two", "", function: delegate { SoundEffects.Count(1, false); }, hidden: true), // new GameAction("two", "", function: delegate { SoundEffects.Count(1, false); }, hidden: true),
new GameAction("three", "", function: delegate { SoundEffects.Count(2, false); }, hidden: true), // new GameAction("three", "", function: delegate { SoundEffects.Count(2, false); }, hidden: true),
new GameAction("four", "", function: delegate { SoundEffects.Count(3, false); }, hidden: true), // new GameAction("four", "", function: delegate { SoundEffects.Count(3, false); }, hidden: true),
new GameAction("one (alt)", "", function: delegate { SoundEffects.Count(0, true); }, hidden: true), // new GameAction("one (alt)", "", function: delegate { SoundEffects.Count(0, true); }, hidden: true),
new GameAction("two (alt)", "", function: delegate { SoundEffects.Count(1, true); }, hidden: true), // new GameAction("two (alt)", "", function: delegate { SoundEffects.Count(1, true); }, hidden: true),
new GameAction("three (alt)", "", function: delegate { SoundEffects.Count(2, true); }, hidden: true), // new GameAction("three (alt)", "", function: delegate { SoundEffects.Count(2, true); }, hidden: true),
new GameAction("four (alt)", "", function: delegate { SoundEffects.Count(3, true); }, hidden: true), // new GameAction("four (alt)", "", function: delegate { SoundEffects.Count(3, true); }, hidden: true),
new GameAction("go! (alt)", "", function: delegate { SoundEffects.Go(true); }, hidden: true), // new GameAction("go! (alt)", "", function: delegate { SoundEffects.Go(true); }, hidden: true),
}), }),
new Minigame("vfx", "Visual Effects", "", false, true, new List<GameAction>() new Minigame("vfx", "Visual Effects", "", false, true, new List<GameAction>()
{ {
new GameAction("flash", "Flash/Fade", 1f, true, new GameAction("flash", "Flash/Fade", "VFX", 1f, true,
new List<Param>() new List<Param>()
{ {
new Param("colorA", Color.white, "Start Color", "Set the color at the start of the event."), new Param("colorA", Color.white, "Start Color", "Set the color at the start of the event."),
@ -892,7 +897,7 @@ namespace HeavenStudio
}) })
} }
), ),
new GameAction("filter", "Filter", 1f, true, new GameAction("filter", "Filter", "VFX", 1f, true,
new List<Param>() new List<Param>()
{ {
new Param("filter", Games.Global.Filter.FilterType.grayscale, "Type", "Set the type of filter to use."), new Param("filter", Games.Global.Filter.FilterType.grayscale, "Type", "Set the type of filter to use."),
@ -912,7 +917,7 @@ namespace HeavenStudio
}), }),
} }
), ),
new GameAction("move camera", "Move Camera", 1f, true, new List<Param>() new GameAction("move camera", "Move Camera", "Camera", 1f, true, new List<Param>()
{ {
new Param("valA", new EntityTypes.Float(-50, 50, 0), "Right / Left", "Set the position on the X axis."), new Param("valA", new EntityTypes.Float(-50, 50, 0), "Right / Left", "Set the position on the X axis."),
new Param("valB", new EntityTypes.Float(-50, 50, 0), "Up / Down", "Set the position on the Y axis."), new Param("valB", new EntityTypes.Float(-50, 50, 0), "Up / Down", "Set the position on the Y axis."),
@ -921,7 +926,7 @@ namespace HeavenStudio
new Param("axis", GameCamera.CameraAxis.All, "Axis", "Set if only a specific axis should be modified." ) new Param("axis", GameCamera.CameraAxis.All, "Axis", "Set if only a specific axis should be modified." )
} }
), ),
new GameAction("rotate camera", "Rotate Camera", 1f, true, new List<Param>() new GameAction("rotate camera", "Rotate Camera", "Camera", 1f, true, new List<Param>()
{ {
new Param("valA", new EntityTypes.Integer(-360, 360, 0), "Pitch", "Set the up/down rotation."), new Param("valA", new EntityTypes.Integer(-360, 360, 0), "Pitch", "Set the up/down rotation."),
new Param("valB", new EntityTypes.Integer(-360, 360, 0), "Yaw", "Set the left/right rotation."), new Param("valB", new EntityTypes.Integer(-360, 360, 0), "Yaw", "Set the left/right rotation."),
@ -930,7 +935,7 @@ namespace HeavenStudio
new Param("axis", GameCamera.CameraAxis.All, "Axis", "Set if only a specific axis should be modified." ) new Param("axis", GameCamera.CameraAxis.All, "Axis", "Set if only a specific axis should be modified." )
} }
), ),
new GameAction("pan view", "Pan Viewport", 1f, true, new List<Param>() new GameAction("pan view", "Pan Viewport", "Camera", 1f, true, new List<Param>()
{ {
new Param("valA", new EntityTypes.Float(-50, 50, 0), "Right / Left", "Set the position on the X axis."), new Param("valA", new EntityTypes.Float(-50, 50, 0), "Right / Left", "Set the position on the X axis."),
new Param("valB", new EntityTypes.Float(-50, 50, 0), "Up / Down", "Set the position on the Y axis."), new Param("valB", new EntityTypes.Float(-50, 50, 0), "Up / Down", "Set the position on the Y axis."),
@ -938,13 +943,13 @@ namespace HeavenStudio
new Param("axis", StaticCamera.ViewAxis.All, "Axis", "Set if only a specific axis should be modified." ) new Param("axis", StaticCamera.ViewAxis.All, "Axis", "Set if only a specific axis should be modified." )
} }
), ),
new GameAction("rotate view", "Rotate Viewport", 1f, true, new List<Param>() new GameAction("rotate view", "Rotate Viewport", "Camera", 1f, true, new List<Param>()
{ {
new Param("valA", new EntityTypes.Float(-360, 360, 0), "Rotation", "Set the clockwise/counterclockwise rotation."), new Param("valA", new EntityTypes.Float(-360, 360, 0), "Rotation", "Set the clockwise/counterclockwise rotation."),
new Param("ease", Util.EasingFunction.Ease.Linear, "Ease", "Set the easing of the action."), new Param("ease", Util.EasingFunction.Ease.Linear, "Ease", "Set the easing of the action."),
} }
), ),
new GameAction("scale view", "Scale Viewport", 1f, true, new List<Param>() new GameAction("scale view", "Scale Viewport", "Camera", 1f, true, new List<Param>()
{ {
new Param("valA", new EntityTypes.Float(-50f, 50, 1), "Width", "Set the width of the viewport."), new Param("valA", new EntityTypes.Float(-50f, 50, 1), "Width", "Set the width of the viewport."),
new Param("valB", new EntityTypes.Float(-50f, 50, 1), "Height", "Set the height of the viewport."), new Param("valB", new EntityTypes.Float(-50f, 50, 1), "Height", "Set the height of the viewport."),
@ -952,7 +957,7 @@ namespace HeavenStudio
new Param("axis", StaticCamera.ViewAxis.All, "Axis", "Set if only a specific axis should be modified." ) new Param("axis", StaticCamera.ViewAxis.All, "Axis", "Set if only a specific axis should be modified." )
} }
), ),
new("stretch camera", "Stretch Camera") new("stretch camera", "Stretch Camera", "Camera")
{ {
resizable = true, resizable = true,
parameters = new() parameters = new()
@ -968,7 +973,7 @@ namespace HeavenStudio
new Param("axis", GameCamera.CameraAxis.All, "Axis", "Set if only a specific axis should be modified.") new Param("axis", GameCamera.CameraAxis.All, "Axis", "Set if only a specific axis should be modified.")
} }
}, },
new GameAction("fitScreen", "Force Game Stretching To Window") new GameAction("fitScreen", "Force Game Stretching To Window", "Camera")
{ {
defaultLength = 0.5f, defaultLength = 0.5f,
parameters = new() parameters = new()
@ -976,7 +981,7 @@ namespace HeavenStudio
new("enable", true, "Enabled", "Toggle if the game should be forced to stretch to the window size, removing the letterbox.") new("enable", true, "Enabled", "Toggle if the game should be forced to stretch to the window size, removing the letterbox.")
} }
}, },
new GameAction("screen shake", "Screen Shake", 1f, true, new GameAction("screen shake", "Screen Shake", "Camera", 1f, true,
new List<Param>() new List<Param>()
{ {
new Param("easedA", new EntityTypes.Float(0, 10, 0), "Start Horizontal Intensity", "Set the horizontal intensity of the screen shake at the start of the event."), new Param("easedA", new EntityTypes.Float(0, 10, 0), "Start Horizontal Intensity", "Set the horizontal intensity of the screen shake at the start of the event."),
@ -989,7 +994,7 @@ namespace HeavenStudio
}), }),
} }
), ),
new GameAction("display textbox", "Display Textbox", 1f, true, new List<Param>() new GameAction("display textbox", "Display Textbox", "Text", 1f, true, new List<Param>()
{ {
new Param("text1", "", "Text", "Set the text to display in the textbox. Rich text is supported."), new Param("text1", "", "Text", "Set the text to display in the textbox. Rich text is supported."),
new Param("type", Games.Global.Textbox.TextboxAnchor.TopMiddle, "Anchor", "Set where to anchor the textbox."), new Param("type", Games.Global.Textbox.TextboxAnchor.TopMiddle, "Anchor", "Set where to anchor the textbox."),
@ -997,7 +1002,7 @@ namespace HeavenStudio
new Param("valB", new EntityTypes.Float(0.5f, 8, 1), "Height", "Set the height of the textbox.") new Param("valB", new EntityTypes.Float(0.5f, 8, 1), "Height", "Set the height of the textbox.")
} }
), ),
new GameAction("display open captions", "Display Open Captions", 1f, true, new GameAction("display open captions", "Display Open Captions", "Text", 1f, true,
new List<Param>() new List<Param>()
{ {
new Param("text1", "", "Text", "Set the text to display in the captions. Rich text is supported."), new Param("text1", "", "Text", "Set the text to display in the captions. Rich text is supported."),
@ -1006,7 +1011,7 @@ namespace HeavenStudio
new Param("valB", new EntityTypes.Float(0.5f, 8, 1), "Height", "Set the height of the captions.") new Param("valB", new EntityTypes.Float(0.5f, 8, 1), "Height", "Set the height of the captions.")
} }
), ),
new GameAction("display closed captions", "Display Closed Captions", 1f, true, new GameAction("display closed captions", "Display Closed Captions", "Text", 1f, true,
new List<Param>() new List<Param>()
{ {
new Param("text1", "", "Text", "Set the text to display in the captions. Rich text is supported."), new Param("text1", "", "Text", "Set the text to display in the captions. Rich text is supported."),
@ -1014,7 +1019,7 @@ namespace HeavenStudio
new Param("valA", new EntityTypes.Float(0.5f, 4, 1), "Height", "Set the height of the captions.") new Param("valA", new EntityTypes.Float(0.5f, 4, 1), "Height", "Set the height of the captions.")
} }
), ),
new GameAction("display song artist", "Display Song Info", 1f, true, new GameAction("display song artist", "Display Song Info", "Text", 1f, true,
new List<Param>() new List<Param>()
{ {
new Param("text1", "", "Title", "Set the text to display in the upper label. Rich text is supported."), new Param("text1", "", "Title", "Set the text to display in the upper label. Rich text is supported."),
@ -1023,7 +1028,7 @@ namespace HeavenStudio
new Param("instantOff", false, "Instant Hide", "Toggle if the slide-out animation should be skipped."), new Param("instantOff", false, "Instant Hide", "Toggle if the slide-out animation should be skipped."),
} }
), ),
new GameAction("camera background color", "Camera Background Color", 1, true, new List<Param>() new GameAction("camera background color", "Camera Background Color", "Camera", 1, true, new List<Param>()
{ {
new Param("color", Color.black, "Start Color", "Set the color at the start of the event."), new Param("color", Color.black, "Start Color", "Set the color at the start of the event."),
new Param("color2", Color.black, "End Color", "Set the color at the end of the event."), new Param("color2", Color.black, "End Color", "Set the color at the end of the event."),
@ -1032,7 +1037,7 @@ namespace HeavenStudio
), ),
// Post Processing VFX // Post Processing VFX
new GameAction("vignette", "Vignette") new GameAction("vignette", "Vignette", "VFX")
{ {
resizable = true, resizable = true,
parameters = new() parameters = new()
@ -1056,7 +1061,7 @@ namespace HeavenStudio
}), }),
} }
}, },
new GameAction("cabb", "Chromatic Aberration") new GameAction("cabb", "Chromatic Aberration", "VFX")
{ {
resizable = true, resizable = true,
parameters = new() parameters = new()
@ -1069,7 +1074,7 @@ namespace HeavenStudio
}), }),
} }
}, },
new GameAction("bloom", "Bloom") new GameAction("bloom", "Bloom", "VFX")
{ {
resizable = true, resizable = true,
parameters = new() parameters = new()
@ -1095,7 +1100,7 @@ namespace HeavenStudio
}), }),
} }
}, },
new GameAction("lensD", "Lens Distortion") new GameAction("lensD", "Lens Distortion", "VFX")
{ {
resizable = true, resizable = true,
parameters = new() parameters = new()
@ -1114,7 +1119,7 @@ namespace HeavenStudio
}), }),
} }
}, },
new GameAction("grain", "Grain") new GameAction("grain", "Grain", "VFX")
{ {
resizable = true, resizable = true,
parameters = new() parameters = new()
@ -1134,7 +1139,7 @@ namespace HeavenStudio
} }
}, },
new GameAction("colorGrading", "Color Grading") new GameAction("colorGrading", "Color Grading", "VFX")
{ {
resizable = true, resizable = true,
parameters = new() parameters = new()
@ -1167,7 +1172,7 @@ namespace HeavenStudio
} }
}, },
new GameAction("gaussBlur", "Gaussian Blur") new GameAction("gaussBlur", "Gaussian Blur", "VFX")
{ {
resizable = true, resizable = true,
parameters = new() parameters = new()
@ -1182,7 +1187,7 @@ namespace HeavenStudio
} }
}, },
new GameAction("retroTv", "Retro TV") new GameAction("retroTv", "Retro TV", "VFX")
{ {
resizable = true, resizable = true,
parameters = new() parameters = new()
@ -1206,7 +1211,7 @@ namespace HeavenStudio
} }
}, },
new GameAction("scanJitter", "Scan Line Jitter") new GameAction("scanJitter", "Scan Line Jitter", "VFX")
{ {
resizable = true, resizable = true,
parameters = new() parameters = new()
@ -1221,7 +1226,7 @@ namespace HeavenStudio
} }
}, },
new GameAction("analogNoise", "Analog Noise") new GameAction("analogNoise", "Analog Noise", "VFX")
{ {
resizable = true, resizable = true,
parameters = new() parameters = new()
@ -1242,7 +1247,7 @@ namespace HeavenStudio
} }
}, },
new GameAction("screenJump", "Screen Jump") new GameAction("screenJump", "Screen Jump", "VFX")
{ {
resizable = true, resizable = true,
parameters = new() parameters = new()
@ -1257,7 +1262,7 @@ namespace HeavenStudio
} }
}, },
new GameAction("sobelNeon", "Neon") new GameAction("sobelNeon", "Neon", "VFX")
{ {
resizable = true, resizable = true,
parameters = new() parameters = new()
@ -1284,7 +1289,7 @@ namespace HeavenStudio
}, },
new GameAction("screenTiling", "Tile Screen") new GameAction("screenTiling", "Tile Screen", "VFX")
{ {
resizable = true, resizable = true,
parameters = new() parameters = new()
@ -1300,7 +1305,7 @@ namespace HeavenStudio
}), }),
} }
}, },
new GameAction("scrollTiles", "Scroll Tiles") new GameAction("scrollTiles", "Scroll Tiles", "VFX")
{ {
resizable = true, resizable = true,
parameters = new() parameters = new()
@ -1322,7 +1327,7 @@ namespace HeavenStudio
new Minigame("advanced", "Advanced", "", false, true, new List<GameAction>() new Minigame("advanced", "Advanced", "", false, true, new List<GameAction>()
{ {
new GameAction("play animation", "Play Animation", 0.5f, false, new GameAction("play animation", "Play Animation", "Play", 0.5f, false,
new List<Param>() new List<Param>()
{ {
new Param("getAnimators", new EntityTypes.Button("No Game", e => { new Param("getAnimators", new EntityTypes.Button("No Game", e => {
@ -1377,7 +1382,7 @@ namespace HeavenStudio
GameManager.instance.PlayAnimationArbitrary(e["animator"].CurrentValue, e["animation"].CurrentValue, e["scale"]); GameManager.instance.PlayAnimationArbitrary(e["animator"].CurrentValue, e["animation"].CurrentValue, e["scale"]);
} }
), ),
new GameAction("play sfx", "Play SFX", 0.5f, true, new GameAction("play sfx", "Play SFX", "Play", 0.5f, true,
new List<Param>() new List<Param>()
{ {
new Param("game", new EntityTypes.Dropdown(), "Which Game", "Specify the game's sfx to play. An empty input will play global sfx."), new Param("game", new EntityTypes.Dropdown(), "Which Game", "Specify the game's sfx to play. An empty input will play global sfx."),