From 9e88fcda95290ce9a06b31cf77a514f59660832b Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Wed, 23 Dec 2020 22:38:30 +0000 Subject: [PATCH] Bigger Sectors & Various Bugfixes Minimap works again Stardust density is now proportional to gravity depth Generated zones are double the size and better distributed Orbital hierarchy actually working now (!) Station start position actually orbits something now Max gravity strength remapped to infinity (zone boundary is properly impassable now) --- Assembly-CSharp.csproj | 2 +- Assets/Materials/Brushes/Fog Tint.mat | 4 +- Assets/Materials/Brushes/Gravity Well.mat | 2 +- .../Materials/Jittered Grid Fog Marching.mat | 4 +- Assets/Materials/UI/Map Background Tint.mat | 2 +- Assets/Materials/UI/Map Gravity Lines.mat | 7 +- Assets/Materials/UI/Minimap Gravity Lines.mat | 105 +++++++ .../UI/Minimap Gravity Lines.mat.meta | 8 + Assets/Resources/MinimapGravity.renderTexture | 4 +- Assets/Resources/Settings.asset | 4 +- Assets/Scenes/ARPG.unity | 268 ++++++------------ Assets/Scripts/ActionGameManager.cs | 6 +- .../Scripts/Sector Display/SectorRenderer.cs | 7 +- Assets/Scripts/ServerShared/ItemData.cs | 3 + Assets/Scripts/ServerShared/Zone.cs | 5 +- Assets/Scripts/ServerShared/ZoneData.cs | 2 +- Assets/Scripts/ServerShared/ZoneGenerator.cs | 4 +- Assets/Shaders/Compute/Stardust.compute | 2 +- Assets/Shaders/IsolinesUI.shader | 20 +- GameData/{Home.zone => Home1.zone} | Bin GameData/homem.zone | Bin 0 -> 15015 bytes 21 files changed, 245 insertions(+), 214 deletions(-) create mode 100644 Assets/Materials/UI/Minimap Gravity Lines.mat create mode 100644 Assets/Materials/UI/Minimap Gravity Lines.mat.meta rename GameData/{Home.zone => Home1.zone} (100%) create mode 100644 GameData/homem.zone diff --git a/Assembly-CSharp.csproj b/Assembly-CSharp.csproj index f550b157d..c47f444e7 100644 --- a/Assembly-CSharp.csproj +++ b/Assembly-CSharp.csproj @@ -563,6 +563,7 @@ + @@ -685,7 +686,6 @@ - diff --git a/Assets/Materials/Brushes/Fog Tint.mat b/Assets/Materials/Brushes/Fog Tint.mat index ed9497530..3df0db1a7 100644 --- a/Assets/Materials/Brushes/Fog Tint.mat +++ b/Assets/Materials/Brushes/Fog Tint.mat @@ -58,7 +58,7 @@ Material: m_Floats: - _BumpScale: 1 - _Cutoff: 0.5 - - _Depth: 1 + - _Depth: 0.33 - _DetailNormalMapScale: 1 - _DstBlend: 0 - _Frequency: 6.2832 @@ -78,6 +78,6 @@ Material: - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 1, g: 1, b: 1, a: 1} + - _Color: {r: 0.1764706, g: 0.31764707, b: 0.1254902, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} m_BuildTextureStacks: [] diff --git a/Assets/Materials/Brushes/Gravity Well.mat b/Assets/Materials/Brushes/Gravity Well.mat index e64630be6..673b20313 100644 --- a/Assets/Materials/Brushes/Gravity Well.mat +++ b/Assets/Materials/Brushes/Gravity Well.mat @@ -68,7 +68,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Power: 8 + - _Power: 16 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 diff --git a/Assets/Materials/Jittered Grid Fog Marching.mat b/Assets/Materials/Jittered Grid Fog Marching.mat index e84d203b8..9361282d0 100644 --- a/Assets/Materials/Jittered Grid Fog Marching.mat +++ b/Assets/Materials/Jittered Grid Fog Marching.mat @@ -43,7 +43,7 @@ Material: - _AlphaFloor: 0 - _DepthBlend: 512 - _DepthCeiling: 4096 - - _Gamma: 0.3 + - _Gamma: 0.45 - _GridCeilingBlend: -300 - _GridCeilingDensity: 0.01 - _GridCeilingFollow: 0 @@ -61,5 +61,5 @@ Material: - _StepExponent: 2 - _TintExponent: 4 m_Colors: - - _Tint: {r: 0.319, g: 0.319, b: 0.319, a: 1} + - _Tint: {r: 0.75, g: 0.75, b: 0.75, a: 1} m_BuildTextureStacks: [] diff --git a/Assets/Materials/UI/Map Background Tint.mat b/Assets/Materials/UI/Map Background Tint.mat index 98d4cab68..4105c81cc 100644 --- a/Assets/Materials/UI/Map Background Tint.mat +++ b/Assets/Materials/UI/Map Background Tint.mat @@ -85,6 +85,6 @@ Material: - _UseUIAlphaClip: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 0.015686275, g: 0.015686275, b: 0.015686275, a: 1} + - _Color: {r: 1.0039216, g: 1.0039216, b: 1.0039216, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} m_BuildTextureStacks: [] diff --git a/Assets/Materials/UI/Map Gravity Lines.mat b/Assets/Materials/UI/Map Gravity Lines.mat index 3ccefa1a8..16666f0bf 100644 --- a/Assets/Materials/UI/Map Gravity Lines.mat +++ b/Assets/Materials/UI/Map Gravity Lines.mat @@ -9,7 +9,7 @@ Material: m_PrefabAsset: {fileID: 0} m_Name: Map Gravity Lines m_Shader: {fileID: 4800000, guid: f5505d3747493e24c91b7cb141fd7b8c, type: 3} - m_ShaderKeywords: + m_ShaderKeywords: SCREEN_SPACE m_LightmapFlags: 4 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 @@ -69,7 +69,7 @@ Material: - _ColorMask: 15 - _Cutoff: 0.5 - _DangerSteepness: 0.35 - - _DepthRange: 280 + - _DepthRange: 500 - _DetailNormalMapScale: 1 - _DstBlend: 0 - _GlossMapScale: 1 @@ -82,7 +82,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Scale: 12.885553 + - _Scale: 6.1097183 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 @@ -94,6 +94,7 @@ Material: - _StencilReadMask: 255 - _StencilWriteMask: 255 - _UVSec: 0 + - _UseScreenSpace: 1 - _UseUIAlphaClip: 0 - _ZWrite: 1 m_Colors: diff --git a/Assets/Materials/UI/Minimap Gravity Lines.mat b/Assets/Materials/UI/Minimap Gravity Lines.mat new file mode 100644 index 000000000..4802bc556 --- /dev/null +++ b/Assets/Materials/UI/Minimap Gravity Lines.mat @@ -0,0 +1,105 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Minimap Gravity Lines + m_Shader: {fileID: 4800000, guid: f5505d3747493e24c91b7cb141fd7b8c, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailTex: + m_Texture: {fileID: 8400000, guid: ed3d896ce7cb4a84aa4de8515a60f59c, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 8400000, guid: ed3d896ce7cb4a84aa4de8515a60f59c, type: 2} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Angle2Fade: 1.1 + - _Angle2Width: 0.5 + - _AngleFade: 1.15 + - _AngleWidth: 0.05 + - _BumpScale: 1 + - _ClipDistance: 1000 + - _ColorMask: 15 + - _Cutoff: 0.5 + - _DangerSteepness: 1.5 + - _DepthRange: 500 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _HeightRange: 50 + - _LineFade: 5 + - _LineWidth: 0.15 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _Scale: 10 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _StartDepth: 420 + - _StartHeight: 0 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _UVSec: 0 + - _UseScreenSpace: 0 + - _UseUIAlphaClip: 0 + - _ZWrite: 1 + m_Colors: + - _AngleColor: {r: 1.4980392, g: 0, b: 1.2705883, a: 0.5019608} + - _Color: {r: 0, g: 0.4, b: 0.6, a: 1} + - _DangerColor: {r: 2.670157, g: 0.22367807, b: 0, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Materials/UI/Minimap Gravity Lines.mat.meta b/Assets/Materials/UI/Minimap Gravity Lines.mat.meta new file mode 100644 index 000000000..adae628d1 --- /dev/null +++ b/Assets/Materials/UI/Minimap Gravity Lines.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a92fc6d958edb9f46b6e58134f609cc0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/MinimapGravity.renderTexture b/Assets/Resources/MinimapGravity.renderTexture index 662a0c420..9627f1273 100644 --- a/Assets/Resources/MinimapGravity.renderTexture +++ b/Assets/Resources/MinimapGravity.renderTexture @@ -13,8 +13,8 @@ RenderTexture: m_ForcedFallbackFormat: 4 m_DownscaleFallback: 0 serializedVersion: 3 - m_Width: 256 - m_Height: 256 + m_Width: 128 + m_Height: 128 m_AntiAliasing: 1 m_MipCount: -1 m_DepthFormat: 0 diff --git a/Assets/Resources/Settings.asset b/Assets/Resources/Settings.asset index 9df987b9d..bc5ececb6 100644 --- a/Assets/Resources/Settings.asset +++ b/Assets/Resources/Settings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e44c5e5e566e2dec3099bb85b8dabf93c7b4a97abb897bbd5b8009d3c16edf3a -size 4338 +oid sha256:93c0bac9aa74419749839df0c3a0e39c1517e43e6034ac25879f44cb84561a28 +size 4345 diff --git a/Assets/Scenes/ARPG.unity b/Assets/Scenes/ARPG.unity index 70ccf6dc9..dd0e61ce1 100644 --- a/Assets/Scenes/ARPG.unity +++ b/Assets/Scenes/ARPG.unity @@ -1540,7 +1540,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!224 &346000247 RectTransform: m_ObjectHideFlags: 0 @@ -2124,6 +2124,78 @@ MonoBehaviour: CopyRotation: 0 PixelSnapCamera: {fileID: 0} PixelSnapIncrement: 1 +--- !u!1 &496438310 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 496438311} + - component: {fileID: 496438313} + - component: {fileID: 496438312} + m_Layer: 5 + m_Name: Icons + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &496438311 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 496438310} + 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: 2352149241280877834} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &496438312 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 496438310} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 1cb3b89320b91bf4986d2333eebadbbd, type: 2} + 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_Texture: {fileID: 8400000, guid: 7f2cc6f8dbb93cd40b3a72c55d17c971, type: 2} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &496438313 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 496438310} + m_CullTransparentMesh: 0 --- !u!1 &507065481 GameObject: m_ObjectHideFlags: 0 @@ -4666,7 +4738,7 @@ MonoBehaviour: CopyXPosition: 1 CopyYPosition: 0 CopyZPosition: 1 - CopyRotation: 1 + CopyRotation: 0 PixelSnapCamera: {fileID: 0} PixelSnapIncrement: 1 --- !u!1 &1009503727 @@ -4989,10 +5061,10 @@ MonoBehaviour: Speed: 0.125 MinimumSize: 0.5 MaximumSize: 3 - Spacing: 8 - Ceiling: -300 + Spacing: 16 + Ceiling: -400 Floor: 5 - HeightExponent: 32 + HeightExponent: 10000 Heightmap: {fileID: 8400000, guid: 2fc21a9d3e9647948b56e384cd9378b3, type: 2} ParticleColors: {fileID: 2800000, guid: 56db63da398b2d04394ddbccedce943c, type: 3} GravityCamera: {fileID: 1537342003} @@ -7115,102 +7187,6 @@ RectTransform: type: 3} m_PrefabInstance: {fileID: 1593845000} m_PrefabAsset: {fileID: 0} ---- !u!1 &1646066147 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1646066151} - - component: {fileID: 1646066150} - - component: {fileID: 1646066148} - - component: {fileID: 1646066149} - m_Layer: 0 - m_Name: Quad - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!23 &1646066148 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1646066147} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!64 &1646066149 -MeshCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1646066147} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 4 - m_Convex: 0 - m_CookingOptions: 30 - m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} ---- !u!33 &1646066150 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1646066147} - m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &1646066151 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1646066147} - m_LocalRotation: {x: -0, y: -0.9839266, z: -0, w: -0.17857356} - m_LocalPosition: {x: 49.3, y: 0, z: 16} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: -200.573, z: 0} --- !u!1 &1647230681 GameObject: m_ObjectHideFlags: 0 @@ -9891,85 +9867,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 560317486090564712} m_CullTransparentMesh: 0 ---- !u!1001 &1426725682743115580 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 434691370613433342, guid: 016516404b2bc1649bdf789bfc96d1cb, - type: 3} - propertyPath: m_LocalPosition.x - value: 45.8 - objectReference: {fileID: 0} - - target: {fileID: 434691370613433342, guid: 016516404b2bc1649bdf789bfc96d1cb, - type: 3} - propertyPath: m_LocalPosition.y - value: -1.4 - objectReference: {fileID: 0} - - target: {fileID: 434691370613433342, guid: 016516404b2bc1649bdf789bfc96d1cb, - type: 3} - propertyPath: m_LocalPosition.z - value: 15.7 - objectReference: {fileID: 0} - - target: {fileID: 434691370613433342, guid: 016516404b2bc1649bdf789bfc96d1cb, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 434691370613433342, guid: 016516404b2bc1649bdf789bfc96d1cb, - type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 434691370613433342, guid: 016516404b2bc1649bdf789bfc96d1cb, - type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 434691370613433342, guid: 016516404b2bc1649bdf789bfc96d1cb, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 434691370613433342, guid: 016516404b2bc1649bdf789bfc96d1cb, - type: 3} - propertyPath: m_RootOrder - value: 6 - objectReference: {fileID: 0} - - target: {fileID: 434691370613433342, guid: 016516404b2bc1649bdf789bfc96d1cb, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: -90 - objectReference: {fileID: 0} - - target: {fileID: 434691370613433342, guid: 016516404b2bc1649bdf789bfc96d1cb, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 434691370613433342, guid: 016516404b2bc1649bdf789bfc96d1cb, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4210795439511044087, guid: 016516404b2bc1649bdf789bfc96d1cb, - type: 3} - propertyPath: ShapeModule.m_MeshRenderer - value: - objectReference: {fileID: 1646066148} - - target: {fileID: 7847908271862099961, guid: 016516404b2bc1649bdf789bfc96d1cb, - type: 3} - propertyPath: m_Name - value: Thruster 1 - objectReference: {fileID: 0} - - target: {fileID: 7847908271862099961, guid: 016516404b2bc1649bdf789bfc96d1cb, - type: 3} - propertyPath: m_IsActive - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 016516404b2bc1649bdf789bfc96d1cb, type: 3} --- !u!1001 &1719766129265659974 PrefabInstance: m_ObjectHideFlags: 0 @@ -10920,7 +10817,7 @@ RectTransform: - {fileID: 2352149241950064198} - {fileID: 2352149240859250049} m_Father: {fileID: 2352149241280877834} - m_RootOrder: 4 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -11361,7 +11258,7 @@ RectTransform: - {fileID: 2352149241923245455} - {fileID: 2352149240139726782} m_Father: {fileID: 2352149241280877834} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 15} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -11602,7 +11499,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 2352149241280877834} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -12423,6 +12320,7 @@ RectTransform: m_Children: - {fileID: 2352149240818267995} - {fileID: 2352149241570183590} + - {fileID: 496438311} - {fileID: 2352149240782116564} - {fileID: 2352149240622546024} - {fileID: 2352149240130501729} @@ -12534,7 +12432,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3} m_Name: m_EditorClassIdentifier: - m_Material: {fileID: 2100000, guid: 1cb3b89320b91bf4986d2333eebadbbd, type: 2} + m_Material: {fileID: 2100000, guid: a92fc6d958edb9f46b6e58134f609cc0, type: 2} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} @@ -12542,7 +12440,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Texture: {fileID: 8400000, guid: 7f2cc6f8dbb93cd40b3a72c55d17c971, type: 2} + m_Texture: {fileID: 2800000, guid: d4144ee6db2bf3c468cc5010acfe8974, type: 3} m_UVRect: serializedVersion: 2 x: 0 diff --git a/Assets/Scripts/ActionGameManager.cs b/Assets/Scripts/ActionGameManager.cs index 6a4439898..6094c8dd7 100644 --- a/Assets/Scripts/ActionGameManager.cs +++ b/Assets/Scripts/ActionGameManager.cs @@ -138,10 +138,10 @@ public class ActionGameManager : MonoBehaviour var stationType = ItemData.GetAll().First(x=>x.HullType==HullType.Station); var stationHull = ItemManager.CreateInstance(stationType, 0, 1) as EquippableItem; - var stationParent = Zone.PlanetInstances.Values.OrderByDescending(p => p.BodyData.Mass.Value).ElementAt(2); + var stationParent = Zone.PlanetInstances.Values.OrderByDescending(p => p.BodyData.Mass.Value).ElementAt(3); var parentOrbit = stationParent.Orbit.Data.ID; - var stationPos = Zone.GetOrbitPosition(parentOrbit) + - normalize(ItemManager.Random.NextFloat2() - float2(.5f, .5f)) * ItemManager.Random.NextFloat() * stationParent.GravityWellRadius.Value * .75f; + var parentPos = Zone.GetOrbitPosition(parentOrbit); + var stationPos = parentPos + ItemManager.Random.NextFloat2Direction() * stationParent.GravityWellRadius.Value * .1f; var stationOrbit = Zone.CreateOrbit(parentOrbit, stationPos); var station = new OrbitalEntity(ItemManager, Zone, stationHull, stationOrbit.ID); Zone.Entities.Add(station); diff --git a/Assets/Scripts/Sector Display/SectorRenderer.cs b/Assets/Scripts/Sector Display/SectorRenderer.cs index 3ffc46817..04b8502f1 100644 --- a/Assets/Scripts/Sector Display/SectorRenderer.cs +++ b/Assets/Scripts/Sector Display/SectorRenderer.cs @@ -376,7 +376,12 @@ public class SectorRenderer : MonoBehaviour ship.Value.Transform.position = new Vector3(ship.Key.Position.x,h + hullData.GridOffset,ship.Key.Position.y); var normal = _zone.GetNormal(ship.Key.Position); var f = new float2(normal.x, normal.z); - ship.Key.Velocity += f * Settings.PlanetSettings.GravityStrength;// * lengthsq(f); + var fl = lengthsq(f); + if(fl > .001) + { + var fa = 1 / (1 - fl) - 1; + ship.Key.Velocity += normalize(f) * Settings.PlanetSettings.GravityStrength * fa; + } //Debug.Log($"Normal: {normal}"); var shipRight = ship.Key.Direction.Rotate(ItemRotation.Clockwise); var forward = Vector3.Cross(new Vector3(shipRight.x,0,shipRight.y), normal); diff --git a/Assets/Scripts/ServerShared/ItemData.cs b/Assets/Scripts/ServerShared/ItemData.cs index 376643b6a..84fda101f 100644 --- a/Assets/Scripts/ServerShared/ItemData.cs +++ b/Assets/Scripts/ServerShared/ItemData.cs @@ -203,6 +203,9 @@ public abstract class ItemData : DatabaseEntry, INamedEntry [InspectableField, JsonProperty("specificHeat"), Key(5)] public float SpecificHeat; + // [InspectableField, JsonProperty("conductivity"), Key(6)] + // public float Conductivity; + [IgnoreMember] public string EntryName { get => Name; diff --git a/Assets/Scripts/ServerShared/Zone.cs b/Assets/Scripts/ServerShared/Zone.cs index 1a18cacc4..4be09b638 100644 --- a/Assets/Scripts/ServerShared/Zone.cs +++ b/Assets/Scripts/ServerShared/Zone.cs @@ -69,7 +69,7 @@ public class Zone return new ZonePack { Data = Data, - Entities = Entities.ToList(), + //Entities = Entities.ToList(), Orbits = Orbits.Values.Select(o=>o.Data).ToList(), Planets = Planets.Values.ToList() }; @@ -126,8 +126,8 @@ public class Zone } } + Orbits[orbitID].Position = GetOrbitPosition(orbit.Data.Parent) + pos; _updatedOrbits.Add(orbitID); - return GetOrbitPosition(orbit.Data.Parent) + pos; } return Orbits[orbitID].Position; @@ -219,6 +219,7 @@ public class Zone var orbit = new OrbitData { + ID = Guid.NewGuid(), Distance = new ReactiveProperty(distance), Parent = parent, Phase = storedPhase diff --git a/Assets/Scripts/ServerShared/ZoneData.cs b/Assets/Scripts/ServerShared/ZoneData.cs index 9333ebc56..fd757da54 100644 --- a/Assets/Scripts/ServerShared/ZoneData.cs +++ b/Assets/Scripts/ServerShared/ZoneData.cs @@ -130,7 +130,7 @@ public abstract class BodyData : DatabaseEntry, INamedEntry public ReactiveProperty GravityDepthMultiplier = new ReactiveProperty(1); [JsonProperty("depthExp")] [Key(8)] - public ReactiveProperty GravityDepthExponent = new ReactiveProperty(8); + public ReactiveProperty GravityDepthExponent = new ReactiveProperty(16); [IgnoreMember] public string EntryName { diff --git a/Assets/Scripts/ServerShared/ZoneGenerator.cs b/Assets/Scripts/ServerShared/ZoneGenerator.cs index ab305e835..289139cce 100644 --- a/Assets/Scripts/ServerShared/ZoneGenerator.cs +++ b/Assets/Scripts/ServerShared/ZoneGenerator.cs @@ -262,8 +262,8 @@ public class ZoneGenerator root.ExpandSolar( ref random, count: random.NextInt(5, 15), - massMulMin: 0.5f, - massMulMax: 2.0f, + massMulMin: 0.75f, + massMulMax: 2.5f, distMulMin: 1.1f, distMulMax: 1.25f, jupiterJump: random.NextFloat() * random.NextFloat() * 10 + 1, diff --git a/Assets/Shaders/Compute/Stardust.compute b/Assets/Shaders/Compute/Stardust.compute index 9b39ea884..4ceebda8a 100644 --- a/Assets/Shaders/Compute/Stardust.compute +++ b/Assets/Shaders/Compute/Stardust.compute @@ -127,6 +127,6 @@ void UpdateParticles(uint3 id : SV_DispatchThreadID, int3 groupID : SV_GroupThre y * spacing + yt * spacing + perlinNoise1D(RandomValue()*1024+time)*spacing); float2 puv = float2(.5,.5) - (particles[id.x].position.xz - transform.xy) / (transform.z); float gravDepth = Heightmap.SampleLevel(samplerHeightmap, puv, 0.0f).r; - particles[id.x].position.y = lerp(-gravDepth + floorHeight, ceilingHeight, pow(RandomValue(), heightExponent)) + perlinNoise1D(RandomValue()*1024+time)*spacing/2; + particles[id.x].position.y = lerp(-gravDepth + floorHeight, ceilingHeight, pow(RandomValue(), heightExponent/(ceilingHeight+gravDepth))) + perlinNoise1D(RandomValue()*1024+time)*spacing/2; particles[id.x].size = lerp(minimumSize, maximumSize, RandomValue()); } \ No newline at end of file diff --git a/Assets/Shaders/IsolinesUI.shader b/Assets/Shaders/IsolinesUI.shader index cdf9cd1ff..46f4b0084 100644 --- a/Assets/Shaders/IsolinesUI.shader +++ b/Assets/Shaders/IsolinesUI.shader @@ -31,6 +31,7 @@ Shader "UI/Isolines" _ColorMask ("Color Mask", Float) = 15 [Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0 + [Toggle(SCREEN_SPACE)] _UseScreenSpace ("Screen Space Detail Texture", Float) = 0 } SubShader @@ -63,7 +64,7 @@ Shader "UI/Isolines" Pass { Name "Default" - CGPROGRAM + CGPROGRAM #pragma vertex vert #pragma fragment frag #pragma target 2.0 @@ -73,6 +74,7 @@ Shader "UI/Isolines" #pragma multi_compile_local _ UNITY_UI_CLIP_RECT #pragma multi_compile_local _ UNITY_UI_ALPHACLIP + #pragma shader_feature SCREEN_SPACE struct appdata_t { @@ -87,8 +89,9 @@ Shader "UI/Isolines" float4 vertex : SV_POSITION; fixed4 color : COLOR; float2 texcoord : TEXCOORD0; - float4 worldPosition : TEXCOORD1; - float4 screenPos : TEXCOORD2; + #ifdef SCREEN_SPACE + float4 screenPos : TEXCOORD1; + #endif //float2 detailtexcoord : TEXCOORD2; UNITY_VERTEX_OUTPUT_STEREO }; @@ -119,11 +122,13 @@ Shader "UI/Isolines" v2f OUT; UNITY_SETUP_INSTANCE_ID(v); UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT); - OUT.worldPosition = v.vertex; - OUT.vertex = UnityObjectToClipPos(OUT.worldPosition); + OUT.vertex = UnityObjectToClipPos(v.vertex); OUT.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex); + #ifdef SCREEN_SPACE OUT.screenPos = ComputeScreenPos( OUT.vertex ); + #endif + //OUT.detailtexcoord = TRANSFORM_TEX(OUT.worldPosition.xy, _MainTex); OUT.color = v.color * _Color; @@ -141,9 +146,14 @@ Shader "UI/Isolines" { half4 color = (tex2D(_MainTex, IN.texcoord) + _TextureSampleAdd); + #ifdef SCREEN_SPACE float2 q = IN.screenPos.xy / IN.screenPos.w; + #else + float2 q = IN.texcoord; + #endif float h = -tex2D(_DetailTex, q).r; + float4 col = float4(0,0,0,0); float blend = smoothstep(_StartDepth, _StartDepth + _DepthRange / 32, -h); diff --git a/GameData/Home.zone b/GameData/Home1.zone similarity index 100% rename from GameData/Home.zone rename to GameData/Home1.zone diff --git a/GameData/homem.zone b/GameData/homem.zone new file mode 100644 index 0000000000000000000000000000000000000000..8dfb9c4eac47c52e8d49a33e5b69904f48d390a4 GIT binary patch literal 15015 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 literal 0 HcmV?d00001