more transition
This commit is contained in:
parent
73411a44f3
commit
ad6c4d9581
18 changed files with 147 additions and 211 deletions
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/escher_convex_concave.jpg-aad7b984721eed80e7b
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/escher_lizards.jpg-6d8ffd09737747dd30c293cf42
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/hokusai.jpg-e34bef5c2c01e91fd3f7fbd65bf1bb63.
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -21,10 +21,8 @@ msdf_pixel_range=8
|
||||||
msdf_size=48
|
msdf_size=48
|
||||||
allow_system_fallback=true
|
allow_system_fallback=true
|
||||||
force_autohinter=false
|
force_autohinter=false
|
||||||
modulate_color_glyphs=false
|
|
||||||
hinting=1
|
hinting=1
|
||||||
subpixel_positioning=1
|
subpixel_positioning=1
|
||||||
keep_rounding_remainders=true
|
|
||||||
oversampling=0.0
|
oversampling=0.0
|
||||||
Fallbacks=null
|
Fallbacks=null
|
||||||
fallbacks=[]
|
fallbacks=[]
|
||||||
|
|
|
||||||
|
|
@ -21,10 +21,8 @@ msdf_pixel_range=8
|
||||||
msdf_size=48
|
msdf_size=48
|
||||||
allow_system_fallback=true
|
allow_system_fallback=true
|
||||||
force_autohinter=false
|
force_autohinter=false
|
||||||
modulate_color_glyphs=false
|
|
||||||
hinting=1
|
hinting=1
|
||||||
subpixel_positioning=1
|
subpixel_positioning=1
|
||||||
keep_rounding_remainders=true
|
|
||||||
oversampling=0.0
|
oversampling=0.0
|
||||||
Fallbacks=null
|
Fallbacks=null
|
||||||
fallbacks=[]
|
fallbacks=[]
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -21,10 +21,8 @@ msdf_pixel_range=8
|
||||||
msdf_size=48
|
msdf_size=48
|
||||||
allow_system_fallback=true
|
allow_system_fallback=true
|
||||||
force_autohinter=false
|
force_autohinter=false
|
||||||
modulate_color_glyphs=false
|
|
||||||
hinting=1
|
hinting=1
|
||||||
subpixel_positioning=1
|
subpixel_positioning=1
|
||||||
keep_rounding_remainders=true
|
|
||||||
oversampling=0.0
|
oversampling=0.0
|
||||||
Fallbacks=null
|
Fallbacks=null
|
||||||
fallbacks=[]
|
fallbacks=[]
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/icon_folder.png-b3a2a9bdd4c609fb3eeaba30c71ce
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/icon_parent_folder.png-28fe9c21193d111a87cc30
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/logo.svg-f0fea7f4c0900e3cf3563bd5e43c48d1.cte
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/logo_512.png-52e0380d6068282002ce7e4da540a4c8
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/logo_android_192.png-d1092f8bdc9b8ae234b5684d
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/logo_android_bg_432.png-bed8240198b34da49346f
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/logo_android_fg_432.png-41c23e93a296f808ef139
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.cte
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ config_version=5
|
||||||
|
|
||||||
config/name="Taqin"
|
config/name="Taqin"
|
||||||
run/main_scene="res://src/Main.tscn"
|
run/main_scene="res://src/Main.tscn"
|
||||||
config/features=PackedStringArray("4.5")
|
config/features=PackedStringArray("4.3")
|
||||||
config/icon="res://assets/logo/logo_512.png"
|
config/icon="res://assets/logo/logo_512.png"
|
||||||
|
|
||||||
[autoload]
|
[autoload]
|
||||||
|
|
|
||||||
195
src/Piece.tscn
195
src/Piece.tscn
|
|
@ -1,9 +1,9 @@
|
||||||
[gd_scene load_steps=19 format=2]
|
[gd_scene load_steps=19 format=3 uid="uid://b5sfgghyt7kn3"]
|
||||||
|
|
||||||
[ext_resource path="res://src/Piece.gd" type="Script" id=1]
|
[ext_resource type="Script" uid="uid://cqq4ynmtdbb8q" path="res://src/Piece.gd" id="1"]
|
||||||
[ext_resource path="res://assets/artworks/escher_lizards.jpg" type="Texture2D" id=3]
|
[ext_resource type="Texture2D" uid="uid://b87nwpig87ssi" path="res://assets/artworks/escher_lizards.jpg" id="3"]
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeExpression" id=1]
|
[sub_resource type="VisualShaderNodeExpression" id="1"]
|
||||||
output_port_for_preview = 0
|
output_port_for_preview = 0
|
||||||
size = Vector2(657, 584)
|
size = Vector2(657, 584)
|
||||||
expression = "// https://iquilezles.org/www/articles/distfunctions2d/distfunctions2d.htm
|
expression = "// https://iquilezles.org/www/articles/distfunctions2d/distfunctions2d.htm
|
||||||
|
|
@ -20,13 +20,13 @@ vec2 d_thick = abs(rel_p) - box_thick;
|
||||||
float dist_thick = length(max(d_thick, 0.0)) + min(max(d_thick.x, d_thick.y), 0.0);
|
float dist_thick = length(max(d_thick, 0.0)) + min(max(d_thick.x, d_thick.y), 0.0);
|
||||||
is_thickness = rel_p.y > 0.0 && dist_thick > (0.5 - box_size);"
|
is_thickness = rel_p.y > 0.0 && dist_thick > (0.5 - box_size);"
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeColorConstant" id=2]
|
[sub_resource type="VisualShaderNodeColorConstant" id="2"]
|
||||||
constant = Color(0.733333, 0.34902, 0.0666667, 1)
|
constant = Color(0.733333, 0.34902, 0.0666667, 1)
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeSwitch" id=3]
|
[sub_resource type="VisualShaderNodeSwitch" id="3"]
|
||||||
output_port_for_preview = 0
|
output_port_for_preview = 0
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeExpression" id=4]
|
[sub_resource type="VisualShaderNodeExpression" id="4"]
|
||||||
output_port_for_preview = 0
|
output_port_for_preview = 0
|
||||||
size = Vector2(545, 407)
|
size = Vector2(545, 407)
|
||||||
expression = "float speed = 2.0;
|
expression = "float speed = 2.0;
|
||||||
|
|
@ -37,65 +37,61 @@ if (abs(input0.x - ((1.0 - input0.y + delta) / slope)) < thickness) {
|
||||||
output0 = vec3(0.5);
|
output0 = vec3(0.5);
|
||||||
}"
|
}"
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeColorOp" id=5]
|
[sub_resource type="VisualShaderNodeColorOp" id="5"]
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeInput" id=6]
|
[sub_resource type="VisualShaderNodeInput" id="6"]
|
||||||
input_name = "time"
|
input_name = "time"
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeSwitch" id=7]
|
[sub_resource type="VisualShaderNodeSwitch" id="7"]
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeBooleanParameter" id=8]
|
[sub_resource type="VisualShaderNodeBooleanParameter" id="8"]
|
||||||
uniform_name = "reflection"
|
parameter_name = "reflection"
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeTexture2DParameter" id=9]
|
[sub_resource type="VisualShaderNodeTexture2DParameter" id="9"]
|
||||||
output_port_for_preview = 0
|
output_port_for_preview = 0
|
||||||
uniform_name = "artwork"
|
parameter_name = "artwork"
|
||||||
texture_type = 1
|
texture_type = 1
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeInput" id=10]
|
[sub_resource type="VisualShaderNodeInput" id="10"]
|
||||||
output_port_for_preview = 0
|
output_port_for_preview = 0
|
||||||
input_name = "uv"
|
input_name = "uv"
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeVectorOp" id=11]
|
[sub_resource type="VisualShaderNodeVectorOp" id="11"]
|
||||||
output_port_for_preview = 0
|
output_port_for_preview = 0
|
||||||
default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(0.25, 0.25, 1)]
|
default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(0.25, 0.25, 1)]
|
||||||
operator = 2
|
operator = 2
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeVectorOp" id=12]
|
[sub_resource type="VisualShaderNodeVectorOp" id="12"]
|
||||||
default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(0.8, 0.1, 0)]
|
default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(0.8, 0.1, 0)]
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeVec3Parameter" id=13]
|
[sub_resource type="VisualShaderNodeVec3Parameter" id="13"]
|
||||||
uniform_name = "scale"
|
parameter_name = "scale"
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeVec3Parameter" id=14]
|
[sub_resource type="VisualShaderNodeVec3Parameter" id="14"]
|
||||||
uniform_name = "offset"
|
parameter_name = "offset"
|
||||||
|
|
||||||
[sub_resource type="VisualShader" id=15]
|
[sub_resource type="VisualShader" id="15"]
|
||||||
code = "shader_type canvas_item;
|
code = "shader_type canvas_item;
|
||||||
|
render_mode blend_mix;
|
||||||
|
|
||||||
uniform bool reflection;
|
uniform bool reflection;
|
||||||
|
uniform sampler2D artwork : source_color;
|
||||||
uniform vec3 scale;
|
uniform vec3 scale;
|
||||||
uniform vec3 offset;
|
uniform vec3 offset;
|
||||||
uniform sampler2D artwork : source_color;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void vertex() {
|
|
||||||
// Output:0
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void fragment() {
|
void fragment() {
|
||||||
// Input:4
|
// Input:4
|
||||||
vec3 n_out4p0 = vec3(UV, 0.0);
|
vec2 n_out4p0 = UV;
|
||||||
|
|
||||||
|
|
||||||
|
uint n_out13p0;
|
||||||
|
uint n_out13p1;
|
||||||
// Expression:13
|
// Expression:13
|
||||||
bool n_out13p0;
|
|
||||||
bool n_out13p1;
|
|
||||||
n_out13p0 = false;
|
|
||||||
n_out13p1 = false;
|
|
||||||
{
|
{
|
||||||
// https://iquilezles.org/www/articles/distfunctions2d/distfunctions2d.htm
|
// https://iquilezles.org/www/articles/distfunctions2d/distfunctions2d.htm
|
||||||
vec2 rel_p = n_out4p0.xy - vec2(0.5, 0.5);
|
vec2 rel_p = int(n_out4p0.x).xy - vec2(0.5, 0.5);
|
||||||
float box_size = 0.4;
|
float box_size = 0.4;
|
||||||
vec2 box = vec2(box_size, box_size);
|
vec2 box = vec2(box_size, box_size);
|
||||||
vec2 d = abs(rel_p) - box; // mirroring
|
vec2 d = abs(rel_p) - box; // mirroring
|
||||||
|
|
@ -109,100 +105,84 @@ void fragment() {
|
||||||
n_out13p1 = rel_p.y > 0.0 && dist_thick > (0.5 - box_size);
|
n_out13p1 = rel_p.y > 0.0 && dist_thick > (0.5 - box_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Color:15
|
|
||||||
vec3 n_out15p0 = vec3(0.733333, 0.349020, 0.066667);
|
|
||||||
float n_out15p1 = 1.000000;
|
|
||||||
|
|
||||||
// BooleanUniform:24
|
// ColorConstant:15
|
||||||
|
vec4 n_out15p0 = vec4(0.733333, 0.349020, 0.066667, 1.000000);
|
||||||
|
|
||||||
|
|
||||||
|
// BooleanParameter:24
|
||||||
bool n_out24p0 = reflection;
|
bool n_out24p0 = reflection;
|
||||||
|
|
||||||
// VectorUniform:7
|
|
||||||
|
// Vector3Parameter:7
|
||||||
vec3 n_out7p0 = scale;
|
vec3 n_out7p0 = scale;
|
||||||
|
|
||||||
// VectorOp:5
|
|
||||||
vec3 n_out5p0 = n_out4p0 * n_out7p0;
|
|
||||||
|
|
||||||
// VectorUniform:8
|
// VectorOp:5
|
||||||
|
vec3 n_out5p0 = vec3(n_out4p0, 0.0) * n_out7p0;
|
||||||
|
|
||||||
|
|
||||||
|
// Vector3Parameter:8
|
||||||
vec3 n_out8p0 = offset;
|
vec3 n_out8p0 = offset;
|
||||||
|
|
||||||
|
|
||||||
// VectorOp:6
|
// VectorOp:6
|
||||||
vec3 n_out6p0 = n_out5p0 + n_out8p0;
|
vec3 n_out6p0 = n_out5p0 + n_out8p0;
|
||||||
|
|
||||||
// TextureUniform:25
|
|
||||||
vec3 n_out25p0;
|
|
||||||
float n_out25p1;
|
|
||||||
{
|
|
||||||
vec4 n_tex_read = texture(artwork, n_out6p0.xy);
|
|
||||||
n_out25p0 = n_tex_read.rgb;
|
|
||||||
n_out25p1 = n_tex_read.a;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Input:22
|
// Input:22
|
||||||
float n_out22p0 = TIME;
|
float n_out22p0 = TIME;
|
||||||
|
|
||||||
|
|
||||||
|
int n_out19p0;
|
||||||
// Expression:19
|
// Expression:19
|
||||||
vec3 n_out19p0;
|
n_out19p0 = 0;
|
||||||
n_out19p0 = vec3(0.0, 0.0, 0.0);
|
|
||||||
{
|
{
|
||||||
float speed = 2.0;
|
float speed = 2.0;
|
||||||
float delta = mod(n_out22p0 * speed, 3) - 1.0;
|
float delta = mod(n_out22p0 * speed, 3) - 1.0;
|
||||||
float slope = 1.5;
|
float slope = 1.5;
|
||||||
float thickness = 0.05;
|
float thickness = 0.05;
|
||||||
if (abs(n_out6p0.x - ((1.0 - n_out6p0.y + delta) / slope)) < thickness) {
|
if (abs(int(n_out6p0.x).x - ((1.0 - int(n_out6p0.x).y + delta) / slope)) < thickness) {
|
||||||
n_out19p0 = vec3(0.5);
|
n_out19p0 = vec3(0.5);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// ColorOp:21
|
// ColorOp:21
|
||||||
vec3 n_out21p0 = vec3(1.0) - (vec3(1.0) - n_out25p0) * (vec3(1.0) - n_out19p0);
|
vec3 n_out21p0 = vec3(1.0) - (vec3(1.0) - ) * (vec3(1.0) - vec3(float(n_out19p0)));
|
||||||
|
|
||||||
// VectorSwitch:23
|
|
||||||
vec3 n_out23p0;
|
|
||||||
if(n_out24p0)
|
|
||||||
{
|
|
||||||
n_out23p0 = n_out21p0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
n_out23p0 = n_out25p0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// VectorSwitch:17
|
float n_out23p0;
|
||||||
vec3 n_out17p0;
|
// Switch:23
|
||||||
if(n_out13p1)
|
n_out23p0 = mix(, n_out21p0.x, float(n_out24p0));
|
||||||
{
|
|
||||||
n_out17p0 = n_out15p0;
|
|
||||||
}
|
float n_out17p0;
|
||||||
else
|
// Switch:17
|
||||||
{
|
n_out17p0 = mix(n_out23p0, n_out15p0.x, float(n_out13p1 > 0u ? true : false));
|
||||||
n_out17p0 = n_out23p0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Output:0
|
// Output:0
|
||||||
COLOR.rgb = n_out17p0;
|
COLOR.rgb = vec3(n_out17p0);
|
||||||
COLOR.a = n_out13p0 ? 1.0 : 0.0;
|
COLOR.a = float(n_out13p0);
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void light() {
|
|
||||||
// Output:0
|
|
||||||
|
|
||||||
}
|
}
|
||||||
"
|
"
|
||||||
mode = 1
|
mode = 1
|
||||||
flags/light_only = false
|
flags/light_only = false
|
||||||
nodes/fragment/0/position = Vector2(1680, 260)
|
nodes/fragment/0/position = Vector2(1680, 260)
|
||||||
nodes/fragment/4/node = SubResource( 10 )
|
nodes/fragment/4/node = SubResource("10")
|
||||||
nodes/fragment/4/position = Vector2(0, 260)
|
nodes/fragment/4/position = Vector2(0, 260)
|
||||||
nodes/fragment/5/node = SubResource( 11 )
|
nodes/fragment/5/node = SubResource("11")
|
||||||
nodes/fragment/5/position = Vector2(280, -20)
|
nodes/fragment/5/position = Vector2(280, -20)
|
||||||
nodes/fragment/6/node = SubResource( 12 )
|
nodes/fragment/6/node = SubResource("12")
|
||||||
nodes/fragment/6/position = Vector2(540, 140)
|
nodes/fragment/6/position = Vector2(540, 140)
|
||||||
nodes/fragment/7/node = SubResource( 13 )
|
nodes/fragment/7/node = SubResource("13")
|
||||||
nodes/fragment/7/position = Vector2(-20, 60)
|
nodes/fragment/7/position = Vector2(-20, 60)
|
||||||
nodes/fragment/8/node = SubResource( 14 )
|
nodes/fragment/8/node = SubResource("14")
|
||||||
nodes/fragment/8/position = Vector2(300, 240)
|
nodes/fragment/8/position = Vector2(300, 240)
|
||||||
nodes/fragment/13/node = SubResource( 1 )
|
nodes/fragment/13/node = SubResource("1")
|
||||||
nodes/fragment/13/position = Vector2(340, 400)
|
nodes/fragment/13/position = Vector2(340, 400)
|
||||||
nodes/fragment/13/size = Vector2(657, 584)
|
nodes/fragment/13/size = Vector2(657, 584)
|
||||||
nodes/fragment/13/input_ports = "0,1,input;"
|
nodes/fragment/13/input_ports = "0,1,input;"
|
||||||
|
|
@ -220,11 +200,11 @@ vec2 box_thick = vec2(box_size, box_size - thickness);
|
||||||
vec2 d_thick = abs(rel_p) - box_thick;
|
vec2 d_thick = abs(rel_p) - box_thick;
|
||||||
float dist_thick = length(max(d_thick, 0.0)) + min(max(d_thick.x, d_thick.y), 0.0);
|
float dist_thick = length(max(d_thick, 0.0)) + min(max(d_thick.x, d_thick.y), 0.0);
|
||||||
is_thickness = rel_p.y > 0.0 && dist_thick > (0.5 - box_size);"
|
is_thickness = rel_p.y > 0.0 && dist_thick > (0.5 - box_size);"
|
||||||
nodes/fragment/15/node = SubResource( 2 )
|
nodes/fragment/15/node = SubResource("2")
|
||||||
nodes/fragment/15/position = Vector2(1480, -40)
|
nodes/fragment/15/position = Vector2(1480, -40)
|
||||||
nodes/fragment/17/node = SubResource( 3 )
|
nodes/fragment/17/node = SubResource("3")
|
||||||
nodes/fragment/17/position = Vector2(1460, 80)
|
nodes/fragment/17/position = Vector2(1460, 80)
|
||||||
nodes/fragment/19/node = SubResource( 4 )
|
nodes/fragment/19/node = SubResource("4")
|
||||||
nodes/fragment/19/position = Vector2(420, -500)
|
nodes/fragment/19/position = Vector2(420, -500)
|
||||||
nodes/fragment/19/size = Vector2(545, 407)
|
nodes/fragment/19/size = Vector2(545, 407)
|
||||||
nodes/fragment/19/input_ports = "0,1,input0;1,0,t;"
|
nodes/fragment/19/input_ports = "0,1,input0;1,0,t;"
|
||||||
|
|
@ -236,51 +216,44 @@ float thickness = 0.05;
|
||||||
if (abs(input0.x - ((1.0 - input0.y + delta) / slope)) < thickness) {
|
if (abs(input0.x - ((1.0 - input0.y + delta) / slope)) < thickness) {
|
||||||
output0 = vec3(0.5);
|
output0 = vec3(0.5);
|
||||||
}"
|
}"
|
||||||
nodes/fragment/21/node = SubResource( 5 )
|
nodes/fragment/21/node = SubResource("5")
|
||||||
nodes/fragment/21/position = Vector2(1220, -200)
|
nodes/fragment/21/position = Vector2(1220, -200)
|
||||||
nodes/fragment/22/node = SubResource( 6 )
|
nodes/fragment/22/node = SubResource("6")
|
||||||
nodes/fragment/22/position = Vector2(160, -300)
|
nodes/fragment/22/position = Vector2(160, -300)
|
||||||
nodes/fragment/23/node = SubResource( 7 )
|
nodes/fragment/23/node = SubResource("7")
|
||||||
nodes/fragment/23/position = Vector2(1200, 20)
|
nodes/fragment/23/position = Vector2(1200, 20)
|
||||||
nodes/fragment/24/node = SubResource( 8 )
|
nodes/fragment/24/node = SubResource("8")
|
||||||
nodes/fragment/24/position = Vector2(1200, -60)
|
nodes/fragment/24/position = Vector2(1200, -60)
|
||||||
nodes/fragment/25/node = SubResource( 9 )
|
nodes/fragment/25/node = SubResource("9")
|
||||||
nodes/fragment/25/position = Vector2(840, 20)
|
nodes/fragment/25/position = Vector2(840, 20)
|
||||||
nodes/fragment/connections = PackedInt32Array( 5, 0, 6, 0, 13, 0, 0, 1, 4, 0, 5, 0, 4, 0, 13, 0, 13, 1, 17, 0, 15, 0, 17, 1, 17, 0, 0, 0, 8, 0, 6, 1, 7, 0, 5, 1, 19, 0, 21, 1, 22, 0, 19, 1, 6, 0, 19, 0, 24, 0, 23, 0, 21, 0, 23, 1, 23, 0, 17, 2, 6, 0, 25, 0, 25, 0, 23, 2, 25, 0, 21, 0 )
|
nodes/fragment/connections = PackedInt32Array(5, 0, 6, 0, 13, 0, 0, 1, 4, 0, 5, 0, 4, 0, 13, 0, 13, 1, 17, 0, 15, 0, 17, 1, 17, 0, 0, 0, 8, 0, 6, 1, 7, 0, 5, 1, 19, 0, 21, 1, 22, 0, 19, 1, 6, 0, 19, 0, 24, 0, 23, 0, 21, 0, 23, 1, 23, 0, 17, 2, 25, 0, 23, 2, 25, 0, 21, 0)
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id=16]
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_e6sxn"]
|
||||||
shader = SubResource( 15 )
|
shader = SubResource("15")
|
||||||
shader_param/reflection = false
|
|
||||||
shader_param/scale = Vector3( 0.25, 0.25, 1 )
|
|
||||||
shader_param/offset = Vector3( 0, 0, 0 )
|
|
||||||
shader_param/artwork = ExtResource( 3 )
|
|
||||||
|
|
||||||
[node name="Piece" type="Node2D"]
|
[node name="Piece" type="Node2D"]
|
||||||
script = ExtResource( 1 )
|
script = ExtResource("1")
|
||||||
texture = ExtResource( 3 )
|
texture = ExtResource("3")
|
||||||
|
|
||||||
[node name="ColorRect" type="ColorRect" parent="."]
|
[node name="ColorRect" type="ColorRect" parent="."]
|
||||||
material = SubResource( 16 )
|
material = SubResource("ShaderMaterial_e6sxn")
|
||||||
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
offset_right = 160.0
|
offset_right = 160.0
|
||||||
offset_bottom = 160.0
|
offset_bottom = 160.0
|
||||||
mouse_filter = 2
|
mouse_filter = 2
|
||||||
__meta__ = {
|
color = Color(0.7393426, 0.3112301, 0.2024486, 1)
|
||||||
"_edit_use_anchors_": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="ColorRect"]
|
[node name="Label" type="Label" parent="ColorRect"]
|
||||||
visible = false
|
visible = false
|
||||||
|
clip_contents = true
|
||||||
|
layout_mode = 0
|
||||||
offset_left = 10.0
|
offset_left = 10.0
|
||||||
offset_top = 10.0
|
offset_top = 10.0
|
||||||
offset_right = 50.0
|
offset_right = 50.0
|
||||||
offset_bottom = 50.0
|
offset_bottom = 50.0
|
||||||
scale = Vector2(3, 3)
|
scale = Vector2(3, 3)
|
||||||
clip_contents = true
|
|
||||||
size_flags_vertical = 1
|
size_flags_vertical = 1
|
||||||
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
theme_override_colors/font_color = Color(0, 0, 0, 1)
|
||||||
text = "0"
|
text = "0"
|
||||||
__meta__ = {
|
|
||||||
"_edit_use_anchors_": false
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -377,7 +377,7 @@ func save() -> Dictionary:
|
||||||
func load(saved_state) -> bool:
|
func load(saved_state) -> bool:
|
||||||
print("load save state: ", saved_state)
|
print("load save state: ", saved_state)
|
||||||
if not saved_state.has_all(["rows", "columns", "pieces", "hidden_piece"]):
|
if not saved_state.has_all(["rows", "columns", "pieces", "hidden_piece"]):
|
||||||
assert(false, "Invalid save state")
|
#assert(false, "Invalid save state")
|
||||||
return false
|
return false
|
||||||
rows = saved_state["rows"]
|
rows = saved_state["rows"]
|
||||||
columns = saved_state["columns"]
|
columns = saved_state["columns"]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue