From d21659894828ecb2de4f24b781dd100684d27655 Mon Sep 17 00:00:00 2001 From: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Tue, 28 Nov 2023 19:43:15 +0100 Subject: [PATCH] switch game --- Assets/Scenes/Editor.unity | 412 +++++++++++++++++- .../EventSelector/GameSelectionCategory.cs | 9 +- .../EventSelector/GridGameSelector.cs | 11 + .../EventSelector/NewGameSelectionEvent.cs | 25 +- 4 files changed, 441 insertions(+), 16 deletions(-) diff --git a/Assets/Scenes/Editor.unity b/Assets/Scenes/Editor.unity index dd21ad082..a22118a24 100644 --- a/Assets/Scenes/Editor.unity +++ b/Assets/Scenes/Editor.unity @@ -1031,6 +1031,143 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 36781033} m_CullTransparentMesh: 1 +--- !u!1 &39249302 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 39249303} + - component: {fileID: 39249305} + - component: {fileID: 39249304} + m_Layer: 8 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &39249303 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 39249302} + 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: 1534153865} + 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 &39249304 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 39249302} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Switch Game + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8597c35f18a008c428fc5870aec75766, type: 2} + m_sharedMaterial: {fileID: -6562250930271150993, guid: 8597c35f18a008c428fc5870aec75766, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 11400000, guid: 927b27aa43f92654698b45ec04aef8e5, type: 2} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 12 + m_fontSizeMax: 24 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 1 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 35.48349, y: 3.1797714, z: 41.111343, w: 2.4906673} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &39249305 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 39249302} + m_CullTransparentMesh: 1 --- !u!1 &44197994 GameObject: m_ObjectHideFlags: 0 @@ -12135,6 +12272,7 @@ RectTransform: m_Children: - {fileID: 1821358811} - {fileID: 903291194} + - {fileID: 1534153865} m_Father: {fileID: 1050802356} m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -21902,7 +22040,7 @@ MonoBehaviour: m_TargetGraphic: {fileID: 1589389272} m_HandleRect: {fileID: 1589389271} m_Direction: 2 - m_Value: 0 + m_Value: 1 m_Size: 1 m_NumberOfSteps: 0 m_OnValueChanged: @@ -27043,7 +27181,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 1, y: 0.5} - m_AnchoredPosition: {x: 0, y: 199.06123} + m_AnchoredPosition: {x: 0, y: 199.06116} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 1} --- !u!222 &1154875945 @@ -27105,6 +27243,7 @@ MonoBehaviour: ignoreSelectCount: 2 _newGameEventSelector: {fileID: 516264814} _categoryManager: {fileID: 879299405} + _switchGameEvent: {fileID: 1534153869} --- !u!114 &1154875948 MonoBehaviour: m_ObjectHideFlags: 0 @@ -34989,6 +35128,199 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1532984040} m_CullTransparentMesh: 1 +--- !u!1 &1534153864 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1534153865} + - component: {fileID: 1534153870} + - component: {fileID: 1534153869} + - component: {fileID: 1534153868} + - component: {fileID: 1534153867} + - component: {fileID: 1534153866} + m_Layer: 8 + m_Name: SwitchGameEvent + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1534153865 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1534153864} + 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: 39249303} + - {fileID: 1584791286} + m_Father: {fileID: 516264815} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -286.5, y: 6.899994} + m_SizeDelta: {x: 250, y: 30} + m_Pivot: {x: 0, y: 0} +--- !u!95 &1534153866 +Animator: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1534153864} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: c762f326d8522c349b1ca12eec1ed1b5, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 +--- !u!114 &1534153867 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1534153864} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1534153869} + m_TargetAssemblyTypeName: HeavenStudio.Editor.NewGameSelectionEvent, Assembly-CSharp + m_MethodName: PointerEnter + 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 + - eventID: 1 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1534153869} + m_TargetAssemblyTypeName: HeavenStudio.Editor.NewGameSelectionEvent, Assembly-CSharp + m_MethodName: PointerExit + 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 + - eventID: 2 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1534153869} + m_TargetAssemblyTypeName: HeavenStudio.Editor.NewGameSelectionEvent, Assembly-CSharp + m_MethodName: PointerDown + 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 + - eventID: 3 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1534153869} + m_TargetAssemblyTypeName: HeavenStudio.Editor.NewGameSelectionEvent, Assembly-CSharp + m_MethodName: PointerUp + 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 &1534153868 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1534153864} + 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.2627451, g: 0.2627451, b: 0.2627451, 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: 1401309272, guid: bd48ded17f064414eb670529c2375358, 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!114 &1534153869 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1534153864} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e516a0af70289ed41b99296cf8aacbc9, type: 3} + m_Name: + m_EditorClassIdentifier: + _text: {fileID: 39249304} + _gearIcon: {fileID: 1584791285} +--- !u!222 &1534153870 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1534153864} + m_CullTransparentMesh: 1 --- !u!1 &1534220298 GameObject: m_ObjectHideFlags: 0 @@ -35999,6 +36331,82 @@ MonoBehaviour: m_EditorClassIdentifier: m_Padding: {x: -8, y: -5, z: -8, w: -5} m_Softness: {x: 0, y: 0} +--- !u!1 &1584791285 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1584791286} + - component: {fileID: 1584791288} + - component: {fileID: 1584791287} + m_Layer: 8 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1584791286 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1584791285} + 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: 1534153865} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -16, y: 0} + m_SizeDelta: {x: 25, y: -12} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1584791287 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1584791285} + 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: 9d635a6edbcd76549a58fd1b4640cc99, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1584791288 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1584791285} + m_CullTransparentMesh: 1 --- !u!1 &1585542809 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/LevelEditor/EventSelector/GameSelectionCategory.cs b/Assets/Scripts/LevelEditor/EventSelector/GameSelectionCategory.cs index b1a2d1e08..fcdf80be2 100644 --- a/Assets/Scripts/LevelEditor/EventSelector/GameSelectionCategory.cs +++ b/Assets/Scripts/LevelEditor/EventSelector/GameSelectionCategory.cs @@ -24,12 +24,6 @@ namespace HeavenStudio.Editor _manager = manager; } - public bool NoHover - { - get => _manager.NoHover; - set => _manager.NoHover = value; - } - public void SetHeaderText(string text) { _headerText.text = text; @@ -51,7 +45,8 @@ namespace HeavenStudio.Editor spawnedEvent.SetText(action.displayName); spawnedEvent.SetActiveGearIcon(action.parameters != null && action.parameters.Count > 0); spawnedEvent.gameObject.SetActive(true); - spawnedEvent.SetCategory(this); + spawnedEvent.SetMaster(_manager); + spawnedEvent.SetAction(action); _gameSelectionEventList.Add(spawnedEvent); } diff --git a/Assets/Scripts/LevelEditor/EventSelector/GridGameSelector.cs b/Assets/Scripts/LevelEditor/EventSelector/GridGameSelector.cs index f0141255d..abe5ea586 100644 --- a/Assets/Scripts/LevelEditor/EventSelector/GridGameSelector.cs +++ b/Assets/Scripts/LevelEditor/EventSelector/GridGameSelector.cs @@ -53,6 +53,7 @@ namespace HeavenStudio.Editor eventsParent = EventRef.transform.parent.GetChild(2).GetComponent(); SelectedMinigame = EventCaller.instance.GetMinigame(fxActive[0].name); + _switchGameEvent.SetMaster(_categoryManager); SwitchGameSelectionType(PersistentDataManager.gameSettings.useOldGameEventSelectionSystem); } @@ -459,6 +460,7 @@ namespace HeavenStudio.Editor [Header("New Game Event Selection")] [SerializeField] private GameObject _newGameEventSelector; [SerializeField] private GameSelectionCategoryManager _categoryManager; + [SerializeField] private NewGameSelectionEvent _switchGameEvent; private bool _usingOld = false; @@ -487,6 +489,15 @@ namespace HeavenStudio.Editor private void NewAddEvents(int index = 0) { + if (!EventCaller.FXOnlyGames().Contains(SelectedMinigame)) + { + _switchGameEvent.gameObject.SetActive(true); + _switchGameEvent.SetAction(EventCaller.instance.GetGameAction(SelectedMinigame, $"switchGame/{SelectedMinigame.name}")); + } + else + { + _switchGameEvent.gameObject.SetActive(false); + } _categoryManager.StartCategories(SelectedMinigame.actions, SelectedMinigame.name); } diff --git a/Assets/Scripts/LevelEditor/EventSelector/NewGameSelectionEvent.cs b/Assets/Scripts/LevelEditor/EventSelector/NewGameSelectionEvent.cs index e8ec9026e..252182f1d 100644 --- a/Assets/Scripts/LevelEditor/EventSelector/NewGameSelectionEvent.cs +++ b/Assets/Scripts/LevelEditor/EventSelector/NewGameSelectionEvent.cs @@ -14,16 +14,25 @@ namespace HeavenStudio.Editor private Animator _animator; - private GameSelectionCategory _category; + private GameSelectionCategoryManager _manager; + + private bool _shouldDoExitHoverAnim = true; + + private Minigames.GameAction _action; private void Awake() { _animator = GetComponent(); } - public void SetCategory(GameSelectionCategory category) + public void SetMaster(GameSelectionCategoryManager manager) { - _category = category; + _manager = manager; + } + + public void SetAction(Minigames.GameAction action) + { + _action = action; } public void SetText(string text) @@ -44,24 +53,26 @@ namespace HeavenStudio.Editor public void PointerDown() { _animator.Play("GameEventDrag", 0, 0); - _category.NoHover = true; + _manager.NoHover = true; + _shouldDoExitHoverAnim = false; } public void PointerUp() { _animator.Play("GameEventDragEnd", 0, 0); - _category.NoHover = false; + _manager.NoHover = false; } public void PointerEnter() { - if (_category.NoHover) return; + if (_manager.NoHover) return; _animator.Play("GameEventEnter", 0, 0); + _shouldDoExitHoverAnim = true; } public void PointerExit() { - if (_category.NoHover) return; + if (_manager.NoHover || !_shouldDoExitHoverAnim) return; _animator.Play("GameEventExit", 0, 0); } }