From 8b872d0a896961c9bdedc8038018ee28d2c7bed8 Mon Sep 17 00:00:00 2001 From: dligr Date: Fri, 29 Nov 2024 23:38:55 +0300 Subject: [PATCH 01/53] Initial addition of blur --- shaders/BackgroundPlane.gdshader | 8 +++ shaders/Blur.gdshader | 24 ++++++++ shaders/MicrobeBackground.gdshader | 3 +- src/microbe_stage/MicrobeCamera.cs | 13 ++++- src/microbe_stage/MicrobeCamera.tscn | 87 ++++++++++++++++++++++++++-- 5 files changed, 127 insertions(+), 8 deletions(-) create mode 100644 shaders/BackgroundPlane.gdshader create mode 100644 shaders/Blur.gdshader diff --git a/shaders/BackgroundPlane.gdshader b/shaders/BackgroundPlane.gdshader new file mode 100644 index 0000000000..f5375009aa --- /dev/null +++ b/shaders/BackgroundPlane.gdshader @@ -0,0 +1,8 @@ +shader_type spatial; +render_mode unshaded; + +uniform sampler2D texture_albedo : source_color, filter_linear_mipmap, repeat_enable; + +void fragment() { + ALBEDO = texture(texture_albedo, SCREEN_UV).rgb; +} diff --git a/shaders/Blur.gdshader b/shaders/Blur.gdshader new file mode 100644 index 0000000000..a4a5267385 --- /dev/null +++ b/shaders/Blur.gdshader @@ -0,0 +1,24 @@ +shader_type canvas_item; +render_mode unshaded; + +uniform sampler2D texture_albedo : source_color, filter_linear_mipmap, repeat_enable; + +uniform vec2 blur_step = vec2(1.0f, 0.0f); + +void fragment() { + vec2 s = blur_step / 1024.0f; + COLOR.rgb = + 0.011194727 * texture(texture_albedo, UV - 10.000000000 * s).rgb + + 0.039368696 * texture(texture_albedo, UV - 8.415809477 * s).rgb + + 0.071308558 * texture(texture_albedo, UV - 6.435363708 * s).rgb + + 0.110237219 * texture(texture_albedo, UV - 4.455121108 * s).rgb + + 0.145451038 * texture(texture_albedo, UV - 2.475020813 * s).rgb + + 0.163798995 * texture(texture_albedo, UV - 0.495000167 * s).rgb + + 0.157439298 * texture(texture_albedo, UV + 1.485004498 * s).rgb + + 0.129158204 * texture(texture_albedo, UV + 3.465057055 * s).rgb + + 0.090434685 * texture(texture_albedo, UV + 5.445220765 * s).rgb + + 0.054043977 * texture(texture_albedo, UV + 7.425557483 * s).rgb + + 0.027564604 * texture(texture_albedo, UV + 9.406126897 * s).rgb; + + COLOR.a = 1.0f; +} \ No newline at end of file diff --git a/shaders/MicrobeBackground.gdshader b/shaders/MicrobeBackground.gdshader index 362c7224f4..a30fd9cf26 100644 --- a/shaders/MicrobeBackground.gdshader +++ b/shaders/MicrobeBackground.gdshader @@ -22,6 +22,8 @@ uniform float distortionSpeed : hint_range(0.0, 0.01, 0.0001) = 0.001f; uniform float layerAnimateSpeed : hint_range(0.0, 2.0, 0.1) = 1.0f; +uniform vec2 worldPos; + const vec2 speed0 = vec2(3300.0f); const vec2 speed1 = vec2(2550.0f); const vec2 speed2 = vec2(1800.0f); @@ -51,7 +53,6 @@ vec3 LightInfluence(float amount) void vertex(){ vec2 offset = (repeats - 1.0f) / 2.0f; - vec2 worldPos = (INV_VIEW_MATRIX * vec4(0.0f, 0.0f, 0.0f, 1.0f)).xz; UV = (UV + worldPos / (speed0 * repeats)) * repeats - offset; UV2 = (0.12f + UV + worldPos / (speed1)); diff --git a/src/microbe_stage/MicrobeCamera.cs b/src/microbe_stage/MicrobeCamera.cs index b553790694..09b9c6589f 100644 --- a/src/microbe_stage/MicrobeCamera.cs +++ b/src/microbe_stage/MicrobeCamera.cs @@ -66,6 +66,10 @@ public partial class MicrobeCamera : Camera3D, IGodotEarlyNodeResolve, ISaveLoad private readonly StringName lightLevelParameter = new("lightLevel"); private readonly StringName distortionStrengthParameter = new("distortionFactor"); + [Export] + [JsonIgnore] + private NodePath backgroundPlanePath = null!; + #pragma warning disable CA2213 /// @@ -164,7 +168,7 @@ public Vector3 CursorVisualWorldPos public override void _Ready() { - var material = GetNode("BackgroundPlane").Material; + var material = GetNode(backgroundPlanePath).Material; if (material == null) { GD.PrintErr("MicrobeCamera didn't find material to update"); @@ -191,8 +195,8 @@ public void ResolveNodeReferences() NodeReferencesResolved = true; - if (HasNode("BackgroundPlane")) - backgroundPlane = GetNode("BackgroundPlane"); + if (HasNode(backgroundPlanePath)) + backgroundPlane = GetNode(backgroundPlanePath); } public override void _EnterTree() @@ -230,6 +234,8 @@ public override void _Process(double delta) { UpdateCameraPosition(delta, null); } + + materialToUpdate?.SetShaderParameter("worldPos", Variant.From(new Vector2(Position.X, Position.Z))); } public void UpdateCameraPosition(double delta, Vector3? followedObject) @@ -358,6 +364,7 @@ protected override void Dispose(bool disposing) { lightLevelParameter.Dispose(); distortionStrengthParameter.Dispose(); + backgroundPlanePath.Dispose(); } base.Dispose(disposing); diff --git a/src/microbe_stage/MicrobeCamera.tscn b/src/microbe_stage/MicrobeCamera.tscn index 4c221bc6fd..475f28af5a 100644 --- a/src/microbe_stage/MicrobeCamera.tscn +++ b/src/microbe_stage/MicrobeCamera.tscn @@ -1,15 +1,55 @@ -[gd_scene load_steps=13 format=3 uid="uid://bako5jivv1dji"] +[gd_scene load_steps=25 format=3 uid="uid://bako5jivv1dji"] [ext_resource type="Texture2D" uid="uid://d3msr0kfa34w2" path="res://assets/textures/background/Thrive_vent1.png" id="1"] [ext_resource type="Texture2D" uid="uid://bddntbgykd7uq" path="res://assets/textures/background/Thrive_vent2.png" id="2"] +[ext_resource type="Shader" path="res://shaders/BackgroundPlane.gdshader" id="2_70a3p"] [ext_resource type="Script" path="res://src/microbe_stage/MicrobeCamera.cs" id="3"] [ext_resource type="Texture2D" uid="uid://bsvls5moner1g" path="res://assets/textures/background/Thrive_vent3.png" id="4"] [ext_resource type="Shader" path="res://shaders/MicrobeBackground.gdshader" id="5"] [ext_resource type="Texture2D" uid="uid://c3i2n4piw6ln0" path="res://assets/textures/background/Thrive_vent0.png" id="6"] +[ext_resource type="Shader" path="res://shaders/Blur.gdshader" id="8_qrk01"] [sub_resource type="PlaneMesh" id="1"] size = Vector2(800, 400) +[sub_resource type="ViewportTexture" id="ViewportTexture_kn1oa"] +viewport_path = NodePath("SubViewport3") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_1sr76"] +resource_local_to_scene = true +render_priority = 0 +shader = ExtResource("2_70a3p") +shader_parameter/texture_albedo = SubResource("ViewportTexture_kn1oa") + +[sub_resource type="CameraAttributesPractical" id="CameraAttributesPractical_y62cm"] + +[sub_resource type="Environment" id="Environment_iygdt"] + +[sub_resource type="Environment" id="Environment_kcf2w"] + +[sub_resource type="World3D" id="World3D_76d81"] +environment = SubResource("Environment_iygdt") +fallback_environment = SubResource("Environment_kcf2w") +camera_attributes = SubResource("CameraAttributesPractical_y62cm") + +[sub_resource type="ViewportTexture" id="ViewportTexture_yaywj"] +viewport_path = NodePath("SubViewport2") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_bdv2o"] +resource_local_to_scene = true +shader = ExtResource("8_qrk01") +shader_parameter/blur_step = Vector2(0, 1) +shader_parameter/texture_albedo = SubResource("ViewportTexture_yaywj") + +[sub_resource type="ViewportTexture" id="ViewportTexture_mulq8"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_tdrj5"] +resource_local_to_scene = true +shader = ExtResource("8_qrk01") +shader_parameter/blur_step = Vector2(1, 0) +shader_parameter/texture_albedo = SubResource("ViewportTexture_mulq8") + [sub_resource type="FastNoiseLite" id="FastNoiseLite_dor76"] frequency = 0.0035 @@ -34,6 +74,7 @@ shader_parameter/repeats = Vector2(2, 1) shader_parameter/distortionFactor = 0.0 shader_parameter/distortionSpeed = 0.001 shader_parameter/layerAnimateSpeed = 0.4 +shader_parameter/worldPos = Vector2(0, 0) shader_parameter/layer0 = ExtResource("6") shader_parameter/layer1 = ExtResource("1") shader_parameter/layer2 = ExtResource("2") @@ -48,12 +89,50 @@ current = true fov = 90.0 script = ExtResource("3") DefaultCameraHeight = 30.0 +backgroundPlanePath = NodePath("SubViewport/Node3D/BackgroundPlane") + +[node name="AudioListener3D" type="AudioListener3D" parent="."] +current = true [node name="BackgroundPlane" type="CSGMesh3D" parent="."] -transform = Transform3D(1, 0, 0, 0, -1.62921e-07, -1, 0, 1, -1.62921e-07, 0, 5.96247e-08, -15) +transform = Transform3D(1, 0, 0, 0, -1.62921e-07, -1, 0, 1, -1.62921e-07, 0, 0, -150) +cast_shadow = 0 +mesh = SubResource("1") +material = SubResource("ShaderMaterial_1sr76") + +[node name="SubViewport3" type="SubViewport" parent="."] +own_world_3d = true +world_3d = SubResource("World3D_76d81") +size = Vector2i(2000, 1000) + +[node name="ColorRect" type="ColorRect" parent="SubViewport3"] +material = SubResource("ShaderMaterial_bdv2o") +offset_right = 2000.0 +offset_bottom = 1000.0 + +[node name="SubViewport2" type="SubViewport" parent="."] +own_world_3d = true +world_3d = SubResource("World3D_76d81") +size = Vector2i(2000, 1000) + +[node name="ColorRect" type="ColorRect" parent="SubViewport2"] +material = SubResource("ShaderMaterial_tdrj5") +offset_right = 2000.0 +offset_bottom = 1000.0 + +[node name="SubViewport" type="SubViewport" parent="."] +own_world_3d = true +size = Vector2i(2000, 1000) + +[node name="Node3D" type="Node3D" parent="SubViewport"] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0) + +[node name="BackgroundPlane" type="CSGMesh3D" parent="SubViewport/Node3D"] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, -15) cast_shadow = 0 mesh = SubResource("1") material = SubResource("2") -[node name="AudioListener3D" type="AudioListener3D" parent="."] -current = true +[node name="Camera3D" type="Camera3D" parent="SubViewport/Node3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 10) +fov = 90.0 From 9b31df78b2593c6dbd054a7cb563466ab90940af Mon Sep 17 00:00:00 2001 From: dligr Date: Fri, 29 Nov 2024 23:53:22 +0300 Subject: [PATCH 02/53] Optimize the Viewport chain --- shaders/BackgroundPlane.gdshader | 8 -------- shaders/BlurSpatial.gdshader | 22 ++++++++++++++++++++++ src/microbe_stage/MicrobeCamera.tscn | 26 ++++---------------------- 3 files changed, 26 insertions(+), 30 deletions(-) delete mode 100644 shaders/BackgroundPlane.gdshader create mode 100644 shaders/BlurSpatial.gdshader diff --git a/shaders/BackgroundPlane.gdshader b/shaders/BackgroundPlane.gdshader deleted file mode 100644 index f5375009aa..0000000000 --- a/shaders/BackgroundPlane.gdshader +++ /dev/null @@ -1,8 +0,0 @@ -shader_type spatial; -render_mode unshaded; - -uniform sampler2D texture_albedo : source_color, filter_linear_mipmap, repeat_enable; - -void fragment() { - ALBEDO = texture(texture_albedo, SCREEN_UV).rgb; -} diff --git a/shaders/BlurSpatial.gdshader b/shaders/BlurSpatial.gdshader new file mode 100644 index 0000000000..207bbb8e1a --- /dev/null +++ b/shaders/BlurSpatial.gdshader @@ -0,0 +1,22 @@ +shader_type spatial; +render_mode unshaded; + +uniform sampler2D texture_albedo : source_color, filter_linear_mipmap, repeat_enable; + +uniform vec2 blur_step = vec2(1.0f, 0.0f); + +void fragment() { + vec2 s = blur_step / 1024.0f; + ALBEDO = + 0.011194727 * texture(texture_albedo, UV - 10.000000000 * s).rgb + + 0.039368696 * texture(texture_albedo, UV - 8.415809477 * s).rgb + + 0.071308558 * texture(texture_albedo, UV - 6.435363708 * s).rgb + + 0.110237219 * texture(texture_albedo, UV - 4.455121108 * s).rgb + + 0.145451038 * texture(texture_albedo, UV - 2.475020813 * s).rgb + + 0.163798995 * texture(texture_albedo, UV - 0.495000167 * s).rgb + + 0.157439298 * texture(texture_albedo, UV + 1.485004498 * s).rgb + + 0.129158204 * texture(texture_albedo, UV + 3.465057055 * s).rgb + + 0.090434685 * texture(texture_albedo, UV + 5.445220765 * s).rgb + + 0.054043977 * texture(texture_albedo, UV + 7.425557483 * s).rgb + + 0.027564604 * texture(texture_albedo, UV + 9.406126897 * s).rgb; +} diff --git a/src/microbe_stage/MicrobeCamera.tscn b/src/microbe_stage/MicrobeCamera.tscn index 475f28af5a..d1045eb268 100644 --- a/src/microbe_stage/MicrobeCamera.tscn +++ b/src/microbe_stage/MicrobeCamera.tscn @@ -1,8 +1,8 @@ -[gd_scene load_steps=25 format=3 uid="uid://bako5jivv1dji"] +[gd_scene load_steps=23 format=3 uid="uid://bako5jivv1dji"] [ext_resource type="Texture2D" uid="uid://d3msr0kfa34w2" path="res://assets/textures/background/Thrive_vent1.png" id="1"] [ext_resource type="Texture2D" uid="uid://bddntbgykd7uq" path="res://assets/textures/background/Thrive_vent2.png" id="2"] -[ext_resource type="Shader" path="res://shaders/BackgroundPlane.gdshader" id="2_70a3p"] +[ext_resource type="Shader" path="res://shaders/BlurSpatial.gdshader" id="2_70a3p"] [ext_resource type="Script" path="res://src/microbe_stage/MicrobeCamera.cs" id="3"] [ext_resource type="Texture2D" uid="uid://bsvls5moner1g" path="res://assets/textures/background/Thrive_vent3.png" id="4"] [ext_resource type="Shader" path="res://shaders/MicrobeBackground.gdshader" id="5"] @@ -13,12 +13,13 @@ size = Vector2(800, 400) [sub_resource type="ViewportTexture" id="ViewportTexture_kn1oa"] -viewport_path = NodePath("SubViewport3") +viewport_path = NodePath("SubViewport2") [sub_resource type="ShaderMaterial" id="ShaderMaterial_1sr76"] resource_local_to_scene = true render_priority = 0 shader = ExtResource("2_70a3p") +shader_parameter/blur_step = Vector2(0, 1) shader_parameter/texture_albedo = SubResource("ViewportTexture_kn1oa") [sub_resource type="CameraAttributesPractical" id="CameraAttributesPractical_y62cm"] @@ -32,15 +33,6 @@ environment = SubResource("Environment_iygdt") fallback_environment = SubResource("Environment_kcf2w") camera_attributes = SubResource("CameraAttributesPractical_y62cm") -[sub_resource type="ViewportTexture" id="ViewportTexture_yaywj"] -viewport_path = NodePath("SubViewport2") - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_bdv2o"] -resource_local_to_scene = true -shader = ExtResource("8_qrk01") -shader_parameter/blur_step = Vector2(0, 1) -shader_parameter/texture_albedo = SubResource("ViewportTexture_yaywj") - [sub_resource type="ViewportTexture" id="ViewportTexture_mulq8"] viewport_path = NodePath("SubViewport") @@ -100,16 +92,6 @@ cast_shadow = 0 mesh = SubResource("1") material = SubResource("ShaderMaterial_1sr76") -[node name="SubViewport3" type="SubViewport" parent="."] -own_world_3d = true -world_3d = SubResource("World3D_76d81") -size = Vector2i(2000, 1000) - -[node name="ColorRect" type="ColorRect" parent="SubViewport3"] -material = SubResource("ShaderMaterial_bdv2o") -offset_right = 2000.0 -offset_bottom = 1000.0 - [node name="SubViewport2" type="SubViewport" parent="."] own_world_3d = true world_3d = SubResource("World3D_76d81") From 2072326a054e346bdb154bfdef018eb7c28491ca Mon Sep 17 00:00:00 2001 From: dligr Date: Sat, 30 Nov 2024 13:17:28 +0300 Subject: [PATCH 03/53] Rename some shader variables to camelCase, clean up scene hierarchy --- shaders/Blur.gdshader | 28 ++++++++++++++-------------- shaders/BlurSpatial.gdshader | 28 ++++++++++++++-------------- src/microbe_stage/MicrobeCamera.tscn | 23 ++++++++++------------- 3 files changed, 38 insertions(+), 41 deletions(-) diff --git a/shaders/Blur.gdshader b/shaders/Blur.gdshader index a4a5267385..86b66311a9 100644 --- a/shaders/Blur.gdshader +++ b/shaders/Blur.gdshader @@ -1,24 +1,24 @@ shader_type canvas_item; render_mode unshaded; -uniform sampler2D texture_albedo : source_color, filter_linear_mipmap, repeat_enable; +uniform sampler2D textureAlbedo : source_color, filter_linear_mipmap, repeat_enable; -uniform vec2 blur_step = vec2(1.0f, 0.0f); +uniform vec2 blurStep = vec2(1.0f, 0.0f); void fragment() { - vec2 s = blur_step / 1024.0f; + vec2 s = blurStep / vec2(textureSize(textureAlbedo, 0)); COLOR.rgb = - 0.011194727 * texture(texture_albedo, UV - 10.000000000 * s).rgb + - 0.039368696 * texture(texture_albedo, UV - 8.415809477 * s).rgb + - 0.071308558 * texture(texture_albedo, UV - 6.435363708 * s).rgb + - 0.110237219 * texture(texture_albedo, UV - 4.455121108 * s).rgb + - 0.145451038 * texture(texture_albedo, UV - 2.475020813 * s).rgb + - 0.163798995 * texture(texture_albedo, UV - 0.495000167 * s).rgb + - 0.157439298 * texture(texture_albedo, UV + 1.485004498 * s).rgb + - 0.129158204 * texture(texture_albedo, UV + 3.465057055 * s).rgb + - 0.090434685 * texture(texture_albedo, UV + 5.445220765 * s).rgb + - 0.054043977 * texture(texture_albedo, UV + 7.425557483 * s).rgb + - 0.027564604 * texture(texture_albedo, UV + 9.406126897 * s).rgb; + 0.011194727 * texture(textureAlbedo, UV - 10.000000000 * s).rgb + + 0.039368696 * texture(textureAlbedo, UV - 8.415809477 * s).rgb + + 0.071308558 * texture(textureAlbedo, UV - 6.435363708 * s).rgb + + 0.110237219 * texture(textureAlbedo, UV - 4.455121108 * s).rgb + + 0.145451038 * texture(textureAlbedo, UV - 2.475020813 * s).rgb + + 0.163798995 * texture(textureAlbedo, UV - 0.495000167 * s).rgb + + 0.157439298 * texture(textureAlbedo, UV + 1.485004498 * s).rgb + + 0.129158204 * texture(textureAlbedo, UV + 3.465057055 * s).rgb + + 0.090434685 * texture(textureAlbedo, UV + 5.445220765 * s).rgb + + 0.054043977 * texture(textureAlbedo, UV + 7.425557483 * s).rgb + + 0.027564604 * texture(textureAlbedo, UV + 9.406126897 * s).rgb; COLOR.a = 1.0f; } \ No newline at end of file diff --git a/shaders/BlurSpatial.gdshader b/shaders/BlurSpatial.gdshader index 207bbb8e1a..7ed7a5ce31 100644 --- a/shaders/BlurSpatial.gdshader +++ b/shaders/BlurSpatial.gdshader @@ -1,22 +1,22 @@ shader_type spatial; render_mode unshaded; -uniform sampler2D texture_albedo : source_color, filter_linear_mipmap, repeat_enable; +uniform sampler2D textureAlbedo : source_color, filter_linear_mipmap, repeat_enable; -uniform vec2 blur_step = vec2(1.0f, 0.0f); +uniform vec2 blurStep = vec2(1.0f, 0.0f); void fragment() { - vec2 s = blur_step / 1024.0f; + vec2 s = blurStep / vec2(textureSize(textureAlbedo, 0)); ALBEDO = - 0.011194727 * texture(texture_albedo, UV - 10.000000000 * s).rgb + - 0.039368696 * texture(texture_albedo, UV - 8.415809477 * s).rgb + - 0.071308558 * texture(texture_albedo, UV - 6.435363708 * s).rgb + - 0.110237219 * texture(texture_albedo, UV - 4.455121108 * s).rgb + - 0.145451038 * texture(texture_albedo, UV - 2.475020813 * s).rgb + - 0.163798995 * texture(texture_albedo, UV - 0.495000167 * s).rgb + - 0.157439298 * texture(texture_albedo, UV + 1.485004498 * s).rgb + - 0.129158204 * texture(texture_albedo, UV + 3.465057055 * s).rgb + - 0.090434685 * texture(texture_albedo, UV + 5.445220765 * s).rgb + - 0.054043977 * texture(texture_albedo, UV + 7.425557483 * s).rgb + - 0.027564604 * texture(texture_albedo, UV + 9.406126897 * s).rgb; + 0.011194727 * texture(textureAlbedo, SCREEN_UV - 10.000000000 * s).rgb + + 0.039368696 * texture(textureAlbedo, SCREEN_UV - 8.415809477 * s).rgb + + 0.071308558 * texture(textureAlbedo, SCREEN_UV - 6.435363708 * s).rgb + + 0.110237219 * texture(textureAlbedo, SCREEN_UV - 4.455121108 * s).rgb + + 0.145451038 * texture(textureAlbedo, SCREEN_UV - 2.475020813 * s).rgb + + 0.163798995 * texture(textureAlbedo, SCREEN_UV - 0.495000167 * s).rgb + + 0.157439298 * texture(textureAlbedo, SCREEN_UV + 1.485004498 * s).rgb + + 0.129158204 * texture(textureAlbedo, SCREEN_UV + 3.465057055 * s).rgb + + 0.090434685 * texture(textureAlbedo, SCREEN_UV + 5.445220765 * s).rgb + + 0.054043977 * texture(textureAlbedo, SCREEN_UV + 7.425557483 * s).rgb + + 0.027564604 * texture(textureAlbedo, SCREEN_UV + 9.406126897 * s).rgb; } diff --git a/src/microbe_stage/MicrobeCamera.tscn b/src/microbe_stage/MicrobeCamera.tscn index d1045eb268..c0d46816d2 100644 --- a/src/microbe_stage/MicrobeCamera.tscn +++ b/src/microbe_stage/MicrobeCamera.tscn @@ -12,15 +12,15 @@ [sub_resource type="PlaneMesh" id="1"] size = Vector2(800, 400) -[sub_resource type="ViewportTexture" id="ViewportTexture_kn1oa"] +[sub_resource type="ViewportTexture" id="ViewportTexture_duokn"] viewport_path = NodePath("SubViewport2") [sub_resource type="ShaderMaterial" id="ShaderMaterial_1sr76"] resource_local_to_scene = true render_priority = 0 shader = ExtResource("2_70a3p") -shader_parameter/blur_step = Vector2(0, 1) -shader_parameter/texture_albedo = SubResource("ViewportTexture_kn1oa") +shader_parameter/blurStep = Vector2(0, 1) +shader_parameter/textureAlbedo = SubResource("ViewportTexture_duokn") [sub_resource type="CameraAttributesPractical" id="CameraAttributesPractical_y62cm"] @@ -33,14 +33,14 @@ environment = SubResource("Environment_iygdt") fallback_environment = SubResource("Environment_kcf2w") camera_attributes = SubResource("CameraAttributesPractical_y62cm") -[sub_resource type="ViewportTexture" id="ViewportTexture_mulq8"] +[sub_resource type="ViewportTexture" id="ViewportTexture_vbioy"] viewport_path = NodePath("SubViewport") [sub_resource type="ShaderMaterial" id="ShaderMaterial_tdrj5"] resource_local_to_scene = true shader = ExtResource("8_qrk01") -shader_parameter/blur_step = Vector2(1, 0) -shader_parameter/texture_albedo = SubResource("ViewportTexture_mulq8") +shader_parameter/blurStep = Vector2(1, 0) +shader_parameter/textureAlbedo = SubResource("ViewportTexture_vbioy") [sub_resource type="FastNoiseLite" id="FastNoiseLite_dor76"] frequency = 0.0035 @@ -64,7 +64,7 @@ shader = ExtResource("5") shader_parameter/lightLevel = 1.0 shader_parameter/repeats = Vector2(2, 1) shader_parameter/distortionFactor = 0.0 -shader_parameter/distortionSpeed = 0.001 +shader_parameter/distortionSpeed = 0.0025 shader_parameter/layerAnimateSpeed = 0.4 shader_parameter/worldPos = Vector2(0, 0) shader_parameter/layer0 = ExtResource("6") @@ -81,7 +81,7 @@ current = true fov = 90.0 script = ExtResource("3") DefaultCameraHeight = 30.0 -backgroundPlanePath = NodePath("SubViewport/Node3D/BackgroundPlane") +backgroundPlanePath = NodePath("SubViewport/BackgroundPlane") [node name="AudioListener3D" type="AudioListener3D" parent="."] current = true @@ -106,15 +106,12 @@ offset_bottom = 1000.0 own_world_3d = true size = Vector2i(2000, 1000) -[node name="Node3D" type="Node3D" parent="SubViewport"] -transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0) - -[node name="BackgroundPlane" type="CSGMesh3D" parent="SubViewport/Node3D"] +[node name="BackgroundPlane" type="CSGMesh3D" parent="SubViewport"] transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, -15) cast_shadow = 0 mesh = SubResource("1") material = SubResource("2") -[node name="Camera3D" type="Camera3D" parent="SubViewport/Node3D"] +[node name="Camera3D" type="Camera3D" parent="SubViewport"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 10) fov = 90.0 From f8741e89075c9817d6f77d4aa96fe7f2a5374647 Mon Sep 17 00:00:00 2001 From: dligr Date: Sat, 30 Nov 2024 13:20:45 +0300 Subject: [PATCH 04/53] Add a clarification comment --- shaders/BlurSpatial.gdshader | 3 +++ 1 file changed, 3 insertions(+) diff --git a/shaders/BlurSpatial.gdshader b/shaders/BlurSpatial.gdshader index 7ed7a5ce31..703cd89c80 100644 --- a/shaders/BlurSpatial.gdshader +++ b/shaders/BlurSpatial.gdshader @@ -7,6 +7,9 @@ uniform vec2 blurStep = vec2(1.0f, 0.0f); void fragment() { vec2 s = blurStep / vec2(textureSize(textureAlbedo, 0)); + + // Use SCREEN_UV instead of UV, because otherwise the textureAlbedo is stretched + // across the plane and only a small part of it is visible on the screen ALBEDO = 0.011194727 * texture(textureAlbedo, SCREEN_UV - 10.000000000 * s).rgb + 0.039368696 * texture(textureAlbedo, SCREEN_UV - 8.415809477 * s).rgb + From aad651b837320e33e3d63a93952716ea3cb2d09b Mon Sep 17 00:00:00 2001 From: dligr Date: Sat, 30 Nov 2024 14:45:17 +0300 Subject: [PATCH 05/53] Apply blur only when distortion is enabled, make viewports stretch to screen size --- shaders/Blur.gdshader | 35 +++++++++----- shaders/BlurSpatial.gdshader | 43 ++++++++++------- src/microbe_stage/MicrobeCamera.cs | 53 ++++++++++++++++---- src/microbe_stage/MicrobeCamera.tscn | 72 +++++++++++++++++----------- 4 files changed, 135 insertions(+), 68 deletions(-) diff --git a/shaders/Blur.gdshader b/shaders/Blur.gdshader index 86b66311a9..2050410465 100644 --- a/shaders/Blur.gdshader +++ b/shaders/Blur.gdshader @@ -5,20 +5,29 @@ uniform sampler2D textureAlbedo : source_color, filter_linear_mipmap, repeat_ena uniform vec2 blurStep = vec2(1.0f, 0.0f); +uniform bool applyBlur = true; + void fragment() { - vec2 s = blurStep / vec2(textureSize(textureAlbedo, 0)); - COLOR.rgb = - 0.011194727 * texture(textureAlbedo, UV - 10.000000000 * s).rgb + - 0.039368696 * texture(textureAlbedo, UV - 8.415809477 * s).rgb + - 0.071308558 * texture(textureAlbedo, UV - 6.435363708 * s).rgb + - 0.110237219 * texture(textureAlbedo, UV - 4.455121108 * s).rgb + - 0.145451038 * texture(textureAlbedo, UV - 2.475020813 * s).rgb + - 0.163798995 * texture(textureAlbedo, UV - 0.495000167 * s).rgb + - 0.157439298 * texture(textureAlbedo, UV + 1.485004498 * s).rgb + - 0.129158204 * texture(textureAlbedo, UV + 3.465057055 * s).rgb + - 0.090434685 * texture(textureAlbedo, UV + 5.445220765 * s).rgb + - 0.054043977 * texture(textureAlbedo, UV + 7.425557483 * s).rgb + - 0.027564604 * texture(textureAlbedo, UV + 9.406126897 * s).rgb; + if (applyBlur) + { + vec2 s = blurStep / vec2(textureSize(textureAlbedo, 0)); + COLOR.rgb = + 0.011194727 * texture(textureAlbedo, UV - 10.000000000 * s).rgb + + 0.039368696 * texture(textureAlbedo, UV - 8.415809477 * s).rgb + + 0.071308558 * texture(textureAlbedo, UV - 6.435363708 * s).rgb + + 0.110237219 * texture(textureAlbedo, UV - 4.455121108 * s).rgb + + 0.145451038 * texture(textureAlbedo, UV - 2.475020813 * s).rgb + + 0.163798995 * texture(textureAlbedo, UV - 0.495000167 * s).rgb + + 0.157439298 * texture(textureAlbedo, UV + 1.485004498 * s).rgb + + 0.129158204 * texture(textureAlbedo, UV + 3.465057055 * s).rgb + + 0.090434685 * texture(textureAlbedo, UV + 5.445220765 * s).rgb + + 0.054043977 * texture(textureAlbedo, UV + 7.425557483 * s).rgb + + 0.027564604 * texture(textureAlbedo, UV + 9.406126897 * s).rgb; + } + else + { + COLOR.rgb = texture(textureAlbedo, UV).rgb; + } COLOR.a = 1.0f; } \ No newline at end of file diff --git a/shaders/BlurSpatial.gdshader b/shaders/BlurSpatial.gdshader index 703cd89c80..69625f98c9 100644 --- a/shaders/BlurSpatial.gdshader +++ b/shaders/BlurSpatial.gdshader @@ -1,25 +1,34 @@ shader_type spatial; -render_mode unshaded; +render_mode unshaded, depth_draw_never; uniform sampler2D textureAlbedo : source_color, filter_linear_mipmap, repeat_enable; uniform vec2 blurStep = vec2(1.0f, 0.0f); +uniform bool applyBlur = true; + void fragment() { - vec2 s = blurStep / vec2(textureSize(textureAlbedo, 0)); - - // Use SCREEN_UV instead of UV, because otherwise the textureAlbedo is stretched - // across the plane and only a small part of it is visible on the screen - ALBEDO = - 0.011194727 * texture(textureAlbedo, SCREEN_UV - 10.000000000 * s).rgb + - 0.039368696 * texture(textureAlbedo, SCREEN_UV - 8.415809477 * s).rgb + - 0.071308558 * texture(textureAlbedo, SCREEN_UV - 6.435363708 * s).rgb + - 0.110237219 * texture(textureAlbedo, SCREEN_UV - 4.455121108 * s).rgb + - 0.145451038 * texture(textureAlbedo, SCREEN_UV - 2.475020813 * s).rgb + - 0.163798995 * texture(textureAlbedo, SCREEN_UV - 0.495000167 * s).rgb + - 0.157439298 * texture(textureAlbedo, SCREEN_UV + 1.485004498 * s).rgb + - 0.129158204 * texture(textureAlbedo, SCREEN_UV + 3.465057055 * s).rgb + - 0.090434685 * texture(textureAlbedo, SCREEN_UV + 5.445220765 * s).rgb + - 0.054043977 * texture(textureAlbedo, SCREEN_UV + 7.425557483 * s).rgb + - 0.027564604 * texture(textureAlbedo, SCREEN_UV + 9.406126897 * s).rgb; + if (applyBlur) + { + vec2 s = blurStep / vec2(textureSize(textureAlbedo, 0)); + + // Use SCREEN_UV instead of UV, because otherwise the textureAlbedo is stretched + // across the plane and only a small part of it is visible on the screen + ALBEDO = + 0.011194727 * texture(textureAlbedo, SCREEN_UV - 10.000000000 * s).rgb + + 0.039368696 * texture(textureAlbedo, SCREEN_UV - 8.415809477 * s).rgb + + 0.071308558 * texture(textureAlbedo, SCREEN_UV - 6.435363708 * s).rgb + + 0.110237219 * texture(textureAlbedo, SCREEN_UV - 4.455121108 * s).rgb + + 0.145451038 * texture(textureAlbedo, SCREEN_UV - 2.475020813 * s).rgb + + 0.163798995 * texture(textureAlbedo, SCREEN_UV - 0.495000167 * s).rgb + + 0.157439298 * texture(textureAlbedo, SCREEN_UV + 1.485004498 * s).rgb + + 0.129158204 * texture(textureAlbedo, SCREEN_UV + 3.465057055 * s).rgb + + 0.090434685 * texture(textureAlbedo, SCREEN_UV + 5.445220765 * s).rgb + + 0.054043977 * texture(textureAlbedo, SCREEN_UV + 7.425557483 * s).rgb + + 0.027564604 * texture(textureAlbedo, SCREEN_UV + 9.406126897 * s).rgb; + } + else + { + ALBEDO = texture(textureAlbedo, SCREEN_UV).rgb; + } } diff --git a/src/microbe_stage/MicrobeCamera.cs b/src/microbe_stage/MicrobeCamera.cs index 09b9c6589f..3a53174949 100644 --- a/src/microbe_stage/MicrobeCamera.cs +++ b/src/microbe_stage/MicrobeCamera.cs @@ -63,9 +63,19 @@ public partial class MicrobeCamera : Camera3D, IGodotEarlyNodeResolve, ISaveLoad [Export] public float LightLevelInterpolateSpeed = 4; + private readonly StringName applyBlurParameter = new("applyBlur"); + private readonly StringName worldPositionParameter = new("worldPos"); private readonly StringName lightLevelParameter = new("lightLevel"); private readonly StringName distortionStrengthParameter = new("distortionFactor"); + [Export] + [JsonIgnore] + private NodePath blurPlane = null!; + + [Export] + [JsonIgnore] + private NodePath blurColorRect = null!; + [Export] [JsonIgnore] private NodePath backgroundPlanePath = null!; @@ -81,7 +91,11 @@ public partial class MicrobeCamera : Camera3D, IGodotEarlyNodeResolve, ISaveLoad [JsonIgnore] private GpuParticles3D? backgroundParticles; - private ShaderMaterial? materialToUpdate; + private ShaderMaterial? spatialBlurMaterial; + + private ShaderMaterial? canvasBlurMaterial; + + private ShaderMaterial? backgroundMaterial; #pragma warning restore CA2213 /// @@ -169,13 +183,18 @@ public Vector3 CursorVisualWorldPos public override void _Ready() { var material = GetNode(backgroundPlanePath).Material; - if (material == null) + var planeBlurMaterial = GetNode(blurPlane).Material; + var colorRectBlurMaterial = GetNode(blurColorRect).Material; + + if (material == null || planeBlurMaterial == null || colorRectBlurMaterial == null) { GD.PrintErr("MicrobeCamera didn't find material to update"); return; } - materialToUpdate = (ShaderMaterial)material; + backgroundMaterial = (ShaderMaterial)material; + spatialBlurMaterial = (ShaderMaterial)planeBlurMaterial; + canvasBlurMaterial = (ShaderMaterial)colorRectBlurMaterial; ResolveNodeReferences(); @@ -184,6 +203,7 @@ public override void _Ready() UpdateBackgroundVisibility(); ApplyDistortionEffect(); + ApplyBlurEffect(); ProcessMode = ProcessModeEnum.Always; } @@ -208,6 +228,7 @@ public override void _EnterTree() Settings.Instance.MicrobeDistortionStrength.OnChanged += OnBackgroundDistortionChanged; ApplyDistortionEffect(); + ApplyBlurEffect(); } public override void _ExitTree() @@ -235,7 +256,7 @@ public override void _Process(double delta) UpdateCameraPosition(delta, null); } - materialToUpdate?.SetShaderParameter("worldPos", Variant.From(new Vector2(Position.X, Position.Z))); + backgroundMaterial?.SetShaderParameter(worldPositionParameter, Variant.From(new Vector2(Position.X, Position.Z))); } public void UpdateCameraPosition(double delta, Vector3? followedObject) @@ -338,13 +359,13 @@ public void SetBackground(Background background) { // TODO: skip duplicate background changes - if (materialToUpdate == null) + if (backgroundMaterial == null) throw new InvalidOperationException("Camera not initialized yet"); for (int i = 0; i < 4; ++i) { // TODO: switch this loop away to reuse StringName instances if this causes significant allocations - materialToUpdate.SetShaderParameter($"layer{i:n0}", GD.Load(background.Textures[i])); + backgroundMaterial.SetShaderParameter($"layer{i:n0}", GD.Load(background.Textures[i])); } backgroundParticles?.DetachAndQueueFree(); @@ -362,8 +383,13 @@ protected override void Dispose(bool disposing) { if (disposing) { + applyBlurParameter.Dispose(); lightLevelParameter.Dispose(); distortionStrengthParameter.Dispose(); + worldPositionParameter.Dispose(); + + blurPlane.Dispose(); + blurColorRect.Dispose(); backgroundPlanePath.Dispose(); } @@ -468,7 +494,7 @@ private void UpdateBackgroundVisibility() private void UpdateLightLevel(float delta) { - if (materialToUpdate == null) + if (backgroundMaterial == null) { GD.PrintErr($"{nameof(UpdateLightLevel)} called too early, material not ready"); return; @@ -493,17 +519,26 @@ private void UpdateLightLevel(float delta) lastSetLightLevel = lightLevel; } - materialToUpdate.SetShaderParameter(lightLevelParameter, lastSetLightLevel); + backgroundMaterial.SetShaderParameter(lightLevelParameter, lastSetLightLevel); } private void OnBackgroundDistortionChanged(float value) { ApplyDistortionEffect(); + ApplyBlurEffect(); } private void ApplyDistortionEffect() { - materialToUpdate?.SetShaderParameter(distortionStrengthParameter, + backgroundMaterial?.SetShaderParameter(distortionStrengthParameter, Settings.Instance.MicrobeDistortionStrength.Value); } + + private void ApplyBlurEffect() + { + bool enabled = Settings.Instance.MicrobeDistortionStrength.Value > 0.1f; + GD.Print("blur is " + enabled); + canvasBlurMaterial?.SetShaderParameter(applyBlurParameter, enabled); + spatialBlurMaterial?.SetShaderParameter(applyBlurParameter, enabled); + } } diff --git a/src/microbe_stage/MicrobeCamera.tscn b/src/microbe_stage/MicrobeCamera.tscn index c0d46816d2..4b4a97c003 100644 --- a/src/microbe_stage/MicrobeCamera.tscn +++ b/src/microbe_stage/MicrobeCamera.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=23 format=3 uid="uid://bako5jivv1dji"] +[gd_scene load_steps=19 format=3 uid="uid://bako5jivv1dji"] [ext_resource type="Texture2D" uid="uid://d3msr0kfa34w2" path="res://assets/textures/background/Thrive_vent1.png" id="1"] [ext_resource type="Texture2D" uid="uid://bddntbgykd7uq" path="res://assets/textures/background/Thrive_vent2.png" id="2"] @@ -13,33 +13,24 @@ size = Vector2(800, 400) [sub_resource type="ViewportTexture" id="ViewportTexture_duokn"] -viewport_path = NodePath("SubViewport2") +viewport_path = NodePath("SubViewportContainer/SubViewport2") [sub_resource type="ShaderMaterial" id="ShaderMaterial_1sr76"] resource_local_to_scene = true -render_priority = 0 +render_priority = -100 shader = ExtResource("2_70a3p") shader_parameter/blurStep = Vector2(0, 1) +shader_parameter/applyBlur = true shader_parameter/textureAlbedo = SubResource("ViewportTexture_duokn") -[sub_resource type="CameraAttributesPractical" id="CameraAttributesPractical_y62cm"] - -[sub_resource type="Environment" id="Environment_iygdt"] - -[sub_resource type="Environment" id="Environment_kcf2w"] - -[sub_resource type="World3D" id="World3D_76d81"] -environment = SubResource("Environment_iygdt") -fallback_environment = SubResource("Environment_kcf2w") -camera_attributes = SubResource("CameraAttributesPractical_y62cm") - [sub_resource type="ViewportTexture" id="ViewportTexture_vbioy"] -viewport_path = NodePath("SubViewport") +viewport_path = NodePath("SubViewportContainer/SubViewport") [sub_resource type="ShaderMaterial" id="ShaderMaterial_tdrj5"] resource_local_to_scene = true shader = ExtResource("8_qrk01") shader_parameter/blurStep = Vector2(1, 0) +shader_parameter/applyBlur = true shader_parameter/textureAlbedo = SubResource("ViewportTexture_vbioy") [sub_resource type="FastNoiseLite" id="FastNoiseLite_dor76"] @@ -81,7 +72,9 @@ current = true fov = 90.0 script = ExtResource("3") DefaultCameraHeight = 30.0 -backgroundPlanePath = NodePath("SubViewport/BackgroundPlane") +blurPlane = NodePath("BackgroundPlane") +blurColorRect = NodePath("SubViewportContainer/SubViewport2/ColorRect") +backgroundPlanePath = NodePath("SubViewportContainer/SubViewport/BackgroundPlane") [node name="AudioListener3D" type="AudioListener3D" parent="."] current = true @@ -92,26 +85,47 @@ cast_shadow = 0 mesh = SubResource("1") material = SubResource("ShaderMaterial_1sr76") -[node name="SubViewport2" type="SubViewport" parent="."] -own_world_3d = true -world_3d = SubResource("World3D_76d81") -size = Vector2i(2000, 1000) - -[node name="ColorRect" type="ColorRect" parent="SubViewport2"] +[node name="SubViewportContainer" type="SubViewportContainer" parent="."] +modulate = Color(1, 1, 1, 0) +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +stretch = true + +[node name="SubViewport2" type="SubViewport" parent="SubViewportContainer"] +disable_3d = true +handle_input_locally = false +size = Vector2i(1280, 720) +render_target_update_mode = 4 + +[node name="ColorRect" type="ColorRect" parent="SubViewportContainer/SubViewport2"] material = SubResource("ShaderMaterial_tdrj5") -offset_right = 2000.0 -offset_bottom = 1000.0 - -[node name="SubViewport" type="SubViewport" parent="."] +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -1000.0 +offset_top = -500.0 +offset_right = 1000.0 +offset_bottom = 500.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="SubViewport" type="SubViewport" parent="SubViewportContainer"] own_world_3d = true -size = Vector2i(2000, 1000) +handle_input_locally = false +size = Vector2i(1280, 720) +render_target_update_mode = 4 -[node name="BackgroundPlane" type="CSGMesh3D" parent="SubViewport"] +[node name="BackgroundPlane" type="CSGMesh3D" parent="SubViewportContainer/SubViewport"] transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, -15) cast_shadow = 0 mesh = SubResource("1") material = SubResource("2") -[node name="Camera3D" type="Camera3D" parent="SubViewport"] +[node name="Camera3D" type="Camera3D" parent="SubViewportContainer/SubViewport"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 10) fov = 90.0 From f61f81500de7169876b8cde6ebecaa96b7c876e5 Mon Sep 17 00:00:00 2001 From: dligr Date: Sat, 30 Nov 2024 15:25:07 +0300 Subject: [PATCH 06/53] Remove a debug print --- src/microbe_stage/MicrobeCamera.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/microbe_stage/MicrobeCamera.cs b/src/microbe_stage/MicrobeCamera.cs index 3a53174949..c31a90a112 100644 --- a/src/microbe_stage/MicrobeCamera.cs +++ b/src/microbe_stage/MicrobeCamera.cs @@ -536,8 +536,7 @@ private void ApplyDistortionEffect() private void ApplyBlurEffect() { - bool enabled = Settings.Instance.MicrobeDistortionStrength.Value > 0.1f; - GD.Print("blur is " + enabled); + bool enabled = Settings.Instance.MicrobeDistortionStrength.Value > 0.0f; canvasBlurMaterial?.SetShaderParameter(applyBlurParameter, enabled); spatialBlurMaterial?.SetShaderParameter(applyBlurParameter, enabled); } From aca64b6e64e3c0558fa9977e7c631540a2dbaad5 Mon Sep 17 00:00:00 2001 From: dligr Date: Sat, 30 Nov 2024 15:36:42 +0300 Subject: [PATCH 07/53] Replace tabs with spaces --- shaders/Blur.gdshader | 44 ++++++++++++++-------------- shaders/BlurSpatial.gdshader | 46 +++++++++++++++--------------- shaders/MicrobeBackground.gdshader | 2 +- 3 files changed, 46 insertions(+), 46 deletions(-) diff --git a/shaders/Blur.gdshader b/shaders/Blur.gdshader index 2050410465..f32b2e7e37 100644 --- a/shaders/Blur.gdshader +++ b/shaders/Blur.gdshader @@ -8,26 +8,26 @@ uniform vec2 blurStep = vec2(1.0f, 0.0f); uniform bool applyBlur = true; void fragment() { - if (applyBlur) - { - vec2 s = blurStep / vec2(textureSize(textureAlbedo, 0)); - COLOR.rgb = - 0.011194727 * texture(textureAlbedo, UV - 10.000000000 * s).rgb + - 0.039368696 * texture(textureAlbedo, UV - 8.415809477 * s).rgb + - 0.071308558 * texture(textureAlbedo, UV - 6.435363708 * s).rgb + - 0.110237219 * texture(textureAlbedo, UV - 4.455121108 * s).rgb + - 0.145451038 * texture(textureAlbedo, UV - 2.475020813 * s).rgb + - 0.163798995 * texture(textureAlbedo, UV - 0.495000167 * s).rgb + - 0.157439298 * texture(textureAlbedo, UV + 1.485004498 * s).rgb + - 0.129158204 * texture(textureAlbedo, UV + 3.465057055 * s).rgb + - 0.090434685 * texture(textureAlbedo, UV + 5.445220765 * s).rgb + - 0.054043977 * texture(textureAlbedo, UV + 7.425557483 * s).rgb + - 0.027564604 * texture(textureAlbedo, UV + 9.406126897 * s).rgb; - } - else - { - COLOR.rgb = texture(textureAlbedo, UV).rgb; - } - - COLOR.a = 1.0f; + if (applyBlur) + { + vec2 s = blurStep / vec2(textureSize(textureAlbedo, 0)); + COLOR.rgb = + 0.011194727 * texture(textureAlbedo, UV - 10.000000000 * s).rgb + + 0.039368696 * texture(textureAlbedo, UV - 8.415809477 * s).rgb + + 0.071308558 * texture(textureAlbedo, UV - 6.435363708 * s).rgb + + 0.110237219 * texture(textureAlbedo, UV - 4.455121108 * s).rgb + + 0.145451038 * texture(textureAlbedo, UV - 2.475020813 * s).rgb + + 0.163798995 * texture(textureAlbedo, UV - 0.495000167 * s).rgb + + 0.157439298 * texture(textureAlbedo, UV + 1.485004498 * s).rgb + + 0.129158204 * texture(textureAlbedo, UV + 3.465057055 * s).rgb + + 0.090434685 * texture(textureAlbedo, UV + 5.445220765 * s).rgb + + 0.054043977 * texture(textureAlbedo, UV + 7.425557483 * s).rgb + + 0.027564604 * texture(textureAlbedo, UV + 9.406126897 * s).rgb; + } + else + { + COLOR.rgb = texture(textureAlbedo, UV).rgb; + } + + COLOR.a = 1.0f; } \ No newline at end of file diff --git a/shaders/BlurSpatial.gdshader b/shaders/BlurSpatial.gdshader index 69625f98c9..443565f8b1 100644 --- a/shaders/BlurSpatial.gdshader +++ b/shaders/BlurSpatial.gdshader @@ -8,27 +8,27 @@ uniform vec2 blurStep = vec2(1.0f, 0.0f); uniform bool applyBlur = true; void fragment() { - if (applyBlur) - { - vec2 s = blurStep / vec2(textureSize(textureAlbedo, 0)); - - // Use SCREEN_UV instead of UV, because otherwise the textureAlbedo is stretched - // across the plane and only a small part of it is visible on the screen - ALBEDO = - 0.011194727 * texture(textureAlbedo, SCREEN_UV - 10.000000000 * s).rgb + - 0.039368696 * texture(textureAlbedo, SCREEN_UV - 8.415809477 * s).rgb + - 0.071308558 * texture(textureAlbedo, SCREEN_UV - 6.435363708 * s).rgb + - 0.110237219 * texture(textureAlbedo, SCREEN_UV - 4.455121108 * s).rgb + - 0.145451038 * texture(textureAlbedo, SCREEN_UV - 2.475020813 * s).rgb + - 0.163798995 * texture(textureAlbedo, SCREEN_UV - 0.495000167 * s).rgb + - 0.157439298 * texture(textureAlbedo, SCREEN_UV + 1.485004498 * s).rgb + - 0.129158204 * texture(textureAlbedo, SCREEN_UV + 3.465057055 * s).rgb + - 0.090434685 * texture(textureAlbedo, SCREEN_UV + 5.445220765 * s).rgb + - 0.054043977 * texture(textureAlbedo, SCREEN_UV + 7.425557483 * s).rgb + - 0.027564604 * texture(textureAlbedo, SCREEN_UV + 9.406126897 * s).rgb; - } - else - { - ALBEDO = texture(textureAlbedo, SCREEN_UV).rgb; - } + if (applyBlur) + { + vec2 s = blurStep / vec2(textureSize(textureAlbedo, 0)); + + // Use SCREEN_UV instead of UV, because otherwise the textureAlbedo is stretched + // across the plane and only a small part of it is visible on the screen + ALBEDO = + 0.011194727 * texture(textureAlbedo, SCREEN_UV - 10.000000000 * s).rgb + + 0.039368696 * texture(textureAlbedo, SCREEN_UV - 8.415809477 * s).rgb + + 0.071308558 * texture(textureAlbedo, SCREEN_UV - 6.435363708 * s).rgb + + 0.110237219 * texture(textureAlbedo, SCREEN_UV - 4.455121108 * s).rgb + + 0.145451038 * texture(textureAlbedo, SCREEN_UV - 2.475020813 * s).rgb + + 0.163798995 * texture(textureAlbedo, SCREEN_UV - 0.495000167 * s).rgb + + 0.157439298 * texture(textureAlbedo, SCREEN_UV + 1.485004498 * s).rgb + + 0.129158204 * texture(textureAlbedo, SCREEN_UV + 3.465057055 * s).rgb + + 0.090434685 * texture(textureAlbedo, SCREEN_UV + 5.445220765 * s).rgb + + 0.054043977 * texture(textureAlbedo, SCREEN_UV + 7.425557483 * s).rgb + + 0.027564604 * texture(textureAlbedo, SCREEN_UV + 9.406126897 * s).rgb; + } + else + { + ALBEDO = texture(textureAlbedo, SCREEN_UV).rgb; + } } diff --git a/shaders/MicrobeBackground.gdshader b/shaders/MicrobeBackground.gdshader index a30fd9cf26..7b8878e1a9 100644 --- a/shaders/MicrobeBackground.gdshader +++ b/shaders/MicrobeBackground.gdshader @@ -64,7 +64,7 @@ void fragment(){ // Application of noise textures on parallax layers, creating distortion. // Subtracting time results in a flip of the direction of distortion, and multiplying by factor amplifies speed. vec2 noiseUV1 = UV + TIME * distortionSpeed; - vec2 noise1 = vec2(texture(noiseTex1, noiseUV1).r, texture(noiseTex2, noiseUV1).r); + vec2 noise1 = vec2(texture(noiseTex1, noiseUV1).r, texture(noiseTex2, noiseUV1).r); vec2 distortedUV0 = UV + noise1 * distortionFactor; #ifdef DISTORT_ALL_LAYERS From 4a2e3bc1c1411b1391e03dc5af6b128e4c2eee41 Mon Sep 17 00:00:00 2001 From: dligr Date: Sat, 30 Nov 2024 16:00:48 +0300 Subject: [PATCH 08/53] Get better values for the blur shaders, fix style --- shaders/Blur.gdshader | 22 +++++++++++----------- shaders/BlurSpatial.gdshader | 22 +++++++++++----------- src/microbe_stage/MicrobeCamera.cs | 2 +- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/shaders/Blur.gdshader b/shaders/Blur.gdshader index f32b2e7e37..b203435a76 100644 --- a/shaders/Blur.gdshader +++ b/shaders/Blur.gdshader @@ -12,17 +12,17 @@ void fragment() { { vec2 s = blurStep / vec2(textureSize(textureAlbedo, 0)); COLOR.rgb = - 0.011194727 * texture(textureAlbedo, UV - 10.000000000 * s).rgb + - 0.039368696 * texture(textureAlbedo, UV - 8.415809477 * s).rgb + - 0.071308558 * texture(textureAlbedo, UV - 6.435363708 * s).rgb + - 0.110237219 * texture(textureAlbedo, UV - 4.455121108 * s).rgb + - 0.145451038 * texture(textureAlbedo, UV - 2.475020813 * s).rgb + - 0.163798995 * texture(textureAlbedo, UV - 0.495000167 * s).rgb + - 0.157439298 * texture(textureAlbedo, UV + 1.485004498 * s).rgb + - 0.129158204 * texture(textureAlbedo, UV + 3.465057055 * s).rgb + - 0.090434685 * texture(textureAlbedo, UV + 5.445220765 * s).rgb + - 0.054043977 * texture(textureAlbedo, UV + 7.425557483 * s).rgb + - 0.027564604 * texture(textureAlbedo, UV + 9.406126897 * s).rgb; + 0.057433154f * texture(textureAlbedo, UV - 8.0f * s).rgb + + 0.09469126f * texture(textureAlbedo, UV - 6.4f * s).rgb + + 0.13970186f * texture(textureAlbedo, UV - 4.8f * s).rgb + + 0.18443339f * texture(textureAlbedo, UV - 3.2f * s).rgb + + 0.21788229f * texture(textureAlbedo, UV - 1.6f * s).rgb + + 0.23032942f * texture(textureAlbedo, UV - 0.0f * s).rgb + + 0.21788229f * texture(textureAlbedo, UV + 1.6f * s).rgb + + 0.18443339f * texture(textureAlbedo, UV + 3.2f * s).rgb + + 0.13970186f * texture(textureAlbedo, UV + 4.8f * s).rgb + + 0.09469126f * texture(textureAlbedo, UV + 6.4f * s).rgb + + 0.057433154f * texture(textureAlbedo, UV + 8.0f * s).rgb; } else { diff --git a/shaders/BlurSpatial.gdshader b/shaders/BlurSpatial.gdshader index 443565f8b1..0ef4215089 100644 --- a/shaders/BlurSpatial.gdshader +++ b/shaders/BlurSpatial.gdshader @@ -15,17 +15,17 @@ void fragment() { // Use SCREEN_UV instead of UV, because otherwise the textureAlbedo is stretched // across the plane and only a small part of it is visible on the screen ALBEDO = - 0.011194727 * texture(textureAlbedo, SCREEN_UV - 10.000000000 * s).rgb + - 0.039368696 * texture(textureAlbedo, SCREEN_UV - 8.415809477 * s).rgb + - 0.071308558 * texture(textureAlbedo, SCREEN_UV - 6.435363708 * s).rgb + - 0.110237219 * texture(textureAlbedo, SCREEN_UV - 4.455121108 * s).rgb + - 0.145451038 * texture(textureAlbedo, SCREEN_UV - 2.475020813 * s).rgb + - 0.163798995 * texture(textureAlbedo, SCREEN_UV - 0.495000167 * s).rgb + - 0.157439298 * texture(textureAlbedo, SCREEN_UV + 1.485004498 * s).rgb + - 0.129158204 * texture(textureAlbedo, SCREEN_UV + 3.465057055 * s).rgb + - 0.090434685 * texture(textureAlbedo, SCREEN_UV + 5.445220765 * s).rgb + - 0.054043977 * texture(textureAlbedo, SCREEN_UV + 7.425557483 * s).rgb + - 0.027564604 * texture(textureAlbedo, SCREEN_UV + 9.406126897 * s).rgb; + 0.057433154f * texture(textureAlbedo, SCREEN_UV - 8.0f * s).rgb + + 0.09469126f * texture(textureAlbedo, SCREEN_UV - 6.4f * s).rgb + + 0.13970186f * texture(textureAlbedo, SCREEN_UV - 4.8f * s).rgb + + 0.18443339f * texture(textureAlbedo, SCREEN_UV - 3.2f * s).rgb + + 0.21788229f * texture(textureAlbedo, SCREEN_UV - 1.6f * s).rgb + + 0.23032942f * texture(textureAlbedo, SCREEN_UV - 0.0f * s).rgb + + 0.21788229f * texture(textureAlbedo, SCREEN_UV + 1.6f * s).rgb + + 0.18443339f * texture(textureAlbedo, SCREEN_UV + 3.2f * s).rgb + + 0.13970186f * texture(textureAlbedo, SCREEN_UV + 4.8f * s).rgb + + 0.09469126f * texture(textureAlbedo, SCREEN_UV + 6.4f * s).rgb + + 0.057433154f * texture(textureAlbedo, SCREEN_UV + 8.0f * s).rgb; } else { diff --git a/src/microbe_stage/MicrobeCamera.cs b/src/microbe_stage/MicrobeCamera.cs index c31a90a112..794c958bcd 100644 --- a/src/microbe_stage/MicrobeCamera.cs +++ b/src/microbe_stage/MicrobeCamera.cs @@ -256,7 +256,7 @@ public override void _Process(double delta) UpdateCameraPosition(delta, null); } - backgroundMaterial?.SetShaderParameter(worldPositionParameter, Variant.From(new Vector2(Position.X, Position.Z))); + backgroundMaterial?.SetShaderParameter(worldPositionParameter, new Vector2(Position.X, Position.Z)); } public void UpdateCameraPosition(double delta, Vector3? followedObject) From 476ab02ff2f30a9a397b0894b6adad26d12a5568 Mon Sep 17 00:00:00 2001 From: dligr Date: Sat, 30 Nov 2024 16:21:36 +0300 Subject: [PATCH 09/53] Adjust background plane position --- src/microbe_stage/MicrobeCamera.tscn | 71 ++++++++++++---------------- 1 file changed, 31 insertions(+), 40 deletions(-) diff --git a/src/microbe_stage/MicrobeCamera.tscn b/src/microbe_stage/MicrobeCamera.tscn index 4b4a97c003..6e69b821fd 100644 --- a/src/microbe_stage/MicrobeCamera.tscn +++ b/src/microbe_stage/MicrobeCamera.tscn @@ -13,7 +13,7 @@ size = Vector2(800, 400) [sub_resource type="ViewportTexture" id="ViewportTexture_duokn"] -viewport_path = NodePath("SubViewportContainer/SubViewport2") +viewport_path = NodePath("SubViewport2") [sub_resource type="ShaderMaterial" id="ShaderMaterial_1sr76"] resource_local_to_scene = true @@ -23,16 +23,6 @@ shader_parameter/blurStep = Vector2(0, 1) shader_parameter/applyBlur = true shader_parameter/textureAlbedo = SubResource("ViewportTexture_duokn") -[sub_resource type="ViewportTexture" id="ViewportTexture_vbioy"] -viewport_path = NodePath("SubViewportContainer/SubViewport") - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_tdrj5"] -resource_local_to_scene = true -shader = ExtResource("8_qrk01") -shader_parameter/blurStep = Vector2(1, 0) -shader_parameter/applyBlur = true -shader_parameter/textureAlbedo = SubResource("ViewportTexture_vbioy") - [sub_resource type="FastNoiseLite" id="FastNoiseLite_dor76"] frequency = 0.0035 @@ -65,6 +55,16 @@ shader_parameter/layer3 = ExtResource("4") shader_parameter/noiseTex1 = SubResource("NoiseTexture2D_f6pop") shader_parameter/noiseTex2 = SubResource("NoiseTexture2D_tsmw6") +[sub_resource type="ViewportTexture" id="ViewportTexture_vbioy"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_tdrj5"] +resource_local_to_scene = true +shader = ExtResource("8_qrk01") +shader_parameter/blurStep = Vector2(1, 0) +shader_parameter/applyBlur = true +shader_parameter/textureAlbedo = SubResource("ViewportTexture_vbioy") + [node name="MicrobeCamera" type="Camera3D"] process_priority = 100 transform = Transform3D(1, 0, 0, 0, -1.62921e-07, 1, 0, -1, -1.62921e-07, 0, 10, 0) @@ -73,34 +73,41 @@ fov = 90.0 script = ExtResource("3") DefaultCameraHeight = 30.0 blurPlane = NodePath("BackgroundPlane") -blurColorRect = NodePath("SubViewportContainer/SubViewport2/ColorRect") -backgroundPlanePath = NodePath("SubViewportContainer/SubViewport/BackgroundPlane") +blurColorRect = NodePath("SubViewport2/ColorRect") +backgroundPlanePath = NodePath("SubViewport/BackgroundPlane") [node name="AudioListener3D" type="AudioListener3D" parent="."] current = true [node name="BackgroundPlane" type="CSGMesh3D" parent="."] -transform = Transform3D(1, 0, 0, 0, -1.62921e-07, -1, 0, 1, -1.62921e-07, 0, 0, -150) +transform = Transform3D(1, 0, 0, 0, -1.62921e-07, -1, 0, 1, -1.62921e-07, 0, 0, -20) cast_shadow = 0 mesh = SubResource("1") material = SubResource("ShaderMaterial_1sr76") -[node name="SubViewportContainer" type="SubViewportContainer" parent="."] -modulate = Color(1, 1, 1, 0) -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 -stretch = true +[node name="SubViewport" type="SubViewport" parent="."] +own_world_3d = true +handle_input_locally = false +size = Vector2i(1280, 720) +render_target_update_mode = 4 + +[node name="BackgroundPlane" type="CSGMesh3D" parent="SubViewport"] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, -15) +cast_shadow = 0 +mesh = SubResource("1") +material = SubResource("2") -[node name="SubViewport2" type="SubViewport" parent="SubViewportContainer"] +[node name="Camera3D" type="Camera3D" parent="SubViewport"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 10) +fov = 90.0 + +[node name="SubViewport2" type="SubViewport" parent="."] disable_3d = true handle_input_locally = false size = Vector2i(1280, 720) render_target_update_mode = 4 -[node name="ColorRect" type="ColorRect" parent="SubViewportContainer/SubViewport2"] +[node name="ColorRect" type="ColorRect" parent="SubViewport2"] material = SubResource("ShaderMaterial_tdrj5") anchors_preset = 8 anchor_left = 0.5 @@ -113,19 +120,3 @@ offset_right = 1000.0 offset_bottom = 500.0 grow_horizontal = 2 grow_vertical = 2 - -[node name="SubViewport" type="SubViewport" parent="SubViewportContainer"] -own_world_3d = true -handle_input_locally = false -size = Vector2i(1280, 720) -render_target_update_mode = 4 - -[node name="BackgroundPlane" type="CSGMesh3D" parent="SubViewportContainer/SubViewport"] -transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, -15) -cast_shadow = 0 -mesh = SubResource("1") -material = SubResource("2") - -[node name="Camera3D" type="Camera3D" parent="SubViewportContainer/SubViewport"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 10) -fov = 90.0 From 9a7f3f5974bfba20a44b370bbf81162f53b4d1f1 Mon Sep 17 00:00:00 2001 From: dligr Date: Sat, 30 Nov 2024 16:44:39 +0300 Subject: [PATCH 10/53] Enable background distortion by default --- src/engine/Settings.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/Settings.cs b/src/engine/Settings.cs index 1ca4fea64e..f25bd68046 100644 --- a/src/engine/Settings.cs +++ b/src/engine/Settings.cs @@ -111,7 +111,7 @@ public enum StrainBarVisibility /// enabled. /// [JsonProperty] - public SettingValue MicrobeDistortionStrength { get; private set; } = new(0); + public SettingValue MicrobeDistortionStrength { get; private set; } = new(0.6f); /// /// Type of controller button prompts to show From 785b30c20ec280a2bc11a21ad4ada4099273a308 Mon Sep 17 00:00:00 2001 From: dligr Date: Sat, 30 Nov 2024 20:11:53 +0300 Subject: [PATCH 11/53] Rename some variables, fix a bug with path disposing --- src/microbe_stage/MicrobeCamera.cs | 20 +++++----- src/microbe_stage/MicrobeCamera.tscn | 56 ++++++++++++++-------------- 2 files changed, 38 insertions(+), 38 deletions(-) diff --git a/src/microbe_stage/MicrobeCamera.cs b/src/microbe_stage/MicrobeCamera.cs index 794c958bcd..9f2979ebb1 100644 --- a/src/microbe_stage/MicrobeCamera.cs +++ b/src/microbe_stage/MicrobeCamera.cs @@ -69,15 +69,12 @@ public partial class MicrobeCamera : Camera3D, IGodotEarlyNodeResolve, ISaveLoad private readonly StringName distortionStrengthParameter = new("distortionFactor"); [Export] - [JsonIgnore] - private NodePath blurPlane = null!; + private NodePath blurPlanePath = null!; [Export] - [JsonIgnore] - private NodePath blurColorRect = null!; + private NodePath blurColorRectPath = null!; [Export] - [JsonIgnore] private NodePath backgroundPlanePath = null!; #pragma warning disable CA2213 @@ -183,8 +180,8 @@ public Vector3 CursorVisualWorldPos public override void _Ready() { var material = GetNode(backgroundPlanePath).Material; - var planeBlurMaterial = GetNode(blurPlane).Material; - var colorRectBlurMaterial = GetNode(blurColorRect).Material; + var planeBlurMaterial = GetNode(blurPlanePath).Material; + var colorRectBlurMaterial = GetNode(blurColorRectPath).Material; if (material == null || planeBlurMaterial == null || colorRectBlurMaterial == null) { @@ -388,9 +385,12 @@ protected override void Dispose(bool disposing) distortionStrengthParameter.Dispose(); worldPositionParameter.Dispose(); - blurPlane.Dispose(); - blurColorRect.Dispose(); - backgroundPlanePath.Dispose(); + if (blurPlanePath != null) + { + blurPlanePath.Dispose(); + blurColorRectPath.Dispose(); + backgroundPlanePath.Dispose(); + } } base.Dispose(disposing); diff --git a/src/microbe_stage/MicrobeCamera.tscn b/src/microbe_stage/MicrobeCamera.tscn index 6e69b821fd..b99870fd70 100644 --- a/src/microbe_stage/MicrobeCamera.tscn +++ b/src/microbe_stage/MicrobeCamera.tscn @@ -23,6 +23,16 @@ shader_parameter/blurStep = Vector2(0, 1) shader_parameter/applyBlur = true shader_parameter/textureAlbedo = SubResource("ViewportTexture_duokn") +[sub_resource type="ViewportTexture" id="ViewportTexture_vbioy"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_tdrj5"] +resource_local_to_scene = true +shader = ExtResource("8_qrk01") +shader_parameter/blurStep = Vector2(1, 0) +shader_parameter/applyBlur = true +shader_parameter/textureAlbedo = SubResource("ViewportTexture_vbioy") + [sub_resource type="FastNoiseLite" id="FastNoiseLite_dor76"] frequency = 0.0035 @@ -55,16 +65,6 @@ shader_parameter/layer3 = ExtResource("4") shader_parameter/noiseTex1 = SubResource("NoiseTexture2D_f6pop") shader_parameter/noiseTex2 = SubResource("NoiseTexture2D_tsmw6") -[sub_resource type="ViewportTexture" id="ViewportTexture_vbioy"] -viewport_path = NodePath("SubViewport") - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_tdrj5"] -resource_local_to_scene = true -shader = ExtResource("8_qrk01") -shader_parameter/blurStep = Vector2(1, 0) -shader_parameter/applyBlur = true -shader_parameter/textureAlbedo = SubResource("ViewportTexture_vbioy") - [node name="MicrobeCamera" type="Camera3D"] process_priority = 100 transform = Transform3D(1, 0, 0, 0, -1.62921e-07, 1, 0, -1, -1.62921e-07, 0, 10, 0) @@ -72,8 +72,8 @@ current = true fov = 90.0 script = ExtResource("3") DefaultCameraHeight = 30.0 -blurPlane = NodePath("BackgroundPlane") -blurColorRect = NodePath("SubViewport2/ColorRect") +blurPlanePath = NodePath("BackgroundPlane") +blurColorRectPath = NodePath("SubViewport2/ColorRect") backgroundPlanePath = NodePath("SubViewport/BackgroundPlane") [node name="AudioListener3D" type="AudioListener3D" parent="."] @@ -85,22 +85,6 @@ cast_shadow = 0 mesh = SubResource("1") material = SubResource("ShaderMaterial_1sr76") -[node name="SubViewport" type="SubViewport" parent="."] -own_world_3d = true -handle_input_locally = false -size = Vector2i(1280, 720) -render_target_update_mode = 4 - -[node name="BackgroundPlane" type="CSGMesh3D" parent="SubViewport"] -transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, -15) -cast_shadow = 0 -mesh = SubResource("1") -material = SubResource("2") - -[node name="Camera3D" type="Camera3D" parent="SubViewport"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 10) -fov = 90.0 - [node name="SubViewport2" type="SubViewport" parent="."] disable_3d = true handle_input_locally = false @@ -120,3 +104,19 @@ offset_right = 1000.0 offset_bottom = 500.0 grow_horizontal = 2 grow_vertical = 2 + +[node name="SubViewport" type="SubViewport" parent="."] +own_world_3d = true +handle_input_locally = false +size = Vector2i(1280, 720) +render_target_update_mode = 4 + +[node name="BackgroundPlane" type="CSGMesh3D" parent="SubViewport"] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, -15) +cast_shadow = 0 +mesh = SubResource("1") +material = SubResource("2") + +[node name="Camera3D" type="Camera3D" parent="SubViewport"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 10) +fov = 90.0 From e087506e880253f94cdef61cbc45701a747dd5d8 Mon Sep 17 00:00:00 2001 From: dligr Date: Sat, 30 Nov 2024 20:33:12 +0300 Subject: [PATCH 12/53] Fix the blur formula (backgrounds should be closer to original colors now) --- shaders/Blur.gdshader | 20 +++++++++----------- shaders/BlurSpatial.gdshader | 20 +++++++++----------- 2 files changed, 18 insertions(+), 22 deletions(-) diff --git a/shaders/Blur.gdshader b/shaders/Blur.gdshader index b203435a76..43bbf7a753 100644 --- a/shaders/Blur.gdshader +++ b/shaders/Blur.gdshader @@ -12,17 +12,15 @@ void fragment() { { vec2 s = blurStep / vec2(textureSize(textureAlbedo, 0)); COLOR.rgb = - 0.057433154f * texture(textureAlbedo, UV - 8.0f * s).rgb + - 0.09469126f * texture(textureAlbedo, UV - 6.4f * s).rgb + - 0.13970186f * texture(textureAlbedo, UV - 4.8f * s).rgb + - 0.18443339f * texture(textureAlbedo, UV - 3.2f * s).rgb + - 0.21788229f * texture(textureAlbedo, UV - 1.6f * s).rgb + - 0.23032942f * texture(textureAlbedo, UV - 0.0f * s).rgb + - 0.21788229f * texture(textureAlbedo, UV + 1.6f * s).rgb + - 0.18443339f * texture(textureAlbedo, UV + 3.2f * s).rgb + - 0.13970186f * texture(textureAlbedo, UV + 4.8f * s).rgb + - 0.09469126f * texture(textureAlbedo, UV + 6.4f * s).rgb + - 0.057433154f * texture(textureAlbedo, UV + 8.0f * s).rgb; + 0.0016858046f * texture(textureAlbedo, UV - 6.4f * s).rgb + + 0.015835322f * texture(textureAlbedo, UV - 4.8f * s).rgb + + 0.07843286f * texture(textureAlbedo, UV - 3.2f * s).rgb + + 0.20484284f * texture(textureAlbedo, UV - 1.6f * s).rgb + + 0.28209478f * texture(textureAlbedo, UV).rgb + + 0.20484288f * texture(textureAlbedo, UV + 1.6f * s).rgb + + 0.07843288f * texture(textureAlbedo, UV + 3.2f * s).rgb + + 0.01583533f * texture(textureAlbedo, UV + 4.8f * s).rgb + + 0.0016858061f * texture(textureAlbedo, UV + 6.4f * s).rgb; } else { diff --git a/shaders/BlurSpatial.gdshader b/shaders/BlurSpatial.gdshader index 0ef4215089..6bc4f7e9fe 100644 --- a/shaders/BlurSpatial.gdshader +++ b/shaders/BlurSpatial.gdshader @@ -15,17 +15,15 @@ void fragment() { // Use SCREEN_UV instead of UV, because otherwise the textureAlbedo is stretched // across the plane and only a small part of it is visible on the screen ALBEDO = - 0.057433154f * texture(textureAlbedo, SCREEN_UV - 8.0f * s).rgb + - 0.09469126f * texture(textureAlbedo, SCREEN_UV - 6.4f * s).rgb + - 0.13970186f * texture(textureAlbedo, SCREEN_UV - 4.8f * s).rgb + - 0.18443339f * texture(textureAlbedo, SCREEN_UV - 3.2f * s).rgb + - 0.21788229f * texture(textureAlbedo, SCREEN_UV - 1.6f * s).rgb + - 0.23032942f * texture(textureAlbedo, SCREEN_UV - 0.0f * s).rgb + - 0.21788229f * texture(textureAlbedo, SCREEN_UV + 1.6f * s).rgb + - 0.18443339f * texture(textureAlbedo, SCREEN_UV + 3.2f * s).rgb + - 0.13970186f * texture(textureAlbedo, SCREEN_UV + 4.8f * s).rgb + - 0.09469126f * texture(textureAlbedo, SCREEN_UV + 6.4f * s).rgb + - 0.057433154f * texture(textureAlbedo, SCREEN_UV + 8.0f * s).rgb; + 0.0016858046f * texture(textureAlbedo, SCREEN_UV - 6.4f * s).rgb + + 0.015835322f * texture(textureAlbedo, SCREEN_UV - 4.8f * s).rgb + + 0.07843286f * texture(textureAlbedo, SCREEN_UV - 3.2f * s).rgb + + 0.20484284f * texture(textureAlbedo, SCREEN_UV - 1.6f * s).rgb + + 0.28209478f * texture(textureAlbedo, SCREEN_UV).rgb + + 0.20484288f * texture(textureAlbedo, SCREEN_UV + 1.6f * s).rgb + + 0.07843288f * texture(textureAlbedo, SCREEN_UV + 3.2f * s).rgb + + 0.01583533f * texture(textureAlbedo, SCREEN_UV + 4.8f * s).rgb + + 0.0016858061f * texture(textureAlbedo, SCREEN_UV + 6.4f * s).rgb; } else { From d7bf93644399835f2aac791edbace9fbec9e13fc Mon Sep 17 00:00:00 2001 From: dligr Date: Sat, 30 Nov 2024 20:35:28 +0300 Subject: [PATCH 13/53] Fix a nullable notation issue --- src/microbe_stage/MicrobeCamera.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/microbe_stage/MicrobeCamera.cs b/src/microbe_stage/MicrobeCamera.cs index 9f2979ebb1..01e6b14dde 100644 --- a/src/microbe_stage/MicrobeCamera.cs +++ b/src/microbe_stage/MicrobeCamera.cs @@ -69,7 +69,7 @@ public partial class MicrobeCamera : Camera3D, IGodotEarlyNodeResolve, ISaveLoad private readonly StringName distortionStrengthParameter = new("distortionFactor"); [Export] - private NodePath blurPlanePath = null!; + private NodePath? blurPlanePath; [Export] private NodePath blurColorRectPath = null!; From 8d806f083287d0cb849d4f3a87420a4a69d042ce Mon Sep 17 00:00:00 2001 From: dligr Date: Wed, 4 Dec 2024 16:41:57 +0300 Subject: [PATCH 14/53] Split all background logic into its own class (the subviewport chain still aplies regardless of blur) --- src/microbe_stage/BackgroundPlane.cs | 207 +++++++++++++++++++++++++ src/microbe_stage/BackgroundPlane.tscn | 112 +++++++++++++ src/microbe_stage/MicrobeCamera.cs | 203 ++++-------------------- src/microbe_stage/MicrobeCamera.tscn | 24 +-- 4 files changed, 365 insertions(+), 181 deletions(-) create mode 100644 src/microbe_stage/BackgroundPlane.cs create mode 100644 src/microbe_stage/BackgroundPlane.tscn diff --git a/src/microbe_stage/BackgroundPlane.cs b/src/microbe_stage/BackgroundPlane.cs new file mode 100644 index 0000000000..0ebca659c9 --- /dev/null +++ b/src/microbe_stage/BackgroundPlane.cs @@ -0,0 +1,207 @@ +using System; +using Godot; + +/// +/// Manages the microbe background plane, optionally applies blur. +/// +public partial class BackgroundPlane : CsgMesh3D, IGodotEarlyNodeResolve +{ + private readonly StringName applyBlurParameter = new("applyBlur"); + private readonly StringName worldPositionParameter = new("worldPos"); + private readonly StringName lightLevelParameter = new("lightLevel"); + private readonly StringName distortionStrengthParameter = new("distortionFactor"); + + [Export] + private NodePath? blurPlanePath; + + [Export] + private NodePath blurColorRectPath = null!; + + [Export] + private NodePath backgroundPlanePath = null!; + +#pragma warning disable CA2213 + + /// + /// Background plane that is moved farther away from the camera when zooming out + /// + private Node3D backgroundPlane = null!; + + private GpuParticles3D? backgroundParticles; + + private ShaderMaterial? spatialBlurMaterial; + + private ShaderMaterial? canvasBlurMaterial; + + private ShaderMaterial? currentBackgroundMaterial; +#pragma warning restore CA2213 + + public bool NodeReferencesResolved { get; private set; } + + public float PlaneOffset + { + get + { + return backgroundPlane.Position.Z + 15; + } + set + { + backgroundPlane.Position = new Vector3(0, 0, -15 + value); + } + } + + public override void _Ready() + { + var material = GetNode(backgroundPlanePath).Material; + var planeBlurMaterial = GetNode(blurPlanePath).Material; + var colorRectBlurMaterial = GetNode(blurColorRectPath).Material; + + if (material == null || planeBlurMaterial == null || colorRectBlurMaterial == null) + { + GD.PrintErr("MicrobeCamera didn't find material to update"); + return; + } + + currentBackgroundMaterial = (ShaderMaterial)material; + spatialBlurMaterial = (ShaderMaterial)planeBlurMaterial; + canvasBlurMaterial = (ShaderMaterial)colorRectBlurMaterial; + + ResolveNodeReferences(); + ApplyDistortionEffect(); + ApplyBlurEffect(); + } + + public override void _EnterTree() + { + base._EnterTree(); + + Settings.Instance.DisplayBackgroundParticles.OnChanged += OnDisplayBackgroundParticlesChanged; + Settings.Instance.MicrobeDistortionStrength.OnChanged += OnBackgroundDistortionChanged; + + ApplyDistortionEffect(); + ApplyBlurEffect(); + } + + public override void _ExitTree() + { + base._ExitTree(); + + Settings.Instance.DisplayBackgroundParticles.OnChanged -= OnDisplayBackgroundParticlesChanged; + Settings.Instance.MicrobeDistortionStrength.OnChanged -= OnBackgroundDistortionChanged; + } + + public void ResolveNodeReferences() + { + if (NodeReferencesResolved) + return; + + NodeReferencesResolved = true; + + if (HasNode(backgroundPlanePath)) + backgroundPlane = GetNode(backgroundPlanePath); + } + + /// + /// Set the used background images and particles + /// + public void SetBackground(Background background) + { + // TODO: skip duplicate background changes + + if (currentBackgroundMaterial == null) + throw new InvalidOperationException("Camera not initialized yet"); + + for (int i = 0; i < 4; ++i) + { + // TODO: switch this loop away to reuse StringName instances if this causes significant allocations + currentBackgroundMaterial.SetShaderParameter($"layer{i:n0}", GD.Load(background.Textures[i])); + } + + backgroundParticles?.DetachAndQueueFree(); + + backgroundParticles = background.ParticleEffectScene.Instantiate(); + backgroundParticles.Rotation = Rotation; + backgroundParticles.LocalCoords = false; + + AddChild(backgroundParticles); + + OnDisplayBackgroundParticlesChanged(Settings.Instance.DisplayBackgroundParticles); + } + + public void SetWorldPosition(Vector2 position) + { + currentBackgroundMaterial?.SetShaderParameter(worldPositionParameter, position); + } + + public void SetVisibility(bool visible) + { + Visible = visible; + + if (backgroundParticles != null) + OnDisplayBackgroundParticlesChanged(Settings.Instance.DisplayBackgroundParticles); + } + + public void UpdateLightLevel(float lightLevel) + { + currentBackgroundMaterial?.SetShaderParameter(lightLevelParameter, lightLevel); + } + + protected override void Dispose(bool disposing) + { + if (disposing) + { + applyBlurParameter.Dispose(); + lightLevelParameter.Dispose(); + distortionStrengthParameter.Dispose(); + worldPositionParameter.Dispose(); + + if (blurPlanePath != null) + { + blurPlanePath.Dispose(); + blurColorRectPath.Dispose(); + backgroundPlanePath.Dispose(); + } + } + + base.Dispose(disposing); + } + + private void OnDisplayBackgroundParticlesChanged(bool displayed) + { + if (backgroundParticles == null) + { + GD.PrintErr("MicrobeCamera didn't find background particles on settings change"); + return; + } + + backgroundParticles.Emitting = displayed; + + if (displayed) + { + backgroundParticles.Show(); + } + else + { + backgroundParticles.Hide(); + } + } + + private void OnBackgroundDistortionChanged(float value) + { + ApplyDistortionEffect(); + ApplyBlurEffect(); + } + + private void ApplyDistortionEffect() + { + currentBackgroundMaterial?.SetShaderParameter(distortionStrengthParameter, + Settings.Instance.MicrobeDistortionStrength.Value); + } + + private void ApplyBlurEffect() + { + bool enabled = Settings.Instance.MicrobeDistortionStrength.Value > 0.0f; + canvasBlurMaterial?.SetShaderParameter(applyBlurParameter, enabled); + spatialBlurMaterial?.SetShaderParameter(applyBlurParameter, enabled); + } +} diff --git a/src/microbe_stage/BackgroundPlane.tscn b/src/microbe_stage/BackgroundPlane.tscn new file mode 100644 index 0000000000..46debe383c --- /dev/null +++ b/src/microbe_stage/BackgroundPlane.tscn @@ -0,0 +1,112 @@ +[gd_scene load_steps=19 format=3 uid="uid://dyko4f6a4agwn"] + +[ext_resource type="Shader" path="res://shaders/BlurSpatial.gdshader" id="1_iyjvf"] +[ext_resource type="Script" path="res://src/microbe_stage/BackgroundPlane.cs" id="2_eprmh"] +[ext_resource type="Shader" path="res://shaders/Blur.gdshader" id="3_s3lms"] +[ext_resource type="Shader" path="res://shaders/MicrobeBackground.gdshader" id="4_5y6kw"] +[ext_resource type="Texture2D" uid="uid://c3i2n4piw6ln0" path="res://assets/textures/background/Thrive_vent0.png" id="5_waqnb"] +[ext_resource type="Texture2D" uid="uid://d3msr0kfa34w2" path="res://assets/textures/background/Thrive_vent1.png" id="6_qx2cp"] +[ext_resource type="Texture2D" uid="uid://bddntbgykd7uq" path="res://assets/textures/background/Thrive_vent2.png" id="7_g3bc7"] +[ext_resource type="Texture2D" uid="uid://bsvls5moner1g" path="res://assets/textures/background/Thrive_vent3.png" id="8_yxu5g"] + +[sub_resource type="PlaneMesh" id="1"] +size = Vector2(800, 400) + +[sub_resource type="ViewportTexture" id="ViewportTexture_duokn"] +viewport_path = NodePath("SubViewport2") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_1sr76"] +resource_local_to_scene = true +render_priority = -100 +shader = ExtResource("1_iyjvf") +shader_parameter/blurStep = Vector2(0, 1) +shader_parameter/applyBlur = true +shader_parameter/textureAlbedo = SubResource("ViewportTexture_duokn") + +[sub_resource type="ViewportTexture" id="ViewportTexture_vbioy"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_tdrj5"] +resource_local_to_scene = true +shader = ExtResource("3_s3lms") +shader_parameter/blurStep = Vector2(1, 0) +shader_parameter/applyBlur = true +shader_parameter/textureAlbedo = SubResource("ViewportTexture_vbioy") + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_dor76"] +frequency = 0.0035 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_f6pop"] +seamless = true +noise = SubResource("FastNoiseLite_dor76") + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_ve355"] +seed = 2 +frequency = 0.0017 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_tsmw6"] +seamless = true +noise = SubResource("FastNoiseLite_ve355") + +[sub_resource type="ShaderMaterial" id="2"] +resource_local_to_scene = true +render_priority = -100 +shader = ExtResource("4_5y6kw") +shader_parameter/lightLevel = 1.0 +shader_parameter/repeats = Vector2(2, 1) +shader_parameter/distortionFactor = 0.0 +shader_parameter/distortionSpeed = 0.0025 +shader_parameter/layerAnimateSpeed = 0.4 +shader_parameter/worldPos = Vector2(0, 0) +shader_parameter/layer0 = ExtResource("5_waqnb") +shader_parameter/layer1 = ExtResource("6_qx2cp") +shader_parameter/layer2 = ExtResource("7_g3bc7") +shader_parameter/layer3 = ExtResource("8_yxu5g") +shader_parameter/noiseTex1 = SubResource("NoiseTexture2D_f6pop") +shader_parameter/noiseTex2 = SubResource("NoiseTexture2D_tsmw6") + +[node name="BackgroundPlane" type="CSGMesh3D"] +transform = Transform3D(1, 0, 0, 0, -1.62921e-07, -1, 0, 1, -1.62921e-07, 0, 0, -20) +cast_shadow = 0 +mesh = SubResource("1") +material = SubResource("ShaderMaterial_1sr76") +script = ExtResource("2_eprmh") +blurPlanePath = NodePath(".") +blurColorRectPath = NodePath("SubViewport2/ColorRect") +backgroundPlanePath = NodePath("SubViewport/BackgroundPlane") + +[node name="SubViewport2" type="SubViewport" parent="."] +disable_3d = true +handle_input_locally = false +size = Vector2i(1280, 720) +render_target_update_mode = 4 + +[node name="ColorRect" type="ColorRect" parent="SubViewport2"] +material = SubResource("ShaderMaterial_tdrj5") +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -1000.0 +offset_top = -500.0 +offset_right = 1000.0 +offset_bottom = 500.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="SubViewport" type="SubViewport" parent="."] +own_world_3d = true +handle_input_locally = false +size = Vector2i(1280, 720) +render_target_update_mode = 4 + +[node name="BackgroundPlane" type="CSGMesh3D" parent="SubViewport"] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, -15) +cast_shadow = 0 +mesh = SubResource("1") +material = SubResource("2") + +[node name="Camera3D" type="Camera3D" parent="SubViewport"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 10) +fov = 90.0 diff --git a/src/microbe_stage/MicrobeCamera.cs b/src/microbe_stage/MicrobeCamera.cs index 01e6b14dde..16abd90c6c 100644 --- a/src/microbe_stage/MicrobeCamera.cs +++ b/src/microbe_stage/MicrobeCamera.cs @@ -1,6 +1,6 @@ -using System; -using Godot; +using Godot; using Newtonsoft.Json; +using System; /// /// Camera script for the microbe stage and the cell editor @@ -63,38 +63,6 @@ public partial class MicrobeCamera : Camera3D, IGodotEarlyNodeResolve, ISaveLoad [Export] public float LightLevelInterpolateSpeed = 4; - private readonly StringName applyBlurParameter = new("applyBlur"); - private readonly StringName worldPositionParameter = new("worldPos"); - private readonly StringName lightLevelParameter = new("lightLevel"); - private readonly StringName distortionStrengthParameter = new("distortionFactor"); - - [Export] - private NodePath? blurPlanePath; - - [Export] - private NodePath blurColorRectPath = null!; - - [Export] - private NodePath backgroundPlanePath = null!; - -#pragma warning disable CA2213 - - /// - /// Background plane that is moved farther away from the camera when zooming out - /// - [JsonIgnore] - private Node3D? backgroundPlane; - - [JsonIgnore] - private GpuParticles3D? backgroundParticles; - - private ShaderMaterial? spatialBlurMaterial; - - private ShaderMaterial? canvasBlurMaterial; - - private ShaderMaterial? backgroundMaterial; -#pragma warning restore CA2213 - /// /// Used to manually tween the light level to the target value /// @@ -109,6 +77,11 @@ public partial class MicrobeCamera : Camera3D, IGodotEarlyNodeResolve, ISaveLoad [JsonProperty] private float lightLevel = 1.0f; +#pragma warning disable CA2213 + [JsonIgnore] + private BackgroundPlane backgroundPlane = null!; +#pragma warning restore CA2213 + [Signal] public delegate void OnZoomChangedEventHandler(float zoom); @@ -179,19 +152,7 @@ public Vector3 CursorVisualWorldPos public override void _Ready() { - var material = GetNode(backgroundPlanePath).Material; - var planeBlurMaterial = GetNode(blurPlanePath).Material; - var colorRectBlurMaterial = GetNode(blurColorRectPath).Material; - - if (material == null || planeBlurMaterial == null || colorRectBlurMaterial == null) - { - GD.PrintErr("MicrobeCamera didn't find material to update"); - return; - } - - backgroundMaterial = (ShaderMaterial)material; - spatialBlurMaterial = (ShaderMaterial)planeBlurMaterial; - canvasBlurMaterial = (ShaderMaterial)colorRectBlurMaterial; + backgroundPlane = GetNode("BackgroundPlane"); ResolveNodeReferences(); @@ -199,8 +160,6 @@ public override void _Ready() ResetHeight(); UpdateBackgroundVisibility(); - ApplyDistortionEffect(); - ApplyBlurEffect(); ProcessMode = ProcessModeEnum.Always; } @@ -211,30 +170,18 @@ public void ResolveNodeReferences() return; NodeReferencesResolved = true; - - if (HasNode(backgroundPlanePath)) - backgroundPlane = GetNode(backgroundPlanePath); } public override void _EnterTree() { base._EnterTree(); InputManager.RegisterReceiver(this); - - Settings.Instance.DisplayBackgroundParticles.OnChanged += OnDisplayBackgroundParticlesChanged; - Settings.Instance.MicrobeDistortionStrength.OnChanged += OnBackgroundDistortionChanged; - - ApplyDistortionEffect(); - ApplyBlurEffect(); } public override void _ExitTree() { base._ExitTree(); InputManager.UnregisterReceiver(this); - - Settings.Instance.DisplayBackgroundParticles.OnChanged -= OnDisplayBackgroundParticlesChanged; - Settings.Instance.MicrobeDistortionStrength.OnChanged -= OnBackgroundDistortionChanged; } public override void _Process(double delta) @@ -245,7 +192,7 @@ public override void _Process(double delta) // ReSharper disable once CompareOfFloatsByEqualityOperator if (lastSetLightLevel != lightLevel) { - UpdateLightLevel((float)delta); + backgroundPlane.UpdateLightLevel((float)delta); } if (AutoProcessWhilePaused && PauseManager.Instance.Paused) @@ -253,7 +200,7 @@ public override void _Process(double delta) UpdateCameraPosition(delta, null); } - backgroundMaterial?.SetShaderParameter(worldPositionParameter, new Vector2(Position.X, Position.Z)); + backgroundPlane.SetWorldPosition(new Vector2(Position.X, Position.Z)); } public void UpdateCameraPosition(double delta, Vector3? followedObject) @@ -293,9 +240,7 @@ public void UpdateCameraPosition(double delta, Vector3? followedObject) if (backgroundPlane != null) { - var target = new Vector3(0, 0, -15 - CameraHeight); - - backgroundPlane.Position = backgroundPlane.Position.Lerp(target, InterpolateZoomSpeed); + backgroundPlane.PlaneOffset = float.Lerp(backgroundPlane.PlaneOffset, -CameraHeight, InterpolateZoomSpeed); } cursorDirty = true; @@ -316,7 +261,7 @@ public void ResetHeight() public void SetCustomCurrentStatus(bool current) { Current = current; - UpdateBackgroundVisibility(); + backgroundPlane.SetVisibility(Current); // TODO: set listener node current status } @@ -354,70 +299,46 @@ public bool Zoom(double delta, float value) /// public void SetBackground(Background background) { - // TODO: skip duplicate background changes - - if (backgroundMaterial == null) - throw new InvalidOperationException("Camera not initialized yet"); - - for (int i = 0; i < 4; ++i) - { - // TODO: switch this loop away to reuse StringName instances if this causes significant allocations - backgroundMaterial.SetShaderParameter($"layer{i:n0}", GD.Load(background.Textures[i])); - } - - backgroundParticles?.DetachAndQueueFree(); - - backgroundParticles = background.ParticleEffectScene.Instantiate(); - backgroundParticles.Rotation = Rotation; - backgroundParticles.LocalCoords = false; - - AddChild(backgroundParticles); - - OnDisplayBackgroundParticlesChanged(Settings.Instance.DisplayBackgroundParticles); + backgroundPlane.SetBackground(background); } protected override void Dispose(bool disposing) { if (disposing) { - applyBlurParameter.Dispose(); - lightLevelParameter.Dispose(); - distortionStrengthParameter.Dispose(); - worldPositionParameter.Dispose(); - - if (blurPlanePath != null) - { - blurPlanePath.Dispose(); - blurColorRectPath.Dispose(); - backgroundPlanePath.Dispose(); - } + // Nothing to dispose } base.Dispose(disposing); } - private void OnDisplayBackgroundParticlesChanged(bool displayed) + private void UpdateBackgroundVisibility() { - if (backgroundParticles == null) - { - GD.PrintErr("MicrobeCamera didn't find background particles on settings change"); - return; - } - - // If we are not current camera, we don't want to display the background particles - if (!Current) - displayed = false; + backgroundPlane.SetVisibility(Current); + } - backgroundParticles.Emitting = displayed; + private void UpdateLightLevel(float delta) + { + if (lastSetLightLevel < lightLevel) + { + lastSetLightLevel += LightLevelInterpolateSpeed * delta; - if (displayed) + if (lastSetLightLevel > lightLevel) + lastSetLightLevel = lightLevel; + } + else if (lastSetLightLevel > lightLevel) { - backgroundParticles.Show(); + lastSetLightLevel -= LightLevelInterpolateSpeed * delta; + + if (lastSetLightLevel < lightLevel) + lastSetLightLevel = lightLevel; } else { - backgroundParticles.Hide(); + lastSetLightLevel = lightLevel; } + + backgroundPlane.UpdateLightLevel(lastSetLightLevel); } private void UpdateCursorWorldPos() @@ -482,62 +403,4 @@ private Vector2 ApplyScreenEffects(Vector2 mousePos, Vector2 viewportSize) return mousePos; } - - private void UpdateBackgroundVisibility() - { - if (backgroundPlane != null) - backgroundPlane.Visible = Current; - - if (backgroundParticles != null) - OnDisplayBackgroundParticlesChanged(Settings.Instance.DisplayBackgroundParticles); - } - - private void UpdateLightLevel(float delta) - { - if (backgroundMaterial == null) - { - GD.PrintErr($"{nameof(UpdateLightLevel)} called too early, material not ready"); - return; - } - - if (lastSetLightLevel < lightLevel) - { - lastSetLightLevel += LightLevelInterpolateSpeed * delta; - - if (lastSetLightLevel > lightLevel) - lastSetLightLevel = lightLevel; - } - else if (lastSetLightLevel > lightLevel) - { - lastSetLightLevel -= LightLevelInterpolateSpeed * delta; - - if (lastSetLightLevel < lightLevel) - lastSetLightLevel = lightLevel; - } - else - { - lastSetLightLevel = lightLevel; - } - - backgroundMaterial.SetShaderParameter(lightLevelParameter, lastSetLightLevel); - } - - private void OnBackgroundDistortionChanged(float value) - { - ApplyDistortionEffect(); - ApplyBlurEffect(); - } - - private void ApplyDistortionEffect() - { - backgroundMaterial?.SetShaderParameter(distortionStrengthParameter, - Settings.Instance.MicrobeDistortionStrength.Value); - } - - private void ApplyBlurEffect() - { - bool enabled = Settings.Instance.MicrobeDistortionStrength.Value > 0.0f; - canvasBlurMaterial?.SetShaderParameter(applyBlurParameter, enabled); - spatialBlurMaterial?.SetShaderParameter(applyBlurParameter, enabled); - } } diff --git a/src/microbe_stage/MicrobeCamera.tscn b/src/microbe_stage/MicrobeCamera.tscn index b99870fd70..f338850990 100644 --- a/src/microbe_stage/MicrobeCamera.tscn +++ b/src/microbe_stage/MicrobeCamera.tscn @@ -1,9 +1,10 @@ -[gd_scene load_steps=19 format=3 uid="uid://bako5jivv1dji"] +[gd_scene load_steps=20 format=3 uid="uid://bako5jivv1dji"] [ext_resource type="Texture2D" uid="uid://d3msr0kfa34w2" path="res://assets/textures/background/Thrive_vent1.png" id="1"] [ext_resource type="Texture2D" uid="uid://bddntbgykd7uq" path="res://assets/textures/background/Thrive_vent2.png" id="2"] [ext_resource type="Shader" path="res://shaders/BlurSpatial.gdshader" id="2_70a3p"] [ext_resource type="Script" path="res://src/microbe_stage/MicrobeCamera.cs" id="3"] +[ext_resource type="Script" path="res://src/microbe_stage/BackgroundPlane.cs" id="3_wwcfn"] [ext_resource type="Texture2D" uid="uid://bsvls5moner1g" path="res://assets/textures/background/Thrive_vent3.png" id="4"] [ext_resource type="Shader" path="res://shaders/MicrobeBackground.gdshader" id="5"] [ext_resource type="Texture2D" uid="uid://c3i2n4piw6ln0" path="res://assets/textures/background/Thrive_vent0.png" id="6"] @@ -13,7 +14,7 @@ size = Vector2(800, 400) [sub_resource type="ViewportTexture" id="ViewportTexture_duokn"] -viewport_path = NodePath("SubViewport2") +viewport_path = NodePath("BackgroundPlane/SubViewport2") [sub_resource type="ShaderMaterial" id="ShaderMaterial_1sr76"] resource_local_to_scene = true @@ -24,7 +25,7 @@ shader_parameter/applyBlur = true shader_parameter/textureAlbedo = SubResource("ViewportTexture_duokn") [sub_resource type="ViewportTexture" id="ViewportTexture_vbioy"] -viewport_path = NodePath("SubViewport") +viewport_path = NodePath("BackgroundPlane/SubViewport") [sub_resource type="ShaderMaterial" id="ShaderMaterial_tdrj5"] resource_local_to_scene = true @@ -72,9 +73,6 @@ current = true fov = 90.0 script = ExtResource("3") DefaultCameraHeight = 30.0 -blurPlanePath = NodePath("BackgroundPlane") -blurColorRectPath = NodePath("SubViewport2/ColorRect") -backgroundPlanePath = NodePath("SubViewport/BackgroundPlane") [node name="AudioListener3D" type="AudioListener3D" parent="."] current = true @@ -84,14 +82,18 @@ transform = Transform3D(1, 0, 0, 0, -1.62921e-07, -1, 0, 1, -1.62921e-07, 0, 0, cast_shadow = 0 mesh = SubResource("1") material = SubResource("ShaderMaterial_1sr76") +script = ExtResource("3_wwcfn") +blurPlanePath = NodePath(".") +blurColorRectPath = NodePath("SubViewport2/ColorRect") +backgroundPlanePath = NodePath("SubViewport/BackgroundPlane") -[node name="SubViewport2" type="SubViewport" parent="."] +[node name="SubViewport2" type="SubViewport" parent="BackgroundPlane"] disable_3d = true handle_input_locally = false size = Vector2i(1280, 720) render_target_update_mode = 4 -[node name="ColorRect" type="ColorRect" parent="SubViewport2"] +[node name="ColorRect" type="ColorRect" parent="BackgroundPlane/SubViewport2"] material = SubResource("ShaderMaterial_tdrj5") anchors_preset = 8 anchor_left = 0.5 @@ -105,18 +107,18 @@ offset_bottom = 500.0 grow_horizontal = 2 grow_vertical = 2 -[node name="SubViewport" type="SubViewport" parent="."] +[node name="SubViewport" type="SubViewport" parent="BackgroundPlane"] own_world_3d = true handle_input_locally = false size = Vector2i(1280, 720) render_target_update_mode = 4 -[node name="BackgroundPlane" type="CSGMesh3D" parent="SubViewport"] +[node name="BackgroundPlane" type="CSGMesh3D" parent="BackgroundPlane/SubViewport"] transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, -15) cast_shadow = 0 mesh = SubResource("1") material = SubResource("2") -[node name="Camera3D" type="Camera3D" parent="SubViewport"] +[node name="Camera3D" type="Camera3D" parent="BackgroundPlane/SubViewport"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 10) fov = 90.0 From 32a1d9ef42a8786137d461de4b0ab86b4fd01093 Mon Sep 17 00:00:00 2001 From: dligr Date: Wed, 4 Dec 2024 20:29:44 +0300 Subject: [PATCH 15/53] Disable the subviewport chain when blur is disabled Also add a temporarily unimplemented blur amount option --- assets/textures/blank.png.import | 13 +-- shaders/Blur.gdshader | 34 ++++---- shaders/BlurSpatial.gdshader | 35 ++++---- src/engine/Settings.cs | 7 ++ src/microbe_stage/BackgroundPlane.cs | 76 +++++++++++++---- src/microbe_stage/BackgroundPlane.tscn | 22 +++-- src/microbe_stage/MicrobeCamera.cs | 4 +- src/microbe_stage/MicrobeCamera.tscn | 112 ++----------------------- 8 files changed, 126 insertions(+), 177 deletions(-) diff --git a/assets/textures/blank.png.import b/assets/textures/blank.png.import index ffe1acf270..693a793135 100644 --- a/assets/textures/blank.png.import +++ b/assets/textures/blank.png.import @@ -3,25 +3,26 @@ importer="texture" type="CompressedTexture2D" uid="uid://dtvbg17mj0i35" -path="res://.godot/imported/blank.png-f13a416cdc078f764cbb126f2ea3b220.ctex" +path.s3tc="res://.godot/imported/blank.png-f13a416cdc078f764cbb126f2ea3b220.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://assets/textures/blank.png" -dest_files=["res://.godot/imported/blank.png-f13a416cdc078f764cbb126f2ea3b220.ctex"] +dest_files=["res://.godot/imported/blank.png-f13a416cdc078f764cbb126f2ea3b220.s3tc.ctex"] [params] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/hdr_compression=1 compress/normal_map=0 compress/channel_pack=0 -mipmaps/generate=false +mipmaps/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,4 +32,4 @@ process/normal_map_invert_y=false process/hdr_as_srgb=false process/hdr_clamp_exposure=false process/size_limit=0 -detect_3d/compress_to=1 +detect_3d/compress_to=0 diff --git a/shaders/Blur.gdshader b/shaders/Blur.gdshader index 43bbf7a753..53998934a9 100644 --- a/shaders/Blur.gdshader +++ b/shaders/Blur.gdshader @@ -5,27 +5,21 @@ uniform sampler2D textureAlbedo : source_color, filter_linear_mipmap, repeat_ena uniform vec2 blurStep = vec2(1.0f, 0.0f); -uniform bool applyBlur = true; +uniform float blurAmount = 1.0f; void fragment() { - if (applyBlur) - { - vec2 s = blurStep / vec2(textureSize(textureAlbedo, 0)); - COLOR.rgb = - 0.0016858046f * texture(textureAlbedo, UV - 6.4f * s).rgb + - 0.015835322f * texture(textureAlbedo, UV - 4.8f * s).rgb + - 0.07843286f * texture(textureAlbedo, UV - 3.2f * s).rgb + - 0.20484284f * texture(textureAlbedo, UV - 1.6f * s).rgb + - 0.28209478f * texture(textureAlbedo, UV).rgb + - 0.20484288f * texture(textureAlbedo, UV + 1.6f * s).rgb + - 0.07843288f * texture(textureAlbedo, UV + 3.2f * s).rgb + - 0.01583533f * texture(textureAlbedo, UV + 4.8f * s).rgb + - 0.0016858061f * texture(textureAlbedo, UV + 6.4f * s).rgb; - } - else - { - COLOR.rgb = texture(textureAlbedo, UV).rgb; - } - + vec2 s = blurAmount * blurStep / vec2(textureSize(textureAlbedo, 0)); + COLOR.rgb = + 0.0016858046f * texture(textureAlbedo, UV - 6.4f * s).rgb + + 0.015835322f * texture(textureAlbedo, UV - 4.8f * s).rgb + + 0.07843286f * texture(textureAlbedo, UV - 3.2f * s).rgb + + 0.20484284f * texture(textureAlbedo, UV - 1.6f * s).rgb + + 0.28209478f * texture(textureAlbedo, UV).rgb + + 0.20484288f * texture(textureAlbedo, UV + 1.6f * s).rgb + + 0.07843288f * texture(textureAlbedo, UV + 3.2f * s).rgb + + 0.01583533f * texture(textureAlbedo, UV + 4.8f * s).rgb + + 0.0016858061f * texture(textureAlbedo, UV + 6.4f * s).rgb; + + COLOR.a = 1.0f; } \ No newline at end of file diff --git a/shaders/BlurSpatial.gdshader b/shaders/BlurSpatial.gdshader index 6bc4f7e9fe..ba73b385e4 100644 --- a/shaders/BlurSpatial.gdshader +++ b/shaders/BlurSpatial.gdshader @@ -5,28 +5,21 @@ uniform sampler2D textureAlbedo : source_color, filter_linear_mipmap, repeat_ena uniform vec2 blurStep = vec2(1.0f, 0.0f); -uniform bool applyBlur = true; +uniform float blurAmount = 1.0f; void fragment() { - if (applyBlur) - { - vec2 s = blurStep / vec2(textureSize(textureAlbedo, 0)); + vec2 s = blurAmount * blurStep / vec2(textureSize(textureAlbedo, 0)); - // Use SCREEN_UV instead of UV, because otherwise the textureAlbedo is stretched - // across the plane and only a small part of it is visible on the screen - ALBEDO = - 0.0016858046f * texture(textureAlbedo, SCREEN_UV - 6.4f * s).rgb + - 0.015835322f * texture(textureAlbedo, SCREEN_UV - 4.8f * s).rgb + - 0.07843286f * texture(textureAlbedo, SCREEN_UV - 3.2f * s).rgb + - 0.20484284f * texture(textureAlbedo, SCREEN_UV - 1.6f * s).rgb + - 0.28209478f * texture(textureAlbedo, SCREEN_UV).rgb + - 0.20484288f * texture(textureAlbedo, SCREEN_UV + 1.6f * s).rgb + - 0.07843288f * texture(textureAlbedo, SCREEN_UV + 3.2f * s).rgb + - 0.01583533f * texture(textureAlbedo, SCREEN_UV + 4.8f * s).rgb + - 0.0016858061f * texture(textureAlbedo, SCREEN_UV + 6.4f * s).rgb; - } - else - { - ALBEDO = texture(textureAlbedo, SCREEN_UV).rgb; - } + // Use SCREEN_UV instead of UV, because otherwise the textureAlbedo is stretched + // across the plane and only a small part of it is visible on the screen + ALBEDO = + 0.0016858046f * texture(textureAlbedo, SCREEN_UV - 6.4f * s).rgb + + 0.015835322f * texture(textureAlbedo, SCREEN_UV - 4.8f * s).rgb + + 0.07843286f * texture(textureAlbedo, SCREEN_UV - 3.2f * s).rgb + + 0.20484284f * texture(textureAlbedo, SCREEN_UV - 1.6f * s).rgb + + 0.28209478f * texture(textureAlbedo, SCREEN_UV).rgb + + 0.20484288f * texture(textureAlbedo, SCREEN_UV + 1.6f * s).rgb + + 0.07843288f * texture(textureAlbedo, SCREEN_UV + 3.2f * s).rgb + + 0.01583533f * texture(textureAlbedo, SCREEN_UV + 4.8f * s).rgb + + 0.0016858061f * texture(textureAlbedo, SCREEN_UV + 6.4f * s).rgb; } diff --git a/src/engine/Settings.cs b/src/engine/Settings.cs index f25bd68046..416947ea61 100644 --- a/src/engine/Settings.cs +++ b/src/engine/Settings.cs @@ -113,6 +113,13 @@ public enum StrainBarVisibility [JsonProperty] public SettingValue MicrobeDistortionStrength { get; private set; } = new(0.6f); + /// + /// The amount of blur applied to microbe backgrounds when distortion is on. + /// enabled. + /// + [JsonProperty] + public SettingValue MicrobeBackgroundBlurStrength { get; private set; } = new(1.5f); + /// /// Type of controller button prompts to show /// diff --git a/src/microbe_stage/BackgroundPlane.cs b/src/microbe_stage/BackgroundPlane.cs index 0ebca659c9..3506298028 100644 --- a/src/microbe_stage/BackgroundPlane.cs +++ b/src/microbe_stage/BackgroundPlane.cs @@ -4,9 +4,10 @@ /// /// Manages the microbe background plane, optionally applies blur. /// -public partial class BackgroundPlane : CsgMesh3D, IGodotEarlyNodeResolve +public partial class BackgroundPlane : Node3D, IGodotEarlyNodeResolve { - private readonly StringName applyBlurParameter = new("applyBlur"); + private readonly StringName blurAmountParameter = new("blurAmount"); + private readonly StringName textureAlbedoParameter = new("textureAlbedo"); private readonly StringName worldPositionParameter = new("worldPos"); private readonly StringName lightLevelParameter = new("lightLevel"); private readonly StringName distortionStrengthParameter = new("distortionFactor"); @@ -20,6 +21,9 @@ public partial class BackgroundPlane : CsgMesh3D, IGodotEarlyNodeResolve [Export] private NodePath backgroundPlanePath = null!; + [Export] + private Texture2D blankTexture = null!; + #pragma warning disable CA2213 /// @@ -27,13 +31,19 @@ public partial class BackgroundPlane : CsgMesh3D, IGodotEarlyNodeResolve /// private Node3D backgroundPlane = null!; + private Node3D blurPlane = null!; + private GpuParticles3D? backgroundParticles; - private ShaderMaterial? spatialBlurMaterial; + private ShaderMaterial spatialBlurMaterial = null!; - private ShaderMaterial? canvasBlurMaterial; + private ShaderMaterial canvasBlurMaterial = null!; - private ShaderMaterial? currentBackgroundMaterial; + private ShaderMaterial currentBackgroundMaterial = null!; + + private SubViewport subViewport1 = null!; + + private SubViewport subViewport2 = null!; #pragma warning restore CA2213 public bool NodeReferencesResolved { get; private set; } @@ -99,6 +109,15 @@ public void ResolveNodeReferences() if (HasNode(backgroundPlanePath)) backgroundPlane = GetNode(backgroundPlanePath); + + if (HasNode(blurPlanePath)) + blurPlane = GetNode(blurPlanePath); + + if (HasNode("SubViewport")) + subViewport1 = GetNode("SubViewport"); + + if (HasNode("SubViewport2")) + subViewport2 = GetNode("SubViewport2"); } /// @@ -108,9 +127,6 @@ public void SetBackground(Background background) { // TODO: skip duplicate background changes - if (currentBackgroundMaterial == null) - throw new InvalidOperationException("Camera not initialized yet"); - for (int i = 0; i < 4; ++i) { // TODO: switch this loop away to reuse StringName instances if this causes significant allocations @@ -130,7 +146,7 @@ public void SetBackground(Background background) public void SetWorldPosition(Vector2 position) { - currentBackgroundMaterial?.SetShaderParameter(worldPositionParameter, position); + currentBackgroundMaterial.SetShaderParameter(worldPositionParameter, position); } public void SetVisibility(bool visible) @@ -143,18 +159,20 @@ public void SetVisibility(bool visible) public void UpdateLightLevel(float lightLevel) { - currentBackgroundMaterial?.SetShaderParameter(lightLevelParameter, lightLevel); + currentBackgroundMaterial.SetShaderParameter(lightLevelParameter, lightLevel); } protected override void Dispose(bool disposing) { if (disposing) { - applyBlurParameter.Dispose(); + textureAlbedoParameter.Dispose(); + blurAmountParameter.Dispose(); lightLevelParameter.Dispose(); distortionStrengthParameter.Dispose(); worldPositionParameter.Dispose(); - + blankTexture.Dispose(); + if (blurPlanePath != null) { blurPlanePath.Dispose(); @@ -194,14 +212,40 @@ private void OnBackgroundDistortionChanged(float value) private void ApplyDistortionEffect() { - currentBackgroundMaterial?.SetShaderParameter(distortionStrengthParameter, + if (currentBackgroundMaterial == null) + return; + + currentBackgroundMaterial.SetShaderParameter(distortionStrengthParameter, Settings.Instance.MicrobeDistortionStrength.Value); } private void ApplyBlurEffect() { - bool enabled = Settings.Instance.MicrobeDistortionStrength.Value > 0.0f; - canvasBlurMaterial?.SetShaderParameter(applyBlurParameter, enabled); - spatialBlurMaterial?.SetShaderParameter(applyBlurParameter, enabled); + float blurAmount = Settings.Instance.MicrobeBackgroundBlurStrength; + bool enabled = Settings.Instance.MicrobeDistortionStrength.Value > 0 && blurAmount > 0; + + if (enabled) + { + blurPlane.Visible = true; + canvasBlurMaterial.SetShaderParameter(blurAmountParameter, blurAmount); + spatialBlurMaterial.SetShaderParameter(blurAmountParameter, blurAmount); + + RemoveChild(backgroundPlane); + subViewport1.AddChild(backgroundPlane); + + canvasBlurMaterial.SetShaderParameter(textureAlbedoParameter, subViewport1.GetTexture()); + spatialBlurMaterial.SetShaderParameter(textureAlbedoParameter, subViewport2.GetTexture()); + } + else + { + blurPlane.Visible = false; + + subViewport1.RemoveChild(backgroundPlane); + AddChild(backgroundPlane); + + // Remove viewport textures from shaders, so that the viewports aren't rendered + canvasBlurMaterial.SetShaderParameter(textureAlbedoParameter, blankTexture); + spatialBlurMaterial.SetShaderParameter(textureAlbedoParameter, blankTexture); + } } } diff --git a/src/microbe_stage/BackgroundPlane.tscn b/src/microbe_stage/BackgroundPlane.tscn index 46debe383c..56afc015ab 100644 --- a/src/microbe_stage/BackgroundPlane.tscn +++ b/src/microbe_stage/BackgroundPlane.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=19 format=3 uid="uid://dyko4f6a4agwn"] +[gd_scene load_steps=20 format=3 uid="uid://dyko4f6a4agwn"] [ext_resource type="Shader" path="res://shaders/BlurSpatial.gdshader" id="1_iyjvf"] [ext_resource type="Script" path="res://src/microbe_stage/BackgroundPlane.cs" id="2_eprmh"] +[ext_resource type="Texture2D" uid="uid://dtvbg17mj0i35" path="res://assets/textures/blank.png" id="2_ortq4"] [ext_resource type="Shader" path="res://shaders/Blur.gdshader" id="3_s3lms"] [ext_resource type="Shader" path="res://shaders/MicrobeBackground.gdshader" id="4_5y6kw"] [ext_resource type="Texture2D" uid="uid://c3i2n4piw6ln0" path="res://assets/textures/background/Thrive_vent0.png" id="5_waqnb"] @@ -13,14 +14,14 @@ size = Vector2(800, 400) [sub_resource type="ViewportTexture" id="ViewportTexture_duokn"] -viewport_path = NodePath("SubViewport2") +viewport_path = NodePath("../SubViewport2") [sub_resource type="ShaderMaterial" id="ShaderMaterial_1sr76"] resource_local_to_scene = true render_priority = -100 shader = ExtResource("1_iyjvf") shader_parameter/blurStep = Vector2(0, 1) -shader_parameter/applyBlur = true +shader_parameter/blurAmount = 1.0 shader_parameter/textureAlbedo = SubResource("ViewportTexture_duokn") [sub_resource type="ViewportTexture" id="ViewportTexture_vbioy"] @@ -30,7 +31,7 @@ viewport_path = NodePath("SubViewport") resource_local_to_scene = true shader = ExtResource("3_s3lms") shader_parameter/blurStep = Vector2(1, 0) -shader_parameter/applyBlur = true +shader_parameter/blurAmount = 1.0 shader_parameter/textureAlbedo = SubResource("ViewportTexture_vbioy") [sub_resource type="FastNoiseLite" id="FastNoiseLite_dor76"] @@ -65,15 +66,18 @@ shader_parameter/layer3 = ExtResource("8_yxu5g") shader_parameter/noiseTex1 = SubResource("NoiseTexture2D_f6pop") shader_parameter/noiseTex2 = SubResource("NoiseTexture2D_tsmw6") -[node name="BackgroundPlane" type="CSGMesh3D"] +[node name="Node3D" type="Node3D"] +script = ExtResource("2_eprmh") +blurPlanePath = NodePath("BackgroundPlane") +blurColorRectPath = NodePath("SubViewport2/ColorRect") +backgroundPlanePath = NodePath("SubViewport/BackgroundPlane") +blankTexture = ExtResource("2_ortq4") + +[node name="BackgroundPlane" type="CSGMesh3D" parent="."] transform = Transform3D(1, 0, 0, 0, -1.62921e-07, -1, 0, 1, -1.62921e-07, 0, 0, -20) cast_shadow = 0 mesh = SubResource("1") material = SubResource("ShaderMaterial_1sr76") -script = ExtResource("2_eprmh") -blurPlanePath = NodePath(".") -blurColorRectPath = NodePath("SubViewport2/ColorRect") -backgroundPlanePath = NodePath("SubViewport/BackgroundPlane") [node name="SubViewport2" type="SubViewport" parent="."] disable_3d = true diff --git a/src/microbe_stage/MicrobeCamera.cs b/src/microbe_stage/MicrobeCamera.cs index 16abd90c6c..ac1645a798 100644 --- a/src/microbe_stage/MicrobeCamera.cs +++ b/src/microbe_stage/MicrobeCamera.cs @@ -1,6 +1,6 @@ -using Godot; +using System; +using Godot; using Newtonsoft.Json; -using System; /// /// Camera script for the microbe stage and the cell editor diff --git a/src/microbe_stage/MicrobeCamera.tscn b/src/microbe_stage/MicrobeCamera.tscn index f338850990..03b48181b1 100644 --- a/src/microbe_stage/MicrobeCamera.tscn +++ b/src/microbe_stage/MicrobeCamera.tscn @@ -1,70 +1,19 @@ -[gd_scene load_steps=20 format=3 uid="uid://bako5jivv1dji"] +[gd_scene load_steps=6 format=3 uid="uid://bako5jivv1dji"] -[ext_resource type="Texture2D" uid="uid://d3msr0kfa34w2" path="res://assets/textures/background/Thrive_vent1.png" id="1"] -[ext_resource type="Texture2D" uid="uid://bddntbgykd7uq" path="res://assets/textures/background/Thrive_vent2.png" id="2"] [ext_resource type="Shader" path="res://shaders/BlurSpatial.gdshader" id="2_70a3p"] +[ext_resource type="PackedScene" uid="uid://dyko4f6a4agwn" path="res://src/microbe_stage/BackgroundPlane.tscn" id="2_yrakl"] [ext_resource type="Script" path="res://src/microbe_stage/MicrobeCamera.cs" id="3"] -[ext_resource type="Script" path="res://src/microbe_stage/BackgroundPlane.cs" id="3_wwcfn"] -[ext_resource type="Texture2D" uid="uid://bsvls5moner1g" path="res://assets/textures/background/Thrive_vent3.png" id="4"] -[ext_resource type="Shader" path="res://shaders/MicrobeBackground.gdshader" id="5"] -[ext_resource type="Texture2D" uid="uid://c3i2n4piw6ln0" path="res://assets/textures/background/Thrive_vent0.png" id="6"] -[ext_resource type="Shader" path="res://shaders/Blur.gdshader" id="8_qrk01"] -[sub_resource type="PlaneMesh" id="1"] -size = Vector2(800, 400) +[sub_resource type="ViewportTexture" id="ViewportTexture_ihdi7"] +viewport_path = NodePath("SubViewport2") -[sub_resource type="ViewportTexture" id="ViewportTexture_duokn"] -viewport_path = NodePath("BackgroundPlane/SubViewport2") - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_1sr76"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_a4fno"] resource_local_to_scene = true render_priority = -100 shader = ExtResource("2_70a3p") shader_parameter/blurStep = Vector2(0, 1) -shader_parameter/applyBlur = true -shader_parameter/textureAlbedo = SubResource("ViewportTexture_duokn") - -[sub_resource type="ViewportTexture" id="ViewportTexture_vbioy"] -viewport_path = NodePath("BackgroundPlane/SubViewport") - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_tdrj5"] -resource_local_to_scene = true -shader = ExtResource("8_qrk01") -shader_parameter/blurStep = Vector2(1, 0) -shader_parameter/applyBlur = true -shader_parameter/textureAlbedo = SubResource("ViewportTexture_vbioy") - -[sub_resource type="FastNoiseLite" id="FastNoiseLite_dor76"] -frequency = 0.0035 - -[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_f6pop"] -seamless = true -noise = SubResource("FastNoiseLite_dor76") - -[sub_resource type="FastNoiseLite" id="FastNoiseLite_ve355"] -seed = 2 -frequency = 0.0017 - -[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_tsmw6"] -seamless = true -noise = SubResource("FastNoiseLite_ve355") - -[sub_resource type="ShaderMaterial" id="2"] -resource_local_to_scene = true -render_priority = -100 -shader = ExtResource("5") -shader_parameter/lightLevel = 1.0 -shader_parameter/repeats = Vector2(2, 1) -shader_parameter/distortionFactor = 0.0 -shader_parameter/distortionSpeed = 0.0025 -shader_parameter/layerAnimateSpeed = 0.4 -shader_parameter/worldPos = Vector2(0, 0) -shader_parameter/layer0 = ExtResource("6") -shader_parameter/layer1 = ExtResource("1") -shader_parameter/layer2 = ExtResource("2") -shader_parameter/layer3 = ExtResource("4") -shader_parameter/noiseTex1 = SubResource("NoiseTexture2D_f6pop") -shader_parameter/noiseTex2 = SubResource("NoiseTexture2D_tsmw6") +shader_parameter/blurAmount = 1.0 +shader_parameter/textureAlbedo = SubResource("ViewportTexture_ihdi7") [node name="MicrobeCamera" type="Camera3D"] process_priority = 100 @@ -77,48 +26,5 @@ DefaultCameraHeight = 30.0 [node name="AudioListener3D" type="AudioListener3D" parent="."] current = true -[node name="BackgroundPlane" type="CSGMesh3D" parent="."] -transform = Transform3D(1, 0, 0, 0, -1.62921e-07, -1, 0, 1, -1.62921e-07, 0, 0, -20) -cast_shadow = 0 -mesh = SubResource("1") -material = SubResource("ShaderMaterial_1sr76") -script = ExtResource("3_wwcfn") -blurPlanePath = NodePath(".") -blurColorRectPath = NodePath("SubViewport2/ColorRect") -backgroundPlanePath = NodePath("SubViewport/BackgroundPlane") - -[node name="SubViewport2" type="SubViewport" parent="BackgroundPlane"] -disable_3d = true -handle_input_locally = false -size = Vector2i(1280, 720) -render_target_update_mode = 4 - -[node name="ColorRect" type="ColorRect" parent="BackgroundPlane/SubViewport2"] -material = SubResource("ShaderMaterial_tdrj5") -anchors_preset = 8 -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -offset_left = -1000.0 -offset_top = -500.0 -offset_right = 1000.0 -offset_bottom = 500.0 -grow_horizontal = 2 -grow_vertical = 2 - -[node name="SubViewport" type="SubViewport" parent="BackgroundPlane"] -own_world_3d = true -handle_input_locally = false -size = Vector2i(1280, 720) -render_target_update_mode = 4 - -[node name="BackgroundPlane" type="CSGMesh3D" parent="BackgroundPlane/SubViewport"] -transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, -15) -cast_shadow = 0 -mesh = SubResource("1") -material = SubResource("2") - -[node name="Camera3D" type="Camera3D" parent="BackgroundPlane/SubViewport"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 10) -fov = 90.0 +[node name="BackgroundPlane" parent="." instance=ExtResource("2_yrakl")] +material = SubResource("ShaderMaterial_a4fno") From de46cce26be3f26fa880fc13d7bc8b2ba2727761 Mon Sep 17 00:00:00 2001 From: dligr Date: Wed, 4 Dec 2024 20:59:31 +0300 Subject: [PATCH 16/53] Fix null reference exceptions being thrown, fix some logic --- src/engine/Settings.cs | 2 +- src/microbe_stage/BackgroundPlane.cs | 25 ++++++++++++++++++------- src/microbe_stage/BackgroundPlane.tscn | 16 ++++++++-------- src/microbe_stage/MicrobeCamera.tscn | 15 +-------------- 4 files changed, 28 insertions(+), 30 deletions(-) diff --git a/src/engine/Settings.cs b/src/engine/Settings.cs index 416947ea61..91ccc892fd 100644 --- a/src/engine/Settings.cs +++ b/src/engine/Settings.cs @@ -118,7 +118,7 @@ public enum StrainBarVisibility /// enabled. /// [JsonProperty] - public SettingValue MicrobeBackgroundBlurStrength { get; private set; } = new(1.5f); + public SettingValue MicrobeBackgroundBlurStrength { get; private set; } = new(3.0f); /// /// Type of controller button prompts to show diff --git a/src/microbe_stage/BackgroundPlane.cs b/src/microbe_stage/BackgroundPlane.cs index 3506298028..dd709b98c1 100644 --- a/src/microbe_stage/BackgroundPlane.cs +++ b/src/microbe_stage/BackgroundPlane.cs @@ -77,6 +77,7 @@ public override void _Ready() canvasBlurMaterial = (ShaderMaterial)colorRectBlurMaterial; ResolveNodeReferences(); + ApplyDistortionEffect(); ApplyBlurEffect(); } @@ -172,7 +173,7 @@ protected override void Dispose(bool disposing) distortionStrengthParameter.Dispose(); worldPositionParameter.Dispose(); blankTexture.Dispose(); - + if (blurPlanePath != null) { blurPlanePath.Dispose(); @@ -224,28 +225,38 @@ private void ApplyBlurEffect() float blurAmount = Settings.Instance.MicrobeBackgroundBlurStrength; bool enabled = Settings.Instance.MicrobeDistortionStrength.Value > 0 && blurAmount > 0; + if (blurPlane == null) + return; + if (enabled) { blurPlane.Visible = true; + canvasBlurMaterial.SetShaderParameter(blurAmountParameter, blurAmount); spatialBlurMaterial.SetShaderParameter(blurAmountParameter, blurAmount); - RemoveChild(backgroundPlane); - subViewport1.AddChild(backgroundPlane); + if (backgroundPlane.GetParent() == this) + { + RemoveChild(backgroundPlane); + subViewport1.AddChild(backgroundPlane); + } canvasBlurMaterial.SetShaderParameter(textureAlbedoParameter, subViewport1.GetTexture()); spatialBlurMaterial.SetShaderParameter(textureAlbedoParameter, subViewport2.GetTexture()); } else { - blurPlane.Visible = false; - - subViewport1.RemoveChild(backgroundPlane); - AddChild(backgroundPlane); + if (backgroundPlane.GetParent() != this) + { + subViewport1.RemoveChild(backgroundPlane); + AddChild(backgroundPlane); + } // Remove viewport textures from shaders, so that the viewports aren't rendered canvasBlurMaterial.SetShaderParameter(textureAlbedoParameter, blankTexture); spatialBlurMaterial.SetShaderParameter(textureAlbedoParameter, blankTexture); + + blurPlane.Visible = false; } } } diff --git a/src/microbe_stage/BackgroundPlane.tscn b/src/microbe_stage/BackgroundPlane.tscn index 56afc015ab..041dcf4bd4 100644 --- a/src/microbe_stage/BackgroundPlane.tscn +++ b/src/microbe_stage/BackgroundPlane.tscn @@ -14,7 +14,7 @@ size = Vector2(800, 400) [sub_resource type="ViewportTexture" id="ViewportTexture_duokn"] -viewport_path = NodePath("../SubViewport2") +viewport_path = NodePath("SubViewport2") [sub_resource type="ShaderMaterial" id="ShaderMaterial_1sr76"] resource_local_to_scene = true @@ -66,14 +66,14 @@ shader_parameter/layer3 = ExtResource("8_yxu5g") shader_parameter/noiseTex1 = SubResource("NoiseTexture2D_f6pop") shader_parameter/noiseTex2 = SubResource("NoiseTexture2D_tsmw6") -[node name="Node3D" type="Node3D"] +[node name="BackgroundPlane" type="Node3D"] script = ExtResource("2_eprmh") -blurPlanePath = NodePath("BackgroundPlane") +blurPlanePath = NodePath("BlurPlane") blurColorRectPath = NodePath("SubViewport2/ColorRect") backgroundPlanePath = NodePath("SubViewport/BackgroundPlane") blankTexture = ExtResource("2_ortq4") -[node name="BackgroundPlane" type="CSGMesh3D" parent="."] +[node name="BlurPlane" type="CSGMesh3D" parent="."] transform = Transform3D(1, 0, 0, 0, -1.62921e-07, -1, 0, 1, -1.62921e-07, 0, 0, -20) cast_shadow = 0 mesh = SubResource("1") @@ -92,10 +92,10 @@ anchor_left = 0.5 anchor_top = 0.5 anchor_right = 0.5 anchor_bottom = 0.5 -offset_left = -1000.0 -offset_top = -500.0 -offset_right = 1000.0 -offset_bottom = 500.0 +offset_left = -640.0 +offset_top = -360.0 +offset_right = 640.0 +offset_bottom = 360.0 grow_horizontal = 2 grow_vertical = 2 diff --git a/src/microbe_stage/MicrobeCamera.tscn b/src/microbe_stage/MicrobeCamera.tscn index 03b48181b1..505aaf11f9 100644 --- a/src/microbe_stage/MicrobeCamera.tscn +++ b/src/microbe_stage/MicrobeCamera.tscn @@ -1,20 +1,8 @@ -[gd_scene load_steps=6 format=3 uid="uid://bako5jivv1dji"] +[gd_scene load_steps=3 format=3 uid="uid://bako5jivv1dji"] -[ext_resource type="Shader" path="res://shaders/BlurSpatial.gdshader" id="2_70a3p"] [ext_resource type="PackedScene" uid="uid://dyko4f6a4agwn" path="res://src/microbe_stage/BackgroundPlane.tscn" id="2_yrakl"] [ext_resource type="Script" path="res://src/microbe_stage/MicrobeCamera.cs" id="3"] -[sub_resource type="ViewportTexture" id="ViewportTexture_ihdi7"] -viewport_path = NodePath("SubViewport2") - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_a4fno"] -resource_local_to_scene = true -render_priority = -100 -shader = ExtResource("2_70a3p") -shader_parameter/blurStep = Vector2(0, 1) -shader_parameter/blurAmount = 1.0 -shader_parameter/textureAlbedo = SubResource("ViewportTexture_ihdi7") - [node name="MicrobeCamera" type="Camera3D"] process_priority = 100 transform = Transform3D(1, 0, 0, 0, -1.62921e-07, 1, 0, -1, -1.62921e-07, 0, 10, 0) @@ -27,4 +15,3 @@ DefaultCameraHeight = 30.0 current = true [node name="BackgroundPlane" parent="." instance=ExtResource("2_yrakl")] -material = SubResource("ShaderMaterial_a4fno") From 4b0bfbbc7654d38d5d92eac6cd150421c128137b Mon Sep 17 00:00:00 2001 From: dligr Date: Wed, 4 Dec 2024 21:39:59 +0300 Subject: [PATCH 17/53] Add a blur strength option --- locale/af.po | 5 +- locale/ar.po | 5 +- locale/be.po | 5 +- locale/bg.po | 5 +- locale/bn.po | 5 +- locale/ca.po | 5 +- locale/cs.po | 5 +- locale/da.po | 5 +- locale/de.po | 5 +- locale/el.po | 5 +- locale/en.po | 5 +- locale/eo.po | 5 +- locale/es.po | 5 +- locale/es_AR.po | 5 +- locale/et.po | 5 +- locale/fi.po | 5 +- locale/fr.po | 5 +- locale/frm.po | 5 +- locale/he.po | 5 +- locale/hr.po | 5 +- locale/hu.po | 5 +- locale/id.po | 5 +- locale/it.po | 5 +- locale/ka.po | 5 +- locale/ko.po | 5 +- locale/la.po | 5 +- locale/lb_LU.po | 5 +- locale/lt.po | 5 +- locale/lv.po | 5 +- locale/messages.pot | 444 ++++++++++++++------------- locale/mk.po | 5 +- locale/nb_NO.po | 5 +- locale/nl.po | 5 +- locale/nl_BE.po | 5 +- locale/pl.po | 5 +- locale/pt_BR.po | 5 +- locale/pt_PT.po | 5 +- locale/ro.po | 5 +- locale/ru.po | 5 +- locale/si_LK.po | 5 +- locale/sk.po | 5 +- locale/sr_Cyrl.po | 5 +- locale/sr_Latn.po | 5 +- locale/sv.po | 5 +- locale/th_TH.po | 5 +- locale/tok.po | 5 +- locale/tr.po | 5 +- locale/uk.po | 5 +- locale/vi.po | 5 +- locale/zh_CN.po | 5 +- locale/zh_TW.po | 5 +- src/engine/Settings.cs | 7 + src/general/OptionsMenu.cs | 24 ++ src/general/OptionsMenu.tscn | 33 +- src/microbe_stage/BackgroundPlane.cs | 26 +- 55 files changed, 508 insertions(+), 276 deletions(-) diff --git a/locale/af.po b/locale/af.po index 25f293256d..9f20baf8fa 100644 --- a/locale/af.po +++ b/locale/af.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -337,6 +337,9 @@ msgstr "" msgid "BACK" msgstr "" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "" diff --git a/locale/ar.po b/locale/ar.po index 4935f79599..1bf1ae4e03 100644 --- a/locale/ar.po +++ b/locale/ar.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2023-03-13 09:01+0000\n" "Last-Translator: Xradiation \n" "Language-Team: Arabic \n" @@ -341,6 +341,9 @@ msgstr "فترة الميكروبات" msgid "BACK" msgstr "" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "" diff --git a/locale/be.po b/locale/be.po index 2f4fb6131e..f47647fe62 100644 --- a/locale/be.po +++ b/locale/be.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Thrive VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2023-09-21 09:24+0000\n" "Last-Translator: Henri Hyyryläinen \n" "Language-Team: Belarusian \n" @@ -336,6 +336,9 @@ msgstr "" msgid "BACK" msgstr "" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "" diff --git a/locale/bg.po b/locale/bg.po index 473ee650ca..da29442047 100644 --- a/locale/bg.po +++ b/locale/bg.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Bulgarian \n" @@ -372,6 +372,9 @@ msgstr "Осъзнаване" msgid "BACK" msgstr "Назад" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "Обратна наклонена черта" diff --git a/locale/bn.po b/locale/bn.po index f47976e835..5f85a242ad 100644 --- a/locale/bn.po +++ b/locale/bn.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Thrive VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2023-09-10 12:18+0000\n" "Last-Translator: Mahbeer Alam Sarker \n" "Language-Team: Bengali \n" @@ -343,6 +343,9 @@ msgstr "" msgid "BACK" msgstr "" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "" diff --git a/locale/ca.po b/locale/ca.po index 3ca38c4c9e..7589604cd4 100644 --- a/locale/ca.po +++ b/locale/ca.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Catalan \n" @@ -372,6 +372,9 @@ msgstr "Estadi de Microbi" msgid "BACK" msgstr "Enrere" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "Enrere" diff --git a/locale/cs.po b/locale/cs.po index d9cf0e825f..aae5fb4732 100644 --- a/locale/cs.po +++ b/locale/cs.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-11-16 19:09+0000\n" "Last-Translator: Adam David \n" "Language-Team: Czech \n" @@ -371,6 +371,9 @@ msgstr "Mikrobiální Období" msgid "BACK" msgstr "Zpět" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "Lomítko" diff --git a/locale/da.po b/locale/da.po index d3eb36fe34..7f7696e568 100644 --- a/locale/da.po +++ b/locale/da.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-06-09 13:22+0000\n" "Last-Translator: Magnus Norling Svane \n" "Language-Team: Danish \n" @@ -333,6 +333,9 @@ msgstr "" msgid "BACK" msgstr "" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "" diff --git a/locale/de.po b/locale/de.po index 458bc8a29c..da55a4a5c0 100644 --- a/locale/de.po +++ b/locale/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: German \n" @@ -369,6 +369,9 @@ msgstr "Mikroben Stadium" msgid "BACK" msgstr "Zurück" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "Backslash" diff --git a/locale/el.po b/locale/el.po index 5bfb146765..fb94e3ef9a 100644 --- a/locale/el.po +++ b/locale/el.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2022-03-31 05:02+0000\n" "Last-Translator: Apostolos Paschidis \n" "Language-Team: Greek \n" @@ -338,6 +338,9 @@ msgstr "Χρησιμοποιήστε τα πλήκτρα [thrive:input]g_move_fo msgid "BACK" msgstr "" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "" diff --git a/locale/en.po b/locale/en.po index 83eebd1d9d..13793a1aaf 100644 --- a/locale/en.po +++ b/locale/en.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-11-26 17:26+0200\n" "Last-Translator: Henri Hyyryläinen \n" "Language-Team: English \n" @@ -366,6 +366,9 @@ msgstr "Aware Stage" msgid "BACK" msgstr "Back" +msgid "BACKGROUND_BLUR" +msgstr "Background blur:" + msgid "BACKSLASH" msgstr "Backslash" diff --git a/locale/eo.po b/locale/eo.po index 721e0257ef..9027540675 100644 --- a/locale/eo.po +++ b/locale/eo.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Esperanto \n" @@ -383,6 +383,9 @@ msgstr "" msgid "BACK" msgstr "Reen" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "Deklivo" diff --git a/locale/es.po b/locale/es.po index 53567e35a9..13b93ff4f9 100644 --- a/locale/es.po +++ b/locale/es.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Spanish \n" @@ -375,6 +375,9 @@ msgstr "Estadio Consciente" msgid "BACK" msgstr "Atrás" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "Barra invertida" diff --git a/locale/es_AR.po b/locale/es_AR.po index 9af18d5eeb..aef887b3d1 100644 --- a/locale/es_AR.po +++ b/locale/es_AR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-10-16 05:52+0000\n" "Last-Translator: fideos con queso \n" "Language-Team: Spanish (Argentina) \n" @@ -362,6 +362,9 @@ msgstr "Despierto" msgid "BACK" msgstr "Pa' atras" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "Barra inversa ( / )" diff --git a/locale/et.po b/locale/et.po index 4301bfc6d9..27fa52e3b7 100644 --- a/locale/et.po +++ b/locale/et.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Estonian \n" @@ -398,6 +398,9 @@ msgstr "" msgid "BACK" msgstr "tagasi" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "Kaldkriips" diff --git a/locale/fi.po b/locale/fi.po index f2c69054d2..2ffb88d9e9 100644 --- a/locale/fi.po +++ b/locale/fi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-11-04 07:58+0000\n" "Last-Translator: Henri Hyyryläinen \n" "Language-Team: Finnish \n" @@ -390,6 +390,9 @@ msgstr "" msgid "BACK" msgstr "Takaisin" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "Kenoviiva" diff --git a/locale/fr.po b/locale/fr.po index 7c25933a5c..49641c2582 100644 --- a/locale/fr.po +++ b/locale/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-10-31 16:02+0000\n" "Last-Translator: Anonymous \n" "Language-Team: French \n" @@ -372,6 +372,9 @@ msgstr "Phase consciente" msgid "BACK" msgstr "Revenir" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "Barre oblique inversée" diff --git a/locale/frm.po b/locale/frm.po index e5f9c1ce35..4d7aeeab25 100644 --- a/locale/frm.po +++ b/locale/frm.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -329,6 +329,9 @@ msgstr "" msgid "BACK" msgstr "" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "" diff --git a/locale/he.po b/locale/he.po index 9d1dfc43ff..981aa47818 100644 --- a/locale/he.po +++ b/locale/he.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Hebrew \n" @@ -365,6 +365,9 @@ msgstr "שלב המיקרובי" msgid "BACK" msgstr "חזור" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "לוכסן שמאלי" diff --git a/locale/hr.po b/locale/hr.po index 0b01ea8e78..c3cd224683 100644 --- a/locale/hr.po +++ b/locale/hr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-09-17 07:03+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Croatian \n" @@ -357,6 +357,9 @@ msgstr "Stadij mikroba" msgid "BACK" msgstr "" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "" diff --git a/locale/hu.po b/locale/hu.po index 22264a2e40..5fc34f4e0a 100644 --- a/locale/hu.po +++ b/locale/hu.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Hungarian \n" @@ -374,6 +374,9 @@ msgstr "Tudatos fázis" msgid "BACK" msgstr "Vissza" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "fordított perjel" diff --git a/locale/id.po b/locale/id.po index 8e5954fc07..8374b8723f 100644 --- a/locale/id.po +++ b/locale/id.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Indonesian \n" @@ -390,6 +390,9 @@ msgstr "Tahapan Mikrob" msgid "BACK" msgstr "Kembali" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "Backslash" diff --git a/locale/it.po b/locale/it.po index 4b1a069835..7db3fe7264 100644 --- a/locale/it.po +++ b/locale/it.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Italian \n" @@ -375,6 +375,9 @@ msgstr "Fase della consapevolezza" msgid "BACK" msgstr "Indietro" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "\\ Barra rovesciata [Backslash]" diff --git a/locale/ka.po b/locale/ka.po index a27d71fc52..88e2b06d05 100644 --- a/locale/ka.po +++ b/locale/ka.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-11-22 10:08+0000\n" "Last-Translator: NorwayFun \n" "Language-Team: Georgian \n" @@ -364,6 +364,9 @@ msgstr "გამაზრებელი ფაზა" msgid "BACK" msgstr "უკან" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "უკუღმა დახრილი ხაზი" diff --git a/locale/ko.po b/locale/ko.po index 39bbcb2ed1..ccacf527a6 100644 --- a/locale/ko.po +++ b/locale/ko.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Korean \n" @@ -374,6 +374,9 @@ msgstr "미생물 단계" msgid "BACK" msgstr "뒤로" +msgid "BACKGROUND_BLUR" +msgstr "" + #, fuzzy msgid "BACKSLASH" msgstr "뒤로가기" diff --git a/locale/la.po b/locale/la.po index 31527f516d..adbf92e844 100644 --- a/locale/la.po +++ b/locale/la.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2023-04-25 19:02+0000\n" "Last-Translator: AliquisDeNusquam \n" "Language-Team: Latin \n" @@ -368,6 +368,9 @@ msgstr "W,A,S,D et mus computatrum ut mŏvĕor. E ut iacio telum OxyToxy NT si v msgid "BACK" msgstr "" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "" diff --git a/locale/lb_LU.po b/locale/lb_LU.po index e593e6e3f9..0b2aadf092 100644 --- a/locale/lb_LU.po +++ b/locale/lb_LU.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Luxembourgish \n" @@ -374,6 +374,9 @@ msgstr "Bewosst Stuf" msgid "BACK" msgstr "Zeréck" +msgid "BACKGROUND_BLUR" +msgstr "" + #, fuzzy msgid "BACKSLASH" msgstr "Backslash" diff --git a/locale/lt.po b/locale/lt.po index a55709b08e..1173b6c1b1 100644 --- a/locale/lt.po +++ b/locale/lt.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2023-10-12 00:43+0000\n" "Last-Translator: Irmantas \n" "Language-Team: Lithuanian \n" @@ -377,6 +377,9 @@ msgstr "Sąmoningumo Etapas" msgid "BACK" msgstr "Atgal" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "Atgalinis brūkšnys" diff --git a/locale/lv.po b/locale/lv.po index 0f7b0a499d..b460be9d72 100644 --- a/locale/lv.po +++ b/locale/lv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Latvian \n" @@ -373,6 +373,9 @@ msgstr "[thrive:input]g_move_forward[/thrive:input],[thrive:input]g_move_left[/t msgid "BACK" msgstr "Atpakaļ" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "Atpakaļ" diff --git a/locale/messages.pot b/locale/messages.pot index f002c496b7..92604b0ad1 100644 --- a/locale/messages.pot +++ b/locale/messages.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Thrive VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Thrive.Scripts 1.2.0.0\n" -#: ../src/general/OptionsMenu.tscn:1502 +#: ../src/general/OptionsMenu.tscn:1528 msgid "2D_MOVEMENT_TYPE_SELECTION" msgstr "" @@ -29,7 +29,7 @@ msgstr "" msgid "3D_MOVEMENT" msgstr "" -#: ../src/general/OptionsMenu.tscn:1528 +#: ../src/general/OptionsMenu.tscn:1554 msgid "3D_MOVEMENT_TYPE_SELECTION" msgstr "" @@ -41,7 +41,7 @@ msgstr "" msgid "ABORT" msgstr "" -#: ../src/auto-evo/AutoEvoRun.cs:128 +#: ../src/auto-evo/AutoEvoRun.cs:127 msgid "ABORTED_DOT" msgstr "" @@ -97,11 +97,11 @@ msgstr "" msgid "ACTIVE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1044 +#: ../src/general/OptionsMenu.tscn:1070 msgid "ACTIVE_THREAD_COUNT" msgstr "" -#: ../src/gui_common/tooltip/ToolTipManager.tscn:213 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:214 msgid "ACTIVITY_EXPLANATION" msgstr "" @@ -109,7 +109,7 @@ msgstr "" msgid "ADDITIONAL_VALIDATION_FAILED" msgstr "" -#: ../src/gui_common/tooltip/ToolTipManager.tscn:712 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:713 msgid "ADD_INPUT_BUTTON_TOOLTIP" msgstr "" @@ -145,7 +145,7 @@ msgstr "" msgid "AGENT_NAME" msgstr "" -#: ../src/gui_common/tooltip/ToolTipManager.tscn:186 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:187 msgid "AGGRESSION_EXPLANATION" msgstr "" @@ -191,11 +191,11 @@ msgstr "" msgid "ALT" msgstr "" -#: ../src/general/OptionsMenu.tscn:614 +#: ../src/general/OptionsMenu.tscn:640 msgid "ALWAYS_VISIBLE" msgstr "" -#: ../src/general/OptionsMenu.tscn:705 +#: ../src/general/OptionsMenu.tscn:731 msgid "AMBIANCE_VOLUME" msgstr "" @@ -204,11 +204,11 @@ msgstr "" msgid "AMMONIA" msgstr "" -#: ../src/general/OptionsMenu.tscn:1654 +#: ../src/general/OptionsMenu.tscn:1680 msgid "AMOUNT_OF_AUTOSAVE_TO_KEEP" msgstr "" -#: ../src/general/OptionsMenu.tscn:1674 +#: ../src/general/OptionsMenu.tscn:1700 msgid "AMOUNT_OF_QUICKSAVE_TO_KEEP" msgstr "" @@ -237,11 +237,11 @@ msgstr "" msgid "APRIL" msgstr "" -#: ../src/general/OptionsMenu.tscn:1927 +#: ../src/general/OptionsMenu.tscn:1953 msgid "ARE_YOU_SURE_TO_RESET_ALL_SETTINGS" msgstr "" -#: ../src/general/OptionsMenu.tscn:1933 +#: ../src/general/OptionsMenu.tscn:1959 msgid "ARE_YOU_SURE_TO_RESET_INPUT_SETTINGS" msgstr "" @@ -282,11 +282,11 @@ msgstr "" msgid "ASSEMBLY_REQUIRED_WITH_HARMONY" msgstr "" -#: ../src/general/OptionsMenu.tscn:1055 +#: ../src/general/OptionsMenu.tscn:1081 msgid "ASSUME_HYPERTHREADING" msgstr "" -#: ../src/gui_common/tooltip/ToolTipManager.tscn:733 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:734 msgid "ASSUME_HYPERTHREADING_TOOLTIP" msgstr "" @@ -331,12 +331,12 @@ msgstr "" msgid "ATP_BALANCE_WITH_ALL_COMPOUNDS" msgstr "" -#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:579 #: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:584 +#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:589 msgid "ATP_PRODUCTION" msgstr "" -#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:585 +#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:590 msgid "ATP_PRODUCTION_TOO_LOW" msgstr "" @@ -348,7 +348,7 @@ msgstr "" msgid "AT_CURSOR" msgstr "" -#: ../src/general/OptionsMenu.tscn:780 +#: ../src/general/OptionsMenu.tscn:806 msgid "AUDIO_OUTPUT_DEVICE" msgstr "" @@ -356,7 +356,7 @@ msgstr "" msgid "AUGUST" msgstr "" -#: ../src/general/OptionsMenu.tscn:553 ../src/general/OptionsMenu.tscn:1517 +#: ../src/general/OptionsMenu.tscn:579 ../src/general/OptionsMenu.tscn:1543 msgid "AUTO" msgstr "" @@ -364,7 +364,7 @@ msgstr "" msgid "AUTO-EVO_EXPLANATION_EXPLANATION" msgstr "" -#: ../src/auto-evo/AutoEvoRun.cs:372 +#: ../src/auto-evo/AutoEvoRun.cs:371 msgid "AUTO-EVO_POPULATION_CHANGED_2" msgstr "" @@ -377,11 +377,11 @@ msgstr "" msgid "AUTO-EVO_PREDICTION_BOX_DESCRIPTION" msgstr "" -#: ../src/auto-evo/AutoEvoRun.cs:143 +#: ../src/auto-evo/AutoEvoRun.cs:142 msgid "AUTO-EVO_STEPS_DONE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1647 +#: ../src/general/OptionsMenu.tscn:1673 msgid "AUTOSAVE_DURING_THE_GAME" msgstr "" @@ -456,7 +456,7 @@ msgstr "" #: ../src/auto-evo/AutoEvoExploringTool.tscn:685 #: ../src/general/MainMenu.tscn:417 ../src/general/MainMenu.tscn:476 #: ../src/general/MainMenu.tscn:524 ../src/general/MainMenu.tscn:827 -#: ../src/general/NewGameSettings.tscn:968 ../src/general/OptionsMenu.tscn:1890 +#: ../src/general/NewGameSettings.tscn:968 ../src/general/OptionsMenu.tscn:1916 #: ../src/general/PauseMenu.tscn:291 #: ../src/microbe_stage/gui/ExtinctionBox.tscn:72 #: ../src/modding/ModManager.tscn:83 ../src/saving/NewSaveMenu.tscn:122 @@ -464,6 +464,10 @@ msgstr "" msgid "BACK" msgstr "" +#: ../src/general/OptionsMenu.tscn:459 +msgid "BACKGROUND_BLUR" +msgstr "" + #: ../src/engine/input/key_mapping/KeyNames.cs:277 msgid "BACKSLASH" msgstr "" @@ -492,17 +496,17 @@ msgstr "" msgid "BALANCE_DISPLAY_WHILE_MOVING_TOOLTIP" msgstr "" -#: ../src/gui_common/tooltip/ToolTipManager.tscn:173 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:272 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:303 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:334 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:382 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:430 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:478 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:174 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:273 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:304 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:335 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:383 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:431 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:479 msgid "BASE_MOBILITY" msgstr "" -#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:698 +#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:703 msgid "BASE_MOVEMENT" msgstr "" @@ -626,7 +630,7 @@ msgstr "" msgid "BINDING_AGENT_PROCESSES_DESCRIPTION" msgstr "" -#: ../src/general/OptionsMenu.tscn:1368 ../src/general/OptionsMenu.tscn:1452 +#: ../src/general/OptionsMenu.tscn:1394 ../src/general/OptionsMenu.tscn:1478 msgid "BIND_AXES_SENSITIVITY" msgstr "" @@ -680,32 +684,32 @@ msgstr "" msgid "BY_REVOLUTIONARY_GAMES" msgstr "" -#: ../src/general/OptionsMenu.tscn:1245 +#: ../src/general/OptionsMenu.tscn:1271 msgid "CACHE_DISK_MAX_TIME" msgstr "" -#: ../src/general/OptionsMenu.tscn:1270 +#: ../src/general/OptionsMenu.tscn:1296 msgid "CACHE_MEMORY_MAX_ITEMS" msgstr "" -#: ../src/general/OptionsMenu.tscn:1220 +#: ../src/general/OptionsMenu.tscn:1246 msgid "CACHE_TIME_MEMORY" msgstr "" -#: ../src/general/OptionsMenu.tscn:1294 +#: ../src/general/OptionsMenu.tscn:1320 msgid "CACHE_TIME_MEMORY_ONLY" msgstr "" -#: ../src/general/OptionsMenu.tscn:1134 +#: ../src/general/OptionsMenu.tscn:1160 msgid "CACHING_TITLE" msgstr "" #: ../simulation_parameters/microbe_stage/membranes.json:77 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:415 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:416 msgid "CALCIUM_CARBONATE" msgstr "" -#: ../src/gui_common/tooltip/ToolTipManager.tscn:416 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:417 msgid "CALCIUM_CARBONATE_MEMBRANE_DESCRIPTION" msgstr "" @@ -715,7 +719,7 @@ msgstr "" #: ../src/awakening_stage/gui/InteractablePopup.tscn:64 #: ../src/awakening_stage/gui/SelectBuildingPopup.tscn:47 -#: ../src/general/OptionsMenu.tscn:1991 +#: ../src/general/OptionsMenu.tscn:2017 #: ../src/gui_common/dialogs/CustomConfirmationDialog.tscn:19 #: ../src/gui_common/dialogs/CustomConfirmationDialog.tscn:71 #: ../src/microbe_stage/editor/EndosymbiosisProgressDisplay.tscn:67 @@ -747,10 +751,10 @@ msgstr "" msgid "CANNOT_DELETE_USED_CELL_TYPE_TITLE" msgstr "" -#: ../src/gui_common/tooltip/ToolTipManager.tscn:354 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:402 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:455 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:503 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:355 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:403 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:456 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:504 msgid "CANNOT_ENGULF" msgstr "" @@ -829,11 +833,11 @@ msgid "CELLULASE_DESCRIPTION" msgstr "" #: ../simulation_parameters/microbe_stage/membranes.json:39 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:319 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:320 msgid "CELLULOSE" msgstr "" -#: ../src/gui_common/tooltip/ToolTipManager.tscn:320 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:321 msgid "CELLULOSE_MEMBRANE_DESCRIPTION" msgstr "" @@ -860,7 +864,7 @@ msgstr "" msgid "CHEATS" msgstr "" -#: ../src/general/OptionsMenu.tscn:1713 +#: ../src/general/OptionsMenu.tscn:1739 msgid "CHEAT_KEYS_ENABLED" msgstr "" @@ -928,7 +932,7 @@ msgid "CHEMO_SYNTHESIS" msgstr "" #: ../simulation_parameters/microbe_stage/membranes.json:58 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:367 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:368 msgid "CHITIN" msgstr "" @@ -940,7 +944,7 @@ msgstr "" msgid "CHITINASE_DESCRIPTION" msgstr "" -#: ../src/gui_common/tooltip/ToolTipManager.tscn:368 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:369 msgid "CHITIN_MEMBRANE_DESCRIPTION" msgstr "" @@ -1000,13 +1004,13 @@ msgstr "" msgid "CLEAN_UP_OLD_SAVES" msgstr "" -#: ../src/general/OptionsMenu.tscn:1176 +#: ../src/general/OptionsMenu.tscn:1202 msgid "CLEAR_CACHE" msgstr "" #: ../src/benchmark/microbe/CloudBenchmark.tscn:141 #: ../src/benchmark/microbe/MicrobeBenchmark.tscn:112 -#: ../src/general/OptionsMenu.tscn:2047 +#: ../src/general/OptionsMenu.tscn:2073 #: ../src/gui_common/art_gallery/GalleryViewer.tscn:95 #: ../src/gui_common/charts/line/LineChart.tscn:215 #: ../src/gui_common/dialogs/LicensesDisplay.tscn:93 @@ -1021,7 +1025,7 @@ msgstr "" msgid "CLOSE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1939 +#: ../src/general/OptionsMenu.tscn:1965 msgid "CLOSE_OPTIONS" msgstr "" @@ -1034,11 +1038,11 @@ msgstr "" msgid "CLOUD_BENCHMARK" msgstr "" -#: ../src/general/OptionsMenu.tscn:916 +#: ../src/general/OptionsMenu.tscn:942 msgid "CLOUD_RESOLUTION_DIVISOR" msgstr "" -#: ../src/general/OptionsMenu.tscn:872 +#: ../src/general/OptionsMenu.tscn:898 msgid "CLOUD_SIMULATION_MINIMUM_INTERVAL" msgstr "" @@ -1135,7 +1139,7 @@ msgstr "" msgid "COMMUNITY_WIKI_BUTTON_TOOLTIP" msgstr "" -#: ../src/general/OptionsMenu.tscn:1871 +#: ../src/general/OptionsMenu.tscn:1897 msgid "COMPILED_AT_COLON" msgstr "" @@ -1188,7 +1192,7 @@ msgstr "" msgid "COMPOUND_BALANCE_TOOLTIP" msgstr "" -#: ../src/general/OptionsMenu.tscn:855 +#: ../src/general/OptionsMenu.tscn:881 msgid "COMPOUND_CLOUDS" msgstr "" @@ -1515,7 +1519,7 @@ msgstr "" msgid "CONTROLLER_BUTTON_XBOX_Y" msgstr "" -#: ../src/general/OptionsMenu.tscn:1495 +#: ../src/general/OptionsMenu.tscn:1521 msgid "CONTROLLER_DEADZONES" msgstr "" @@ -1528,11 +1532,11 @@ msgstr "" msgid "CONTROLLER_DEADZONE_COLON" msgstr "" -#: ../src/general/OptionsMenu.tscn:536 +#: ../src/general/OptionsMenu.tscn:562 msgid "CONTROLLER_PROMPT_TYPE_SETTING" msgstr "" -#: ../src/general/OptionsMenu.tscn:1442 +#: ../src/general/OptionsMenu.tscn:1468 msgid "CONTROLLER_SENSITIVITY" msgstr "" @@ -1557,7 +1561,7 @@ msgstr "" msgid "CORRECTION_TRITANOPE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1015 +#: ../src/general/OptionsMenu.tscn:1041 msgid "CPU_THREADS" msgstr "" @@ -1680,11 +1684,11 @@ msgstr "" msgid "CTRL" msgstr "" -#: ../src/general/OptionsMenu.tscn:1163 +#: ../src/general/OptionsMenu.tscn:1189 msgid "CURRENT_CACHE_SIZE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1161 ../src/general/OptionsMenu.tscn:1167 +#: ../src/general/OptionsMenu.tscn:1187 ../src/general/OptionsMenu.tscn:1193 msgid "CURRENT_CACHE_SIZE_TOOLTIP" msgstr "" @@ -1713,7 +1717,7 @@ msgstr "" msgid "CURRENT_WORLD_STATISTICS" msgstr "" -#: ../src/general/OptionsMenu.tscn:1726 +#: ../src/general/OptionsMenu.tscn:1752 msgid "CUSTOM_USERNAME" msgstr "" @@ -1872,7 +1876,7 @@ msgstr "" msgid "DESPAWN_ENTITIES" msgstr "" -#: ../src/general/OptionsMenu.tscn:1032 +#: ../src/general/OptionsMenu.tscn:1058 msgid "DETECTED_CPU_COUNT" msgstr "" @@ -1972,7 +1976,7 @@ msgstr "" msgid "DISABLE_ALL" msgstr "" -#: ../src/general/OptionsMenu.tscn:1980 +#: ../src/general/OptionsMenu.tscn:2006 msgid "DISCARD_AND_CONTINUE" msgstr "" @@ -2012,15 +2016,15 @@ msgstr "" msgid "DISCORD_TOOLTIP" msgstr "" -#: ../src/general/OptionsMenu.tscn:1148 +#: ../src/general/OptionsMenu.tscn:1174 msgid "DISK_CACHE_TOOLTIP" msgstr "" -#: ../src/general/OptionsMenu.tscn:1778 +#: ../src/general/OptionsMenu.tscn:1804 msgid "DISMISSED_POPUPS_COLON" msgstr "" -#: ../src/general/OptionsMenu.tscn:1776 ../src/general/OptionsMenu.tscn:1782 +#: ../src/general/OptionsMenu.tscn:1802 ../src/general/OptionsMenu.tscn:1808 msgid "DISMISSED_POPUPS_EXPLANATION" msgstr "" @@ -2032,19 +2036,19 @@ msgstr "" msgid "DISMISS_WARNING_PERMANENTLY" msgstr "" -#: ../src/general/OptionsMenu.tscn:466 +#: ../src/general/OptionsMenu.tscn:492 msgid "DISPLAY_3D_MENU_BACKGROUNDS" msgstr "" -#: ../src/general/OptionsMenu.tscn:572 +#: ../src/general/OptionsMenu.tscn:598 msgid "DISPLAY_ABILITIES_BAR" msgstr "" -#: ../src/general/OptionsMenu.tscn:459 +#: ../src/general/OptionsMenu.tscn:485 msgid "DISPLAY_BACKGROUND_DISTORTION_EFFECT" msgstr "" -#: ../src/general/OptionsMenu.tscn:454 +#: ../src/general/OptionsMenu.tscn:480 msgid "DISPLAY_BACKGROUND_PARTICLES" msgstr "" @@ -2056,7 +2060,7 @@ msgstr "" msgid "DISPLAY_DRIVER_VULKAN" msgstr "" -#: ../src/general/OptionsMenu.tscn:587 +#: ../src/general/OptionsMenu.tscn:613 msgid "DISPLAY_PART_NAMES" msgstr "" @@ -2079,7 +2083,7 @@ msgid "DOT_DOT_DOT" msgstr "" #: ../simulation_parameters/microbe_stage/membranes.json:21 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:288 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:289 msgid "DOUBLE" msgstr "" @@ -2087,7 +2091,7 @@ msgstr "" msgid "DOUBLE_CLICK_TO_VIEW_IN_FULLSCREEN" msgstr "" -#: ../src/gui_common/tooltip/ToolTipManager.tscn:289 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:290 msgid "DOUBLE_MEMBRANE_DESCRIPTION" msgstr "" @@ -2224,7 +2228,7 @@ msgstr "" msgid "EASTER_EGGS_EXPLANATION" msgstr "" -#: ../src/general/OptionsMenu.tscn:1560 +#: ../src/general/OptionsMenu.tscn:1586 msgid "EDGE_PAN_SPEED" msgstr "" @@ -2278,7 +2282,7 @@ msgstr "" msgid "ENABLE_EDITOR" msgstr "" -#: ../src/general/OptionsMenu.tscn:582 +#: ../src/general/OptionsMenu.tscn:608 msgid "ENABLE_GUI_LIGHT_EFFECTS" msgstr "" @@ -2342,19 +2346,19 @@ msgstr "" msgid "ENDOSYMBIOSIS_TITLE" msgstr "" -#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:639 +#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:644 msgid "ENERGY_BALANCE_REQUIRED_COMPOUND_LINE" msgstr "" -#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:709 +#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:714 msgid "ENERGY_BALANCE_TOOLTIP_CONSUMPTION" msgstr "" -#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:671 +#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:676 msgid "ENERGY_BALANCE_TOOLTIP_PRODUCTION" msgstr "" -#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:661 +#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:666 msgid "ENERGY_BALANCE_TOOLTIP_PRODUCTION_WITH_REQUIREMENT" msgstr "" @@ -2422,7 +2426,7 @@ msgstr "" msgid "EQUIPMENT_TYPE_AXE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1996 ../src/general/OptionsMenu.tscn:2003 +#: ../src/general/OptionsMenu.tscn:2022 ../src/general/OptionsMenu.tscn:2029 msgid "ERROR" msgstr "" @@ -2434,7 +2438,7 @@ msgstr "" msgid "ERROR_CREATING_INFO_FILE" msgstr "" -#: ../src/general/OptionsMenu.tscn:2001 +#: ../src/general/OptionsMenu.tscn:2027 msgid "ERROR_FAILED_TO_SAVE_NEW_SETTINGS" msgstr "" @@ -2478,11 +2482,11 @@ msgstr "" msgid "EVOLUTIONARY_TREE_BUILD_FAILED" msgstr "" -#: ../src/general/OptionsMenu.tscn:1855 +#: ../src/general/OptionsMenu.tscn:1881 msgid "EXACT_VERSION_COLON" msgstr "" -#: ../src/general/OptionsMenu.tscn:1853 ../src/general/OptionsMenu.tscn:1861 +#: ../src/general/OptionsMenu.tscn:1879 ../src/general/OptionsMenu.tscn:1887 msgid "EXACT_VERSION_TOOLTIP" msgstr "" @@ -2601,7 +2605,7 @@ msgstr "" msgid "FEARFUL" msgstr "" -#: ../src/gui_common/tooltip/ToolTipManager.tscn:204 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:205 msgid "FEAR_EXPLANATION" msgstr "" @@ -2655,7 +2659,7 @@ msgstr "" msgid "FIND_CURRENT_PATCH" msgstr "" -#: ../src/auto-evo/AutoEvoRun.cs:131 +#: ../src/auto-evo/AutoEvoRun.cs:130 msgid "FINISHED_DOT" msgstr "" @@ -2734,7 +2738,7 @@ msgstr "" msgid "FOCUSED" msgstr "" -#: ../src/gui_common/tooltip/ToolTipManager.tscn:222 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:223 msgid "FOCUS_EXPLANATION" msgstr "" @@ -2896,7 +2900,7 @@ msgstr "" msgid "GITHUB_TOOLTIP" msgstr "" -#: ../src/general/OptionsMenu.tscn:501 +#: ../src/general/OptionsMenu.tscn:527 msgid "GLES3" msgstr "" @@ -2957,7 +2961,7 @@ msgstr "" msgid "GPL_LICENSE_HEADING" msgstr "" -#: ../src/general/OptionsMenu.tscn:473 +#: ../src/general/OptionsMenu.tscn:499 msgid "GPU_NAME" msgstr "" @@ -2973,11 +2977,11 @@ msgstr "" msgid "GROWTH_ORDER" msgstr "" -#: ../src/general/OptionsMenu.tscn:523 +#: ../src/general/OptionsMenu.tscn:549 msgid "GUI" msgstr "" -#: ../src/gui_common/tooltip/ToolTipManager.tscn:726 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:727 msgid "GUI_LIGHT_EFFECTS_OPTION_DESCRIPTION" msgstr "" @@ -2985,17 +2989,17 @@ msgstr "" msgid "GUI_TAB_NAVIGATION" msgstr "" -#: ../src/general/OptionsMenu.tscn:753 +#: ../src/general/OptionsMenu.tscn:779 msgid "GUI_VOLUME" msgstr "" -#: ../src/gui_common/tooltip/ToolTipManager.tscn:178 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:282 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:313 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:344 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:392 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:440 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:488 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:179 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:283 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:314 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:345 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:393 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:441 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:489 msgid "HEALTH" msgstr "" @@ -3007,11 +3011,11 @@ msgstr "" msgid "HELP_BUTTON_TOOLTIP" msgstr "" -#: ../src/general/OptionsMenu.tscn:876 ../src/general/OptionsMenu.tscn:920 +#: ../src/general/OptionsMenu.tscn:902 ../src/general/OptionsMenu.tscn:946 msgid "HIGHER_VALUES_INCREASE_PERFORMANCE" msgstr "" -#: ../src/general/OptionsMenu.tscn:299 ../src/general/OptionsMenu.tscn:978 +#: ../src/general/OptionsMenu.tscn:299 ../src/general/OptionsMenu.tscn:1004 msgid "HIGHER_VALUES_WORSEN_PERFORMANCE" msgstr "" @@ -3043,7 +3047,7 @@ msgstr "" msgid "HOME" msgstr "" -#: ../src/general/OptionsMenu.tscn:1377 ../src/general/OptionsMenu.tscn:1461 +#: ../src/general/OptionsMenu.tscn:1403 ../src/general/OptionsMenu.tscn:1487 msgid "HORIZONTAL_COLON" msgstr "" @@ -3643,8 +3647,8 @@ msgstr "" msgid "INVENTORY_TOGGLE_GROUND" msgstr "" -#: ../src/general/OptionsMenu.tscn:1387 ../src/general/OptionsMenu.tscn:1402 -#: ../src/general/OptionsMenu.tscn:1471 ../src/general/OptionsMenu.tscn:1487 +#: ../src/general/OptionsMenu.tscn:1413 ../src/general/OptionsMenu.tscn:1428 +#: ../src/general/OptionsMenu.tscn:1497 ../src/general/OptionsMenu.tscn:1513 msgid "INVERTED" msgstr "" @@ -3679,19 +3683,19 @@ msgstr "" msgid "JANUARY" msgstr "" -#: ../src/general/OptionsMenu.tscn:1801 +#: ../src/general/OptionsMenu.tscn:1827 msgid "JSON_DEBUG_MODE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1814 +#: ../src/general/OptionsMenu.tscn:1840 msgid "JSON_DEBUG_MODE_ALWAYS" msgstr "" -#: ../src/general/OptionsMenu.tscn:1813 +#: ../src/general/OptionsMenu.tscn:1839 msgid "JSON_DEBUG_MODE_AUTO" msgstr "" -#: ../src/general/OptionsMenu.tscn:1816 +#: ../src/general/OptionsMenu.tscn:1842 msgid "JSON_DEBUG_MODE_NEVER" msgstr "" @@ -3903,7 +3907,7 @@ msgstr "" msgid "KPSUBTRACT" msgstr "" -#: ../src/general/OptionsMenu.tscn:794 +#: ../src/general/OptionsMenu.tscn:820 msgid "LANGUAGE" msgstr "" @@ -4146,7 +4150,7 @@ msgstr "" msgid "LIGHT_MAX" msgstr "" -#: ../src/general/OptionsMenu.tscn:1007 +#: ../src/general/OptionsMenu.tscn:1033 msgid "LIMIT_EXTREME" msgstr "" @@ -4158,31 +4162,31 @@ msgstr "" msgid "LIMIT_GROWTH_RATE_EXPLANATION" msgstr "" -#: ../src/general/OptionsMenu.tscn:1005 +#: ../src/general/OptionsMenu.tscn:1031 msgid "LIMIT_HUGE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1001 +#: ../src/general/OptionsMenu.tscn:1027 msgid "LIMIT_LARGE" msgstr "" -#: ../src/general/OptionsMenu.tscn:999 +#: ../src/general/OptionsMenu.tscn:1025 msgid "LIMIT_NORMAL" msgstr "" -#: ../src/general/OptionsMenu.tscn:997 +#: ../src/general/OptionsMenu.tscn:1023 msgid "LIMIT_SMALL" msgstr "" -#: ../src/general/OptionsMenu.tscn:994 +#: ../src/general/OptionsMenu.tscn:1020 msgid "LIMIT_TINY" msgstr "" -#: ../src/general/OptionsMenu.tscn:1003 +#: ../src/general/OptionsMenu.tscn:1029 msgid "LIMIT_VERY_LARGE" msgstr "" -#: ../src/general/OptionsMenu.tscn:995 +#: ../src/general/OptionsMenu.tscn:1021 msgid "LIMIT_VERY_SMALL" msgstr "" @@ -4324,12 +4328,12 @@ msgstr "" msgid "MARINE_SNOW" msgstr "" -#: ../src/general/OptionsMenu.tscn:642 +#: ../src/general/OptionsMenu.tscn:668 msgid "MASTER_VOLUME" msgstr "" -#: ../src/general/OptionsMenu.tscn:1184 ../src/general/OptionsMenu.tscn:1190 -#: ../src/general/OptionsMenu.tscn:1195 +#: ../src/general/OptionsMenu.tscn:1210 ../src/general/OptionsMenu.tscn:1216 +#: ../src/general/OptionsMenu.tscn:1221 msgid "MAX_CACHE_SIZE_TOOLTIP" msgstr "" @@ -4341,11 +4345,11 @@ msgstr "" msgid "MAX_FPS_NO_LIMIT" msgstr "" -#: ../src/general/OptionsMenu.tscn:1186 +#: ../src/general/OptionsMenu.tscn:1212 msgid "MAX_SIZE_COLON" msgstr "" -#: ../src/general/OptionsMenu.tscn:974 +#: ../src/general/OptionsMenu.tscn:1000 msgid "MAX_SPAWNED_ENTITIES" msgstr "" @@ -4740,7 +4744,7 @@ msgstr "" msgid "MISCELLANEOUS_3D_STAGE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1824 +#: ../src/general/OptionsMenu.tscn:1850 msgid "MISC_FUN" msgstr "" @@ -4948,15 +4952,15 @@ msgstr "" msgid "MORE_INFO_PROMPT" msgstr "" -#: ../src/general/OptionsMenu.tscn:1553 +#: ../src/general/OptionsMenu.tscn:1579 msgid "MOUSE_EDGE_PANNING_OPTION" msgstr "" -#: ../src/general/OptionsMenu.tscn:1352 +#: ../src/general/OptionsMenu.tscn:1378 msgid "MOUSE_LOOK_SENSITIVITY" msgstr "" -#: ../src/general/OptionsMenu.tscn:1406 +#: ../src/general/OptionsMenu.tscn:1432 msgid "MOUSE_SENSITIVITY_WINDOW_SIZE_ADJUSTMENT" msgstr "" @@ -5104,11 +5108,11 @@ msgstr "" msgid "MULTISAMPLE_ANTI_ALIASING" msgstr "" -#: ../src/general/OptionsMenu.tscn:953 +#: ../src/general/OptionsMenu.tscn:979 msgid "MULTITHREADED_SIMULATION_ENABLED" msgstr "" -#: ../src/general/OptionsMenu.tscn:958 +#: ../src/general/OptionsMenu.tscn:984 msgid "MULTITHREADED_SIMULATION_EXPLANATION" msgstr "" @@ -5120,7 +5124,7 @@ msgstr "" msgid "MUSIC" msgstr "" -#: ../src/general/OptionsMenu.tscn:681 +#: ../src/general/OptionsMenu.tscn:707 msgid "MUSIC_VOLUME" msgstr "" @@ -5140,9 +5144,9 @@ msgstr "" msgid "MUTATION_POINTS" msgstr "" -#: ../src/general/OptionsMenu.tscn:668 ../src/general/OptionsMenu.tscn:701 -#: ../src/general/OptionsMenu.tscn:725 ../src/general/OptionsMenu.tscn:749 -#: ../src/general/OptionsMenu.tscn:773 +#: ../src/general/OptionsMenu.tscn:694 ../src/general/OptionsMenu.tscn:727 +#: ../src/general/OptionsMenu.tscn:751 ../src/general/OptionsMenu.tscn:775 +#: ../src/general/OptionsMenu.tscn:799 msgid "MUTE" msgstr "" @@ -5163,7 +5167,7 @@ msgstr "" msgid "NAME_LABEL_STRUCTURE_UNFINISHED" msgstr "" -#: ../src/general/OptionsMenu.tscn:1093 +#: ../src/general/OptionsMenu.tscn:1119 msgid "NATIVE_THREAD_ADVICE_TOOLTIP" msgstr "" @@ -5326,11 +5330,11 @@ msgid "NONE" msgstr "" #: ../simulation_parameters/microbe_stage/membranes.json:3 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:257 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:258 msgid "NORMAL" msgstr "" -#: ../src/gui_common/tooltip/ToolTipManager.tscn:258 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:259 msgid "NORMAL_MEMBRANE_DESCRIPTION" msgstr "" @@ -5375,7 +5379,7 @@ msgstr "" msgid "NOTICE_READY_TO_EDIT" msgstr "" -#: ../src/auto-evo/AutoEvoRun.cs:134 +#: ../src/auto-evo/AutoEvoRun.cs:133 msgid "NOT_STARTED_DOT" msgstr "" @@ -5416,7 +5420,7 @@ msgstr "" msgid "NO_SAVE_DIRECTORY" msgstr "" -#: ../src/general/OptionsMenu.tscn:2011 +#: ../src/general/OptionsMenu.tscn:2037 msgid "NO_SCREENSHOT_DIRECTORY" msgstr "" @@ -5467,7 +5471,7 @@ msgstr "" msgid "OCTOBER" msgstr "" -#: ../src/general/OptionsMenu.tscn:609 +#: ../src/general/OptionsMenu.tscn:635 msgid "OFF" msgstr "" @@ -5523,7 +5527,7 @@ msgstr "" msgid "OPEN_IN_FREEBUILD" msgstr "" -#: ../src/general/OptionsMenu.tscn:1750 +#: ../src/general/OptionsMenu.tscn:1776 msgid "OPEN_LOGS_FOLDER" msgstr "" @@ -5551,7 +5555,7 @@ msgstr "" msgid "OPEN_SCIENCE_MENU" msgstr "" -#: ../src/general/OptionsMenu.tscn:1744 +#: ../src/general/OptionsMenu.tscn:1770 msgid "OPEN_SCREENSHOT_FOLDER" msgstr "" @@ -5559,15 +5563,15 @@ msgstr "" msgid "OPEN_THE_MENU" msgstr "" -#: ../src/general/OptionsMenu.tscn:825 +#: ../src/general/OptionsMenu.tscn:851 msgid "OPEN_TRANSLATION_SITE" msgstr "" -#: ../src/auto-evo/AutoEvoRun.cs:144 +#: ../src/auto-evo/AutoEvoRun.cs:143 msgid "OPERATION_PAUSED_DOT" msgstr "" -#: ../src/gui_common/tooltip/ToolTipManager.tscn:195 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:196 msgid "OPPORTUNISM_EXPLANATION" msgstr "" @@ -5592,7 +5596,7 @@ msgstr "" msgid "ORGANELLES_BUTTON" msgstr "" -#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:418 +#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:423 msgid "ORGANELLES_WILL_BE_UNLOCKED_NEXT_GENERATION" msgstr "" @@ -5656,7 +5660,7 @@ msgstr "" msgid "OR_UNLOCK_CONDITION" msgstr "" -#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:692 +#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:697 msgid "OSMOREGULATION" msgstr "" @@ -5798,7 +5802,7 @@ msgstr "" msgid "PATCH_MAP" msgstr "" -#: ../src/gui_common/tooltip/ToolTipManager.tscn:768 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:769 msgid "PATCH_MAP_NAVIGATION_TOOLTIP" msgstr "" @@ -5816,7 +5820,7 @@ msgstr "" msgid "PATCH_NOTES_LAST_PLAYED_INFO_PLURAL" msgstr "" -#: ../src/general/OptionsMenu.tscn:2015 +#: ../src/general/OptionsMenu.tscn:2041 #: ../src/gui_common/PatchNotesDisplayer.tscn:25 msgid "PATCH_NOTES_TITLE" msgstr "" @@ -5932,9 +5936,9 @@ msgstr "" msgid "PHYSICAL_CONDITIONS" msgstr "" -#: ../src/gui_common/tooltip/ToolTipManager.tscn:349 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:445 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:493 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:350 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:446 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:494 msgid "PHYSICAL_RESISTANCE" msgstr "" @@ -5985,7 +5989,7 @@ msgstr "" msgid "PLAYER_EXTINCT" msgstr "" -#: ../src/general/OptionsMenu.tscn:1518 +#: ../src/general/OptionsMenu.tscn:1544 msgid "PLAYER_RELATIVE_MOVEMENT" msgstr "" @@ -5997,23 +6001,23 @@ msgstr "" msgid "PLAYER_SPEED" msgstr "" -#: ../src/general/OptionsMenu.tscn:560 +#: ../src/general/OptionsMenu.tscn:586 msgid "PLAYSTATION_3" msgstr "" -#: ../src/general/OptionsMenu.tscn:562 +#: ../src/general/OptionsMenu.tscn:588 msgid "PLAYSTATION_4" msgstr "" -#: ../src/general/OptionsMenu.tscn:564 +#: ../src/general/OptionsMenu.tscn:590 msgid "PLAYSTATION_5" msgstr "" -#: ../src/general/OptionsMenu.tscn:1631 +#: ../src/general/OptionsMenu.tscn:1657 msgid "PLAY_INTRO_VIDEO" msgstr "" -#: ../src/general/OptionsMenu.tscn:1636 +#: ../src/general/OptionsMenu.tscn:1662 msgid "PLAY_MICROBE_INTRO_ON_NEW_GAME" msgstr "" @@ -6216,7 +6220,7 @@ msgstr "" msgid "RESEARCH" msgstr "" -#: ../src/general/OptionsMenu.tscn:811 ../src/general/OptionsMenu.tscn:1896 +#: ../src/general/OptionsMenu.tscn:837 ../src/general/OptionsMenu.tscn:1922 #: ../src/microbe_stage/editor/GrowthOrderPicker.tscn:22 msgid "RESET" msgstr "" @@ -6225,11 +6229,11 @@ msgstr "" msgid "RESET_DEADZONES" msgstr "" -#: ../src/general/OptionsMenu.tscn:1794 +#: ../src/general/OptionsMenu.tscn:1820 msgid "RESET_DISMISSED_POPUPS" msgstr "" -#: ../src/general/OptionsMenu.tscn:1934 +#: ../src/general/OptionsMenu.tscn:1960 msgid "RESET_INPUTS_TO_DEFAULTS" msgstr "" @@ -6237,20 +6241,20 @@ msgstr "" msgid "RESET_ITEM_ORDER_TO_DEFAULT" msgstr "" -#: ../src/general/OptionsMenu.tscn:1602 +#: ../src/general/OptionsMenu.tscn:1628 msgid "RESET_KEYBINDINGS" msgstr "" -#: ../src/general/OptionsMenu.tscn:1922 +#: ../src/general/OptionsMenu.tscn:1948 msgid "RESET_SETTINGS_TO_DEFAULTS" msgstr "" -#: ../src/general/OptionsMenu.tscn:1928 +#: ../src/general/OptionsMenu.tscn:1954 msgid "RESET_TO_DEFAULTS" msgstr "" -#: ../src/gui_common/tooltip/ToolTipManager.tscn:360 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:408 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:361 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:409 msgid "RESISTANT_TO_BASIC_ENGULFMENT" msgstr "" @@ -6262,12 +6266,12 @@ msgstr "" msgid "RESOLUTION" msgstr "" -#: ../src/gui_common/tooltip/ToolTipManager.tscn:277 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:308 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:339 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:387 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:435 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:483 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:278 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:309 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:340 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:388 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:436 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:484 msgid "RESOURCE_ABSORBTION_SPEED" msgstr "" @@ -6362,7 +6366,7 @@ msgstr "" msgid "ROTATION_COLON" msgstr "" -#: ../src/general/OptionsMenu.tscn:948 +#: ../src/general/OptionsMenu.tscn:974 msgid "RUN_AUTO_EVO_DURING_GAMEPLAY" msgstr "" @@ -6425,11 +6429,11 @@ msgstr "" msgid "SAFE_MODE_TITLE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1905 ../src/saving/NewSaveMenu.tscn:80 +#: ../src/general/OptionsMenu.tscn:1931 ../src/saving/NewSaveMenu.tscn:80 msgid "SAVE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1974 +#: ../src/general/OptionsMenu.tscn:2000 msgid "SAVE_AND_CONTINUE" msgstr "" @@ -6530,19 +6534,19 @@ msgstr "" msgid "SAVING_SUCCEEDED" msgstr "" -#: ../src/general/OptionsMenu.tscn:1417 +#: ../src/general/OptionsMenu.tscn:1443 msgid "SCALING_NONE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1418 +#: ../src/general/OptionsMenu.tscn:1444 msgid "SCALING_ON" msgstr "" -#: ../src/general/OptionsMenu.tscn:1420 +#: ../src/general/OptionsMenu.tscn:1446 msgid "SCALING_ON_INVERSE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1832 +#: ../src/general/OptionsMenu.tscn:1858 msgid "SCREEN_EFFECT" msgstr "" @@ -6562,7 +6566,7 @@ msgstr "" msgid "SCREEN_EFFECT_NONE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1520 ../src/general/OptionsMenu.tscn:1543 +#: ../src/general/OptionsMenu.tscn:1546 ../src/general/OptionsMenu.tscn:1569 msgid "SCREEN_RELATIVE_MOVEMENT" msgstr "" @@ -6680,11 +6684,11 @@ msgstr "" msgid "SESSILE" msgstr "" -#: ../src/gui_common/tooltip/ToolTipManager.tscn:719 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:720 msgid "SETTING_ONLY_APPLIES_TO_NEW_GAMES" msgstr "" -#: ../src/general/OptionsMenu.tscn:729 +#: ../src/general/OptionsMenu.tscn:755 msgid "SFX_VOLUME" msgstr "" @@ -6693,7 +6697,7 @@ msgstr "" msgid "SHIFT" msgstr "" -#: ../src/general/OptionsMenu.tscn:577 +#: ../src/general/OptionsMenu.tscn:603 msgid "SHOW_DAMAGE_EFFECT" msgstr "" @@ -6701,11 +6705,11 @@ msgstr "" msgid "SHOW_HELP" msgstr "" -#: ../src/general/OptionsMenu.tscn:1761 +#: ../src/general/OptionsMenu.tscn:1787 msgid "SHOW_NEW_PATCH_NOTES" msgstr "" -#: ../src/general/OptionsMenu.tscn:1760 +#: ../src/general/OptionsMenu.tscn:1786 msgid "SHOW_NEW_PATCH_NOTES_TOOLTIP" msgstr "" @@ -6713,23 +6717,23 @@ msgstr "" msgid "SHOW_TUTORIALS" msgstr "" -#: ../src/general/OptionsMenu.tscn:1699 +#: ../src/general/OptionsMenu.tscn:1725 msgid "SHOW_TUTORIALS_IN_NEW_CURRENT_OPTION" msgstr "" -#: ../src/general/OptionsMenu.tscn:1693 +#: ../src/general/OptionsMenu.tscn:1719 msgid "SHOW_TUTORIALS_IN_NEW_GAMES_OPTION" msgstr "" -#: ../src/general/OptionsMenu.tscn:1705 +#: ../src/general/OptionsMenu.tscn:1731 msgid "SHOW_UNSAVED_PROGRESS_WARNING" msgstr "" -#: ../src/gui_common/tooltip/ToolTipManager.tscn:738 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:739 msgid "SHOW_UNSAVED_PROGRESS_WARNING_TOOLTIP" msgstr "" -#: ../src/general/OptionsMenu.tscn:1755 +#: ../src/general/OptionsMenu.tscn:1781 msgid "SHOW_WEB_NEWS_FEED" msgstr "" @@ -6778,11 +6782,11 @@ msgid "SIGNAL_TO_EMIT" msgstr "" #: ../simulation_parameters/microbe_stage/membranes.json:95 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:463 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:464 msgid "SILICA" msgstr "" -#: ../src/gui_common/tooltip/ToolTipManager.tscn:464 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:465 msgid "SILICA_MEMBRANE_DESCRIPTION" msgstr "" @@ -6987,7 +6991,7 @@ msgstr "" msgid "START" msgstr "" -#: ../src/auto-evo/AutoEvoRun.cs:147 +#: ../src/auto-evo/AutoEvoRun.cs:146 msgid "STARTING" msgstr "" @@ -7122,7 +7126,7 @@ msgstr "" msgid "STORE_LOGGED_IN_AS" msgstr "" -#: ../src/general/OptionsMenu.tscn:596 +#: ../src/general/OptionsMenu.tscn:622 msgid "STRAIN_BAR_VISIBILITY" msgstr "" @@ -7204,7 +7208,7 @@ msgid "SUICIDE_BUTTON_TOOLTIP" msgstr "" #: ../simulation_parameters/microbe_stage/compounds.json:207 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:757 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:758 #: ../src/microbe_stage/editor/CellEditorComponent.tscn:470 #: ../src/microbe_stage/editor/MicrobeEditorReportComponent.tscn:505 #: ../src/microbe_stage/gui/PatchDetailsPanel.tscn:214 @@ -7321,7 +7325,7 @@ msgid "TECHNOLOGY_UNLOCKED_NOTICE" msgstr "" #: ../simulation_parameters/microbe_stage/compounds.json:226 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:751 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:752 #: ../src/microbe_stage/editor/MicrobeEditorReportComponent.cs:401 #: ../src/microbe_stage/editor/MicrobeEditorReportComponent.tscn:498 #: ../src/microbe_stage/gui/PatchDetailsPanel.tscn:169 @@ -7402,7 +7406,7 @@ msgstr "" msgid "THIS_IS_WORKSHOP_MOD" msgstr "" -#: ../src/general/OptionsMenu.tscn:1067 ../src/general/OptionsMenu.tscn:1101 +#: ../src/general/OptionsMenu.tscn:1093 ../src/general/OptionsMenu.tscn:1127 msgid "THREADS" msgstr "" @@ -7663,9 +7667,9 @@ msgstr "" msgid "TOXIN_PROPERTIES_HEADING" msgstr "" -#: ../src/gui_common/tooltip/ToolTipManager.tscn:397 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:450 -#: ../src/gui_common/tooltip/ToolTipManager.tscn:498 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:398 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:451 +#: ../src/gui_common/tooltip/ToolTipManager.tscn:499 msgid "TOXIN_RESISTANCE" msgstr "" @@ -7724,7 +7728,7 @@ msgstr "" msgid "TRY_MAKING_A_SAVE" msgstr "" -#: ../src/general/OptionsMenu.tscn:2010 +#: ../src/general/OptionsMenu.tscn:2036 msgid "TRY_TAKING_SOME_SCREENSHOTS" msgstr "" @@ -8007,11 +8011,11 @@ msgstr "" msgid "UNLOCK_CONDITION_SPEED_BELOW" msgstr "" -#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:400 +#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:405 msgid "UNLOCK_WITH_ANY_OF_FOLLOWING" msgstr "" -#: ../src/general/OptionsMenu.tscn:1956 +#: ../src/general/OptionsMenu.tscn:1982 msgid "UNSAVED_CHANGE_WARNING" msgstr "" @@ -8075,7 +8079,7 @@ msgstr "" msgid "USED_LIBRARIES_LICENSES" msgstr "" -#: ../src/general/OptionsMenu.tscn:493 +#: ../src/general/OptionsMenu.tscn:519 msgid "USED_RENDERER_NAME" msgstr "" @@ -8091,23 +8095,23 @@ msgstr "" msgid "USE_AUTO_HARMONY_TOOLTIP" msgstr "" -#: ../src/general/OptionsMenu.tscn:1719 +#: ../src/general/OptionsMenu.tscn:1745 msgid "USE_A_CUSTOM_USERNAME" msgstr "" -#: ../src/general/OptionsMenu.tscn:1150 +#: ../src/general/OptionsMenu.tscn:1176 msgid "USE_DISK_CACHE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1060 +#: ../src/general/OptionsMenu.tscn:1086 msgid "USE_MANUAL_THREAD_COUNT" msgstr "" -#: ../src/general/OptionsMenu.tscn:1094 +#: ../src/general/OptionsMenu.tscn:1120 msgid "USE_MANUAL_THREAD_COUNT_NATIVE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1430 +#: ../src/general/OptionsMenu.tscn:1456 msgid "USE_VIRTUAL_WINDOW_SIZE" msgstr "" @@ -8150,7 +8154,7 @@ msgstr "" msgid "VERSION_COLON" msgstr "" -#: ../src/general/OptionsMenu.tscn:1391 ../src/general/OptionsMenu.tscn:1475 +#: ../src/general/OptionsMenu.tscn:1417 ../src/general/OptionsMenu.tscn:1501 msgid "VERTICAL_COLON" msgstr "" @@ -8159,11 +8163,11 @@ msgstr "" msgid "VERTICAL_WITH_AXIS_NAME_COLON" msgstr "" -#: ../src/general/OptionsMenu.tscn:508 +#: ../src/general/OptionsMenu.tscn:534 msgid "VIDEO_MEMORY" msgstr "" -#: ../src/general/OptionsMenu.cs:1190 ../src/general/OptionsMenu.tscn:516 +#: ../src/general/OptionsMenu.cs:1190 ../src/general/OptionsMenu.tscn:542 msgid "VIDEO_MEMORY_MIB" msgstr "" @@ -8188,11 +8192,11 @@ msgstr "" msgid "VIEW_PATCH_MICHES" msgstr "" -#: ../src/general/OptionsMenu.tscn:1768 +#: ../src/general/OptionsMenu.tscn:1794 msgid "VIEW_PATCH_NOTES" msgstr "" -#: ../src/general/OptionsMenu.tscn:1766 +#: ../src/general/OptionsMenu.tscn:1792 msgid "VIEW_PATCH_NOTES_TOOLTIP" msgstr "" @@ -8212,11 +8216,11 @@ msgstr "" msgid "VISIBLE" msgstr "" -#: ../src/general/OptionsMenu.tscn:610 +#: ../src/general/OptionsMenu.tscn:636 msgid "VISIBLE_WHEN_CLOSE_TO_FULL" msgstr "" -#: ../src/general/OptionsMenu.tscn:612 +#: ../src/general/OptionsMenu.tscn:638 msgid "VISIBLE_WHEN_OVER_ZERO" msgstr "" @@ -10278,7 +10282,7 @@ msgstr "" msgid "WORLD_MISC_DETAILS_STRING" msgstr "" -#: ../src/general/OptionsMenu.tscn:1544 +#: ../src/general/OptionsMenu.tscn:1570 msgid "WORLD_RELATIVE_MOVEMENT" msgstr "" @@ -10286,15 +10290,15 @@ msgstr "" msgid "WORST_PATCH_COLON" msgstr "" -#: ../src/general/OptionsMenu.tscn:554 +#: ../src/general/OptionsMenu.tscn:580 msgid "XBOX360" msgstr "" -#: ../src/general/OptionsMenu.tscn:556 +#: ../src/general/OptionsMenu.tscn:582 msgid "XBOX_ONE" msgstr "" -#: ../src/general/OptionsMenu.tscn:558 +#: ../src/general/OptionsMenu.tscn:584 msgid "XBOX_SERIES" msgstr "" diff --git a/locale/mk.po b/locale/mk.po index 8de13f0e0b..dd4f28cb09 100644 --- a/locale/mk.po +++ b/locale/mk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Thrive VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2023-09-15 06:55+0000\n" "Last-Translator: Kristijan Miracevski \n" "Language-Team: Macedonian \n" @@ -363,6 +363,9 @@ msgstr "" msgid "BACK" msgstr "" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "" diff --git a/locale/nb_NO.po b/locale/nb_NO.po index f78115379d..78f6147015 100644 --- a/locale/nb_NO.po +++ b/locale/nb_NO.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2023-03-10 06:53+0000\n" "Last-Translator: Jonas Lindberg \n" "Language-Team: Norwegian Bokmål \n" @@ -368,6 +368,9 @@ msgstr "Mikrobestadiet" msgid "BACK" msgstr "" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "" diff --git a/locale/nl.po b/locale/nl.po index 915db15ce7..9cff170480 100644 --- a/locale/nl.po +++ b/locale/nl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-10-21 20:20+0000\n" "Last-Translator: Pascal Smit \n" "Language-Team: Dutch \n" @@ -368,6 +368,9 @@ msgstr "Bewustzijnsfase" msgid "BACK" msgstr "Terug" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "Backslash" diff --git a/locale/nl_BE.po b/locale/nl_BE.po index c548fec470..ae0dd8e41b 100644 --- a/locale/nl_BE.po +++ b/locale/nl_BE.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Dutch (Belgium) \n" @@ -380,6 +380,9 @@ msgstr "Bewustzijnsfase" msgid "BACK" msgstr "Terug" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "Terug" diff --git a/locale/pl.po b/locale/pl.po index fcd4923abd..58fadc1be6 100644 --- a/locale/pl.po +++ b/locale/pl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-11-19 19:46+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Polish \n" @@ -365,6 +365,9 @@ msgstr "Faza Świadomości" msgid "BACK" msgstr "Wróć" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "Ukośnik wsteczny" diff --git a/locale/pt_BR.po b/locale/pt_BR.po index 58662ed06c..df46ece465 100644 --- a/locale/pt_BR.po +++ b/locale/pt_BR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-11-19 19:46+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Portuguese (Brazil) \n" @@ -373,6 +373,9 @@ msgstr "Estágio Ciente" msgid "BACK" msgstr "Voltar" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "Barra Invertida" diff --git a/locale/pt_PT.po b/locale/pt_PT.po index 1a2762d86a..f9e71d2485 100644 --- a/locale/pt_PT.po +++ b/locale/pt_PT.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Portuguese (Portugal) \n" @@ -374,6 +374,9 @@ msgstr "Fase Microbial" msgid "BACK" msgstr "Voltar" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "Barra invertida" diff --git a/locale/ro.po b/locale/ro.po index 1f785ecd5c..be092c6f14 100644 --- a/locale/ro.po +++ b/locale/ro.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-03-30 03:50+0000\n" "Last-Translator: edy \n" "Language-Team: Romanian \n" @@ -376,6 +376,9 @@ msgstr "Stagiul conștient" msgid "BACK" msgstr "Înapoi" +msgid "BACKGROUND_BLUR" +msgstr "" + #, fuzzy msgid "BACKSLASH" msgstr "Backslash" diff --git a/locale/ru.po b/locale/ru.po index 87c4022b92..eeec179475 100644 --- a/locale/ru.po +++ b/locale/ru.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-11-19 19:46+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Russian \n" @@ -366,6 +366,9 @@ msgstr "Стадия Сознания" msgid "BACK" msgstr "Назад" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "Обратный Слэш" diff --git a/locale/si_LK.po b/locale/si_LK.po index 751116ba52..a3c6c5f8bf 100644 --- a/locale/si_LK.po +++ b/locale/si_LK.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2022-03-22 18:22+0000\n" "Last-Translator: Henri Hyyryläinen \n" "Language-Team: Sinhala \n" @@ -340,6 +340,9 @@ msgstr "" msgid "BACK" msgstr "" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "" diff --git a/locale/sk.po b/locale/sk.po index f411433c58..a8f2482ac7 100644 --- a/locale/sk.po +++ b/locale/sk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Slovak \n" @@ -362,6 +362,9 @@ msgstr "Fáza Mikróbov" msgid "BACK" msgstr "Späť" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "Backslash" diff --git a/locale/sr_Cyrl.po b/locale/sr_Cyrl.po index 324cdb09e0..9165a77b6d 100644 --- a/locale/sr_Cyrl.po +++ b/locale/sr_Cyrl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Serbian (Cyrillic script) \n" @@ -389,6 +389,9 @@ msgstr "" msgid "BACK" msgstr "Назад" +msgid "BACKGROUND_BLUR" +msgstr "" + #, fuzzy msgid "BACKSLASH" msgstr "Назад" diff --git a/locale/sr_Latn.po b/locale/sr_Latn.po index b42fbfbba2..2ee3057261 100644 --- a/locale/sr_Latn.po +++ b/locale/sr_Latn.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Serbian (Latin script) \n" @@ -373,6 +373,9 @@ msgstr "Zona: {0}" msgid "BACK" msgstr "Nazad" +msgid "BACKGROUND_BLUR" +msgstr "" + #, fuzzy msgid "BACKSLASH" msgstr "Nazad" diff --git a/locale/sv.po b/locale/sv.po index 9233dcbabf..c0a746f4a2 100644 --- a/locale/sv.po +++ b/locale/sv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-10-19 21:07+0000\n" "Last-Translator: Paradox Edge \n" "Language-Team: Swedish \n" @@ -376,6 +376,9 @@ msgstr "Mikrob Stadiet" msgid "BACK" msgstr "Backåt" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "Omvänt snedstreck" diff --git a/locale/th_TH.po b/locale/th_TH.po index 756e9796ad..a177bd5442 100644 --- a/locale/th_TH.po +++ b/locale/th_TH.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Thai \n" @@ -368,6 +368,9 @@ msgstr "W, A, S, D และเมาส์เพื่อย้าย กด E msgid "BACK" msgstr "กลับ" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "แบ็กสแลช" diff --git a/locale/tok.po b/locale/tok.po index afa48bc545..5b5b391159 100644 --- a/locale/tok.po +++ b/locale/tok.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Thrive VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2023-02-06 07:13+0000\n" "Last-Translator: jan-sopi \n" "Language-Team: Toki Pona \n" @@ -368,6 +368,9 @@ msgstr "" msgid "BACK" msgstr "nena Back" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "nena Backslash" diff --git a/locale/tr.po b/locale/tr.po index b9e63d7b33..5e7a0e7938 100644 --- a/locale/tr.po +++ b/locale/tr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-11-22 10:08+0000\n" "Last-Translator: punctdan \n" "Language-Team: Turkish \n" @@ -366,6 +366,9 @@ msgstr "Farkındalık Evresi" msgid "BACK" msgstr "Geri" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "Ters Eğik Çizgi" diff --git a/locale/uk.po b/locale/uk.po index 4976efd4a2..415080c965 100644 --- a/locale/uk.po +++ b/locale/uk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-11-19 19:46+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Ukrainian \n" @@ -370,6 +370,9 @@ msgstr "Стадія свідомості" msgid "BACK" msgstr "Назад" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "Слеш назад" diff --git a/locale/vi.po b/locale/vi.po index 96a70bc645..4be745c3f0 100644 --- a/locale/vi.po +++ b/locale/vi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -329,6 +329,9 @@ msgstr "" msgid "BACK" msgstr "" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "" diff --git a/locale/zh_CN.po b/locale/zh_CN.po index 5f9bef8605..111b0ef950 100644 --- a/locale/zh_CN.po +++ b/locale/zh_CN.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-11-19 19:46+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Chinese (Simplified Han script) \n" @@ -368,6 +368,9 @@ msgstr "知觉阶段" msgid "BACK" msgstr "返回" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "反斜杠" diff --git a/locale/zh_TW.po b/locale/zh_TW.po index 6e3b7e60c6..27f7ce9fb7 100644 --- a/locale/zh_TW.po +++ b/locale/zh_TW.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-11-29 11:19+0200\n" +"POT-Creation-Date: 2024-12-04 21:05+0300\n" "PO-Revision-Date: 2024-11-20 07:02+0000\n" "Last-Translator: xzihnago \n" "Language-Team: Chinese (Traditional Han script) \n" @@ -366,6 +366,9 @@ msgstr "意識階段" msgid "BACK" msgstr "返回" +msgid "BACKGROUND_BLUR" +msgstr "" + msgid "BACKSLASH" msgstr "\\" diff --git a/src/engine/Settings.cs b/src/engine/Settings.cs index 91ccc892fd..f134e62d1a 100644 --- a/src/engine/Settings.cs +++ b/src/engine/Settings.cs @@ -113,6 +113,13 @@ public enum StrainBarVisibility [JsonProperty] public SettingValue MicrobeDistortionStrength { get; private set; } = new(0.6f); + /// + /// The amount of blur applied to microbe backgrounds when distortion is on. + /// enabled. + /// + [JsonProperty] + public SettingValue MicrobeBackgroundBlurEnabled { get; private set; } = new(true); + /// /// The amount of blur applied to microbe backgrounds when distortion is on. /// enabled. diff --git a/src/general/OptionsMenu.cs b/src/general/OptionsMenu.cs index ee4dcac3e5..2a2672a71a 100644 --- a/src/general/OptionsMenu.cs +++ b/src/general/OptionsMenu.cs @@ -388,6 +388,12 @@ public partial class OptionsMenu : ControlWithInput [Export] private Slider bloomSlider = null!; + [Export] + private Button blurEffectToggle = null!; + + [Export] + private Slider blurSlider = null!; + private Label gpuName = null!; private Label usedRendererName = null!; private Label videoMemory = null!; @@ -853,6 +859,9 @@ public void ApplySettingsToControls(Settings settings) bloomEffectToggle.ButtonPressed = settings.BloomEnabled; bloomSlider.Value = settings.BloomStrength; bloomSlider.Editable = settings.BloomEnabled || !DisableInactiveSliders; + blurEffectToggle.ButtonPressed = settings.MicrobeBackgroundBlurEnabled; + blurSlider.Value = settings.MicrobeBackgroundBlurStrength; + blurSlider.Editable = settings.MicrobeBackgroundBlurEnabled || !DisableInactiveSliders; DisplayResolution(); DisplayGpuInfo(); @@ -2080,6 +2089,21 @@ private void OnBloomStrengthChanged(float value) UpdateResetSaveButtonState(); } + private void OnBlurToggled(bool toggle) + { + Settings.Instance.MicrobeBackgroundBlurEnabled.Value = toggle; + blurSlider.Editable = toggle || !DisableInactiveSliders; + + UpdateResetSaveButtonState(); + } + + private void OnBlurStrengthChanged(float value) + { + Settings.Instance.MicrobeBackgroundBlurStrength.Value = value; + + UpdateResetSaveButtonState(); + } + // Sound Button Callbacks private void OnMasterVolumeChanged(float value) { diff --git a/src/general/OptionsMenu.tscn b/src/general/OptionsMenu.tscn index 05b1fff1b3..d145e58b6c 100644 --- a/src/general/OptionsMenu.tscn +++ b/src/general/OptionsMenu.tscn @@ -36,7 +36,7 @@ region_rect = Rect2(0, 0, 258, 1) [sub_resource type="StyleBoxEmpty" id="7"] -[node name="OptionsMenu" type="Control" node_paths=PackedStringArray("damageEffect", "strainVisibility", "displayMicrobeBackgroundDistortionToggle", "bloomEffectToggle", "bloomSlider", "useDiskCaching", "maxCacheSizeSlider", "maxCacheSizeLabel", "currentCacheSize", "maxMemoryCacheTimeSlider", "maxMemoryCacheTimeLabel", "maxDiskCacheTimeSlider", "maxDiskCacheTimeLabel", "maxMemoryItemsSlider", "maxMemoryItemsLabel", "maxMemoryOnlyCacheTimeSlider", "maxMemoryOnlyCacheTimeLabel")] +[node name="OptionsMenu" type="Control" node_paths=PackedStringArray("damageEffect", "strainVisibility", "displayMicrobeBackgroundDistortionToggle", "bloomEffectToggle", "bloomSlider", "blurEffectToggle", "blurSlider", "useDiskCaching", "maxCacheSizeSlider", "maxCacheSizeLabel", "currentCacheSize", "maxMemoryCacheTimeSlider", "maxMemoryCacheTimeLabel", "maxDiskCacheTimeSlider", "maxDiskCacheTimeLabel", "maxMemoryItemsSlider", "maxMemoryItemsLabel", "maxMemoryOnlyCacheTimeSlider", "maxMemoryOnlyCacheTimeLabel")] process_mode = 3 layout_mode = 3 anchors_preset = 15 @@ -152,6 +152,8 @@ strainVisibility = NodePath("CenterContainer/VBoxContainer/VBoxContainer/VBoxCon displayMicrobeBackgroundDistortionToggle = NodePath("CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/BackgroundDistortion") bloomEffectToggle = NodePath("CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer12/Bloom") bloomSlider = NodePath("CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer12/BloomAmount") +blurEffectToggle = NodePath("CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer13/Blur") +blurSlider = NodePath("CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer13/BlurAmount") useDiskCaching = NodePath("CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Performance/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer8/DiskCache") maxCacheSizeSlider = NodePath("CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Performance/ScrollContainer/MarginContainer/VBoxContainer/CacheSizeSlider") maxCacheSizeLabel = NodePath("CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Performance/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer10/DesiredCacheSize") @@ -448,6 +450,33 @@ step = 0.05 value = 0.5 scrollable = false +[node name="HBoxContainer13" type="HBoxContainer" parent="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer"] +layout_mode = 2 + +[node name="Blur" type="CheckBox" parent="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer13"] +layout_mode = 2 +size_flags_horizontal = 0 +focus_neighbor_bottom = NodePath("../../DisplayBackgroundParticles") +focus_next = NodePath("../BlurAmount") +text = "BACKGROUND_BLUR" + +[node name="Separator" type="Control" parent="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer13"] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="BlurAmount" type="HSlider" parent="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer13"] +custom_minimum_size = Vector2(200, 0) +layout_mode = 2 +size_flags_vertical = 1 +focus_neighbor_top = NodePath("../../HBoxContainer5/ChromaticAmount") +focus_neighbor_bottom = NodePath("../../DisplayBackgroundParticles") +focus_previous = NodePath("../Blur") +min_value = 1.0 +max_value = 2.0 +step = 0.05 +value = 2.0 +scrollable = false + [node name="DisplayBackgroundParticles" type="CheckBox" parent="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer"] layout_mode = 2 size_flags_horizontal = 0 @@ -2067,6 +2096,8 @@ grow_vertical = 1 [connection signal="value_changed" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer5/ChromaticAmount" to="." method="OnChromaticAberrationValueChanged"] [connection signal="toggled" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer12/Bloom" to="." method="OnBloomToggled"] [connection signal="value_changed" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer12/BloomAmount" to="." method="OnBloomStrengthChanged"] +[connection signal="toggled" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer13/Blur" to="." method="OnBlurToggled"] +[connection signal="value_changed" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer13/BlurAmount" to="." method="OnBlurStrengthChanged"] [connection signal="toggled" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/DisplayBackgroundParticles" to="." method="OnDisplayBackgroundParticlesToggled"] [connection signal="toggled" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/BackgroundDistortion" to="." method="OnMicrobeBackgroundDistortionToggled"] [connection signal="toggled" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/Menu3DBackgroundsToggle" to="." method="OnDisplay3DMenuBackgroundsToggled"] diff --git a/src/microbe_stage/BackgroundPlane.cs b/src/microbe_stage/BackgroundPlane.cs index dd709b98c1..bf71c2b63f 100644 --- a/src/microbe_stage/BackgroundPlane.cs +++ b/src/microbe_stage/BackgroundPlane.cs @@ -89,6 +89,9 @@ public override void _EnterTree() Settings.Instance.DisplayBackgroundParticles.OnChanged += OnDisplayBackgroundParticlesChanged; Settings.Instance.MicrobeDistortionStrength.OnChanged += OnBackgroundDistortionChanged; + Settings.Instance.MicrobeBackgroundBlurStrength.OnChanged += OnBackgroundBlurStrengthChanged; + Settings.Instance.MicrobeBackgroundBlurEnabled.OnChanged += OnBackgroundBlurToggleChanged; + ApplyDistortionEffect(); ApplyBlurEffect(); } @@ -99,7 +102,10 @@ public override void _ExitTree() Settings.Instance.DisplayBackgroundParticles.OnChanged -= OnDisplayBackgroundParticlesChanged; Settings.Instance.MicrobeDistortionStrength.OnChanged -= OnBackgroundDistortionChanged; - } + + Settings.Instance.MicrobeBackgroundBlurStrength.OnChanged -= OnBackgroundBlurStrengthChanged; + Settings.Instance.MicrobeBackgroundBlurEnabled.OnChanged -= OnBackgroundBlurToggleChanged; + } public void ResolveNodeReferences() { @@ -220,10 +226,20 @@ private void ApplyDistortionEffect() Settings.Instance.MicrobeDistortionStrength.Value); } + private void OnBackgroundBlurStrengthChanged(float value) + { + ApplyBlurEffect(); + } + + private void OnBackgroundBlurToggleChanged(bool value) + { + ApplyBlurEffect(); + } + private void ApplyBlurEffect() { - float blurAmount = Settings.Instance.MicrobeBackgroundBlurStrength; - bool enabled = Settings.Instance.MicrobeDistortionStrength.Value > 0 && blurAmount > 0; + float blurStrength = Settings.Instance.MicrobeBackgroundBlurStrength; + bool enabled = blurStrength > 0 && Settings.Instance.MicrobeBackgroundBlurEnabled.Value; if (blurPlane == null) return; @@ -232,8 +248,8 @@ private void ApplyBlurEffect() { blurPlane.Visible = true; - canvasBlurMaterial.SetShaderParameter(blurAmountParameter, blurAmount); - spatialBlurMaterial.SetShaderParameter(blurAmountParameter, blurAmount); + canvasBlurMaterial.SetShaderParameter(blurAmountParameter, blurStrength); + spatialBlurMaterial.SetShaderParameter(blurAmountParameter, blurStrength); if (backgroundPlane.GetParent() == this) { From 7dbb73d69ecb0b3215355a52050668e89d923e71 Mon Sep 17 00:00:00 2001 From: dligr Date: Wed, 4 Dec 2024 21:44:42 +0300 Subject: [PATCH 18/53] Fix indentation --- src/microbe_stage/BackgroundPlane.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/microbe_stage/BackgroundPlane.cs b/src/microbe_stage/BackgroundPlane.cs index bf71c2b63f..45dfc08f27 100644 --- a/src/microbe_stage/BackgroundPlane.cs +++ b/src/microbe_stage/BackgroundPlane.cs @@ -103,9 +103,9 @@ public override void _ExitTree() Settings.Instance.DisplayBackgroundParticles.OnChanged -= OnDisplayBackgroundParticlesChanged; Settings.Instance.MicrobeDistortionStrength.OnChanged -= OnBackgroundDistortionChanged; - Settings.Instance.MicrobeBackgroundBlurStrength.OnChanged -= OnBackgroundBlurStrengthChanged; - Settings.Instance.MicrobeBackgroundBlurEnabled.OnChanged -= OnBackgroundBlurToggleChanged; - } + Settings.Instance.MicrobeBackgroundBlurStrength.OnChanged -= OnBackgroundBlurStrengthChanged; + Settings.Instance.MicrobeBackgroundBlurEnabled.OnChanged -= OnBackgroundBlurToggleChanged; + } public void ResolveNodeReferences() { From 183a356bccff9267a1133d729fbe5cb5262fa917 Mon Sep 17 00:00:00 2001 From: dligr Date: Wed, 4 Dec 2024 21:55:00 +0300 Subject: [PATCH 19/53] Change class order, Remove some duplicate function calls and some null checks that were needed because of them --- src/microbe_stage/BackgroundPlane.cs | 50 +++++++++++----------------- 1 file changed, 20 insertions(+), 30 deletions(-) diff --git a/src/microbe_stage/BackgroundPlane.cs b/src/microbe_stage/BackgroundPlane.cs index 45dfc08f27..db54a5fccb 100644 --- a/src/microbe_stage/BackgroundPlane.cs +++ b/src/microbe_stage/BackgroundPlane.cs @@ -82,6 +82,26 @@ public override void _Ready() ApplyBlurEffect(); } + public void ResolveNodeReferences() + { + if (NodeReferencesResolved) + return; + + NodeReferencesResolved = true; + + if (HasNode(backgroundPlanePath)) + backgroundPlane = GetNode(backgroundPlanePath); + + if (HasNode(blurPlanePath)) + blurPlane = GetNode(blurPlanePath); + + if (HasNode("SubViewport")) + subViewport1 = GetNode("SubViewport"); + + if (HasNode("SubViewport2")) + subViewport2 = GetNode("SubViewport2"); + } + public override void _EnterTree() { base._EnterTree(); @@ -91,9 +111,6 @@ public override void _EnterTree() Settings.Instance.MicrobeBackgroundBlurStrength.OnChanged += OnBackgroundBlurStrengthChanged; Settings.Instance.MicrobeBackgroundBlurEnabled.OnChanged += OnBackgroundBlurToggleChanged; - - ApplyDistortionEffect(); - ApplyBlurEffect(); } public override void _ExitTree() @@ -107,26 +124,6 @@ public override void _ExitTree() Settings.Instance.MicrobeBackgroundBlurEnabled.OnChanged -= OnBackgroundBlurToggleChanged; } - public void ResolveNodeReferences() - { - if (NodeReferencesResolved) - return; - - NodeReferencesResolved = true; - - if (HasNode(backgroundPlanePath)) - backgroundPlane = GetNode(backgroundPlanePath); - - if (HasNode(blurPlanePath)) - blurPlane = GetNode(blurPlanePath); - - if (HasNode("SubViewport")) - subViewport1 = GetNode("SubViewport"); - - if (HasNode("SubViewport2")) - subViewport2 = GetNode("SubViewport2"); - } - /// /// Set the used background images and particles /// @@ -214,14 +211,10 @@ private void OnDisplayBackgroundParticlesChanged(bool displayed) private void OnBackgroundDistortionChanged(float value) { ApplyDistortionEffect(); - ApplyBlurEffect(); } private void ApplyDistortionEffect() { - if (currentBackgroundMaterial == null) - return; - currentBackgroundMaterial.SetShaderParameter(distortionStrengthParameter, Settings.Instance.MicrobeDistortionStrength.Value); } @@ -241,9 +234,6 @@ private void ApplyBlurEffect() float blurStrength = Settings.Instance.MicrobeBackgroundBlurStrength; bool enabled = blurStrength > 0 && Settings.Instance.MicrobeBackgroundBlurEnabled.Value; - if (blurPlane == null) - return; - if (enabled) { blurPlane.Visible = true; From 9fb7d8ebc5e3ecfdfa2db8bbf9936be03523e022 Mon Sep 17 00:00:00 2001 From: dligr Date: Wed, 4 Dec 2024 21:58:31 +0300 Subject: [PATCH 20/53] Make SubViewports only update when blur is on --- src/microbe_stage/BackgroundPlane.cs | 13 ++++--------- src/microbe_stage/BackgroundPlane.tscn | 6 +----- 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/src/microbe_stage/BackgroundPlane.cs b/src/microbe_stage/BackgroundPlane.cs index db54a5fccb..2c28d7b279 100644 --- a/src/microbe_stage/BackgroundPlane.cs +++ b/src/microbe_stage/BackgroundPlane.cs @@ -21,9 +21,6 @@ public partial class BackgroundPlane : Node3D, IGodotEarlyNodeResolve [Export] private NodePath backgroundPlanePath = null!; - [Export] - private Texture2D blankTexture = null!; - #pragma warning disable CA2213 /// @@ -175,7 +172,6 @@ protected override void Dispose(bool disposing) lightLevelParameter.Dispose(); distortionStrengthParameter.Dispose(); worldPositionParameter.Dispose(); - blankTexture.Dispose(); if (blurPlanePath != null) { @@ -247,8 +243,8 @@ private void ApplyBlurEffect() subViewport1.AddChild(backgroundPlane); } - canvasBlurMaterial.SetShaderParameter(textureAlbedoParameter, subViewport1.GetTexture()); - spatialBlurMaterial.SetShaderParameter(textureAlbedoParameter, subViewport2.GetTexture()); + subViewport1.RenderTargetUpdateMode = SubViewport.UpdateMode.WhenVisible; + subViewport2.RenderTargetUpdateMode = SubViewport.UpdateMode.WhenVisible; } else { @@ -258,9 +254,8 @@ private void ApplyBlurEffect() AddChild(backgroundPlane); } - // Remove viewport textures from shaders, so that the viewports aren't rendered - canvasBlurMaterial.SetShaderParameter(textureAlbedoParameter, blankTexture); - spatialBlurMaterial.SetShaderParameter(textureAlbedoParameter, blankTexture); + subViewport1.RenderTargetUpdateMode = SubViewport.UpdateMode.Disabled; + subViewport2.RenderTargetUpdateMode = SubViewport.UpdateMode.Disabled; blurPlane.Visible = false; } diff --git a/src/microbe_stage/BackgroundPlane.tscn b/src/microbe_stage/BackgroundPlane.tscn index 041dcf4bd4..60879e1970 100644 --- a/src/microbe_stage/BackgroundPlane.tscn +++ b/src/microbe_stage/BackgroundPlane.tscn @@ -1,8 +1,7 @@ -[gd_scene load_steps=20 format=3 uid="uid://dyko4f6a4agwn"] +[gd_scene load_steps=19 format=3 uid="uid://dyko4f6a4agwn"] [ext_resource type="Shader" path="res://shaders/BlurSpatial.gdshader" id="1_iyjvf"] [ext_resource type="Script" path="res://src/microbe_stage/BackgroundPlane.cs" id="2_eprmh"] -[ext_resource type="Texture2D" uid="uid://dtvbg17mj0i35" path="res://assets/textures/blank.png" id="2_ortq4"] [ext_resource type="Shader" path="res://shaders/Blur.gdshader" id="3_s3lms"] [ext_resource type="Shader" path="res://shaders/MicrobeBackground.gdshader" id="4_5y6kw"] [ext_resource type="Texture2D" uid="uid://c3i2n4piw6ln0" path="res://assets/textures/background/Thrive_vent0.png" id="5_waqnb"] @@ -71,7 +70,6 @@ script = ExtResource("2_eprmh") blurPlanePath = NodePath("BlurPlane") blurColorRectPath = NodePath("SubViewport2/ColorRect") backgroundPlanePath = NodePath("SubViewport/BackgroundPlane") -blankTexture = ExtResource("2_ortq4") [node name="BlurPlane" type="CSGMesh3D" parent="."] transform = Transform3D(1, 0, 0, 0, -1.62921e-07, -1, 0, 1, -1.62921e-07, 0, 0, -20) @@ -83,7 +81,6 @@ material = SubResource("ShaderMaterial_1sr76") disable_3d = true handle_input_locally = false size = Vector2i(1280, 720) -render_target_update_mode = 4 [node name="ColorRect" type="ColorRect" parent="SubViewport2"] material = SubResource("ShaderMaterial_tdrj5") @@ -103,7 +100,6 @@ grow_vertical = 2 own_world_3d = true handle_input_locally = false size = Vector2i(1280, 720) -render_target_update_mode = 4 [node name="BackgroundPlane" type="CSGMesh3D" parent="SubViewport"] transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, -15) From 7e4624edef12b9609bb086a7afbee5cecf3bebe5 Mon Sep 17 00:00:00 2001 From: dligr Date: Thu, 5 Dec 2024 21:50:31 +0300 Subject: [PATCH 21/53] Remove blur toggle, change blur's slider position in the menu for a better look --- src/engine/Settings.cs | 7 ---- src/general/OptionsMenu.cs | 13 ------- src/general/OptionsMenu.tscn | 55 ++++++++++++---------------- src/microbe_stage/BackgroundPlane.cs | 4 +- 4 files changed, 25 insertions(+), 54 deletions(-) diff --git a/src/engine/Settings.cs b/src/engine/Settings.cs index f134e62d1a..91ccc892fd 100644 --- a/src/engine/Settings.cs +++ b/src/engine/Settings.cs @@ -113,13 +113,6 @@ public enum StrainBarVisibility [JsonProperty] public SettingValue MicrobeDistortionStrength { get; private set; } = new(0.6f); - /// - /// The amount of blur applied to microbe backgrounds when distortion is on. - /// enabled. - /// - [JsonProperty] - public SettingValue MicrobeBackgroundBlurEnabled { get; private set; } = new(true); - /// /// The amount of blur applied to microbe backgrounds when distortion is on. /// enabled. diff --git a/src/general/OptionsMenu.cs b/src/general/OptionsMenu.cs index 2a2672a71a..28ef3f8c6e 100644 --- a/src/general/OptionsMenu.cs +++ b/src/general/OptionsMenu.cs @@ -388,9 +388,6 @@ public partial class OptionsMenu : ControlWithInput [Export] private Slider bloomSlider = null!; - [Export] - private Button blurEffectToggle = null!; - [Export] private Slider blurSlider = null!; @@ -859,9 +856,7 @@ public void ApplySettingsToControls(Settings settings) bloomEffectToggle.ButtonPressed = settings.BloomEnabled; bloomSlider.Value = settings.BloomStrength; bloomSlider.Editable = settings.BloomEnabled || !DisableInactiveSliders; - blurEffectToggle.ButtonPressed = settings.MicrobeBackgroundBlurEnabled; blurSlider.Value = settings.MicrobeBackgroundBlurStrength; - blurSlider.Editable = settings.MicrobeBackgroundBlurEnabled || !DisableInactiveSliders; DisplayResolution(); DisplayGpuInfo(); @@ -2089,14 +2084,6 @@ private void OnBloomStrengthChanged(float value) UpdateResetSaveButtonState(); } - private void OnBlurToggled(bool toggle) - { - Settings.Instance.MicrobeBackgroundBlurEnabled.Value = toggle; - blurSlider.Editable = toggle || !DisableInactiveSliders; - - UpdateResetSaveButtonState(); - } - private void OnBlurStrengthChanged(float value) { Settings.Instance.MicrobeBackgroundBlurStrength.Value = value; diff --git a/src/general/OptionsMenu.tscn b/src/general/OptionsMenu.tscn index d145e58b6c..b6d891362f 100644 --- a/src/general/OptionsMenu.tscn +++ b/src/general/OptionsMenu.tscn @@ -36,7 +36,7 @@ region_rect = Rect2(0, 0, 258, 1) [sub_resource type="StyleBoxEmpty" id="7"] -[node name="OptionsMenu" type="Control" node_paths=PackedStringArray("damageEffect", "strainVisibility", "displayMicrobeBackgroundDistortionToggle", "bloomEffectToggle", "bloomSlider", "blurEffectToggle", "blurSlider", "useDiskCaching", "maxCacheSizeSlider", "maxCacheSizeLabel", "currentCacheSize", "maxMemoryCacheTimeSlider", "maxMemoryCacheTimeLabel", "maxDiskCacheTimeSlider", "maxDiskCacheTimeLabel", "maxMemoryItemsSlider", "maxMemoryItemsLabel", "maxMemoryOnlyCacheTimeSlider", "maxMemoryOnlyCacheTimeLabel")] +[node name="OptionsMenu" type="Control" node_paths=PackedStringArray("damageEffect", "strainVisibility", "displayMicrobeBackgroundDistortionToggle", "bloomEffectToggle", "bloomSlider", "blurSlider", "useDiskCaching", "maxCacheSizeSlider", "maxCacheSizeLabel", "currentCacheSize", "maxMemoryCacheTimeSlider", "maxMemoryCacheTimeLabel", "maxDiskCacheTimeSlider", "maxDiskCacheTimeLabel", "maxMemoryItemsSlider", "maxMemoryItemsLabel", "maxMemoryOnlyCacheTimeSlider", "maxMemoryOnlyCacheTimeLabel")] process_mode = 3 layout_mode = 3 anchors_preset = 15 @@ -152,7 +152,6 @@ strainVisibility = NodePath("CenterContainer/VBoxContainer/VBoxContainer/VBoxCon displayMicrobeBackgroundDistortionToggle = NodePath("CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/BackgroundDistortion") bloomEffectToggle = NodePath("CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer12/Bloom") bloomSlider = NodePath("CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer12/BloomAmount") -blurEffectToggle = NodePath("CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer13/Blur") blurSlider = NodePath("CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer13/BlurAmount") useDiskCaching = NodePath("CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Performance/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer8/DiskCache") maxCacheSizeSlider = NodePath("CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Performance/ScrollContainer/MarginContainer/VBoxContainer/CacheSizeSlider") @@ -395,6 +394,28 @@ popup/item_1/id = 1 popup/item_2/text = "CORRECTION_TRITANOPE" popup/item_2/id = 2 +[node name="HBoxContainer13" type="HBoxContainer" parent="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer"] +layout_mode = 2 + +[node name="Label" type="Label" parent="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer13"] +layout_mode = 2 +text = "BACKGROUND_BLUR" + +[node name="Separator" type="Control" parent="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer13"] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="BlurAmount" type="HSlider" parent="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer13"] +custom_minimum_size = Vector2(200, 0) +layout_mode = 2 +size_flags_vertical = 1 +focus_neighbor_top = NodePath("../../HBoxContainer5/ChromaticAmount") +focus_neighbor_bottom = NodePath("../../DisplayBackgroundParticles") +max_value = 2.0 +step = 0.05 +value = 2.0 +scrollable = false + [node name="HBoxContainer5" type="HBoxContainer" parent="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer"] layout_mode = 2 size_flags_horizontal = 3 @@ -450,33 +471,6 @@ step = 0.05 value = 0.5 scrollable = false -[node name="HBoxContainer13" type="HBoxContainer" parent="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer"] -layout_mode = 2 - -[node name="Blur" type="CheckBox" parent="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer13"] -layout_mode = 2 -size_flags_horizontal = 0 -focus_neighbor_bottom = NodePath("../../DisplayBackgroundParticles") -focus_next = NodePath("../BlurAmount") -text = "BACKGROUND_BLUR" - -[node name="Separator" type="Control" parent="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer13"] -layout_mode = 2 -size_flags_horizontal = 3 - -[node name="BlurAmount" type="HSlider" parent="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer13"] -custom_minimum_size = Vector2(200, 0) -layout_mode = 2 -size_flags_vertical = 1 -focus_neighbor_top = NodePath("../../HBoxContainer5/ChromaticAmount") -focus_neighbor_bottom = NodePath("../../DisplayBackgroundParticles") -focus_previous = NodePath("../Blur") -min_value = 1.0 -max_value = 2.0 -step = 0.05 -value = 2.0 -scrollable = false - [node name="DisplayBackgroundParticles" type="CheckBox" parent="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer"] layout_mode = 2 size_flags_horizontal = 0 @@ -2092,12 +2086,11 @@ grow_vertical = 1 [connection signal="item_selected" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer/MSAAResolution" to="." method="OnMSAAResolutionSelected"] [connection signal="item_selected" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer3/MaxFramesPerSecond" to="." method="OnMaxFramesPerSecondSelected"] [connection signal="item_selected" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer2/ColourblindSetting" to="." method="OnColourblindSettingSelected"] +[connection signal="value_changed" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer13/BlurAmount" to="." method="OnBlurStrengthChanged"] [connection signal="toggled" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer5/ChromaticToggle" to="." method="OnChromaticAberrationToggled"] [connection signal="value_changed" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer5/ChromaticAmount" to="." method="OnChromaticAberrationValueChanged"] [connection signal="toggled" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer12/Bloom" to="." method="OnBloomToggled"] [connection signal="value_changed" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer12/BloomAmount" to="." method="OnBloomStrengthChanged"] -[connection signal="toggled" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer13/Blur" to="." method="OnBlurToggled"] -[connection signal="value_changed" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer13/BlurAmount" to="." method="OnBlurStrengthChanged"] [connection signal="toggled" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/DisplayBackgroundParticles" to="." method="OnDisplayBackgroundParticlesToggled"] [connection signal="toggled" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/BackgroundDistortion" to="." method="OnMicrobeBackgroundDistortionToggled"] [connection signal="toggled" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/Menu3DBackgroundsToggle" to="." method="OnDisplay3DMenuBackgroundsToggled"] diff --git a/src/microbe_stage/BackgroundPlane.cs b/src/microbe_stage/BackgroundPlane.cs index 2c28d7b279..b8f4921465 100644 --- a/src/microbe_stage/BackgroundPlane.cs +++ b/src/microbe_stage/BackgroundPlane.cs @@ -107,7 +107,6 @@ public override void _EnterTree() Settings.Instance.MicrobeDistortionStrength.OnChanged += OnBackgroundDistortionChanged; Settings.Instance.MicrobeBackgroundBlurStrength.OnChanged += OnBackgroundBlurStrengthChanged; - Settings.Instance.MicrobeBackgroundBlurEnabled.OnChanged += OnBackgroundBlurToggleChanged; } public override void _ExitTree() @@ -118,7 +117,6 @@ public override void _ExitTree() Settings.Instance.MicrobeDistortionStrength.OnChanged -= OnBackgroundDistortionChanged; Settings.Instance.MicrobeBackgroundBlurStrength.OnChanged -= OnBackgroundBlurStrengthChanged; - Settings.Instance.MicrobeBackgroundBlurEnabled.OnChanged -= OnBackgroundBlurToggleChanged; } /// @@ -228,7 +226,7 @@ private void OnBackgroundBlurToggleChanged(bool value) private void ApplyBlurEffect() { float blurStrength = Settings.Instance.MicrobeBackgroundBlurStrength; - bool enabled = blurStrength > 0 && Settings.Instance.MicrobeBackgroundBlurEnabled.Value; + bool enabled = blurStrength > 0; if (enabled) { From ef8633dfafbc1a01278fa9cc0f3d667fcc36316a Mon Sep 17 00:00:00 2001 From: dligr Date: Thu, 5 Dec 2024 22:17:12 +0300 Subject: [PATCH 22/53] Switch from node path exports --- src/microbe_stage/BackgroundPlane.cs | 65 +++++++------------------- src/microbe_stage/BackgroundPlane.tscn | 10 ++-- src/microbe_stage/MicrobeCamera.cs | 3 +- src/microbe_stage/MicrobeCamera.tscn | 3 +- 4 files changed, 26 insertions(+), 55 deletions(-) diff --git a/src/microbe_stage/BackgroundPlane.cs b/src/microbe_stage/BackgroundPlane.cs index b8f4921465..336252b596 100644 --- a/src/microbe_stage/BackgroundPlane.cs +++ b/src/microbe_stage/BackgroundPlane.cs @@ -4,7 +4,7 @@ /// /// Manages the microbe background plane, optionally applies blur. /// -public partial class BackgroundPlane : Node3D, IGodotEarlyNodeResolve +public partial class BackgroundPlane : Node3D { private readonly StringName blurAmountParameter = new("blurAmount"); private readonly StringName textureAlbedoParameter = new("textureAlbedo"); @@ -12,35 +12,33 @@ public partial class BackgroundPlane : Node3D, IGodotEarlyNodeResolve private readonly StringName lightLevelParameter = new("lightLevel"); private readonly StringName distortionStrengthParameter = new("distortionFactor"); - [Export] - private NodePath? blurPlanePath; - - [Export] - private NodePath blurColorRectPath = null!; - - [Export] - private NodePath backgroundPlanePath = null!; - #pragma warning disable CA2213 /// /// Background plane that is moved farther away from the camera when zooming out /// - private Node3D backgroundPlane = null!; + [Export] + private CsgMesh3D backgroundPlane = null!; - private Node3D blurPlane = null!; + [Export] + private CsgMesh3D blurPlane = null!; + + [Export] + private ColorRect blurColorRect = null!; private GpuParticles3D? backgroundParticles; - private ShaderMaterial spatialBlurMaterial = null!; + [Export] + private SubViewport subViewport1 = null!; - private ShaderMaterial canvasBlurMaterial = null!; + [Export] + private SubViewport subViewport2 = null!; private ShaderMaterial currentBackgroundMaterial = null!; - private SubViewport subViewport1 = null!; + private ShaderMaterial spatialBlurMaterial = null!; - private SubViewport subViewport2 = null!; + private ShaderMaterial canvasBlurMaterial = null!; #pragma warning restore CA2213 public bool NodeReferencesResolved { get; private set; } @@ -59,9 +57,9 @@ public float PlaneOffset public override void _Ready() { - var material = GetNode(backgroundPlanePath).Material; - var planeBlurMaterial = GetNode(blurPlanePath).Material; - var colorRectBlurMaterial = GetNode(blurColorRectPath).Material; + var material = backgroundPlane.Material; + var planeBlurMaterial = blurPlane.Material; + var colorRectBlurMaterial = blurColorRect.Material; if (material == null || planeBlurMaterial == null || colorRectBlurMaterial == null) { @@ -73,32 +71,10 @@ public override void _Ready() spatialBlurMaterial = (ShaderMaterial)planeBlurMaterial; canvasBlurMaterial = (ShaderMaterial)colorRectBlurMaterial; - ResolveNodeReferences(); - ApplyDistortionEffect(); ApplyBlurEffect(); } - public void ResolveNodeReferences() - { - if (NodeReferencesResolved) - return; - - NodeReferencesResolved = true; - - if (HasNode(backgroundPlanePath)) - backgroundPlane = GetNode(backgroundPlanePath); - - if (HasNode(blurPlanePath)) - blurPlane = GetNode(blurPlanePath); - - if (HasNode("SubViewport")) - subViewport1 = GetNode("SubViewport"); - - if (HasNode("SubViewport2")) - subViewport2 = GetNode("SubViewport2"); - } - public override void _EnterTree() { base._EnterTree(); @@ -170,13 +146,6 @@ protected override void Dispose(bool disposing) lightLevelParameter.Dispose(); distortionStrengthParameter.Dispose(); worldPositionParameter.Dispose(); - - if (blurPlanePath != null) - { - blurPlanePath.Dispose(); - blurColorRectPath.Dispose(); - backgroundPlanePath.Dispose(); - } } base.Dispose(disposing); diff --git a/src/microbe_stage/BackgroundPlane.tscn b/src/microbe_stage/BackgroundPlane.tscn index 60879e1970..3fda09a232 100644 --- a/src/microbe_stage/BackgroundPlane.tscn +++ b/src/microbe_stage/BackgroundPlane.tscn @@ -65,11 +65,13 @@ shader_parameter/layer3 = ExtResource("8_yxu5g") shader_parameter/noiseTex1 = SubResource("NoiseTexture2D_f6pop") shader_parameter/noiseTex2 = SubResource("NoiseTexture2D_tsmw6") -[node name="BackgroundPlane" type="Node3D"] +[node name="BackgroundPlane" type="Node3D" node_paths=PackedStringArray("backgroundPlane", "blurPlane", "blurColorRect", "subViewport1", "subViewport2")] script = ExtResource("2_eprmh") -blurPlanePath = NodePath("BlurPlane") -blurColorRectPath = NodePath("SubViewport2/ColorRect") -backgroundPlanePath = NodePath("SubViewport/BackgroundPlane") +backgroundPlane = NodePath("SubViewport/BackgroundPlane") +blurPlane = NodePath("BlurPlane") +blurColorRect = NodePath("SubViewport2/ColorRect") +subViewport1 = NodePath("SubViewport") +subViewport2 = NodePath("SubViewport2") [node name="BlurPlane" type="CSGMesh3D" parent="."] transform = Transform3D(1, 0, 0, 0, -1.62921e-07, -1, 0, 1, -1.62921e-07, 0, 0, -20) diff --git a/src/microbe_stage/MicrobeCamera.cs b/src/microbe_stage/MicrobeCamera.cs index ac1645a798..385ff4163d 100644 --- a/src/microbe_stage/MicrobeCamera.cs +++ b/src/microbe_stage/MicrobeCamera.cs @@ -79,6 +79,7 @@ public partial class MicrobeCamera : Camera3D, IGodotEarlyNodeResolve, ISaveLoad #pragma warning disable CA2213 [JsonIgnore] + [Export] private BackgroundPlane backgroundPlane = null!; #pragma warning restore CA2213 @@ -152,8 +153,6 @@ public Vector3 CursorVisualWorldPos public override void _Ready() { - backgroundPlane = GetNode("BackgroundPlane"); - ResolveNodeReferences(); if (!IsLoadedFromSave) diff --git a/src/microbe_stage/MicrobeCamera.tscn b/src/microbe_stage/MicrobeCamera.tscn index 505aaf11f9..4d336833f5 100644 --- a/src/microbe_stage/MicrobeCamera.tscn +++ b/src/microbe_stage/MicrobeCamera.tscn @@ -3,13 +3,14 @@ [ext_resource type="PackedScene" uid="uid://dyko4f6a4agwn" path="res://src/microbe_stage/BackgroundPlane.tscn" id="2_yrakl"] [ext_resource type="Script" path="res://src/microbe_stage/MicrobeCamera.cs" id="3"] -[node name="MicrobeCamera" type="Camera3D"] +[node name="MicrobeCamera" type="Camera3D" node_paths=PackedStringArray("backgroundPlane")] process_priority = 100 transform = Transform3D(1, 0, 0, 0, -1.62921e-07, 1, 0, -1, -1.62921e-07, 0, 10, 0) current = true fov = 90.0 script = ExtResource("3") DefaultCameraHeight = 30.0 +backgroundPlane = NodePath("BackgroundPlane") [node name="AudioListener3D" type="AudioListener3D" parent="."] current = true From adf3799081e7930a22ac5ea9db34b3f830637f86 Mon Sep 17 00:00:00 2001 From: dligr Date: Thu, 5 Dec 2024 22:23:31 +0300 Subject: [PATCH 23/53] Move world position setting to the BackgroundPlane class --- src/microbe_stage/BackgroundPlane.cs | 7 +++++++ src/microbe_stage/MicrobeCamera.cs | 2 -- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/microbe_stage/BackgroundPlane.cs b/src/microbe_stage/BackgroundPlane.cs index 336252b596..cdd05d3f6c 100644 --- a/src/microbe_stage/BackgroundPlane.cs +++ b/src/microbe_stage/BackgroundPlane.cs @@ -75,6 +75,13 @@ public override void _Ready() ApplyBlurEffect(); } + public override void _Process(double delta) + { + base._Process(delta); + + SetWorldPosition(new Vector2(Position.X, Position.Z)); + } + public override void _EnterTree() { base._EnterTree(); diff --git a/src/microbe_stage/MicrobeCamera.cs b/src/microbe_stage/MicrobeCamera.cs index 385ff4163d..ca7bda4037 100644 --- a/src/microbe_stage/MicrobeCamera.cs +++ b/src/microbe_stage/MicrobeCamera.cs @@ -198,8 +198,6 @@ public override void _Process(double delta) { UpdateCameraPosition(delta, null); } - - backgroundPlane.SetWorldPosition(new Vector2(Position.X, Position.Z)); } public void UpdateCameraPosition(double delta, Vector3? followedObject) From 250ae91db7b819ff39529375f934b125f9331bc7 Mon Sep 17 00:00:00 2001 From: dligr Date: Thu, 5 Dec 2024 22:25:40 +0300 Subject: [PATCH 24/53] Remove dispose from the camera class --- src/microbe_stage/MicrobeCamera.cs | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/microbe_stage/MicrobeCamera.cs b/src/microbe_stage/MicrobeCamera.cs index ca7bda4037..4b8fcfd7fe 100644 --- a/src/microbe_stage/MicrobeCamera.cs +++ b/src/microbe_stage/MicrobeCamera.cs @@ -299,16 +299,6 @@ public void SetBackground(Background background) backgroundPlane.SetBackground(background); } - protected override void Dispose(bool disposing) - { - if (disposing) - { - // Nothing to dispose - } - - base.Dispose(disposing); - } - private void UpdateBackgroundVisibility() { backgroundPlane.SetVisibility(Current); From 25d81a5e5120efd34d043b4f45d8b39c53aa8f06 Mon Sep 17 00:00:00 2001 From: dligr Date: Thu, 5 Dec 2024 22:34:01 +0300 Subject: [PATCH 25/53] Save blurring state, change some obsolete debug text, change approach to camera offset --- src/microbe_stage/BackgroundPlane.cs | 28 ++++++++++++++++++++-------- src/microbe_stage/MicrobeCamera.cs | 2 +- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/microbe_stage/BackgroundPlane.cs b/src/microbe_stage/BackgroundPlane.cs index cdd05d3f6c..ffedb2aace 100644 --- a/src/microbe_stage/BackgroundPlane.cs +++ b/src/microbe_stage/BackgroundPlane.cs @@ -41,17 +41,19 @@ public partial class BackgroundPlane : Node3D private ShaderMaterial canvasBlurMaterial = null!; #pragma warning restore CA2213 + private bool blurEnabledLastTime = true; + public bool NodeReferencesResolved { get; private set; } public float PlaneOffset { get { - return backgroundPlane.Position.Z + 15; + return backgroundPlane.Position.Z; } set { - backgroundPlane.Position = new Vector3(0, 0, -15 + value); + backgroundPlane.Position = new Vector3(0, 0, value); } } @@ -63,7 +65,7 @@ public override void _Ready() if (material == null || planeBlurMaterial == null || colorRectBlurMaterial == null) { - GD.PrintErr("MicrobeCamera didn't find material to update"); + GD.PrintErr("BackgroundPlane didn't find material to update"); return; } @@ -162,7 +164,7 @@ private void OnDisplayBackgroundParticlesChanged(bool displayed) { if (backgroundParticles == null) { - GD.PrintErr("MicrobeCamera didn't find background particles on settings change"); + GD.PrintErr("BackgroundPlane didn't find background particles on settings change"); return; } @@ -204,12 +206,16 @@ private void ApplyBlurEffect() float blurStrength = Settings.Instance.MicrobeBackgroundBlurStrength; bool enabled = blurStrength > 0; + if (blurEnabledLastTime == enabled) + return; + + blurEnabledLastTime = enabled; + if (enabled) { blurPlane.Visible = true; - canvasBlurMaterial.SetShaderParameter(blurAmountParameter, blurStrength); - spatialBlurMaterial.SetShaderParameter(blurAmountParameter, blurStrength); + SetBlurStrength(blurStrength); if (backgroundPlane.GetParent() == this) { @@ -217,8 +223,8 @@ private void ApplyBlurEffect() subViewport1.AddChild(backgroundPlane); } - subViewport1.RenderTargetUpdateMode = SubViewport.UpdateMode.WhenVisible; - subViewport2.RenderTargetUpdateMode = SubViewport.UpdateMode.WhenVisible; + subViewport1.RenderTargetUpdateMode = SubViewport.UpdateMode.Always; + subViewport2.RenderTargetUpdateMode = SubViewport.UpdateMode.Always; } else { @@ -234,4 +240,10 @@ private void ApplyBlurEffect() blurPlane.Visible = false; } } + + private void SetBlurStrength(float value) + { + canvasBlurMaterial.SetShaderParameter(blurAmountParameter, value); + spatialBlurMaterial.SetShaderParameter(blurAmountParameter, value); + } } diff --git a/src/microbe_stage/MicrobeCamera.cs b/src/microbe_stage/MicrobeCamera.cs index 4b8fcfd7fe..3a6a79f2c6 100644 --- a/src/microbe_stage/MicrobeCamera.cs +++ b/src/microbe_stage/MicrobeCamera.cs @@ -237,7 +237,7 @@ public void UpdateCameraPosition(double delta, Vector3? followedObject) if (backgroundPlane != null) { - backgroundPlane.PlaneOffset = float.Lerp(backgroundPlane.PlaneOffset, -CameraHeight, InterpolateZoomSpeed); + backgroundPlane.PlaneOffset = float.Lerp(backgroundPlane.PlaneOffset, -CameraHeight - 15, InterpolateZoomSpeed); } cursorDirty = true; From 81cc1faf0c577b4abc6ac9b7138b482ef1f57607 Mon Sep 17 00:00:00 2001 From: dligr Date: Thu, 5 Dec 2024 22:43:22 +0300 Subject: [PATCH 26/53] Change blur shader's name to include 'Gaussian' --- shaders/Blur.gdshader | 25 ------------------------- shaders/BlurSpatial.gdshader | 25 ------------------------- src/microbe_stage/BackgroundPlane.tscn | 4 ++-- 3 files changed, 2 insertions(+), 52 deletions(-) delete mode 100644 shaders/Blur.gdshader delete mode 100644 shaders/BlurSpatial.gdshader diff --git a/shaders/Blur.gdshader b/shaders/Blur.gdshader deleted file mode 100644 index 53998934a9..0000000000 --- a/shaders/Blur.gdshader +++ /dev/null @@ -1,25 +0,0 @@ -shader_type canvas_item; -render_mode unshaded; - -uniform sampler2D textureAlbedo : source_color, filter_linear_mipmap, repeat_enable; - -uniform vec2 blurStep = vec2(1.0f, 0.0f); - -uniform float blurAmount = 1.0f; - -void fragment() { - vec2 s = blurAmount * blurStep / vec2(textureSize(textureAlbedo, 0)); - COLOR.rgb = - 0.0016858046f * texture(textureAlbedo, UV - 6.4f * s).rgb + - 0.015835322f * texture(textureAlbedo, UV - 4.8f * s).rgb + - 0.07843286f * texture(textureAlbedo, UV - 3.2f * s).rgb + - 0.20484284f * texture(textureAlbedo, UV - 1.6f * s).rgb + - 0.28209478f * texture(textureAlbedo, UV).rgb + - 0.20484288f * texture(textureAlbedo, UV + 1.6f * s).rgb + - 0.07843288f * texture(textureAlbedo, UV + 3.2f * s).rgb + - 0.01583533f * texture(textureAlbedo, UV + 4.8f * s).rgb + - 0.0016858061f * texture(textureAlbedo, UV + 6.4f * s).rgb; - - - COLOR.a = 1.0f; -} \ No newline at end of file diff --git a/shaders/BlurSpatial.gdshader b/shaders/BlurSpatial.gdshader deleted file mode 100644 index ba73b385e4..0000000000 --- a/shaders/BlurSpatial.gdshader +++ /dev/null @@ -1,25 +0,0 @@ -shader_type spatial; -render_mode unshaded, depth_draw_never; - -uniform sampler2D textureAlbedo : source_color, filter_linear_mipmap, repeat_enable; - -uniform vec2 blurStep = vec2(1.0f, 0.0f); - -uniform float blurAmount = 1.0f; - -void fragment() { - vec2 s = blurAmount * blurStep / vec2(textureSize(textureAlbedo, 0)); - - // Use SCREEN_UV instead of UV, because otherwise the textureAlbedo is stretched - // across the plane and only a small part of it is visible on the screen - ALBEDO = - 0.0016858046f * texture(textureAlbedo, SCREEN_UV - 6.4f * s).rgb + - 0.015835322f * texture(textureAlbedo, SCREEN_UV - 4.8f * s).rgb + - 0.07843286f * texture(textureAlbedo, SCREEN_UV - 3.2f * s).rgb + - 0.20484284f * texture(textureAlbedo, SCREEN_UV - 1.6f * s).rgb + - 0.28209478f * texture(textureAlbedo, SCREEN_UV).rgb + - 0.20484288f * texture(textureAlbedo, SCREEN_UV + 1.6f * s).rgb + - 0.07843288f * texture(textureAlbedo, SCREEN_UV + 3.2f * s).rgb + - 0.01583533f * texture(textureAlbedo, SCREEN_UV + 4.8f * s).rgb + - 0.0016858061f * texture(textureAlbedo, SCREEN_UV + 6.4f * s).rgb; -} diff --git a/src/microbe_stage/BackgroundPlane.tscn b/src/microbe_stage/BackgroundPlane.tscn index 3fda09a232..58827fb872 100644 --- a/src/microbe_stage/BackgroundPlane.tscn +++ b/src/microbe_stage/BackgroundPlane.tscn @@ -1,8 +1,8 @@ [gd_scene load_steps=19 format=3 uid="uid://dyko4f6a4agwn"] -[ext_resource type="Shader" path="res://shaders/BlurSpatial.gdshader" id="1_iyjvf"] +[ext_resource type="Shader" path="res://shaders/GaussianBlurSpatial.gdshader" id="1_iyjvf"] [ext_resource type="Script" path="res://src/microbe_stage/BackgroundPlane.cs" id="2_eprmh"] -[ext_resource type="Shader" path="res://shaders/Blur.gdshader" id="3_s3lms"] +[ext_resource type="Shader" path="res://shaders/GaussianBlur.gdshader" id="3_s3lms"] [ext_resource type="Shader" path="res://shaders/MicrobeBackground.gdshader" id="4_5y6kw"] [ext_resource type="Texture2D" uid="uid://c3i2n4piw6ln0" path="res://assets/textures/background/Thrive_vent0.png" id="5_waqnb"] [ext_resource type="Texture2D" uid="uid://d3msr0kfa34w2" path="res://assets/textures/background/Thrive_vent1.png" id="6_qx2cp"] From da80a2bccb8ea706c7e58f1719a237047efd2316 Mon Sep 17 00:00:00 2001 From: dligr Date: Thu, 5 Dec 2024 22:51:33 +0300 Subject: [PATCH 27/53] Re-add the accidentally deleted blur shaders, change variable orders in MicrobeCamera and background plane --- shaders/GaussianBlur.gdshader | 25 +++++++++++++++++++++++++ shaders/GaussianBlurSpatial.gdshader | 25 +++++++++++++++++++++++++ src/microbe_stage/BackgroundPlane.cs | 14 +++++++------- src/microbe_stage/MicrobeCamera.cs | 12 ++++++------ 4 files changed, 63 insertions(+), 13 deletions(-) create mode 100644 shaders/GaussianBlur.gdshader create mode 100644 shaders/GaussianBlurSpatial.gdshader diff --git a/shaders/GaussianBlur.gdshader b/shaders/GaussianBlur.gdshader new file mode 100644 index 0000000000..53998934a9 --- /dev/null +++ b/shaders/GaussianBlur.gdshader @@ -0,0 +1,25 @@ +shader_type canvas_item; +render_mode unshaded; + +uniform sampler2D textureAlbedo : source_color, filter_linear_mipmap, repeat_enable; + +uniform vec2 blurStep = vec2(1.0f, 0.0f); + +uniform float blurAmount = 1.0f; + +void fragment() { + vec2 s = blurAmount * blurStep / vec2(textureSize(textureAlbedo, 0)); + COLOR.rgb = + 0.0016858046f * texture(textureAlbedo, UV - 6.4f * s).rgb + + 0.015835322f * texture(textureAlbedo, UV - 4.8f * s).rgb + + 0.07843286f * texture(textureAlbedo, UV - 3.2f * s).rgb + + 0.20484284f * texture(textureAlbedo, UV - 1.6f * s).rgb + + 0.28209478f * texture(textureAlbedo, UV).rgb + + 0.20484288f * texture(textureAlbedo, UV + 1.6f * s).rgb + + 0.07843288f * texture(textureAlbedo, UV + 3.2f * s).rgb + + 0.01583533f * texture(textureAlbedo, UV + 4.8f * s).rgb + + 0.0016858061f * texture(textureAlbedo, UV + 6.4f * s).rgb; + + + COLOR.a = 1.0f; +} \ No newline at end of file diff --git a/shaders/GaussianBlurSpatial.gdshader b/shaders/GaussianBlurSpatial.gdshader new file mode 100644 index 0000000000..ba73b385e4 --- /dev/null +++ b/shaders/GaussianBlurSpatial.gdshader @@ -0,0 +1,25 @@ +shader_type spatial; +render_mode unshaded, depth_draw_never; + +uniform sampler2D textureAlbedo : source_color, filter_linear_mipmap, repeat_enable; + +uniform vec2 blurStep = vec2(1.0f, 0.0f); + +uniform float blurAmount = 1.0f; + +void fragment() { + vec2 s = blurAmount * blurStep / vec2(textureSize(textureAlbedo, 0)); + + // Use SCREEN_UV instead of UV, because otherwise the textureAlbedo is stretched + // across the plane and only a small part of it is visible on the screen + ALBEDO = + 0.0016858046f * texture(textureAlbedo, SCREEN_UV - 6.4f * s).rgb + + 0.015835322f * texture(textureAlbedo, SCREEN_UV - 4.8f * s).rgb + + 0.07843286f * texture(textureAlbedo, SCREEN_UV - 3.2f * s).rgb + + 0.20484284f * texture(textureAlbedo, SCREEN_UV - 1.6f * s).rgb + + 0.28209478f * texture(textureAlbedo, SCREEN_UV).rgb + + 0.20484288f * texture(textureAlbedo, SCREEN_UV + 1.6f * s).rgb + + 0.07843288f * texture(textureAlbedo, SCREEN_UV + 3.2f * s).rgb + + 0.01583533f * texture(textureAlbedo, SCREEN_UV + 4.8f * s).rgb + + 0.0016858061f * texture(textureAlbedo, SCREEN_UV + 6.4f * s).rgb; +} diff --git a/src/microbe_stage/BackgroundPlane.cs b/src/microbe_stage/BackgroundPlane.cs index ffedb2aace..8ad5c53751 100644 --- a/src/microbe_stage/BackgroundPlane.cs +++ b/src/microbe_stage/BackgroundPlane.cs @@ -77,13 +77,6 @@ public override void _Ready() ApplyBlurEffect(); } - public override void _Process(double delta) - { - base._Process(delta); - - SetWorldPosition(new Vector2(Position.X, Position.Z)); - } - public override void _EnterTree() { base._EnterTree(); @@ -94,6 +87,13 @@ public override void _EnterTree() Settings.Instance.MicrobeBackgroundBlurStrength.OnChanged += OnBackgroundBlurStrengthChanged; } + public override void _Process(double delta) + { + base._Process(delta); + + SetWorldPosition(new Vector2(Position.X, Position.Z)); + } + public override void _ExitTree() { base._ExitTree(); diff --git a/src/microbe_stage/MicrobeCamera.cs b/src/microbe_stage/MicrobeCamera.cs index 3a6a79f2c6..13cdb4d82e 100644 --- a/src/microbe_stage/MicrobeCamera.cs +++ b/src/microbe_stage/MicrobeCamera.cs @@ -63,6 +63,12 @@ public partial class MicrobeCamera : Camera3D, IGodotEarlyNodeResolve, ISaveLoad [Export] public float LightLevelInterpolateSpeed = 4; +#pragma warning disable CA2213 + [JsonIgnore] + [Export] + private BackgroundPlane backgroundPlane = null!; +#pragma warning restore CA2213 + /// /// Used to manually tween the light level to the target value /// @@ -77,12 +83,6 @@ public partial class MicrobeCamera : Camera3D, IGodotEarlyNodeResolve, ISaveLoad [JsonProperty] private float lightLevel = 1.0f; -#pragma warning disable CA2213 - [JsonIgnore] - [Export] - private BackgroundPlane backgroundPlane = null!; -#pragma warning restore CA2213 - [Signal] public delegate void OnZoomChangedEventHandler(float zoom); From c42e895ddd460c10cab095d82a7ce7c3de83156f Mon Sep 17 00:00:00 2001 From: dligr Date: Thu, 5 Dec 2024 23:15:52 +0300 Subject: [PATCH 28/53] Change variable order --- src/microbe_stage/BackgroundPlane.cs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/microbe_stage/BackgroundPlane.cs b/src/microbe_stage/BackgroundPlane.cs index 8ad5c53751..451d0057f3 100644 --- a/src/microbe_stage/BackgroundPlane.cs +++ b/src/microbe_stage/BackgroundPlane.cs @@ -87,13 +87,6 @@ public override void _EnterTree() Settings.Instance.MicrobeBackgroundBlurStrength.OnChanged += OnBackgroundBlurStrengthChanged; } - public override void _Process(double delta) - { - base._Process(delta); - - SetWorldPosition(new Vector2(Position.X, Position.Z)); - } - public override void _ExitTree() { base._ExitTree(); @@ -104,6 +97,13 @@ public override void _ExitTree() Settings.Instance.MicrobeBackgroundBlurStrength.OnChanged -= OnBackgroundBlurStrengthChanged; } + public override void _Process(double delta) + { + base._Process(delta); + + SetWorldPosition(new Vector2(Position.X, Position.Z)); + } + /// /// Set the used background images and particles /// From f8d66c438fa199266f4d9ac9342b82f0730edebc Mon Sep 17 00:00:00 2001 From: dligr Date: Thu, 5 Dec 2024 23:18:12 +0300 Subject: [PATCH 29/53] Revert changes to blank.png.import --- assets/textures/blank.png.import | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/assets/textures/blank.png.import b/assets/textures/blank.png.import index 693a793135..ffe1acf270 100644 --- a/assets/textures/blank.png.import +++ b/assets/textures/blank.png.import @@ -3,26 +3,25 @@ importer="texture" type="CompressedTexture2D" uid="uid://dtvbg17mj0i35" -path.s3tc="res://.godot/imported/blank.png-f13a416cdc078f764cbb126f2ea3b220.s3tc.ctex" +path="res://.godot/imported/blank.png-f13a416cdc078f764cbb126f2ea3b220.ctex" metadata={ -"imported_formats": ["s3tc_bptc"], -"vram_texture": true +"vram_texture": false } [deps] source_file="res://assets/textures/blank.png" -dest_files=["res://.godot/imported/blank.png-f13a416cdc078f764cbb126f2ea3b220.s3tc.ctex"] +dest_files=["res://.godot/imported/blank.png-f13a416cdc078f764cbb126f2ea3b220.ctex"] [params] -compress/mode=2 +compress/mode=0 compress/high_quality=false compress/lossy_quality=0.7 compress/hdr_compression=1 compress/normal_map=0 compress/channel_pack=0 -mipmaps/generate=true +mipmaps/generate=false mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -32,4 +31,4 @@ process/normal_map_invert_y=false process/hdr_as_srgb=false process/hdr_clamp_exposure=false process/size_limit=0 -detect_3d/compress_to=0 +detect_3d/compress_to=1 From ebbc18350b874ec52007283e0db1e5bcf15fbc31 Mon Sep 17 00:00:00 2001 From: dligr Date: Fri, 6 Dec 2024 15:33:01 +0300 Subject: [PATCH 30/53] Remove a null check of a non-nullable variable --- src/microbe_stage/MicrobeCamera.cs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/microbe_stage/MicrobeCamera.cs b/src/microbe_stage/MicrobeCamera.cs index 13cdb4d82e..6a3f781c89 100644 --- a/src/microbe_stage/MicrobeCamera.cs +++ b/src/microbe_stage/MicrobeCamera.cs @@ -235,10 +235,7 @@ public void UpdateCameraPosition(double delta, Vector3? followedObject) Position = target; } - if (backgroundPlane != null) - { - backgroundPlane.PlaneOffset = float.Lerp(backgroundPlane.PlaneOffset, -CameraHeight - 15, InterpolateZoomSpeed); - } + backgroundPlane.PlaneOffset = float.Lerp(backgroundPlane.PlaneOffset, -CameraHeight - 15, InterpolateZoomSpeed); cursorDirty = true; cursorVisualDirty = true; From 1ee7d7c2a1004066985596480907f653fa8ba404 Mon Sep 17 00:00:00 2001 From: dligr Date: Fri, 6 Dec 2024 15:41:18 +0300 Subject: [PATCH 31/53] Remove an unused function, fix blur strength not changing in some cases --- src/microbe_stage/BackgroundPlane.cs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/microbe_stage/BackgroundPlane.cs b/src/microbe_stage/BackgroundPlane.cs index 451d0057f3..a9e0e1176b 100644 --- a/src/microbe_stage/BackgroundPlane.cs +++ b/src/microbe_stage/BackgroundPlane.cs @@ -196,18 +196,16 @@ private void OnBackgroundBlurStrengthChanged(float value) ApplyBlurEffect(); } - private void OnBackgroundBlurToggleChanged(bool value) - { - ApplyBlurEffect(); - } - private void ApplyBlurEffect() { float blurStrength = Settings.Instance.MicrobeBackgroundBlurStrength; bool enabled = blurStrength > 0; if (blurEnabledLastTime == enabled) + { + SetBlurStrength(blurStrength); return; + } blurEnabledLastTime = enabled; From 558bee85ecfc0ad0628b6b4838754c2bc5717171 Mon Sep 17 00:00:00 2001 From: dligr Date: Fri, 6 Dec 2024 15:42:23 +0300 Subject: [PATCH 32/53] Remove an unused directive --- src/microbe_stage/BackgroundPlane.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/microbe_stage/BackgroundPlane.cs b/src/microbe_stage/BackgroundPlane.cs index a9e0e1176b..8eaea4d3d6 100644 --- a/src/microbe_stage/BackgroundPlane.cs +++ b/src/microbe_stage/BackgroundPlane.cs @@ -1,4 +1,3 @@ -using System; using Godot; /// From b6d16b2811510d5b686779fb00d1397c61fd1dac Mon Sep 17 00:00:00 2001 From: dligr Date: Fri, 6 Dec 2024 15:44:26 +0300 Subject: [PATCH 33/53] Remove an unused {get;set;}, lower a setting's default value to be consistent with its slider's limit --- src/engine/Settings.cs | 2 +- src/microbe_stage/BackgroundPlane.cs | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/engine/Settings.cs b/src/engine/Settings.cs index 91ccc892fd..37b20a5a9a 100644 --- a/src/engine/Settings.cs +++ b/src/engine/Settings.cs @@ -118,7 +118,7 @@ public enum StrainBarVisibility /// enabled. /// [JsonProperty] - public SettingValue MicrobeBackgroundBlurStrength { get; private set; } = new(3.0f); + public SettingValue MicrobeBackgroundBlurStrength { get; private set; } = new(2.0f); /// /// Type of controller button prompts to show diff --git a/src/microbe_stage/BackgroundPlane.cs b/src/microbe_stage/BackgroundPlane.cs index 8eaea4d3d6..14ec9f525a 100644 --- a/src/microbe_stage/BackgroundPlane.cs +++ b/src/microbe_stage/BackgroundPlane.cs @@ -42,8 +42,6 @@ public partial class BackgroundPlane : Node3D private bool blurEnabledLastTime = true; - public bool NodeReferencesResolved { get; private set; } - public float PlaneOffset { get From 08fd6c73c7aeb41f72e0178162c86b62be8a1adc Mon Sep 17 00:00:00 2001 From: dligr Date: Fri, 6 Dec 2024 15:47:50 +0300 Subject: [PATCH 34/53] Revert the background plane changing its own world position as it doesn't change when the plane is in a subviewport --- src/microbe_stage/BackgroundPlane.cs | 2 -- src/microbe_stage/MicrobeCamera.cs | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/microbe_stage/BackgroundPlane.cs b/src/microbe_stage/BackgroundPlane.cs index 14ec9f525a..146108e291 100644 --- a/src/microbe_stage/BackgroundPlane.cs +++ b/src/microbe_stage/BackgroundPlane.cs @@ -97,8 +97,6 @@ public override void _ExitTree() public override void _Process(double delta) { base._Process(delta); - - SetWorldPosition(new Vector2(Position.X, Position.Z)); } /// diff --git a/src/microbe_stage/MicrobeCamera.cs b/src/microbe_stage/MicrobeCamera.cs index 6a3f781c89..3cf008fbf4 100644 --- a/src/microbe_stage/MicrobeCamera.cs +++ b/src/microbe_stage/MicrobeCamera.cs @@ -198,6 +198,8 @@ public override void _Process(double delta) { UpdateCameraPosition(delta, null); } + + backgroundPlane.SetWorldPosition(new Vector2(Position.X, Position.Z)); } public void UpdateCameraPosition(double delta, Vector3? followedObject) From 4eefd7496bd62b47ac350acf070b9274142d57f1 Mon Sep 17 00:00:00 2001 From: dligr Date: Fri, 6 Dec 2024 16:05:32 +0300 Subject: [PATCH 35/53] Swap some method calls to change blur strength and scene hierarchy separately --- src/microbe_stage/BackgroundPlane.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/microbe_stage/BackgroundPlane.cs b/src/microbe_stage/BackgroundPlane.cs index 146108e291..b3607729c2 100644 --- a/src/microbe_stage/BackgroundPlane.cs +++ b/src/microbe_stage/BackgroundPlane.cs @@ -196,9 +196,10 @@ private void ApplyBlurEffect() float blurStrength = Settings.Instance.MicrobeBackgroundBlurStrength; bool enabled = blurStrength > 0; + SetBlurStrength(blurStrength); + if (blurEnabledLastTime == enabled) { - SetBlurStrength(blurStrength); return; } @@ -208,8 +209,6 @@ private void ApplyBlurEffect() { blurPlane.Visible = true; - SetBlurStrength(blurStrength); - if (backgroundPlane.GetParent() == this) { RemoveChild(backgroundPlane); From fb1a2959795a713526053bbddd8ed8df2182a87b Mon Sep 17 00:00:00 2001 From: dligr Date: Fri, 6 Dec 2024 16:06:18 +0300 Subject: [PATCH 36/53] Add UTF-8 BOM --- src/microbe_stage/BackgroundPlane.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/microbe_stage/BackgroundPlane.cs b/src/microbe_stage/BackgroundPlane.cs index b3607729c2..c6cf71cb40 100644 --- a/src/microbe_stage/BackgroundPlane.cs +++ b/src/microbe_stage/BackgroundPlane.cs @@ -1,4 +1,4 @@ -using Godot; +using Godot; /// /// Manages the microbe background plane, optionally applies blur. From 8f263f35f734a1eda785ed5f2dc17c37bc4c7327 Mon Sep 17 00:00:00 2001 From: dligr Date: Fri, 6 Dec 2024 16:07:52 +0300 Subject: [PATCH 37/53] Remove brackets around a single return --- src/microbe_stage/BackgroundPlane.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/microbe_stage/BackgroundPlane.cs b/src/microbe_stage/BackgroundPlane.cs index c6cf71cb40..67f405453c 100644 --- a/src/microbe_stage/BackgroundPlane.cs +++ b/src/microbe_stage/BackgroundPlane.cs @@ -199,9 +199,7 @@ private void ApplyBlurEffect() SetBlurStrength(blurStrength); if (blurEnabledLastTime == enabled) - { return; - } blurEnabledLastTime = enabled; From edd8fadd2d2ecc4ca4d620a681145c4ae827e1d1 Mon Sep 17 00:00:00 2001 From: dligr Date: Fri, 6 Dec 2024 16:23:08 +0300 Subject: [PATCH 38/53] Revert to BackgroundPlane changing plane's world position --- src/microbe_stage/BackgroundPlane.cs | 2 ++ src/microbe_stage/MicrobeCamera.cs | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/microbe_stage/BackgroundPlane.cs b/src/microbe_stage/BackgroundPlane.cs index 67f405453c..d3ed2fe40b 100644 --- a/src/microbe_stage/BackgroundPlane.cs +++ b/src/microbe_stage/BackgroundPlane.cs @@ -97,6 +97,8 @@ public override void _ExitTree() public override void _Process(double delta) { base._Process(delta); + + SetWorldPosition(new Vector2(GlobalPosition.X, GlobalPosition.Z)); } /// diff --git a/src/microbe_stage/MicrobeCamera.cs b/src/microbe_stage/MicrobeCamera.cs index 3cf008fbf4..6a3f781c89 100644 --- a/src/microbe_stage/MicrobeCamera.cs +++ b/src/microbe_stage/MicrobeCamera.cs @@ -198,8 +198,6 @@ public override void _Process(double delta) { UpdateCameraPosition(delta, null); } - - backgroundPlane.SetWorldPosition(new Vector2(Position.X, Position.Z)); } public void UpdateCameraPosition(double delta, Vector3? followedObject) From 279b0fb71c6ad8c442149d0e256453959928ca77 Mon Sep 17 00:00:00 2001 From: dligr Date: Fri, 6 Dec 2024 16:46:50 +0300 Subject: [PATCH 39/53] Simplify a {get;set;} --- src/microbe_stage/BackgroundPlane.cs | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/microbe_stage/BackgroundPlane.cs b/src/microbe_stage/BackgroundPlane.cs index d3ed2fe40b..1b182fa784 100644 --- a/src/microbe_stage/BackgroundPlane.cs +++ b/src/microbe_stage/BackgroundPlane.cs @@ -44,14 +44,8 @@ public partial class BackgroundPlane : Node3D public float PlaneOffset { - get - { - return backgroundPlane.Position.Z; - } - set - { - backgroundPlane.Position = new Vector3(0, 0, value); - } + get => backgroundPlane.Position.Z; + set => backgroundPlane.Position = new Vector3(0, 0, value); } public override void _Ready() From d07857c015d887a850a44c3dc58641ef219f9782 Mon Sep 17 00:00:00 2001 From: dligr Date: Fri, 6 Dec 2024 17:19:18 +0300 Subject: [PATCH 40/53] Make the default scene hierarchy fail-safe --- src/microbe_stage/BackgroundPlane.cs | 2 +- src/microbe_stage/BackgroundPlane.tscn | 59 ++++++++++++++------------ 2 files changed, 32 insertions(+), 29 deletions(-) diff --git a/src/microbe_stage/BackgroundPlane.cs b/src/microbe_stage/BackgroundPlane.cs index 1b182fa784..364f579a9f 100644 --- a/src/microbe_stage/BackgroundPlane.cs +++ b/src/microbe_stage/BackgroundPlane.cs @@ -40,7 +40,7 @@ public partial class BackgroundPlane : Node3D private ShaderMaterial canvasBlurMaterial = null!; #pragma warning restore CA2213 - private bool blurEnabledLastTime = true; + private bool blurEnabledLastTime = false; public float PlaneOffset { diff --git a/src/microbe_stage/BackgroundPlane.tscn b/src/microbe_stage/BackgroundPlane.tscn index 58827fb872..68b1470a01 100644 --- a/src/microbe_stage/BackgroundPlane.tscn +++ b/src/microbe_stage/BackgroundPlane.tscn @@ -12,27 +12,6 @@ [sub_resource type="PlaneMesh" id="1"] size = Vector2(800, 400) -[sub_resource type="ViewportTexture" id="ViewportTexture_duokn"] -viewport_path = NodePath("SubViewport2") - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_1sr76"] -resource_local_to_scene = true -render_priority = -100 -shader = ExtResource("1_iyjvf") -shader_parameter/blurStep = Vector2(0, 1) -shader_parameter/blurAmount = 1.0 -shader_parameter/textureAlbedo = SubResource("ViewportTexture_duokn") - -[sub_resource type="ViewportTexture" id="ViewportTexture_vbioy"] -viewport_path = NodePath("SubViewport") - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_tdrj5"] -resource_local_to_scene = true -shader = ExtResource("3_s3lms") -shader_parameter/blurStep = Vector2(1, 0) -shader_parameter/blurAmount = 1.0 -shader_parameter/textureAlbedo = SubResource("ViewportTexture_vbioy") - [sub_resource type="FastNoiseLite" id="FastNoiseLite_dor76"] frequency = 0.0035 @@ -65,16 +44,44 @@ shader_parameter/layer3 = ExtResource("8_yxu5g") shader_parameter/noiseTex1 = SubResource("NoiseTexture2D_f6pop") shader_parameter/noiseTex2 = SubResource("NoiseTexture2D_tsmw6") +[sub_resource type="ViewportTexture" id="ViewportTexture_duokn"] +viewport_path = NodePath("SubViewport2") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_1sr76"] +resource_local_to_scene = true +render_priority = -100 +shader = ExtResource("1_iyjvf") +shader_parameter/blurStep = Vector2(0, 1) +shader_parameter/blurAmount = 1.0 +shader_parameter/textureAlbedo = SubResource("ViewportTexture_duokn") + +[sub_resource type="ViewportTexture" id="ViewportTexture_vbioy"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_tdrj5"] +resource_local_to_scene = true +shader = ExtResource("3_s3lms") +shader_parameter/blurStep = Vector2(1, 0) +shader_parameter/blurAmount = 1.0 +shader_parameter/textureAlbedo = SubResource("ViewportTexture_vbioy") + [node name="BackgroundPlane" type="Node3D" node_paths=PackedStringArray("backgroundPlane", "blurPlane", "blurColorRect", "subViewport1", "subViewport2")] script = ExtResource("2_eprmh") -backgroundPlane = NodePath("SubViewport/BackgroundPlane") +backgroundPlane = NodePath("BackgroundPlane") blurPlane = NodePath("BlurPlane") blurColorRect = NodePath("SubViewport2/ColorRect") subViewport1 = NodePath("SubViewport") subViewport2 = NodePath("SubViewport2") +[node name="BackgroundPlane" type="CSGMesh3D" parent="."] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, -15) +cast_shadow = 0 +mesh = SubResource("1") +material = SubResource("2") + [node name="BlurPlane" type="CSGMesh3D" parent="."] transform = Transform3D(1, 0, 0, 0, -1.62921e-07, -1, 0, 1, -1.62921e-07, 0, 0, -20) +visible = false cast_shadow = 0 mesh = SubResource("1") material = SubResource("ShaderMaterial_1sr76") @@ -83,6 +90,7 @@ material = SubResource("ShaderMaterial_1sr76") disable_3d = true handle_input_locally = false size = Vector2i(1280, 720) +render_target_clear_mode = 1 [node name="ColorRect" type="ColorRect" parent="SubViewport2"] material = SubResource("ShaderMaterial_tdrj5") @@ -102,12 +110,7 @@ grow_vertical = 2 own_world_3d = true handle_input_locally = false size = Vector2i(1280, 720) - -[node name="BackgroundPlane" type="CSGMesh3D" parent="SubViewport"] -transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, -15) -cast_shadow = 0 -mesh = SubResource("1") -material = SubResource("2") +render_target_clear_mode = 1 [node name="Camera3D" type="Camera3D" parent="SubViewport"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 10) From a921ee98154d1774ec0325c04628942174888ee4 Mon Sep 17 00:00:00 2001 From: dligr Date: Sat, 7 Dec 2024 17:52:37 +0300 Subject: [PATCH 41/53] Not initialize a false variable --- src/microbe_stage/BackgroundPlane.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/microbe_stage/BackgroundPlane.cs b/src/microbe_stage/BackgroundPlane.cs index 364f579a9f..0b40bb64a7 100644 --- a/src/microbe_stage/BackgroundPlane.cs +++ b/src/microbe_stage/BackgroundPlane.cs @@ -40,7 +40,7 @@ public partial class BackgroundPlane : Node3D private ShaderMaterial canvasBlurMaterial = null!; #pragma warning restore CA2213 - private bool blurEnabledLastTime = false; + private bool blurEnabledLastTime; public float PlaneOffset { From 175db9afd4a6ced0933b5b3885e9cc048e81de58 Mon Sep 17 00:00:00 2001 From: dligr Date: Mon, 9 Dec 2024 15:46:52 +0300 Subject: [PATCH 42/53] Correctly define subviewports' default update mode --- src/microbe_stage/BackgroundPlane.tscn | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/microbe_stage/BackgroundPlane.tscn b/src/microbe_stage/BackgroundPlane.tscn index 68b1470a01..1ff26fbbc5 100644 --- a/src/microbe_stage/BackgroundPlane.tscn +++ b/src/microbe_stage/BackgroundPlane.tscn @@ -90,7 +90,7 @@ material = SubResource("ShaderMaterial_1sr76") disable_3d = true handle_input_locally = false size = Vector2i(1280, 720) -render_target_clear_mode = 1 +render_target_update_mode = 0 [node name="ColorRect" type="ColorRect" parent="SubViewport2"] material = SubResource("ShaderMaterial_tdrj5") @@ -110,7 +110,7 @@ grow_vertical = 2 own_world_3d = true handle_input_locally = false size = Vector2i(1280, 720) -render_target_clear_mode = 1 +render_target_update_mode = 0 [node name="Camera3D" type="Camera3D" parent="SubViewport"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 10) From a9812a077911f8fd4046dd2d07b5647dbf489d89 Mon Sep 17 00:00:00 2001 From: dligr Date: Mon, 9 Dec 2024 15:58:09 +0300 Subject: [PATCH 43/53] Reuse a function --- src/microbe_stage/MicrobeCamera.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/microbe_stage/MicrobeCamera.cs b/src/microbe_stage/MicrobeCamera.cs index 6a3f781c89..52541694ad 100644 --- a/src/microbe_stage/MicrobeCamera.cs +++ b/src/microbe_stage/MicrobeCamera.cs @@ -255,7 +255,7 @@ public void ResetHeight() public void SetCustomCurrentStatus(bool current) { Current = current; - backgroundPlane.SetVisibility(Current); + UpdateBackgroundVisibility(); // TODO: set listener node current status } From 1e63466b77c2208903f2f81eaed51368cd85a1af Mon Sep 17 00:00:00 2001 From: dligr Date: Mon, 9 Dec 2024 16:14:13 +0300 Subject: [PATCH 44/53] Fix a typo, make changes to update the distortion json property's default value --- src/engine/Settings.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/engine/Settings.cs b/src/engine/Settings.cs index 37b20a5a9a..7222f7f7d0 100644 --- a/src/engine/Settings.cs +++ b/src/engine/Settings.cs @@ -110,12 +110,11 @@ public enum StrainBarVisibility /// Enable or disable microbe background distortion shader. Should be 0 for disabled and around 0.3-0.9 when /// enabled. /// - [JsonProperty] + [JsonProperty(PropertyName = "MicrobeDistortionStrengthV2")] public SettingValue MicrobeDistortionStrength { get; private set; } = new(0.6f); /// /// The amount of blur applied to microbe backgrounds when distortion is on. - /// enabled. /// [JsonProperty] public SettingValue MicrobeBackgroundBlurStrength { get; private set; } = new(2.0f); From 3d22c5e8ead8449f25c566eef9e8716a726d7c53 Mon Sep 17 00:00:00 2001 From: dligr Date: Mon, 9 Dec 2024 16:26:58 +0300 Subject: [PATCH 45/53] Rename Subviewports and the BlurPlane on the Godot scene and in code --- src/microbe_stage/BackgroundPlane.cs | 24 ++++++++++++------------ src/microbe_stage/BackgroundPlane.tscn | 22 +++++++++++----------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/microbe_stage/BackgroundPlane.cs b/src/microbe_stage/BackgroundPlane.cs index 0b40bb64a7..18af95a68b 100644 --- a/src/microbe_stage/BackgroundPlane.cs +++ b/src/microbe_stage/BackgroundPlane.cs @@ -20,7 +20,7 @@ public partial class BackgroundPlane : Node3D private CsgMesh3D backgroundPlane = null!; [Export] - private CsgMesh3D blurPlane = null!; + private CsgMesh3D blurResultPlane = null!; [Export] private ColorRect blurColorRect = null!; @@ -28,10 +28,10 @@ public partial class BackgroundPlane : Node3D private GpuParticles3D? backgroundParticles; [Export] - private SubViewport subViewport1 = null!; + private SubViewport backgroundSubViewport = null!; [Export] - private SubViewport subViewport2 = null!; + private SubViewport partialBlurSubViewport = null!; private ShaderMaterial currentBackgroundMaterial = null!; @@ -51,7 +51,7 @@ public float PlaneOffset public override void _Ready() { var material = backgroundPlane.Material; - var planeBlurMaterial = blurPlane.Material; + var planeBlurMaterial = blurResultPlane.Material; var colorRectBlurMaterial = blurColorRect.Material; if (material == null || planeBlurMaterial == null || colorRectBlurMaterial == null) @@ -201,29 +201,29 @@ private void ApplyBlurEffect() if (enabled) { - blurPlane.Visible = true; + blurResultPlane.Visible = true; if (backgroundPlane.GetParent() == this) { RemoveChild(backgroundPlane); - subViewport1.AddChild(backgroundPlane); + backgroundSubViewport.AddChild(backgroundPlane); } - subViewport1.RenderTargetUpdateMode = SubViewport.UpdateMode.Always; - subViewport2.RenderTargetUpdateMode = SubViewport.UpdateMode.Always; + backgroundSubViewport.RenderTargetUpdateMode = SubViewport.UpdateMode.Always; + partialBlurSubViewport.RenderTargetUpdateMode = SubViewport.UpdateMode.Always; } else { if (backgroundPlane.GetParent() != this) { - subViewport1.RemoveChild(backgroundPlane); + backgroundSubViewport.RemoveChild(backgroundPlane); AddChild(backgroundPlane); } - subViewport1.RenderTargetUpdateMode = SubViewport.UpdateMode.Disabled; - subViewport2.RenderTargetUpdateMode = SubViewport.UpdateMode.Disabled; + backgroundSubViewport.RenderTargetUpdateMode = SubViewport.UpdateMode.Disabled; + partialBlurSubViewport.RenderTargetUpdateMode = SubViewport.UpdateMode.Disabled; - blurPlane.Visible = false; + blurResultPlane.Visible = false; } } diff --git a/src/microbe_stage/BackgroundPlane.tscn b/src/microbe_stage/BackgroundPlane.tscn index 1ff26fbbc5..626b43670a 100644 --- a/src/microbe_stage/BackgroundPlane.tscn +++ b/src/microbe_stage/BackgroundPlane.tscn @@ -45,7 +45,7 @@ shader_parameter/noiseTex1 = SubResource("NoiseTexture2D_f6pop") shader_parameter/noiseTex2 = SubResource("NoiseTexture2D_tsmw6") [sub_resource type="ViewportTexture" id="ViewportTexture_duokn"] -viewport_path = NodePath("SubViewport2") +viewport_path = NodePath("PartialBlurViewport") [sub_resource type="ShaderMaterial" id="ShaderMaterial_1sr76"] resource_local_to_scene = true @@ -56,7 +56,7 @@ shader_parameter/blurAmount = 1.0 shader_parameter/textureAlbedo = SubResource("ViewportTexture_duokn") [sub_resource type="ViewportTexture" id="ViewportTexture_vbioy"] -viewport_path = NodePath("SubViewport") +viewport_path = NodePath("BackgroundViewport") [sub_resource type="ShaderMaterial" id="ShaderMaterial_tdrj5"] resource_local_to_scene = true @@ -68,10 +68,10 @@ shader_parameter/textureAlbedo = SubResource("ViewportTexture_vbioy") [node name="BackgroundPlane" type="Node3D" node_paths=PackedStringArray("backgroundPlane", "blurPlane", "blurColorRect", "subViewport1", "subViewport2")] script = ExtResource("2_eprmh") backgroundPlane = NodePath("BackgroundPlane") -blurPlane = NodePath("BlurPlane") -blurColorRect = NodePath("SubViewport2/ColorRect") -subViewport1 = NodePath("SubViewport") -subViewport2 = NodePath("SubViewport2") +blurPlane = NodePath("BlurResultPlane") +blurColorRect = NodePath("PartialBlurViewport/ColorRect") +subViewport1 = NodePath("BackgroundViewport") +subViewport2 = NodePath("PartialBlurViewport") [node name="BackgroundPlane" type="CSGMesh3D" parent="."] transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, -15) @@ -79,20 +79,20 @@ cast_shadow = 0 mesh = SubResource("1") material = SubResource("2") -[node name="BlurPlane" type="CSGMesh3D" parent="."] +[node name="BlurResultPlane" type="CSGMesh3D" parent="."] transform = Transform3D(1, 0, 0, 0, -1.62921e-07, -1, 0, 1, -1.62921e-07, 0, 0, -20) visible = false cast_shadow = 0 mesh = SubResource("1") material = SubResource("ShaderMaterial_1sr76") -[node name="SubViewport2" type="SubViewport" parent="."] +[node name="PartialBlurViewport" type="SubViewport" parent="."] disable_3d = true handle_input_locally = false size = Vector2i(1280, 720) render_target_update_mode = 0 -[node name="ColorRect" type="ColorRect" parent="SubViewport2"] +[node name="ColorRect" type="ColorRect" parent="PartialBlurViewport"] material = SubResource("ShaderMaterial_tdrj5") anchors_preset = 8 anchor_left = 0.5 @@ -106,12 +106,12 @@ offset_bottom = 360.0 grow_horizontal = 2 grow_vertical = 2 -[node name="SubViewport" type="SubViewport" parent="."] +[node name="BackgroundViewport" type="SubViewport" parent="."] own_world_3d = true handle_input_locally = false size = Vector2i(1280, 720) render_target_update_mode = 0 -[node name="Camera3D" type="Camera3D" parent="SubViewport"] +[node name="Camera3D" type="Camera3D" parent="BackgroundViewport"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 10) fov = 90.0 From 05df47229a7a67f46698e6b3f2acc1b6c6e460c1 Mon Sep 17 00:00:00 2001 From: dligr Date: Mon, 9 Dec 2024 16:59:36 +0300 Subject: [PATCH 46/53] Fill in BackgroundPlane's parameters to work with the new names --- src/microbe_stage/BackgroundPlane.tscn | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/microbe_stage/BackgroundPlane.tscn b/src/microbe_stage/BackgroundPlane.tscn index 626b43670a..a4823969fe 100644 --- a/src/microbe_stage/BackgroundPlane.tscn +++ b/src/microbe_stage/BackgroundPlane.tscn @@ -65,13 +65,13 @@ shader_parameter/blurStep = Vector2(1, 0) shader_parameter/blurAmount = 1.0 shader_parameter/textureAlbedo = SubResource("ViewportTexture_vbioy") -[node name="BackgroundPlane" type="Node3D" node_paths=PackedStringArray("backgroundPlane", "blurPlane", "blurColorRect", "subViewport1", "subViewport2")] +[node name="BackgroundPlane" type="Node3D" node_paths=PackedStringArray("backgroundPlane", "blurResultPlane", "blurColorRect", "backgroundSubViewport", "partialBlurSubViewport")] script = ExtResource("2_eprmh") backgroundPlane = NodePath("BackgroundPlane") -blurPlane = NodePath("BlurResultPlane") +blurResultPlane = NodePath("BlurResultPlane") blurColorRect = NodePath("PartialBlurViewport/ColorRect") -subViewport1 = NodePath("BackgroundViewport") -subViewport2 = NodePath("PartialBlurViewport") +backgroundSubViewport = NodePath("BackgroundViewport") +partialBlurSubViewport = NodePath("PartialBlurViewport") [node name="BackgroundPlane" type="CSGMesh3D" parent="."] transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, -15) From 3a04bdcd5b7da934db2165c0452a8e0ab89fb6fa Mon Sep 17 00:00:00 2001 From: dligr Date: Tue, 10 Dec 2024 22:36:45 +0300 Subject: [PATCH 47/53] Remove some unnecessary checks --- src/microbe_stage/BackgroundPlane.cs | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/microbe_stage/BackgroundPlane.cs b/src/microbe_stage/BackgroundPlane.cs index 18af95a68b..684f37a36e 100644 --- a/src/microbe_stage/BackgroundPlane.cs +++ b/src/microbe_stage/BackgroundPlane.cs @@ -203,22 +203,16 @@ private void ApplyBlurEffect() { blurResultPlane.Visible = true; - if (backgroundPlane.GetParent() == this) - { - RemoveChild(backgroundPlane); - backgroundSubViewport.AddChild(backgroundPlane); - } + RemoveChild(backgroundPlane); + backgroundSubViewport.AddChild(backgroundPlane); backgroundSubViewport.RenderTargetUpdateMode = SubViewport.UpdateMode.Always; partialBlurSubViewport.RenderTargetUpdateMode = SubViewport.UpdateMode.Always; } else { - if (backgroundPlane.GetParent() != this) - { - backgroundSubViewport.RemoveChild(backgroundPlane); - AddChild(backgroundPlane); - } + backgroundSubViewport.RemoveChild(backgroundPlane); + AddChild(backgroundPlane); backgroundSubViewport.RenderTargetUpdateMode = SubViewport.UpdateMode.Disabled; partialBlurSubViewport.RenderTargetUpdateMode = SubViewport.UpdateMode.Disabled; From d093fc6cb59a904214fb082fdad06c1d2182fdf1 Mon Sep 17 00:00:00 2001 From: dligr Date: Tue, 10 Dec 2024 22:52:16 +0300 Subject: [PATCH 48/53] Move some functions where they used to be for a cleaner diff --- src/microbe_stage/MicrobeCamera.cs | 58 +++++++++++++++--------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/src/microbe_stage/MicrobeCamera.cs b/src/microbe_stage/MicrobeCamera.cs index 52541694ad..4a4bb0934f 100644 --- a/src/microbe_stage/MicrobeCamera.cs +++ b/src/microbe_stage/MicrobeCamera.cs @@ -296,35 +296,6 @@ public void SetBackground(Background background) backgroundPlane.SetBackground(background); } - private void UpdateBackgroundVisibility() - { - backgroundPlane.SetVisibility(Current); - } - - private void UpdateLightLevel(float delta) - { - if (lastSetLightLevel < lightLevel) - { - lastSetLightLevel += LightLevelInterpolateSpeed * delta; - - if (lastSetLightLevel > lightLevel) - lastSetLightLevel = lightLevel; - } - else if (lastSetLightLevel > lightLevel) - { - lastSetLightLevel -= LightLevelInterpolateSpeed * delta; - - if (lastSetLightLevel < lightLevel) - lastSetLightLevel = lightLevel; - } - else - { - lastSetLightLevel = lightLevel; - } - - backgroundPlane.UpdateLightLevel(lastSetLightLevel); - } - private void UpdateCursorWorldPos() { var worldPlane = new Plane(new Vector3(0, 1, 0), 0.0f); @@ -387,4 +358,33 @@ private Vector2 ApplyScreenEffects(Vector2 mousePos, Vector2 viewportSize) return mousePos; } + + private void UpdateBackgroundVisibility() + { + backgroundPlane.SetVisibility(Current); + } + + private void UpdateLightLevel(float delta) + { + if (lastSetLightLevel < lightLevel) + { + lastSetLightLevel += LightLevelInterpolateSpeed * delta; + + if (lastSetLightLevel > lightLevel) + lastSetLightLevel = lightLevel; + } + else if (lastSetLightLevel > lightLevel) + { + lastSetLightLevel -= LightLevelInterpolateSpeed * delta; + + if (lastSetLightLevel < lightLevel) + lastSetLightLevel = lightLevel; + } + else + { + lastSetLightLevel = lightLevel; + } + + backgroundPlane.UpdateLightLevel(lastSetLightLevel); + } } From c54034bca882557ecd54b651f3c18998f814d992 Mon Sep 17 00:00:00 2001 From: dligr Date: Tue, 10 Dec 2024 22:59:46 +0300 Subject: [PATCH 49/53] Fix lighting not being updated --- src/microbe_stage/MicrobeCamera.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/microbe_stage/MicrobeCamera.cs b/src/microbe_stage/MicrobeCamera.cs index 4a4bb0934f..6eff7a23aa 100644 --- a/src/microbe_stage/MicrobeCamera.cs +++ b/src/microbe_stage/MicrobeCamera.cs @@ -191,7 +191,7 @@ public override void _Process(double delta) // ReSharper disable once CompareOfFloatsByEqualityOperator if (lastSetLightLevel != lightLevel) { - backgroundPlane.UpdateLightLevel((float)delta); + UpdateLightLevel((float)delta); } if (AutoProcessWhilePaused && PauseManager.Instance.Paused) From ad8fa848cffdfbfec85156e4d81b198fd9ad7187 Mon Sep 17 00:00:00 2001 From: dligr Date: Thu, 12 Dec 2024 22:54:00 +0300 Subject: [PATCH 50/53] Make a method private --- src/microbe_stage/BackgroundPlane.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/microbe_stage/BackgroundPlane.cs b/src/microbe_stage/BackgroundPlane.cs index 684f37a36e..78c76a0c6f 100644 --- a/src/microbe_stage/BackgroundPlane.cs +++ b/src/microbe_stage/BackgroundPlane.cs @@ -119,11 +119,6 @@ public void SetBackground(Background background) OnDisplayBackgroundParticlesChanged(Settings.Instance.DisplayBackgroundParticles); } - public void SetWorldPosition(Vector2 position) - { - currentBackgroundMaterial.SetShaderParameter(worldPositionParameter, position); - } - public void SetVisibility(bool visible) { Visible = visible; @@ -151,6 +146,11 @@ protected override void Dispose(bool disposing) base.Dispose(disposing); } + private void SetWorldPosition(Vector2 position) + { + currentBackgroundMaterial.SetShaderParameter(worldPositionParameter, position); + } + private void OnDisplayBackgroundParticlesChanged(bool displayed) { if (backgroundParticles == null) From 5b6c4c9fc3bfdb278e8bd97c74f440b048631626 Mon Sep 17 00:00:00 2001 From: dligr Date: Thu, 12 Dec 2024 23:27:29 +0300 Subject: [PATCH 51/53] Update the localizations because of a layout change --- locale/af.po | 2 +- locale/ar.po | 2 +- locale/be.po | 2 +- locale/bg.po | 2 +- locale/bn.po | 2 +- locale/ca.po | 2 +- locale/cs.po | 2 +- locale/da.po | 2 +- locale/de.po | 2 +- locale/el.po | 2 +- locale/en.po | 2 +- locale/eo.po | 2 +- locale/es.po | 2 +- locale/es_AR.po | 2 +- locale/et.po | 2 +- locale/fi.po | 2 +- locale/fr.po | 2 +- locale/frm.po | 2 +- locale/he.po | 2 +- locale/hr.po | 2 +- locale/hu.po | 2 +- locale/id.po | 2 +- locale/it.po | 2 +- locale/ka.po | 2 +- locale/ko.po | 2 +- locale/la.po | 2 +- locale/lb_LU.po | 2 +- locale/lt.po | 2 +- locale/lv.po | 2 +- locale/messages.pot | 358 ++++++++++++++++++++++---------------------- locale/mk.po | 2 +- locale/nb_NO.po | 2 +- locale/nl.po | 2 +- locale/nl_BE.po | 2 +- locale/pl.po | 2 +- locale/pt_BR.po | 2 +- locale/pt_PT.po | 2 +- locale/ro.po | 2 +- locale/ru.po | 2 +- locale/si_LK.po | 2 +- locale/sk.po | 2 +- locale/sr_Cyrl.po | 2 +- locale/sr_Latn.po | 2 +- locale/sv.po | 2 +- locale/th_TH.po | 2 +- locale/tok.po | 2 +- locale/tr.po | 2 +- locale/uk.po | 2 +- locale/vi.po | 2 +- locale/zh_CN.po | 2 +- locale/zh_TW.po | 2 +- 51 files changed, 229 insertions(+), 229 deletions(-) diff --git a/locale/af.po b/locale/af.po index 9f20baf8fa..f7107ffdb2 100644 --- a/locale/af.po +++ b/locale/af.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" diff --git a/locale/ar.po b/locale/ar.po index 1bf1ae4e03..0553057571 100644 --- a/locale/ar.po +++ b/locale/ar.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2023-03-13 09:01+0000\n" "Last-Translator: Xradiation \n" "Language-Team: Arabic \n" diff --git a/locale/be.po b/locale/be.po index f47647fe62..5e55654d66 100644 --- a/locale/be.po +++ b/locale/be.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Thrive VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2023-09-21 09:24+0000\n" "Last-Translator: Henri Hyyryläinen \n" "Language-Team: Belarusian \n" diff --git a/locale/bg.po b/locale/bg.po index da29442047..bb5e4270c2 100644 --- a/locale/bg.po +++ b/locale/bg.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Bulgarian \n" diff --git a/locale/bn.po b/locale/bn.po index 5f85a242ad..b4643a991f 100644 --- a/locale/bn.po +++ b/locale/bn.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Thrive VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2023-09-10 12:18+0000\n" "Last-Translator: Mahbeer Alam Sarker \n" "Language-Team: Bengali \n" diff --git a/locale/ca.po b/locale/ca.po index 7589604cd4..24885857ca 100644 --- a/locale/ca.po +++ b/locale/ca.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Catalan \n" diff --git a/locale/cs.po b/locale/cs.po index aae5fb4732..6a411a83e5 100644 --- a/locale/cs.po +++ b/locale/cs.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-11-16 19:09+0000\n" "Last-Translator: Adam David \n" "Language-Team: Czech \n" diff --git a/locale/da.po b/locale/da.po index 7f7696e568..67847df1bf 100644 --- a/locale/da.po +++ b/locale/da.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-06-09 13:22+0000\n" "Last-Translator: Magnus Norling Svane \n" "Language-Team: Danish \n" diff --git a/locale/de.po b/locale/de.po index da55a4a5c0..a2b9a80ecb 100644 --- a/locale/de.po +++ b/locale/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: German \n" diff --git a/locale/el.po b/locale/el.po index fb94e3ef9a..c83b578907 100644 --- a/locale/el.po +++ b/locale/el.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2022-03-31 05:02+0000\n" "Last-Translator: Apostolos Paschidis \n" "Language-Team: Greek \n" diff --git a/locale/en.po b/locale/en.po index 13793a1aaf..08305354cb 100644 --- a/locale/en.po +++ b/locale/en.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-11-26 17:26+0200\n" "Last-Translator: Henri Hyyryläinen \n" "Language-Team: English \n" diff --git a/locale/eo.po b/locale/eo.po index 9027540675..79076c6847 100644 --- a/locale/eo.po +++ b/locale/eo.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Esperanto \n" diff --git a/locale/es.po b/locale/es.po index 13b93ff4f9..2f1f003984 100644 --- a/locale/es.po +++ b/locale/es.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Spanish \n" diff --git a/locale/es_AR.po b/locale/es_AR.po index aef887b3d1..cc85d2219e 100644 --- a/locale/es_AR.po +++ b/locale/es_AR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-10-16 05:52+0000\n" "Last-Translator: fideos con queso \n" "Language-Team: Spanish (Argentina) \n" diff --git a/locale/et.po b/locale/et.po index 27fa52e3b7..e48df93553 100644 --- a/locale/et.po +++ b/locale/et.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Estonian \n" diff --git a/locale/fi.po b/locale/fi.po index 2ffb88d9e9..7681295b91 100644 --- a/locale/fi.po +++ b/locale/fi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-11-04 07:58+0000\n" "Last-Translator: Henri Hyyryläinen \n" "Language-Team: Finnish \n" diff --git a/locale/fr.po b/locale/fr.po index 49641c2582..0aba03f0cc 100644 --- a/locale/fr.po +++ b/locale/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-10-31 16:02+0000\n" "Last-Translator: Anonymous \n" "Language-Team: French \n" diff --git a/locale/frm.po b/locale/frm.po index 4d7aeeab25..b8c32b11c8 100644 --- a/locale/frm.po +++ b/locale/frm.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" diff --git a/locale/he.po b/locale/he.po index 981aa47818..53ecd183cd 100644 --- a/locale/he.po +++ b/locale/he.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Hebrew \n" diff --git a/locale/hr.po b/locale/hr.po index c3cd224683..45f234c08a 100644 --- a/locale/hr.po +++ b/locale/hr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-09-17 07:03+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Croatian \n" diff --git a/locale/hu.po b/locale/hu.po index 5fc34f4e0a..009e9b07b4 100644 --- a/locale/hu.po +++ b/locale/hu.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Hungarian \n" diff --git a/locale/id.po b/locale/id.po index 8374b8723f..77594b6d7f 100644 --- a/locale/id.po +++ b/locale/id.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Indonesian \n" diff --git a/locale/it.po b/locale/it.po index 7db3fe7264..768e952d7d 100644 --- a/locale/it.po +++ b/locale/it.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Italian \n" diff --git a/locale/ka.po b/locale/ka.po index 88e2b06d05..fcf9fa5ebd 100644 --- a/locale/ka.po +++ b/locale/ka.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-11-22 10:08+0000\n" "Last-Translator: NorwayFun \n" "Language-Team: Georgian \n" diff --git a/locale/ko.po b/locale/ko.po index ccacf527a6..09b57ec885 100644 --- a/locale/ko.po +++ b/locale/ko.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Korean \n" diff --git a/locale/la.po b/locale/la.po index adbf92e844..3106d386bf 100644 --- a/locale/la.po +++ b/locale/la.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2023-04-25 19:02+0000\n" "Last-Translator: AliquisDeNusquam \n" "Language-Team: Latin \n" diff --git a/locale/lb_LU.po b/locale/lb_LU.po index 0b2aadf092..7502b1415e 100644 --- a/locale/lb_LU.po +++ b/locale/lb_LU.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Luxembourgish \n" diff --git a/locale/lt.po b/locale/lt.po index 1173b6c1b1..e00da91b16 100644 --- a/locale/lt.po +++ b/locale/lt.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2023-10-12 00:43+0000\n" "Last-Translator: Irmantas \n" "Language-Team: Lithuanian \n" diff --git a/locale/lv.po b/locale/lv.po index b460be9d72..f21b0854e8 100644 --- a/locale/lv.po +++ b/locale/lv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Latvian \n" diff --git a/locale/messages.pot b/locale/messages.pot index 92604b0ad1..a2b21bb3aa 100644 --- a/locale/messages.pot +++ b/locale/messages.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Thrive VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Thrive.Scripts 1.2.0.0\n" -#: ../src/general/OptionsMenu.tscn:1528 +#: ../src/general/OptionsMenu.tscn:1525 msgid "2D_MOVEMENT_TYPE_SELECTION" msgstr "" @@ -29,7 +29,7 @@ msgstr "" msgid "3D_MOVEMENT" msgstr "" -#: ../src/general/OptionsMenu.tscn:1554 +#: ../src/general/OptionsMenu.tscn:1551 msgid "3D_MOVEMENT_TYPE_SELECTION" msgstr "" @@ -97,7 +97,7 @@ msgstr "" msgid "ACTIVE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1070 +#: ../src/general/OptionsMenu.tscn:1067 msgid "ACTIVE_THREAD_COUNT" msgstr "" @@ -191,11 +191,11 @@ msgstr "" msgid "ALT" msgstr "" -#: ../src/general/OptionsMenu.tscn:640 +#: ../src/general/OptionsMenu.tscn:637 msgid "ALWAYS_VISIBLE" msgstr "" -#: ../src/general/OptionsMenu.tscn:731 +#: ../src/general/OptionsMenu.tscn:728 msgid "AMBIANCE_VOLUME" msgstr "" @@ -204,11 +204,11 @@ msgstr "" msgid "AMMONIA" msgstr "" -#: ../src/general/OptionsMenu.tscn:1680 +#: ../src/general/OptionsMenu.tscn:1677 msgid "AMOUNT_OF_AUTOSAVE_TO_KEEP" msgstr "" -#: ../src/general/OptionsMenu.tscn:1700 +#: ../src/general/OptionsMenu.tscn:1697 msgid "AMOUNT_OF_QUICKSAVE_TO_KEEP" msgstr "" @@ -237,11 +237,11 @@ msgstr "" msgid "APRIL" msgstr "" -#: ../src/general/OptionsMenu.tscn:1953 +#: ../src/general/OptionsMenu.tscn:1950 msgid "ARE_YOU_SURE_TO_RESET_ALL_SETTINGS" msgstr "" -#: ../src/general/OptionsMenu.tscn:1959 +#: ../src/general/OptionsMenu.tscn:1956 msgid "ARE_YOU_SURE_TO_RESET_INPUT_SETTINGS" msgstr "" @@ -282,7 +282,7 @@ msgstr "" msgid "ASSEMBLY_REQUIRED_WITH_HARMONY" msgstr "" -#: ../src/general/OptionsMenu.tscn:1081 +#: ../src/general/OptionsMenu.tscn:1078 msgid "ASSUME_HYPERTHREADING" msgstr "" @@ -348,7 +348,7 @@ msgstr "" msgid "AT_CURSOR" msgstr "" -#: ../src/general/OptionsMenu.tscn:806 +#: ../src/general/OptionsMenu.tscn:803 msgid "AUDIO_OUTPUT_DEVICE" msgstr "" @@ -356,7 +356,7 @@ msgstr "" msgid "AUGUST" msgstr "" -#: ../src/general/OptionsMenu.tscn:579 ../src/general/OptionsMenu.tscn:1543 +#: ../src/general/OptionsMenu.tscn:576 ../src/general/OptionsMenu.tscn:1540 msgid "AUTO" msgstr "" @@ -381,7 +381,7 @@ msgstr "" msgid "AUTO-EVO_STEPS_DONE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1673 +#: ../src/general/OptionsMenu.tscn:1670 msgid "AUTOSAVE_DURING_THE_GAME" msgstr "" @@ -426,7 +426,7 @@ msgstr "" msgid "AUTO_MOVE_FORWARDS" msgstr "" -#: ../src/general/OptionsMenu.cs:1159 ../src/general/OptionsMenu.tscn:333 +#: ../src/general/OptionsMenu.cs:1163 ../src/general/OptionsMenu.tscn:334 msgid "AUTO_RESOLUTION" msgstr "" @@ -456,7 +456,7 @@ msgstr "" #: ../src/auto-evo/AutoEvoExploringTool.tscn:685 #: ../src/general/MainMenu.tscn:417 ../src/general/MainMenu.tscn:476 #: ../src/general/MainMenu.tscn:524 ../src/general/MainMenu.tscn:827 -#: ../src/general/NewGameSettings.tscn:968 ../src/general/OptionsMenu.tscn:1916 +#: ../src/general/NewGameSettings.tscn:968 ../src/general/OptionsMenu.tscn:1913 #: ../src/general/PauseMenu.tscn:291 #: ../src/microbe_stage/gui/ExtinctionBox.tscn:72 #: ../src/modding/ModManager.tscn:83 ../src/saving/NewSaveMenu.tscn:122 @@ -464,7 +464,7 @@ msgstr "" msgid "BACK" msgstr "" -#: ../src/general/OptionsMenu.tscn:459 +#: ../src/general/OptionsMenu.tscn:402 msgid "BACKGROUND_BLUR" msgstr "" @@ -630,7 +630,7 @@ msgstr "" msgid "BINDING_AGENT_PROCESSES_DESCRIPTION" msgstr "" -#: ../src/general/OptionsMenu.tscn:1394 ../src/general/OptionsMenu.tscn:1478 +#: ../src/general/OptionsMenu.tscn:1391 ../src/general/OptionsMenu.tscn:1475 msgid "BIND_AXES_SENSITIVITY" msgstr "" @@ -642,7 +642,7 @@ msgstr "" msgid "BIOME_LABEL" msgstr "" -#: ../src/general/OptionsMenu.tscn:433 +#: ../src/general/OptionsMenu.tscn:456 msgid "BLOOM_RENDER_EFFECT" msgstr "" @@ -684,23 +684,23 @@ msgstr "" msgid "BY_REVOLUTIONARY_GAMES" msgstr "" -#: ../src/general/OptionsMenu.tscn:1271 +#: ../src/general/OptionsMenu.tscn:1268 msgid "CACHE_DISK_MAX_TIME" msgstr "" -#: ../src/general/OptionsMenu.tscn:1296 +#: ../src/general/OptionsMenu.tscn:1293 msgid "CACHE_MEMORY_MAX_ITEMS" msgstr "" -#: ../src/general/OptionsMenu.tscn:1246 +#: ../src/general/OptionsMenu.tscn:1243 msgid "CACHE_TIME_MEMORY" msgstr "" -#: ../src/general/OptionsMenu.tscn:1320 +#: ../src/general/OptionsMenu.tscn:1317 msgid "CACHE_TIME_MEMORY_ONLY" msgstr "" -#: ../src/general/OptionsMenu.tscn:1160 +#: ../src/general/OptionsMenu.tscn:1157 msgid "CACHING_TITLE" msgstr "" @@ -719,7 +719,7 @@ msgstr "" #: ../src/awakening_stage/gui/InteractablePopup.tscn:64 #: ../src/awakening_stage/gui/SelectBuildingPopup.tscn:47 -#: ../src/general/OptionsMenu.tscn:2017 +#: ../src/general/OptionsMenu.tscn:2014 #: ../src/gui_common/dialogs/CustomConfirmationDialog.tscn:19 #: ../src/gui_common/dialogs/CustomConfirmationDialog.tscn:71 #: ../src/microbe_stage/editor/EndosymbiosisProgressDisplay.tscn:67 @@ -864,7 +864,7 @@ msgstr "" msgid "CHEATS" msgstr "" -#: ../src/general/OptionsMenu.tscn:1739 +#: ../src/general/OptionsMenu.tscn:1736 msgid "CHEAT_KEYS_ENABLED" msgstr "" @@ -964,7 +964,7 @@ msgstr "" msgid "CHOSEN_FILENAME_ALREADY_EXISTS" msgstr "" -#: ../src/general/OptionsMenu.tscn:408 +#: ../src/general/OptionsMenu.tscn:431 msgid "CHROMATIC_ABERRATION" msgstr "" @@ -1004,13 +1004,13 @@ msgstr "" msgid "CLEAN_UP_OLD_SAVES" msgstr "" -#: ../src/general/OptionsMenu.tscn:1202 +#: ../src/general/OptionsMenu.tscn:1199 msgid "CLEAR_CACHE" msgstr "" #: ../src/benchmark/microbe/CloudBenchmark.tscn:141 #: ../src/benchmark/microbe/MicrobeBenchmark.tscn:112 -#: ../src/general/OptionsMenu.tscn:2073 +#: ../src/general/OptionsMenu.tscn:2070 #: ../src/gui_common/art_gallery/GalleryViewer.tscn:95 #: ../src/gui_common/charts/line/LineChart.tscn:215 #: ../src/gui_common/dialogs/LicensesDisplay.tscn:93 @@ -1025,7 +1025,7 @@ msgstr "" msgid "CLOSE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1965 +#: ../src/general/OptionsMenu.tscn:1962 msgid "CLOSE_OPTIONS" msgstr "" @@ -1038,11 +1038,11 @@ msgstr "" msgid "CLOUD_BENCHMARK" msgstr "" -#: ../src/general/OptionsMenu.tscn:942 +#: ../src/general/OptionsMenu.tscn:939 msgid "CLOUD_RESOLUTION_DIVISOR" msgstr "" -#: ../src/general/OptionsMenu.tscn:898 +#: ../src/general/OptionsMenu.tscn:895 msgid "CLOUD_SIMULATION_MINIMUM_INTERVAL" msgstr "" @@ -1062,7 +1062,7 @@ msgstr "" msgid "COLOUR" msgstr "" -#: ../src/general/OptionsMenu.tscn:377 +#: ../src/general/OptionsMenu.tscn:378 msgid "COLOURBLIND_CORRECTION" msgstr "" @@ -1139,7 +1139,7 @@ msgstr "" msgid "COMMUNITY_WIKI_BUTTON_TOOLTIP" msgstr "" -#: ../src/general/OptionsMenu.tscn:1897 +#: ../src/general/OptionsMenu.tscn:1894 msgid "COMPILED_AT_COLON" msgstr "" @@ -1192,7 +1192,7 @@ msgstr "" msgid "COMPOUND_BALANCE_TOOLTIP" msgstr "" -#: ../src/general/OptionsMenu.tscn:881 +#: ../src/general/OptionsMenu.tscn:878 msgid "COMPOUND_CLOUDS" msgstr "" @@ -1519,7 +1519,7 @@ msgstr "" msgid "CONTROLLER_BUTTON_XBOX_Y" msgstr "" -#: ../src/general/OptionsMenu.tscn:1521 +#: ../src/general/OptionsMenu.tscn:1518 msgid "CONTROLLER_DEADZONES" msgstr "" @@ -1532,11 +1532,11 @@ msgstr "" msgid "CONTROLLER_DEADZONE_COLON" msgstr "" -#: ../src/general/OptionsMenu.tscn:562 +#: ../src/general/OptionsMenu.tscn:559 msgid "CONTROLLER_PROMPT_TYPE_SETTING" msgstr "" -#: ../src/general/OptionsMenu.tscn:1468 +#: ../src/general/OptionsMenu.tscn:1465 msgid "CONTROLLER_SENSITIVITY" msgstr "" @@ -1553,15 +1553,15 @@ msgstr "" msgid "COPY_RESULTS" msgstr "" -#: ../src/general/OptionsMenu.tscn:391 +#: ../src/general/OptionsMenu.tscn:392 msgid "CORRECTION_PROTANOPE" msgstr "" -#: ../src/general/OptionsMenu.tscn:393 +#: ../src/general/OptionsMenu.tscn:394 msgid "CORRECTION_TRITANOPE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1041 +#: ../src/general/OptionsMenu.tscn:1038 msgid "CPU_THREADS" msgstr "" @@ -1684,11 +1684,11 @@ msgstr "" msgid "CTRL" msgstr "" -#: ../src/general/OptionsMenu.tscn:1189 +#: ../src/general/OptionsMenu.tscn:1186 msgid "CURRENT_CACHE_SIZE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1187 ../src/general/OptionsMenu.tscn:1193 +#: ../src/general/OptionsMenu.tscn:1184 ../src/general/OptionsMenu.tscn:1190 msgid "CURRENT_CACHE_SIZE_TOOLTIP" msgstr "" @@ -1717,7 +1717,7 @@ msgstr "" msgid "CURRENT_WORLD_STATISTICS" msgstr "" -#: ../src/general/OptionsMenu.tscn:1752 +#: ../src/general/OptionsMenu.tscn:1749 msgid "CUSTOM_USERNAME" msgstr "" @@ -1802,7 +1802,7 @@ msgstr "" msgid "DECREASE_ITEM_SIZE" msgstr "" -#: ../src/general/OptionsMenu.cs:1633 +#: ../src/general/OptionsMenu.cs:1637 msgid "DEFAULT_AUDIO_OUTPUT_DEVICE" msgstr "" @@ -1876,7 +1876,7 @@ msgstr "" msgid "DESPAWN_ENTITIES" msgstr "" -#: ../src/general/OptionsMenu.tscn:1058 +#: ../src/general/OptionsMenu.tscn:1055 msgid "DETECTED_CPU_COUNT" msgstr "" @@ -1968,7 +1968,7 @@ msgstr "" msgid "DIGESTION_SPEED_VALUE" msgstr "" -#: ../src/general/OptionsMenu.tscn:312 +#: ../src/general/OptionsMenu.tscn:313 msgid "DISABLED" msgstr "" @@ -1976,7 +1976,7 @@ msgstr "" msgid "DISABLE_ALL" msgstr "" -#: ../src/general/OptionsMenu.tscn:2006 +#: ../src/general/OptionsMenu.tscn:2003 msgid "DISCARD_AND_CONTINUE" msgstr "" @@ -2016,15 +2016,15 @@ msgstr "" msgid "DISCORD_TOOLTIP" msgstr "" -#: ../src/general/OptionsMenu.tscn:1174 +#: ../src/general/OptionsMenu.tscn:1171 msgid "DISK_CACHE_TOOLTIP" msgstr "" -#: ../src/general/OptionsMenu.tscn:1804 +#: ../src/general/OptionsMenu.tscn:1801 msgid "DISMISSED_POPUPS_COLON" msgstr "" -#: ../src/general/OptionsMenu.tscn:1802 ../src/general/OptionsMenu.tscn:1808 +#: ../src/general/OptionsMenu.tscn:1799 ../src/general/OptionsMenu.tscn:1805 msgid "DISMISSED_POPUPS_EXPLANATION" msgstr "" @@ -2036,31 +2036,31 @@ msgstr "" msgid "DISMISS_WARNING_PERMANENTLY" msgstr "" -#: ../src/general/OptionsMenu.tscn:492 +#: ../src/general/OptionsMenu.tscn:489 msgid "DISPLAY_3D_MENU_BACKGROUNDS" msgstr "" -#: ../src/general/OptionsMenu.tscn:598 +#: ../src/general/OptionsMenu.tscn:595 msgid "DISPLAY_ABILITIES_BAR" msgstr "" -#: ../src/general/OptionsMenu.tscn:485 +#: ../src/general/OptionsMenu.tscn:482 msgid "DISPLAY_BACKGROUND_DISTORTION_EFFECT" msgstr "" -#: ../src/general/OptionsMenu.tscn:480 +#: ../src/general/OptionsMenu.tscn:477 msgid "DISPLAY_BACKGROUND_PARTICLES" msgstr "" -#: ../src/general/OptionsMenu.cs:1176 +#: ../src/general/OptionsMenu.cs:1180 msgid "DISPLAY_DRIVER_OPENGL" msgstr "" -#: ../src/general/OptionsMenu.cs:1173 +#: ../src/general/OptionsMenu.cs:1177 msgid "DISPLAY_DRIVER_VULKAN" msgstr "" -#: ../src/general/OptionsMenu.tscn:613 +#: ../src/general/OptionsMenu.tscn:610 msgid "DISPLAY_PART_NAMES" msgstr "" @@ -2228,7 +2228,7 @@ msgstr "" msgid "EASTER_EGGS_EXPLANATION" msgstr "" -#: ../src/general/OptionsMenu.tscn:1586 +#: ../src/general/OptionsMenu.tscn:1583 msgid "EDGE_PAN_SPEED" msgstr "" @@ -2253,7 +2253,7 @@ msgstr "" msgid "EDITOR_TUTORIAL_EDITOR_TEXT" msgstr "" -#: ../src/general/OptionsMenu.tscn:317 +#: ../src/general/OptionsMenu.tscn:318 msgid "EIGHT_TIMES" msgstr "" @@ -2282,7 +2282,7 @@ msgstr "" msgid "ENABLE_EDITOR" msgstr "" -#: ../src/general/OptionsMenu.tscn:608 +#: ../src/general/OptionsMenu.tscn:605 msgid "ENABLE_GUI_LIGHT_EFFECTS" msgstr "" @@ -2426,7 +2426,7 @@ msgstr "" msgid "EQUIPMENT_TYPE_AXE" msgstr "" -#: ../src/general/OptionsMenu.tscn:2022 ../src/general/OptionsMenu.tscn:2029 +#: ../src/general/OptionsMenu.tscn:2019 ../src/general/OptionsMenu.tscn:2026 msgid "ERROR" msgstr "" @@ -2438,7 +2438,7 @@ msgstr "" msgid "ERROR_CREATING_INFO_FILE" msgstr "" -#: ../src/general/OptionsMenu.tscn:2027 +#: ../src/general/OptionsMenu.tscn:2024 msgid "ERROR_FAILED_TO_SAVE_NEW_SETTINGS" msgstr "" @@ -2482,11 +2482,11 @@ msgstr "" msgid "EVOLUTIONARY_TREE_BUILD_FAILED" msgstr "" -#: ../src/general/OptionsMenu.tscn:1881 +#: ../src/general/OptionsMenu.tscn:1878 msgid "EXACT_VERSION_COLON" msgstr "" -#: ../src/general/OptionsMenu.tscn:1879 ../src/general/OptionsMenu.tscn:1887 +#: ../src/general/OptionsMenu.tscn:1876 ../src/general/OptionsMenu.tscn:1884 msgid "EXACT_VERSION_TOOLTIP" msgstr "" @@ -2828,7 +2828,7 @@ msgstr "" msgid "FOSSIL_DELETION_FAILED_DESCRIPTION" msgstr "" -#: ../src/general/OptionsMenu.tscn:315 +#: ../src/general/OptionsMenu.tscn:316 msgid "FOUR_TIMES" msgstr "" @@ -2859,7 +2859,7 @@ msgstr "" msgid "FREE_GLUCOSE_CLOUD_EXPLANATION" msgstr "" -#: ../src/general/OptionsMenu.tscn:277 +#: ../src/general/OptionsMenu.tscn:278 msgid "FULLSCREEN" msgstr "" @@ -2900,7 +2900,7 @@ msgstr "" msgid "GITHUB_TOOLTIP" msgstr "" -#: ../src/general/OptionsMenu.tscn:527 +#: ../src/general/OptionsMenu.tscn:524 msgid "GLES3" msgstr "" @@ -2961,11 +2961,11 @@ msgstr "" msgid "GPL_LICENSE_HEADING" msgstr "" -#: ../src/general/OptionsMenu.tscn:499 +#: ../src/general/OptionsMenu.tscn:496 msgid "GPU_NAME" msgstr "" -#: ../src/general/OptionsMenu.tscn:190 +#: ../src/general/OptionsMenu.tscn:191 msgid "GRAPHICS" msgstr "" @@ -2977,7 +2977,7 @@ msgstr "" msgid "GROWTH_ORDER" msgstr "" -#: ../src/general/OptionsMenu.tscn:549 +#: ../src/general/OptionsMenu.tscn:546 msgid "GUI" msgstr "" @@ -2989,7 +2989,7 @@ msgstr "" msgid "GUI_TAB_NAVIGATION" msgstr "" -#: ../src/general/OptionsMenu.tscn:779 +#: ../src/general/OptionsMenu.tscn:776 msgid "GUI_VOLUME" msgstr "" @@ -3011,11 +3011,11 @@ msgstr "" msgid "HELP_BUTTON_TOOLTIP" msgstr "" -#: ../src/general/OptionsMenu.tscn:902 ../src/general/OptionsMenu.tscn:946 +#: ../src/general/OptionsMenu.tscn:899 ../src/general/OptionsMenu.tscn:943 msgid "HIGHER_VALUES_INCREASE_PERFORMANCE" msgstr "" -#: ../src/general/OptionsMenu.tscn:299 ../src/general/OptionsMenu.tscn:1004 +#: ../src/general/OptionsMenu.tscn:300 ../src/general/OptionsMenu.tscn:1001 msgid "HIGHER_VALUES_WORSEN_PERFORMANCE" msgstr "" @@ -3047,7 +3047,7 @@ msgstr "" msgid "HOME" msgstr "" -#: ../src/general/OptionsMenu.tscn:1403 ../src/general/OptionsMenu.tscn:1487 +#: ../src/general/OptionsMenu.tscn:1400 ../src/general/OptionsMenu.tscn:1484 msgid "HORIZONTAL_COLON" msgstr "" @@ -3510,7 +3510,7 @@ msgstr "" msgid "INIT_NEW_WORLD_TOOLTIP" msgstr "" -#: ../src/general/OptionsMenu.tscn:217 +#: ../src/general/OptionsMenu.tscn:218 msgid "INPUTS" msgstr "" @@ -3647,8 +3647,8 @@ msgstr "" msgid "INVENTORY_TOGGLE_GROUND" msgstr "" -#: ../src/general/OptionsMenu.tscn:1413 ../src/general/OptionsMenu.tscn:1428 -#: ../src/general/OptionsMenu.tscn:1497 ../src/general/OptionsMenu.tscn:1513 +#: ../src/general/OptionsMenu.tscn:1410 ../src/general/OptionsMenu.tscn:1425 +#: ../src/general/OptionsMenu.tscn:1494 ../src/general/OptionsMenu.tscn:1510 msgid "INVERTED" msgstr "" @@ -3683,19 +3683,19 @@ msgstr "" msgid "JANUARY" msgstr "" -#: ../src/general/OptionsMenu.tscn:1827 +#: ../src/general/OptionsMenu.tscn:1824 msgid "JSON_DEBUG_MODE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1840 +#: ../src/general/OptionsMenu.tscn:1837 msgid "JSON_DEBUG_MODE_ALWAYS" msgstr "" -#: ../src/general/OptionsMenu.tscn:1839 +#: ../src/general/OptionsMenu.tscn:1836 msgid "JSON_DEBUG_MODE_AUTO" msgstr "" -#: ../src/general/OptionsMenu.tscn:1842 +#: ../src/general/OptionsMenu.tscn:1839 msgid "JSON_DEBUG_MODE_NEVER" msgstr "" @@ -3907,19 +3907,19 @@ msgstr "" msgid "KPSUBTRACT" msgstr "" -#: ../src/general/OptionsMenu.tscn:820 +#: ../src/general/OptionsMenu.tscn:817 msgid "LANGUAGE" msgstr "" -#: ../src/general/OptionsMenu.cs:1685 +#: ../src/general/OptionsMenu.cs:1689 msgid "LANGUAGE_TRANSLATION_PROGRESS" msgstr "" -#: ../src/general/OptionsMenu.cs:1681 +#: ../src/general/OptionsMenu.cs:1685 msgid "LANGUAGE_TRANSLATION_PROGRESS_LOW" msgstr "" -#: ../src/general/OptionsMenu.cs:1677 +#: ../src/general/OptionsMenu.cs:1681 msgid "LANGUAGE_TRANSLATION_PROGRESS_REALLY_LOW" msgstr "" @@ -4150,7 +4150,7 @@ msgstr "" msgid "LIGHT_MAX" msgstr "" -#: ../src/general/OptionsMenu.tscn:1033 +#: ../src/general/OptionsMenu.tscn:1030 msgid "LIMIT_EXTREME" msgstr "" @@ -4162,31 +4162,31 @@ msgstr "" msgid "LIMIT_GROWTH_RATE_EXPLANATION" msgstr "" -#: ../src/general/OptionsMenu.tscn:1031 +#: ../src/general/OptionsMenu.tscn:1028 msgid "LIMIT_HUGE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1027 +#: ../src/general/OptionsMenu.tscn:1024 msgid "LIMIT_LARGE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1025 +#: ../src/general/OptionsMenu.tscn:1022 msgid "LIMIT_NORMAL" msgstr "" -#: ../src/general/OptionsMenu.tscn:1023 +#: ../src/general/OptionsMenu.tscn:1020 msgid "LIMIT_SMALL" msgstr "" -#: ../src/general/OptionsMenu.tscn:1020 +#: ../src/general/OptionsMenu.tscn:1017 msgid "LIMIT_TINY" msgstr "" -#: ../src/general/OptionsMenu.tscn:1029 +#: ../src/general/OptionsMenu.tscn:1026 msgid "LIMIT_VERY_LARGE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1021 +#: ../src/general/OptionsMenu.tscn:1018 msgid "LIMIT_VERY_SMALL" msgstr "" @@ -4328,28 +4328,28 @@ msgstr "" msgid "MARINE_SNOW" msgstr "" -#: ../src/general/OptionsMenu.tscn:668 +#: ../src/general/OptionsMenu.tscn:665 msgid "MASTER_VOLUME" msgstr "" -#: ../src/general/OptionsMenu.tscn:1210 ../src/general/OptionsMenu.tscn:1216 -#: ../src/general/OptionsMenu.tscn:1221 +#: ../src/general/OptionsMenu.tscn:1207 ../src/general/OptionsMenu.tscn:1213 +#: ../src/general/OptionsMenu.tscn:1218 msgid "MAX_CACHE_SIZE_TOOLTIP" msgstr "" -#: ../src/general/OptionsMenu.tscn:341 +#: ../src/general/OptionsMenu.tscn:342 msgid "MAX_FPS" msgstr "" -#: ../src/general/OptionsMenu.tscn:367 +#: ../src/general/OptionsMenu.tscn:368 msgid "MAX_FPS_NO_LIMIT" msgstr "" -#: ../src/general/OptionsMenu.tscn:1212 +#: ../src/general/OptionsMenu.tscn:1209 msgid "MAX_SIZE_COLON" msgstr "" -#: ../src/general/OptionsMenu.tscn:1000 +#: ../src/general/OptionsMenu.tscn:997 msgid "MAX_SPAWNED_ENTITIES" msgstr "" @@ -4434,7 +4434,7 @@ msgid "METRICS_CONTENT" msgstr "" #: ../src/engine/DebugOverlays.PerformanceMetrics.cs:172 -#: ../src/general/OptionsMenu.cs:1761 ../src/general/OptionsMenu.cs:2302 +#: ../src/general/OptionsMenu.cs:1765 ../src/general/OptionsMenu.cs:2313 #: ../src/saving/SaveManagerGUI.cs:139 msgid "MIB_VALUE" msgstr "" @@ -4731,7 +4731,7 @@ msgstr "" msgid "MIN_VISIBLE_DATASET_WARNING" msgstr "" -#: ../src/general/NewGameSettings.tscn:270 ../src/general/OptionsMenu.tscn:226 +#: ../src/general/NewGameSettings.tscn:270 ../src/general/OptionsMenu.tscn:227 msgid "MISC" msgstr "" @@ -4744,7 +4744,7 @@ msgstr "" msgid "MISCELLANEOUS_3D_STAGE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1850 +#: ../src/general/OptionsMenu.tscn:1847 msgid "MISC_FUN" msgstr "" @@ -4952,15 +4952,15 @@ msgstr "" msgid "MORE_INFO_PROMPT" msgstr "" -#: ../src/general/OptionsMenu.tscn:1579 +#: ../src/general/OptionsMenu.tscn:1576 msgid "MOUSE_EDGE_PANNING_OPTION" msgstr "" -#: ../src/general/OptionsMenu.tscn:1378 +#: ../src/general/OptionsMenu.tscn:1375 msgid "MOUSE_LOOK_SENSITIVITY" msgstr "" -#: ../src/general/OptionsMenu.tscn:1432 +#: ../src/general/OptionsMenu.tscn:1429 msgid "MOUSE_SENSITIVITY_WINDOW_SIZE_ADJUSTMENT" msgstr "" @@ -5104,15 +5104,15 @@ msgstr "" msgid "MULTIPLE_ORGANELLES" msgstr "" -#: ../src/general/OptionsMenu.tscn:295 +#: ../src/general/OptionsMenu.tscn:296 msgid "MULTISAMPLE_ANTI_ALIASING" msgstr "" -#: ../src/general/OptionsMenu.tscn:979 +#: ../src/general/OptionsMenu.tscn:976 msgid "MULTITHREADED_SIMULATION_ENABLED" msgstr "" -#: ../src/general/OptionsMenu.tscn:984 +#: ../src/general/OptionsMenu.tscn:981 msgid "MULTITHREADED_SIMULATION_EXPLANATION" msgstr "" @@ -5124,7 +5124,7 @@ msgstr "" msgid "MUSIC" msgstr "" -#: ../src/general/OptionsMenu.tscn:707 +#: ../src/general/OptionsMenu.tscn:704 msgid "MUSIC_VOLUME" msgstr "" @@ -5144,9 +5144,9 @@ msgstr "" msgid "MUTATION_POINTS" msgstr "" -#: ../src/general/OptionsMenu.tscn:694 ../src/general/OptionsMenu.tscn:727 -#: ../src/general/OptionsMenu.tscn:751 ../src/general/OptionsMenu.tscn:775 -#: ../src/general/OptionsMenu.tscn:799 +#: ../src/general/OptionsMenu.tscn:691 ../src/general/OptionsMenu.tscn:724 +#: ../src/general/OptionsMenu.tscn:748 ../src/general/OptionsMenu.tscn:772 +#: ../src/general/OptionsMenu.tscn:796 msgid "MUTE" msgstr "" @@ -5167,7 +5167,7 @@ msgstr "" msgid "NAME_LABEL_STRUCTURE_UNFINISHED" msgstr "" -#: ../src/general/OptionsMenu.tscn:1119 +#: ../src/general/OptionsMenu.tscn:1116 msgid "NATIVE_THREAD_ADVICE_TOOLTIP" msgstr "" @@ -5322,7 +5322,7 @@ msgstr "" #: ../simulation_parameters/common/wiki.json:2288 #: ../simulation_parameters/common/wiki.json:2308 #: ../simulation_parameters/common/wiki.json:2363 -#: ../src/general/OptionsMenu.tscn:390 +#: ../src/general/OptionsMenu.tscn:391 #: ../src/thriveopedia/pages/wiki/organelles/OrganelleInfoBox.cs:201 #: ../src/thriveopedia/pages/wiki/organelles/OrganelleInfoBox.cs:210 #: ../src/thriveopedia/pages/wiki/organelles/OrganelleInfoBox.cs:219 @@ -5420,7 +5420,7 @@ msgstr "" msgid "NO_SAVE_DIRECTORY" msgstr "" -#: ../src/general/OptionsMenu.tscn:2037 +#: ../src/general/OptionsMenu.tscn:2034 msgid "NO_SCREENSHOT_DIRECTORY" msgstr "" @@ -5471,7 +5471,7 @@ msgstr "" msgid "OCTOBER" msgstr "" -#: ../src/general/OptionsMenu.tscn:635 +#: ../src/general/OptionsMenu.tscn:632 msgid "OFF" msgstr "" @@ -5527,7 +5527,7 @@ msgstr "" msgid "OPEN_IN_FREEBUILD" msgstr "" -#: ../src/general/OptionsMenu.tscn:1776 +#: ../src/general/OptionsMenu.tscn:1773 msgid "OPEN_LOGS_FOLDER" msgstr "" @@ -5555,7 +5555,7 @@ msgstr "" msgid "OPEN_SCIENCE_MENU" msgstr "" -#: ../src/general/OptionsMenu.tscn:1770 +#: ../src/general/OptionsMenu.tscn:1767 msgid "OPEN_SCREENSHOT_FOLDER" msgstr "" @@ -5563,7 +5563,7 @@ msgstr "" msgid "OPEN_THE_MENU" msgstr "" -#: ../src/general/OptionsMenu.tscn:851 +#: ../src/general/OptionsMenu.tscn:848 msgid "OPEN_TRANSLATION_SITE" msgstr "" @@ -5820,7 +5820,7 @@ msgstr "" msgid "PATCH_NOTES_LAST_PLAYED_INFO_PLURAL" msgstr "" -#: ../src/general/OptionsMenu.tscn:2041 +#: ../src/general/OptionsMenu.tscn:2038 #: ../src/gui_common/PatchNotesDisplayer.tscn:25 msgid "PATCH_NOTES_TITLE" msgstr "" @@ -5902,7 +5902,7 @@ msgstr "" msgid "PERCENTAGE_VALUE" msgstr "" -#: ../src/general/OptionsMenu.tscn:208 +#: ../src/general/OptionsMenu.tscn:209 msgid "PERFORMANCE" msgstr "" @@ -5989,7 +5989,7 @@ msgstr "" msgid "PLAYER_EXTINCT" msgstr "" -#: ../src/general/OptionsMenu.tscn:1544 +#: ../src/general/OptionsMenu.tscn:1541 msgid "PLAYER_RELATIVE_MOVEMENT" msgstr "" @@ -6001,23 +6001,23 @@ msgstr "" msgid "PLAYER_SPEED" msgstr "" -#: ../src/general/OptionsMenu.tscn:586 +#: ../src/general/OptionsMenu.tscn:583 msgid "PLAYSTATION_3" msgstr "" -#: ../src/general/OptionsMenu.tscn:588 +#: ../src/general/OptionsMenu.tscn:585 msgid "PLAYSTATION_4" msgstr "" -#: ../src/general/OptionsMenu.tscn:590 +#: ../src/general/OptionsMenu.tscn:587 msgid "PLAYSTATION_5" msgstr "" -#: ../src/general/OptionsMenu.tscn:1657 +#: ../src/general/OptionsMenu.tscn:1654 msgid "PLAY_INTRO_VIDEO" msgstr "" -#: ../src/general/OptionsMenu.tscn:1662 +#: ../src/general/OptionsMenu.tscn:1659 msgid "PLAY_MICROBE_INTRO_ON_NEW_GAME" msgstr "" @@ -6220,7 +6220,7 @@ msgstr "" msgid "RESEARCH" msgstr "" -#: ../src/general/OptionsMenu.tscn:837 ../src/general/OptionsMenu.tscn:1922 +#: ../src/general/OptionsMenu.tscn:834 ../src/general/OptionsMenu.tscn:1919 #: ../src/microbe_stage/editor/GrowthOrderPicker.tscn:22 msgid "RESET" msgstr "" @@ -6229,11 +6229,11 @@ msgstr "" msgid "RESET_DEADZONES" msgstr "" -#: ../src/general/OptionsMenu.tscn:1820 +#: ../src/general/OptionsMenu.tscn:1817 msgid "RESET_DISMISSED_POPUPS" msgstr "" -#: ../src/general/OptionsMenu.tscn:1960 +#: ../src/general/OptionsMenu.tscn:1957 msgid "RESET_INPUTS_TO_DEFAULTS" msgstr "" @@ -6241,15 +6241,15 @@ msgstr "" msgid "RESET_ITEM_ORDER_TO_DEFAULT" msgstr "" -#: ../src/general/OptionsMenu.tscn:1628 +#: ../src/general/OptionsMenu.tscn:1625 msgid "RESET_KEYBINDINGS" msgstr "" -#: ../src/general/OptionsMenu.tscn:1948 +#: ../src/general/OptionsMenu.tscn:1945 msgid "RESET_SETTINGS_TO_DEFAULTS" msgstr "" -#: ../src/general/OptionsMenu.tscn:1954 +#: ../src/general/OptionsMenu.tscn:1951 msgid "RESET_TO_DEFAULTS" msgstr "" @@ -6262,7 +6262,7 @@ msgstr "" msgid "RESIZE_METABALL_TOOLTIP" msgstr "" -#: ../src/general/OptionsMenu.tscn:325 +#: ../src/general/OptionsMenu.tscn:326 msgid "RESOLUTION" msgstr "" @@ -6366,7 +6366,7 @@ msgstr "" msgid "ROTATION_COLON" msgstr "" -#: ../src/general/OptionsMenu.tscn:974 +#: ../src/general/OptionsMenu.tscn:971 msgid "RUN_AUTO_EVO_DURING_GAMEPLAY" msgstr "" @@ -6429,11 +6429,11 @@ msgstr "" msgid "SAFE_MODE_TITLE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1931 ../src/saving/NewSaveMenu.tscn:80 +#: ../src/general/OptionsMenu.tscn:1928 ../src/saving/NewSaveMenu.tscn:80 msgid "SAVE" msgstr "" -#: ../src/general/OptionsMenu.tscn:2000 +#: ../src/general/OptionsMenu.tscn:1997 msgid "SAVE_AND_CONTINUE" msgstr "" @@ -6534,19 +6534,19 @@ msgstr "" msgid "SAVING_SUCCEEDED" msgstr "" -#: ../src/general/OptionsMenu.tscn:1443 +#: ../src/general/OptionsMenu.tscn:1440 msgid "SCALING_NONE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1444 +#: ../src/general/OptionsMenu.tscn:1441 msgid "SCALING_ON" msgstr "" -#: ../src/general/OptionsMenu.tscn:1446 +#: ../src/general/OptionsMenu.tscn:1443 msgid "SCALING_ON_INVERSE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1858 +#: ../src/general/OptionsMenu.tscn:1855 msgid "SCREEN_EFFECT" msgstr "" @@ -6566,7 +6566,7 @@ msgstr "" msgid "SCREEN_EFFECT_NONE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1546 ../src/general/OptionsMenu.tscn:1569 +#: ../src/general/OptionsMenu.tscn:1543 ../src/general/OptionsMenu.tscn:1566 msgid "SCREEN_RELATIVE_MOVEMENT" msgstr "" @@ -6688,7 +6688,7 @@ msgstr "" msgid "SETTING_ONLY_APPLIES_TO_NEW_GAMES" msgstr "" -#: ../src/general/OptionsMenu.tscn:755 +#: ../src/general/OptionsMenu.tscn:752 msgid "SFX_VOLUME" msgstr "" @@ -6697,7 +6697,7 @@ msgstr "" msgid "SHIFT" msgstr "" -#: ../src/general/OptionsMenu.tscn:603 +#: ../src/general/OptionsMenu.tscn:600 msgid "SHOW_DAMAGE_EFFECT" msgstr "" @@ -6705,11 +6705,11 @@ msgstr "" msgid "SHOW_HELP" msgstr "" -#: ../src/general/OptionsMenu.tscn:1787 +#: ../src/general/OptionsMenu.tscn:1784 msgid "SHOW_NEW_PATCH_NOTES" msgstr "" -#: ../src/general/OptionsMenu.tscn:1786 +#: ../src/general/OptionsMenu.tscn:1783 msgid "SHOW_NEW_PATCH_NOTES_TOOLTIP" msgstr "" @@ -6717,15 +6717,15 @@ msgstr "" msgid "SHOW_TUTORIALS" msgstr "" -#: ../src/general/OptionsMenu.tscn:1725 +#: ../src/general/OptionsMenu.tscn:1722 msgid "SHOW_TUTORIALS_IN_NEW_CURRENT_OPTION" msgstr "" -#: ../src/general/OptionsMenu.tscn:1719 +#: ../src/general/OptionsMenu.tscn:1716 msgid "SHOW_TUTORIALS_IN_NEW_GAMES_OPTION" msgstr "" -#: ../src/general/OptionsMenu.tscn:1731 +#: ../src/general/OptionsMenu.tscn:1728 msgid "SHOW_UNSAVED_PROGRESS_WARNING" msgstr "" @@ -6733,7 +6733,7 @@ msgstr "" msgid "SHOW_UNSAVED_PROGRESS_WARNING_TOOLTIP" msgstr "" -#: ../src/general/OptionsMenu.tscn:1781 +#: ../src/general/OptionsMenu.tscn:1778 msgid "SHOW_WEB_NEWS_FEED" msgstr "" @@ -6848,7 +6848,7 @@ msgstr "" msgid "SOCIETY_STAGE" msgstr "" -#: ../src/general/OptionsMenu.tscn:199 +#: ../src/general/OptionsMenu.tscn:200 msgid "SOUND" msgstr "" @@ -7126,7 +7126,7 @@ msgstr "" msgid "STORE_LOGGED_IN_AS" msgstr "" -#: ../src/general/OptionsMenu.tscn:622 +#: ../src/general/OptionsMenu.tscn:619 msgid "STRAIN_BAR_VISIBILITY" msgstr "" @@ -7406,7 +7406,7 @@ msgstr "" msgid "THIS_IS_WORKSHOP_MOD" msgstr "" -#: ../src/general/OptionsMenu.tscn:1093 ../src/general/OptionsMenu.tscn:1127 +#: ../src/general/OptionsMenu.tscn:1090 ../src/general/OptionsMenu.tscn:1124 msgid "THREADS" msgstr "" @@ -7728,7 +7728,7 @@ msgstr "" msgid "TRY_MAKING_A_SAVE" msgstr "" -#: ../src/general/OptionsMenu.tscn:2036 +#: ../src/general/OptionsMenu.tscn:2033 msgid "TRY_TAKING_SOME_SCREENSHOTS" msgstr "" @@ -7840,7 +7840,7 @@ msgstr "" msgid "TWITTER_TOOLTIP" msgstr "" -#: ../src/general/OptionsMenu.tscn:313 +#: ../src/general/OptionsMenu.tscn:314 msgid "TWO_TIMES" msgstr "" @@ -7868,7 +7868,7 @@ msgstr "" msgid "UNBIND_HELP_TEXT" msgstr "" -#: ../src/general/OptionsMenu.cs:1775 +#: ../src/general/OptionsMenu.cs:1779 msgid "UNCERTAIN_VERSION_WARNING" msgstr "" @@ -7922,7 +7922,7 @@ msgstr "" msgid "UNKNOWN" msgstr "" -#: ../src/general/OptionsMenu.cs:1180 +#: ../src/general/OptionsMenu.cs:1184 msgid "UNKNOWN_DISPLAY_DRIVER" msgstr "" @@ -7943,7 +7943,7 @@ msgstr "" msgid "UNKNOWN_SHORT" msgstr "" -#: ../src/general/OptionsMenu.cs:1790 +#: ../src/general/OptionsMenu.cs:1794 msgid "UNKNOWN_VERSION" msgstr "" @@ -8015,7 +8015,7 @@ msgstr "" msgid "UNLOCK_WITH_ANY_OF_FOLLOWING" msgstr "" -#: ../src/general/OptionsMenu.tscn:1982 +#: ../src/general/OptionsMenu.tscn:1979 msgid "UNSAVED_CHANGE_WARNING" msgstr "" @@ -8079,7 +8079,7 @@ msgstr "" msgid "USED_LIBRARIES_LICENSES" msgstr "" -#: ../src/general/OptionsMenu.tscn:519 +#: ../src/general/OptionsMenu.tscn:516 msgid "USED_RENDERER_NAME" msgstr "" @@ -8095,23 +8095,23 @@ msgstr "" msgid "USE_AUTO_HARMONY_TOOLTIP" msgstr "" -#: ../src/general/OptionsMenu.tscn:1745 +#: ../src/general/OptionsMenu.tscn:1742 msgid "USE_A_CUSTOM_USERNAME" msgstr "" -#: ../src/general/OptionsMenu.tscn:1176 +#: ../src/general/OptionsMenu.tscn:1173 msgid "USE_DISK_CACHE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1086 +#: ../src/general/OptionsMenu.tscn:1083 msgid "USE_MANUAL_THREAD_COUNT" msgstr "" -#: ../src/general/OptionsMenu.tscn:1120 +#: ../src/general/OptionsMenu.tscn:1117 msgid "USE_MANUAL_THREAD_COUNT_NATIVE" msgstr "" -#: ../src/general/OptionsMenu.tscn:1456 +#: ../src/general/OptionsMenu.tscn:1453 msgid "USE_VIRTUAL_WINDOW_SIZE" msgstr "" @@ -8154,7 +8154,7 @@ msgstr "" msgid "VERSION_COLON" msgstr "" -#: ../src/general/OptionsMenu.tscn:1417 ../src/general/OptionsMenu.tscn:1501 +#: ../src/general/OptionsMenu.tscn:1414 ../src/general/OptionsMenu.tscn:1498 msgid "VERTICAL_COLON" msgstr "" @@ -8163,11 +8163,11 @@ msgstr "" msgid "VERTICAL_WITH_AXIS_NAME_COLON" msgstr "" -#: ../src/general/OptionsMenu.tscn:534 +#: ../src/general/OptionsMenu.tscn:531 msgid "VIDEO_MEMORY" msgstr "" -#: ../src/general/OptionsMenu.cs:1190 ../src/general/OptionsMenu.tscn:542 +#: ../src/general/OptionsMenu.cs:1194 ../src/general/OptionsMenu.tscn:539 msgid "VIDEO_MEMORY_MIB" msgstr "" @@ -8192,11 +8192,11 @@ msgstr "" msgid "VIEW_PATCH_MICHES" msgstr "" -#: ../src/general/OptionsMenu.tscn:1794 +#: ../src/general/OptionsMenu.tscn:1791 msgid "VIEW_PATCH_NOTES" msgstr "" -#: ../src/general/OptionsMenu.tscn:1792 +#: ../src/general/OptionsMenu.tscn:1789 msgid "VIEW_PATCH_NOTES_TOOLTIP" msgstr "" @@ -8216,11 +8216,11 @@ msgstr "" msgid "VISIBLE" msgstr "" -#: ../src/general/OptionsMenu.tscn:636 +#: ../src/general/OptionsMenu.tscn:633 msgid "VISIBLE_WHEN_CLOSE_TO_FULL" msgstr "" -#: ../src/general/OptionsMenu.tscn:638 +#: ../src/general/OptionsMenu.tscn:635 msgid "VISIBLE_WHEN_OVER_ZERO" msgstr "" @@ -8245,7 +8245,7 @@ msgstr "" msgid "VOLUMEUP" msgstr "" -#: ../src/general/OptionsMenu.tscn:270 +#: ../src/general/OptionsMenu.tscn:271 msgid "VSYNC" msgstr "" @@ -10282,7 +10282,7 @@ msgstr "" msgid "WORLD_MISC_DETAILS_STRING" msgstr "" -#: ../src/general/OptionsMenu.tscn:1570 +#: ../src/general/OptionsMenu.tscn:1567 msgid "WORLD_RELATIVE_MOVEMENT" msgstr "" @@ -10290,15 +10290,15 @@ msgstr "" msgid "WORST_PATCH_COLON" msgstr "" -#: ../src/general/OptionsMenu.tscn:580 +#: ../src/general/OptionsMenu.tscn:577 msgid "XBOX360" msgstr "" -#: ../src/general/OptionsMenu.tscn:582 +#: ../src/general/OptionsMenu.tscn:579 msgid "XBOX_ONE" msgstr "" -#: ../src/general/OptionsMenu.tscn:584 +#: ../src/general/OptionsMenu.tscn:581 msgid "XBOX_SERIES" msgstr "" diff --git a/locale/mk.po b/locale/mk.po index dd4f28cb09..c1725a5474 100644 --- a/locale/mk.po +++ b/locale/mk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Thrive VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2023-09-15 06:55+0000\n" "Last-Translator: Kristijan Miracevski \n" "Language-Team: Macedonian \n" diff --git a/locale/nb_NO.po b/locale/nb_NO.po index 78f6147015..7a5ad8e8b5 100644 --- a/locale/nb_NO.po +++ b/locale/nb_NO.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2023-03-10 06:53+0000\n" "Last-Translator: Jonas Lindberg \n" "Language-Team: Norwegian Bokmål \n" diff --git a/locale/nl.po b/locale/nl.po index 9cff170480..a43c057cfc 100644 --- a/locale/nl.po +++ b/locale/nl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-10-21 20:20+0000\n" "Last-Translator: Pascal Smit \n" "Language-Team: Dutch \n" diff --git a/locale/nl_BE.po b/locale/nl_BE.po index ae0dd8e41b..a1d7333c11 100644 --- a/locale/nl_BE.po +++ b/locale/nl_BE.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Dutch (Belgium) \n" diff --git a/locale/pl.po b/locale/pl.po index 58fadc1be6..ed1b1e3900 100644 --- a/locale/pl.po +++ b/locale/pl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-11-19 19:46+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Polish \n" diff --git a/locale/pt_BR.po b/locale/pt_BR.po index df46ece465..ae604689ce 100644 --- a/locale/pt_BR.po +++ b/locale/pt_BR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-11-19 19:46+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Portuguese (Brazil) \n" diff --git a/locale/pt_PT.po b/locale/pt_PT.po index f9e71d2485..5c01040cd3 100644 --- a/locale/pt_PT.po +++ b/locale/pt_PT.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Portuguese (Portugal) \n" diff --git a/locale/ro.po b/locale/ro.po index be092c6f14..1bbd18d5fb 100644 --- a/locale/ro.po +++ b/locale/ro.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-03-30 03:50+0000\n" "Last-Translator: edy \n" "Language-Team: Romanian \n" diff --git a/locale/ru.po b/locale/ru.po index eeec179475..dac6017893 100644 --- a/locale/ru.po +++ b/locale/ru.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-11-19 19:46+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Russian \n" diff --git a/locale/si_LK.po b/locale/si_LK.po index a3c6c5f8bf..4eb4c4030b 100644 --- a/locale/si_LK.po +++ b/locale/si_LK.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2022-03-22 18:22+0000\n" "Last-Translator: Henri Hyyryläinen \n" "Language-Team: Sinhala \n" diff --git a/locale/sk.po b/locale/sk.po index a8f2482ac7..00f8d5a61e 100644 --- a/locale/sk.po +++ b/locale/sk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Slovak \n" diff --git a/locale/sr_Cyrl.po b/locale/sr_Cyrl.po index 9165a77b6d..c000c641f5 100644 --- a/locale/sr_Cyrl.po +++ b/locale/sr_Cyrl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Serbian (Cyrillic script) \n" diff --git a/locale/sr_Latn.po b/locale/sr_Latn.po index 2ee3057261..47055be259 100644 --- a/locale/sr_Latn.po +++ b/locale/sr_Latn.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Serbian (Latin script) \n" diff --git a/locale/sv.po b/locale/sv.po index c0a746f4a2..0b211cf137 100644 --- a/locale/sv.po +++ b/locale/sv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-10-19 21:07+0000\n" "Last-Translator: Paradox Edge \n" "Language-Team: Swedish \n" diff --git a/locale/th_TH.po b/locale/th_TH.po index a177bd5442..ddef321abb 100644 --- a/locale/th_TH.po +++ b/locale/th_TH.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Thai \n" diff --git a/locale/tok.po b/locale/tok.po index 5b5b391159..8eb96cc5cc 100644 --- a/locale/tok.po +++ b/locale/tok.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Thrive VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2023-02-06 07:13+0000\n" "Last-Translator: jan-sopi \n" "Language-Team: Toki Pona \n" diff --git a/locale/tr.po b/locale/tr.po index 5e7a0e7938..643b962f92 100644 --- a/locale/tr.po +++ b/locale/tr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-11-22 10:08+0000\n" "Last-Translator: punctdan \n" "Language-Team: Turkish \n" diff --git a/locale/uk.po b/locale/uk.po index 415080c965..ada966218b 100644 --- a/locale/uk.po +++ b/locale/uk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-11-19 19:46+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Ukrainian \n" diff --git a/locale/vi.po b/locale/vi.po index 4be745c3f0..638c64644a 100644 --- a/locale/vi.po +++ b/locale/vi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" diff --git a/locale/zh_CN.po b/locale/zh_CN.po index 111b0ef950..55d923dd6a 100644 --- a/locale/zh_CN.po +++ b/locale/zh_CN.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-11-19 19:46+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Chinese (Simplified Han script) \n" diff --git a/locale/zh_TW.po b/locale/zh_TW.po index 27f7ce9fb7..09b4ef3525 100644 --- a/locale/zh_TW.po +++ b/locale/zh_TW.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-04 21:05+0300\n" +"POT-Creation-Date: 2024-12-12 23:03+0300\n" "PO-Revision-Date: 2024-11-20 07:02+0000\n" "Last-Translator: xzihnago \n" "Language-Team: Chinese (Traditional Han script) \n" From cd4f082b4f1a324f467a0f0b1119eb912de93657 Mon Sep 17 00:00:00 2001 From: dligr Date: Fri, 13 Dec 2024 17:57:41 +0300 Subject: [PATCH 52/53] Only enable blur when distortion is on --- src/general/OptionsMenu.cs | 3 +++ src/microbe_stage/BackgroundPlane.cs | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/general/OptionsMenu.cs b/src/general/OptionsMenu.cs index 28ef3f8c6e..421b420819 100644 --- a/src/general/OptionsMenu.cs +++ b/src/general/OptionsMenu.cs @@ -857,6 +857,7 @@ public void ApplySettingsToControls(Settings settings) bloomSlider.Value = settings.BloomStrength; bloomSlider.Editable = settings.BloomEnabled || !DisableInactiveSliders; blurSlider.Value = settings.MicrobeBackgroundBlurStrength; + blurSlider.Editable = Settings.Instance.MicrobeDistortionStrength > 0 || !DisableInactiveSliders; DisplayResolution(); DisplayGpuInfo(); @@ -2045,6 +2046,8 @@ private void OnMicrobeBackgroundDistortionToggled(bool toggle) Settings.Instance.MicrobeDistortionStrength.Value = 0; } + blurSlider.Editable = !toggle || !DisableInactiveSliders; + UpdateResetSaveButtonState(); } diff --git a/src/microbe_stage/BackgroundPlane.cs b/src/microbe_stage/BackgroundPlane.cs index 78c76a0c6f..1b203bb13d 100644 --- a/src/microbe_stage/BackgroundPlane.cs +++ b/src/microbe_stage/BackgroundPlane.cs @@ -174,6 +174,7 @@ private void OnDisplayBackgroundParticlesChanged(bool displayed) private void OnBackgroundDistortionChanged(float value) { ApplyDistortionEffect(); + ApplyBlurEffect(); } private void ApplyDistortionEffect() @@ -190,7 +191,7 @@ private void OnBackgroundBlurStrengthChanged(float value) private void ApplyBlurEffect() { float blurStrength = Settings.Instance.MicrobeBackgroundBlurStrength; - bool enabled = blurStrength > 0; + bool enabled = blurStrength > 0 && Settings.Instance.MicrobeDistortionStrength > 0; SetBlurStrength(blurStrength); From 95ea4f7fd1da0c3190f84da15e2fc7a98b925ff7 Mon Sep 17 00:00:00 2001 From: dligr Date: Fri, 13 Dec 2024 18:33:31 +0300 Subject: [PATCH 53/53] Re-arrange the options menu to place the blur slider under the distortion toggle And update the localizations --- locale/af.po | 2 +- locale/ar.po | 2 +- locale/be.po | 2 +- locale/bg.po | 2 +- locale/bn.po | 2 +- locale/ca.po | 2 +- locale/cs.po | 2 +- locale/da.po | 2 +- locale/de.po | 2 +- locale/el.po | 2 +- locale/en.po | 2 +- locale/eo.po | 2 +- locale/es.po | 2 +- locale/es_AR.po | 2 +- locale/et.po | 2 +- locale/fi.po | 2 +- locale/fr.po | 2 +- locale/frm.po | 2 +- locale/he.po | 2 +- locale/hr.po | 2 +- locale/hu.po | 2 +- locale/id.po | 2 +- locale/it.po | 2 +- locale/ka.po | 2 +- locale/ko.po | 2 +- locale/la.po | 2 +- locale/lb_LU.po | 2 +- locale/lt.po | 2 +- locale/lv.po | 2 +- locale/messages.pot | 64 ++++++++++++++++++------------------ locale/mk.po | 2 +- locale/nb_NO.po | 2 +- locale/nl.po | 2 +- locale/nl_BE.po | 2 +- locale/pl.po | 2 +- locale/pt_BR.po | 2 +- locale/pt_PT.po | 2 +- locale/ro.po | 2 +- locale/ru.po | 2 +- locale/si_LK.po | 2 +- locale/sk.po | 2 +- locale/sr_Cyrl.po | 2 +- locale/sr_Latn.po | 2 +- locale/sv.po | 2 +- locale/th_TH.po | 2 +- locale/tok.po | 2 +- locale/tr.po | 2 +- locale/uk.po | 2 +- locale/vi.po | 2 +- locale/zh_CN.po | 2 +- locale/zh_TW.po | 2 +- src/general/OptionsMenu.tscn | 46 +++++++++++++------------- 52 files changed, 105 insertions(+), 105 deletions(-) diff --git a/locale/af.po b/locale/af.po index ef2a439f1c..6f7feadc79 100644 --- a/locale/af.po +++ b/locale/af.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" diff --git a/locale/ar.po b/locale/ar.po index 78e675292d..628e553a2f 100644 --- a/locale/ar.po +++ b/locale/ar.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2023-03-13 09:01+0000\n" "Last-Translator: Xradiation \n" "Language-Team: Arabic \n" diff --git a/locale/be.po b/locale/be.po index 9f5c424d4c..e23a213a87 100644 --- a/locale/be.po +++ b/locale/be.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Thrive VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2023-09-21 09:24+0000\n" "Last-Translator: Henri Hyyryläinen \n" "Language-Team: Belarusian \n" diff --git a/locale/bg.po b/locale/bg.po index d532d5997d..bb1b5bdda4 100644 --- a/locale/bg.po +++ b/locale/bg.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Bulgarian \n" diff --git a/locale/bn.po b/locale/bn.po index b046c0ac9c..0e919cb040 100644 --- a/locale/bn.po +++ b/locale/bn.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Thrive VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2023-09-10 12:18+0000\n" "Last-Translator: Mahbeer Alam Sarker \n" "Language-Team: Bengali \n" diff --git a/locale/ca.po b/locale/ca.po index b618519978..0f843d1234 100644 --- a/locale/ca.po +++ b/locale/ca.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Catalan \n" diff --git a/locale/cs.po b/locale/cs.po index dee13a93de..8a58abd68f 100644 --- a/locale/cs.po +++ b/locale/cs.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-11-16 19:09+0000\n" "Last-Translator: Adam David \n" "Language-Team: Czech \n" diff --git a/locale/da.po b/locale/da.po index 5b1de7a79c..d2fab6c3fa 100644 --- a/locale/da.po +++ b/locale/da.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-06-09 13:22+0000\n" "Last-Translator: Magnus Norling Svane \n" "Language-Team: Danish \n" diff --git a/locale/de.po b/locale/de.po index 850e7c58c3..00526590f0 100644 --- a/locale/de.po +++ b/locale/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: German \n" diff --git a/locale/el.po b/locale/el.po index f88a07e4b4..b93ed7c881 100644 --- a/locale/el.po +++ b/locale/el.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2022-03-31 05:02+0000\n" "Last-Translator: Apostolos Paschidis \n" "Language-Team: Greek \n" diff --git a/locale/en.po b/locale/en.po index bbf08125fa..b5b5debd40 100644 --- a/locale/en.po +++ b/locale/en.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-11-26 17:26+0200\n" "Last-Translator: Henri Hyyryläinen \n" "Language-Team: English \n" diff --git a/locale/eo.po b/locale/eo.po index 60865f8035..4787aaf6cf 100644 --- a/locale/eo.po +++ b/locale/eo.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Esperanto \n" diff --git a/locale/es.po b/locale/es.po index f26ee90aa0..a1ff3851b2 100644 --- a/locale/es.po +++ b/locale/es.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Spanish \n" diff --git a/locale/es_AR.po b/locale/es_AR.po index ca49911559..5c187dd652 100644 --- a/locale/es_AR.po +++ b/locale/es_AR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-10-16 05:52+0000\n" "Last-Translator: fideos con queso \n" "Language-Team: Spanish (Argentina) \n" diff --git a/locale/et.po b/locale/et.po index 4a31481330..69966a4748 100644 --- a/locale/et.po +++ b/locale/et.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Estonian \n" diff --git a/locale/fi.po b/locale/fi.po index 1fb63443fb..4e73dfc5a2 100644 --- a/locale/fi.po +++ b/locale/fi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-11-04 07:58+0000\n" "Last-Translator: Henri Hyyryläinen \n" "Language-Team: Finnish \n" diff --git a/locale/fr.po b/locale/fr.po index 07b1f0aa80..67974d4530 100644 --- a/locale/fr.po +++ b/locale/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-10-31 16:02+0000\n" "Last-Translator: Anonymous \n" "Language-Team: French \n" diff --git a/locale/frm.po b/locale/frm.po index 1a73c2d275..177bc301c0 100644 --- a/locale/frm.po +++ b/locale/frm.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" diff --git a/locale/he.po b/locale/he.po index f9f2980c5e..ac4b040b98 100644 --- a/locale/he.po +++ b/locale/he.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Hebrew \n" diff --git a/locale/hr.po b/locale/hr.po index ffb3b558cd..e2ecfff221 100644 --- a/locale/hr.po +++ b/locale/hr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-09-17 07:03+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Croatian \n" diff --git a/locale/hu.po b/locale/hu.po index 94a22b7146..543a30f720 100644 --- a/locale/hu.po +++ b/locale/hu.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Hungarian \n" diff --git a/locale/id.po b/locale/id.po index d8910d8258..c78adc63e6 100644 --- a/locale/id.po +++ b/locale/id.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Indonesian \n" diff --git a/locale/it.po b/locale/it.po index 9da13796ee..c2f6253192 100644 --- a/locale/it.po +++ b/locale/it.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Italian \n" diff --git a/locale/ka.po b/locale/ka.po index aeb9d74aab..a41b2419f5 100644 --- a/locale/ka.po +++ b/locale/ka.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-11-22 10:08+0000\n" "Last-Translator: NorwayFun \n" "Language-Team: Georgian \n" diff --git a/locale/ko.po b/locale/ko.po index e4b91b0567..0bd5260e7e 100644 --- a/locale/ko.po +++ b/locale/ko.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Korean \n" diff --git a/locale/la.po b/locale/la.po index 7ff5a71b21..6271f6fe50 100644 --- a/locale/la.po +++ b/locale/la.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2023-04-25 19:02+0000\n" "Last-Translator: AliquisDeNusquam \n" "Language-Team: Latin \n" diff --git a/locale/lb_LU.po b/locale/lb_LU.po index 93405b939f..28ea0a5ec4 100644 --- a/locale/lb_LU.po +++ b/locale/lb_LU.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Luxembourgish \n" diff --git a/locale/lt.po b/locale/lt.po index eb66e300f5..0b8d88ece8 100644 --- a/locale/lt.po +++ b/locale/lt.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2023-10-12 00:43+0000\n" "Last-Translator: Irmantas \n" "Language-Team: Lithuanian \n" diff --git a/locale/lv.po b/locale/lv.po index 9a92966f47..52525a3ef2 100644 --- a/locale/lv.po +++ b/locale/lv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Latvian \n" diff --git a/locale/messages.pot b/locale/messages.pot index 5d55c0e04b..2938acaf8f 100644 --- a/locale/messages.pot +++ b/locale/messages.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Thrive VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -331,12 +331,12 @@ msgstr "" msgid "ATP_BALANCE_WITH_ALL_COMPOUNDS" msgstr "" -#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:584 -#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:589 +#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:689 +#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:694 msgid "ATP_PRODUCTION" msgstr "" -#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:590 +#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:695 msgid "ATP_PRODUCTION_TOO_LOW" msgstr "" @@ -426,7 +426,7 @@ msgstr "" msgid "AUTO_MOVE_FORWARDS" msgstr "" -#: ../src/general/OptionsMenu.cs:1163 ../src/general/OptionsMenu.tscn:334 +#: ../src/general/OptionsMenu.cs:1164 ../src/general/OptionsMenu.tscn:334 msgid "AUTO_RESOLUTION" msgstr "" @@ -456,7 +456,7 @@ msgstr "" #: ../src/auto-evo/AutoEvoExploringTool.tscn:685 #: ../src/general/MainMenu.tscn:417 ../src/general/MainMenu.tscn:476 #: ../src/general/MainMenu.tscn:524 ../src/general/MainMenu.tscn:827 -#: ../src/general/NewGameSettings.tscn:968 ../src/general/OptionsMenu.tscn:1913 +#: ../src/general/NewGameSettings.tscn:1005 ../src/general/OptionsMenu.tscn:1913 #: ../src/general/PauseMenu.tscn:291 #: ../src/microbe_stage/gui/ExtinctionBox.tscn:72 #: ../src/modding/ModManager.tscn:83 ../src/saving/NewSaveMenu.tscn:122 @@ -464,7 +464,7 @@ msgstr "" msgid "BACK" msgstr "" -#: ../src/general/OptionsMenu.tscn:402 +#: ../src/general/OptionsMenu.tscn:467 msgid "BACKGROUND_BLUR" msgstr "" @@ -506,7 +506,7 @@ msgstr "" msgid "BASE_MOBILITY" msgstr "" -#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:703 +#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:808 msgid "BASE_MOVEMENT" msgstr "" @@ -642,7 +642,7 @@ msgstr "" msgid "BIOME_LABEL" msgstr "" -#: ../src/general/OptionsMenu.tscn:456 +#: ../src/general/OptionsMenu.tscn:434 msgid "BLOOM_RENDER_EFFECT" msgstr "" @@ -968,7 +968,7 @@ msgstr "" msgid "CHOSEN_FILENAME_ALREADY_EXISTS" msgstr "" -#: ../src/general/OptionsMenu.tscn:431 +#: ../src/general/OptionsMenu.tscn:409 msgid "CHROMATIC_ABERRATION" msgstr "" @@ -1822,7 +1822,7 @@ msgstr "" msgid "DECREASE_ITEM_SIZE" msgstr "" -#: ../src/general/OptionsMenu.cs:1637 +#: ../src/general/OptionsMenu.cs:1638 msgid "DEFAULT_AUDIO_OUTPUT_DEVICE" msgstr "" @@ -2064,19 +2064,19 @@ msgstr "" msgid "DISPLAY_ABILITIES_BAR" msgstr "" -#: ../src/general/OptionsMenu.tscn:482 +#: ../src/general/OptionsMenu.tscn:460 msgid "DISPLAY_BACKGROUND_DISTORTION_EFFECT" msgstr "" -#: ../src/general/OptionsMenu.tscn:477 +#: ../src/general/OptionsMenu.tscn:455 msgid "DISPLAY_BACKGROUND_PARTICLES" msgstr "" -#: ../src/general/OptionsMenu.cs:1180 +#: ../src/general/OptionsMenu.cs:1181 msgid "DISPLAY_DRIVER_OPENGL" msgstr "" -#: ../src/general/OptionsMenu.cs:1177 +#: ../src/general/OptionsMenu.cs:1178 msgid "DISPLAY_DRIVER_VULKAN" msgstr "" @@ -2366,19 +2366,19 @@ msgstr "" msgid "ENDOSYMBIOSIS_TITLE" msgstr "" -#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:644 +#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:749 msgid "ENERGY_BALANCE_REQUIRED_COMPOUND_LINE" msgstr "" -#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:714 +#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:819 msgid "ENERGY_BALANCE_TOOLTIP_CONSUMPTION" msgstr "" -#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:676 +#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:781 msgid "ENERGY_BALANCE_TOOLTIP_PRODUCTION" msgstr "" -#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:666 +#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:771 msgid "ENERGY_BALANCE_TOOLTIP_PRODUCTION_WITH_REQUIREMENT" msgstr "" @@ -3935,15 +3935,15 @@ msgstr "" msgid "LANGUAGE" msgstr "" -#: ../src/general/OptionsMenu.cs:1689 +#: ../src/general/OptionsMenu.cs:1690 msgid "LANGUAGE_TRANSLATION_PROGRESS" msgstr "" -#: ../src/general/OptionsMenu.cs:1685 +#: ../src/general/OptionsMenu.cs:1686 msgid "LANGUAGE_TRANSLATION_PROGRESS_LOW" msgstr "" -#: ../src/general/OptionsMenu.cs:1681 +#: ../src/general/OptionsMenu.cs:1682 msgid "LANGUAGE_TRANSLATION_PROGRESS_REALLY_LOW" msgstr "" @@ -4458,7 +4458,7 @@ msgid "METRICS_CONTENT" msgstr "" #: ../src/engine/DebugOverlays.PerformanceMetrics.cs:172 -#: ../src/general/OptionsMenu.cs:1765 ../src/general/OptionsMenu.cs:2313 +#: ../src/general/OptionsMenu.cs:1766 ../src/general/OptionsMenu.cs:2316 #: ../src/saving/SaveManagerGUI.cs:139 msgid "MIB_VALUE" msgstr "" @@ -4755,7 +4755,7 @@ msgstr "" msgid "MIN_VISIBLE_DATASET_WARNING" msgstr "" -#: ../src/general/NewGameSettings.tscn:270 ../src/general/OptionsMenu.tscn:227 +#: ../src/general/NewGameSettings.tscn:271 ../src/general/OptionsMenu.tscn:227 msgid "MISC" msgstr "" @@ -5624,7 +5624,7 @@ msgstr "" msgid "ORGANELLES_BUTTON" msgstr "" -#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:423 +#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:528 msgid "ORGANELLES_WILL_BE_UNLOCKED_NEXT_GENERATION" msgstr "" @@ -5699,7 +5699,7 @@ msgstr "" msgid "OR_UNLOCK_CONDITION" msgstr "" -#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:697 +#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:802 msgid "OSMOREGULATION" msgstr "" @@ -7264,7 +7264,7 @@ msgstr "" #: ../simulation_parameters/microbe_stage/compounds.json:207 #: ../src/gui_common/tooltip/ToolTipManager.tscn:758 -#: ../src/microbe_stage/editor/CellEditorComponent.tscn:470 +#: ../src/microbe_stage/editor/CellEditorComponent.tscn:469 #: ../src/microbe_stage/editor/MicrobeEditorReportComponent.tscn:505 #: ../src/microbe_stage/gui/PatchDetailsPanel.tscn:214 msgid "SUNLIGHT" @@ -7923,7 +7923,7 @@ msgstr "" msgid "UNBIND_HELP_TEXT" msgstr "" -#: ../src/general/OptionsMenu.cs:1779 +#: ../src/general/OptionsMenu.cs:1780 msgid "UNCERTAIN_VERSION_WARNING" msgstr "" @@ -7977,7 +7977,7 @@ msgstr "" msgid "UNKNOWN" msgstr "" -#: ../src/general/OptionsMenu.cs:1184 +#: ../src/general/OptionsMenu.cs:1185 msgid "UNKNOWN_DISPLAY_DRIVER" msgstr "" @@ -7998,7 +7998,7 @@ msgstr "" msgid "UNKNOWN_SHORT" msgstr "" -#: ../src/general/OptionsMenu.cs:1794 +#: ../src/general/OptionsMenu.cs:1795 msgid "UNKNOWN_VERSION" msgstr "" @@ -8066,7 +8066,7 @@ msgstr "" msgid "UNLOCK_CONDITION_SPEED_BELOW" msgstr "" -#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:405 +#: ../src/microbe_stage/editor/CellEditorComponent.GUI.cs:510 msgid "UNLOCK_WITH_ANY_OF_FOLLOWING" msgstr "" @@ -8222,7 +8222,7 @@ msgstr "" msgid "VIDEO_MEMORY" msgstr "" -#: ../src/general/OptionsMenu.cs:1194 ../src/general/OptionsMenu.tscn:539 +#: ../src/general/OptionsMenu.cs:1195 ../src/general/OptionsMenu.tscn:539 msgid "VIDEO_MEMORY_MIB" msgstr "" diff --git a/locale/mk.po b/locale/mk.po index 0c2b8d34eb..3fba377cd7 100644 --- a/locale/mk.po +++ b/locale/mk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Thrive VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2023-09-15 06:55+0000\n" "Last-Translator: Kristijan Miracevski \n" "Language-Team: Macedonian \n" diff --git a/locale/nb_NO.po b/locale/nb_NO.po index 641df27747..cba0226266 100644 --- a/locale/nb_NO.po +++ b/locale/nb_NO.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2023-03-10 06:53+0000\n" "Last-Translator: Jonas Lindberg \n" "Language-Team: Norwegian Bokmål \n" diff --git a/locale/nl.po b/locale/nl.po index 49568fc25d..5eea84b1b3 100644 --- a/locale/nl.po +++ b/locale/nl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-10-21 20:20+0000\n" "Last-Translator: Pascal Smit \n" "Language-Team: Dutch \n" diff --git a/locale/nl_BE.po b/locale/nl_BE.po index 1d17b1a003..37effcd097 100644 --- a/locale/nl_BE.po +++ b/locale/nl_BE.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Dutch (Belgium) \n" diff --git a/locale/pl.po b/locale/pl.po index e9d4cb4b0c..7f4e397365 100644 --- a/locale/pl.po +++ b/locale/pl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-11-19 19:46+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Polish \n" diff --git a/locale/pt_BR.po b/locale/pt_BR.po index 4588eba979..2e4b125c27 100644 --- a/locale/pt_BR.po +++ b/locale/pt_BR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-11-19 19:46+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Portuguese (Brazil) \n" diff --git a/locale/pt_PT.po b/locale/pt_PT.po index 8ad3934ccc..6d965454cf 100644 --- a/locale/pt_PT.po +++ b/locale/pt_PT.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Portuguese (Portugal) \n" diff --git a/locale/ro.po b/locale/ro.po index eb526cfbc7..b99ba56b9a 100644 --- a/locale/ro.po +++ b/locale/ro.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-03-30 03:50+0000\n" "Last-Translator: edy \n" "Language-Team: Romanian \n" diff --git a/locale/ru.po b/locale/ru.po index 16b9c2d0d6..033936efe3 100644 --- a/locale/ru.po +++ b/locale/ru.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-11-19 19:46+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Russian \n" diff --git a/locale/si_LK.po b/locale/si_LK.po index c5bf5577a0..cf14988a20 100644 --- a/locale/si_LK.po +++ b/locale/si_LK.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2022-03-22 18:22+0000\n" "Last-Translator: Henri Hyyryläinen \n" "Language-Team: Sinhala \n" diff --git a/locale/sk.po b/locale/sk.po index f9675d5a9c..97454f459d 100644 --- a/locale/sk.po +++ b/locale/sk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Slovak \n" diff --git a/locale/sr_Cyrl.po b/locale/sr_Cyrl.po index 0d93e788d9..1deebe065a 100644 --- a/locale/sr_Cyrl.po +++ b/locale/sr_Cyrl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Serbian (Cyrillic script) \n" diff --git a/locale/sr_Latn.po b/locale/sr_Latn.po index 702c3de025..0c1442fb7b 100644 --- a/locale/sr_Latn.po +++ b/locale/sr_Latn.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Serbian (Latin script) \n" diff --git a/locale/sv.po b/locale/sv.po index 971b360c25..dba1bd072a 100644 --- a/locale/sv.po +++ b/locale/sv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-10-19 21:07+0000\n" "Last-Translator: Paradox Edge \n" "Language-Team: Swedish \n" diff --git a/locale/th_TH.po b/locale/th_TH.po index 416455cb33..e7d353407b 100644 --- a/locale/th_TH.po +++ b/locale/th_TH.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-10-17 07:24+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Thai \n" diff --git a/locale/tok.po b/locale/tok.po index 54e2df5151..9e5be6b31a 100644 --- a/locale/tok.po +++ b/locale/tok.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Thrive VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2023-02-06 07:13+0000\n" "Last-Translator: jan-sopi \n" "Language-Team: Toki Pona \n" diff --git a/locale/tr.po b/locale/tr.po index 1a53955c67..8b7b1f9a5a 100644 --- a/locale/tr.po +++ b/locale/tr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-11-22 10:08+0000\n" "Last-Translator: punctdan \n" "Language-Team: Turkish \n" diff --git a/locale/uk.po b/locale/uk.po index 26c5daa5dc..41266bfe7e 100644 --- a/locale/uk.po +++ b/locale/uk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-11-19 19:46+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Ukrainian \n" diff --git a/locale/vi.po b/locale/vi.po index c35d0192ec..bf5ad14f4a 100644 --- a/locale/vi.po +++ b/locale/vi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" diff --git a/locale/zh_CN.po b/locale/zh_CN.po index 119d844b83..57638156e5 100644 --- a/locale/zh_CN.po +++ b/locale/zh_CN.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-11-19 19:46+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Chinese (Simplified Han script) \n" diff --git a/locale/zh_TW.po b/locale/zh_TW.po index 3b6e2185e2..c28ec3578e 100644 --- a/locale/zh_TW.po +++ b/locale/zh_TW.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-12-12 23:03+0300\n" +"POT-Creation-Date: 2024-12-13 18:38+0300\n" "PO-Revision-Date: 2024-11-20 07:02+0000\n" "Last-Translator: xzihnago \n" "Language-Team: Chinese (Traditional Han script) \n" diff --git a/src/general/OptionsMenu.tscn b/src/general/OptionsMenu.tscn index b6d891362f..ccf0074e2b 100644 --- a/src/general/OptionsMenu.tscn +++ b/src/general/OptionsMenu.tscn @@ -394,28 +394,6 @@ popup/item_1/id = 1 popup/item_2/text = "CORRECTION_TRITANOPE" popup/item_2/id = 2 -[node name="HBoxContainer13" type="HBoxContainer" parent="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer"] -layout_mode = 2 - -[node name="Label" type="Label" parent="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer13"] -layout_mode = 2 -text = "BACKGROUND_BLUR" - -[node name="Separator" type="Control" parent="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer13"] -layout_mode = 2 -size_flags_horizontal = 3 - -[node name="BlurAmount" type="HSlider" parent="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer13"] -custom_minimum_size = Vector2(200, 0) -layout_mode = 2 -size_flags_vertical = 1 -focus_neighbor_top = NodePath("../../HBoxContainer5/ChromaticAmount") -focus_neighbor_bottom = NodePath("../../DisplayBackgroundParticles") -max_value = 2.0 -step = 0.05 -value = 2.0 -scrollable = false - [node name="HBoxContainer5" type="HBoxContainer" parent="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer"] layout_mode = 2 size_flags_horizontal = 3 @@ -481,6 +459,28 @@ layout_mode = 2 size_flags_horizontal = 0 text = "DISPLAY_BACKGROUND_DISTORTION_EFFECT" +[node name="HBoxContainer13" type="HBoxContainer" parent="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer"] +layout_mode = 2 + +[node name="Label" type="Label" parent="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer13"] +layout_mode = 2 +text = "BACKGROUND_BLUR" + +[node name="Separator" type="Control" parent="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer13"] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="BlurAmount" type="HSlider" parent="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer13"] +custom_minimum_size = Vector2(200, 0) +layout_mode = 2 +size_flags_vertical = 1 +focus_neighbor_top = NodePath("../../HBoxContainer5/ChromaticAmount") +focus_neighbor_bottom = NodePath("../../DisplayBackgroundParticles") +max_value = 2.0 +step = 0.05 +value = 2.0 +scrollable = false + [node name="Menu3DBackgroundsToggle" type="CheckBox" parent="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer"] layout_mode = 2 size_flags_horizontal = 0 @@ -2086,13 +2086,13 @@ grow_vertical = 1 [connection signal="item_selected" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer/MSAAResolution" to="." method="OnMSAAResolutionSelected"] [connection signal="item_selected" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer3/MaxFramesPerSecond" to="." method="OnMaxFramesPerSecondSelected"] [connection signal="item_selected" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer2/ColourblindSetting" to="." method="OnColourblindSettingSelected"] -[connection signal="value_changed" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer13/BlurAmount" to="." method="OnBlurStrengthChanged"] [connection signal="toggled" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer5/ChromaticToggle" to="." method="OnChromaticAberrationToggled"] [connection signal="value_changed" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer5/ChromaticAmount" to="." method="OnChromaticAberrationValueChanged"] [connection signal="toggled" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer12/Bloom" to="." method="OnBloomToggled"] [connection signal="value_changed" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer12/BloomAmount" to="." method="OnBloomStrengthChanged"] [connection signal="toggled" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/DisplayBackgroundParticles" to="." method="OnDisplayBackgroundParticlesToggled"] [connection signal="toggled" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/BackgroundDistortion" to="." method="OnMicrobeBackgroundDistortionToggled"] +[connection signal="value_changed" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer13/BlurAmount" to="." method="OnBlurStrengthChanged"] [connection signal="toggled" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/Menu3DBackgroundsToggle" to="." method="OnDisplay3DMenuBackgroundsToggled"] [connection signal="item_selected" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer10/ControllerPromptType" to="." method="OnControllerTypeSelected"] [connection signal="toggled" from="CenterContainer/VBoxContainer/VBoxContainer/VBoxContainer/PanelContainer/Graphics/ScrollContainer/MarginContainer/VBoxContainer/DisplayAbilitiesBar" to="." method="OnDisplayAbilitiesHotBarToggled"]