diff --git a/menus/main_menu.tscn b/menus/main_menu.tscn index 09a71e6..86285f2 100644 --- a/menus/main_menu.tscn +++ b/menus/main_menu.tscn @@ -1,20 +1,27 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=7 format=2] [ext_resource path="res://ui/theme.tres" type="Theme" id=1] -[ext_resource path="res://graphics/borders/skaborder.png" type="Texture" id=2] [ext_resource path="res://graphics/hud/sg_menu.png" type="Texture" id=3] [ext_resource path="res://graphics/hud/pause_arrow.png" type="Texture" id=4] [ext_resource path="res://menus/main_menu.gd" type="Script" id=5] +[ext_resource path="res://shaders/ska_plane.gdshader" type="Shader" id=6] + +[sub_resource type="ShaderMaterial" id=2] +shader = ExtResource( 6 ) +shader_param/color_1 = Color( 0.952941, 0.952941, 0.952941, 1 ) +shader_param/color_2 = Color( 0.137255, 0.137255, 0.137255, 1 ) +shader_param/checker_size = Vector2( 16, 16 ) +shader_param/cycle_speed = Vector2( 12, 0 ) +shader_param/pan_speed = Vector2( 0, 0 ) +shader_param/uv_transform = Transform( 1, -2, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0 ) [node name="MainMenu" type="Node"] script = ExtResource( 5 ) -[node name="TextureRect" type="TextureRect" parent="."] +[node name="Background" type="ColorRect" parent="."] +material = SubResource( 2 ) anchor_right = 1.0 anchor_bottom = 1.0 -texture = ExtResource( 2 ) -expand = true -stretch_mode = 2 [node name="TextureRect2" type="TextureRect" parent="."] margin_left = 176.0 diff --git a/shaders/ska_plane.gdshader b/shaders/ska_plane.gdshader new file mode 100644 index 0000000..e1b3ec8 --- /dev/null +++ b/shaders/ska_plane.gdshader @@ -0,0 +1,27 @@ +shader_type canvas_item; +render_mode skip_vertex_transform; + +uniform vec4 color_1 : hint_color = vec4(1.0, 1.0, 1.0, 1.0); +uniform vec4 color_2 : hint_color = vec4(0.0, 0.0, 0.0, 1.0); +uniform vec2 checker_size = vec2(8.0, 8.0); +uniform vec2 cycle_speed = vec2(0.0, 0.0); +uniform vec2 pan_speed = vec2(0.0, 0.0); +uniform mat4 uv_transform = mat4(1.0); + +float checker(vec2 uv) { + vec2 div_uv = floor((uv) / checker_size); + float fmodResult = mod(div_uv.x + div_uv.y, 2.0); + return max(sign(fmodResult), 0.0); +} + +void vertex() { + UV = VERTEX; + VERTEX = (WORLD_MATRIX * (EXTRA_MATRIX * vec4(VERTEX, 0.0, 1.0))).xy; +} + +void fragment() { + vec2 uv = UV - pan_speed * TIME; + uv = (uv_transform * vec4(uv, 0.0, 1.0)).xy; + uv -= cycle_speed * TIME; + COLOR = mix(color_1, color_2, checker(uv)); +} \ No newline at end of file