From 33552559e876c0c3f2792865cf67c1805eea40ff Mon Sep 17 00:00:00 2001 From: Xe Iaso Date: Sat, 6 Aug 2022 23:32:30 -0400 Subject: [PATCH] oh fuck it all works Signed-off-by: Xe Iaso --- .DS_Store | Bin 0 -> 6148 bytes LICENSE | 21 ++ Node.tscn | 3 - README.md | 30 ++ assets/.DS_Store | Bin 0 -> 6148 bytes .../CecepsHandwriting-vmpKZ.ttf | Bin 0 -> 53376 bytes assets/cecep-s-handwriting-2-font/info.txt | 2 + assets/fractal-shaders/fire_gradient.tres | 7 + assets/fractal-shaders/julia.shader | Bin 0 -> 500 bytes assets/fractal-shaders/julia.shd | Bin 0 -> 500 bytes assets/fractal-shaders/mandelbrot.shd | Bin 0 -> 529 bytes assets/fractal-shaders/sierpinski_carpet.shd | Bin 0 -> 698 bytes export/.gitignore | 1 + export_presets.cfg | 51 +++- scenes/2DOverlay.gd | 16 + scenes/2DOverlay.tscn | 278 +++++++++++++++++- scenes/GlitchyTexture.tres | 42 +++ scenes/Overlay Text.tres | 14 + sprites/Mara.png | Bin 0 -> 399 bytes sprites/Mara.png.import | 35 +++ 20 files changed, 484 insertions(+), 16 deletions(-) create mode 100644 .DS_Store create mode 100644 LICENSE create mode 100644 README.md create mode 100644 assets/.DS_Store create mode 100644 assets/cecep-s-handwriting-2-font/CecepsHandwriting-vmpKZ.ttf create mode 100644 assets/cecep-s-handwriting-2-font/info.txt create mode 100644 assets/fractal-shaders/fire_gradient.tres create mode 100644 assets/fractal-shaders/julia.shader create mode 100644 assets/fractal-shaders/julia.shd create mode 100644 assets/fractal-shaders/mandelbrot.shd create mode 100644 assets/fractal-shaders/sierpinski_carpet.shd create mode 100644 export/.gitignore create mode 100644 scenes/2DOverlay.gd create mode 100644 scenes/GlitchyTexture.tres create mode 100644 scenes/Overlay Text.tres create mode 100644 sprites/Mara.png create mode 100644 sprites/Mara.png.import diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..e27e04c16d57f364a3d7a4ed2fb7d1153b942678 GIT binary patch literal 6148 zcmeHKv2NQi5G5VQreg%~&>|TLbTv>rHk=k+RL7YER7E?qg(F3RBUBazORfgNfYv0x zku`Js0r`f0O^4o*3{Y83+9?SFp22&k;~lAc0!fn)LdQ$5Pe_Ll!k{76w?O?xupe7R zYTARHRF097#Lbe}4TW2YHV(spVc@YbfNQrw9FoA#C*}3~-HpQ_NqfDYw6;;-Y&2Pu zwb>W@RAhGQq|0RNEI#4Wdm%#i#&+BffuBt~&kjVCIzi+wWJ2Ki5c2tB5P2dSi)G{` zGS^leti@W>&Q6}c+VAo~f4J)M{PkY1%ZG!}YSm)TU%Y(tZu&KxN8(IzNMXy7vaRt3 z&cP^^^vzyGp@?SS$DAgV8j}SHpj^MSVg0!Gf_L+Le*{$yhJ!mQ#)?30t@r{u*QyF< zefvbrW0|PbTEtvTCVHc0zv$)Y>gf7yb)32I{v#?r{nu=3-{6neGUh`upcfEpKhz7D zc?|=Gfk(>#?hhOqqNTA=D7Ow!@(KW02e%Zk@h*WmT%)D2PzXIBRHXu{RI0BSRHcKT z>o`kep-`n0sxKc@&rJ0Vh057sd@jQYwGSSlgyK0z%cNn z7@+luJsCqu`fRNfhi5H^b_@*#;|hf`1(ZIHrGZEBE;K37$I$?^G!_cM17iLNNE(bX J4BRUNzX60Fs~`XX literal 0 HcmV?d00001 diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..2ef45bb --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Yuri Roubinski aka Chaosus + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Node.tscn b/Node.tscn index a821827..b9e8c58 100644 --- a/Node.tscn +++ b/Node.tscn @@ -41,9 +41,6 @@ margin_right = -10.0 margin_bottom = -10.0 follow_focus = true scroll_horizontal_enabled = false -__meta__ = { -"_edit_use_anchors_": false -} [node name="ChatMessagesContainer" type="VBoxContainer" parent="ChatContainer/Chat/ScrollContainer"] margin_right = 1900.0 diff --git a/README.md b/README.md new file mode 100644 index 0000000..c2f1cba --- /dev/null +++ b/README.md @@ -0,0 +1,30 @@ +# GDFractals +Fractal shaders for Godot 3.0 + +# Contains +* Julia fractal shader +* Mandelbrot fractal shader +* Sierpinski carpet shader + +# How to setup +* Create ColorRect and lay ShaderMaterial on it +* Drag&drop the required shader to ShaderMaterial slot +* Create gradient texture, if you dont want to create it yourself use fire_gradient.tres +* Set parameters on material: + +# for Julia: +* Gradient - gradient texture +* Scale = 4, 4 +* Offset = 0, 0 +* MaxIter = from 100 to 1000 +* Speed = 1 + +# for Mandelbrot: +* Gradient - gradient texture +* Scale = 1, 1 +* Offset = 0, 0 +* MaxIter = from 100 to 1000 + +# for Serpinski carpet: +* Scale = 81, 81 +* Offset = 0, 0 diff --git a/assets/.DS_Store b/assets/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..0533a0ffda9d4e8d93e68337cabd8eb6355a7021 GIT binary patch literal 6148 zcmeHK%}N6?5T4YkTSVwVQ9K2_R;)kxgO{c13%H^OmAdOzU0jpW-MWWT*sH#fZ{qVf zlcb_lFCIi?1}0xJnMpQZmP`TwqScSr0O|nXp%PYVSbQSXPdX+QXCV}3j4rG|hI$L( zm^T}KBLlQ|OK=4pqwn`mK@0`-Ab}iJ!42-~I_foOY~@jrb)!^A82=n~(hw%N5_iz${4`Oq zE?T;;;>^Sbw!^D=wRU}BFxc5{$c?qlVM7jf*P9Kwxv@1I*1Y-U)xD$kU3#zdqvc!R zuW4k~;Rv3v@~x#m1U;2%b%XJvu}5PvG6T#2Gw>%EaEF&S^C!NRKav?>27ZzOIv*q| zq3^J?XpRmn==wa=poL3vxpi!D vlxrpGB`OK|l@{MZuwqg%`cf)hL^XnTNfkujVQCR9D0~qxG;qNT{3rvjw^>+8 literal 0 HcmV?d00001 diff --git a/assets/cecep-s-handwriting-2-font/CecepsHandwriting-vmpKZ.ttf b/assets/cecep-s-handwriting-2-font/CecepsHandwriting-vmpKZ.ttf new file mode 100644 index 0000000000000000000000000000000000000000..76185b1e2f72153deb8022c5eed3f1619b27012d GIT binary patch literal 53376 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 literal 0 HcmV?d00001 diff --git a/export/.gitignore b/export/.gitignore new file mode 100644 index 0000000..72e8ffc --- /dev/null +++ b/export/.gitignore @@ -0,0 +1 @@ +* diff --git a/export_presets.cfg b/export_presets.cfg index 7e85c2b..0a0b206 100644 --- a/export_presets.cfg +++ b/export_presets.cfg @@ -7,18 +7,61 @@ custom_features="" export_filter="all_resources" include_filter="" exclude_filter="" -export_path="/home/mennomax/Documents/godot/GIFT.x86_64" -patch_list=PoolStringArray( ) +export_path="../../../../../home/mennomax/Documents/godot/GIFT.x86_64" script_export_mode=1 script_encryption_key="" [preset.0.options] +custom_template/debug="" +custom_template/release="" +binary_format/64_bits=true +binary_format/embed_pck=false texture_format/bptc=false texture_format/s3tc=true texture_format/etc=false texture_format/etc2=false texture_format/no_bptc_fallbacks=true -binary_format/64_bits=true -custom_template/release="" + +[preset.1] + +name="Windows Desktop" +platform="Windows Desktop" +runnable=true +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="" +script_export_mode=1 +script_encryption_key="" + +[preset.1.options] + custom_template/debug="" +custom_template/release="" +binary_format/64_bits=true +binary_format/embed_pck=false +texture_format/bptc=false +texture_format/s3tc=true +texture_format/etc=false +texture_format/etc2=false +texture_format/no_bptc_fallbacks=true +codesign/enable=false +codesign/identity_type=0 +codesign/identity="" +codesign/password="" +codesign/timestamp=true +codesign/timestamp_server_url="" +codesign/digest_algorithm=1 +codesign/description="" +codesign/custom_options=PoolStringArray( ) +application/modify_resources=true +application/icon="" +application/file_version="" +application/product_version="" +application/company_name="" +application/product_name="" +application/file_description="" +application/copyright="" +application/trademarks="" diff --git a/scenes/2DOverlay.gd b/scenes/2DOverlay.gd new file mode 100644 index 0000000..d144d48 --- /dev/null +++ b/scenes/2DOverlay.gd @@ -0,0 +1,16 @@ +extends Node2D + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/scenes/2DOverlay.tscn b/scenes/2DOverlay.tscn index dab4bf6..4f5aefc 100644 --- a/scenes/2DOverlay.tscn +++ b/scenes/2DOverlay.tscn @@ -1,24 +1,284 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=13 format=2] [ext_resource path="res://Node.tscn" type="PackedScene" id=1] -[ext_resource path="res://addons/gift/gift_node.gd" type="Script" id=2] +[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="Bluescreen" type="ColorRect" parent="."] +[node name="Panel" type="Panel" parent="."] +material = SubResource( 9 ) margin_right = 1920.0 -margin_bottom = 1080.0 -color = Color( 0, 0, 1, 1 ) +margin_bottom = 1079.0 -[node name="Node" parent="." instance=ExtResource( 1 )] -margin_left = 1284.0 -margin_right = 1601.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( 1, 0, 0, 1 ) +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 diff --git a/scenes/GlitchyTexture.tres b/scenes/GlitchyTexture.tres new file mode 100644 index 0000000..464d438 --- /dev/null +++ b/scenes/GlitchyTexture.tres @@ -0,0 +1,42 @@ +[gd_resource type="ShaderMaterial" load_steps=2 format=2] + +[sub_resource type="Shader" id=8] +code = "shader_type canvas_item; + +uniform vec2 resolution = vec2(64.0, 64.0); +uniform float noise : hint_range(0.0, 1.0) = 0.2; +uniform float distort : hint_range(0.0, 1.0) = 0.06; +uniform float offset : hint_range(0.0, 1.0) = 0.0; + +vec2 random(vec2 uv){ + uv = vec2(dot(uv, vec2(127.1,311.7)), dot(uv, vec2(269.5,183.3))); + return -1.0 + 2.0 * fract(sin(uv) * 43758.5453123); +} + +float between(float lower, float upper, float value) { + return step(lower, value) * step(value, upper); +} + +void fragment() +{ + vec2 uv = UV; + // Distort + float oy = offset / 10.; + float dist = distort * clamp(offset / 2., 0.25, 0.75); + uv.x += dist * between(0.7, 0.8, fract(offset + TIME/4.)) * between(0.4, 0.41 + oy, uv.y); + uv.x -= dist * between(0.1, 0.15, fract(offset + TIME/3.)) * between(0.7, 0.71 + oy, uv.y); + uv.x += dist * between(0.15, 0.25, fract(offset + TIME/3.)) * between(0.6, 0.61 + oy, uv.y); + uv.x += dist * between(0.5, 0.55, fract(offset + TIME/7.)) * between(0.5, 0.73 - oy, uv.y); + // Add noise + vec4 pxl = texture(TEXTURE, uv); + pxl.rgb += clamp(random((ceil(UV * resolution) / resolution) + trunc(fract(TIME) * 4.)).x, 0.0, 1.0) * noise; + // Shade + COLOR = pxl; +}" + +[resource] +shader = SubResource( 8 ) +shader_param/resolution = Vector2( 64, 64 ) +shader_param/noise = 0.2 +shader_param/distort = 0.06 +shader_param/offset = 0.0 diff --git a/scenes/Overlay Text.tres b/scenes/Overlay Text.tres new file mode 100644 index 0000000..8142520 --- /dev/null +++ b/scenes/Overlay Text.tres @@ -0,0 +1,14 @@ +[gd_resource type="Theme" load_steps=3 format=2] + +[ext_resource path="res://assets/cecep-s-handwriting-2-font/CecepsHandwriting-vmpKZ.ttf" type="DynamicFontData" id=1] + +[sub_resource type="DynamicFont" id=1] +size = 32 +outline_size = 4 +outline_color = Color( 0, 0, 0, 1 ) +extra_spacing_top = 2 +extra_spacing_bottom = 2 +font_data = ExtResource( 1 ) + +[resource] +default_font = SubResource( 1 ) diff --git a/sprites/Mara.png b/sprites/Mara.png new file mode 100644 index 0000000000000000000000000000000000000000..3d322ed32c2f3f99e4774aa544ea80cd9dffabca GIT binary patch literal 399 zcmV;A0dW3_P)Px#4^T{0MP>g0;P}smz-%yRPzM+xed(4v00005bW%=J0RR90{~XXJQUCw}9Z5t% zR5*>Tl+ljGAP7W-%>RG$3JfY1A8xWHO*mEt1llnG3@$f+IGRm##z zMp!AMHNs|yOifc&i2yP!-K=IqQ!sgY1g9VsZ+2^*77<+;Iv#BAUGd8hL`8Jo*Ym3! zwhLO4!J)r76d@gF9qIF7c7cMce3fBEOZ|&i<7{UKSWE}8=McQuZYzq8y%Z%tWv1*U z--GpGwT|>0#Wq1<%_