aboutsummaryrefslogtreecommitdiff
path: root/demos/2d/rubegoldberg
diff options
context:
space:
mode:
Diffstat (limited to 'demos/2d/rubegoldberg')
-rw-r--r--demos/2d/rubegoldberg/art/bowling_ball.pngbin0 -> 4637 bytes
-rw-r--r--demos/2d/rubegoldberg/art/box.pngbin0 -> 3300 bytes
-rw-r--r--demos/2d/rubegoldberg/art/domino.pngbin0 -> 246 bytes
-rw-r--r--demos/2d/rubegoldberg/art/platform.pngbin0 -> 4137 bytes
-rw-r--r--demos/2d/rubegoldberg/art/seesaw_base.pngbin0 -> 2936 bytes
-rw-r--r--demos/2d/rubegoldberg/art/seesaw_top.pngbin0 -> 3636 bytes
-rw-r--r--demos/2d/rubegoldberg/ball.xml191
-rw-r--r--demos/2d/rubegoldberg/box.xml142
-rw-r--r--demos/2d/rubegoldberg/domino.xml143
-rw-r--r--demos/2d/rubegoldberg/engine.cfg10
-rw-r--r--demos/2d/rubegoldberg/icon.pngbin0 -> 3508 bytes
-rw-r--r--demos/2d/rubegoldberg/pendulum.xml233
-rw-r--r--demos/2d/rubegoldberg/platform.xml176
-rw-r--r--demos/2d/rubegoldberg/rubegoldberg.xml190
-rw-r--r--demos/2d/rubegoldberg/seesaw.xml169
15 files changed, 1254 insertions, 0 deletions
diff --git a/demos/2d/rubegoldberg/art/bowling_ball.png b/demos/2d/rubegoldberg/art/bowling_ball.png
new file mode 100644
index 000000000..9443cda88
--- /dev/null
+++ b/demos/2d/rubegoldberg/art/bowling_ball.png
Binary files differ
diff --git a/demos/2d/rubegoldberg/art/box.png b/demos/2d/rubegoldberg/art/box.png
new file mode 100644
index 000000000..9edcae590
--- /dev/null
+++ b/demos/2d/rubegoldberg/art/box.png
Binary files differ
diff --git a/demos/2d/rubegoldberg/art/domino.png b/demos/2d/rubegoldberg/art/domino.png
new file mode 100644
index 000000000..111b93606
--- /dev/null
+++ b/demos/2d/rubegoldberg/art/domino.png
Binary files differ
diff --git a/demos/2d/rubegoldberg/art/platform.png b/demos/2d/rubegoldberg/art/platform.png
new file mode 100644
index 000000000..c18ddf2b1
--- /dev/null
+++ b/demos/2d/rubegoldberg/art/platform.png
Binary files differ
diff --git a/demos/2d/rubegoldberg/art/seesaw_base.png b/demos/2d/rubegoldberg/art/seesaw_base.png
new file mode 100644
index 000000000..ba359c6ce
--- /dev/null
+++ b/demos/2d/rubegoldberg/art/seesaw_base.png
Binary files differ
diff --git a/demos/2d/rubegoldberg/art/seesaw_top.png b/demos/2d/rubegoldberg/art/seesaw_top.png
new file mode 100644
index 000000000..7c3fa83b1
--- /dev/null
+++ b/demos/2d/rubegoldberg/art/seesaw_top.png
Binary files differ
diff --git a/demos/2d/rubegoldberg/ball.xml b/demos/2d/rubegoldberg/ball.xml
new file mode 100644
index 000000000..625438eb7
--- /dev/null
+++ b/demos/2d/rubegoldberg/ball.xml
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<resource_file type="PackedScene" subresource_count="3" version="0.99" version_name="Godot Engine v0.99.3656-pre-beta">
+ <ext_resource path="res://art/bowling_ball.*" type="ImageTexture"></ext_resource>
+ <resource type="CircleShape2D" path="local://1">
+ <string name="resource/name"> "" </string>
+ <real name="custom_solver_bias"> 0 </real>
+ <real name="radius"> 32 </real>
+ <resource name="script/script"></resource>
+ </resource>
+ <main_resource>
+ <string name="resource/name"> "" </string>
+ <dictionary name="_bundled" shared="false">
+ <string> "names" </string>
+ <string_array len="48">
+ <string> "Ball" </string>
+ <string> "RigidBody2D" </string>
+ <string> "process/process" </string>
+ <string> "process/fixed_process" </string>
+ <string> "process/input" </string>
+ <string> "process/unhandled_input" </string>
+ <string> "process/pause_mode" </string>
+ <string> "visibility/visible" </string>
+ <string> "visibility/opacity" </string>
+ <string> "visibility/self_opacity" </string>
+ <string> "visibility/on_top" </string>
+ <string> "visibility/blend_mode" </string>
+ <string> "transform/pos" </string>
+ <string> "transform/rot" </string>
+ <string> "transform/scale" </string>
+ <string> "shape_count" </string>
+ <string> "shapes/0/shape" </string>
+ <string> "shapes/0/transform" </string>
+ <string> "shapes/0/trigger" </string>
+ <string> "mode" </string>
+ <string> "mass" </string>
+ <string> "friction" </string>
+ <string> "bounce" </string>
+ <string> "custom_integrator" </string>
+ <string> "continuous_cd" </string>
+ <string> "contacts_reported" </string>
+ <string> "contact_monitor" </string>
+ <string> "active" </string>
+ <string> "can_sleep" </string>
+ <string> "velocity/linear" </string>
+ <string> "velocity/angular" </string>
+ <string> "script/script" </string>
+ <string> "__meta__" </string>
+ <string> "Sprite" </string>
+ <string> "texture" </string>
+ <string> "centered" </string>
+ <string> "offset" </string>
+ <string> "flip_h" </string>
+ <string> "flip_v" </string>
+ <string> "vframes" </string>
+ <string> "hframes" </string>
+ <string> "frame" </string>
+ <string> "modulate" </string>
+ <string> "region" </string>
+ <string> "region_rect" </string>
+ <string> "CollisionShape2D" </string>
+ <string> "shape" </string>
+ <string> "trigger" </string>
+ </string_array>
+ <string> "version" </string>
+ <int> 1 </int>
+ <string> "conn_count" </string>
+ <int> 0 </int>
+ <string> "node_count" </string>
+ <int> 3 </int>
+ <string> "variants" </string>
+ <array len="16" shared="true">
+ <bool> False </bool>
+ <int> 0 </int>
+ <bool> True </bool>
+ <real> 1 </real>
+ <vector2> 0, 0 </vector2>
+ <real> 0 </real>
+ <vector2> 1, 1 </vector2>
+ <int> 1 </int>
+ <resource resource_type="CircleShape2D" path="local://1"> </resource>
+ <matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
+ <real> 3 </real>
+ <resource name=""></resource> <dictionary shared="false">
+ <string> "__editor_plugin_states__" </string>
+ <dictionary shared="false">
+ <string> "2D" </string>
+ <dictionary shared="false">
+ <string> "zoom" </string>
+ <real> 1.50734 </real>
+ <string> "ofs" </string>
+ <vector2> -80.5995, -149.825 </vector2>
+ </dictionary>
+ <string> "3D" </string>
+ <dictionary shared="false">
+ <string> "zfar" </string>
+ <real> 500 </real>
+ <string> "fov" </string>
+ <real> 45 </real>
+ <string> "viewports" </string>
+ <array len="4" shared="true">
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ </dictionary>
+ </array>
+ <string> "viewport_mode" </string>
+ <int> 1 </int>
+ <string> "default_light" </string>
+ <bool> True </bool>
+ <string> "show_grid" </string>
+ <bool> True </bool>
+ <string> "show_origin" </string>
+ <bool> True </bool>
+ <string> "znear" </string>
+ <real> 0.1 </real>
+ </dictionary>
+ </dictionary>
+ <string> "__editor_run_settings__" </string>
+ <dictionary shared="false">
+ <string> "custom_args" </string>
+ <string> "-l $scene" </string>
+ <string> "run_mode" </string>
+ <int> 0 </int>
+ </dictionary>
+ <string> "__editor_plugin_screen__" </string>
+ <string> "Script" </string>
+ </dictionary>
+ <resource resource_type="ImageTexture" path="res://art/bowling_ball.*"> </resource>
+ <color> 1, 1, 1, 1 </color>
+ <rect2> 0, 0, 0, 0 </rect2>
+ </array>
+ <string> "nodes" </string>
+ <int_array len="165"> -1, -1, 1, 0, -1, 31, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 3, 9, 3, 10, 2, 11, 1, 12, 4, 13, 5, 14, 6, 15, 7, 16, 8, 17, 9, 18, 0, 19, 1, 20, 10, 21, 3, 22, 5, 23, 0, 24, 0, 25, 1, 26, 0, 27, 2, 28, 2, 29, 4, 30, 5, 31, 11, 32, 12, 0, 0, 0, 33, 33, -1, 25, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 3, 9, 3, 10, 2, 11, 1, 12, 4, 13, 5, 14, 6, 34, 13, 35, 2, 36, 4, 37, 0, 38, 0, 39, 7, 40, 7, 41, 1, 42, 14, 43, 0, 44, 15, 31, 11, 0, 0, 0, 45, 45, -1, 16, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 3, 9, 3, 10, 2, 11, 1, 12, 4, 13, 5, 14, 6, 46, 8, 47, 0, 31, 11, 0 </int_array>
+ <string> "conns" </string>
+ <int_array len="0"> </int_array>
+ </dictionary>
+ <resource name="script/script"></resource>
+ </main_resource>
+</resource_file> \ No newline at end of file
diff --git a/demos/2d/rubegoldberg/box.xml b/demos/2d/rubegoldberg/box.xml
new file mode 100644
index 000000000..c715326ae
--- /dev/null
+++ b/demos/2d/rubegoldberg/box.xml
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<resource_file type="PackedScene" subresource_count="3" version="0.99" version_name="Godot Engine v0.99.2864-pre-beta">
+ <ext_resource path="res://art/box.png" type="Texture"></ext_resource>
+ <resource type="RectangleShape2D" path="local://1">
+ <string name="resource/name"> "" </string>
+ <real name="custom_solver_bias"> 0 </real>
+ <vector2 name="extents"> 32, 32 </vector2>
+ <resource name="script/script"></resource>
+ </resource>
+ <main_resource>
+ <string name="resource/name"> "" </string>
+ <dictionary name="_bundled">
+ <string> "names" </string>
+ <string_array len="48">
+ <string> "box" </string>
+ <string> "RigidBody2D" </string>
+ <string> "process/process" </string>
+ <string> "process/fixed_process" </string>
+ <string> "process/input" </string>
+ <string> "process/unhandled_input" </string>
+ <string> "process/mode" </string>
+ <string> "visibility/visible" </string>
+ <string> "visibility/toplevel" </string>
+ <string> "visibility/opacity" </string>
+ <string> "visibility/self_opacity" </string>
+ <string> "visibility/on_top" </string>
+ <string> "visibility/blend_mode" </string>
+ <string> "transform/notify" </string>
+ <string> "transform/pos" </string>
+ <string> "transform/rot" </string>
+ <string> "transform/scale" </string>
+ <string> "shape_count" </string>
+ <string> "shapes/0/shape" </string>
+ <string> "shapes/0/transform" </string>
+ <string> "mode" </string>
+ <string> "mass" </string>
+ <string> "friction" </string>
+ <string> "bounce" </string>
+ <string> "custom_integrator" </string>
+ <string> "continuous_cd" </string>
+ <string> "contacts_reported" </string>
+ <string> "contact_monitor" </string>
+ <string> "active" </string>
+ <string> "can_sleep" </string>
+ <string> "velocity/linear" </string>
+ <string> "velocity/angular" </string>
+ <string> "script/script" </string>
+ <string> "__meta__" </string>
+ <string> "Sprite" </string>
+ <string> "texture" </string>
+ <string> "centered" </string>
+ <string> "offset" </string>
+ <string> "flip_h" </string>
+ <string> "flip_v" </string>
+ <string> "vframes" </string>
+ <string> "hframes" </string>
+ <string> "frame" </string>
+ <string> "modulate" </string>
+ <string> "region" </string>
+ <string> "region_rect" </string>
+ <string> "CollisionShape2D" </string>
+ <string> "shape" </string>
+ </string_array>
+ <string> "version" </string>
+ <int> 1 </int>
+ <string> "conn_count" </string>
+ <int> 0 </int>
+ <string> "node_count" </string>
+ <int> 3 </int>
+ <string> "variants" </string>
+ <array len="15">
+ <bool> False </bool>
+ <int> 0 </int>
+ <bool> True </bool>
+ <real> 1 </real>
+ <vector2> 0, 0 </vector2>
+ <real> 0 </real>
+ <vector2> 1, 1 </vector2>
+ <int> 1 </int>
+ <resource resource_type="RectangleShape2D" path="local://1"> </resource>
+ <matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
+ <resource name=""></resource> <dictionary>
+ <string> "__editor_plugin_states__" </string>
+ <dictionary>
+ <string> "2D" </string>
+ <dictionary>
+ <string> "zoom" </string>
+ <real> 1 </real>
+ <string> "ofs" </string>
+ <vector2> -125, -163 </vector2>
+ </dictionary>
+ <string> "3D" </string>
+ <dictionary>
+ <string> "zfar" </string>
+ <real> 500 </real>
+ <string> "fov" </string>
+ <real> 45 </real>
+ <string> "window_mode" </string>
+ <int> 0 </int>
+ <string> "window_0" </string>
+ <dictionary>
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "default_light" </string>
+ <bool> True </bool>
+ <string> "x_rot" </string>
+ <real> 0.337 </real>
+ <string> "y_rot" </string>
+ <real> -0.575 </real>
+ <string> "show_grid" </string>
+ <bool> True </bool>
+ <string> "show_origin" </string>
+ <bool> True </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ </dictionary>
+ <string> "znear" </string>
+ <real> 0.1 </real>
+ </dictionary>
+ </dictionary>
+ <string> "__editor_run_settings__" </string>
+ <dictionary>
+ <string> "custom_args" </string>
+ <string> "-l $scene" </string>
+ <string> "run_mode" </string>
+ <int> 0 </int>
+ </dictionary>
+ <string> "__editor_plugin_screen__" </string>
+ <string> "2D" </string>
+ </dictionary>
+ <resource resource_type="Texture" path="res://art/box.png"> </resource>
+ <color> 1, 1, 1, 1 </color>
+ <rect2> 0, 0, 0, 0 </rect2>
+ </array>
+ <string> "nodes" </string>
+ <int_array len="173"> -1, -1, 1, 0, -1, 32, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 2, 14, 4, 15, 5, 16, 6, 17, 7, 18, 8, 19, 9, 20, 1, 21, 3, 22, 3, 23, 5, 24, 0, 25, 0, 26, 1, 27, 0, 28, 2, 29, 2, 30, 4, 31, 5, 32, 10, 33, 11, 0, 0, 0, 34, 34, -1, 27, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 0, 14, 4, 15, 5, 16, 6, 35, 12, 36, 2, 37, 4, 38, 0, 39, 0, 40, 7, 41, 7, 42, 1, 43, 13, 44, 0, 45, 14, 32, 10, 0, 0, 0, 46, 46, -1, 17, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 2, 14, 4, 15, 5, 16, 6, 47, 8, 32, 10, 0 </int_array>
+ <string> "conns" </string>
+ <int_array len="0"> </int_array>
+ </dictionary>
+ <resource name="script/script"></resource>
+ </main_resource>
+</resource_file> \ No newline at end of file
diff --git a/demos/2d/rubegoldberg/domino.xml b/demos/2d/rubegoldberg/domino.xml
new file mode 100644
index 000000000..324bf57e6
--- /dev/null
+++ b/demos/2d/rubegoldberg/domino.xml
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<resource_file type="PackedScene" subresource_count="3" version="0.99" version_name="Godot Engine v0.99.2864-pre-beta">
+ <ext_resource path="res://art/domino.png" type="Texture"></ext_resource>
+ <resource type="RectangleShape2D" path="local://1">
+ <string name="resource/name"> "" </string>
+ <real name="custom_solver_bias"> 0 </real>
+ <vector2 name="extents"> 16, 64 </vector2>
+ <resource name="script/script"></resource>
+ </resource>
+ <main_resource>
+ <string name="resource/name"> "" </string>
+ <dictionary name="_bundled">
+ <string> "names" </string>
+ <string_array len="48">
+ <string> "domino" </string>
+ <string> "RigidBody2D" </string>
+ <string> "process/process" </string>
+ <string> "process/fixed_process" </string>
+ <string> "process/input" </string>
+ <string> "process/unhandled_input" </string>
+ <string> "process/mode" </string>
+ <string> "visibility/visible" </string>
+ <string> "visibility/toplevel" </string>
+ <string> "visibility/opacity" </string>
+ <string> "visibility/self_opacity" </string>
+ <string> "visibility/on_top" </string>
+ <string> "visibility/blend_mode" </string>
+ <string> "transform/notify" </string>
+ <string> "transform/pos" </string>
+ <string> "transform/rot" </string>
+ <string> "transform/scale" </string>
+ <string> "shape_count" </string>
+ <string> "shapes/0/shape" </string>
+ <string> "shapes/0/transform" </string>
+ <string> "mode" </string>
+ <string> "mass" </string>
+ <string> "friction" </string>
+ <string> "bounce" </string>
+ <string> "custom_integrator" </string>
+ <string> "continuous_cd" </string>
+ <string> "contacts_reported" </string>
+ <string> "contact_monitor" </string>
+ <string> "active" </string>
+ <string> "can_sleep" </string>
+ <string> "velocity/linear" </string>
+ <string> "velocity/angular" </string>
+ <string> "script/script" </string>
+ <string> "__meta__" </string>
+ <string> "Sprite" </string>
+ <string> "texture" </string>
+ <string> "centered" </string>
+ <string> "offset" </string>
+ <string> "flip_h" </string>
+ <string> "flip_v" </string>
+ <string> "vframes" </string>
+ <string> "hframes" </string>
+ <string> "frame" </string>
+ <string> "modulate" </string>
+ <string> "region" </string>
+ <string> "region_rect" </string>
+ <string> "CollisionShape2D" </string>
+ <string> "shape" </string>
+ </string_array>
+ <string> "version" </string>
+ <int> 1 </int>
+ <string> "conn_count" </string>
+ <int> 0 </int>
+ <string> "node_count" </string>
+ <int> 3 </int>
+ <string> "variants" </string>
+ <array len="16">
+ <bool> False </bool>
+ <int> 0 </int>
+ <bool> True </bool>
+ <real> 1 </real>
+ <vector2> 0, 0 </vector2>
+ <real> 0 </real>
+ <vector2> 1, 1 </vector2>
+ <int> 1 </int>
+ <resource resource_type="RectangleShape2D" path="local://1"> </resource>
+ <matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
+ <real> 0.5 </real>
+ <resource name=""></resource> <dictionary>
+ <string> "__editor_plugin_states__" </string>
+ <dictionary>
+ <string> "2D" </string>
+ <dictionary>
+ <string> "zoom" </string>
+ <real> 1 </real>
+ <string> "ofs" </string>
+ <vector2> -135, -114 </vector2>
+ </dictionary>
+ <string> "3D" </string>
+ <dictionary>
+ <string> "zfar" </string>
+ <real> 500 </real>
+ <string> "fov" </string>
+ <real> 45 </real>
+ <string> "window_mode" </string>
+ <int> 0 </int>
+ <string> "window_0" </string>
+ <dictionary>
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "default_light" </string>
+ <bool> True </bool>
+ <string> "x_rot" </string>
+ <real> 0.337 </real>
+ <string> "y_rot" </string>
+ <real> -0.575 </real>
+ <string> "show_grid" </string>
+ <bool> True </bool>
+ <string> "show_origin" </string>
+ <bool> True </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ </dictionary>
+ <string> "znear" </string>
+ <real> 0.1 </real>
+ </dictionary>
+ </dictionary>
+ <string> "__editor_run_settings__" </string>
+ <dictionary>
+ <string> "custom_args" </string>
+ <string> "-l $scene" </string>
+ <string> "run_mode" </string>
+ <int> 0 </int>
+ </dictionary>
+ <string> "__editor_plugin_screen__" </string>
+ <string> "2D" </string>
+ </dictionary>
+ <resource resource_type="Texture" path="res://art/domino.png"> </resource>
+ <color> 1, 1, 1, 1 </color>
+ <rect2> 0, 0, 0, 0 </rect2>
+ </array>
+ <string> "nodes" </string>
+ <int_array len="173"> -1, -1, 1, 0, -1, 32, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 2, 14, 4, 15, 5, 16, 6, 17, 7, 18, 8, 19, 9, 20, 1, 21, 3, 22, 10, 23, 5, 24, 0, 25, 0, 26, 1, 27, 0, 28, 2, 29, 2, 30, 4, 31, 5, 32, 11, 33, 12, 0, 0, 0, 34, 34, -1, 27, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 0, 14, 4, 15, 5, 16, 6, 35, 13, 36, 2, 37, 4, 38, 0, 39, 0, 40, 7, 41, 7, 42, 1, 43, 14, 44, 0, 45, 15, 32, 11, 0, 0, 0, 46, 46, -1, 17, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 2, 14, 4, 15, 5, 16, 6, 47, 8, 32, 11, 0 </int_array>
+ <string> "conns" </string>
+ <int_array len="0"> </int_array>
+ </dictionary>
+ <resource name="script/script"></resource>
+ </main_resource>
+</resource_file> \ No newline at end of file
diff --git a/demos/2d/rubegoldberg/engine.cfg b/demos/2d/rubegoldberg/engine.cfg
new file mode 100644
index 000000000..bd1cc79dd
--- /dev/null
+++ b/demos/2d/rubegoldberg/engine.cfg
@@ -0,0 +1,10 @@
+[application]
+
+name="Rube Goldberg"
+main_scene="res://rubegoldberg.xml"
+icon="res://icon.png"
+
+[physics_2d]
+
+default_gravity=500
+default_density=0.01
diff --git a/demos/2d/rubegoldberg/icon.png b/demos/2d/rubegoldberg/icon.png
new file mode 100644
index 000000000..38925bda0
--- /dev/null
+++ b/demos/2d/rubegoldberg/icon.png
Binary files differ
diff --git a/demos/2d/rubegoldberg/pendulum.xml b/demos/2d/rubegoldberg/pendulum.xml
new file mode 100644
index 000000000..2a5378ff2
--- /dev/null
+++ b/demos/2d/rubegoldberg/pendulum.xml
@@ -0,0 +1,233 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<resource_file type="PackedScene" subresource_count="5" version="0.99" version_name="Godot Engine v0.99.3735-pre-beta">
+ <ext_resource path="res://art/bowling_ball.*" type="ImageTexture"></ext_resource>
+ <ext_resource path="res://art/box.*" type="ImageTexture"></ext_resource>
+ <resource type="RectangleShape2D" path="local://1">
+ <real name="custom_solver_bias"> 0 </real>
+ <vector2 name="extents"> 3, 12 </vector2>
+
+ </resource>
+ <resource type="CircleShape2D" path="local://2">
+ <real name="custom_solver_bias"> 0 </real>
+ <real name="radius"> 16 </real>
+
+ </resource>
+ <main_resource>
+ <dictionary name="_bundled" shared="false">
+ <string> "names" </string>
+ <string_array len="57">
+ <string> "pendulum" </string>
+ <string> "Node2D" </string>
+ <string> "visibility/visible" </string>
+ <string> "visibility/opacity" </string>
+ <string> "visibility/self_opacity" </string>
+ <string> "visibility/on_top" </string>
+ <string> "transform/pos" </string>
+ <string> "transform/rot" </string>
+ <string> "transform/scale" </string>
+ <string> "__meta__" </string>
+ <string> "union_0" </string>
+ <string> "RigidBody2D" </string>
+ <string> "shape_count" </string>
+ <string> "shapes/0/shape" </string>
+ <string> "shapes/0/transform" </string>
+ <string> "shapes/0/trigger" </string>
+ <string> "mode" </string>
+ <string> "mass" </string>
+ <string> "friction" </string>
+ <string> "bounce" </string>
+ <string> "custom_integrator" </string>
+ <string> "continuous_cd" </string>
+ <string> "contacts_reported" </string>
+ <string> "contact_monitor" </string>
+ <string> "active" </string>
+ <string> "can_sleep" </string>
+ <string> "velocity/linear" </string>
+ <string> "velocity/angular" </string>
+ <string> "Sprite" </string>
+ <string> "texture" </string>
+ <string> "centered" </string>
+ <string> "offset" </string>
+ <string> "flip_h" </string>
+ <string> "flip_v" </string>
+ <string> "vframes" </string>
+ <string> "hframes" </string>
+ <string> "frame" </string>
+ <string> "modulate" </string>
+ <string> "region" </string>
+ <string> "region_rect" </string>
+ <string> "collision" </string>
+ <string> "CollisionShape2D" </string>
+ <string> "shape" </string>
+ <string> "trigger" </string>
+ <string> "union_ 2" </string>
+ <string> "union_ 3" </string>
+ <string> "union_ 4" </string>
+ <string> "joint1" </string>
+ <string> "PinJoint2D" </string>
+ <string> "node_a" </string>
+ <string> "node_b" </string>
+ <string> "bias/bias" </string>
+ <string> "joint 2_3" </string>
+ <string> "joint 3_4" </string>
+ <string> "ball" </string>
+ <string> "joint 4_ball" </string>
+ <string> "joint wall" </string>
+ </string_array>
+ <string> "version" </string>
+ <int> 1 </int>
+ <string> "conn_count" </string>
+ <int> 0 </int>
+ <string> "node_count" </string>
+ <int> 21 </int>
+ <string> "variants" </string>
+ <array len="38" shared="false">
+ <bool> True </bool>
+ <real> 1 </real>
+ <vector2> 0, 0 </vector2>
+ <real> 0 </real>
+ <vector2> 1, 1 </vector2>
+ <dictionary shared="false">
+ <string> "__editor_plugin_states__" </string>
+ <dictionary shared="false">
+ <string> "2D" </string>
+ <dictionary shared="false">
+ <string> "zoom" </string>
+ <real> 2.78951 </real>
+ <string> "ofs" </string>
+ <vector2> -121.028, 0.923909 </vector2>
+ </dictionary>
+ <string> "3D" </string>
+ <dictionary shared="false">
+ <string> "zfar" </string>
+ <real> 500 </real>
+ <string> "fov" </string>
+ <real> 45 </real>
+ <string> "viewports" </string>
+ <array len="4" shared="false">
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ </dictionary>
+ </array>
+ <string> "viewport_mode" </string>
+ <int> 1 </int>
+ <string> "default_light" </string>
+ <bool> True </bool>
+ <string> "show_grid" </string>
+ <bool> True </bool>
+ <string> "show_origin" </string>
+ <bool> True </bool>
+ <string> "znear" </string>
+ <real> 0.1 </real>
+ </dictionary>
+ </dictionary>
+ <string> "__editor_run_settings__" </string>
+ <dictionary shared="false">
+ <string> "custom_args" </string>
+ <string> "-l $scene" </string>
+ <string> "run_mode" </string>
+ <int> 0 </int>
+ </dictionary>
+ <string> "__editor_plugin_screen__" </string>
+ <string> "2D" </string>
+ </dictionary>
+ <int> 1 </int>
+ <resource resource_type="RectangleShape2D" path="local://1"> </resource>
+ <matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
+ <bool> False </bool>
+ <int> 0 </int>
+ <real> 0.2 </real>
+ <dictionary shared="false">
+ <string> "_edit_group_" </string>
+ <bool> True </bool>
+ </dictionary>
+ <vector2> 0.1, 0.4 </vector2>
+ <resource resource_type="ImageTexture" path="res://art/box.*"> </resource>
+ <color> 1, 1, 1, 1 </color>
+ <rect2> 0, 0, 0, 0 </rect2>
+ <vector2> 0, 26.9432 </vector2>
+ <matrix32> 1, -0, 0, 1, 0, 0 </matrix32>
+ <dictionary shared="false">
+ <string> "_edit_group_" </string>
+ <bool> True </bool>
+ </dictionary>
+ <vector2> 0, 53.8863 </vector2>
+ <vector2> 0, 81.4282 </vector2>
+ <vector2> 0, 13.771 </vector2>
+ <node_path> "../union_0" </node_path>
+ <node_path> "../union_ 2" </node_path>
+ <vector2> 0, 40.7141 </vector2>
+ <node_path> "../union_ 3" </node_path>
+ <vector2> 0, 67.6573 </vector2>
+ <node_path> "../union_ 4" </node_path>
+ <vector2> 0, 106.787 </vector2>
+ <vector2> 0.98476, 1 </vector2>
+ <resource resource_type="CircleShape2D" path="local://2"> </resource>
+ <vector2> 0.5, 0.5 </vector2>
+ <resource resource_type="ImageTexture" path="res://art/bowling_ball.*"> </resource>
+ <vector2> 0, 92.5287 </vector2>
+ <node_path> "../ball" </node_path>
+ <vector2> 0, -12.1024 </vector2>
+ <node_path> "" </node_path>
+ </array>
+ <string> "nodes" </string>
+ <int_array len="773"> -1, -1, 1, 0, -1, 8, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 9, 5, 0, 0, 0, 11, 10, -1, 24, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 12, 6, 13, 7, 14, 8, 15, 9, 16, 10, 17, 11, 18, 1, 19, 3, 20, 9, 21, 9, 22, 10, 23, 9, 24, 0, 25, 0, 26, 2, 27, 3, 9, 12, 0, 1, 0, 28, 28, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 13, 29, 14, 30, 0, 31, 2, 32, 9, 33, 9, 34, 6, 35, 6, 36, 10, 37, 15, 38, 9, 39, 16, 0, 1, 0, 41, 40, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 42, 7, 43, 9, 0, 0, 0, 11, 44, -1, 24, 2, 0, 3, 1, 4, 1, 5, 0, 6, 17, 7, 3, 8, 4, 12, 6, 13, 7, 14, 18, 15, 9, 16, 10, 17, 11, 18, 1, 19, 3, 20, 9, 21, 9, 22, 10, 23, 9, 24, 0, 25, 0, 26, 2, 27, 3, 9, 19, 0, 4, 0, 28, 28, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 13, 29, 14, 30, 0, 31, 2, 32, 9, 33, 9, 34, 6, 35, 6, 36, 10, 37, 15, 38, 9, 39, 16, 0, 4, 0, 41, 40, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 42, 7, 43, 9, 0, 0, 0, 11, 45, -1, 24, 2, 0, 3, 1, 4, 1, 5, 0, 6, 20, 7, 3, 8, 4, 12, 6, 13, 7, 14, 18, 15, 9, 16, 10, 17, 11, 18, 1, 19, 3, 20, 9, 21, 9, 22, 10, 23, 9, 24, 0, 25, 0, 26, 2, 27, 3, 9, 19, 0, 7, 0, 28, 28, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 13, 29, 14, 30, 0, 31, 2, 32, 9, 33, 9, 34, 6, 35, 6, 36, 10, 37, 15, 38, 9, 39, 16, 0, 7, 0, 41, 40, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 42, 7, 43, 9, 0, 0, 0, 11, 46, -1, 24, 2, 0, 3, 1, 4, 1, 5, 0, 6, 21, 7, 3, 8, 4, 12, 6, 13, 7, 14, 18, 15, 9, 16, 10, 17, 11, 18, 1, 19, 3, 20, 9, 21, 9, 22, 10, 23, 9, 24, 0, 25, 0, 26, 2, 27, 3, 9, 19, 0, 10, 0, 28, 28, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 13, 29, 14, 30, 0, 31, 2, 32, 9, 33, 9, 34, 6, 35, 6, 36, 10, 37, 15, 38, 9, 39, 16, 0, 10, 0, 41, 40, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 42, 7, 43, 9, 0, 0, 0, 48, 47, -1, 10, 2, 0, 3, 1, 4, 1, 5, 0, 6, 22, 7, 3, 8, 4, 49, 23, 50, 24, 51, 3, 0, 0, 0, 48, 52, -1, 10, 2, 0, 3, 1, 4, 1, 5, 0, 6, 25, 7, 3, 8, 4, 49, 24, 50, 26, 51, 3, 0, 0, 0, 48, 53, -1, 10, 2, 0, 3, 1, 4, 1, 5, 0, 6, 27, 7, 3, 8, 4, 49, 26, 50, 28, 51, 11, 0, 0, 0, 11, 54, -1, 24, 2, 0, 3, 1, 4, 1, 5, 0, 6, 29, 7, 3, 8, 30, 12, 6, 13, 31, 14, 18, 15, 9, 16, 10, 17, 11, 18, 1, 19, 3, 20, 9, 21, 9, 22, 10, 23, 9, 24, 0, 25, 0, 26, 2, 27, 3, 9, 19, 0, 16, 0, 28, 28, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 32, 29, 33, 30, 0, 31, 2, 32, 9, 33, 9, 34, 6, 35, 6, 36, 10, 37, 15, 38, 9, 39, 16, 0, 16, 0, 41, 40, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 42, 31, 43, 9, 0, 0, 0, 48, 55, -1, 10, 2, 0, 3, 1, 4, 1, 5, 0, 6, 34, 7, 3, 8, 4, 49, 28, 50, 35, 51, 3, 0, 0, 0, 48, 56, -1, 10, 2, 0, 3, 1, 4, 1, 5, 0, 6, 36, 7, 3, 8, 4, 49, 23, 50, 37, 51, 3, 0 </int_array>
+ <string> "conns" </string>
+ <int_array len="0"> </int_array>
+ </dictionary>
+
+ </main_resource>
+</resource_file> \ No newline at end of file
diff --git a/demos/2d/rubegoldberg/platform.xml b/demos/2d/rubegoldberg/platform.xml
new file mode 100644
index 000000000..0cc8f4b13
--- /dev/null
+++ b/demos/2d/rubegoldberg/platform.xml
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<resource_file type="PackedScene" subresource_count="3" version="0.99" version_name="Godot Engine v0.99.3735-pre-beta">
+ <ext_resource path="res://art/platform.*" type="ImageTexture"></ext_resource>
+ <resource type="RectangleShape2D" path="local://1">
+ <real name="custom_solver_bias"> 0 </real>
+ <vector2 name="extents"> 128, 16 </vector2>
+
+ </resource>
+ <main_resource>
+ <dictionary name="_bundled" shared="false">
+ <string> "names" </string>
+ <string_array len="34">
+ <string> "platform" </string>
+ <string> "StaticBody2D" </string>
+ <string> "visibility/visible" </string>
+ <string> "visibility/opacity" </string>
+ <string> "visibility/self_opacity" </string>
+ <string> "visibility/on_top" </string>
+ <string> "transform/pos" </string>
+ <string> "transform/rot" </string>
+ <string> "transform/scale" </string>
+ <string> "shape_count" </string>
+ <string> "shapes/0/shape" </string>
+ <string> "shapes/0/transform" </string>
+ <string> "shapes/0/trigger" </string>
+ <string> "simulate_motion" </string>
+ <string> "constant_linear_velocity" </string>
+ <string> "constant_angular_velocity" </string>
+ <string> "friction" </string>
+ <string> "bounce" </string>
+ <string> "__meta__" </string>
+ <string> "Sprite" </string>
+ <string> "texture" </string>
+ <string> "centered" </string>
+ <string> "offset" </string>
+ <string> "flip_h" </string>
+ <string> "flip_v" </string>
+ <string> "vframes" </string>
+ <string> "hframes" </string>
+ <string> "frame" </string>
+ <string> "modulate" </string>
+ <string> "region" </string>
+ <string> "region_rect" </string>
+ <string> "CollisionShape2D" </string>
+ <string> "shape" </string>
+ <string> "trigger" </string>
+ </string_array>
+ <string> "version" </string>
+ <int> 1 </int>
+ <string> "conn_count" </string>
+ <int> 0 </int>
+ <string> "node_count" </string>
+ <int> 3 </int>
+ <string> "variants" </string>
+ <array len="14" shared="false">
+ <bool> True </bool>
+ <real> 1 </real>
+ <vector2> 0, 0 </vector2>
+ <real> 0 </real>
+ <vector2> 1, 1 </vector2>
+ <int> 1 </int>
+ <resource resource_type="RectangleShape2D" path="local://1"> </resource>
+ <matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
+ <bool> False </bool>
+ <dictionary shared="false">
+ <string> "__editor_plugin_states__" </string>
+ <dictionary shared="false">
+ <string> "2D" </string>
+ <dictionary shared="false">
+ <string> "pixel_snap" </string>
+ <bool> False </bool>
+ <string> "zoom" </string>
+ <real> 1 </real>
+ <string> "ofs" </string>
+ <vector2> -135, -114 </vector2>
+ </dictionary>
+ <string> "3D" </string>
+ <dictionary shared="false">
+ <string> "zfar" </string>
+ <real> 500 </real>
+ <string> "fov" </string>
+ <real> 45 </real>
+ <string> "viewports" </string>
+ <array len="4" shared="false">
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ </dictionary>
+ </array>
+ <string> "viewport_mode" </string>
+ <int> 1 </int>
+ <string> "default_light" </string>
+ <bool> True </bool>
+ <string> "show_grid" </string>
+ <bool> True </bool>
+ <string> "show_origin" </string>
+ <bool> True </bool>
+ <string> "znear" </string>
+ <real> 0.1 </real>
+ </dictionary>
+ </dictionary>
+ <string> "__editor_run_settings__" </string>
+ <dictionary shared="false">
+ <string> "custom_args" </string>
+ <string> "-l $scene" </string>
+ <string> "run_mode" </string>
+ <int> 0 </int>
+ </dictionary>
+ <string> "__editor_plugin_screen__" </string>
+ <string> "2D" </string>
+ </dictionary>
+ <resource resource_type="ImageTexture" path="res://art/platform.*"> </resource>
+ <int> 0 </int>
+ <color> 1, 1, 1, 1 </color>
+ <rect2> 0, 0, 0, 0 </rect2>
+ </array>
+ <string> "nodes" </string>
+ <int_array len="109"> -1, -1, 1, 0, -1, 17, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 8, 13, 8, 14, 2, 15, 3, 16, 1, 17, 3, 18, 9, 0, 0, 0, 19, 19, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 20, 10, 21, 0, 22, 2, 23, 8, 24, 8, 25, 5, 26, 5, 27, 11, 28, 12, 29, 8, 30, 13, 0, 0, 0, 31, 31, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 32, 6, 33, 8, 0 </int_array>
+ <string> "conns" </string>
+ <int_array len="0"> </int_array>
+ </dictionary>
+
+ </main_resource>
+</resource_file> \ No newline at end of file
diff --git a/demos/2d/rubegoldberg/rubegoldberg.xml b/demos/2d/rubegoldberg/rubegoldberg.xml
new file mode 100644
index 000000000..edb6dda0e
--- /dev/null
+++ b/demos/2d/rubegoldberg/rubegoldberg.xml
@@ -0,0 +1,190 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<resource_file type="PackedScene" subresource_count="7" version="0.99" version_name="Godot Engine v0.99.3735-pre-beta">
+ <ext_resource path="res://platform.*" type="PackedScene"></ext_resource>
+ <ext_resource path="res://ball.*" type="PackedScene"></ext_resource>
+ <ext_resource path="res://domino.*" type="PackedScene"></ext_resource>
+ <ext_resource path="res://seesaw.*" type="PackedScene"></ext_resource>
+ <ext_resource path="res://box.*" type="PackedScene"></ext_resource>
+ <ext_resource path="res://pendulum.*" type="PackedScene"></ext_resource>
+ <main_resource>
+ <dictionary name="_bundled" shared="false">
+ <string> "names" </string>
+ <string_array len="29">
+ <string> "Node" </string>
+ <string> "__meta__" </string>
+ <string> "platform" </string>
+ <string> "StaticBody2D" </string>
+ <string> "transform/pos" </string>
+ <string> "transform/rot" </string>
+ <string> "platform 2" </string>
+ <string> "platform 3" </string>
+ <string> "Ball" </string>
+ <string> "RigidBody2D" </string>
+ <string> "domino" </string>
+ <string> "domino 2" </string>
+ <string> "domino 4" </string>
+ <string> "platform 4" </string>
+ <string> "platform 5" </string>
+ <string> "transform/scale" </string>
+ <string> "Ball 2" </string>
+ <string> "platform 6" </string>
+ <string> "platform 7" </string>
+ <string> "platform 8" </string>
+ <string> "SeeSaw" </string>
+ <string> "Node2D" </string>
+ <string> "box" </string>
+ <string> "pendulum" </string>
+ <string> "pendulum 2" </string>
+ <string> "pendulum 3" </string>
+ <string> "pendulum 4" </string>
+ <string> "Ball 5" </string>
+ <string> "velocity/linear" </string>
+ </string_array>
+ <string> "version" </string>
+ <int> 1 </int>
+ <string> "conn_count" </string>
+ <int> 0 </int>
+ <string> "node_count" </string>
+ <int> 21 </int>
+ <string> "variants" </string>
+ <array len="33" shared="false">
+ <dictionary shared="false">
+ <string> "__editor_plugin_states__" </string>
+ <dictionary shared="false">
+ <string> "2D" </string>
+ <dictionary shared="false">
+ <string> "pixel_snap" </string>
+ <bool> False </bool>
+ <string> "zoom" </string>
+ <real> 0.598737 </real>
+ <string> "ofs" </string>
+ <vector2> -15.4883, -75.0379 </vector2>
+ </dictionary>
+ <string> "3D" </string>
+ <dictionary shared="false">
+ <string> "zfar" </string>
+ <real> 500 </real>
+ <string> "fov" </string>
+ <real> 45 </real>
+ <string> "viewports" </string>
+ <array len="4" shared="false">
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ </dictionary>
+ </array>
+ <string> "viewport_mode" </string>
+ <int> 1 </int>
+ <string> "default_light" </string>
+ <bool> True </bool>
+ <string> "show_grid" </string>
+ <bool> True </bool>
+ <string> "show_origin" </string>
+ <bool> True </bool>
+ <string> "znear" </string>
+ <real> 0.1 </real>
+ </dictionary>
+ </dictionary>
+ <string> "__editor_run_settings__" </string>
+ <dictionary shared="false">
+ <string> "custom_args" </string>
+ <string> "-l $scene" </string>
+ <string> "run_mode" </string>
+ <int> 0 </int>
+ </dictionary>
+ <string> "__editor_plugin_screen__" </string>
+ <string> "2D" </string>
+ </dictionary>
+ <resource resource_type="PackedScene" path="res://platform.*"> </resource>
+ <vector2> 116.881, 145.589 </vector2>
+ <real> -20.87962 </real>
+ <vector2> 336.29, 264.52 </vector2>
+ <vector2> 526.99, 264.52 </vector2>
+ <resource resource_type="PackedScene" path="res://ball.*"> </resource>
+ <vector2> 76.0801, 67.2141 </vector2>
+ <resource resource_type="PackedScene" path="res://domino.*"> </resource>
+ <vector2> 262.764, 182.008 </vector2>
+ <vector2> 356.951, 182.008 </vector2>
+ <vector2> 448.834, 179.291 </vector2>
+ <vector2> 772.686, 345.917 </vector2>
+ <real> 76.771606 </real>
+ <vector2> 640.041, 335.365 </vector2>
+ <real> 90 </real>
+ <vector2> 0.5, 1 </vector2>
+ <vector2> 616.342, 214.247 </vector2>
+ <vector2> 679.231, 588.598 </vector2>
+ <vector2> 424.491, 588.598 </vector2>
+ <vector2> 185.655, 588.598 </vector2>
+ <resource resource_type="PackedScene" path="res://seesaw.*"> </resource>
+ <vector2> 602.935, 554.501 </vector2>
+ <resource resource_type="PackedScene" path="res://box.*"> </resource>
+ <vector2> 476.002, 509.406 </vector2>
+ <real> 21.737282 </real>
+ <resource resource_type="PackedScene" path="res://pendulum.*"> </resource>
+ <vector2> 391.607, 305.444 </vector2>
+ <vector2> 343.172, 303.774 </vector2>
+ <vector2> 288.056, 303.774 </vector2>
+ <vector2> 236.28, 303.774 </vector2>
+ <vector2> 116.165, 526.515 </vector2>
+ <vector2> 0, -200 </vector2>
+ </array>
+ <string> "nodes" </string>
+ <int_array len="201"> -1, -1, 0, 0, -1, 1, 1, 0, 0, 0, 0, 3, 2, 1, 2, 4, 2, 5, 3, 0, 0, 0, 3, 6, 1, 1, 4, 4, 0, 0, 0, 3, 7, 1, 1, 4, 5, 0, 0, 0, 9, 8, 6, 1, 4, 7, 0, 0, 0, 9, 10, 8, 1, 4, 9, 0, 0, 0, 9, 11, 8, 1, 4, 10, 0, 0, 0, 9, 12, 8, 1, 4, 11, 0, 0, 0, 3, 13, 1, 2, 4, 12, 5, 13, 0, 0, 0, 3, 14, 1, 3, 4, 14, 5, 15, 15, 16, 0, 0, 0, 9, 16, 6, 1, 4, 17, 0, 0, 0, 3, 17, 1, 1, 4, 18, 0, 0, 0, 3, 18, 1, 1, 4, 19, 0, 0, 0, 3, 19, 1, 1, 4, 20, 0, 0, 0, 21, 20, 21, 1, 4, 22, 0, 0, 0, 9, 22, 23, 2, 4, 24, 5, 25, 0, 0, 0, 21, 23, 26, 1, 4, 27, 0, 0, 0, 21, 24, 26, 1, 4, 28, 0, 0, 0, 21, 25, 26, 1, 4, 29, 0, 0, 0, 21, 26, 26, 1, 4, 30, 0, 0, 0, 9, 27, 6, 2, 4, 31, 28, 32, 0 </int_array>
+ <string> "conns" </string>
+ <int_array len="0"> </int_array>
+ </dictionary>
+
+ </main_resource>
+</resource_file> \ No newline at end of file
diff --git a/demos/2d/rubegoldberg/seesaw.xml b/demos/2d/rubegoldberg/seesaw.xml
new file mode 100644
index 000000000..30edbe916
--- /dev/null
+++ b/demos/2d/rubegoldberg/seesaw.xml
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<resource_file type="PackedScene" subresource_count="5" version="0.99" version_name="Godot Engine v0.99.2864-pre-beta">
+ <ext_resource path="res://art/seesaw_top.png" type="Texture"></ext_resource>
+ <ext_resource path="res://art/seesaw_base.png" type="Texture"></ext_resource>
+ <resource type="ConcavePolygonShape2D" path="local://1">
+ <string name="resource/name"> "" </string>
+ <real name="custom_solver_bias"> 0 </real>
+ <vector2_array name="segments" len="6"> -32.6231, 32.0838, -1.28218, -31.1383, -1.28218, -31.1383, 33.8412, 33.1645, 33.8412, 33.1645, -32.6231, 32.0838 </vector2_array>
+ <resource name="script/script"></resource>
+ </resource>
+ <resource type="ConvexPolygonShape2D" path="local://2">
+ <string name="resource/name"> "" </string>
+ <real name="custom_solver_bias"> 0 </real>
+ <vector2_array name="points" len="4"> -99.0874, 7.76759, -125.025, -8.98358, 125.162, -8.44321, 99.2248, 7.22723 </vector2_array>
+ <resource name="script/script"></resource>
+ </resource>
+ <main_resource>
+ <string name="resource/name"> "" </string>
+ <dictionary name="_bundled">
+ <string> "names" </string>
+ <string_array len="58">
+ <string> "SeeSaw" </string>
+ <string> "Node2D" </string>
+ <string> "process/process" </string>
+ <string> "process/fixed_process" </string>
+ <string> "process/input" </string>
+ <string> "process/unhandled_input" </string>
+ <string> "process/mode" </string>
+ <string> "visibility/visible" </string>
+ <string> "visibility/toplevel" </string>
+ <string> "visibility/opacity" </string>
+ <string> "visibility/self_opacity" </string>
+ <string> "visibility/on_top" </string>
+ <string> "visibility/blend_mode" </string>
+ <string> "transform/notify" </string>
+ <string> "transform/pos" </string>
+ <string> "transform/rot" </string>
+ <string> "transform/scale" </string>
+ <string> "script/script" </string>
+ <string> "__meta__" </string>
+ <string> "Sprite" </string>
+ <string> "texture" </string>
+ <string> "centered" </string>
+ <string> "offset" </string>
+ <string> "flip_h" </string>
+ <string> "flip_v" </string>
+ <string> "vframes" </string>
+ <string> "hframes" </string>
+ <string> "frame" </string>
+ <string> "modulate" </string>
+ <string> "region" </string>
+ <string> "region_rect" </string>
+ <string> "StaticBody2D" </string>
+ <string> "shape_count" </string>
+ <string> "shapes/0/shape" </string>
+ <string> "shapes/0/transform" </string>
+ <string> "simulate_motion" </string>
+ <string> "constant_linear_velocity" </string>
+ <string> "constant_angular_velocity" </string>
+ <string> "CollisionPolygon2D" </string>
+ <string> "build_mode" </string>
+ <string> "polygon" </string>
+ <string> "RigidBody2D" </string>
+ <string> "mode" </string>
+ <string> "mass" </string>
+ <string> "friction" </string>
+ <string> "bounce" </string>
+ <string> "custom_integrator" </string>
+ <string> "continuous_cd" </string>
+ <string> "contacts_reported" </string>
+ <string> "contact_monitor" </string>
+ <string> "active" </string>
+ <string> "can_sleep" </string>
+ <string> "velocity/linear" </string>
+ <string> "velocity/angular" </string>
+ <string> "PinJoint2D" </string>
+ <string> "node_a" </string>
+ <string> "node_b" </string>
+ <string> "bias/bias" </string>
+ </string_array>
+ <string> "version" </string>
+ <int> 1 </int>
+ <string> "conn_count" </string>
+ <int> 0 </int>
+ <string> "node_count" </string>
+ <int> 8 </int>
+ <string> "variants" </string>
+ <array len="25">
+ <bool> False </bool>
+ <int> 0 </int>
+ <bool> True </bool>
+ <real> 1 </real>
+ <vector2> 0, 0 </vector2>
+ <real> 0 </real>
+ <vector2> 1, 1 </vector2>
+ <resource name=""></resource> <dictionary>
+ <string> "__editor_plugin_states__" </string>
+ <dictionary>
+ <string> "2D" </string>
+ <dictionary>
+ <string> "zoom" </string>
+ <real> 1.670183 </real>
+ <string> "ofs" </string>
+ <vector2> -277.779, -292.484 </vector2>
+ </dictionary>
+ <string> "3D" </string>
+ <dictionary>
+ <string> "zfar" </string>
+ <real> 500 </real>
+ <string> "fov" </string>
+ <real> 45 </real>
+ <string> "window_mode" </string>
+ <int> 0 </int>
+ <string> "window_0" </string>
+ <dictionary>
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "default_light" </string>
+ <bool> True </bool>
+ <string> "x_rot" </string>
+ <real> 0.337 </real>
+ <string> "y_rot" </string>
+ <real> -0.575 </real>
+ <string> "show_grid" </string>
+ <bool> True </bool>
+ <string> "show_origin" </string>
+ <bool> True </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ </dictionary>
+ <string> "znear" </string>
+ <real> 0.1 </real>
+ </dictionary>
+ </dictionary>
+ <string> "__editor_run_settings__" </string>
+ <dictionary>
+ <string> "custom_args" </string>
+ <string> "-l $scene" </string>
+ <string> "run_mode" </string>
+ <int> 0 </int>
+ </dictionary>
+ <string> "__editor_plugin_screen__" </string>
+ <string> "2D" </string>
+ </dictionary>
+ <resource resource_type="Texture" path="res://art/seesaw_base.png"> </resource>
+ <int> 1 </int>
+ <color> 1, 1, 1, 1 </color>
+ <rect2> 0, 0, 0, 0 </rect2>
+ <resource resource_type="ConcavePolygonShape2D" path="local://1"> </resource>
+ <matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
+ <vector2_array len="3"> -32.6231, 32.0838, -1.28218, -31.1383, 33.8412, 33.1645 </vector2_array>
+ <vector2> 1.19748, -29.9368 </vector2>
+ <real> 16.223282 </real>
+ <resource resource_type="ConvexPolygonShape2D" path="local://2"> </resource>
+ <vector2> 1, 0.5 </vector2>
+ <resource resource_type="Texture" path="res://art/seesaw_top.png"> </resource>
+ <vector2_array len="4"> -125.025, -8.98358, 125.162, -8.44321, 99.2248, 7.22723, -99.0874, 7.76759 </vector2_array>
+ <vector2> 0, -31.1343 </vector2>
+ <node_path> "../RigidBody2D" </node_path>
+ <node_path> "../Sprite/StaticBody2D" </node_path>
+ </array>
+ <string> "nodes" </string>
+ <int_array len="414"> -1, -1, 1, 0, -1, 17, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 0, 14, 4, 15, 5, 16, 6, 17, 7, 18, 8, 0, 0, 0, 19, 19, -1, 27, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 0, 14, 4, 15, 5, 16, 6, 20, 9, 21, 2, 22, 4, 23, 0, 24, 0, 25, 10, 26, 10, 27, 1, 28, 11, 29, 0, 30, 12, 17, 7, 0, 1, 0, 31, 31, -1, 22, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 2, 14, 4, 15, 5, 16, 6, 32, 10, 33, 13, 34, 14, 35, 0, 36, 4, 37, 5, 17, 7, 0, 2, 0, 38, 38, -1, 18, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 2, 14, 4, 15, 5, 16, 6, 39, 1, 40, 15, 17, 7, 0, 0, 0, 41, 41, -1, 31, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 2, 14, 16, 15, 17, 16, 6, 32, 10, 33, 18, 34, 14, 42, 1, 43, 3, 44, 3, 45, 5, 46, 0, 47, 0, 48, 1, 49, 0, 50, 2, 51, 2, 52, 4, 53, 5, 17, 7, 0, 4, 0, 19, 19, -1, 27, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 0, 14, 4, 15, 5, 16, 19, 20, 20, 21, 2, 22, 4, 23, 0, 24, 0, 25, 10, 26, 10, 27, 1, 28, 11, 29, 0, 30, 12, 17, 7, 0, 4, 0, 38, 38, -1, 18, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 2, 14, 4, 15, 5, 16, 6, 39, 1, 40, 21, 17, 7, 0, 0, 0, 54, 54, -1, 19, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 0, 14, 22, 15, 5, 16, 6, 55, 23, 56, 24, 57, 5, 17, 7, 0 </int_array>
+ <string> "conns" </string>
+ <int_array len="0"> </int_array>
+ </dictionary>
+ <resource name="script/script"></resource>
+ </main_resource>
+</resource_file> \ No newline at end of file