update overlays every frame #5
This commit is contained in:
parent
1864623535
commit
4261d7762e
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=12 format=2]
|
[gd_scene load_steps=11 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://nodes/grid.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://nodes/grid.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://nodes/grid_cursor.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://nodes/grid_cursor.tscn" type="PackedScene" id=2]
|
||||||
|
@ -7,7 +7,6 @@
|
||||||
[ext_resource path="res://nodes/interaction_modes/interaction_mode.tscn" type="PackedScene" id=5]
|
[ext_resource path="res://nodes/interaction_modes/interaction_mode.tscn" type="PackedScene" id=5]
|
||||||
[ext_resource path="res://nodes/ui/build_mode_ui.tscn" type="PackedScene" id=6]
|
[ext_resource path="res://nodes/ui/build_mode_ui.tscn" type="PackedScene" id=6]
|
||||||
[ext_resource path="res://nodes/interaction_modes/build_mode.tscn" type="PackedScene" id=7]
|
[ext_resource path="res://nodes/interaction_modes/build_mode.tscn" type="PackedScene" id=7]
|
||||||
[ext_resource path="res://resources/tiles/tiles.tres" type="Resource" id=8]
|
|
||||||
[ext_resource path="res://nodes/ui/mode_selection_ui.tscn" type="PackedScene" id=9]
|
[ext_resource path="res://nodes/ui/mode_selection_ui.tscn" type="PackedScene" id=9]
|
||||||
[ext_resource path="res://nodes/overlays.tscn" type="PackedScene" id=10]
|
[ext_resource path="res://nodes/overlays.tscn" type="PackedScene" id=10]
|
||||||
|
|
||||||
|
@ -21,7 +20,6 @@ _autoTick = true
|
||||||
|
|
||||||
[node name="World Grid" parent="." instance=ExtResource( 1 )]
|
[node name="World Grid" parent="." instance=ExtResource( 1 )]
|
||||||
DiffusionCoefficient = 0.1
|
DiffusionCoefficient = 0.1
|
||||||
_tileGridResource = ExtResource( 8 )
|
|
||||||
|
|
||||||
[node name="Cursor" parent="." instance=ExtResource( 2 )]
|
[node name="Cursor" parent="." instance=ExtResource( 2 )]
|
||||||
Grid = NodePath("../World Grid")
|
Grid = NodePath("../World Grid")
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
[gd_scene load_steps=3 format=2]
|
[gd_scene load_steps=4 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://scripts/WorldGrid.cs" type="Script" id=1]
|
[ext_resource path="res://scripts/WorldGrid.cs" type="Script" id=1]
|
||||||
[ext_resource path="res://nodes/tile.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://nodes/tile.tscn" type="PackedScene" id=2]
|
||||||
|
[ext_resource path="res://resources/tiles/tiles.tres" type="Resource" id=3]
|
||||||
|
|
||||||
[node name="Grid" type="Node2D"]
|
[node name="Grid" type="Node2D"]
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
TileScene = ExtResource( 2 )
|
TileScene = ExtResource( 2 )
|
||||||
Size = 10
|
|
||||||
CellSize = 64
|
CellSize = 64
|
||||||
|
_tileGridResource = ExtResource( 3 )
|
||||||
|
|
|
@ -8,4 +8,4 @@ Name = "Developed"
|
||||||
BuildLabel = "[D]eveloped"
|
BuildLabel = "[D]eveloped"
|
||||||
Key = 68
|
Key = 68
|
||||||
Color = Color( 0.372549, 0.372549, 0.372549, 1 )
|
Color = Color( 0.372549, 0.372549, 0.372549, 1 )
|
||||||
HeatGeneration = 0.1
|
HeatGeneration = 0.4
|
||||||
|
|
|
@ -8,4 +8,4 @@ Name = "Wild"
|
||||||
BuildLabel = "[W]ild"
|
BuildLabel = "[W]ild"
|
||||||
Key = 87
|
Key = 87
|
||||||
Color = Color( 0, 0.545098, 0.0196078, 1 )
|
Color = Color( 0, 0.545098, 0.0196078, 1 )
|
||||||
HeatGeneration = -0.025
|
HeatGeneration = -0.2
|
||||||
|
|
|
@ -9,14 +9,10 @@ public class HeatOverlay : Overlay
|
||||||
[Export]
|
[Export]
|
||||||
private Color _hotColor;
|
private Color _hotColor;
|
||||||
|
|
||||||
public override void Initialise(Tile tile, ShaderMaterial material)
|
public override void Apply(Tile tile, ShaderMaterial material)
|
||||||
{
|
{
|
||||||
material.SetShaderParam("lowColor", _coldColor);
|
material.SetShaderParam("lowColor", _coldColor);
|
||||||
material.SetShaderParam("highColor", _hotColor);
|
material.SetShaderParam("highColor", _hotColor);
|
||||||
}
|
|
||||||
|
|
||||||
public override void Process(Tile tile, ShaderMaterial material)
|
|
||||||
{
|
|
||||||
material.SetShaderParam("t", tile.temperature);
|
material.SetShaderParam("t", tile.temperature);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,15 +3,10 @@ using Godot;
|
||||||
public class NoOverlay : Overlay
|
public class NoOverlay : Overlay
|
||||||
{
|
{
|
||||||
// in this view we want to draw tiles with their normal colour
|
// in this view we want to draw tiles with their normal colour
|
||||||
|
public override void Apply(Tile tile, ShaderMaterial material)
|
||||||
public override void Initialise(Tile tile, ShaderMaterial material)
|
|
||||||
{
|
{
|
||||||
var type = tile.type;
|
var type = tile.type;
|
||||||
material.SetShaderParam("lowColor", type.Color);
|
material.SetShaderParam("lowColor", type.Color);
|
||||||
material.SetShaderParam("t", 0);
|
material.SetShaderParam("t", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Process(Tile tile, ShaderMaterial material)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -2,6 +2,5 @@ using Godot;
|
||||||
|
|
||||||
public abstract class Overlay : Resource
|
public abstract class Overlay : Resource
|
||||||
{
|
{
|
||||||
public abstract void Initialise(Tile tile, ShaderMaterial material);
|
public abstract void Apply(Tile tile, ShaderMaterial material);
|
||||||
public abstract void Process(Tile tile, ShaderMaterial material);
|
|
||||||
}
|
}
|
|
@ -56,7 +56,7 @@ public class Overlays : Node
|
||||||
var tile = _tileGrid[i];
|
var tile = _tileGrid[i];
|
||||||
var material = _worldGrid.GetTileMaterial(i);
|
var material = _worldGrid.GetTileMaterial(i);
|
||||||
|
|
||||||
Current.Process(tile, material);
|
Current.Apply(tile, material);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,13 +64,5 @@ public class Overlays : Node
|
||||||
{
|
{
|
||||||
_overlayIdx++;
|
_overlayIdx++;
|
||||||
_overlayIdx %= _overlays.Length;
|
_overlayIdx %= _overlays.Length;
|
||||||
|
|
||||||
for (int i = 0; i < _tileGrid.Count; i++)
|
|
||||||
{
|
|
||||||
var tile = _tileGrid[i];
|
|
||||||
var material = _worldGrid.GetTileMaterial(i);
|
|
||||||
|
|
||||||
Current.Initialise(tile, material);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue