sand-and-receive/tenniscourts/TennisCourt.tscn
2023-11-04 06:58:11 +09:00

632 lines
17 KiB
Text

[gd_scene load_steps=15 format=2]
[ext_resource path="res://tenniscourts/shaders/tennis_bounce.gdshader" type="Shader" id=1]
[ext_resource path="res://tenniscourts/shaders/depth_map.gdshader" type="Shader" id=2]
[ext_resource path="res://tenniscourts/meshes/tennis_launcher.mesh" type="ArrayMesh" id=3]
[ext_resource path="res://tenniscourts/TennisRamp.gd" type="Script" id=4]
[sub_resource type="ViewportTexture" id=44]
viewport_path = NodePath("TennisParticles/DepthMap")
[sub_resource type="ShaderMaterial" id=45]
resource_local_to_scene = true
shader = ExtResource( 1 )
shader_param/direction = Vector3( 0, -1, 0 )
shader_param/spread = 5.0
shader_param/flatness = 0.0
shader_param/initial_linear_velocity = 20.0
shader_param/initial_angle = 0.0
shader_param/angular_velocity = 0.0
shader_param/orbit_velocity = 0.0
shader_param/linear_accel = 0.0
shader_param/radial_accel = 0.0
shader_param/tangent_accel = 0.0
shader_param/damping = 0.0
shader_param/scale = 1.0
shader_param/hue_variation = 0.0
shader_param/anim_speed = 0.0
shader_param/anim_offset = 0.0
shader_param/initial_linear_velocity_random = 0.2
shader_param/initial_angle_random = 0.0
shader_param/angular_velocity_random = 0.0
shader_param/orbit_velocity_random = 0.0
shader_param/linear_accel_random = 0.0
shader_param/radial_accel_random = 0.0
shader_param/tangent_accel_random = 0.0
shader_param/damping_random = 0.0
shader_param/scale_random = 0.0
shader_param/hue_variation_random = 0.0
shader_param/anim_speed_random = 0.0
shader_param/anim_offset_random = 0.0
shader_param/lifetime_randomness = 0.0
shader_param/emission_box_extents = Vector3( 8, 0, 8 )
shader_param/color_value = Color( 1, 1, 1, 1 )
shader_param/trail_divisor = 1
shader_param/gravity = Vector3( 0, -9.8, 0 )
shader_param/occlusion_margin = 0.04
shader_param/depth_cam_size = 16.0
shader_param/example_normal = Vector3( -0.342, 0.94, 0 )
shader_param/depth_map = SubResource( 44 )
[sub_resource type="SpatialMaterial" id=37]
albedo_color = Color( 0.615686, 1, 0, 1 )
metallic_specular = 1.0
[sub_resource type="SphereMesh" id=46]
material = SubResource( 37 )
radius = 0.065
height = 0.13
radial_segments = 8
rings = 4
[sub_resource type="ShaderMaterial" id=42]
resource_local_to_scene = true
shader = ExtResource( 2 )
[sub_resource type="PlaneMesh" id=47]
resource_local_to_scene = true
material = SubResource( 42 )
size = Vector2( 16, 16 )
[sub_resource type="ConvexPolygonShape" id=50]
points = PoolVector3Array( 30.1523, 1.28426, 7.57614, -30.1523, -1.15228, -7.65228, -30.1523, -1.15228, 7.57614, -30.1523, 1.28426, -7.65228, 30.1523, -1.15228, -7.65228, -30.1523, 1.28426, 7.57614, 30.1523, -1.15228, 7.57614, 30.1523, 1.28426, -7.65228 )
[sub_resource type="NoiseTexture" id=48]
[sub_resource type="SpatialMaterial" id=39]
roughness = 0.0
clearcoat_enabled = true
clearcoat = 1.0
clearcoat_gloss = 1.0
clearcoat_texture = SubResource( 48 )
[sub_resource type="CubeMesh" id=49]
material = SubResource( 39 )
size = Vector3( 60, 2, 15 )
[node name="Tennis" type="Spatial"]
[node name="TennisParticles" type="Particles" parent="."]
transform = Transform( -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, -20, 3, 11.9878 )
amount = 64
lifetime = 12.0
visibility_aabb = AABB( -25.0795, -42.2433, -10.4403, 32.4784, 42.5881, 20.8805 )
local_coords = false
process_material = SubResource( 45 )
draw_pass_1 = SubResource( 46 )
[node name="RemoteTransform" type="RemoteTransform" parent="TennisParticles"]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0 )
remote_path = NodePath("../DepthMap/Camera")
[node name="DepthMap" type="Viewport" parent="TennisParticles"]
size = Vector2( 256, 256 )
keep_3d_linear = true
render_target_v_flip = true
render_target_update_mode = 3
[node name="Camera" type="Camera" parent="TennisParticles/DepthMap"]
transform = Transform( -4.37114e-08, 4.37114e-08, -1, 1, 1.91069e-15, -4.37114e-08, 0, -1, -4.37114e-08, -20, 3, 11.9878 )
cull_mask = 2
projection = 1
current = true
size = 16.0
[node name="Texture" type="MeshInstance" parent="TennisParticles/DepthMap/Camera"]
transform = Transform( 1, -1.27992e-16, 5.59471e-24, 0, -4.37114e-08, -1, 1.27992e-16, 1, -4.37114e-08, 4.76837e-07, -2.84217e-14, -0.1 )
layers = 2
mesh = SubResource( 47 )
skeleton = NodePath("../..")
[node name="TennisLauncher" type="MeshInstance" parent="TennisParticles"]
transform = Transform( 1.91069e-15, 1, -4.37114e-08, 4.37114e-08, -4.37114e-08, -1, -1, 0, -4.37114e-08, 0, 2, 0 )
layers = 3
mesh = ExtResource( 3 )
skeleton = NodePath("../..")
[node name="StaticBody" type="StaticBody" parent="TennisParticles"]
transform = Transform( 0.34202, 0.939693, 0, -0.939693, 0.34202, 0, 0, 0, 1, 4, -40, 0 )
[node name="CollisionShape" type="CollisionShape" parent="TennisParticles/StaticBody"]
shape = SubResource( 50 )
[node name="TennisRamp" type="MeshInstance" parent="TennisParticles/StaticBody"]
layers = 3
mesh = SubResource( 49 )
skeleton = NodePath("../../..")
script = ExtResource( 4 )
audible_range_max = 50.0
use_embeded_patch = true
patch = "#N canvas 56 89 446 513 12;
#X obj 21 22 r fromGodot\\$0;
#X obj 21 46 list trim;
#X obj 303 253 hsl 100 20 -1 1 0 0 empty empty empty -2 -10 0 12 #fcfcfc #000000 #000000 0 1;
#X obj 300 349 line~;
#X msg 300 325 \\$1 100;
#X obj 300 278 expr ($f1 + 1)/8;
#X floatatom 300 302 5 0 0 0 - - - 0;
#N canvas 68 97 450 300 pan2~ 0;
#X obj 51 98 cos~;
#X obj 111 98 cos~;
#X obj 33 128 *~;
#X obj 93 128 *~;
#X obj 33 158 outlet~;
#X obj 93 158 outlet~;
#X obj 33 24 inlet~;
#X obj 111 24 inlet~;
#X obj 111 74 +~ 0.75;
#X connect 0 0 2 1;
#X connect 1 0 3 1;
#X connect 2 0 4 0;
#X connect 3 0 5 0;
#X connect 6 0 2 0;
#X connect 6 0 3 0;
#X connect 7 0 8 0;
#X connect 7 0 0 0;
#X connect 8 0 1 0;
#X restore 199 437 pd pan2~;
#X obj 199 407 *~;
#X obj 189 127 unpack f f;
#X floatatom 296 159 5 0 0 0 - - - 0;
#X obj 296 182 sin;
#X floatatom 296 206 5 0 0 0 - - - 0;
#X obj 21 120 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 21 70 route bang panvol param preset;
#N canvas 0 23 1440 805 synth 0;
#X obj 308 770 outlet~;
#X obj 57 359 vline~;
#X obj 57 625 osc~;
#X obj 27 649 *~;
#X obj 27 393 *~;
#X obj 57 601 +~;
#X obj 57 272 metro 500;
#X obj 75 580 *~;
#X obj 57 315 f;
#X msg 57 337 1 1 0 \\, 0 \\$1 1;
#X obj 73 294 * 200;
#X obj 134 690 *~;
#X obj 89 222 line;
#X obj 152 415 sig~;
#X obj 57 491 *~;
#X obj 57 199 t b a;
#X msg 57 177 1 \\, 0 3000;
#X obj 57 427 *~;
#X obj 117 248 * 3000;
#X obj 57 513 +~ 30;
#X obj 94 555 *~ 100;
#X floatatom 212 504 5 0 0 0 - - - 0;
#X obj 74 100 bng 16 250 50 0 empty empty empty 0 -8 0 10 #fcfcfc #000000 #000000;
#X floatatom 331 330 5 0 0 0 - - - 0;
#X obj 322 257 random 9;
#X obj 75 466 *~ 30;
#X obj 180 261 mtof;
#X obj 240 289 mtof;
#X obj 92 141 t b b b b;
#X obj 239 256 + 10;
#X obj 222 711 *~;
#X obj 446 361 vline~;
#X obj 446 627 osc~;
#X obj 416 651 *~;
#X obj 416 395 *~;
#X obj 446 603 +~;
#X obj 446 274 metro 500;
#X obj 464 582 *~;
#X obj 446 317 f;
#X msg 446 339 1 1 0 \\, 0 \\$1 1;
#X obj 462 296 * 200;
#X obj 523 692 *~;
#X obj 478 224 line;
#X obj 541 417 sig~;
#X obj 446 493 *~;
#X obj 446 201 t b a;
#X msg 446 179 1 \\, 0 3000;
#X obj 446 429 *~;
#X obj 506 250 * 3000;
#X obj 446 515 +~ 30;
#X obj 483 557 *~ 100;
#X floatatom 601 506 5 0 0 0 - - - 0;
#X obj 463 102 bng 16 250 50 0 empty empty empty 0 -8 0 10 #fcfcfc #000000 #000000;
#X floatatom 720 332 5 0 0 0 - - - 0;
#X obj 711 259 random 9;
#X obj 465 536 osc~ 70;
#X obj 464 468 *~ 30;
#X obj 569 263 mtof;
#X obj 629 291 mtof;
#X obj 481 143 t b b b b;
#X obj 628 258 + 10;
#X obj 475 719 *~;
#X obj 201 109 bng 16 250 50 0 empty empty empty 0 -8 0 10 #fcfcfc #000000 #000000;
#X obj 179 228 + 10;
#X obj 568 230 + 10;
#X obj 175 204 random 60;
#X obj 564 206 random 60;
#X obj 235 232 random 50;
#X obj 624 234 random 50;
#X obj 76 535 osc~ 700;
#X floatatom 577 309 5 0 0 0 - - - 0;
#X obj 325 304 / 14;
#X obj 795 362 vline~;
#X obj 795 628 osc~;
#X obj 765 652 *~;
#X obj 765 396 *~;
#X obj 795 604 +~;
#X obj 795 275 metro 500;
#X obj 813 583 *~;
#X obj 795 318 f;
#X msg 795 340 1 1 0 \\, 0 \\$1 1;
#X obj 811 297 * 200;
#X obj 872 693 *~;
#X obj 827 225 line;
#X obj 890 418 sig~;
#X obj 795 494 *~;
#X obj 795 202 t b a;
#X msg 795 180 1 \\, 0 3000;
#X obj 795 430 *~;
#X obj 855 251 * 3000;
#X obj 795 516 +~ 30;
#X obj 832 558 *~ 100;
#X floatatom 950 507 5 0 0 0 - - - 0;
#X obj 812 103 bng 16 250 50 0 empty empty empty 0 -8 0 10 #fcfcfc #000000 #000000;
#X floatatom 1069 333 5 0 0 0 - - - 0;
#X obj 1060 260 random 9;
#X obj 814 537 osc~ 70;
#X obj 813 469 *~ 30;
#X obj 918 264 mtof;
#X obj 978 292 mtof;
#X obj 830 144 t b b b b;
#X obj 977 259 + 10;
#X obj 824 720 *~;
#X obj 917 231 + 10;
#X obj 913 207 random 60;
#X obj 973 235 random 50;
#X floatatom 926 310 5 0 0 0 - - - 0;
#X obj 1062 305 / 60;
#X obj 711 280 + 4;
#X obj 1060 281 + 5;
#X obj 713 304 / 20;
#X obj 322 278 + 5;
#N canvas 386 23 374 377 retro 0;
#X obj 43 211 del;
#X obj 43 261 spigot;
#X obj 139 72 tgl 15 0 empty empty empty 17 7 0 10 #0400fc #f8fc00 #000000 0 1;
#X obj 145 216 random;
#X obj 82 235 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 50 47 inlet;
#X obj 43 286 outlet;
#X obj 50 104 t b f;
#X obj 113 191 t b b;
#X obj 158 72 bng 10 250 50 0 empty empty empty 17 7 0 10 #f8fc00 #0400fc #000000;
#X obj 234 37 inlet;
#X obj 266 135 unpack f f;
#X obj 234 107 expr $f2-$f1;
#X floatatom 234 197 5 0 0 0 range - - 0;
#X floatatom 266 223 5 0 0 0 start - - 0;
#X obj 145 242 +;
#X floatatom 171 69 5 0 0 1 r - - 0;
#X obj 145 286 outlet;
#X obj 234 71 t a a;
#X connect 0 0 1 0;
#X connect 1 0 6 0;
#X connect 1 0 9 0;
#X connect 2 0 7 0;
#X connect 3 0 15 0;
#X connect 4 0 1 1;
#X connect 5 0 2 0;
#X connect 7 0 9 0;
#X connect 7 1 4 0;
#X connect 8 0 0 0;
#X connect 8 1 3 0;
#X connect 9 0 8 0;
#X connect 10 0 18 0;
#X connect 11 0 14 0;
#X connect 12 0 13 0;
#X connect 13 0 3 1;
#X connect 14 0 15 1;
#X connect 15 0 0 1;
#X connect 15 0 16 0;
#X connect 15 0 17 0;
#X connect 18 0 12 0;
#X connect 18 1 11 0;
#X coords 0 -1 1 1 85 40 1 135 50;
#X restore 232 101 pd retro;
#X obj 232 34 loadbang;
#X obj 232 58 t b b;
#X msg 310 77 800 2000;
#N canvas 386 23 374 377 retro 0;
#X obj 43 211 del;
#X obj 43 261 spigot;
#X obj 139 72 tgl 15 0 empty empty empty 17 7 0 10 #0400fc #f8fc00 #000000 0 1;
#X obj 145 216 random;
#X obj 82 235 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 50 47 inlet;
#X obj 43 286 outlet;
#X obj 50 104 t b f;
#X obj 113 191 t b b;
#X obj 158 72 bng 10 250 50 0 empty empty empty 17 7 0 10 #f8fc00 #0400fc #000000;
#X obj 234 37 inlet;
#X obj 266 135 unpack f f;
#X obj 234 107 expr $f2-$f1;
#X floatatom 234 197 5 0 0 0 range - - 0;
#X floatatom 266 223 5 0 0 0 start - - 0;
#X obj 145 242 +;
#X floatatom 171 69 5 0 0 1 r - - 0;
#X obj 145 286 outlet;
#X obj 234 71 t a a;
#X connect 0 0 1 0;
#X connect 1 0 6 0;
#X connect 1 0 9 0;
#X connect 2 0 7 0;
#X connect 3 0 15 0;
#X connect 4 0 1 1;
#X connect 5 0 2 0;
#X connect 7 0 9 0;
#X connect 7 1 4 0;
#X connect 8 0 0 0;
#X connect 8 1 3 0;
#X connect 9 0 8 0;
#X connect 10 0 18 0;
#X connect 11 0 14 0;
#X connect 12 0 13 0;
#X connect 13 0 3 1;
#X connect 14 0 15 1;
#X connect 15 0 0 1;
#X connect 15 0 16 0;
#X connect 15 0 17 0;
#X connect 18 0 12 0;
#X connect 18 1 11 0;
#X coords 0 -1 1 1 85 40 1 135 50;
#X restore 615 120 pd retro;
#X obj 615 53 loadbang;
#X obj 615 77 t b b;
#X msg 693 96 500 1200;
#N canvas 386 23 374 377 retro 0;
#X obj 43 211 del;
#X obj 43 261 spigot;
#X obj 139 72 tgl 15 0 empty empty empty 17 7 0 10 #0400fc #f8fc00 #000000 0 1;
#X obj 145 216 random;
#X obj 82 235 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 50 47 inlet;
#X obj 43 286 outlet;
#X obj 50 104 t b f;
#X obj 113 191 t b b;
#X obj 158 72 bng 10 250 50 0 empty empty empty 17 7 0 10 #f8fc00 #0400fc #000000;
#X obj 234 37 inlet;
#X obj 266 135 unpack f f;
#X obj 234 107 expr $f2-$f1;
#X floatatom 234 197 5 0 0 0 range - - 0;
#X floatatom 266 223 5 0 0 0 start - - 0;
#X obj 145 242 +;
#X floatatom 171 69 5 0 0 1 r - - 0;
#X obj 145 286 outlet;
#X obj 234 71 t a a;
#X connect 0 0 1 0;
#X connect 1 0 6 0;
#X connect 1 0 9 0;
#X connect 2 0 7 0;
#X connect 3 0 15 0;
#X connect 4 0 1 1;
#X connect 5 0 2 0;
#X connect 7 0 9 0;
#X connect 7 1 4 0;
#X connect 8 0 0 0;
#X connect 8 1 3 0;
#X connect 9 0 8 0;
#X connect 10 0 18 0;
#X connect 11 0 14 0;
#X connect 12 0 13 0;
#X connect 13 0 3 1;
#X connect 14 0 15 1;
#X connect 15 0 0 1;
#X connect 15 0 16 0;
#X connect 15 0 17 0;
#X connect 18 0 12 0;
#X connect 18 1 11 0;
#X coords 0 -1 1 1 85 40 1 135 50;
#X restore 938 99 pd retro;
#X obj 938 32 loadbang;
#X obj 938 56 t b b;
#X msg 1016 75 500 1000;
#X connect 1 0 4 0;
#X connect 1 0 4 1;
#X connect 2 0 3 1;
#X connect 3 0 11 0;
#X connect 4 0 3 0;
#X connect 4 0 17 0;
#X connect 4 0 17 1;
#X connect 5 0 2 0;
#X connect 6 0 8 0;
#X connect 7 0 5 1;
#X connect 8 0 9 0;
#X connect 9 0 1 0;
#X connect 10 0 8 1;
#X connect 11 0 30 0;
#X connect 12 0 10 0;
#X connect 12 0 13 0;
#X connect 12 0 18 0;
#X connect 13 0 11 1;
#X connect 13 0 20 0;
#X connect 13 0 25 0;
#X connect 14 0 19 0;
#X connect 15 0 6 0;
#X connect 15 1 12 0;
#X connect 16 0 15 0;
#X connect 17 0 14 0;
#X connect 18 0 6 1;
#X connect 19 0 5 0;
#X connect 20 0 7 1;
#X connect 21 0 20 1;
#X connect 22 0 28 0;
#X connect 23 0 30 1;
#X connect 24 0 111 0;
#X connect 25 0 14 1;
#X connect 26 0 19 1;
#X connect 26 0 69 1;
#X connect 27 0 21 0;
#X connect 28 0 16 0;
#X connect 28 1 65 0;
#X connect 28 2 67 0;
#X connect 28 3 24 0;
#X connect 29 0 27 0;
#X connect 30 0 0 0;
#X connect 31 0 34 0;
#X connect 31 0 34 1;
#X connect 32 0 33 1;
#X connect 33 0 41 0;
#X connect 34 0 33 0;
#X connect 34 0 47 0;
#X connect 34 0 47 1;
#X connect 35 0 32 0;
#X connect 36 0 38 0;
#X connect 37 0 35 1;
#X connect 38 0 39 0;
#X connect 39 0 31 0;
#X connect 40 0 38 1;
#X connect 41 0 61 0;
#X connect 42 0 40 0;
#X connect 42 0 43 0;
#X connect 42 0 48 0;
#X connect 43 0 41 1;
#X connect 43 0 50 0;
#X connect 43 0 56 0;
#X connect 44 0 49 0;
#X connect 45 0 36 0;
#X connect 45 1 42 0;
#X connect 46 0 45 0;
#X connect 47 0 44 0;
#X connect 48 0 36 1;
#X connect 49 0 35 0;
#X connect 50 0 37 1;
#X connect 51 0 50 1;
#X connect 52 0 59 0;
#X connect 53 0 61 1;
#X connect 54 0 108 0;
#X connect 55 0 37 0;
#X connect 56 0 44 1;
#X connect 57 0 49 1;
#X connect 57 0 70 0;
#X connect 57 0 55 1;
#X connect 58 0 51 0;
#X connect 59 0 46 0;
#X connect 59 1 66 0;
#X connect 59 2 68 0;
#X connect 59 3 54 0;
#X connect 60 0 58 0;
#X connect 61 0 0 0;
#X connect 62 0 28 0;
#X connect 63 0 26 0;
#X connect 64 0 57 0;
#X connect 65 0 63 0;
#X connect 66 0 64 0;
#X connect 67 0 29 0;
#X connect 68 0 60 0;
#X connect 69 0 7 0;
#X connect 71 0 23 0;
#X connect 72 0 75 0;
#X connect 72 0 75 1;
#X connect 73 0 74 1;
#X connect 74 0 82 0;
#X connect 75 0 74 0;
#X connect 75 0 88 0;
#X connect 75 0 88 1;
#X connect 76 0 73 0;
#X connect 77 0 79 0;
#X connect 78 0 76 1;
#X connect 79 0 80 0;
#X connect 80 0 72 0;
#X connect 81 0 79 1;
#X connect 82 0 102 0;
#X connect 83 0 81 0;
#X connect 83 0 84 0;
#X connect 83 0 89 0;
#X connect 84 0 82 1;
#X connect 84 0 91 0;
#X connect 84 0 97 0;
#X connect 85 0 90 0;
#X connect 86 0 77 0;
#X connect 86 1 83 0;
#X connect 87 0 86 0;
#X connect 88 0 85 0;
#X connect 89 0 77 1;
#X connect 90 0 76 0;
#X connect 91 0 78 1;
#X connect 92 0 91 1;
#X connect 93 0 100 0;
#X connect 94 0 102 1;
#X connect 95 0 109 0;
#X connect 96 0 78 0;
#X connect 97 0 85 1;
#X connect 98 0 90 1;
#X connect 98 0 106 0;
#X connect 98 0 96 1;
#X connect 99 0 92 0;
#X connect 100 0 87 0;
#X connect 100 1 104 0;
#X connect 100 2 105 0;
#X connect 100 3 95 0;
#X connect 101 0 99 0;
#X connect 103 0 98 0;
#X connect 104 0 103 0;
#X connect 105 0 101 0;
#X connect 107 0 94 0;
#X connect 108 0 110 0;
#X connect 109 0 107 0;
#X connect 110 0 53 0;
#X connect 111 0 71 0;
#X connect 112 0 62 0;
#X connect 113 0 114 0;
#X connect 114 0 112 0;
#X connect 114 1 115 0;
#X connect 115 0 112 1;
#X connect 116 0 52 0;
#X connect 117 0 118 0;
#X connect 118 0 116 0;
#X connect 118 1 119 0;
#X connect 119 0 116 1;
#X connect 120 0 93 0;
#X connect 121 0 122 0;
#X connect 122 0 120 0;
#X connect 122 1 123 0;
#X connect 123 0 120 1;
#X restore 50 300 pd synth;
#X obj 204 329 *~;
#X obj 189 276 line~;
#X msg 189 252 \\$1 100;
#X floatatom 189 189 5 0 0 0 - - - 0;
#X obj 132 322 switch~;
#X obj 132 298 tgl 19 0 empty empty empty 0 -10 0 12 #fcfcfc #000000 #000000 0 1;
#X obj 132 274 change;
#X text 89 167 switch on/off before 0 to stop startup pops, f 12;
#X obj 189 228 max 0;
#X obj 132 250 > -0.3;
#X obj 199 467 throw~ outL;
#X obj 289 467 throw~ outR;
#X connect 0 0 1 0;
#X connect 1 0 14 0;
#X connect 2 0 5 0;
#X connect 3 0 7 1;
#X connect 4 0 3 0;
#X connect 5 0 6 0;
#X connect 6 0 4 0;
#X connect 7 0 26 0;
#X connect 7 1 27 0;
#X connect 8 0 7 0;
#X connect 9 0 19 0;
#X connect 9 1 10 0;
#X connect 10 0 11 0;
#X connect 11 0 12 0;
#X connect 12 0 2 0;
#X connect 14 0 13 0;
#X connect 14 1 9 0;
#X connect 15 0 8 0;
#X connect 16 0 8 1;
#X connect 17 0 16 0;
#X connect 17 0 16 1;
#X connect 18 0 17 0;
#X connect 19 0 24 0;
#X connect 19 0 25 0;
#X connect 21 0 20 0;
#X connect 22 0 21 0;
#X connect 24 0 18 0;
#X connect 25 0 22 0;
"