diff --git a/Aetheria.Shared.Unity.csproj b/Aetheria.Shared.Unity.csproj index bc862db88..6c2d70788 100644 --- a/Aetheria.Shared.Unity.csproj +++ b/Aetheria.Shared.Unity.csproj @@ -126,7 +126,6 @@ - diff --git a/Assets/Materials/UI/Map Gravity Lines.mat b/Assets/Materials/UI/Map Gravity Lines.mat index 749d876be..2036ba98e 100644 --- a/Assets/Materials/UI/Map Gravity Lines.mat +++ b/Assets/Materials/UI/Map Gravity Lines.mat @@ -86,7 +86,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Scale: 0.5 + - _Scale: 1.2708329 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 diff --git a/Assets/Prefabs/UI/Main Menu Canvas.prefab b/Assets/Prefabs/UI/Main Menu Canvas.prefab index 20b8ada9e..4dbe54f95 100644 --- a/Assets/Prefabs/UI/Main Menu Canvas.prefab +++ b/Assets/Prefabs/UI/Main Menu Canvas.prefab @@ -564,6 +564,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 83488dc4b5e58cd40b4d1c4ee98207b5, type: 3} m_Name: m_EditorClassIdentifier: + Spacer: {fileID: 0} Dropdown: {fileID: 0} Title: {fileID: 4533226043829246278} Section: {fileID: 1026668114703092140, guid: 3a149ea40b43fbf47b51ec165cb04e5f, type: 3} @@ -1126,6 +1127,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 8c2bf4a7080061d42a87046c37bf0c60, type: 3} m_Name: m_EditorClassIdentifier: + Spacer: {fileID: 7041706416206723741, guid: 4638d28139b15b34fac8dae056f7d5fd, type: 3} Dropdown: {fileID: 0} Title: {fileID: 7329274283166941237} Section: {fileID: 1026668114703092140, guid: 3a149ea40b43fbf47b51ec165cb04e5f, type: 3} diff --git a/Assets/Prefabs/UI/Properties Panel/Properties Panel.prefab b/Assets/Prefabs/UI/Properties Panel/Properties Panel.prefab deleted file mode 100644 index e82037b66..000000000 --- a/Assets/Prefabs/UI/Properties Panel/Properties Panel.prefab +++ /dev/null @@ -1,788 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &2378632238049155249 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2378632238049155248} - - component: {fileID: 2378632238049155251} - - component: {fileID: 2378632238049155250} - - component: {fileID: 2378632238049155148} - m_Layer: 5 - m_Name: Content - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2378632238049155248 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632238049155249} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 5116519198747529736} - m_Father: {fileID: 2378632238683789172} - 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, y: 1} ---- !u!114 &2378632238049155251 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632238049155249} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 32 - m_Right: 32 - m_Top: 32 - m_Bottom: 32 - m_ChildAlignment: 0 - m_Spacing: 12 - m_ChildForceExpandWidth: 0 - m_ChildForceExpandHeight: 0 - m_ChildControlWidth: 1 - m_ChildControlHeight: 1 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!114 &2378632238049155250 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632238049155249} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 2 ---- !u!114 &2378632238049155148 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632238049155249} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8c2bf4a7080061d42a87046c37bf0c60, type: 3} - m_Name: - m_EditorClassIdentifier: - Dropdown: {fileID: 0} - Title: {fileID: 5116519198747529738} - SectionPrefab: {fileID: 1026668114703092140, guid: 3a149ea40b43fbf47b51ec165cb04e5f, - type: 3} - ListPrefab: {fileID: 6914334813923144328, guid: 93e63e3a8b352a04897123288d70f04b, - type: 3} - PropertyPrefab: {fileID: 9159917045172241898, guid: be88722a74d512d45a454fe91327a389, - type: 3} - PropertyLabelPrefab: {fileID: 279061376544739623, guid: 5b8c5126640066e4fabe6e65b7225b3b, - type: 3} - AttributePrefab: {fileID: 4447025208748278043, guid: 5e3a258a5b91c8246b20962ba6eccb09, - type: 3} - InputField: {fileID: 6586910564433979167, guid: fb49ef180533e3e488fa39d80cc2423a, - type: 3} - RangedFloatField: {fileID: 1663396771457720812, guid: c214f62d8f2188140b96ed12798034c8, - type: 3} - ProgressField: {fileID: 256436433275418348, guid: e6524d59d9bc67545b0eb1304bfb9d4b, - type: 3} - EnumField: {fileID: 1444953514731475975, guid: f19a14cd178d48f49ace9ad217bea2ed, - type: 3} - BoolField: {fileID: 7661950293931311388, guid: 001ad6a15f0d582458d359c0ae4405ed, - type: 3} - PropertyButton: {fileID: 1613450655389604799, guid: 99bde06e2f0ca504bb95f2a4e3429462, - type: 3} - ButtonField: {fileID: 6566784227922820057, guid: 6db1feb4cda7b8c419384cd42c85a5c4, - type: 3} - IncrementField: {fileID: 5486709585343280439, guid: 9c14c92a1a08b0a4fb4f6aa6f8504082, - type: 3} - SelectedChild: {fileID: 0} ---- !u!1 &2378632238144827086 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2378632238144827081} - - component: {fileID: 2378632238144827083} - - component: {fileID: 2378632238144827080} - m_Layer: 5 - m_Name: Handle - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2378632238144827081 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632238144827086} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2378632239835291325} - m_Father: {fileID: 2378632239203440075} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 20, y: 20} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &2378632238144827083 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632238144827086} - m_CullTransparentMesh: 0 ---- !u!114 &2378632238144827080 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632238144827086} - 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: 0.44583336, b: 0.050000012, a: 0.65882355} - 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: 84d126f984de5fd42ac66361c00f830c, 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!1 &2378632238683789173 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2378632238683789172} - - component: {fileID: 2378632238683789169} - - component: {fileID: 2378632238683789174} - - component: {fileID: 2378632238683789175} - m_Layer: 5 - m_Name: Viewport - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2378632238683789172 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632238683789173} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2378632238049155248} - m_Father: {fileID: 2378632240158519326} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0, y: 1} ---- !u!114 &2378632238683789169 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632238683789173} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} - m_Name: - m_EditorClassIdentifier: - m_ShowMaskGraphic: 0 ---- !u!222 &2378632238683789174 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632238683789173} - m_CullTransparentMesh: 0 ---- !u!114 &2378632238683789175 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632238683789173} - 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: 10917, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &2378632239203440072 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2378632239203440075} - m_Layer: 5 - m_Name: Sliding Area - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2378632239203440075 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632239203440072} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2378632238144827081} - m_Father: {fileID: 2378632240161980831} - 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: -20, y: -20} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &2378632239835291314 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2378632239835291325} - - component: {fileID: 2378632239835291327} - - component: {fileID: 2378632239835291324} - m_Layer: 5 - m_Name: Outline - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2378632239835291325 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632239835291314} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 2378632238144827081} - 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!222 &2378632239835291327 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632239835291314} - m_CullTransparentMesh: 0 ---- !u!114 &2378632239835291324 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632239835291314} - 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.8, g: 0.9333333, 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: b412943088786454c9bf10b1f7e1e94b, 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!1 &2378632240158519327 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2378632240158519326} - - component: {fileID: 2378632240158519323} - - component: {fileID: 2378632240158519321} - - component: {fileID: 2378632240158519320} - m_Layer: 5 - m_Name: Properties Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2378632240158519326 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632240158519327} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2378632238683789172} - - {fileID: 2378632240161980831} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: -2} - m_SizeDelta: {x: 500, y: -4} - m_Pivot: {x: 0, y: 0.5} ---- !u!114 &2378632240158519323 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632240158519327} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Content: {fileID: 2378632238049155248} - m_Horizontal: 0 - m_Vertical: 1 - m_MovementType: 2 - m_Elasticity: 0.1 - m_Inertia: 1 - m_DecelerationRate: 0.135 - m_ScrollSensitivity: 10 - m_Viewport: {fileID: 2378632238683789172} - m_HorizontalScrollbar: {fileID: 0} - m_VerticalScrollbar: {fileID: 2378632240161980830} - m_HorizontalScrollbarVisibility: 0 - m_VerticalScrollbarVisibility: 2 - m_HorizontalScrollbarSpacing: -3 - m_VerticalScrollbarSpacing: -3 - m_OnValueChanged: - m_PersistentCalls: - m_Calls: [] ---- !u!222 &2378632240158519321 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632240158519327} - m_CullTransparentMesh: 0 ---- !u!114 &2378632240158519320 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632240158519327} - 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.064619616, b: 0.154, 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: e63fd14753d0f4943a54d9c382aa8cb1, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &2378632240161980828 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2378632240161980831} - - component: {fileID: 2378632240161980824} - - component: {fileID: 2378632240161980825} - - component: {fileID: 2378632240161980830} - m_Layer: 5 - m_Name: Scrollbar Vertical - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2378632240161980831 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632240161980828} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2378632239203440075} - m_Father: {fileID: 2378632240158519326} - 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: 0, y: 0} - m_SizeDelta: {x: 20, y: 0} - m_Pivot: {x: 1, y: 1} ---- !u!222 &2378632240161980824 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632240161980828} - m_CullTransparentMesh: 0 ---- !u!114 &2378632240161980825 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632240161980828} - 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.8, g: 0.9333333, 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: b412943088786454c9bf10b1f7e1e94b, 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 &2378632240161980830 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2378632240161980828} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Highlighted - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 2378632238144827080} - m_HandleRect: {fileID: 2378632238144827081} - m_Direction: 2 - m_Value: 0 - m_Size: 0.9999999 - m_NumberOfSteps: 0 - m_OnValueChanged: - m_PersistentCalls: - m_Calls: [] ---- !u!1 &5116519198747529743 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5116519198747529736} - - component: {fileID: 5116519198747529739} - - component: {fileID: 5116519198747529738} - - component: {fileID: 5116519198747529737} - m_Layer: 5 - m_Name: Title - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5116519198747529736 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5116519198747529743} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 2378632238049155248} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5116519198747529739 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5116519198747529743} - m_CullTransparentMesh: 0 ---- !u!114 &5116519198747529738 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5116519198747529743} - 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: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Kreacher's Comfort - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: f65e20c70af9671428dd62c7c635e417, type: 2} - m_sharedMaterial: {fileID: 21790448164444372, guid: f65e20c70af9671428dd62c7c635e417, - 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: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: 0 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 72 - m_fontSizeBase: 72 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 256 - m_textAlignment: 513 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 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: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!114 &5116519198747529737 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5116519198747529743} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: -1 - m_FlexibleWidth: 1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 diff --git a/Assets/Prefabs/UI/Properties Panel/Properties.prefab b/Assets/Prefabs/UI/Properties Panel/Properties.prefab index ba4f78793..ab3559cc6 100644 --- a/Assets/Prefabs/UI/Properties Panel/Properties.prefab +++ b/Assets/Prefabs/UI/Properties Panel/Properties.prefab @@ -755,6 +755,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 8c2bf4a7080061d42a87046c37bf0c60, type: 3} m_Name: m_EditorClassIdentifier: + Spacer: {fileID: 7041706416206723741, guid: 4638d28139b15b34fac8dae056f7d5fd, type: 3} Dropdown: {fileID: 0} Title: {fileID: 7131821417072393581} Section: {fileID: 1026668114703092140, guid: 3a149ea40b43fbf47b51ec165cb04e5f, type: 3} diff --git a/Assets/Prefabs/UI/Properties Panel/Property List 1.prefab b/Assets/Prefabs/UI/Properties Panel/Property List 1.prefab index 92ca7a91e..f776c2be8 100644 --- a/Assets/Prefabs/UI/Properties Panel/Property List 1.prefab +++ b/Assets/Prefabs/UI/Properties Panel/Property List 1.prefab @@ -256,6 +256,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 2544c9c8b6358c54ea58c5fb33bb48b7, type: 3} m_Name: m_EditorClassIdentifier: + Spacer: {fileID: 7041706416206723741, guid: 4638d28139b15b34fac8dae056f7d5fd, type: 3} Dropdown: {fileID: 0} Title: {fileID: 2088721703192714100} Section: {fileID: 1026668114703092140, guid: 3a149ea40b43fbf47b51ec165cb04e5f, type: 3} @@ -282,6 +283,7 @@ MonoBehaviour: type: 3} IncrementField: {fileID: 5486709585343280439, guid: 9c14c92a1a08b0a4fb4f6aa6f8504082, type: 3} + Content: {fileID: 0} SelectedChild: {fileID: 0} FoldoutIcon: {fileID: 6485458701090981364} FoldoutRotationDamping: 10 @@ -303,6 +305,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 3 + m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} diff --git a/Assets/Prefabs/UI/Properties Panel/Property List.prefab b/Assets/Prefabs/UI/Properties Panel/Property List.prefab index 0beb58de8..a9a55945f 100644 --- a/Assets/Prefabs/UI/Properties Panel/Property List.prefab +++ b/Assets/Prefabs/UI/Properties Panel/Property List.prefab @@ -256,6 +256,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 2544c9c8b6358c54ea58c5fb33bb48b7, type: 3} m_Name: m_EditorClassIdentifier: + Spacer: {fileID: 7041706416206723741, guid: 4638d28139b15b34fac8dae056f7d5fd, type: 3} Dropdown: {fileID: 0} Title: {fileID: 2088721703192714100} Section: {fileID: 1026668114703092140, guid: 3a149ea40b43fbf47b51ec165cb04e5f, type: 3} @@ -282,6 +283,7 @@ MonoBehaviour: type: 3} IncrementField: {fileID: 5486709585343280439, guid: 9c14c92a1a08b0a4fb4f6aa6f8504082, type: 3} + Content: {fileID: 0} SelectedChild: {fileID: 0} FoldoutIcon: {fileID: 6485458701090981364} FoldoutRotationDamping: 10 @@ -303,6 +305,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Navigation: m_Mode: 3 + m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} diff --git a/Assets/Prefabs/UI/Properties Panel/Spacer.prefab b/Assets/Prefabs/UI/Properties Panel/Spacer.prefab new file mode 100644 index 000000000..6722fbaec --- /dev/null +++ b/Assets/Prefabs/UI/Properties Panel/Spacer.prefab @@ -0,0 +1,58 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &821022499500612761 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7041706416206723741} + - component: {fileID: 7134468039738757772} + m_Layer: 5 + m_Name: Spacer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7041706416206723741 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 821022499500612761} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &7134468039738757772 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 821022499500612761} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: 16 + m_FlexibleWidth: 1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 diff --git a/Assets/Prefabs/UI/Properties Panel/Properties Panel.prefab.meta b/Assets/Prefabs/UI/Properties Panel/Spacer.prefab.meta similarity index 74% rename from Assets/Prefabs/UI/Properties Panel/Properties Panel.prefab.meta rename to Assets/Prefabs/UI/Properties Panel/Spacer.prefab.meta index 85cb42bb3..63eb64a3e 100644 --- a/Assets/Prefabs/UI/Properties Panel/Properties Panel.prefab.meta +++ b/Assets/Prefabs/UI/Properties Panel/Spacer.prefab.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 4fca44e21a27a6d48916d2cc4b6e2df0 +guid: 4638d28139b15b34fac8dae056f7d5fd PrefabImporter: externalObjects: {} userData: diff --git a/Assets/Scenes/ARPG.unity b/Assets/Scenes/ARPG.unity index 94136e1bb..b8557f8a0 100644 --- a/Assets/Scenes/ARPG.unity +++ b/Assets/Scenes/ARPG.unity @@ -810,10 +810,10 @@ RectTransform: m_Father: {fileID: 1783772015} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 527.51, y: -40} + m_SizeDelta: {x: 329.91, y: 56} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &101395091 MonoBehaviour: @@ -9514,6 +9514,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 83488dc4b5e58cd40b4d1c4ee98207b5, type: 3} m_Name: m_EditorClassIdentifier: + Spacer: {fileID: 0} Dropdown: {fileID: 178733681} Title: {fileID: 738229278} Section: {fileID: 1026668114703092140, guid: 3a149ea40b43fbf47b51ec165cb04e5f, type: 3} @@ -9671,12 +9672,12 @@ PrefabInstance: - target: {fileID: 2279630452592903581, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.x - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630452592903581, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630452592903581, guid: aac073da6df367d499834c926930dd84, type: 3} @@ -9686,82 +9687,82 @@ PrefabInstance: - target: {fileID: 2279630452912159027, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.x - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630452912159027, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630452951644481, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.x - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630452951644481, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630452951644481, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: -10 objectReference: {fileID: 0} - target: {fileID: 2279630452951644481, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: -10 objectReference: {fileID: 0} - target: {fileID: 2279630453233804081, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.x - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630453233804081, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: -10 objectReference: {fileID: 0} - target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: 107.76 objectReference: {fileID: 0} - target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: 24 objectReference: {fileID: 0} - target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 210.12 objectReference: {fileID: 0} - target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -8 objectReference: {fileID: 0} - target: {fileID: 2279630453710142155, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: -396 objectReference: {fileID: 0} - target: {fileID: 2279630453710142155, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: -545 objectReference: {fileID: 0} - target: {fileID: 2279630453886260052, guid: aac073da6df367d499834c926930dd84, type: 3} @@ -9912,72 +9913,72 @@ PrefabInstance: - target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: 32 objectReference: {fileID: 0} - target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: 32 objectReference: {fileID: 0} - target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 72 objectReference: {fileID: 0} - target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -24 objectReference: {fileID: 0} - target: {fileID: 2279630454002795611, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630454002795611, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: -10 objectReference: {fileID: 0} - target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: 22 objectReference: {fileID: 0} - target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: 24 objectReference: {fileID: 0} - target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 336.88 objectReference: {fileID: 0} - target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -20 objectReference: {fileID: 0} - target: {fileID: 4075091371340814903, guid: aac073da6df367d499834c926930dd84, type: 3} @@ -10002,7 +10003,7 @@ PrefabInstance: - target: {fileID: 4397116930423727094, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: 16 objectReference: {fileID: 0} - target: {fileID: 4397116930423727094, guid: aac073da6df367d499834c926930dd84, type: 3} @@ -10022,7 +10023,7 @@ PrefabInstance: - target: {fileID: 8871154407653395989, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: -2 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: aac073da6df367d499834c926930dd84, type: 3} @@ -13888,10 +13889,10 @@ RectTransform: m_Father: {fileID: 1783772015} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 960.13495, y: -40} + m_SizeDelta: {x: 146.84, y: 56} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &931657852 MonoBehaviour: @@ -19867,10 +19868,10 @@ RectTransform: m_Father: {fileID: 1783772015} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 1145.4999, y: -40} + m_SizeDelta: {x: 223.89, y: 56} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1399108419 MonoBehaviour: @@ -20912,10 +20913,10 @@ RectTransform: m_Father: {fileID: 1783772015} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 789.58997, y: -40} + m_SizeDelta: {x: 194.25, y: 56} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1464157086 MonoBehaviour: @@ -22116,7 +22117,7 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 55.675 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -23285,7 +23286,7 @@ PrefabInstance: - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 60.98 objectReference: {fileID: 0} - target: {fileID: 878382121558056004, guid: 2758dfa2744d7ad4d8877545189d116e, type: 3} @@ -24689,7 +24690,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &1726632265 RectTransform: m_ObjectHideFlags: 0 @@ -27494,7 +27495,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &1997243493 RectTransform: m_ObjectHideFlags: 0 @@ -29685,17 +29686,17 @@ PrefabInstance: - target: {fileID: 257019179550429270, guid: 426f9dcb510530d4dbfa678c9f727ec1, type: 3} propertyPath: m_AnchorMax.x - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 257019179550429270, guid: 426f9dcb510530d4dbfa678c9f727ec1, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 257019179596293679, guid: 426f9dcb510530d4dbfa678c9f727ec1, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: -583 objectReference: {fileID: 0} - target: {fileID: 257019179596293679, guid: 426f9dcb510530d4dbfa678c9f727ec1, type: 3} @@ -29705,17 +29706,17 @@ PrefabInstance: - target: {fileID: 257019180101986795, guid: 426f9dcb510530d4dbfa678c9f727ec1, type: 3} propertyPath: m_AnchorMax.x - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 257019180101986795, guid: 426f9dcb510530d4dbfa678c9f727ec1, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 257019180101986795, guid: 426f9dcb510530d4dbfa678c9f727ec1, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: -7 objectReference: {fileID: 0} - target: {fileID: 7131821417165215475, guid: 426f9dcb510530d4dbfa678c9f727ec1, type: 3} @@ -29975,12 +29976,12 @@ PrefabInstance: - target: {fileID: 2279630452592903581, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.x - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630452592903581, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630452592903581, guid: aac073da6df367d499834c926930dd84, type: 3} @@ -29990,82 +29991,82 @@ PrefabInstance: - target: {fileID: 2279630452912159027, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.x - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630452912159027, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630452951644481, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.x - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630452951644481, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630452951644481, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: -10 objectReference: {fileID: 0} - target: {fileID: 2279630452951644481, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: -10 objectReference: {fileID: 0} - target: {fileID: 2279630453233804081, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.x - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630453233804081, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: -10 objectReference: {fileID: 0} - target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: 107.76 objectReference: {fileID: 0} - target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: 24 objectReference: {fileID: 0} - target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 210.12 objectReference: {fileID: 0} - target: {fileID: 2279630453679143107, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -8 objectReference: {fileID: 0} - target: {fileID: 2279630453710142155, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: -396 objectReference: {fileID: 0} - target: {fileID: 2279630453710142155, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: -545 objectReference: {fileID: 0} - target: {fileID: 2279630453886260052, guid: aac073da6df367d499834c926930dd84, type: 3} @@ -30201,72 +30202,72 @@ PrefabInstance: - target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: 32 objectReference: {fileID: 0} - target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: 32 objectReference: {fileID: 0} - target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 72 objectReference: {fileID: 0} - target: {fileID: 2279630454000268454, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -24 objectReference: {fileID: 0} - target: {fileID: 2279630454002795611, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2279630454002795611, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: -10 objectReference: {fileID: 0} - target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: 22 objectReference: {fileID: 0} - target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: 24 objectReference: {fileID: 0} - target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 336.88 objectReference: {fileID: 0} - target: {fileID: 3031152863755518086, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -20 objectReference: {fileID: 0} - target: {fileID: 4075091371340814903, guid: aac073da6df367d499834c926930dd84, type: 3} @@ -30296,7 +30297,7 @@ PrefabInstance: - target: {fileID: 4397116930423727094, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: 16 objectReference: {fileID: 0} - target: {fileID: 4397116930423727094, guid: aac073da6df367d499834c926930dd84, type: 3} @@ -30316,7 +30317,7 @@ PrefabInstance: - target: {fileID: 8871154407653395989, guid: aac073da6df367d499834c926930dd84, type: 3} propertyPath: m_SizeDelta.y - value: 0 + value: -2 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: aac073da6df367d499834c926930dd84, type: 3} @@ -33721,6 +33722,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 8c2bf4a7080061d42a87046c37bf0c60, type: 3} m_Name: m_EditorClassIdentifier: + Spacer: {fileID: 0} Dropdown: {fileID: 178733681} Title: {fileID: 5496444666933891210} Section: {fileID: 1026668114703092140, guid: 3a149ea40b43fbf47b51ec165cb04e5f, type: 3} diff --git a/Assets/Scenes/Main Menu.unity b/Assets/Scenes/Main Menu.unity index 17e2927a7..36f734ef9 100644 --- a/Assets/Scenes/Main Menu.unity +++ b/Assets/Scenes/Main Menu.unity @@ -802,8 +802,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 741153267} - m_LocalRotation: {x: 0.015506903, y: 0.9502416, z: -0.30741313, w: 0.047933225} - m_LocalPosition: {x: -117.51999, y: -77.08743, z: 149.09026} + m_LocalRotation: {x: 0.0155069195, y: 0.9502416, z: -0.30741316, w: 0.047933277} + m_LocalPosition: {x: -117.52002, y: -77.087425, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 412917866} @@ -1220,8 +1220,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 965376321} - m_LocalRotation: {x: 0.015506903, y: 0.9502416, z: -0.30741313, w: 0.047933225} - m_LocalPosition: {x: -117.51999, y: -77.08743, z: 149.09026} + m_LocalRotation: {x: 0.0155069195, y: 0.9502416, z: -0.30741316, w: 0.047933277} + m_LocalPosition: {x: -117.52002, y: -77.087425, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} @@ -2159,6 +2159,11 @@ PrefabInstance: propertyPath: m_SizeDelta.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 350889891057474423, guid: 3d8d9cbf10b12214e98891c1f03c1e99, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} - target: {fileID: 350889891632477145, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchorMax.y @@ -2307,7 +2312,7 @@ PrefabInstance: - target: {fileID: 3664209305474245377, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 60.98 objectReference: {fileID: 0} - target: {fileID: 3664209305474245377, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} @@ -2332,7 +2337,7 @@ PrefabInstance: - target: {fileID: 3664209306888449100, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 55.675 objectReference: {fileID: 0} - target: {fileID: 3664209306888449100, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs index 0fe6f02c8..8602ab7ea 100644 --- a/Assets/Scripts/Gameplay/ActionGameManager.cs +++ b/Assets/Scripts/Gameplay/ActionGameManager.cs @@ -26,6 +26,7 @@ using Random = UnityEngine.Random; public class ActionGameManager : MonoBehaviour { + public static ActionGameManager Instance { get; private set; } private static DirectoryInfo _gameDataDirectory; public static DirectoryInfo GameDataDirectory { @@ -182,6 +183,7 @@ public class ActionGameManager : MonoBehaviour void Start() { + Instance = this; EntityInstance.EffectManagerParent = EffectManagerParent; AkSoundEngine.RegisterGameObj(gameObject); ConsoleController.MessageReceiver = this; @@ -996,11 +998,16 @@ public class ActionGameManager : MonoBehaviour { indicator.Value.gameObject.SetActive(indicator.Key!=CurrentEntity.Target.Value); indicator.Value.Place.Target = indicator.Key.Position; - indicator.Value.Fill.fillAmount = - saturate(indicator.Key.EntityInfoGathered[CurrentEntity] / Settings.GameplaySettings.TargetDetectionInfoThreshold); - indicator.Value.Fill.enabled = - !(indicator.Key.EntityInfoGathered[CurrentEntity] > Settings.GameplaySettings.TargetDetectionInfoThreshold) || - sin(TargetSpottedBlinkFrequency * Time.time) + TargetSpottedBlinkOffset > 0; + if (!indicator.Key.Active) + indicator.Value.Fill.enabled = false; + else + { + indicator.Value.Fill.fillAmount = + saturate(indicator.Key.EntityInfoGathered[CurrentEntity] / Settings.GameplaySettings.TargetDetectionInfoThreshold); + indicator.Value.Fill.enabled = + !(indicator.Key.EntityInfoGathered[CurrentEntity] > Settings.GameplaySettings.TargetDetectionInfoThreshold) || + sin(TargetSpottedBlinkFrequency * Time.time) + TargetSpottedBlinkOffset > 0; + } } var look = Input.Player.Look.ReadValue(); _entityYawPitch = float2(_entityYawPitch.x + look.x * Sensitivity.x, clamp(_entityYawPitch.y + look.y * Sensitivity.y, -.45f * PI, .45f * PI)); diff --git a/Assets/Scripts/Gameplay/ShipInstance.cs b/Assets/Scripts/Gameplay/ShipInstance.cs index 956fa85f9..8fbd7189f 100644 --- a/Assets/Scripts/Gameplay/ShipInstance.cs +++ b/Assets/Scripts/Gameplay/ShipInstance.cs @@ -33,7 +33,7 @@ public class ShipInstance : EntityInstance var particles = Instantiate(UnityHelpers.LoadAsset(effectData.ParticlesPrefab), transform, false); var particlesShape = particles.shape; var thrusterHardpoint = ThrusterHardpoints - .FirstOrDefault(t => t.name == thruster.Entity.Hardpoints[thruster.Item.Position.x, thruster.Item.Position.y].Transform); + .FirstOrDefault(t => t.name == ship.Hardpoints[thruster.Item.Position.x, thruster.Item.Position.y].Transform); particlesShape.meshRenderer = thrusterHardpoint?.Emitter; // if (!string.IsNullOrEmpty(thruster.Item.Data.SoundEffectTrigger) && thrusterHardpoint != null) // { diff --git a/Assets/Scripts/ServerShared/AetheriaMath.cs b/Assets/Scripts/ServerShared/AetheriaMath.cs index 72bc642a1..0080b3a80 100644 --- a/Assets/Scripts/ServerShared/AetheriaMath.cs +++ b/Assets/Scripts/ServerShared/AetheriaMath.cs @@ -7,6 +7,16 @@ public static class AetheriaMath { public const float Deg2Rad = 0.01745329f; public const float Rad2Deg = 57.29578f; + + public static float Decay(float source, float lambda, float dt) + { + return source * exp(-lambda * dt); + } + + public static float Damp(float a, float b, float lambda, float dt) + { + return lerp(a, b, 1 - exp(-lambda * dt)); + } //first-order intercept using absolute target position public static float3 FirstOrderIntercept diff --git a/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs index 99ecf3097..1d744209b 100644 --- a/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/AutoWeapon.cs @@ -9,16 +9,16 @@ using static Unity.Mathematics.math; [Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class AutoWeaponData : InstantWeaponData { - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new AutoWeapon(context, this, entity, item); + return new AutoWeapon(this, item); } } public class AutoWeapon : InstantWeapon { - public AutoWeapon(ItemManager context, InstantWeaponData data, Entity entity, EquippedItem item) : base(context, data, entity, item) + public AutoWeapon(InstantWeaponData data, EquippedItem item) : base(data, item) { } diff --git a/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs b/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs index 225a9e0d1..d79d9c3fd 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Behaviors.cs @@ -102,7 +102,7 @@ public abstract class PersistentBehaviorData Union(16, typeof(HeatData)), // Union(17, typeof(HitscanData)), Union(18, typeof(ItemUsageData)), - Union(19, typeof(RadianceData)), + //Union(19, typeof(RadianceData)), Union(20, typeof(SwitchData)), Union(21, typeof(TriggerData)), Union(22, typeof(VisibilityData)), @@ -128,7 +128,7 @@ public abstract class BehaviorData [Inspectable, JsonProperty("group"), Key(0)] public int Group; - public abstract IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item); + public abstract IBehavior CreateInstance(EquippedItem item); public override string ToString() { diff --git a/Assets/Scripts/ServerShared/Behaviors/Capacitor.cs b/Assets/Scripts/ServerShared/Behaviors/Capacitor.cs index 4a17e5481..a75a53105 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Capacitor.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Capacitor.cs @@ -17,9 +17,9 @@ public class CapacitorData : BehaviorData [Inspectable, JsonProperty("efficiency"), Key(2), RuntimeInspectable] public PerformanceStat Efficiency = new PerformanceStat(); - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Capacitor(context, this, entity, item); + return new Capacitor(this, item); } } @@ -27,9 +27,7 @@ public class Capacitor : IBehavior { private CapacitorData _data; - public Entity Entity { get; } public EquippedItem Item { get; } - public ItemManager Context { get; } public BehaviorData Data => _data; @@ -43,11 +41,9 @@ public class Capacitor : IBehavior Item.AddHeat(abs(charge) * (1-Efficiency)); } - public Capacitor(ItemManager context, CapacitorData data, Entity entity, EquippedItem item) + public Capacitor(CapacitorData data, EquippedItem item) { - Context = context; _data = data; - Entity = entity; Item = item; } diff --git a/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs index 912e20053..8ddd997e9 100644 --- a/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/ChargedWeapon.cs @@ -45,9 +45,9 @@ public class ChargedWeaponData : InstantWeaponData [Inspectable, JsonProperty("chargeHeatMul"), Key(32)] public float ChargeFiringHeatMultiplier = 1; - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new ChargedWeapon(context, this, entity, item); + return new ChargedWeapon(this, item); } } @@ -93,7 +93,7 @@ public class ChargedWeapon : InstantWeapon, IEventBehavior get => _charge; } - public ChargedWeapon(ItemManager context, ChargedWeaponData data, Entity entity, EquippedItem item) : base(context, data, entity, item) + public ChargedWeapon(ChargedWeaponData data, EquippedItem item) : base(data, item) { _data = data; } diff --git a/Assets/Scripts/ServerShared/Behaviors/Cockpit.cs b/Assets/Scripts/ServerShared/Behaviors/Cockpit.cs index abf21ceca..528e664d9 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Cockpit.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Cockpit.cs @@ -11,9 +11,9 @@ using static Unity.Mathematics.math; [Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class CockpitData : BehaviorData { - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Cockpit(context, this, entity, item); + return new Cockpit(this, item); } } @@ -21,18 +21,14 @@ public class Cockpit : IBehavior { private CockpitData _data; - public Entity Entity { get; } public EquippedItem Item { get; } - public ItemManager Context { get; } public BehaviorData Data => _data; - public Cockpit(ItemManager context, CockpitData data, Entity entity, EquippedItem item) + public Cockpit(CockpitData data, EquippedItem item) { - Context = context; _data = data; - Entity = entity; Item = item; } diff --git a/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs index b80be7845..2300c5d32 100644 --- a/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/ConstantWeapon.cs @@ -14,9 +14,9 @@ public class ConstantWeaponData : WeaponData [InspectablePrefab, JsonProperty("ammoInterval"), Key(17)] public float AmmoInterval = 1; - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new ConstantWeapon(context, this, entity, item); + return new ConstantWeapon(this, item); } } @@ -57,7 +57,7 @@ public class ConstantWeapon : Weapon, IProgressBehavior, IEventBehavior OnStopFiring = null; } - public ConstantWeapon(ItemManager context, ConstantWeaponData data, Entity entity, EquippedItem item) : base(context, data, entity, item) + public ConstantWeapon(ConstantWeaponData data, EquippedItem item) : base(data, item) { _data = data; } @@ -67,7 +67,7 @@ public class ConstantWeapon : Weapon, IProgressBehavior, IEventBehavior base.Execute(delta); if (_firing) { - if (!Entity.TryConsumeEnergy(Item.Evaluate(_data.Energy) * delta)) + if (!Item.Entity.TryConsumeEnergy(Item.Evaluate(_data.Energy) * delta)) { _firing = false; OnStopFiring?.Invoke(); @@ -93,7 +93,7 @@ public class ConstantWeapon : Weapon, IProgressBehavior, IEventBehavior if (_data.MagazineSize > 1 && _ammo > 0) _ammo--; else { - var cargo = Entity.FindItemInCargo(_data.AmmoType); + var cargo = Item.Entity.FindItemInCargo(_data.AmmoType); if (cargo != null) { var item = cargo.ItemsOfType[_data.AmmoType][0]; @@ -117,7 +117,7 @@ public class ConstantWeapon : Weapon, IProgressBehavior, IEventBehavior Item.EquippableItem.Durability -= Item.Wear * delta; Item.AddHeat(Item.Evaluate(_data.Heat) * delta); - Entity.VisibilitySources[this] = Item.Evaluate(_data.Visibility); + Item.Entity.VisibilitySources[this] = Item.Evaluate(_data.Visibility); } return true; } diff --git a/Assets/Scripts/ServerShared/Behaviors/Cooldown.cs b/Assets/Scripts/ServerShared/Behaviors/Cooldown.cs index 6b82be8b5..0b63b2f79 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Cooldown.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Cooldown.cs @@ -15,9 +15,9 @@ public class CooldownData : BehaviorData [Inspectable, JsonProperty("cooldown"), Key(1), RuntimeInspectable] public PerformanceStat Cooldown = new PerformanceStat(); - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Cooldown(context, this, entity, item); + return new Cooldown(this, item); } } @@ -26,20 +26,16 @@ public class Cooldown : IBehavior, IAlwaysUpdatedBehavior, IProgressBehavior private CooldownData _data; public BehaviorData Data => _data; - private Entity Entity { get; } private EquippedItem Item { get; } - private ItemManager Context { get; } private float _cooldown; // Normalized public float Progress => saturate(_cooldown); - public Cooldown(ItemManager context, CooldownData data, Entity entity, EquippedItem item) + public Cooldown(CooldownData data, EquippedItem item) { _data = data; - Entity = entity; Item = item; - Context = context; } public bool Execute(float delta) diff --git a/Assets/Scripts/ServerShared/Behaviors/EnergyDraw.cs b/Assets/Scripts/ServerShared/Behaviors/EnergyDraw.cs index ea70804c9..909c7e9d1 100644 --- a/Assets/Scripts/ServerShared/Behaviors/EnergyDraw.cs +++ b/Assets/Scripts/ServerShared/Behaviors/EnergyDraw.cs @@ -16,9 +16,9 @@ public class EnergyDrawData : BehaviorData [Inspectable, JsonProperty("perSecond"), Key(2)] public bool PerSecond; - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new EnergyDraw(context, this, entity, item); + return new EnergyDraw(this, item); } } @@ -26,22 +26,18 @@ public class EnergyDraw : IBehavior { private EnergyDrawData _data; - private Entity Entity { get; } private EquippedItem Item { get; } - private ItemManager Context { get; } public BehaviorData Data => _data; - public EnergyDraw(ItemManager context, EnergyDrawData data, Entity entity, EquippedItem item) + public EnergyDraw(EnergyDrawData data, EquippedItem item) { _data = data; - Entity = entity; Item = item; - Context = context; } public bool Execute(float delta) { - return Entity.TryConsumeEnergy(Item.Evaluate(_data.EnergyDraw) * (_data.PerSecond ? delta : 1)); + return Item.Entity.TryConsumeEnergy(Item.Evaluate(_data.EnergyDraw) * (_data.PerSecond ? delta : 1)); } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/Heat.cs b/Assets/Scripts/ServerShared/Behaviors/Heat.cs index 2d4478434..7bcd353bb 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Heat.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Heat.cs @@ -16,9 +16,9 @@ public class HeatData : BehaviorData [Inspectable, JsonProperty("perSecond"), Key(2)] public bool PerSecond; - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Heat(context, this, entity, item); + return new Heat(this, item); } } @@ -26,18 +26,14 @@ public class Heat : IBehavior { private HeatData _data; - private Entity Entity { get; } private EquippedItem Item { get; } - private ItemManager Context { get; } public BehaviorData Data => _data; - public Heat(ItemManager context, HeatData data, Entity entity, EquippedItem item) + public Heat(HeatData data, EquippedItem item) { _data = data; - Entity = entity; Item = item; - Context = context; } public bool Execute(float delta) diff --git a/Assets/Scripts/ServerShared/Behaviors/HeatStorage.cs b/Assets/Scripts/ServerShared/Behaviors/HeatStorage.cs index 2d579ffee..ba19424f2 100644 --- a/Assets/Scripts/ServerShared/Behaviors/HeatStorage.cs +++ b/Assets/Scripts/ServerShared/Behaviors/HeatStorage.cs @@ -11,9 +11,9 @@ using static Unity.Mathematics.math; [Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class HeatStorageData : BehaviorData { - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new HeatStorage(context, this, entity, item); + return new HeatStorage(this, item); } } @@ -21,17 +21,13 @@ public class HeatStorage : IBehavior { private HeatStorageData _data; - public Entity Entity { get; } public EquippedItem Item { get; } - public ItemManager Context { get; } public BehaviorData Data => _data; - public HeatStorage(ItemManager context, HeatStorageData data, Entity entity, EquippedItem item) + public HeatStorage(HeatStorageData data, EquippedItem item) { - Context = context; _data = data; - Entity = entity; Item = item; } diff --git a/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs index f0c36fa33..203ca440e 100644 --- a/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/InstantWeapon.cs @@ -21,9 +21,9 @@ public class InstantWeaponData : WeaponData [InspectablePrefab, JsonProperty("ammoInterval"), Key(20)] public bool SingleAmmoBurst; - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new InstantWeapon(context, this, entity, item); + return new InstantWeapon(this, item); } } @@ -71,7 +71,7 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior OnFire = null; } - public InstantWeapon(ItemManager context, InstantWeaponData data, Entity entity, EquippedItem item) : base(context,data,entity,item) + public InstantWeapon(InstantWeaponData data, EquippedItem item) : base(data, item) { _data = data; _ammo = data.MagazineSize; @@ -81,7 +81,7 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior { // If 1 ammo is consumed per burst, perform ammo and energy consumption here // UseAmmo returns false when triggering reload; cancel firing if that is the case - if(_data.SingleAmmoBurst && (!Entity.TryConsumeEnergy(Energy) || !UseAmmo())) return; + if(_data.SingleAmmoBurst && (!Item.Entity.TryConsumeEnergy(Energy) || !UseAmmo())) return; _burstRemaining = (int) BurstCount; _burstInterval = BurstTime / _burstRemaining; @@ -115,7 +115,7 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior var hasAmmo = true; if (_data.AmmoType != Guid.Empty) { - var cargo = Entity.FindItemInCargo(_data.AmmoType); + var cargo = Item.Entity.FindItemInCargo(_data.AmmoType); if (cargo != null) { var item = cargo.ItemsOfType[_data.AmmoType][0]; @@ -160,7 +160,7 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior { // If multiple ammo is consumed per burst, perform ammo and energy consumption here // UseAmmo returns false when triggering reload; cancel firing if that is the case - if (!_data.SingleAmmoBurst && (!Entity.TryConsumeEnergy(Energy) || !UseAmmo())) + if (!_data.SingleAmmoBurst && (!Item.Entity.TryConsumeEnergy(Energy) || !UseAmmo())) { _burstRemaining = 0; return false; @@ -171,7 +171,7 @@ public class InstantWeapon : Weapon, IProgressBehavior, IEventBehavior OnFire?.Invoke(); Item.EquippableItem.Durability -= Item.Wear; Item.AddHeat(Heat); - Entity.VisibilitySources[this] = Visibility; + Item.Entity.VisibilitySources[this] = Visibility; } return true; } diff --git a/Assets/Scripts/ServerShared/Behaviors/ItemUsage.cs b/Assets/Scripts/ServerShared/Behaviors/ItemUsage.cs index 7087f3241..8c29be978 100644 --- a/Assets/Scripts/ServerShared/Behaviors/ItemUsage.cs +++ b/Assets/Scripts/ServerShared/Behaviors/ItemUsage.cs @@ -13,9 +13,9 @@ public class ItemUsageData : BehaviorData [InspectableDatabaseLink(typeof(SimpleCommodityData)), JsonProperty("item"), Key(1), RuntimeInspectable] public Guid Item; - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new ItemUsage(context, this, entity, item); + return new ItemUsage(this, item); } } @@ -23,23 +23,19 @@ public class ItemUsage : IBehavior { private ItemUsageData _data; - private Entity Entity { get; } private EquippedItem Item { get; } - private ItemManager Context { get; } public BehaviorData Data => _data; - public ItemUsage(ItemManager context, ItemUsageData data, Entity entity, EquippedItem item) + public ItemUsage(ItemUsageData data, EquippedItem item) { _data = data; - Entity = entity; Item = item; - Context = context; } public bool Execute(float delta) { - var cargo = Entity.FindItemInCargo(_data.Item); + var cargo = Item.Entity.FindItemInCargo(_data.Item); if (cargo == null) return false; var item = cargo.ItemsOfType[_data.Item][0]; diff --git a/Assets/Scripts/ServerShared/Behaviors/Launcher.cs b/Assets/Scripts/ServerShared/Behaviors/Launcher.cs index 557b94507..f5aca298e 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Launcher.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Launcher.cs @@ -27,9 +27,9 @@ public class LauncherData : LockWeaponData [Inspectable, JsonProperty("missileSpeed"), Key(31), RuntimeInspectable] public PerformanceStat MissileVelocity = new PerformanceStat(); - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new LockWeapon(context, this, entity, item); + return new LockWeapon(this, item); } } @@ -54,8 +54,8 @@ public class GuidedWeaponData : InstantWeaponData [Inspectable, JsonProperty("missileSpeed"), Key(26), RuntimeInspectable] public PerformanceStat MissileVelocity = new PerformanceStat(); - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new InstantWeapon(context, this, entity, item); + return new InstantWeapon(this, item); } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs b/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs index c20f94c78..46a6bc5fa 100644 --- a/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs @@ -24,9 +24,9 @@ public class LockWeaponData : InstantWeaponData [Inspectable, JsonProperty("decay"), Key(25)] public PerformanceStat Decay = new PerformanceStat(); - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new LockWeapon(context, this, entity, item); + return new LockWeapon(this, item); } } @@ -49,27 +49,27 @@ public class LockWeapon : InstantWeapon public override float Progress => saturate(_cooldown > 0 ? _cooldown : _lock); - public override bool CanFire => base.CanFire && _lock > .99f && Entity.TargetRange > MinRange && Entity.TargetRange < Range; + public override bool CanFire => base.CanFire && _lock > .99f && Item.Entity.TargetRange > MinRange && Item.Entity.TargetRange < Range; public float Lock { get => saturate(_lock); } - public LockWeapon(ItemManager context, LockWeaponData data, Entity entity, EquippedItem item) : base(context, data, entity, item) + public LockWeapon(LockWeaponData data, EquippedItem item) : base(data, item) { _data = data; } public override bool Execute(float delta) { - if (_target != Entity.Target.Value) + if (_target != Item.Entity.Target.Value) { _lock = 0; - _target = Entity.Target.Value; + _target = Item.Entity.Target.Value; } - if (Entity.Target.Value != null && Entity.Target.Value.IsHostileTo(Entity)) + if (Item.Entity.Target.Value != null && Item.Entity.Target.Value.IsHostileTo(Item.Entity)) { LockSpeed = Item.Evaluate(_data.LockSpeed); SensorImpact = Item.Evaluate(_data.SensorImpact); @@ -77,11 +77,11 @@ public class LockWeapon : InstantWeapon DirectionImpact = Item.Evaluate(_data.DirectionImpact); Decay = Item.Evaluate(_data.Decay); - var degrees = acos(dot(normalize(Entity.Target.Value.Position - Entity.Position), normalize(Entity.LookDirection))) * 57.2958f; + var degrees = acos(dot(normalize(Item.Entity.Target.Value.Position - Item.Entity.Position), normalize(Item.Entity.LookDirection))) * 57.2958f; if (degrees < LockAngle) { var lerp = 1 - unlerp(0, 90, degrees); - _lock = saturate(_lock + pow(lerp, DirectionImpact) * delta * LockSpeed * pow(Entity.EntityInfoGathered[Entity.Target.Value], SensorImpact)); + _lock = saturate(_lock + pow(lerp, DirectionImpact) * delta * LockSpeed * pow(Item.Entity.EntityInfoGathered[Item.Entity.Target.Value], SensorImpact)); } else _lock = saturate(_lock - delta * Decay); } diff --git a/Assets/Scripts/ServerShared/Behaviors/MiningTool.cs b/Assets/Scripts/ServerShared/Behaviors/MiningTool.cs index 9bfc3eaf4..413c11ac4 100644 --- a/Assets/Scripts/ServerShared/Behaviors/MiningTool.cs +++ b/Assets/Scripts/ServerShared/Behaviors/MiningTool.cs @@ -24,9 +24,9 @@ public class MiningToolData : BehaviorData [Inspectable, JsonProperty("range"), Key(4)] public PerformanceStat Range = new PerformanceStat(); - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new MiningTool(context, this, entity, item); + return new MiningTool(this, item); } } @@ -37,31 +37,27 @@ public class MiningTool : IBehavior private MiningToolData _data; - private Entity Entity { get; } private EquippedItem Item { get; } - private ItemManager Context { get; } public BehaviorData Data => _data; public float Range { get; private set; } - public MiningTool(ItemManager context, MiningToolData data, Entity entity, EquippedItem item) + public MiningTool(MiningToolData data, EquippedItem item) { _data = data; - Entity = entity; Item = item; - Context = context; } public bool Execute(float delta) { Range = Item.Evaluate(_data.Range); - var belt = Entity.Zone.AsteroidBelts[AsteroidBelt]; + var belt = Item.Entity.Zone.AsteroidBelts[AsteroidBelt]; if (AsteroidBelt != Guid.Empty && - Entity.Zone.AsteroidExists(AsteroidBelt, Asteroid) && - length(Entity.Position.xz - belt.Positions[Asteroid].xz) - belt.Scales[Asteroid] < Range) + Item.Entity.Zone.AsteroidExists(AsteroidBelt, Asteroid) && + length(Item.Entity.Position.xz - belt.Positions[Asteroid].xz) - belt.Scales[Asteroid] < Range) { - Entity.Zone.MineAsteroid( - Entity, + Item.Entity.Zone.MineAsteroid( + Item.Entity, AsteroidBelt, Asteroid, Item.Evaluate(_data.DamagePerSecond) * delta, diff --git a/Assets/Scripts/ServerShared/Behaviors/Radiance.cs b/Assets/Scripts/ServerShared/Behaviors/Radiance.cs deleted file mode 100644 index b3113d670..000000000 --- a/Assets/Scripts/ServerShared/Behaviors/Radiance.cs +++ /dev/null @@ -1,45 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - -using System; -using System.Linq; -using MessagePack; -using Newtonsoft.Json; - -[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] -public class RadianceData : BehaviorData -{ - [Inspectable, JsonProperty("radiance"), Key(1), RuntimeInspectable] - public PerformanceStat Radiance = new PerformanceStat(); - - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) - { - return new Radiance(context, this, entity, item); - } -} - -public class Radiance : IBehavior -{ - private RadianceData _data; - - private Entity Entity { get; } - private EquippedItem Item { get; } - private ItemManager Context { get; } - - public BehaviorData Data => _data; - - public Radiance(ItemManager context, RadianceData data, Entity entity, EquippedItem item) - { - _data = data; - Entity = entity; - Item = item; - Context = context; - } - - public bool Execute(float delta) - { - // TODO: Light system! - return true; - } -} \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/Radiance.cs.meta b/Assets/Scripts/ServerShared/Behaviors/Radiance.cs.meta deleted file mode 100644 index 94acbd584..000000000 --- a/Assets/Scripts/ServerShared/Behaviors/Radiance.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1fbf8a3d31de89a4aa53d43e015536c7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ServerShared/Behaviors/Radiator.cs b/Assets/Scripts/ServerShared/Behaviors/Radiator.cs index 69472fb7c..164bf4175 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Radiator.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Radiator.cs @@ -25,17 +25,15 @@ public class RadiatorData : BehaviorData [Inspectable, JsonProperty("energyUsage"), Key(5), RuntimeInspectable] public PerformanceStat EnergyUsage = new PerformanceStat(); - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Radiator(context, this, entity, item); + return new Radiator(this, item); } } public class Radiator : IBehavior, IAlwaysUpdatedBehavior, IInitializableBehavior { - public Entity Entity { get; } public EquippedItem Item { get; } - public ItemManager Context { get; } public float Temperature { get; private set; } public BehaviorData Data => _data; @@ -47,11 +45,9 @@ public class Radiator : IBehavior, IAlwaysUpdatedBehavior, IInitializableBehavio private RadiatorData _data; - public Radiator(ItemManager context, RadiatorData data, Entity entity, EquippedItem item) + public Radiator(RadiatorData data, EquippedItem item) { - Context = context; _data = data; - Entity = entity; Item = item; } @@ -67,7 +63,7 @@ public class Radiator : IBehavior, IAlwaysUpdatedBehavior, IInitializableBehavio // Temperature ratio would cause more waste heat than pump capacity, stop executing if (tempRatio > PumpedHeat / WasteHeat) return true; - if (!Entity.TryConsumeEnergy(EnergyUsage * tempRatio * delta)) return false; + if (!Item.Entity.TryConsumeEnergy(EnergyUsage * tempRatio * delta)) return false; var pumpedHeat = PumpedHeat * max(itemTemperature - _data.TemperatureFloor, 0); @@ -77,7 +73,7 @@ public class Radiator : IBehavior, IAlwaysUpdatedBehavior, IInitializableBehavio var wasteHeat = WasteHeat * tempRatio; Item.AddHeat((wasteHeat - pumpedHeat) * delta); - Temperature += pumpedHeat / Context.GetThermalMass(Item.EquippableItem) * delta; + Temperature += pumpedHeat / Item.ItemManager.GetThermalMass(Item.EquippableItem) * delta; return true; } @@ -85,9 +81,9 @@ public class Radiator : IBehavior, IAlwaysUpdatedBehavior, IInitializableBehavio public void Update(float delta) { Emissivity = Item.Evaluate(_data.Emissivity); - var rad = pow(Temperature, Context.GameplaySettings.HeatRadiationExponent) * Context.GameplaySettings.HeatRadiationMultiplier * Emissivity; + var rad = pow(Temperature, Item.ItemManager.GameplaySettings.HeatRadiationExponent) * Item.ItemManager.GameplaySettings.HeatRadiationMultiplier * Emissivity; Temperature -= rad * delta; - Entity.VisibilitySources[this] = rad; + Item.Entity.VisibilitySources[this] = rad; } public void Initialize() diff --git a/Assets/Scripts/ServerShared/Behaviors/Reactor.cs b/Assets/Scripts/ServerShared/Behaviors/Reactor.cs index 79d227deb..ca7859a6b 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Reactor.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Reactor.cs @@ -25,9 +25,9 @@ public class ReactorData : BehaviorData [Inspectable, JsonProperty("underload"), Key(4), RuntimeInspectable] public PerformanceStat ThrottlingFactor = new PerformanceStat(); - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Reactor(context, this, entity, item); + return new Reactor(this, item); } } @@ -49,19 +49,17 @@ public class Reactor : IBehavior, IOrderedBehavior private List _capacitors; - public Reactor(ItemManager context, ReactorData data, Entity entity, EquippedItem item) + public Reactor(ReactorData data, EquippedItem item) { - Context = context; _data = data; - Entity = entity; Item = item; - _capacitors = entity.GetBehaviors().ToList(); - entity.Equipment.ObserveAdd().Subscribe(onAdd => + _capacitors = Item.Entity.GetBehaviors().ToList(); + Item.Entity.Equipment.ObserveAdd().Subscribe(onAdd => { var capacitor = onAdd.Value.GetBehavior(); if (capacitor != null) _capacitors.Add(capacitor); }); - entity.Equipment.ObserveRemove().Subscribe(onRemove => + Item.Entity.Equipment.ObserveRemove().Subscribe(onRemove => { var capacitor = onRemove.Value.GetBehavior(); if (capacitor != null) _capacitors.Remove(capacitor); diff --git a/Assets/Scripts/ServerShared/Behaviors/Reflector.cs b/Assets/Scripts/ServerShared/Behaviors/Reflector.cs index 35a1689e4..01482a022 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Reflector.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Reflector.cs @@ -7,7 +7,7 @@ using Newtonsoft.Json; using Unity.Mathematics; using static Unity.Mathematics.math; -[MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] +[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class ReflectorData : BehaviorData { [Inspectable, JsonProperty("crossSection"), Key(1), RuntimeInspectable] @@ -16,33 +16,30 @@ public class ReflectorData : BehaviorData // [InspectableAnimationCurve, JsonProperty("visibility"), Key(1)] // public float4[] VisibilityCurve; - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Reflector(context, this, entity, item); + return new Reflector(this, item); } } public class Reflector : IBehavior { - public Entity Entity { get; } public EquippedItem Item { get; } - public ItemManager Context { get; } public BehaviorData Data => _data; private ReflectorData _data; - public Reflector(ItemManager context, ReflectorData data, Entity entity, EquippedItem item) + public Reflector(ReflectorData data, EquippedItem item) { - Context = context; _data = data; - Entity = entity; Item = item; } public bool Execute(float delta) { - // TODO: Light system! + Item.Entity.VisibilitySources[this] = Item.Evaluate(_data.CrossSection) * Item.Entity.Zone.GetLight(Item.Entity.Position.xz); + return true; } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/ResourceScanner.cs b/Assets/Scripts/ServerShared/Behaviors/ResourceScanner.cs index 29dbde551..571cf52fe 100644 --- a/Assets/Scripts/ServerShared/Behaviors/ResourceScanner.cs +++ b/Assets/Scripts/ServerShared/Behaviors/ResourceScanner.cs @@ -21,9 +21,9 @@ public class ResourceScannerData : BehaviorData [Inspectable, JsonProperty("scanDuration"), Key(3), RuntimeInspectable] public PerformanceStat ScanDuration = new PerformanceStat(); - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new ResourceScanner(context, this, entity, item); + return new ResourceScanner(this, item); } } @@ -35,9 +35,7 @@ public class ResourceScanner : IBehavior, IAlwaysUpdatedBehavior private float _scanTime; private Guid _scanTarget; - private Entity Entity { get; } private EquippedItem Item { get; } - private ItemManager Context { get; } public BehaviorData Data => _data; public float Range { get; private set; } @@ -57,24 +55,22 @@ public class ResourceScanner : IBehavior, IAlwaysUpdatedBehavior } } - public ResourceScanner(ItemManager context, ResourceScannerData data, Entity entity, EquippedItem item) + public ResourceScanner(ResourceScannerData data, EquippedItem item) { _data = data; - Entity = entity; Item = item; - Context = context; } public bool Execute(float delta) { - var planetData = Context.ItemData.Get(ScanTarget); + var planetData = Item.Entity.Zone.Planets[ScanTarget]; if (planetData != null) { if (planetData is AsteroidBeltData beltData) { if(Asteroid > -1 && Asteroid < beltData.Asteroids.Length && - length(Entity.Position.xz - Entity.Zone.AsteroidBelts[ScanTarget].Positions[Asteroid].xz) < Range) + length(Item.Entity.Position.xz - Item.Entity.Zone.AsteroidBelts[ScanTarget].Positions[Asteroid].xz) < Range) { _scanTime += delta; if (_scanTime > ScanDuration) @@ -88,7 +84,7 @@ public class ResourceScanner : IBehavior, IAlwaysUpdatedBehavior } else { - if(length(Entity.Position.xz - Entity.Zone.GetOrbitPosition(planetData.Orbit)) < Range) + if(length(Item.Entity.Position.xz - Item.Entity.Zone.GetOrbitPosition(planetData.Orbit)) < Range) { _scanTime += delta; if (_scanTime > ScanDuration) diff --git a/Assets/Scripts/ServerShared/Behaviors/Sensor.cs b/Assets/Scripts/ServerShared/Behaviors/Sensor.cs index d79a9a454..2bf78c9a0 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Sensor.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Sensor.cs @@ -39,9 +39,9 @@ public class SensorData : BehaviorData [Inspectable, JsonProperty("pingRadiusExponent"), Key(11)] public float PingRadiusExponent = .5f; - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Sensor(context, this, entity, item); + return new Sensor(this, item); } } @@ -54,9 +54,7 @@ public class Sensor : IBehavior, IEventBehavior private float _pingRadius; private HashSet _pingedEntities = new HashSet(); - private Entity Entity { get; } private EquippedItem Item { get; } - private ItemManager Context { get; } public BehaviorData Data => _data; @@ -95,12 +93,10 @@ public class Sensor : IBehavior, IEventBehavior } } - public Sensor(ItemManager context, SensorData data, Entity entity, EquippedItem item) + public Sensor(SensorData data, EquippedItem item) { _data = data; - Entity = entity; Item = item; - Context = context; } public bool Execute(float delta) @@ -119,42 +115,41 @@ public class Sensor : IBehavior, IEventBehavior _pingCooldown -= delta / Item.Evaluate(_data.PingCooldown); // TODO: Handle Active Detection / Visibility From Reflected Radiance - var hardpoint = Entity.Hardpoints[Item.Position.x, Item.Position.y]; - var forward = hardpoint != null && Entity.HardpointTransforms.ContainsKey(hardpoint) ? - normalize(Entity.HardpointTransforms[hardpoint].direction.xz) : - Entity.Direction; - foreach (var entity in Entity.Zone.Entities) + var hardpoint = Item.Entity.Hardpoints[Item.Position.x, Item.Position.y]; + var forward = hardpoint != null && Item.Entity.HardpointTransforms.ContainsKey(hardpoint) ? + normalize(Item.Entity.HardpointTransforms[hardpoint].direction.xz) : + Item.Entity.Direction; + foreach (var entity in Item.Entity.Zone.Entities) { - if(entity != Entity) + if (entity == Item.Entity) continue; + + var diff = entity.Position.xz - Item.Entity.Position.xz; + var angle = acos(dot(forward, normalize(diff))); + var dist = length(diff); + float previous, next; + Item.Entity.EntityInfoGathered.TryGetValue(entity, out previous); + if (!_pingedEntities.Contains(entity) && dist < _pingRadius) { - var diff = entity.Position.xz - Entity.Position.xz; - var angle = acos(dot(forward, normalize(diff))); - var dist = length(diff); - float previous, next; - Entity.EntityInfoGathered.TryGetValue(entity, out previous); - if (!_pingedEntities.Contains(entity) && dist < _pingRadius) - { - _pingedEntities.Add(entity); - next = saturate( - previous + - entity.Visibility * - Item.Evaluate(_data.Sensitivity) * - Item.Evaluate(_data.PingBoost) * - dist); - } - else - { - next = saturate( - previous + - entity.Visibility * - Item.Evaluate(_data.Sensitivity) * - _data.SensitivityCurve.Evaluate(angle / PI) * - delta / dist); - } - next *= 1 - Context.GameplaySettings.TargetInfoDecay * delta; - //Context.Log($"{entity.Name} visibility {(int)(previous * 100)}% -> {(int)(next * 100)}%"); - Entity.EntityInfoGathered[entity] = next; + _pingedEntities.Add(entity); + next = saturate( + previous + + entity.Visibility * + Item.Evaluate(_data.Sensitivity) * + Item.Evaluate(_data.PingBoost) * + dist); } + else + { + next = saturate( + previous + + entity.Visibility * + Item.Evaluate(_data.Sensitivity) * + _data.SensitivityCurve.Evaluate(angle / PI) * + delta / dist); + } + next *= 1 - Item.ItemManager.GameplaySettings.TargetInfoDecay * delta; + //Context.Log($"{entity.Name} visibility {(int)(previous * 100)}% -> {(int)(next * 100)}%"); + Item.Entity.EntityInfoGathered[entity] = next; } return true; } diff --git a/Assets/Scripts/ServerShared/Behaviors/Shield.cs b/Assets/Scripts/ServerShared/Behaviors/Shield.cs index 1b2c1abc8..0ef02801c 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Shield.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Shield.cs @@ -16,17 +16,15 @@ public class ShieldData : BehaviorData [Inspectable, JsonProperty("energy"), Key(2), RuntimeInspectable] public PerformanceStat EnergyUsage = new PerformanceStat(); - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Shield(context, this, entity, item); + return new Shield(this, item); } } public class Shield : IBehavior { - public Entity Entity { get; } public EquippedItem Item { get; } - public ItemManager Context { get; } public float Efficiency { get; private set; } public float EnergyUsage { get; private set; } @@ -35,11 +33,9 @@ public class Shield : IBehavior private ShieldData _data; - public Shield(ItemManager context, ShieldData data, Entity entity, EquippedItem item) + public Shield(ShieldData data, EquippedItem item) { - Context = context; _data = data; - Entity = entity; Item = item; } @@ -52,12 +48,12 @@ public class Shield : IBehavior public bool CanTakeHit(DamageType type, float damage) { - return Entity.CanConsumeEnergy(damage * EnergyUsage); + return Item.Entity.CanConsumeEnergy(damage * EnergyUsage); } public void TakeHit(DamageType type, float damage) { - Entity.TryConsumeEnergy(damage * EnergyUsage); + Item.Entity.TryConsumeEnergy(damage * EnergyUsage); Item.AddHeat(damage / Efficiency); } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs b/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs index 35e0115d8..e40dd3b44 100644 --- a/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs +++ b/Assets/Scripts/ServerShared/Behaviors/StatModifier.cs @@ -22,9 +22,9 @@ public class StatModifierData : BehaviorData [InspectableType(typeof(BehaviorData)), JsonProperty("requireBehavior"), Key(4)] public Type RequireBehavior; - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new StatModifier(context, this, entity, item); + return new StatModifier(this, item); } } @@ -32,9 +32,7 @@ public class StatModifierData : BehaviorData public class StatModifier : IBehavior, IInitializableBehavior, IDisposableBehavior { private StatModifierData _data; - private Entity Entity { get; } private EquippedItem Item { get; } - private ItemManager Context { get; } public BehaviorData Data => _data; @@ -45,12 +43,10 @@ public class StatModifier : IBehavior, IInitializableBehavior, IDisposableBehavi private static Type[] StatObjects => _statObjects = _statObjects ?? typeof(BehaviorData).GetAllChildClasses() .Concat(typeof(EquippableItemData).GetAllChildClasses()).ToArray(); - public StatModifier(ItemManager context, StatModifierData data, Entity entity, EquippedItem item) + public StatModifier(StatModifierData data, EquippedItem item) { _data = data; - Entity = entity; Item = item; - Context = context; } public void Initialize() @@ -63,17 +59,17 @@ public class StatModifier : IBehavior, IInitializableBehavior, IDisposableBehavi if (statField != null) { if (typeof(EquippableItemData).IsAssignableFrom(targetType)) - _stats = Entity.Equipment + _stats = Item.Entity.Equipment .Select(hp => hp.EquippableItem) - .Where(gear => _data.RequireBehavior == null || Context.GetData(gear).Behaviors.Any(behavior => behavior.GetType() == _data.RequireBehavior)) - .Where(gear => Context.GetData(gear).GetType() == targetType) - .Select(gear => statField.GetValue(Context.GetData(gear)) as PerformanceStat) + .Where(gear => _data.RequireBehavior == null || Item.ItemManager.GetData(gear).Behaviors.Any(behavior => behavior.GetType() == _data.RequireBehavior)) + .Where(gear => Item.ItemManager.GetData(gear).GetType() == targetType) + .Select(gear => statField.GetValue(Item.ItemManager.GetData(gear)) as PerformanceStat) .ToArray(); else - _stats = Entity.Equipment + _stats = Item.Entity.Equipment .Select(hp => hp.EquippableItem) - .Where(gear => _data.RequireBehavior == null || Context.GetData(gear).Behaviors.Any(behavior => behavior.GetType() == _data.RequireBehavior)) - .SelectMany(gear => Context.GetData(gear).Behaviors) + .Where(gear => _data.RequireBehavior == null || Item.ItemManager.GetData(gear).Behaviors.Any(behavior => behavior.GetType() == _data.RequireBehavior)) + .SelectMany(gear => Item.ItemManager.GetData(gear).Behaviors) .Where(behaviorData => behaviorData.GetType() == targetType) .Select(behaviorData => statField.GetValue(behaviorData) as PerformanceStat) .ToArray(); @@ -85,15 +81,15 @@ public class StatModifier : IBehavior, IInitializableBehavior, IDisposableBehavi { foreach (var stat in _stats) (_data.Type == StatModifierType.Constant - ? stat.GetConstantModifiers(Entity) - : stat.GetScaleModifiers(Entity))[this] = Item.Evaluate(_data.Modifier); + ? stat.GetConstantModifiers(Item.Entity) + : stat.GetScaleModifiers(Item.Entity))[this] = Item.Evaluate(_data.Modifier); return true; } public void Dispose() { foreach (var stat in _stats) - (_data.Type == StatModifierType.Constant ? stat.GetConstantModifiers(Entity) : stat.GetScaleModifiers(Entity)).Remove(this); + (_data.Type == StatModifierType.Constant ? stat.GetConstantModifiers(Item.Entity) : stat.GetScaleModifiers(Item.Entity)).Remove(this); } } diff --git a/Assets/Scripts/ServerShared/Behaviors/Switch.cs b/Assets/Scripts/ServerShared/Behaviors/Switch.cs index ccf07bb7d..9d5686ae4 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Switch.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Switch.cs @@ -10,9 +10,9 @@ using Newtonsoft.Json; [Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), Order(-25)] public class SwitchData : BehaviorData { - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Switch(context, this, entity, item); + return new Switch(this, item); } } @@ -20,20 +20,16 @@ public class Switch : IBehavior { private SwitchData _data; - private Entity Entity { get; } private EquippedItem Item { get; } - private ItemManager Context { get; } public BehaviorData Data => _data; public bool Activated { get; set; } - public Switch(ItemManager context, SwitchData data, Entity entity, EquippedItem item) + public Switch(SwitchData data, EquippedItem item) { _data = data; - Entity = entity; Item = item; - Context = context; } public bool Execute(float delta) diff --git a/Assets/Scripts/ServerShared/Behaviors/Thermotoggle.cs b/Assets/Scripts/ServerShared/Behaviors/Thermotoggle.cs index 4df055a9c..4fe226352 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Thermotoggle.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Thermotoggle.cs @@ -15,10 +15,13 @@ public class ThermotoggleData : BehaviorData [Inspectable, JsonProperty("highPass"), Key(2)] public bool HighPass; + + [Inspectable, JsonProperty("adjustable"), Key(3)] + public bool Adjustable; - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Thermotoggle(context, this, entity, item); + return new Thermotoggle(this, item); } } @@ -27,18 +30,15 @@ public class Thermotoggle : IBehavior public float TargetTemperature; private ThermotoggleData _data; - private Entity Entity { get; } private EquippedItem Item { get; } - private ItemManager Context { get; } public BehaviorData Data => _data; + public ThermotoggleData ThermotoggleData => _data; - public Thermotoggle(ItemManager context, ThermotoggleData data, Entity entity, EquippedItem item) + public Thermotoggle(ThermotoggleData data, EquippedItem item) { _data = data; - Entity = entity; Item = item; - Context = context; TargetTemperature = data.TargetTemperature; } diff --git a/Assets/Scripts/ServerShared/Behaviors/Thruster.cs b/Assets/Scripts/ServerShared/Behaviors/Thruster.cs index 5d1026809..ab3e68f87 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Thruster.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Thruster.cs @@ -25,17 +25,15 @@ public class ThrusterData : BehaviorData [InspectablePrefab, JsonProperty("Particles"), Key(5)] public string ParticlesPrefab; - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Thruster(context, this, entity, item); + return new Thruster(this, item); } } public class Thruster : IAnalogBehavior { - public Entity Entity { get; } public EquippedItem Item { get; } - public ItemManager Context { get; } public float Thrust { get; private set; } public float Torque { get; } @@ -52,15 +50,13 @@ public class Thruster : IAnalogBehavior private float _input; - public Thruster(ItemManager context, ThrusterData data, Entity entity, EquippedItem item) + public Thruster(ThrusterData data, EquippedItem item) { - Context = context; _data = data; - Entity = entity; Item = item; - var hullData = context.GetData(entity.Hull) as HullData; + var hullData = Item.ItemManager.GetData(Item.Entity.Hull) as HullData; var hullCenter = hullData.Shape.CenterOfMass; - var itemData = context.GetData(item.EquippableItem); + var itemData = Item.ItemManager.GetData(item.EquippableItem); var itemCenter = hullData.Shape.Inset(itemData.Shape, item.Position, item.EquippableItem.Rotation).CenterOfMass; var toCenter = hullCenter - itemCenter; Torque = -dot(normalize(toCenter), float2(1, 0).Rotate(item.EquippableItem.Rotation)); @@ -72,13 +68,13 @@ public class Thruster : IAnalogBehavior if(_input > .01f && Item.Entity.TryConsumeEnergy(_input * Item.Evaluate(_data.EnergyUsage))) { Thrust = Item.Evaluate(_data.Thrust); - Entity.Velocity -= Entity.Direction.Rotate(Item.EquippableItem.Rotation) * _input * Thrust / Entity.Mass * delta; - Entity.Direction = mul(Entity.Direction, - Unity.Mathematics.float2x2.Rotate(_input * Torque * Thrust * Context.GameplaySettings.TorqueMultiplier / Entity.Mass * delta)); + Item.Entity.Velocity -= Item.Entity.Direction.Rotate(Item.EquippableItem.Rotation) * _input * Thrust / Item.Entity.Mass * delta; + Item.Entity.Direction = mul(Item.Entity.Direction, + Unity.Mathematics.float2x2.Rotate(_input * Torque * Thrust * Item.ItemManager.GameplaySettings.TorqueMultiplier / Item.Entity.Mass * delta)); Item.AddHeat(_input * Item.Evaluate(_data.Heat) * delta); var vis = _input * Item.Evaluate(_data.Visibility); - if (!Entity.VisibilitySources.ContainsKey(this) || vis > Entity.VisibilitySources[this]) - Entity.VisibilitySources[this] = vis; + if (!Item.Entity.VisibilitySources.ContainsKey(this) || vis > Item.Entity.VisibilitySources[this]) + Item.Entity.VisibilitySources[this] = vis; return true; } return false; diff --git a/Assets/Scripts/ServerShared/Behaviors/Trigger.cs b/Assets/Scripts/ServerShared/Behaviors/Trigger.cs index 10c30163d..007588214 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Trigger.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Trigger.cs @@ -10,9 +10,9 @@ using Newtonsoft.Json; [Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), Order(-20)] public class TriggerData : BehaviorData { - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Trigger(context, this, entity, item); + return new Trigger(this, item); } } @@ -20,24 +20,16 @@ public class Trigger : IBehavior, IActivatedBehavior { private TriggerData _data; - public Entity Entity { get; } public EquippedItem Item { get; } - public ItemManager Context { get; } public BehaviorData Data => _data; public bool _pulled; - public Trigger(ItemManager context, TriggerData data, Entity entity, EquippedItem item) + public Trigger(TriggerData data, EquippedItem item) { _data = data; - Entity = entity; Item = item; - Context = context; - } - - public void Initialize() - { } public bool Execute(float delta) diff --git a/Assets/Scripts/ServerShared/Behaviors/TurretController.cs b/Assets/Scripts/ServerShared/Behaviors/TurretController.cs index f9496e49a..c13ea7df8 100644 --- a/Assets/Scripts/ServerShared/Behaviors/TurretController.cs +++ b/Assets/Scripts/ServerShared/Behaviors/TurretController.cs @@ -14,9 +14,9 @@ using float3 = Unity.Mathematics.float3; [MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class TurretControllerData : BehaviorData { - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new TurretController(context, this, entity, item); + return new TurretController(this, item); } } @@ -27,26 +27,22 @@ public class TurretController : IBehavior private float _shotSpeed; private bool _predictShots; - public Entity EquippedEntity { get; } public EquippedItem Item { get; } - public ItemManager Context { get; } public BehaviorData Data => _data; - public TurretController(ItemManager context, TurretControllerData data, Entity equippedEntity, EquippedItem item) + public TurretController(TurretControllerData data, EquippedItem item) { - Context = context; _data = data; - EquippedEntity = equippedEntity; Item = item; - var weapons = equippedEntity.Equipment.Where(e => e.Behaviors.Any(b => b.Data is WeaponData)); + var weapons = Item.Entity.Equipment.Where(e => e.Behaviors.Any(b => b.Data is WeaponData)); foreach (var weapon in weapons) { CheckWeapon(weapon); } - equippedEntity.Equipment.ObserveAdd().Subscribe(add => CheckWeapon(add.Value)); - equippedEntity.Equipment.ObserveRemove().Subscribe(remove => + Item.Entity.Equipment.ObserveAdd().Subscribe(add => CheckWeapon(add.Value)); + Item.Entity.Equipment.ObserveRemove().Subscribe(remove => { foreach (var b in remove.Value.Behaviors) if (b is Weapon weapon) @@ -71,30 +67,30 @@ public class TurretController : IBehavior public bool Execute(float delta) { - if (EquippedEntity.Target.Value != null) + if (Item.Entity.Target.Value != null) { - var diff = EquippedEntity.Target.Value.Position - EquippedEntity.Position; + var diff = Item.Entity.Target.Value.Position - Item.Entity.Position; if (_predictShots) { - var targetHullData = EquippedEntity.ItemManager.GetData(EquippedEntity.Target.Value.Hull) as HullData; - var targetVelocity = float3(EquippedEntity.Target.Value.Velocity.x, 0, EquippedEntity.Target.Value.Velocity.y); + var targetHullData = Item.Entity.ItemManager.GetData(Item.Entity.Target.Value.Hull) as HullData; + var targetVelocity = float3(Item.Entity.Target.Value.Velocity.x, 0, Item.Entity.Target.Value.Velocity.y); var predictedPosition = AetheriaMath.FirstOrderIntercept( - EquippedEntity.Position, float3.zero, _shotSpeed, - EquippedEntity.Target.Value.Position, targetVelocity + Item.Entity.Position, float3.zero, _shotSpeed, + Item.Entity.Target.Value.Position, targetVelocity ); - predictedPosition.y = EquippedEntity.Zone.GetHeight(predictedPosition.xz) + targetHullData.GridOffset; - EquippedEntity.LookDirection = normalize(predictedPosition - EquippedEntity.Position); + predictedPosition.y = Item.Entity.Zone.GetHeight(predictedPosition.xz) + targetHullData.GridOffset; + Item.Entity.LookDirection = normalize(predictedPosition - Item.Entity.Position); } else - EquippedEntity.LookDirection = normalize(diff); + Item.Entity.LookDirection = normalize(diff); var dist = length(diff); foreach (var x in _weapons) { var data = x.Data as WeaponData; var fire = dot( - EquippedEntity.HardpointTransforms[EquippedEntity.Hardpoints[x.Item.Position.x, x.Item.Position.y]].direction, - EquippedEntity.LookDirection) > .99f; + Item.Entity.HardpointTransforms[Item.Entity.Hardpoints[x.Item.Position.x, x.Item.Position.y]].direction, + Item.Entity.LookDirection) > .99f; if (x.Item.Evaluate(data.Range) > dist && fire) { x.Activate(); @@ -110,7 +106,7 @@ public class TurretController : IBehavior if (x.Firing) x.Deactivate(); } - EquippedEntity.Target.Value = EquippedEntity.VisibleHostiles.FirstOrDefault(e => e is Ship); + Item.Entity.Target.Value = Item.Entity.VisibleHostiles.FirstOrDefault(e => e is Ship); } return true; } diff --git a/Assets/Scripts/ServerShared/Behaviors/VelocityConversion.cs b/Assets/Scripts/ServerShared/Behaviors/VelocityConversion.cs index fef52068f..4214c7955 100644 --- a/Assets/Scripts/ServerShared/Behaviors/VelocityConversion.cs +++ b/Assets/Scripts/ServerShared/Behaviors/VelocityConversion.cs @@ -13,40 +13,28 @@ public class VelocityConversionData : BehaviorData [Inspectable, JsonProperty("traction"), Key(1), RuntimeInspectable] public PerformanceStat Traction = new PerformanceStat(); - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new VelocityConversion(context, this, entity, item); + return new VelocityConversion(this, item); } } public class VelocityConversion : IBehavior { - public Entity Entity { get; } public EquippedItem Item { get; } - public ItemManager Context { get; } public BehaviorData Data => _data; private VelocityConversionData _data; - public VelocityConversion(ItemManager context, VelocityConversionData data, Entity entity, EquippedItem item) + public VelocityConversion(VelocityConversionData data, EquippedItem item) { - Context = context; _data = data; - Entity = entity; Item = item; } - public void Initialize() - { - } - public bool Execute(float delta) { return true; } - - public void Remove() - { - } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs b/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs index 09b948e75..72e9cdaf1 100644 --- a/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs +++ b/Assets/Scripts/ServerShared/Behaviors/VelocityLimit.cs @@ -7,24 +7,22 @@ using Newtonsoft.Json; using Unity.Mathematics; using static Unity.Mathematics.math; -[MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] +[Inspectable, MessagePackObject, JsonObject(MemberSerialization.OptIn), RuntimeInspectable] public class VelocityLimitData : BehaviorData { [Inspectable, JsonProperty("topSpeed"), Key(1), RuntimeInspectable] public PerformanceStat TopSpeed = new PerformanceStat(); - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new VelocityLimit(context, this, entity, item); + return new VelocityLimit(this, item); } } [Order(100)] public class VelocityLimit : IBehavior { - public Entity Entity { get; } public EquippedItem Item { get; } - public ItemManager Context { get; } public float Limit { get; private set; } @@ -32,28 +30,18 @@ public class VelocityLimit : IBehavior private VelocityLimitData _data; - public VelocityLimit(ItemManager context, VelocityLimitData data, Entity entity, EquippedItem item) + public VelocityLimit(VelocityLimitData data, EquippedItem item) { - Context = context; _data = data; - Entity = entity; Item = item; Limit = Item.Evaluate(_data.TopSpeed); } - public void Initialize() - { - } - public bool Execute(float delta) { Limit = Item.Evaluate(_data.TopSpeed); - if (length(Entity.Velocity) > Limit) - Entity.Velocity = normalize(Entity.Velocity) * Limit; + if (length(Item.Entity.Velocity) > Limit) + Item.Entity.Velocity = normalize(Item.Entity.Velocity) * Limit; return true; } - - public void Remove() - { - } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/Visibility.cs b/Assets/Scripts/ServerShared/Behaviors/Visibility.cs index 1e5359869..c075e4ee6 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Visibility.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Visibility.cs @@ -16,44 +16,31 @@ public class VisibilityData : BehaviorData [Inspectable, JsonProperty("visibilityDecay"), Key(2)] public PerformanceStat VisibilityDecay = new PerformanceStat(); - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Visibility(context, this, entity, item); + return new Visibility(this, item); } } -public class Visibility : IBehavior, IAlwaysUpdatedBehavior +public class Visibility : IBehavior { private VisibilityData _data; - private Entity Entity { get; } private EquippedItem Item { get; } - private ItemManager Context { get; } public BehaviorData Data => _data; private float _cooldown; // Normalized - public Visibility(ItemManager context, VisibilityData data, Entity entity, EquippedItem item) + public Visibility(VisibilityData data, EquippedItem item) { _data = data; - Entity = entity; Item = item; - Context = context; } public bool Execute(float delta) { - Entity.VisibilitySources[this] = Item.Evaluate(_data.Visibility); + Item.Entity.VisibilitySources[this] = Item.Evaluate(_data.Visibility); return true; } - - public void Update(float delta) - { - // TODO: Time independent decay? - if(Entity.VisibilitySources.ContainsKey(this)) - { - Entity.VisibilitySources[this] *= Item.Evaluate(_data.VisibilityDecay); - } - } } \ No newline at end of file diff --git a/Assets/Scripts/ServerShared/Behaviors/Weapon.cs b/Assets/Scripts/ServerShared/Behaviors/Weapon.cs index 4cec8bb67..48f194e31 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Weapon.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Weapon.cs @@ -70,11 +70,8 @@ public abstract class WeaponData : BehaviorData public abstract class Weapon : IActivatedBehavior { private WeaponData _data; - private EquippableItemData _itemData; - public Entity Entity { get; } public EquippedItem Item { get; } - public ItemManager Context { get; } public abstract float DamagePerSecond { get; } public abstract float RangeDamagePerSecond(float range); @@ -101,13 +98,10 @@ public abstract class Weapon : IActivatedBehavior } - public Weapon(ItemManager context, WeaponData data, Entity entity, EquippedItem item) + public Weapon(WeaponData data, EquippedItem item) { - Context = context; - Entity = entity; Item = item; _data = data; - _itemData = context.GetData(item.EquippableItem); } protected virtual void UpdateStats() diff --git a/Assets/Scripts/ServerShared/Behaviors/Wear.cs b/Assets/Scripts/ServerShared/Behaviors/Wear.cs index 675ebccbb..91aa6749b 100644 --- a/Assets/Scripts/ServerShared/Behaviors/Wear.cs +++ b/Assets/Scripts/ServerShared/Behaviors/Wear.cs @@ -14,30 +14,24 @@ public class WearData : BehaviorData [InspectableTemperature, JsonProperty("perSecond"), Key(1)] public bool PerSecond = true; - public override IBehavior CreateInstance(ItemManager context, Entity entity, EquippedItem item) + public override IBehavior CreateInstance(EquippedItem item) { - return new Wear(context, this, entity, item); + return new Wear(this, item); } } public class Wear : IBehavior { private WearData _data; - private EquippableItemData _itemData; - public Entity Entity { get; } public EquippedItem Item { get; } - public ItemManager Context { get; } public BehaviorData Data => _data; - public Wear(ItemManager context, WearData data, Entity entity, EquippedItem item) + public Wear(WearData data, EquippedItem item) { - Context = context; _data = data; - Entity = entity; Item = item; - _itemData = context.GetData(item.EquippableItem); } public bool Execute(float delta) diff --git a/Assets/Scripts/ServerShared/Entity.cs b/Assets/Scripts/ServerShared/Entity.cs index e034b1bca..45f26a83c 100644 --- a/Assets/Scripts/ServerShared/Entity.cs +++ b/Assets/Scripts/ServerShared/Entity.cs @@ -764,9 +764,9 @@ public abstract class Entity foreach (var v in VisibilitySources.Keys.ToArray()) { - VisibilitySources[v] *= max(1 - ItemManager.GameplaySettings.VisibilityDecay * delta, 0); + VisibilitySources[v] = AetheriaMath.Decay(VisibilitySources[v], ItemManager.GameplaySettings.VisibilityDecay, delta); - if (VisibilitySources[v] < 0.01f) VisibilitySources.Remove(v); + if (VisibilitySources[v] < 0.1f) VisibilitySources.Remove(v); } UpdateTemperature(delta); @@ -998,7 +998,7 @@ public class EquippedItem Behaviors = Data.Behaviors - .Select(bd => bd.CreateInstance(itemManager, entity, this)) + .Select(bd => bd.CreateInstance(this)) .ToArray(); BehaviorGroups = Behaviors diff --git a/Assets/Scripts/ServerShared/Settings.cs b/Assets/Scripts/ServerShared/Settings.cs index 8d64821e5..0b07f9252 100644 --- a/Assets/Scripts/ServerShared/Settings.cs +++ b/Assets/Scripts/ServerShared/Settings.cs @@ -23,7 +23,6 @@ public class PlanetSettings public ExponentialCurve WaveRadius; public ExponentialCurve WaveFrequency; public ExponentialCurve WaveSpeed; - public ExponentialCurve FogTintRadius; public ExponentialCurve LightRadius; public ExponentialCurve BodyRadius; public float AsteroidVerticalOffset = -5f; diff --git a/Assets/Scripts/ServerShared/Zone.cs b/Assets/Scripts/ServerShared/Zone.cs index ae1993e7f..8dcf78310 100644 --- a/Assets/Scripts/ServerShared/Zone.cs +++ b/Assets/Scripts/ServerShared/Zone.cs @@ -65,6 +65,9 @@ public class Zone case AsteroidBeltData belt: AsteroidBelts[belt.ID] = new AsteroidBelt(belt); break; + case SunData sun: + PlanetInstances.Add(sun.ID, new Sun(settings, sun, Orbits[planet.Orbit])); + break; case GasGiantData gas: PlanetInstances.Add(gas.ID, new GasGiant(settings, gas, Orbits[planet.Orbit])); break; @@ -305,7 +308,7 @@ public class Zone } public float GetHeight(float2 position) { - float result = -PowerPulse(length(position)/(Pack.Radius*2), Settings.ZoneDepthExponent) * Settings.ZoneDepth; + var result = -PowerPulse(length(position)/(Pack.Radius*2), Settings.ZoneDepthExponent) * Settings.ZoneDepth; foreach (var body in PlanetInstances.Values) { var p = position - body.Orbit.Position; //GetOrbitPosition(body.BodyData.Orbit) @@ -333,6 +336,26 @@ public class Zone return result; } + public float GetLight(float2 position) + { + var light = 0f; + foreach (var body in PlanetInstances.Values) + { + if (body is Sun sun) + { + var p = position - body.Orbit.Position; + var distSqr = lengthsq(p); + var lightRadius = sun.LightRadius.Value; + if (distSqr < lightRadius * lightRadius) + { + light += PowerPulse(sqrt(distSqr) / lightRadius, 8); + } + } + } + + return light; + } + public float2 GetForce(float2 position) { var normal = GetNormal(position); @@ -412,10 +435,17 @@ public class GasGiant : Planet } } -// public class Sun : GasGiant -// { -// -// } +public class Sun : GasGiant +{ + public ReadOnlyReactiveProperty LightRadius; + + public Sun(PlanetSettings settings, SunData data, Orbit orbit) : base(settings, data, orbit) + { + LightRadius = new ReadOnlyReactiveProperty( + data.Mass.CombineLatest(data.LightRadiusMultiplier, + (mass, radius) => settings.LightRadius.Evaluate(mass) * radius)); + } +} public class AsteroidBelt { diff --git a/Assets/Scripts/ServerShared/ZoneData.cs b/Assets/Scripts/ServerShared/ZoneData.cs index c06046a01..f0eeffcdc 100644 --- a/Assets/Scripts/ServerShared/ZoneData.cs +++ b/Assets/Scripts/ServerShared/ZoneData.cs @@ -163,6 +163,9 @@ public class SunData : GasGiantData [JsonProperty("fogTintColor"), Key(21)] public ReactiveProperty FogTintColor = new ReactiveProperty(float3.zero); + + [JsonProperty("lightRadiusMul")] [Key(22)] + public ReactiveProperty LightRadiusMultiplier = new ReactiveProperty(1); } [MessagePackObject, JsonObject(MemberSerialization.OptIn)] diff --git a/Assets/Scripts/UI/InventoryMenu.cs b/Assets/Scripts/UI/InventoryMenu.cs index d1c486517..d01e89e7a 100644 --- a/Assets/Scripts/UI/InventoryMenu.cs +++ b/Assets/Scripts/UI/InventoryMenu.cs @@ -321,8 +321,7 @@ public class InventoryMenu : MonoBehaviour } _selectedPanel = panel; _selectedPosition = cargoEvent.Position; - PropertiesPanel.Clear(); - PropertiesPanel.AddItemProperties(item); + PropertiesPanel.Inspect(item); _selectedPanel = panel; _selectedPosition = cargoEvent.CargoBay.Cargo[item]; _selectedItem = item; @@ -374,7 +373,7 @@ public class InventoryMenu : MonoBehaviour } } - PropertiesPanel.Inspect(entityEvent.Entity, item); + PropertiesPanel.Inspect(item); _selectedPanel = panel; _selectedPosition = item.Position; _selectedItem = item.EquippableItem; diff --git a/Assets/Scripts/UI/PropertiesPanel.cs b/Assets/Scripts/UI/PropertiesPanel.cs index fdc4cc252..b546b0959 100644 --- a/Assets/Scripts/UI/PropertiesPanel.cs +++ b/Assets/Scripts/UI/PropertiesPanel.cs @@ -18,6 +18,7 @@ using static Unity.Mathematics.math; public class PropertiesPanel : MonoBehaviour { + public RectTransform Spacer; public DropdownMenu Dropdown; public TextMeshProUGUI Title; public RectTransform Section; @@ -86,6 +87,14 @@ public class PropertiesPanel : MonoBehaviour SelectedChild = null; } + public RectTransform AddSpacer() + { + var spacer = Instantiate(Spacer, Content ?? transform); + Properties.Add(spacer.gameObject); + OnPropertyAdded?.Invoke(spacer.gameObject); + return spacer; + } + public RectTransform AddSection(string name) { var section = Instantiate(Section, Content ?? transform); @@ -352,68 +361,116 @@ public class PropertiesPanel : MonoBehaviour RefreshValues(); } - public void AddEntityProperties(Entity entity) + private void AddEntityProperties(Entity entity) { AddField("Name", () => entity.Name, name => entity.Name = name); AddProperty("Mass", () => $"{entity.Mass.SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); } - public void AddItemProperties(Entity entity, ItemInstance item) + private void AddItemProperties(ItemInstance item) { var data = Context.ItemData.Get(item.Data); - AddProperty(data.Description);//.Label.fontStyle = FontStyles.Normal; + + AddProperty(data.Description); + var manufacturer = Context.ItemData.Get(data.Manufacturer); - if (manufacturer != null) - { - AddProperty("Manufacturer", () => manufacturer.Name); - } - else - { - AddProperty("Manufacturer", () => "GameCult"); - } + AddProperty("Manufacturer", () => manufacturer?.Name ?? "GameCult"); + if (item is SimpleCommodity simpleCommodity) AddProperty("Quantity", () => simpleCommodity.Quantity.ToString()); + AddProperty("Mass", () => Context.GetMass(item).SignificantDigits(Context.GameplaySettings.SignificantDigits)); - AddProperty("Thermal Mass", () => Context.GetThermalMass(item).SignificantDigits(Context.GameplaySettings.SignificantDigits)); - if (item is EquippableItem gear) + //AddProperty("Thermal Mass", () => Context.GetThermalMass(item).SignificantDigits(Context.GameplaySettings.SignificantDigits)); + } + + private void AddEquippableItemProperties(EquippableItem item, Func statValueFunction) + { + if (item.Durability < .01f) { - var (tier, upgrades) = entity.ItemManager.GetTier(gear); - Title.text = - $"{data.Name} ({tier.Name}{new string('+', upgrades)})"; - if (gear.Durability < .01f) + AddProperty("Item destroyed!"); + return; + } + + var gearData = Context.GetData(item); + AddProperty("Durability", () => $"{(int)(item.Durability / gearData.Durability * 100)}%"); + foreach (var behavior in gearData.Behaviors) + { + var type = behavior.GetType(); + if (type.GetCustomAttribute(typeof(RuntimeInspectable)) != null) { - AddProperty("Item destroyed!"); - } - else - { - var gearData = Context.GetData(gear); - AddProperty("Durability", () => - $"{gear.Durability.SignificantDigits(Context.GameplaySettings.SignificantDigits)}/{gearData.Durability.SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); - foreach (var behavior in gearData.Behaviors) + foreach (var field in type.GetFields().Where(f => f.GetCustomAttribute() != null)) { - var type = behavior.GetType(); - if (type.GetCustomAttribute(typeof(RuntimeInspectable)) != null) + var fieldType = field.FieldType; + if (fieldType == typeof(float)) + AddProperty(field.Name, () => $"{((float) field.GetValue(behavior)).SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); + else if (fieldType == typeof(int)) + AddProperty(field.Name, () => $"{(int) field.GetValue(behavior)}"); + else if (fieldType == typeof(PerformanceStat)) { - foreach (var field in type.GetFields().Where(f => f.GetCustomAttribute() != null)) - { - var fieldType = field.FieldType; - if (fieldType == typeof(float)) - AddProperty(field.Name, () => $"{((float) field.GetValue(behavior)).SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); - else if (fieldType == typeof(int)) - AddProperty(field.Name, () => $"{(int) field.GetValue(behavior)}"); - else if (fieldType == typeof(PerformanceStat)) - { - var stat = (PerformanceStat) field.GetValue(behavior); - AddProperty(field.Name, () => $"{Context.Evaluate(stat, gear).SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); - } - } + var stat = (PerformanceStat) field.GetValue(behavior); + AddProperty(field.Name, () => $"{statValueFunction(stat).SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); } } } } } - public void AddItemDataProperties(ItemData data) + private string GetTitle(EquippableItem item) + { + var data = Context.ItemData.Get(item.Data); + var (tier, upgrades) = Context.GetTier(item); + return + $"{data.Name} ({tier.Name}{new string('+', upgrades)})"; + } + + public void Inspect(EquippedItem item) + { + Clear(); + if (item?.EquippableItem == null) return; + + Title.text = GetTitle(item.EquippableItem); + + AddItemProperties(item.EquippableItem); + AddSpacer(); + + AddEquippableItemProperties(item.EquippableItem, item.Evaluate); + AddSpacer(); + + AddField("Override Shutdown", () => item.EquippableItem.OverrideShutdown, b => item.EquippableItem.OverrideShutdown = b); + AddProperty("Temperature", () => (item.Temperature - 273.15f).SignificantDigits(Context.GameplaySettings.SignificantDigits)); + + foreach (var behavior in item.Behaviors) + { + switch (behavior) + { + case Thermotoggle thermotoggle when thermotoggle.ThermotoggleData.Adjustable: + AddField("Target Temperature", + () => thermotoggle.TargetTemperature, + temp => thermotoggle.TargetTemperature = temp); + break; + } + } + + RefreshValues(); + } + + public void Inspect(ItemInstance item) + { + Clear(); + + AddItemProperties(item); + + if (item is EquippableItem gear) + { + Title.text = GetTitle(gear); + AddSpacer(); + AddEquippableItemProperties(gear, stat => Context.Evaluate(stat, gear)); + } + + RefreshValues(); + } + + public void Inspect(ItemData data) { AddProperty("Type", () => data.Name); AddProperty(data.Description).Label.fontStyle = FontStyles.Normal; @@ -453,60 +510,6 @@ public class PropertiesPanel : MonoBehaviour } } - public void AddItemProperties(ItemInstance item) - { - var data = Context.ItemData.Get(item.Data); - AddItemDataProperties(data); - AddProperty("Mass", () => Context.GetMass(item).SignificantDigits(Context.GameplaySettings.SignificantDigits)); - AddProperty("Thermal Mass", () => Context.GetThermalMass(item).SignificantDigits(Context.GameplaySettings.SignificantDigits)); - if (item is EquippableItem gear) - { - var gearData = Context.GetData(gear); - AddProperty("Durability", () => - $"{gear.Durability.SignificantDigits(Context.GameplaySettings.SignificantDigits)}/{gearData.Durability.SignificantDigits(Context.GameplaySettings.SignificantDigits)}"); - - } - } - - public void Inspect(Entity entity, EquippedItem item) - { - if (this is PropertiesList list) - { - if (list.Expanded) - InspectGearInternal(); - else - list.OnExpand += b => - { - if (b) InspectGearInternal(); - }; - } - else - InspectGearInternal(); - - void InspectGearInternal() - { - //Debug.Log($"Refreshing {hardpoint.Gear.Name} properties"); - Clear(); - if (item.EquippableItem != null) - { - AddField("Override Shutdown", () => item.EquippableItem.OverrideShutdown, b => item.EquippableItem.OverrideShutdown = b); - AddProperty("Temperature", () => (item.Temperature - 273.15f).SignificantDigits(Context.GameplaySettings.SignificantDigits)); - AddItemProperties(entity, item.EquippableItem); - foreach (var behavior in item.Behaviors) - { - if(behavior is IPopulationAssignment populationAssignment) - AddIncrementField("Assigned Population", - () => populationAssignment.AssignedPopulation, - p => populationAssignment.AssignedPopulation = p, - () => 0, () => entity.Population - entity.AssignedPopulation + populationAssignment.AssignedPopulation); - if (behavior is Thermotoggle thermotoggle) - AddField("Target Temperature", () => thermotoggle.TargetTemperature, temp => thermotoggle.TargetTemperature = temp); - } - } - RefreshValues(); - } - } - // public void Inspect(object obj, bool inspectablesOnly = false, bool readWrite = false, bool topLevel = true) // { // if(topLevel) diff --git a/Assets/Scripts/UI/TradeMenu.cs b/Assets/Scripts/UI/TradeMenu.cs index c2b7214d2..aba71b3be 100644 --- a/Assets/Scripts/UI/TradeMenu.cs +++ b/Assets/Scripts/UI/TradeMenu.cs @@ -311,11 +311,7 @@ public class TradeMenu : MonoBehaviour Output = x.output(i), SortKey = x.sortKey(i.data) }).ToArray(), - OnClick = () => - { - Properties.Clear(); - Properties.AddItemProperties(i.item); - }, + OnClick = () => Properties.Inspect(i.item), OnDoubleClick = () => { switch (i.item) diff --git a/Assets/Scripts/UI/TradeMenuDebug.cs b/Assets/Scripts/UI/TradeMenuDebug.cs index d73f2d0a7..8494b0876 100644 --- a/Assets/Scripts/UI/TradeMenuDebug.cs +++ b/Assets/Scripts/UI/TradeMenuDebug.cs @@ -298,8 +298,7 @@ public class TradeMenuDebug : MonoBehaviour }).ToArray(), OnClick = () => { - Properties.Clear(); - Properties.AddItemDataProperties(i); + Properties.Inspect(i); }, OnDoubleClick = () => { diff --git a/Assets/Scripts/Zone Display/ZoneRenderer.cs b/Assets/Scripts/Zone Display/ZoneRenderer.cs index 70f95c982..e48337f39 100644 --- a/Assets/Scripts/Zone Display/ZoneRenderer.cs +++ b/Assets/Scripts/Zone Display/ZoneRenderer.cs @@ -310,11 +310,15 @@ public class ZoneRenderer : MonoBehaviour if (planetData is SunData sunData) { planet = Instantiate(Sun, ZoneRoot); - var sun = (SunObject) planet; - sunData.LightColor.Subscribe(c => sun.Light.color = c.ToColor()); - sunData.Mass.Subscribe(m => sun.Light.range = Settings.PlanetSettings.LightRadius.Evaluate(m)); - sunData.FogTintColor.Subscribe(c => sun.FogTint.material.SetColor("_Color", c.ToColor())); - sunData.Mass.Subscribe(m => sun.FogTint.transform.localScale = Settings.PlanetSettings.FogTintRadius.Evaluate(m) * Vector3.one); + var sunObject = (SunObject) planet; + var sun = Zone.PlanetInstances[planetData.ID] as Sun; + sunData.LightColor.Subscribe(c => sunObject.Light.color = c.ToColor()); + sun.LightRadius.Subscribe(r => + { + sunObject.Light.range = r; + sunObject.FogTint.transform.localScale = r * Vector3.one; + }); + sunData.FogTintColor.Subscribe(c => sunObject.FogTint.material.SetColor("_Color", c.ToColor())); } else planet = Instantiate(GasGiant, ZoneRoot); diff --git a/GameData/AetherDB.msgpack b/GameData/AetherDB.msgpack index 8b380c6b4..b06527dc5 100644 --- a/GameData/AetherDB.msgpack +++ b/GameData/AetherDB.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:40889924e8287dccd631a518b45c3855af7725464c1774db02461315586a517d -size 75100 +oid sha256:6998b1baab572766bf9a35358b7ba34f6d53d67c85ed8eb388dfc334b52c72fe +size 75109 diff --git a/GameData/PlayerSettings.msgpack b/GameData/PlayerSettings.msgpack index 88b51a111..dbb8704e1 100644 --- a/GameData/PlayerSettings.msgpack +++ b/GameData/PlayerSettings.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:34b510af124f286e371cd12eae04c9b4d688582976472cac2008c5b691e0d67e -size 16955 +oid sha256:584243d86e7507e91e8a2c9b652ff15aa00500cc4fdfa2655be5573b6a26a885 +size 18864