diff --git a/Assets/Objects/Decorations.glb b/Assets/Objects/Decorations.glb index 9239a8a..5eab544 100644 Binary files a/Assets/Objects/Decorations.glb and b/Assets/Objects/Decorations.glb differ diff --git a/Assets/Objects/Tiles.glb b/Assets/Objects/Tiles.glb index aeb14e0..cd9ddc3 100644 Binary files a/Assets/Objects/Tiles.glb and b/Assets/Objects/Tiles.glb differ diff --git a/Scenes/Game.tscn b/Scenes/Game.tscn index 3b54b01..3a00d8c 100644 --- a/Scenes/Game.tscn +++ b/Scenes/Game.tscn @@ -96,6 +96,11 @@ text = "19:20" fit_content = true autowrap_mode = 0 +[node name="LightColor" type="ColorPickerButton" parent="Control/MainUI/HeaderContainer/Header" unique_id=395026790] +layout_mode = 2 +theme_override_colors/font_color = Color(1, 1, 1, 1) +text = "Choose Color..." + [node name="Content" type="Control" parent="Control/MainUI" unique_id=45665557] layout_mode = 2 size_flags_vertical = 3 @@ -138,3 +143,5 @@ layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 theme_override_constants/separation = 10 + +[connection signal="color_changed" from="Control/MainUI/HeaderContainer/Header/LightColor" to="Control" method="ChangeColor"] diff --git a/Scripts/Helpers/LightHandler.cs b/Scripts/Helpers/LightHandler.cs new file mode 100644 index 0000000..a0f6b62 --- /dev/null +++ b/Scripts/Helpers/LightHandler.cs @@ -0,0 +1,15 @@ +using Godot; +using System.Collections.Generic; + +public class LightHandler +{ + public static List lights = new (); + + public static void RedrawLights(Color color) + { + foreach(OmniLight3D light in lights) + { + light.LightColor = color; + } + } +} \ No newline at end of file diff --git a/Scripts/Helpers/LightHandler.cs.uid b/Scripts/Helpers/LightHandler.cs.uid new file mode 100644 index 0000000..f656ddc --- /dev/null +++ b/Scripts/Helpers/LightHandler.cs.uid @@ -0,0 +1 @@ +uid://b150nxl3cc3ck diff --git a/Scripts/Helpers/UIHandler.cs b/Scripts/Helpers/UIHandler.cs index 38ff148..c0f591d 100644 --- a/Scripts/Helpers/UIHandler.cs +++ b/Scripts/Helpers/UIHandler.cs @@ -4,7 +4,7 @@ public partial class UIHandler : Control { public override void _Ready() { - + GetNode("./MainUI/HeaderContainer/Header/LightColor").Color = GameData.lightColor; } // Called every frame. 'delta' is the elapsed time since the previous frame. @@ -13,4 +13,10 @@ public partial class UIHandler : Control } + public void ChangeColor(Color color) + { + GameData.lightColor = color; + LightHandler.RedrawLights(color); + } + } diff --git a/Scripts/Tile.cs b/Scripts/Tile.cs index 519061c..290521e 100644 --- a/Scripts/Tile.cs +++ b/Scripts/Tile.cs @@ -104,6 +104,7 @@ public partial class Tile Position = placeholder.transform.Origin }; lightSource.Position.MoveToward(transform.Origin, 0.1f); + LightHandler.lights.Add(lightSource); light.AddChild(lightSource); ContentNode.AddChild(light); light.LookAt(transform.Origin, Vector3.Up); @@ -111,14 +112,13 @@ public partial class Tile private void SpawnResource(MeshInstance3D resourceMesh, Placeholder placeholder, Transform3D transform) { - Vector3 forward = (transform.Origin - placeholder.transform.Origin).Normalized(); MeshInstance3D resource = new MeshInstance3D { Mesh = resourceMesh.Mesh, Position = placeholder.transform.Origin }; ContentNode.AddChild(resource); - resource.LookAt(resource.Position + forward, Vector3.Up); + resource.LookAt(transform.Origin, Vector3.Up); } private void SpawnDecorations(Dictionary contentMeshes, Placeholder placeholder, Transform3D transform) @@ -132,6 +132,7 @@ public partial class Tile Position = placeholder.transform.Origin }; ContentNode.AddChild(decoration); + decoration.LookAt(transform.Origin, Vector3.Up); } } } diff --git a/Scripts/World.cs b/Scripts/World.cs index db0cfc1..123c941 100644 --- a/Scripts/World.cs +++ b/Scripts/World.cs @@ -141,7 +141,7 @@ public partial class World : Node3D int posX, posY; - while(currentLight < layerSize * layerSize / 2) + while(currentLight < layerSize * layerSize / 4) { posX = rand.Next(layerSize); posY = rand.Next(layerSize);