From abaecb53bee24e77322f6d1fbe7055291cdc5c7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Sch=C3=B6ner?= <tobias.stonehead@gmail.com> Date: Thu, 12 Jan 2023 23:33:47 +0100 Subject: [PATCH] feat: facts can now be marked as favorite Facts can be marked as favorite on middle mouse button click. Favorised facts are indicaded by a yellow star in the top right corner. Other fact displays will be updated accordingly and newly spawned fact displays will show the favorite star correctly. --- Assets/Images/Star.png | 3 + Assets/Images/Star.png.meta | 122 ++++++++++++++++++ .../Prefabs/UI/Facts/FavoriteStar.prefab | 78 +++++++++++ .../Prefabs/UI/Facts/FavoriteStar.prefab.meta | 7 + .../UI/Icons/FactIcons/DisplayAngle.prefab | 16 +++ .../FactIcons/DisplayAngleCircleLine.prefab | 16 +++ .../Icons/FactIcons/DisplayAreaCircle.prefab | 16 +++ .../UI/Icons/FactIcons/DisplayCircle.prefab | 16 +++ .../Icons/FactIcons/DisplayConeVolume.prefab | 16 +++ .../FactIcons/DisplayCylinderVolume.prefab | 16 +++ .../UI/Icons/FactIcons/DisplayDistance.prefab | 16 +++ .../FactIcons/DisplayEqualCircles.prefab | 16 +++ .../UI/Icons/FactIcons/DisplayLine.prefab | 16 +++ .../UI/Icons/FactIcons/DisplayOnCircle.prefab | 16 +++ .../UI/Icons/FactIcons/DisplayOnLine.prefab | 16 +++ .../DisplayOrthogonalCircleLine.prefab | 16 +++ .../FactIcons/DisplayParallelLine.prefab | 16 +++ .../UI/Icons/FactIcons/DisplayPoint.prefab | 16 +++ .../UI/Icons/FactIcons/DisplayRadius.prefab | 16 +++ .../FactIcons/DisplayRectangleFact.prefab | 16 +++ .../Icons/FactIcons/DisplayRightAngle.prefab | 16 +++ .../UI/Icons/FactIcons/DisplayTestFact.prefab | 16 +++ .../DisplayTruncatedConeVolume.prefab | 16 +++ .../FactIcons/DisplayUnequalCircles.prefab | 16 +++ .../UI/FactExplorer/FactFavorisation.cs | 84 ++++++++++++ .../UI/FactExplorer/FactFavorisation.cs.meta | 13 ++ 26 files changed, 627 insertions(+) create mode 100644 Assets/Images/Star.png create mode 100644 Assets/Images/Star.png.meta create mode 100644 Assets/Resources/Prefabs/UI/Facts/FavoriteStar.prefab create mode 100644 Assets/Resources/Prefabs/UI/Facts/FavoriteStar.prefab.meta create mode 100644 Assets/Scripts/UI/FactExplorer/FactFavorisation.cs create mode 100644 Assets/Scripts/UI/FactExplorer/FactFavorisation.cs.meta diff --git a/Assets/Images/Star.png b/Assets/Images/Star.png new file mode 100644 index 00000000..b06e2097 --- /dev/null +++ b/Assets/Images/Star.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57a99e41bec29fa8b0546fd92d9776f2672c23c627ff6b221f4cb505e3f160a0 +size 2468 diff --git a/Assets/Images/Star.png.meta b/Assets/Images/Star.png.meta new file mode 100644 index 00000000..8a57dbaa --- /dev/null +++ b/Assets/Images/Star.png.meta @@ -0,0 +1,122 @@ +fileFormatVersion: 2 +guid: 01aa7de3d8ed63949bbf69e3b492abfa +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 128 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/UI/Facts/FavoriteStar.prefab b/Assets/Resources/Prefabs/UI/Facts/FavoriteStar.prefab new file mode 100644 index 00000000..4e60f759 --- /dev/null +++ b/Assets/Resources/Prefabs/UI/Facts/FavoriteStar.prefab @@ -0,0 +1,78 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2810062559722195091 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1682989479718840691} + - component: {fileID: 7513145796292958282} + - component: {fileID: 8269486105486065185} + m_Layer: 0 + m_Name: FavoriteStar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1682989479718840691 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2810062559722195091} + 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: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 10, y: 10} + m_SizeDelta: {x: 30, y: 30} + m_Pivot: {x: 1, y: 1} +--- !u!222 &7513145796292958282 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2810062559722195091} + m_CullTransparentMesh: 1 +--- !u!114 &8269486105486065185 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2810062559722195091} + 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.98039216, g: 0.8608746, b: 0, 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: 01aa7de3d8ed63949bbf69e3b492abfa, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 diff --git a/Assets/Resources/Prefabs/UI/Facts/FavoriteStar.prefab.meta b/Assets/Resources/Prefabs/UI/Facts/FavoriteStar.prefab.meta new file mode 100644 index 00000000..91edf0b0 --- /dev/null +++ b/Assets/Resources/Prefabs/UI/Facts/FavoriteStar.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0b34469213856774980670de85a7d4a0 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayAngle.prefab b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayAngle.prefab index 0d415369..e96d0eac 100644 --- a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayAngle.prefab +++ b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayAngle.prefab @@ -421,6 +421,7 @@ GameObject: - component: {fileID: 114522817932931646} - component: {fileID: 3011926265969909947} - component: {fileID: 3573135846559875297} + - component: {fileID: -6877371120973083636} m_Layer: 5 m_Name: DisplayAngle m_TagString: Untagged @@ -553,3 +554,18 @@ MonoBehaviour: m_EditorClassIdentifier: factExplorerPrefab: {fileID: 5592893003942163674, guid: ff7415df1aac19c41a7855516a108a8a, type: 3} +--- !u!114 &-6877371120973083636 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6643637775379894484} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 88f8f222eb0a4a246908bde097a8726e, type: 3} + m_Name: + m_EditorClassIdentifier: + isFavourite: 0 + favoriteDisplayPrefab: {fileID: 2810062559722195091, guid: 0b34469213856774980670de85a7d4a0, + type: 3} diff --git a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayAngleCircleLine.prefab b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayAngleCircleLine.prefab index b93d84db..3e06c02a 100644 --- a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayAngleCircleLine.prefab +++ b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayAngleCircleLine.prefab @@ -151,6 +151,7 @@ GameObject: - component: {fileID: 7571158064837864710} - component: {fileID: 5437783688132341522} - component: {fileID: 7217286308176857857} + - component: {fileID: -1727938665847958892} m_Layer: 5 m_Name: DisplayAngleCircleLine m_TagString: Untagged @@ -282,6 +283,21 @@ MonoBehaviour: m_EditorClassIdentifier: factExplorerPrefab: {fileID: 5592893003942163674, guid: ff7415df1aac19c41a7855516a108a8a, type: 3} +--- !u!114 &-1727938665847958892 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4902928549420802332} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 88f8f222eb0a4a246908bde097a8726e, type: 3} + m_Name: + m_EditorClassIdentifier: + isFavourite: 0 + favoriteDisplayPrefab: {fileID: 2810062559722195091, guid: 0b34469213856774980670de85a7d4a0, + type: 3} --- !u!1 &7854085605173747270 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayAreaCircle.prefab b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayAreaCircle.prefab index e6a40983..786ac03b 100644 --- a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayAreaCircle.prefab +++ b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayAreaCircle.prefab @@ -151,6 +151,7 @@ GameObject: - component: {fileID: 6928182635216917115} - component: {fileID: 6811931286641226162} - component: {fileID: 4444078412922319222} + - component: {fileID: 3337022138894200663} m_Layer: 5 m_Name: DisplayAreaCircle m_TagString: Untagged @@ -281,3 +282,18 @@ MonoBehaviour: m_EditorClassIdentifier: factExplorerPrefab: {fileID: 5592893003942163674, guid: ff7415df1aac19c41a7855516a108a8a, type: 3} +--- !u!114 &3337022138894200663 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7016901710118546043} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 88f8f222eb0a4a246908bde097a8726e, type: 3} + m_Name: + m_EditorClassIdentifier: + isFavourite: 0 + favoriteDisplayPrefab: {fileID: 2810062559722195091, guid: 0b34469213856774980670de85a7d4a0, + type: 3} diff --git a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayCircle.prefab b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayCircle.prefab index 942f86f8..06f6962d 100644 --- a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayCircle.prefab +++ b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayCircle.prefab @@ -151,6 +151,7 @@ GameObject: - component: {fileID: 3896398116007953758} - component: {fileID: 1602337205070616824} - component: {fileID: -8545268462245846538} + - component: {fileID: 9193188298529412557} m_Layer: 5 m_Name: DisplayCircle m_TagString: Untagged @@ -281,3 +282,18 @@ MonoBehaviour: m_EditorClassIdentifier: factExplorerPrefab: {fileID: 5592893003942163674, guid: ff7415df1aac19c41a7855516a108a8a, type: 3} +--- !u!114 &9193188298529412557 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6636443472981757786} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 88f8f222eb0a4a246908bde097a8726e, type: 3} + m_Name: + m_EditorClassIdentifier: + isFavourite: 0 + favoriteDisplayPrefab: {fileID: 2810062559722195091, guid: 0b34469213856774980670de85a7d4a0, + type: 3} diff --git a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayConeVolume.prefab b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayConeVolume.prefab index 5689d1ac..6badc337 100644 --- a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayConeVolume.prefab +++ b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayConeVolume.prefab @@ -151,6 +151,7 @@ GameObject: - component: {fileID: 4263320076605886561} - component: {fileID: 2650353447837694094} - component: {fileID: -1328819392998620038} + - component: {fileID: -6663813448318375771} m_Layer: 5 m_Name: DisplayConeVolume m_TagString: Untagged @@ -281,3 +282,18 @@ MonoBehaviour: m_EditorClassIdentifier: factExplorerPrefab: {fileID: 5592893003942163674, guid: ff7415df1aac19c41a7855516a108a8a, type: 3} +--- !u!114 &-6663813448318375771 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2523593828849809055} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 88f8f222eb0a4a246908bde097a8726e, type: 3} + m_Name: + m_EditorClassIdentifier: + isFavourite: 0 + favoriteDisplayPrefab: {fileID: 2810062559722195091, guid: 0b34469213856774980670de85a7d4a0, + type: 3} diff --git a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayCylinderVolume.prefab b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayCylinderVolume.prefab index 864c2e31..5c52bc9c 100644 --- a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayCylinderVolume.prefab +++ b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayCylinderVolume.prefab @@ -151,6 +151,7 @@ GameObject: - component: {fileID: -7338472263132780475} - component: {fileID: 2130710490396271644} - component: {fileID: 8056345640559627384} + - component: {fileID: 4871256835944773533} m_Layer: 5 m_Name: DisplayCylinderVolume m_TagString: Untagged @@ -281,3 +282,18 @@ MonoBehaviour: m_EditorClassIdentifier: factExplorerPrefab: {fileID: 5592893003942163674, guid: ff7415df1aac19c41a7855516a108a8a, type: 3} +--- !u!114 &4871256835944773533 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5287418535931939099} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 88f8f222eb0a4a246908bde097a8726e, type: 3} + m_Name: + m_EditorClassIdentifier: + isFavourite: 0 + favoriteDisplayPrefab: {fileID: 2810062559722195091, guid: 0b34469213856774980670de85a7d4a0, + type: 3} diff --git a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayDistance.prefab b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayDistance.prefab index fb98003f..770ef544 100644 --- a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayDistance.prefab +++ b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayDistance.prefab @@ -16,6 +16,7 @@ GameObject: - component: {fileID: 2785940634305866798} - component: {fileID: 114476148939060428} - component: {fileID: 6775995842619458444} + - component: {fileID: 6595881491766313357} m_Layer: 5 m_Name: DisplayDistance m_TagString: Untagged @@ -147,6 +148,21 @@ MonoBehaviour: m_EditorClassIdentifier: factExplorerPrefab: {fileID: 5592893003942163674, guid: ff7415df1aac19c41a7855516a108a8a, type: 3} +--- !u!114 &6595881491766313357 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4221381813544557775} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 88f8f222eb0a4a246908bde097a8726e, type: 3} + m_Name: + m_EditorClassIdentifier: + isFavourite: 0 + favoriteDisplayPrefab: {fileID: 2810062559722195091, guid: 0b34469213856774980670de85a7d4a0, + type: 3} --- !u!1 &6379254425133528592 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayEqualCircles.prefab b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayEqualCircles.prefab index 2cb730c6..ecd96e00 100644 --- a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayEqualCircles.prefab +++ b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayEqualCircles.prefab @@ -286,6 +286,7 @@ GameObject: - component: {fileID: 6805943141472748426} - component: {fileID: 4430445033801091530} - component: {fileID: -8548468547709009186} + - component: {fileID: -6007190389148885436} m_Layer: 5 m_Name: DisplayEqualCircles m_TagString: Untagged @@ -417,3 +418,18 @@ MonoBehaviour: m_EditorClassIdentifier: factExplorerPrefab: {fileID: 5592893003942163674, guid: ff7415df1aac19c41a7855516a108a8a, type: 3} +--- !u!114 &-6007190389148885436 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7523305359074541435} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 88f8f222eb0a4a246908bde097a8726e, type: 3} + m_Name: + m_EditorClassIdentifier: + isFavourite: 0 + favoriteDisplayPrefab: {fileID: 2810062559722195091, guid: 0b34469213856774980670de85a7d4a0, + type: 3} diff --git a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayLine.prefab b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayLine.prefab index 080cb239..5afe4d41 100644 --- a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayLine.prefab +++ b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayLine.prefab @@ -151,6 +151,7 @@ GameObject: - component: {fileID: 3914868910838030883} - component: {fileID: 7215917396402112958} - component: {fileID: 7981125183230312854} + - component: {fileID: -4205691289957159684} m_Layer: 5 m_Name: DisplayLine m_TagString: Untagged @@ -281,3 +282,18 @@ MonoBehaviour: m_EditorClassIdentifier: factExplorerPrefab: {fileID: 5592893003942163674, guid: ff7415df1aac19c41a7855516a108a8a, type: 3} +--- !u!114 &-4205691289957159684 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7510387096843212865} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 88f8f222eb0a4a246908bde097a8726e, type: 3} + m_Name: + m_EditorClassIdentifier: + isFavourite: 0 + favoriteDisplayPrefab: {fileID: 2810062559722195091, guid: 0b34469213856774980670de85a7d4a0, + type: 3} diff --git a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayOnCircle.prefab b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayOnCircle.prefab index 52a30343..f4498193 100644 --- a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayOnCircle.prefab +++ b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayOnCircle.prefab @@ -16,6 +16,7 @@ GameObject: - component: {fileID: 6441113378387087702} - component: {fileID: 9073127243885313005} - component: {fileID: -5954085419867829670} + - component: {fileID: 5980699288881757793} m_Layer: 5 m_Name: DisplayOnCircle m_TagString: Untagged @@ -147,6 +148,21 @@ MonoBehaviour: m_EditorClassIdentifier: factExplorerPrefab: {fileID: 5592893003942163674, guid: ff7415df1aac19c41a7855516a108a8a, type: 3} +--- !u!114 &5980699288881757793 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2115817999818309900} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 88f8f222eb0a4a246908bde097a8726e, type: 3} + m_Name: + m_EditorClassIdentifier: + isFavourite: 0 + favoriteDisplayPrefab: {fileID: 2810062559722195091, guid: 0b34469213856774980670de85a7d4a0, + type: 3} --- !u!1 &5265014618439724607 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayOnLine.prefab b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayOnLine.prefab index 555b8b19..d716e01f 100644 --- a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayOnLine.prefab +++ b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayOnLine.prefab @@ -286,6 +286,7 @@ GameObject: - component: {fileID: 979255380955983068} - component: {fileID: 6910630412647778113} - component: {fileID: -4875952770271437981} + - component: {fileID: 3281836877418813895} m_Layer: 5 m_Name: DisplayOnLine m_TagString: Untagged @@ -417,3 +418,18 @@ MonoBehaviour: m_EditorClassIdentifier: factExplorerPrefab: {fileID: 5592893003942163674, guid: ff7415df1aac19c41a7855516a108a8a, type: 3} +--- !u!114 &3281836877418813895 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6050914136827205310} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 88f8f222eb0a4a246908bde097a8726e, type: 3} + m_Name: + m_EditorClassIdentifier: + isFavourite: 0 + favoriteDisplayPrefab: {fileID: 2810062559722195091, guid: 0b34469213856774980670de85a7d4a0, + type: 3} diff --git a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayOrthogonalCircleLine.prefab b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayOrthogonalCircleLine.prefab index dccfcd05..249206c5 100644 --- a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayOrthogonalCircleLine.prefab +++ b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayOrthogonalCircleLine.prefab @@ -286,6 +286,7 @@ GameObject: - component: {fileID: 8593937097866258120} - component: {fileID: 930378118197085978} - component: {fileID: -4766878545130701298} + - component: {fileID: 4466550412761522739} m_Layer: 5 m_Name: DisplayOrthogonalCircleLine m_TagString: Untagged @@ -417,3 +418,18 @@ MonoBehaviour: m_EditorClassIdentifier: factExplorerPrefab: {fileID: 5592893003942163674, guid: ff7415df1aac19c41a7855516a108a8a, type: 3} +--- !u!114 &4466550412761522739 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8554350198830106250} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 88f8f222eb0a4a246908bde097a8726e, type: 3} + m_Name: + m_EditorClassIdentifier: + isFavourite: 0 + favoriteDisplayPrefab: {fileID: 2810062559722195091, guid: 0b34469213856774980670de85a7d4a0, + type: 3} diff --git a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayParallelLine.prefab b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayParallelLine.prefab index 3f39a325..d8f691b1 100644 --- a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayParallelLine.prefab +++ b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayParallelLine.prefab @@ -151,6 +151,7 @@ GameObject: - component: {fileID: 3914868910838030883} - component: {fileID: 7215917396402112958} - component: {fileID: 41121149337675280} + - component: {fileID: -8573552533908309515} m_Layer: 5 m_Name: DisplayParallelLine m_TagString: Untagged @@ -282,6 +283,21 @@ MonoBehaviour: m_EditorClassIdentifier: factExplorerPrefab: {fileID: 5592893003942163674, guid: ff7415df1aac19c41a7855516a108a8a, type: 3} +--- !u!114 &-8573552533908309515 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7510387096843212865} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 88f8f222eb0a4a246908bde097a8726e, type: 3} + m_Name: + m_EditorClassIdentifier: + isFavourite: 0 + favoriteDisplayPrefab: {fileID: 2810062559722195091, guid: 0b34469213856774980670de85a7d4a0, + type: 3} --- !u!1 &7693994637337906468 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayPoint.prefab b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayPoint.prefab index 5b4cba7a..313f668d 100644 --- a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayPoint.prefab +++ b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayPoint.prefab @@ -16,6 +16,7 @@ GameObject: - component: {fileID: 114132791164475416} - component: {fileID: 114984628052382182} - component: {fileID: -6287292158833946431} + - component: {fileID: -7957010930568868188} m_Layer: 5 m_Name: DisplayPoint m_TagString: Untagged @@ -146,6 +147,21 @@ MonoBehaviour: m_EditorClassIdentifier: factExplorerPrefab: {fileID: 5592893003942163674, guid: ff7415df1aac19c41a7855516a108a8a, type: 3} +--- !u!114 &-7957010930568868188 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 858001163752551619} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 88f8f222eb0a4a246908bde097a8726e, type: 3} + m_Name: + m_EditorClassIdentifier: + isFavourite: 0 + favoriteDisplayPrefab: {fileID: 2810062559722195091, guid: 0b34469213856774980670de85a7d4a0, + type: 3} --- !u!1 &858001164857725565 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayRadius.prefab b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayRadius.prefab index 696cb1da..8e432917 100644 --- a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayRadius.prefab +++ b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayRadius.prefab @@ -16,6 +16,7 @@ GameObject: - component: {fileID: 173279308733449335} - component: {fileID: 3955180868949107883} - component: {fileID: -497146227597533108} + - component: {fileID: -2247250977338064909} m_Layer: 5 m_Name: DisplayRadius m_TagString: Untagged @@ -146,6 +147,21 @@ MonoBehaviour: m_EditorClassIdentifier: factExplorerPrefab: {fileID: 5592893003942163674, guid: ff7415df1aac19c41a7855516a108a8a, type: 3} +--- !u!114 &-2247250977338064909 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2513701074329712390} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 88f8f222eb0a4a246908bde097a8726e, type: 3} + m_Name: + m_EditorClassIdentifier: + isFavourite: 0 + favoriteDisplayPrefab: {fileID: 2810062559722195091, guid: 0b34469213856774980670de85a7d4a0, + type: 3} --- !u!1 &8185219527703794732 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayRectangleFact.prefab b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayRectangleFact.prefab index 56605d31..99368671 100644 --- a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayRectangleFact.prefab +++ b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayRectangleFact.prefab @@ -556,6 +556,7 @@ GameObject: - component: {fileID: 2163234623969663275} - component: {fileID: 4558040300745642744} - component: {fileID: -1221418573146676442} + - component: {fileID: -4240360816424112390} m_Layer: 5 m_Name: DisplayRectangleFact m_TagString: Untagged @@ -689,3 +690,18 @@ MonoBehaviour: m_EditorClassIdentifier: factExplorerPrefab: {fileID: 5592893003942163674, guid: ff7415df1aac19c41a7855516a108a8a, type: 3} +--- !u!114 &-4240360816424112390 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8156936215466465834} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 88f8f222eb0a4a246908bde097a8726e, type: 3} + m_Name: + m_EditorClassIdentifier: + isFavourite: 0 + favoriteDisplayPrefab: {fileID: 2810062559722195091, guid: 0b34469213856774980670de85a7d4a0, + type: 3} diff --git a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayRightAngle.prefab b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayRightAngle.prefab index 9a78be85..ee4bf010 100644 --- a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayRightAngle.prefab +++ b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayRightAngle.prefab @@ -151,6 +151,7 @@ GameObject: - component: {fileID: 3794236076833855767} - component: {fileID: 8661743446683420805} - component: {fileID: 4176151758276728228} + - component: {fileID: 493413251982980403} m_Layer: 5 m_Name: DisplayRightAngle m_TagString: Untagged @@ -283,6 +284,21 @@ MonoBehaviour: m_EditorClassIdentifier: factExplorerPrefab: {fileID: 5592893003942163674, guid: ff7415df1aac19c41a7855516a108a8a, type: 3} +--- !u!114 &493413251982980403 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3080888058940174091} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 88f8f222eb0a4a246908bde097a8726e, type: 3} + m_Name: + m_EditorClassIdentifier: + isFavourite: 0 + favoriteDisplayPrefab: {fileID: 2810062559722195091, guid: 0b34469213856774980670de85a7d4a0, + type: 3} --- !u!1 &7613847065484003782 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayTestFact.prefab b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayTestFact.prefab index 4b7af4ab..996ad404 100644 --- a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayTestFact.prefab +++ b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayTestFact.prefab @@ -16,6 +16,7 @@ GameObject: - component: {fileID: 2785454548719711828} - component: {fileID: 1224931104090066081} - component: {fileID: 7299521122061085080} + - component: {fileID: -7305694658926121836} m_Layer: 5 m_Name: DisplayTestFact m_TagString: Untagged @@ -145,3 +146,18 @@ MonoBehaviour: m_EditorClassIdentifier: factExplorerPrefab: {fileID: 5592893003942163674, guid: ff7415df1aac19c41a7855516a108a8a, type: 3} +--- !u!114 &-7305694658926121836 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2846439484187545958} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 88f8f222eb0a4a246908bde097a8726e, type: 3} + m_Name: + m_EditorClassIdentifier: + isFavourite: 0 + favoriteDisplayPrefab: {fileID: 2810062559722195091, guid: 0b34469213856774980670de85a7d4a0, + type: 3} diff --git a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayTruncatedConeVolume.prefab b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayTruncatedConeVolume.prefab index 3f8ae469..369fc8b4 100644 --- a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayTruncatedConeVolume.prefab +++ b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayTruncatedConeVolume.prefab @@ -16,6 +16,7 @@ GameObject: - component: {fileID: 6431159876548220859} - component: {fileID: 4468595272332714251} - component: {fileID: 3888340986020047728} + - component: {fileID: 4076898894668230875} m_Layer: 5 m_Name: DisplayTruncatedConeVolume m_TagString: Untagged @@ -146,6 +147,21 @@ MonoBehaviour: m_EditorClassIdentifier: factExplorerPrefab: {fileID: 5592893003942163674, guid: ff7415df1aac19c41a7855516a108a8a, type: 3} +--- !u!114 &4076898894668230875 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4123133807278660472} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 88f8f222eb0a4a246908bde097a8726e, type: 3} + m_Name: + m_EditorClassIdentifier: + isFavourite: 0 + favoriteDisplayPrefab: {fileID: 2810062559722195091, guid: 0b34469213856774980670de85a7d4a0, + type: 3} --- !u!1 &6234169056530260467 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayUnequalCircles.prefab b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayUnequalCircles.prefab index 63e3d0d5..9ddddce9 100644 --- a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayUnequalCircles.prefab +++ b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplayUnequalCircles.prefab @@ -151,6 +151,7 @@ GameObject: - component: {fileID: 4056140006323214235} - component: {fileID: -6417425987847613228} - component: {fileID: -6842305447839815895} + - component: {fileID: 638044177452029688} m_Layer: 5 m_Name: DisplayUnequalCircles m_TagString: Untagged @@ -282,6 +283,21 @@ MonoBehaviour: m_EditorClassIdentifier: factExplorerPrefab: {fileID: 5592893003942163674, guid: ff7415df1aac19c41a7855516a108a8a, type: 3} +--- !u!114 &638044177452029688 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5769925203401971992} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 88f8f222eb0a4a246908bde097a8726e, type: 3} + m_Name: + m_EditorClassIdentifier: + isFavourite: 0 + favoriteDisplayPrefab: {fileID: 2810062559722195091, guid: 0b34469213856774980670de85a7d4a0, + type: 3} --- !u!1 &5984757243279669606 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/UI/FactExplorer/FactFavorisation.cs b/Assets/Scripts/UI/FactExplorer/FactFavorisation.cs new file mode 100644 index 00000000..3de65219 --- /dev/null +++ b/Assets/Scripts/UI/FactExplorer/FactFavorisation.cs @@ -0,0 +1,84 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Events; +using UnityEngine.EventSystems; + +[RequireComponent(typeof(FactWrapper))] +public class FactFavorisation : MonoBehaviour, IPointerClickHandler +{ + #region InspectorVariables + [Header("Prefabs")] + [SerializeField] private GameObject favoriteDisplayPrefab; + #endregion InspectorVariables + + #region Static Variables + private static readonly UnityEvent<Fact, bool> ChangeFavoriteEvent = new(); + private static readonly List<Fact> favorites = new(); + #endregion Static Variables + + #region Variables + private GameObject favoriteDisplay; + private Fact fact; + #endregion Variables + + #region Properties + private bool isFavorite = false; + public bool IsFavorite + { + get { return isFavorite; } + set { ChangeFavoriteEvent.Invoke(fact, value); } + } + #endregion Properties + + #region UnityMethods + public void OnPointerClick(PointerEventData eventData) + { + // TODO: add support for other input systems + if (eventData.button == PointerEventData.InputButton.Middle) + { + // write to property to invoke event + IsFavorite = !IsFavorite; + + // update favorites list + if (isFavorite) + favorites.Add(fact); + else + favorites.Remove(fact); + } + } + + private void Start() + { + fact = transform.GetComponent<FactWrapper>().fact; + ChangeFavoriteEvent.AddListener(OnFavoriteChange); + + // check if fact is currenty a favorite + if (favorites.Contains(fact)) + { + isFavorite = true; + UpdateDisplay(); + } + } + #endregion UnityMethods + + #region Implementation + private void OnFavoriteChange(Fact changedFact, bool isFavourite) + { + if (fact == changedFact) + { + this.isFavorite = isFavourite; + UpdateDisplay(); + } + } + + private void UpdateDisplay() + { + if (!isFavorite) + Destroy(favoriteDisplay); + else + if (!favoriteDisplay) + favoriteDisplay = Instantiate(favoriteDisplayPrefab, transform); + } + #endregion Implementation +} diff --git a/Assets/Scripts/UI/FactExplorer/FactFavorisation.cs.meta b/Assets/Scripts/UI/FactExplorer/FactFavorisation.cs.meta new file mode 100644 index 00000000..a0d2b6f5 --- /dev/null +++ b/Assets/Scripts/UI/FactExplorer/FactFavorisation.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 88f8f222eb0a4a246908bde097a8726e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: + - favoriteDisplayPrefab: {fileID: 2810062559722195091, guid: 0b34469213856774980670de85a7d4a0, + type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: -- GitLab