summaryrefslogtreecommitdiff
path: root/demos
diff options
context:
space:
mode:
Diffstat (limited to 'demos')
-rw-r--r--demos/2d/area_input/box_area.pngbin0 -> 1246 bytes
-rw-r--r--demos/2d/area_input/circle_area.pngbin0 -> 3030 bytes
-rw-r--r--demos/2d/area_input/engine.cfg5
-rw-r--r--demos/2d/area_input/icon.pngbin0 -> 3416 bytes
-rw-r--r--demos/2d/area_input/input.gd16
-rw-r--r--demos/2d/area_input/input.scnbin0 -> 2886 bytes
-rw-r--r--demos/2d/dynamic_collision_shapes/ball.gd21
-rw-r--r--demos/2d/dynamic_collision_shapes/ball.pngbin0 -> 321 bytes
-rw-r--r--demos/2d/dynamic_collision_shapes/ball.scnbin0 -> 1898 bytes
-rw-r--r--demos/2d/dynamic_collision_shapes/box.pngbin0 -> 253 bytes
-rw-r--r--demos/2d/dynamic_collision_shapes/circle.pngbin0 -> 889 bytes
-rw-r--r--demos/2d/dynamic_collision_shapes/dynamic_colobjs.gd23
-rw-r--r--demos/2d/dynamic_collision_shapes/dynamic_colobjs.scnbin0 -> 4348 bytes
-rw-r--r--demos/2d/dynamic_collision_shapes/engine.cfg5
-rw-r--r--demos/2d/dynamic_collision_shapes/icon.pngbin0 -> 1563 bytes
-rw-r--r--demos/2d/dynamic_collision_shapes/poly.pngbin0 -> 1638 bytes
-rw-r--r--demos/2d/fog_of_war/engine.cfg12
-rw-r--r--demos/2d/fog_of_war/floor.pngbin0 -> 572 bytes
-rw-r--r--demos/2d/fog_of_war/fog.gd86
-rw-r--r--demos/2d/fog_of_war/fog.pngbin0 -> 31448 bytes
-rw-r--r--demos/2d/fog_of_war/fog.scnbin0 -> 3714 bytes
-rw-r--r--demos/2d/fog_of_war/fog.xml29
-rw-r--r--demos/2d/fog_of_war/icon.pngbin0 -> 8681 bytes
-rw-r--r--demos/2d/fog_of_war/tile_edit.scnbin0 -> 1443 bytes
-rw-r--r--demos/2d/fog_of_war/troll.gd43
-rw-r--r--demos/2d/fog_of_war/troll.pngbin0 -> 7246 bytes
-rw-r--r--demos/2d/fog_of_war/troll.scnbin0 -> 1839 bytes
-rw-r--r--demos/2d/hdr/beach_cave.gd26
-rw-r--r--demos/2d/hdr/beach_cave.scnbin0 -> 2972 bytes
-rw-r--r--demos/2d/hdr/engine.cfg14
-rw-r--r--demos/2d/hdr/icon.pngbin0 -> 3962 bytes
-rw-r--r--demos/2d/hdr/ocean_beach.pngbin0 -> 443558 bytes
-rw-r--r--demos/2d/hdr/ocean_beach.png.flags1
-rw-r--r--demos/2d/hdr/ocean_cave.pngbin0 -> 745215 bytes
-rw-r--r--demos/2d/hdr/ocean_cave.png.flags1
-rw-r--r--demos/2d/hexamap/.fscache33
-rw-r--r--demos/2d/isometric/bastiles.resbin1840 -> 2918 bytes
-rw-r--r--demos/2d/isometric/dungeon.scnbin4582 -> 8743 bytes
-rw-r--r--demos/2d/isometric/tileset.scnbin2305 -> 2565 bytes
-rw-r--r--demos/2d/isometric/troll.scnbin1839 -> 2100 bytes
-rw-r--r--demos/2d/isometric_light/character_shder.resbin0 -> 1152 bytes
-rw-r--r--demos/2d/isometric_light/column.scnbin0 -> 1909 bytes
-rw-r--r--demos/2d/isometric_light/cubio.gd96
-rw-r--r--demos/2d/isometric_light/cubio.scnbin0 -> 7006 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0001.pngbin0 -> 7163 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0002.pngbin0 -> 7182 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0003.pngbin0 -> 7173 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0004.pngbin0 -> 7174 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0005.pngbin0 -> 7207 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0006.pngbin0 -> 7302 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0007.pngbin0 -> 7296 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0008.pngbin0 -> 7332 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0009.pngbin0 -> 7320 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0010.pngbin0 -> 7311 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0011.pngbin0 -> 7359 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0012.pngbin0 -> 7392 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0013.pngbin0 -> 7398 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0014.pngbin0 -> 7399 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0015.pngbin0 -> 7340 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0016.pngbin0 -> 7278 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0017.pngbin0 -> 7342 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0018.pngbin0 -> 7370 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0019.pngbin0 -> 7379 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0020.pngbin0 -> 7432 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0021.pngbin0 -> 7391 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0022.pngbin0 -> 7381 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0023.pngbin0 -> 7330 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0024.pngbin0 -> 7363 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0025.pngbin0 -> 7368 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0026.pngbin0 -> 7356 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0027.pngbin0 -> 7358 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0028.pngbin0 -> 7294 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0029.pngbin0 -> 7342 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0030.pngbin0 -> 7402 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0031.pngbin0 -> 7442 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0032.pngbin0 -> 7409 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0033.pngbin0 -> 7407 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0034.pngbin0 -> 7389 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0035.pngbin0 -> 7351 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0036.pngbin0 -> 7348 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0037.pngbin0 -> 7356 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0038.pngbin0 -> 7318 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0039.pngbin0 -> 7366 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0040.pngbin0 -> 7385 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0041.pngbin0 -> 7400 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0042.pngbin0 -> 7397 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0043.pngbin0 -> 7363 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0044.pngbin0 -> 7377 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0045.pngbin0 -> 7368 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0046.pngbin0 -> 7346 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0047.pngbin0 -> 7333 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0048.pngbin0 -> 7305 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0049.pngbin0 -> 7328 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0050.pngbin0 -> 7319 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0051.pngbin0 -> 7256 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0052.pngbin0 -> 7287 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0053.pngbin0 -> 7236 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0054.pngbin0 -> 7182 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0055.pngbin0 -> 7169 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0056.pngbin0 -> 7166 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0057.pngbin0 -> 7146 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0058.pngbin0 -> 7174 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0059.pngbin0 -> 7163 bytes
-rw-r--r--demos/2d/isometric_light/cubio/idle0060.pngbin0 -> 7163 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-b-0001.pngbin0 -> 7027 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-b-0002.pngbin0 -> 7234 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-b-0003.pngbin0 -> 7658 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-b-0004.pngbin0 -> 7999 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-b-0005.pngbin0 -> 8086 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-b-0006.pngbin0 -> 8004 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-b-0007.pngbin0 -> 7759 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-b-0008.pngbin0 -> 7485 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-b-0009.pngbin0 -> 7066 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-b-0010.pngbin0 -> 6925 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-b-0011.pngbin0 -> 7003 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-b-0012.pngbin0 -> 7316 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-b-0013.pngbin0 -> 7607 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-b-0014.pngbin0 -> 7924 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-b-0015.pngbin0 -> 8000 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-b-0016.pngbin0 -> 8025 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-b-0017.pngbin0 -> 7918 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-b-0018.pngbin0 -> 7532 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-b-0019.pngbin0 -> 7247 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-b-0020.pngbin0 -> 7035 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-bl-0001.pngbin0 -> 7097 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-bl-0002.pngbin0 -> 7074 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-bl-0003.pngbin0 -> 7273 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-bl-0004.pngbin0 -> 7778 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-bl-0005.pngbin0 -> 7717 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-bl-0006.pngbin0 -> 8142 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-bl-0007.pngbin0 -> 8300 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-bl-0008.pngbin0 -> 8653 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-bl-0009.pngbin0 -> 8846 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-bl-0010.pngbin0 -> 8824 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-bl-0011.pngbin0 -> 8848 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-bl-0012.pngbin0 -> 8649 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-bl-0013.pngbin0 -> 8695 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-bl-0014.pngbin0 -> 8435 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-bl-0015.pngbin0 -> 8226 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-bl-0016.pngbin0 -> 7895 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-bl-0017.pngbin0 -> 7712 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-bl-0018.pngbin0 -> 7103 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-bl-0019.pngbin0 -> 7094 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-bl-0020.pngbin0 -> 7051 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-l-0001.pngbin0 -> 8257 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-l-0002.pngbin0 -> 7883 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-l-0003.pngbin0 -> 6680 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-l-0004.pngbin0 -> 6278 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-l-0005.pngbin0 -> 6348 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-l-0006.pngbin0 -> 5629 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-l-0007.pngbin0 -> 6754 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-l-0008.pngbin0 -> 7612 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-l-0009.pngbin0 -> 8044 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-l-0010.pngbin0 -> 8013 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-l-0011.pngbin0 -> 7917 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-l-0012.pngbin0 -> 7692 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-l-0013.pngbin0 -> 6778 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-l-0014.pngbin0 -> 6176 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-l-0015.pngbin0 -> 6263 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-l-0016.pngbin0 -> 6004 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-l-0017.pngbin0 -> 6483 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-l-0018.pngbin0 -> 7276 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-l-0019.pngbin0 -> 7899 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-l-0020.pngbin0 -> 8119 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-u-0001.pngbin0 -> 7095 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-u-0002.pngbin0 -> 7064 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-u-0003.pngbin0 -> 6854 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-u-0004.pngbin0 -> 6801 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-u-0005.pngbin0 -> 6900 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-u-0006.pngbin0 -> 7017 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-u-0007.pngbin0 -> 7128 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-u-0008.pngbin0 -> 7065 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-u-0009.pngbin0 -> 7000 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-u-0010.pngbin0 -> 6980 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-u-0011.pngbin0 -> 6978 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-u-0012.pngbin0 -> 7139 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-u-0013.pngbin0 -> 7191 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-u-0014.pngbin0 -> 7119 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-u-0015.pngbin0 -> 7051 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-u-0016.pngbin0 -> 6995 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-u-0017.pngbin0 -> 6832 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-u-0018.pngbin0 -> 6962 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-u-0019.pngbin0 -> 7049 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-u-0020.pngbin0 -> 7067 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-ul-0001.pngbin0 -> 8202 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-ul-0002.pngbin0 -> 8074 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-ul-0003.pngbin0 -> 7716 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-ul-0004.pngbin0 -> 7587 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-ul-0005.pngbin0 -> 7383 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-ul-0006.pngbin0 -> 7107 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-ul-0007.pngbin0 -> 6671 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-ul-0008.pngbin0 -> 6847 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-ul-0009.pngbin0 -> 6892 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-ul-0010.pngbin0 -> 6858 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-ul-0011.pngbin0 -> 7067 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-ul-0012.pngbin0 -> 6985 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-ul-0013.pngbin0 -> 6600 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-ul-0014.pngbin0 -> 7104 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-ul-0015.pngbin0 -> 7320 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-ul-0016.pngbin0 -> 7478 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-ul-0017.pngbin0 -> 7736 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-ul-0018.pngbin0 -> 7960 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-ul-0019.pngbin0 -> 7982 bytes
-rw-r--r--demos/2d/isometric_light/cubio/norm-ul-0020.pngbin0 -> 8137 bytes
-rw-r--r--demos/2d/isometric_light/energy.pngbin0 -> 6968 bytes
-rw-r--r--demos/2d/isometric_light/engine.cfg20
-rw-r--r--demos/2d/isometric_light/faceColor.pngbin0 -> 47941 bytes
-rw-r--r--demos/2d/isometric_light/faceMask.pngbin0 -> 3106 bytes
-rw-r--r--demos/2d/isometric_light/faceNormal.pngbin0 -> 54844 bytes
-rw-r--r--demos/2d/isometric_light/fire.pngbin0 -> 8116 bytes
-rw-r--r--demos/2d/isometric_light/floor_shader.resbin0 -> 1027 bytes
-rw-r--r--demos/2d/isometric_light/icon.pngbin0 -> 7675 bytes
-rw-r--r--demos/2d/isometric_light/light2.pngbin0 -> 3500 bytes
-rw-r--r--demos/2d/isometric_light/map.gd18
-rw-r--r--demos/2d/isometric_light/map.scnbin0 -> 8661 bytes
-rw-r--r--demos/2d/isometric_light/shadow_blob.pngbin0 -> 884 bytes
-rw-r--r--demos/2d/isometric_light/shoot.gd27
-rw-r--r--demos/2d/isometric_light/shoot.scnbin0 -> 4561 bytes
-rw-r--r--demos/2d/isometric_light/shoot_halo.pngbin0 -> 91312 bytes
-rw-r--r--demos/2d/isometric_light/tileset.resbin0 -> 2779 bytes
-rw-r--r--demos/2d/isometric_light/tileset_scene.scnbin0 -> 4812 bytes
-rw-r--r--demos/2d/isometric_light/torch.scnbin0 -> 4416 bytes
-rw-r--r--demos/2d/isometric_light/torch_light.pngbin0 -> 1262 bytes
-rw-r--r--demos/2d/isometric_light/torch_shader.resbin0 -> 746 bytes
-rw-r--r--demos/2d/isometric_light/wall_shader.resbin0 -> 1687 bytes
-rw-r--r--demos/2d/kinematic_char/circle.pngbin0 -> 6107 bytes
-rw-r--r--demos/2d/kinematic_char/colworld.gd3
-rw-r--r--demos/2d/kinematic_char/colworld.scnbin5090 -> 7459 bytes
-rw-r--r--demos/2d/kinematic_char/engine.cfg7
-rw-r--r--demos/2d/kinematic_char/long_obstacle.pngbin0 -> 534 bytes
-rw-r--r--demos/2d/kinematic_char/player.gd45
-rw-r--r--demos/2d/kinematic_char/player.scnbin1511 -> 1728 bytes
-rw-r--r--demos/2d/light_mask/burano.pngbin0 -> 974437 bytes
-rw-r--r--demos/2d/light_mask/engine.cfg9
-rw-r--r--demos/2d/light_mask/icon.pngbin0 -> 6285 bytes
-rw-r--r--demos/2d/light_mask/lightmask.scnbin0 -> 2916 bytes
-rw-r--r--demos/2d/light_mask/splat.pngbin0 -> 18255 bytes
-rw-r--r--demos/2d/lights_shadows/bg.pngbin0 -> 294 bytes
-rw-r--r--demos/2d/lights_shadows/caster.pngbin0 -> 122 bytes
-rw-r--r--demos/2d/lights_shadows/engine.cfg16
-rw-r--r--demos/2d/lights_shadows/icon.pngbin0 -> 3988 bytes
-rw-r--r--demos/2d/lights_shadows/light.pngbin0 -> 243776 bytes
-rw-r--r--demos/2d/lights_shadows/light_shadows.scnbin0 -> 7181 bytes
-rw-r--r--demos/2d/lights_shadows/spot.pngbin0 -> 3699 bytes
-rw-r--r--demos/2d/lookat/arrow.pngbin0 -> 2528 bytes
-rw-r--r--demos/2d/lookat/engine.cfg5
-rw-r--r--demos/2d/lookat/icon.pngbin0 -> 1495 bytes
-rw-r--r--demos/2d/lookat/lookat.gd43
-rw-r--r--demos/2d/lookat/lookat.scnbin0 -> 1622 bytes
-rw-r--r--demos/2d/motion/car.pngbin0 -> 2086 bytes
-rw-r--r--demos/2d/motion/engine.cfg12
-rw-r--r--demos/2d/motion/icon.pngbin0 -> 2621 bytes
-rw-r--r--demos/2d/motion/motion.gd38
-rw-r--r--demos/2d/motion/motion.scnbin0 -> 2845 bytes
-rw-r--r--demos/2d/navpoly/agent.pngbin0 -> 2508 bytes
-rw-r--r--demos/2d/navpoly/engine.cfg12
-rw-r--r--demos/2d/navpoly/icon.pngbin0 -> 3642 bytes
-rw-r--r--demos/2d/navpoly/navigation.gd63
-rw-r--r--demos/2d/navpoly/navigation.scnbin0 -> 3456 bytes
-rw-r--r--demos/2d/navpoly/navigation2.scnbin0 -> 3564 bytes
-rw-r--r--demos/2d/navpoly/path.pngbin0 -> 309506 bytes
-rw-r--r--demos/2d/normalmaps/diffuse.jpgbin0 -> 535660 bytes
-rw-r--r--demos/2d/normalmaps/diffuse.pngbin0 -> 2392221 bytes
-rw-r--r--demos/2d/normalmaps/engine.cfg12
-rw-r--r--demos/2d/normalmaps/icon.pngbin0 -> 10402 bytes
-rw-r--r--demos/2d/normalmaps/light.pngbin0 -> 243776 bytes
-rw-r--r--demos/2d/normalmaps/normal.pngbin0 -> 2301245 bytes
-rw-r--r--demos/2d/normalmaps/normal_material.resbin0 -> 503 bytes
-rw-r--r--demos/2d/normalmaps/normalmap.scnbin0 -> 2450 bytes
-rw-r--r--demos/2d/platformer/coin.gd8
-rw-r--r--demos/2d/platformer/enemy.gd2
-rw-r--r--demos/2d/platformer/enemy.xml343
-rw-r--r--demos/2d/platformer/engine.cfg6
-rw-r--r--demos/2d/platformer/one_way_platform.pngbin0 -> 2287 bytes
-rw-r--r--demos/2d/platformer/one_way_platform.xml220
-rw-r--r--demos/2d/platformer/player.gd4
-rw-r--r--demos/2d/platformer/player.xml418
-rw-r--r--demos/2d/platformer/stage.xml981
-rw-r--r--demos/2d/platformer/tiles_demo.pngbin11736 -> 10066 bytes
-rw-r--r--demos/2d/platformer/tiles_demo.png.flags1
-rw-r--r--demos/2d/platformer/tileset.xml185
-rw-r--r--demos/2d/platformer/tileset_edit.xml142
-rw-r--r--demos/2d/polygon_path_finder/engine.cfg5
-rw-r--r--demos/2d/polygon_path_finder/icon.pngbin0 -> 712 bytes
-rw-r--r--demos/2d/polygon_path_finder/poly_with_holes.scnbin0 -> 2974 bytes
-rw-r--r--demos/2d/polygon_path_finder/polygonpathfinder.gd80
-rw-r--r--demos/2d/screen_space_shaders/art/burano.jpgbin0 -> 246589 bytes
-rw-r--r--demos/2d/screen_space_shaders/art/burano.pngbin0 -> 974437 bytes
-rw-r--r--demos/2d/screen_space_shaders/art/filmgrain.pngbin0 -> 290595 bytes
-rw-r--r--demos/2d/screen_space_shaders/art/filmgrain.png.flags1
-rw-r--r--demos/2d/screen_space_shaders/art/forest.pngbin0 -> 1199433 bytes
-rw-r--r--demos/2d/screen_space_shaders/art/mountains.pngbin0 -> 927435 bytes
-rw-r--r--demos/2d/screen_space_shaders/art/platformer.pngbin0 -> 44102 bytes
-rw-r--r--demos/2d/screen_space_shaders/art/vignette.pngbin0 -> 4075 bytes
-rw-r--r--demos/2d/screen_space_shaders/art/white.pngbin0 -> 174 bytes
-rw-r--r--demos/2d/screen_space_shaders/engine.cfg12
-rw-r--r--demos/2d/screen_space_shaders/icon.pngbin0 -> 7479 bytes
-rw-r--r--demos/2d/screen_space_shaders/screen_shaders.gd32
-rw-r--r--demos/2d/screen_space_shaders/screen_shaders.scnbin0 -> 5936 bytes
-rw-r--r--demos/2d/sdf_font/KaushanScript-Regular.otfbin0 -> 89168 bytes
-rw-r--r--demos/2d/sdf_font/engine.cfg5
-rw-r--r--demos/2d/sdf_font/font.fntbin0 -> 180332 bytes
-rw-r--r--demos/2d/sdf_font/icon.pngbin0 -> 3560 bytes
-rw-r--r--demos/2d/sdf_font/sdf.scnbin0 -> 2415 bytes
-rw-r--r--demos/2d/space_shooter/asteroid.gd49
-rw-r--r--demos/2d/space_shooter/asteroid.scnbin0 -> 4516 bytes
-rw-r--r--demos/2d/space_shooter/bg_gradient.pngbin0 -> 1572 bytes
-rw-r--r--demos/2d/space_shooter/big_star.pngbin0 -> 275 bytes
-rw-r--r--demos/2d/space_shooter/enemy1.gd37
-rw-r--r--demos/2d/space_shooter/enemy1.pngbin0 -> 7048 bytes
-rw-r--r--demos/2d/space_shooter/enemy1.scnbin0 -> 3759 bytes
-rw-r--r--demos/2d/space_shooter/enemy2.gd56
-rw-r--r--demos/2d/space_shooter/enemy2.pngbin0 -> 5676 bytes
-rw-r--r--demos/2d/space_shooter/enemy2.scnbin0 -> 3801 bytes
-rw-r--r--demos/2d/space_shooter/enemy_shot.gd32
-rw-r--r--demos/2d/space_shooter/enemy_shot.pngbin0 -> 330 bytes
-rw-r--r--demos/2d/space_shooter/enemy_shot.scnbin0 -> 3944 bytes
-rw-r--r--demos/2d/space_shooter/engine.cfg22
-rw-r--r--demos/2d/space_shooter/explosion.scnbin0 -> 1497 bytes
-rw-r--r--demos/2d/space_shooter/fire.pngbin0 -> 357 bytes
-rw-r--r--demos/2d/space_shooter/game_state.gd24
-rw-r--r--demos/2d/space_shooter/icon.pngbin0 -> 6931 bytes
-rw-r--r--demos/2d/space_shooter/level.scnbin0 -> 9185 bytes
-rw-r--r--demos/2d/space_shooter/level_tiles.resbin0 -> 720 bytes
-rw-r--r--demos/2d/space_shooter/level_tiles.scnbin0 -> 2168 bytes
-rw-r--r--demos/2d/space_shooter/main_menu.gd20
-rw-r--r--demos/2d/space_shooter/main_menu.scnbin0 -> 2402 bytes
-rw-r--r--demos/2d/space_shooter/meteorite.pngbin0 -> 6072 bytes
-rw-r--r--demos/2d/space_shooter/parallax.scnbin0 -> 3307 bytes
-rw-r--r--demos/2d/space_shooter/rail.gd25
-rw-r--r--demos/2d/space_shooter/ship.gd88
-rw-r--r--demos/2d/space_shooter/ship.pngbin0 -> 2815 bytes
-rw-r--r--demos/2d/space_shooter/ship.scnbin0 -> 6752 bytes
-rw-r--r--demos/2d/space_shooter/shoot.pngbin0 -> 222 bytes
-rw-r--r--demos/2d/space_shooter/shot.gd48
-rw-r--r--demos/2d/space_shooter/shot.scnbin0 -> 4079 bytes
-rw-r--r--demos/2d/space_shooter/small_star.pngbin0 -> 90 bytes
-rw-r--r--demos/2d/space_shooter/sound_explode.wavbin0 -> 75832 bytes
-rw-r--r--demos/2d/space_shooter/sound_shoot.wavbin0 -> 78888 bytes
-rw-r--r--demos/2d/space_shooter/tile.pngbin0 -> 810 bytes
-rw-r--r--demos/2d/splash/engine.cfg1
-rw-r--r--demos/2d/splash/icon.pngbin0 -> 7041 bytes
-rw-r--r--demos/2d/sprite_shaders/cubio.pngbin0 -> 26579 bytes
-rw-r--r--demos/2d/sprite_shaders/engine.cfg5
-rw-r--r--demos/2d/sprite_shaders/icon.pngbin0 -> 8209 bytes
-rw-r--r--demos/2d/sprite_shaders/sprite_shaders.scnbin0 -> 4079 bytes
-rw-r--r--demos/2d/tetris/grid.gd1
-rw-r--r--demos/2d/texscreen/OpenCV_Chessboard.pngbin0 -> 44884 bytes
-rw-r--r--demos/2d/texscreen/bubble.pngbin0 -> 18619 bytes
-rw-r--r--demos/2d/texscreen/bubbles.gd17
-rw-r--r--demos/2d/texscreen/bubbles.scnbin0 -> 1551 bytes
-rw-r--r--demos/2d/texscreen/burano.pngbin0 -> 974437 bytes
-rw-r--r--demos/2d/texscreen/engine.cfg12
-rw-r--r--demos/2d/texscreen/icon.pngbin0 -> 9245 bytes
-rw-r--r--demos/2d/texscreen/lens.gd37
-rw-r--r--demos/2d/texscreen/lens.scnbin0 -> 1805 bytes
-rw-r--r--demos/3d/kinematic_char/cubelib.resbin11431 -> 11532 bytes
-rw-r--r--demos/3d/kinematic_char/cubio.gd5
-rw-r--r--demos/3d/kinematic_char/level.scnbin15323 -> 15523 bytes
-rw-r--r--demos/3d/navmesh/icon.pngbin0 -> 4902 bytes
-rw-r--r--demos/3d/navmesh/navmesh.scnbin37856 -> 38129 bytes
-rw-r--r--demos/3d/platformer/bullet.scnbin5465 -> 6157 bytes
-rw-r--r--demos/3d/platformer/coin.scnbin6013 -> 6791 bytes
-rw-r--r--demos/3d/platformer/enemy.gd5
-rw-r--r--demos/3d/platformer/enemy.scnbin36976 -> 38594 bytes
-rw-r--r--demos/3d/platformer/player.gd6
-rw-r--r--demos/3d/platformer/stage.xml369
-rw-r--r--demos/3d/sat_test/engine.cfg1
-rw-r--r--demos/3d/sat_test/icon.pngbin0 -> 4628 bytes
-rw-r--r--demos/3d/shader_materials/shader_materials.scnbin5494 -> 6382 bytes
-rw-r--r--demos/3d/truck_town/engine.cfg2
-rw-r--r--demos/3d/truck_town/icon.pngbin0 -> 6878 bytes
-rw-r--r--demos/gui/drag_and_drop/drag_and_drop.scnbin0 -> 2594 bytes
-rw-r--r--demos/gui/drag_and_drop/drag_drop_script.gd24
-rw-r--r--demos/gui/drag_and_drop/engine.cfg5
-rw-r--r--demos/gui/drag_and_drop/icon.pngbin0 -> 806 bytes
-rw-r--r--demos/gui/input_mapping/controls.gd49
-rw-r--r--demos/gui/input_mapping/controls.scnbin0 -> 2686 bytes
-rw-r--r--demos/gui/input_mapping/engine.cfg18
-rw-r--r--demos/gui/input_mapping/icon.pngbin0 -> 1503 bytes
-rw-r--r--demos/gui/rich_text_bbcode/OFL.txt92
-rw-r--r--demos/gui/rich_text_bbcode/TitilliumWeb-Bold.ttfbin0 -> 59908 bytes
-rw-r--r--demos/gui/rich_text_bbcode/TitilliumWeb-BoldItalic.ttfbin0 -> 69796 bytes
-rw-r--r--demos/gui/rich_text_bbcode/TitilliumWeb-Italic.ttfbin0 -> 72416 bytes
-rw-r--r--demos/gui/rich_text_bbcode/TitilliumWeb-Regular.ttfbin0 -> 63752 bytes
-rw-r--r--demos/gui/rich_text_bbcode/engine.cfg5
-rw-r--r--demos/gui/rich_text_bbcode/icon.pngbin0 -> 4304 bytes
-rw-r--r--demos/gui/rich_text_bbcode/rich_text_bbcode.gd17
-rw-r--r--demos/gui/rich_text_bbcode/rich_text_bbcode.scnbin0 -> 2373 bytes
-rw-r--r--demos/gui/rich_text_bbcode/titilium-bold.fntbin0 -> 36224 bytes
-rw-r--r--demos/gui/rich_text_bbcode/titilium-bolditalic.fntbin0 -> 36814 bytes
-rw-r--r--demos/gui/rich_text_bbcode/titilium-italic.fntbin0 -> 35274 bytes
-rw-r--r--demos/gui/rich_text_bbcode/titilium-regular.fntbin0 -> 34511 bytes
-rw-r--r--demos/gui/rich_text_bbcode/unicorn_icon.pngbin0 -> 850 bytes
-rw-r--r--demos/gui/translation/controls.gd20
-rw-r--r--demos/gui/translation/controls.scnbin0 -> 2349 bytes
-rw-r--r--demos/gui/translation/engine.cfg10
-rw-r--r--demos/gui/translation/flag_japan.pngbin0 -> 1473 bytes
-rw-r--r--demos/gui/translation/flag_spain.pngbin0 -> 3048 bytes
-rw-r--r--demos/gui/translation/flag_uk.pngbin0 -> 6544 bytes
-rw-r--r--demos/gui/translation/icon.pngbin0 -> 2557 bytes
-rw-r--r--demos/gui/translation/main.gd42
-rw-r--r--demos/gui/translation/main.scnbin0 -> 2671 bytes
-rw-r--r--demos/gui/translation/noto.fntbin0 -> 9171 bytes
-rw-r--r--demos/gui/translation/notosans.otfbin0 -> 16426032 bytes
-rw-r--r--demos/gui/translation/text.csv3
-rw-r--r--demos/gui/translation/translations/text.en.xlbin0 -> 575 bytes
-rw-r--r--demos/gui/translation/translations/text.es.xlbin0 -> 579 bytes
-rw-r--r--demos/gui/translation/translations/text.ja.xlbin0 -> 595 bytes
-rw-r--r--demos/misc/autoload/global.gd38
-rw-r--r--demos/misc/instancing/engine.cfg1
-rw-r--r--demos/misc/instancing/icon.pngbin0 -> 3396 bytes
-rw-r--r--demos/misc/regex/engine.cfg5
-rw-r--r--demos/misc/regex/icon.pngbin0 -> 2215 bytes
-rw-r--r--demos/misc/regex/regex.gd24
-rw-r--r--demos/misc/regex/regex.scnbin0 -> 1793 bytes
-rw-r--r--demos/misc/scene_changer/engine.cfg4
-rw-r--r--demos/misc/scene_changer/scene_a.gd17
-rw-r--r--demos/misc/scene_changer/scene_a.scnbin0 -> 1459 bytes
-rw-r--r--demos/misc/scene_changer/scene_b.gd17
-rw-r--r--demos/misc/scene_changer/scene_b.scnbin0 -> 1448 bytes
-rw-r--r--demos/misc/tween/engine.cfg2
-rw-r--r--demos/misc/tween/icon.pngbin3621 -> 2831 bytes
-rw-r--r--demos/misc/tween/main.gd4
-rw-r--r--demos/misc/window_management/control.gd185
-rw-r--r--demos/misc/window_management/engine.cfg19
-rw-r--r--demos/misc/window_management/icon.pngbin0 -> 4210 bytes
-rw-r--r--demos/misc/window_management/observer/observer.gd79
-rw-r--r--demos/misc/window_management/observer/observer.scnbin0 -> 1786 bytes
-rw-r--r--demos/misc/window_management/window_management.scnbin0 -> 5132 bytes
-rw-r--r--demos/viewport/3d_in_2d/engine.cfg1
-rw-r--r--demos/viewport/3d_in_2d/icon.pngbin0 -> 3758 bytes
-rw-r--r--demos/viewport/gui_in_3d/engine.cfg1
-rw-r--r--demos/viewport/gui_in_3d/gui_3d.gd49
-rw-r--r--demos/viewport/gui_in_3d/gui_3d.scnbin3498 -> 4668 bytes
-rw-r--r--demos/viewport/gui_in_3d/icon.pngbin0 -> 3770 bytes
-rw-r--r--demos/viewport/screen_capture/engine.cfg9
-rw-r--r--demos/viewport/screen_capture/icon.pngbin0 -> 7350 bytes
-rw-r--r--demos/viewport/screen_capture/mountains.pngbin0 -> 927435 bytes
-rw-r--r--demos/viewport/screen_capture/screen_capture.gd27
-rw-r--r--demos/viewport/screen_capture/screen_capture.scnbin0 -> 1977 bytes
441 files changed, 4094 insertions, 721 deletions
diff --git a/demos/2d/area_input/box_area.png b/demos/2d/area_input/box_area.png
new file mode 100644
index 0000000000..ba7c37f7de
--- /dev/null
+++ b/demos/2d/area_input/box_area.png
Binary files differ
diff --git a/demos/2d/area_input/circle_area.png b/demos/2d/area_input/circle_area.png
new file mode 100644
index 0000000000..3cc24c8a0c
--- /dev/null
+++ b/demos/2d/area_input/circle_area.png
Binary files differ
diff --git a/demos/2d/area_input/engine.cfg b/demos/2d/area_input/engine.cfg
new file mode 100644
index 0000000000..8fa2e15beb
--- /dev/null
+++ b/demos/2d/area_input/engine.cfg
@@ -0,0 +1,5 @@
+[application]
+
+name="Area 2D Input Events"
+main_scene="res://input.scn"
+icon="res://icon.png"
diff --git a/demos/2d/area_input/icon.png b/demos/2d/area_input/icon.png
new file mode 100644
index 0000000000..2f412ecf68
--- /dev/null
+++ b/demos/2d/area_input/icon.png
Binary files differ
diff --git a/demos/2d/area_input/input.gd b/demos/2d/area_input/input.gd
new file mode 100644
index 0000000000..3f719fc853
--- /dev/null
+++ b/demos/2d/area_input/input.gd
@@ -0,0 +1,16 @@
+
+extends Area2D
+
+#virtual from CollisionObject2D (also available as signal)
+func _input_event(viewport, event, shape_idx):
+ #convert event to local coordinates
+ if (event.type==InputEvent.MOUSE_MOTION):
+ event = make_input_local( event )
+ get_node("label").set_text(str(event.pos))
+
+#virtual from CollisionObject2D (also available as signal)
+func _mouse_exit():
+ get_node("label").set_text("")
+
+
+
diff --git a/demos/2d/area_input/input.scn b/demos/2d/area_input/input.scn
new file mode 100644
index 0000000000..1a2dcbc5f4
--- /dev/null
+++ b/demos/2d/area_input/input.scn
Binary files differ
diff --git a/demos/2d/dynamic_collision_shapes/ball.gd b/demos/2d/dynamic_collision_shapes/ball.gd
new file mode 100644
index 0000000000..c17b20f9c8
--- /dev/null
+++ b/demos/2d/dynamic_collision_shapes/ball.gd
@@ -0,0 +1,21 @@
+
+extends RigidBody2D
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+
+var timeout=5
+
+func _process(delta):
+ timeout-=delta
+ if (timeout<1):
+ set_opacity(timeout)
+ if (timeout<0):
+ queue_free()
+func _ready():
+ set_process(true)
+ # Initialization here
+ pass
+
+
diff --git a/demos/2d/dynamic_collision_shapes/ball.png b/demos/2d/dynamic_collision_shapes/ball.png
new file mode 100644
index 0000000000..b7cf71da29
--- /dev/null
+++ b/demos/2d/dynamic_collision_shapes/ball.png
Binary files differ
diff --git a/demos/2d/dynamic_collision_shapes/ball.scn b/demos/2d/dynamic_collision_shapes/ball.scn
new file mode 100644
index 0000000000..e332de276d
--- /dev/null
+++ b/demos/2d/dynamic_collision_shapes/ball.scn
Binary files differ
diff --git a/demos/2d/dynamic_collision_shapes/box.png b/demos/2d/dynamic_collision_shapes/box.png
new file mode 100644
index 0000000000..f29b83ce38
--- /dev/null
+++ b/demos/2d/dynamic_collision_shapes/box.png
Binary files differ
diff --git a/demos/2d/dynamic_collision_shapes/circle.png b/demos/2d/dynamic_collision_shapes/circle.png
new file mode 100644
index 0000000000..9fdfa550b1
--- /dev/null
+++ b/demos/2d/dynamic_collision_shapes/circle.png
Binary files differ
diff --git a/demos/2d/dynamic_collision_shapes/dynamic_colobjs.gd b/demos/2d/dynamic_collision_shapes/dynamic_colobjs.gd
new file mode 100644
index 0000000000..a6a42a1914
--- /dev/null
+++ b/demos/2d/dynamic_collision_shapes/dynamic_colobjs.gd
@@ -0,0 +1,23 @@
+
+extends Node2D
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+const EMIT_INTERVAL=0.1
+var timeout=EMIT_INTERVAL
+
+func _process(delta):
+ timeout-=delta
+ if (timeout<0):
+ timeout=EMIT_INTERVAL
+ var ball = preload("res://ball.scn").instance()
+ ball.set_pos( Vector2(randf() * get_viewport_rect().size.x, 0) )
+ add_child(ball)
+
+func _ready():
+ set_process(true)
+ # Initialization here
+ pass
+
+
diff --git a/demos/2d/dynamic_collision_shapes/dynamic_colobjs.scn b/demos/2d/dynamic_collision_shapes/dynamic_colobjs.scn
new file mode 100644
index 0000000000..e6d1ebf9cf
--- /dev/null
+++ b/demos/2d/dynamic_collision_shapes/dynamic_colobjs.scn
Binary files differ
diff --git a/demos/2d/dynamic_collision_shapes/engine.cfg b/demos/2d/dynamic_collision_shapes/engine.cfg
new file mode 100644
index 0000000000..76a074f346
--- /dev/null
+++ b/demos/2d/dynamic_collision_shapes/engine.cfg
@@ -0,0 +1,5 @@
+[application]
+
+name="Run-Time CollisionShape"
+main_scene="res://dynamic_colobjs.scn"
+icon="res://icon.png"
diff --git a/demos/2d/dynamic_collision_shapes/icon.png b/demos/2d/dynamic_collision_shapes/icon.png
new file mode 100644
index 0000000000..b47506d7c8
--- /dev/null
+++ b/demos/2d/dynamic_collision_shapes/icon.png
Binary files differ
diff --git a/demos/2d/dynamic_collision_shapes/poly.png b/demos/2d/dynamic_collision_shapes/poly.png
new file mode 100644
index 0000000000..49ed55cc7d
--- /dev/null
+++ b/demos/2d/dynamic_collision_shapes/poly.png
Binary files differ
diff --git a/demos/2d/fog_of_war/engine.cfg b/demos/2d/fog_of_war/engine.cfg
new file mode 100644
index 0000000000..1f56851c58
--- /dev/null
+++ b/demos/2d/fog_of_war/engine.cfg
@@ -0,0 +1,12 @@
+[application]
+
+name="Fog of War"
+main_scene="res://fog.scn"
+icon="res://icon.png"
+
+[input]
+
+move_up=[key(Up)]
+move_bottom=[key(Down)]
+move_left=[key(Left)]
+move_right=[key(Right)]
diff --git a/demos/2d/fog_of_war/floor.png b/demos/2d/fog_of_war/floor.png
new file mode 100644
index 0000000000..07b4f8c98f
--- /dev/null
+++ b/demos/2d/fog_of_war/floor.png
Binary files differ
diff --git a/demos/2d/fog_of_war/fog.gd b/demos/2d/fog_of_war/fog.gd
new file mode 100644
index 0000000000..9da5680e4d
--- /dev/null
+++ b/demos/2d/fog_of_war/fog.gd
@@ -0,0 +1,86 @@
+
+extends TileMap
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+
+# boundarys for the fog rectangle
+var x_min = -20 # left start tile
+var x_max = 20 # right end tile
+var y_min = -20 # top start tile
+var y_max = 20 # bottom end tile
+
+var position # players position
+
+# iteration variables
+var x
+var y
+
+# variable to check if player moved
+var x_old
+var y_old
+
+# array to build up the visible area like a square
+# first value determines the width/height of the tip
+# here it would be 2*2 + 1 = 5 tiles wide/high
+# second value determines the total squares size
+# here it would be 5*2 + 1 = 10 tiles wide/high
+var l = range(2,5)
+
+# process that runs in realtime
+func _fixed_process(delta):
+ position = get_node("../troll").get_pos()
+
+ # calculate the corresponding tile
+ # from the players position
+ x = int(position.x/get_cell_size().x)
+ # switching from positive to negative tile positions
+ # causes problems because of rounding problems
+ if position.x < 0:
+ x -= 1 # correct negative values
+
+ y = int(position.y/get_cell_size().y)
+ if position.y < 0:
+ y -= 1
+
+ # check if the player moved one tile further
+ if (x_old != x) or (y_old != y):
+
+ # create the transparent part (visited area)
+ var end = l.size()-1
+ var start = 0
+ for steps in range(l.size()):
+ for m in range(x-l[end]-1,x+l[end]+2):
+ for n in range(y-l[start]-1,y+l[start]+2):
+ if get_cell(m,n) != 0:
+ set_cell(m,n,1,0,0)
+ end -= 1
+ start += 1
+
+ # create the actual and active visible part
+ var end = l.size()-1
+ var start = 0
+ for steps in range(l.size()):
+ for m in range(x-l[end],x+l[end]+1):
+ for n in range(y-l[start],y+l[start]+1):
+ set_cell(m,n,-1)
+ end -= 1
+ start += 1
+
+ x_old = x
+ y_old = y
+
+ pass
+
+func _ready():
+ # Initalization here
+
+ # create a square filled with the 100% opaque fog
+ for x in range(x_min,x_max):
+ for y in range(y_min,y_max):
+ set_cell(x,y,0,0,0)
+ set_fixed_process(true)
+ pass
+
+
diff --git a/demos/2d/fog_of_war/fog.png b/demos/2d/fog_of_war/fog.png
new file mode 100644
index 0000000000..56980c298d
--- /dev/null
+++ b/demos/2d/fog_of_war/fog.png
Binary files differ
diff --git a/demos/2d/fog_of_war/fog.scn b/demos/2d/fog_of_war/fog.scn
new file mode 100644
index 0000000000..4987f1ead5
--- /dev/null
+++ b/demos/2d/fog_of_war/fog.scn
Binary files differ
diff --git a/demos/2d/fog_of_war/fog.xml b/demos/2d/fog_of_war/fog.xml
new file mode 100644
index 0000000000..ed08d84a1f
--- /dev/null
+++ b/demos/2d/fog_of_war/fog.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<resource_file type="TileSet" subresource_count="3" version="1.0" version_name="Godot Engine v1.0.stable.custom_build">
+ <ext_resource path="res://floor.png" type="Texture"></ext_resource>
+ <ext_resource path="res://fog.png" type="Texture"></ext_resource>
+ <main_resource>
+ <string name="0/name"> "fog opaque" </string>
+ <resource name="0/texture" resource_type="Texture" path="res://fog.png"> </resource>
+ <vector2 name="0/tex_offset"> -48, -48 </vector2>
+ <vector2 name="0/shape_offset"> 0, 0 </vector2>
+ <rect2 name="0/region"> 0, 0, 144, 144 </rect2>
+ <array name="0/shapes" len="0" shared="false">
+ </array>
+ <string name="1/name"> "fog transparent" </string>
+ <resource name="1/texture" resource_type="Texture" path="res://fog.png"> </resource>
+ <vector2 name="1/tex_offset"> -48, -48 </vector2>
+ <vector2 name="1/shape_offset"> 0, 0 </vector2>
+ <rect2 name="1/region"> 144, 0, 144, 144 </rect2>
+ <array name="1/shapes" len="0" shared="false">
+ </array>
+ <string name="2/name"> "floor" </string>
+ <resource name="2/texture" resource_type="Texture" path="res://floor.png"> </resource>
+ <vector2 name="2/tex_offset"> 0, 0 </vector2>
+ <vector2 name="2/shape_offset"> 0, 0 </vector2>
+ <rect2 name="2/region"> 0, 0, 0, 0 </rect2>
+ <array name="2/shapes" len="0" shared="false">
+ </array>
+
+ </main_resource>
+</resource_file> \ No newline at end of file
diff --git a/demos/2d/fog_of_war/icon.png b/demos/2d/fog_of_war/icon.png
new file mode 100644
index 0000000000..a483390048
--- /dev/null
+++ b/demos/2d/fog_of_war/icon.png
Binary files differ
diff --git a/demos/2d/fog_of_war/tile_edit.scn b/demos/2d/fog_of_war/tile_edit.scn
new file mode 100644
index 0000000000..aaca19d370
--- /dev/null
+++ b/demos/2d/fog_of_war/tile_edit.scn
Binary files differ
diff --git a/demos/2d/fog_of_war/troll.gd b/demos/2d/fog_of_war/troll.gd
new file mode 100644
index 0000000000..d118d3a2ba
--- /dev/null
+++ b/demos/2d/fog_of_war/troll.gd
@@ -0,0 +1,43 @@
+
+extends KinematicBody2D
+
+# This is a simple collision demo showing how
+# the kinematic cotroller works.
+# move() will allow to move the node, and will
+# always move it to a non-colliding spot,
+# as long as it starts from a non-colliding spot too.
+
+
+#pixels / second
+const MOTION_SPEED=160
+
+func _fixed_process(delta):
+
+ var motion = Vector2()
+
+ if (Input.is_action_pressed("move_up")):
+ motion+=Vector2(0,-1)
+ if (Input.is_action_pressed("move_bottom")):
+ motion+=Vector2(0,1)
+ if (Input.is_action_pressed("move_left")):
+ motion+=Vector2(-1,0)
+ if (Input.is_action_pressed("move_right")):
+ motion+=Vector2(1,0)
+
+ motion = motion.normalized() * MOTION_SPEED * delta
+ motion = move(motion)
+
+ #make character slide nicely through the world
+ var slide_attempts = 4
+ while(is_colliding() and slide_attempts>0):
+ motion = get_collision_normal().slide(motion)
+ motion=move(motion)
+ slide_attempts-=1
+
+
+func _ready():
+ # Initalization here
+ set_fixed_process(true)
+ pass
+
+
diff --git a/demos/2d/fog_of_war/troll.png b/demos/2d/fog_of_war/troll.png
new file mode 100644
index 0000000000..69f195d034
--- /dev/null
+++ b/demos/2d/fog_of_war/troll.png
Binary files differ
diff --git a/demos/2d/fog_of_war/troll.scn b/demos/2d/fog_of_war/troll.scn
new file mode 100644
index 0000000000..f5d87c3631
--- /dev/null
+++ b/demos/2d/fog_of_war/troll.scn
Binary files differ
diff --git a/demos/2d/hdr/beach_cave.gd b/demos/2d/hdr/beach_cave.gd
new file mode 100644
index 0000000000..9dffbc4662
--- /dev/null
+++ b/demos/2d/hdr/beach_cave.gd
@@ -0,0 +1,26 @@
+
+extends Node2D
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+const CAVE_LIMIT=1000
+
+func _input(ev):
+ if (ev.type==InputEvent.MOUSE_MOTION and ev.button_mask&1):
+ var rel_x = ev.relative_x
+ var cavepos = get_node("cave").get_pos()
+ cavepos.x+=rel_x
+ if (cavepos.x<-CAVE_LIMIT):
+ cavepos.x=-CAVE_LIMIT
+ elif (cavepos.x>0):
+ cavepos.x=0
+ get_node("cave").set_pos(cavepos)
+
+
+func _ready():
+ set_process_input(true)
+ # Initialization here
+ pass
+
+
diff --git a/demos/2d/hdr/beach_cave.scn b/demos/2d/hdr/beach_cave.scn
new file mode 100644
index 0000000000..4147a130ad
--- /dev/null
+++ b/demos/2d/hdr/beach_cave.scn
Binary files differ
diff --git a/demos/2d/hdr/engine.cfg b/demos/2d/hdr/engine.cfg
new file mode 100644
index 0000000000..ab53a022f0
--- /dev/null
+++ b/demos/2d/hdr/engine.cfg
@@ -0,0 +1,14 @@
+[application]
+
+name="HDR for 2D"
+main_scene="res://beach_cave.scn"
+icon="res://icon.png"
+
+[display]
+
+width=1080
+height=720
+
+[rasterizer]
+
+blur_buffer_size=128
diff --git a/demos/2d/hdr/icon.png b/demos/2d/hdr/icon.png
new file mode 100644
index 0000000000..461cd4638a
--- /dev/null
+++ b/demos/2d/hdr/icon.png
Binary files differ
diff --git a/demos/2d/hdr/ocean_beach.png b/demos/2d/hdr/ocean_beach.png
new file mode 100644
index 0000000000..a873d4f61d
--- /dev/null
+++ b/demos/2d/hdr/ocean_beach.png
Binary files differ
diff --git a/demos/2d/hdr/ocean_beach.png.flags b/demos/2d/hdr/ocean_beach.png.flags
new file mode 100644
index 0000000000..82127bd7d5
--- /dev/null
+++ b/demos/2d/hdr/ocean_beach.png.flags
@@ -0,0 +1 @@
+tolinear=true
diff --git a/demos/2d/hdr/ocean_cave.png b/demos/2d/hdr/ocean_cave.png
new file mode 100644
index 0000000000..8875499df3
--- /dev/null
+++ b/demos/2d/hdr/ocean_cave.png
Binary files differ
diff --git a/demos/2d/hdr/ocean_cave.png.flags b/demos/2d/hdr/ocean_cave.png.flags
new file mode 100644
index 0000000000..82127bd7d5
--- /dev/null
+++ b/demos/2d/hdr/ocean_cave.png.flags
@@ -0,0 +1 @@
+tolinear=true
diff --git a/demos/2d/hexamap/.fscache b/demos/2d/hexamap/.fscache
deleted file mode 100644
index 60aa69b645..0000000000
--- a/demos/2d/hexamap/.fscache
+++ /dev/null
@@ -1,33 +0,0 @@
-::res://::1412302385
-WWT-01.png::ImageTexture::1412126473::
-WWT-02.png::ImageTexture::1412126474::
-WWT-03.png::ImageTexture::1412126474::
-WWT-04.png::ImageTexture::1412126474::
-WWT-05.png::ImageTexture::1412126474::
-WWT-06.png::ImageTexture::1412126474::
-WWT-07.png::ImageTexture::1412126474::
-WWT-08.png::ImageTexture::1412126474::
-WWT-09.png::ImageTexture::1412126474::
-WWT-10.png::ImageTexture::1412126474::
-WWT-11.png::ImageTexture::1412126475::
-WWT-12.png::ImageTexture::1412126475::
-WWT-13.png::ImageTexture::1412126475::
-WWT-14.png::ImageTexture::1412126475::
-WWT-15.png::ImageTexture::1412126475::
-WWT-16.png::ImageTexture::1412126475::
-WWT-17.png::ImageTexture::1412126475::
-WWT-18.png::ImageTexture::1412126475::
-WWT-19.png::ImageTexture::1412126476::
-WWT-20.png::ImageTexture::1412126476::
-WWT-21.png::ImageTexture::1412126476::
-WWT-22.png::ImageTexture::1412126476::
-WWT-23.png::ImageTexture::1412126476::
-WWT-24.png::ImageTexture::1412126476::
-WWT-25.png::ImageTexture::1412126476::
-WWT-26.png::ImageTexture::1412126476::
-map.scn::PackedScene::1412127344::
-tiles.scn::PackedScene::1412126994::
-tileset.res::TileSet::1412127001::
-troll.gd::GDScript::1412302377::
-troll.png::ImageTexture::1412302385::
-troll.scn::PackedScene::1412302380::
diff --git a/demos/2d/isometric/bastiles.res b/demos/2d/isometric/bastiles.res
index 2161c88f1e..50f3c78321 100644
--- a/demos/2d/isometric/bastiles.res
+++ b/demos/2d/isometric/bastiles.res
Binary files differ
diff --git a/demos/2d/isometric/dungeon.scn b/demos/2d/isometric/dungeon.scn
index 76532a44aa..e03a3bd3dd 100644
--- a/demos/2d/isometric/dungeon.scn
+++ b/demos/2d/isometric/dungeon.scn
Binary files differ
diff --git a/demos/2d/isometric/tileset.scn b/demos/2d/isometric/tileset.scn
index edb0bc0276..c04ea5382c 100644
--- a/demos/2d/isometric/tileset.scn
+++ b/demos/2d/isometric/tileset.scn
Binary files differ
diff --git a/demos/2d/isometric/troll.scn b/demos/2d/isometric/troll.scn
index f5d87c3631..19b566fe05 100644
--- a/demos/2d/isometric/troll.scn
+++ b/demos/2d/isometric/troll.scn
Binary files differ
diff --git a/demos/2d/isometric_light/character_shder.res b/demos/2d/isometric_light/character_shder.res
new file mode 100644
index 0000000000..17cd9ad287
--- /dev/null
+++ b/demos/2d/isometric_light/character_shder.res
Binary files differ
diff --git a/demos/2d/isometric_light/column.scn b/demos/2d/isometric_light/column.scn
new file mode 100644
index 0000000000..f0b7683885
--- /dev/null
+++ b/demos/2d/isometric_light/column.scn
Binary files differ
diff --git a/demos/2d/isometric_light/cubio.gd b/demos/2d/isometric_light/cubio.gd
new file mode 100644
index 0000000000..30c766936c
--- /dev/null
+++ b/demos/2d/isometric_light/cubio.gd
@@ -0,0 +1,96 @@
+
+extends KinematicBody2D
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+
+const MAX_SPEED = 300.0
+const IDLE_SPEED = 10.0
+const ACCEL=5.0
+const VSCALE=0.5
+const SHOOT_INTERVAL=0.3
+
+var speed=Vector2()
+var current_anim=""
+var current_mirror=false
+
+var shoot_countdown=0
+
+func _input(ev):
+ if (ev.type==InputEvent.MOUSE_BUTTON and ev.button_index==1 and ev.pressed and shoot_countdown<=0):
+ var pos = get_canvas_transform().affine_inverse() * ev.pos
+ var dir = (pos-get_global_pos()).normalized()
+ var bullet = preload("res://shoot.scn").instance()
+ bullet.advance_dir=dir
+ bullet.set_pos( get_global_pos() + dir * 60 )
+ get_parent().add_child(bullet)
+ shoot_countdown=SHOOT_INTERVAL
+
+
+
+
+func _fixed_process(delta):
+
+ shoot_countdown-=delta
+ var dir = Vector2()
+ if (Input.is_action_pressed("up")):
+ dir+=Vector2(0,-1)
+ if (Input.is_action_pressed("down")):
+ dir+=Vector2(0,1)
+ if (Input.is_action_pressed("left")):
+ dir+=Vector2(-1,0)
+ if (Input.is_action_pressed("right")):
+ dir+=Vector2(1,0)
+
+ if (dir!=Vector2()):
+ dir=dir.normalized()
+ speed = speed.linear_interpolate(dir*MAX_SPEED,delta*ACCEL)
+ var motion = speed * delta
+ motion.y*=VSCALE
+ motion=move(motion)
+
+ if (is_colliding()):
+ var n = get_collision_normal()
+ motion=n.slide(motion)
+ move(motion)
+
+ var next_anim=""
+ var next_mirror=false
+
+ if (dir==Vector2() and speed.length()<IDLE_SPEED):
+ next_anim="idle"
+ next_mirror=false
+ elif (speed.length()>IDLE_SPEED*0.1):
+ var angle = atan2(abs(speed.x),speed.y)
+
+ next_mirror = speed.x>0
+ if (angle<PI/8):
+ next_anim="bottom"
+ next_mirror=false
+ elif (angle<PI/4+PI/8):
+ next_anim="bottom_left"
+ elif (angle<PI*2/4+PI/8):
+ next_anim="left"
+ elif (angle<PI*3/4+PI/8):
+ next_anim="top_left"
+ else:
+ next_anim="top"
+ next_mirror=false
+
+
+ if (next_anim!=current_anim or next_mirror!=current_mirror):
+ get_node("frames").set_flip_h(next_mirror)
+ get_node("anim").play(next_anim)
+ current_anim=next_anim
+ current_mirror=next_mirror
+
+
+
+func _ready():
+ # Initialization here
+ set_fixed_process(true)
+ set_process_input(true)
+ pass
+
+
diff --git a/demos/2d/isometric_light/cubio.scn b/demos/2d/isometric_light/cubio.scn
new file mode 100644
index 0000000000..fc931b0c8d
--- /dev/null
+++ b/demos/2d/isometric_light/cubio.scn
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0001.png b/demos/2d/isometric_light/cubio/idle0001.png
new file mode 100644
index 0000000000..837dd38f9c
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0001.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0002.png b/demos/2d/isometric_light/cubio/idle0002.png
new file mode 100644
index 0000000000..6137a37a9d
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0002.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0003.png b/demos/2d/isometric_light/cubio/idle0003.png
new file mode 100644
index 0000000000..7f3e3e0e31
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0003.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0004.png b/demos/2d/isometric_light/cubio/idle0004.png
new file mode 100644
index 0000000000..0a697dadf9
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0004.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0005.png b/demos/2d/isometric_light/cubio/idle0005.png
new file mode 100644
index 0000000000..9c47197247
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0005.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0006.png b/demos/2d/isometric_light/cubio/idle0006.png
new file mode 100644
index 0000000000..717a7be5b1
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0006.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0007.png b/demos/2d/isometric_light/cubio/idle0007.png
new file mode 100644
index 0000000000..dde18399f3
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0007.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0008.png b/demos/2d/isometric_light/cubio/idle0008.png
new file mode 100644
index 0000000000..0f716a5d84
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0008.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0009.png b/demos/2d/isometric_light/cubio/idle0009.png
new file mode 100644
index 0000000000..d271373f9d
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0009.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0010.png b/demos/2d/isometric_light/cubio/idle0010.png
new file mode 100644
index 0000000000..61311be0eb
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0010.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0011.png b/demos/2d/isometric_light/cubio/idle0011.png
new file mode 100644
index 0000000000..0b7d32d138
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0011.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0012.png b/demos/2d/isometric_light/cubio/idle0012.png
new file mode 100644
index 0000000000..c176034cfa
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0012.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0013.png b/demos/2d/isometric_light/cubio/idle0013.png
new file mode 100644
index 0000000000..c37018154b
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0013.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0014.png b/demos/2d/isometric_light/cubio/idle0014.png
new file mode 100644
index 0000000000..a4613e4269
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0014.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0015.png b/demos/2d/isometric_light/cubio/idle0015.png
new file mode 100644
index 0000000000..8354588b72
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0015.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0016.png b/demos/2d/isometric_light/cubio/idle0016.png
new file mode 100644
index 0000000000..4e5796fb89
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0016.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0017.png b/demos/2d/isometric_light/cubio/idle0017.png
new file mode 100644
index 0000000000..a4ac7e8c43
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0017.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0018.png b/demos/2d/isometric_light/cubio/idle0018.png
new file mode 100644
index 0000000000..aa7cc8fe6c
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0018.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0019.png b/demos/2d/isometric_light/cubio/idle0019.png
new file mode 100644
index 0000000000..3ab603ceda
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0019.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0020.png b/demos/2d/isometric_light/cubio/idle0020.png
new file mode 100644
index 0000000000..9f02648f1a
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0020.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0021.png b/demos/2d/isometric_light/cubio/idle0021.png
new file mode 100644
index 0000000000..ec37fc331f
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0021.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0022.png b/demos/2d/isometric_light/cubio/idle0022.png
new file mode 100644
index 0000000000..34bf331af0
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0022.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0023.png b/demos/2d/isometric_light/cubio/idle0023.png
new file mode 100644
index 0000000000..80a458146e
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0023.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0024.png b/demos/2d/isometric_light/cubio/idle0024.png
new file mode 100644
index 0000000000..cd08c6d14a
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0024.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0025.png b/demos/2d/isometric_light/cubio/idle0025.png
new file mode 100644
index 0000000000..de500512d4
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0025.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0026.png b/demos/2d/isometric_light/cubio/idle0026.png
new file mode 100644
index 0000000000..4a8335a248
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0026.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0027.png b/demos/2d/isometric_light/cubio/idle0027.png
new file mode 100644
index 0000000000..c3d1609a03
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0027.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0028.png b/demos/2d/isometric_light/cubio/idle0028.png
new file mode 100644
index 0000000000..96c1f32223
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0028.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0029.png b/demos/2d/isometric_light/cubio/idle0029.png
new file mode 100644
index 0000000000..5b72d02300
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0029.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0030.png b/demos/2d/isometric_light/cubio/idle0030.png
new file mode 100644
index 0000000000..a84787bf0a
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0030.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0031.png b/demos/2d/isometric_light/cubio/idle0031.png
new file mode 100644
index 0000000000..dc9cd7ddc5
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0031.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0032.png b/demos/2d/isometric_light/cubio/idle0032.png
new file mode 100644
index 0000000000..c99f2e52bc
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0032.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0033.png b/demos/2d/isometric_light/cubio/idle0033.png
new file mode 100644
index 0000000000..cf5c648f9e
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0033.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0034.png b/demos/2d/isometric_light/cubio/idle0034.png
new file mode 100644
index 0000000000..8e18e12d8d
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0034.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0035.png b/demos/2d/isometric_light/cubio/idle0035.png
new file mode 100644
index 0000000000..ee2c25ee96
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0035.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0036.png b/demos/2d/isometric_light/cubio/idle0036.png
new file mode 100644
index 0000000000..f452b5db33
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0036.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0037.png b/demos/2d/isometric_light/cubio/idle0037.png
new file mode 100644
index 0000000000..7768c712e3
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0037.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0038.png b/demos/2d/isometric_light/cubio/idle0038.png
new file mode 100644
index 0000000000..1200127116
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0038.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0039.png b/demos/2d/isometric_light/cubio/idle0039.png
new file mode 100644
index 0000000000..25219f0582
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0039.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0040.png b/demos/2d/isometric_light/cubio/idle0040.png
new file mode 100644
index 0000000000..8da0a81050
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0040.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0041.png b/demos/2d/isometric_light/cubio/idle0041.png
new file mode 100644
index 0000000000..fa102aec8a
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0041.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0042.png b/demos/2d/isometric_light/cubio/idle0042.png
new file mode 100644
index 0000000000..0d19c32572
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0042.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0043.png b/demos/2d/isometric_light/cubio/idle0043.png
new file mode 100644
index 0000000000..bf284c62d0
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0043.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0044.png b/demos/2d/isometric_light/cubio/idle0044.png
new file mode 100644
index 0000000000..3daa1be0b8
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0044.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0045.png b/demos/2d/isometric_light/cubio/idle0045.png
new file mode 100644
index 0000000000..92abe74295
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0045.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0046.png b/demos/2d/isometric_light/cubio/idle0046.png
new file mode 100644
index 0000000000..2a1ab0f036
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0046.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0047.png b/demos/2d/isometric_light/cubio/idle0047.png
new file mode 100644
index 0000000000..da38b835ef
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0047.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0048.png b/demos/2d/isometric_light/cubio/idle0048.png
new file mode 100644
index 0000000000..35fac1b602
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0048.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0049.png b/demos/2d/isometric_light/cubio/idle0049.png
new file mode 100644
index 0000000000..7ebd79b8d7
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0049.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0050.png b/demos/2d/isometric_light/cubio/idle0050.png
new file mode 100644
index 0000000000..ba0678ba87
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0050.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0051.png b/demos/2d/isometric_light/cubio/idle0051.png
new file mode 100644
index 0000000000..03c54f1232
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0051.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0052.png b/demos/2d/isometric_light/cubio/idle0052.png
new file mode 100644
index 0000000000..0e2c8b5d9f
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0052.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0053.png b/demos/2d/isometric_light/cubio/idle0053.png
new file mode 100644
index 0000000000..d95095937f
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0053.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0054.png b/demos/2d/isometric_light/cubio/idle0054.png
new file mode 100644
index 0000000000..5a09fce69e
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0054.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0055.png b/demos/2d/isometric_light/cubio/idle0055.png
new file mode 100644
index 0000000000..6e2aad9d70
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0055.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0056.png b/demos/2d/isometric_light/cubio/idle0056.png
new file mode 100644
index 0000000000..45813e953f
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0056.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0057.png b/demos/2d/isometric_light/cubio/idle0057.png
new file mode 100644
index 0000000000..579b4e1647
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0057.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0058.png b/demos/2d/isometric_light/cubio/idle0058.png
new file mode 100644
index 0000000000..236f290651
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0058.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0059.png b/demos/2d/isometric_light/cubio/idle0059.png
new file mode 100644
index 0000000000..837dd38f9c
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0059.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/idle0060.png b/demos/2d/isometric_light/cubio/idle0060.png
new file mode 100644
index 0000000000..837dd38f9c
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/idle0060.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-b-0001.png b/demos/2d/isometric_light/cubio/norm-b-0001.png
new file mode 100644
index 0000000000..cda17e21cc
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-b-0001.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-b-0002.png b/demos/2d/isometric_light/cubio/norm-b-0002.png
new file mode 100644
index 0000000000..fb36728cdf
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-b-0002.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-b-0003.png b/demos/2d/isometric_light/cubio/norm-b-0003.png
new file mode 100644
index 0000000000..c8bfecb100
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-b-0003.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-b-0004.png b/demos/2d/isometric_light/cubio/norm-b-0004.png
new file mode 100644
index 0000000000..e91213434f
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-b-0004.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-b-0005.png b/demos/2d/isometric_light/cubio/norm-b-0005.png
new file mode 100644
index 0000000000..a823fe9a92
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-b-0005.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-b-0006.png b/demos/2d/isometric_light/cubio/norm-b-0006.png
new file mode 100644
index 0000000000..d9de12baad
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-b-0006.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-b-0007.png b/demos/2d/isometric_light/cubio/norm-b-0007.png
new file mode 100644
index 0000000000..f042eed408
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-b-0007.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-b-0008.png b/demos/2d/isometric_light/cubio/norm-b-0008.png
new file mode 100644
index 0000000000..e18ca607dd
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-b-0008.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-b-0009.png b/demos/2d/isometric_light/cubio/norm-b-0009.png
new file mode 100644
index 0000000000..7e7ddd4c63
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-b-0009.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-b-0010.png b/demos/2d/isometric_light/cubio/norm-b-0010.png
new file mode 100644
index 0000000000..fddb956099
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-b-0010.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-b-0011.png b/demos/2d/isometric_light/cubio/norm-b-0011.png
new file mode 100644
index 0000000000..240a50a9ec
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-b-0011.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-b-0012.png b/demos/2d/isometric_light/cubio/norm-b-0012.png
new file mode 100644
index 0000000000..3e38628e98
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-b-0012.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-b-0013.png b/demos/2d/isometric_light/cubio/norm-b-0013.png
new file mode 100644
index 0000000000..2380e76909
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-b-0013.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-b-0014.png b/demos/2d/isometric_light/cubio/norm-b-0014.png
new file mode 100644
index 0000000000..db374927c6
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-b-0014.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-b-0015.png b/demos/2d/isometric_light/cubio/norm-b-0015.png
new file mode 100644
index 0000000000..1cd0e762c5
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-b-0015.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-b-0016.png b/demos/2d/isometric_light/cubio/norm-b-0016.png
new file mode 100644
index 0000000000..0d894db3f4
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-b-0016.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-b-0017.png b/demos/2d/isometric_light/cubio/norm-b-0017.png
new file mode 100644
index 0000000000..c184af8e85
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-b-0017.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-b-0018.png b/demos/2d/isometric_light/cubio/norm-b-0018.png
new file mode 100644
index 0000000000..1db06014b7
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-b-0018.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-b-0019.png b/demos/2d/isometric_light/cubio/norm-b-0019.png
new file mode 100644
index 0000000000..e74c9c7954
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-b-0019.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-b-0020.png b/demos/2d/isometric_light/cubio/norm-b-0020.png
new file mode 100644
index 0000000000..326e60c64a
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-b-0020.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-bl-0001.png b/demos/2d/isometric_light/cubio/norm-bl-0001.png
new file mode 100644
index 0000000000..0b36e8caa3
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-bl-0001.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-bl-0002.png b/demos/2d/isometric_light/cubio/norm-bl-0002.png
new file mode 100644
index 0000000000..f00166d140
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-bl-0002.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-bl-0003.png b/demos/2d/isometric_light/cubio/norm-bl-0003.png
new file mode 100644
index 0000000000..d84993e097
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-bl-0003.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-bl-0004.png b/demos/2d/isometric_light/cubio/norm-bl-0004.png
new file mode 100644
index 0000000000..8e4c7f278b
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-bl-0004.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-bl-0005.png b/demos/2d/isometric_light/cubio/norm-bl-0005.png
new file mode 100644
index 0000000000..5009f2a514
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-bl-0005.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-bl-0006.png b/demos/2d/isometric_light/cubio/norm-bl-0006.png
new file mode 100644
index 0000000000..d0d654de6e
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-bl-0006.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-bl-0007.png b/demos/2d/isometric_light/cubio/norm-bl-0007.png
new file mode 100644
index 0000000000..2df2437a0d
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-bl-0007.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-bl-0008.png b/demos/2d/isometric_light/cubio/norm-bl-0008.png
new file mode 100644
index 0000000000..4bb8e91ecc
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-bl-0008.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-bl-0009.png b/demos/2d/isometric_light/cubio/norm-bl-0009.png
new file mode 100644
index 0000000000..e4ab80ab72
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-bl-0009.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-bl-0010.png b/demos/2d/isometric_light/cubio/norm-bl-0010.png
new file mode 100644
index 0000000000..7ead89343f
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-bl-0010.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-bl-0011.png b/demos/2d/isometric_light/cubio/norm-bl-0011.png
new file mode 100644
index 0000000000..9714999645
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-bl-0011.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-bl-0012.png b/demos/2d/isometric_light/cubio/norm-bl-0012.png
new file mode 100644
index 0000000000..95e0117df8
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-bl-0012.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-bl-0013.png b/demos/2d/isometric_light/cubio/norm-bl-0013.png
new file mode 100644
index 0000000000..85d4f25e7e
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-bl-0013.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-bl-0014.png b/demos/2d/isometric_light/cubio/norm-bl-0014.png
new file mode 100644
index 0000000000..3c9cc526d0
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-bl-0014.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-bl-0015.png b/demos/2d/isometric_light/cubio/norm-bl-0015.png
new file mode 100644
index 0000000000..3e30649ce1
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-bl-0015.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-bl-0016.png b/demos/2d/isometric_light/cubio/norm-bl-0016.png
new file mode 100644
index 0000000000..f39399c369
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-bl-0016.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-bl-0017.png b/demos/2d/isometric_light/cubio/norm-bl-0017.png
new file mode 100644
index 0000000000..47f79741a1
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-bl-0017.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-bl-0018.png b/demos/2d/isometric_light/cubio/norm-bl-0018.png
new file mode 100644
index 0000000000..8f4ccdcf33
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-bl-0018.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-bl-0019.png b/demos/2d/isometric_light/cubio/norm-bl-0019.png
new file mode 100644
index 0000000000..a278ec0f05
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-bl-0019.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-bl-0020.png b/demos/2d/isometric_light/cubio/norm-bl-0020.png
new file mode 100644
index 0000000000..db5fd0b73c
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-bl-0020.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-l-0001.png b/demos/2d/isometric_light/cubio/norm-l-0001.png
new file mode 100644
index 0000000000..7a989e79dd
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-l-0001.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-l-0002.png b/demos/2d/isometric_light/cubio/norm-l-0002.png
new file mode 100644
index 0000000000..2257923ee6
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-l-0002.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-l-0003.png b/demos/2d/isometric_light/cubio/norm-l-0003.png
new file mode 100644
index 0000000000..2e264e49a4
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-l-0003.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-l-0004.png b/demos/2d/isometric_light/cubio/norm-l-0004.png
new file mode 100644
index 0000000000..e0061451d6
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-l-0004.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-l-0005.png b/demos/2d/isometric_light/cubio/norm-l-0005.png
new file mode 100644
index 0000000000..e16cca081c
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-l-0005.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-l-0006.png b/demos/2d/isometric_light/cubio/norm-l-0006.png
new file mode 100644
index 0000000000..694c2163eb
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-l-0006.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-l-0007.png b/demos/2d/isometric_light/cubio/norm-l-0007.png
new file mode 100644
index 0000000000..ed2ae64cad
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-l-0007.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-l-0008.png b/demos/2d/isometric_light/cubio/norm-l-0008.png
new file mode 100644
index 0000000000..4bbaeb8006
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-l-0008.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-l-0009.png b/demos/2d/isometric_light/cubio/norm-l-0009.png
new file mode 100644
index 0000000000..1f53a1067b
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-l-0009.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-l-0010.png b/demos/2d/isometric_light/cubio/norm-l-0010.png
new file mode 100644
index 0000000000..2007942a2a
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-l-0010.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-l-0011.png b/demos/2d/isometric_light/cubio/norm-l-0011.png
new file mode 100644
index 0000000000..0c27288646
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-l-0011.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-l-0012.png b/demos/2d/isometric_light/cubio/norm-l-0012.png
new file mode 100644
index 0000000000..8b885bcee8
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-l-0012.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-l-0013.png b/demos/2d/isometric_light/cubio/norm-l-0013.png
new file mode 100644
index 0000000000..ed08c9a470
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-l-0013.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-l-0014.png b/demos/2d/isometric_light/cubio/norm-l-0014.png
new file mode 100644
index 0000000000..3b6088c9a0
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-l-0014.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-l-0015.png b/demos/2d/isometric_light/cubio/norm-l-0015.png
new file mode 100644
index 0000000000..1ffa2b8cda
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-l-0015.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-l-0016.png b/demos/2d/isometric_light/cubio/norm-l-0016.png
new file mode 100644
index 0000000000..00279dc052
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-l-0016.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-l-0017.png b/demos/2d/isometric_light/cubio/norm-l-0017.png
new file mode 100644
index 0000000000..1805000a78
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-l-0017.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-l-0018.png b/demos/2d/isometric_light/cubio/norm-l-0018.png
new file mode 100644
index 0000000000..1ff123533f
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-l-0018.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-l-0019.png b/demos/2d/isometric_light/cubio/norm-l-0019.png
new file mode 100644
index 0000000000..2faf043a2b
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-l-0019.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-l-0020.png b/demos/2d/isometric_light/cubio/norm-l-0020.png
new file mode 100644
index 0000000000..7948d2d79d
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-l-0020.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-u-0001.png b/demos/2d/isometric_light/cubio/norm-u-0001.png
new file mode 100644
index 0000000000..6c702ba7c3
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-u-0001.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-u-0002.png b/demos/2d/isometric_light/cubio/norm-u-0002.png
new file mode 100644
index 0000000000..9a151e049b
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-u-0002.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-u-0003.png b/demos/2d/isometric_light/cubio/norm-u-0003.png
new file mode 100644
index 0000000000..0b7464260a
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-u-0003.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-u-0004.png b/demos/2d/isometric_light/cubio/norm-u-0004.png
new file mode 100644
index 0000000000..89061fdbcf
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-u-0004.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-u-0005.png b/demos/2d/isometric_light/cubio/norm-u-0005.png
new file mode 100644
index 0000000000..efc8ab0157
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-u-0005.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-u-0006.png b/demos/2d/isometric_light/cubio/norm-u-0006.png
new file mode 100644
index 0000000000..a89ef58f46
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-u-0006.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-u-0007.png b/demos/2d/isometric_light/cubio/norm-u-0007.png
new file mode 100644
index 0000000000..b069591200
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-u-0007.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-u-0008.png b/demos/2d/isometric_light/cubio/norm-u-0008.png
new file mode 100644
index 0000000000..8f0dbe8016
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-u-0008.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-u-0009.png b/demos/2d/isometric_light/cubio/norm-u-0009.png
new file mode 100644
index 0000000000..d4698f2584
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-u-0009.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-u-0010.png b/demos/2d/isometric_light/cubio/norm-u-0010.png
new file mode 100644
index 0000000000..cc3d442d4a
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-u-0010.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-u-0011.png b/demos/2d/isometric_light/cubio/norm-u-0011.png
new file mode 100644
index 0000000000..43c505d7e4
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-u-0011.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-u-0012.png b/demos/2d/isometric_light/cubio/norm-u-0012.png
new file mode 100644
index 0000000000..d4f955fd0c
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-u-0012.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-u-0013.png b/demos/2d/isometric_light/cubio/norm-u-0013.png
new file mode 100644
index 0000000000..08dd875a54
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-u-0013.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-u-0014.png b/demos/2d/isometric_light/cubio/norm-u-0014.png
new file mode 100644
index 0000000000..4bea108a46
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-u-0014.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-u-0015.png b/demos/2d/isometric_light/cubio/norm-u-0015.png
new file mode 100644
index 0000000000..943c556706
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-u-0015.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-u-0016.png b/demos/2d/isometric_light/cubio/norm-u-0016.png
new file mode 100644
index 0000000000..d71a69c5a6
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-u-0016.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-u-0017.png b/demos/2d/isometric_light/cubio/norm-u-0017.png
new file mode 100644
index 0000000000..2d74e4472c
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-u-0017.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-u-0018.png b/demos/2d/isometric_light/cubio/norm-u-0018.png
new file mode 100644
index 0000000000..17a5b10acb
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-u-0018.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-u-0019.png b/demos/2d/isometric_light/cubio/norm-u-0019.png
new file mode 100644
index 0000000000..e376c843e1
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-u-0019.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-u-0020.png b/demos/2d/isometric_light/cubio/norm-u-0020.png
new file mode 100644
index 0000000000..fa1d3521ca
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-u-0020.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-ul-0001.png b/demos/2d/isometric_light/cubio/norm-ul-0001.png
new file mode 100644
index 0000000000..3e75621260
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-ul-0001.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-ul-0002.png b/demos/2d/isometric_light/cubio/norm-ul-0002.png
new file mode 100644
index 0000000000..d48d902936
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-ul-0002.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-ul-0003.png b/demos/2d/isometric_light/cubio/norm-ul-0003.png
new file mode 100644
index 0000000000..703cef6715
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-ul-0003.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-ul-0004.png b/demos/2d/isometric_light/cubio/norm-ul-0004.png
new file mode 100644
index 0000000000..7dd3e2884e
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-ul-0004.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-ul-0005.png b/demos/2d/isometric_light/cubio/norm-ul-0005.png
new file mode 100644
index 0000000000..1281b9ceb8
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-ul-0005.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-ul-0006.png b/demos/2d/isometric_light/cubio/norm-ul-0006.png
new file mode 100644
index 0000000000..e3c58752e9
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-ul-0006.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-ul-0007.png b/demos/2d/isometric_light/cubio/norm-ul-0007.png
new file mode 100644
index 0000000000..ccec10c83c
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-ul-0007.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-ul-0008.png b/demos/2d/isometric_light/cubio/norm-ul-0008.png
new file mode 100644
index 0000000000..1243c7dfe8
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-ul-0008.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-ul-0009.png b/demos/2d/isometric_light/cubio/norm-ul-0009.png
new file mode 100644
index 0000000000..77ea3ca8e9
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-ul-0009.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-ul-0010.png b/demos/2d/isometric_light/cubio/norm-ul-0010.png
new file mode 100644
index 0000000000..cf1cb7d0e3
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-ul-0010.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-ul-0011.png b/demos/2d/isometric_light/cubio/norm-ul-0011.png
new file mode 100644
index 0000000000..1063ee29a8
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-ul-0011.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-ul-0012.png b/demos/2d/isometric_light/cubio/norm-ul-0012.png
new file mode 100644
index 0000000000..a896237161
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-ul-0012.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-ul-0013.png b/demos/2d/isometric_light/cubio/norm-ul-0013.png
new file mode 100644
index 0000000000..cc289b18a0
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-ul-0013.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-ul-0014.png b/demos/2d/isometric_light/cubio/norm-ul-0014.png
new file mode 100644
index 0000000000..faf36e82b6
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-ul-0014.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-ul-0015.png b/demos/2d/isometric_light/cubio/norm-ul-0015.png
new file mode 100644
index 0000000000..925be82a2e
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-ul-0015.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-ul-0016.png b/demos/2d/isometric_light/cubio/norm-ul-0016.png
new file mode 100644
index 0000000000..1cb2300b9d
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-ul-0016.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-ul-0017.png b/demos/2d/isometric_light/cubio/norm-ul-0017.png
new file mode 100644
index 0000000000..5a841b57af
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-ul-0017.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-ul-0018.png b/demos/2d/isometric_light/cubio/norm-ul-0018.png
new file mode 100644
index 0000000000..2b30df8988
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-ul-0018.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-ul-0019.png b/demos/2d/isometric_light/cubio/norm-ul-0019.png
new file mode 100644
index 0000000000..12c0a72d6d
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-ul-0019.png
Binary files differ
diff --git a/demos/2d/isometric_light/cubio/norm-ul-0020.png b/demos/2d/isometric_light/cubio/norm-ul-0020.png
new file mode 100644
index 0000000000..3cffda17ca
--- /dev/null
+++ b/demos/2d/isometric_light/cubio/norm-ul-0020.png
Binary files differ
diff --git a/demos/2d/isometric_light/energy.png b/demos/2d/isometric_light/energy.png
new file mode 100644
index 0000000000..237e3ea4f0
--- /dev/null
+++ b/demos/2d/isometric_light/energy.png
Binary files differ
diff --git a/demos/2d/isometric_light/engine.cfg b/demos/2d/isometric_light/engine.cfg
new file mode 100644
index 0000000000..a5b053aa95
--- /dev/null
+++ b/demos/2d/isometric_light/engine.cfg
@@ -0,0 +1,20 @@
+[application]
+
+name="Isometric 2D + Lighting"
+main_scene="res://map.scn"
+icon="res://icon.png"
+
+[input]
+
+up=[key(Up), key(W)]
+down=[key(S), key(Down)]
+left=[key(Left), key(A)]
+right=[key(Right), key(D)]
+
+[rasterizer]
+
+shadow_filter=0
+
+[render]
+
+default_clear_color=#ff000000
diff --git a/demos/2d/isometric_light/faceColor.png b/demos/2d/isometric_light/faceColor.png
new file mode 100644
index 0000000000..c6daf73cb7
--- /dev/null
+++ b/demos/2d/isometric_light/faceColor.png
Binary files differ
diff --git a/demos/2d/isometric_light/faceMask.png b/demos/2d/isometric_light/faceMask.png
new file mode 100644
index 0000000000..d91e968c8e
--- /dev/null
+++ b/demos/2d/isometric_light/faceMask.png
Binary files differ
diff --git a/demos/2d/isometric_light/faceNormal.png b/demos/2d/isometric_light/faceNormal.png
new file mode 100644
index 0000000000..651f075fa1
--- /dev/null
+++ b/demos/2d/isometric_light/faceNormal.png
Binary files differ
diff --git a/demos/2d/isometric_light/fire.png b/demos/2d/isometric_light/fire.png
new file mode 100644
index 0000000000..746e4f9f4b
--- /dev/null
+++ b/demos/2d/isometric_light/fire.png
Binary files differ
diff --git a/demos/2d/isometric_light/floor_shader.res b/demos/2d/isometric_light/floor_shader.res
new file mode 100644
index 0000000000..c078d27b97
--- /dev/null
+++ b/demos/2d/isometric_light/floor_shader.res
Binary files differ
diff --git a/demos/2d/isometric_light/icon.png b/demos/2d/isometric_light/icon.png
new file mode 100644
index 0000000000..0801f78ea5
--- /dev/null
+++ b/demos/2d/isometric_light/icon.png
Binary files differ
diff --git a/demos/2d/isometric_light/light2.png b/demos/2d/isometric_light/light2.png
new file mode 100644
index 0000000000..cd473251aa
--- /dev/null
+++ b/demos/2d/isometric_light/light2.png
Binary files differ
diff --git a/demos/2d/isometric_light/map.gd b/demos/2d/isometric_light/map.gd
new file mode 100644
index 0000000000..f712aeeaec
--- /dev/null
+++ b/demos/2d/isometric_light/map.gd
@@ -0,0 +1,18 @@
+
+extends Node2D
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+
+func _ready():
+ # Initialization here
+ pass
+
+
+
+
+func _on_prince_area_body_enter( body ):
+ if (body.get_name()=="cubio"):
+ get_node("message").show()
+ pass # replace with function body
diff --git a/demos/2d/isometric_light/map.scn b/demos/2d/isometric_light/map.scn
new file mode 100644
index 0000000000..89002f991f
--- /dev/null
+++ b/demos/2d/isometric_light/map.scn
Binary files differ
diff --git a/demos/2d/isometric_light/shadow_blob.png b/demos/2d/isometric_light/shadow_blob.png
new file mode 100644
index 0000000000..e97fd2a826
--- /dev/null
+++ b/demos/2d/isometric_light/shadow_blob.png
Binary files differ
diff --git a/demos/2d/isometric_light/shoot.gd b/demos/2d/isometric_light/shoot.gd
new file mode 100644
index 0000000000..0486bbb658
--- /dev/null
+++ b/demos/2d/isometric_light/shoot.gd
@@ -0,0 +1,27 @@
+
+extends KinematicBody2D
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+
+var advance_dir=Vector2(1,0)
+const ADVANCE_SPEED = 500.0
+
+var hit=false
+
+func _fixed_process(delta):
+
+ if (hit):
+ return
+ move(advance_dir*delta*ADVANCE_SPEED)
+ if (is_colliding()):
+ get_node("anim").play("explode")
+ hit=true
+
+func _ready():
+ # Initialization here
+ set_fixed_process(true)
+ pass
+
+
diff --git a/demos/2d/isometric_light/shoot.scn b/demos/2d/isometric_light/shoot.scn
new file mode 100644
index 0000000000..672608810f
--- /dev/null
+++ b/demos/2d/isometric_light/shoot.scn
Binary files differ
diff --git a/demos/2d/isometric_light/shoot_halo.png b/demos/2d/isometric_light/shoot_halo.png
new file mode 100644
index 0000000000..5ba954b32b
--- /dev/null
+++ b/demos/2d/isometric_light/shoot_halo.png
Binary files differ
diff --git a/demos/2d/isometric_light/tileset.res b/demos/2d/isometric_light/tileset.res
new file mode 100644
index 0000000000..f64a4e32bd
--- /dev/null
+++ b/demos/2d/isometric_light/tileset.res
Binary files differ
diff --git a/demos/2d/isometric_light/tileset_scene.scn b/demos/2d/isometric_light/tileset_scene.scn
new file mode 100644
index 0000000000..3d0773c9c5
--- /dev/null
+++ b/demos/2d/isometric_light/tileset_scene.scn
Binary files differ
diff --git a/demos/2d/isometric_light/torch.scn b/demos/2d/isometric_light/torch.scn
new file mode 100644
index 0000000000..3f08b33311
--- /dev/null
+++ b/demos/2d/isometric_light/torch.scn
Binary files differ
diff --git a/demos/2d/isometric_light/torch_light.png b/demos/2d/isometric_light/torch_light.png
new file mode 100644
index 0000000000..a98113d36f
--- /dev/null
+++ b/demos/2d/isometric_light/torch_light.png
Binary files differ
diff --git a/demos/2d/isometric_light/torch_shader.res b/demos/2d/isometric_light/torch_shader.res
new file mode 100644
index 0000000000..31a35de1da
--- /dev/null
+++ b/demos/2d/isometric_light/torch_shader.res
Binary files differ
diff --git a/demos/2d/isometric_light/wall_shader.res b/demos/2d/isometric_light/wall_shader.res
new file mode 100644
index 0000000000..7e33c26201
--- /dev/null
+++ b/demos/2d/isometric_light/wall_shader.res
Binary files differ
diff --git a/demos/2d/kinematic_char/circle.png b/demos/2d/kinematic_char/circle.png
new file mode 100644
index 0000000000..ddb3ac4b9c
--- /dev/null
+++ b/demos/2d/kinematic_char/circle.png
Binary files differ
diff --git a/demos/2d/kinematic_char/colworld.gd b/demos/2d/kinematic_char/colworld.gd
index d13ff9236b..fe2dc30bb6 100644
--- a/demos/2d/kinematic_char/colworld.gd
+++ b/demos/2d/kinematic_char/colworld.gd
@@ -14,4 +14,5 @@ func _ready():
func _on_princess_body_enter( body ):
#the name of this editor-generated callback is unfortunate
- get_node("youwin").show()
+ if (body.get_name()=="player"):
+ get_node("youwin").show()
diff --git a/demos/2d/kinematic_char/colworld.scn b/demos/2d/kinematic_char/colworld.scn
index b3a0a1f168..e66705368d 100644
--- a/demos/2d/kinematic_char/colworld.scn
+++ b/demos/2d/kinematic_char/colworld.scn
Binary files differ
diff --git a/demos/2d/kinematic_char/engine.cfg b/demos/2d/kinematic_char/engine.cfg
index 0132442c18..4ce8f836ae 100644
--- a/demos/2d/kinematic_char/engine.cfg
+++ b/demos/2d/kinematic_char/engine.cfg
@@ -4,6 +4,13 @@ name="Kinematic Collision"
main_scene="res://colworld.scn"
icon="res://icon.png"
+[display]
+
+width=800
+height=600
+stretch_mode="2d"
+stretch_aspect="keep"
+
[input]
move_up=[key(Up)]
diff --git a/demos/2d/kinematic_char/long_obstacle.png b/demos/2d/kinematic_char/long_obstacle.png
new file mode 100644
index 0000000000..88cb22daee
--- /dev/null
+++ b/demos/2d/kinematic_char/long_obstacle.png
Binary files differ
diff --git a/demos/2d/kinematic_char/player.gd b/demos/2d/kinematic_char/player.gd
index 9cff0269e8..329382408b 100644
--- a/demos/2d/kinematic_char/player.gd
+++ b/demos/2d/kinematic_char/player.gd
@@ -15,11 +15,15 @@ const GRAVITY = 500.0
#consider "floor".
const FLOOR_ANGLE_TOLERANCE = 40
const WALK_FORCE = 600
+const WALK_MIN_SPEED=10
const WALK_MAX_SPEED = 200
const STOP_FORCE = 1300
const JUMP_SPEED = 200
const JUMP_MAX_AIRBORNE_TIME=0.2
+const SLIDE_STOP_VELOCITY=1.0 #one pixel per second
+const SLIDE_STOP_MIN_TRAVEL=1.0 #one pixel
+
var velocity = Vector2()
var on_air_time=100
var jumping=false
@@ -30,8 +34,6 @@ func _fixed_process(delta):
#create forces
var force = Vector2(0,GRAVITY)
-
- var stop = velocity.x!=0.0
var walk_left = Input.is_action_pressed("move_left")
var walk_right = Input.is_action_pressed("move_right")
@@ -40,12 +42,12 @@ func _fixed_process(delta):
var stop=true
if (walk_left):
- if (velocity.x<=0 and velocity.x > -WALK_MAX_SPEED):
+ if (velocity.x<=WALK_MIN_SPEED and velocity.x > -WALK_MAX_SPEED):
force.x-=WALK_FORCE
stop=false
elif (walk_right):
- if (velocity.x>=0 and velocity.x < WALK_MAX_SPEED):
+ if (velocity.x>=-WALK_MIN_SPEED and velocity.x < WALK_MAX_SPEED):
force.x+=WALK_FORCE
stop=false
@@ -85,25 +87,42 @@ func _fixed_process(delta):
#char is on floor
on_air_time=0
floor_velocity=get_collider_velocity()
- #velocity.y=0
- #But we were moving and our motion was interrupted,
- #so try to complete the motion by "sliding"
- #by the normal
- motion = n.slide(motion)
- velocity = n.slide(velocity)
-
- #then move again
- move(motion)
+
+ if (on_air_time==0 and force.x==0 and get_travel().length() < SLIDE_STOP_MIN_TRAVEL and abs(velocity.x) < SLIDE_STOP_VELOCITY and get_collider_velocity()==Vector2()):
+ #Since this formula will always slide the character around,
+ #a special case must be considered to to stop it from moving
+ #if standing on an inclined floor. Conditions are:
+ # 1) Standing on floor (on_air_time==0)
+ # 2) Did not move more than one pixel (get_travel().length() < SLIDE_STOP_MIN_TRAVEL)
+ # 3) Not moving horizontally (abs(velocity.x) < SLIDE_STOP_VELOCITY)
+ # 4) Collider is not moving
+
+ revert_motion()
+ velocity.y=0.0
+
+ else:
+ #For every other case of motion,our motion was interrupted.
+ #Try to complete the motion by "sliding"
+ #by the normal
+
+ motion = n.slide(motion)
+ velocity = n.slide(velocity)
+ #then move again
+ move(motion)
if (floor_velocity!=Vector2()):
#if floor moves, move with floor
move(floor_velocity*delta)
if (jumping and velocity.y>0):
+ #if falling, no longer jumping
jumping=false
if (on_air_time<JUMP_MAX_AIRBORNE_TIME and jump and not prev_jump_pressed and not jumping):
+ # Jump must also be allowed to happen if the
+ # character left the floor a little bit ago.
+ # Makes controls more snappy.
velocity.y=-JUMP_SPEED
jumping=true
diff --git a/demos/2d/kinematic_char/player.scn b/demos/2d/kinematic_char/player.scn
index 126b332184..5809c0e98a 100644
--- a/demos/2d/kinematic_char/player.scn
+++ b/demos/2d/kinematic_char/player.scn
Binary files differ
diff --git a/demos/2d/light_mask/burano.png b/demos/2d/light_mask/burano.png
new file mode 100644
index 0000000000..6eec09d585
--- /dev/null
+++ b/demos/2d/light_mask/burano.png
Binary files differ
diff --git a/demos/2d/light_mask/engine.cfg b/demos/2d/light_mask/engine.cfg
new file mode 100644
index 0000000000..39608669ab
--- /dev/null
+++ b/demos/2d/light_mask/engine.cfg
@@ -0,0 +1,9 @@
+[application]
+
+name="Using Lights As Mask"
+main_scene="res://lightmask.scn"
+icon="res://icon.png"
+
+[rasterizer]
+
+shadow_filter=3
diff --git a/demos/2d/light_mask/icon.png b/demos/2d/light_mask/icon.png
new file mode 100644
index 0000000000..34a6b709f6
--- /dev/null
+++ b/demos/2d/light_mask/icon.png
Binary files differ
diff --git a/demos/2d/light_mask/lightmask.scn b/demos/2d/light_mask/lightmask.scn
new file mode 100644
index 0000000000..08805f44c6
--- /dev/null
+++ b/demos/2d/light_mask/lightmask.scn
Binary files differ
diff --git a/demos/2d/light_mask/splat.png b/demos/2d/light_mask/splat.png
new file mode 100644
index 0000000000..8c35f068a0
--- /dev/null
+++ b/demos/2d/light_mask/splat.png
Binary files differ
diff --git a/demos/2d/lights_shadows/bg.png b/demos/2d/lights_shadows/bg.png
new file mode 100644
index 0000000000..4a3376f484
--- /dev/null
+++ b/demos/2d/lights_shadows/bg.png
Binary files differ
diff --git a/demos/2d/lights_shadows/caster.png b/demos/2d/lights_shadows/caster.png
new file mode 100644
index 0000000000..bf53a4565b
--- /dev/null
+++ b/demos/2d/lights_shadows/caster.png
Binary files differ
diff --git a/demos/2d/lights_shadows/engine.cfg b/demos/2d/lights_shadows/engine.cfg
new file mode 100644
index 0000000000..80142633d3
--- /dev/null
+++ b/demos/2d/lights_shadows/engine.cfg
@@ -0,0 +1,16 @@
+[application]
+
+name="2D Lighting"
+main_scene="res://light_shadows.scn"
+icon="res://icon.png"
+
+[display]
+
+stretch_mode="2d"
+width=800
+height=600
+stretch_aspect="keep"
+
+[rasterizer]
+
+shadow_filter=2
diff --git a/demos/2d/lights_shadows/icon.png b/demos/2d/lights_shadows/icon.png
new file mode 100644
index 0000000000..554f01bb46
--- /dev/null
+++ b/demos/2d/lights_shadows/icon.png
Binary files differ
diff --git a/demos/2d/lights_shadows/light.png b/demos/2d/lights_shadows/light.png
new file mode 100644
index 0000000000..936860de52
--- /dev/null
+++ b/demos/2d/lights_shadows/light.png
Binary files differ
diff --git a/demos/2d/lights_shadows/light_shadows.scn b/demos/2d/lights_shadows/light_shadows.scn
new file mode 100644
index 0000000000..152f68a407
--- /dev/null
+++ b/demos/2d/lights_shadows/light_shadows.scn
Binary files differ
diff --git a/demos/2d/lights_shadows/spot.png b/demos/2d/lights_shadows/spot.png
new file mode 100644
index 0000000000..9ab2d34963
--- /dev/null
+++ b/demos/2d/lights_shadows/spot.png
Binary files differ
diff --git a/demos/2d/lookat/arrow.png b/demos/2d/lookat/arrow.png
new file mode 100644
index 0000000000..25db91e8d1
--- /dev/null
+++ b/demos/2d/lookat/arrow.png
Binary files differ
diff --git a/demos/2d/lookat/engine.cfg b/demos/2d/lookat/engine.cfg
new file mode 100644
index 0000000000..81df107f0e
--- /dev/null
+++ b/demos/2d/lookat/engine.cfg
@@ -0,0 +1,5 @@
+[application]
+
+name="Look At Pointer"
+main_scene="res://lookat.scn"
+icon="res://icon.png"
diff --git a/demos/2d/lookat/icon.png b/demos/2d/lookat/icon.png
new file mode 100644
index 0000000000..442cc1799f
--- /dev/null
+++ b/demos/2d/lookat/icon.png
Binary files differ
diff --git a/demos/2d/lookat/lookat.gd b/demos/2d/lookat/lookat.gd
new file mode 100644
index 0000000000..742c5b0671
--- /dev/null
+++ b/demos/2d/lookat/lookat.gd
@@ -0,0 +1,43 @@
+
+extends Sprite
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+
+const MODE_DIRECT=0
+const MODE_CONSTANT=1
+const MODE_SMOOTH=2
+
+const ROTATION_SPEED = 1
+const SMOOTH_SPEED = 2.0
+
+export(int,"Direct","Constant","Smooth") var mode=MODE_DIRECT
+
+func _process(delta):
+ var mpos = get_viewport().get_mouse_pos()
+
+ if (mode==MODE_DIRECT):
+
+ look_at(mpos)
+
+ elif (mode==MODE_CONSTANT):
+
+ var ang = get_angle_to(mpos)
+ var s = sign(ang)
+ ang=abs(ang)
+
+ rotate( min(ang,ROTATION_SPEED*delta)*s )
+
+ elif (mode==MODE_SMOOTH):
+
+ var ang = get_angle_to(mpos)
+
+ rotate( ang*delta*SMOOTH_SPEED )
+
+func _ready():
+ # Initialization here
+ set_process(true)
+ pass
+
+
diff --git a/demos/2d/lookat/lookat.scn b/demos/2d/lookat/lookat.scn
new file mode 100644
index 0000000000..880070b4c7
--- /dev/null
+++ b/demos/2d/lookat/lookat.scn
Binary files differ
diff --git a/demos/2d/motion/car.png b/demos/2d/motion/car.png
new file mode 100644
index 0000000000..7ea973ceeb
--- /dev/null
+++ b/demos/2d/motion/car.png
Binary files differ
diff --git a/demos/2d/motion/engine.cfg b/demos/2d/motion/engine.cfg
new file mode 100644
index 0000000000..6e660572d6
--- /dev/null
+++ b/demos/2d/motion/engine.cfg
@@ -0,0 +1,12 @@
+[application]
+
+name="Motion Test"
+main_scene="res://motion.scn"
+icon="res://icon.png"
+
+[display]
+
+width=800
+height=600
+stretch_mode="2d"
+stretch_aspect="keep"
diff --git a/demos/2d/motion/icon.png b/demos/2d/motion/icon.png
new file mode 100644
index 0000000000..9e64961d3c
--- /dev/null
+++ b/demos/2d/motion/icon.png
Binary files differ
diff --git a/demos/2d/motion/motion.gd b/demos/2d/motion/motion.gd
new file mode 100644
index 0000000000..8f8f56a889
--- /dev/null
+++ b/demos/2d/motion/motion.gd
@@ -0,0 +1,38 @@
+
+extends Sprite
+
+
+export var use_idle=true
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+const BEGIN = -113
+const END = 907
+const TIME = 5.0 # seconds
+const SPEED = (END-BEGIN)/TIME
+
+func _process(delta):
+ var ofs = get_pos()
+ ofs.x+=delta*SPEED
+ if (ofs.x>END):
+ ofs.x=BEGIN
+ set_pos(ofs)
+
+func _fixed_process(delta):
+ var ofs = get_pos()
+ ofs.x+=delta*SPEED
+ if (ofs.x>END):
+ ofs.x=BEGIN
+ set_pos(ofs)
+
+
+func _ready():
+ # Initialization here
+ if (use_idle):
+ set_process(true)
+ else:
+ set_fixed_process(true)
+ pass
+
+
diff --git a/demos/2d/motion/motion.scn b/demos/2d/motion/motion.scn
new file mode 100644
index 0000000000..6c5b5307ac
--- /dev/null
+++ b/demos/2d/motion/motion.scn
Binary files differ
diff --git a/demos/2d/navpoly/agent.png b/demos/2d/navpoly/agent.png
new file mode 100644
index 0000000000..23e396c478
--- /dev/null
+++ b/demos/2d/navpoly/agent.png
Binary files differ
diff --git a/demos/2d/navpoly/engine.cfg b/demos/2d/navpoly/engine.cfg
new file mode 100644
index 0000000000..b750419915
--- /dev/null
+++ b/demos/2d/navpoly/engine.cfg
@@ -0,0 +1,12 @@
+[application]
+
+name="Navigation Polygon (2D)"
+main_scene="res://navigation.scn"
+icon="res://icon.png"
+
+[display]
+
+width=800
+height=600
+stretch_mode="2d"
+stretch_aspect="keep"
diff --git a/demos/2d/navpoly/icon.png b/demos/2d/navpoly/icon.png
new file mode 100644
index 0000000000..7a28a367c6
--- /dev/null
+++ b/demos/2d/navpoly/icon.png
Binary files differ
diff --git a/demos/2d/navpoly/navigation.gd b/demos/2d/navpoly/navigation.gd
new file mode 100644
index 0000000000..9c3dc2921d
--- /dev/null
+++ b/demos/2d/navpoly/navigation.gd
@@ -0,0 +1,63 @@
+
+extends Navigation2D
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+var begin=Vector2()
+var end=Vector2()
+var path=[]
+
+const SPEED=200.0
+
+func _process(delta):
+
+
+ if (path.size()>1):
+
+ var to_walk = delta*SPEED
+ while(to_walk>0 and path.size()>=2):
+ var pfrom = path[path.size()-1]
+ var pto = path[path.size()-2]
+ var d = pfrom.distance_to(pto)
+ if (d<=to_walk):
+ path.remove(path.size()-1)
+ to_walk-=d
+ else:
+ path[path.size()-1] = pfrom.linear_interpolate(pto,to_walk/d)
+ to_walk=0
+
+ var atpos = path[path.size()-1]
+ get_node("agent").set_pos(atpos)
+
+ if (path.size()<2):
+ path=[]
+ set_process(false)
+
+ else:
+ set_process(false)
+
+
+
+func _update_path():
+
+ var p = get_simple_path(begin,end,true)
+ path=Array(p) # Vector2array to complex to use, convert to regular array
+ path.invert()
+
+ set_process(true)
+
+
+func _input(ev):
+ if (ev.type==InputEvent.MOUSE_BUTTON and ev.pressed and ev.button_index==1):
+ begin=get_node("agent").get_pos()
+ #mouse to local navigatio cooards
+ end=ev.pos - get_pos()
+ _update_path()
+
+func _ready():
+ # Initialization here
+ set_process_input(true)
+ pass
+
+
diff --git a/demos/2d/navpoly/navigation.scn b/demos/2d/navpoly/navigation.scn
new file mode 100644
index 0000000000..1bb7de391b
--- /dev/null
+++ b/demos/2d/navpoly/navigation.scn
Binary files differ
diff --git a/demos/2d/navpoly/navigation2.scn b/demos/2d/navpoly/navigation2.scn
new file mode 100644
index 0000000000..224aed73f5
--- /dev/null
+++ b/demos/2d/navpoly/navigation2.scn
Binary files differ
diff --git a/demos/2d/navpoly/path.png b/demos/2d/navpoly/path.png
new file mode 100644
index 0000000000..52a6d507c3
--- /dev/null
+++ b/demos/2d/navpoly/path.png
Binary files differ
diff --git a/demos/2d/normalmaps/diffuse.jpg b/demos/2d/normalmaps/diffuse.jpg
new file mode 100644
index 0000000000..87bc9cf158
--- /dev/null
+++ b/demos/2d/normalmaps/diffuse.jpg
Binary files differ
diff --git a/demos/2d/normalmaps/diffuse.png b/demos/2d/normalmaps/diffuse.png
new file mode 100644
index 0000000000..634d955f8d
--- /dev/null
+++ b/demos/2d/normalmaps/diffuse.png
Binary files differ
diff --git a/demos/2d/normalmaps/engine.cfg b/demos/2d/normalmaps/engine.cfg
new file mode 100644
index 0000000000..4f9f4f67f0
--- /dev/null
+++ b/demos/2d/normalmaps/engine.cfg
@@ -0,0 +1,12 @@
+[application]
+
+name="2D Normal Mapping"
+main_scene="res://normalmap.scn"
+icon="res://icon.png"
+
+[display]
+
+stretch_mode="2d"
+width=800
+height=600
+stretch_aspect="ignore"
diff --git a/demos/2d/normalmaps/icon.png b/demos/2d/normalmaps/icon.png
new file mode 100644
index 0000000000..11ff5de829
--- /dev/null
+++ b/demos/2d/normalmaps/icon.png
Binary files differ
diff --git a/demos/2d/normalmaps/light.png b/demos/2d/normalmaps/light.png
new file mode 100644
index 0000000000..9568298086
--- /dev/null
+++ b/demos/2d/normalmaps/light.png
Binary files differ
diff --git a/demos/2d/normalmaps/normal.png b/demos/2d/normalmaps/normal.png
new file mode 100644
index 0000000000..d5b3d53a24
--- /dev/null
+++ b/demos/2d/normalmaps/normal.png
Binary files differ
diff --git a/demos/2d/normalmaps/normal_material.res b/demos/2d/normalmaps/normal_material.res
new file mode 100644
index 0000000000..34129cccdc
--- /dev/null
+++ b/demos/2d/normalmaps/normal_material.res
Binary files differ
diff --git a/demos/2d/normalmaps/normalmap.scn b/demos/2d/normalmaps/normalmap.scn
new file mode 100644
index 0000000000..ab737e83f3
--- /dev/null
+++ b/demos/2d/normalmaps/normalmap.scn
Binary files differ
diff --git a/demos/2d/platformer/coin.gd b/demos/2d/platformer/coin.gd
index 3e31a395ae..983cd46d88 100644
--- a/demos/2d/platformer/coin.gd
+++ b/demos/2d/platformer/coin.gd
@@ -18,3 +18,11 @@ func _ready():
# Initalization here
pass
+
+
+func _on_coin_area_enter( area ):
+ pass # replace with function body
+
+
+func _on_coin_area_enter_shape( area_id, area, area_shape, area_shape ):
+ pass # replace with function body
diff --git a/demos/2d/platformer/enemy.gd b/demos/2d/platformer/enemy.gd
index b4e70477a8..a264cd0cff 100644
--- a/demos/2d/platformer/enemy.gd
+++ b/demos/2d/platformer/enemy.gd
@@ -56,7 +56,7 @@ func _integrate_forces(s):
state=STATE_DYING
#lv=s.get_contact_local_normal(i)*400
s.set_angular_velocity(sign(dp.x)*33.0)
- set_friction(true)
+ set_friction(1)
cc.disable()
get_node("sound").play("hit")
diff --git a/demos/2d/platformer/enemy.xml b/demos/2d/platformer/enemy.xml
index 470797db46..ad3a70931d 100644
--- a/demos/2d/platformer/enemy.xml
+++ b/demos/2d/platformer/enemy.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="11" version="1.0" version_name="Godot Engine v1.0.3917-beta1">
- <ext_resource path="res://sound_explode.*" type="Sample"></ext_resource>
- <ext_resource path="res://enemy.*" type="Texture"></ext_resource>
- <ext_resource path="res://enemy.*" type="Script"></ext_resource>
- <ext_resource path="res://sound_hit.*" type="Sample"></ext_resource>
- <ext_resource path="res://bullet.*" type="Texture"></ext_resource>
+<resource_file type="PackedScene" subresource_count="12" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+ <ext_resource path="res://bullet.png" type="Texture" index="2"></ext_resource>
+ <ext_resource path="res://enemy.gd" type="Script" index="0"></ext_resource>
+ <ext_resource path="res://enemy.png" type="Texture" index="1"></ext_resource>
+ <ext_resource path="res://sound_hit.wav" type="Sample" index="4"></ext_resource>
+ <ext_resource path="res://sound_explode.wav" type="Sample" index="3"></ext_resource>
<resource type="CircleShape2D" path="local://1">
<real name="custom_solver_bias"> 0 </real>
<real name="radius"> 14 </real>
@@ -21,6 +21,8 @@
<dictionary name="tracks/0/keys" shared="false">
<string> "cont" </string>
<bool> False </bool>
+ <string> "times" </string>
+ <real_array len="10"> 0, 0.75, 1.5, 2.25, 3, 3.75, 4.5, 5.25, 6, 6.75 </real_array>
<string> "transitions" </string>
<real_array len="10"> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 </real_array>
<string> "values" </string>
@@ -36,8 +38,33 @@
<int> 7 </int>
<int> 5 </int>
</array>
+ </dictionary>
+
+ </resource>
+ <resource type="Animation" path="local://4">
+ <string name="resource/name"> "walk" </string>
+ <real name="length"> 1.25 </real>
+ <bool name="loop"> True </bool>
+ <real name="step"> 0.25 </real>
+ <string name="tracks/0/type"> "value" </string>
+ <node_path name="tracks/0/path"> "sprite:frame" </node_path>
+ <int name="tracks/0/interp"> 1 </int>
+ <dictionary name="tracks/0/keys" shared="false">
+ <string> "cont" </string>
+ <bool> False </bool>
<string> "times" </string>
- <real_array len="10"> 0, 0.75, 1.5, 2.25, 3, 3.75, 4.5, 5.25, 6, 6.75 </real_array>
+ <real_array len="6"> 0, 0.25, 0.5, 0.75, 1, 1.25 </real_array>
+ <string> "transitions" </string>
+ <real_array len="6"> 1, 1, 1, 1, 1, 1 </real_array>
+ <string> "values" </string>
+ <array len="6" shared="false">
+ <int> 0 </int>
+ <int> 1 </int>
+ <int> 2 </int>
+ <int> 3 </int>
+ <int> 4 </int>
+ <int> 0 </int>
+ </array>
</dictionary>
</resource>
@@ -52,6 +79,8 @@
<dictionary name="tracks/0/keys" shared="false">
<string> "cont" </string>
<bool> True </bool>
+ <string> "times" </string>
+ <real_array len="2"> 3.58422, 4.33851 </real_array>
<string> "transitions" </string>
<real_array len="2"> 1, 1 </real_array>
<string> "values" </string>
@@ -59,8 +88,6 @@
<real> 1 </real>
<real> 0 </real>
</array>
- <string> "times" </string>
- <real_array len="2"> 3.58422, 4.33851 </real_array>
</dictionary>
<string name="tracks/1/type"> "value" </string>
<node_path name="tracks/1/path"> "sprite:frame" </node_path>
@@ -68,14 +95,14 @@
<dictionary name="tracks/1/keys" shared="false">
<string> "cont" </string>
<bool> True </bool>
+ <string> "times" </string>
+ <real_array len="1"> 0 </real_array>
<string> "transitions" </string>
<real_array len="1"> 1 </real_array>
<string> "values" </string>
<array len="1" shared="false">
<int> 4 </int>
</array>
- <string> "times" </string>
- <real_array len="1"> 0 </real_array>
</dictionary>
<string name="tracks/2/type"> "value" </string>
<node_path name="tracks/2/path"> "Particles2D:config/emitting" </node_path>
@@ -83,19 +110,21 @@
<dictionary name="tracks/2/keys" shared="false">
<string> "cont" </string>
<bool> False </bool>
+ <string> "times" </string>
+ <real_array len="1"> 3.47394 </real_array>
<string> "transitions" </string>
<real_array len="1"> 1 </real_array>
<string> "values" </string>
<array len="1" shared="false">
<bool> True </bool>
</array>
- <string> "times" </string>
- <real_array len="1"> 3.47394 </real_array>
</dictionary>
<string name="tracks/3/type"> "method" </string>
<node_path name="tracks/3/path"> "." </node_path>
<int name="tracks/3/interp"> 1 </int>
<dictionary name="tracks/3/keys" shared="false">
+ <string> "times" </string>
+ <real_array len="2"> 3.20357, 5.07305 </real_array>
<string> "transitions" </string>
<real_array len="2"> 1, 1 </real_array>
<string> "values" </string>
@@ -115,36 +144,12 @@
<string> "_die" </string>
</dictionary>
</array>
- <string> "times" </string>
- <real_array len="2"> 3.20357, 5.07305 </real_array>
</dictionary>
</resource>
- <resource type="Animation" path="local://4">
- <string name="resource/name"> "walk" </string>
- <real name="length"> 1.25 </real>
- <bool name="loop"> True </bool>
- <real name="step"> 0.25 </real>
- <string name="tracks/0/type"> "value" </string>
- <node_path name="tracks/0/path"> "sprite:frame" </node_path>
- <int name="tracks/0/interp"> 1 </int>
- <dictionary name="tracks/0/keys" shared="false">
- <string> "cont" </string>
- <bool> False </bool>
- <string> "transitions" </string>
- <real_array len="6"> 1, 1, 1, 1, 1, 1 </real_array>
- <string> "values" </string>
- <array len="6" shared="false">
- <int> 0 </int>
- <int> 1 </int>
- <int> 2 </int>
- <int> 3 </int>
- <int> 4 </int>
- <int> 0 </int>
- </array>
- <string> "times" </string>
- <real_array len="6"> 0, 0.25, 0.5, 0.75, 1, 1.25 </real_array>
- </dictionary>
+ <resource type="ColorRamp" path="local://6">
+ <real_array name="offsets" len="2"> 0, 1 </real_array>
+ <color_array name="colors" len="2"> 1, 0.884956, 0.823009, 1, 0.768627, 0.389381, 0, 0 </color_array>
</resource>
<resource type="SampleLibrary" path="local://5">
@@ -154,7 +159,7 @@
<string> "pitch" </string>
<real> 1 </real>
<string> "sample" </string>
- <resource resource_type="Sample" path="res://sound_explode.*"> </resource>
+ <resource external="3"> </resource>
</dictionary>
<dictionary name="samples/hit" shared="false">
<string> "db" </string>
@@ -162,24 +167,21 @@
<string> "pitch" </string>
<real> 1 </real>
<string> "sample" </string>
- <resource resource_type="Sample" path="res://sound_hit.*"> </resource>
+ <resource external="4"> </resource>
</dictionary>
</resource>
<main_resource>
<dictionary name="_bundled" shared="false">
+ <string> "conn_count" </string>
+ <int> 0 </int>
+ <string> "conns" </string>
+ <int_array len="0"> </int_array>
<string> "names" </string>
- <string_array len="132">
+ <string_array len="107">
<string> "enemy" </string>
<string> "RigidBody2D" </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> "input/pickable" </string>
<string> "shapes/0/shape" </string>
<string> "shapes/0/transform" </string>
<string> "shapes/0/trigger" </string>
@@ -189,71 +191,71 @@
<string> "shapes/2/shape" </string>
<string> "shapes/2/transform" </string>
<string> "shapes/2/trigger" </string>
+ <string> "collision/layers" </string>
+ <string> "collision/mask" </string>
<string> "mode" </string>
<string> "mass" </string>
<string> "friction" </string>
<string> "bounce" </string>
+ <string> "gravity_scale" </string>
<string> "custom_integrator" </string>
<string> "continuous_cd" </string>
<string> "contacts_reported" </string>
<string> "contact_monitor" </string>
- <string> "active" </string>
+ <string> "sleeping" </string>
<string> "can_sleep" </string>
<string> "velocity/linear" </string>
<string> "velocity/angular" </string>
+ <string> "damp_override/linear" </string>
+ <string> "damp_override/angular" </string>
<string> "script/script" </string>
<string> "__meta__" </string>
<string> "enabler" </string>
<string> "VisibilityEnabler2D" </string>
+ <string> "transform/pos" </string>
+ <string> "transform/scale" </string>
<string> "rect" </string>
<string> "enabler/pause_animations" </string>
<string> "enabler/freeze_bodies" </string>
+ <string> "enabler/pause_particles" </string>
+ <string> "enabler/process_parent" </string>
+ <string> "enabler/fixed_process_parent" </string>
<string> "anim" </string>
<string> "AnimationPlayer" </string>
<string> "playback/process_mode" </string>
<string> "playback/default_blend_time" </string>
<string> "root/root" </string>
<string> "anims/idle" </string>
- <string> "anims/explode" </string>
<string> "anims/walk" </string>
+ <string> "anims/explode" </string>
<string> "playback/active" </string>
<string> "playback/speed" </string>
<string> "blend_times" </string>
<string> "autoplay" </string>
- <string> "CollisionShape2D" </string>
- <string> "shape" </string>
- <string> "trigger" </string>
- <string> "CollisionShape2D 2" </string>
- <string> "CollisionShape2D 3" </string>
<string> "sprite" </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> "_update_shape_index" </string>
+ <string> "CollisionShape2D 2" </string>
+ <string> "CollisionShape2D 3" </string>
<string> "raycast_left" </string>
<string> "RayCast2D" </string>
<string> "enabled" </string>
<string> "cast_to" </string>
+ <string> "layer_mask" </string>
<string> "raycast_right" </string>
<string> "Particles2D" </string>
+ <string> "visibility/self_opacity" </string>
<string> "visibility/blend_mode" </string>
<string> "config/amount" </string>
<string> "config/lifetime" </string>
- <string> "config/time_scale" </string>
- <string> "config/preprocess" </string>
<string> "config/emit_timeout" </string>
<string> "config/emitting" </string>
- <string> "config/offset" </string>
- <string> "config/half_extents" </string>
- <string> "config/local_space" </string>
<string> "config/explosiveness" </string>
<string> "config/texture" </string>
<string> "params/direction" </string>
@@ -266,32 +268,14 @@
<string> "params/radial_accel" </string>
<string> "params/tangential_accel" </string>
<string> "params/damping" </string>
+ <string> "params/initial_angle" </string>
<string> "params/initial_size" </string>
<string> "params/final_size" </string>
<string> "params/hue_variation" </string>
- <string> "randomness/direction" </string>
- <string> "randomness/spread" </string>
- <string> "randomness/linear_velocity" </string>
+ <string> "params/anim_speed_scale" </string>
+ <string> "params/anim_initial_pos" </string>
<string> "randomness/spin_velocity" </string>
- <string> "randomness/orbit_velocity" </string>
- <string> "randomness/gravity_direction" </string>
- <string> "randomness/gravity_strength" </string>
- <string> "randomness/radial_accel" </string>
- <string> "randomness/tangential_accel" </string>
- <string> "randomness/damping" </string>
- <string> "randomness/initial_size" </string>
- <string> "randomness/final_size" </string>
- <string> "randomness/hue_variation" </string>
- <string> "color_phases/count" </string>
- <string> "phase_0/pos" </string>
- <string> "phase_0/color" </string>
- <string> "phase_1/pos" </string>
- <string> "phase_1/color" </string>
- <string> "phase_2/pos" </string>
- <string> "phase_2/color" </string>
- <string> "phase_3/pos" </string>
- <string> "phase_3/color" </string>
- <string> "emission_points" </string>
+ <string> "color/color_ramp" </string>
<string> "sound" </string>
<string> "SamplePlayer2D" </string>
<string> "params/volume_db" </string>
@@ -303,125 +287,154 @@
<string> "config/samples" </string>
<string> "config/pitch_random" </string>
</string_array>
- <string> "version" </string>
- <int> 1 </int>
- <string> "conn_count" </string>
- <int> 0 </int>
<string> "node_count" </string>
<int> 11 </int>
+ <string> "nodes" </string>
+ <int_array len="285"> -1, -1, 1, 0, -1, 29, 2, 0, 3, 1, 4, 2, 5, 0, 6, 1, 7, 3, 8, 0, 9, 1, 10, 4, 11, 0, 12, 5, 13, 5, 14, 6, 15, 7, 16, 8, 17, 8, 18, 7, 19, 0, 20, 9, 21, 10, 22, 0, 23, 0, 24, 11, 25, 12, 26, 8, 27, 13, 28, 13, 29, 14, 30, 15, 0, 0, 0, 32, 31, -1, 8, 33, 16, 34, 17, 35, 18, 36, 11, 37, 11, 38, 11, 39, 0, 40, 0, 0, 0, 0, 42, 41, -1, 10, 43, 5, 44, 8, 45, 19, 46, 20, 47, 21, 48, 22, 49, 11, 50, 23, 51, 24, 52, 25, 0, 0, 0, 54, 53, -1, 3, 55, 26, 56, 27, 57, 10, 0, 0, 0, 58, 58, -1, 4, 33, 28, 59, 1, 60, 0, 61, 29, 0, 0, 0, 58, 62, -1, 4, 33, 30, 59, 1, 60, 0, 61, 29, 0, 0, 0, 58, 63, -1, 4, 33, 31, 59, 1, 60, 0, 61, 29, 0, 0, 0, 65, 64, -1, 4, 33, 32, 66, 11, 67, 33, 68, 5, 0, 0, 0, 65, 69, -1, 4, 33, 34, 66, 11, 67, 33, 68, 5, 0, 0, 0, 70, 70, -1, 26, 71, 35, 72, 5, 73, 36, 74, 37, 75, 37, 76, 0, 77, 38, 78, 39, 79, 8, 80, 40, 81, 41, 82, 42, 83, 8, 84, 8, 85, 43, 86, 8, 87, 8, 88, 8, 89, 8, 90, 42, 91, 23, 92, 8, 93, 7, 94, 8, 95, 7, 96, 44, 0, 0, 0, 98, 97, -1, 8, 99, 8, 100, 7, 101, 7, 102, 45, 103, 7, 104, 46, 105, 47, 106, 8, 0 </int_array>
<string> "variants" </string>
- <array len="51" shared="false">
- <bool> True </bool>
- <real> 1 </real>
- <vector2> 0, 0 </vector2>
- <real> 0 </real>
- <vector2> 1, 1 </vector2>
- <int> 3 </int>
+ <array len="48" shared="false">
+ <bool> False </bool>
<resource resource_type="Shape2D" path="local://1"> </resource>
<matrix32> 1, -0, 0, 1, -1.08072, -2.16144 </matrix32>
- <bool> False </bool>
<matrix32> 1, -0, 0, 1, 6.48431, 3.24216 </matrix32>
<matrix32> 1, -0, 0, 1, -12.495, 3.53415 </matrix32>
+ <int> 1 </int>
<int> 2 </int>
+ <real> 1 </real>
+ <real> 0 </real>
+ <int> 0 </int>
<int> 4 </int>
- <resource resource_type="Script" path="res://enemy.*"> </resource>
+ <bool> True </bool>
+ <vector2> 0, 0 </vector2>
+ <real> -1 </real>
+ <resource external="0"> </resource>
<dictionary shared="false">
+ <string> "__editor_plugin_screen__" </string>
+ <string> "2D" </string>
<string> "__editor_plugin_states__" </string>
<dictionary shared="false">
- <string> "Script" </string>
- <dictionary shared="false">
- <string> "current" </string>
- <int> 0 </int>
- <string> "sources" </string>
- <array len="1" shared="false">
- <string> "res://enemy.gd" </string>
- </array>
- </dictionary>
<string> "2D" </string>
<dictionary shared="false">
- <string> "pixel_snap" </string>
+ <string> "ofs" </string>
+ <vector2> -227.625, -197.9 </vector2>
+ <string> "snap_grid" </string>
+ <bool> False </bool>
+ <string> "snap_offset" </string>
+ <vector2> 0, 0 </vector2>
+ <string> "snap_pixel" </string>
+ <bool> False </bool>
+ <string> "snap_relative" </string>
+ <bool> False </bool>
+ <string> "snap_rotation" </string>
<bool> False </bool>
+ <string> "snap_rotation_offset" </string>
+ <real> 0 </real>
+ <string> "snap_rotation_step" </string>
+ <real> 0.261799 </real>
+ <string> "snap_show_grid" </string>
+ <bool> False </bool>
+ <string> "snap_step" </string>
+ <vector2> 10, 10 </vector2>
<string> "zoom" </string>
<real> 1.108033 </real>
- <string> "ofs" </string>
- <vector2> -227.625, -197.9 </vector2>
</dictionary>
<string> "3D" </string>
<dictionary shared="false">
- <string> "zfar" </string>
- <real> 500 </real>
+ <string> "ambient_light_color" </string>
+ <color> 0.15, 0.15, 0.15, 1 </color>
+ <string> "default_light" </string>
+ <bool> True </bool>
+ <string> "default_srgb" </string>
+ <bool> False </bool>
+ <string> "deflight_rot_x" </string>
+ <real> 0.942478 </real>
+ <string> "deflight_rot_y" </string>
+ <real> 0.628319 </real>
<string> "fov" </string>
<real> 45 </real>
+ <string> "show_grid" </string>
+ <bool> True </bool>
+ <string> "show_origin" </string>
+ <bool> True </bool>
+ <string> "viewport_mode" </string>
+ <int> 1 </int>
<string> "viewports" </string>
<array len="4" shared="false">
<dictionary shared="false">
<string> "distance" </string>
<real> 4 </real>
+ <string> "listener" </string>
+ <bool> True </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
<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> "listener" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
<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> "listener" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
<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> "listener" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
<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> "zfar" </string>
+ <real> 500 </real>
<string> "znear" </string>
<real> 0.1 </real>
</dictionary>
+ <string> "Anim" </string>
+ <dictionary shared="false">
+ <string> "visible" </string>
+ <bool> False </bool>
+ </dictionary>
</dictionary>
<string> "__editor_run_settings__" </string>
<dictionary shared="false">
@@ -430,28 +443,24 @@
<string> "run_mode" </string>
<int> 0 </int>
</dictionary>
- <string> "__editor_plugin_screen__" </string>
- <string> "2D" </string>
</dictionary>
<vector2> 16.2569, 11.0034 </vector2>
<vector2> 23.5056, 10.8629 </vector2>
<rect2> -10, -10, 20, 20 </rect2>
- <int> 1 </int>
<node_path> ".." </node_path>
<resource resource_type="Animation" path="local://2"> </resource>
- <resource resource_type="Animation" path="local://3"> </resource>
<resource resource_type="Animation" path="local://4"> </resource>
+ <resource resource_type="Animation" path="local://3"> </resource>
<real> 3 </real>
<array len="0" shared="false">
</array>
<string> "" </string>
+ <resource external="1"> </resource>
+ <int> 8 </int>
<vector2> -1.08072, -2.16144 </vector2>
+ <int> -1 </int>
<vector2> 6.48431, 3.24216 </vector2>
<vector2> -12.495, 3.53415 </vector2>
- <resource resource_type="Texture" path="res://enemy.*"> </resource>
- <int> 8 </int>
- <color> 1, 1, 1, 1 </color>
- <rect2> 0, 0, 0, 0 </rect2>
<vector2> -33.2868, -9.34363 </vector2>
<vector2> 0, 45 </vector2>
<vector2> 29.1987, -9.34363 </vector2>
@@ -459,22 +468,18 @@
<int> 32 </int>
<real> 0.5 </real>
<real> 0.1 </real>
- <resource resource_type="Texture" path="res://bullet.*"> </resource>
+ <resource external="2"> </resource>
<real> 180 </real>
<real> 90 </real>
<real> 2 </real>
<real> 9.8 </real>
- <color> 1, 0.884956, 0.823009, 1 </color>
- <color> 0.768627, 0.389381, 0, 0 </color>
- <color> 0, 0, 0, 1 </color>
- <vector2_array len="0"> </vector2_array>
+ <resource resource_type="ColorRamp" path="local://6"> </resource>
<real> 2048 </real>
+ <int> 3 </int>
<resource resource_type="SampleLibrary" path="local://5"> </resource>
</array>
- <string> "nodes" </string>
- <int_array len="445"> -1, -1, 1, 0, -1, 31, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 8, 13, 6, 14, 9, 15, 8, 16, 6, 17, 10, 18, 8, 19, 11, 20, 1, 21, 3, 22, 3, 23, 8, 24, 8, 25, 12, 26, 8, 27, 0, 28, 0, 29, 2, 30, 3, 31, 13, 32, 14, 0, 0, 0, 34, 33, -1, 10, 2, 0, 3, 1, 4, 1, 5, 0, 6, 15, 7, 3, 8, 16, 35, 17, 36, 0, 37, 0, 0, 0, 0, 39, 38, -1, 10, 40, 18, 41, 3, 42, 19, 43, 20, 44, 21, 45, 22, 46, 0, 47, 23, 48, 24, 49, 25, 0, 0, 0, 50, 50, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 26, 7, 3, 8, 4, 51, 6, 52, 8, 0, 0, 0, 50, 53, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 27, 7, 3, 8, 4, 51, 6, 52, 8, 0, 0, 0, 50, 54, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 28, 7, 3, 8, 4, 51, 6, 52, 8, 0, 0, 0, 56, 55, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 57, 29, 58, 0, 59, 2, 60, 8, 61, 8, 62, 18, 63, 30, 64, 12, 65, 31, 66, 8, 67, 32, 0, 0, 0, 69, 68, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 33, 7, 3, 8, 4, 70, 0, 71, 34, 0, 0, 0, 69, 72, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 35, 7, 3, 8, 4, 70, 0, 71, 34, 0, 0, 0, 73, 73, -1, 55, 2, 0, 3, 1, 4, 36, 5, 0, 74, 18, 6, 2, 7, 3, 8, 4, 75, 37, 76, 38, 77, 1, 78, 3, 79, 38, 80, 8, 81, 2, 82, 2, 83, 0, 84, 39, 85, 40, 86, 3, 87, 41, 88, 42, 89, 43, 90, 3, 91, 3, 92, 44, 93, 3, 94, 3, 95, 3, 96, 43, 97, 23, 98, 3, 99, 3, 100, 3, 101, 3, 102, 1, 103, 3, 104, 3, 105, 3, 106, 3, 107, 3, 108, 3, 109, 3, 110, 3, 111, 3, 112, 11, 113, 3, 114, 45, 115, 1, 116, 46, 117, 1, 118, 47, 119, 1, 120, 47, 121, 48, 0, 0, 0, 123, 122, -1, 15, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 124, 3, 125, 1, 126, 1, 127, 49, 128, 1, 129, 5, 130, 50, 131, 3, 0 </int_array>
- <string> "conns" </string>
- <int_array len="0"> </int_array>
+ <string> "version" </string>
+ <int> 1 </int>
</dictionary>
</main_resource>
diff --git a/demos/2d/platformer/engine.cfg b/demos/2d/platformer/engine.cfg
index 50b6b862e9..044d661e3e 100644
--- a/demos/2d/platformer/engine.cfg
+++ b/demos/2d/platformer/engine.cfg
@@ -4,14 +4,14 @@ name="Platformer"
main_scene="res://stage.xml"
icon="res://icon.png"
name_es="Plataformero"
+target_fps="60"
[display]
width=800
height=480
-stretch_2d=false
-stretch_mode="viewport"
-stretch_aspect="keep"
+stretch_mode="2d"
+stretch_aspect="keep_height"
[image_loader]
diff --git a/demos/2d/platformer/one_way_platform.png b/demos/2d/platformer/one_way_platform.png
new file mode 100644
index 0000000000..b5eca877a6
--- /dev/null
+++ b/demos/2d/platformer/one_way_platform.png
Binary files differ
diff --git a/demos/2d/platformer/one_way_platform.xml b/demos/2d/platformer/one_way_platform.xml
new file mode 100644
index 0000000000..491dd32b17
--- /dev/null
+++ b/demos/2d/platformer/one_way_platform.xml
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<resource_file type="PackedScene" subresource_count="3" version="1.1" version_name="Godot Engine v1.1.rc1.custom_build">
+ <ext_resource path="res://one_way_platform.png" type="Texture"></ext_resource>
+ <resource type="RectangleShape2D" path="local://1">
+ <real name="custom_solver_bias"> 0 </real>
+ <vector2 name="extents"> 100, 10 </vector2>
+
+ </resource>
+ <main_resource>
+ <dictionary name="_bundled" shared="false">
+ <string> "conn_count" </string>
+ <int> 0 </int>
+ <string> "conns" </string>
+ <int_array len="0"> </int_array>
+ <string> "names" </string>
+ <string_array len="42">
+ <string> "one_way_platform" </string>
+ <string> "StaticBody2D" </string>
+ <string> "_import_path" </string>
+ <string> "visibility/visible" </string>
+ <string> "visibility/opacity" </string>
+ <string> "visibility/self_opacity" </string>
+ <string> "visibility/light_mask" </string>
+ <string> "transform/pos" </string>
+ <string> "transform/rot" </string>
+ <string> "transform/scale" </string>
+ <string> "z/z" </string>
+ <string> "z/relative" </string>
+ <string> "input/pickable" </string>
+ <string> "shape_count" </string>
+ <string> "shapes/0/shape" </string>
+ <string> "shapes/0/transform" </string>
+ <string> "shapes/0/trigger" </string>
+ <string> "collision/layers" </string>
+ <string> "collision/mask" </string>
+ <string> "one_way_collision/direction" </string>
+ <string> "one_way_collision/max_depth" </string>
+ <string> "constant_linear_velocity" </string>
+ <string> "constant_angular_velocity" </string>
+ <string> "friction" </string>
+ <string> "bounce" </string>
+ <string> "__meta__" </string>
+ <string> "sprite" </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> "node_count" </string>
+ <int> 3 </int>
+ <string> "nodes" </string>
+ <int_array len="135"> -1, -1, 1, 0, -1, 24, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 7, 4, 8, 5, 9, 6, 10, 7, 11, 1, 12, 8, 13, 3, 14, 9, 15, 10, 16, 8, 17, 3, 18, 3, 19, 11, 20, 12, 21, 4, 22, 5, 23, 2, 24, 5, 25, 13, 0, 0, 0, 27, 26, -1, 21, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 7, 4, 8, 5, 9, 6, 10, 7, 11, 1, 28, 14, 29, 1, 30, 4, 31, 8, 32, 8, 33, 3, 34, 3, 35, 7, 36, 15, 37, 8, 38, 16, 0, 0, 0, 39, 39, -1, 12, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 7, 17, 8, 5, 9, 6, 10, 7, 11, 1, 40, 9, 41, 8, 0 </int_array>
+ <string> "variants" </string>
+ <array len="18" shared="false">
+ <node_path> "" </node_path>
+ <bool> True </bool>
+ <real> 1 </real>
+ <int> 1 </int>
+ <vector2> 0, 0 </vector2>
+ <real> 0 </real>
+ <vector2> 1, 1 </vector2>
+ <int> 0 </int>
+ <bool> False </bool>
+ <resource resource_type="Shape2D" path="local://1"> </resource>
+ <matrix32> 1, -0, 0, 1, 1.46304, -13.1672 </matrix32>
+ <vector2> 0, 1 </vector2>
+ <real> 20 </real>
+ <dictionary shared="false">
+ <string> "__editor_plugin_screen__" </string>
+ <string> "2D" </string>
+ <string> "__editor_plugin_states__" </string>
+ <dictionary shared="false">
+ <string> "2D" </string>
+ <dictionary shared="false">
+ <string> "ofs" </string>
+ <vector2> -133.699, -110.553 </vector2>
+ <string> "snap_grid" </string>
+ <bool> False </bool>
+ <string> "snap_offset" </string>
+ <vector2> 0, 0 </vector2>
+ <string> "snap_pixel" </string>
+ <bool> False </bool>
+ <string> "snap_relative" </string>
+ <bool> False </bool>
+ <string> "snap_rotation" </string>
+ <bool> False </bool>
+ <string> "snap_rotation_offset" </string>
+ <real> 0 </real>
+ <string> "snap_rotation_step" </string>
+ <real> 0.261799 </real>
+ <string> "snap_show_grid" </string>
+ <bool> False </bool>
+ <string> "snap_step" </string>
+ <vector2> 10, 10 </vector2>
+ <string> "zoom" </string>
+ <real> 2.050546 </real>
+ </dictionary>
+ <string> "3D" </string>
+ <dictionary shared="false">
+ <string> "ambient_light_color" </string>
+ <color> 0.15, 0.15, 0.15, 1 </color>
+ <string> "default_light" </string>
+ <bool> True </bool>
+ <string> "default_srgb" </string>
+ <bool> False </bool>
+ <string> "deflight_rot_x" </string>
+ <real> 0.942478 </real>
+ <string> "deflight_rot_y" </string>
+ <real> 0.628319 </real>
+ <string> "fov" </string>
+ <real> 45 </real>
+ <string> "show_grid" </string>
+ <bool> True </bool>
+ <string> "show_origin" </string>
+ <bool> True </bool>
+ <string> "viewport_mode" </string>
+ <int> 1 </int>
+ <string> "viewports" </string>
+ <array len="4" shared="false">
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "listener" </string>
+ <bool> True </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "listener" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "listener" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "listener" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ </dictionary>
+ </array>
+ <string> "zfar" </string>
+ <real> 500 </real>
+ <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>
+ </dictionary>
+ <resource resource_type="Texture" path="res://one_way_platform.png"> </resource>
+ <color> 1, 1, 1, 1 </color>
+ <rect2> 0, 0, 0, 0 </rect2>
+ <vector2> 1.46304, -13.1672 </vector2>
+ </array>
+ <string> "version" </string>
+ <int> 1 </int>
+ </dictionary>
+
+ </main_resource>
+</resource_file> \ No newline at end of file
diff --git a/demos/2d/platformer/player.gd b/demos/2d/platformer/player.gd
index 481f340ab8..9ee189df21 100644
--- a/demos/2d/platformer/player.gd
+++ b/demos/2d/platformer/player.gd
@@ -33,7 +33,6 @@ var shooting=false
var WALK_ACCEL = 800.0
var WALK_DEACCEL= 800.0
var WALK_MAX_VELOCITY= 200.0
-var GRAVITY = 700.0
var AIR_ACCEL = 200.0
var AIR_DEACCEL= 200.0
var JUMP_VELOCITY=460
@@ -53,12 +52,15 @@ var enemy
func _integrate_forces(s):
+
+
var lv = s.get_linear_velocity()
var step = s.get_step()
var new_anim=anim
var new_siding_left=siding_left
+
# Get the controls
var move_left = Input.is_action_pressed("move_left")
var move_right = Input.is_action_pressed("move_right")
diff --git a/demos/2d/platformer/player.xml b/demos/2d/platformer/player.xml
index c129d01f0d..8c7b74ceae 100644
--- a/demos/2d/platformer/player.xml
+++ b/demos/2d/platformer/player.xml
@@ -1,15 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="24" version="1.0" version_name="Godot Engine v1.0.3917-beta1">
- <ext_resource path="res://osb_jump.png" type="Texture"></ext_resource>
+<resource_file type="PackedScene" subresource_count="25" version="1.1" version_name="Godot Engine v1.1.stable.custom_build">
+ <ext_resource path="res://player.gd" type="Script"></ext_resource>
+ <ext_resource path="res://robot_demo.png" type="Texture"></ext_resource>
<ext_resource path="res://bullet.png" type="Texture"></ext_resource>
- <ext_resource path="res://osb_right.png" type="Texture"></ext_resource>
<ext_resource path="res://sound_coin.wav" type="Sample"></ext_resource>
+ <ext_resource path="res://sound_jump.wav" type="Sample"></ext_resource>
<ext_resource path="res://sound_shoot.wav" type="Sample"></ext_resource>
- <ext_resource path="res://osb_fire.png" type="Texture"></ext_resource>
- <ext_resource path="res://robot_demo.png" type="Texture"></ext_resource>
<ext_resource path="res://osb_left.png" type="Texture"></ext_resource>
- <ext_resource path="res://player.gd" type="Script"></ext_resource>
- <ext_resource path="res://sound_jump.wav" type="Sample"></ext_resource>
+ <ext_resource path="res://osb_right.png" type="Texture"></ext_resource>
+ <ext_resource path="res://osb_jump.png" type="Texture"></ext_resource>
+ <ext_resource path="res://osb_fire.png" type="Texture"></ext_resource>
<resource type="RayShape2D" path="local://1">
<real name="custom_solver_bias"> 0.5 </real>
<real name="length"> 20 </real>
@@ -20,6 +20,11 @@
<vector2_array name="points" len="3"> -19.902, -24.8691, 19.3625, -24.6056, -0.138023, 16.5036 </vector2_array>
</resource>
+ <resource type="ColorRamp" path="local://14">
+ <real_array name="offsets" len="2"> 0, 1 </real_array>
+ <color_array name="colors" len="2"> 1, 1, 1, 1, 0, 0, 0, 0.0442478 </color_array>
+
+ </resource>
<resource type="Animation" path="local://3">
<string name="resource/name"> "idle" </string>
<real name="length"> 7 </real>
@@ -31,6 +36,8 @@
<dictionary name="tracks/0/keys" shared="false">
<string> "cont" </string>
<bool> False </bool>
+ <string> "times" </string>
+ <real_array len="8"> 0, 1.25, 1.5, 2, 4.5, 4.75, 5, 5.25 </real_array>
<string> "transitions" </string>
<real_array len="8"> 1, 1, 1, 1, 1, 1, 1, 1 </real_array>
<string> "values" </string>
@@ -44,14 +51,12 @@
<int> 19 </int>
<int> 16 </int>
</array>
- <string> "times" </string>
- <real_array len="8"> 0, 1.25, 1.5, 2, 4.5, 4.75, 5, 5.25 </real_array>
</dictionary>
</resource>
<resource type="Animation" path="local://4">
- <string name="resource/name"> "run" </string>
- <real name="length"> 1.25 </real>
+ <string name="resource/name"> "jumping" </string>
+ <real name="length"> 0.5 </real>
<bool name="loop"> True </bool>
<real name="step"> 0.25 </real>
<string name="tracks/0/type"> "value" </string>
@@ -60,25 +65,22 @@
<dictionary name="tracks/0/keys" shared="false">
<string> "cont" </string>
<bool> False </bool>
+ <string> "times" </string>
+ <real_array len="3"> 0, 0.25, 0.5 </real_array>
<string> "transitions" </string>
- <real_array len="6"> 1, 1, 1, 1, 1, 1 </real_array>
+ <real_array len="3"> 1, 1, 1 </real_array>
<string> "values" </string>
- <array len="6" shared="false">
- <int> 0 </int>
- <int> 1 </int>
- <int> 2 </int>
- <int> 3 </int>
- <int> 4 </int>
- <int> 0 </int>
+ <array len="3" shared="false">
+ <int> 23 </int>
+ <int> 24 </int>
+ <int> 23 </int>
</array>
- <string> "times" </string>
- <real_array len="6"> 0, 0.25, 0.5, 0.75, 1, 1.25 </real_array>
</dictionary>
</resource>
<resource type="Animation" path="local://5">
- <string name="resource/name"> "run_gun_fire" </string>
- <real name="length"> 1.25 </real>
+ <string name="resource/name"> "idle_weapon" </string>
+ <real name="length"> 0.5 </real>
<bool name="loop"> True </bool>
<real name="step"> 0.25 </real>
<string name="tracks/0/type"> "value" </string>
@@ -87,25 +89,19 @@
<dictionary name="tracks/0/keys" shared="false">
<string> "cont" </string>
<bool> False </bool>
+ <string> "times" </string>
+ <real_array len="1"> 0 </real_array>
<string> "transitions" </string>
- <real_array len="6"> 1, 1, 1, 1, 1, 1 </real_array>
+ <real_array len="1"> 1 </real_array>
<string> "values" </string>
- <array len="6" shared="false">
- <int> 10 </int>
- <int> 11 </int>
- <int> 12 </int>
- <int> 13 </int>
- <int> 14 </int>
- <int> 5 </int>
+ <array len="1" shared="false">
+ <int> 25 </int>
</array>
- <string> "times" </string>
- <real_array len="6"> 0, 0.25, 0.5, 0.75, 1, 1.25 </real_array>
</dictionary>
</resource>
<resource type="Animation" path="local://6">
- <string name="resource/name"> "jumping_weapon" </string>
- <real name="length"> 0.5 </real>
+ <real name="length"> 1.25 </real>
<bool name="loop"> True </bool>
<real name="step"> 0.25 </real>
<string name="tracks/0/type"> "value" </string>
@@ -114,20 +110,24 @@
<dictionary name="tracks/0/keys" shared="false">
<string> "cont" </string>
<bool> False </bool>
+ <string> "times" </string>
+ <real_array len="6"> 0, 0.25, 0.5, 0.75, 1, 1.25 </real_array>
<string> "transitions" </string>
- <real_array len="1"> 1 </real_array>
+ <real_array len="6"> 1, 1, 1, 1, 1, 1 </real_array>
<string> "values" </string>
- <array len="1" shared="false">
- <int> 26 </int>
+ <array len="6" shared="false">
+ <int> 0 </int>
+ <int> 1 </int>
+ <int> 2 </int>
+ <int> 3 </int>
+ <int> 4 </int>
+ <int> 0 </int>
</array>
- <string> "times" </string>
- <real_array len="1"> 0 </real_array>
</dictionary>
</resource>
- <resource type="Animation" path="local://7">
- <string name="resource/name"> "crouch" </string>
- <real name="length"> 0.01 </real>
+ <resource type="Animation" path="local://11">
+ <real name="length"> 1.25 </real>
<bool name="loop"> True </bool>
<real name="step"> 0.25 </real>
<string name="tracks/0/type"> "value" </string>
@@ -136,19 +136,24 @@
<dictionary name="tracks/0/keys" shared="false">
<string> "cont" </string>
<bool> False </bool>
+ <string> "times" </string>
+ <real_array len="6"> 0, 0.25, 0.5, 0.75, 1, 1.25 </real_array>
<string> "transitions" </string>
- <real_array len="1"> 1 </real_array>
+ <real_array len="6"> 1, 1, 1, 1, 1, 1 </real_array>
<string> "values" </string>
- <array len="1" shared="false">
- <int> 22 </int>
+ <array len="6" shared="false">
+ <int> 5 </int>
+ <int> 6 </int>
+ <int> 7 </int>
+ <int> 8 </int>
+ <int> 9 </int>
+ <int> 5 </int>
</array>
- <string> "times" </string>
- <real_array len="1"> 0 </real_array>
</dictionary>
</resource>
- <resource type="Animation" path="local://8">
- <string name="resource/name"> "jumping" </string>
+ <resource type="Animation" path="local://10">
+ <string name="resource/name"> "falling_weapon" </string>
<real name="length"> 0.5 </real>
<bool name="loop"> True </bool>
<real name="step"> 0.25 </real>
@@ -158,22 +163,20 @@
<dictionary name="tracks/0/keys" shared="false">
<string> "cont" </string>
<bool> False </bool>
+ <string> "times" </string>
+ <real_array len="1"> 0 </real_array>
<string> "transitions" </string>
- <real_array len="3"> 1, 1, 1 </real_array>
+ <real_array len="1"> 1 </real_array>
<string> "values" </string>
- <array len="3" shared="false">
- <int> 23 </int>
- <int> 24 </int>
- <int> 23 </int>
+ <array len="1" shared="false">
+ <int> 26 </int>
</array>
- <string> "times" </string>
- <real_array len="3"> 0, 0.25, 0.5 </real_array>
</dictionary>
</resource>
- <resource type="Animation" path="local://9">
- <string name="resource/name"> "run_weapon" </string>
- <real name="length"> 1.25 </real>
+ <resource type="Animation" path="local://7">
+ <string name="resource/name"> "crouch" </string>
+ <real name="length"> 0.01 </real>
<bool name="loop"> True </bool>
<real name="step"> 0.25 </real>
<string name="tracks/0/type"> "value" </string>
@@ -182,25 +185,20 @@
<dictionary name="tracks/0/keys" shared="false">
<string> "cont" </string>
<bool> False </bool>
+ <string> "times" </string>
+ <real_array len="1"> 0 </real_array>
<string> "transitions" </string>
- <real_array len="6"> 1, 1, 1, 1, 1, 1 </real_array>
+ <real_array len="1"> 1 </real_array>
<string> "values" </string>
- <array len="6" shared="false">
- <int> 5 </int>
- <int> 6 </int>
- <int> 7 </int>
- <int> 8 </int>
- <int> 9 </int>
- <int> 5 </int>
+ <array len="1" shared="false">
+ <int> 22 </int>
</array>
- <string> "times" </string>
- <real_array len="6"> 0, 0.25, 0.5, 0.75, 1, 1.25 </real_array>
</dictionary>
</resource>
- <resource type="Animation" path="local://10">
- <string name="resource/name"> "idle_weapon" </string>
- <real name="length"> 0.5 </real>
+ <resource type="Animation" path="local://8">
+ <string name="resource/name"> "falling" </string>
+ <real name="length"> 0.01 </real>
<bool name="loop"> True </bool>
<real name="step"> 0.25 </real>
<string name="tracks/0/type"> "value" </string>
@@ -209,20 +207,19 @@
<dictionary name="tracks/0/keys" shared="false">
<string> "cont" </string>
<bool> False </bool>
+ <string> "times" </string>
+ <real_array len="1"> 0 </real_array>
<string> "transitions" </string>
<real_array len="1"> 1 </real_array>
<string> "values" </string>
<array len="1" shared="false">
- <int> 25 </int>
+ <int> 21 </int>
</array>
- <string> "times" </string>
- <real_array len="1"> 0 </real_array>
</dictionary>
</resource>
- <resource type="Animation" path="local://11">
- <string name="resource/name"> "falling_weapon" </string>
- <real name="length"> 0.5 </real>
+ <resource type="Animation" path="local://9">
+ <real name="length"> 1.25 </real>
<bool name="loop"> True </bool>
<real name="step"> 0.25 </real>
<string name="tracks/0/type"> "value" </string>
@@ -231,20 +228,24 @@
<dictionary name="tracks/0/keys" shared="false">
<string> "cont" </string>
<bool> False </bool>
+ <string> "times" </string>
+ <real_array len="6"> 0, 0.25, 0.5, 0.75, 1, 1.25 </real_array>
<string> "transitions" </string>
- <real_array len="1"> 1 </real_array>
+ <real_array len="6"> 1, 1, 1, 1, 1, 1 </real_array>
<string> "values" </string>
- <array len="1" shared="false">
- <int> 26 </int>
+ <array len="6" shared="false">
+ <int> 10 </int>
+ <int> 11 </int>
+ <int> 12 </int>
+ <int> 13 </int>
+ <int> 14 </int>
+ <int> 5 </int>
</array>
- <string> "times" </string>
- <real_array len="1"> 0 </real_array>
</dictionary>
</resource>
<resource type="Animation" path="local://12">
- <string name="resource/name"> "falling" </string>
- <real name="length"> 0.01 </real>
+ <real name="length"> 0.5 </real>
<bool name="loop"> True </bool>
<real name="step"> 0.25 </real>
<string name="tracks/0/type"> "value" </string>
@@ -253,14 +254,14 @@
<dictionary name="tracks/0/keys" shared="false">
<string> "cont" </string>
<bool> False </bool>
+ <string> "times" </string>
+ <real_array len="1"> 0 </real_array>
<string> "transitions" </string>
<real_array len="1"> 1 </real_array>
<string> "values" </string>
<array len="1" shared="false">
- <int> 21 </int>
+ <int> 26 </int>
</array>
- <string> "times" </string>
- <real_array len="1"> 0 </real_array>
</dictionary>
</resource>
@@ -293,66 +294,57 @@
</resource>
<main_resource>
<dictionary name="_bundled" shared="false">
+ <string> "conn_count" </string>
+ <int> 0 </int>
+ <string> "conns" </string>
+ <int_array len="0"> </int_array>
<string> "names" </string>
- <string_array len="170">
+ <string_array len="142">
<string> "player" </string>
<string> "RigidBody2D" </string>
- <string> "visibility/visible" </string>
- <string> "visibility/opacity" </string>
- <string> "visibility/self_opacity" </string>
- <string> "visibility/behind_parent" </string>
- <string> "transform/pos" </string>
- <string> "transform/rot" </string>
- <string> "transform/scale" </string>
- <string> "shape_count" </string>
+ <string> "input/pickable" </string>
<string> "shapes/0/shape" </string>
<string> "shapes/0/transform" </string>
<string> "shapes/0/trigger" </string>
<string> "shapes/1/shape" </string>
<string> "shapes/1/transform" </string>
<string> "shapes/1/trigger" </string>
+ <string> "collision/layers" </string>
+ <string> "collision/mask" </string>
<string> "mode" </string>
<string> "mass" </string>
<string> "friction" </string>
<string> "bounce" </string>
+ <string> "gravity_scale" </string>
<string> "custom_integrator" </string>
<string> "continuous_cd" </string>
<string> "contacts_reported" </string>
<string> "contact_monitor" </string>
- <string> "active" </string>
+ <string> "sleeping" </string>
<string> "can_sleep" </string>
<string> "velocity/linear" </string>
<string> "velocity/angular" </string>
+ <string> "damp_override/linear" </string>
+ <string> "damp_override/angular" </string>
<string> "script/script" </string>
<string> "__meta__" </string>
<string> "sprite" </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> "smoke" </string>
<string> "Particles2D" </string>
+ <string> "visibility/self_opacity" </string>
<string> "visibility/blend_mode" </string>
+ <string> "transform/pos" </string>
+ <string> "transform/rot" </string>
<string> "config/amount" </string>
<string> "config/lifetime" </string>
- <string> "config/time_scale" </string>
- <string> "config/preprocess" </string>
<string> "config/emit_timeout" </string>
<string> "config/emitting" </string>
- <string> "config/offset" </string>
- <string> "config/half_extents" </string>
<string> "config/local_space" </string>
<string> "config/explosiveness" </string>
- <string> "config/flip_h" </string>
- <string> "config/flip_v" </string>
<string> "config/texture" </string>
<string> "params/direction" </string>
<string> "params/spread" </string>
@@ -364,53 +356,36 @@
<string> "params/radial_accel" </string>
<string> "params/tangential_accel" </string>
<string> "params/damping" </string>
+ <string> "params/initial_angle" </string>
<string> "params/initial_size" </string>
<string> "params/final_size" </string>
<string> "params/hue_variation" </string>
- <string> "randomness/direction" </string>
- <string> "randomness/spread" </string>
- <string> "randomness/linear_velocity" </string>
+ <string> "params/anim_speed_scale" </string>
+ <string> "params/anim_initial_pos" </string>
<string> "randomness/spin_velocity" </string>
- <string> "randomness/orbit_velocity" </string>
- <string> "randomness/gravity_direction" </string>
- <string> "randomness/gravity_strength" </string>
- <string> "randomness/radial_accel" </string>
- <string> "randomness/tangential_accel" </string>
- <string> "randomness/damping" </string>
- <string> "randomness/initial_size" </string>
- <string> "randomness/final_size" </string>
- <string> "randomness/hue_variation" </string>
- <string> "color_phases/count" </string>
- <string> "phase_0/pos" </string>
- <string> "phase_0/color" </string>
- <string> "phase_1/pos" </string>
- <string> "phase_1/color" </string>
- <string> "phase_2/pos" </string>
- <string> "phase_2/color" </string>
- <string> "phase_3/pos" </string>
- <string> "phase_3/color" </string>
- <string> "emission_points" </string>
+ <string> "color/color_ramp" </string>
<string> "anim" </string>
<string> "AnimationPlayer" </string>
<string> "playback/process_mode" </string>
<string> "playback/default_blend_time" </string>
<string> "root/root" </string>
<string> "anims/idle" </string>
- <string> "anims/run" </string>
- <string> "anims/standing_weapon_ready" </string>
- <string> "anims/jumping_weapon" </string>
- <string> "anims/crouch" </string>
<string> "anims/jumping" </string>
- <string> "anims/run_weapon" </string>
<string> "anims/idle_weapon" </string>
+ <string> "anims/run" </string>
+ <string> "anims/run_weapon" </string>
<string> "anims/falling_weapon" </string>
+ <string> "anims/crouch" </string>
<string> "anims/falling" </string>
+ <string> "anims/standing_weapon_ready" </string>
+ <string> "anims/jumping_weapon" </string>
<string> "playback/active" </string>
<string> "playback/speed" </string>
<string> "blend_times" </string>
<string> "autoplay" </string>
<string> "camera" </string>
<string> "Camera2D" </string>
+ <string> "anchor_mode" </string>
<string> "rotating" </string>
<string> "current" </string>
<string> "smoothing" </string>
@@ -428,6 +403,7 @@
<string> "bullet_shoot" </string>
<string> "Position2D" </string>
<string> "CollisionShape2D" </string>
+ <string> "transform/scale" </string>
<string> "shape" </string>
<string> "trigger" </string>
<string> "sound" </string>
@@ -452,6 +428,7 @@
<string> "ui" </string>
<string> "CanvasLayer" </string>
<string> "layer" </string>
+ <string> "offset" </string>
<string> "rotation" </string>
<string> "scale" </string>
<string> "left" </string>
@@ -466,123 +443,147 @@
<string> "jump" </string>
<string> "fire" </string>
</string_array>
- <string> "version" </string>
- <int> 1 </int>
- <string> "conn_count" </string>
- <int> 0 </int>
<string> "node_count" </string>
<int> 14 </int>
+ <string> "nodes" </string>
+ <int_array len="394"> -1, -1, 1, 0, -1, 26, 2, 0, 3, 1, 4, 2, 5, 0, 6, 3, 7, 4, 8, 0, 9, 5, 10, 5, 11, 6, 12, 7, 13, 8, 14, 8, 15, 9, 16, 10, 17, 11, 18, 12, 19, 0, 20, 0, 21, 10, 22, 13, 23, 8, 24, 14, 25, 14, 26, 15, 27, 16, 0, 0, 0, 29, 28, -1, 3, 30, 17, 31, 6, 32, 18, 0, 1, 0, 34, 33, -1, 29, 35, 19, 36, 5, 37, 20, 38, 21, 39, 22, 40, 23, 41, 23, 42, 0, 43, 0, 44, 24, 45, 25, 46, 8, 47, 26, 48, 27, 49, 9, 50, 8, 51, 8, 52, 28, 53, 8, 54, 8, 55, 8, 56, 8, 57, 29, 58, 29, 59, 8, 60, 9, 61, 8, 62, 29, 63, 30, 0, 0, 0, 65, 64, -1, 17, 66, 5, 67, 8, 68, 31, 69, 32, 70, 33, 71, 34, 72, 35, 73, 36, 74, 37, 75, 38, 76, 39, 77, 40, 78, 41, 79, 10, 80, 29, 81, 42, 82, 43, 0, 0, 0, 84, 83, -1, 15, 85, 5, 86, 0, 87, 10, 88, 8, 89, 44, 90, 11, 91, 11, 92, 45, 93, 45, 94, 10, 95, 10, 96, 46, 97, 46, 98, 46, 99, 46, 0, 0, 0, 101, 100, -1, 1, 37, 47, 0, 0, 0, 102, 102, -1, 4, 37, 48, 103, 49, 104, 1, 105, 0, 0, 0, 0, 107, 106, -1, 14, 108, 12, 109, 50, 110, 8, 111, 9, 112, 8, 113, 8, 114, 8, 115, 51, 116, 51, 117, 51, 118, 51, 119, 6, 120, 8, 121, 8, 0, 0, 0, 122, 122, -1, 3, 123, 11, 124, 52, 105, 0, 0, 0, 0, 126, 125, -1, 4, 127, 11, 128, 13, 129, 8, 130, 44, 0, 9, 0, 132, 131, -1, 8, 37, 53, 103, 54, 133, 55, 134, 56, 135, 56, 136, 10, 137, 57, 138, 5, 0, 9, 0, 132, 139, -1, 8, 37, 58, 103, 54, 133, 59, 134, 56, 135, 56, 136, 10, 137, 60, 138, 5, 0, 9, 0, 132, 140, -1, 8, 37, 61, 103, 54, 133, 62, 134, 56, 135, 56, 136, 0, 137, 63, 138, 5, 0, 9, 0, 132, 141, -1, 8, 37, 64, 103, 54, 133, 65, 134, 56, 135, 56, 136, 0, 137, 66, 138, 5, 0 </int_array>
<string> "variants" </string>
- <array len="71" shared="false">
- <bool> True </bool>
- <real> 1 </real>
+ <array len="67" shared="false">
<bool> False </bool>
- <vector2> 0, 0 </vector2>
- <real> 0 </real>
- <vector2> 1, 1 </vector2>
- <int> 2 </int>
<resource resource_type="Shape2D" path="local://1"> </resource>
<matrix32> 1, -0, 0, 1.76469, 0.291992, -12.1587 </matrix32>
<resource resource_type="Shape2D" path="local://2"> </resource>
<matrix32> 1, -0, 0, 1, 0, 0 </matrix32>
+ <int> 1 </int>
+ <int> 2 </int>
<real> 3 </real>
+ <real> 0 </real>
+ <real> 1 </real>
+ <bool> True </bool>
<int> 0 </int>
<int> 3 </int>
+ <vector2> 0, 0 </vector2>
+ <real> -1 </real>
<resource resource_type="Script" path="res://player.gd"> </resource>
<dictionary shared="false">
+ <string> "__editor_plugin_screen__" </string>
+ <string> "2D" </string>
<string> "__editor_plugin_states__" </string>
<dictionary shared="false">
- <string> "Script" </string>
- <dictionary shared="false">
- <string> "current" </string>
- <int> 0 </int>
- <string> "sources" </string>
- <array len="1" shared="false">
- <string> "res://player.gd" </string>
- </array>
- </dictionary>
<string> "2D" </string>
<dictionary shared="false">
- <string> "pixel_snap" </string>
+ <string> "ofs" </string>
+ <vector2> -110.795, -101.2 </vector2>
+ <string> "snap_grid" </string>
+ <bool> False </bool>
+ <string> "snap_offset" </string>
+ <vector2> 0, 0 </vector2>
+ <string> "snap_pixel" </string>
+ <bool> False </bool>
+ <string> "snap_relative" </string>
+ <bool> False </bool>
+ <string> "snap_rotation" </string>
+ <bool> False </bool>
+ <string> "snap_rotation_offset" </string>
+ <real> 0 </real>
+ <string> "snap_rotation_step" </string>
+ <real> 0.261799 </real>
+ <string> "snap_show_grid" </string>
<bool> False </bool>
+ <string> "snap_step" </string>
+ <vector2> 10, 10 </vector2>
<string> "zoom" </string>
- <real> 2.272073 </real>
- <string> "ofs" </string>
- <vector2> -181.946, -86.2812 </vector2>
+ <real> 2.050546 </real>
</dictionary>
<string> "3D" </string>
<dictionary shared="false">
- <string> "zfar" </string>
- <real> 500 </real>
+ <string> "ambient_light_color" </string>
+ <color> 0.15, 0.15, 0.15, 1 </color>
+ <string> "default_light" </string>
+ <bool> True </bool>
+ <string> "default_srgb" </string>
+ <bool> False </bool>
+ <string> "deflight_rot_x" </string>
+ <real> 0.942478 </real>
+ <string> "deflight_rot_y" </string>
+ <real> 0.628319 </real>
<string> "fov" </string>
<real> 45 </real>
+ <string> "show_grid" </string>
+ <bool> True </bool>
+ <string> "show_origin" </string>
+ <bool> True </bool>
+ <string> "viewport_mode" </string>
+ <int> 1 </int>
<string> "viewports" </string>
<array len="4" shared="false">
<dictionary shared="false">
<string> "distance" </string>
<real> 4 </real>
+ <string> "listener" </string>
+ <bool> True </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
<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> "listener" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
<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> "listener" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
<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> "listener" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
<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> "zfar" </string>
+ <real> 500 </real>
<string> "znear" </string>
<real> 0.1 </real>
</dictionary>
@@ -594,15 +595,10 @@
<string> "run_mode" </string>
<int> 0 </int>
</dictionary>
- <string> "__editor_plugin_screen__" </string>
- <string> "3D" </string>
</dictionary>
<resource resource_type="Texture" path="res://robot_demo.png"> </resource>
<int> 16 </int>
- <color> 1, 1, 1, 1 </color>
- <rect2> 0, 0, 0, 0 </rect2>
<real> 0.363636 </real>
- <int> 1 </int>
<vector2> 20.7312, 3.21187 </vector2>
<real> 83.450417 </real>
<int> 4 </int>
@@ -613,24 +609,22 @@
<real> 20 </real>
<real> 9.8 </real>
<real> 2 </real>
- <color> 0, 0, 0, 0.0442478 </color>
- <color> 1, 0, 0, 1 </color>
- <color> 0, 0, 0, 1 </color>
- <vector2_array len="0"> </vector2_array>
+ <resource resource_type="ColorRamp" path="local://14"> </resource>
<node_path> ".." </node_path>
<resource resource_type="Animation" path="local://3"> </resource>
<resource resource_type="Animation" path="local://4"> </resource>
<resource resource_type="Animation" path="local://5"> </resource>
<resource resource_type="Animation" path="local://6"> </resource>
+ <resource resource_type="Animation" path="local://11"> </resource>
+ <resource resource_type="Animation" path="local://10"> </resource>
<resource resource_type="Animation" path="local://7"> </resource>
<resource resource_type="Animation" path="local://8"> </resource>
<resource resource_type="Animation" path="local://9"> </resource>
- <resource resource_type="Animation" path="local://10"> </resource>
- <resource resource_type="Animation" path="local://11"> </resource>
<resource resource_type="Animation" path="local://12"> </resource>
<array len="0" shared="false">
</array>
<string> "" </string>
+ <vector2> 1, 1 </vector2>
<int> 10000000 </int>
<real> 0.2 </real>
<vector2> 31.2428, 4.08784 </vector2>
@@ -653,10 +647,8 @@
<resource resource_type="Texture" path="res://osb_fire.png"> </resource>
<string> "shoot" </string>
</array>
- <string> "nodes" </string>
- <int_array len="572"> -1, -1, 1, 0, -1, 28, 2, 0, 3, 1, 4, 1, 5, 2, 6, 3, 7, 4, 8, 5, 9, 6, 10, 7, 11, 8, 12, 2, 13, 9, 14, 10, 15, 2, 16, 6, 17, 11, 18, 4, 19, 4, 20, 0, 21, 12, 22, 13, 23, 2, 24, 0, 25, 0, 26, 3, 27, 4, 28, 14, 29, 15, 0, 0, 0, 31, 30, -1, 18, 2, 0, 3, 1, 4, 1, 5, 2, 6, 3, 7, 4, 8, 5, 32, 16, 33, 0, 34, 3, 35, 2, 36, 2, 37, 6, 38, 17, 39, 12, 40, 18, 41, 2, 42, 19, 0, 1, 0, 44, 43, -1, 57, 2, 0, 3, 1, 4, 20, 5, 2, 45, 21, 6, 22, 7, 23, 8, 5, 46, 24, 47, 25, 48, 1, 49, 4, 50, 25, 51, 2, 52, 3, 53, 3, 54, 2, 55, 26, 56, 2, 57, 2, 58, 27, 59, 4, 60, 28, 61, 29, 62, 1, 63, 4, 64, 4, 65, 30, 66, 4, 67, 4, 68, 4, 69, 31, 70, 31, 71, 4, 72, 4, 73, 4, 74, 4, 75, 31, 76, 4, 77, 4, 78, 4, 79, 4, 80, 4, 81, 4, 82, 4, 83, 4, 84, 4, 85, 6, 86, 4, 87, 18, 88, 1, 89, 32, 90, 1, 91, 33, 92, 1, 93, 34, 94, 35, 0, 0, 0, 96, 95, -1, 17, 97, 21, 98, 4, 99, 36, 100, 37, 101, 38, 102, 39, 103, 40, 104, 41, 105, 42, 106, 43, 107, 44, 108, 45, 109, 46, 110, 0, 111, 31, 112, 47, 113, 48, 0, 0, 0, 115, 114, -1, 22, 2, 0, 3, 1, 4, 1, 5, 2, 6, 3, 7, 4, 8, 5, 33, 0, 116, 2, 117, 0, 118, 4, 119, 5, 120, 12, 121, 12, 122, 49, 123, 49, 124, 0, 125, 0, 126, 50, 127, 50, 128, 50, 129, 50, 0, 0, 0, 131, 130, -1, 7, 2, 0, 3, 1, 4, 1, 5, 2, 6, 51, 7, 4, 8, 5, 0, 0, 0, 132, 132, -1, 9, 2, 0, 3, 1, 4, 1, 5, 2, 6, 52, 7, 4, 8, 53, 133, 7, 134, 2, 0, 0, 0, 136, 135, -1, 14, 137, 13, 138, 54, 139, 4, 140, 1, 141, 4, 142, 4, 143, 4, 144, 55, 145, 55, 146, 55, 147, 55, 148, 6, 149, 4, 150, 4, 0, 0, 0, 151, 151, -1, 9, 2, 0, 3, 1, 4, 1, 5, 2, 6, 3, 7, 4, 8, 5, 152, 12, 153, 56, 0, 0, 0, 155, 154, -1, 4, 156, 12, 34, 3, 157, 4, 158, 5, 0, 9, 0, 160, 159, -1, 13, 2, 0, 3, 1, 4, 1, 5, 2, 6, 57, 7, 4, 8, 58, 161, 59, 162, 60, 163, 60, 164, 0, 165, 61, 166, 21, 0, 9, 0, 160, 167, -1, 13, 2, 0, 3, 1, 4, 1, 5, 2, 6, 62, 7, 4, 8, 58, 161, 63, 162, 60, 163, 60, 164, 0, 165, 64, 166, 21, 0, 9, 0, 160, 168, -1, 13, 2, 0, 3, 1, 4, 1, 5, 2, 6, 65, 7, 4, 8, 58, 161, 66, 162, 60, 163, 60, 164, 2, 165, 67, 166, 21, 0, 9, 0, 160, 169, -1, 13, 2, 0, 3, 1, 4, 1, 5, 2, 6, 68, 7, 4, 8, 58, 161, 69, 162, 60, 163, 60, 164, 2, 165, 70, 166, 21, 0 </int_array>
- <string> "conns" </string>
- <int_array len="0"> </int_array>
+ <string> "version" </string>
+ <int> 1 </int>
</dictionary>
</main_resource>
diff --git a/demos/2d/platformer/stage.xml b/demos/2d/platformer/stage.xml
index 78d0f9ae2c..d081a1be38 100644
--- a/demos/2d/platformer/stage.xml
+++ b/demos/2d/platformer/stage.xml
@@ -1,40 +1,46 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="9" version="1.0" version_name="Godot Engine v1.0.3917-beta1">
+<resource_file type="PackedScene" subresource_count="10" version="1.1" version_name="Godot Engine v1.1.stable.custom_build">
<ext_resource path="res://tileset.xml" type="TileSet"></ext_resource>
- <ext_resource path="res://music.ogg" type="AudioStream"></ext_resource>
<ext_resource path="res://coin.xml" type="PackedScene"></ext_resource>
- <ext_resource path="res://player.xml" type="PackedScene"></ext_resource>
- <ext_resource path="res://seesaw.xml" type="PackedScene"></ext_resource>
<ext_resource path="res://moving_platform.xml" type="PackedScene"></ext_resource>
+ <ext_resource path="res://seesaw.xml" type="PackedScene"></ext_resource>
+ <ext_resource path="res://one_way_platform.xml" type="PackedScene"></ext_resource>
+ <ext_resource path="res://player.xml" type="PackedScene"></ext_resource>
+ <ext_resource path="res://music.ogg" type="AudioStream"></ext_resource>
<ext_resource path="res://enemy.xml" type="PackedScene"></ext_resource>
<ext_resource path="res://parallax_bg.xml" type="PackedScene"></ext_resource>
<main_resource>
<dictionary name="_bundled" shared="false">
+ <string> "conn_count" </string>
+ <int> 0 </int>
+ <string> "conns" </string>
+ <int_array len="0"> </int_array>
<string> "names" </string>
- <string_array len="122">
+ <string_array len="117">
<string> "stage" </string>
<string> "Node" </string>
- <string> "_import_path" </string>
<string> "__meta__" </string>
<string> "tile_map" </string>
<string> "TileMap" </string>
- <string> "visibility/visible" </string>
- <string> "visibility/opacity" </string>
- <string> "visibility/self_opacity" </string>
- <string> "visibility/behind_parent" </string>
- <string> "transform/pos" </string>
- <string> "transform/rot" </string>
- <string> "transform/scale" </string>
- <string> "cell_size" </string>
- <string> "quadrant_size" </string>
+ <string> "mode" </string>
<string> "tile_set" </string>
- <string> "tile_data" </string>
+ <string> "cell/size" </string>
+ <string> "cell/quadrant_size" </string>
+ <string> "cell/custom_transform" </string>
+ <string> "cell/half_offset" </string>
+ <string> "cell/tile_origin" </string>
+ <string> "cell/y_sort" </string>
+ <string> "collision/use_kinematic" </string>
<string> "collision/friction" </string>
<string> "collision/bounce" </string>
<string> "collision/layers" </string>
+ <string> "collision/mask" </string>
+ <string> "tile_data" </string>
<string> "coins" </string>
<string> "coin" </string>
<string> "Area2D" </string>
+ <string> "_import_path" </string>
+ <string> "transform/pos" </string>
<string> "coin 2" </string>
<string> "coin 3" </string>
<string> "coin 4" </string>
@@ -76,8 +82,6 @@
<string> "coin 31 7 3" </string>
<string> "coin 31 7 4" </string>
<string> "coin 31 7 5" </string>
- <string> "player" </string>
- <string> "RigidBody2D" </string>
<string> "props" </string>
<string> "moving_platform" </string>
<string> "Node2D" </string>
@@ -86,6 +90,10 @@
<string> "moving_platform 2" </string>
<string> "moving_platform 3" </string>
<string> "seesaw" </string>
+ <string> "one_way_platform" </string>
+ <string> "StaticBody2D" </string>
+ <string> "player" </string>
+ <string> "RigidBody2D" </string>
<string> "music" </string>
<string> "StreamPlayer" </string>
<string> "stream/stream" </string>
@@ -113,14 +121,9 @@
<string> "margin/top" </string>
<string> "margin/right" </string>
<string> "margin/bottom" </string>
- <string> "focus_neighbour/left" </string>
- <string> "focus_neighbour/top" </string>
- <string> "focus_neighbour/right" </string>
- <string> "focus_neighbour/bottom" </string>
<string> "focus/ignore_mouse" </string>
<string> "focus/stop_mouse" </string>
<string> "size_flags/horizontal" </string>
- <string> "size_flags/stretch_ratio" </string>
<string> "range/min" </string>
<string> "range/max" </string>
<string> "range/step" </string>
@@ -129,125 +132,265 @@
<string> "range/exp_edit" </string>
<string> "rounded_values" </string>
<string> "text" </string>
- <string> "align" </string>
- <string> "valign" </string>
<string> "autowrap" </string>
- <string> "uppercase" </string>
<string> "percent_visible" </string>
</string_array>
- <string> "version" </string>
- <int> 1 </int>
- <string> "conn_count" </string>
- <int> 0 </int>
<string> "node_count" </string>
- <int> 66 </int>
+ <int> 67 </int>
+ <string> "nodes" </string>
+ <int_array len="917"> -1, -1, 1, 0, -1, 1, 2, 0, 0, 0, 0, 4, 3, -1, 15, 5, 1, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 11, 1, 12, 7, 13, 7, 14, 8, 15, 9, 16, 10, 17, 10, 18, 11, 2, 12, 0, 0, 0, 1, 19, -1, 0, 0, 2, 0, 21, 20, 13, 3, 22, 14, 23, 15, 2, 16, 0, 2, 0, 21, 24, 13, 3, 22, 14, 23, 17, 2, 16, 0, 2, 0, 21, 25, 13, 3, 22, 14, 23, 18, 2, 16, 0, 2, 0, 21, 26, 13, 3, 22, 14, 23, 19, 2, 16, 0, 2, 0, 21, 27, 13, 3, 22, 14, 23, 20, 2, 16, 0, 2, 0, 21, 28, 13, 3, 22, 14, 23, 21, 2, 16, 0, 2, 0, 21, 29, 13, 3, 22, 14, 23, 22, 2, 16, 0, 2, 0, 21, 30, 13, 3, 22, 14, 23, 23, 2, 16, 0, 2, 0, 21, 31, 13, 3, 22, 14, 23, 24, 2, 16, 0, 2, 0, 21, 32, 13, 3, 22, 14, 23, 25, 2, 16, 0, 2, 0, 21, 33, 13, 3, 22, 14, 23, 26, 2, 16, 0, 2, 0, 21, 34, 13, 3, 22, 14, 23, 27, 2, 16, 0, 2, 0, 21, 35, 13, 3, 22, 14, 23, 28, 2, 16, 0, 2, 0, 21, 36, 13, 3, 22, 14, 23, 29, 2, 16, 0, 2, 0, 21, 37, 13, 3, 22, 14, 23, 30, 2, 16, 0, 2, 0, 21, 38, 13, 3, 22, 14, 23, 31, 2, 16, 0, 2, 0, 21, 39, 13, 3, 22, 14, 23, 32, 2, 16, 0, 2, 0, 21, 40, 13, 3, 22, 14, 23, 33, 2, 16, 0, 2, 0, 21, 41, 13, 3, 22, 14, 23, 34, 2, 16, 0, 2, 0, 21, 42, 13, 3, 22, 14, 23, 35, 2, 16, 0, 2, 0, 21, 43, 13, 3, 22, 14, 23, 36, 2, 16, 0, 2, 0, 21, 44, 13, 3, 22, 14, 23, 37, 2, 16, 0, 2, 0, 21, 45, 13, 3, 22, 14, 23, 38, 2, 16, 0, 2, 0, 21, 46, 13, 3, 22, 14, 23, 39, 2, 16, 0, 2, 0, 21, 47, 13, 3, 22, 14, 23, 40, 2, 16, 0, 2, 0, 21, 48, 13, 3, 22, 14, 23, 41, 2, 16, 0, 2, 0, 21, 49, 13, 3, 22, 14, 23, 42, 2, 16, 0, 2, 0, 21, 50, 13, 3, 22, 14, 23, 43, 2, 16, 0, 2, 0, 21, 51, 13, 3, 22, 14, 23, 44, 2, 16, 0, 2, 0, 21, 52, 13, 3, 22, 14, 23, 45, 2, 16, 0, 2, 0, 21, 53, 13, 3, 22, 14, 23, 46, 2, 16, 0, 2, 0, 21, 54, 13, 3, 22, 14, 23, 47, 2, 16, 0, 2, 0, 21, 55, 13, 3, 22, 14, 23, 48, 2, 16, 0, 2, 0, 21, 56, 13, 3, 22, 14, 23, 49, 2, 16, 0, 2, 0, 21, 57, 13, 3, 22, 14, 23, 50, 2, 16, 0, 2, 0, 21, 58, 13, 3, 22, 14, 23, 51, 2, 16, 0, 2, 0, 21, 59, 13, 3, 22, 14, 23, 52, 2, 16, 0, 2, 0, 21, 60, 13, 3, 22, 14, 23, 53, 2, 16, 0, 2, 0, 21, 61, 13, 3, 22, 14, 23, 54, 2, 16, 0, 2, 0, 21, 62, 13, 3, 22, 14, 23, 55, 2, 16, 0, 2, 0, 21, 63, 13, 3, 22, 14, 23, 56, 2, 16, 0, 2, 0, 21, 64, 13, 3, 22, 14, 23, 57, 2, 16, 0, 0, 0, 1, 65, -1, 0, 0, 45, 0, 67, 66, 58, 5, 22, 14, 23, 59, 2, 60, 68, 61, 69, 62, 0, 45, 0, 67, 70, 58, 5, 22, 14, 23, 63, 2, 60, 68, 64, 69, 65, 0, 45, 0, 67, 71, 58, 5, 22, 14, 23, 66, 2, 60, 68, 67, 69, 65, 0, 45, 0, 67, 72, 68, 3, 22, 14, 23, 69, 2, 70, 0, 45, 0, 74, 73, 71, 3, 22, 14, 23, 72, 2, 73, 0, 0, 0, 76, 75, 74, 3, 22, 14, 23, 75, 2, 76, 0, 0, 0, 78, 77, -1, 6, 79, 77, 80, 7, 81, 78, 82, 79, 83, 78, 84, 7, 0, 0, 0, 1, 85, -1, 0, 0, 53, 0, 76, 86, 80, 3, 22, 14, 23, 81, 2, 82, 0, 53, 0, 76, 87, 80, 3, 22, 14, 23, 83, 2, 82, 0, 53, 0, 76, 88, 80, 3, 22, 14, 23, 84, 2, 82, 0, 53, 0, 76, 89, 80, 3, 22, 14, 23, 85, 2, 82, 0, 53, 0, 76, 90, 80, 3, 22, 14, 23, 86, 2, 82, 0, 53, 0, 76, 91, 80, 3, 22, 14, 23, 87, 2, 82, 0, 53, 0, 76, 92, 80, 3, 22, 14, 23, 88, 2, 82, 0, 53, 0, 76, 93, 80, 3, 22, 14, 23, 89, 2, 82, 0, 53, 0, 76, 94, 80, 3, 22, 14, 23, 90, 2, 82, 0, 53, 0, 76, 95, 80, 3, 22, 14, 23, 91, 2, 82, 0, 53, 0, 76, 96, 80, 3, 22, 14, 23, 92, 2, 82, 0, 0, 0, 98, 97, 93, 2, 22, 14, 2, 94, 0, 0, 0, 99, 99, -1, 17, 100, 95, 101, 96, 102, 97, 103, 98, 104, 78, 105, 78, 106, 6, 107, 9, 108, 99, 109, 8, 110, 100, 111, 9, 112, 7, 113, 7, 114, 101, 115, 78, 116, 102, 0 </int_array>
<string> "variants" </string>
- <array len="96" shared="false">
- <node_path> "" </node_path>
+ <array len="103" shared="false">
<dictionary shared="false">
+ <string> "__editor_plugin_screen__" </string>
+ <string> "2D" </string>
<string> "__editor_plugin_states__" </string>
<dictionary shared="false">
- <string> "Script" </string>
- <dictionary shared="false">
- <string> "current" </string>
- <int> 2 </int>
- <string> "sources" </string>
- <array len="4" shared="false">
- <string> "res://moving_platform.gd" </string>
- <string> "res://enemy.gd" </string>
- <string> "res://player.gd" </string>
- <string> "res://coin.gd" </string>
- </array>
- </dictionary>
<string> "2D" </string>
<dictionary shared="false">
- <string> "pixel_snap" </string>
+ <string> "ofs" </string>
+ <vector2> -70.6559, 735.599 </vector2>
+ <string> "snap_grid" </string>
<bool> False </bool>
- <string> "zoom" </string>
- <real> 0.54036 </real>
- <string> "use_snap" </string>
+ <string> "snap_offset" </string>
+ <vector2> 0, 0 </vector2>
+ <string> "snap_pixel" </string>
<bool> False </bool>
- <string> "ofs" </string>
- <vector2> -177.089, 415.221 </vector2>
- <string> "snap" </string>
- <int> 10 </int>
+ <string> "snap_relative" </string>
+ <bool> False </bool>
+ <string> "snap_rotation" </string>
+ <bool> False </bool>
+ <string> "snap_rotation_offset" </string>
+ <real> 0 </real>
+ <string> "snap_rotation_step" </string>
+ <real> 0.261799 </real>
+ <string> "snap_show_grid" </string>
+ <bool> False </bool>
+ <string> "snap_step" </string>
+ <vector2> 10, 10 </vector2>
+ <string> "zoom" </string>
+ <real> 0.663419 </real>
</dictionary>
<string> "3D" </string>
<dictionary shared="false">
- <string> "zfar" </string>
- <real> 500 </real>
+ <string> "ambient_light_color" </string>
+ <color> 0.15, 0.15, 0.15, 1 </color>
+ <string> "default_light" </string>
+ <bool> True </bool>
+ <string> "default_srgb" </string>
+ <bool> False </bool>
+ <string> "deflight_rot_x" </string>
+ <real> 0.942478 </real>
+ <string> "deflight_rot_y" </string>
+ <real> 0.628319 </real>
<string> "fov" </string>
<real> 45 </real>
+ <string> "show_grid" </string>
+ <bool> True </bool>
+ <string> "show_origin" </string>
+ <bool> True </bool>
+ <string> "viewport_mode" </string>
+ <int> 1 </int>
<string> "viewports" </string>
<array len="4" shared="false">
<dictionary shared="false">
<string> "distance" </string>
- <real> 4 </real>
+ <real> 18.643827 </real>
+ <string> "listener" </string>
+ <bool> True </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
<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>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "listener" </string>
<bool> False </bool>
<string> "pos" </string>
<vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
</dictionary>
<dictionary shared="false">
<string> "distance" </string>
<real> 4 </real>
+ <string> "listener" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
<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>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "listener" </string>
<bool> False </bool>
<string> "pos" </string>
<vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
</dictionary>
+ </array>
+ <string> "zfar" </string>
+ <real> 500 </real>
+ <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>
+ </dictionary>
+ <int> 0 </int>
+ <resource resource_type="TileSet" path="res://tileset.xml"> </resource>
+ <vector2> 64, 64 </vector2>
+ <int> 8 </int>
+ <matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
+ <int> 2 </int>
+ <bool> False </bool>
+ <real> 1 </real>
+ <real> 0 </real>
+ <int> 1 </int>
+ <int_array len="2008"> 0, 2, 70, 536870914, 71, 10, 72, 10, 73, 10, 74, 10, 75, 10, 76, 10, 77, 10, 78, 10, 65536, 2, 65606, 536870914, 65607, 10, 65608, 10, 65609, 10, 65610, 10, 65611, 10, 65612, 10, 65613, 10, 65614, 10, 131072, 2, 131142, 536870914, 131143, 10, 131144, 10, 131145, 10, 131146, 10, 131147, 10, 131148, 10, 131149, 10, 131150, 10, 196608, 2, 196626, 9, 196678, 536870914, 196679, 10, 196680, 10, 196681, 10, 196682, 10, 196683, 10, 196684, 10, 196685, 10, 196686, 10, 262144, 2, 262162, 8, 262214, 536870914, 262215, 10, 262216, 10, 262217, 10, 262218, 10, 262219, 10, 262220, 10, 262221, 10, 262222, 10, 327680, 2, 327697, 536870921, 327698, 7, 327733, 9, 327750, 536870914, 327751, 10, 327752, 10, 327753, 10, 327754, 10, 327755, 10, 327756, 10, 327757, 10, 327758, 10, 393216, 2, 393233, 536870920, 393234, 7, 393257, 9, 393269, 7, 393286, 536870914, 393287, 10, 393288, 10, 393289, 10, 393290, 10, 393291, 10, 393292, 10, 393293, 10, 393294, 10, 458752, 2, 458769, 7, 458770, 8, 458790, 9, 458793, 8, 458805, 8, 458822, 536870914, 458823, 10, 458824, 10, 458825, 10, 458826, 10, 458827, 10, 458828, 10, 458829, 10, 458830, 10, 524288, 4, 524289, 1, 524304, 536870913, 524305, 536870918, 524306, 6, 524307, 5, 524308, 1, 524326, 8, 524329, 7, 524341, 7, 524358, 536870914, 524359, 10, 524360, 10, 524361, 10, 524362, 10, 524363, 10, 524364, 10, 524365, 10, 524366, 10, 589824, 10, 589825, 13, 589840, 536870914, 589841, 10, 589842, 10, 589843, 10, 589844, 2, 589862, 7, 589865, 7, 589876, 536870913, 589877, 6, 589878, 1, 589894, 536870914, 589895, 10, 589896, 10, 589897, 10, 589898, 10, 589899, 10, 589900, 10, 589901, 10, 589902, 10, 655360, 2, 655376, 536870914, 655377, 10, 655378, 10, 655379, 10, 655380, 2, 655398, 7, 655401, 8, 655412, 536870925, 655413, 11, 655414, 13, 655430, 536870914, 655431, 10, 655432, 10, 655433, 10, 655434, 10, 655435, 10, 655436, 10, 655437, 10, 655438, 10, 720896, 2, 720912, 536870914, 720913, 10, 720914, 10, 720915, 10, 720916, 2, 720934, 8, 720937, 7, 720958, 536870913, 720959, 5, 720960, 536870917, 720961, 5, 720962, 5, 720963, 536870917, 720964, 5, 720965, 0, 720966, 536870916, 720967, 10, 720968, 10, 720969, 10, 720970, 10, 720971, 10, 720972, 10, 720973, 10, 720974, 10, 786432, 2, 786437, 9, 786448, 536870914, 786449, 10, 786450, 10, 786451, 10, 786452, 2, 786464, 536870913, 786465, 1, 786470, 7, 786473, 7, 786474, 536870924, 786475, 1, 786494, 536870914, 786495, 10, 786496, 10, 786497, 10, 786498, 10, 786499, 10, 786500, 10, 786501, 10, 786502, 10, 786503, 10, 786504, 10, 786505, 10, 786506, 10, 786507, 10, 786508, 10, 786509, 10, 851968, 2, 851973, 7, 851984, 536870914, 851985, 10, 851986, 10, 851987, 10, 851988, 2, 851996, 536870913, 851997, 1, 852000, 536870914, 852001, 3, 852006, 7, 852009, 536870913, 852011, 2, 852030, 536870914, 852031, 10, 852032, 10, 852033, 10, 852034, 10, 852035, 10, 852036, 10, 852037, 10, 852038, 10, 852039, 10, 852040, 10, 852041, 10, 852042, 10, 852043, 10, 852044, 10, 852045, 10, 917504, 2, 917506, 9, 917509, 7, 917512, 536870921, 917520, 536870925, 917521, 11, 917522, 11, 917523, 11, 917524, 13, 917532, 536870925, 917533, 13, 917536, 536870914, 917537, 4, 917538, 1, 917540, 536870913, 917541, 0, 917542, 1, 917545, 536870914, 917546, 10, 917547, 4, 917548, 1, 917566, 536870914, 917567, 10, 917568, 10, 917569, 10, 917570, 10, 917571, 10, 917572, 10, 917573, 10, 917574, 10, 917575, 10, 917576, 10, 917577, 10, 917578, 10, 917579, 10, 917580, 10, 917581, 10, 983040, 2, 983042, 7, 983045, 7, 983048, 536870920, 983050, 536870913, 983051, 0, 983052, 1, 983064, 536870913, 983065, 1, 983072, 536870914, 983073, 10, 983074, 4, 983075, 0, 983076, 536870916, 983077, 10, 983078, 4, 983079, 536870912, 983080, 536870912, 983081, 536870916, 983082, 10, 983083, 10, 983084, 2, 983095, 9, 983102, 536870914, 983103, 10, 983104, 10, 983105, 10, 983106, 10, 983107, 10, 983108, 10, 983109, 10, 983110, 10, 983111, 10, 983112, 10, 983113, 10, 983114, 10, 983115, 10, 983116, 10, 983117, 10, 1048576, 2, 1048578, 8, 1048581, 8, 1048584, 536870919, 1048586, 536870914, 1048587, 536870922, 1048588, 2, 1048600, 536870925, 1048601, 13, 1048604, 9, 1048608, 536870925, 1048609, 536870923, 1048610, 536870923, 1048611, 536870923, 1048612, 10, 1048613, 10, 1048614, 10, 1048615, 10, 1048616, 10, 1048617, 10, 1048618, 10, 1048619, 10, 1048620, 4, 1048621, 1, 1048630, 536870921, 1048631, 8, 1048638, 536870914, 1048639, 10, 1048640, 10, 1048641, 10, 1048642, 10, 1048643, 10, 1048644, 10, 1048645, 10, 1048646, 10, 1048647, 10, 1048648, 10, 1048649, 10, 1048650, 10, 1048651, 10, 1048652, 10, 1048653, 10, 1114112, 4, 1114113, 0, 1114114, 6, 1114115, 0, 1114116, 0, 1114117, 6, 1114118, 1, 1114120, 536870920, 1114122, 536870925, 1114123, 11, 1114124, 13, 1114128, 536870913, 1114129, 5, 1114130, 536870917, 1114131, 5, 1114132, 0, 1114133, 1, 1114140, 7, 1114141, 536870921, 1114148, 536870914, 1114149, 10, 1114150, 10, 1114151, 10, 1114152, 10, 1114153, 10, 1114154, 10, 1114155, 10, 1114156, 10, 1114157, 2, 1114166, 536870920, 1114167, 8, 1114174, 536870914, 1114175, 10, 1114176, 10, 1114177, 10, 1114178, 10, 1114179, 10, 1114180, 10, 1114181, 10, 1114182, 10, 1114183, 10, 1114184, 10, 1114185, 10, 1114186, 10, 1114187, 10, 1114188, 10, 1179648, 10, 1179649, 10, 1179650, 10, 1179651, 10, 1179652, 10, 1179653, 10, 1179654, 2, 1179656, 536870919, 1179663, 536870915, 1179665, 10, 1179666, 10, 1179667, 10, 1179668, 10, 1179669, 4, 1179670, 12, 1179675, 9, 1179676, 8, 1179677, 8, 1179684, 536870914, 1179685, 10, 1179686, 10, 1179687, 10, 1179688, 10, 1179689, 10, 1179690, 10, 1179691, 10, 1179692, 10, 1179693, 4, 1179694, 1, 1179701, 9, 1179702, 536870919, 1179703, 7, 1179710, 536870914, 1179711, 10, 1179712, 10, 1179713, 10, 1179714, 10, 1179715, 10, 1179716, 10, 1179717, 10, 1179718, 10, 1179719, 10, 1179720, 10, 1179721, 10, 1179722, 10, 1245184, 10, 1245185, 10, 1245186, 10, 1245187, 10, 1245188, 10, 1245189, 10, 1245190, 2, 1245192, 536870919, 1245199, 536870913, 1245200, 536870916, 1245201, 10, 1245202, 10, 1245203, 10, 1245204, 10, 1245205, 10, 1245207, 1, 1245211, 7, 1245212, 7, 1245213, 536870920, 1245220, 536870914, 1245221, 10, 1245222, 10, 1245223, 10, 1245224, 10, 1245225, 10, 1245226, 10, 1245227, 10, 1245228, 10, 1245229, 10, 1245230, 2, 1245237, 8, 1245238, 536870919, 1245239, 8, 1245240, 536870921, 1245246, 536870914, 1245247, 10, 1245248, 10, 1245249, 10, 1245250, 10, 1245251, 10, 1245252, 10, 1245253, 10, 1245254, 10, 1245255, 10, 1245256, 10, 1245257, 10, 1245258, 10, 1310720, 10, 1310721, 10, 1310722, 10, 1310723, 10, 1310724, 10, 1310725, 10, 1310726, 2, 1310728, 536870920, 1310730, 536870913, 1310731, 1, 1310734, 536870913, 1310735, 536870916, 1310736, 10, 1310737, 10, 1310738, 10, 1310739, 10, 1310740, 10, 1310741, 10, 1310742, 10, 1310743, 4, 1310744, 1, 1310747, 8, 1310748, 7, 1310749, 536870919, 1310756, 536870914, 1310757, 10, 1310758, 10, 1310759, 10, 1310760, 10, 1310761, 10, 1310762, 10, 1310763, 10, 1310764, 10, 1310765, 10, 1310766, 4, 1310767, 5, 1310768, 12, 1310773, 7, 1310774, 536870919, 1310775, 7, 1310776, 536870919, 1310782, 536870914, 1310783, 10, 1310784, 10, 1310785, 10, 1310786, 10, 1310787, 10, 1310788, 10, 1310789, 10, 1310790, 10, 1310791, 10, 1310792, 10, 1310793, 10, 1376256, 10, 1376257, 10, 1376258, 10, 1376259, 10, 1376260, 10, 1376261, 10, 1376262, 4, 1376263, 0, 1376264, 0, 1376265, 0, 1376266, 536870916, 1376267, 4, 1376268, 0, 1376269, 0, 1376270, 536870916, 1376271, 10, 1376272, 10, 1376273, 10, 1376274, 10, 1376275, 10, 1376276, 10, 1376277, 10, 1376278, 10, 1376279, 10, 1376280, 4, 1376281, 12, 1376283, 8, 1376284, 8, 1376285, 536870920, 1376287, 536870924, 1376288, 0, 1376289, 5, 1376290, 536870917, 1376291, 0, 1376292, 536870916, 1376293, 10, 1376294, 10, 1376295, 10, 1376296, 10, 1376297, 10, 1376298, 10, 1376299, 10, 1376300, 10, 1376301, 10, 1376302, 10, 1376303, 10, 1376305, 12, 1376309, 7, 1376310, 536870920, 1376311, 7, 1376312, 536870920, 1376318, 536870914, 1376319, 10, 1376320, 10, 1376321, 10, 1376322, 10, 1376323, 10, 1376324, 10, 1376325, 10, 1376326, 10, 1376327, 10, 1376328, 10, 1441792, 10, 1441793, 10, 1441794, 10, 1441795, 10, 1441796, 10, 1441797, 10, 1441798, 10, 1441799, 10, 1441800, 10, 1441801, 10, 1441802, 10, 1441803, 10, 1441804, 10, 1441805, 10, 1441806, 10, 1441807, 10, 1441808, 10, 1441809, 10, 1441810, 10, 1441811, 10, 1441812, 10, 1441813, 10, 1441814, 10, 1441815, 10, 1441816, 10, 1441818, 0, 1441819, 6, 1441820, 6, 1441821, 536870918, 1441822, 5, 1441824, 10, 1441825, 10, 1441826, 10, 1441827, 10, 1441828, 10, 1441829, 10, 1441830, 10, 1441831, 10, 1441832, 10, 1441833, 10, 1441834, 10, 1441835, 10, 1441836, 10, 1441837, 10, 1441838, 10, 1441839, 10, 1441840, 10, 1441842, 0, 1441843, 0, 1441844, 0, 1441845, 6, 1441846, 536870918, 1441847, 6, 1441848, 536870918, 1441849, 0, 1441850, 5, 1441851, 536870917, 1441852, 5, 1441853, 0, 1441854, 536870916, 1441855, 10, 1441856, 10, 1441857, 10, 1441858, 10, 1441859, 10, 1441860, 10, 1441861, 10, 1441862, 10, 1441863, 10, 1507328, 10, 1507329, 10, 1507330, 10, 1507331, 10, 1507332, 10, 1507333, 10, 1507334, 10, 1507335, 10, 1507336, 10, 1507337, 10, 1507338, 10, 1507339, 10, 1507340, 10, 1507341, 10, 1507342, 10, 1507343, 10, 1507344, 10, 1507345, 10, 1507346, 10, 1507347, 10, 1507348, 10, 1507349, 10, 1507350, 10, 1507351, 10, 1507352, 10, 1507353, 10, 1507354, 10, 1507355, 10, 1507356, 10, 1507357, 10, 1507358, 10, 1507359, 10, 1507360, 10, 1507361, 10, 1507362, 10, 1507363, 10, 1507364, 10, 1507365, 10, 1507366, 10, 1507367, 10, 1507368, 10, 1507369, 10, 1507370, 10, 1507371, 10, 1507372, 10, 1507373, 10, 1507374, 10, 1507375, 10, 1507376, 10, 1507377, 10, 1507378, 10, 1507379, 10, 1507380, 10, 1507381, 10, 1507382, 10, 1507383, 10, 1507384, 10, 1507385, 10, 1507386, 10, 1507387, 10, 1507388, 10, 1507389, 10, 1507390, 10, 1507391, 10, 1507392, 10, 1507393, 10, 1507394, 10, 1507395, 10, 1507396, 10, 1507397, 10, 1507398, 10, 1507399, 10, 1572864, 10, 1572865, 10, 1572866, 10, 1572867, 10, 1572868, 10, 1572869, 10, 1572870, 10, 1572871, 10, 1572872, 10, 1572873, 10, 1572874, 10, 1572875, 10, 1572876, 10, 1572877, 10, 1572878, 10, 1572879, 10, 1572880, 10, 1572881, 10, 1572882, 10, 1572883, 10, 1572884, 10, 1572885, 10, 1572886, 10, 1572887, 10, 1572888, 10, 1572889, 10, 1572890, 10, 1572891, 10, 1572892, 10, 1572893, 10, 1572894, 10, 1572895, 10, 1572896, 10, 1572897, 10, 1572898, 10, 1572899, 10, 1572900, 10, 1572901, 10, 1572902, 10, 1572903, 10, 1572904, 10, 1572905, 10, 1572906, 10, 1572907, 10, 1572908, 10, 1572909, 10, 1572910, 10, 1572911, 10, 1572912, 10, 1572913, 10, 1572914, 10, 1572915, 10, 1572916, 10, 1572917, 10, 1572918, 10, 1572919, 10, 1572920, 10, 1572921, 10, 1572922, 10, 1572923, 10, 1572924, 10, 1572925, 10, 1572926, 10, 1572927, 10, 1572928, 10, 1572929, 10, 1572930, 10, 1572931, 10, 1572932, 10, 1572933, 10, 1572934, 10, 1572935, 10, 1638400, 10, 1638401, 10, 1638402, 10, 1638403, 10, 1638404, 10, 1638405, 10, 1638406, 10, 1638407, 10, 1638408, 10, 1638409, 10, 1638410, 10, 1638411, 10, 1638412, 10, 1638413, 10, 1638414, 10, 1638415, 10, 1638416, 10, 1638417, 10, 1638418, 10, 1638419, 10, 1638420, 10, 1638421, 10, 1638422, 10, 1638423, 10, 1638424, 10, 1638425, 10, 1638426, 10, 1638427, 10, 1638428, 10, 1638429, 10, 1638430, 10, 1638431, 10, 1638432, 10, 1638433, 10, 1638434, 10, 1638435, 10, 1638436, 10, 1638437, 10, 1638438, 10, 1638439, 10, 1638440, 10, 1638441, 10, 1638442, 10, 1638443, 10, 1638444, 10, 1638445, 10, 1638446, 10, 1638447, 10, 1638448, 10, 1638449, 10, 1638450, 10, 1638451, 10, 1638452, 10, 1638453, 10, 1638454, 10, 1638455, 10, 1638456, 10, 1638457, 10, 1638458, 10, 1638459, 10, 1638460, 10, 1638461, 10, 1638462, 10, 1638463, 10, 1638464, 10, 1638465, 10, 1638466, 10, 1638467, 10, 1638468, 10, 1638469, 10, 1638470, 10, 1638471, 10, 1703952, 10, 1703953, 10, 1703954, 10, 1703955, 10, 1703956, 10, 1703957, 10, 1703958, 10, 1703959, 10, 1703960, 10, 1703961, 10, 1703962, 10, 1703963, 10, 1703964, 10, 1703965, 10, 1703966, 10, 1703967, 10, 1703968, 10, 1703969, 10, 1703970, 10, 1703971, 10, 1703972, 10, 1703973, 10, 1703974, 10, 1703975, 10, 1703976, 10, 1703977, 10, 1703978, 10, 1703979, 10, 1703980, 10, 1703981, 10, 1703982, 10, 1703983, 10, 1703984, 10, 1703985, 10, 1703986, 10, 1703987, 10, 1703988, 10, 1703989, 10, 1703990, 10, 1703991, 10, 1703992, 10, 1703993, 10, 1703994, 10, 1703995, 10, 1703996, 10, 1703997, 10, 1703998, 10, 1703999, 10, 1704000, 10, 1704001, 10, 1704002, 10, 1704003, 10, 1704004, 10, 1704005, 10, 1704006, 10, 1704007, 10, 1769488, 10, 1769489, 10, 1769490, 10, 1769491, 10, 1769492, 10, 1769493, 10, 1769494, 10, 1769495, 10, 1769496, 10, 1769497, 10, 1769498, 10, 1769499, 10, 1769500, 10, 1769501, 10, 1769502, 10, 1769503, 10, 1769504, 10, 1769505, 10, 1769506, 10, 1769507, 10, 1769508, 10, 1769509, 10, 1769510, 10, 1769511, 10, 1769512, 10, 1769513, 10, 1769514, 10, 1769515, 10, 1769516, 10, 1769517, 10, 1769518, 10, 1769519, 10, 1769520, 10, 1769521, 10, 1769522, 10, 1769523, 10, 1769524, 10, 1769525, 10, 1769526, 10, 1769527, 10, 1769528, 10, 1769529, 10, 1769530, 10, 1769531, 10, 1769532, 10, 1769533, 10, 1769534, 10, 1769535, 10, 1769536, 10, 1769537, 10, 1769538, 10, 1769539, 10, 1769540, 10, 1769541, 10 </int_array>
+ <dictionary shared="false">
+ <string> "_edit_lock_" </string>
+ <bool> True </bool>
+ </dictionary>
+ <resource resource_type="PackedScene" path="res://coin.xml"> </resource>
+ <node_path> "" </node_path>
+ <vector2> 672, 1179 </vector2>
+ <dictionary shared="false">
+ <string> "__editor_plugin_screen__" </string>
+ <string> "2D" </string>
+ <string> "__editor_plugin_states__" </string>
+ <dictionary shared="false">
+ <string> "2D" </string>
+ <dictionary shared="false">
+ <string> "ofs" </string>
+ <vector2> -34.3697, -21.6562 </vector2>
+ <string> "pixel_snap" </string>
+ <bool> False </bool>
+ <string> "zoom" </string>
+ <real> 3.794776 </real>
+ </dictionary>
+ <string> "3D" </string>
+ <dictionary shared="false">
+ <string> "default_light" </string>
+ <bool> True </bool>
+ <string> "fov" </string>
+ <real> 45 </real>
+ <string> "show_grid" </string>
+ <bool> True </bool>
+ <string> "show_origin" </string>
+ <bool> True </bool>
+ <string> "viewport_mode" </string>
+ <int> 1 </int>
+ <string> "viewports" </string>
+ <array len="4" shared="false">
<dictionary shared="false">
<string> "distance" </string>
<real> 4 </real>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
<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> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
<string> "x_rot" </string>
<real> 0 </real>
<string> "y_rot" </string>
<real> 0 </real>
- <string> "use_orthogonal" </string>
- <bool> False </bool>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
<string> "use_environment" </string>
<bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
<string> "pos" </string>
<vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
</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> "zfar" </string>
+ <real> 500 </real>
<string> "znear" </string>
<real> 0.1 </real>
</dictionary>
+ <string> "Script" </string>
+ <dictionary shared="false">
+ <string> "current" </string>
+ <int> 2 </int>
+ <string> "sources" </string>
+ <array len="3" shared="false">
+ <string> "res://enemy.gd" </string>
+ <string> "res://player.gd" </string>
+ <string> "res://coin.gd" </string>
+ </array>
+ </dictionary>
</dictionary>
<string> "__editor_run_settings__" </string>
<dictionary shared="false">
@@ -256,32 +399,9 @@
<string> "run_mode" </string>
<int> 0 </int>
</dictionary>
- <string> "__editor_plugin_screen__" </string>
- <string> "2D" </string>
</dictionary>
- <bool> True </bool>
- <real> 1 </real>
- <bool> False </bool>
- <vector2> 0, 0 </vector2>
- <real> 0 </real>
- <vector2> 1, 1 </vector2>
- <int> 64 </int>
- <int> 16 </int>
- <resource resource_type="TileSet" path="res://tileset.xml"> </resource>
- <int_array len="1998"> 0, 2, 70, 536870914, 71, 10, 72, 10, 73, 10, 74, 10, 75, 10, 76, 10, 77, 10, 78, 10, 65536, 2, 65606, 536870914, 65607, 10, 65608, 10, 65609, 10, 65610, 10, 65611, 10, 65612, 10, 65613, 10, 65614, 10, 131072, 2, 131142, 536870914, 131143, 10, 131144, 10, 131145, 10, 131146, 10, 131147, 10, 131148, 10, 131149, 10, 131150, 10, 196608, 2, 196626, 9, 196678, 536870914, 196679, 10, 196680, 10, 196681, 10, 196682, 10, 196683, 10, 196684, 10, 196685, 10, 196686, 10, 262144, 2, 262162, 8, 262214, 536870914, 262215, 10, 262216, 10, 262217, 10, 262218, 10, 262219, 10, 262220, 10, 262221, 10, 262222, 10, 327680, 2, 327697, 536870921, 327698, 7, 327733, 9, 327750, 536870914, 327751, 10, 327752, 10, 327753, 10, 327754, 10, 327755, 10, 327756, 10, 327757, 10, 327758, 10, 393216, 2, 393233, 536870920, 393234, 7, 393257, 9, 393269, 7, 393286, 536870914, 393287, 10, 393288, 10, 393289, 10, 393290, 10, 393291, 10, 393292, 10, 393293, 10, 393294, 10, 458752, 2, 458769, 7, 458770, 8, 458790, 9, 458793, 8, 458805, 8, 458822, 536870914, 458823, 10, 458824, 10, 458825, 10, 458826, 10, 458827, 10, 458828, 10, 458829, 10, 458830, 10, 524288, 4, 524289, 1, 524304, 536870913, 524305, 536870918, 524306, 6, 524307, 5, 524308, 1, 524326, 8, 524329, 7, 524341, 7, 524358, 536870914, 524359, 10, 524360, 10, 524361, 10, 524362, 10, 524363, 10, 524364, 10, 524365, 10, 524366, 10, 589824, 10, 589825, 13, 589840, 536870914, 589841, 10, 589842, 10, 589843, 10, 589844, 2, 589862, 7, 589865, 7, 589876, 536870913, 589877, 6, 589878, 1, 589894, 536870914, 589895, 10, 589896, 10, 589897, 10, 589898, 10, 589899, 10, 589900, 10, 589901, 10, 589902, 10, 655360, 2, 655376, 536870914, 655377, 10, 655378, 10, 655379, 10, 655380, 2, 655398, 7, 655401, 8, 655412, 536870925, 655413, 11, 655414, 13, 655430, 536870914, 655431, 10, 655432, 10, 655433, 10, 655434, 10, 655435, 10, 655436, 10, 655437, 10, 655438, 10, 720896, 2, 720912, 536870914, 720913, 10, 720914, 10, 720915, 10, 720916, 2, 720934, 8, 720937, 7, 720958, 536870913, 720959, 5, 720960, 536870917, 720961, 5, 720962, 5, 720963, 536870917, 720964, 5, 720965, 0, 720966, 536870916, 720967, 10, 720968, 10, 720969, 10, 720970, 10, 720971, 10, 720972, 10, 720973, 10, 720974, 10, 786432, 2, 786437, 9, 786448, 536870914, 786449, 10, 786450, 10, 786451, 10, 786452, 2, 786464, 536870913, 786465, 1, 786470, 7, 786473, 7, 786474, 536870924, 786475, 1, 786494, 536870914, 786495, 10, 786496, 10, 786497, 10, 786498, 10, 786499, 10, 786500, 10, 786501, 10, 786502, 10, 786503, 10, 786504, 10, 786505, 10, 786506, 10, 786507, 10, 786508, 10, 786509, 10, 851968, 2, 851973, 7, 851984, 536870914, 851985, 10, 851986, 10, 851987, 10, 851988, 2, 851996, 536870913, 851997, 1, 852000, 536870914, 852001, 3, 852006, 7, 852009, 536870913, 852011, 2, 852030, 536870914, 852031, 10, 852032, 10, 852033, 10, 852034, 10, 852035, 10, 852036, 10, 852037, 10, 852038, 10, 852039, 10, 852040, 10, 852041, 10, 852042, 10, 852043, 10, 852044, 10, 852045, 10, 917504, 2, 917506, 9, 917509, 7, 917512, 536870921, 917520, 536870925, 917521, 11, 917522, 11, 917523, 11, 917524, 13, 917532, 536870925, 917533, 13, 917536, 536870914, 917537, 4, 917538, 1, 917540, 536870913, 917541, 0, 917542, 1, 917545, 536870914, 917546, 10, 917547, 4, 917548, 1, 917566, 536870914, 917567, 10, 917568, 10, 917569, 10, 917570, 10, 917571, 10, 917572, 10, 917573, 10, 917574, 10, 917575, 10, 917576, 10, 917577, 10, 917578, 10, 917579, 10, 917580, 10, 917581, 10, 983040, 2, 983042, 7, 983045, 7, 983048, 536870920, 983050, 536870913, 983051, 1, 983064, 536870913, 983065, 1, 983072, 536870914, 983073, 10, 983074, 4, 983075, 0, 983076, 536870916, 983077, 10, 983078, 4, 983079, 536870912, 983080, 536870912, 983081, 536870916, 983082, 10, 983083, 10, 983084, 2, 983095, 9, 983102, 536870914, 983103, 10, 983104, 10, 983105, 10, 983106, 10, 983107, 10, 983108, 10, 983109, 10, 983110, 10, 983111, 10, 983112, 10, 983113, 10, 983114, 10, 983115, 10, 983116, 10, 983117, 10, 1048576, 2, 1048578, 8, 1048581, 8, 1048584, 536870919, 1048586, 536870925, 1048587, 13, 1048600, 536870925, 1048601, 13, 1048604, 9, 1048608, 536870925, 1048609, 536870923, 1048610, 536870923, 1048611, 536870923, 1048612, 10, 1048613, 10, 1048614, 10, 1048615, 10, 1048616, 10, 1048617, 10, 1048618, 10, 1048619, 10, 1048620, 4, 1048621, 1, 1048630, 536870921, 1048631, 8, 1048638, 536870914, 1048639, 10, 1048640, 10, 1048641, 10, 1048642, 10, 1048643, 10, 1048644, 10, 1048645, 10, 1048646, 10, 1048647, 10, 1048648, 10, 1048649, 10, 1048650, 10, 1048651, 10, 1048652, 10, 1048653, 10, 1114112, 4, 1114113, 0, 1114114, 6, 1114115, 0, 1114116, 0, 1114117, 6, 1114118, 1, 1114120, 536870920, 1114128, 536870913, 1114129, 5, 1114130, 536870917, 1114131, 5, 1114132, 0, 1114133, 1, 1114140, 7, 1114141, 536870921, 1114148, 536870914, 1114149, 10, 1114150, 10, 1114151, 10, 1114152, 10, 1114153, 10, 1114154, 10, 1114155, 10, 1114156, 10, 1114157, 2, 1114166, 536870920, 1114167, 8, 1114174, 536870914, 1114175, 10, 1114176, 10, 1114177, 10, 1114178, 10, 1114179, 10, 1114180, 10, 1114181, 10, 1114182, 10, 1114183, 10, 1114184, 10, 1114185, 10, 1114186, 10, 1114187, 10, 1114188, 10, 1179648, 10, 1179649, 10, 1179650, 10, 1179651, 10, 1179652, 10, 1179653, 10, 1179654, 2, 1179656, 536870919, 1179663, 536870915, 1179665, 10, 1179666, 10, 1179667, 10, 1179668, 10, 1179669, 4, 1179670, 12, 1179675, 9, 1179676, 8, 1179677, 8, 1179684, 536870914, 1179685, 10, 1179686, 10, 1179687, 10, 1179688, 10, 1179689, 10, 1179690, 10, 1179691, 10, 1179692, 10, 1179693, 4, 1179694, 1, 1179701, 9, 1179702, 536870919, 1179703, 7, 1179710, 536870914, 1179711, 10, 1179712, 10, 1179713, 10, 1179714, 10, 1179715, 10, 1179716, 10, 1179717, 10, 1179718, 10, 1179719, 10, 1179720, 10, 1179721, 10, 1179722, 10, 1245184, 10, 1245185, 10, 1245186, 10, 1245187, 10, 1245188, 10, 1245189, 10, 1245190, 2, 1245192, 536870919, 1245199, 536870913, 1245200, 536870916, 1245201, 10, 1245202, 10, 1245203, 10, 1245204, 10, 1245205, 10, 1245207, 1, 1245211, 7, 1245212, 7, 1245213, 536870920, 1245220, 536870914, 1245221, 10, 1245222, 10, 1245223, 10, 1245224, 10, 1245225, 10, 1245226, 10, 1245227, 10, 1245228, 10, 1245229, 10, 1245230, 2, 1245237, 8, 1245238, 536870919, 1245239, 8, 1245240, 536870921, 1245246, 536870914, 1245247, 10, 1245248, 10, 1245249, 10, 1245250, 10, 1245251, 10, 1245252, 10, 1245253, 10, 1245254, 10, 1245255, 10, 1245256, 10, 1245257, 10, 1245258, 10, 1310720, 10, 1310721, 10, 1310722, 10, 1310723, 10, 1310724, 10, 1310725, 10, 1310726, 2, 1310728, 536870920, 1310730, 536870913, 1310731, 1, 1310734, 536870913, 1310735, 536870916, 1310736, 10, 1310737, 10, 1310738, 10, 1310739, 10, 1310740, 10, 1310741, 10, 1310742, 10, 1310743, 4, 1310744, 1, 1310747, 8, 1310748, 7, 1310749, 536870919, 1310756, 536870914, 1310757, 10, 1310758, 10, 1310759, 10, 1310760, 10, 1310761, 10, 1310762, 10, 1310763, 10, 1310764, 10, 1310765, 10, 1310766, 4, 1310767, 5, 1310768, 12, 1310773, 7, 1310774, 536870919, 1310775, 7, 1310776, 536870919, 1310782, 536870914, 1310783, 10, 1310784, 10, 1310785, 10, 1310786, 10, 1310787, 10, 1310788, 10, 1310789, 10, 1310790, 10, 1310791, 10, 1310792, 10, 1310793, 10, 1376256, 10, 1376257, 10, 1376258, 10, 1376259, 10, 1376260, 10, 1376261, 10, 1376262, 4, 1376263, 0, 1376264, 536870918, 1376265, 0, 1376266, 536870916, 1376267, 4, 1376268, 0, 1376269, 0, 1376270, 536870916, 1376271, 10, 1376272, 10, 1376273, 10, 1376274, 10, 1376275, 10, 1376276, 10, 1376277, 10, 1376278, 10, 1376279, 10, 1376280, 4, 1376281, 12, 1376283, 8, 1376284, 8, 1376285, 536870920, 1376287, 536870924, 1376288, 0, 1376289, 5, 1376290, 536870917, 1376291, 0, 1376292, 536870916, 1376293, 10, 1376294, 10, 1376295, 10, 1376296, 10, 1376297, 10, 1376298, 10, 1376299, 10, 1376300, 10, 1376301, 10, 1376302, 10, 1376303, 10, 1376305, 12, 1376309, 7, 1376310, 536870920, 1376311, 7, 1376312, 536870920, 1376318, 536870914, 1376319, 10, 1376320, 10, 1376321, 10, 1376322, 10, 1376323, 10, 1376324, 10, 1376325, 10, 1376326, 10, 1376327, 10, 1376328, 10, 1441792, 10, 1441793, 10, 1441794, 10, 1441795, 10, 1441796, 10, 1441797, 10, 1441798, 10, 1441799, 10, 1441800, 10, 1441801, 10, 1441802, 10, 1441803, 10, 1441804, 10, 1441805, 10, 1441806, 10, 1441807, 10, 1441808, 10, 1441809, 10, 1441810, 10, 1441811, 10, 1441812, 10, 1441813, 10, 1441814, 10, 1441815, 10, 1441816, 10, 1441818, 0, 1441819, 6, 1441820, 6, 1441821, 536870918, 1441822, 5, 1441824, 10, 1441825, 10, 1441826, 10, 1441827, 10, 1441828, 10, 1441829, 10, 1441830, 10, 1441831, 10, 1441832, 10, 1441833, 10, 1441834, 10, 1441835, 10, 1441836, 10, 1441837, 10, 1441838, 10, 1441839, 10, 1441840, 10, 1441842, 0, 1441843, 0, 1441844, 0, 1441845, 6, 1441846, 536870918, 1441847, 6, 1441848, 536870918, 1441849, 0, 1441850, 5, 1441851, 536870917, 1441852, 5, 1441853, 0, 1441854, 536870916, 1441855, 10, 1441856, 10, 1441857, 10, 1441858, 10, 1441859, 10, 1441860, 10, 1441861, 10, 1441862, 10, 1441863, 10, 1507328, 10, 1507329, 10, 1507330, 10, 1507331, 10, 1507332, 10, 1507333, 10, 1507334, 10, 1507335, 10, 1507336, 10, 1507337, 10, 1507338, 10, 1507339, 10, 1507340, 10, 1507341, 10, 1507342, 10, 1507343, 10, 1507344, 10, 1507345, 10, 1507346, 10, 1507347, 10, 1507348, 10, 1507349, 10, 1507350, 10, 1507351, 10, 1507352, 10, 1507353, 10, 1507354, 10, 1507355, 10, 1507356, 10, 1507357, 10, 1507358, 10, 1507359, 10, 1507360, 10, 1507361, 10, 1507362, 10, 1507363, 10, 1507364, 10, 1507365, 10, 1507366, 10, 1507367, 10, 1507368, 10, 1507369, 10, 1507370, 10, 1507371, 10, 1507372, 10, 1507373, 10, 1507374, 10, 1507375, 10, 1507376, 10, 1507377, 10, 1507378, 10, 1507379, 10, 1507380, 10, 1507381, 10, 1507382, 10, 1507383, 10, 1507384, 10, 1507385, 10, 1507386, 10, 1507387, 10, 1507388, 10, 1507389, 10, 1507390, 10, 1507391, 10, 1507392, 10, 1507393, 10, 1507394, 10, 1507395, 10, 1507396, 10, 1507397, 10, 1507398, 10, 1507399, 10, 1572864, 10, 1572865, 10, 1572866, 10, 1572867, 10, 1572868, 10, 1572869, 10, 1572870, 10, 1572871, 10, 1572872, 10, 1572873, 10, 1572874, 10, 1572875, 10, 1572876, 10, 1572877, 10, 1572878, 10, 1572879, 10, 1572880, 10, 1572881, 10, 1572882, 10, 1572883, 10, 1572884, 10, 1572885, 10, 1572886, 10, 1572887, 10, 1572888, 10, 1572889, 10, 1572890, 10, 1572891, 10, 1572892, 10, 1572893, 10, 1572894, 10, 1572895, 10, 1572896, 10, 1572897, 10, 1572898, 10, 1572899, 10, 1572900, 10, 1572901, 10, 1572902, 10, 1572903, 10, 1572904, 10, 1572905, 10, 1572906, 10, 1572907, 10, 1572908, 10, 1572909, 10, 1572910, 10, 1572911, 10, 1572912, 10, 1572913, 10, 1572914, 10, 1572915, 10, 1572916, 10, 1572917, 10, 1572918, 10, 1572919, 10, 1572920, 10, 1572921, 10, 1572922, 10, 1572923, 10, 1572924, 10, 1572925, 10, 1572926, 10, 1572927, 10, 1572928, 10, 1572929, 10, 1572930, 10, 1572931, 10, 1572932, 10, 1572933, 10, 1572934, 10, 1572935, 10, 1638400, 10, 1638401, 10, 1638402, 10, 1638403, 10, 1638404, 10, 1638405, 10, 1638406, 10, 1638407, 10, 1638408, 10, 1638409, 10, 1638410, 10, 1638411, 10, 1638412, 10, 1638413, 10, 1638414, 10, 1638415, 10, 1638416, 10, 1638417, 10, 1638418, 10, 1638419, 10, 1638420, 10, 1638421, 10, 1638422, 10, 1638423, 10, 1638424, 10, 1638425, 10, 1638426, 10, 1638427, 10, 1638428, 10, 1638429, 10, 1638430, 10, 1638431, 10, 1638432, 10, 1638433, 10, 1638434, 10, 1638435, 10, 1638436, 10, 1638437, 10, 1638438, 10, 1638439, 10, 1638440, 10, 1638441, 10, 1638442, 10, 1638443, 10, 1638444, 10, 1638445, 10, 1638446, 10, 1638447, 10, 1638448, 10, 1638449, 10, 1638450, 10, 1638451, 10, 1638452, 10, 1638453, 10, 1638454, 10, 1638455, 10, 1638456, 10, 1638457, 10, 1638458, 10, 1638459, 10, 1638460, 10, 1638461, 10, 1638462, 10, 1638463, 10, 1638464, 10, 1638465, 10, 1638466, 10, 1638467, 10, 1638468, 10, 1638469, 10, 1638470, 10, 1638471, 10, 1703952, 10, 1703953, 10, 1703954, 10, 1703955, 10, 1703956, 10, 1703957, 10, 1703958, 10, 1703959, 10, 1703960, 10, 1703961, 10, 1703962, 10, 1703963, 10, 1703964, 10, 1703965, 10, 1703966, 10, 1703967, 10, 1703968, 10, 1703969, 10, 1703970, 10, 1703971, 10, 1703972, 10, 1703973, 10, 1703974, 10, 1703975, 10, 1703976, 10, 1703977, 10, 1703978, 10, 1703979, 10, 1703980, 10, 1703981, 10, 1703982, 10, 1703983, 10, 1703984, 10, 1703985, 10, 1703986, 10, 1703987, 10, 1703988, 10, 1703989, 10, 1703990, 10, 1703991, 10, 1703992, 10, 1703993, 10, 1703994, 10, 1703995, 10, 1703996, 10, 1703997, 10, 1703998, 10, 1703999, 10, 1704000, 10, 1704001, 10, 1704002, 10, 1704003, 10, 1704004, 10, 1704005, 10, 1704006, 10, 1704007, 10, 1769488, 10, 1769489, 10, 1769490, 10, 1769491, 10, 1769492, 10, 1769493, 10, 1769494, 10, 1769495, 10, 1769496, 10, 1769497, 10, 1769498, 10, 1769499, 10, 1769500, 10, 1769501, 10, 1769502, 10, 1769503, 10, 1769504, 10, 1769505, 10, 1769506, 10, 1769507, 10, 1769508, 10, 1769509, 10, 1769510, 10, 1769511, 10, 1769512, 10, 1769513, 10, 1769514, 10, 1769515, 10, 1769516, 10, 1769517, 10, 1769518, 10, 1769519, 10, 1769520, 10, 1769521, 10, 1769522, 10, 1769523, 10, 1769524, 10, 1769525, 10, 1769526, 10, 1769527, 10, 1769528, 10, 1769529, 10, 1769530, 10, 1769531, 10, 1769532, 10, 1769533, 10, 1769534, 10, 1769535, 10, 1769536, 10, 1769537, 10, 1769538, 10, 1769539, 10, 1769540, 10, 1769541, 10 </int_array>
- <int> 1 </int>
- <dictionary shared="false">
- <string> "_edit_lock_" </string>
- <bool> True </bool>
- </dictionary>
- <dictionary shared="false">
- <string> "_editor_collapsed" </string>
- <bool> True </bool>
- </dictionary>
- <resource resource_type="PackedScene" path="res://coin.xml"> </resource>
- <vector2> 672, 1120 </vector2>
- <vector2> 704, 1120 </vector2>
- <vector2> 736, 1120 </vector2>
+ <vector2> 704, 1179 </vector2>
+ <vector2> 736, 1179 </vector2>
<vector2> 1120, 992 </vector2>
<vector2> 1152, 992 </vector2>
<vector2> 1184, 992 </vector2>
@@ -321,10 +441,119 @@
<vector2> 4300.75, 541.058 </vector2>
<vector2> 4236.75, 541.058 </vector2>
<vector2> 4172.75, 541.058 </vector2>
- <resource resource_type="PackedScene" path="res://player.xml"> </resource>
- <vector2> 251.684, 1045.6 </vector2>
<resource resource_type="PackedScene" path="res://moving_platform.xml"> </resource>
<vector2> 1451.86, 742.969 </vector2>
+ <dictionary shared="false">
+ <string> "__editor_plugin_screen__" </string>
+ <string> "2D" </string>
+ <string> "__editor_plugin_states__" </string>
+ <dictionary shared="false">
+ <string> "2D" </string>
+ <dictionary shared="false">
+ <string> "ofs" </string>
+ <vector2> -210.652, -172.81 </vector2>
+ <string> "pixel_snap" </string>
+ <bool> False </bool>
+ <string> "zoom" </string>
+ <real> 1.360373 </real>
+ </dictionary>
+ <string> "3D" </string>
+ <dictionary shared="false">
+ <string> "default_light" </string>
+ <bool> True </bool>
+ <string> "fov" </string>
+ <real> 400 </real>
+ <string> "show_grid" </string>
+ <bool> True </bool>
+ <string> "show_origin" </string>
+ <bool> True </bool>
+ <string> "viewport_mode" </string>
+ <int> 1 </int>
+ <string> "viewports" </string>
+ <array len="4" shared="false">
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ </dictionary>
+ </array>
+ <string> "zfar" </string>
+ <real> 500 </real>
+ <string> "znear" </string>
+ <real> 0.1 </real>
+ </dictionary>
+ <string> "Script" </string>
+ <dictionary shared="false">
+ <string> "current" </string>
+ <int> 0 </int>
+ <string> "sources" </string>
+ <array len="4" shared="false">
+ <string> "res://moving_platform.gd" </string>
+ <string> "res://enemy.gd" </string>
+ <string> "res://player.gd" </string>
+ <string> "res://coin.gd" </string>
+ </array>
+ </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>
+ </dictionary>
<vector2> 0, 140 </vector2>
<real> 5 </real>
<vector2> 624.824, 545.544 </vector2>
@@ -334,10 +563,481 @@
<vector2> 450, 0 </vector2>
<resource resource_type="PackedScene" path="res://seesaw.xml"> </resource>
<vector2> 2402.79, 849.52 </vector2>
+ <dictionary shared="false">
+ <string> "__editor_plugin_screen__" </string>
+ <string> "2D" </string>
+ <string> "__editor_plugin_states__" </string>
+ <dictionary shared="false">
+ <string> "2D" </string>
+ <dictionary shared="false">
+ <string> "ofs" </string>
+ <vector2> -116.979, -109.897 </vector2>
+ <string> "pixel_snap" </string>
+ <bool> False </bool>
+ <string> "zoom" </string>
+ <real> 2.050547 </real>
+ </dictionary>
+ <string> "3D" </string>
+ <dictionary shared="false">
+ <string> "default_light" </string>
+ <bool> True </bool>
+ <string> "fov" </string>
+ <real> 400 </real>
+ <string> "show_grid" </string>
+ <bool> True </bool>
+ <string> "show_origin" </string>
+ <bool> True </bool>
+ <string> "viewport_mode" </string>
+ <int> 1 </int>
+ <string> "viewports" </string>
+ <array len="4" shared="false">
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ </dictionary>
+ </array>
+ <string> "zfar" </string>
+ <real> 500 </real>
+ <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>
+ </dictionary>
+ <resource resource_type="PackedScene" path="res://one_way_platform.xml"> </resource>
+ <vector2> 927.698, 1120.81 </vector2>
+ <dictionary shared="false">
+ <string> "__editor_plugin_screen__" </string>
+ <string> "2D" </string>
+ <string> "__editor_plugin_states__" </string>
+ <dictionary shared="false">
+ <string> "2D" </string>
+ <dictionary shared="false">
+ <string> "ofs" </string>
+ <vector2> -133.699, -110.553 </vector2>
+ <string> "snap_grid" </string>
+ <bool> False </bool>
+ <string> "snap_offset" </string>
+ <vector2> 0, 0 </vector2>
+ <string> "snap_pixel" </string>
+ <bool> False </bool>
+ <string> "snap_relative" </string>
+ <bool> False </bool>
+ <string> "snap_rotation" </string>
+ <bool> False </bool>
+ <string> "snap_rotation_offset" </string>
+ <real> 0 </real>
+ <string> "snap_rotation_step" </string>
+ <real> 0.261799 </real>
+ <string> "snap_show_grid" </string>
+ <bool> False </bool>
+ <string> "snap_step" </string>
+ <vector2> 10, 10 </vector2>
+ <string> "zoom" </string>
+ <real> 2.050546 </real>
+ </dictionary>
+ <string> "3D" </string>
+ <dictionary shared="false">
+ <string> "ambient_light_color" </string>
+ <color> 0.15, 0.15, 0.15, 1 </color>
+ <string> "default_light" </string>
+ <bool> True </bool>
+ <string> "default_srgb" </string>
+ <bool> False </bool>
+ <string> "deflight_rot_x" </string>
+ <real> 0.942478 </real>
+ <string> "deflight_rot_y" </string>
+ <real> 0.628319 </real>
+ <string> "fov" </string>
+ <real> 45 </real>
+ <string> "show_grid" </string>
+ <bool> True </bool>
+ <string> "show_origin" </string>
+ <bool> True </bool>
+ <string> "viewport_mode" </string>
+ <int> 1 </int>
+ <string> "viewports" </string>
+ <array len="4" shared="false">
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "listener" </string>
+ <bool> True </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "listener" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "listener" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "listener" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ </dictionary>
+ </array>
+ <string> "zfar" </string>
+ <real> 500 </real>
+ <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>
+ </dictionary>
+ <resource resource_type="PackedScene" path="res://player.xml"> </resource>
+ <vector2> 251.684, 1045.6 </vector2>
+ <dictionary shared="false">
+ <string> "__editor_plugin_screen__" </string>
+ <string> "Script" </string>
+ <string> "__editor_plugin_states__" </string>
+ <dictionary shared="false">
+ <string> "2D" </string>
+ <dictionary shared="false">
+ <string> "ofs" </string>
+ <vector2> -181.946, -86.2812 </vector2>
+ <string> "pixel_snap" </string>
+ <bool> False </bool>
+ <string> "snap" </string>
+ <int> 10 </int>
+ <string> "use_snap" </string>
+ <bool> False </bool>
+ <string> "zoom" </string>
+ <real> 2.272073 </real>
+ </dictionary>
+ <string> "3D" </string>
+ <dictionary shared="false">
+ <string> "ambient_light_color" </string>
+ <color> 0.15, 0.15, 0.15, 1 </color>
+ <string> "default_light" </string>
+ <bool> True </bool>
+ <string> "default_srgb" </string>
+ <bool> False </bool>
+ <string> "deflight_rot_x" </string>
+ <real> 0.942478 </real>
+ <string> "deflight_rot_y" </string>
+ <real> 0.628319 </real>
+ <string> "fov" </string>
+ <real> 45 </real>
+ <string> "show_grid" </string>
+ <bool> True </bool>
+ <string> "show_origin" </string>
+ <bool> True </bool>
+ <string> "viewport_mode" </string>
+ <int> 1 </int>
+ <string> "viewports" </string>
+ <array len="4" shared="false">
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "listener" </string>
+ <bool> True </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "listener" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "listener" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "listener" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ </dictionary>
+ </array>
+ <string> "zfar" </string>
+ <real> 500 </real>
+ <string> "znear" </string>
+ <real> 0.1 </real>
+ </dictionary>
+ <string> "Script" </string>
+ <dictionary shared="false">
+ <string> "current" </string>
+ <int> 0 </int>
+ <string> "sources" </string>
+ <array len="1" shared="false">
+ <string> "res://player.gd" </string>
+ </array>
+ </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>
+ </dictionary>
<resource resource_type="AudioStream" path="res://music.ogg"> </resource>
+ <bool> True </bool>
<real> 2 </real>
<resource resource_type="PackedScene" path="res://enemy.xml"> </resource>
<vector2> 834.664, 1309.6 </vector2>
+ <dictionary shared="false">
+ <string> "__editor_plugin_screen__" </string>
+ <string> "2D" </string>
+ <string> "__editor_plugin_states__" </string>
+ <dictionary shared="false">
+ <string> "2D" </string>
+ <dictionary shared="false">
+ <string> "ofs" </string>
+ <vector2> -227.625, -197.9 </vector2>
+ <string> "pixel_snap" </string>
+ <bool> False </bool>
+ <string> "zoom" </string>
+ <real> 1.108033 </real>
+ </dictionary>
+ <string> "3D" </string>
+ <dictionary shared="false">
+ <string> "default_light" </string>
+ <bool> True </bool>
+ <string> "fov" </string>
+ <real> 45 </real>
+ <string> "show_grid" </string>
+ <bool> True </bool>
+ <string> "show_origin" </string>
+ <bool> True </bool>
+ <string> "viewport_mode" </string>
+ <int> 1 </int>
+ <string> "viewports" </string>
+ <array len="4" shared="false">
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ </dictionary>
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "x_rot" </string>
+ <real> 0 </real>
+ <string> "y_rot" </string>
+ <real> 0 </real>
+ </dictionary>
+ </array>
+ <string> "zfar" </string>
+ <real> 500 </real>
+ <string> "znear" </string>
+ <real> 0.1 </real>
+ </dictionary>
+ <string> "Script" </string>
+ <dictionary shared="false">
+ <string> "current" </string>
+ <int> 0 </int>
+ <string> "sources" </string>
+ <array len="1" shared="false">
+ <string> "res://enemy.gd" </string>
+ </array>
+ </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>
+ </dictionary>
<vector2> 707.665, 1225.05 </vector2>
<vector2> 1125.21, 1053.06 </vector2>
<vector2> 1292.11, 1059.24 </vector2>
@@ -349,21 +1049,78 @@
<vector2> 3546.2, 1356.19 </vector2>
<vector2> 2406.63, 815.115 </vector2>
<resource resource_type="PackedScene" path="res://parallax_bg.xml"> </resource>
+ <dictionary shared="false">
+ <string> "__editor_plugin_screen__" </string>
+ <string> "2D" </string>
+ <string> "__editor_plugin_states__" </string>
+ <dictionary shared="false">
+ <string> "2D" </string>
+ <dictionary shared="false">
+ <string> "ofs" </string>
+ <vector2> -5, -25 </vector2>
+ <string> "zoom" </string>
+ <real> 1 </real>
+ </dictionary>
+ <string> "3D" </string>
+ <dictionary shared="false">
+ <string> "fov" </string>
+ <real> 45 </real>
+ <string> "window_0" </string>
+ <dictionary shared="false">
+ <string> "default_light" </string>
+ <bool> True </bool>
+ <string> "distance" </string>
+ <real> 4 </real>
+ <string> "pos" </string>
+ <vector3> 0, 0, 0 </vector3>
+ <string> "show_grid" </string>
+ <bool> True </bool>
+ <string> "show_origin" </string>
+ <bool> True </bool>
+ <string> "x_rot" </string>
+ <real> 0.337 </real>
+ <string> "y_rot" </string>
+ <real> -0.575 </real>
+ </dictionary>
+ <string> "window_mode" </string>
+ <int> 0 </int>
+ <string> "zfar" </string>
+ <real> 500 </real>
+ <string> "znear" </string>
+ <real> 0.1 </real>
+ </dictionary>
+ <string> "Script" </string>
+ <dictionary shared="false">
+ <string> "current" </string>
+ <int> 0 </int>
+ <string> "sources" </string>
+ <array len="4" shared="false">
+ <string> "res://moving_platform.gd" </string>
+ <string> "res://enemy.gd" </string>
+ <string> "res://player.gd" </string>
+ <string> "res://coin.gd" </string>
+ </array>
+ </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>
+ </dictionary>
<real> 12 </real>
<real> -202 </real>
<real> 358 </real>
<real> -10 </real>
- <int> 2 </int>
<real> 7 </real>
<real> 14.769231 </real>
- <string> "This is a simple demo on how to make a platformer game with Godot.&#22;This version uses physics and the 2D physics engine for motion and collision.&#22;&#22;The demo also shows the benefits of using the scene system, where coins,&#22;enemies and the player are edited separatedly and instanced in the stage.&#22;&#22;To edit the base tiles for the tileset, open the tileset_edit.xml file and follow &#22;instructions.&#22;" </string>
- <int> 0 </int>
+ <string> "This is a simple demo on how to make a platformer game with Godot.&quot;This version uses physics and the 2D physics engine for motion and collision.&quot;&quot;The demo also shows the benefits of using the scene system, where coins,&quot;enemies and the player are edited separatedly and instanced in the stage.&quot;&quot;To edit the base tiles for the tileset, open the tileset_edit.xml file and follow &quot;instructions.&quot;" </string>
<real> -1 </real>
</array>
- <string> "nodes" </string>
- <int_array len="708"> -1, -1, 1, 0, -1, 2, 2, 0, 3, 1, 0, 0, 0, 5, 4, -1, 16, 2, 0, 6, 2, 7, 3, 8, 3, 9, 4, 10, 5, 11, 6, 12, 7, 13, 8, 14, 9, 15, 10, 16, 11, 17, 3, 18, 6, 19, 12, 3, 13, 0, 0, 0, 1, 20, -1, 2, 2, 0, 3, 14, 0, 2, 0, 22, 21, 15, 1, 10, 16, 0, 2, 0, 22, 23, 15, 1, 10, 17, 0, 2, 0, 22, 24, 15, 1, 10, 18, 0, 2, 0, 22, 25, 15, 1, 10, 19, 0, 2, 0, 22, 26, 15, 1, 10, 20, 0, 2, 0, 22, 27, 15, 1, 10, 21, 0, 2, 0, 22, 28, 15, 1, 10, 22, 0, 2, 0, 22, 29, 15, 1, 10, 23, 0, 2, 0, 22, 30, 15, 1, 10, 24, 0, 2, 0, 22, 31, 15, 1, 10, 25, 0, 2, 0, 22, 32, 15, 1, 10, 26, 0, 2, 0, 22, 33, 15, 1, 10, 27, 0, 2, 0, 22, 34, 15, 1, 10, 28, 0, 2, 0, 22, 35, 15, 1, 10, 29, 0, 2, 0, 22, 36, 15, 1, 10, 30, 0, 2, 0, 22, 37, 15, 1, 10, 31, 0, 2, 0, 22, 38, 15, 1, 10, 32, 0, 2, 0, 22, 39, 15, 1, 10, 33, 0, 2, 0, 22, 40, 15, 1, 10, 34, 0, 2, 0, 22, 41, 15, 1, 10, 35, 0, 2, 0, 22, 42, 15, 1, 10, 36, 0, 2, 0, 22, 43, 15, 1, 10, 37, 0, 2, 0, 22, 44, 15, 1, 10, 38, 0, 2, 0, 22, 45, 15, 1, 10, 39, 0, 2, 0, 22, 46, 15, 1, 10, 40, 0, 2, 0, 22, 47, 15, 1, 10, 41, 0, 2, 0, 22, 48, 15, 1, 10, 42, 0, 2, 0, 22, 49, 15, 1, 10, 43, 0, 2, 0, 22, 50, 15, 1, 10, 44, 0, 2, 0, 22, 51, 15, 1, 10, 45, 0, 2, 0, 22, 52, 15, 1, 10, 46, 0, 2, 0, 22, 53, 15, 1, 10, 47, 0, 2, 0, 22, 54, 15, 1, 10, 48, 0, 2, 0, 22, 55, 15, 1, 10, 49, 0, 2, 0, 22, 56, 15, 1, 10, 50, 0, 2, 0, 22, 57, 15, 1, 10, 51, 0, 2, 0, 22, 58, 15, 1, 10, 52, 0, 2, 0, 22, 59, 15, 1, 10, 53, 0, 2, 0, 22, 60, 15, 1, 10, 54, 0, 2, 0, 22, 61, 15, 1, 10, 55, 0, 2, 0, 22, 62, 15, 1, 10, 56, 0, 2, 0, 22, 63, 15, 1, 10, 57, 0, 0, 0, 65, 64, 58, 1, 10, 59, 0, 0, 0, 1, 66, -1, 1, 2, 0, 0, 46, 0, 68, 67, 60, 3, 10, 61, 69, 62, 70, 63, 0, 46, 0, 68, 71, 60, 3, 10, 64, 69, 65, 70, 66, 0, 46, 0, 68, 72, 60, 3, 10, 67, 69, 68, 70, 66, 0, 46, 0, 68, 73, 69, 1, 10, 70, 0, 0, 0, 75, 74, -1, 7, 2, 0, 76, 71, 77, 4, 78, 2, 79, 72, 80, 2, 81, 4, 0, 0, 0, 1, 82, -1, 1, 2, 0, 0, 52, 0, 65, 83, 73, 1, 10, 74, 0, 52, 0, 65, 84, 73, 1, 10, 75, 0, 52, 0, 65, 85, 73, 1, 10, 76, 0, 52, 0, 65, 86, 73, 1, 10, 77, 0, 52, 0, 65, 87, 73, 1, 10, 78, 0, 52, 0, 65, 88, 73, 1, 10, 79, 0, 52, 0, 65, 89, 73, 1, 10, 80, 0, 52, 0, 65, 90, 73, 1, 10, 81, 0, 52, 0, 65, 91, 73, 1, 10, 82, 0, 52, 0, 65, 92, 73, 1, 10, 83, 0, 52, 0, 65, 93, 73, 1, 10, 84, 0, 0, 0, 95, 94, 85, 0, 0, 0, 0, 96, 96, -1, 30, 2, 0, 6, 2, 7, 3, 8, 3, 9, 4, 97, 86, 98, 87, 99, 88, 100, 89, 101, 0, 102, 0, 103, 0, 104, 0, 105, 2, 106, 2, 107, 90, 108, 3, 109, 6, 110, 91, 111, 3, 112, 92, 113, 6, 114, 4, 115, 4, 116, 93, 117, 94, 118, 94, 119, 2, 120, 4, 121, 95, 0 </int_array>
- <string> "conns" </string>
- <int_array len="0"> </int_array>
+ <string> "version" </string>
+ <int> 1 </int>
</dictionary>
</main_resource>
diff --git a/demos/2d/platformer/tiles_demo.png b/demos/2d/platformer/tiles_demo.png
index a7a5000906..bc738e6d38 100644
--- a/demos/2d/platformer/tiles_demo.png
+++ b/demos/2d/platformer/tiles_demo.png
Binary files differ
diff --git a/demos/2d/platformer/tiles_demo.png.flags b/demos/2d/platformer/tiles_demo.png.flags
new file mode 100644
index 0000000000..efb2b8ce5f
--- /dev/null
+++ b/demos/2d/platformer/tiles_demo.png.flags
@@ -0,0 +1 @@
+filter=false
diff --git a/demos/2d/platformer/tileset.xml b/demos/2d/platformer/tileset.xml
index 2e4ecc8c04..d8f9a651ee 100644
--- a/demos/2d/platformer/tileset.xml
+++ b/demos/2d/platformer/tileset.xml
@@ -1,134 +1,191 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="TileSet" subresource_count="12" version="0.99" version_name="Godot Engine v0.99.3037-pre-beta">
+<resource_file type="TileSet" subresource_count="14" version="1.0" version_name="Godot Engine v1.0.stable.custom_build">
<ext_resource path="res://tiles_demo.png" type="Texture"></ext_resource>
- <resource type="ConvexPolygonShape2D" path="local://0">
- <string name="resource/name"> "" </string>
- <real name="custom_solver_bias"> 0 </real>
- <vector2_array name="points" len="4"> 0, 8, 64, 8, 64, 64, 0, 64 </vector2_array>
- <resource name="script/script"></resource>
- </resource>
<resource type="ConvexPolygonShape2D" path="local://1">
- <string name="resource/name"> "" </string>
<real name="custom_solver_bias"> 0 </real>
- <vector2_array name="points" len="4"> 0, 64, 0, 8, 56, 8, 56, 64 </vector2_array>
- <resource name="script/script"></resource>
+ <vector2_array name="points" len="4"> -32, -24, 32, -24, 32, 32, -32, 32 </vector2_array>
+
</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"> 0, 64, 0, 0, 56, 0, 56, 64 </vector2_array>
- <resource name="script/script"></resource>
+ <vector2_array name="points" len="4"> -32, 32, -32, -24, 24, -24, 24, 32 </vector2_array>
+
</resource>
<resource type="ConvexPolygonShape2D" path="local://3">
- <string name="resource/name"> "" </string>
<real name="custom_solver_bias"> 0 </real>
- <vector2_array name="points" len="4"> 0, 64, 0, 0, 56, 0, 56, 64 </vector2_array>
- <resource name="script/script"></resource>
+ <vector2_array name="points" len="4"> -32, 32, -32, -32, 24, -32, 24, 32 </vector2_array>
+
</resource>
<resource type="ConvexPolygonShape2D" path="local://4">
- <string name="resource/name"> "" </string>
<real name="custom_solver_bias"> 0 </real>
- <vector2_array name="points" len="5"> 0, 64, 0, 0, 56, 0, 64, 8, 64, 64 </vector2_array>
- <resource name="script/script"></resource>
+ <vector2_array name="points" len="4"> -64, 32, -64, -32, -8, -32, -8, 32 </vector2_array>
+
</resource>
<resource type="ConvexPolygonShape2D" path="local://5">
- <string name="resource/name"> "" </string>
<real name="custom_solver_bias"> 0 </real>
- <vector2_array name="points" len="4"> 0, 64, 0, 8, 64, 8, 64, 64 </vector2_array>
- <resource name="script/script"></resource>
+ <vector2_array name="points" len="5"> -32, 32, -32, -32, 24, -32, 32, -24, 32, 32 </vector2_array>
+
</resource>
<resource type="ConvexPolygonShape2D" path="local://6">
- <string name="resource/name"> "" </string>
<real name="custom_solver_bias"> 0 </real>
- <vector2_array name="points" len="4"> 0, 64, 0, 8, 64, 8, 64, 64 </vector2_array>
- <resource name="script/script"></resource>
+ <vector2_array name="points" len="4"> -32, 32, -32, -24, 32, -24, 32, 32 </vector2_array>
+
</resource>
<resource type="ConvexPolygonShape2D" path="local://7">
- <string name="resource/name"> "" </string>
<real name="custom_solver_bias"> 0 </real>
- <vector2_array name="points" len="4"> 0, 0, 64, 0, 64, 64, 0, 64 </vector2_array>
- <resource name="script/script"></resource>
+ <vector2_array name="points" len="4"> -32, 32, -32, -24, 32, -24, 32, 32 </vector2_array>
+
</resource>
<resource type="ConvexPolygonShape2D" path="local://8">
- <string name="resource/name"> "" </string>
<real name="custom_solver_bias"> 0 </real>
- <vector2_array name="points" len="4"> 0, 8, 64, 72, 64, 128, 0, 128 </vector2_array>
- <resource name="script/script"></resource>
+ <vector2_array name="points" len="4"> -32, -32, 32, -32, 32, 32, -32, 32 </vector2_array>
+
</resource>
<resource type="ConvexPolygonShape2D" path="local://9">
- <string name="resource/name"> "" </string>
<real name="custom_solver_bias"> 0 </real>
- <vector2_array name="points" len="4"> 0, 64, 0, 0, 56, 0, 56, 64 </vector2_array>
- <resource name="script/script"></resource>
+ <vector2_array name="points" len="4"> -32, -56, 32, 8, 32, 64, -32, 64 </vector2_array>
+
+ </resource>
+ <resource type="ConvexPolygonShape2D" path="local://10">
+ <real name="custom_solver_bias"> 0 </real>
+ <vector2_array name="points" len="4"> -32, 32, -32, -32, 24, -32, 24, 32 </vector2_array>
+
+ </resource>
+ <resource type="ConvexPolygonShape2D" path="local://11">
+ <real name="custom_solver_bias"> 0 </real>
+ <vector2_array name="points" len="4"> -32, -24, 32, -24, 32, 24, -32, 24 </vector2_array>
+
+ </resource>
+ <resource type="ConvexPolygonShape2D" path="local://12">
+ <real name="custom_solver_bias"> 0 </real>
+ <vector2_array name="points" len="4"> -32, -24, 24, -24, 24, 24, -32, 24 </vector2_array>
+
</resource>
<main_resource>
- <string name="resource/name"> "" </string>
<string name="0/name"> "floor" </string>
<resource name="0/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource>
- <vector2 name="0/offset"> 0, 0 </vector2>
+ <vector2 name="0/tex_offset"> 0, 0 </vector2>
+ <vector2 name="0/shape_offset"> 32, 32 </vector2>
<rect2 name="0/region"> 0, 0, 64, 64 </rect2>
- <resource name="0/shape" resource_type="ConvexPolygonShape2D" path="local://0"> </resource>
+ <array name="0/shapes" len="1" shared="false">
+ <resource resource_type="Shape2D" path="local://1"> </resource>
+ </array>
<string name="1/name"> "edge" </string>
<resource name="1/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource>
- <vector2 name="1/offset"> 0, 0 </vector2>
+ <vector2 name="1/tex_offset"> 0, 0 </vector2>
+ <vector2 name="1/shape_offset"> 32, 32 </vector2>
<rect2 name="1/region"> 64, 0, 64, 64 </rect2>
- <resource name="1/shape" resource_type="ConvexPolygonShape2D" path="local://1"> </resource>
+ <array name="1/shapes" len="1" shared="false">
+ <resource resource_type="Shape2D" path="local://2"> </resource>
+ </array>
<string name="2/name"> "wall" </string>
<resource name="2/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource>
- <vector2 name="2/offset"> 0, 0 </vector2>
+ <vector2 name="2/tex_offset"> 0, 0 </vector2>
+ <vector2 name="2/shape_offset"> 32, 32 </vector2>
<rect2 name="2/region"> 64, 64, 64, 64 </rect2>
- <resource name="2/shape" resource_type="ConvexPolygonShape2D" path="local://2"> </resource>
+ <array name="2/shapes" len="1" shared="false">
+ <resource resource_type="Shape2D" path="local://3"> </resource>
+ </array>
<string name="3/name"> "wall_deco" </string>
<resource name="3/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource>
- <vector2 name="3/offset"> 0, 0 </vector2>
+ <vector2 name="3/tex_offset"> 0, 0 </vector2>
+ <vector2 name="3/shape_offset"> 64, 32 </vector2>
<rect2 name="3/region"> 320, 128, 128, 64 </rect2>
- <resource name="3/shape" resource_type="ConvexPolygonShape2D" path="local://3"> </resource>
+ <array name="3/shapes" len="1" shared="false">
+ <resource resource_type="Shape2D" path="local://4"> </resource>
+ </array>
<string name="4/name"> "corner" </string>
<resource name="4/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource>
- <vector2 name="4/offset"> 0, 0 </vector2>
+ <vector2 name="4/tex_offset"> 0, 0 </vector2>
+ <vector2 name="4/shape_offset"> 32, 32 </vector2>
<rect2 name="4/region"> 64, 128, 64, 64 </rect2>
- <resource name="4/shape" resource_type="ConvexPolygonShape2D" path="local://4"> </resource>
+ <array name="4/shapes" len="1" shared="false">
+ <resource resource_type="Shape2D" path="local://5"> </resource>
+ </array>
<string name="5/name"> "flowers" </string>
<resource name="5/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource>
- <vector2 name="5/offset"> 0, 0 </vector2>
+ <vector2 name="5/tex_offset"> 0, 0 </vector2>
+ <vector2 name="5/shape_offset"> 32, 32 </vector2>
<rect2 name="5/region"> 192, 192, 64, 64 </rect2>
- <resource name="5/shape" resource_type="ConvexPolygonShape2D" path="local://5"> </resource>
+ <array name="5/shapes" len="1" shared="false">
+ <resource resource_type="Shape2D" path="local://6"> </resource>
+ </array>
<string name="6/name"> "tree_base" </string>
<resource name="6/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource>
- <vector2 name="6/offset"> 0, 0 </vector2>
+ <vector2 name="6/tex_offset"> 0, 0 </vector2>
+ <vector2 name="6/shape_offset"> 32, 32 </vector2>
<rect2 name="6/region"> 256, 192, 64, 64 </rect2>
- <resource name="6/shape" resource_type="ConvexPolygonShape2D" path="local://6"> </resource>
+ <array name="6/shapes" len="1" shared="false">
+ <resource resource_type="Shape2D" path="local://7"> </resource>
+ </array>
<string name="7/name"> "tree_mid" </string>
<resource name="7/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource>
- <vector2 name="7/offset"> 0, 0 </vector2>
+ <vector2 name="7/tex_offset"> 0, 0 </vector2>
+ <vector2 name="7/shape_offset"> 0, 0 </vector2>
<rect2 name="7/region"> 256, 128, 64, 64 </rect2>
- <resource name="7/shape"></resource> <string name="8/name"> "tree_mid 2" </string>
+ <array name="7/shapes" len="0" shared="false">
+ </array>
+ <string name="8/name"> "tree_mid 2" </string>
<resource name="8/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource>
- <vector2 name="8/offset"> 0, 0 </vector2>
+ <vector2 name="8/tex_offset"> 0, 0 </vector2>
+ <vector2 name="8/shape_offset"> 0, 0 </vector2>
<rect2 name="8/region"> 256, 64, 64, 64 </rect2>
- <resource name="8/shape"></resource> <string name="9/name"> "tree_top" </string>
+ <array name="8/shapes" len="0" shared="false">
+ </array>
+ <string name="9/name"> "tree_top" </string>
<resource name="9/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource>
- <vector2 name="9/offset"> 0, 0 </vector2>
+ <vector2 name="9/tex_offset"> 0, 0 </vector2>
+ <vector2 name="9/shape_offset"> 0, 0 </vector2>
<rect2 name="9/region"> 256, 0, 64, 64 </rect2>
- <resource name="9/shape"></resource> <string name="10/name"> "solid" </string>
+ <array name="9/shapes" len="0" shared="false">
+ </array>
+ <string name="10/name"> "solid" </string>
<resource name="10/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource>
- <vector2 name="10/offset"> 0, 0 </vector2>
+ <vector2 name="10/tex_offset"> 0, 0 </vector2>
+ <vector2 name="10/shape_offset"> 0, 0 </vector2>
<rect2 name="10/region"> 0, 64, 64, 64 </rect2>
- <resource name="10/shape"></resource> <string name="11/name"> "ceiling" </string>
+ <array name="10/shapes" len="0" shared="false">
+ </array>
+ <string name="11/name"> "ceiling" </string>
<resource name="11/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource>
- <vector2 name="11/offset"> 0, 0 </vector2>
+ <vector2 name="11/tex_offset"> 0, 0 </vector2>
+ <vector2 name="11/shape_offset"> 32, 32 </vector2>
<rect2 name="11/region"> 384, 64, 64, 64 </rect2>
- <resource name="11/shape" resource_type="ConvexPolygonShape2D" path="local://7"> </resource>
+ <array name="11/shapes" len="1" shared="false">
+ <resource resource_type="Shape2D" path="local://8"> </resource>
+ </array>
<string name="12/name"> "ramp" </string>
<resource name="12/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource>
- <vector2 name="12/offset"> 0, 0 </vector2>
+ <vector2 name="12/tex_offset"> 0, 0 </vector2>
+ <vector2 name="12/shape_offset"> 32, 64 </vector2>
<rect2 name="12/region"> 128, 128, 64, 128 </rect2>
- <resource name="12/shape" resource_type="ConvexPolygonShape2D" path="local://8"> </resource>
+ <array name="12/shapes" len="1" shared="false">
+ <resource resource_type="Shape2D" path="local://9"> </resource>
+ </array>
<string name="13/name"> "ceiling2wall" </string>
<resource name="13/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource>
- <vector2 name="13/offset"> 0, 0 </vector2>
+ <vector2 name="13/tex_offset"> 0, 0 </vector2>
+ <vector2 name="13/shape_offset"> 32, 32 </vector2>
<rect2 name="13/region"> 448, 64, 64, 64 </rect2>
- <resource name="13/shape" resource_type="ConvexPolygonShape2D" path="local://9"> </resource>
- <resource name="script/script"></resource>
+ <array name="13/shapes" len="1" shared="false">
+ <resource resource_type="Shape2D" path="local://10"> </resource>
+ </array>
+ <string name="14/name"> "platform_floor" </string>
+ <resource name="14/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource>
+ <vector2 name="14/tex_offset"> 0, 0 </vector2>
+ <vector2 name="14/shape_offset"> 32, 32 </vector2>
+ <rect2 name="14/region"> 128, 0, 64, 64 </rect2>
+ <array name="14/shapes" len="1" shared="false">
+ <resource resource_type="Shape2D" path="local://11"> </resource>
+ </array>
+ <string name="15/name"> "platform_edge" </string>
+ <resource name="15/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource>
+ <vector2 name="15/tex_offset"> 0, 0 </vector2>
+ <vector2 name="15/shape_offset"> 32, 32 </vector2>
+ <rect2 name="15/region"> 192, 0, 64, 64 </rect2>
+ <array name="15/shapes" len="1" shared="false">
+ <resource resource_type="Shape2D" path="local://12"> </resource>
+ </array>
+
</main_resource>
</resource_file> \ No newline at end of file
diff --git a/demos/2d/platformer/tileset_edit.xml b/demos/2d/platformer/tileset_edit.xml
index 2473656a6a..db289433ab 100644
--- a/demos/2d/platformer/tileset_edit.xml
+++ b/demos/2d/platformer/tileset_edit.xml
@@ -1,71 +1,83 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="12" version="1.0" version_name="Godot Engine v1.0.3917-beta1">
+<resource_file type="PackedScene" subresource_count="14" version="1.0" version_name="Godot Engine v1.0.stable.custom_build">
<ext_resource path="res://tiles_demo.png" type="Texture"></ext_resource>
<resource type="ConvexPolygonShape2D" path="local://1">
<real name="custom_solver_bias"> 0 </real>
- <vector2_array name="points" len="4"> 0, 8, 64, 8, 64, 64, 0, 64 </vector2_array>
+ <vector2_array name="points" len="4"> -32, -24, 32, -24, 32, 32, -32, 32 </vector2_array>
</resource>
<resource type="ConvexPolygonShape2D" path="local://2">
<real name="custom_solver_bias"> 0 </real>
- <vector2_array name="points" len="4"> 0, 64, 0, 8, 56, 8, 56, 64 </vector2_array>
+ <vector2_array name="points" len="4"> -32, 32, -32, -24, 24, -24, 24, 32 </vector2_array>
</resource>
<resource type="ConvexPolygonShape2D" path="local://3">
<real name="custom_solver_bias"> 0 </real>
- <vector2_array name="points" len="4"> 0, 64, 0, 0, 56, 0, 56, 64 </vector2_array>
+ <vector2_array name="points" len="4"> -32, 32, -32, -32, 24, -32, 24, 32 </vector2_array>
</resource>
<resource type="ConvexPolygonShape2D" path="local://4">
<real name="custom_solver_bias"> 0 </real>
- <vector2_array name="points" len="4"> 0, 64, 0, 0, 56, 0, 56, 64 </vector2_array>
+ <vector2_array name="points" len="4"> -64, 32, -64, -32, -8, -32, -8, 32 </vector2_array>
</resource>
<resource type="ConvexPolygonShape2D" path="local://5">
<real name="custom_solver_bias"> 0 </real>
- <vector2_array name="points" len="5"> 0, 64, 0, 0, 56, 0, 64, 8, 64, 64 </vector2_array>
+ <vector2_array name="points" len="5"> -32, 32, -32, -32, 24, -32, 32, -24, 32, 32 </vector2_array>
</resource>
<resource type="ConvexPolygonShape2D" path="local://6">
<real name="custom_solver_bias"> 0 </real>
- <vector2_array name="points" len="4"> 0, 8, 64, 72, 64, 128, 0, 128 </vector2_array>
+ <vector2_array name="points" len="4"> -32, 32, -32, -24, 32, -24, 32, 32 </vector2_array>
</resource>
<resource type="ConvexPolygonShape2D" path="local://7">
<real name="custom_solver_bias"> 0 </real>
- <vector2_array name="points" len="4"> 0, 64, 0, 8, 64, 8, 64, 64 </vector2_array>
+ <vector2_array name="points" len="4"> -32, 32, -32, -24, 32, -24, 32, 32 </vector2_array>
</resource>
<resource type="ConvexPolygonShape2D" path="local://8">
<real name="custom_solver_bias"> 0 </real>
- <vector2_array name="points" len="4"> 0, 64, 0, 8, 64, 8, 64, 64 </vector2_array>
+ <vector2_array name="points" len="4"> -32, -32, 32, -32, 32, 32, -32, 32 </vector2_array>
</resource>
<resource type="ConvexPolygonShape2D" path="local://9">
<real name="custom_solver_bias"> 0 </real>
- <vector2_array name="points" len="4"> 0, 0, 64, 0, 64, 64, 0, 64 </vector2_array>
+ <vector2_array name="points" len="4"> -32, -56, 32, 8, 32, 64, -32, 64 </vector2_array>
</resource>
<resource type="ConvexPolygonShape2D" path="local://10">
<real name="custom_solver_bias"> 0 </real>
- <vector2_array name="points" len="4"> 0, 64, 0, 0, 56, 0, 56, 64 </vector2_array>
+ <vector2_array name="points" len="4"> -32, 32, -32, -32, 24, -32, 24, 32 </vector2_array>
+
+ </resource>
+ <resource type="ConvexPolygonShape2D" path="local://11">
+ <real name="custom_solver_bias"> 0 </real>
+ <vector2_array name="points" len="4"> -32, -24, 32, -24, 32, 24, -32, 24 </vector2_array>
+
+ </resource>
+ <resource type="ConvexPolygonShape2D" path="local://12">
+ <real name="custom_solver_bias"> 0 </real>
+ <vector2_array name="points" len="4"> -32, -24, 24, -24, 24, 24, -32, 24 </vector2_array>
</resource>
<main_resource>
<dictionary name="_bundled" shared="false">
<string> "names" </string>
- <string_array len="75">
+ <string_array len="77">
<string> "Node" </string>
+ <string> "_import_path" </string>
<string> "__meta__" </string>
<string> "floor" </string>
<string> "Sprite" </string>
<string> "visibility/visible" </string>
<string> "visibility/opacity" </string>
<string> "visibility/self_opacity" </string>
- <string> "visibility/behind_parent" </string>
<string> "transform/pos" </string>
<string> "transform/rot" </string>
<string> "transform/scale" </string>
+ <string> "z/z" </string>
+ <string> "z/relative" </string>
<string> "texture" </string>
<string> "centered" </string>
<string> "offset" </string>
@@ -83,6 +95,7 @@
<string> "shapes/0/shape" </string>
<string> "shapes/0/transform" </string>
<string> "shapes/0/trigger" </string>
+ <string> "layers" </string>
<string> "constant_linear_velocity" </string>
<string> "constant_angular_velocity" </string>
<string> "friction" </string>
@@ -90,11 +103,11 @@
<string> "CollisionPolygon2D" </string>
<string> "build_mode" </string>
<string> "polygon" </string>
+ <string> "trigger" </string>
<string> "edge" </string>
<string> "wall" </string>
<string> "wall_deco" </string>
<string> "corner" </string>
- <string> "ramp" </string>
<string> "flowers" </string>
<string> "tree_base" </string>
<string> "tree_mid" </string>
@@ -102,13 +115,10 @@
<string> "tree_top" </string>
<string> "solid" </string>
<string> "ceiling" </string>
+ <string> "ramp" </string>
<string> "ceiling2wall" </string>
<string> "help" </string>
<string> "Label" </string>
- <string> "margin/left" </string>
- <string> "margin/top" </string>
- <string> "margin/right" </string>
- <string> "margin/bottom" </string>
<string> "focus_neighbour/left" </string>
<string> "focus_neighbour/top" </string>
<string> "focus_neighbour/right" </string>
@@ -130,29 +140,38 @@
<string> "autowrap" </string>
<string> "uppercase" </string>
<string> "percent_visible" </string>
+ <string> "platform_floor" </string>
+ <string> "platform_edge" </string>
</string_array>
<string> "version" </string>
<int> 1 </int>
<string> "conn_count" </string>
<int> 0 </int>
<string> "node_count" </string>
- <int> 36 </int>
+ <int> 42 </int>
<string> "variants" </string>
- <array len="65" shared="false">
+ <array len="69" shared="false">
+ <node_path> "" </node_path>
<dictionary shared="false">
<string> "__editor_plugin_states__" </string>
<dictionary shared="false">
<string> "2D" </string>
<dictionary shared="false">
<string> "pixel_snap" </string>
- <bool> False </bool>
+ <bool> True </bool>
<string> "zoom" </string>
- <real> 1.670182 </real>
+ <real> 1.670183 </real>
+ <string> "use_snap" </string>
+ <bool> True </bool>
<string> "ofs" </string>
- <vector2> -58.9115, 60.1605 </vector2>
+ <vector2> -446.534, -87.6905 </vector2>
+ <string> "snap" </string>
+ <int> 8 </int>
</dictionary>
<string> "3D" </string>
<dictionary shared="false">
+ <string> "deflight_rot_y" </string>
+ <real> 0.628319 </real>
<string> "zfar" </string>
<real> 500 </real>
<string> "fov" </string>
@@ -166,10 +185,12 @@
<real> 0 </real>
<string> "y_rot" </string>
<real> 0 </real>
- <string> "use_orthogonal" </string>
- <bool> False </bool>
+ <string> "listener" </string>
+ <bool> True </bool>
<string> "use_environment" </string>
<bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
<string> "pos" </string>
<vector3> 0, 0, 0 </vector3>
</dictionary>
@@ -180,10 +201,12 @@
<real> 0 </real>
<string> "y_rot" </string>
<real> 0 </real>
- <string> "use_orthogonal" </string>
+ <string> "listener" </string>
<bool> False </bool>
<string> "use_environment" </string>
<bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
<string> "pos" </string>
<vector3> 0, 0, 0 </vector3>
</dictionary>
@@ -194,10 +217,12 @@
<real> 0 </real>
<string> "y_rot" </string>
<real> 0 </real>
- <string> "use_orthogonal" </string>
+ <string> "listener" </string>
<bool> False </bool>
<string> "use_environment" </string>
<bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
<string> "pos" </string>
<vector3> 0, 0, 0 </vector3>
</dictionary>
@@ -208,10 +233,12 @@
<real> 0 </real>
<string> "y_rot" </string>
<real> 0 </real>
- <string> "use_orthogonal" </string>
+ <string> "listener" </string>
<bool> False </bool>
<string> "use_environment" </string>
<bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
<string> "pos" </string>
<vector3> 0, 0, 0 </vector3>
</dictionary>
@@ -220,12 +247,18 @@
<int> 1 </int>
<string> "default_light" </string>
<bool> True </bool>
+ <string> "ambient_light_color" </string>
+ <color> 0.15, 0.15, 0.15, 1 </color>
<string> "show_grid" </string>
<bool> True </bool>
<string> "show_origin" </string>
<bool> True </bool>
<string> "znear" </string>
<real> 0.1 </real>
+ <string> "default_srgb" </string>
+ <bool> False </bool>
+ <string> "deflight_rot_x" </string>
+ <real> 0.942478 </real>
</dictionary>
</dictionary>
<string> "__editor_run_settings__" </string>
@@ -239,45 +272,42 @@
<string> "2D" </string>
</dictionary>
<bool> True </bool>
- <nil> </nil>
- <nil> </nil>
+ <real> 1 </real>
<vector2> 0, 0 </vector2>
- <nil> </nil>
+ <real> 0 </real>
<vector2> 1, 1 </vector2>
+ <int> 0 </int>
<resource resource_type="Texture" path="res://tiles_demo.png"> </resource>
+ <bool> False </bool>
<int> 1 </int>
- <nil> </nil>
<color> 1, 1, 1, 1 </color>
<rect2> 0, 0, 64, 64 </rect2>
<resource resource_type="Shape2D" path="local://1"> </resource>
<matrix32> 1, -0, 0, 1, 0, 0 </matrix32>
- <vector2_array len="4"> 64, 8, 64, 64, 0, 64, 0, 8 </vector2_array>
+ <vector2_array len="4"> 32, -24, 32, 32, -32, 32, -32, -24 </vector2_array>
<vector2> 64, 0 </vector2>
<rect2> 64, 0, 64, 64 </rect2>
<resource resource_type="Shape2D" path="local://2"> </resource>
- <vector2_array len="4"> 0, 8, 56, 8, 56, 64, 0, 64 </vector2_array>
+ <vector2_array len="4"> -32, -24, 24, -24, 24, 32, -32, 32 </vector2_array>
<vector2> 64, 64 </vector2>
<rect2> 64, 64, 64, 64 </rect2>
<resource resource_type="Shape2D" path="local://3"> </resource>
- <vector2_array len="4"> 0, 0, 56, 0, 56, 64, 0, 64 </vector2_array>
- <vector2> 64, 128 </vector2>
+ <vector2_array len="4"> -32, -32, 24, -32, 24, 32, -32, 32 </vector2_array>
+ <vector2> 96, 128 </vector2>
<rect2> 320, 128, 128, 64 </rect2>
<resource resource_type="Shape2D" path="local://4"> </resource>
+ <vector2_array len="4"> -64, -32, -8, -32, -8, 32, -64, 32 </vector2_array>
<vector2> 64, 192 </vector2>
<rect2> 64, 128, 64, 64 </rect2>
<resource resource_type="Shape2D" path="local://5"> </resource>
- <vector2_array len="5"> 0, 0, 56, 0, 64, 8, 64, 64, 0, 64 </vector2_array>
- <vector2> 256, 192 </vector2>
- <rect2> 128, 128, 64, 128 </rect2>
- <resource resource_type="Shape2D" path="local://6"> </resource>
- <vector2_array len="4"> 0, 8, 64, 72, 64, 128, 0, 128 </vector2_array>
+ <vector2_array len="5"> -32, -32, 24, -32, 32, -24, 32, 32, -32, 32 </vector2_array>
<vector2> 128, 192 </vector2>
<rect2> 192, 192, 64, 64 </rect2>
- <resource resource_type="Shape2D" path="local://7"> </resource>
- <vector2_array len="4"> 0, 64, 64, 64, 64, 8, 0, 8 </vector2_array>
+ <resource resource_type="Shape2D" path="local://6"> </resource>
+ <vector2_array len="4"> -32, 32, 32, 32, 32, -24, -32, -24 </vector2_array>
<vector2> 192, 192 </vector2>
<rect2> 256, 192, 64, 64 </rect2>
- <resource resource_type="Shape2D" path="local://8"> </resource>
+ <resource resource_type="Shape2D" path="local://7"> </resource>
<vector2> 192, 128 </vector2>
<rect2> 256, 128, 64, 64 </rect2>
<vector2> 192, 64 </vector2>
@@ -288,23 +318,29 @@
<rect2> 0, 64, 64, 64 </rect2>
<vector2> 0, 128 </vector2>
<rect2> 384, 64, 64, 64 </rect2>
+ <resource resource_type="Shape2D" path="local://8"> </resource>
+ <vector2_array len="4"> 32, -32, 32, 32, -32, 32, -32, -32 </vector2_array>
+ <vector2> 256, 224 </vector2>
+ <rect2> 128, 128, 64, 128 </rect2>
<resource resource_type="Shape2D" path="local://9"> </resource>
- <vector2_array len="4"> 64, 0, 64, 64, 0, 64, 0, 0 </vector2_array>
+ <vector2_array len="4"> -32, -56, 32, 8, 32, 64, -32, 64 </vector2_array>
<vector2> 0, 192 </vector2>
<rect2> 448, 64, 64, 64 </rect2>
<resource resource_type="Shape2D" path="local://10"> </resource>
- <nil> </nil>
- <nil> </nil>
- <nil> </nil>
- <nil> </nil>
- <nil> </nil>
<int> 2 </int>
- <nil> </nil>
- <string> "This scene serves as a tool for editing the tileset.&#10;Nodes (sprites) and their respective collisions&#10;are edited here. &#10;&#10;To create a tileset from this, a &quot;TileSet&quot; resoucre &#10;must be created. Use the helper in:&#10;&#10; Scene -&lt; Convert To -&lt; TileSet&#10;&#10;This will save a tileset. Saving over it will merge your changes.&#10;&#10;Finally, the saved tileset resource (tileset.xml in this&#10; case), can be opened to be used into a TileMap node&#10; for editing a tile map.&#10;" </string>
+ <string> "This scene serves as a tool for editing the tileset.&#0010;Nodes (sprites) and their respective collisions&#0010;are edited here. &#0010;&#0010;To create a tileset from this, a &quot;TileSet&quot; resoucre &#0010;must be created. Use the helper in:&#0010;&#0010; Scene -&lt; Convert To -&lt; TileSet&#0010;&#0010;This will save a tileset. Saving over it will merge your changes.&#0010;&#0010;Finally, the saved tileset resource (tileset.xml in this&#0010; case), can be opened to be used into a TileMap node&#0010; for editing a tile map.&#0010;" </string>
<real> -1 </real>
+ <vector2> 0, 256 </vector2>
+ <rect2> 128, 0, 64, 64 </rect2>
+ <resource resource_type="Shape2D" path="local://11"> </resource>
+ <vector2_array len="4"> 32, -24, 32, 24, -32, 24, -32, -24 </vector2_array>
+ <vector2> 64, 256 </vector2>
+ <rect2> 192, 0, 64, 64 </rect2>
+ <resource resource_type="Shape2D" path="local://12"> </resource>
+ <vector2_array len="4"> 24, -24, 24, 24, -32, 24, -32, -24 </vector2_array>
</array>
<string> "nodes" </string>
- <int_array len="1296"> -1, -1, 0, 0, -1, 1, 1, 0, 0, 0, 0, 3, 2, -1, 18, 4, 1, 5, 2, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 3, 13, 4, 14, 3, 15, 3, 16, 8, 17, 8, 18, 9, 19, 10, 20, 1, 21, 11, 0, 1, 0, 23, 22, -1, 15, 4, 1, 5, 2, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 24, 8, 25, 12, 26, 13, 27, 3, 28, 4, 29, 5, 30, 2, 31, 5, 0, 2, 0, 32, 32, -1, 9, 4, 1, 5, 2, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 33, 9, 34, 14, 0, 0, 0, 3, 35, -1, 18, 4, 1, 5, 2, 6, 2, 7, 3, 8, 15, 9, 5, 10, 6, 11, 7, 12, 3, 13, 4, 14, 3, 15, 3, 16, 8, 17, 8, 18, 9, 19, 10, 20, 1, 21, 16, 0, 4, 0, 23, 22, -1, 15, 4, 1, 5, 2, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 24, 8, 25, 17, 26, 13, 27, 3, 28, 4, 29, 5, 30, 2, 31, 5, 0, 5, 0, 32, 32, -1, 9, 4, 1, 5, 2, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 33, 9, 34, 18, 0, 0, 0, 3, 36, -1, 18, 4, 1, 5, 2, 6, 2, 7, 3, 8, 19, 9, 5, 10, 6, 11, 7, 12, 3, 13, 4, 14, 3, 15, 3, 16, 8, 17, 8, 18, 9, 19, 10, 20, 1, 21, 20, 0, 7, 0, 23, 22, -1, 15, 4, 1, 5, 2, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 24, 8, 25, 21, 26, 13, 27, 3, 28, 4, 29, 5, 30, 2, 31, 5, 0, 8, 0, 32, 32, -1, 9, 4, 1, 5, 2, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 33, 9, 34, 22, 0, 0, 0, 3, 37, -1, 18, 4, 1, 5, 2, 6, 2, 7, 3, 8, 23, 9, 5, 10, 6, 11, 7, 12, 3, 13, 4, 14, 3, 15, 3, 16, 8, 17, 8, 18, 9, 19, 10, 20, 1, 21, 24, 0, 10, 0, 23, 22, -1, 15, 4, 1, 5, 2, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 24, 8, 25, 25, 26, 13, 27, 3, 28, 4, 29, 5, 30, 2, 31, 5, 0, 11, 0, 32, 32, -1, 9, 4, 1, 5, 2, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 33, 9, 34, 22, 0, 0, 0, 3, 38, -1, 18, 4, 1, 5, 2, 6, 2, 7, 3, 8, 26, 9, 5, 10, 6, 11, 7, 12, 3, 13, 4, 14, 3, 15, 3, 16, 8, 17, 8, 18, 9, 19, 10, 20, 1, 21, 27, 0, 13, 0, 23, 22, -1, 15, 4, 1, 5, 2, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 24, 8, 25, 28, 26, 13, 27, 3, 28, 4, 29, 5, 30, 2, 31, 5, 0, 14, 0, 32, 32, -1, 9, 4, 1, 5, 2, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 33, 9, 34, 29, 0, 0, 0, 3, 39, -1, 18, 4, 1, 5, 2, 6, 2, 7, 3, 8, 30, 9, 5, 10, 6, 11, 7, 12, 3, 13, 4, 14, 3, 15, 3, 16, 8, 17, 8, 18, 9, 19, 10, 20, 1, 21, 31, 0, 16, 0, 23, 22, -1, 15, 4, 1, 5, 2, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 24, 8, 25, 32, 26, 13, 27, 3, 28, 4, 29, 5, 30, 2, 31, 5, 0, 17, 0, 32, 32, -1, 9, 4, 1, 5, 2, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 33, 9, 34, 33, 0, 0, 0, 3, 40, -1, 18, 4, 1, 5, 2, 6, 2, 7, 3, 8, 34, 9, 5, 10, 6, 11, 7, 12, 3, 13, 4, 14, 3, 15, 3, 16, 8, 17, 8, 18, 9, 19, 10, 20, 1, 21, 35, 0, 19, 0, 23, 22, -1, 15, 4, 1, 5, 2, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 24, 8, 25, 36, 26, 13, 27, 3, 28, 4, 29, 5, 30, 2, 31, 5, 0, 20, 0, 32, 32, -1, 9, 4, 1, 5, 2, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 33, 9, 34, 37, 0, 0, 0, 3, 41, -1, 18, 4, 1, 5, 2, 6, 2, 7, 3, 8, 38, 9, 5, 10, 6, 11, 7, 12, 3, 13, 4, 14, 3, 15, 3, 16, 8, 17, 8, 18, 9, 19, 10, 20, 1, 21, 39, 0, 22, 0, 23, 22, -1, 15, 4, 1, 5, 2, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 24, 8, 25, 40, 26, 13, 27, 3, 28, 4, 29, 5, 30, 2, 31, 5, 0, 23, 0, 32, 32, -1, 9, 4, 1, 5, 2, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 33, 9, 34, 37, 0, 0, 0, 3, 42, -1, 18, 4, 1, 5, 2, 6, 2, 7, 3, 8, 41, 9, 5, 10, 6, 11, 7, 12, 3, 13, 4, 14, 3, 15, 3, 16, 8, 17, 8, 18, 9, 19, 10, 20, 1, 21, 42, 0, 0, 0, 3, 43, -1, 18, 4, 1, 5, 2, 6, 2, 7, 3, 8, 43, 9, 5, 10, 6, 11, 7, 12, 3, 13, 4, 14, 3, 15, 3, 16, 8, 17, 8, 18, 9, 19, 10, 20, 1, 21, 44, 0, 0, 0, 3, 44, -1, 18, 4, 1, 5, 2, 6, 2, 7, 3, 8, 45, 9, 5, 10, 6, 11, 7, 12, 3, 13, 4, 14, 3, 15, 3, 16, 8, 17, 8, 18, 9, 19, 10, 20, 1, 21, 46, 0, 0, 0, 3, 45, -1, 18, 4, 1, 5, 2, 6, 2, 7, 3, 8, 47, 9, 5, 10, 6, 11, 7, 12, 3, 13, 4, 14, 3, 15, 3, 16, 8, 17, 8, 18, 9, 19, 10, 20, 1, 21, 48, 0, 0, 0, 3, 46, -1, 18, 4, 1, 5, 2, 6, 2, 7, 3, 8, 49, 9, 5, 10, 6, 11, 7, 12, 3, 13, 4, 14, 3, 15, 3, 16, 8, 17, 8, 18, 9, 19, 10, 20, 1, 21, 50, 0, 29, 0, 23, 22, -1, 15, 4, 1, 5, 2, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 24, 8, 25, 51, 26, 13, 27, 3, 28, 4, 29, 5, 30, 2, 31, 5, 0, 30, 0, 32, 32, -1, 9, 4, 1, 5, 2, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 33, 9, 34, 52, 0, 0, 0, 3, 47, -1, 18, 4, 1, 5, 2, 6, 2, 7, 3, 8, 53, 9, 5, 10, 6, 11, 7, 12, 3, 13, 4, 14, 3, 15, 3, 16, 8, 17, 8, 18, 9, 19, 10, 20, 1, 21, 54, 0, 32, 0, 23, 22, -1, 15, 4, 1, 5, 2, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 24, 8, 25, 55, 26, 13, 27, 3, 28, 4, 29, 5, 30, 2, 31, 5, 0, 33, 0, 32, 32, -1, 9, 4, 1, 5, 2, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 33, 9, 34, 22, 0, 0, 0, 49, 48, -1, 29, 4, 1, 5, 2, 6, 2, 7, 3, 50, 56, 51, 57, 52, 58, 53, 59, 54, 60, 55, 60, 56, 60, 57, 60, 58, 1, 59, 1, 60, 61, 61, 2, 62, 5, 63, 62, 64, 2, 65, 62, 66, 5, 67, 3, 68, 3, 69, 63, 70, 9, 71, 9, 72, 3, 73, 3, 74, 64, 0 </int_array>
+ <int_array len="1708"> -1, -1, 0, 0, -1, 2, 1, 0, 2, 1, 0, 0, 0, 4, 3, -1, 20, 1, 0, 5, 2, 6, 3, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 2, 13, 8, 14, 2, 15, 4, 16, 9, 17, 9, 18, 10, 19, 10, 20, 7, 21, 11, 22, 2, 23, 12, 0, 1, 0, 25, 24, -1, 18, 1, 0, 5, 2, 6, 3, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 2, 26, 10, 27, 13, 28, 14, 29, 9, 30, 10, 31, 4, 32, 5, 33, 3, 34, 5, 0, 2, 0, 35, 35, -1, 12, 1, 0, 5, 2, 6, 3, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 2, 36, 7, 37, 15, 38, 9, 0, 0, 0, 4, 39, -1, 20, 1, 0, 5, 2, 6, 3, 7, 3, 8, 16, 9, 5, 10, 6, 11, 7, 12, 2, 13, 8, 14, 2, 15, 4, 16, 9, 17, 9, 18, 10, 19, 10, 20, 7, 21, 11, 22, 2, 23, 17, 0, 4, 0, 25, 24, -1, 18, 1, 0, 5, 2, 6, 3, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 2, 26, 10, 27, 18, 28, 14, 29, 9, 30, 10, 31, 4, 32, 5, 33, 3, 34, 5, 0, 5, 0, 35, 35, -1, 12, 1, 0, 5, 2, 6, 3, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 2, 36, 7, 37, 19, 38, 9, 0, 0, 0, 4, 40, -1, 20, 1, 0, 5, 2, 6, 3, 7, 3, 8, 20, 9, 5, 10, 6, 11, 7, 12, 2, 13, 8, 14, 2, 15, 4, 16, 9, 17, 9, 18, 10, 19, 10, 20, 7, 21, 11, 22, 2, 23, 21, 0, 7, 0, 25, 24, -1, 18, 1, 0, 5, 2, 6, 3, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 2, 26, 10, 27, 22, 28, 14, 29, 9, 30, 10, 31, 4, 32, 5, 33, 3, 34, 5, 0, 8, 0, 35, 35, -1, 12, 1, 0, 5, 2, 6, 3, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 2, 36, 7, 37, 23, 38, 9, 0, 0, 0, 4, 41, -1, 20, 1, 0, 5, 2, 6, 3, 7, 3, 8, 24, 9, 5, 10, 6, 11, 7, 12, 2, 13, 8, 14, 2, 15, 4, 16, 9, 17, 9, 18, 10, 19, 10, 20, 7, 21, 11, 22, 2, 23, 25, 0, 10, 0, 25, 24, -1, 18, 1, 0, 5, 2, 6, 3, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 2, 26, 10, 27, 26, 28, 14, 29, 9, 30, 10, 31, 4, 32, 5, 33, 3, 34, 5, 0, 11, 0, 35, 35, -1, 12, 1, 0, 5, 2, 6, 3, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 2, 36, 7, 37, 27, 38, 9, 0, 0, 0, 4, 42, -1, 20, 1, 0, 5, 2, 6, 3, 7, 3, 8, 28, 9, 5, 10, 6, 11, 7, 12, 2, 13, 8, 14, 2, 15, 4, 16, 9, 17, 9, 18, 10, 19, 10, 20, 7, 21, 11, 22, 2, 23, 29, 0, 13, 0, 25, 24, -1, 18, 1, 0, 5, 2, 6, 3, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 2, 26, 10, 27, 30, 28, 14, 29, 9, 30, 10, 31, 4, 32, 5, 33, 3, 34, 5, 0, 14, 0, 35, 35, -1, 12, 1, 0, 5, 2, 6, 3, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 2, 36, 7, 37, 31, 38, 9, 0, 0, 0, 4, 43, -1, 20, 1, 0, 5, 2, 6, 3, 7, 3, 8, 32, 9, 5, 10, 6, 11, 7, 12, 2, 13, 8, 14, 2, 15, 4, 16, 9, 17, 9, 18, 10, 19, 10, 20, 7, 21, 11, 22, 2, 23, 33, 0, 16, 0, 25, 24, -1, 18, 1, 0, 5, 2, 6, 3, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 2, 26, 10, 27, 34, 28, 14, 29, 9, 30, 10, 31, 4, 32, 5, 33, 3, 34, 5, 0, 17, 0, 35, 35, -1, 12, 1, 0, 5, 2, 6, 3, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 2, 36, 7, 37, 35, 38, 9, 0, 0, 0, 4, 44, -1, 20, 1, 0, 5, 2, 6, 3, 7, 3, 8, 36, 9, 5, 10, 6, 11, 7, 12, 2, 13, 8, 14, 2, 15, 4, 16, 9, 17, 9, 18, 10, 19, 10, 20, 7, 21, 11, 22, 2, 23, 37, 0, 19, 0, 25, 24, -1, 18, 1, 0, 5, 2, 6, 3, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 2, 26, 10, 27, 38, 28, 14, 29, 9, 30, 10, 31, 4, 32, 5, 33, 3, 34, 5, 0, 20, 0, 35, 35, -1, 12, 1, 0, 5, 2, 6, 3, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 2, 36, 7, 37, 35, 38, 9, 0, 0, 0, 4, 45, -1, 20, 1, 0, 5, 2, 6, 3, 7, 3, 8, 39, 9, 5, 10, 6, 11, 7, 12, 2, 13, 8, 14, 2, 15, 4, 16, 9, 17, 9, 18, 10, 19, 10, 20, 7, 21, 11, 22, 2, 23, 40, 0, 0, 0, 4, 46, -1, 20, 1, 0, 5, 2, 6, 3, 7, 3, 8, 41, 9, 5, 10, 6, 11, 7, 12, 2, 13, 8, 14, 2, 15, 4, 16, 9, 17, 9, 18, 10, 19, 10, 20, 7, 21, 11, 22, 2, 23, 42, 0, 0, 0, 4, 47, -1, 20, 1, 0, 5, 2, 6, 3, 7, 3, 8, 43, 9, 5, 10, 6, 11, 7, 12, 2, 13, 8, 14, 2, 15, 4, 16, 9, 17, 9, 18, 10, 19, 10, 20, 7, 21, 11, 22, 2, 23, 44, 0, 0, 0, 4, 48, -1, 20, 1, 0, 5, 2, 6, 3, 7, 3, 8, 45, 9, 5, 10, 6, 11, 7, 12, 2, 13, 8, 14, 2, 15, 4, 16, 9, 17, 9, 18, 10, 19, 10, 20, 7, 21, 11, 22, 2, 23, 46, 0, 0, 0, 4, 49, -1, 20, 1, 0, 5, 2, 6, 3, 7, 3, 8, 47, 9, 5, 10, 6, 11, 7, 12, 2, 13, 8, 14, 2, 15, 4, 16, 9, 17, 9, 18, 10, 19, 10, 20, 7, 21, 11, 22, 2, 23, 48, 0, 26, 0, 25, 24, -1, 18, 1, 0, 5, 2, 6, 3, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 2, 26, 10, 27, 49, 28, 14, 29, 9, 30, 10, 31, 4, 32, 5, 33, 3, 34, 5, 0, 27, 0, 35, 35, -1, 12, 1, 0, 5, 2, 6, 3, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 2, 36, 7, 37, 50, 38, 9, 0, 0, 0, 4, 50, -1, 20, 1, 0, 5, 2, 6, 3, 7, 3, 8, 51, 9, 5, 10, 6, 11, 7, 12, 2, 13, 8, 14, 2, 15, 4, 16, 9, 17, 9, 18, 10, 19, 10, 20, 7, 21, 11, 22, 2, 23, 52, 0, 29, 0, 25, 24, -1, 18, 1, 0, 5, 2, 6, 3, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 2, 26, 10, 27, 53, 28, 14, 29, 9, 30, 10, 31, 4, 32, 5, 33, 3, 34, 5, 0, 30, 0, 35, 35, -1, 12, 1, 0, 5, 2, 6, 3, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 2, 36, 7, 37, 54, 38, 9, 0, 0, 0, 4, 51, -1, 20, 1, 0, 5, 2, 6, 3, 7, 3, 8, 55, 9, 5, 10, 6, 11, 7, 12, 2, 13, 8, 14, 2, 15, 4, 16, 9, 17, 9, 18, 10, 19, 10, 20, 7, 21, 11, 22, 2, 23, 56, 0, 32, 0, 25, 24, -1, 18, 1, 0, 5, 2, 6, 3, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 2, 26, 10, 27, 57, 28, 14, 29, 9, 30, 10, 31, 4, 32, 5, 33, 3, 34, 5, 0, 33, 0, 35, 35, -1, 12, 1, 0, 5, 2, 6, 3, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 2, 36, 7, 37, 23, 38, 9, 0, 0, 0, 53, 52, -1, 25, 1, 0, 5, 2, 6, 3, 7, 3, 54, 0, 55, 0, 56, 0, 57, 0, 58, 2, 59, 2, 60, 58, 61, 3, 62, 5, 63, 3, 64, 3, 65, 3, 66, 5, 67, 9, 68, 9, 69, 59, 70, 7, 71, 7, 72, 9, 73, 9, 74, 60, 0, 0, 0, 4, 75, -1, 20, 1, 0, 5, 2, 6, 3, 7, 3, 8, 61, 9, 5, 10, 6, 11, 7, 12, 2, 13, 8, 14, 2, 15, 4, 16, 9, 17, 9, 18, 10, 19, 10, 20, 7, 21, 11, 22, 2, 23, 62, 0, 36, 0, 25, 24, -1, 18, 1, 0, 5, 2, 6, 3, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 2, 26, 10, 27, 63, 28, 14, 29, 9, 30, 10, 31, 4, 32, 5, 33, 3, 34, 5, 0, 37, 0, 35, 35, -1, 12, 1, 0, 5, 2, 6, 3, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 2, 36, 7, 37, 64, 38, 9, 0, 0, 0, 4, 76, -1, 20, 1, 0, 5, 2, 6, 3, 7, 3, 8, 65, 9, 5, 10, 6, 11, 7, 12, 2, 13, 8, 14, 2, 15, 4, 16, 9, 17, 9, 18, 10, 19, 10, 20, 7, 21, 11, 22, 2, 23, 66, 0, 39, 0, 25, 24, -1, 18, 1, 0, 5, 2, 6, 3, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 2, 26, 10, 27, 67, 28, 14, 29, 9, 30, 10, 31, 4, 32, 5, 33, 3, 34, 5, 0, 40, 0, 35, 35, -1, 12, 1, 0, 5, 2, 6, 3, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 2, 36, 7, 37, 68, 38, 9, 0 </int_array>
<string> "conns" </string>
<int_array len="0"> </int_array>
</dictionary>
diff --git a/demos/2d/polygon_path_finder/engine.cfg b/demos/2d/polygon_path_finder/engine.cfg
new file mode 100644
index 0000000000..47450408af
--- /dev/null
+++ b/demos/2d/polygon_path_finder/engine.cfg
@@ -0,0 +1,5 @@
+[application]
+
+name="Polygon Pathfinder"
+main_scene="res://poly_with_holes.scn"
+icon="res://icon.png"
diff --git a/demos/2d/polygon_path_finder/icon.png b/demos/2d/polygon_path_finder/icon.png
new file mode 100644
index 0000000000..643f5595ee
--- /dev/null
+++ b/demos/2d/polygon_path_finder/icon.png
Binary files differ
diff --git a/demos/2d/polygon_path_finder/poly_with_holes.scn b/demos/2d/polygon_path_finder/poly_with_holes.scn
new file mode 100644
index 0000000000..6b340377b7
--- /dev/null
+++ b/demos/2d/polygon_path_finder/poly_with_holes.scn
Binary files differ
diff --git a/demos/2d/polygon_path_finder/polygonpathfinder.gd b/demos/2d/polygon_path_finder/polygonpathfinder.gd
new file mode 100644
index 0000000000..a0e71dd127
--- /dev/null
+++ b/demos/2d/polygon_path_finder/polygonpathfinder.gd
@@ -0,0 +1,80 @@
+
+extends Spatial
+
+func _ready():
+ var pf = PolygonPathFinder.new()
+
+ var points = Vector2Array()
+ var connections = IntArray()
+
+ # poly 1
+ points.push_back(Vector2(0, 0)) #0
+ points.push_back(Vector2(10, 0)) #1
+ points.push_back(Vector2(10, 10)) #2
+ points.push_back(Vector2(0, 10)) #3
+
+ connections.push_back(0) # connect vertex 0 ...
+ connections.push_back(1) # ... to 1
+ drawLine(points[0], points[1], get_node("/root/Spatial/Polys"))
+ connections.push_back(1) # connect vertex 1 ...
+ connections.push_back(2) # ... to 2
+ drawLine(points[1], points[2], get_node("/root/Spatial/Polys"))
+ connections.push_back(2) # etc.
+ connections.push_back(3)
+ drawLine(points[2], points[3], get_node("/root/Spatial/Polys"))
+ connections.push_back(3) # connect vertex 3 ...
+ connections.push_back(0) # back to vertex 0, to close the polygon
+ drawLine(points[3], points[0], get_node("/root/Spatial/Polys"))
+
+ # poly 2, as obstacle inside poly 1
+ points.push_back(Vector2(2, 0.5)) #4
+ points.push_back(Vector2(4, 0.5)) #5
+ points.push_back(Vector2(4, 9.5)) #6
+ points.push_back(Vector2(2, 9.5)) #7
+
+ connections.push_back(4)
+ connections.push_back(5)
+ drawLine(points[4], points[5], get_node("/root/Spatial/Polys"))
+ connections.push_back(5)
+ connections.push_back(6)
+ drawLine(points[5], points[6], get_node("/root/Spatial/Polys"))
+ connections.push_back(6)
+ connections.push_back(7)
+ drawLine(points[6], points[7], get_node("/root/Spatial/Polys"))
+ connections.push_back(7)
+ connections.push_back(4)
+ drawLine(points[7], points[4], get_node("/root/Spatial/Polys"))
+
+
+ print("points: ",points)
+ print("connections: ",connections)
+
+ pf.setup(points, connections)
+
+ var path = pf.find_path(Vector2(1, 5), Vector2(8, 5))
+
+ var lastStep = null
+ print("path: ",path)
+ for step in path:
+ print("step: ",step)
+ if (lastStep != null):
+ var currPathSegment = Vector2Array()
+ drawLine(lastStep, step, get_node("/root/Spatial/Path"))
+ lastStep = step
+
+
+
+func drawLine(pointA, pointB, immediateGeo):
+ var drawPosY = 0.1
+ var im = immediateGeo
+
+ im.begin(Mesh.PRIMITIVE_POINTS, null)
+ im.add_vertex(Vector3(pointA.x, drawPosY, pointA.y))
+ im.add_vertex(Vector3(pointB.x, drawPosY, pointB.y))
+ im.end()
+ im.begin(Mesh.PRIMITIVE_LINE_STRIP, null)
+ im.add_vertex(Vector3(pointA.x, drawPosY, pointA.y))
+ im.add_vertex(Vector3(pointB.x, drawPosY, pointB.y))
+ im.end()
+
+
diff --git a/demos/2d/screen_space_shaders/art/burano.jpg b/demos/2d/screen_space_shaders/art/burano.jpg
new file mode 100644
index 0000000000..cdab993ec1
--- /dev/null
+++ b/demos/2d/screen_space_shaders/art/burano.jpg
Binary files differ
diff --git a/demos/2d/screen_space_shaders/art/burano.png b/demos/2d/screen_space_shaders/art/burano.png
new file mode 100644
index 0000000000..6eec09d585
--- /dev/null
+++ b/demos/2d/screen_space_shaders/art/burano.png
Binary files differ
diff --git a/demos/2d/screen_space_shaders/art/filmgrain.png b/demos/2d/screen_space_shaders/art/filmgrain.png
new file mode 100644
index 0000000000..b8ea89902c
--- /dev/null
+++ b/demos/2d/screen_space_shaders/art/filmgrain.png
Binary files differ
diff --git a/demos/2d/screen_space_shaders/art/filmgrain.png.flags b/demos/2d/screen_space_shaders/art/filmgrain.png.flags
new file mode 100644
index 0000000000..d5476d5499
--- /dev/null
+++ b/demos/2d/screen_space_shaders/art/filmgrain.png.flags
@@ -0,0 +1 @@
+repeat=true
diff --git a/demos/2d/screen_space_shaders/art/forest.png b/demos/2d/screen_space_shaders/art/forest.png
new file mode 100644
index 0000000000..f5a2fb9bfb
--- /dev/null
+++ b/demos/2d/screen_space_shaders/art/forest.png
Binary files differ
diff --git a/demos/2d/screen_space_shaders/art/mountains.png b/demos/2d/screen_space_shaders/art/mountains.png
new file mode 100644
index 0000000000..b8435bb1a8
--- /dev/null
+++ b/demos/2d/screen_space_shaders/art/mountains.png
Binary files differ
diff --git a/demos/2d/screen_space_shaders/art/platformer.png b/demos/2d/screen_space_shaders/art/platformer.png
new file mode 100644
index 0000000000..21c1cb4c4b
--- /dev/null
+++ b/demos/2d/screen_space_shaders/art/platformer.png
Binary files differ
diff --git a/demos/2d/screen_space_shaders/art/vignette.png b/demos/2d/screen_space_shaders/art/vignette.png
new file mode 100644
index 0000000000..8afeb7f9e1
--- /dev/null
+++ b/demos/2d/screen_space_shaders/art/vignette.png
Binary files differ
diff --git a/demos/2d/screen_space_shaders/art/white.png b/demos/2d/screen_space_shaders/art/white.png
new file mode 100644
index 0000000000..573faa33f2
--- /dev/null
+++ b/demos/2d/screen_space_shaders/art/white.png
Binary files differ
diff --git a/demos/2d/screen_space_shaders/engine.cfg b/demos/2d/screen_space_shaders/engine.cfg
new file mode 100644
index 0000000000..383ca7bf11
--- /dev/null
+++ b/demos/2d/screen_space_shaders/engine.cfg
@@ -0,0 +1,12 @@
+[application]
+
+name="Screen-Space Shaders"
+main_scene="res://screen_shaders.scn"
+icon="res://icon.png"
+
+[display]
+
+width=780
+height=600
+stretch_mode="2d"
+stretch_aspect="keep"
diff --git a/demos/2d/screen_space_shaders/icon.png b/demos/2d/screen_space_shaders/icon.png
new file mode 100644
index 0000000000..e3cc049081
--- /dev/null
+++ b/demos/2d/screen_space_shaders/icon.png
Binary files differ
diff --git a/demos/2d/screen_space_shaders/screen_shaders.gd b/demos/2d/screen_space_shaders/screen_shaders.gd
new file mode 100644
index 0000000000..4e8a548539
--- /dev/null
+++ b/demos/2d/screen_space_shaders/screen_shaders.gd
@@ -0,0 +1,32 @@
+
+extends Control
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+
+func _ready():
+ # Initialization here
+ for c in get_node("pictures").get_children():
+ get_node("picture").add_item("PIC: "+c.get_name())
+ for c in get_node("effects").get_children():
+ get_node("effect").add_item("FX: "+c.get_name())
+ pass
+
+
+
+
+func _on_picture_item_selected( ID ):
+ for c in range(get_node("pictures").get_child_count()):
+ if (ID==c):
+ get_node("pictures").get_child(c).show()
+ else:
+ get_node("pictures").get_child(c).hide()
+
+
+func _on_effect_item_selected( ID ):
+ for c in range(get_node("effects").get_child_count()):
+ if (ID==c):
+ get_node("effects").get_child(c).show()
+ else:
+ get_node("effects").get_child(c).hide()
diff --git a/demos/2d/screen_space_shaders/screen_shaders.scn b/demos/2d/screen_space_shaders/screen_shaders.scn
new file mode 100644
index 0000000000..fc2be96fc9
--- /dev/null
+++ b/demos/2d/screen_space_shaders/screen_shaders.scn
Binary files differ
diff --git a/demos/2d/sdf_font/KaushanScript-Regular.otf b/demos/2d/sdf_font/KaushanScript-Regular.otf
new file mode 100644
index 0000000000..bd29502100
--- /dev/null
+++ b/demos/2d/sdf_font/KaushanScript-Regular.otf
Binary files differ
diff --git a/demos/2d/sdf_font/engine.cfg b/demos/2d/sdf_font/engine.cfg
new file mode 100644
index 0000000000..bf983041fa
--- /dev/null
+++ b/demos/2d/sdf_font/engine.cfg
@@ -0,0 +1,5 @@
+[application]
+
+name="Signed Distance Field Font"
+main_scene="res://sdf.scn"
+icon="res://icon.png"
diff --git a/demos/2d/sdf_font/font.fnt b/demos/2d/sdf_font/font.fnt
new file mode 100644
index 0000000000..c2b6b0177d
--- /dev/null
+++ b/demos/2d/sdf_font/font.fnt
Binary files differ
diff --git a/demos/2d/sdf_font/icon.png b/demos/2d/sdf_font/icon.png
new file mode 100644
index 0000000000..0c700ad77c
--- /dev/null
+++ b/demos/2d/sdf_font/icon.png
Binary files differ
diff --git a/demos/2d/sdf_font/sdf.scn b/demos/2d/sdf_font/sdf.scn
new file mode 100644
index 0000000000..89d6245bf0
--- /dev/null
+++ b/demos/2d/sdf_font/sdf.scn
Binary files differ
diff --git a/demos/2d/space_shooter/asteroid.gd b/demos/2d/space_shooter/asteroid.gd
new file mode 100644
index 0000000000..f21b9777bb
--- /dev/null
+++ b/demos/2d/space_shooter/asteroid.gd
@@ -0,0 +1,49 @@
+
+extends Area2D
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+
+const SPEED=-200
+const Y_RANDOM=10
+
+var points=1
+
+
+var speed_y=0.0
+
+func _process(delta):
+
+ translate( Vector2(SPEED,speed_y) * delta )
+
+func _ready():
+ # Initialization here
+ speed_y=rand_range(-Y_RANDOM,Y_RANDOM)
+ pass
+
+var destroyed=false
+
+func destroy():
+ if (destroyed):
+ return
+ destroyed=true
+ get_node("anim").play("explode")
+ set_process(false)
+ get_node("sfx").play("sound_explode")
+ #accum points
+ get_node("/root/game_state").points+=1
+
+func is_enemy():
+ return not destroyed
+
+
+func _on_visibility_enter_screen():
+ set_process(true)
+ #make it spin!
+ get_node("anim").play("spin")
+
+
+func _on_visibility_exit_screen():
+ queue_free()
+ pass # replace with function body
diff --git a/demos/2d/space_shooter/asteroid.scn b/demos/2d/space_shooter/asteroid.scn
new file mode 100644
index 0000000000..b881725ea4
--- /dev/null
+++ b/demos/2d/space_shooter/asteroid.scn
Binary files differ
diff --git a/demos/2d/space_shooter/bg_gradient.png b/demos/2d/space_shooter/bg_gradient.png
new file mode 100644
index 0000000000..3e71976dc6
--- /dev/null
+++ b/demos/2d/space_shooter/bg_gradient.png
Binary files differ
diff --git a/demos/2d/space_shooter/big_star.png b/demos/2d/space_shooter/big_star.png
new file mode 100644
index 0000000000..7726a7aa12
--- /dev/null
+++ b/demos/2d/space_shooter/big_star.png
Binary files differ
diff --git a/demos/2d/space_shooter/enemy1.gd b/demos/2d/space_shooter/enemy1.gd
new file mode 100644
index 0000000000..051798742a
--- /dev/null
+++ b/demos/2d/space_shooter/enemy1.gd
@@ -0,0 +1,37 @@
+
+extends Area2D
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+
+const SPEED=-200
+
+func _process(delta):
+ get_parent().translate(Vector2(SPEED*delta,0))
+
+
+var destroyed=false
+
+func is_enemy():
+ return not destroyed
+
+
+func destroy():
+ if (destroyed):
+ return
+ destroyed=true
+ get_node("anim").play("explode")
+ set_process(false)
+ get_node("sfx").play("sound_explode")
+ #accum points
+ get_node("/root/game_state").points+=5
+
+func _on_visibility_enter_screen():
+ set_process(true)
+ get_node("anim").play("zigzag")
+ get_node("anim").seek(randf()*2.0) #make it start from any pos
+
+func _on_visibility_exit_screen():
+ queue_free()
+
diff --git a/demos/2d/space_shooter/enemy1.png b/demos/2d/space_shooter/enemy1.png
new file mode 100644
index 0000000000..242d8f0055
--- /dev/null
+++ b/demos/2d/space_shooter/enemy1.png
Binary files differ
diff --git a/demos/2d/space_shooter/enemy1.scn b/demos/2d/space_shooter/enemy1.scn
new file mode 100644
index 0000000000..14298f0a59
--- /dev/null
+++ b/demos/2d/space_shooter/enemy1.scn
Binary files differ
diff --git a/demos/2d/space_shooter/enemy2.gd b/demos/2d/space_shooter/enemy2.gd
new file mode 100644
index 0000000000..4f632a053d
--- /dev/null
+++ b/demos/2d/space_shooter/enemy2.gd
@@ -0,0 +1,56 @@
+
+extends Area2D
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+const SPEED=-220
+const SHOOT_INTERVAL=1
+var shoot_timeout=0
+
+func _process(delta):
+ translate( Vector2(SPEED*delta,0) )
+ shoot_timeout-=delta
+
+ if (shoot_timeout<0):
+
+ shoot_timeout=SHOOT_INTERVAL
+
+ #instance a shot
+ var shot = preload("res://enemy_shot.scn").instance()
+ #set pos as "shoot_from" Position2D node
+ shot.set_pos( get_node("shoot_from").get_global_pos() )
+ #add it to parent, so it has world coordinates
+ get_parent().add_child(shot)
+
+var destroyed=false
+
+func is_enemy():
+ return not destroyed
+
+func destroy():
+ if (destroyed):
+ return
+ destroyed=true
+ get_node("anim").play("explode")
+ set_process(false)
+ get_node("sfx").play("sound_explode")
+ #accum points
+ get_node("/root/game_state").points+=10
+
+func _ready():
+ set_fixed_process(true)
+ # Initialization here
+ pass
+
+
+
+
+func _on_visibility_enter_screen():
+ set_process(true)
+ pass # replace with function body
+
+
+func _on_visibility_exit_screen():
+ queue_free()
+ pass # replace with function body
diff --git a/demos/2d/space_shooter/enemy2.png b/demos/2d/space_shooter/enemy2.png
new file mode 100644
index 0000000000..5b63033696
--- /dev/null
+++ b/demos/2d/space_shooter/enemy2.png
Binary files differ
diff --git a/demos/2d/space_shooter/enemy2.scn b/demos/2d/space_shooter/enemy2.scn
new file mode 100644
index 0000000000..1d31f9c30e
--- /dev/null
+++ b/demos/2d/space_shooter/enemy2.scn
Binary files differ
diff --git a/demos/2d/space_shooter/enemy_shot.gd b/demos/2d/space_shooter/enemy_shot.gd
new file mode 100644
index 0000000000..238d24e4a2
--- /dev/null
+++ b/demos/2d/space_shooter/enemy_shot.gd
@@ -0,0 +1,32 @@
+
+extends Area2D
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+
+const SPEED = -800
+
+func _process(delta):
+ translate(Vector2(delta*SPEED,0))
+
+func _ready():
+ # Initialization here
+ set_process(true)
+
+
+var hit=false
+
+func is_enemy():
+ return true
+
+func _hit_something():
+ if (hit):
+ return
+ hit=true
+ set_process(false)
+ get_node("anim").play("splash")
+
+func _on_visibility_exit_screen():
+ queue_free()
+
diff --git a/demos/2d/space_shooter/enemy_shot.png b/demos/2d/space_shooter/enemy_shot.png
new file mode 100644
index 0000000000..04287211a9
--- /dev/null
+++ b/demos/2d/space_shooter/enemy_shot.png
Binary files differ
diff --git a/demos/2d/space_shooter/enemy_shot.scn b/demos/2d/space_shooter/enemy_shot.scn
new file mode 100644
index 0000000000..13f5ae89e5
--- /dev/null
+++ b/demos/2d/space_shooter/enemy_shot.scn
Binary files differ
diff --git a/demos/2d/space_shooter/engine.cfg b/demos/2d/space_shooter/engine.cfg
new file mode 100644
index 0000000000..8047cebdd3
--- /dev/null
+++ b/demos/2d/space_shooter/engine.cfg
@@ -0,0 +1,22 @@
+[application]
+
+name="Simple Shooter"
+main_scene="res://main_menu.scn"
+icon="res://icon.png"
+
+[autoload]
+
+game_state="res://game_state.gd"
+
+[display]
+
+width=1024
+height=600
+
+[input]
+
+move_up=[key(Up)]
+move_down=[key(Down)]
+move_left=[key(Left)]
+move_right=[key(Right)]
+shoot=[key(Space)]
diff --git a/demos/2d/space_shooter/explosion.scn b/demos/2d/space_shooter/explosion.scn
new file mode 100644
index 0000000000..4edcf709cb
--- /dev/null
+++ b/demos/2d/space_shooter/explosion.scn
Binary files differ
diff --git a/demos/2d/space_shooter/fire.png b/demos/2d/space_shooter/fire.png
new file mode 100644
index 0000000000..1c68c36213
--- /dev/null
+++ b/demos/2d/space_shooter/fire.png
Binary files differ
diff --git a/demos/2d/space_shooter/game_state.gd b/demos/2d/space_shooter/game_state.gd
new file mode 100644
index 0000000000..f66d0fa8fa
--- /dev/null
+++ b/demos/2d/space_shooter/game_state.gd
@@ -0,0 +1,24 @@
+extends Node
+
+
+var points = 0
+var max_points = 0
+
+
+func _ready():
+ var f = File.new()
+ #load high score
+
+ if (f.open("user://highscore",File.READ)==OK):
+
+ max_points=f.get_var()
+
+
+func game_over():
+ if (points>max_points):
+ max_points=points
+ #save high score
+ var f = File.new()
+ f.open("user://highscore",File.WRITE)
+ f.store_var(max_points)
+ \ No newline at end of file
diff --git a/demos/2d/space_shooter/icon.png b/demos/2d/space_shooter/icon.png
new file mode 100644
index 0000000000..1df2bf5d9d
--- /dev/null
+++ b/demos/2d/space_shooter/icon.png
Binary files differ
diff --git a/demos/2d/space_shooter/level.scn b/demos/2d/space_shooter/level.scn
new file mode 100644
index 0000000000..12a679f8b6
--- /dev/null
+++ b/demos/2d/space_shooter/level.scn
Binary files differ
diff --git a/demos/2d/space_shooter/level_tiles.res b/demos/2d/space_shooter/level_tiles.res
new file mode 100644
index 0000000000..8712b8c799
--- /dev/null
+++ b/demos/2d/space_shooter/level_tiles.res
Binary files differ
diff --git a/demos/2d/space_shooter/level_tiles.scn b/demos/2d/space_shooter/level_tiles.scn
new file mode 100644
index 0000000000..4d1feea70f
--- /dev/null
+++ b/demos/2d/space_shooter/level_tiles.scn
Binary files differ
diff --git a/demos/2d/space_shooter/main_menu.gd b/demos/2d/space_shooter/main_menu.gd
new file mode 100644
index 0000000000..52221aba1b
--- /dev/null
+++ b/demos/2d/space_shooter/main_menu.gd
@@ -0,0 +1,20 @@
+
+extends Control
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+
+func _ready():
+
+ get_node("score").set_text( "HIGH SCORE: "+str( get_node("/root/game_state").max_points ) )
+ # Initialization here
+ pass
+
+
+
+
+func _on_play_pressed():
+ get_node("/root/game_state").points=0
+ get_tree().change_scene("res://level.scn")
+ pass # replace with function body
diff --git a/demos/2d/space_shooter/main_menu.scn b/demos/2d/space_shooter/main_menu.scn
new file mode 100644
index 0000000000..b87cc5d3a8
--- /dev/null
+++ b/demos/2d/space_shooter/main_menu.scn
Binary files differ
diff --git a/demos/2d/space_shooter/meteorite.png b/demos/2d/space_shooter/meteorite.png
new file mode 100644
index 0000000000..92fb4387df
--- /dev/null
+++ b/demos/2d/space_shooter/meteorite.png
Binary files differ
diff --git a/demos/2d/space_shooter/parallax.scn b/demos/2d/space_shooter/parallax.scn
new file mode 100644
index 0000000000..f67277dc01
--- /dev/null
+++ b/demos/2d/space_shooter/parallax.scn
Binary files differ
diff --git a/demos/2d/space_shooter/rail.gd b/demos/2d/space_shooter/rail.gd
new file mode 100644
index 0000000000..22ebd02670
--- /dev/null
+++ b/demos/2d/space_shooter/rail.gd
@@ -0,0 +1,25 @@
+
+extends Node2D
+
+
+const SPEED=200
+# member variables here, example:
+# var a=2
+# var b="textvar"
+
+func stop():
+ set_process(false)
+
+var offset=0
+
+
+func _process(delta):
+ offset+=delta*SPEED
+ set_pos(Vector2(offset,0))
+
+func _ready():
+ set_process(true)
+ # Initialization here
+
+
+
diff --git a/demos/2d/space_shooter/ship.gd b/demos/2d/space_shooter/ship.gd
new file mode 100644
index 0000000000..fa444868a4
--- /dev/null
+++ b/demos/2d/space_shooter/ship.gd
@@ -0,0 +1,88 @@
+
+extends Area2D
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+
+const SPEED = 200
+
+var screen_size
+
+var prev_shooting=false
+
+func _process(delta):
+
+ var motion = Vector2()
+ if Input.is_action_pressed("move_up"):
+ motion+=Vector2(0,-1)
+ if Input.is_action_pressed("move_down"):
+ motion+=Vector2(0,1)
+ if Input.is_action_pressed("move_left"):
+ motion+=Vector2(-1,0)
+ if Input.is_action_pressed("move_right"):
+ motion+=Vector2(1,0)
+ var shooting = Input.is_action_pressed("shoot")
+
+ var pos = get_pos()
+
+ pos+=motion*delta*SPEED
+ if (pos.x<0):
+ pos.x=0
+ if (pos.x>screen_size.x):
+ pos.x=screen_size.x
+ if (pos.y<0):
+ pos.y=0
+ if (pos.y>screen_size.y):
+ pos.y=screen_size.y
+
+ set_pos(pos)
+
+ if (shooting and not prev_shooting):
+ # just pressed
+ var shot = preload("res://shot.scn").instance()
+ #use the position3d as reference
+ shot.set_pos( get_node("shootfrom").get_global_pos() )
+ #put it two parents above, so it is not moved by us
+ get_node("../..").add_child(shot)
+ #play sound
+ get_node("sfx").play("shoot")
+
+
+ prev_shooting = shooting
+
+ #update points counter
+ get_node("../hud/score_points").set_text( str(get_node("/root/game_state").points) )
+
+func _ready():
+ # Initialization here
+ screen_size = get_viewport().get_rect().size
+ set_process(true)
+ pass
+
+var killed=false
+
+func _hit_something():
+ if (killed):
+ return
+ killed=true
+ get_node("anim").play("explode")
+ get_node("sfx").play("sound_explode")
+ get_node("../hud/game_over").show()
+ get_node("/root/game_state").game_over()
+ get_parent().stop()
+ set_process(false)
+
+
+func _on_ship_body_enter( body ):
+ _hit_something()
+
+
+func _on_ship_area_enter( area ):
+ if (area.has_method("is_enemy") and area.is_enemy()):
+ _hit_something()
+
+
+func _on_back_to_menu_pressed():
+ get_tree().change_scene("res://main_menu.scn")
+ pass # replace with function body
diff --git a/demos/2d/space_shooter/ship.png b/demos/2d/space_shooter/ship.png
new file mode 100644
index 0000000000..a36b833903
--- /dev/null
+++ b/demos/2d/space_shooter/ship.png
Binary files differ
diff --git a/demos/2d/space_shooter/ship.scn b/demos/2d/space_shooter/ship.scn
new file mode 100644
index 0000000000..82c710eda7
--- /dev/null
+++ b/demos/2d/space_shooter/ship.scn
Binary files differ
diff --git a/demos/2d/space_shooter/shoot.png b/demos/2d/space_shooter/shoot.png
new file mode 100644
index 0000000000..6e80ddab93
--- /dev/null
+++ b/demos/2d/space_shooter/shoot.png
Binary files differ
diff --git a/demos/2d/space_shooter/shot.gd b/demos/2d/space_shooter/shot.gd
new file mode 100644
index 0000000000..28b67bd26d
--- /dev/null
+++ b/demos/2d/space_shooter/shot.gd
@@ -0,0 +1,48 @@
+
+extends Area2D
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+
+const SPEED = 800
+
+func _process(delta):
+ translate(Vector2(delta*SPEED,0))
+
+func _ready():
+ # Initialization here
+ set_process(true)
+ pass
+
+var hit=false
+
+func _hit_something():
+ if (hit):
+ return
+ hit=true
+ set_process(false)
+ get_node("anim").play("splash")
+
+func _on_visibility_exit_screen():
+ queue_free()
+ pass # replace with function body
+
+
+
+func _on_shot_area_enter( area ):
+ #hit an enemy or asteroid
+ if (area.has_method("destroy")):
+ #duck typing at it's best
+ area.destroy()
+ _hit_something()
+
+
+ pass
+
+
+func _on_shot_body_enter( body ):
+ #hit the tilemap
+ _hit_something()
+ pass # replace with function body
+
diff --git a/demos/2d/space_shooter/shot.scn b/demos/2d/space_shooter/shot.scn
new file mode 100644
index 0000000000..86a20ffa47
--- /dev/null
+++ b/demos/2d/space_shooter/shot.scn
Binary files differ
diff --git a/demos/2d/space_shooter/small_star.png b/demos/2d/space_shooter/small_star.png
new file mode 100644
index 0000000000..71c3c531cd
--- /dev/null
+++ b/demos/2d/space_shooter/small_star.png
Binary files differ
diff --git a/demos/2d/space_shooter/sound_explode.wav b/demos/2d/space_shooter/sound_explode.wav
new file mode 100644
index 0000000000..229c85399c
--- /dev/null
+++ b/demos/2d/space_shooter/sound_explode.wav
Binary files differ
diff --git a/demos/2d/space_shooter/sound_shoot.wav b/demos/2d/space_shooter/sound_shoot.wav
new file mode 100644
index 0000000000..ad74f328cb
--- /dev/null
+++ b/demos/2d/space_shooter/sound_shoot.wav
Binary files differ
diff --git a/demos/2d/space_shooter/tile.png b/demos/2d/space_shooter/tile.png
new file mode 100644
index 0000000000..d8f41d16f6
--- /dev/null
+++ b/demos/2d/space_shooter/tile.png
Binary files differ
diff --git a/demos/2d/splash/engine.cfg b/demos/2d/splash/engine.cfg
index cb50c7b1be..e461426305 100644
--- a/demos/2d/splash/engine.cfg
+++ b/demos/2d/splash/engine.cfg
@@ -2,6 +2,7 @@
name="Splash Screen"
main_scene="res://splash.xml"
+icon="res://icon.png"
[display]
diff --git a/demos/2d/splash/icon.png b/demos/2d/splash/icon.png
new file mode 100644
index 0000000000..b8e24f209e
--- /dev/null
+++ b/demos/2d/splash/icon.png
Binary files differ
diff --git a/demos/2d/sprite_shaders/cubio.png b/demos/2d/sprite_shaders/cubio.png
new file mode 100644
index 0000000000..6f76220225
--- /dev/null
+++ b/demos/2d/sprite_shaders/cubio.png
Binary files differ
diff --git a/demos/2d/sprite_shaders/engine.cfg b/demos/2d/sprite_shaders/engine.cfg
new file mode 100644
index 0000000000..17bdada188
--- /dev/null
+++ b/demos/2d/sprite_shaders/engine.cfg
@@ -0,0 +1,5 @@
+[application]
+
+name="2D Shaders for Sprites"
+main_scene="res://sprite_shaders.scn"
+icon="res://icon.png"
diff --git a/demos/2d/sprite_shaders/icon.png b/demos/2d/sprite_shaders/icon.png
new file mode 100644
index 0000000000..8b13ef6bb4
--- /dev/null
+++ b/demos/2d/sprite_shaders/icon.png
Binary files differ
diff --git a/demos/2d/sprite_shaders/sprite_shaders.scn b/demos/2d/sprite_shaders/sprite_shaders.scn
new file mode 100644
index 0000000000..7c36f2137c
--- /dev/null
+++ b/demos/2d/sprite_shaders/sprite_shaders.scn
Binary files differ
diff --git a/demos/2d/tetris/grid.gd b/demos/2d/tetris/grid.gd
index dc89300881..8708d168e4 100644
--- a/demos/2d/tetris/grid.gd
+++ b/demos/2d/tetris/grid.gd
@@ -143,6 +143,7 @@ func restart_pressed():
cells.clear()
get_node("gameover").set_text("")
piece_active=true
+ get_node("../restart").release_focus()
update()
diff --git a/demos/2d/texscreen/OpenCV_Chessboard.png b/demos/2d/texscreen/OpenCV_Chessboard.png
new file mode 100644
index 0000000000..31b7f8ccd8
--- /dev/null
+++ b/demos/2d/texscreen/OpenCV_Chessboard.png
Binary files differ
diff --git a/demos/2d/texscreen/bubble.png b/demos/2d/texscreen/bubble.png
new file mode 100644
index 0000000000..021abba601
--- /dev/null
+++ b/demos/2d/texscreen/bubble.png
Binary files differ
diff --git a/demos/2d/texscreen/bubbles.gd b/demos/2d/texscreen/bubbles.gd
new file mode 100644
index 0000000000..2ee227a928
--- /dev/null
+++ b/demos/2d/texscreen/bubbles.gd
@@ -0,0 +1,17 @@
+
+extends Control
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+
+const MAX_BUBBLES=10
+
+func _ready():
+ # Initialization here
+ for i in range(MAX_BUBBLES):
+ var bubble = preload("res://lens.scn").instance()
+ add_child(bubble)
+ pass
+
+
diff --git a/demos/2d/texscreen/bubbles.scn b/demos/2d/texscreen/bubbles.scn
new file mode 100644
index 0000000000..41026aceed
--- /dev/null
+++ b/demos/2d/texscreen/bubbles.scn
Binary files differ
diff --git a/demos/2d/texscreen/burano.png b/demos/2d/texscreen/burano.png
new file mode 100644
index 0000000000..6eec09d585
--- /dev/null
+++ b/demos/2d/texscreen/burano.png
Binary files differ
diff --git a/demos/2d/texscreen/engine.cfg b/demos/2d/texscreen/engine.cfg
new file mode 100644
index 0000000000..92d0e98d5b
--- /dev/null
+++ b/demos/2d/texscreen/engine.cfg
@@ -0,0 +1,12 @@
+[application]
+
+name="Glass Bubbles (Texscreen)"
+main_scene="res://bubbles.scn"
+icon="res://icon.png"
+
+[display]
+
+width=800
+height=600
+stretch_mode="2d"
+stretch_aspect="keep"
diff --git a/demos/2d/texscreen/icon.png b/demos/2d/texscreen/icon.png
new file mode 100644
index 0000000000..d74d025ced
--- /dev/null
+++ b/demos/2d/texscreen/icon.png
Binary files differ
diff --git a/demos/2d/texscreen/lens.gd b/demos/2d/texscreen/lens.gd
new file mode 100644
index 0000000000..2ccbfba497
--- /dev/null
+++ b/demos/2d/texscreen/lens.gd
@@ -0,0 +1,37 @@
+
+extends BackBufferCopy
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+const MOTION_SPEED=150
+
+var vsize;
+var dir;
+
+func _process(delta):
+ var pos = get_pos() + dir * delta * MOTION_SPEED
+
+ if (pos.x<0):
+ dir.x=abs(dir.x)
+ elif (pos.x>vsize.x):
+ dir.x=-abs(dir.x)
+
+ if (pos.y<0):
+ dir.y=abs(dir.y)
+ elif (pos.y>vsize.y):
+ dir.y=-abs(dir.y)
+
+ set_pos(pos)
+
+func _ready():
+ vsize = get_viewport_rect().size
+ var pos = vsize * Vector2(randf(),randf());
+ set_pos(pos);
+ dir = Vector2(randf()*2.0-1,randf()*2.0-1).normalized()
+ set_process(true)
+
+ # Initialization here
+ pass
+
+
diff --git a/demos/2d/texscreen/lens.scn b/demos/2d/texscreen/lens.scn
new file mode 100644
index 0000000000..5c6f8b7af8
--- /dev/null
+++ b/demos/2d/texscreen/lens.scn
Binary files differ
diff --git a/demos/3d/kinematic_char/cubelib.res b/demos/3d/kinematic_char/cubelib.res
index 66b999d78d..130b9529fe 100644
--- a/demos/3d/kinematic_char/cubelib.res
+++ b/demos/3d/kinematic_char/cubelib.res
Binary files differ
diff --git a/demos/3d/kinematic_char/cubio.gd b/demos/3d/kinematic_char/cubio.gd
index a1baa78a0c..058b919d05 100644
--- a/demos/3d/kinematic_char/cubio.gd
+++ b/demos/3d/kinematic_char/cubio.gd
@@ -46,9 +46,8 @@ func _fixed_process(delta):
vel.x=hvel.x;
vel.z=hvel.z
-
- var motion = vel*delta
- motion=move(vel*delta)
+
+ var motion = move(vel*delta)
var on_floor = false
var original_vel = vel
diff --git a/demos/3d/kinematic_char/level.scn b/demos/3d/kinematic_char/level.scn
index a276fe22e1..8be64c61c0 100644
--- a/demos/3d/kinematic_char/level.scn
+++ b/demos/3d/kinematic_char/level.scn
Binary files differ
diff --git a/demos/3d/navmesh/icon.png b/demos/3d/navmesh/icon.png
new file mode 100644
index 0000000000..51fef7b2df
--- /dev/null
+++ b/demos/3d/navmesh/icon.png
Binary files differ
diff --git a/demos/3d/navmesh/navmesh.scn b/demos/3d/navmesh/navmesh.scn
index 73df340b1e..1202985dec 100644
--- a/demos/3d/navmesh/navmesh.scn
+++ b/demos/3d/navmesh/navmesh.scn
Binary files differ
diff --git a/demos/3d/platformer/bullet.scn b/demos/3d/platformer/bullet.scn
index 43f48fc99f..da90dba1a5 100644
--- a/demos/3d/platformer/bullet.scn
+++ b/demos/3d/platformer/bullet.scn
Binary files differ
diff --git a/demos/3d/platformer/coin.scn b/demos/3d/platformer/coin.scn
index 449bb0f895..a4148b4060 100644
--- a/demos/3d/platformer/coin.scn
+++ b/demos/3d/platformer/coin.scn
Binary files differ
diff --git a/demos/3d/platformer/enemy.gd b/demos/3d/platformer/enemy.gd
index 1d0e0315d9..9b2e95a96d 100644
--- a/demos/3d/platformer/enemy.gd
+++ b/demos/3d/platformer/enemy.gd
@@ -45,7 +45,7 @@ func _integrate_forces(state):
state.set_angular_velocity( -dp.cross(up).normalized() *33.0)
get_node("AnimationPlayer").play("impact")
get_node("AnimationPlayer").queue("explode")
- set_friction(true)
+ set_friction(1)
cc.disabled=true
get_node("sound").play("hit")
return
@@ -91,4 +91,5 @@ func _ready():
# Initalization here
pass
-
+func _die():
+ queue_free()
diff --git a/demos/3d/platformer/enemy.scn b/demos/3d/platformer/enemy.scn
index b3f69af600..083582a85a 100644
--- a/demos/3d/platformer/enemy.scn
+++ b/demos/3d/platformer/enemy.scn
Binary files differ
diff --git a/demos/3d/platformer/player.gd b/demos/3d/platformer/player.gd
index 4eeb12e23b..76cf2861bf 100644
--- a/demos/3d/platformer/player.gd
+++ b/demos/3d/platformer/player.gd
@@ -69,9 +69,9 @@ func _integrate_forces( state ):
var lv = state.get_linear_velocity() # linear velocity
var g = state.get_total_gravity()
var delta = state.get_step()
- var d = 1.0 - delta*state.get_total_density()
- if (d<0):
- d=0
+# var d = 1.0 - delta*state.get_total_density()
+# if (d<0):
+# d=0
lv += g * delta #apply gravity
var anim = ANIM_FLOOR
diff --git a/demos/3d/platformer/stage.xml b/demos/3d/platformer/stage.xml
index f3a5caffa9..37a11068c9 100644
--- a/demos/3d/platformer/stage.xml
+++ b/demos/3d/platformer/stage.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="7" version="1.0" version_name="Godot Engine v1.0.3917-beta1">
+<resource_file type="PackedScene" subresource_count="7" version="1.0" version_name="Godot Engine v1.0.stable.custom_build">
<ext_resource path="res://sb.cube" type="CubeMap"></ext_resource>
<ext_resource path="res://tiles.res" type="MeshLibrary"></ext_resource>
<ext_resource path="res://enemy.scn" type="PackedScene"></ext_resource>
- <ext_resource path="res://coin.scn" type="PackedScene"></ext_resource>
<ext_resource path="res://player.xml" type="PackedScene"></ext_resource>
+ <ext_resource path="res://coin.scn" type="PackedScene"></ext_resource>
<resource type="Environment" path="local://1">
<bool name="ambient_light/enabled"> True </bool>
<color name="ambient_light/color"> 0, 0.409429, 0.596681, 1 </color>
@@ -29,8 +29,9 @@
<real name="dof_blur/begin"> 100 </real>
<real name="dof_blur/range"> 10 </real>
<bool name="hdr/enabled"> True </bool>
+ <int name="hdr/tonemapper"> 0 </int>
<real name="hdr/exposure"> 0.4 </real>
- <real name="hdr/scalar"> 1 </real>
+ <real name="hdr/white"> 1 </real>
<real name="hdr/glow_treshold"> 0.9 </real>
<real name="hdr/glow_scale"> 0.5 </real>
<real name="hdr/min_luminance"> 0.4 </real>
@@ -52,11 +53,12 @@
<main_resource>
<dictionary name="_bundled" shared="false">
<string> "names" </string>
- <string_array len="92">
+ <string_array len="94">
<string> "world" </string>
<string> "Spatial" </string>
<string> "_import_path" </string>
<string> "_import_transform" </string>
+ <string> "visibility/visible" </string>
<string> "__meta__" </string>
<string> "GridMap" </string>
<string> "theme/theme" </string>
@@ -73,6 +75,7 @@
<string> "transform/local" </string>
<string> "layers" </string>
<string> "params/enabled" </string>
+ <string> "params/editor_only" </string>
<string> "params/bake_mode" </string>
<string> "params/energy" </string>
<string> "colors/diffuse" </string>
@@ -153,9 +156,10 @@
<string> "node_count" </string>
<int> 55 </int>
<string> "variants" </string>
- <array len="79" shared="false">
+ <array len="82" shared="false">
<node_path> "" </node_path>
<transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 </transform>
+ <bool> True </bool>
<dictionary shared="false">
<string> "__editor_plugin_states__" </string>
<dictionary shared="false">
@@ -174,23 +178,27 @@
</dictionary>
<string> "3D" </string>
<dictionary shared="false">
+ <string> "deflight_rot_y" </string>
+ <real> 0.628319 </real>
<string> "zfar" </string>
<real> 500 </real>
<string> "fov" </string>
- <real> 400 </real>
+ <real> 179 </real>
<string> "viewports" </string>
<array len="4" shared="false">
<dictionary shared="false">
<string> "distance" </string>
- <real> 0.261354 </real>
+ <real> 9.009935 </real>
<string> "x_rot" </string>
<real> 0.458294 </real>
<string> "y_rot" </string>
<real> -1.2 </real>
- <string> "use_orthogonal" </string>
- <bool> False </bool>
+ <string> "listener" </string>
+ <bool> True </bool>
<string> "use_environment" </string>
<bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
<string> "pos" </string>
<vector3> 13.4535, 5.75047, 13.8175 </vector3>
</dictionary>
@@ -201,10 +209,12 @@
<real> 0 </real>
<string> "y_rot" </string>
<real> 0 </real>
- <string> "use_orthogonal" </string>
+ <string> "listener" </string>
<bool> False </bool>
<string> "use_environment" </string>
<bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
<string> "pos" </string>
<vector3> 0, 0, 0 </vector3>
</dictionary>
@@ -215,10 +225,12 @@
<real> 0 </real>
<string> "y_rot" </string>
<real> 0 </real>
- <string> "use_orthogonal" </string>
+ <string> "listener" </string>
<bool> False </bool>
<string> "use_environment" </string>
<bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
<string> "pos" </string>
<vector3> 0, 0, 0 </vector3>
</dictionary>
@@ -229,10 +241,12 @@
<real> 0 </real>
<string> "y_rot" </string>
<real> 0 </real>
- <string> "use_orthogonal" </string>
+ <string> "listener" </string>
<bool> False </bool>
<string> "use_environment" </string>
<bool> False </bool>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
<string> "pos" </string>
<vector3> 0, 0, 0 </vector3>
</dictionary>
@@ -241,12 +255,18 @@
<int> 1 </int>
<string> "default_light" </string>
<bool> False </bool>
+ <string> "ambient_light_color" </string>
+ <color> 0.15, 0.15, 0.15, 1 </color>
<string> "show_grid" </string>
<bool> True </bool>
<string> "show_origin" </string>
<bool> True </bool>
<string> "znear" </string>
<real> 0.1 </real>
+ <string> "default_srgb" </string>
+ <bool> False </bool>
+ <string> "deflight_rot_x" </string>
+ <real> 0.942478 </real>
</dictionary>
</dictionary>
<string> "__editor_run_settings__" </string>
@@ -263,7 +283,6 @@
<bool> False </bool>
<real> 2 </real>
<int> 4 </int>
- <bool> True </bool>
<real> 1.001 </real>
<dictionary shared="false">
<string> "cells" </string>
@@ -295,6 +314,112 @@
</dictionary>
<resource resource_type="PackedScene" path="res://coin.scn"> </resource>
<transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 18.5311, 2.85075, 5.24675 </transform>
+ <dictionary shared="false">
+ <string> "__editor_plugin_states__" </string>
+ <dictionary shared="false">
+ <string> "Script" </string>
+ <dictionary shared="false">
+ <string> "current" </string>
+ <int> 0 </int>
+ <string> "sources" </string>
+ <array len="1" shared="false">
+ <string> "res://coin.gd" </string>
+ </array>
+ </dictionary>
+ <string> "2D" </string>
+ <dictionary shared="false">
+ <string> "zoom" </string>
+ <real> 1 </real>
+ <string> "ofs" </string>
+ <vector2> 1, 1 </vector2>
+ </dictionary>
+ <string> "3D" </string>
+ <dictionary shared="false">
+ <string> "fov" </string>
+ <real> 400 </real>
+ <string> "zfar" </string>
+ <real> 500 </real>
+ <string> "viewports" </string>
+ <array len="4" shared="false">
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 1.361845 </real>
+ <string> "x_rot" </string>
+ <real> 0.0125 </real>
+ <string> "y_rot" </string>
+ <real> 12.050008 </real>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> -0.00892573, 0.51052, -0.216081 </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> "znear" </string>
+ <real> 0.1 </real>
+ <string> "show_origin" </string>
+ <bool> True </bool>
+ </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> "3D" </string>
+ </dictionary>
<transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 18.5311, 2.85075, 7.24675 </transform>
<transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 20.5311, 2.85075, 5.24675 </transform>
<transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 20.5311, 2.85075, 7.24675 </transform>
@@ -340,14 +465,230 @@
<transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 51.5614, 4.60515, 25.1836 </transform>
<resource resource_type="PackedScene" path="res://enemy.scn"> </resource>
<transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 18.3062, 5.40827, 5.96938 </transform>
+ <dictionary shared="false">
+ <string> "__editor_plugin_states__" </string>
+ <dictionary shared="false">
+ <string> "Script" </string>
+ <dictionary shared="false">
+ <string> "current" </string>
+ <int> 0 </int>
+ <string> "sources" </string>
+ <array len="2" shared="false">
+ <string> "res://enemy.gd" </string>
+ <string> "res://player.gd" </string>
+ </array>
+ </dictionary>
+ <string> "2D" </string>
+ <dictionary shared="false">
+ <string> "zoom" </string>
+ <real> 1 </real>
+ <string> "ofs" </string>
+ <vector2> 1, 1 </vector2>
+ </dictionary>
+ <string> "3D" </string>
+ <dictionary shared="false">
+ <string> "fov" </string>
+ <real> 400 </real>
+ <string> "zfar" </string>
+ <real> 500 </real>
+ <string> "viewports" </string>
+ <array len="4" shared="false">
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 7.403724 </real>
+ <string> "x_rot" </string>
+ <real> 0.25 </real>
+ <string> "y_rot" </string>
+ <real> 3.312502 </real>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> 0.898236, 0.953557, 0.742913 </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> "znear" </string>
+ <real> 0.1 </real>
+ <string> "show_origin" </string>
+ <bool> True </bool>
+ </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>
<transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 64.1292, 5.40827, 17.1396 </transform>
<transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 64.1292, 5.40827, 32.6128 </transform>
<transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 55.5702, 5.40827, 32.6128 </transform>
<resource resource_type="PackedScene" path="res://player.xml"> </resource>
<transform> 0.0160676, 0, -0.999871, 0, 1, 0, 0.999871, 0, 0.0160676, 8.50167, 4.15811, 15.9334 </transform>
+ <dictionary shared="false">
+ <string> "__editor_plugin_states__" </string>
+ <dictionary shared="false">
+ <string> "Script" </string>
+ <dictionary shared="false">
+ <string> "current" </string>
+ <int> 1 </int>
+ <string> "sources" </string>
+ <array len="2" shared="false">
+ <string> "res://follow_camera.gd" </string>
+ <string> "res://player.gd" </string>
+ </array>
+ </dictionary>
+ <string> "2D" </string>
+ <dictionary shared="false">
+ <string> "pixel_snap" </string>
+ <bool> False </bool>
+ <string> "zoom" </string>
+ <real> 1 </real>
+ <string> "ofs" </string>
+ <vector2> -241, -19 </vector2>
+ </dictionary>
+ <string> "3D" </string>
+ <dictionary shared="false">
+ <string> "fov" </string>
+ <real> 400 </real>
+ <string> "zfar" </string>
+ <real> 500 </real>
+ <string> "viewports" </string>
+ <array len="4" shared="false">
+ <dictionary shared="false">
+ <string> "distance" </string>
+ <real> 2.161076 </real>
+ <string> "x_rot" </string>
+ <real> 0.520797 </real>
+ <string> "y_rot" </string>
+ <real> 26.741669 </real>
+ <string> "use_orthogonal" </string>
+ <bool> False </bool>
+ <string> "use_environment" </string>
+ <bool> False </bool>
+ <string> "pos" </string>
+ <vector3> -0.415811, 0.486899, 0.089334 </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> "znear" </string>
+ <real> 0.1 </real>
+ <string> "show_origin" </string>
+ <bool> True </bool>
+ </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> "3D" </string>
+ </dictionary>
</array>
<string> "nodes" </string>
- <int_array len="569"> -1, -1, 1, 0, -1, 3, 2, 0, 3, 1, 4, 2, 0, 0, 0, 5, 5, -1, 13, 2, 0, 3, 1, 6, 3, 7, 4, 8, 4, 9, 5, 10, 6, 11, 7, 12, 7, 13, 7, 14, 8, 15, 9, 4, 10, 0, 0, 0, 16, 16, -1, 21, 2, 0, 3, 1, 17, 11, 18, 12, 19, 7, 20, 13, 21, 14, 22, 15, 23, 15, 24, 7, 25, 16, 26, 17, 27, 18, 28, 19, 29, 20, 30, 21, 31, 13, 32, 22, 33, 23, 34, 24, 35, 5, 0, 0, 0, 37, 36, -1, 3, 2, 0, 3, 1, 36, 25, 0, 0, 0, 39, 38, -1, 2, 2, 0, 4, 26, 0, 4, 0, 41, 40, 27, 1, 17, 28, 0, 4, 0, 41, 42, 27, 1, 17, 29, 0, 4, 0, 41, 43, 27, 1, 17, 30, 0, 4, 0, 41, 44, 27, 1, 17, 31, 0, 4, 0, 41, 45, 27, 1, 17, 32, 0, 4, 0, 41, 46, 27, 1, 17, 33, 0, 4, 0, 41, 47, 27, 1, 17, 34, 0, 4, 0, 41, 48, 27, 1, 17, 35, 0, 4, 0, 41, 49, 27, 1, 17, 36, 0, 4, 0, 41, 50, 27, 1, 17, 37, 0, 4, 0, 41, 51, 27, 1, 17, 38, 0, 4, 0, 41, 52, 27, 1, 17, 39, 0, 4, 0, 41, 53, 27, 1, 17, 40, 0, 4, 0, 41, 54, 27, 1, 17, 41, 0, 4, 0, 41, 55, 27, 1, 17, 42, 0, 4, 0, 41, 56, 27, 1, 17, 43, 0, 4, 0, 41, 57, 27, 1, 17, 44, 0, 4, 0, 41, 58, 27, 1, 17, 45, 0, 4, 0, 41, 59, 27, 1, 17, 46, 0, 4, 0, 41, 60, 27, 1, 17, 47, 0, 4, 0, 41, 61, 27, 1, 17, 48, 0, 4, 0, 41, 62, 27, 1, 17, 49, 0, 4, 0, 41, 63, 27, 1, 17, 50, 0, 4, 0, 41, 64, 27, 1, 17, 51, 0, 4, 0, 41, 65, 27, 1, 17, 52, 0, 4, 0, 41, 66, 27, 1, 17, 53, 0, 4, 0, 41, 67, 27, 1, 17, 54, 0, 4, 0, 41, 68, 27, 1, 17, 55, 0, 4, 0, 41, 69, 27, 1, 17, 56, 0, 4, 0, 41, 70, 27, 1, 17, 57, 0, 4, 0, 41, 71, 27, 1, 17, 58, 0, 4, 0, 41, 72, 27, 1, 17, 59, 0, 4, 0, 41, 73, 27, 1, 17, 60, 0, 4, 0, 41, 74, 27, 1, 17, 61, 0, 4, 0, 41, 75, 27, 1, 17, 62, 0, 4, 0, 41, 76, 27, 1, 17, 63, 0, 4, 0, 41, 77, 27, 1, 17, 64, 0, 4, 0, 41, 78, 27, 1, 17, 65, 0, 4, 0, 41, 79, 27, 1, 17, 66, 0, 4, 0, 41, 80, 27, 1, 17, 67, 0, 4, 0, 41, 81, 27, 1, 17, 68, 0, 4, 0, 41, 82, 27, 1, 17, 69, 0, 4, 0, 41, 83, 27, 1, 17, 70, 0, 4, 0, 41, 84, 27, 1, 17, 71, 0, 0, 0, 39, 85, -1, 1, 2, 0, 0, 49, 0, 87, 86, 72, 1, 17, 73, 0, 49, 0, 87, 88, 72, 1, 17, 74, 0, 49, 0, 87, 89, 72, 1, 17, 75, 0, 49, 0, 87, 90, 72, 1, 17, 76, 0, 0, 0, 87, 91, 77, 1, 17, 78, 0 </int_array>
+ <int_array len="873"> -1, -1, 1, 0, -1, 4, 2, 0, 3, 1, 4, 2, 5, 3, 0, 0, 0, 6, 6, -1, 14, 2, 0, 3, 1, 4, 2, 7, 4, 8, 5, 9, 5, 10, 6, 11, 7, 12, 2, 13, 2, 14, 2, 15, 8, 16, 9, 5, 10, 0, 0, 0, 17, 17, -1, 23, 2, 0, 3, 1, 18, 11, 4, 2, 19, 12, 20, 2, 21, 5, 22, 13, 23, 14, 24, 15, 25, 15, 26, 2, 27, 16, 28, 17, 29, 18, 30, 19, 31, 20, 32, 21, 33, 13, 34, 22, 35, 23, 36, 24, 37, 6, 0, 0, 0, 39, 38, -1, 4, 2, 0, 3, 1, 4, 2, 38, 25, 0, 0, 0, 41, 40, -1, 2, 2, 0, 5, 26, 0, 4, 0, 43, 42, 27, 4, 2, 0, 3, 1, 18, 28, 5, 29, 0, 4, 0, 43, 44, 27, 4, 2, 0, 3, 1, 18, 30, 5, 29, 0, 4, 0, 43, 45, 27, 4, 2, 0, 3, 1, 18, 31, 5, 29, 0, 4, 0, 43, 46, 27, 4, 2, 0, 3, 1, 18, 32, 5, 29, 0, 4, 0, 43, 47, 27, 4, 2, 0, 3, 1, 18, 33, 5, 29, 0, 4, 0, 43, 48, 27, 4, 2, 0, 3, 1, 18, 34, 5, 29, 0, 4, 0, 43, 49, 27, 4, 2, 0, 3, 1, 18, 35, 5, 29, 0, 4, 0, 43, 50, 27, 4, 2, 0, 3, 1, 18, 36, 5, 29, 0, 4, 0, 43, 51, 27, 4, 2, 0, 3, 1, 18, 37, 5, 29, 0, 4, 0, 43, 52, 27, 4, 2, 0, 3, 1, 18, 38, 5, 29, 0, 4, 0, 43, 53, 27, 4, 2, 0, 3, 1, 18, 39, 5, 29, 0, 4, 0, 43, 54, 27, 4, 2, 0, 3, 1, 18, 40, 5, 29, 0, 4, 0, 43, 55, 27, 4, 2, 0, 3, 1, 18, 41, 5, 29, 0, 4, 0, 43, 56, 27, 4, 2, 0, 3, 1, 18, 42, 5, 29, 0, 4, 0, 43, 57, 27, 4, 2, 0, 3, 1, 18, 43, 5, 29, 0, 4, 0, 43, 58, 27, 4, 2, 0, 3, 1, 18, 44, 5, 29, 0, 4, 0, 43, 59, 27, 4, 2, 0, 3, 1, 18, 45, 5, 29, 0, 4, 0, 43, 60, 27, 4, 2, 0, 3, 1, 18, 46, 5, 29, 0, 4, 0, 43, 61, 27, 4, 2, 0, 3, 1, 18, 47, 5, 29, 0, 4, 0, 43, 62, 27, 4, 2, 0, 3, 1, 18, 48, 5, 29, 0, 4, 0, 43, 63, 27, 4, 2, 0, 3, 1, 18, 49, 5, 29, 0, 4, 0, 43, 64, 27, 4, 2, 0, 3, 1, 18, 50, 5, 29, 0, 4, 0, 43, 65, 27, 4, 2, 0, 3, 1, 18, 51, 5, 29, 0, 4, 0, 43, 66, 27, 4, 2, 0, 3, 1, 18, 52, 5, 29, 0, 4, 0, 43, 67, 27, 4, 2, 0, 3, 1, 18, 53, 5, 29, 0, 4, 0, 43, 68, 27, 4, 2, 0, 3, 1, 18, 54, 5, 29, 0, 4, 0, 43, 69, 27, 4, 2, 0, 3, 1, 18, 55, 5, 29, 0, 4, 0, 43, 70, 27, 4, 2, 0, 3, 1, 18, 56, 5, 29, 0, 4, 0, 43, 71, 27, 4, 2, 0, 3, 1, 18, 57, 5, 29, 0, 4, 0, 43, 72, 27, 4, 2, 0, 3, 1, 18, 58, 5, 29, 0, 4, 0, 43, 73, 27, 4, 2, 0, 3, 1, 18, 59, 5, 29, 0, 4, 0, 43, 74, 27, 4, 2, 0, 3, 1, 18, 60, 5, 29, 0, 4, 0, 43, 75, 27, 4, 2, 0, 3, 1, 18, 61, 5, 29, 0, 4, 0, 43, 76, 27, 4, 2, 0, 3, 1, 18, 62, 5, 29, 0, 4, 0, 43, 77, 27, 4, 2, 0, 3, 1, 18, 63, 5, 29, 0, 4, 0, 43, 78, 27, 4, 2, 0, 3, 1, 18, 64, 5, 29, 0, 4, 0, 43, 79, 27, 4, 2, 0, 3, 1, 18, 65, 5, 29, 0, 4, 0, 43, 80, 27, 4, 2, 0, 3, 1, 18, 66, 5, 29, 0, 4, 0, 43, 81, 27, 4, 2, 0, 3, 1, 18, 67, 5, 29, 0, 4, 0, 43, 82, 27, 4, 2, 0, 3, 1, 18, 68, 5, 29, 0, 4, 0, 43, 83, 27, 4, 2, 0, 3, 1, 18, 69, 5, 29, 0, 4, 0, 43, 84, 27, 4, 2, 0, 3, 1, 18, 70, 5, 29, 0, 4, 0, 43, 85, 27, 4, 2, 0, 3, 1, 18, 71, 5, 29, 0, 4, 0, 43, 86, 27, 4, 2, 0, 3, 1, 18, 72, 5, 29, 0, 0, 0, 41, 87, -1, 1, 2, 0, 0, 49, 0, 89, 88, 73, 4, 2, 0, 3, 1, 18, 74, 5, 75, 0, 49, 0, 89, 90, 73, 4, 2, 0, 3, 1, 18, 76, 5, 75, 0, 49, 0, 89, 91, 73, 4, 2, 0, 3, 1, 18, 77, 5, 75, 0, 49, 0, 89, 92, 73, 4, 2, 0, 3, 1, 18, 78, 5, 75, 0, 0, 0, 89, 93, 79, 4, 2, 0, 3, 1, 18, 80, 5, 81, 0 </int_array>
<string> "conns" </string>
<int_array len="0"> </int_array>
</dictionary>
diff --git a/demos/3d/sat_test/engine.cfg b/demos/3d/sat_test/engine.cfg
index cc215c83e8..82c688635d 100644
--- a/demos/3d/sat_test/engine.cfg
+++ b/demos/3d/sat_test/engine.cfg
@@ -2,3 +2,4 @@
name="SAT Collision Test"
main_scene="res://sat_test.xml"
+icon="res://icon.png"
diff --git a/demos/3d/sat_test/icon.png b/demos/3d/sat_test/icon.png
new file mode 100644
index 0000000000..194456e10f
--- /dev/null
+++ b/demos/3d/sat_test/icon.png
Binary files differ
diff --git a/demos/3d/shader_materials/shader_materials.scn b/demos/3d/shader_materials/shader_materials.scn
index d6a3efe73f..243c6c8f06 100644
--- a/demos/3d/shader_materials/shader_materials.scn
+++ b/demos/3d/shader_materials/shader_materials.scn
Binary files differ
diff --git a/demos/3d/truck_town/engine.cfg b/demos/3d/truck_town/engine.cfg
index f47c0de4fa..b2a463e1e2 100644
--- a/demos/3d/truck_town/engine.cfg
+++ b/demos/3d/truck_town/engine.cfg
@@ -1,6 +1,8 @@
[application]
+name="Truck Town"
main_scene="res://car_select.scn"
+icon="res://icon.png"
[display]
diff --git a/demos/3d/truck_town/icon.png b/demos/3d/truck_town/icon.png
new file mode 100644
index 0000000000..7d7bd42116
--- /dev/null
+++ b/demos/3d/truck_town/icon.png
Binary files differ
diff --git a/demos/gui/drag_and_drop/drag_and_drop.scn b/demos/gui/drag_and_drop/drag_and_drop.scn
new file mode 100644
index 0000000000..94a25cc53e
--- /dev/null
+++ b/demos/gui/drag_and_drop/drag_and_drop.scn
Binary files differ
diff --git a/demos/gui/drag_and_drop/drag_drop_script.gd b/demos/gui/drag_and_drop/drag_drop_script.gd
new file mode 100644
index 0000000000..21a737ce1a
--- /dev/null
+++ b/demos/gui/drag_and_drop/drag_drop_script.gd
@@ -0,0 +1,24 @@
+
+extends ColorPickerButton
+
+
+#virtual function
+func get_drag_data(pos):
+
+ #use another colorpicker as drag preview
+ var cpb = ColorPickerButton.new()
+ cpb.set_color( get_color() )
+ cpb.set_size(Vector2(50,50))
+ set_drag_preview(cpb)
+ #return color as drag data
+ return get_color()
+
+#virtual function
+func can_drop_data(pos, data):
+ return typeof(data)==TYPE_COLOR
+
+#virtual function
+func drop_data(pos, data):
+ set_color(data)
+
+
diff --git a/demos/gui/drag_and_drop/engine.cfg b/demos/gui/drag_and_drop/engine.cfg
new file mode 100644
index 0000000000..49b9b93512
--- /dev/null
+++ b/demos/gui/drag_and_drop/engine.cfg
@@ -0,0 +1,5 @@
+[application]
+
+name="Drag &amp; Drop (GUI)"
+main_scene="res://drag_and_drop.scn"
+icon="res://icon.png"
diff --git a/demos/gui/drag_and_drop/icon.png b/demos/gui/drag_and_drop/icon.png
new file mode 100644
index 0000000000..f900d8d4a3
--- /dev/null
+++ b/demos/gui/drag_and_drop/icon.png
Binary files differ
diff --git a/demos/gui/input_mapping/controls.gd b/demos/gui/input_mapping/controls.gd
new file mode 100644
index 0000000000..6ca059c812
--- /dev/null
+++ b/demos/gui/input_mapping/controls.gd
@@ -0,0 +1,49 @@
+# Note for the reader:
+#
+# This demo conveniently uses the same names for actions and for the container nodes
+# that hold each remapping button. This allow to get back to the button based simply
+# on the name of the corresponding action, but it might not be so simple in your project.
+#
+# A better approach for large-scale input remapping might be to do the connections between
+# buttons and wait_for_input through the code, passing as arguments both the name of the
+# action and the node, e.g.:
+# button.connect("pressed", self, "wait_for_input", [ button, action ])
+
+extends Control
+
+var player_actions = [ "move_up", "move_down", "move_left", "move_right", "jump" ]
+var action # To register the action the UI is currently handling
+var button # Button node corresponding to the above action
+
+func wait_for_input(action_bind):
+ action = action_bind
+ # See note at the beginning of the script
+ button = get_node("bindings").get_node(action).get_node("Button")
+ get_node("contextual_help").set_text("Press a key to assign to the '" + action + "' action.")
+ set_process_input(true)
+
+func _input(event):
+ # Handle the first pressed key
+ if (event.type == InputEvent.KEY):
+ # Register the event as handled and stop polling
+ get_tree().set_input_as_handled()
+ set_process_input(false)
+ # Reinitialise the contextual help label
+ get_node("contextual_help").set_text("Click a key binding to reassign it, or press the Cancel action.")
+ if (not event.is_action("ui_cancel")):
+ # Display the string corresponding to the pressed key
+ button.set_text(OS.get_scancode_string(event.scancode))
+ # Start by removing previously key binding(s)
+ for old_event in InputMap.get_action_list(action):
+ InputMap.action_erase_event(action, old_event)
+ # Add the new key binding
+ InputMap.action_add_event(action, event)
+
+func _ready():
+ # Initialise each button with the default key binding from InputMap
+ var input_event
+ for action in player_actions:
+ # We assume that the key binding that we want is the first one (0), if there are several
+ input_event = InputMap.get_action_list(action)[0]
+ # See note at the beginning of the script
+ get_node("bindings").get_node(action).get_node("Button").set_text(OS.get_scancode_string(input_event.scancode))
diff --git a/demos/gui/input_mapping/controls.scn b/demos/gui/input_mapping/controls.scn
new file mode 100644
index 0000000000..276712ba22
--- /dev/null
+++ b/demos/gui/input_mapping/controls.scn
Binary files differ
diff --git a/demos/gui/input_mapping/engine.cfg b/demos/gui/input_mapping/engine.cfg
new file mode 100644
index 0000000000..811635ce25
--- /dev/null
+++ b/demos/gui/input_mapping/engine.cfg
@@ -0,0 +1,18 @@
+[application]
+
+name="Input Mapping GUI"
+main_scene="res://controls.scn"
+icon="res://icon.png"
+
+[display]
+
+width=640
+height=480
+
+[input]
+
+move_up=[key(Up)]
+move_down=[key(Down)]
+move_left=[key(Left)]
+move_right=[key(Right)]
+jump=[key(Space)]
diff --git a/demos/gui/input_mapping/icon.png b/demos/gui/input_mapping/icon.png
new file mode 100644
index 0000000000..5a1abf4f58
--- /dev/null
+++ b/demos/gui/input_mapping/icon.png
Binary files differ
diff --git a/demos/gui/rich_text_bbcode/OFL.txt b/demos/gui/rich_text_bbcode/OFL.txt
new file mode 100644
index 0000000000..723d4560b9
--- /dev/null
+++ b/demos/gui/rich_text_bbcode/OFL.txt
@@ -0,0 +1,92 @@
+Copyright (c) 2009-2011 by Accademia di Belle Arti di Urbino and students of MA course of Visual design. Some rights reserved.
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/demos/gui/rich_text_bbcode/TitilliumWeb-Bold.ttf b/demos/gui/rich_text_bbcode/TitilliumWeb-Bold.ttf
new file mode 100644
index 0000000000..0af0fe7d27
--- /dev/null
+++ b/demos/gui/rich_text_bbcode/TitilliumWeb-Bold.ttf
Binary files differ
diff --git a/demos/gui/rich_text_bbcode/TitilliumWeb-BoldItalic.ttf b/demos/gui/rich_text_bbcode/TitilliumWeb-BoldItalic.ttf
new file mode 100644
index 0000000000..77425eaab6
--- /dev/null
+++ b/demos/gui/rich_text_bbcode/TitilliumWeb-BoldItalic.ttf
Binary files differ
diff --git a/demos/gui/rich_text_bbcode/TitilliumWeb-Italic.ttf b/demos/gui/rich_text_bbcode/TitilliumWeb-Italic.ttf
new file mode 100644
index 0000000000..42f2c10f18
--- /dev/null
+++ b/demos/gui/rich_text_bbcode/TitilliumWeb-Italic.ttf
Binary files differ
diff --git a/demos/gui/rich_text_bbcode/TitilliumWeb-Regular.ttf b/demos/gui/rich_text_bbcode/TitilliumWeb-Regular.ttf
new file mode 100644
index 0000000000..6da821935d
--- /dev/null
+++ b/demos/gui/rich_text_bbcode/TitilliumWeb-Regular.ttf
Binary files differ
diff --git a/demos/gui/rich_text_bbcode/engine.cfg b/demos/gui/rich_text_bbcode/engine.cfg
new file mode 100644
index 0000000000..5f68b6a0e6
--- /dev/null
+++ b/demos/gui/rich_text_bbcode/engine.cfg
@@ -0,0 +1,5 @@
+[application]
+
+name="Rich Text Label (BBCode)"
+main_scene="res://rich_text_bbcode.scn"
+icon="res://icon.png"
diff --git a/demos/gui/rich_text_bbcode/icon.png b/demos/gui/rich_text_bbcode/icon.png
new file mode 100644
index 0000000000..6db48a3a9b
--- /dev/null
+++ b/demos/gui/rich_text_bbcode/icon.png
Binary files differ
diff --git a/demos/gui/rich_text_bbcode/rich_text_bbcode.gd b/demos/gui/rich_text_bbcode/rich_text_bbcode.gd
new file mode 100644
index 0000000000..30fac1f729
--- /dev/null
+++ b/demos/gui/rich_text_bbcode/rich_text_bbcode.gd
@@ -0,0 +1,17 @@
+
+extends Panel
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+
+func _ready():
+ # Initialization here
+ pass
+
+
+
+
+func _on_RichTextLabel_meta_clicked( meta ):
+ OS.shell_open(meta)
+ pass # replace with function body
diff --git a/demos/gui/rich_text_bbcode/rich_text_bbcode.scn b/demos/gui/rich_text_bbcode/rich_text_bbcode.scn
new file mode 100644
index 0000000000..ca02044bb8
--- /dev/null
+++ b/demos/gui/rich_text_bbcode/rich_text_bbcode.scn
Binary files differ
diff --git a/demos/gui/rich_text_bbcode/titilium-bold.fnt b/demos/gui/rich_text_bbcode/titilium-bold.fnt
new file mode 100644
index 0000000000..7920ca743d
--- /dev/null
+++ b/demos/gui/rich_text_bbcode/titilium-bold.fnt
Binary files differ
diff --git a/demos/gui/rich_text_bbcode/titilium-bolditalic.fnt b/demos/gui/rich_text_bbcode/titilium-bolditalic.fnt
new file mode 100644
index 0000000000..cc2d650d08
--- /dev/null
+++ b/demos/gui/rich_text_bbcode/titilium-bolditalic.fnt
Binary files differ
diff --git a/demos/gui/rich_text_bbcode/titilium-italic.fnt b/demos/gui/rich_text_bbcode/titilium-italic.fnt
new file mode 100644
index 0000000000..f2e8edf2c2
--- /dev/null
+++ b/demos/gui/rich_text_bbcode/titilium-italic.fnt
Binary files differ
diff --git a/demos/gui/rich_text_bbcode/titilium-regular.fnt b/demos/gui/rich_text_bbcode/titilium-regular.fnt
new file mode 100644
index 0000000000..fc3b789e11
--- /dev/null
+++ b/demos/gui/rich_text_bbcode/titilium-regular.fnt
Binary files differ
diff --git a/demos/gui/rich_text_bbcode/unicorn_icon.png b/demos/gui/rich_text_bbcode/unicorn_icon.png
new file mode 100644
index 0000000000..a14517e12b
--- /dev/null
+++ b/demos/gui/rich_text_bbcode/unicorn_icon.png
Binary files differ
diff --git a/demos/gui/translation/controls.gd b/demos/gui/translation/controls.gd
new file mode 100644
index 0000000000..f8403f49a7
--- /dev/null
+++ b/demos/gui/translation/controls.gd
@@ -0,0 +1,20 @@
+
+extends Panel
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+
+func _ready():
+ # Initialization here
+ pass
+
+
+
+
+func _on_back_pressed():
+ var s = load("res://main.scn")
+ var si = s.instance()
+ get_parent().add_child(si)
+ queue_free()
+ pass # replace with function body
diff --git a/demos/gui/translation/controls.scn b/demos/gui/translation/controls.scn
new file mode 100644
index 0000000000..66e6d47702
--- /dev/null
+++ b/demos/gui/translation/controls.scn
Binary files differ
diff --git a/demos/gui/translation/engine.cfg b/demos/gui/translation/engine.cfg
new file mode 100644
index 0000000000..dcd3d1983d
--- /dev/null
+++ b/demos/gui/translation/engine.cfg
@@ -0,0 +1,10 @@
+[application]
+
+name="Translation Demo"
+main_scene="res://main.scn"
+icon="res://icon.png"
+
+[locale]
+
+translations=["res://translations/text.en.xl", "res://translations/text.es.xl", "res://translations/text.ja.xl"]
+translation_remaps={"res://flag_uk.png":["res://flag_spain.png:es", "res://flag_japan.png:ja"]}
diff --git a/demos/gui/translation/flag_japan.png b/demos/gui/translation/flag_japan.png
new file mode 100644
index 0000000000..4cc8267a5c
--- /dev/null
+++ b/demos/gui/translation/flag_japan.png
Binary files differ
diff --git a/demos/gui/translation/flag_spain.png b/demos/gui/translation/flag_spain.png
new file mode 100644
index 0000000000..4d00f93593
--- /dev/null
+++ b/demos/gui/translation/flag_spain.png
Binary files differ
diff --git a/demos/gui/translation/flag_uk.png b/demos/gui/translation/flag_uk.png
new file mode 100644
index 0000000000..53fbef3d67
--- /dev/null
+++ b/demos/gui/translation/flag_uk.png
Binary files differ
diff --git a/demos/gui/translation/icon.png b/demos/gui/translation/icon.png
new file mode 100644
index 0000000000..4be5ac1127
--- /dev/null
+++ b/demos/gui/translation/icon.png
Binary files differ
diff --git a/demos/gui/translation/main.gd b/demos/gui/translation/main.gd
new file mode 100644
index 0000000000..bf3c0c0840
--- /dev/null
+++ b/demos/gui/translation/main.gd
@@ -0,0 +1,42 @@
+
+extends Panel
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+
+func _ready():
+ # Initialization here
+ pass
+
+
+
+func _goto_scene():
+ var s = load("res://controls.scn")
+ var si = s.instance()
+ get_parent().add_child(si)
+ queue_free()
+ pass
+
+
+func _on_system_pressed():
+ #will autodetect based on system, then fall back
+ #to english if not found
+ _goto_scene()
+
+#NOTE: Changling locale will not change the text in the controls,
+# The scene must be reloaded for changes to take effect.
+
+func _on_english_pressed():
+ TranslationServer.set_locale("en")
+ _goto_scene()
+
+
+func _on_spanish_pressed():
+ TranslationServer.set_locale("es")
+ _goto_scene()
+
+
+func _on_japanese_pressed():
+ TranslationServer.set_locale("ja")
+ _goto_scene()
diff --git a/demos/gui/translation/main.scn b/demos/gui/translation/main.scn
new file mode 100644
index 0000000000..76c9ba7b45
--- /dev/null
+++ b/demos/gui/translation/main.scn
Binary files differ
diff --git a/demos/gui/translation/noto.fnt b/demos/gui/translation/noto.fnt
new file mode 100644
index 0000000000..e019615f41
--- /dev/null
+++ b/demos/gui/translation/noto.fnt
Binary files differ
diff --git a/demos/gui/translation/notosans.otf b/demos/gui/translation/notosans.otf
new file mode 100644
index 0000000000..6443f9023e
--- /dev/null
+++ b/demos/gui/translation/notosans.otf
Binary files differ
diff --git a/demos/gui/translation/text.csv b/demos/gui/translation/text.csv
new file mode 100644
index 0000000000..0f4c148b95
--- /dev/null
+++ b/demos/gui/translation/text.csv
@@ -0,0 +1,3 @@
+,en,es,ja
+KEY_HELLO,Hello!,Hola!,こんにちは
+KEY_PUSH,Push Me!,Aprétame!,私をプッシュ \ No newline at end of file
diff --git a/demos/gui/translation/translations/text.en.xl b/demos/gui/translation/translations/text.en.xl
new file mode 100644
index 0000000000..7bcba63e71
--- /dev/null
+++ b/demos/gui/translation/translations/text.en.xl
Binary files differ
diff --git a/demos/gui/translation/translations/text.es.xl b/demos/gui/translation/translations/text.es.xl
new file mode 100644
index 0000000000..4474d955d5
--- /dev/null
+++ b/demos/gui/translation/translations/text.es.xl
Binary files differ
diff --git a/demos/gui/translation/translations/text.ja.xl b/demos/gui/translation/translations/text.ja.xl
new file mode 100644
index 0000000000..b3d1f0bf60
--- /dev/null
+++ b/demos/gui/translation/translations/text.ja.xl
Binary files differ
diff --git a/demos/misc/autoload/global.gd b/demos/misc/autoload/global.gd
index a0415c6ee0..d1bd45461f 100644
--- a/demos/misc/autoload/global.gd
+++ b/demos/misc/autoload/global.gd
@@ -4,20 +4,40 @@ extends Node
var current_scene = null
-func goto_scene(scene):
- #load new scene
- var s = ResourceLoader.load(scene)
- #queue erasing old (don't use free because that scene is calling this method)
- current_scene.queue_free()
- #instance the new scene
+func goto_scene(path):
+
+ # This function will usually be called from a signal callback,
+ # or some other function from the running scene.
+ # Deleting the current scene at this point might be
+ # a bad idea, because it may be inside of a callback or function of it.
+ # The worst case will be a crash or unexpected behavior.
+
+ # The way around this is deferring the load to a later time, when
+ # it is ensured that no code from the current scene is running:
+
+ call_deferred("_deferred_goto_scene",path)
+
+
+func _deferred_goto_scene(path):
+
+ # Immediately free the current scene,
+ # there is no risk here.
+ current_scene.free()
+
+ # Load new scene
+ var s = ResourceLoader.load(path)
+
+ # Instance the new scene
current_scene = s.instance()
- #add it to the active scene, as child of root
+
+ # Add it to the active scene, as child of root
get_tree().get_root().add_child(current_scene)
func _ready():
- # get the current scene
+ # Get the current scene, the first time.
# it is always the last child of root,
- # after the autoloaded nodes
+ # after the autoloaded nodes.
+
var root = get_tree().get_root()
current_scene = root.get_child( root.get_child_count() -1 )
diff --git a/demos/misc/instancing/engine.cfg b/demos/misc/instancing/engine.cfg
index 52a28a3fce..76b0c97721 100644
--- a/demos/misc/instancing/engine.cfg
+++ b/demos/misc/instancing/engine.cfg
@@ -2,6 +2,7 @@
name="Scene Instancing Demo"
main_scene="res://container.scn"
+icon="res://icon.png"
[physics_2d]
diff --git a/demos/misc/instancing/icon.png b/demos/misc/instancing/icon.png
new file mode 100644
index 0000000000..79a4283de7
--- /dev/null
+++ b/demos/misc/instancing/icon.png
Binary files differ
diff --git a/demos/misc/regex/engine.cfg b/demos/misc/regex/engine.cfg
new file mode 100644
index 0000000000..ef5483e096
--- /dev/null
+++ b/demos/misc/regex/engine.cfg
@@ -0,0 +1,5 @@
+[application]
+
+name="RegEx"
+main_scene="res://regex.scn"
+icon="res://icon.png"
diff --git a/demos/misc/regex/icon.png b/demos/misc/regex/icon.png
new file mode 100644
index 0000000000..7a5232ec4b
--- /dev/null
+++ b/demos/misc/regex/icon.png
Binary files differ
diff --git a/demos/misc/regex/regex.gd b/demos/misc/regex/regex.gd
new file mode 100644
index 0000000000..409b4cab05
--- /dev/null
+++ b/demos/misc/regex/regex.gd
@@ -0,0 +1,24 @@
+extends VBoxContainer
+
+var regex = RegEx.new()
+
+func update_expression(text):
+ regex.compile(text)
+ update_text()
+
+func update_text():
+ var text = get_node("Text").get_text()
+ var list = get_node("List")
+ for child in list.get_children():
+ child.queue_free()
+ if regex.is_valid():
+ regex.find(text)
+ for res in regex.get_captures():
+ var label = Label.new()
+ label.set_text(res)
+ list.add_child(label)
+
+func _ready():
+ get_node("Text").set_text("They asked me \"What's going on \\\"in the manor\\\"?\"")
+ update_expression(get_node("Expression").get_text())
+
diff --git a/demos/misc/regex/regex.scn b/demos/misc/regex/regex.scn
new file mode 100644
index 0000000000..1f46521d0d
--- /dev/null
+++ b/demos/misc/regex/regex.scn
Binary files differ
diff --git a/demos/misc/scene_changer/engine.cfg b/demos/misc/scene_changer/engine.cfg
new file mode 100644
index 0000000000..1ba1a41167
--- /dev/null
+++ b/demos/misc/scene_changer/engine.cfg
@@ -0,0 +1,4 @@
+[application]
+
+name="Scene Changer"
+main_scene="res://scene_a.scn"
diff --git a/demos/misc/scene_changer/scene_a.gd b/demos/misc/scene_changer/scene_a.gd
new file mode 100644
index 0000000000..956878b0f7
--- /dev/null
+++ b/demos/misc/scene_changer/scene_a.gd
@@ -0,0 +1,17 @@
+
+extends Panel
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+
+func _ready():
+ # Initalization here
+ pass
+
+
+
+
+func _on_goto_scene_pressed():
+ get_tree().change_scene("res://scene_b.scn")
+ pass # replace with function body
diff --git a/demos/misc/scene_changer/scene_a.scn b/demos/misc/scene_changer/scene_a.scn
new file mode 100644
index 0000000000..61727a57ba
--- /dev/null
+++ b/demos/misc/scene_changer/scene_a.scn
Binary files differ
diff --git a/demos/misc/scene_changer/scene_b.gd b/demos/misc/scene_changer/scene_b.gd
new file mode 100644
index 0000000000..4f94d6bb8f
--- /dev/null
+++ b/demos/misc/scene_changer/scene_b.gd
@@ -0,0 +1,17 @@
+
+extends Panel
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+
+func _ready():
+ # Initalization here
+ pass
+
+
+
+
+func _on_goto_scene_pressed():
+ get_tree().change_scene("res://scene_a.scn")
+ pass # replace with function body
diff --git a/demos/misc/scene_changer/scene_b.scn b/demos/misc/scene_changer/scene_b.scn
new file mode 100644
index 0000000000..ae09eeff88
--- /dev/null
+++ b/demos/misc/scene_changer/scene_b.scn
Binary files differ
diff --git a/demos/misc/tween/engine.cfg b/demos/misc/tween/engine.cfg
index f97e540dbd..3d3d639964 100644
--- a/demos/misc/tween/engine.cfg
+++ b/demos/misc/tween/engine.cfg
@@ -2,7 +2,7 @@
name="Tween Demo"
main_scene="res://main.xml"
-icon="icon.png"
+icon="res://icon.png"
target_fps=60
[display]
diff --git a/demos/misc/tween/icon.png b/demos/misc/tween/icon.png
index 3e991fcc29..ed55c24140 100644
--- a/demos/misc/tween/icon.png
+++ b/demos/misc/tween/icon.png
Binary files differ
diff --git a/demos/misc/tween/main.gd b/demos/misc/tween/main.gd
index 364651c827..a0106a7682 100644
--- a/demos/misc/tween/main.gd
+++ b/demos/misc/tween/main.gd
@@ -112,8 +112,8 @@ func reset_tween():
tween.interpolate_property(sprite, "transform/rot", 360, 0, 2, state.trans, state.eases, 2)
if get_node("modes/callback").is_pressed():
- tween.interpolate_callback(self, "on_callback", 0.5, "0.5 second's after")
- tween.interpolate_callback(self, "on_callback", 1.2, "1.2 second's after")
+ tween.interpolate_callback(self, 0.5, "on_callback", "0.5 second's after")
+ tween.interpolate_callback(self, 0.2, "on_callback", "1.2 second's after")
if get_node("modes/follow").is_pressed():
follow.show()
diff --git a/demos/misc/window_management/control.gd b/demos/misc/window_management/control.gd
new file mode 100644
index 0000000000..1609dda699
--- /dev/null
+++ b/demos/misc/window_management/control.gd
@@ -0,0 +1,185 @@
+
+extends Control
+
+var mousepos
+
+func _fixed_process(delta):
+
+ var modetext = "Mode:\n"
+
+ if(OS.is_window_fullscreen()):
+ modetext += "Fullscreen\n"
+ else:
+ modetext += "Windowed\n"
+
+ if(!OS.is_window_resizable()):
+ modetext += "FixedSize\n"
+
+ if(OS.is_window_minimized()):
+ modetext += "Minimized\n"
+
+ if(OS.is_window_maximized()):
+ modetext += "Maximized\n"
+
+ if(Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED):
+ modetext += "MouseGrab\n"
+ get_node("Label_MouseGrab_KeyInfo").show()
+ else:
+ get_node("Label_MouseGrab_KeyInfo").hide()
+
+ get_node("Label_Mode").set_text(modetext)
+
+ get_node("Label_Position").set_text( str("Position:\n", OS.get_window_position() ) )
+
+ get_node("Label_Size").set_text(str("Size:\n", OS.get_window_size() ) )
+
+ get_node("Label_MousePosition").set_text(str("Mouse Position:\n", mousepos ) )
+
+ get_node("Label_Screen_Count").set_text( str("Screen_Count:\n", OS.get_screen_count() ) )
+
+ get_node("Label_Screen_Current").set_text( str("Screen:\n", OS.get_current_screen() ) )
+
+ get_node("Label_Screen0_Resolution").set_text( str("Screen0 Resolution:\n", OS.get_screen_size() ) )
+
+ get_node("Label_Screen0_Position").set_text(str("Screen0 Position:\n",OS.get_screen_position() ) )
+
+ if(OS.get_screen_count() > 1):
+ get_node("Button_Screen0").show()
+ get_node("Button_Screen1").show()
+ get_node("Label_Screen1_Resolution").show()
+ get_node("Label_Screen1_Position").show()
+ get_node("Label_Screen1_Resolution").set_text( str("Screen1 Resolution:\n", OS.get_screen_size(1) ) )
+ get_node("Label_Screen1_Position").set_text( str("Screen1 Position:\n", OS.get_screen_position(1) ) )
+ else:
+ get_node("Button_Screen0").hide()
+ get_node("Button_Screen1").hide()
+ get_node("Label_Screen1_Resolution").hide()
+ get_node("Label_Screen1_Position").hide()
+
+ get_node("Button_Fullscreen").set_pressed( OS.is_window_fullscreen() )
+ get_node("Button_FixedSize").set_pressed( !OS.is_window_resizable() )
+ get_node("Button_Minimized").set_pressed( OS.is_window_minimized() )
+ get_node("Button_Maximized").set_pressed( OS.is_window_maximized() )
+ get_node("Button_Mouse_Grab").set_pressed( Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED )
+
+
+func check_wm_api():
+ var s = ""
+ if( !OS.has_method("get_screen_count") ):
+ s += " - get_screen_count()\n"
+
+ if( !OS.has_method("get_current_screen") ):
+ s += " - get_current_screen()\n"
+
+ if( !OS.has_method("set_current_screen") ):
+ s += " - set_current_screen()\n"
+
+ if( !OS.has_method("get_screen_position") ):
+ s += " - get_screen_position()\n"
+
+ if( !OS.has_method("get_screen_size") ):
+ s += " - get_screen_size()\n"
+
+ if( !OS.has_method("get_window_position") ):
+ s += " - get_window_position()\n"
+
+ if( !OS.has_method("set_window_position") ):
+ s += " - set_window_position()\n"
+
+ if( !OS.has_method("get_window_size") ):
+ s += " - get_window_size()\n"
+
+ if( !OS.has_method("set_window_size") ):
+ s += " - set_window_size()\n"
+
+ if( !OS.has_method("set_window_fullscreen") ):
+ s += " - set_window_fullscreen()\n"
+
+ if( !OS.has_method("is_window_fullscreen") ):
+ s += " - is_window_fullscreen()\n"
+
+ if( !OS.has_method("set_window_resizable") ):
+ s += " - set_window_resizable()\n"
+
+ if( !OS.has_method("is_window_resizable") ):
+ s += " - is_window_resizable()\n"
+
+ if( !OS.has_method("set_window_minimized") ):
+ s += " - set_window_minimized()\n"
+
+ if( !OS.has_method("is_window_minimized") ):
+ s += " - is_window_minimized()\n"
+
+ if( !OS.has_method("set_window_maximized") ):
+ s += " - set_window_maximized()\n"
+
+ if( !OS.has_method("is_window_maximized") ):
+ s += " - is_window_maximized()\n"
+
+ if( s.length() == 0 ):
+ return true
+ else:
+ var text = get_node("ImplementationDialog/Text").get_text()
+ get_node("ImplementationDialog/Text").set_text( text + s )
+ get_node("ImplementationDialog").show()
+ return false
+
+
+func _ready():
+ if( check_wm_api() ):
+ set_fixed_process(true)
+ set_process_input(true)
+
+
+func _input(ev):
+ if (ev.type==InputEvent.MOUSE_MOTION):
+ mousepos = ev.pos
+
+
+func _on_Button_MoveTo_pressed():
+ OS.set_window_position( Vector2(100,100) )
+
+
+func _on_Button_Resize_pressed():
+ OS.set_window_size( Vector2(1024,768) )
+
+
+func _on_Button_Screen0_pressed():
+ OS.set_current_screen(0)
+
+
+func _on_Button_Screen1_pressed():
+ OS.set_current_screen(1)
+
+
+func _on_Button_Fullscreen_pressed():
+ if(OS.is_window_fullscreen()):
+ OS.set_window_fullscreen(false)
+ else:
+ OS.set_window_fullscreen(true)
+
+
+func _on_Button_FixedSize_pressed():
+ if(OS.is_window_resizable()):
+ OS.set_window_resizable(false)
+ else:
+ OS.set_window_resizable(true)
+
+
+func _on_Button_Minimized_pressed():
+ if(OS.is_window_minimized()):
+ OS.set_window_minimized(false)
+ else:
+ OS.set_window_minimized(true)
+
+
+func _on_Button_Maximized_pressed():
+ if(OS.is_window_maximized()):
+ OS.set_window_maximized(false)
+ else:
+ OS.set_window_maximized(true)
+
+
+func _on_Button_Mouse_Grab_pressed():
+ var observer = get_node("../Observer")
+ observer.state = observer.STATE_GRAB
diff --git a/demos/misc/window_management/engine.cfg b/demos/misc/window_management/engine.cfg
new file mode 100644
index 0000000000..911d3fd4a1
--- /dev/null
+++ b/demos/misc/window_management/engine.cfg
@@ -0,0 +1,19 @@
+[application]
+
+name="Window Management"
+main_scene="res://window_management.scn"
+icon="res://icon.png"
+
+[display]
+
+fullscreen=false
+resizable=true
+width=800
+height=600
+
+[input]
+
+move_forward=[key(W)]
+move_backwards=[key(S)]
+move_left=[key(A)]
+move_right=[key(D)]
diff --git a/demos/misc/window_management/icon.png b/demos/misc/window_management/icon.png
new file mode 100644
index 0000000000..ec5c7891f9
--- /dev/null
+++ b/demos/misc/window_management/icon.png
Binary files differ
diff --git a/demos/misc/window_management/observer/observer.gd b/demos/misc/window_management/observer/observer.gd
new file mode 100644
index 0000000000..d27912a670
--- /dev/null
+++ b/demos/misc/window_management/observer/observer.gd
@@ -0,0 +1,79 @@
+
+extends Spatial
+
+var r_pos = Vector2()
+var state
+
+const STATE_MENU=0
+const STATE_GRAB=1
+
+func direction(vector):
+ var v = get_node("Camera").get_global_transform().basis * vector
+ v = v.normalized()
+
+ return v
+
+
+func impulse(event, action):
+ if(event.is_action(action) && event.is_pressed() && !event.is_echo()):
+ return true
+ else:
+ return false
+
+
+func _fixed_process(delta):
+
+ if(state != STATE_GRAB):
+ return
+
+ if(Input.get_mouse_mode() != Input.MOUSE_MODE_CAPTURED):
+ Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
+
+ var dir = Vector3()
+ var cam = get_global_transform()
+ var org = get_translation()
+
+ if (Input.is_action_pressed("move_forward")):
+ dir += direction(Vector3(0,0,-1))
+ if (Input.is_action_pressed("move_backwards")):
+ dir += direction(Vector3(0,0,1))
+ if (Input.is_action_pressed("move_left")):
+ dir += direction(Vector3(-1,0,0))
+ if (Input.is_action_pressed("move_right")):
+ dir += direction(Vector3(1,0,0))
+
+ dir = dir.normalized()
+
+ move(dir * 10 * delta)
+ var d = delta * 0.1
+
+ var yaw = get_transform().rotated(Vector3(0,1,0), d * r_pos.x)
+ set_transform(yaw)
+
+ var cam = get_node("Camera")
+ var pitch = cam.get_transform().rotated(Vector3(1,0,0), d * r_pos.y)
+ cam.set_transform(pitch)
+
+ r_pos.x = 0.0
+ r_pos.y = 0.0
+
+
+func _input( event ):
+ if(event.type == InputEvent.MOUSE_MOTION):
+ r_pos = event.relative_pos
+
+ if(impulse(event, "ui_cancel")):
+ if(state == STATE_GRAB):
+ Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
+ state = STATE_MENU
+ else:
+ Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
+ state = STATE_GRAB
+
+
+func _ready():
+ set_fixed_process(true)
+ set_process_input(true)
+
+ state = STATE_MENU
+
diff --git a/demos/misc/window_management/observer/observer.scn b/demos/misc/window_management/observer/observer.scn
new file mode 100644
index 0000000000..da29ad62b8
--- /dev/null
+++ b/demos/misc/window_management/observer/observer.scn
Binary files differ
diff --git a/demos/misc/window_management/window_management.scn b/demos/misc/window_management/window_management.scn
new file mode 100644
index 0000000000..8db43b6638
--- /dev/null
+++ b/demos/misc/window_management/window_management.scn
Binary files differ
diff --git a/demos/viewport/3d_in_2d/engine.cfg b/demos/viewport/3d_in_2d/engine.cfg
index cc893361b5..6d456d7bd4 100644
--- a/demos/viewport/3d_in_2d/engine.cfg
+++ b/demos/viewport/3d_in_2d/engine.cfg
@@ -2,3 +2,4 @@
name="3D in 2D"
main_scene="res://main.scn"
+icon="res://icon.png"
diff --git a/demos/viewport/3d_in_2d/icon.png b/demos/viewport/3d_in_2d/icon.png
new file mode 100644
index 0000000000..d8a332c18f
--- /dev/null
+++ b/demos/viewport/3d_in_2d/icon.png
Binary files differ
diff --git a/demos/viewport/gui_in_3d/engine.cfg b/demos/viewport/gui_in_3d/engine.cfg
index 25a6636132..252e53ca33 100644
--- a/demos/viewport/gui_in_3d/engine.cfg
+++ b/demos/viewport/gui_in_3d/engine.cfg
@@ -2,3 +2,4 @@
name="GUI in 3D"
main_scene="res://gui_3d.scn"
+icon="res://icon.png"
diff --git a/demos/viewport/gui_in_3d/gui_3d.gd b/demos/viewport/gui_in_3d/gui_3d.gd
index 5309db9acb..c2a9df0069 100644
--- a/demos/viewport/gui_in_3d/gui_3d.gd
+++ b/demos/viewport/gui_in_3d/gui_3d.gd
@@ -7,38 +7,39 @@ extends Spatial
var prev_pos=null
-func _input(ev):
- if (ev.type in [InputEvent.MOUSE_BUTTON,InputEvent.MOUSE_MOTION]):
- var pos = ev.pos
- var rfrom = get_node("camera").project_ray_origin(pos)
- var rnorm = get_node("camera").project_ray_normal(pos)
+
+func _input( ev ):
+ #all other (non-mouse) events
+ if (not ev.type in [InputEvent.MOUSE_BUTTON,InputEvent.MOUSE_MOTION,InputEvent.SCREEN_DRAG,InputEvent.SCREEN_TOUCH]):
+ get_node("viewport").input(ev)
- #simple collision test against aligned plane
- #for game UIs of this kind consider more complex collision against plane
- var p = Plane(Vector3(0,0,1),0).intersects_ray(rfrom,rnorm)
- if (p==null):
- return
-
- pos.x=(p.x+1.5)*100
- pos.y=(-p.y+0.75)*100
- ev.pos=pos
- ev.global_pos=pos
- if (prev_pos==null):
- prev_pos=pos
- if (ev.type==InputEvent.MOUSE_MOTION):
- ev.relative_pos=pos-prev_pos
+
+#mouse events for area
+func _on_area_input_event( camera, ev, click_pos, click_normal, shape_idx ):
+
+ #use click pos (click in 3d space, convert to area space
+ var pos = get_node("area").get_global_transform().affine_inverse() * click_pos
+ #convert to 2D
+ pos = Vector2(pos.x,pos.y)
+ #convert to viewport coordinate system
+ pos.x=(pos.x+1.5)*100
+ pos.y=(-pos.y+0.75)*100
+ #set to event
+ ev.pos=pos
+ ev.global_pos=pos
+ if (prev_pos==null):
prev_pos=pos
+ if (ev.type==InputEvent.MOUSE_MOTION):
+ ev.relative_pos=pos-prev_pos
+ prev_pos=pos
get_node("viewport").input(ev)
-
-
+
func _ready():
# Initalization here
- get_node("quad").get_material_override().set_texture(FixedMaterial.PARAM_DIFFUSE, get_node("viewport").get_render_target_texture() )
+ get_node("area/quad").get_material_override().set_texture(FixedMaterial.PARAM_DIFFUSE, get_node("viewport").get_render_target_texture() )
set_process_input(true)
-
pass
-
diff --git a/demos/viewport/gui_in_3d/gui_3d.scn b/demos/viewport/gui_in_3d/gui_3d.scn
index df8f7d6dc5..c69d4dc73f 100644
--- a/demos/viewport/gui_in_3d/gui_3d.scn
+++ b/demos/viewport/gui_in_3d/gui_3d.scn
Binary files differ
diff --git a/demos/viewport/gui_in_3d/icon.png b/demos/viewport/gui_in_3d/icon.png
new file mode 100644
index 0000000000..22bdd791bb
--- /dev/null
+++ b/demos/viewport/gui_in_3d/icon.png
Binary files differ
diff --git a/demos/viewport/screen_capture/engine.cfg b/demos/viewport/screen_capture/engine.cfg
new file mode 100644
index 0000000000..a843242720
--- /dev/null
+++ b/demos/viewport/screen_capture/engine.cfg
@@ -0,0 +1,9 @@
+[application]
+
+name="Screen Capturing"
+main_scene="res://screen_capture.scn"
+icon="res://icon.png"
+
+[display]
+
+stretch_mode="2d"
diff --git a/demos/viewport/screen_capture/icon.png b/demos/viewport/screen_capture/icon.png
new file mode 100644
index 0000000000..a696824775
--- /dev/null
+++ b/demos/viewport/screen_capture/icon.png
Binary files differ
diff --git a/demos/viewport/screen_capture/mountains.png b/demos/viewport/screen_capture/mountains.png
new file mode 100644
index 0000000000..b8435bb1a8
--- /dev/null
+++ b/demos/viewport/screen_capture/mountains.png
Binary files differ
diff --git a/demos/viewport/screen_capture/screen_capture.gd b/demos/viewport/screen_capture/screen_capture.gd
new file mode 100644
index 0000000000..69f16fa498
--- /dev/null
+++ b/demos/viewport/screen_capture/screen_capture.gd
@@ -0,0 +1,27 @@
+
+extends Control
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+
+func _ready():
+ # Initialization here
+ pass
+
+
+
+
+func _on_button_pressed():
+ get_viewport().queue_screen_capture()
+ #let two frames pass to make sure the screen was aptured
+ yield(get_tree(),"idle_frame")
+ yield(get_tree(),"idle_frame")
+ #retrieve the captured image
+ var img = get_viewport().get_screen_capture()
+ #create a texture for it
+ var tex = ImageTexture.new()
+ tex.create_from_image(img)
+ #set it to the capture node
+ get_node("capture").set_texture(tex)
+ pass # replace with function body
diff --git a/demos/viewport/screen_capture/screen_capture.scn b/demos/viewport/screen_capture/screen_capture.scn
new file mode 100644
index 0000000000..d204e3b67e
--- /dev/null
+++ b/demos/viewport/screen_capture/screen_capture.scn
Binary files differ