[gd_scene load_steps=13 format=2] [ext_resource path="res://Node.tscn" type="PackedScene" id=1] [ext_resource path="res://scenes/2DOverlay.gd" type="Script" id=2] [ext_resource path="res://scenes/Overlay Text.tres" type="Theme" id=3] [ext_resource path="res://sprites/Mara.png" type="Texture" id=4] [ext_resource path="res://scenes/GlitchyTexture.tres" type="Material" id=5] [sub_resource type="Shader" id=8] code = "shader_type canvas_item; uniform float battery : hint_range(0.0,1.0) = 1.0; uniform float anchor : hint_range(-1.0,1.0) = -0.5; uniform float speed_scale : hint_range(1.0, 10.0) = 1.0; uniform float fov : hint_range(0.01, 1.0) = 0.2; uniform vec4 background_color : hint_color = vec4(0.0, 0.1, 0.2, 1.0); uniform vec4 grid_color : hint_color = vec4(1.0, 0.5, 1.0, 1.0); float grid(vec2 uv, float batt) { vec2 size = vec2(uv.y, uv.y * uv.y * 0.2) * 0.01; uv += vec2(0.0, TIME * speed_scale * (batt + 0.05)); uv = abs(fract(uv) - 0.5); vec2 lines = smoothstep(size, vec2(0.0), uv); lines += smoothstep(size * 5.0, vec2(0.0), uv) * 0.4 * batt; return clamp(lines.x + lines.y, 0.0, 3.0); } void fragment() { vec2 uv = UV; vec4 col = background_color; uv.y = 3.0 / (abs(uv.y + fov) + 0.05); uv.x += anchor; uv.x *= uv.y * 1.0; float gridVal = grid(uv, battery); col = mix(background_color, grid_color, gridVal); COLOR = col; }" [sub_resource type="ShaderMaterial" id=9] shader = SubResource( 8 ) shader_param/battery = 1.0 shader_param/anchor = -0.5 shader_param/speed_scale = 1.0 shader_param/fov = 0.2 shader_param/background_color = Color( 0, 0.1, 0.2, 1 ) shader_param/grid_color = Color( 1, 0.5, 1, 1 ) [sub_resource type="Shader" id=10] code = "// cloudy skies shader // inspired from shadertoy shader made by Drift (https://www.shadertoy.com/view/4tdSWr) shader_type canvas_item; uniform float cloudscale = 1.1; uniform float speed = 0.01; uniform float clouddark = 0.5; uniform float cloudlight = 0.3; uniform float cloudcover = 0.2; uniform float cloudalpha = 8.0; uniform float skytint = 0.5; uniform vec3 skycolour1 = vec3(0.2, 0.4, 0.6); uniform vec3 skycolour2 = vec3(0.4, 0.7, 1.0); uniform mat2 m = mat2(vec2(1.6,1.2),vec2(-1.2,1.6)); // changement // functions vec2 hash( vec2 p ) { p = vec2(dot(p,vec2(127.1,311.7)), dot(p,vec2(269.5,183.3))); return -1.0 + 2.0*fract(sin(p)*43758.5453123); } float noise( in vec2 p ) { float K1 = 0.366025404; // (sqrt(3)-1)/2; float K2 = 0.211324865; // (3-sqrt(3))/6; vec2 i = floor(p + (p.x+p.y)*K1); vec2 a = p - i + (i.x+i.y)*K2; vec2 o = (a.x>a.y) ? vec2(1.0,0.0) : vec2(0.0,1.0); //vec2 of = 0.5 + 0.5*vec2(sign(a.x-a.y), sign(a.y-a.x)); vec2 b = a - o + K2; vec2 c = a - 1.0 + 2.0*K2; vec3 h = max(0.5-vec3(dot(a,a), dot(b,b), dot(c,c) ), 0.0 ); vec3 n = h*h*h*h*vec3( dot(a,hash(i+0.0)), dot(b,hash(i+o)), dot(c,hash(i+1.0))); return dot(n, vec3(70.0)); } float fbm(vec2 n) { float total = 0.0, amplitude = 0.1; for (int i = 0; i < 7; i++) { total += noise(n) * amplitude; n = m * n; amplitude *= 0.4; } return total; } // fragment shader void fragment() { vec2 res = 1.0 / SCREEN_PIXEL_SIZE; vec2 p = FRAGCOORD.xy / res.xy; // changement vec2 uv = p*vec2(res.x/res.y,1.0); // changement float time = TIME * speed ; float q = fbm(uv * cloudscale * 0.5); //ridged noise shape float r = 0.0; uv *= cloudscale; uv += q - time; float weight = 0.8; for (int i=0; i<8; i++){ r += abs(weight*noise( uv )); uv = m*uv + time; weight *= 0.7; } //noise shape float f = 0.0; uv = p*vec2(res.x/res.y,1.0); // changement uv *= cloudscale; uv += q - time; weight = 0.7; for (int i=0; i<8; i++){ f += weight*noise( uv ); uv = m*uv + time; weight *= 0.6; } f *= r + f; //noise colour float c = 0.0; time = TIME * speed * 2.0; uv = p*vec2(res.x/res.y,1.0); // changement uv *= cloudscale*2.0; uv += q - time; weight = 0.4; for (int i=0; i<7; i++){ c += weight*noise( uv ); uv = m*uv + time; weight *= 0.6; } //noise ridge colour float c1 = 0.0; time = TIME * speed * 3.0; uv = p*vec2(res.x/res.y,1.0); uv *= cloudscale*3.0; uv += q - time; weight = 0.4; for (int i=0; i<7; i++){ c1 += abs(weight*noise( uv )); uv = m*uv + time; weight *= 0.6; } c += c1; vec3 skycolour = mix(skycolour2, skycolour1, p.y); vec3 cloudcolour = vec3(1.1, 1.1, 0.9) * clamp((clouddark + cloudlight*c), 0.0, 1.0); f = cloudcover + cloudalpha*f*r; vec3 result = mix(skycolour, clamp(skytint * skycolour + cloudcolour, 0.0, 1.0), clamp(f + c, 0.0, 1.0)); COLOR.rgb = vec3(result); } " [sub_resource type="ShaderMaterial" id=11] shader = SubResource( 10 ) shader_param/cloudscale = 1.1 shader_param/speed = 0.01 shader_param/clouddark = 0.5 shader_param/cloudlight = 0.3 shader_param/cloudcover = 0.15 shader_param/cloudalpha = 2.0 shader_param/skytint = 1.0 shader_param/skycolour1 = Vector3( 0.2, 0.4, 0.6 ) shader_param/skycolour2 = Vector3( 0.4, 0.7, 1 ) shader_param/m = Transform2D( 1.6, -1.2, 1.2, 1.6, 0, 0 ) [sub_resource type="AtlasTexture" id=4] atlas = ExtResource( 4 ) region = Rect2( 0, 0, 16, 16 ) [sub_resource type="AtlasTexture" id=5] atlas = ExtResource( 4 ) region = Rect2( 16, 0, 16, 16 ) [sub_resource type="SpriteFrames" id=3] animations = [ { "frames": [ SubResource( 4 ), SubResource( 5 ) ], "loop": true, "name": "down", "speed": 1.0 } ] [node name="Overlay" type="Node2D"] script = ExtResource( 2 ) [node name="Panel" type="Panel" parent="."] material = SubResource( 9 ) margin_right = 1920.0 margin_bottom = 1079.0 [node name="Panel2" type="Panel" parent="."] modulate = Color( 1, 1, 1, 0.376471 ) material = SubResource( 11 ) margin_right = 1920.0 margin_bottom = 1079.0 [node name="Chatbox" parent="." instance=ExtResource( 1 )] margin_left = 1278.0 margin_right = 1599.0 margin_bottom = 259.0 rect_scale = Vector2( 2, 2 ) [node name="Facecam" type="ColorRect" parent="."] visible = false margin_left = 1280.0 margin_top = 518.0 margin_right = 1920.0 margin_bottom = 1079.0 color = Color( 0, 1, 0.835294, 1 ) [node name="Screen" type="ColorRect" parent="."] margin_right = 1280.0 margin_bottom = 720.0 rect_min_size = Vector2( 720, 0 ) color = Color( 0, 0, 1, 1 ) [node name="HBoxContainer" type="HBoxContainer" parent="."] margin_left = 18.0 margin_top = 720.0 margin_right = 1281.0 margin_bottom = 1080.0 rect_min_size = Vector2( 720, 0 ) [node name="VBoxContainer2" type="VBoxContainer" parent="HBoxContainer"] visible = false margin_bottom = 360.0 [node name="ColorRect" type="ColorRect" parent="HBoxContainer/VBoxContainer2"] margin_right = 340.0 margin_bottom = 360.0 [node name="VBoxContainer" type="VBoxContainer" parent="HBoxContainer"] margin_right = 316.0 margin_bottom = 360.0 [node name="Stream" type="Label" parent="HBoxContainer/VBoxContainer"] margin_right = 316.0 margin_bottom = 39.0 theme = ExtResource( 3 ) text = "twitch: princessxen" [node name="Twitter" type="Label" parent="HBoxContainer/VBoxContainer"] margin_top = 43.0 margin_right = 316.0 margin_bottom = 82.0 theme = ExtResource( 3 ) text = "twitter: @theprincessxena" [node name="Website" type="Label" parent="HBoxContainer/VBoxContainer"] margin_top = 86.0 margin_right = 316.0 margin_bottom = 125.0 theme = ExtResource( 3 ) text = "https://xeiaso.net" [node name="Patrone" type="Label" parent="HBoxContainer/VBoxContainer"] margin_top = 129.0 margin_right = 316.0 margin_bottom = 168.0 theme = ExtResource( 3 ) text = "https://patreon.com/cadey" [node name="Mara" type="AnimatedSprite" parent="HBoxContainer/VBoxContainer"] material = ExtResource( 5 ) position = Vector2( 165, 263 ) scale = Vector2( 10, 10 ) frames = SubResource( 3 ) animation = "down" frame = 1 playing = true