aboutsummaryrefslogtreecommitdiff
path: root/game/src/GameSession/TerrainMap.gdshader
diff options
context:
space:
mode:
author Gone2Daly <71726742+Gone2Daly@users.noreply.github.com>2023-04-07 18:10:49 +0200
committer Spartan322 <Megacake1234@gmail.com>2023-04-14 17:22:22 +0200
commit7241811bd8c9493b7b6c6480e8d63a5fb7f38e4e (patch)
treeb5a33a733398b511eb0aa7781860c8accbadd2a0 /game/src/GameSession/TerrainMap.gdshader
parentc0d76b78d3762e6eec3ed1c62618be84c5b7559b (diff)
Add minimap for terrain map
With accurate viewport shape display on minimap With Mapmode management With Region mapmode With Province mapmode With Index mapmode With Minimap single-click movement With Minimap drag-click movement
Diffstat (limited to 'game/src/GameSession/TerrainMap.gdshader')
-rw-r--r--game/src/GameSession/TerrainMap.gdshader13
1 files changed, 5 insertions, 8 deletions
diff --git a/game/src/GameSession/TerrainMap.gdshader b/game/src/GameSession/TerrainMap.gdshader
index a6774fd..7aca0f9 100644
--- a/game/src/GameSession/TerrainMap.gdshader
+++ b/game/src/GameSession/TerrainMap.gdshader
@@ -8,10 +8,10 @@ uniform sampler2D terrain_tex: source_color, repeat_enable, filter_linear;
uniform sampler2D province_index_tex : repeat_enable, filter_nearest;
// Province colour texture
uniform sampler2D province_colour_tex: source_color, repeat_enable, filter_nearest;
-// Position of the mouse over the map mesh in UV coords
-uniform vec2 hover_pos;
-// Position in UV coords of a pixel belonging to the currently selected province
-uniform vec2 selected_pos;
+// Index of the mouse over the map mesh
+uniform uint hover_index;
+// Index of the currently selected province
+uniform uint selected_index;
uvec2 vec2_to_uvec2(vec2 v) {
return uvec2(v * 255.0);
@@ -31,13 +31,10 @@ uint read_uint16(sampler2D tex, vec2 uv) {
void fragment() {
uvec2 prov_idx_split = read_uvec2(province_index_tex, UV);
-
uint prov_index = uvec2_to_uint(prov_idx_split);
- uint hover_index = read_uint16(province_index_tex, hover_pos);
- uint selected_index = read_uint16(province_index_tex, selected_pos);
// Boost prov_colour's contribution if it matches hover_colour or selected_colour
- float mix_val = float(prov_index == hover_index) * 0.3 + float(prov_index == selected_index) * 0.5;
+ float mix_val = 0.3 + float(prov_index == hover_index) * 0.3 + float(prov_index == selected_index) * 0.3;
// Don't mix if the province index is 0
mix_val *= float(prov_index != 0u);