summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore8
-rw-r--r--SConstruct1
-rw-r--r--core/array.cpp18
-rw-r--r--core/array.h6
-rw-r--r--core/bind/core_bind.cpp2
-rw-r--r--core/dictionary.cpp15
-rw-r--r--core/globals.cpp6
-rw-r--r--core/io/aes256.cpp170
-rw-r--r--core/io/packet_peer.cpp2
-rw-r--r--core/io/resource_format_binary.cpp4
-rw-r--r--core/io/stream_peer.cpp299
-rw-r--r--core/io/stream_peer.h38
-rw-r--r--core/math/geometry.h31
-rw-r--r--core/object.cpp6
-rw-r--r--core/os/os.h3
-rw-r--r--core/resource.h2
-rw-r--r--core/ring_buffer.h6
-rw-r--r--core/typedefs.h12
-rw-r--r--core/undo_redo.cpp4
-rw-r--r--core/ustring.cpp22
-rw-r--r--core/variant_call.cpp13
-rw-r--r--core/variant_op.cpp2
-rw-r--r--core/variant_parser.cpp13
-rw-r--r--core/vector.h38
-rw-r--r--demos/2d/area_input/input.gd17
-rw-r--r--demos/2d/area_input/input.scnbin2886 -> 3118 bytes
-rw-r--r--demos/2d/dynamic_collision_shapes/ball.gd18
-rw-r--r--demos/2d/dynamic_collision_shapes/ball.scnbin1898 -> 1857 bytes
-rw-r--r--demos/2d/dynamic_collision_shapes/dynamic_colobjs.gd24
-rw-r--r--demos/2d/dynamic_collision_shapes/dynamic_colobjs.scnbin4348 -> 4399 bytes
-rw-r--r--demos/2d/fog_of_war/fog.gd92
-rw-r--r--demos/2d/fog_of_war/fog.scnbin3714 -> 4159 bytes
-rw-r--r--demos/2d/fog_of_war/tile_edit.scnbin1443 -> 1570 bytes
-rw-r--r--demos/2d/fog_of_war/troll.gd33
-rw-r--r--demos/2d/fog_of_war/troll.scnbin1839 -> 1979 bytes
-rw-r--r--demos/2d/hdr/beach_cave.gd29
-rw-r--r--demos/2d/hdr/beach_cave.scnbin2972 -> 4834 bytes
-rw-r--r--demos/2d/hexamap/map.scnbin2644 -> 3517 bytes
-rw-r--r--demos/2d/hexamap/tiles.scnbin2091 -> 2217 bytes
-rw-r--r--demos/2d/hexamap/troll.gd31
-rw-r--r--demos/2d/hexamap/troll.scnbin1839 -> 1983 bytes
-rw-r--r--demos/2d/isometric/dungeon.scnbin8743 -> 4708 bytes
-rw-r--r--demos/2d/isometric/tileset.scnbin2565 -> 4476 bytes
-rw-r--r--demos/2d/isometric/troll.gd31
-rw-r--r--demos/2d/isometric/troll.scnbin2100 -> 2116 bytes
-rw-r--r--demos/2d/isometric_light/column.scnbin1909 -> 2026 bytes
-rw-r--r--demos/2d/isometric_light/cubio.gd117
-rw-r--r--demos/2d/isometric_light/cubio.scnbin7006 -> 6952 bytes
-rw-r--r--demos/2d/isometric_light/map.gd15
-rw-r--r--demos/2d/isometric_light/map.scnbin8661 -> 9352 bytes
-rw-r--r--demos/2d/isometric_light/shoot.gd20
-rw-r--r--demos/2d/isometric_light/shoot.scnbin4561 -> 4111 bytes
-rw-r--r--demos/2d/isometric_light/tileset_scene.scnbin4812 -> 5339 bytes
-rw-r--r--demos/2d/isometric_light/torch.scnbin4416 -> 3861 bytes
-rw-r--r--demos/2d/kinematic_char/colworld.gd16
-rw-r--r--demos/2d/kinematic_char/colworld.scnbin7459 -> 7366 bytes
-rw-r--r--demos/2d/kinematic_char/engine.cfg2
-rw-r--r--demos/2d/kinematic_char/player.gd168
-rw-r--r--demos/2d/kinematic_char/player.scnbin1728 -> 1703 bytes
-rw-r--r--demos/2d/kinematic_col/colworld.scnbin2941 -> 4073 bytes
-rw-r--r--demos/2d/kinematic_col/player.gd23
-rw-r--r--demos/2d/kinematic_col/player.scnbin1495 -> 1625 bytes
-rw-r--r--demos/2d/light_mask/lightmask.scnbin2916 -> 3829 bytes
-rw-r--r--demos/2d/lights_shadows/light_shadows.scnbin7181 -> 4978 bytes
-rw-r--r--demos/2d/lookat/lookat.gd38
-rw-r--r--demos/2d/lookat/lookat.scnbin1622 -> 1640 bytes
-rw-r--r--demos/2d/motion/motion.gd35
-rw-r--r--demos/2d/motion/motion.scnbin2845 -> 2738 bytes
-rw-r--r--demos/2d/navpoly/navigation.gd64
-rw-r--r--demos/2d/navpoly/navigation.scnbin3456 -> 5128 bytes
-rw-r--r--demos/2d/navpoly/navigation2.scnbin3564 -> 0 bytes
-rw-r--r--demos/2d/normalmaps/normalmap.scnbin2450 -> 3168 bytes
-rw-r--r--demos/2d/particles/particles.xml265
-rw-r--r--demos/2d/platformer/bullet.gd13
-rw-r--r--demos/2d/platformer/bullet.xml273
-rw-r--r--demos/2d/platformer/coin.gd19
-rw-r--r--demos/2d/platformer/coin.xml293
-rw-r--r--demos/2d/platformer/enemy.gd91
-rw-r--r--demos/2d/platformer/enemy.xml98
-rw-r--r--demos/2d/platformer/moving_platform.gd21
-rw-r--r--demos/2d/platformer/moving_platform.xml214
-rw-r--r--demos/2d/platformer/one_way_platform.xml67
-rw-r--r--demos/2d/platformer/parallax_bg.xml258
-rw-r--r--demos/2d/platformer/player.gd237
-rw-r--r--demos/2d/platformer/player.xml202
-rw-r--r--demos/2d/platformer/seesaw.xml207
-rw-r--r--demos/2d/platformer/stage.xml843
-rw-r--r--demos/2d/platformer/tileset_edit.xml213
-rw-r--r--demos/2d/pong/pong.gd82
-rw-r--r--demos/2d/pong/pong.xml206
-rw-r--r--demos/2d/rubegoldberg/ball.xml210
-rw-r--r--demos/2d/rubegoldberg/box.xml242
-rw-r--r--demos/2d/rubegoldberg/domino.xml244
-rw-r--r--demos/2d/rubegoldberg/pendulum.xml210
-rw-r--r--demos/2d/rubegoldberg/platform.xml188
-rw-r--r--demos/2d/rubegoldberg/rubegoldberg.xml181
-rw-r--r--demos/2d/rubegoldberg/seesaw.xml266
-rw-r--r--demos/2d/screen_space_shaders/screen_shaders.gd19
-rw-r--r--demos/2d/screen_space_shaders/screen_shaders.scnbin5936 -> 7562 bytes
-rw-r--r--demos/2d/sdf_font/sdf.scnbin2415 -> 2820 bytes
-rw-r--r--demos/2d/shower_of_bullets/bullets.gd59
-rw-r--r--demos/2d/shower_of_bullets/shower.gd29
-rw-r--r--demos/2d/shower_of_bullets/shower.scnbin1836 -> 1909 bytes
-rw-r--r--demos/2d/space_shooter/asteroid.gd42
-rw-r--r--demos/2d/space_shooter/asteroid.scnbin4516 -> 3548 bytes
-rw-r--r--demos/2d/space_shooter/enemy1.gd29
-rw-r--r--demos/2d/space_shooter/enemy1.scnbin3759 -> 3369 bytes
-rw-r--r--demos/2d/space_shooter/enemy2.gd51
-rw-r--r--demos/2d/space_shooter/enemy2.scnbin3801 -> 3253 bytes
-rw-r--r--demos/2d/space_shooter/enemy_shot.gd19
-rw-r--r--demos/2d/space_shooter/enemy_shot.scnbin3944 -> 3218 bytes
-rw-r--r--demos/2d/space_shooter/explosion.scnbin1497 -> 1756 bytes
-rw-r--r--demos/2d/space_shooter/game_state.gd20
-rw-r--r--demos/2d/space_shooter/level.scnbin9185 -> 6496 bytes
-rw-r--r--demos/2d/space_shooter/level_tiles.scnbin2168 -> 1825 bytes
-rw-r--r--demos/2d/space_shooter/main_menu.gd13
-rw-r--r--demos/2d/space_shooter/main_menu.scnbin2402 -> 1903 bytes
-rw-r--r--demos/2d/space_shooter/parallax.scnbin3307 -> 2814 bytes
-rw-r--r--demos/2d/space_shooter/rail.gd18
-rw-r--r--demos/2d/space_shooter/ship.gd65
-rw-r--r--demos/2d/space_shooter/ship.scnbin6752 -> 4965 bytes
-rw-r--r--demos/2d/space_shooter/shot.gd34
-rw-r--r--demos/2d/space_shooter/shot.scnbin4079 -> 3315 bytes
-rw-r--r--demos/2d/splash/splash.xml338
-rw-r--r--demos/2d/sprite_shaders/sprite_shaders.scnbin4079 -> 5477 bytes
-rw-r--r--demos/2d/tetris/grid.gd219
-rw-r--r--demos/2d/tetris/grid.xml252
-rw-r--r--demos/2d/tetris/tetris.xml252
-rw-r--r--demos/2d/texscreen/bubbles.gd10
-rw-r--r--demos/2d/texscreen/bubbles.scnbin1551 -> 2626 bytes
-rw-r--r--demos/2d/texscreen/lens.gd45
-rw-r--r--demos/2d/texscreen/lens.scnbin1805 -> 1850 bytes
-rw-r--r--demos/3d/fixed_materials/fixed_materials.scnbin6071 -> 8271 bytes
-rw-r--r--demos/3d/kinematic_char/cubio.gd91
-rw-r--r--demos/3d/kinematic_char/follow_camera.gd62
-rw-r--r--demos/3d/kinematic_char/level.scnbin15523 -> 18847 bytes
-rw-r--r--demos/3d/kinematic_char/purplecube.scnbin9808 -> 7927 bytes
-rw-r--r--demos/3d/mousepick_test/mousepick.gd22
-rw-r--r--demos/3d/mousepick_test/mousepick.scnbin38194 -> 40434 bytes
-rw-r--r--demos/3d/navmesh/navmesh.gd103
-rw-r--r--demos/3d/navmesh/navmesh.scnbin38129 -> 40827 bytes
-rw-r--r--demos/3d/platformer/bullet.gd13
-rw-r--r--demos/3d/platformer/bullet.scnbin6157 -> 7303 bytes
-rw-r--r--demos/3d/platformer/coin.gd18
-rw-r--r--demos/3d/platformer/coin.scnbin6791 -> 7785 bytes
-rw-r--r--demos/3d/platformer/enemy.gd57
-rw-r--r--demos/3d/platformer/enemy.scnbin38594 -> 39181 bytes
-rw-r--r--demos/3d/platformer/engine.cfg2
-rw-r--r--demos/3d/platformer/follow_camera.gd89
-rw-r--r--demos/3d/platformer/player.gd210
-rw-r--r--demos/3d/platformer/player.scnbin0 -> 108067 bytes
-rw-r--r--demos/3d/platformer/player.xml1762
-rw-r--r--demos/3d/platformer/robotrigged.scnbin107962 -> 110973 bytes
-rw-r--r--demos/3d/platformer/stage.scnbin0 -> 17714 bytes
-rw-r--r--demos/3d/platformer/stage.xml697
-rw-r--r--demos/3d/platformer/tiles.scnbin47723 -> 23305 bytes
-rw-r--r--demos/3d/polygon_path_finder/engine.cfg (renamed from demos/2d/polygon_path_finder/engine.cfg)0
-rw-r--r--demos/3d/polygon_path_finder/icon.png (renamed from demos/2d/polygon_path_finder/icon.png)bin712 -> 712 bytes
-rw-r--r--demos/3d/polygon_path_finder/poly_with_holes.scn (renamed from demos/2d/polygon_path_finder/poly_with_holes.scn)bin2974 -> 2974 bytes
-rw-r--r--demos/3d/polygon_path_finder/polygonpathfinder.gd (renamed from demos/2d/polygon_path_finder/polygonpathfinder.gd)49
-rw-r--r--demos/3d/sat_test/box.scnbin23739 -> 27363 bytes
-rw-r--r--demos/3d/sat_test/capsule.scnbin21133 -> 22718 bytes
-rw-r--r--demos/3d/sat_test/convex.scnbin22828 -> 25617 bytes
-rw-r--r--demos/3d/sat_test/engine.cfg2
-rw-r--r--demos/3d/sat_test/sat_test.scnbin0 -> 3430 bytes
-rw-r--r--demos/3d/sat_test/sat_test.xml179
-rw-r--r--demos/3d/sat_test/shapes.scnbin23064 -> 25887 bytes
-rw-r--r--demos/3d/sat_test/sphere.scnbin38627 -> 41375 bytes
-rw-r--r--demos/3d/shader_materials/shader_materials.scnbin6382 -> 9892 bytes
-rw-r--r--demos/3d/truck_town/car_base.scnbin11573 -> 13459 bytes
-rw-r--r--demos/3d/truck_town/car_select.gd20
-rw-r--r--demos/3d/truck_town/car_select.scnbin1702 -> 1968 bytes
-rw-r--r--demos/3d/truck_town/crane.scnbin24164 -> 26350 bytes
-rw-r--r--demos/3d/truck_town/follow_camera.gd58
-rw-r--r--demos/3d/truck_town/trailer_truck.scnbin19934 -> 22400 bytes
-rw-r--r--demos/3d/truck_town/truck_scene.scnbin1873575 -> 1889480 bytes
-rw-r--r--demos/3d/truck_town/trucktown.scnbin161749 -> 165689 bytes
-rw-r--r--demos/3d/truck_town/vehicle.gd43
-rw-r--r--demos/gui/drag_and_drop/drag_and_drop.scnbin2594 -> 2947 bytes
-rw-r--r--demos/gui/drag_and_drop/drag_drop_script.gd18
-rw-r--r--demos/gui/input_mapping/controls.gd9
-rw-r--r--demos/gui/input_mapping/controls.scnbin2686 -> 2698 bytes
-rw-r--r--demos/gui/rich_text_bbcode/rich_text_bbcode.gd13
-rw-r--r--demos/gui/rich_text_bbcode/rich_text_bbcode.scnbin3288 -> 3217 bytes
-rw-r--r--demos/gui/translation/controls.gd11
-rw-r--r--demos/gui/translation/controls.scnbin2349 -> 2272 bytes
-rw-r--r--demos/gui/translation/main.gd18
-rw-r--r--demos/gui/translation/main.scnbin2671 -> 2939 bytes
-rw-r--r--demos/misc/autoload/global.gd41
-rw-r--r--demos/misc/autoload/scene_a.gd12
-rw-r--r--demos/misc/autoload/scene_a.scnbin1459 -> 1660 bytes
-rw-r--r--demos/misc/autoload/scene_b.gd12
-rw-r--r--demos/misc/autoload/scene_b.scnbin1448 -> 1639 bytes
-rw-r--r--demos/misc/instancing/ball.scnbin1563 -> 1885 bytes
-rw-r--r--demos/misc/instancing/container.scnbin2312 -> 3137 bytes
-rw-r--r--demos/misc/joysticks/joysticks.gd39
-rw-r--r--demos/misc/joysticks/joysticks.scnbin3809 -> 4016 bytes
-rw-r--r--demos/misc/pause/spinpause.gd2
-rw-r--r--demos/misc/pause/spinpause.scnbin3331 -> 5399 bytes
-rw-r--r--demos/misc/regex/regex.gd6
-rw-r--r--demos/misc/regex/regex.scnbin1793 -> 1775 bytes
-rw-r--r--demos/misc/scene_changer/scene_a.gd7
-rw-r--r--demos/misc/scene_changer/scene_a.scnbin1459 -> 1660 bytes
-rw-r--r--demos/misc/scene_changer/scene_b.gd7
-rw-r--r--demos/misc/scene_changer/scene_b.scnbin1448 -> 1639 bytes
-rw-r--r--demos/misc/threads/thread.gd26
-rw-r--r--demos/misc/threads/thread.scnbin1638 -> 1586 bytes
-rw-r--r--demos/misc/tween/engine.cfg2
-rw-r--r--demos/misc/tween/main.gd53
-rw-r--r--demos/misc/tween/main.scnbin0 -> 5216 bytes
-rw-r--r--demos/misc/tween/main.xml367
-rw-r--r--demos/misc/udp_chat/chat.gd46
-rw-r--r--demos/misc/udp_chat/chat.scnbin3198 -> 3359 bytes
-rw-r--r--demos/misc/window_management/control.gd85
-rw-r--r--demos/misc/window_management/observer/observer.gd31
-rw-r--r--demos/misc/window_management/observer/observer.scnbin1786 -> 3824 bytes
-rw-r--r--demos/misc/window_management/window_management.scnbin5132 -> 4384 bytes
-rw-r--r--demos/viewport/2d_in_3d/pong.gd81
-rw-r--r--demos/viewport/2d_in_3d/pong.scnbin0 -> 1417 bytes
-rw-r--r--demos/viewport/2d_in_3d/pong.xml183
-rw-r--r--demos/viewport/2d_in_3d/pong3d.gd9
-rw-r--r--demos/viewport/2d_in_3d/pong3d.scnbin3412 -> 5236 bytes
-rw-r--r--demos/viewport/3d_in_2d/main.scnbin1438 -> 1685 bytes
-rw-r--r--demos/viewport/3d_in_2d/player.scnbin105180 -> 107246 bytes
-rw-r--r--demos/viewport/3d_in_2d/player.xml1736
-rw-r--r--demos/viewport/3d_in_2d/player_2d.scnbin1576 -> 1834 bytes
-rw-r--r--demos/viewport/3d_in_2d/player_3d.scnbin1448 -> 1688 bytes
-rw-r--r--demos/viewport/gui_in_3d/gui.scnbin2270 -> 2579 bytes
-rw-r--r--demos/viewport/gui_in_3d/gui_3d.gd70
-rw-r--r--demos/viewport/gui_in_3d/gui_3d.scnbin4668 -> 6137 bytes
-rw-r--r--demos/viewport/screen_capture/screen_capture.gd23
-rw-r--r--demos/viewport/screen_capture/screen_capture.scnbin1977 -> 3482 bytes
-rw-r--r--doc/Doxyfile (renamed from Doxyfile)6
-rw-r--r--doc/Makefile47
-rw-r--r--doc/base/classes.xml25
-rw-r--r--doc/core_classes.xml2654
-rw-r--r--doc/deferred_format.txt33
-rw-r--r--doc/demos.txt40
-rw-r--r--doc/engine_classes.xml17940
-rw-r--r--doc/examples/physics/script/test_base.sq295
-rw-r--r--doc/examples/physics/script/test_fall.sq42
-rw-r--r--doc/gdscript.lyx2531
-rw-r--r--doc/godot_splash.pngbin9801 -> 0 bytes
-rw-r--r--doc/header.txt12
-rw-r--r--doc/html/@GDScript.html93
-rw-r--r--doc/html/@Global Scope.html459
-rw-r--r--doc/html/@Squirrel.html2
-rw-r--r--doc/html/tutorial01/0_home_red_coding_godot_doc_math_position.pngbin1679 -> 0 bytes
-rw-r--r--doc/html/tutorial01/1_home_red_coding_godot_doc_math_direction.pngbin3600 -> 0 bytes
-rw-r--r--doc/html/tutorial01/2_home_red_coding_godot_doc_math_normals.pngbin2452 -> 0 bytes
-rw-r--r--doc/html/tutorial01/tutorial.css128
-rw-r--r--doc/html/tutorial01/tutorial.html902
-rw-r--r--doc/html/tutorial01/tutorial0x.pngbin2056 -> 0 bytes
-rw-r--r--doc/html/tutorial01/tutorial1x.pngbin4122 -> 0 bytes
-rw-r--r--doc/html/tutorial01/tutorial2x.pngbin618 -> 0 bytes
-rw-r--r--doc/html/tutorial01/tutorial3x.pngbin754 -> 0 bytes
-rw-r--r--doc/html/tutorial01/tutorial4x.pngbin2961 -> 0 bytes
-rw-r--r--doc/make_doc.sh17
-rw-r--r--doc/notes.txt20
-rw-r--r--doc/phys_engine.pngbin29177 -> 0 bytes
-rw-r--r--doc/squirrel.lyx984
-rw-r--r--doc/todo.txt39
-rw-r--r--doc/tools/doc_merge.py (renamed from tools/docdump/doc_merge.py)3
-rw-r--r--doc/tools/locales/es/LC_MESSAGES/makedocs.mo (renamed from tools/docdump/locales/es/LC_MESSAGES/makedocs.mo)bin2321 -> 2321 bytes
-rw-r--r--doc/tools/locales/es/LC_MESSAGES/makedocs.po (renamed from tools/docdump/locales/es/LC_MESSAGES/makedocs.po)0
-rw-r--r--doc/tools/main.css (renamed from doc/html/main.css)0
-rw-r--r--doc/tools/makedocs.pot (renamed from tools/docdump/makedocs.pot)0
-rw-r--r--doc/tools/makedocs.py (renamed from tools/docdump/makedocs.py)2
-rw-r--r--doc/tools/makedoku.py (renamed from tools/docdump/makedoku.py)5
-rw-r--r--doc/tools/makehtml.py (renamed from tools/docdump/makehtml.py)5
-rw-r--r--doc/tools/makemd.py (renamed from tools/docdump/makemd.py)3
-rw-r--r--doc/tutorial/01 Getting Started.lyx557
-rw-r--r--doc/tutorial/editor.pngbin81238 -> 0 bytes
-rw-r--r--doc/tutorial/pm.pngbin36586 -> 0 bytes
-rw-r--r--doc/tutorial/pmc.pngbin22446 -> 0 bytes
-rw-r--r--doc/tutorial/tute1_1.pngbin8719 -> 0 bytes
-rw-r--r--doc/tutorial/tute1_2.pngbin12907 -> 0 bytes
-rw-r--r--doc/tutorial/tute1_2b.pngbin3154 -> 0 bytes
-rw-r--r--doc/tutorial/tute1_3a.pngbin6660 -> 0 bytes
-rw-r--r--doc/tutorial/tute1_3b.pngbin27956 -> 0 bytes
-rw-r--r--doc/tutorial/tute1_3c.pngbin3785 -> 0 bytes
-rw-r--r--doc/tutorial/tute1_4a.pngbin17321 -> 0 bytes
-rw-r--r--doc/tutorial/tute1_4b.pngbin5421 -> 0 bytes
-rw-r--r--doc/tutorial/tute1_5a.pngbin25190 -> 0 bytes
-rw-r--r--doc/tutorial/tute1_5b.pngbin47382 -> 0 bytes
-rw-r--r--doc/tutorial/tute1_6.pngbin2555 -> 0 bytes
-rw-r--r--doc/tutorial/tute1_7.pngbin1445 -> 0 bytes
-rw-r--r--doc/undoredoapi.txt25
-rw-r--r--drivers/SCsub63
-rw-r--r--drivers/gles2/rasterizer_gles2.cpp69
-rw-r--r--drivers/gles2/shaders/canvas.glsl23
-rw-r--r--drivers/nrex/README.md4
-rw-r--r--drivers/nrex/nrex.cpp101
-rw-r--r--drivers/nrex/nrex.hpp41
-rw-r--r--drivers/nrex/regex.cpp6
-rw-r--r--drivers/nrex/regex.h2
-rw-r--r--drivers/openssl/stream_peer_openssl.cpp7
-rw-r--r--drivers/openssl/stream_peer_openssl.h2
-rw-r--r--drivers/theora/video_stream_theora.cpp117
-rw-r--r--drivers/theora/video_stream_theora.h32
-rw-r--r--drivers/unix/SCsub10
-rw-r--r--drivers/unix/os_unix.cpp8
-rw-r--r--drivers/unix/os_unix.h3
-rw-r--r--drivers/unix/stream_peer_tcp_posix.cpp9
-rw-r--r--drivers/unix/stream_peer_tcp_posix.h2
-rw-r--r--drivers/webp/dec/alpha.c2
-rw-r--r--drivers/webp/dec/decode_vp8.h2
-rw-r--r--drivers/webp/dec/webp.c2
-rw-r--r--drivers/webp/demux/anim_decode.c6
-rw-r--r--drivers/webp/demux/demux.c8
-rw-r--r--drivers/webp/dsp/dsp.h4
-rw-r--r--drivers/webp/dsp/lossless.h4
-rw-r--r--drivers/webp/enc/alpha.c2
-rw-r--r--drivers/webp/enc/backward_references.h4
-rw-r--r--drivers/webp/enc/config.c2
-rw-r--r--drivers/webp/enc/delta_palettization.c2
-rw-r--r--drivers/webp/enc/delta_palettization.h2
-rw-r--r--drivers/webp/enc/frame.c2
-rw-r--r--drivers/webp/enc/histogram.c2
-rw-r--r--drivers/webp/enc/histogram.h4
-rw-r--r--drivers/webp/enc/syntax.c4
-rw-r--r--drivers/webp/enc/vp8enci.h2
-rw-r--r--drivers/webp/enc/vp8l.c2
-rw-r--r--drivers/webp/enc/vp8li.h4
-rw-r--r--drivers/webp/mux/anim_encode.c8
-rw-r--r--drivers/webp/mux/muxi.h2
-rw-r--r--drivers/webp/utils/bit_reader.c2
-rw-r--r--drivers/webp/utils/bit_reader.h2
-rw-r--r--drivers/webp/utils/bit_reader_inl.h2
-rw-r--r--drivers/webp/utils/bit_writer.h2
-rw-r--r--drivers/webp/utils/color_cache.h2
-rw-r--r--drivers/webp/utils/endian_inl.h4
-rw-r--r--drivers/webp/utils/filters.h2
-rw-r--r--drivers/webp/utils/huffman.c2
-rw-r--r--drivers/webp/utils/huffman.h4
-rw-r--r--drivers/webp/utils/huffman_encode.c2
-rw-r--r--drivers/webp/utils/huffman_encode.h2
-rw-r--r--drivers/webp/utils/quant_levels.h2
-rw-r--r--drivers/webp/utils/quant_levels_dec.h2
-rw-r--r--drivers/webp/utils/random.h2
-rw-r--r--drivers/webp/utils/rescaler.h2
-rw-r--r--drivers/webp/utils/thread.h4
-rw-r--r--drivers/webp/utils/utils.c4
-rw-r--r--drivers/webp/utils/utils.h2
-rw-r--r--logo_small.pngbin2025 -> 0 bytes
-rw-r--r--main/main.cpp17
-rw-r--r--makerel.bat1
-rw-r--r--modules/gdscript/gd_functions.cpp4
-rw-r--r--modules/gdscript/gd_script.cpp2
-rw-r--r--modules/gdscript/gd_tokenizer.cpp6
-rw-r--r--platform/android/export/export.cpp29
-rw-r--r--platform/bb10/export/export.cpp18
-rw-r--r--platform/iphone/os_iphone.cpp6
-rw-r--r--platform/isim/detect.py15
-rw-r--r--platform/javascript/export/export.cpp27
-rw-r--r--platform/osx/SCsub1
-rw-r--r--platform/osx/dir_access_osx.h92
-rw-r--r--platform/osx/dir_access_osx.mm350
-rw-r--r--platform/osx/export/export.cpp23
-rw-r--r--platform/osx/os_osx.mm6
-rw-r--r--platform/windows/detect.py1
-rw-r--r--platform/windows/os_windows.cpp2
-rw-r--r--platform/windows/stream_peer_winsock.cpp8
-rw-r--r--platform/windows/stream_peer_winsock.h2
-rw-r--r--platform/x11/detect.py7
-rw-r--r--platform/x11/os_x11.cpp7
-rw-r--r--platform/x11/platform_config.h2
-rw-r--r--scene/2d/camera_2d.cpp39
-rw-r--r--scene/2d/camera_2d.h6
-rw-r--r--scene/2d/canvas_item.cpp16
-rw-r--r--scene/2d/canvas_item.h3
-rw-r--r--scene/2d/collision_polygon_2d.cpp6
-rw-r--r--scene/2d/collision_shape_2d.cpp6
-rw-r--r--scene/2d/joints_2d.cpp35
-rw-r--r--scene/2d/joints_2d.h5
-rw-r--r--scene/2d/light_2d.cpp3
-rw-r--r--scene/2d/light_2d.h1
-rw-r--r--scene/2d/tile_map.cpp49
-rw-r--r--scene/2d/tile_map.h6
-rw-r--r--scene/3d/physics_body.cpp15
-rw-r--r--scene/3d/physics_body.h2
-rw-r--r--scene/3d/physics_joint.cpp31
-rw-r--r--scene/3d/physics_joint.h4
-rw-r--r--scene/3d/spatial.cpp10
-rw-r--r--scene/3d/spatial.h1
-rw-r--r--scene/gui/container.cpp2
-rw-r--r--scene/gui/control.cpp54
-rw-r--r--scene/gui/control.h16
-rw-r--r--scene/gui/file_dialog.cpp2
-rw-r--r--scene/gui/line_edit.cpp2
-rw-r--r--scene/gui/option_button.cpp9
-rw-r--r--scene/gui/popup_menu.cpp20
-rw-r--r--scene/gui/popup_menu.h1
-rw-r--r--scene/gui/slider.cpp4
-rw-r--r--scene/gui/spin_box.cpp31
-rw-r--r--scene/gui/spin_box.h4
-rw-r--r--scene/gui/tabs.cpp129
-rw-r--r--scene/gui/tabs.h6
-rw-r--r--scene/gui/text_edit.cpp41
-rw-r--r--scene/gui/text_edit.h2
-rw-r--r--scene/gui/texture_button.cpp10
-rw-r--r--scene/gui/texture_button.h4
-rw-r--r--scene/gui/tree.cpp76
-rw-r--r--scene/gui/tree.h7
-rw-r--r--scene/gui/video_player.cpp9
-rw-r--r--scene/gui/video_player.h6
-rw-r--r--scene/main/node.cpp23
-rw-r--r--scene/main/node.h4
-rw-r--r--scene/resources/color_ramp.cpp34
-rw-r--r--scene/resources/color_ramp.h3
-rw-r--r--scene/resources/convex_polygon_shape_2d.cpp6
-rw-r--r--scene/resources/default_theme/default_theme.cpp4
-rw-r--r--scene/resources/font.cpp43
-rw-r--r--scene/resources/font.h12
-rw-r--r--scene/resources/material.cpp6
-rw-r--r--scene/resources/packed_scene.cpp24
-rw-r--r--scene/resources/packed_scene.h10
-rw-r--r--scene/resources/scene_format_text.cpp4
-rw-r--r--scene/resources/shader.cpp20
-rw-r--r--scene/resources/shader_graph.cpp2
-rw-r--r--scene/resources/shape_2d.cpp4
-rw-r--r--servers/physics/body_sw.cpp22
-rw-r--r--servers/physics/body_sw.h2
-rw-r--r--servers/physics/space_sw.cpp16
-rw-r--r--servers/physics_2d/body_2d_sw.cpp25
-rw-r--r--servers/physics_2d/body_2d_sw.h2
-rw-r--r--servers/physics_2d_server.cpp2
-rw-r--r--servers/visual/rasterizer.h7
-rw-r--r--servers/visual/shader_language.cpp14
-rw-r--r--servers/visual/visual_server_raster.cpp44
-rw-r--r--servers/visual/visual_server_raster.h4
-rw-r--r--servers/visual_server.h1
-rw-r--r--tools/collada/collada.cpp6
-rw-r--r--tools/doc/doc_data.cpp5
-rw-r--r--tools/docdump/class_list.xml13625
-rw-r--r--tools/docdump/main.css146
-rw-r--r--tools/editor/animation_editor.cpp20
-rw-r--r--tools/editor/array_property_edit.cpp9
-rw-r--r--tools/editor/array_property_edit.h2
-rw-r--r--tools/editor/editor_data.cpp98
-rw-r--r--tools/editor/editor_data.h4
-rw-r--r--tools/editor/editor_dir_dialog.cpp17
-rw-r--r--tools/editor/editor_file_dialog.cpp27
-rw-r--r--tools/editor/editor_import_export.cpp132
-rw-r--r--tools/editor/editor_import_export.h14
-rw-r--r--tools/editor/editor_layout_dialog.cpp65
-rw-r--r--tools/editor/editor_layout_dialog.h54
-rw-r--r--tools/editor/editor_node.cpp245
-rw-r--r--tools/editor/editor_node.h17
-rw-r--r--tools/editor/editor_plugin.h1
-rw-r--r--tools/editor/editor_settings.h1
-rw-r--r--tools/editor/editor_sub_scene.cpp12
-rw-r--r--tools/editor/groups_editor.cpp165
-rw-r--r--tools/editor/groups_editor.h36
-rw-r--r--tools/editor/icons/icon_list_select.pngbin0 -> 470 bytes
-rw-r--r--tools/editor/io_plugins/editor_export_scene.cpp2
-rw-r--r--tools/editor/io_plugins/editor_sample_import_plugin.cpp2
-rw-r--r--tools/editor/io_plugins/editor_texture_import_plugin.cpp4
-rw-r--r--tools/editor/plugins/canvas_item_editor_plugin.cpp141
-rw-r--r--tools/editor/plugins/canvas_item_editor_plugin.h3
-rw-r--r--tools/editor/plugins/item_list_editor_plugin.cpp365
-rw-r--r--tools/editor/plugins/item_list_editor_plugin.h138
-rw-r--r--tools/editor/plugins/mesh_editor_plugin.cpp134
-rw-r--r--tools/editor/plugins/mesh_editor_plugin.h13
-rw-r--r--tools/editor/plugins/script_editor_plugin.cpp153
-rw-r--r--tools/editor/plugins/script_editor_plugin.h9
-rw-r--r--tools/editor/plugins/shader_editor_plugin.cpp5
-rw-r--r--tools/editor/plugins/spatial_editor_plugin.cpp134
-rw-r--r--tools/editor/plugins/spatial_editor_plugin.h8
-rw-r--r--tools/editor/project_export.cpp39
-rw-r--r--tools/editor/project_manager.cpp17
-rw-r--r--tools/editor/project_settings.cpp29
-rw-r--r--tools/editor/property_editor.cpp124
-rw-r--r--tools/editor/property_editor.h5
-rw-r--r--tools/editor/reparent_dialog.cpp16
-rw-r--r--tools/editor/scene_tree_editor.cpp5
-rw-r--r--tools/editor/script_editor_debugger.cpp15
-rw-r--r--tools/editor/script_editor_debugger.h3
-rw-r--r--tools/editor/spatial_editor_gizmos.cpp4
479 files changed, 8201 insertions, 51522 deletions
diff --git a/.gitignore b/.gitignore
index f24d91a7ee..a6d5a2d412 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,6 +15,7 @@ core/method_bind.inc
core/method_bind_ext.inc
core/script_encryption_key.cpp
core/global_defaults.cpp
+drivers/unix/os_unix_global_settings_path.cpp
tools/editor/register_exporters.cpp
tools/editor/doc_data_compressed.h
tools/editor/editor_icons.cpp
@@ -23,8 +24,8 @@ tools/editor/editor_icons.cpp
make.bat
log.txt
-# Doxygen generated documentation
-doc/doxygen/*
+# Documentation generated by doxygen or from classes.xml
+doc/_build/
# Javascript specific
*.bc
@@ -188,9 +189,6 @@ AutoTest.Net/
# Installshield output folder
[Ee]xpress/
-# dumpdoc generated files
-doc/html/class_list
-
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
diff --git a/SConstruct b/SConstruct
index f16f4f6d65..95ad0010a2 100644
--- a/SConstruct
+++ b/SConstruct
@@ -127,6 +127,7 @@ opts.Add("CXX", "Compiler");
opts.Add("CCFLAGS", "Custom flags for the C++ compiler");
opts.Add("CFLAGS", "Custom flags for the C compiler");
opts.Add("LINKFLAGS", "Custom flags for the linker");
+opts.Add('unix_global_settings_path', 'unix-specific path to system-wide settings. Currently only used by templates.','')
opts.Add('disable_3d', 'Disable 3D nodes for smaller executable (yes/no)', "no")
opts.Add('disable_advanced_gui', 'Disable advance 3D gui nodes and behaviors (yes/no)', "no")
opts.Add('colored', 'Enable colored output for the compilation (yes/no)', 'no')
diff --git a/core/array.cpp b/core/array.cpp
index ab9f19d6a0..41af460d83 100644
--- a/core/array.cpp
+++ b/core/array.cpp
@@ -222,6 +222,24 @@ void Array::invert(){
}
+void Array::push_front(const Variant& p_value) {
+
+ _p->array.insert(0,p_value);
+}
+
+void Array::pop_back(){
+
+ if (!_p->array.empty())
+ _p->array.resize( _p->array.size() -1 );
+
+}
+void Array::pop_front(){
+
+ if (!_p->array.empty())
+ _p->array.remove(0);
+
+}
+
Array::Array(const Array& p_from) {
diff --git a/core/array.h b/core/array.h
index 904309b257..c29b4355ca 100644
--- a/core/array.h
+++ b/core/array.h
@@ -53,7 +53,7 @@ public:
bool empty() const;
void clear();
- bool is_shared() const;
+ bool is_shared() const;
bool operator==(const Array& p_array) const;
@@ -75,6 +75,10 @@ public:
void erase(const Variant& p_value);
+ void push_front(const Variant& p_value);
+ void pop_back();
+ void pop_front();
+
Array(const Array& p_from);
Array(bool p_shared=false);
~Array();
diff --git a/core/bind/core_bind.cpp b/core/bind/core_bind.cpp
index 94557d149d..30c90bd71c 100644
--- a/core/bind/core_bind.cpp
+++ b/core/bind/core_bind.cpp
@@ -1977,7 +1977,7 @@ void _Thread::_bind_methods() {
ObjectTypeDB::bind_method(_MD("start:Error","instance","method","userdata","priority"),&_Thread::start,DEFVAL(Variant()),DEFVAL(PRIORITY_NORMAL));
ObjectTypeDB::bind_method(_MD("get_id"),&_Thread::get_id);
ObjectTypeDB::bind_method(_MD("is_active"),&_Thread::is_active);
- ObjectTypeDB::bind_method(_MD("wait_to_finish:var"),&_Thread::wait_to_finish);
+ ObjectTypeDB::bind_method(_MD("wait_to_finish:Variant"),&_Thread::wait_to_finish);
BIND_CONSTANT( PRIORITY_LOW );
BIND_CONSTANT( PRIORITY_NORMAL );
diff --git a/core/dictionary.cpp b/core/dictionary.cpp
index b2d31f230d..c544573629 100644
--- a/core/dictionary.cpp
+++ b/core/dictionary.cpp
@@ -160,7 +160,20 @@ void Dictionary::_unref() const {
}
uint32_t Dictionary::hash() const {
- return hash_djb2_one_64(make_uint64_t(_p));
+ uint32_t h=hash_djb2_one_32(Variant::DICTIONARY);
+
+ List<Variant> keys;
+ get_key_list(&keys);
+
+ for (List<Variant>::Element *E=keys.front();E;E=E->next()) {
+
+ h = hash_djb2_one_32( E->get().hash(), h);
+ h = hash_djb2_one_32( operator[](E->get()).hash(), h);
+
+ }
+
+
+ return h;
}
Array Dictionary::keys() const {
diff --git a/core/globals.cpp b/core/globals.cpp
index aee708d0cd..0a6a1876b3 100644
--- a/core/globals.cpp
+++ b/core/globals.cpp
@@ -309,7 +309,7 @@ Error Globals::setup(const String& p_path,const String & p_main_pack) {
print_line("has res dir: "+resource_path);
if (!_load_resource_pack("res://data.pck"))
- _load_resource_pack("res://data.pcz");
+ _load_resource_pack("res://data.zip");
// make sure this is load from the resource path
print_line("exists engine cfg? "+itos(FileAccess::exists("/engine.cfg")));
if (_load_settings("res://engine.cfg")==OK || _load_settings_binary("res://engine.cfb")==OK) {
@@ -340,7 +340,7 @@ Error Globals::setup(const String& p_path,const String & p_main_pack) {
//try to load settings in ascending through dirs shape!
//tries to open pack, but only first time
- if (first_time && (_load_resource_pack(current_dir+"/"+exec_name+".pck") || _load_resource_pack(current_dir+"/"+exec_name+".pcz") )) {
+ if (first_time && (_load_resource_pack(current_dir+"/"+exec_name+".pck") || _load_resource_pack(current_dir+"/"+exec_name+".zip") )) {
if (_load_settings("res://engine.cfg")==OK || _load_settings_binary("res://engine.cfb")==OK) {
_load_settings("res://override.cfg");
@@ -349,7 +349,7 @@ Error Globals::setup(const String& p_path,const String & p_main_pack) {
}
break;
- } else if (first_time && (_load_resource_pack(current_dir+"/data.pck") || _load_resource_pack(current_dir+"/data.pcz") )) {
+ } else if (first_time && (_load_resource_pack(current_dir+"/data.pck") || _load_resource_pack(current_dir+"/data.zip") )) {
if (_load_settings("res://engine.cfg")==OK || _load_settings_binary("res://engine.cfb")==OK) {
_load_settings("res://override.cfg");
diff --git a/core/io/aes256.cpp b/core/io/aes256.cpp
index e7f465dcc6..cfdac0214d 100644
--- a/core/io/aes256.cpp
+++ b/core/io/aes256.cpp
@@ -1,8 +1,8 @@
-/*
+/*
* Byte-oriented AES-256 implementation.
-* All lookup tables replaced with 'on the fly' calculations.
+* All lookup tables replaced with 'on the fly' calculations.
*
-* Copyright (c) 2007-2009 Ilya O. Levin, http://www.literatecode.com
+* Copyright (c) 2007-2011 Ilya O. Levin, http://www.literatecode.com
* Other contributors: Hal Finney
*
* Permission to use, copy, modify, and distribute this software for any
@@ -19,13 +19,33 @@
*/
#include "aes256.h"
-#define F(x) (((x)<<1) ^ ((((x)>>7) & 1) * 0x1b))
#define FD(x) (((x) >> 1) ^ (((x) & 1) ? 0x8d : 0))
-// #define BACK_TO_TABLES
+#define BACK_TO_TABLES
+
+static uint8_t rj_xtime(uint8_t);
+static void aes_subBytes(uint8_t *);
+static void aes_subBytes_inv(uint8_t *);
+static void aes_addRoundKey(uint8_t *, uint8_t *);
+static void aes_addRoundKey_cpy(uint8_t *, uint8_t *, uint8_t *);
+static void aes_shiftRows(uint8_t *);
+static void aes_shiftRows_inv(uint8_t *);
+static void aes_mixColumns(uint8_t *);
+static void aes_mixColumns_inv(uint8_t *);
+static void aes_expandEncKey(uint8_t *, uint8_t *);
+static void aes_expandDecKey(uint8_t *, uint8_t *);
+#ifndef BACK_TO_TABLES
+static uint8_t gf_alog(uint8_t);
+static uint8_t gf_log(uint8_t);
+static uint8_t gf_mulinv(uint8_t);
+static uint8_t rj_sbox(uint8_t);
+static uint8_t rj_sbox_inv(uint8_t);
+#endif
+
#ifdef BACK_TO_TABLES
-const uint8_t sbox[256] = {
+static const uint8_t sbox[256] =
+{
0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5,
0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76,
0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0,
@@ -59,7 +79,8 @@ const uint8_t sbox[256] = {
0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68,
0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16
};
-const uint8_t sboxinv[256] = {
+static const uint8_t sboxinv[256] =
+{
0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38,
0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb,
0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87,
@@ -100,55 +121,62 @@ const uint8_t sboxinv[256] = {
#else /* tableless subroutines */
/* -------------------------------------------------------------------------- */
-uint8_t gf_alog(uint8_t x) // calculate anti-logarithm gen 3
+static uint8_t gf_alog(uint8_t x) // calculate anti-logarithm gen 3
{
- uint8_t atb = 1, z;
+ uint8_t y = 1, i;
- while (x--) {z = atb; atb <<= 1; if (z & 0x80) atb^= 0x1b; atb ^= z;}
+ for (i = 0; i < x; i++) y ^= rj_xtime(y);
- return atb;
+ return y;
} /* gf_alog */
/* -------------------------------------------------------------------------- */
-uint8_t gf_log(uint8_t x) // calculate logarithm gen 3
+static uint8_t gf_log(uint8_t x) // calculate logarithm gen 3
{
- uint8_t atb = 1, i = 0, z;
+ uint8_t y, i = 0;
- do {
- if (atb == x) break;
- z = atb; atb <<= 1; if (z & 0x80) atb^= 0x1b; atb ^= z;
- } while (++i > 0);
+ if (x)
+ for (i = 1, y = 1; i > 0; i++ )
+ {
+ y ^= rj_xtime(y);
+ if (y == x) break;
+ }
return i;
} /* gf_log */
/* -------------------------------------------------------------------------- */
-uint8_t gf_mulinv(uint8_t x) // calculate multiplicative inverse
+static uint8_t gf_mulinv(uint8_t x) // calculate multiplicative inverse
{
return (x) ? gf_alog(255 - gf_log(x)) : 0;
} /* gf_mulinv */
/* -------------------------------------------------------------------------- */
-uint8_t rj_sbox(uint8_t x)
+static uint8_t rj_sbox(uint8_t x)
{
uint8_t y, sb;
sb = y = gf_mulinv(x);
- y = (y<<1)|(y>>7); sb ^= y; y = (y<<1)|(y>>7); sb ^= y;
- y = (y<<1)|(y>>7); sb ^= y; y = (y<<1)|(y>>7); sb ^= y;
+ y = (uint8_t)(y << 1) | (y >> 7), sb ^= y;
+ y = (uint8_t)(y << 1) | (y >> 7), sb ^= y;
+ y = (uint8_t)(y << 1) | (y >> 7), sb ^= y;
+ y = (uint8_t)(y << 1) | (y >> 7), sb ^= y;
return (sb ^ 0x63);
} /* rj_sbox */
/* -------------------------------------------------------------------------- */
-uint8_t rj_sbox_inv(uint8_t x)
+static uint8_t rj_sbox_inv(uint8_t x)
{
uint8_t y, sb;
y = x ^ 0x63;
- sb = y = (y<<1)|(y>>7);
- y = (y<<2)|(y>>6); sb ^= y; y = (y<<3)|(y>>5); sb ^= y;
+ sb = y = (uint8_t)(y << 1) | (y >> 7);
+ y = (uint8_t)(y << 2) | (y >> 6);
+ sb ^= y;
+ y = (uint8_t)(y << 3) | (y >> 5);
+ sb ^= y;
return gf_mulinv(sb);
} /* rj_sbox_inv */
@@ -156,13 +184,14 @@ uint8_t rj_sbox_inv(uint8_t x)
#endif
/* -------------------------------------------------------------------------- */
-uint8_t rj_xtime(uint8_t x)
+static uint8_t rj_xtime(uint8_t x)
{
- return (x & 0x80) ? ((x << 1) ^ 0x1b) : (x << 1);
+ uint8_t y = (uint8_t)(x << 1);
+ return (x & 0x80) ? (y ^ 0x1b) : y;
} /* rj_xtime */
/* -------------------------------------------------------------------------- */
-void aes_subBytes(uint8_t *buf)
+static void aes_subBytes(uint8_t *buf)
{
register uint8_t i = 16;
@@ -170,7 +199,7 @@ void aes_subBytes(uint8_t *buf)
} /* aes_subBytes */
/* -------------------------------------------------------------------------- */
-void aes_subBytes_inv(uint8_t *buf)
+static void aes_subBytes_inv(uint8_t *buf)
{
register uint8_t i = 16;
@@ -178,7 +207,7 @@ void aes_subBytes_inv(uint8_t *buf)
} /* aes_subBytes_inv */
/* -------------------------------------------------------------------------- */
-void aes_addRoundKey(uint8_t *buf, uint8_t *key)
+static void aes_addRoundKey(uint8_t *buf, uint8_t *key)
{
register uint8_t i = 16;
@@ -186,49 +215,54 @@ void aes_addRoundKey(uint8_t *buf, uint8_t *key)
} /* aes_addRoundKey */
/* -------------------------------------------------------------------------- */
-void aes_addRoundKey_cpy(uint8_t *buf, uint8_t *key, uint8_t *cpk)
+static void aes_addRoundKey_cpy(uint8_t *buf, uint8_t *key, uint8_t *cpk)
{
register uint8_t i = 16;
- while (i--) buf[i] ^= (cpk[i] = key[i]), cpk[16+i] = key[16 + i];
+ while (i--) buf[i] ^= (cpk[i] = key[i]), cpk[16 + i] = key[16 + i];
} /* aes_addRoundKey_cpy */
/* -------------------------------------------------------------------------- */
-void aes_shiftRows(uint8_t *buf)
+static void aes_shiftRows(uint8_t *buf)
{
register uint8_t i, j; /* to make it potentially parallelable :) */
- i = buf[1]; buf[1] = buf[5]; buf[5] = buf[9]; buf[9] = buf[13]; buf[13] = i;
- i = buf[10]; buf[10] = buf[2]; buf[2] = i;
- j = buf[3]; buf[3] = buf[15]; buf[15] = buf[11]; buf[11] = buf[7]; buf[7] = j;
- j = buf[14]; buf[14] = buf[6]; buf[6] = j;
+ i = buf[1], buf[1] = buf[5], buf[5] = buf[9], buf[9] = buf[13], buf[13] = i;
+ i = buf[10], buf[10] = buf[2], buf[2] = i;
+ j = buf[3], buf[3] = buf[15], buf[15] = buf[11], buf[11] = buf[7], buf[7] = j;
+ j = buf[14], buf[14] = buf[6], buf[6] = j;
} /* aes_shiftRows */
/* -------------------------------------------------------------------------- */
-void aes_shiftRows_inv(uint8_t *buf)
+static void aes_shiftRows_inv(uint8_t *buf)
{
register uint8_t i, j; /* same as above :) */
- i = buf[1]; buf[1] = buf[13]; buf[13] = buf[9]; buf[9] = buf[5]; buf[5] = i;
- i = buf[2]; buf[2] = buf[10]; buf[10] = i;
- j = buf[3]; buf[3] = buf[7]; buf[7] = buf[11]; buf[11] = buf[15]; buf[15] = j;
- j = buf[6]; buf[6] = buf[14]; buf[14] = j;
+ i = buf[1], buf[1] = buf[13], buf[13] = buf[9], buf[9] = buf[5], buf[5] = i;
+ i = buf[2], buf[2] = buf[10], buf[10] = i;
+ j = buf[3], buf[3] = buf[7], buf[7] = buf[11], buf[11] = buf[15], buf[15] = j;
+ j = buf[6], buf[6] = buf[14], buf[14] = j;
} /* aes_shiftRows_inv */
/* -------------------------------------------------------------------------- */
-void aes_mixColumns(uint8_t *buf)
+static void aes_mixColumns(uint8_t *buf)
{
register uint8_t i, a, b, c, d, e;
for (i = 0; i < 16; i += 4)
{
- a = buf[i]; b = buf[i + 1]; c = buf[i + 2]; d = buf[i + 3];
+ a = buf[i];
+ b = buf[i + 1];
+ c = buf[i + 2];
+ d = buf[i + 3];
e = a ^ b ^ c ^ d;
- buf[i] ^= e ^ rj_xtime(a^b); buf[i+1] ^= e ^ rj_xtime(b^c);
- buf[i+2] ^= e ^ rj_xtime(c^d); buf[i+3] ^= e ^ rj_xtime(d^a);
+ buf[i] ^= e ^ rj_xtime(a ^ b);
+ buf[i + 1] ^= e ^ rj_xtime(b ^ c);
+ buf[i + 2] ^= e ^ rj_xtime(c ^ d);
+ buf[i + 3] ^= e ^ rj_xtime(d ^ a);
}
} /* aes_mixColumns */
@@ -239,17 +273,23 @@ void aes_mixColumns_inv(uint8_t *buf)
for (i = 0; i < 16; i += 4)
{
- a = buf[i]; b = buf[i + 1]; c = buf[i + 2]; d = buf[i + 3];
+ a = buf[i];
+ b = buf[i + 1];
+ c = buf[i + 2];
+ d = buf[i + 3];
e = a ^ b ^ c ^ d;
z = rj_xtime(e);
- x = e ^ rj_xtime(rj_xtime(z^a^c)); y = e ^ rj_xtime(rj_xtime(z^b^d));
- buf[i] ^= x ^ rj_xtime(a^b); buf[i+1] ^= y ^ rj_xtime(b^c);
- buf[i+2] ^= x ^ rj_xtime(c^d); buf[i+3] ^= y ^ rj_xtime(d^a);
+ x = e ^ rj_xtime(rj_xtime(z ^ a ^ c));
+ y = e ^ rj_xtime(rj_xtime(z ^ b ^ d));
+ buf[i] ^= x ^ rj_xtime(a ^ b);
+ buf[i + 1] ^= y ^ rj_xtime(b ^ c);
+ buf[i + 2] ^= x ^ rj_xtime(c ^ d);
+ buf[i + 3] ^= y ^ rj_xtime(d ^ a);
}
} /* aes_mixColumns_inv */
/* -------------------------------------------------------------------------- */
-void aes_expandEncKey(uint8_t *k, uint8_t *rc)
+static void aes_expandEncKey(uint8_t *k, uint8_t *rc)
{
register uint8_t i;
@@ -257,35 +297,35 @@ void aes_expandEncKey(uint8_t *k, uint8_t *rc)
k[1] ^= rj_sbox(k[30]);
k[2] ^= rj_sbox(k[31]);
k[3] ^= rj_sbox(k[28]);
- *rc = F( *rc);
+ *rc = rj_xtime( *rc);
- for(i = 4; i < 16; i += 4) k[i] ^= k[i-4], k[i+1] ^= k[i-3],
- k[i+2] ^= k[i-2], k[i+3] ^= k[i-1];
+ for(i = 4; i < 16; i += 4) k[i] ^= k[i - 4], k[i + 1] ^= k[i - 3],
+ k[i + 2] ^= k[i - 2], k[i + 3] ^= k[i - 1];
k[16] ^= rj_sbox(k[12]);
k[17] ^= rj_sbox(k[13]);
k[18] ^= rj_sbox(k[14]);
k[19] ^= rj_sbox(k[15]);
- for(i = 20; i < 32; i += 4) k[i] ^= k[i-4], k[i+1] ^= k[i-3],
- k[i+2] ^= k[i-2], k[i+3] ^= k[i-1];
+ for(i = 20; i < 32; i += 4) k[i] ^= k[i - 4], k[i + 1] ^= k[i - 3],
+ k[i + 2] ^= k[i - 2], k[i + 3] ^= k[i - 1];
} /* aes_expandEncKey */
/* -------------------------------------------------------------------------- */
-void aes_expandDecKey(uint8_t *k, uint8_t *rc)
+void aes_expandDecKey(uint8_t *k, uint8_t *rc)
{
uint8_t i;
- for(i = 28; i > 16; i -= 4) k[i+0] ^= k[i-4], k[i+1] ^= k[i-3],
- k[i+2] ^= k[i-2], k[i+3] ^= k[i-1];
+ for(i = 28; i > 16; i -= 4) k[i + 0] ^= k[i - 4], k[i + 1] ^= k[i - 3],
+ k[i + 2] ^= k[i - 2], k[i + 3] ^= k[i - 1];
k[16] ^= rj_sbox(k[12]);
k[17] ^= rj_sbox(k[13]);
k[18] ^= rj_sbox(k[14]);
k[19] ^= rj_sbox(k[15]);
- for(i = 12; i > 0; i -= 4) k[i+0] ^= k[i-4], k[i+1] ^= k[i-3],
- k[i+2] ^= k[i-2], k[i+3] ^= k[i-1];
+ for(i = 12; i > 0; i -= 4) k[i + 0] ^= k[i - 4], k[i + 1] ^= k[i - 3],
+ k[i + 2] ^= k[i - 2], k[i + 3] ^= k[i - 1];
*rc = FD(*rc);
k[0] ^= rj_sbox(k[29]) ^ (*rc);
@@ -302,7 +342,7 @@ void aes256_init(aes256_context *ctx, uint8_t *k)
register uint8_t i;
for (i = 0; i < sizeof(ctx->key); i++) ctx->enckey[i] = ctx->deckey[i] = k[i];
- for (i = 8;--i;) aes_expandEncKey(ctx->deckey, &rcon);
+ for (i = 8; --i;) aes_expandEncKey(ctx->deckey, &rcon);
} /* aes256_init */
/* -------------------------------------------------------------------------- */
@@ -310,7 +350,7 @@ void aes256_done(aes256_context *ctx)
{
register uint8_t i;
- for (i = 0; i < sizeof(ctx->key); i++)
+ for (i = 0; i < sizeof(ctx->key); i++)
ctx->key[i] = ctx->enckey[i] = ctx->deckey[i] = 0;
} /* aes256_done */
@@ -330,7 +370,7 @@ void aes256_encrypt_ecb(aes256_context *ctx, uint8_t *buf)
}
aes_subBytes(buf);
aes_shiftRows(buf);
- aes_expandEncKey(ctx->key, &rcon);
+ aes_expandEncKey(ctx->key, &rcon);
aes_addRoundKey(buf, ctx->key);
} /* aes256_encrypt */
@@ -345,7 +385,7 @@ void aes256_decrypt_ecb(aes256_context *ctx, uint8_t *buf)
for (i = 14, rcon = 0x80; --i;)
{
- if( ( i & 1 ) )
+ if( ( i & 1 ) )
{
aes_expandDecKey(ctx->key, &rcon);
aes_addRoundKey(buf, &ctx->key[16]);
@@ -355,5 +395,5 @@ void aes256_decrypt_ecb(aes256_context *ctx, uint8_t *buf)
aes_shiftRows_inv(buf);
aes_subBytes_inv(buf);
}
- aes_addRoundKey( buf, ctx->key);
+ aes_addRoundKey( buf, ctx->key);
} /* aes256_decrypt */
diff --git a/core/io/packet_peer.cpp b/core/io/packet_peer.cpp
index f6d526b512..fc9e51f000 100644
--- a/core/io/packet_peer.cpp
+++ b/core/io/packet_peer.cpp
@@ -127,7 +127,7 @@ Error PacketPeer::_get_packet_error() const {
void PacketPeer::_bind_methods() {
ObjectTypeDB::bind_method(_MD("get_var"),&PacketPeer::_bnd_get_var);
- ObjectTypeDB::bind_method(_MD("put_var", "var:var"),&PacketPeer::put_var);
+ ObjectTypeDB::bind_method(_MD("put_var", "var:Variant"),&PacketPeer::put_var);
ObjectTypeDB::bind_method(_MD("get_packet"),&PacketPeer::_get_packet);
ObjectTypeDB::bind_method(_MD("put_packet:Error", "buffer"),&PacketPeer::_put_packet);
ObjectTypeDB::bind_method(_MD("get_packet_error:Error"),&PacketPeer::_get_packet_error);
diff --git a/core/io/resource_format_binary.cpp b/core/io/resource_format_binary.cpp
index 1a0552e8d1..9a3a191b3b 100644
--- a/core/io/resource_format_binary.cpp
+++ b/core/io/resource_format_binary.cpp
@@ -853,6 +853,8 @@ String ResourceInteractiveLoaderBinary::get_unicode_string() {
if (len>str_buf.size()) {
str_buf.resize(len);
}
+ if (len==0)
+ return String();
f->get_buffer((uint8_t*)&str_buf[0],len);
String s;
s.parse_utf8(&str_buf[0]);
@@ -905,7 +907,7 @@ void ResourceInteractiveLoaderBinary::open(FileAccess *p_f) {
error=ERR_FILE_UNRECOGNIZED;
ERR_EXPLAIN("Unrecognized binary resource file: "+local_path);
- ERR_FAIL_V();
+ ERR_FAIL();
}
bool big_endian = f->get_32();
diff --git a/core/io/stream_peer.cpp b/core/io/stream_peer.cpp
index b00b462eb6..1b39286bf7 100644
--- a/core/io/stream_peer.cpp
+++ b/core/io/stream_peer.cpp
@@ -27,7 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "stream_peer.h"
-
+#include "io/marshalls.h"
Error StreamPeer::_put_data(const DVector<uint8_t>& p_data) {
@@ -115,6 +115,271 @@ Array StreamPeer::_get_partial_data(int p_bytes) {
}
+void StreamPeer::set_big_endian(bool p_enable) {
+
+ big_endian=p_enable;
+}
+
+bool StreamPeer::is_big_endian_enabled() const {
+
+ return big_endian;
+}
+
+
+void StreamPeer::put_u8(uint8_t p_val) {
+ put_data((const uint8_t*)&p_val,1);
+
+}
+
+void StreamPeer::put_8(int8_t p_val){
+
+ put_data((const uint8_t*)&p_val,1);
+}
+void StreamPeer::put_u16(uint16_t p_val){
+
+ if (big_endian) {
+ p_val=BSWAP16(p_val);
+ }
+ uint8_t buf[2];
+ encode_uint16(p_val,buf);
+ put_data(buf,2);
+
+}
+void StreamPeer::put_16(int16_t p_val){
+
+ if (big_endian) {
+ p_val=BSWAP16(p_val);
+ }
+ uint8_t buf[2];
+ encode_uint16(p_val,buf);
+ put_data(buf,2);
+
+}
+void StreamPeer::put_u32(uint32_t p_val){
+
+ if (big_endian) {
+ p_val=BSWAP32(p_val);
+ }
+ uint8_t buf[4];
+ encode_uint32(p_val,buf);
+ put_data(buf,4);
+
+}
+void StreamPeer::put_32(int32_t p_val){
+
+ if (big_endian) {
+ p_val=BSWAP32(p_val);
+ }
+ uint8_t buf[4];
+ encode_uint32(p_val,buf);
+ put_data(buf,4);
+
+}
+void StreamPeer::put_u64(uint64_t p_val){
+
+ if (big_endian) {
+ p_val=BSWAP64(p_val);
+ }
+ uint8_t buf[8];
+ encode_uint64(p_val,buf);
+ put_data(buf,8);
+
+}
+void StreamPeer::put_64(int64_t p_val){
+
+ if (big_endian) {
+ p_val=BSWAP64(p_val);
+ }
+ uint8_t buf[8];
+ encode_uint64(p_val,buf);
+ put_data(buf,8);
+
+}
+void StreamPeer::put_float(float p_val){
+
+ uint8_t buf[4];
+
+ encode_float(p_val,buf);
+ if (big_endian) {
+ uint32_t *p32=(uint32_t *)buf;
+ *p32=BSWAP32(*p32);
+ }
+
+ put_data(buf,4);
+
+}
+void StreamPeer::put_double(double p_val){
+
+ uint8_t buf[8];
+ encode_double(p_val,buf);
+ if (big_endian) {
+ uint64_t *p64=(uint64_t *)buf;
+ *p64=BSWAP64(*p64);
+ }
+ put_data(buf,8);
+
+}
+void StreamPeer::put_utf8_string(const String& p_string) {
+
+ CharString cs=p_string.utf8();
+ put_data((const uint8_t*)cs.get_data(),cs.length());
+
+}
+void StreamPeer::put_var(const Variant& p_variant){
+
+ int len=0;
+ Vector<uint8_t> buf;
+ encode_variant(p_variant,NULL,len);
+ buf.resize(len);
+ put_32(len);
+ encode_variant(p_variant,buf.ptr(),len);
+ put_data(buf.ptr(),buf.size());
+
+
+}
+
+uint8_t StreamPeer::get_u8(){
+
+ uint8_t buf[1];
+ get_data(buf,1);
+ return buf[0];
+}
+int8_t StreamPeer::get_8(){
+
+ uint8_t buf[1];
+ get_data(buf,1);
+ return buf[0];
+
+}
+uint16_t StreamPeer::get_u16(){
+
+ uint8_t buf[2];
+ get_data(buf,2);
+ uint16_t r = decode_uint16(buf);
+ if (big_endian) {
+ r=BSWAP16(r);
+ }
+ return r;
+
+}
+int16_t StreamPeer::get_16(){
+
+ uint8_t buf[2];
+ get_data(buf,2);
+ uint16_t r = decode_uint16(buf);
+ if (big_endian) {
+ r=BSWAP16(r);
+ }
+ return r;
+
+}
+uint32_t StreamPeer::get_u32(){
+
+ uint8_t buf[4];
+ get_data(buf,4);
+ uint32_t r = decode_uint32(buf);
+ if (big_endian) {
+ r=BSWAP32(r);
+ }
+ return r;
+
+}
+int32_t StreamPeer::get_32(){
+
+ uint8_t buf[4];
+ get_data(buf,4);
+ uint32_t r = decode_uint32(buf);
+ if (big_endian) {
+ r=BSWAP32(r);
+ }
+ return r;
+
+}
+uint64_t StreamPeer::get_u64(){
+
+ uint8_t buf[8];
+ get_data(buf,8);
+ uint64_t r = decode_uint64(buf);
+ if (big_endian) {
+ r=BSWAP64(r);
+ }
+ return r;
+
+}
+int64_t StreamPeer::get_64(){
+
+ uint8_t buf[8];
+ get_data(buf,8);
+ uint64_t r = decode_uint64(buf);
+ if (big_endian) {
+ r=BSWAP64(r);
+ }
+ return r;
+
+}
+float StreamPeer::get_float(){
+
+ uint8_t buf[4];
+ get_data(buf,4);
+
+ if (big_endian) {
+ uint32_t *p32=(uint32_t *)buf;
+ *p32=BSWAP32(*p32);
+ }
+
+ return decode_float(buf);
+}
+
+float StreamPeer::get_double(){
+
+ uint8_t buf[8];
+ get_data(buf,8);
+
+ if (big_endian) {
+ uint64_t *p64=(uint64_t *)buf;
+ *p64=BSWAP64(*p64);
+ }
+
+ return decode_double(buf);
+
+}
+String StreamPeer::get_string(int p_bytes){
+
+ ERR_FAIL_COND_V(p_bytes<0,String());
+
+ Vector<char> buf;
+ buf.resize(p_bytes+1);
+ get_data((uint8_t*)&buf[0],p_bytes);
+ buf[p_bytes]=0;
+ return buf.ptr();
+
+}
+String StreamPeer::get_utf8_string(int p_bytes){
+
+ ERR_FAIL_COND_V(p_bytes<0,String());
+ ERR_FAIL_COND_V(p_bytes<0,String());
+
+ Vector<uint8_t> buf;
+ buf.resize(p_bytes);
+ get_data(buf.ptr(),p_bytes);
+
+ String ret;
+ ret.parse_utf8((const char*)buf.ptr(),buf.size());
+ return ret;
+
+}
+Variant StreamPeer::get_var(){
+
+ int len = get_32();
+ Vector<uint8_t> var;
+ var.resize(len);
+ get_data(var.ptr(),len);
+
+ Variant ret;
+ decode_variant(ret,var.ptr(),len);
+ return ret;
+}
+
void StreamPeer::_bind_methods() {
@@ -123,4 +388,36 @@ void StreamPeer::_bind_methods() {
ObjectTypeDB::bind_method(_MD("get_data","bytes"),&StreamPeer::_get_data);
ObjectTypeDB::bind_method(_MD("get_partial_data","bytes"),&StreamPeer::_get_partial_data);
+
+ ObjectTypeDB::bind_method(_MD("get_available_bytes"),&StreamPeer::get_available_bytes);
+
+ ObjectTypeDB::bind_method(_MD("set_big_endian","enable"),&StreamPeer::set_big_endian);
+ ObjectTypeDB::bind_method(_MD("is_big_endian_enabled"),&StreamPeer::is_big_endian_enabled);
+
+ ObjectTypeDB::bind_method(_MD("put_8","val"),&StreamPeer::put_8);
+ ObjectTypeDB::bind_method(_MD("put_u8","val"),&StreamPeer::put_u8);
+ ObjectTypeDB::bind_method(_MD("put_16","val"),&StreamPeer::put_16);
+ ObjectTypeDB::bind_method(_MD("put_u16","val"),&StreamPeer::put_u16);
+ ObjectTypeDB::bind_method(_MD("put_32","val"),&StreamPeer::put_32);
+ ObjectTypeDB::bind_method(_MD("put_u32","val"),&StreamPeer::put_u32);
+ ObjectTypeDB::bind_method(_MD("put_64","val"),&StreamPeer::put_64);
+ ObjectTypeDB::bind_method(_MD("put_u64","val"),&StreamPeer::put_u64);
+ ObjectTypeDB::bind_method(_MD("put_float","val"),&StreamPeer::put_float);
+ ObjectTypeDB::bind_method(_MD("put_double","val"),&StreamPeer::put_double);
+ ObjectTypeDB::bind_method(_MD("put_utf8_string","val"),&StreamPeer::put_utf8_string);
+ ObjectTypeDB::bind_method(_MD("put_var","val:Variant"),&StreamPeer::put_var);
+
+ ObjectTypeDB::bind_method(_MD("get_8"),&StreamPeer::get_8);
+ ObjectTypeDB::bind_method(_MD("get_u8"),&StreamPeer::get_u8);
+ ObjectTypeDB::bind_method(_MD("get_16"),&StreamPeer::get_16);
+ ObjectTypeDB::bind_method(_MD("get_u16"),&StreamPeer::get_u16);
+ ObjectTypeDB::bind_method(_MD("get_32"),&StreamPeer::get_32);
+ ObjectTypeDB::bind_method(_MD("get_u32"),&StreamPeer::get_u32);
+ ObjectTypeDB::bind_method(_MD("get_64"),&StreamPeer::get_64);
+ ObjectTypeDB::bind_method(_MD("get_u64"),&StreamPeer::get_u64);
+ ObjectTypeDB::bind_method(_MD("get_float"),&StreamPeer::get_float);
+ ObjectTypeDB::bind_method(_MD("get_double"),&StreamPeer::get_double);
+ ObjectTypeDB::bind_method(_MD("get_string","bytes"),&StreamPeer::get_string);
+ ObjectTypeDB::bind_method(_MD("get_utf8_string","bytes"),&StreamPeer::get_utf8_string);
+ ObjectTypeDB::bind_method(_MD("get_var:Variant"),&StreamPeer::get_var);
}
diff --git a/core/io/stream_peer.h b/core/io/stream_peer.h
index e83fc71b93..2bb8f731b2 100644
--- a/core/io/stream_peer.h
+++ b/core/io/stream_peer.h
@@ -44,6 +44,8 @@ protected:
Array _get_data(int p_bytes);
Array _get_partial_data(int p_bytes);
+ bool big_endian;
+
public:
virtual Error put_data(const uint8_t* p_data,int p_bytes)=0; ///< put a whole chunk of data, blocking until it sent
@@ -52,7 +54,41 @@ public:
virtual Error get_data(uint8_t* p_buffer, int p_bytes)=0; ///< read p_bytes of data, if p_bytes > available, it will block
virtual Error get_partial_data(uint8_t* p_buffer, int p_bytes,int &r_received)=0; ///< read as much data as p_bytes into buffer, if less was read, return in r_received
- StreamPeer() {}
+ virtual int get_available_bytes() const=0;
+
+ void set_big_endian(bool p_enable);
+ bool is_big_endian_enabled() const;
+
+ void put_8(int8_t p_val);
+ void put_u8(uint8_t p_val);
+ void put_16(int16_t p_val);
+ void put_u16(uint16_t p_val);
+ void put_32(int32_t p_val);
+ void put_u32(uint32_t p_val);
+ void put_64(int64_t p_val);
+ void put_u64(uint64_t p_val);
+ void put_float(float p_val);
+ void put_double(double p_val);
+ void put_utf8_string(const String& p_string);
+ void put_var(const Variant& p_variant);
+
+ uint8_t get_u8();
+ int8_t get_8();
+ uint16_t get_u16();
+ int16_t get_16();
+ uint32_t get_u32();
+ int32_t get_32();
+ uint64_t get_u64();
+ int64_t get_64();
+ float get_float();
+ float get_double();
+ String get_string(int p_bytes);
+ String get_utf8_string(int p_bytes);
+ Variant get_var();
+
+
+
+ StreamPeer() { big_endian=false; }
};
#endif // STREAM_PEER_H
diff --git a/core/math/geometry.h b/core/math/geometry.h
index b438b41d61..8214895676 100644
--- a/core/math/geometry.h
+++ b/core/math/geometry.h
@@ -886,7 +886,38 @@ public:
}
+ static double vec2_cross(const Point2 &O, const Point2 &A, const Point2 &B)
+ {
+ return (double)(A.x - O.x) * (B.y - O.y) - (double)(A.y - O.y) * (B.x - O.x);
+ }
+
+ // Returns a list of points on the convex hull in counter-clockwise order.
+ // Note: the last point in the returned list is the same as the first one.
+ static Vector<Point2> convex_hull_2d(Vector<Point2> P)
+ {
+ int n = P.size(), k = 0;
+ Vector<Point2> H;
+ H.resize(2*n);
+
+ // Sort points lexicographically
+ P.sort();
+
+ // Build lower hull
+ for (int i = 0; i < n; ++i) {
+ while (k >= 2 && vec2_cross(H[k-2], H[k-1], P[i]) <= 0) k--;
+ H[k++] = P[i];
+ }
+
+ // Build upper hull
+ for (int i = n-2, t = k+1; i >= 0; i--) {
+ while (k >= t && vec2_cross(H[k-2], H[k-1], P[i]) <= 0) k--;
+ H[k++] = P[i];
+ }
+
+ H.resize(k);
+ return H;
+ }
static MeshData build_convex_mesh(const DVector<Plane> &p_planes);
static DVector<Plane> build_sphere_planes(float p_radius, int p_lats, int p_lons, Vector3::Axis p_axis=Vector3::AXIS_Z);
diff --git a/core/object.cpp b/core/object.cpp
index 96f0c86832..9fdd11eb2e 100644
--- a/core/object.cpp
+++ b/core/object.cpp
@@ -1405,6 +1405,10 @@ bool Object::is_connected(const StringName& p_signal, Object *p_to_object, const
bool signal_is_valid = ObjectTypeDB::has_signal(get_type_name(),p_signal);
if (signal_is_valid)
return false;
+
+ if (!script.is_null() && Ref<Script>(script)->has_script_signal(p_signal))
+ return false;
+
ERR_EXPLAIN("Nonexistent signal: "+p_signal);
ERR_FAIL_COND_V(!s,false);
}
@@ -1609,7 +1613,7 @@ void Object::_bind_methods() {
ObjectTypeDB::bind_native_method(METHOD_FLAGS_DEFAULT,"call_deferred",&Object::_call_deferred_bind,mi,defargs);
}
- ObjectTypeDB::bind_method(_MD("callv:var","method","arg_array"),&Object::callv);
+ ObjectTypeDB::bind_method(_MD("callv:Variant","method","arg_array"),&Object::callv);
ObjectTypeDB::bind_method(_MD("has_method"),&Object::has_method);
diff --git a/core/os/os.h b/core/os/os.h
index e5338b4a02..ab1a07276c 100644
--- a/core/os/os.h
+++ b/core/os/os.h
@@ -75,7 +75,7 @@ public:
bool fullscreen;
bool resizable;
float get_aspect() const { return (float)width/(float)height; }
- VideoMode(int p_width=640,int p_height=480,bool p_fullscreen=false, bool p_resizable = true) {width=p_width; height=p_height; fullscreen=p_fullscreen; resizable = p_resizable; }
+ VideoMode(int p_width=1280,int p_height=720,bool p_fullscreen=false, bool p_resizable = true) {width=p_width; height=p_height; fullscreen=p_fullscreen; resizable = p_resizable; }
};
protected:
friend class Main;
@@ -184,6 +184,7 @@ public:
virtual void set_low_processor_usage_mode(bool p_enabled);
virtual bool is_in_low_processor_usage_mode() const;
+ virtual String get_installed_templates_path() const { return ""; };
virtual String get_executable_path() const;
virtual Error execute(const String& p_path, const List<String>& p_arguments,bool p_blocking,ProcessID *r_child_id=NULL,String* r_pipe=NULL,int *r_exitcode=NULL)=0;
virtual Error kill(const ProcessID& p_pid)=0;
diff --git a/core/resource.h b/core/resource.h
index 3596abe673..cd28a51755 100644
--- a/core/resource.h
+++ b/core/resource.h
@@ -144,7 +144,7 @@ public:
#ifdef TOOLS_ENABLED
- void set_last_modified_time(uint64_t p_time) { last_modified_time=p_time; }
+ virtual void set_last_modified_time(uint64_t p_time) { last_modified_time=p_time; }
uint64_t get_last_modified_time() const { return last_modified_time; }
#endif
diff --git a/core/ring_buffer.h b/core/ring_buffer.h
index 3cf9cf9064..5cbd261ec8 100644
--- a/core/ring_buffer.h
+++ b/core/ring_buffer.h
@@ -155,6 +155,12 @@ public:
inline int size() {
return data.size();
};
+
+ inline void clear() {
+ read_pos = 0;
+ write_pos = 0;
+
+ }
void resize(int p_power) {
int old_size = size();
diff --git a/core/typedefs.h b/core/typedefs.h
index 6ca31fd137..460b2e2110 100644
--- a/core/typedefs.h
+++ b/core/typedefs.h
@@ -197,10 +197,22 @@ static inline int get_shift_from_power_of_2( unsigned int p_pixel ) {
return -1;
}
+/** Swap 16 bits value for endianness */
+static inline uint16_t BSWAP16(uint16_t x) {
+ return (x>>8)|(x<<8);
+}
/** Swap 32 bits value for endianness */
static inline uint32_t BSWAP32(uint32_t x) {
return((x<<24)|((x<<8)&0x00FF0000)|((x>>8)&0x0000FF00)|(x>>24));
}
+/** Swap 64 bits value for endianness */
+
+static inline uint64_t BSWAP64(uint64_t x) {
+ x = (x & 0x00000000FFFFFFFF) << 32 | (x & 0xFFFFFFFF00000000) >> 32;
+ x = (x & 0x0000FFFF0000FFFF) << 16 | (x & 0xFFFF0000FFFF0000) >> 16;
+ x = (x & 0x00FF00FF00FF00FF) << 8 | (x & 0xFF00FF00FF00FF00) >> 8;
+ return x;
+}
/** When compiling with RTTI, we can add an "extra"
* layer of safeness in many operations, so dynamic_cast
diff --git a/core/undo_redo.cpp b/core/undo_redo.cpp
index 85cc2bbc7f..ece9a02e24 100644
--- a/core/undo_redo.cpp
+++ b/core/undo_redo.cpp
@@ -482,8 +482,8 @@ void UndoRedo::_bind_methods() {
ObjectTypeDB::bind_native_method(METHOD_FLAGS_DEFAULT,"add_undo_method",&UndoRedo::_add_undo_method,mi,defargs);
}
- ObjectTypeDB::bind_method(_MD("add_do_property","object", "property", "value:var"),&UndoRedo::add_do_property);
- ObjectTypeDB::bind_method(_MD("add_undo_property","object", "property", "value:var"),&UndoRedo::add_undo_property);
+ ObjectTypeDB::bind_method(_MD("add_do_property","object", "property", "value:Variant"),&UndoRedo::add_do_property);
+ ObjectTypeDB::bind_method(_MD("add_undo_property","object", "property", "value:Variant"),&UndoRedo::add_undo_property);
ObjectTypeDB::bind_method(_MD("add_do_reference","object"),&UndoRedo::add_do_reference);
ObjectTypeDB::bind_method(_MD("add_undo_reference","object"),&UndoRedo::add_undo_reference);
ObjectTypeDB::bind_method(_MD("clear_history"),&UndoRedo::clear_history);
diff --git a/core/ustring.cpp b/core/ustring.cpp
index f3c89a7908..bf2494e9b5 100644
--- a/core/ustring.cpp
+++ b/core/ustring.cpp
@@ -897,17 +897,8 @@ String String::num(double p_num,int p_decimals) {
}
char buf[256];
-#if defined(__GNUC__)
-#ifdef MINGW_ENABLED
- //snprintf is inexplicably broken in mingw
- //sprintf(buf,fmt,p_num);
- _snprintf(buf,256,fmt,p_num);
-#else
+#if defined(__GNUC__) || defined(_MSC_VER)
snprintf(buf,256,fmt,p_num);
-#endif
-
-#elif defined(_MSC_VER)
- _snprintf(buf,256,fmt,p_num);
#else
sprintf(buf,fmt,p_num);
#endif
@@ -1178,10 +1169,7 @@ String String::num_scientific(double p_num) {
char buf[256];
-#if defined(_MSC_VER) || defined(MINGW_ENABLED)
-
- _snprintf(buf,256,"%lg",p_num);
-#elif defined(__GNUC__)
+#if defined(__GNUC__) || defined(_MSC_VER)
snprintf(buf,256,"%lg",p_num);
#else
sprintf(buf,"%.16lg",p_num);
@@ -3096,7 +3084,11 @@ String String::http_escape() const {
res += ord;
} else {
char h_Val[3];
- snprintf(h_Val, 3, "%.2X", ord);
+#if defined(__GNUC__) || defined(_MSC_VER)
+ snprintf(h_Val, 3, "%.2X", ord);
+#else
+ sprintf(h_Val, "%.2X", ord);
+#endif
res += "%";
res += h_Val;
}
diff --git a/core/variant_call.cpp b/core/variant_call.cpp
index 0d0248ef28..2ac876c8f4 100644
--- a/core/variant_call.cpp
+++ b/core/variant_call.cpp
@@ -450,6 +450,9 @@ static void _call_##m_type##_##m_method(Variant& r_ret,Variant& p_self,const Var
VCALL_LOCALMEM0(Array,clear);
VCALL_LOCALMEM0R(Array,hash);
VCALL_LOCALMEM1(Array,push_back);
+ VCALL_LOCALMEM1(Array,push_front);
+ VCALL_LOCALMEM0(Array,pop_back);
+ VCALL_LOCALMEM0(Array,pop_front);
VCALL_LOCALMEM1(Array,append);
VCALL_LOCALMEM1(Array,resize);
VCALL_LOCALMEM2(Array,insert);
@@ -858,6 +861,11 @@ static void _call_##m_type##_##m_method(Variant& r_ret,Variant& p_self,const Var
r_ret=Transform(p_args[0]->operator Matrix3(),p_args[1]->operator Vector3());
}
+ static void Image_init1(Variant& r_ret, const Variant** p_args) {
+
+ r_ret=Image(*p_args[0],*p_args[1],*p_args[2],Image::Format(p_args[3]->operator int()));
+ }
+
static void add_constructor(VariantConstructFunc p_func,const Variant::Type p_type,
const String& p_name1="", const Variant::Type p_type1=Variant::NIL,
const String& p_name2="", const Variant::Type p_type2=Variant::NIL,
@@ -1421,12 +1429,15 @@ _VariantCall::addfunc(Variant::m_vtype,Variant::m_ret,_SCS(#m_method),VCALL(m_cl
ADDFUNC0(ARRAY,NIL,Array,clear,varray());
ADDFUNC0(ARRAY,INT,Array,hash,varray());
ADDFUNC1(ARRAY,NIL,Array,push_back,NIL,"value",varray());
+ ADDFUNC1(ARRAY,NIL,Array,push_front,NIL,"value",varray());
ADDFUNC1(ARRAY,NIL,Array,append,NIL,"value",varray());
ADDFUNC1(ARRAY,NIL,Array,resize,INT,"pos",varray());
ADDFUNC2(ARRAY,NIL,Array,insert,INT,"pos",NIL,"value",varray());
ADDFUNC1(ARRAY,NIL,Array,remove,INT,"pos",varray());
ADDFUNC1(ARRAY,NIL,Array,erase,NIL,"value",varray());
ADDFUNC1(ARRAY,INT,Array,find,NIL,"value",varray());
+ ADDFUNC0(ARRAY,NIL,Array,pop_back,varray());
+ ADDFUNC0(ARRAY,NIL,Array,pop_front,varray());
ADDFUNC0(ARRAY,NIL,Array,sort,varray());
ADDFUNC2(ARRAY,NIL,Array,sort_custom,OBJECT,"obj",STRING,"func",varray());
ADDFUNC0(ARRAY,NIL,Array,invert,varray());
@@ -1583,6 +1594,8 @@ _VariantCall::addfunc(Variant::m_vtype,Variant::m_ret,_SCS(#m_method),VCALL(m_cl
_VariantCall::add_constructor(_VariantCall::Transform_init1,Variant::TRANSFORM,"x_axis",Variant::VECTOR3,"y_axis",Variant::VECTOR3,"z_axis",Variant::VECTOR3,"origin",Variant::VECTOR3);
_VariantCall::add_constructor(_VariantCall::Transform_init2,Variant::TRANSFORM,"basis",Variant::MATRIX3,"origin",Variant::VECTOR3);
+ _VariantCall::add_constructor(_VariantCall::Image_init1,Variant::IMAGE,"width",Variant::INT,"height",Variant::INT,"mipmaps",Variant::BOOL,"format",Variant::INT);
+
/* REGISTER CONSTANTS */
_VariantCall::constant_data[Variant::VECTOR3].value["AXIS_X"]=Vector3::AXIS_X;
diff --git a/core/variant_op.cpp b/core/variant_op.cpp
index 1bcfa7d2ae..e33b79e63c 100644
--- a/core/variant_op.cpp
+++ b/core/variant_op.cpp
@@ -2635,7 +2635,7 @@ bool Variant::in(const Variant& p_index, bool *r_valid) const {
if (l) {
for(int i=0;i<l;i++) {
- if ((*arr)[i]==p_index)
+ if (evaluate(OP_EQUAL,(*arr)[i],p_index))
return true;
}
diff --git a/core/variant_parser.cpp b/core/variant_parser.cpp
index fed8c28740..239b129388 100644
--- a/core/variant_parser.cpp
+++ b/core/variant_parser.cpp
@@ -460,6 +460,19 @@ Error VariantParser::parse_value(Token& token,Variant &value,Stream *p_stream,in
value=Vector2(args[0],args[1]);
return OK;
+ } else if (id=="Rect2"){
+
+ Vector<float> args;
+ Error err = _parse_construct<float>(p_stream,args,line,r_err_str);
+ if (err)
+ return err;
+
+ if (args.size()!=4) {
+ r_err_str="Expected 4 arguments for constructor";
+ }
+
+ value=Rect2(args[0],args[1],args[2],args[3]);
+ return OK;
} else if (id=="Vector3"){
Vector<float> args;
diff --git a/core/vector.h b/core/vector.h
index d103400622..78dff5eadb 100644
--- a/core/vector.h
+++ b/core/vector.h
@@ -42,7 +42,7 @@
template<class T>
class Vector {
- mutable void* _ptr;
+ mutable T* _ptr;
// internal helpers
@@ -51,21 +51,21 @@ class Vector {
if (!_ptr)
return NULL;
- return reinterpret_cast<SafeRefCount*>(_ptr);
+ return reinterpret_cast<SafeRefCount*>((uint8_t*)_ptr-sizeof(int)-sizeof(SafeRefCount));
}
_FORCE_INLINE_ int* _get_size() const {
if (!_ptr)
return NULL;
- return reinterpret_cast<int*>(((uint8_t*)(_ptr))+sizeof(SafeRefCount));
+ return reinterpret_cast<int*>((uint8_t*)_ptr-sizeof(int));
}
_FORCE_INLINE_ T* _get_data() const {
if (!_ptr)
return NULL;
- return reinterpret_cast<T*>(((uint8_t*)(_ptr))+sizeof(SafeRefCount)+sizeof(int));
+ return reinterpret_cast<T*>(_ptr);
}
@@ -88,11 +88,11 @@ public:
_FORCE_INLINE_ void clear() { resize(0); }
_FORCE_INLINE_ int size() const {
-
- if (!_ptr)
- return 0;
+ int* size = _get_size();
+ if (size)
+ return *size;
else
- return *reinterpret_cast<int*>(((uint8_t*)(_ptr))+sizeof(SafeRefCount));
+ return 0;
}
_FORCE_INLINE_ bool empty() const { return _ptr == 0; }
Error resize(int p_size);
@@ -174,7 +174,7 @@ void Vector<T>::_unref(void *p_data) {
if (!p_data)
return;
- SafeRefCount *src = reinterpret_cast<SafeRefCount*>(p_data);
+ SafeRefCount *src = reinterpret_cast<SafeRefCount*>((uint8_t*)p_data-sizeof(int)-sizeof(SafeRefCount));
if (!src->unref())
return; // still in use
@@ -189,7 +189,7 @@ void Vector<T>::_unref(void *p_data) {
}
// free mem
- memfree(p_data);
+ memfree((uint8_t*)p_data-sizeof(int)-sizeof(SafeRefCount));
}
@@ -201,7 +201,8 @@ void Vector<T>::_copy_on_write() {
if (_get_refcount()->get() > 1 ) {
/* in use by more than me */
- SafeRefCount *src_new=(SafeRefCount *)memalloc(_get_alloc_size(*_get_size()));
+ void* mem_new = memalloc(_get_alloc_size(*_get_size()));
+ SafeRefCount *src_new=(SafeRefCount *)mem_new;
src_new->init();
int * _size = (int*)(src_new+1);
*_size=*_get_size();
@@ -215,7 +216,7 @@ void Vector<T>::_copy_on_write() {
}
_unref(_ptr);
- _ptr=src_new;
+ _ptr=_data;
}
}
@@ -260,16 +261,17 @@ Error Vector<T>::resize(int p_size) {
if (size()==0) {
// alloc from scratch
- _ptr = (T*)memalloc(_get_alloc_size(p_size));
- ERR_FAIL_COND_V( !_ptr ,ERR_OUT_OF_MEMORY);
+ void* ptr=memalloc(_get_alloc_size(p_size));
+ ERR_FAIL_COND_V( !ptr ,ERR_OUT_OF_MEMORY);
+ _ptr=(T*)((uint8_t*)ptr+sizeof(int)+sizeof(SafeRefCount));
_get_refcount()->init(); // init refcount
*_get_size()=0; // init size (currently, none)
} else {
- void *_ptrnew = (T*)memrealloc(_ptr,_get_alloc_size(p_size));
+ void *_ptrnew = (T*)memrealloc((uint8_t*)_ptr-sizeof(int)-sizeof(SafeRefCount),_get_alloc_size(p_size));
ERR_FAIL_COND_V( !_ptrnew ,ERR_OUT_OF_MEMORY);
- _ptr=_ptrnew;
+ _ptr=(T*)((uint8_t*)_ptrnew+sizeof(int)+sizeof(SafeRefCount));
}
// construct the newly created elements
@@ -291,10 +293,10 @@ Error Vector<T>::resize(int p_size) {
t->~T();
}
- void *_ptrnew = (T*)memrealloc(_ptr,_get_alloc_size(p_size));
+ void *_ptrnew = (T*)memrealloc((uint8_t*)_ptr-sizeof(int)-sizeof(SafeRefCount),_get_alloc_size(p_size));
ERR_FAIL_COND_V( !_ptrnew ,ERR_OUT_OF_MEMORY);
- _ptr=_ptrnew;
+ _ptr=(T*)((uint8_t*)_ptrnew+sizeof(int)+sizeof(SafeRefCount));
*_get_size()=p_size;
diff --git a/demos/2d/area_input/input.gd b/demos/2d/area_input/input.gd
index 3f719fc853..e9cc9f3c1d 100644
--- a/demos/2d/area_input/input.gd
+++ b/demos/2d/area_input/input.gd
@@ -1,16 +1,15 @@
extends Area2D
-#virtual from CollisionObject2D (also available as signal)
+
+# 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 )
+ # 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("")
-
+# 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
index 1a2dcbc5f4..f3a19f64da 100644
--- a/demos/2d/area_input/input.scn
+++ 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
index c17b20f9c8..169079ea46 100644
--- a/demos/2d/dynamic_collision_shapes/ball.gd
+++ b/demos/2d/dynamic_collision_shapes/ball.gd
@@ -1,21 +1,17 @@
extends RigidBody2D
-# member variables here, example:
-# var a=2
-# var b="textvar"
+# Member variables
+var timeout = 5
-var timeout=5
func _process(delta):
- timeout-=delta
- if (timeout<1):
+ timeout -= delta
+ if (timeout < 1):
set_opacity(timeout)
- if (timeout<0):
+ if (timeout < 0):
queue_free()
-func _ready():
- set_process(true)
- # Initialization here
- pass
+func _ready():
+ set_process(true)
diff --git a/demos/2d/dynamic_collision_shapes/ball.scn b/demos/2d/dynamic_collision_shapes/ball.scn
index e332de276d..51a91d5bc0 100644
--- a/demos/2d/dynamic_collision_shapes/ball.scn
+++ b/demos/2d/dynamic_collision_shapes/ball.scn
Binary files differ
diff --git a/demos/2d/dynamic_collision_shapes/dynamic_colobjs.gd b/demos/2d/dynamic_collision_shapes/dynamic_colobjs.gd
index a6a42a1914..25db51642b 100644
--- a/demos/2d/dynamic_collision_shapes/dynamic_colobjs.gd
+++ b/demos/2d/dynamic_collision_shapes/dynamic_colobjs.gd
@@ -1,23 +1,19 @@
extends Node2D
-# member variables here, example:
-# var a=2
-# var b="textvar"
-const EMIT_INTERVAL=0.1
-var timeout=EMIT_INTERVAL
+# Member variables
+const EMIT_INTERVAL = 0.1
+var timeout = EMIT_INTERVAL
+
func _process(delta):
- timeout-=delta
- if (timeout<0):
- timeout=EMIT_INTERVAL
+ 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) )
+ ball.set_pos(Vector2(randf()*get_viewport_rect().size.x, 0))
add_child(ball)
-
-func _ready():
- set_process(true)
- # Initialization here
- pass
+func _ready():
+ set_process(true)
diff --git a/demos/2d/dynamic_collision_shapes/dynamic_colobjs.scn b/demos/2d/dynamic_collision_shapes/dynamic_colobjs.scn
index e6d1ebf9cf..6d17e2209f 100644
--- a/demos/2d/dynamic_collision_shapes/dynamic_colobjs.scn
+++ b/demos/2d/dynamic_collision_shapes/dynamic_colobjs.scn
Binary files differ
diff --git a/demos/2d/fog_of_war/fog.gd b/demos/2d/fog_of_war/fog.gd
index 9da5680e4d..3ac8df0e17 100644
--- a/demos/2d/fog_of_war/fog.gd
+++ b/demos/2d/fog_of_war/fog.gd
@@ -1,86 +1,78 @@
extends TileMap
-# member variables here, example:
-# var a=2
-# var b="textvar"
+# Member variables
-# 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
+# Boundaries 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
+var position # Player's position
-# iteration variables
+# Iteration variables
var x
var y
-# variable to check if player moved
+# Variables to check if the 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)
+# 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
+
+# Process that runs in realtime
func _fixed_process(delta):
position = get_node("../troll").get_pos()
- # calculate the corresponding tile
+ # Calculate the corresponding tile
# from the players position
x = int(position.x/get_cell_size().x)
- # switching from positive to negative tile positions
+ # Switching from positive to negative tile positions
# causes problems because of rounding problems
if position.x < 0:
- x -= 1 # correct negative values
+ x -= 1 # Correct negative values
y = int(position.y/get_cell_size().y)
- if position.y < 0:
+ 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
+
+ # 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)
+ 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
+
+ # 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)
+ 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)
+ # 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.scn b/demos/2d/fog_of_war/fog.scn
index 4987f1ead5..cf19601567 100644
--- a/demos/2d/fog_of_war/fog.scn
+++ b/demos/2d/fog_of_war/fog.scn
Binary files differ
diff --git a/demos/2d/fog_of_war/tile_edit.scn b/demos/2d/fog_of_war/tile_edit.scn
index aaca19d370..3eddf38e48 100644
--- a/demos/2d/fog_of_war/tile_edit.scn
+++ 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
index d118d3a2ba..6f40072e84 100644
--- a/demos/2d/fog_of_war/troll.gd
+++ b/demos/2d/fog_of_war/troll.gd
@@ -2,42 +2,37 @@
extends KinematicBody2D
# This is a simple collision demo showing how
-# the kinematic cotroller works.
+# the kinematic controller works.
# move() will allow to move the node, and will
-# always move it to a non-colliding spot,
+# always move it to a non-colliding spot,
# as long as it starts from a non-colliding spot too.
+# Member variables
+const MOTION_SPEED = 160 # Pixels/second
-#pixels / second
-const MOTION_SPEED=160
func _fixed_process(delta):
-
var motion = Vector2()
if (Input.is_action_pressed("move_up")):
- motion+=Vector2(0,-1)
+ motion += Vector2(0, -1)
if (Input.is_action_pressed("move_bottom")):
- motion+=Vector2(0,1)
+ motion += Vector2(0, 1)
if (Input.is_action_pressed("move_left")):
- motion+=Vector2(-1,0)
+ motion += Vector2(-1, 0)
if (Input.is_action_pressed("move_right")):
- motion+=Vector2(1,0)
+ motion += Vector2(1, 0)
- motion = motion.normalized() * MOTION_SPEED * delta
+ motion = motion.normalized()*MOTION_SPEED*delta
motion = move(motion)
- #make character slide nicely through the world
+ # Make character slide nicely through the world
var slide_attempts = 4
- while(is_colliding() and slide_attempts>0):
+ while(is_colliding() and slide_attempts > 0):
motion = get_collision_normal().slide(motion)
- motion=move(motion)
- slide_attempts-=1
-
+ motion = move(motion)
+ slide_attempts -= 1
+
func _ready():
- # Initalization here
set_fixed_process(true)
- pass
-
-
diff --git a/demos/2d/fog_of_war/troll.scn b/demos/2d/fog_of_war/troll.scn
index f5d87c3631..ab9af17221 100644
--- a/demos/2d/fog_of_war/troll.scn
+++ 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
index 9dffbc4662..fcc878e565 100644
--- a/demos/2d/hdr/beach_cave.gd
+++ b/demos/2d/hdr/beach_cave.gd
@@ -1,26 +1,21 @@
extends Node2D
-# member variables here, example:
-# var a=2
-# var b="textvar"
-const CAVE_LIMIT=1000
+# Member variables
+const CAVE_LIMIT = 1000
-func _input(ev):
- if (ev.type==InputEvent.MOUSE_MOTION and ev.button_mask&1):
- var rel_x = ev.relative_x
+
+func _input(event):
+ if (event.type == InputEvent.MOUSE_MOTION and event.button_mask&1):
+ var rel_x = event.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
+ 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
index 4147a130ad..6a4108e7a5 100644
--- a/demos/2d/hdr/beach_cave.scn
+++ b/demos/2d/hdr/beach_cave.scn
Binary files differ
diff --git a/demos/2d/hexamap/map.scn b/demos/2d/hexamap/map.scn
index 5798aab850..de49527003 100644
--- a/demos/2d/hexamap/map.scn
+++ b/demos/2d/hexamap/map.scn
Binary files differ
diff --git a/demos/2d/hexamap/tiles.scn b/demos/2d/hexamap/tiles.scn
index 265aedac2b..a019bbb92d 100644
--- a/demos/2d/hexamap/tiles.scn
+++ b/demos/2d/hexamap/tiles.scn
Binary files differ
diff --git a/demos/2d/hexamap/troll.gd b/demos/2d/hexamap/troll.gd
index d118d3a2ba..82938fdf10 100644
--- a/demos/2d/hexamap/troll.gd
+++ b/demos/2d/hexamap/troll.gd
@@ -2,42 +2,37 @@
extends KinematicBody2D
# This is a simple collision demo showing how
-# the kinematic cotroller works.
+# the kinematic controller 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.
+# Member variables
+const MOTION_SPEED = 160 # Pixels/second
-#pixels / second
-const MOTION_SPEED=160
func _fixed_process(delta):
-
var motion = Vector2()
if (Input.is_action_pressed("move_up")):
- motion+=Vector2(0,-1)
+ motion += Vector2(0, -1)
if (Input.is_action_pressed("move_bottom")):
- motion+=Vector2(0,1)
+ motion += Vector2(0, 1)
if (Input.is_action_pressed("move_left")):
- motion+=Vector2(-1,0)
+ motion += Vector2(-1, 0)
if (Input.is_action_pressed("move_right")):
- motion+=Vector2(1,0)
+ motion += Vector2(1, 0)
- motion = motion.normalized() * MOTION_SPEED * delta
+ motion = motion.normalized()*MOTION_SPEED*delta
motion = move(motion)
- #make character slide nicely through the world
+ # Make character slide nicely through the world
var slide_attempts = 4
- while(is_colliding() and slide_attempts>0):
+ while(is_colliding() and slide_attempts > 0):
motion = get_collision_normal().slide(motion)
- motion=move(motion)
- slide_attempts-=1
-
+ motion = move(motion)
+ slide_attempts -= 1
+
func _ready():
- # Initalization here
set_fixed_process(true)
- pass
-
-
diff --git a/demos/2d/hexamap/troll.scn b/demos/2d/hexamap/troll.scn
index f5d87c3631..1f33dabf8e 100644
--- a/demos/2d/hexamap/troll.scn
+++ b/demos/2d/hexamap/troll.scn
Binary files differ
diff --git a/demos/2d/isometric/dungeon.scn b/demos/2d/isometric/dungeon.scn
index e03a3bd3dd..8f0f316d73 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 c04ea5382c..e487285f83 100644
--- a/demos/2d/isometric/tileset.scn
+++ b/demos/2d/isometric/tileset.scn
Binary files differ
diff --git a/demos/2d/isometric/troll.gd b/demos/2d/isometric/troll.gd
index d118d3a2ba..d8d4880df1 100644
--- a/demos/2d/isometric/troll.gd
+++ b/demos/2d/isometric/troll.gd
@@ -2,42 +2,37 @@
extends KinematicBody2D
# This is a simple collision demo showing how
-# the kinematic cotroller works.
+# the kinematic controller 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.
+# Member variables
+const MOTION_SPEED = 160 # Pixels/seconds
-#pixels / second
-const MOTION_SPEED=160
func _fixed_process(delta):
-
var motion = Vector2()
if (Input.is_action_pressed("move_up")):
- motion+=Vector2(0,-1)
+ motion += Vector2(0, -1)
if (Input.is_action_pressed("move_bottom")):
- motion+=Vector2(0,1)
+ motion += Vector2(0, 1)
if (Input.is_action_pressed("move_left")):
- motion+=Vector2(-1,0)
+ motion += Vector2(-1, 0)
if (Input.is_action_pressed("move_right")):
- motion+=Vector2(1,0)
+ motion += Vector2(1, 0)
- motion = motion.normalized() * MOTION_SPEED * delta
+ motion = motion.normalized()*MOTION_SPEED*delta
motion = move(motion)
- #make character slide nicely through the world
+ # Make character slide nicely through the world
var slide_attempts = 4
- while(is_colliding() and slide_attempts>0):
+ while(is_colliding() and slide_attempts > 0):
motion = get_collision_normal().slide(motion)
- motion=move(motion)
- slide_attempts-=1
-
+ motion = move(motion)
+ slide_attempts -= 1
+
func _ready():
- # Initalization here
set_fixed_process(true)
- pass
-
-
diff --git a/demos/2d/isometric/troll.scn b/demos/2d/isometric/troll.scn
index 19b566fe05..d53aac4fbf 100644
--- a/demos/2d/isometric/troll.scn
+++ b/demos/2d/isometric/troll.scn
Binary files differ
diff --git a/demos/2d/isometric_light/column.scn b/demos/2d/isometric_light/column.scn
index f0b7683885..03f3c2c976 100644
--- a/demos/2d/isometric_light/column.scn
+++ 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
index 30c766936c..508cd3728c 100644
--- a/demos/2d/isometric_light/cubio.gd
+++ b/demos/2d/isometric_light/cubio.gd
@@ -1,96 +1,85 @@
extends KinematicBody2D
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
+# Member variables
const MAX_SPEED = 300.0
const IDLE_SPEED = 10.0
-const ACCEL=5.0
-const VSCALE=0.5
-const SHOOT_INTERVAL=0.3
+const ACCEL = 5.0
+const VSCALE = 0.5
+const SHOOT_INTERVAL = 0.3
+
+var speed = Vector2()
+var current_anim = ""
+var current_mirror = false
-var speed=Vector2()
-var current_anim=""
-var current_mirror=false
+var shoot_countdown = 0
-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()
+func _input(event):
+ if (event.type == InputEvent.MOUSE_BUTTON and event.button_index == 1 and event.pressed and shoot_countdown <= 0):
+ var pos = get_canvas_transform().affine_inverse()*event.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 )
+ bullet.advance_dir = dir
+ bullet.set_pos(get_global_pos() + dir*60)
get_parent().add_child(bullet)
- shoot_countdown=SHOOT_INTERVAL
-
-
-
+ shoot_countdown = SHOOT_INTERVAL
+
func _fixed_process(delta):
-
- shoot_countdown-=delta
+ shoot_countdown -= delta
var dir = Vector2()
if (Input.is_action_pressed("up")):
- dir+=Vector2(0,-1)
+ dir += Vector2(0, -1)
if (Input.is_action_pressed("down")):
- dir+=Vector2(0,1)
+ dir += Vector2(0, 1)
if (Input.is_action_pressed("left")):
- dir+=Vector2(-1,0)
+ 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)
+ 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)
+ motion = n.slide(motion)
move(motion)
- var next_anim=""
- var next_mirror=false
+ 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)
+ 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"
+ 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):
+ 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
-
+ 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
index fc931b0c8d..55e2185247 100644
--- a/demos/2d/isometric_light/cubio.scn
+++ b/demos/2d/isometric_light/cubio.scn
Binary files differ
diff --git a/demos/2d/isometric_light/map.gd b/demos/2d/isometric_light/map.gd
index f712aeeaec..6b790ddf1c 100644
--- a/demos/2d/isometric_light/map.gd
+++ b/demos/2d/isometric_light/map.gd
@@ -1,18 +1,7 @@
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"):
+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
index 89002f991f..da3fc5654f 100644
--- a/demos/2d/isometric_light/map.scn
+++ b/demos/2d/isometric_light/map.scn
Binary files differ
diff --git a/demos/2d/isometric_light/shoot.gd b/demos/2d/isometric_light/shoot.gd
index 0486bbb658..b48d4ad34b 100644
--- a/demos/2d/isometric_light/shoot.gd
+++ b/demos/2d/isometric_light/shoot.gd
@@ -1,27 +1,21 @@
extends KinematicBody2D
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
-var advance_dir=Vector2(1,0)
+# Member variables
const ADVANCE_SPEED = 500.0
-var hit=false
+var advance_dir = Vector2(1, 0)
+var hit = false
+
func _fixed_process(delta):
-
if (hit):
return
- move(advance_dir*delta*ADVANCE_SPEED)
+ move(advance_dir*delta*ADVANCE_SPEED)
if (is_colliding()):
get_node("anim").play("explode")
- hit=true
+ 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
index 672608810f..6909ae0c71 100644
--- a/demos/2d/isometric_light/shoot.scn
+++ b/demos/2d/isometric_light/shoot.scn
Binary files differ
diff --git a/demos/2d/isometric_light/tileset_scene.scn b/demos/2d/isometric_light/tileset_scene.scn
index 3d0773c9c5..4841cc18a7 100644
--- a/demos/2d/isometric_light/tileset_scene.scn
+++ 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
index 3f08b33311..9d6a8e2eae 100644
--- a/demos/2d/isometric_light/torch.scn
+++ b/demos/2d/isometric_light/torch.scn
Binary files differ
diff --git a/demos/2d/kinematic_char/colworld.gd b/demos/2d/kinematic_char/colworld.gd
index fe2dc30bb6..7926ef9d54 100644
--- a/demos/2d/kinematic_char/colworld.gd
+++ b/demos/2d/kinematic_char/colworld.gd
@@ -1,18 +1,8 @@
extends Node2D
-#member variables here, example:
-#var a=2
-#var b="textvar"
-func _ready():
- #Initalization here
- pass
-
-
-
-
-func _on_princess_body_enter( body ):
- #the name of this editor-generated callback is unfortunate
- if (body.get_name()=="player"):
+func _on_princess_body_enter(body):
+ # The name of this editor-generated callback is unfortunate
+ 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 e66705368d..ff10826563 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 4ce8f836ae..8bdd5e2fc5 100644
--- a/demos/2d/kinematic_char/engine.cfg
+++ b/demos/2d/kinematic_char/engine.cfg
@@ -1,6 +1,6 @@
[application]
-name="Kinematic Collision"
+name="Kinematic Character"
main_scene="res://colworld.scn"
icon="res://icon.png"
diff --git a/demos/2d/kinematic_char/player.gd b/demos/2d/kinematic_char/player.gd
index 329382408b..2890cc2ce3 100644
--- a/demos/2d/kinematic_char/player.gd
+++ b/demos/2d/kinematic_char/player.gd
@@ -1,137 +1,123 @@
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.
+# This is a simple collision demo showing how
+# the kinematic controller 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.
+# Member variables
+const GRAVITY = 500.0 # Pixels/second
-#pixels / second
-const GRAVITY = 500.0
-
-#Angle in degrees towards either side that the player can
-#consider "floor".
+# Angle in degrees towards either side that the player can consider "floor"
const FLOOR_ANGLE_TOLERANCE = 40
const WALK_FORCE = 600
-const WALK_MIN_SPEED=10
+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 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
+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
+var on_air_time = 100
+var jumping = false
-var prev_jump_pressed=false
+var prev_jump_pressed = false
-func _fixed_process(delta):
- #create forces
- var force = Vector2(0,GRAVITY)
+func _fixed_process(delta):
+ # Create forces
+ var force = Vector2(0, GRAVITY)
var walk_left = Input.is_action_pressed("move_left")
var walk_right = Input.is_action_pressed("move_right")
var jump = Input.is_action_pressed("jump")
-
- var stop=true
+
+ var stop = true
if (walk_left):
- if (velocity.x<=WALK_MIN_SPEED and velocity.x > -WALK_MAX_SPEED):
- force.x-=WALK_FORCE
- stop=false
-
+ if (velocity.x <= WALK_MIN_SPEED and velocity.x > -WALK_MAX_SPEED):
+ force.x -= WALK_FORCE
+ stop = false
elif (walk_right):
- if (velocity.x>=-WALK_MIN_SPEED and velocity.x < WALK_MAX_SPEED):
- force.x+=WALK_FORCE
- stop=false
+ if (velocity.x >= -WALK_MIN_SPEED and velocity.x < WALK_MAX_SPEED):
+ force.x += WALK_FORCE
+ stop = false
if (stop):
var vsign = sign(velocity.x)
var vlen = abs(velocity.x)
- vlen -= STOP_FORCE * delta
- if (vlen<0):
- vlen=0
-
- velocity.x=vlen*vsign
+ vlen -= STOP_FORCE*delta
+ if (vlen < 0):
+ vlen = 0
-
-
- #integrate forces to velocity
- velocity += force * delta
+ velocity.x = vlen*vsign
- #integrate velocity into motion and move
- var motion = velocity * delta
-
- #move and consume motion
+ # Integrate forces to velocity
+ velocity += force*delta
+
+ # Integrate velocity into motion and move
+ var motion = velocity*delta
+
+ # Move and consume motion
motion = move(motion)
-
-
- var floor_velocity=Vector2()
-
+
+ var floor_velocity = Vector2()
+
if (is_colliding()):
- # you can check which tile was collision against with this
+ # You can check which tile was collision against with this
# print(get_collider_metadata())
-
- #ran against something, is it the floor? get normal
+
+ # Ran against something, is it the floor? Get normal
var n = get_collision_normal()
-
- if ( rad2deg(acos(n.dot( Vector2(0,-1)))) < FLOOR_ANGLE_TOLERANCE ):
- #if angle to the "up" vectors is < angle tolerance
- #char is on floor
- on_air_time=0
- floor_velocity=get_collider_velocity()
-
-
- 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)
+
+ if (rad2deg(acos(n.dot(Vector2(0, -1)))) < FLOOR_ANGLE_TOLERANCE):
+ # If angle to the "up" vectors is < angle tolerance
+ # char is on floor
+ on_air_time = 0
+ floor_velocity = get_collider_velocity()
+
+ 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
-
+ 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
-
+ # 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
+ velocity = n.slide(velocity)
+ # Then move again
move(motion)
-
- if (floor_velocity!=Vector2()):
- #if floor moves, move with floor
+
+ 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.
+
+ 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
-
- on_air_time+=delta
- prev_jump_pressed=jump
+ velocity.y = -JUMP_SPEED
+ jumping = true
+
+ on_air_time += delta
+ prev_jump_pressed = jump
+
func _ready():
- #Initalization here
set_fixed_process(true)
- pass
-
-
diff --git a/demos/2d/kinematic_char/player.scn b/demos/2d/kinematic_char/player.scn
index 5809c0e98a..5ee86ce85d 100644
--- a/demos/2d/kinematic_char/player.scn
+++ b/demos/2d/kinematic_char/player.scn
Binary files differ
diff --git a/demos/2d/kinematic_col/colworld.scn b/demos/2d/kinematic_col/colworld.scn
index 064ff12075..06607b7efd 100644
--- a/demos/2d/kinematic_col/colworld.scn
+++ b/demos/2d/kinematic_col/colworld.scn
Binary files differ
diff --git a/demos/2d/kinematic_col/player.gd b/demos/2d/kinematic_col/player.gd
index 36784a9d9f..ce09e1509e 100644
--- a/demos/2d/kinematic_col/player.gd
+++ b/demos/2d/kinematic_col/player.gd
@@ -2,35 +2,30 @@
extends KinematicBody2D
# This is a simple collision demo showing how
-# the kinematic cotroller works.
+# the kinematic controller 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.
+# Member variables
+const MOTION_SPEED = 160 # Pixels/second
-#pixels / second
-const MOTION_SPEED=160
func _fixed_process(delta):
-
var motion = Vector2()
if (Input.is_action_pressed("move_up")):
- motion+=Vector2(0,-1)
+ motion += Vector2(0, -1)
if (Input.is_action_pressed("move_bottom")):
- motion+=Vector2(0,1)
+ motion += Vector2(0, 1)
if (Input.is_action_pressed("move_left")):
- motion+=Vector2(-1,0)
+ motion += Vector2(-1, 0)
if (Input.is_action_pressed("move_right")):
- motion+=Vector2(1,0)
+ motion += Vector2(1, 0)
- motion = motion.normalized() * MOTION_SPEED * delta
+ motion = motion.normalized()*MOTION_SPEED*delta
move(motion)
-
+
func _ready():
- # Initalization here
set_fixed_process(true)
- pass
-
-
diff --git a/demos/2d/kinematic_col/player.scn b/demos/2d/kinematic_col/player.scn
index e558bffe8e..28ad204472 100644
--- a/demos/2d/kinematic_col/player.scn
+++ b/demos/2d/kinematic_col/player.scn
Binary files differ
diff --git a/demos/2d/light_mask/lightmask.scn b/demos/2d/light_mask/lightmask.scn
index 08805f44c6..fcf56b5b84 100644
--- a/demos/2d/light_mask/lightmask.scn
+++ b/demos/2d/light_mask/lightmask.scn
Binary files differ
diff --git a/demos/2d/lights_shadows/light_shadows.scn b/demos/2d/lights_shadows/light_shadows.scn
index 152f68a407..24ccd1e0be 100644
--- a/demos/2d/lights_shadows/light_shadows.scn
+++ b/demos/2d/lights_shadows/light_shadows.scn
Binary files differ
diff --git a/demos/2d/lookat/lookat.gd b/demos/2d/lookat/lookat.gd
index 742c5b0671..c45c3ad622 100644
--- a/demos/2d/lookat/lookat.gd
+++ b/demos/2d/lookat/lookat.gd
@@ -1,43 +1,33 @@
extends Sprite
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
-const MODE_DIRECT=0
-const MODE_CONSTANT=1
-const MODE_SMOOTH=2
+# Member variables
+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
+export(int, "Direct", "Constant", "Smooth") var mode = MODE_DIRECT
+
func _process(delta):
var mpos = get_viewport().get_mouse_pos()
- if (mode==MODE_DIRECT):
-
+ if (mode == MODE_DIRECT):
look_at(mpos)
-
- elif (mode==MODE_CONSTANT):
-
+ elif (mode == MODE_CONSTANT):
var ang = get_angle_to(mpos)
var s = sign(ang)
- ang=abs(ang)
-
- rotate( min(ang,ROTATION_SPEED*delta)*s )
+ ang = abs(ang)
- elif (mode==MODE_SMOOTH):
-
- var ang = get_angle_to(mpos)
+ rotate(min(ang, ROTATION_SPEED*delta)*s)
+ elif (mode == MODE_SMOOTH):
+ var ang = get_angle_to(mpos)
- rotate( ang*delta*SMOOTH_SPEED )
+ 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
index 880070b4c7..66be060c06 100644
--- a/demos/2d/lookat/lookat.scn
+++ b/demos/2d/lookat/lookat.scn
Binary files differ
diff --git a/demos/2d/motion/motion.gd b/demos/2d/motion/motion.gd
index 8f8f56a889..f9bbd6f90d 100644
--- a/demos/2d/motion/motion.gd
+++ b/demos/2d/motion/motion.gd
@@ -1,38 +1,33 @@
extends Sprite
-
-export var use_idle=true
-
-# member variables here, example:
-# var a=2
-# var b="textvar"
+# Member variables
const BEGIN = -113
const END = 907
-const TIME = 5.0 # seconds
-const SPEED = (END-BEGIN)/TIME
+const TIME = 5.0 # Seconds
+const SPEED = (END - BEGIN)/TIME
+
+export var use_idle = true
+
func _process(delta):
var ofs = get_pos()
- ofs.x+=delta*SPEED
- if (ofs.x>END):
- ofs.x=BEGIN
+ 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
+ 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
index 6c5b5307ac..6e19356674 100644
--- a/demos/2d/motion/motion.scn
+++ b/demos/2d/motion/motion.scn
Binary files differ
diff --git a/demos/2d/navpoly/navigation.gd b/demos/2d/navpoly/navigation.gd
index 9c3dc2921d..4cfa2ad733 100644
--- a/demos/2d/navpoly/navigation.gd
+++ b/demos/2d/navpoly/navigation.gd
@@ -1,63 +1,53 @@
extends Navigation2D
-# member variables here, example:
-# var a=2
-# var b="textvar"
-var begin=Vector2()
-var end=Vector2()
-var path=[]
+# Member variables
+const SPEED = 200.0
-const SPEED=200.0
-
-func _process(delta):
+var begin = Vector2()
+var end = Vector2()
+var path = []
- if (path.size()>1):
-
+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]
+ 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
+ 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]
+ 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=[]
+ 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
+ var p = get_simple_path(begin, end, true)
+ path = Array(p) # Vector2array too 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()
+func _input(event):
+ if (event.type == InputEvent.MOUSE_BUTTON and event.pressed and event.button_index == 1):
+ begin = get_node("agent").get_pos()
+ # Mouse to local navigation coordinates
+ end = event.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
index 1bb7de391b..c56270bfd3 100644
--- a/demos/2d/navpoly/navigation.scn
+++ b/demos/2d/navpoly/navigation.scn
Binary files differ
diff --git a/demos/2d/navpoly/navigation2.scn b/demos/2d/navpoly/navigation2.scn
deleted file mode 100644
index 224aed73f5..0000000000
--- a/demos/2d/navpoly/navigation2.scn
+++ /dev/null
Binary files differ
diff --git a/demos/2d/normalmaps/normalmap.scn b/demos/2d/normalmaps/normalmap.scn
index ab737e83f3..cf5fc05ce1 100644
--- a/demos/2d/normalmaps/normalmap.scn
+++ b/demos/2d/normalmaps/normalmap.scn
Binary files differ
diff --git a/demos/2d/particles/particles.xml b/demos/2d/particles/particles.xml
index c8f7596b86..c21ccb1f55 100644
--- a/demos/2d/particles/particles.xml
+++ b/demos/2d/particles/particles.xml
@@ -1,37 +1,49 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="4" version="1.0" version_name="Godot Engine v1.0.3917-beta1">
- <ext_resource path="res://fire_particle.png" type="Texture"></ext_resource>
- <ext_resource path="res://smoke_particle.png" type="Texture"></ext_resource>
- <ext_resource path="res://spark_particle2.png" type="Texture"></ext_resource>
+<resource_file type="PackedScene" subresource_count="8" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+ <ext_resource path="res://fire_particle.png" type="Texture" index="0"></ext_resource>
+ <ext_resource path="res://smoke_particle.png" type="Texture" index="1"></ext_resource>
+ <ext_resource path="res://spark_particle2.png" type="Texture" index="2"></ext_resource>
+ <resource type="ColorRamp" path="local://1">
+ <real_array name="offsets" len="3"> 0, 0.1, 1 </real_array>
+ <color_array name="colors" len="3"> 1, 1, 1, 0, 0.886275, 0.371681, 0, 1, 1, 0.99115, 1, 0 </color_array>
+
+ </resource>
+ <resource type="ColorRamp" path="local://2">
+ <real_array name="offsets" len="3"> 0, 0.2, 1 </real_array>
+ <color_array name="colors" len="3"> 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0 </color_array>
+
+ </resource>
+ <resource type="ColorRamp" path="local://3">
+ <real_array name="offsets" len="4"> 0, 0.1, 0.5, 1 </real_array>
+ <color_array name="colors" len="4"> 1, 1, 1, 0.870518, 1, 0.47451, 0.6, 1, 0.529412, 0.74902, 1, 1, 0, 1, 0.698039, 0 </color_array>
+
+ </resource>
+ <resource type="ColorRamp" path="local://4">
+ <real_array name="offsets" len="4"> 0, 0.1, 0.7, 1 </real_array>
+ <color_array name="colors" len="4"> 1, 1, 1, 0, 0.886275, 0.401015, 0, 1, 1, 0.679866, 0.432123, 0.12654, 0, 0, 0, 0 </color_array>
+
+ </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> "editable_instances" </string>
+ <array len="0" shared="false">
+ </array>
<string> "names" </string>
- <string_array len="68">
+ <string_array len="41">
<string> "Node" </string>
- <string> "_import_path" </string>
<string> "__meta__" </string>
<string> "Fire" </string>
- <string> "Particles2D" </string>
- <string> "visibility/visible" </string>
- <string> "visibility/opacity" </string>
- <string> "visibility/self_opacity" </string>
- <string> "visibility/behind_parent" </string>
<string> "visibility/blend_mode" </string>
<string> "transform/pos" </string>
<string> "transform/rot" </string>
- <string> "transform/scale" </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>
@@ -47,136 +59,159 @@
<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> "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> "params/anim_speed_scale" </string>
+ <string> "params/anim_initial_pos" </string>
<string> "randomness/initial_angle" </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> "Particles2D" </string>
<string> "Smoke" </string>
+ <string> "randomness/spin_velocity" </string>
<string> "Magic" </string>
+ <string> "randomness/orbit_velocity" </string>
<string> "Explosion" </string>
+ <string> "visibility/behind_parent" </string>
+ <string> "config/time_scale" </string>
+ <string> "config/explosiveness" </string>
<string> "Mask" </string>
+ <string> "color/color" </string>
+ <string> "emission_points" </string>
</string_array>
- <string> "version" </string>
- <int> 1 </int>
- <string> "conn_count" </string>
- <int> 0 </int>
<string> "node_count" </string>
<int> 6 </int>
+ <string> "node_paths" </string>
+ <array len="0" shared="false">
+ </array>
+ <string> "nodes" </string>
+ <int_array len="304"> -1, -1, 0, 0, -1, 1, 1, 0, 0, 0, 0, 29, 2, -1, 26, 3, 1, 4, 2, 5, 3, 6, 4, 7, 5, 8, 6, 9, 7, 10, 8, 11, 9, 12, 9, 13, 10, 14, 9, 15, 9, 16, 11, 17, 12, 18, 9, 19, 9, 20, 9, 21, 11, 22, 13, 23, 14, 24, 9, 25, 5, 26, 9, 27, 15, 28, 16, 0, 0, 0, 29, 30, -1, 25, 4, 17, 5, 18, 6, 4, 7, 19, 9, 7, 10, 20, 11, 9, 12, 21, 13, 22, 14, 5, 15, 9, 16, 9, 17, 9, 18, 9, 19, 9, 20, 9, 21, 11, 22, 5, 23, 23, 24, 9, 25, 5, 26, 9, 31, 5, 27, 5, 28, 24, 0, 0, 0, 29, 32, -1, 26, 4, 25, 6, 4, 7, 15, 8, 26, 9, 7, 10, 27, 11, 9, 12, 11, 13, 10, 14, 14, 15, 28, 16, 9, 17, 29, 18, 9, 19, 30, 20, 9, 21, 31, 22, 23, 23, 5, 24, 9, 25, 5, 26, 9, 31, 5, 33, 32, 27, 5, 28, 33, 0, 0, 0, 29, 34, -1, 28, 35, 34, 3, 1, 4, 35, 5, 3, 6, 4, 7, 15, 36, 15, 8, 6, 9, 7, 37, 36, 10, 20, 11, 9, 12, 11, 13, 37, 14, 9, 15, 9, 16, 11, 17, 12, 18, 9, 19, 9, 20, 38, 21, 5, 22, 13, 23, 23, 24, 9, 25, 5, 26, 9, 28, 39, 0, 0, 0, 29, 38, -1, 25, 4, 40, 6, 41, 7, 42, 8, 43, 9, 7, 10, 27, 11, 9, 12, 11, 13, 9, 14, 15, 15, 9, 16, 9, 17, 9, 18, 9, 19, 9, 20, 9, 21, 5, 22, 5, 23, 5, 24, 9, 25, 5, 26, 9, 31, 5, 39, 44, 40, 45, 0 </int_array>
<string> "variants" </string>
- <array len="65" shared="false">
- <node_path> "" </node_path>
+ <array len="46" shared="false">
<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> "pixel_snap" </string>
+ <string> "ofs" </string>
+ <vector2> -193.367, -465.428 </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> 0.440127 </real>
- <string> "use_snap" </string>
- <bool> False </bool>
- <string> "ofs" </string>
- <vector2> -193.367, -173.288 </vector2>
- <string> "snap" </string>
- <int> 10 </int>
</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">
@@ -185,77 +220,55 @@
<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>
<int> 1 </int>
<vector2> 165.787, 527.801 </vector2>
<real> -179.790649 </real>
- <vector2> 1, 1 </vector2>
<int> 32 </int>
- <real> 0 </real>
- <vector2> 0, 0 </vector2>
+ <real> 1 </real>
<vector2> 15, 15 </vector2>
- <resource resource_type="Texture" path="res://fire_particle.png"> </resource>
+ <bool> False </bool>
+ <resource external="0"> </resource>
+ <real> 0 </real>
<real> 20 </real>
<real> 180 </real>
<real> 80 </real>
<real> 0.7 </real>
<real> 0.3 </real>
<real> 2 </real>
- <int> 3 </int>
- <color> 1, 1, 1, 0 </color>
- <real> 0.1 </real>
- <color> 0.886275, 0.371681, 0, 1 </color>
- <color> 1, 0.99115, 1, 0 </color>
- <color> 0, 0, 0, 1 </color>
- <vector2_array len="0"> </vector2_array>
+ <resource resource_type="ColorRamp" path="local://1"> </resource>
<vector2> 377.396, 543.147 </vector2>
<real> 176.575912 </real>
<real> 4 </real>
- <resource resource_type="Texture" path="res://smoke_particle.png"> </resource>
+ <resource external="1"> </resource>
<real> 20.907272 </real>
<real> 47.151516 </real>
<real> 3 </real>
- <real> 0.2 </real>
- <color> 1, 1, 1, 1 </color>
- <color> 0, 0, 0, 0 </color>
+ <resource resource_type="ColorRamp" path="local://2"> </resource>
<vector2> 593.848, 531.064 </vector2>
<vector2> 40, 40 </vector2>
- <resource resource_type="Texture" path="res://spark_particle2.png"> </resource>
+ <resource external="2"> </resource>
<real> 0.01 </real>
<real> 9.8 </real>
<real> 15.515152 </real>
<real> 45 </real>
<real> 100 </real>
- <int> 4 </int>
- <color> 1, 1, 1, 0.870518 </color>
- <color> 1, 0.47451, 0.6, 1 </color>
- <real> 0.5 </real>
- <color> 0.529412, 0.74902, 1, 1 </color>
- <color> 0, 1, 0.698039, 0 </color>
+ <resource resource_type="ColorRamp" path="local://3"> </resource>
+ <bool> True </bool>
<vector2> 613.467, 182.62 </vector2>
<real> 0.05 </real>
<real> 184.546997 </real>
<real> 366.300415 </real>
- <color> 0.886275, 0.401015, 0, 1 </color>
- <color> 1, 0.679866, 0.432123, 0.12654 </color>
+ <resource resource_type="ColorRamp" path="local://4"> </resource>
<vector2> 192.975, 141.598 </vector2>
<int> 170 </int>
+ <real> 0.1 </real>
<vector2> 128, 128 </vector2>
- <int> 0 </int>
<color> 1, 0.477876, 0.60177, 1 </color>
- <color> 0.533333, 0.752212, 1, 1 </color>
- <color> 0, 1, 0.699115, 0 </color>
<vector2_array len="512"> -0.125, -0.03125, 0.65625, -0.148438, 0.609375, 0.0234375, -0.757812, 0.375, 0.265625, 0.078125, 0.632812, 0.382812, 0.671875, 0.414062, 0.367188, -0.226562, 0.75, -0.125, 0.4375, 0.421875, 0.335938, -0.148438, -0.125, 0.257812, -0.171875, 0.359375, -0.601562, -0.265625, 0.375, 0.382812, -0.296875, 0.09375, -0.664062, -0.21875, -0.554688, -0.226562, -0.320312, 0.367188, -0.320312, -0.257812, 0, -0.257812, 0.578125, -0.25, -0.164062, 0.109375, -0.578125, -0.015625, -0.445312, 0, 0.273438, 0.101562, 0.320312, 0.03125, -0.125, 0.0703125, -0.570312, 0.289062, 0.257812, -0.09375, -0.585938, 0.179688, -0.664062, 0.0234375, -0.25, -0.0859375, 0.6875, -0.109375, 0.234375, 0, -0.5, -0.265625, 0.710938, 0.335938, 0.609375, -0.046875, 0.664062, -0.210938, -0.242188, -0.21875, -0.484375, -0.257812, -0.453125, 0.414062, 0.609375, -0.203125, 0.289062, 0.132812, -0.03125, -0.257812, -0.492188, -0.1875, 0.5625, -0.140625, -0.5625, 0.148438, -0.257812, -0.234375, -0.140625, 0.15625, -0.5625, 0.109375, 0.132812, 0.398438, -0.640625, -0.25, -0.585938, 0.304688, -0.328125, -0.257812, 0.226562, 0.148438, -0.546875, 0.210938, 0.625, 0.179688, 0.648438, -0.0078125, 0.367188, 0.328125, 0.265625, 0.0546875, -0.59375, -0.273438, -0.203125, 0.21875, 0.570312, -0.21875, -0.695312, 0.078125, -0.375, 0.03125, -0.164062, 0.0390625, 0.265625, 0.226562, -0.625, -0.109375, 0.203125, -0.132812, -0.671875, 0.328125, 0.625, -0.179688, -0.640625, 0.0859375, 0.65625, 0, -0.242188, 0.414062, 0.242188, 0.25, -0.148438, -0.0625, 0.390625, -0.25, 0.664062, 0.351562, 0.320312, 0.203125, -0.546875, 0.335938, 0.328125, -0.148438, 0.609375, -0.0625, -0.171875, 0.046875, -0.578125, 0.0546875, -0.304688, -0.28125, 0.734375, -0.0546875, 0.679688, 0.390625, -0.460938, 0.0859375, -0.703125, 0.101562, -0.140625, 0.234375, -0.507812, 0.078125, -0.25, 0.304688, -0.046875, 0.359375, 0.1875, 0.0703125, -0.570312, 0.242188, 0.65625, 0.0859375, -0.203125, -0.265625, -0.164062, -0.179688, 0.367188, -0.1875, -0.601562, -0.101562, -0.117188, -0.210938, -0.546875, 0.109375, -0.585938, -0.28125, -0.59375, -0.03125, 0.3125, -0.179688, 0.414062, 0.429688, -0.476562, -0.195312, -0.0703125, -0.21875, -0.5625, 0.304688, -0.609375, 0.226562, 0.429688, 0.429688, 0.203125, 0.242188, 0.078125, 0.367188, 0.242188, 0.03125, 0.601562, -0.0390625, 0.328125, 0.03125, -0.53125, -0.195312, -0.53125, -0.210938, 0.3125, -0.257812, 0.445312, -0.273438, 0.273438, -0.273438, -0.695312, -0.179688, 0.234375, -0.15625, -0.546875, -0.242188, -0.234375, -0.125, 0.734375, -0.226562, 0.367188, -0.234375, -0.15625, 0.046875, -0.445312, -0.226562, 0.625, 0.03125, -0.0859375, 0.210938, -0.648438, 0.296875, 0.335938, -0.109375, 0.625, -0.078125, 0.601562, 0.351562, 0.242188, 0.140625, 0.0234375, -0.273438, -0.679688, -0.109375, 0.640625, 0.15625, 0.171875, 0.0859375, -0.273438, -0.273438, -0.242188, 0.34375, 0.179688, 0.15625, -0.179688, -0.117188, 0.671875, 0.03125, -0.640625, 0.304688, 0.109375, -0.242188, -0.210938, 0.382812, -0.0859375, 0.0078125, -0.695312, 0.078125, 0.296875, 0.320312, 0.304688, -0.226562, 0.257812, -0.0234375, -0.203125, -0.015625, -0.648438, 0.335938, -0.703125, -0.132812, -0.273438, -0.210938, -0.15625, -0.273438, -0.0390625, 0.335938, 0.617188, 0.179688, 0.34375, 0.390625, -0.210938, -0.132812, -0.226562, -0.117188, 0.617188, -0.289062, 0.125, -0.21875, 0.71875, -0.164062, -0.570312, 0.1875, -0.1875, 0.382812, 0.640625, -0.296875, -0.125, 0.109375, 0.671875, 0.289062, -0.515625, 0.382812, 0.359375, -0.179688, 0.726562, -0.226562, 0.25, 0.320312, -0.328125, 0, -0.117188, -0.234375, -0.210938, -0.148438, -0.546875, -0.117188, 0.359375, 0.429688, -0.15625, -0.226562, 0.632812, -0.257812, -0.28125, -0.273438, 0.265625, 0.015625, -0.765625, 0.351562, 0.703125, 0.421875, -0.585938, 0.0078125, 0.28125, 0.109375, 0.304688, 0.171875, 0.65625, 0.421875, 0.078125, 0.382812, 0.179688, 0.25, -0.382812, 0.0703125, 0.585938, -0.140625, -0.109375, 0.382812, -0.59375, -0.09375, 0.4375, 0.398438, -0.132812, 0.0234375, -0.625, 0.0078125, -0.210938, -0.21875, -0.25, 0.257812, 0.257812, 0.398438, 0.625, 0.195312, 0.148438, -0.234375, -0.476562, 0.398438, -0.210938, 0.046875, 0.695312, -0.101562, 0.695312, 0.140625, -0.492188, -0.1875, 0.25, -0.09375, -0.195312, -0.195312, -0.328125, 0.0703125, -0.242188, -0.0625, 0.296875, 0.34375, -0.632812, 0.0078125, -0.265625, 0.09375, 0.421875, -0.203125, 0.171875, 0.03125, -0.09375, -0.0703125, 0.289062, 0.0859375, -0.609375, 0.390625, -0.554688, 0.257812, -0.6875, 0.0078125, 0.304688, 0.414062, 0.226562, 0.390625, -0.21875, -0.28125, 0.265625, 0.320312, -0.671875, 0.234375, -0.210938, 0.03125, 0.679688, -0.0234375, 0.359375, -0.203125, 0.3125, 0.289062, 0.671875, 0.140625, -0.78125, 0.414062, -0.546875, 0.40625, 0.625, 0.367188, 0.0859375, 0.421875, 0.1875, -0.09375, 0.617188, 0.40625, -0.078125, -0.0390625, 0.695312, 0.0859375, -0.6875, -0.265625, 0.421875, -0.265625, 0.601562, -0.0234375, -0.3125, -0.265625, -0.078125, 0.046875, 0.617188, 0.164062, 0.273438, -0.03125, -0.695312, -0.015625, -0.5625, 0.164062, -0.578125, 0.265625, -0.726562, 0.421875, -0.078125, -0.25, -0.171875, 0.171875, -0.234375, -0.0390625, 0.257812, 0.429688, -0.179688, -0.117188, 0.351562, -0.03125, -0.78125, -0.234375, -0.546875, -0.171875, -0.460938, -0.234375, -0.164062, 0.09375, -0.65625, 0.398438, -0.445312, 0.0859375, -0.71875, -0.226562, 0.671875, 0.101562, -0.46875, -0.195312, -0.71875, -0.265625, 0.617188, 0.125, -0.78125, -0.21875, -0.226562, -0.15625, 0.21875, 0.0234375, 0.289062, 0.101562, 0.648438, -0.171875, 0.390625, -0.273438, -0.257812, 0.078125, -0.21875, 0, 0.65625, -0.203125, -0.679688, 0.171875, -0.1875, 0.328125, -0.46875, -0.28125, 0.273438, 0, 0.664062, 0.296875, -0.140625, 0.335938, -0.625, 0.382812, -0.34375, -0.21875, -0.171875, -0.25, -0.546875, -0.117188, -0.117188, -0.203125, -0.1875, 0.351562, -0.585938, -0.109375, -0.203125, -0.0625, -0.570312, 0.03125, -0.5625, -0.109375, 0.601562, -0.195312, 0.3125, 0.140625, -0.101562, 0.25, 0.25, 0.3125, 0.125, -0.203125, -0.09375, -0.140625, -0.242188, 0.414062, 0.664062, -0.0625, -0.21875, -0.078125, 0.6875, -0.210938, -0.140625, 0.015625, -0.632812, -0.25, -0.109375, 0.234375, -0.695312, 0.015625, -0.3125, -0.28125, 0.296875, -0.0234375, 0.296875, 0.203125, -0.125, 0.234375, 0.570312, 0.390625, -0.554688, 0.203125, -0.5625, 0.351562, -0.15625, 0.21875, -0.375, 0.0390625, -0.226562, -0.140625, 0.695312, 0.164062, 0.632812, 0.367188, -0.328125, -0.210938, -0.59375, 0.34375, 0.304688, -0.242188, -0.34375, 0.0703125, -0.679688, -0.179688, 0.664062, 0.101562, 0.34375, 0.171875, -0.695312, -0.078125, -0.242188, -0.0546875, 0.304688, -0.234375, -0.0078125, -0.21875, -0.632812, 0.203125, 0.625, 0.03125, -0.414062, 0.015625, 0.273438, -0.078125, 0.695312, 0.28125, 0.34375, 0.101562, -0.164062, 0.289062, -0.1875, 0.273438, -0.203125, 0.0703125, 0.734375, -0.171875, -0.59375, 0.34375, -0.15625, 0.210938, 0.429688, 0.375, -0.234375, 0.34375, 0.617188, 0.101562, 0.703125, 0, -0.578125, 0.148438, 0.21875, -0.171875, -0.304688, 0.375, -0.65625, -0.09375, -0.101562, 0.25, -0.4375, 0.03125, -0.242188, 0.421875, -0.546875, 0.0625, -0.632812, -0.148438, -0.125, 0.179688, 0.179688, 0.304688, -0.265625, 0.078125, -0.289062, 0.421875, -0.585938, 0.1875, -0.289062, 0.34375, 0.273438, 0.367188, -0.109375, 0.117188, 0.34375, 0.046875, -0.0625, 0.320312, 0.6875, -0.234375, -0.523438, 0.320312, -0.09375, -0.242188, -0.65625, 0.25, -0.609375, -0.117188, -0.140625, 0.140625, 0.28125, -0.09375, -0.625, -0.28125, 0.34375, 0.328125, 0.265625, 0.109375, -0.609375, 0.0078125, -0.078125, -0.234375, -0.289062, -0.203125, 0.289062, 0.289062, -0.0859375, 0.0078125, -0.101562, -0.28125, -0.625, -0.101562, -0.546875, 0.382812, -0.539062, -0.195312, -0.210938, 0.046875, -0.492188, 0.390625, -0.664062, -0.0703125, 0.71875, -0.101562, -0.140625, -0.046875, 0.695312, 0.289062, -0.710938, 0.429688, -0.703125, 0.3125, -0.203125, 0.109375, 0.421875, -0.273438, 0.304688, 0.21875, 0.328125, 0.257812, -0.632812, -0.0703125, 0.320312, -0.140625, 0.265625, -0.203125, -0.109375, -0.179688, 0.25, -0.210938, 0.65625, 0.109375, -0.648438, -0.0625, -0.0859375, 0.375, -0.429688, 0.398438, 0.320312, 0.3125, -0.0703125, 0.265625, 0.648438, 0.0078125, 0.320312, 0.335938, 0.398438, 0.421875, -0.101562, -0.0625, -0.296875, 0.40625, 0.695312, -0.0390625, 0.335938, 0.21875, -0.546875, 0.117188, -0.476562, 0.390625, -0.648438, 0.117188, -0.078125, -0.28125, 0.328125, 0.289062, -0.226562, 0.179688, 0.226562, 0.375, -0.429688, 0.382812, -0.0546875, 0.34375, 0.59375, -0.125, 0.632812, 0.265625, 0.226562, 0.3125, -0.523438, -0.140625, -0.546875, 0.046875, 0.242188, -0.148438, -0.648438, 0.0234375, -0.289062, 0, -0.546875, 0.101562, -0.125, -0.0625, -0.492188, 0.367188, 0.328125, 0.15625, -0.351562, 0.0546875, -0.609375, 0.414062, -0.296875, 0.09375, 0.671875, -0.203125, -0.257812, -0.273438, -0.335938, 0.414062, 0.65625, -0.195312, -0.601562, -0.101562, -0.203125, -0.078125, 0.210938, 0.242188, 0.296875, 0.335938, -0.578125, 0.40625, -0.664062, -0.078125, -0.0859375, 0.390625, 0.171875, 0.304688, -0.6875, 0.390625, -0.554688, 0.0078125, -0.570312, -0.179688, -0.210938, -0.09375, 0.726562, -0.03125, -0.546875, -0.0859375, -0.265625, -0.171875, -0.65625, 0.179688, -0.171875, 0.257812, -0.164062, -0.171875, 0.203125, 0.335938, -0.640625, 0.21875, 0.390625, 0.375, 0.6875, -0.234375, 0.742188, 0.34375, -0.0546875, 0.351562, -0.632812, 0.195312, 0.671875, -0.21875, 0.195312, 0.015625, 0.226562, 0.117188, -0.507812, 0.078125, -0.140625, -0.15625, 0.703125, -0.28125, 0.226562, -0.140625, 0.328125, 0.421875, 0.3125, 0.1875, 0.703125, 0.078125, 0.351562, 0.289062, 0.21875, -0.242188, -0.328125, 0, 0.171875, 0.101562, -0.304688, -0.242188, -0.210938, 0.078125, 0.625, -0.0078125, 0.25, 0.242188, -0.664062, 0.117188, 0.203125, -0.140625, 0.226562, 0.429688, 0.328125, -0.203125, -0.679688, 0.0703125, -0.195312, -0.148438, -0.523438, 0.328125, 0.382812, -0.257812, 0.578125, -0.171875, 0.65625, 0.320312, -0.632812, -0.148438, 0.703125, 0.0703125, -0.53125, 0.398438, -0.414062, 0.03125, -0.0859375, 0.0546875, -0.53125, 0.335938, 0.304688, 0.429688, -0.234375, -0.148438, -0.375, 0.046875, -0.148438, 0.289062, -0.0390625, 0.421875, 0.226562, -0.125, -0.570312, 0.398438, -0.0703125, -0.0234375, 0.257812, -0.132812 </vector2_array>
</array>
- <string> "nodes" </string>
- <int_array len="640"> -1, -1, 0, 0, -1, 2, 1, 0, 2, 1, 0, 0, 0, 4, 3, -1, 60, 1, 0, 5, 2, 6, 3, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 8, 13, 9, 14, 3, 15, 3, 16, 10, 17, 10, 18, 2, 19, 11, 20, 12, 21, 4, 22, 3, 23, 4, 24, 4, 25, 13, 26, 10, 27, 10, 28, 14, 29, 10, 30, 10, 31, 15, 32, 16, 33, 10, 34, 10, 35, 10, 36, 15, 37, 17, 38, 18, 39, 10, 40, 10, 41, 10, 42, 10, 43, 10, 44, 10, 45, 10, 46, 10, 47, 10, 48, 10, 49, 10, 50, 19, 51, 10, 52, 10, 53, 10, 54, 20, 55, 10, 56, 21, 57, 22, 58, 23, 59, 3, 60, 24, 61, 3, 62, 25, 63, 26, 0, 0, 0, 4, 64, -1, 59, 1, 0, 5, 2, 6, 3, 7, 3, 8, 4, 10, 27, 11, 28, 12, 8, 13, 9, 14, 29, 15, 3, 16, 10, 17, 10, 18, 2, 19, 11, 20, 11, 21, 4, 22, 3, 23, 4, 24, 4, 25, 30, 26, 10, 27, 31, 28, 32, 29, 3, 30, 10, 31, 10, 32, 10, 33, 10, 34, 10, 35, 10, 36, 15, 37, 3, 38, 33, 39, 10, 40, 10, 41, 10, 42, 10, 43, 3, 44, 10, 45, 10, 46, 10, 47, 10, 48, 10, 49, 10, 50, 3, 51, 10, 52, 10, 53, 10, 54, 20, 55, 10, 56, 21, 57, 34, 58, 35, 59, 3, 60, 36, 61, 3, 62, 25, 63, 26, 0, 0, 0, 4, 65, -1, 59, 1, 0, 5, 2, 6, 3, 7, 3, 8, 4, 10, 37, 11, 10, 12, 8, 13, 9, 14, 19, 15, 3, 16, 10, 17, 10, 18, 2, 19, 11, 20, 38, 21, 4, 22, 3, 23, 4, 24, 4, 25, 39, 26, 10, 27, 15, 28, 14, 29, 18, 30, 40, 31, 10, 32, 41, 33, 10, 34, 42, 35, 10, 36, 43, 37, 33, 38, 3, 39, 10, 40, 10, 41, 10, 42, 10, 43, 3, 44, 44, 45, 10, 46, 10, 47, 10, 48, 10, 49, 10, 50, 3, 51, 10, 52, 10, 53, 10, 54, 45, 55, 10, 56, 46, 57, 22, 58, 47, 59, 48, 60, 49, 61, 3, 62, 50, 63, 26, 0, 0, 0, 4, 66, -1, 60, 1, 0, 5, 2, 6, 3, 7, 3, 8, 2, 9, 5, 10, 51, 11, 7, 12, 8, 13, 9, 14, 19, 15, 19, 16, 10, 17, 10, 18, 2, 19, 11, 20, 12, 21, 4, 22, 52, 23, 4, 24, 4, 25, 30, 26, 10, 27, 15, 28, 53, 29, 10, 30, 10, 31, 15, 32, 16, 33, 10, 34, 10, 35, 54, 36, 3, 37, 17, 38, 33, 39, 10, 40, 10, 41, 10, 42, 10, 43, 10, 44, 10, 45, 10, 46, 10, 47, 10, 48, 10, 49, 10, 50, 10, 51, 10, 52, 10, 53, 10, 54, 45, 55, 10, 56, 21, 57, 22, 58, 55, 59, 17, 60, 56, 61, 3, 62, 36, 63, 26, 0, 0, 0, 4, 67, -1, 59, 1, 0, 5, 2, 6, 3, 7, 3, 8, 4, 10, 57, 11, 10, 12, 8, 13, 58, 14, 22, 15, 3, 16, 10, 17, 10, 18, 2, 19, 11, 20, 59, 21, 4, 22, 3, 23, 4, 24, 4, 25, 39, 26, 10, 27, 15, 28, 10, 29, 19, 30, 10, 31, 10, 32, 10, 33, 10, 34, 10, 35, 10, 36, 3, 37, 3, 38, 3, 39, 10, 40, 10, 41, 10, 42, 10, 43, 3, 44, 10, 45, 10, 46, 10, 47, 10, 48, 10, 49, 10, 50, 10, 51, 10, 52, 10, 53, 10, 54, 60, 55, 10, 56, 61, 57, 48, 58, 62, 59, 3, 60, 63, 61, 3, 62, 25, 63, 64, 0 </int_array>
- <string> "conns" </string>
- <int_array len="0"> </int_array>
+ <string> "version" </string>
+ <int> 2 </int>
</dictionary>
</main_resource>
diff --git a/demos/2d/platformer/bullet.gd b/demos/2d/platformer/bullet.gd
index 9aacc9809d..3aee69714e 100644
--- a/demos/2d/platformer/bullet.gd
+++ b/demos/2d/platformer/bullet.gd
@@ -1,21 +1,16 @@
extends RigidBody2D
-# member variables here, example:
-# var a=2
-# var b="textvar"
+# Member variables
+var disabled = false
-var disabled=false
func disable():
if (disabled):
return
get_node("anim").play("shutdown")
- disabled=true
+ disabled = true
+
func _ready():
- # Initalization here
get_node("Timer").start()
- pass
-
-
diff --git a/demos/2d/platformer/bullet.xml b/demos/2d/platformer/bullet.xml
index 84c903803f..63938581ad 100644
--- a/demos/2d/platformer/bullet.xml
+++ b/demos/2d/platformer/bullet.xml
@@ -1,12 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="5" version="1.0" version_name="Godot Engine v1.0.3917-beta1">
- <ext_resource path="res://bullet.*" type="Texture"></ext_resource>
- <ext_resource path="res://bullet.*" type="Script"></ext_resource>
+<resource_file type="PackedScene" subresource_count="6" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+ <ext_resource path="res://bullet.png" type="Texture" index="1"></ext_resource>
+ <ext_resource path="res://bullet.gd" type="Script" index="0"></ext_resource>
<resource type="CircleShape2D" path="local://1">
<real name="custom_solver_bias"> 0 </real>
<real name="radius"> 10 </real>
</resource>
+ <resource type="ColorRamp" path="local://3">
+ <real_array name="offsets" len="2"> 0, 1 </real_array>
+ <color_array name="colors" len="2"> 1, 1, 1, 1, 1, 0, 0, 0 </color_array>
+
+ </resource>
<resource type="Animation" path="local://2">
<string name="resource/name"> "shutdown" </string>
<real name="length"> 1.5 </real>
@@ -18,14 +23,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">
<bool> False </bool>
</array>
- <string> "times" </string>
- <real_array len="1"> 0 </real_array>
</dictionary>
<string name="tracks/1/type"> "value" </string>
<node_path name="tracks/1/path"> "sprite:visibility/self_opacity" </node_path>
@@ -33,6 +38,8 @@
<dictionary name="tracks/1/keys" shared="false">
<string> "cont" </string>
<bool> True </bool>
+ <string> "times" </string>
+ <real_array len="2"> 0, 1.00394 </real_array>
<string> "transitions" </string>
<real_array len="2"> 1, 1 </real_array>
<string> "values" </string>
@@ -40,13 +47,13 @@
<real> 1 </real>
<real> 0 </real>
</array>
- <string> "times" </string>
- <real_array len="2"> 0, 1.00394 </real_array>
</dictionary>
<string name="tracks/2/type"> "method" </string>
<node_path name="tracks/2/path"> "." </node_path>
<int name="tracks/2/interp"> 1 </int>
<dictionary name="tracks/2/keys" shared="false">
+ <string> "times" </string>
+ <real_array len="1"> 1.31 </real_array>
<string> "transitions" </string>
<real_array len="1"> 1 </real_array>
<string> "values" </string>
@@ -59,57 +66,51 @@
<string> "queue_free" </string>
</dictionary>
</array>
- <string> "times" </string>
- <real_array len="1"> 1.31 </real_array>
</dictionary>
</resource>
<main_resource>
<dictionary name="_bundled" shared="false">
+ <string> "conn_count" </string>
+ <int> 1 </int>
+ <string> "conns" </string>
+ <int_array len="6"> 4, 0, 73, 72, 2, 0 </int_array>
+ <string> "editable_instances" </string>
+ <array len="0" shared="false">
+ </array>
<string> "names" </string>
- <string_array len="111">
+ <string_array len="74">
<string> "bullet" </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>
+ <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> "RigidBody2D" </string>
<string> "particles" </string>
- <string> "Particles2D" </string>
+ <string> "visibility/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/flip_h" </string>
- <string> "config/flip_v" </string>
<string> "config/texture" </string>
<string> "params/direction" </string>
<string> "params/spread" </string>
@@ -121,54 +122,27 @@
<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> "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> "params/anim_speed_scale" </string>
+ <string> "params/anim_initial_pos" </string>
+ <string> "color/color_ramp" </string>
+ <string> "Particles2D" </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> "Sprite" </string>
<string> "CollisionShape2D" </string>
<string> "shape" </string>
<string> "trigger" </string>
+ <string> "_update_shape_index" </string>
<string> "Timer" </string>
+ <string> "process_mode" </string>
<string> "wait_time" </string>
<string> "one_shot" </string>
<string> "autostart" </string>
<string> "anim" </string>
- <string> "AnimationPlayer" </string>
<string> "playback/process_mode" </string>
<string> "playback/default_blend_time" </string>
<string> "root/root" </string>
@@ -177,128 +151,158 @@
<string> "playback/speed" </string>
<string> "blend_times" </string>
<string> "autoplay" </string>
+ <string> "AnimationPlayer" </string>
<string> "disable" </string>
<string> "timeout" </string>
</string_array>
- <string> "version" </string>
- <int> 1 </int>
- <string> "conn_count" </string>
- <int> 1 </int>
<string> "node_count" </string>
<int> 6 </int>
+ <string> "node_paths" </string>
+ <array len="0" shared="false">
+ </array>
+ <string> "nodes" </string>
+ <int_array len="166"> -1, -1, 24, 0, -1, 23, 1, 0, 2, 1, 3, 2, 4, 0, 5, 3, 6, 3, 7, 4, 8, 5, 9, 5, 10, 6, 11, 5, 12, 0, 13, 7, 14, 4, 15, 0, 16, 0, 17, 8, 18, 9, 19, 6, 20, 10, 21, 10, 22, 11, 23, 12, 0, 0, 0, 49, 25, -1, 23, 26, 13, 27, 3, 28, 14, 29, 15, 30, 0, 31, 16, 32, 6, 33, 17, 34, 6, 35, 6, 36, 6, 37, 6, 38, 6, 39, 6, 40, 6, 41, 6, 42, 6, 43, 5, 44, 6, 45, 6, 46, 5, 47, 6, 48, 18, 0, 0, 0, 52, 50, -1, 1, 51, 16, 0, 0, 0, 53, 53, -1, 3, 54, 1, 55, 0, 56, 19, 0, 0, 0, 57, 57, -1, 4, 58, 3, 59, 5, 60, 8, 61, 0, 0, 0, 0, 71, 62, -1, 8, 63, 3, 64, 6, 65, 20, 66, 21, 67, 8, 68, 5, 69, 22, 70, 23, 0 </int_array>
<string> "variants" </string>
- <array len="27" shared="false">
- <bool> True </bool>
- <real> 1 </real>
- <vector2> 0, 0 </vector2>
- <real> 0 </real>
- <vector2> 1, 1 </vector2>
- <int> 1 </int>
+ <array len="24" shared="false">
+ <bool> False </bool>
<resource resource_type="Shape2D" path="local://1"> </resource>
<matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
- <bool> False </bool>
+ <int> 1 </int>
<int> 0 </int>
+ <real> 1 </real>
+ <real> 0 </real>
<int> 2 </int>
- <resource resource_type="Script" path="res://bullet.*"> </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> 2 </int>
- <string> "sources" </string>
- <array len="3" shared="false">
- <string> "res://enemy.gd" </string>
- <string> "res://player.gd" </string>
- <string> "res://bullet.gd" </string>
- </array>
- </dictionary>
<string> "2D" </string>
<dictionary shared="false">
- <string> "pixel_snap" </string>
+ <string> "ofs" </string>
+ <vector2> -74.7573, -35.9676 </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> 3.424785 </real>
- <string> "ofs" </string>
- <vector2> -74.7573, -35.9676 </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">
@@ -307,29 +311,22 @@
<string> "run_mode" </string>
<int> 0 </int>
</dictionary>
- <string> "__editor_plugin_screen__" </string>
- <string> "2D" </string>
</dictionary>
<real> 0.559322 </real>
<int> 24 </int>
<real> 0.1 </real>
- <resource resource_type="Texture" path="res://bullet.*"> </resource>
+ <resource external="1"> </resource>
<real> 10 </real>
- <color> 1, 1, 1, 1 </color>
- <color> 1, 0, 0, 0 </color>
- <color> 0, 0, 0, 1 </color>
- <vector2_array len="0"> </vector2_array>
- <rect2> 0, 0, 0, 0 </rect2>
+ <resource resource_type="ColorRamp" path="local://3"> </resource>
+ <int> -1 </int>
<node_path> ".." </node_path>
<resource resource_type="Animation" path="local://2"> </resource>
<array len="0" shared="false">
</array>
<string> "" </string>
</array>
- <string> "nodes" </string>
- <int_array len="282"> -1, -1, 1, 0, -1, 25, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 8, 13, 9, 14, 1, 15, 1, 16, 3, 17, 8, 18, 10, 19, 9, 20, 8, 21, 0, 22, 0, 23, 2, 24, 3, 25, 11, 26, 12, 0, 0, 0, 28, 27, -1, 57, 2, 0, 3, 13, 4, 1, 5, 0, 29, 5, 6, 2, 7, 3, 8, 4, 30, 14, 31, 15, 32, 1, 33, 3, 34, 3, 35, 0, 36, 2, 37, 2, 38, 8, 39, 1, 40, 8, 41, 8, 42, 16, 43, 3, 44, 17, 45, 3, 46, 3, 47, 3, 48, 3, 49, 3, 50, 3, 51, 3, 52, 3, 53, 1, 54, 3, 55, 3, 56, 3, 57, 3, 58, 3, 59, 3, 60, 3, 61, 3, 62, 3, 63, 3, 64, 3, 65, 3, 66, 3, 67, 3, 68, 3, 69, 10, 70, 3, 71, 18, 72, 1, 73, 19, 74, 1, 75, 20, 76, 1, 77, 20, 78, 21, 0, 0, 0, 80, 79, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 81, 16, 82, 0, 83, 2, 84, 8, 85, 8, 86, 5, 87, 5, 88, 9, 89, 18, 90, 8, 91, 22, 0, 0, 0, 92, 92, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 93, 6, 94, 8, 0, 0, 0, 95, 95, -1, 3, 96, 1, 97, 0, 98, 8, 0, 0, 0, 100, 99, -1, 8, 101, 5, 102, 3, 103, 23, 104, 24, 105, 0, 106, 1, 107, 25, 108, 26, 0 </int_array>
- <string> "conns" </string>
- <int_array len="6"> 4, 0, 110, 109, 2, 0 </int_array>
+ <string> "version" </string>
+ <int> 2 </int>
</dictionary>
</main_resource>
diff --git a/demos/2d/platformer/coin.gd b/demos/2d/platformer/coin.gd
index 983cd46d88..1118732707 100644
--- a/demos/2d/platformer/coin.gd
+++ b/demos/2d/platformer/coin.gd
@@ -1,28 +1,19 @@
extends Area2D
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
-var taken=false
+# Member variables
+var taken = false
func _on_body_enter( body ):
if (not taken and body extends preload("res://player.gd")):
get_node("anim").play("taken")
- taken=true
-
-
-func _ready():
- # Initalization here
- pass
-
+ taken = true
-func _on_coin_area_enter( area ):
+func _on_coin_area_enter(area):
pass # replace with function body
-func _on_coin_area_enter_shape( area_id, area, area_shape, area_shape ):
+func _on_coin_area_enter_shape(area_id, area, area_shape, area_shape):
pass # replace with function body
diff --git a/demos/2d/platformer/coin.xml b/demos/2d/platformer/coin.xml
index 194ea711b0..f33a63bd57 100644
--- a/demos/2d/platformer/coin.xml
+++ b/demos/2d/platformer/coin.xml
@@ -1,9 +1,9 @@
<?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">
- <ext_resource path="res://bullet.*" type="Texture"></ext_resource>
- <ext_resource path="res://coin.*" type="Texture"></ext_resource>
- <ext_resource path="res://sound_coin.*" type="Sample"></ext_resource>
- <ext_resource path="res://coin.*" type="Script"></ext_resource>
+<resource_file type="PackedScene" subresource_count="10" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+ <ext_resource path="res://bullet.png" type="Texture" index="3"></ext_resource>
+ <ext_resource path="res://coin.png" type="Texture" index="1"></ext_resource>
+ <ext_resource path="res://sound_coin.wav" type="Sample" index="2"></ext_resource>
+ <ext_resource path="res://coin.gd" type="Script" index="0"></ext_resource>
<resource type="CircleShape2D" path="local://1">
<real name="custom_solver_bias"> 0 </real>
<real name="radius"> 10 </real>
@@ -20,14 +20,14 @@
<dictionary name="tracks/0/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> 0 </int>
</array>
- <string> "times" </string>
- <real_array len="1"> 0 </real_array>
</dictionary>
<string name="tracks/1/type"> "value" </string>
<node_path name="tracks/1/path"> "sound:play/play" </node_path>
@@ -35,14 +35,14 @@
<dictionary name="tracks/1/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">
<string> "coin" </string>
</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"> "particles:visibility/self_opacity" </node_path>
@@ -50,6 +50,8 @@
<dictionary name="tracks/2/keys" shared="false">
<string> "cont" </string>
<bool> True </bool>
+ <string> "times" </string>
+ <real_array len="2"> 0, 1.66 </real_array>
<string> "transitions" </string>
<real_array len="2"> 1, 1 </real_array>
<string> "values" </string>
@@ -57,8 +59,6 @@
<real> 1 </real>
<real> 0 </real>
</array>
- <string> "times" </string>
- <real_array len="2"> 0, 1.66 </real_array>
</dictionary>
<string name="tracks/3/type"> "value" </string>
<node_path name="tracks/3/path"> "sprite:visibility/self_opacity" </node_path>
@@ -66,6 +66,8 @@
<dictionary name="tracks/3/keys" shared="false">
<string> "cont" </string>
<bool> True </bool>
+ <string> "times" </string>
+ <real_array len="2"> 0, 0.4 </real_array>
<string> "transitions" </string>
<real_array len="2"> 1, 1 </real_array>
<string> "values" </string>
@@ -73,8 +75,6 @@
<real> 1 </real>
<real> 0 </real>
</array>
- <string> "times" </string>
- <real_array len="2"> 0, 0.4 </real_array>
</dictionary>
<string name="tracks/4/type"> "value" </string>
<node_path name="tracks/4/path"> "particles:config/emitting" </node_path>
@@ -82,19 +82,21 @@
<dictionary name="tracks/4/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">
<bool> True </bool>
</array>
- <string> "times" </string>
- <real_array len="1"> 0 </real_array>
</dictionary>
<string name="tracks/5/type"> "method" </string>
<node_path name="tracks/5/path"> "." </node_path>
<int name="tracks/5/interp"> 1 </int>
<dictionary name="tracks/5/keys" shared="false">
+ <string> "times" </string>
+ <real_array len="1"> 2.7 </real_array>
<string> "transitions" </string>
<real_array len="1"> 1 </real_array>
<string> "values" </string>
@@ -107,8 +109,6 @@
<string> "queue_free" </string>
</dictionary>
</array>
- <string> "times" </string>
- <real_array len="1"> 2.7 </real_array>
</dictionary>
</resource>
@@ -123,6 +123,8 @@
<dictionary name="tracks/0/keys" shared="false">
<string> "cont" </string>
<bool> False </bool>
+ <string> "times" </string>
+ <real_array len="7"> 0, 0.25, 0.5, 0.75, 1, 1.25, 1.5 </real_array>
<string> "transitions" </string>
<real_array len="7"> 1, 1, 1, 1, 1, 1, 1 </real_array>
<string> "values" </string>
@@ -135,8 +137,6 @@
<int> 1 </int>
<int> 0 </int>
</array>
- <string> "times" </string>
- <real_array len="7"> 0, 0.25, 0.5, 0.75, 1, 1.25, 1.5 </real_array>
</dictionary>
</resource>
@@ -147,49 +147,43 @@
<string> "pitch" </string>
<real> 1 </real>
<string> "sample" </string>
- <resource resource_type="Sample" path="res://sound_coin.*"> </resource>
+ <resource external="2"> </resource>
</dictionary>
</resource>
+ <resource type="ColorRamp" path="local://5">
+ <real_array name="offsets" len="2"> 0, 1 </real_array>
+ <color_array name="colors" len="2"> 1, 1, 1, 1, 0, 0, 0, 1 </color_array>
+
+ </resource>
<main_resource>
<dictionary name="_bundled" shared="false">
+ <string> "conn_count" </string>
+ <int> 1 </int>
+ <string> "conns" </string>
+ <int_array len="6"> 0, 0, 76, 75, 2, 0 </int_array>
+ <string> "editable_instances" </string>
+ <array len="0" shared="false">
+ </array>
<string> "names" </string>
- <string_array len="115">
+ <string_array len="77">
<string> "coin" </string>
- <string> "Area2D" </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>
- <string> "gravity_point" </string>
<string> "gravity_vec" </string>
<string> "gravity" </string>
- <string> "density" </string>
- <string> "monitoring" </string>
+ <string> "linear_damp" </string>
+ <string> "angular_damp" </string>
<string> "script/script" </string>
<string> "__meta__" </string>
+ <string> "Area2D" </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> "Sprite" </string>
<string> "anim" </string>
- <string> "AnimationPlayer" </string>
<string> "playback/process_mode" </string>
<string> "playback/default_blend_time" </string>
<string> "root/root" </string>
@@ -199,12 +193,13 @@
<string> "playback/speed" </string>
<string> "blend_times" </string>
<string> "autoplay" </string>
+ <string> "AnimationPlayer" </string>
<string> "collision" </string>
- <string> "CollisionShape2D" </string>
<string> "shape" </string>
<string> "trigger" </string>
+ <string> "_update_shape_index" </string>
+ <string> "CollisionShape2D" </string>
<string> "sound" </string>
- <string> "SamplePlayer2D" </string>
<string> "params/volume_db" </string>
<string> "params/pitch_scale" </string>
<string> "params/attenuation/min_distance" </string>
@@ -213,19 +208,13 @@
<string> "config/polyphony" </string>
<string> "config/samples" </string>
<string> "config/pitch_random" </string>
+ <string> "SamplePlayer2D" </string>
<string> "particles" </string>
- <string> "Particles2D" </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>
<string> "params/spread" </string>
@@ -237,160 +226,170 @@
<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> "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> "params/anim_speed_scale" </string>
+ <string> "params/anim_initial_pos" </string>
+ <string> "color/color_ramp" </string>
+ <string> "Particles2D" </string>
<string> "enabler" </string>
- <string> "VisibilityEnabler2D" </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> "VisibilityEnabler2D" </string>
<string> "_on_body_enter" </string>
<string> "body_enter" </string>
</string_array>
- <string> "version" </string>
- <int> 1 </int>
- <string> "conn_count" </string>
- <int> 1 </int>
<string> "node_count" </string>
<int> 7 </int>
+ <string> "node_paths" </string>
+ <array len="0" shared="false">
+ </array>
+ <string> "nodes" </string>
+ <int_array len="171"> -1, -1, 11, 0, -1, 10, 1, 0, 2, 1, 3, 2, 4, 3, 5, 4, 6, 5, 7, 6, 8, 7, 9, 8, 10, 9, 0, 0, 0, 15, 12, -1, 2, 13, 10, 14, 11, 0, 0, 0, 26, 16, -1, 9, 17, 12, 18, 13, 19, 14, 20, 15, 21, 16, 22, 0, 23, 17, 24, 18, 25, 19, 0, 0, 0, 31, 27, -1, 3, 28, 1, 29, 3, 30, 20, 0, 0, 0, 41, 32, -1, 8, 33, 13, 34, 7, 35, 7, 36, 21, 37, 7, 38, 12, 39, 22, 40, 13, 0, 0, 0, 66, 42, -1, 23, 43, 12, 44, 23, 45, 24, 46, 3, 47, 25, 48, 26, 49, 13, 50, 27, 51, 13, 52, 13, 53, 13, 54, 13, 55, 13, 56, 13, 57, 13, 58, 13, 59, 13, 60, 28, 61, 28, 62, 13, 63, 7, 64, 13, 65, 29, 0, 0, 0, 74, 67, -1, 6, 68, 30, 69, 0, 70, 0, 71, 0, 72, 3, 73, 3, 0 </int_array>
<string> "variants" </string>
- <array len="37" shared="false">
+ <array len="31" shared="false">
<bool> True </bool>
- <real> 1 </real>
- <vector2> 0, 0 </vector2>
- <real> 0 </real>
- <vector2> 1, 1 </vector2>
- <int> 1 </int>
<resource resource_type="Shape2D" path="local://1"> </resource>
<matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
<bool> False </bool>
<vector2> 0, 1 </vector2>
<real> 98 </real>
<real> 0.1 </real>
- <resource resource_type="Script" path="res://coin.*"> </resource>
+ <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> 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>
<string> "2D" </string>
<dictionary shared="false">
- <string> "pixel_snap" </string>
+ <string> "ofs" </string>
+ <vector2> -34.3697, -21.6562 </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> 3.794776 </real>
- <string> "ofs" </string>
- <vector2> -34.3697, -21.6562 </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">
@@ -399,14 +398,11 @@
<string> "run_mode" </string>
<int> 0 </int>
</dictionary>
- <string> "__editor_plugin_screen__" </string>
- <string> "2D" </string>
</dictionary>
- <resource resource_type="Texture" path="res://coin.*"> </resource>
+ <resource external="1"> </resource>
<int> 4 </int>
- <int> 0 </int>
- <color> 1, 1, 1, 1 </color>
- <rect2> 0, 0, 0, 0 </rect2>
+ <int> 1 </int>
+ <real> 0 </real>
<node_path> ".." </node_path>
<resource resource_type="Animation" path="local://2"> </resource>
<resource resource_type="Animation" path="local://3"> </resource>
@@ -414,23 +410,20 @@
<array len="0" shared="false">
</array>
<string> "spin" </string>
+ <int> -1 </int>
<real> 2048 </real>
<resource resource_type="SampleLibrary" path="local://4"> </resource>
<int> 8 </int>
<real> 0.4 </real>
<vector2> 5, 5 </vector2>
- <resource resource_type="Texture" path="res://bullet.*"> </resource>
+ <resource external="3"> </resource>
<real> 10 </real>
<real> 0.2 </real>
- <int> 2 </int>
- <color> 0, 0, 0, 1 </color>
- <vector2_array len="0"> </vector2_array>
+ <resource resource_type="ColorRamp" path="local://5"> </resource>
<rect2> -10, -10, 20, 20 </rect2>
</array>
- <string> "nodes" </string>
- <int_array len="317"> -1, -1, 1, 0, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 8, 13, 8, 14, 9, 15, 10, 16, 11, 17, 0, 18, 12, 19, 13, 0, 0, 0, 21, 20, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 22, 14, 23, 0, 24, 2, 25, 8, 26, 8, 27, 5, 28, 15, 29, 16, 30, 17, 31, 8, 32, 18, 0, 0, 0, 34, 33, -1, 9, 35, 5, 36, 3, 37, 19, 38, 20, 39, 21, 40, 0, 41, 22, 42, 23, 43, 24, 0, 0, 0, 45, 44, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 46, 6, 47, 8, 0, 0, 0, 49, 48, -1, 15, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 50, 3, 51, 1, 52, 1, 53, 25, 54, 1, 55, 5, 56, 26, 57, 3, 0, 0, 0, 59, 58, -1, 55, 2, 0, 3, 1, 4, 1, 5, 0, 60, 5, 6, 2, 7, 3, 8, 4, 61, 27, 62, 28, 63, 1, 64, 3, 65, 3, 66, 8, 67, 2, 68, 29, 69, 0, 70, 1, 71, 30, 72, 3, 73, 31, 74, 3, 75, 3, 76, 3, 77, 3, 78, 3, 79, 3, 80, 3, 81, 3, 82, 32, 83, 32, 84, 3, 85, 3, 86, 3, 87, 3, 88, 3, 89, 3, 90, 3, 91, 3, 92, 3, 93, 3, 94, 3, 95, 3, 96, 3, 97, 3, 98, 33, 99, 3, 100, 17, 101, 1, 102, 34, 103, 1, 104, 34, 105, 1, 106, 34, 107, 35, 0, 0, 0, 109, 108, -1, 10, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 110, 36, 111, 0, 112, 0, 0 </int_array>
- <string> "conns" </string>
- <int_array len="6"> 0, 0, 114, 113, 2, 0 </int_array>
+ <string> "version" </string>
+ <int> 2 </int>
</dictionary>
</main_resource>
diff --git a/demos/2d/platformer/enemy.gd b/demos/2d/platformer/enemy.gd
index a264cd0cff..5a4d8af579 100644
--- a/demos/2d/platformer/enemy.gd
+++ b/demos/2d/platformer/enemy.gd
@@ -1,98 +1,83 @@
extends RigidBody2D
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
+# Member variables
const STATE_WALKING = 0
const STATE_DYING = 1
-
var state = STATE_WALKING
-
var direction = -1
-var anim=""
+var anim = ""
-var rc_left=null
-var rc_right=null
+var rc_left = null
+var rc_right = null
var WALK_SPEED = 50
var bullet_class = preload("res://bullet.gd")
+
func _die():
queue_free()
+
func _pre_explode():
- #stay there
+ # Stay there
clear_shapes()
set_mode(MODE_STATIC)
get_node("sound").play("explode")
-
-func _integrate_forces(s):
+func _integrate_forces(s):
var lv = s.get_linear_velocity()
- var new_anim=anim
+ var new_anim = anim
- if (state==STATE_DYING):
- new_anim="explode"
- elif (state==STATE_WALKING):
-
- new_anim="walk"
+ if (state == STATE_DYING):
+ new_anim = "explode"
+ elif (state == STATE_WALKING):
+ new_anim = "walk"
- var wall_side=0.0
+ var wall_side = 0.0
for i in range(s.get_contact_count()):
var cc = s.get_contact_collider_object(i)
var dp = s.get_contact_local_normal(i)
if (cc):
-
-
if (cc extends bullet_class and not cc.disabled):
set_mode(MODE_RIGID)
- state=STATE_DYING
- #lv=s.get_contact_local_normal(i)*400
+ state = STATE_DYING
+ #lv = s.get_contact_local_normal(i)*400
s.set_angular_velocity(sign(dp.x)*33.0)
set_friction(1)
cc.disable()
get_node("sound").play("hit")
-
break
-
-
- if (dp.x>0.9):
- wall_side=1.0
- elif (dp.x<-0.9):
- wall_side=-1.0
-
- if (wall_side!=0 and wall_side!=direction):
-
- direction=-direction
- get_node("sprite").set_scale( Vector2(-direction,1) )
- if (direction<0 and not rc_left.is_colliding() and rc_right.is_colliding()):
- direction=-direction
- get_node("sprite").set_scale( Vector2(-direction,1) )
- elif (direction>0 and not rc_right.is_colliding() and rc_left.is_colliding()):
- direction=-direction
- get_node("sprite").set_scale( Vector2(-direction,1) )
-
-
- lv.x = direction * WALK_SPEED
- if( anim!=new_anim ):
- anim=new_anim
+ if (dp.x > 0.9):
+ wall_side = 1.0
+ elif (dp.x < -0.9):
+ wall_side = -1.0
+
+ if (wall_side != 0 and wall_side != direction):
+ direction = -direction
+ get_node("sprite").set_scale(Vector2(-direction, 1))
+ if (direction < 0 and not rc_left.is_colliding() and rc_right.is_colliding()):
+ direction = -direction
+ get_node("sprite").set_scale(Vector2(-direction, 1))
+ elif (direction > 0 and not rc_right.is_colliding() and rc_left.is_colliding()):
+ direction = -direction
+ get_node("sprite").set_scale(Vector2(-direction, 1))
+
+ lv.x = direction*WALK_SPEED
+
+ if(anim != new_anim):
+ anim = new_anim
get_node("anim").play(anim)
-
+
s.set_linear_velocity(lv)
func _ready():
- # Initalization here
- rc_left=get_node("raycast_left")
- rc_right=get_node("raycast_right")
-
-
-
+ rc_left = get_node("raycast_left")
+ rc_right = get_node("raycast_right")
diff --git a/demos/2d/platformer/enemy.xml b/demos/2d/platformer/enemy.xml
index ad3a70931d..72d2ff068e 100644
--- a/demos/2d/platformer/enemy.xml
+++ b/demos/2d/platformer/enemy.xml
@@ -2,9 +2,9 @@
<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>
+ <ext_resource path="res://sound_hit.wav" type="Sample" index="4"></ext_resource>
+ <ext_resource path="res://enemy.png" type="Texture" index="1"></ext_resource>
<resource type="CircleShape2D" path="local://1">
<real name="custom_solver_bias"> 0 </real>
<real name="radius"> 14 </real>
@@ -41,33 +41,6 @@
</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="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>
<resource type="Animation" path="local://3">
<string name="resource/name"> "explode" </string>
<real name="length"> 6 </real>
@@ -147,27 +120,54 @@
</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="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>
<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">
- <dictionary name="samples/explode" shared="false">
+ <dictionary name="samples/hit" shared="false">
<string> "db" </string>
<real> 0 </real>
<string> "pitch" </string>
<real> 1 </real>
<string> "sample" </string>
- <resource external="3"> </resource>
+ <resource external="4"> </resource>
</dictionary>
- <dictionary name="samples/hit" shared="false">
+ <dictionary name="samples/explode" shared="false">
<string> "db" </string>
<real> 0 </real>
<string> "pitch" </string>
<real> 1 </real>
<string> "sample" </string>
- <resource external="4"> </resource>
+ <resource external="3"> </resource>
</dictionary>
</resource>
@@ -177,10 +177,12 @@
<int> 0 </int>
<string> "conns" </string>
<int_array len="0"> </int_array>
+ <string> "editable_instances" </string>
+ <array len="0" shared="false">
+ </array>
<string> "names" </string>
- <string_array len="107">
+ <string_array len="108">
<string> "enemy" </string>
- <string> "RigidBody2D" </string>
<string> "input/pickable" </string>
<string> "shapes/0/shape" </string>
<string> "shapes/0/transform" </string>
@@ -210,8 +212,8 @@
<string> "damp_override/angular" </string>
<string> "script/script" </string>
<string> "__meta__" </string>
+ <string> "RigidBody2D" </string>
<string> "enabler" </string>
- <string> "VisibilityEnabler2D" </string>
<string> "transform/pos" </string>
<string> "transform/scale" </string>
<string> "rect" </string>
@@ -220,23 +222,24 @@
<string> "enabler/pause_particles" </string>
<string> "enabler/process_parent" </string>
<string> "enabler/fixed_process_parent" </string>
+ <string> "VisibilityEnabler2D" </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/walk" </string>
<string> "anims/explode" </string>
+ <string> "anims/walk" </string>
<string> "playback/active" </string>
<string> "playback/speed" </string>
<string> "blend_times" </string>
<string> "autoplay" </string>
+ <string> "AnimationPlayer" </string>
<string> "sprite" </string>
- <string> "Sprite" </string>
<string> "texture" </string>
<string> "hframes" </string>
<string> "frame" </string>
+ <string> "Sprite" </string>
<string> "CollisionShape2D" </string>
<string> "shape" </string>
<string> "trigger" </string>
@@ -244,10 +247,11 @@
<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> "type_mask" </string>
+ <string> "RayCast2D" </string>
<string> "raycast_right" </string>
<string> "Particles2D" </string>
<string> "visibility/self_opacity" </string>
@@ -277,7 +281,6 @@
<string> "randomness/spin_velocity" </string>
<string> "color/color_ramp" </string>
<string> "sound" </string>
- <string> "SamplePlayer2D" </string>
<string> "params/volume_db" </string>
<string> "params/pitch_scale" </string>
<string> "params/attenuation/min_distance" </string>
@@ -286,13 +289,17 @@
<string> "config/polyphony" </string>
<string> "config/samples" </string>
<string> "config/pitch_random" </string>
+ <string> "SamplePlayer2D" </string>
</string_array>
<string> "node_count" </string>
<int> 11 </int>
+ <string> "node_paths" </string>
+ <array len="0" shared="false">
+ </array>
<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>
+ <int_array len="289"> -1, -1, 30, 0, -1, 29, 1, 0, 2, 1, 3, 2, 4, 0, 5, 1, 6, 3, 7, 0, 8, 1, 9, 4, 10, 0, 11, 5, 12, 5, 13, 6, 14, 7, 15, 8, 16, 8, 17, 7, 18, 0, 19, 9, 20, 10, 21, 0, 22, 0, 23, 11, 24, 12, 25, 8, 26, 13, 27, 13, 28, 14, 29, 15, 0, 0, 0, 40, 31, -1, 8, 32, 16, 33, 17, 34, 18, 35, 11, 36, 11, 37, 11, 38, 0, 39, 0, 0, 0, 0, 52, 41, -1, 10, 42, 5, 43, 8, 44, 19, 45, 20, 46, 21, 47, 22, 48, 11, 49, 23, 50, 24, 51, 25, 0, 0, 0, 57, 53, -1, 3, 54, 26, 55, 27, 56, 10, 0, 0, 0, 58, 58, -1, 4, 32, 28, 59, 1, 60, 0, 61, 29, 0, 0, 0, 58, 62, -1, 4, 32, 30, 59, 1, 60, 0, 61, 29, 0, 0, 0, 58, 63, -1, 4, 32, 31, 59, 1, 60, 0, 61, 29, 0, 0, 0, 69, 64, -1, 5, 32, 32, 65, 11, 66, 33, 67, 5, 68, 34, 0, 0, 0, 69, 70, -1, 5, 32, 35, 65, 11, 66, 33, 67, 5, 68, 34, 0, 0, 0, 71, 71, -1, 26, 72, 36, 73, 5, 74, 37, 75, 38, 76, 38, 77, 0, 78, 39, 79, 40, 80, 8, 81, 41, 82, 42, 83, 43, 84, 8, 85, 8, 86, 44, 87, 8, 88, 8, 89, 8, 90, 8, 91, 43, 92, 23, 93, 8, 94, 7, 95, 8, 96, 7, 97, 45, 0, 0, 0, 107, 98, -1, 8, 99, 8, 100, 7, 101, 7, 102, 46, 103, 7, 104, 47, 105, 48, 106, 8, 0 </int_array>
<string> "variants" </string>
- <array len="48" shared="false">
+ <array len="49" shared="false">
<bool> False </bool>
<resource resource_type="Shape2D" path="local://1"> </resource>
<matrix32> 1, -0, 0, 1, -1.08072, -2.16144 </matrix32>
@@ -449,8 +456,8 @@
<rect2> -10, -10, 20, 20 </rect2>
<node_path> ".." </node_path>
<resource resource_type="Animation" path="local://2"> </resource>
- <resource resource_type="Animation" path="local://4"> </resource>
<resource resource_type="Animation" path="local://3"> </resource>
+ <resource resource_type="Animation" path="local://4"> </resource>
<real> 3 </real>
<array len="0" shared="false">
</array>
@@ -463,6 +470,7 @@
<vector2> -12.495, 3.53415 </vector2>
<vector2> -33.2868, -9.34363 </vector2>
<vector2> 0, 45 </vector2>
+ <int> 15 </int>
<vector2> 29.1987, -9.34363 </vector2>
<real> 0.121212 </real>
<int> 32 </int>
@@ -479,7 +487,7 @@
<resource resource_type="SampleLibrary" path="local://5"> </resource>
</array>
<string> "version" </string>
- <int> 1 </int>
+ <int> 2 </int>
</dictionary>
</main_resource>
diff --git a/demos/2d/platformer/moving_platform.gd b/demos/2d/platformer/moving_platform.gd
index 719d9e460e..21c312d5c3 100644
--- a/demos/2d/platformer/moving_platform.gd
+++ b/demos/2d/platformer/moving_platform.gd
@@ -1,27 +1,20 @@
extends Node2D
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
+# Member variables
export var motion = Vector2()
export var cycle = 1.0
-var accum=0.0
+var accum = 0.0
-func _fixed_process(delta):
- accum += delta * (1.0/cycle) * PI * 2.0
- accum = fmod(accum,PI*2.0)
+func _fixed_process(delta):
+ accum += delta*(1.0/cycle)*PI*2.0
+ accum = fmod(accum, PI*2.0)
var d = sin(accum)
var xf = Matrix32()
- xf[2]= motion * d
+ xf[2]= motion*d
get_node("platform").set_transform(xf)
-
+
func _ready():
- # Initalization here
set_fixed_process(true)
- pass
-
-
diff --git a/demos/2d/platformer/moving_platform.xml b/demos/2d/platformer/moving_platform.xml
index 4d54d6d11c..4b94a7af48 100644
--- a/demos/2d/platformer/moving_platform.xml
+++ b/demos/2d/platformer/moving_platform.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="4" version="1.0" version_name="Godot Engine v1.0.3917-beta1">
- <ext_resource path="res://moving_platform.*" type="Texture"></ext_resource>
- <ext_resource path="res://moving_platform.*" type="Script"></ext_resource>
+<resource_file type="PackedScene" subresource_count="4" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+ <ext_resource path="res://moving_platform.png" type="Texture" index="1"></ext_resource>
+ <ext_resource path="res://moving_platform.gd" type="Script" index="0"></ext_resource>
<resource type="ConvexPolygonShape2D" path="local://1">
<real name="custom_solver_bias"> 0 </real>
<vector2_array name="points" len="4"> -88, 24, -88, -24, 88, -24, 88, 24 </vector2_array>
@@ -9,169 +9,189 @@
</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> "editable_instances" </string>
+ <array len="0" shared="false">
+ </array>
<string> "names" </string>
- <string_array len="46">
+ <string_array len="36">
<string> "moving_platform" </string>
- <string> "Node2D" </string>
- <string> "visibility/visible" </string>
- <string> "visibility/opacity" </string>
- <string> "visibility/self_opacity" </string>
- <string> "visibility/on_top" </string>
- <string> "transform/pos" </string>
- <string> "transform/rot" </string>
- <string> "transform/scale" </string>
<string> "script/script" </string>
<string> "__meta__" </string>
<string> "motion" </string>
<string> "cycle" </string>
+ <string> "Node2D" </string>
<string> "platform" </string>
- <string> "RigidBody2D" </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> "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> "RigidBody2D" </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> "CollisionPolygon2D" </string>
<string> "build_mode" </string>
<string> "polygon" </string>
+ <string> "shape_range" </string>
+ <string> "trigger" </string>
</string_array>
- <string> "version" </string>
- <int> 1 </int>
- <string> "conn_count" </string>
- <int> 0 </int>
<string> "node_count" </string>
<int> 4 </int>
+ <string> "node_paths" </string>
+ <array len="0" shared="false">
+ </array>
+ <string> "nodes" </string>
+ <int_array len="88"> -1, -1, 5, 0, -1, 4, 1, 0, 2, 1, 3, 2, 4, 3, 0, 0, 0, 28, 6, -1, 21, 7, 4, 8, 5, 9, 6, 10, 4, 11, 7, 12, 7, 13, 8, 14, 3, 15, 3, 16, 9, 17, 3, 18, 4, 19, 10, 20, 10, 21, 4, 22, 4, 23, 11, 24, 2, 25, 9, 26, 12, 27, 12, 0, 1, 0, 29, 29, -1, 1, 30, 13, 0, 1, 0, 31, 31, -1, 4, 32, 10, 33, 14, 34, 15, 35, 4, 0 </int_array>
<string> "variants" </string>
- <array len="17" shared="false">
- <bool> True </bool>
- <real> 1 </real>
- <vector2> 0, 0 </vector2>
- <real> 0 </real>
- <vector2> 1, 1 </vector2>
- <resource resource_type="Script" path="res://moving_platform.*"> </resource>
+ <array len="16" shared="false">
+ <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="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> -210.652, -172.81 </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.360373 </real>
- <string> "ofs" </string>
- <vector2> -210.652, -172.81 </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> 400 </real>
+ <real> 179 </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">
@@ -180,24 +200,24 @@
<string> "run_mode" </string>
<int> 0 </int>
</dictionary>
- <string> "__editor_plugin_screen__" </string>
- <string> "2D" </string>
</dictionary>
- <int> 1 </int>
+ <vector2> 0, 0 </vector2>
+ <real> 1 </real>
+ <bool> False </bool>
<resource resource_type="Shape2D" path="local://1"> </resource>
<matrix32> 1, -0, 0, 1, 0, 0 </matrix32>
- <bool> False </bool>
+ <int> 1 </int>
<int> 3 </int>
+ <real> 0 </real>
<int> 0 </int>
- <resource resource_type="Texture" path="res://moving_platform.*"> </resource>
- <color> 1, 1, 1, 1 </color>
- <rect2> 0, 0, 0, 0 </rect2>
+ <bool> True </bool>
+ <real> -1 </real>
+ <resource external="1"> </resource>
<vector2_array len="4"> -88, -24, 88, -24, 88, 24, -88, 24 </vector2_array>
+ <vector2> -1, -1 </vector2>
</array>
- <string> "nodes" </string>
- <int_array len="150"> -1, -1, 1, 0, -1, 11, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 11, 2, 12, 1, 0, 0, 0, 14, 13, -1, 23, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 15, 7, 16, 8, 17, 9, 18, 10, 19, 11, 20, 1, 21, 1, 22, 3, 23, 10, 24, 10, 25, 12, 26, 10, 27, 0, 28, 0, 29, 2, 30, 3, 0, 1, 0, 31, 31, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 32, 13, 33, 0, 34, 2, 35, 10, 36, 10, 37, 7, 38, 7, 39, 12, 40, 14, 41, 10, 42, 15, 0, 1, 0, 43, 43, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 44, 12, 45, 16, 0 </int_array>
- <string> "conns" </string>
- <int_array len="0"> </int_array>
+ <string> "version" </string>
+ <int> 2 </int>
</dictionary>
</main_resource>
diff --git a/demos/2d/platformer/one_way_platform.xml b/demos/2d/platformer/one_way_platform.xml
index 491dd32b17..85b2322711 100644
--- a/demos/2d/platformer/one_way_platform.xml
+++ b/demos/2d/platformer/one_way_platform.xml
@@ -1,6 +1,6 @@
<?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_file type="PackedScene" subresource_count="3" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+ <ext_resource path="res://one_way_platform.png" type="Texture" index="0"></ext_resource>
<resource type="RectangleShape2D" path="local://1">
<real name="custom_solver_bias"> 0 </real>
<vector2 name="extents"> 100, 10 </vector2>
@@ -12,22 +12,13 @@
<int> 0 </int>
<string> "conns" </string>
<int_array len="0"> </int_array>
+ <string> "editable_instances" </string>
+ <array len="0" shared="false">
+ </array>
<string> "names" </string>
- <string_array len="42">
+ <string_array len="23">
<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>
@@ -40,42 +31,34 @@
<string> "friction" </string>
<string> "bounce" </string>
<string> "__meta__" </string>
+ <string> "StaticBody2D" </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> "Sprite" </string>
<string> "CollisionShape2D" </string>
+ <string> "transform/pos" </string>
<string> "shape" </string>
<string> "trigger" </string>
+ <string> "_update_shape_index" </string>
</string_array>
<string> "node_count" </string>
<int> 3 </int>
+ <string> "node_paths" </string>
+ <array len="0" shared="false">
+ </array>
<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>
+ <int_array len="57"> -1, -1, 14, 0, -1, 13, 1, 0, 2, 1, 3, 2, 4, 0, 5, 3, 6, 3, 7, 4, 8, 5, 9, 6, 10, 7, 11, 8, 12, 7, 13, 9, 0, 0, 0, 17, 15, -1, 1, 16, 10, 0, 0, 0, 18, 18, -1, 4, 19, 11, 20, 1, 21, 0, 22, 12, 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>
+ <array len="13" shared="false">
<bool> False </bool>
<resource resource_type="Shape2D" path="local://1"> </resource>
<matrix32> 1, -0, 0, 1, 1.46304, -13.1672 </matrix32>
+ <int> 1 </int>
<vector2> 0, 1 </vector2>
<real> 20 </real>
+ <vector2> 0, 0 </vector2>
+ <real> 0 </real>
+ <real> 1 </real>
<dictionary shared="false">
<string> "__editor_plugin_screen__" </string>
<string> "2D" </string>
@@ -198,6 +181,11 @@
<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">
@@ -207,13 +195,12 @@
<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>
+ <resource external="0"> </resource>
<vector2> 1.46304, -13.1672 </vector2>
+ <int> -1 </int>
</array>
<string> "version" </string>
- <int> 1 </int>
+ <int> 2 </int>
</dictionary>
</main_resource>
diff --git a/demos/2d/platformer/parallax_bg.xml b/demos/2d/platformer/parallax_bg.xml
index cc8cfe5de0..3b306aecab 100644
--- a/demos/2d/platformer/parallax_bg.xml
+++ b/demos/2d/platformer/parallax_bg.xml
@@ -1,23 +1,23 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="7" version="0.99" version_name="Godot Engine v0.99.3046-pre-beta">
- <ext_resource path="res://scroll_bg_sky.png" type="Texture"></ext_resource>
- <ext_resource path="res://scroll_bg_cloud_1.png" type="Texture"></ext_resource>
- <ext_resource path="res://scroll_bg_cloud_3.png" type="Texture"></ext_resource>
- <ext_resource path="res://scroll_bg_cloud_2.png" type="Texture"></ext_resource>
- <ext_resource path="res://scroll_bg_fg_1.png" type="Texture"></ext_resource>
- <ext_resource path="res://scroll_bg_fg_2.png" type="Texture"></ext_resource>
+<resource_file type="PackedScene" subresource_count="7" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+ <ext_resource path="res://scroll_bg_cloud_1.png" type="Texture" index="1"></ext_resource>
+ <ext_resource path="res://scroll_bg_sky.png" type="Texture" index="0"></ext_resource>
+ <ext_resource path="res://scroll_bg_fg_2.png" type="Texture" index="4"></ext_resource>
+ <ext_resource path="res://scroll_bg_cloud_3.png" type="Texture" index="3"></ext_resource>
+ <ext_resource path="res://scroll_bg_cloud_2.png" type="Texture" index="2"></ext_resource>
+ <ext_resource path="res://scroll_bg_fg_1.png" type="Texture" index="5"></ext_resource>
<main_resource>
- <string name="resource/name"> "" </string>
- <dictionary name="_bundled">
+ <dictionary name="_bundled" shared="false">
+ <string> "conn_count" </string>
+ <int> 0 </int>
+ <string> "conns" </string>
+ <int_array len="0"> </int_array>
+ <string> "editable_instances" </string>
+ <array len="0" shared="false">
+ </array>
<string> "names" </string>
- <string_array len="51">
+ <string_array len="32">
<string> "parallax_bg" </string>
- <string> "ParallaxBackground" </string>
- <string> "process/process" </string>
- <string> "process/fixed_process" </string>
- <string> "process/input" </string>
- <string> "process/unhandled_input" </string>
- <string> "process/mode" </string>
<string> "layer" </string>
<string> "offset" </string>
<string> "rotation" </string>
@@ -27,148 +27,204 @@
<string> "scroll/base_scale" </string>
<string> "scroll/limit_begin" </string>
<string> "scroll/limit_end" </string>
- <string> "script/script" </string>
+ <string> "scroll/ignore_camera_zoom" </string>
<string> "__meta__" </string>
+ <string> "ParallaxBackground" </string>
<string> "sky" </string>
- <string> "ParallaxLayer" </string>
- <string> "visibility/visible" </string>
- <string> "visibility/toplevel" </string>
- <string> "visibility/opacity" </string>
- <string> "visibility/self_opacity" </string>
- <string> "visibility/on_top" </string>
- <string> "visibility/blend_mode" </string>
- <string> "transform/notify" </string>
- <string> "transform/pos" </string>
- <string> "transform/rot" </string>
- <string> "transform/scale" </string>
<string> "motion/scale" </string>
<string> "motion/mirroring" </string>
+ <string> "ParallaxLayer" </string>
<string> "Sprite" </string>
+ <string> "transform/scale" </string>
<string> "texture" </string>
<string> "centered" </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> "clouds" </string>
+ <string> "transform/pos" </string>
<string> "Sprite 2" </string>
<string> "Sprite 3" </string>
<string> "Sprite 4" </string>
<string> "Sprite 5" </string>
<string> "Sprite 6" </string>
<string> "mount_ 2" </string>
+ <string> "region" </string>
+ <string> "region_rect" </string>
<string> "mount_1" </string>
</string_array>
- <string> "version" </string>
- <int> 1 </int>
- <string> "conn_count" </string>
- <int> 0 </int>
<string> "node_count" </string>
<int> 14 </int>
+ <string> "node_paths" </string>
+ <array len="0" shared="false">
+ </array>
+ <string> "nodes" </string>
+ <int_array len="198"> -1, -1, 12, 0, -1, 11, 1, 0, 2, 1, 3, 2, 4, 3, 5, 1, 6, 1, 7, 4, 8, 1, 9, 1, 10, 5, 11, 6, 0, 0, 0, 16, 13, -1, 2, 14, 3, 15, 7, 0, 1, 0, 17, 17, -1, 3, 18, 8, 19, 9, 20, 5, 0, 0, 0, 16, 21, -1, 2, 14, 10, 15, 7, 0, 3, 0, 17, 17, -1, 3, 22, 11, 19, 12, 20, 5, 0, 3, 0, 17, 23, -1, 3, 22, 13, 19, 12, 20, 5, 0, 3, 0, 17, 24, -1, 3, 22, 14, 19, 15, 20, 5, 0, 3, 0, 17, 25, -1, 3, 22, 16, 19, 15, 20, 5, 0, 3, 0, 17, 26, -1, 3, 22, 17, 19, 18, 20, 5, 0, 3, 0, 17, 27, -1, 3, 22, 19, 19, 18, 20, 5, 0, 0, 0, 16, 28, -1, 2, 14, 20, 15, 7, 0, 10, 0, 17, 17, -1, 5, 22, 21, 19, 22, 20, 5, 29, 23, 30, 24, 0, 0, 0, 16, 31, -1, 2, 14, 25, 15, 7, 0, 12, 0, 17, 17, -1, 5, 22, 21, 19, 26, 20, 5, 29, 23, 30, 24, 0 </int_array>
<string> "variants" </string>
- <array len="33">
- <bool> False </bool>
- <int> 0 </int>
+ <array len="27" shared="false">
<int> -1 </int>
<vector2> 0, 0 </vector2>
<real> 0 </real>
<vector2> 1, 1 </vector2>
<vector2> 0.7, 0 </vector2>
- <resource name=""></resource> <dictionary>
+ <bool> False </bool>
+ <dictionary shared="false">
+ <string> "__editor_plugin_screen__" </string>
+ <string> "2D" </string>
<string> "__editor_plugin_states__" </string>
- <dictionary>
- <string> "Script" </string>
- <dictionary>
- <string> "current" </string>
- <int> 0 </int>
- <string> "sources" </string>
- <array len="4">
- <string> "res://moving_platform.gd" </string>
- <string> "res://enemy.gd" </string>
- <string> "res://player.gd" </string>
- <string> "res://coin.gd" </string>
- </array>
- </dictionary>
+ <dictionary shared="false">
<string> "2D" </string>
- <dictionary>
- <string> "zoom" </string>
- <real> 1 </real>
+ <dictionary shared="false">
<string> "ofs" </string>
<vector2> -5, -25 </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 </real>
</dictionary>
<string> "3D" </string>
- <dictionary>
- <string> "zfar" </string>
- <real> 500 </real>
+ <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> "window_mode" </string>
- <int> 0 </int>
- <string> "window_0" </string>
- <dictionary>
- <string> "distance" </string>
- <real> 4 </real>
- <string> "default_light" </string>
- <bool> True </bool>
- <string> "x_rot" </string>
- <real> 0.337 </real>
- <string> "y_rot" </string>
- <real> -0.575 </real>
- <string> "show_grid" </string>
- <bool> True </bool>
- <string> "show_origin" </string>
- <bool> True </bool>
- <string> "pos" </string>
- <vector3> 0, 0, 0 </vector3>
- </dictionary>
+ <string> "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> "Anim" </string>
+ <dictionary shared="false">
+ <string> "visible" </string>
+ <bool> False </bool>
+ </dictionary>
</dictionary>
<string> "__editor_run_settings__" </string>
- <dictionary>
+ <dictionary shared="false">
<string> "custom_args" </string>
<string> "-l $scene" </string>
<string> "run_mode" </string>
<int> 0 </int>
</dictionary>
- <string> "__editor_plugin_screen__" </string>
- <string> "2D" </string>
</dictionary>
- <bool> True </bool>
- <real> 1 </real>
<vector2> 800, 0 </vector2>
<vector2> 32, 0.94 </vector2>
- <resource resource_type="Texture" path="res://scroll_bg_sky.png"> </resource>
- <int> 1 </int>
- <color> 1, 1, 1, 1 </color>
- <rect2> 0, 0, 0, 0 </rect2>
+ <resource external="0"> </resource>
<vector2> 0.1, 1 </vector2>
<vector2> 28, 127 </vector2>
- <resource resource_type="Texture" path="res://scroll_bg_cloud_1.png"> </resource>
+ <resource external="1"> </resource>
<vector2> 404, 24 </vector2>
<vector2> 154, 46 </vector2>
- <resource resource_type="Texture" path="res://scroll_bg_cloud_2.png"> </resource>
+ <resource external="2"> </resource>
<vector2> 525, 130 </vector2>
<vector2> 255, 158 </vector2>
- <resource resource_type="Texture" path="res://scroll_bg_cloud_3.png"> </resource>
+ <resource external="3"> </resource>
<vector2> 674, 70 </vector2>
<vector2> 0.2, 1 </vector2>
<vector2> 0, 225 </vector2>
- <resource resource_type="Texture" path="res://scroll_bg_fg_2.png"> </resource>
+ <resource external="4"> </resource>
+ <bool> True </bool>
<rect2> 0, 0, 800, 256 </rect2>
<vector2> 0.4, 1 </vector2>
- <resource resource_type="Texture" path="res://scroll_bg_fg_1.png"> </resource>
+ <resource external="5"> </resource>
</array>
- <string> "nodes" </string>
- <int_array len="760"> -1, -1, 1, 0, -1, 16, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 3, 9, 4, 10, 5, 11, 3, 12, 3, 13, 6, 14, 3, 15, 3, 16, 7, 17, 8, 0, 0, 0, 19, 18, -1, 18, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 20, 9, 21, 0, 22, 10, 23, 10, 24, 9, 25, 1, 26, 0, 27, 3, 28, 4, 29, 5, 30, 5, 31, 11, 16, 7, 0, 1, 0, 32, 32, -1, 27, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 20, 9, 21, 0, 22, 10, 23, 10, 24, 9, 25, 1, 26, 0, 27, 3, 28, 4, 29, 12, 33, 13, 34, 0, 8, 3, 35, 0, 36, 0, 37, 14, 38, 14, 39, 1, 40, 15, 41, 0, 42, 16, 16, 7, 0, 0, 0, 19, 43, -1, 18, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 20, 9, 21, 0, 22, 10, 23, 10, 24, 9, 25, 1, 26, 0, 27, 3, 28, 4, 29, 5, 30, 17, 31, 11, 16, 7, 0, 3, 0, 32, 32, -1, 27, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 20, 9, 21, 0, 22, 10, 23, 10, 24, 9, 25, 1, 26, 0, 27, 18, 28, 4, 29, 5, 33, 19, 34, 0, 8, 3, 35, 0, 36, 0, 37, 14, 38, 14, 39, 1, 40, 15, 41, 0, 42, 16, 16, 7, 0, 3, 0, 32, 44, -1, 27, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 20, 9, 21, 0, 22, 10, 23, 10, 24, 9, 25, 1, 26, 0, 27, 20, 28, 4, 29, 5, 33, 19, 34, 0, 8, 3, 35, 0, 36, 0, 37, 14, 38, 14, 39, 1, 40, 15, 41, 0, 42, 16, 16, 7, 0, 3, 0, 32, 45, -1, 27, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 20, 9, 21, 0, 22, 10, 23, 10, 24, 9, 25, 1, 26, 0, 27, 21, 28, 4, 29, 5, 33, 22, 34, 0, 8, 3, 35, 0, 36, 0, 37, 14, 38, 14, 39, 1, 40, 15, 41, 0, 42, 16, 16, 7, 0, 3, 0, 32, 46, -1, 27, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 20, 9, 21, 0, 22, 10, 23, 10, 24, 9, 25, 1, 26, 0, 27, 23, 28, 4, 29, 5, 33, 22, 34, 0, 8, 3, 35, 0, 36, 0, 37, 14, 38, 14, 39, 1, 40, 15, 41, 0, 42, 16, 16, 7, 0, 3, 0, 32, 47, -1, 27, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 20, 9, 21, 0, 22, 10, 23, 10, 24, 9, 25, 1, 26, 0, 27, 24, 28, 4, 29, 5, 33, 25, 34, 0, 8, 3, 35, 0, 36, 0, 37, 14, 38, 14, 39, 1, 40, 15, 41, 0, 42, 16, 16, 7, 0, 3, 0, 32, 48, -1, 27, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 20, 9, 21, 0, 22, 10, 23, 10, 24, 9, 25, 1, 26, 0, 27, 26, 28, 4, 29, 5, 33, 25, 34, 0, 8, 3, 35, 0, 36, 0, 37, 14, 38, 14, 39, 1, 40, 15, 41, 0, 42, 16, 16, 7, 0, 0, 0, 19, 49, -1, 18, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 20, 9, 21, 0, 22, 10, 23, 10, 24, 9, 25, 1, 26, 0, 27, 3, 28, 4, 29, 5, 30, 27, 31, 11, 16, 7, 0, 10, 0, 32, 32, -1, 27, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 20, 9, 21, 0, 22, 10, 23, 10, 24, 9, 25, 1, 26, 0, 27, 28, 28, 4, 29, 5, 33, 29, 34, 0, 8, 3, 35, 0, 36, 0, 37, 14, 38, 14, 39, 1, 40, 15, 41, 9, 42, 30, 16, 7, 0, 0, 0, 19, 50, -1, 18, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 20, 9, 21, 0, 22, 10, 23, 10, 24, 9, 25, 1, 26, 0, 27, 3, 28, 4, 29, 5, 30, 31, 31, 11, 16, 7, 0, 12, 0, 32, 32, -1, 27, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 20, 9, 21, 0, 22, 10, 23, 10, 24, 9, 25, 1, 26, 0, 27, 28, 28, 4, 29, 5, 33, 32, 34, 0, 8, 3, 35, 0, 36, 0, 37, 14, 38, 14, 39, 1, 40, 15, 41, 9, 42, 30, 16, 7, 0 </int_array>
- <string> "conns" </string>
- <int_array len="0"> </int_array>
+ <string> "version" </string>
+ <int> 2 </int>
</dictionary>
- <resource name="script/script"></resource>
+
</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 9ee189df21..7ed99df9bd 100644
--- a/demos/2d/platformer/player.gd
+++ b/demos/2d/platformer/player.gd
@@ -1,3 +1,4 @@
+
extends RigidBody2D
# Character Demo, written by Juan Linietsky.
@@ -24,42 +25,40 @@ extends RigidBody2D
# -Friction cant be used, so floor velocity must be considered
# for moving platforms.
-var anim=""
-var siding_left=false
-var jumping=false
-var stopping_jump=false
-var shooting=false
+# Member variables
+var anim = ""
+var siding_left = false
+var jumping = false
+var stopping_jump = false
+var shooting = false
var WALK_ACCEL = 800.0
-var WALK_DEACCEL= 800.0
-var WALK_MAX_VELOCITY= 200.0
+var WALK_DEACCEL = 800.0
+var WALK_MAX_VELOCITY = 200.0
var AIR_ACCEL = 200.0
-var AIR_DEACCEL= 200.0
-var JUMP_VELOCITY=460
-var STOP_JUMP_FORCE=900.0
+var AIR_DEACCEL = 200.0
+var JUMP_VELOCITY = 460
+var STOP_JUMP_FORCE = 900.0
var MAX_FLOOR_AIRBORNE_TIME = 0.15
-var airborne_time=1e20
-var shoot_time=1e20
+var airborne_time = 1e20
+var shoot_time = 1e20
var MAX_SHOOT_POSE_TIME = 0.3
var bullet = preload("res://bullet.xml")
-var floor_h_velocity=0.0
+var floor_h_velocity = 0.0
var enemy
-func _integrate_forces(s):
-
-
+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
-
+ var new_anim = anim
+ var new_siding_left = siding_left
# Get the controls
var move_left = Input.is_action_pressed("move_left")
@@ -74,188 +73,160 @@ func _integrate_forces(s):
p.y = p.y - 100
e.set_pos(p)
get_parent().add_child(e)
-
-
- #deapply prev floor velocity
- lv.x-=floor_h_velocity
- floor_h_velocity=0.0
+ # Deapply prev floor velocity
+ lv.x -= floor_h_velocity
+ floor_h_velocity = 0.0
# Find the floor (a contact with upwards facing collision normal)
- var found_floor=false
- var floor_index=-1
+ var found_floor = false
+ var floor_index = -1
for x in range(s.get_contact_count()):
-
var ci = s.get_contact_local_normal(x)
- if (ci.dot(Vector2(0,-1))>0.6):
- found_floor=true
- floor_index=x
+ if (ci.dot(Vector2(0, -1)) > 0.6):
+ found_floor = true
+ floor_index = x
# A good idea when impementing characters of all kinds,
- # Compensates for physics imprecission, as well as human
- # reaction delay.
-
+ # compensates for physics imprecission, as well as human reaction delay.
if (shoot and not shooting):
- shoot_time=0
+ shoot_time = 0
var bi = bullet.instance()
var ss
if (siding_left):
- ss=-1.0
+ ss = -1.0
else:
- ss=1.0
- var pos = get_pos() + get_node("bullet_shoot").get_pos()*Vector2(ss,1.0)
-
+ ss = 1.0
+ var pos = get_pos() + get_node("bullet_shoot").get_pos()*Vector2(ss, 1.0)
+
bi.set_pos(pos)
get_parent().add_child(bi)
-
- bi.set_linear_velocity( Vector2(800.0*ss,-80) )
- get_node("sprite/smoke").set_emitting(true)
+
+ bi.set_linear_velocity(Vector2(800.0*ss, -80))
+ get_node("sprite/smoke").set_emitting(true)
get_node("sound").play("shoot")
- PS2D.body_add_collision_exception(bi.get_rid(),get_rid()) # make bullet and this not collide
-
-
+ PS2D.body_add_collision_exception(bi.get_rid(), get_rid()) # Make bullet and this not collide
else:
- shoot_time+=step
-
+ shoot_time += step
if (found_floor):
- airborne_time=0.0
+ airborne_time = 0.0
else:
- airborne_time+=step #time it spent in the air
-
+ airborne_time += step # Time it spent in the air
+
var on_floor = airborne_time < MAX_FLOOR_AIRBORNE_TIME
- # Process jump
+ # Process jump
if (jumping):
- if (lv.y>0):
- #set off the jumping flag if going down
- jumping=false
+ if (lv.y > 0):
+ # Set off the jumping flag if going down
+ jumping = false
elif (not jump):
- stopping_jump=true
-
- if (stopping_jump):
- lv.y+=STOP_JUMP_FORCE*step
+ stopping_jump = true
+ if (stopping_jump):
+ lv.y += STOP_JUMP_FORCE*step
+
if (on_floor):
-
# Process logic when character is on floor
-
if (move_left and not move_right):
if (lv.x > -WALK_MAX_VELOCITY):
- lv.x-=WALK_ACCEL*step
+ lv.x -= WALK_ACCEL*step
elif (move_right and not move_left):
if (lv.x < WALK_MAX_VELOCITY):
- lv.x+=WALK_ACCEL*step
+ lv.x += WALK_ACCEL*step
else:
var xv = abs(lv.x)
- xv-=WALK_DEACCEL*step
- if (xv<0):
- xv=0
- lv.x=sign(lv.x)*xv
-
- #Check jump
+ xv -= WALK_DEACCEL*step
+ if (xv < 0):
+ xv = 0
+ lv.x = sign(lv.x)*xv
+
+ # Check jump
if (not jumping and jump):
- lv.y=-JUMP_VELOCITY
- jumping=true
- stopping_jump=false
+ lv.y = -JUMP_VELOCITY
+ jumping = true
+ stopping_jump = false
get_node("sound").play("jump")
-
- #check siding
+ # Check siding
if (lv.x < 0 and move_left):
- new_siding_left=true
+ new_siding_left = true
elif (lv.x > 0 and move_right):
- new_siding_left=false
+ new_siding_left = false
if (jumping):
- new_anim="jumping"
- elif (abs(lv.x)<0.1):
- if (shoot_time<MAX_SHOOT_POSE_TIME):
- new_anim="idle_weapon"
+ new_anim = "jumping"
+ elif (abs(lv.x) < 0.1):
+ if (shoot_time < MAX_SHOOT_POSE_TIME):
+ new_anim = "idle_weapon"
else:
- new_anim="idle"
+ new_anim = "idle"
else:
- if (shoot_time<MAX_SHOOT_POSE_TIME):
- new_anim="run_weapon"
+ if (shoot_time < MAX_SHOOT_POSE_TIME):
+ new_anim = "run_weapon"
else:
- new_anim="run"
+ new_anim = "run"
else:
-
# Process logic when the character is in the air
-
if (move_left and not move_right):
if (lv.x > -WALK_MAX_VELOCITY):
- lv.x-=AIR_ACCEL*step
+ lv.x -= AIR_ACCEL*step
elif (move_right and not move_left):
if (lv.x < WALK_MAX_VELOCITY):
- lv.x+=AIR_ACCEL*step
+ lv.x += AIR_ACCEL*step
else:
var xv = abs(lv.x)
- xv-=AIR_DEACCEL*step
- if (xv<0):
- xv=0
- lv.x=sign(lv.x)*xv
-
- if (lv.y<0):
- if (shoot_time<MAX_SHOOT_POSE_TIME):
- new_anim="jumping_weapon"
+ xv -= AIR_DEACCEL*step
+ if (xv < 0):
+ xv = 0
+ lv.x = sign(lv.x)*xv
+
+ if (lv.y < 0):
+ if (shoot_time < MAX_SHOOT_POSE_TIME):
+ new_anim = "jumping_weapon"
else:
- new_anim="jumping"
+ new_anim = "jumping"
else:
- if (shoot_time<MAX_SHOOT_POSE_TIME):
- new_anim="falling_weapon"
+ if (shoot_time < MAX_SHOOT_POSE_TIME):
+ new_anim = "falling_weapon"
else:
- new_anim="falling"
-
-
- #Update siding
+ new_anim = "falling"
- if (new_siding_left!=siding_left):
+ # Update siding
+ if (new_siding_left != siding_left):
if (new_siding_left):
- get_node("sprite").set_scale( Vector2(-1,1) )
+ get_node("sprite").set_scale(Vector2(-1, 1))
else:
- get_node("sprite").set_scale( Vector2(1,1) )
-
- siding_left=new_siding_left
-
- #Change animation
- if (new_anim!=anim):
- anim=new_anim
- get_node("anim").play(anim)
-
- shooting=shoot
-
- # Apply floor velocity
- if (found_floor):
- floor_h_velocity=s.get_contact_collider_velocity_at_pos(floor_index).x
- lv.x+=floor_h_velocity
+ get_node("sprite").set_scale(Vector2(1, 1))
+ siding_left = new_siding_left
-
-
- #Finally, apply gravity and set back the linear velocity
- lv+=s.get_total_gravity()*step
- s.set_linear_velocity(lv)
-
+ # Change animation
+ if (new_anim != anim):
+ anim = new_anim
+ get_node("anim").play(anim)
-
+ shooting = shoot
+ # Apply floor velocity
+ if (found_floor):
+ floor_h_velocity = s.get_contact_collider_velocity_at_pos(floor_index).x
+ lv.x += floor_h_velocity
+ # Finally, apply gravity and set back the linear velocity
+ lv += s.get_total_gravity()*step
+ s.set_linear_velocity(lv)
func _ready():
- # Initalization here
-
+ enemy = ResourceLoader.load("res://enemy.xml")
+
# if !Globals.has_singleton("Facebook"):
-# return
+# return
# var Facebook = Globals.get_singleton("Facebook")
# var link = Globals.get("facebook/link")
# var icon = Globals.get("facebook/icon")
# var msg = "I just sneezed on your wall! Beat my score and Stop the Running nose!"
# var title = "I just sneezed on your wall!"
# Facebook.post("feed", msg, title, link, icon)
- enemy = ResourceLoader.load("res://enemy.xml")
- pass
-
-
-
diff --git a/demos/2d/platformer/player.xml b/demos/2d/platformer/player.xml
index 8c7b74ceae..493279672f 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="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://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_left.png" type="Texture"></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_file type="PackedScene" subresource_count="25" 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://sound_coin.wav" type="Sample" index="3"></ext_resource>
+ <ext_resource path="res://player.gd" type="Script" index="0"></ext_resource>
+ <ext_resource path="res://robot_demo.png" type="Texture" index="1"></ext_resource>
+ <ext_resource path="res://sound_shoot.wav" type="Sample" index="5"></ext_resource>
+ <ext_resource path="res://sound_jump.wav" type="Sample" index="4"></ext_resource>
+ <ext_resource path="res://osb_left.png" type="Texture" index="6"></ext_resource>
+ <ext_resource path="res://osb_right.png" type="Texture" index="7"></ext_resource>
+ <ext_resource path="res://osb_jump.png" type="Texture" index="8"></ext_resource>
+ <ext_resource path="res://osb_fire.png" type="Texture" index="9"></ext_resource>
<resource type="RayShape2D" path="local://1">
<real name="custom_solver_bias"> 0.5 </real>
<real name="length"> 20 </real>
@@ -78,8 +78,8 @@
</dictionary>
</resource>
- <resource type="Animation" path="local://5">
- <string name="resource/name"> "idle_weapon" </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>
@@ -95,13 +95,14 @@
<real_array len="1"> 1 </real_array>
<string> "values" </string>
<array len="1" shared="false">
- <int> 25 </int>
+ <int> 26 </int>
</array>
</dictionary>
</resource>
- <resource type="Animation" path="local://6">
- <real name="length"> 1.25 </real>
+ <resource type="Animation" path="local://5">
+ <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>
@@ -111,23 +112,19 @@
<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>
+ <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> 0 </int>
- <int> 1 </int>
- <int> 2 </int>
- <int> 3 </int>
- <int> 4 </int>
- <int> 0 </int>
+ <array len="1" shared="false">
+ <int> 25 </int>
</array>
</dictionary>
</resource>
- <resource type="Animation" path="local://11">
- <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>
@@ -137,24 +134,19 @@
<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>
+ <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>
</dictionary>
</resource>
- <resource type="Animation" path="local://10">
- <string name="resource/name"> "falling_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>
@@ -169,14 +161,13 @@
<real_array len="1"> 1 </real_array>
<string> "values" </string>
<array len="1" shared="false">
- <int> 26 </int>
+ <int> 21 </int>
</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://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>
@@ -186,19 +177,23 @@
<string> "cont" </string>
<bool> False </bool>
<string> "times" </string>
- <real_array len="1"> 0 </real_array>
+ <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> 10 </int>
+ <int> 11 </int>
+ <int> 12 </int>
+ <int> 13 </int>
+ <int> 14 </int>
+ <int> 5 </int>
</array>
</dictionary>
</resource>
- <resource type="Animation" path="local://8">
- <string name="resource/name"> "falling" </string>
- <real name="length"> 0.01 </real>
+ <resource type="Animation" path="local://12">
+ <real name="length"> 0.5 </real>
<bool name="loop"> True </bool>
<real name="step"> 0.25 </real>
<string name="tracks/0/type"> "value" </string>
@@ -213,12 +208,12 @@
<real_array len="1"> 1 </real_array>
<string> "values" </string>
<array len="1" shared="false">
- <int> 21 </int>
+ <int> 26 </int>
</array>
</dictionary>
</resource>
- <resource type="Animation" path="local://9">
+ <resource type="Animation" path="local://6">
<real name="length"> 1.25 </real>
<bool name="loop"> True </bool>
<real name="step"> 0.25 </real>
@@ -234,18 +229,18 @@
<real_array len="6"> 1, 1, 1, 1, 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>
+ <int> 0 </int>
+ <int> 1 </int>
+ <int> 2 </int>
+ <int> 3 </int>
+ <int> 4 </int>
+ <int> 0 </int>
</array>
</dictionary>
</resource>
- <resource type="Animation" path="local://12">
- <real name="length"> 0.5 </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>
@@ -255,12 +250,17 @@
<string> "cont" </string>
<bool> False </bool>
<string> "times" </string>
- <real_array len="1"> 0 </real_array>
+ <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> 5 </int>
+ <int> 6 </int>
+ <int> 7 </int>
+ <int> 8 </int>
+ <int> 9 </int>
+ <int> 5 </int>
</array>
</dictionary>
@@ -272,7 +272,7 @@
<string> "pitch" </string>
<real> 1 </real>
<string> "sample" </string>
- <resource resource_type="Sample" path="res://sound_jump.wav"> </resource>
+ <resource external="4"> </resource>
</dictionary>
<dictionary name="samples/shoot" shared="false">
<string> "db" </string>
@@ -280,7 +280,7 @@
<string> "pitch" </string>
<real> 1 </real>
<string> "sample" </string>
- <resource resource_type="Sample" path="res://sound_shoot.wav"> </resource>
+ <resource external="5"> </resource>
</dictionary>
<dictionary name="samples/coin" shared="false">
<string> "db" </string>
@@ -288,7 +288,7 @@
<string> "pitch" </string>
<real> 1 </real>
<string> "sample" </string>
- <resource resource_type="Sample" path="res://sound_coin.wav"> </resource>
+ <resource external="3"> </resource>
</dictionary>
</resource>
@@ -298,10 +298,12 @@
<int> 0 </int>
<string> "conns" </string>
<int_array len="0"> </int_array>
+ <string> "editable_instances" </string>
+ <array len="0" shared="false">
+ </array>
<string> "names" </string>
- <string_array len="142">
+ <string_array len="144">
<string> "player" </string>
- <string> "RigidBody2D" </string>
<string> "input/pickable" </string>
<string> "shapes/0/shape" </string>
<string> "shapes/0/transform" </string>
@@ -328,13 +330,13 @@
<string> "damp_override/angular" </string>
<string> "script/script" </string>
<string> "__meta__" </string>
+ <string> "RigidBody2D" </string>
<string> "sprite" </string>
- <string> "Sprite" </string>
<string> "texture" </string>
<string> "vframes" </string>
<string> "hframes" </string>
+ <string> "Sprite" </string>
<string> "smoke" </string>
- <string> "Particles2D" </string>
<string> "visibility/self_opacity" </string>
<string> "visibility/blend_mode" </string>
<string> "transform/pos" </string>
@@ -364,27 +366,27 @@
<string> "params/anim_initial_pos" </string>
<string> "randomness/spin_velocity" </string>
<string> "color/color_ramp" </string>
+ <string> "Particles2D" </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/jumping" </string>
- <string> "anims/idle_weapon" </string>
- <string> "anims/run" </string>
- <string> "anims/run_weapon" </string>
<string> "anims/falling_weapon" </string>
+ <string> "anims/idle_weapon" </string>
<string> "anims/crouch" </string>
<string> "anims/falling" </string>
<string> "anims/standing_weapon_ready" </string>
<string> "anims/jumping_weapon" </string>
+ <string> "anims/run" </string>
+ <string> "anims/run_weapon" </string>
<string> "playback/active" </string>
<string> "playback/speed" </string>
<string> "blend_times" </string>
<string> "autoplay" </string>
+ <string> "AnimationPlayer" </string>
<string> "camera" </string>
- <string> "Camera2D" </string>
<string> "anchor_mode" </string>
<string> "rotating" </string>
<string> "current" </string>
@@ -400,15 +402,16 @@
<string> "drag_margin/top" </string>
<string> "drag_margin/right" </string>
<string> "drag_margin/bottom" </string>
+ <string> "Camera2D" </string>
<string> "bullet_shoot" </string>
<string> "Position2D" </string>
<string> "CollisionShape2D" </string>
<string> "transform/scale" </string>
<string> "shape" </string>
<string> "trigger" </string>
+ <string> "_update_shape_index" </string>
<string> "sound" </string>
- <string> "SamplePlayer" </string>
- <string> "config/voices" </string>
+ <string> "config/polyphony" </string>
<string> "config/samples" </string>
<string> "default/volume_db" </string>
<string> "default/pitch_scale" </string>
@@ -422,33 +425,38 @@
<string> "default/reverb_room" </string>
<string> "default/reverb_send" </string>
<string> "default/chorus_send" </string>
+ <string> "SamplePlayer" </string>
<string> "CollisionPolygon2D" </string>
<string> "build_mode" </string>
<string> "polygon" </string>
+ <string> "shape_range" </string>
<string> "ui" </string>
- <string> "CanvasLayer" </string>
<string> "layer" </string>
<string> "offset" </string>
<string> "rotation" </string>
<string> "scale" </string>
+ <string> "CanvasLayer" </string>
<string> "left" </string>
- <string> "TouchScreenButton" </string>
<string> "normal" </string>
<string> "pressed" </string>
<string> "bitmask" </string>
<string> "passby_press" </string>
<string> "action" </string>
<string> "visibility_mode" </string>
+ <string> "TouchScreenButton" </string>
<string> "right" </string>
<string> "jump" </string>
<string> "fire" </string>
</string_array>
<string> "node_count" </string>
<int> 14 </int>
+ <string> "node_paths" </string>
+ <array len="0" shared="false">
+ </array>
<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>
+ <int_array len="398"> -1, -1, 27, 0, -1, 26, 1, 0, 2, 1, 3, 2, 4, 0, 5, 3, 6, 4, 7, 0, 8, 5, 9, 5, 10, 6, 11, 7, 12, 8, 13, 8, 14, 9, 15, 10, 16, 11, 17, 12, 18, 0, 19, 0, 20, 10, 21, 13, 22, 8, 23, 14, 24, 14, 25, 15, 26, 16, 0, 0, 0, 32, 28, -1, 3, 29, 17, 30, 6, 31, 18, 0, 1, 0, 63, 33, -1, 29, 34, 19, 35, 5, 36, 20, 37, 21, 38, 22, 39, 23, 40, 23, 41, 0, 42, 0, 43, 24, 44, 25, 45, 8, 46, 26, 47, 27, 48, 9, 49, 8, 50, 8, 51, 28, 52, 8, 53, 8, 54, 8, 55, 8, 56, 29, 57, 29, 58, 8, 59, 9, 60, 8, 61, 29, 62, 30, 0, 0, 0, 82, 64, -1, 17, 65, 5, 66, 8, 67, 31, 68, 32, 69, 33, 70, 34, 71, 35, 72, 36, 73, 37, 74, 38, 75, 39, 76, 40, 77, 41, 78, 10, 79, 29, 80, 42, 81, 43, 0, 0, 0, 99, 83, -1, 15, 84, 5, 85, 0, 86, 10, 87, 8, 88, 44, 89, 11, 90, 11, 91, 45, 92, 45, 93, 10, 94, 10, 95, 46, 96, 46, 97, 46, 98, 46, 0, 0, 0, 101, 100, -1, 1, 36, 47, 0, 0, 0, 102, 102, -1, 5, 36, 48, 103, 49, 104, 1, 105, 0, 106, 50, 0, 0, 0, 122, 107, -1, 14, 108, 5, 109, 51, 110, 8, 111, 9, 112, 8, 113, 8, 114, 8, 115, 11, 116, 8, 117, 8, 118, 8, 119, 6, 120, 8, 121, 8, 0, 0, 0, 123, 123, -1, 4, 124, 11, 125, 52, 126, 53, 105, 0, 0, 0, 0, 132, 127, -1, 4, 128, 11, 129, 13, 130, 8, 131, 44, 0, 9, 0, 140, 133, -1, 8, 36, 54, 103, 55, 134, 56, 135, 57, 136, 57, 137, 10, 138, 58, 139, 5, 0, 9, 0, 140, 141, -1, 8, 36, 59, 103, 55, 134, 60, 135, 57, 136, 57, 137, 10, 138, 61, 139, 5, 0, 9, 0, 140, 142, -1, 8, 36, 62, 103, 55, 134, 63, 135, 57, 136, 57, 137, 0, 138, 64, 139, 5, 0, 9, 0, 140, 143, -1, 8, 36, 65, 103, 55, 134, 66, 135, 57, 136, 57, 137, 0, 138, 67, 139, 5, 0 </int_array>
<string> "variants" </string>
- <array len="67" shared="false">
+ <array len="68" shared="false">
<bool> False </bool>
<resource resource_type="Shape2D" path="local://1"> </resource>
<matrix32> 1, -0, 0, 1.76469, 0.291992, -12.1587 </matrix32>
@@ -464,7 +472,7 @@
<int> 3 </int>
<vector2> 0, 0 </vector2>
<real> -1 </real>
- <resource resource_type="Script" path="res://player.gd"> </resource>
+ <resource external="0"> </resource>
<dictionary shared="false">
<string> "__editor_plugin_screen__" </string>
<string> "2D" </string>
@@ -587,6 +595,11 @@
<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">
@@ -596,7 +609,7 @@
<int> 0 </int>
</dictionary>
</dictionary>
- <resource resource_type="Texture" path="res://robot_demo.png"> </resource>
+ <resource external="1"> </resource>
<int> 16 </int>
<real> 0.363636 </real>
<vector2> 20.7312, 3.21187 </vector2>
@@ -604,7 +617,7 @@
<int> 4 </int>
<real> 0.3 </real>
<real> 0.1 </real>
- <resource resource_type="Texture" path="res://bullet.png"> </resource>
+ <resource external="2"> </resource>
<real> 180 </real>
<real> 20 </real>
<real> 9.8 </real>
@@ -613,14 +626,14 @@
<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://5"> </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://12"> </resource>
+ <resource resource_type="Animation" path="local://6"> </resource>
+ <resource resource_type="Animation" path="local://11"> </resource>
<array len="0" shared="false">
</array>
<string> "" </string>
@@ -630,25 +643,26 @@
<vector2> 31.2428, 4.08784 </vector2>
<vector2> 0.291992, -12.1587 </vector2>
<vector2> 1, 1.76469 </vector2>
+ <int> -1 </int>
<resource resource_type="SampleLibrary" path="local://13"> </resource>
- <nil> </nil>
<vector2_array len="3"> -0.138023, 16.5036, -19.902, -24.8691, 19.3625, -24.6056 </vector2_array>
+ <vector2> -1, -1 </vector2>
<vector2> 27.7593, 360.87 </vector2>
<vector2> 1.49157, 1.46265 </vector2>
- <resource resource_type="Texture" path="res://osb_left.png"> </resource>
+ <resource external="6"> </resource>
<resource name=""></resource> <string> "move_left" </string>
<vector2> 121.542, 361.415 </vector2>
- <resource resource_type="Texture" path="res://osb_right.png"> </resource>
+ <resource external="7"> </resource>
<string> "move_right" </string>
<vector2> 666.224, 359.02 </vector2>
- <resource resource_type="Texture" path="res://osb_jump.png"> </resource>
+ <resource external="8"> </resource>
<string> "jump" </string>
<vector2> 668.073, 262.788 </vector2>
- <resource resource_type="Texture" path="res://osb_fire.png"> </resource>
+ <resource external="9"> </resource>
<string> "shoot" </string>
</array>
<string> "version" </string>
- <int> 1 </int>
+ <int> 2 </int>
</dictionary>
</main_resource>
diff --git a/demos/2d/platformer/seesaw.xml b/demos/2d/platformer/seesaw.xml
index ed879a9319..760423167f 100644
--- a/demos/2d/platformer/seesaw.xml
+++ b/demos/2d/platformer/seesaw.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="4" version="1.0" version_name="Godot Engine v1.0.3917-beta1">
- <ext_resource path="res://plank.*" type="Texture"></ext_resource>
- <ext_resource path="res://plankpin.*" type="Texture"></ext_resource>
+<resource_file type="PackedScene" subresource_count="4" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+ <ext_resource path="res://plank.png" type="Texture" index="0"></ext_resource>
+ <ext_resource path="res://plankpin.png" type="Texture" index="1"></ext_resource>
<resource type="RectangleShape2D" path="local://1">
<real name="custom_solver_bias"> 0 </real>
<vector2 name="extents"> 128, 8 </vector2>
@@ -9,159 +9,192 @@
</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> "editable_instances" </string>
+ <array len="0" shared="false">
+ </array>
<string> "names" </string>
- <string_array len="49">
+ <string_array len="40">
<string> "seesaw" </string>
- <string> "Node2D" </string>
- <string> "visibility/visible" </string>
- <string> "visibility/opacity" </string>
- <string> "visibility/self_opacity" </string>
- <string> "visibility/on_top" </string>
- <string> "transform/pos" </string>
- <string> "transform/rot" </string>
- <string> "transform/scale" </string>
<string> "__meta__" </string>
+ <string> "Node2D" </string>
<string> "plank" </string>
- <string> "RigidBody2D" </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> "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> "RigidBody2D" </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> "Sprite" </string>
<string> "CollisionShape2D" </string>
<string> "shape" </string>
<string> "trigger" </string>
+ <string> "_update_shape_index" </string>
<string> "pin" </string>
- <string> "PinJoint2D" </string>
<string> "node_a" </string>
<string> "node_b" </string>
<string> "bias/bias" </string>
+ <string> "softness" </string>
+ <string> "PinJoint2D" </string>
+ <string> "transform/pos" </string>
</string_array>
- <string> "version" </string>
- <int> 1 </int>
- <string> "conn_count" </string>
- <int> 0 </int>
<string> "node_count" </string>
<int> 6 </int>
+ <string> "node_paths" </string>
+ <array len="0" shared="false">
+ </array>
+ <string> "nodes" </string>
+ <int_array len="106"> -1, -1, 2, 0, -1, 1, 1, 0, 0, 0, 0, 25, 3, -1, 21, 4, 1, 5, 2, 6, 3, 7, 1, 8, 4, 9, 4, 10, 5, 11, 6, 12, 7, 13, 8, 14, 7, 15, 1, 16, 5, 17, 5, 18, 1, 19, 1, 20, 9, 21, 10, 22, 8, 23, 11, 24, 11, 0, 1, 0, 28, 26, -1, 1, 27, 12, 0, 1, 0, 29, 29, -1, 3, 30, 2, 31, 1, 32, 13, 0, 0, 0, 38, 33, -1, 4, 34, 14, 35, 15, 36, 8, 37, 8, 0, 0, 0, 28, 28, -1, 2, 39, 16, 27, 17, 0 </int_array>
<string> "variants" </string>
- <array len="19" shared="false">
- <bool> True </bool>
- <real> 1 </real>
- <vector2> 0, 0 </vector2>
- <real> 0 </real>
- <vector2> 1, 1 </vector2>
+ <array len="18" shared="false">
<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> "pixel_snap" </string>
+ <string> "ofs" </string>
+ <vector2> -116.979, -109.897 </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.050547 </real>
- <string> "ofs" </string>
- <vector2> -116.979, -109.897 </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> 400 </real>
+ <real> 179 </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">
@@ -170,27 +203,27 @@
<string> "run_mode" </string>
<int> 0 </int>
</dictionary>
- <string> "__editor_plugin_screen__" </string>
- <string> "2D" </string>
</dictionary>
- <int> 1 </int>
+ <bool> False </bool>
<resource resource_type="Shape2D" path="local://1"> </resource>
<matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
- <bool> False </bool>
+ <int> 1 </int>
<int> 0 </int>
<real> 5.102041 </real>
- <resource resource_type="Texture" path="res://plank.*"> </resource>
- <color> 1, 1, 1, 1 </color>
- <rect2> 0, 0, 0, 0 </rect2>
+ <real> 1 </real>
+ <real> 0 </real>
+ <bool> True </bool>
+ <vector2> 0, 0 </vector2>
+ <real> -1 </real>
+ <resource external="0"> </resource>
+ <int> -1 </int>
<node_path> "../plank" </node_path>
<node_path> "" </node_path>
<vector2> -0.290825, 20.2425 </vector2>
- <resource resource_type="Texture" path="res://plankpin.*"> </resource>
+ <resource external="1"> </resource>
</array>
- <string> "nodes" </string>
- <int_array len="214"> -1, -1, 1, 0, -1, 8, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 9, 5, 0, 0, 0, 11, 10, -1, 23, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 12, 6, 13, 7, 14, 8, 15, 9, 16, 10, 17, 11, 18, 1, 19, 3, 20, 9, 21, 9, 22, 10, 23, 9, 24, 0, 25, 0, 26, 2, 27, 3, 0, 1, 0, 29, 28, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 30, 12, 31, 0, 32, 2, 33, 9, 34, 9, 35, 6, 36, 6, 37, 10, 38, 13, 39, 9, 40, 14, 0, 1, 0, 41, 41, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 42, 7, 43, 9, 0, 0, 0, 45, 44, -1, 10, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 46, 15, 47, 16, 48, 3, 0, 0, 0, 29, 29, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 17, 7, 3, 8, 4, 30, 18, 31, 0, 32, 2, 33, 9, 34, 9, 35, 6, 36, 6, 37, 10, 38, 13, 39, 9, 40, 14, 0 </int_array>
- <string> "conns" </string>
- <int_array len="0"> </int_array>
+ <string> "version" </string>
+ <int> 2 </int>
</dictionary>
</main_resource>
diff --git a/demos/2d/platformer/stage.xml b/demos/2d/platformer/stage.xml
index d081a1be38..3b5d281551 100644
--- a/demos/2d/platformer/stage.xml
+++ b/demos/2d/platformer/stage.xml
@@ -1,27 +1,29 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<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://coin.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>
+<resource_file type="PackedScene" subresource_count="10" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+ <ext_resource path="res://tileset.xml" type="TileSet" index="0"></ext_resource>
+ <ext_resource path="res://music.ogg" type="AudioStream" index="6"></ext_resource>
+ <ext_resource path="res://coin.xml" type="PackedScene" index="1"></ext_resource>
+ <ext_resource path="res://one_way_platform.xml" type="PackedScene" index="4"></ext_resource>
+ <ext_resource path="res://moving_platform.xml" type="PackedScene" index="2"></ext_resource>
+ <ext_resource path="res://enemy.xml" type="PackedScene" index="7"></ext_resource>
+ <ext_resource path="res://seesaw.xml" type="PackedScene" index="3"></ext_resource>
+ <ext_resource path="res://player.xml" type="PackedScene" index="5"></ext_resource>
+ <ext_resource path="res://parallax_bg.xml" type="PackedScene" index="8"></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> "editable_instances" </string>
+ <array len="0" shared="false">
+ </array>
<string> "names" </string>
- <string_array len="117">
+ <string_array len="112">
<string> "stage" </string>
- <string> "Node" </string>
<string> "__meta__" </string>
+ <string> "Node" </string>
<string> "tile_map" </string>
- <string> "TileMap" </string>
<string> "mode" </string>
<string> "tile_set" </string>
<string> "cell/size" </string>
@@ -36,11 +38,13 @@
<string> "collision/layers" </string>
<string> "collision/mask" </string>
<string> "tile_data" </string>
+ <string> "TileMap" </string>
<string> "coins" </string>
<string> "coin" </string>
- <string> "Area2D" </string>
- <string> "_import_path" </string>
<string> "transform/pos" </string>
+ <string> "input/pickable" </string>
+ <string> "linear_damp" </string>
+ <string> "angular_damp" </string>
<string> "coin 2" </string>
<string> "coin 3" </string>
<string> "coin 4" </string>
@@ -84,24 +88,23 @@
<string> "coin 31 7 5" </string>
<string> "props" </string>
<string> "moving_platform" </string>
- <string> "Node2D" </string>
<string> "motion" </string>
<string> "cycle" </string>
<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>
<string> "stream/play" </string>
<string> "stream/loop" </string>
<string> "stream/volume_db" </string>
<string> "stream/autoplay" </string>
<string> "stream/paused" </string>
+ <string> "stream/loop_restart_time" </string>
+ <string> "stream/buffering_ms" </string>
+ <string> "StreamPlayer" </string>
<string> "enemies" </string>
<string> "enemy 5" </string>
<string> "enemy 6" </string>
@@ -115,7 +118,7 @@
<string> "enemy 14" </string>
<string> "enemy 15" </string>
<string> "parallax_bg" </string>
- <string> "ParallaxBackground" </string>
+ <string> "scroll/ignore_camera_zoom" </string>
<string> "Label" </string>
<string> "margin/left" </string>
<string> "margin/top" </string>
@@ -124,26 +127,24 @@
<string> "focus/ignore_mouse" </string>
<string> "focus/stop_mouse" </string>
<string> "size_flags/horizontal" </string>
- <string> "range/min" </string>
- <string> "range/max" </string>
- <string> "range/step" </string>
- <string> "range/page" </string>
- <string> "range/value" </string>
- <string> "range/exp_edit" </string>
- <string> "rounded_values" </string>
<string> "text" </string>
<string> "autowrap" </string>
<string> "percent_visible" </string>
+ <string> "lines_skipped" </string>
+ <string> "max_lines_visible" </string>
</string_array>
<string> "node_count" </string>
<int> 67 </int>
+ <string> "node_paths" </string>
+ <array len="0" shared="false">
+ </array>
<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>
+ <int_array len="925"> -1, -1, 2, 0, -1, 1, 1, 0, 0, 0, 0, 18, 3, -1, 15, 4, 1, 5, 2, 6, 3, 7, 4, 8, 5, 9, 6, 10, 1, 11, 7, 12, 7, 13, 8, 14, 9, 15, 10, 16, 10, 17, 11, 1, 12, 0, 0, 0, 2, 19, -1, 0, 0, 2, 0, 2147483647, 20, 13, 4, 21, 14, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 25, 13, 4, 21, 17, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 26, 13, 4, 21, 18, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 27, 13, 4, 21, 19, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 28, 13, 4, 21, 20, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 29, 13, 4, 21, 21, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 30, 13, 4, 21, 22, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 31, 13, 4, 21, 23, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 32, 13, 4, 21, 24, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 33, 13, 4, 21, 25, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 34, 13, 4, 21, 26, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 35, 13, 4, 21, 27, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 36, 13, 4, 21, 28, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 37, 13, 4, 21, 29, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 38, 13, 4, 21, 30, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 39, 13, 4, 21, 31, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 40, 13, 4, 21, 32, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 41, 13, 4, 21, 33, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 42, 13, 4, 21, 34, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 43, 13, 4, 21, 35, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 44, 13, 4, 21, 36, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 45, 13, 4, 21, 37, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 46, 13, 4, 21, 38, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 47, 13, 4, 21, 39, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 48, 13, 4, 21, 40, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 49, 13, 4, 21, 41, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 50, 13, 4, 21, 42, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 51, 13, 4, 21, 43, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 52, 13, 4, 21, 44, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 53, 13, 4, 21, 45, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 54, 13, 4, 21, 46, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 55, 13, 4, 21, 47, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 56, 13, 4, 21, 48, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 57, 13, 4, 21, 49, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 58, 13, 4, 21, 50, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 59, 13, 4, 21, 51, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 60, 13, 4, 21, 52, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 61, 13, 4, 21, 53, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 62, 13, 4, 21, 54, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 63, 13, 4, 21, 55, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 64, 13, 4, 21, 56, 22, 15, 23, 16, 24, 8, 0, 2, 0, 2147483647, 65, 13, 4, 21, 57, 22, 15, 23, 16, 24, 8, 0, 0, 0, 2, 66, -1, 0, 0, 45, 0, 2147483647, 67, 58, 3, 21, 59, 68, 60, 69, 61, 0, 45, 0, 2147483647, 70, 58, 3, 21, 62, 68, 63, 69, 64, 0, 45, 0, 2147483647, 71, 58, 3, 21, 65, 68, 66, 69, 64, 0, 45, 0, 2147483647, 72, 67, 1, 21, 68, 0, 45, 0, 2147483647, 73, 69, 1, 21, 70, 0, 0, 0, 2147483647, 74, 71, 1, 21, 72, 0, 0, 0, 84, 75, -1, 8, 76, 73, 77, 7, 78, 15, 79, 74, 80, 15, 81, 7, 82, 9, 83, 75, 0, 0, 0, 2, 85, -1, 0, 0, 53, 0, 2147483647, 86, 76, 1, 21, 77, 0, 53, 0, 2147483647, 87, 76, 1, 21, 78, 0, 53, 0, 2147483647, 88, 76, 1, 21, 79, 0, 53, 0, 2147483647, 89, 76, 1, 21, 80, 0, 53, 0, 2147483647, 90, 76, 1, 21, 81, 0, 53, 0, 2147483647, 91, 76, 1, 21, 82, 0, 53, 0, 2147483647, 92, 76, 1, 21, 83, 0, 53, 0, 2147483647, 93, 76, 1, 21, 84, 0, 53, 0, 2147483647, 94, 76, 1, 21, 85, 0, 53, 0, 2147483647, 95, 76, 1, 21, 86, 0, 53, 0, 2147483647, 96, 76, 1, 21, 87, 0, 0, 0, 2147483647, 97, 88, 1, 98, 7, 0, 0, 0, 99, 99, -1, 12, 100, 89, 101, 90, 102, 91, 103, 92, 104, 15, 105, 15, 106, 6, 107, 93, 108, 15, 109, 8, 110, 1, 111, 94, 0 </int_array>
<string> "variants" </string>
- <array len="103" shared="false">
+ <array len="95" shared="false">
<dictionary shared="false">
<string> "__editor_plugin_screen__" </string>
- <string> "2D" </string>
+ <string> "Script" </string>
<string> "__editor_plugin_states__" </string>
<dictionary shared="false">
<string> "2D" </string>
@@ -263,6 +264,11 @@
<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">
@@ -273,7 +279,7 @@
</dictionary>
</dictionary>
<int> 0 </int>
- <resource resource_type="TileSet" path="res://tileset.xml"> </resource>
+ <resource external="0"> </resource>
<vector2> 64, 64 </vector2>
<int> 8 </int>
<matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
@@ -287,119 +293,10 @@
<string> "_edit_lock_" </string>
<bool> True </bool>
</dictionary>
- <resource resource_type="PackedScene" path="res://coin.xml"> </resource>
- <node_path> "" </node_path>
+ <resource external="1"> </resource>
<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>
- </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> 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">
- <string> "custom_args" </string>
- <string> "-l $scene" </string>
- <string> "run_mode" </string>
- <int> 0 </int>
- </dictionary>
- </dictionary>
+ <bool> True </bool>
+ <real> 0.1 </real>
<vector2> 704, 1179 </vector2>
<vector2> 736, 1179 </vector2>
<vector2> 1120, 992 </vector2>
@@ -441,119 +338,8 @@
<vector2> 4300.75, 541.058 </vector2>
<vector2> 4236.75, 541.058 </vector2>
<vector2> 4172.75, 541.058 </vector2>
- <resource resource_type="PackedScene" path="res://moving_platform.xml"> </resource>
+ <resource external="2"> </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>
@@ -561,483 +347,17 @@
<real> 10 </real>
<vector2> 3419.86, 739.662 </vector2>
<vector2> 450, 0 </vector2>
- <resource resource_type="PackedScene" path="res://seesaw.xml"> </resource>
+ <resource external="3"> </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>
+ <resource external="4"> </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>
+ <resource external="5"> </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>
+ <resource external="6"> </resource>
<real> 2 </real>
- <resource resource_type="PackedScene" path="res://enemy.xml"> </resource>
+ <int> 500 </int>
+ <resource external="7"> </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>
@@ -1048,79 +368,16 @@
<vector2> 3429.73, 540.865 </vector2>
<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>
+ <resource external="8"> </resource>
<real> 12 </real>
<real> -202 </real>
<real> 358 </real>
<real> -10 </real>
- <real> 7 </real>
- <real> 14.769231 </real>
<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>
+ <int> -1 </int>
</array>
<string> "version" </string>
- <int> 1 </int>
+ <int> 2 </int>
</dictionary>
</main_resource>
diff --git a/demos/2d/platformer/tileset_edit.xml b/demos/2d/platformer/tileset_edit.xml
index db289433ab..3ae9f1bd2a 100644
--- a/demos/2d/platformer/tileset_edit.xml
+++ b/demos/2d/platformer/tileset_edit.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<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_file type="PackedScene" subresource_count="14" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+ <ext_resource path="res://tiles_demo.png" type="Texture" index="0"></ext_resource>
<resource type="ConvexPolygonShape2D" path="local://1">
<real name="custom_solver_bias"> 0 </real>
<vector2_array name="points" len="4"> -32, -24, 32, -24, 32, 32, -32, 32 </vector2_array>
@@ -63,48 +63,41 @@
</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> "editable_instances" </string>
+ <array len="0" shared="false">
+ </array>
<string> "names" </string>
- <string_array len="77">
+ <string_array len="49">
<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> "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>
- <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> "Sprite" </string>
<string> "collision" </string>
- <string> "StaticBody2D" </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> "layers" </string>
+ <string> "collision/layers" </string>
+ <string> "collision/mask" </string>
<string> "constant_linear_velocity" </string>
<string> "constant_angular_velocity" </string>
<string> "friction" </string>
<string> "bounce" </string>
+ <string> "StaticBody2D" </string>
<string> "CollisionPolygon2D" </string>
<string> "build_mode" </string>
<string> "polygon" </string>
+ <string> "shape_range" </string>
<string> "trigger" </string>
<string> "edge" </string>
+ <string> "transform/pos" </string>
<string> "wall" </string>
<string> "wall_deco" </string>
<string> "corner" </string>
@@ -118,147 +111,152 @@
<string> "ramp" </string>
<string> "ceiling2wall" </string>
<string> "help" </string>
- <string> "Label" </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>
- <string> "range/page" </string>
- <string> "range/value" </string>
- <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> "lines_skipped" </string>
+ <string> "max_lines_visible" </string>
+ <string> "Label" </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> 42 </int>
+ <string> "node_paths" </string>
+ <array len="0" shared="false">
+ </array>
+ <string> "nodes" </string>
+ <int_array len="772"> -1, -1, 0, 0, -1, 1, 1, 0, 0, 0, 0, 6, 2, -1, 3, 3, 1, 4, 2, 5, 3, 0, 1, 0, 18, 7, -1, 10, 8, 4, 9, 5, 10, 6, 11, 4, 12, 7, 13, 7, 14, 8, 15, 9, 16, 10, 17, 9, 0, 2, 0, 19, 19, -1, 4, 20, 11, 21, 12, 22, 13, 23, 4, 0, 0, 0, 6, 24, -1, 4, 25, 14, 3, 1, 4, 2, 5, 15, 0, 4, 0, 18, 7, -1, 10, 8, 4, 9, 16, 10, 6, 11, 4, 12, 7, 13, 7, 14, 8, 15, 9, 16, 10, 17, 9, 0, 5, 0, 19, 19, -1, 4, 20, 11, 21, 17, 22, 13, 23, 4, 0, 0, 0, 6, 26, -1, 4, 25, 18, 3, 1, 4, 2, 5, 19, 0, 7, 0, 18, 7, -1, 10, 8, 4, 9, 20, 10, 6, 11, 4, 12, 7, 13, 7, 14, 8, 15, 9, 16, 10, 17, 9, 0, 8, 0, 19, 19, -1, 4, 20, 11, 21, 21, 22, 13, 23, 4, 0, 0, 0, 6, 27, -1, 4, 25, 22, 3, 1, 4, 2, 5, 23, 0, 10, 0, 18, 7, -1, 10, 8, 4, 9, 24, 10, 6, 11, 4, 12, 7, 13, 7, 14, 8, 15, 9, 16, 10, 17, 9, 0, 11, 0, 19, 19, -1, 4, 20, 11, 21, 25, 22, 13, 23, 4, 0, 0, 0, 6, 28, -1, 4, 25, 26, 3, 1, 4, 2, 5, 27, 0, 13, 0, 18, 7, -1, 10, 8, 4, 9, 28, 10, 6, 11, 4, 12, 7, 13, 7, 14, 8, 15, 9, 16, 10, 17, 9, 0, 14, 0, 19, 19, -1, 4, 20, 11, 21, 29, 22, 13, 23, 4, 0, 0, 0, 6, 29, -1, 4, 25, 30, 3, 1, 4, 2, 5, 31, 0, 16, 0, 18, 7, -1, 10, 8, 4, 9, 32, 10, 6, 11, 4, 12, 7, 13, 7, 14, 8, 15, 9, 16, 10, 17, 9, 0, 17, 0, 19, 19, -1, 4, 20, 11, 21, 33, 22, 13, 23, 4, 0, 0, 0, 6, 30, -1, 4, 25, 34, 3, 1, 4, 2, 5, 35, 0, 19, 0, 18, 7, -1, 10, 8, 4, 9, 36, 10, 6, 11, 4, 12, 7, 13, 7, 14, 8, 15, 9, 16, 10, 17, 9, 0, 20, 0, 19, 19, -1, 4, 20, 11, 21, 33, 22, 13, 23, 4, 0, 0, 0, 6, 31, -1, 4, 25, 37, 3, 1, 4, 2, 5, 38, 0, 0, 0, 6, 32, -1, 4, 25, 39, 3, 1, 4, 2, 5, 40, 0, 0, 0, 6, 33, -1, 4, 25, 41, 3, 1, 4, 2, 5, 42, 0, 0, 0, 6, 34, -1, 4, 25, 43, 3, 1, 4, 2, 5, 44, 0, 0, 0, 6, 35, -1, 4, 25, 45, 3, 1, 4, 2, 5, 46, 0, 26, 0, 18, 7, -1, 10, 8, 4, 9, 47, 10, 6, 11, 4, 12, 7, 13, 7, 14, 8, 15, 9, 16, 10, 17, 9, 0, 27, 0, 19, 19, -1, 4, 20, 11, 21, 48, 22, 13, 23, 4, 0, 0, 0, 6, 36, -1, 4, 25, 49, 3, 1, 4, 2, 5, 50, 0, 29, 0, 18, 7, -1, 10, 8, 4, 9, 51, 10, 6, 11, 4, 12, 7, 13, 7, 14, 8, 15, 9, 16, 10, 17, 9, 0, 30, 0, 19, 19, -1, 4, 20, 11, 21, 52, 22, 13, 23, 4, 0, 0, 0, 6, 37, -1, 4, 25, 53, 3, 1, 4, 2, 5, 54, 0, 32, 0, 18, 7, -1, 10, 8, 4, 9, 55, 10, 6, 11, 4, 12, 7, 13, 7, 14, 8, 15, 9, 16, 10, 17, 9, 0, 33, 0, 19, 19, -1, 4, 20, 11, 21, 21, 22, 13, 23, 4, 0, 0, 0, 46, 38, -1, 7, 39, 2, 40, 2, 41, 56, 42, 57, 43, 10, 44, 11, 45, 58, 0, 0, 0, 6, 47, -1, 4, 25, 59, 3, 1, 4, 2, 5, 60, 0, 36, 0, 18, 7, -1, 10, 8, 4, 9, 61, 10, 6, 11, 4, 12, 7, 13, 7, 14, 8, 15, 9, 16, 10, 17, 9, 0, 37, 0, 19, 19, -1, 4, 20, 11, 21, 62, 22, 13, 23, 4, 0, 0, 0, 6, 48, -1, 4, 25, 63, 3, 1, 4, 2, 5, 64, 0, 39, 0, 18, 7, -1, 10, 8, 4, 9, 65, 10, 6, 11, 4, 12, 7, 13, 7, 14, 8, 15, 9, 16, 10, 17, 9, 0, 40, 0, 19, 19, -1, 4, 20, 11, 21, 66, 22, 13, 23, 4, 0 </int_array>
<string> "variants" </string>
- <array len="69" shared="false">
- <node_path> "" </node_path>
+ <array len="67" shared="false">
<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> "pixel_snap" </string>
- <bool> True </bool>
- <string> "zoom" </string>
- <real> 1.670183 </real>
- <string> "use_snap" </string>
- <bool> True </bool>
<string> "ofs" </string>
<vector2> -446.534, -87.6905 </vector2>
- <string> "snap" </string>
- <int> 8 </int>
+ <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.670183 </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> "zfar" </string>
- <real> 500 </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> "x_rot" </string>
- <real> 0 </real>
- <string> "y_rot" </string>
- <real> 0 </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> "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>
+ </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> "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>
+ </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> "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>
+ </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> "pos" </string>
- <vector3> 0, 0, 0 </vector3>
+ <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> "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> "zfar" </string>
+ <real> 500 </real>
<string> "znear" </string>
<real> 0.1 </real>
- <string> "default_srgb" </string>
+ </dictionary>
+ <string> "Anim" </string>
+ <dictionary shared="false">
+ <string> "visible" </string>
<bool> False </bool>
- <string> "deflight_rot_x" </string>
- <real> 0.942478 </real>
</dictionary>
</dictionary>
<string> "__editor_run_settings__" </string>
@@ -268,23 +266,20 @@
<string> "run_mode" </string>
<int> 0 </int>
</dictionary>
- <string> "__editor_plugin_screen__" </string>
- <string> "2D" </string>
</dictionary>
+ <resource external="0"> </resource>
<bool> True </bool>
- <real> 1 </real>
- <vector2> 0, 0 </vector2>
- <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>
- <color> 1, 1, 1, 1 </color>
<rect2> 0, 0, 64, 64 </rect2>
+ <bool> False </bool>
<resource resource_type="Shape2D" path="local://1"> </resource>
<matrix32> 1, -0, 0, 1, 0, 0 </matrix32>
+ <int> 1 </int>
+ <vector2> 0, 0 </vector2>
+ <real> 0 </real>
+ <real> 1 </real>
+ <int> 0 </int>
<vector2_array len="4"> 32, -24, 32, 32, -32, 32, -32, -24 </vector2_array>
+ <vector2> -1, -1 </vector2>
<vector2> 64, 0 </vector2>
<rect2> 64, 0, 64, 64 </rect2>
<resource resource_type="Shape2D" path="local://2"> </resource>
@@ -329,7 +324,7 @@
<resource resource_type="Shape2D" path="local://10"> </resource>
<int> 2 </int>
<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>
+ <int> -1 </int>
<vector2> 0, 256 </vector2>
<rect2> 128, 0, 64, 64 </rect2>
<resource resource_type="Shape2D" path="local://11"> </resource>
@@ -339,10 +334,8 @@
<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="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>
+ <string> "version" </string>
+ <int> 2 </int>
</dictionary>
</main_resource>
diff --git a/demos/2d/pong/pong.gd b/demos/2d/pong/pong.gd
index cf6003c659..81afbd9961 100644
--- a/demos/2d/pong/pong.gd
+++ b/demos/2d/pong/pong.gd
@@ -1,73 +1,67 @@
extends Node2D
-#member variables here, example:
-#var a=2
-#var b="textvar"
+# Member variables
const INITIAL_BALL_SPEED = 80
var ball_speed = INITIAL_BALL_SPEED
-var screen_size = Vector2(640,400)
-#default ball direction
-var direction = Vector2(-1,0)
-var pad_size = Vector2(8,32)
+var screen_size = Vector2(640, 400)
+
+# Default ball direction
+var direction = Vector2(-1, 0)
+var pad_size = Vector2(8, 32)
const PAD_SPEED = 150
func _process(delta):
-
-
- #get ball position and pad rectangles
+ # Get ball position and pad rectangles
var ball_pos = get_node("ball").get_pos()
- var left_rect = Rect2( get_node("left").get_pos() - pad_size*0.5, pad_size )
- var right_rect = Rect2( get_node("right").get_pos() - pad_size*0.5, pad_size )
+ var left_rect = Rect2(get_node("left").get_pos() - pad_size*0.5, pad_size)
+ var right_rect = Rect2(get_node("right").get_pos() - pad_size*0.5, pad_size)
- #integrate new ball postion
- ball_pos+=direction*ball_speed*delta
+ # Integrate new ball postion
+ ball_pos += direction*ball_speed*delta
- #flip when touching roof or floor
- if ( (ball_pos.y<0 and direction.y <0) or (ball_pos.y>screen_size.y and direction.y>0)):
+ # Flip when touching roof or floor
+ if ((ball_pos.y < 0 and direction.y < 0) or (ball_pos.y > screen_size.y and direction.y > 0)):
direction.y = -direction.y
-
- #flip, change direction and increase speed when touching pads
- if ( (left_rect.has_point(ball_pos) and direction.x < 0) or (right_rect.has_point(ball_pos) and direction.x > 0)):
- direction.x=-direction.x
- ball_speed*=1.1
- direction.y=randf()*2.0-1
+
+ # Flip, change direction and increase speed when touching pads
+ if ((left_rect.has_point(ball_pos) and direction.x < 0) or (right_rect.has_point(ball_pos) and direction.x > 0)):
+ direction.x = -direction.x
+ ball_speed *= 1.1
+ direction.y = randf()*2.0 - 1
direction = direction.normalized()
-
- #check gameover
- if (ball_pos.x<0 or ball_pos.x>screen_size.x):
- ball_pos=screen_size*0.5
- ball_speed=INITIAL_BALL_SPEED
- direction=Vector2(-1,0)
-
-
+
+ # Check gameover
+ if (ball_pos.x < 0 or ball_pos.x > screen_size.x):
+ ball_pos = screen_size*0.5
+ ball_speed = INITIAL_BALL_SPEED
+ direction = Vector2(-1, 0)
+
get_node("ball").set_pos(ball_pos)
-
- #move left pad
+
+ # Move left pad
var left_pos = get_node("left").get_pos()
if (left_pos.y > 0 and Input.is_action_pressed("left_move_up")):
- left_pos.y+=-PAD_SPEED*delta
+ left_pos.y += -PAD_SPEED*delta
if (left_pos.y < screen_size.y and Input.is_action_pressed("left_move_down")):
- left_pos.y+=PAD_SPEED*delta
-
+ left_pos.y += PAD_SPEED*delta
+
get_node("left").set_pos(left_pos)
-
- #move right pad
+
+ # Move right pad
var right_pos = get_node("right").get_pos()
if (right_pos.y > 0 and Input.is_action_pressed("right_move_up")):
- right_pos.y+=-PAD_SPEED*delta
+ right_pos.y += -PAD_SPEED*delta
if (right_pos.y < screen_size.y and Input.is_action_pressed("right_move_down")):
- right_pos.y+=PAD_SPEED*delta
-
- get_node("right").set_pos(right_pos)
+ right_pos.y += PAD_SPEED*delta
-
+ get_node("right").set_pos(right_pos)
+
func _ready():
- screen_size = get_viewport_rect().size #get actual size
+ screen_size = get_viewport_rect().size # Get actual size
pad_size = get_node("left").get_texture().get_size()
set_process(true)
-
diff --git a/demos/2d/pong/pong.xml b/demos/2d/pong/pong.xml
index cf47a8db9f..2189be7c62 100644
--- a/demos/2d/pong/pong.xml
+++ b/demos/2d/pong/pong.xml
@@ -1,153 +1,170 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="6" version="0.99" version_name="Godot Engine v0.99.3735-pre-beta">
- <ext_resource path="res://pong.*" type="GDScript"></ext_resource>
- <ext_resource path="res://separator.*" type="ImageTexture"></ext_resource>
- <ext_resource path="res://left_pallete.*" type="ImageTexture"></ext_resource>
- <ext_resource path="res://right_pallete.*" type="ImageTexture"></ext_resource>
- <ext_resource path="res://ball.*" type="ImageTexture"></ext_resource>
+<resource_file type="PackedScene" subresource_count="6" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+ <ext_resource path="res://pong.gd" type="Script" index="0"></ext_resource>
+ <ext_resource path="res://left_pallete.png" type="Texture" index="1"></ext_resource>
+ <ext_resource path="res://separator.png" type="Texture" index="3"></ext_resource>
+ <ext_resource path="res://right_pallete.png" type="Texture" index="2"></ext_resource>
+ <ext_resource path="res://ball.png" type="Texture" index="4"></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> "editable_instances" </string>
+ <array len="0" shared="false">
+ </array>
<string> "names" </string>
- <string_array len="27">
+ <string_array len="11">
<string> "game" </string>
- <string> "Node2D" </string>
- <string> "visibility/visible" </string>
- <string> "visibility/opacity" </string>
- <string> "visibility/self_opacity" </string>
- <string> "visibility/on_top" </string>
- <string> "transform/pos" </string>
- <string> "transform/rot" </string>
- <string> "transform/scale" </string>
<string> "script/script" </string>
<string> "__meta__" </string>
+ <string> "Node2D" </string>
<string> "left" </string>
- <string> "Sprite" </string>
+ <string> "transform/pos" </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> "Sprite" </string>
<string> "right" </string>
<string> "separator" </string>
<string> "ball" </string>
</string_array>
- <string> "version" </string>
- <int> 1 </int>
- <string> "conn_count" </string>
- <int> 0 </int>
<string> "node_count" </string>
<int> 5 </int>
+ <string> "node_paths" </string>
+ <array len="0" shared="false">
+ </array>
+ <string> "nodes" </string>
+ <int_array len="55"> -1, -1, 3, 0, -1, 2, 1, 0, 2, 1, 0, 0, 0, 7, 4, -1, 2, 5, 2, 6, 3, 0, 0, 0, 7, 8, -1, 2, 5, 4, 6, 5, 0, 0, 0, 7, 9, -1, 2, 5, 6, 6, 7, 0, 0, 0, 7, 10, -1, 2, 5, 8, 6, 9, 0 </int_array>
<string> "variants" </string>
- <array len="20" shared="false">
- <bool> True </bool>
- <real> 1 </real>
- <vector2> 0, 0 </vector2>
- <real> 0 </real>
- <vector2> 1, 1 </vector2>
- <resource resource_type="GDScript" path="res://pong.*"> </resource>
+ <array len="10" shared="false">
+ <resource external="0"> </resource>
<dictionary shared="false">
+ <string> "__editor_plugin_screen__" </string>
+ <string> "Script" </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://pong.gd" </string>
- </array>
- </dictionary>
<string> "2D" </string>
<dictionary shared="false">
- <string> "pixel_snap" </string>
- <bool> True </bool>
- <string> "zoom" </string>
- <real> 1.108033 </real>
<string> "ofs" </string>
<vector2> -54.59, -36.0052 </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>
</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">
@@ -156,27 +173,18 @@
<string> "run_mode" </string>
<int> 0 </int>
</dictionary>
- <string> "__editor_plugin_screen__" </string>
- <string> "Script" </string>
</dictionary>
<vector2> 67.6875, 183.208 </vector2>
- <resource resource_type="ImageTexture" path="res://left_pallete.*"> </resource>
- <bool> False </bool>
- <int> 1 </int>
- <int> 0 </int>
- <color> 1, 1, 1, 1 </color>
- <rect2> 0, 0, 0, 0 </rect2>
+ <resource external="1"> </resource>
<vector2> 577, 187 </vector2>
- <resource resource_type="ImageTexture" path="res://right_pallete.*"> </resource>
+ <resource external="2"> </resource>
<vector2> 320, 200 </vector2>
- <resource resource_type="ImageTexture" path="res://separator.*"> </resource>
+ <resource external="3"> </resource>
<vector2> 320.283, 188 </vector2>
- <resource resource_type="ImageTexture" path="res://ball.*"> </resource>
+ <resource external="4"> </resource>
</array>
- <string> "nodes" </string>
- <int_array len="197"> -1, -1, 1, 0, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 0, 0, 0, 12, 11, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 7, 7, 3, 8, 4, 13, 8, 14, 0, 15, 2, 16, 9, 17, 9, 18, 10, 19, 10, 20, 11, 21, 12, 22, 9, 23, 13, 0, 0, 0, 12, 24, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 14, 7, 3, 8, 4, 13, 15, 14, 0, 15, 2, 16, 9, 17, 9, 18, 10, 19, 10, 20, 11, 21, 12, 22, 9, 23, 13, 0, 0, 0, 12, 25, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 16, 7, 3, 8, 4, 13, 17, 14, 0, 15, 2, 16, 9, 17, 9, 18, 10, 19, 10, 20, 11, 21, 12, 22, 9, 23, 13, 0, 0, 0, 12, 26, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 18, 7, 3, 8, 4, 13, 19, 14, 0, 15, 2, 16, 9, 17, 9, 18, 10, 19, 10, 20, 11, 21, 12, 22, 9, 23, 13, 0 </int_array>
- <string> "conns" </string>
- <int_array len="0"> </int_array>
+ <string> "version" </string>
+ <int> 2 </int>
</dictionary>
</main_resource>
diff --git a/demos/2d/rubegoldberg/ball.xml b/demos/2d/rubegoldberg/ball.xml
index 625438eb75..73b699514c 100644
--- a/demos/2d/rubegoldberg/ball.xml
+++ b/demos/2d/rubegoldberg/ball.xml
@@ -1,171 +1,200 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="3" version="0.99" version_name="Godot Engine v0.99.3656-pre-beta">
- <ext_resource path="res://art/bowling_ball.*" type="ImageTexture"></ext_resource>
+<resource_file type="PackedScene" subresource_count="3" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+ <ext_resource path="res://art/bowling_ball.png" type="Texture" index="0"></ext_resource>
<resource type="CircleShape2D" path="local://1">
- <string name="resource/name"> "" </string>
<real name="custom_solver_bias"> 0 </real>
<real name="radius"> 32 </real>
- <resource name="script/script"></resource>
+
</resource>
<main_resource>
- <string name="resource/name"> "" </string>
<dictionary name="_bundled" shared="false">
+ <string> "conn_count" </string>
+ <int> 0 </int>
+ <string> "conns" </string>
+ <int_array len="0"> </int_array>
+ <string> "editable_instances" </string>
+ <array len="0" shared="false">
+ </array>
<string> "names" </string>
- <string_array len="48">
+ <string_array len="30">
<string> "Ball" </string>
- <string> "RigidBody2D" </string>
- <string> "process/process" </string>
- <string> "process/fixed_process" </string>
- <string> "process/input" </string>
- <string> "process/unhandled_input" </string>
- <string> "process/pause_mode" </string>
- <string> "visibility/visible" </string>
- <string> "visibility/opacity" </string>
- <string> "visibility/self_opacity" </string>
- <string> "visibility/on_top" </string>
- <string> "visibility/blend_mode" </string>
- <string> "transform/pos" </string>
- <string> "transform/rot" </string>
- <string> "transform/scale" </string>
- <string> "shape_count" </string>
+ <string> "input/pickable" </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> "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> "script/script" </string>
+ <string> "damp_override/linear" </string>
+ <string> "damp_override/angular" </string>
<string> "__meta__" </string>
+ <string> "RigidBody2D" </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_array>
- <string> "version" </string>
- <int> 1 </int>
- <string> "conn_count" </string>
- <int> 0 </int>
<string> "node_count" </string>
<int> 3 </int>
+ <string> "node_paths" </string>
+ <array len="0" shared="false">
+ </array>
+ <string> "nodes" </string>
+ <int_array len="73"> -1, -1, 23, 0, -1, 22, 1, 0, 2, 1, 3, 2, 4, 0, 5, 3, 6, 3, 7, 4, 8, 5, 9, 6, 10, 7, 11, 6, 12, 0, 13, 4, 14, 4, 15, 0, 16, 0, 17, 8, 18, 9, 19, 7, 20, 10, 21, 10, 22, 11, 0, 0, 0, 24, 24, -1, 1, 25, 12, 0, 0, 0, 26, 26, -1, 3, 27, 1, 28, 0, 29, 13, 0 </int_array>
<string> "variants" </string>
- <array len="16" shared="true">
+ <array len="14" shared="false">
<bool> False </bool>
+ <resource resource_type="Shape2D" path="local://1"> </resource>
+ <matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
+ <int> 1 </int>
<int> 0 </int>
- <bool> True </bool>
+ <real> 3 </real>
<real> 1 </real>
- <vector2> 0, 0 </vector2>
<real> 0 </real>
- <vector2> 1, 1 </vector2>
- <int> 1 </int>
- <resource resource_type="CircleShape2D" path="local://1"> </resource>
- <matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
- <real> 3 </real>
- <resource name=""></resource> <dictionary shared="false">
+ <bool> True </bool>
+ <vector2> 0, 0 </vector2>
+ <real> -1 </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> "zoom" </string>
- <real> 1.50734 </real>
<string> "ofs" </string>
<vector2> -80.5995, -149.825 </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.50734 </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="true">
+ <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">
@@ -174,18 +203,13 @@
<string> "run_mode" </string>
<int> 0 </int>
</dictionary>
- <string> "__editor_plugin_screen__" </string>
- <string> "Script" </string>
</dictionary>
- <resource resource_type="ImageTexture" path="res://art/bowling_ball.*"> </resource>
- <color> 1, 1, 1, 1 </color>
- <rect2> 0, 0, 0, 0 </rect2>
+ <resource external="0"> </resource>
+ <int> -1 </int>
</array>
- <string> "nodes" </string>
- <int_array len="165"> -1, -1, 1, 0, -1, 31, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 3, 9, 3, 10, 2, 11, 1, 12, 4, 13, 5, 14, 6, 15, 7, 16, 8, 17, 9, 18, 0, 19, 1, 20, 10, 21, 3, 22, 5, 23, 0, 24, 0, 25, 1, 26, 0, 27, 2, 28, 2, 29, 4, 30, 5, 31, 11, 32, 12, 0, 0, 0, 33, 33, -1, 25, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 3, 9, 3, 10, 2, 11, 1, 12, 4, 13, 5, 14, 6, 34, 13, 35, 2, 36, 4, 37, 0, 38, 0, 39, 7, 40, 7, 41, 1, 42, 14, 43, 0, 44, 15, 31, 11, 0, 0, 0, 45, 45, -1, 16, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 3, 9, 3, 10, 2, 11, 1, 12, 4, 13, 5, 14, 6, 46, 8, 47, 0, 31, 11, 0 </int_array>
- <string> "conns" </string>
- <int_array len="0"> </int_array>
+ <string> "version" </string>
+ <int> 2 </int>
</dictionary>
- <resource name="script/script"></resource>
+
</main_resource>
</resource_file> \ No newline at end of file
diff --git a/demos/2d/rubegoldberg/box.xml b/demos/2d/rubegoldberg/box.xml
index c715326ae0..c30d30e9f9 100644
--- a/demos/2d/rubegoldberg/box.xml
+++ b/demos/2d/rubegoldberg/box.xml
@@ -1,142 +1,214 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="3" version="0.99" version_name="Godot Engine v0.99.2864-pre-beta">
- <ext_resource path="res://art/box.png" type="Texture"></ext_resource>
+<resource_file type="PackedScene" subresource_count="3" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+ <ext_resource path="res://art/box.png" type="Texture" index="0"></ext_resource>
<resource type="RectangleShape2D" path="local://1">
- <string name="resource/name"> "" </string>
<real name="custom_solver_bias"> 0 </real>
<vector2 name="extents"> 32, 32 </vector2>
- <resource name="script/script"></resource>
+
</resource>
<main_resource>
- <string name="resource/name"> "" </string>
- <dictionary name="_bundled">
+ <dictionary name="_bundled" shared="false">
+ <string> "conn_count" </string>
+ <int> 0 </int>
+ <string> "conns" </string>
+ <int_array len="0"> </int_array>
+ <string> "editable_instances" </string>
+ <array len="0" shared="false">
+ </array>
<string> "names" </string>
- <string_array len="48">
+ <string_array len="30">
<string> "box" </string>
- <string> "RigidBody2D" </string>
- <string> "process/process" </string>
- <string> "process/fixed_process" </string>
- <string> "process/input" </string>
- <string> "process/unhandled_input" </string>
- <string> "process/mode" </string>
- <string> "visibility/visible" </string>
- <string> "visibility/toplevel" </string>
- <string> "visibility/opacity" </string>
- <string> "visibility/self_opacity" </string>
- <string> "visibility/on_top" </string>
- <string> "visibility/blend_mode" </string>
- <string> "transform/notify" </string>
- <string> "transform/pos" </string>
- <string> "transform/rot" </string>
- <string> "transform/scale" </string>
- <string> "shape_count" </string>
+ <string> "input/pickable" </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> "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> "script/script" </string>
+ <string> "damp_override/linear" </string>
+ <string> "damp_override/angular" </string>
<string> "__meta__" </string>
+ <string> "RigidBody2D" </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_array>
- <string> "version" </string>
- <int> 1 </int>
- <string> "conn_count" </string>
- <int> 0 </int>
<string> "node_count" </string>
<int> 3 </int>
+ <string> "node_paths" </string>
+ <array len="0" shared="false">
+ </array>
+ <string> "nodes" </string>
+ <int_array len="73"> -1, -1, 23, 0, -1, 22, 1, 0, 2, 1, 3, 2, 4, 0, 5, 3, 6, 3, 7, 4, 8, 5, 9, 5, 10, 6, 11, 5, 12, 0, 13, 4, 14, 4, 15, 0, 16, 0, 17, 7, 18, 8, 19, 6, 20, 9, 21, 9, 22, 10, 0, 0, 0, 24, 24, -1, 1, 25, 11, 0, 0, 0, 26, 26, -1, 3, 27, 1, 28, 0, 29, 12, 0 </int_array>
<string> "variants" </string>
- <array len="15">
+ <array len="13" shared="false">
<bool> False </bool>
+ <resource resource_type="Shape2D" path="local://1"> </resource>
+ <matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
+ <int> 1 </int>
<int> 0 </int>
- <bool> True </bool>
<real> 1 </real>
- <vector2> 0, 0 </vector2>
<real> 0 </real>
- <vector2> 1, 1 </vector2>
- <int> 1 </int>
- <resource resource_type="RectangleShape2D" path="local://1"> </resource>
- <matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
- <resource name=""></resource> <dictionary>
+ <bool> True </bool>
+ <vector2> 0, 0 </vector2>
+ <real> -1 </real>
+ <dictionary shared="false">
+ <string> "__editor_plugin_screen__" </string>
+ <string> "2D" </string>
<string> "__editor_plugin_states__" </string>
- <dictionary>
+ <dictionary shared="false">
<string> "2D" </string>
- <dictionary>
- <string> "zoom" </string>
- <real> 1 </real>
+ <dictionary shared="false">
<string> "ofs" </string>
<vector2> -125, -163 </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 </real>
</dictionary>
<string> "3D" </string>
- <dictionary>
- <string> "zfar" </string>
- <real> 500 </real>
+ <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> "window_mode" </string>
- <int> 0 </int>
- <string> "window_0" </string>
- <dictionary>
- <string> "distance" </string>
- <real> 4 </real>
- <string> "default_light" </string>
- <bool> True </bool>
- <string> "x_rot" </string>
- <real> 0.337 </real>
- <string> "y_rot" </string>
- <real> -0.575 </real>
- <string> "show_grid" </string>
- <bool> True </bool>
- <string> "show_origin" </string>
- <bool> True </bool>
- <string> "pos" </string>
- <vector3> 0, 0, 0 </vector3>
- </dictionary>
+ <string> "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> "Anim" </string>
+ <dictionary shared="false">
+ <string> "visible" </string>
+ <bool> False </bool>
+ </dictionary>
</dictionary>
<string> "__editor_run_settings__" </string>
- <dictionary>
+ <dictionary shared="false">
<string> "custom_args" </string>
<string> "-l $scene" </string>
<string> "run_mode" </string>
<int> 0 </int>
</dictionary>
- <string> "__editor_plugin_screen__" </string>
- <string> "2D" </string>
</dictionary>
- <resource resource_type="Texture" path="res://art/box.png"> </resource>
- <color> 1, 1, 1, 1 </color>
- <rect2> 0, 0, 0, 0 </rect2>
+ <resource external="0"> </resource>
+ <int> -1 </int>
</array>
- <string> "nodes" </string>
- <int_array len="173"> -1, -1, 1, 0, -1, 32, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 2, 14, 4, 15, 5, 16, 6, 17, 7, 18, 8, 19, 9, 20, 1, 21, 3, 22, 3, 23, 5, 24, 0, 25, 0, 26, 1, 27, 0, 28, 2, 29, 2, 30, 4, 31, 5, 32, 10, 33, 11, 0, 0, 0, 34, 34, -1, 27, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 0, 14, 4, 15, 5, 16, 6, 35, 12, 36, 2, 37, 4, 38, 0, 39, 0, 40, 7, 41, 7, 42, 1, 43, 13, 44, 0, 45, 14, 32, 10, 0, 0, 0, 46, 46, -1, 17, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 2, 14, 4, 15, 5, 16, 6, 47, 8, 32, 10, 0 </int_array>
- <string> "conns" </string>
- <int_array len="0"> </int_array>
+ <string> "version" </string>
+ <int> 2 </int>
</dictionary>
- <resource name="script/script"></resource>
+
</main_resource>
</resource_file> \ No newline at end of file
diff --git a/demos/2d/rubegoldberg/domino.xml b/demos/2d/rubegoldberg/domino.xml
index 324bf57e66..ec86c833df 100644
--- a/demos/2d/rubegoldberg/domino.xml
+++ b/demos/2d/rubegoldberg/domino.xml
@@ -1,143 +1,215 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="3" version="0.99" version_name="Godot Engine v0.99.2864-pre-beta">
- <ext_resource path="res://art/domino.png" type="Texture"></ext_resource>
+<resource_file type="PackedScene" subresource_count="3" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+ <ext_resource path="res://art/domino.png" type="Texture" index="0"></ext_resource>
<resource type="RectangleShape2D" path="local://1">
- <string name="resource/name"> "" </string>
<real name="custom_solver_bias"> 0 </real>
<vector2 name="extents"> 16, 64 </vector2>
- <resource name="script/script"></resource>
+
</resource>
<main_resource>
- <string name="resource/name"> "" </string>
- <dictionary name="_bundled">
+ <dictionary name="_bundled" shared="false">
+ <string> "conn_count" </string>
+ <int> 0 </int>
+ <string> "conns" </string>
+ <int_array len="0"> </int_array>
+ <string> "editable_instances" </string>
+ <array len="0" shared="false">
+ </array>
<string> "names" </string>
- <string_array len="48">
+ <string_array len="30">
<string> "domino" </string>
- <string> "RigidBody2D" </string>
- <string> "process/process" </string>
- <string> "process/fixed_process" </string>
- <string> "process/input" </string>
- <string> "process/unhandled_input" </string>
- <string> "process/mode" </string>
- <string> "visibility/visible" </string>
- <string> "visibility/toplevel" </string>
- <string> "visibility/opacity" </string>
- <string> "visibility/self_opacity" </string>
- <string> "visibility/on_top" </string>
- <string> "visibility/blend_mode" </string>
- <string> "transform/notify" </string>
- <string> "transform/pos" </string>
- <string> "transform/rot" </string>
- <string> "transform/scale" </string>
- <string> "shape_count" </string>
+ <string> "input/pickable" </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> "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> "script/script" </string>
+ <string> "damp_override/linear" </string>
+ <string> "damp_override/angular" </string>
<string> "__meta__" </string>
+ <string> "RigidBody2D" </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_array>
- <string> "version" </string>
- <int> 1 </int>
- <string> "conn_count" </string>
- <int> 0 </int>
<string> "node_count" </string>
<int> 3 </int>
+ <string> "node_paths" </string>
+ <array len="0" shared="false">
+ </array>
+ <string> "nodes" </string>
+ <int_array len="73"> -1, -1, 23, 0, -1, 22, 1, 0, 2, 1, 3, 2, 4, 0, 5, 3, 6, 3, 7, 4, 8, 5, 9, 6, 10, 7, 11, 5, 12, 0, 13, 4, 14, 4, 15, 0, 16, 0, 17, 8, 18, 9, 19, 7, 20, 10, 21, 10, 22, 11, 0, 0, 0, 24, 24, -1, 1, 25, 12, 0, 0, 0, 26, 26, -1, 3, 27, 1, 28, 0, 29, 13, 0 </int_array>
<string> "variants" </string>
- <array len="16">
+ <array len="14" shared="false">
<bool> False </bool>
+ <resource resource_type="Shape2D" path="local://1"> </resource>
+ <matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
+ <int> 1 </int>
<int> 0 </int>
- <bool> True </bool>
<real> 1 </real>
- <vector2> 0, 0 </vector2>
- <real> 0 </real>
- <vector2> 1, 1 </vector2>
- <int> 1 </int>
- <resource resource_type="RectangleShape2D" path="local://1"> </resource>
- <matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
<real> 0.5 </real>
- <resource name=""></resource> <dictionary>
+ <real> 0 </real>
+ <bool> True </bool>
+ <vector2> 0, 0 </vector2>
+ <real> -1 </real>
+ <dictionary shared="false">
+ <string> "__editor_plugin_screen__" </string>
+ <string> "2D" </string>
<string> "__editor_plugin_states__" </string>
- <dictionary>
+ <dictionary shared="false">
<string> "2D" </string>
- <dictionary>
- <string> "zoom" </string>
- <real> 1 </real>
+ <dictionary shared="false">
<string> "ofs" </string>
<vector2> -135, -114 </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 </real>
</dictionary>
<string> "3D" </string>
- <dictionary>
- <string> "zfar" </string>
- <real> 500 </real>
+ <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> "window_mode" </string>
- <int> 0 </int>
- <string> "window_0" </string>
- <dictionary>
- <string> "distance" </string>
- <real> 4 </real>
- <string> "default_light" </string>
- <bool> True </bool>
- <string> "x_rot" </string>
- <real> 0.337 </real>
- <string> "y_rot" </string>
- <real> -0.575 </real>
- <string> "show_grid" </string>
- <bool> True </bool>
- <string> "show_origin" </string>
- <bool> True </bool>
- <string> "pos" </string>
- <vector3> 0, 0, 0 </vector3>
- </dictionary>
+ <string> "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> "Anim" </string>
+ <dictionary shared="false">
+ <string> "visible" </string>
+ <bool> False </bool>
+ </dictionary>
</dictionary>
<string> "__editor_run_settings__" </string>
- <dictionary>
+ <dictionary shared="false">
<string> "custom_args" </string>
<string> "-l $scene" </string>
<string> "run_mode" </string>
<int> 0 </int>
</dictionary>
- <string> "__editor_plugin_screen__" </string>
- <string> "2D" </string>
</dictionary>
- <resource resource_type="Texture" path="res://art/domino.png"> </resource>
- <color> 1, 1, 1, 1 </color>
- <rect2> 0, 0, 0, 0 </rect2>
+ <resource external="0"> </resource>
+ <int> -1 </int>
</array>
- <string> "nodes" </string>
- <int_array len="173"> -1, -1, 1, 0, -1, 32, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 2, 14, 4, 15, 5, 16, 6, 17, 7, 18, 8, 19, 9, 20, 1, 21, 3, 22, 10, 23, 5, 24, 0, 25, 0, 26, 1, 27, 0, 28, 2, 29, 2, 30, 4, 31, 5, 32, 11, 33, 12, 0, 0, 0, 34, 34, -1, 27, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 0, 14, 4, 15, 5, 16, 6, 35, 13, 36, 2, 37, 4, 38, 0, 39, 0, 40, 7, 41, 7, 42, 1, 43, 14, 44, 0, 45, 15, 32, 11, 0, 0, 0, 46, 46, -1, 17, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 2, 14, 4, 15, 5, 16, 6, 47, 8, 32, 11, 0 </int_array>
- <string> "conns" </string>
- <int_array len="0"> </int_array>
+ <string> "version" </string>
+ <int> 2 </int>
</dictionary>
- <resource name="script/script"></resource>
+
</main_resource>
</resource_file> \ No newline at end of file
diff --git a/demos/2d/rubegoldberg/pendulum.xml b/demos/2d/rubegoldberg/pendulum.xml
index 2a5378ff2f..90ad45f287 100644
--- a/demos/2d/rubegoldberg/pendulum.xml
+++ b/demos/2d/rubegoldberg/pendulum.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="5" version="0.99" version_name="Godot Engine v0.99.3735-pre-beta">
- <ext_resource path="res://art/bowling_ball.*" type="ImageTexture"></ext_resource>
- <ext_resource path="res://art/box.*" type="ImageTexture"></ext_resource>
+<resource_file type="PackedScene" subresource_count="5" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+ <ext_resource path="res://art/bowling_ball.png" type="Texture" index="1"></ext_resource>
+ <ext_resource path="res://art/box.png" type="Texture" index="0"></ext_resource>
<resource type="RectangleShape2D" path="local://1">
<real name="custom_solver_bias"> 0 </real>
<vector2 name="extents"> 3, 12 </vector2>
@@ -14,165 +14,201 @@
</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> "editable_instances" </string>
+ <array len="0" shared="false">
+ </array>
<string> "names" </string>
- <string_array len="57">
+ <string_array len="49">
<string> "pendulum" </string>
- <string> "Node2D" </string>
- <string> "visibility/visible" </string>
- <string> "visibility/opacity" </string>
- <string> "visibility/self_opacity" </string>
- <string> "visibility/on_top" </string>
- <string> "transform/pos" </string>
- <string> "transform/rot" </string>
- <string> "transform/scale" </string>
<string> "__meta__" </string>
+ <string> "Node2D" </string>
<string> "union_0" </string>
- <string> "RigidBody2D" </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> "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> "RigidBody2D" </string>
<string> "Sprite" </string>
+ <string> "transform/scale" </string>
<string> "texture" </string>
- <string> "centered" </string>
- <string> "offset" </string>
- <string> "flip_h" </string>
- <string> "flip_v" </string>
- <string> "vframes" </string>
- <string> "hframes" </string>
- <string> "frame" </string>
- <string> "modulate" </string>
- <string> "region" </string>
- <string> "region_rect" </string>
<string> "collision" </string>
- <string> "CollisionShape2D" </string>
<string> "shape" </string>
<string> "trigger" </string>
+ <string> "_update_shape_index" </string>
+ <string> "CollisionShape2D" </string>
<string> "union_ 2" </string>
+ <string> "transform/pos" </string>
<string> "union_ 3" </string>
<string> "union_ 4" </string>
<string> "joint1" </string>
- <string> "PinJoint2D" </string>
<string> "node_a" </string>
<string> "node_b" </string>
<string> "bias/bias" </string>
+ <string> "softness" </string>
+ <string> "PinJoint2D" </string>
<string> "joint 2_3" </string>
<string> "joint 3_4" </string>
<string> "ball" </string>
<string> "joint 4_ball" </string>
<string> "joint wall" </string>
</string_array>
- <string> "version" </string>
- <int> 1 </int>
- <string> "conn_count" </string>
- <int> 0 </int>
<string> "node_count" </string>
<int> 21 </int>
+ <string> "node_paths" </string>
+ <array len="0" shared="false">
+ </array>
+ <string> "nodes" </string>
+ <int_array len="479"> -1, -1, 2, 0, -1, 1, 1, 0, 0, 0, 0, 25, 3, -1, 22, 4, 1, 5, 2, 6, 3, 7, 1, 8, 4, 9, 4, 10, 5, 11, 6, 12, 7, 13, 8, 14, 7, 15, 1, 16, 5, 17, 5, 18, 1, 19, 1, 20, 9, 21, 10, 22, 8, 23, 11, 24, 11, 1, 12, 0, 1, 0, 26, 26, -1, 2, 27, 13, 28, 14, 0, 1, 0, 33, 29, -1, 3, 30, 2, 31, 1, 32, 15, 0, 0, 0, 25, 34, -1, 23, 35, 16, 4, 1, 5, 2, 6, 17, 7, 1, 8, 4, 9, 4, 10, 5, 11, 6, 12, 7, 13, 8, 14, 7, 15, 1, 16, 5, 17, 5, 18, 1, 19, 1, 20, 9, 21, 10, 22, 8, 23, 11, 24, 11, 1, 18, 0, 4, 0, 26, 26, -1, 2, 27, 13, 28, 14, 0, 4, 0, 33, 29, -1, 3, 30, 2, 31, 1, 32, 15, 0, 0, 0, 25, 36, -1, 23, 35, 19, 4, 1, 5, 2, 6, 17, 7, 1, 8, 4, 9, 4, 10, 5, 11, 6, 12, 7, 13, 8, 14, 7, 15, 1, 16, 5, 17, 5, 18, 1, 19, 1, 20, 9, 21, 10, 22, 8, 23, 11, 24, 11, 1, 18, 0, 7, 0, 26, 26, -1, 2, 27, 13, 28, 14, 0, 7, 0, 33, 29, -1, 3, 30, 2, 31, 1, 32, 15, 0, 0, 0, 25, 37, -1, 23, 35, 20, 4, 1, 5, 2, 6, 17, 7, 1, 8, 4, 9, 4, 10, 5, 11, 6, 12, 7, 13, 8, 14, 7, 15, 1, 16, 5, 17, 5, 18, 1, 19, 1, 20, 9, 21, 10, 22, 8, 23, 11, 24, 11, 1, 18, 0, 10, 0, 26, 26, -1, 2, 27, 13, 28, 14, 0, 10, 0, 33, 29, -1, 3, 30, 2, 31, 1, 32, 15, 0, 0, 0, 43, 38, -1, 5, 35, 21, 39, 22, 40, 23, 41, 8, 42, 8, 0, 0, 0, 43, 44, -1, 5, 35, 24, 39, 23, 40, 25, 41, 8, 42, 8, 0, 0, 0, 43, 45, -1, 5, 35, 26, 39, 25, 40, 27, 41, 6, 42, 8, 0, 0, 0, 25, 46, -1, 24, 35, 28, 27, 29, 4, 1, 5, 30, 6, 17, 7, 1, 8, 4, 9, 4, 10, 5, 11, 6, 12, 7, 13, 8, 14, 7, 15, 1, 16, 5, 17, 5, 18, 1, 19, 1, 20, 9, 21, 10, 22, 8, 23, 11, 24, 11, 1, 18, 0, 16, 0, 26, 26, -1, 2, 27, 31, 28, 32, 0, 16, 0, 33, 29, -1, 3, 30, 30, 31, 1, 32, 15, 0, 0, 0, 43, 47, -1, 5, 35, 33, 39, 27, 40, 34, 41, 8, 42, 8, 0, 0, 0, 43, 48, -1, 5, 35, 35, 39, 22, 40, 36, 41, 8, 42, 8, 0 </int_array>
<string> "variants" </string>
- <array len="38" shared="false">
- <bool> True </bool>
- <real> 1 </real>
- <vector2> 0, 0 </vector2>
- <real> 0 </real>
- <vector2> 1, 1 </vector2>
+ <array len="37" shared="false">
<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> "zoom" </string>
- <real> 2.78951 </real>
<string> "ofs" </string>
<vector2> -121.028, 0.923909 </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.78951 </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>
+ <string> "Anim" </string>
+ <dictionary shared="false">
+ <string> "visible" </string>
+ <bool> False </bool>
+ </dictionary>
</dictionary>
<string> "__editor_run_settings__" </string>
<dictionary shared="false">
@@ -181,23 +217,25 @@
<string> "run_mode" </string>
<int> 0 </int>
</dictionary>
- <string> "__editor_plugin_screen__" </string>
- <string> "2D" </string>
</dictionary>
- <int> 1 </int>
- <resource resource_type="RectangleShape2D" path="local://1"> </resource>
- <matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
<bool> False </bool>
+ <resource resource_type="Shape2D" path="local://1"> </resource>
+ <matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
+ <int> 1 </int>
<int> 0 </int>
<real> 0.2 </real>
+ <real> 1 </real>
+ <real> 0 </real>
+ <bool> True </bool>
+ <vector2> 0, 0 </vector2>
+ <real> -1 </real>
<dictionary shared="false">
<string> "_edit_group_" </string>
<bool> True </bool>
</dictionary>
<vector2> 0.1, 0.4 </vector2>
- <resource resource_type="ImageTexture" path="res://art/box.*"> </resource>
- <color> 1, 1, 1, 1 </color>
- <rect2> 0, 0, 0, 0 </rect2>
+ <resource external="0"> </resource>
+ <int> -1 </int>
<vector2> 0, 26.9432 </vector2>
<matrix32> 1, -0, 0, 1, 0, 0 </matrix32>
<dictionary shared="false">
@@ -215,18 +253,16 @@
<node_path> "../union_ 4" </node_path>
<vector2> 0, 106.787 </vector2>
<vector2> 0.98476, 1 </vector2>
- <resource resource_type="CircleShape2D" path="local://2"> </resource>
+ <resource resource_type="Shape2D" path="local://2"> </resource>
<vector2> 0.5, 0.5 </vector2>
- <resource resource_type="ImageTexture" path="res://art/bowling_ball.*"> </resource>
+ <resource external="1"> </resource>
<vector2> 0, 92.5287 </vector2>
<node_path> "../ball" </node_path>
<vector2> 0, -12.1024 </vector2>
<node_path> "" </node_path>
</array>
- <string> "nodes" </string>
- <int_array len="773"> -1, -1, 1, 0, -1, 8, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 9, 5, 0, 0, 0, 11, 10, -1, 24, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 12, 6, 13, 7, 14, 8, 15, 9, 16, 10, 17, 11, 18, 1, 19, 3, 20, 9, 21, 9, 22, 10, 23, 9, 24, 0, 25, 0, 26, 2, 27, 3, 9, 12, 0, 1, 0, 28, 28, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 13, 29, 14, 30, 0, 31, 2, 32, 9, 33, 9, 34, 6, 35, 6, 36, 10, 37, 15, 38, 9, 39, 16, 0, 1, 0, 41, 40, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 42, 7, 43, 9, 0, 0, 0, 11, 44, -1, 24, 2, 0, 3, 1, 4, 1, 5, 0, 6, 17, 7, 3, 8, 4, 12, 6, 13, 7, 14, 18, 15, 9, 16, 10, 17, 11, 18, 1, 19, 3, 20, 9, 21, 9, 22, 10, 23, 9, 24, 0, 25, 0, 26, 2, 27, 3, 9, 19, 0, 4, 0, 28, 28, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 13, 29, 14, 30, 0, 31, 2, 32, 9, 33, 9, 34, 6, 35, 6, 36, 10, 37, 15, 38, 9, 39, 16, 0, 4, 0, 41, 40, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 42, 7, 43, 9, 0, 0, 0, 11, 45, -1, 24, 2, 0, 3, 1, 4, 1, 5, 0, 6, 20, 7, 3, 8, 4, 12, 6, 13, 7, 14, 18, 15, 9, 16, 10, 17, 11, 18, 1, 19, 3, 20, 9, 21, 9, 22, 10, 23, 9, 24, 0, 25, 0, 26, 2, 27, 3, 9, 19, 0, 7, 0, 28, 28, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 13, 29, 14, 30, 0, 31, 2, 32, 9, 33, 9, 34, 6, 35, 6, 36, 10, 37, 15, 38, 9, 39, 16, 0, 7, 0, 41, 40, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 42, 7, 43, 9, 0, 0, 0, 11, 46, -1, 24, 2, 0, 3, 1, 4, 1, 5, 0, 6, 21, 7, 3, 8, 4, 12, 6, 13, 7, 14, 18, 15, 9, 16, 10, 17, 11, 18, 1, 19, 3, 20, 9, 21, 9, 22, 10, 23, 9, 24, 0, 25, 0, 26, 2, 27, 3, 9, 19, 0, 10, 0, 28, 28, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 13, 29, 14, 30, 0, 31, 2, 32, 9, 33, 9, 34, 6, 35, 6, 36, 10, 37, 15, 38, 9, 39, 16, 0, 10, 0, 41, 40, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 42, 7, 43, 9, 0, 0, 0, 48, 47, -1, 10, 2, 0, 3, 1, 4, 1, 5, 0, 6, 22, 7, 3, 8, 4, 49, 23, 50, 24, 51, 3, 0, 0, 0, 48, 52, -1, 10, 2, 0, 3, 1, 4, 1, 5, 0, 6, 25, 7, 3, 8, 4, 49, 24, 50, 26, 51, 3, 0, 0, 0, 48, 53, -1, 10, 2, 0, 3, 1, 4, 1, 5, 0, 6, 27, 7, 3, 8, 4, 49, 26, 50, 28, 51, 11, 0, 0, 0, 11, 54, -1, 24, 2, 0, 3, 1, 4, 1, 5, 0, 6, 29, 7, 3, 8, 30, 12, 6, 13, 31, 14, 18, 15, 9, 16, 10, 17, 11, 18, 1, 19, 3, 20, 9, 21, 9, 22, 10, 23, 9, 24, 0, 25, 0, 26, 2, 27, 3, 9, 19, 0, 16, 0, 28, 28, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 32, 29, 33, 30, 0, 31, 2, 32, 9, 33, 9, 34, 6, 35, 6, 36, 10, 37, 15, 38, 9, 39, 16, 0, 16, 0, 41, 40, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 42, 31, 43, 9, 0, 0, 0, 48, 55, -1, 10, 2, 0, 3, 1, 4, 1, 5, 0, 6, 34, 7, 3, 8, 4, 49, 28, 50, 35, 51, 3, 0, 0, 0, 48, 56, -1, 10, 2, 0, 3, 1, 4, 1, 5, 0, 6, 36, 7, 3, 8, 4, 49, 23, 50, 37, 51, 3, 0 </int_array>
- <string> "conns" </string>
- <int_array len="0"> </int_array>
+ <string> "version" </string>
+ <int> 2 </int>
</dictionary>
</main_resource>
diff --git a/demos/2d/rubegoldberg/platform.xml b/demos/2d/rubegoldberg/platform.xml
index 0cc8f4b137..09cd0fdda6 100644
--- a/demos/2d/rubegoldberg/platform.xml
+++ b/demos/2d/rubegoldberg/platform.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="3" version="0.99" version_name="Godot Engine v0.99.3735-pre-beta">
- <ext_resource path="res://art/platform.*" type="ImageTexture"></ext_resource>
+<resource_file type="PackedScene" subresource_count="3" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+ <ext_resource path="res://art/platform.png" type="Texture" index="0"></ext_resource>
<resource type="RectangleShape2D" path="local://1">
<real name="custom_solver_bias"> 0 </real>
<vector2 name="extents"> 128, 16 </vector2>
@@ -8,148 +8,178 @@
</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> "editable_instances" </string>
+ <array len="0" shared="false">
+ </array>
<string> "names" </string>
- <string_array len="34">
+ <string_array len="19">
<string> "platform" </string>
- <string> "StaticBody2D" </string>
- <string> "visibility/visible" </string>
- <string> "visibility/opacity" </string>
- <string> "visibility/self_opacity" </string>
- <string> "visibility/on_top" </string>
- <string> "transform/pos" </string>
- <string> "transform/rot" </string>
- <string> "transform/scale" </string>
- <string> "shape_count" </string>
+ <string> "input/pickable" </string>
<string> "shapes/0/shape" </string>
<string> "shapes/0/transform" </string>
<string> "shapes/0/trigger" </string>
- <string> "simulate_motion" </string>
+ <string> "collision/layers" </string>
+ <string> "collision/mask" </string>
<string> "constant_linear_velocity" </string>
<string> "constant_angular_velocity" </string>
<string> "friction" </string>
<string> "bounce" </string>
<string> "__meta__" </string>
+ <string> "StaticBody2D" </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_array>
- <string> "version" </string>
- <int> 1 </int>
- <string> "conn_count" </string>
- <int> 0 </int>
<string> "node_count" </string>
<int> 3 </int>
+ <string> "node_paths" </string>
+ <array len="0" shared="false">
+ </array>
+ <string> "nodes" </string>
+ <int_array len="51"> -1, -1, 12, 0, -1, 11, 1, 0, 2, 1, 3, 2, 4, 0, 5, 3, 6, 3, 7, 4, 8, 5, 9, 6, 10, 5, 11, 7, 0, 0, 0, 13, 13, -1, 1, 14, 8, 0, 0, 0, 15, 15, -1, 3, 16, 1, 17, 0, 18, 9, 0 </int_array>
<string> "variants" </string>
- <array len="14" shared="false">
- <bool> True </bool>
- <real> 1 </real>
+ <array len="10" shared="false">
+ <bool> False </bool>
+ <resource resource_type="Shape2D" path="local://1"> </resource>
+ <matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
+ <int> 1 </int>
<vector2> 0, 0 </vector2>
<real> 0 </real>
- <vector2> 1, 1 </vector2>
- <int> 1 </int>
- <resource resource_type="RectangleShape2D" path="local://1"> </resource>
- <matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
- <bool> False </bool>
+ <real> 1 </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> "pixel_snap" </string>
+ <string> "ofs" </string>
+ <vector2> -135, -114 </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 </real>
- <string> "ofs" </string>
- <vector2> -135, -114 </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">
@@ -158,18 +188,12 @@
<string> "run_mode" </string>
<int> 0 </int>
</dictionary>
- <string> "__editor_plugin_screen__" </string>
- <string> "2D" </string>
</dictionary>
- <resource resource_type="ImageTexture" path="res://art/platform.*"> </resource>
- <int> 0 </int>
- <color> 1, 1, 1, 1 </color>
- <rect2> 0, 0, 0, 0 </rect2>
+ <resource external="0"> </resource>
+ <int> -1 </int>
</array>
- <string> "nodes" </string>
- <int_array len="109"> -1, -1, 1, 0, -1, 17, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 11, 7, 12, 8, 13, 8, 14, 2, 15, 3, 16, 1, 17, 3, 18, 9, 0, 0, 0, 19, 19, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 20, 10, 21, 0, 22, 2, 23, 8, 24, 8, 25, 5, 26, 5, 27, 11, 28, 12, 29, 8, 30, 13, 0, 0, 0, 31, 31, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 32, 6, 33, 8, 0 </int_array>
- <string> "conns" </string>
- <int_array len="0"> </int_array>
+ <string> "version" </string>
+ <int> 2 </int>
</dictionary>
</main_resource>
diff --git a/demos/2d/rubegoldberg/rubegoldberg.xml b/demos/2d/rubegoldberg/rubegoldberg.xml
index edb6dda0e1..490b0f9d34 100644
--- a/demos/2d/rubegoldberg/rubegoldberg.xml
+++ b/demos/2d/rubegoldberg/rubegoldberg.xml
@@ -1,25 +1,37 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="7" version="0.99" version_name="Godot Engine v0.99.3735-pre-beta">
- <ext_resource path="res://platform.*" type="PackedScene"></ext_resource>
- <ext_resource path="res://ball.*" type="PackedScene"></ext_resource>
- <ext_resource path="res://domino.*" type="PackedScene"></ext_resource>
- <ext_resource path="res://seesaw.*" type="PackedScene"></ext_resource>
- <ext_resource path="res://box.*" type="PackedScene"></ext_resource>
- <ext_resource path="res://pendulum.*" type="PackedScene"></ext_resource>
+<resource_file type="PackedScene" subresource_count="7" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+ <ext_resource path="res://platform.xml" type="PackedScene" index="0"></ext_resource>
+ <ext_resource path="res://seesaw.xml" type="PackedScene" index="3"></ext_resource>
+ <ext_resource path="res://pendulum.xml" type="PackedScene" index="5"></ext_resource>
+ <ext_resource path="res://box.xml" type="PackedScene" index="4"></ext_resource>
+ <ext_resource path="res://ball.xml" type="PackedScene" index="1"></ext_resource>
+ <ext_resource path="res://domino.xml" type="PackedScene" index="2"></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> "editable_instances" </string>
+ <array len="0" shared="false">
+ </array>
<string> "names" </string>
- <string_array len="29">
+ <string_array len="33">
<string> "Node" </string>
<string> "__meta__" </string>
<string> "platform" </string>
- <string> "StaticBody2D" </string>
<string> "transform/pos" </string>
<string> "transform/rot" </string>
+ <string> "input/pickable" </string>
+ <string> "collision/layers" </string>
+ <string> "collision/mask" </string>
<string> "platform 2" </string>
<string> "platform 3" </string>
<string> "Ball" </string>
- <string> "RigidBody2D" </string>
+ <string> "gravity_scale" </string>
+ <string> "sleeping" </string>
+ <string> "damp_override/linear" </string>
+ <string> "damp_override/angular" </string>
<string> "domino" </string>
<string> "domino 2" </string>
<string> "domino 4" </string>
@@ -31,7 +43,6 @@
<string> "platform 7" </string>
<string> "platform 8" </string>
<string> "SeeSaw" </string>
- <string> "Node2D" </string>
<string> "box" </string>
<string> "pendulum" </string>
<string> "pendulum 2" </string>
@@ -40,102 +51,142 @@
<string> "Ball 5" </string>
<string> "velocity/linear" </string>
</string_array>
- <string> "version" </string>
- <int> 1 </int>
- <string> "conn_count" </string>
- <int> 0 </int>
<string> "node_count" </string>
<int> 21 </int>
+ <string> "node_paths" </string>
+ <array len="0" shared="false">
+ </array>
+ <string> "nodes" </string>
+ <int_array len="347"> -1, -1, 0, 0, -1, 1, 1, 0, 0, 0, 0, 2147483647, 2, 1, 5, 3, 2, 4, 3, 5, 4, 6, 5, 7, 5, 0, 0, 0, 2147483647, 8, 1, 4, 3, 6, 5, 4, 6, 5, 7, 5, 0, 0, 0, 2147483647, 9, 1, 4, 3, 7, 5, 4, 6, 5, 7, 5, 0, 0, 0, 2147483647, 10, 8, 8, 3, 9, 5, 4, 6, 5, 7, 5, 11, 10, 12, 4, 13, 11, 14, 11, 0, 0, 0, 2147483647, 15, 12, 8, 3, 13, 5, 4, 6, 5, 7, 5, 11, 10, 12, 4, 13, 11, 14, 11, 0, 0, 0, 2147483647, 16, 12, 8, 3, 14, 5, 4, 6, 5, 7, 5, 11, 10, 12, 4, 13, 11, 14, 11, 0, 0, 0, 2147483647, 17, 12, 8, 3, 15, 5, 4, 6, 5, 7, 5, 11, 10, 12, 4, 13, 11, 14, 11, 0, 0, 0, 2147483647, 18, 1, 5, 3, 16, 4, 17, 5, 4, 6, 5, 7, 5, 0, 0, 0, 2147483647, 19, 1, 6, 3, 18, 4, 19, 20, 20, 5, 4, 6, 5, 7, 5, 0, 0, 0, 2147483647, 21, 8, 8, 3, 21, 5, 4, 6, 5, 7, 5, 11, 10, 12, 4, 13, 11, 14, 11, 0, 0, 0, 2147483647, 22, 1, 4, 3, 22, 5, 4, 6, 5, 7, 5, 0, 0, 0, 2147483647, 23, 1, 4, 3, 23, 5, 4, 6, 5, 7, 5, 0, 0, 0, 2147483647, 24, 1, 4, 3, 24, 5, 4, 6, 5, 7, 5, 0, 0, 0, 2147483647, 25, 25, 1, 3, 26, 0, 0, 0, 2147483647, 26, 27, 9, 3, 28, 4, 29, 5, 4, 6, 5, 7, 5, 11, 10, 12, 4, 13, 11, 14, 11, 0, 0, 0, 2147483647, 27, 30, 1, 3, 31, 0, 0, 0, 2147483647, 28, 30, 1, 3, 32, 0, 0, 0, 2147483647, 29, 30, 1, 3, 33, 0, 0, 0, 2147483647, 30, 30, 1, 3, 34, 0, 0, 0, 2147483647, 31, 8, 9, 3, 35, 5, 4, 6, 5, 7, 5, 11, 10, 12, 4, 32, 36, 13, 11, 14, 11, 0 </int_array>
<string> "variants" </string>
- <array len="33" shared="false">
+ <array len="37" shared="false">
<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> "pixel_snap" </string>
+ <string> "ofs" </string>
+ <vector2> -717.096, -249.162 </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> 0.598737 </real>
- <string> "ofs" </string>
- <vector2> -15.4883, -75.0379 </vector2>
</dictionary>
<string> "3D" </string>
<dictionary shared="false">
- <string> "zfar" </string>
- <real> 500 </real>
+ <string> "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">
@@ -144,17 +195,19 @@
<string> "run_mode" </string>
<int> 0 </int>
</dictionary>
- <string> "__editor_plugin_screen__" </string>
- <string> "2D" </string>
</dictionary>
- <resource resource_type="PackedScene" path="res://platform.*"> </resource>
+ <resource external="0"> </resource>
<vector2> 116.881, 145.589 </vector2>
<real> -20.87962 </real>
+ <bool> False </bool>
+ <int> 1 </int>
<vector2> 336.29, 264.52 </vector2>
<vector2> 526.99, 264.52 </vector2>
- <resource resource_type="PackedScene" path="res://ball.*"> </resource>
+ <resource external="1"> </resource>
<vector2> 76.0801, 67.2141 </vector2>
- <resource resource_type="PackedScene" path="res://domino.*"> </resource>
+ <real> 1 </real>
+ <real> -1 </real>
+ <resource external="2"> </resource>
<vector2> 262.764, 182.008 </vector2>
<vector2> 356.951, 182.008 </vector2>
<vector2> 448.834, 179.291 </vector2>
@@ -167,12 +220,12 @@
<vector2> 679.231, 588.598 </vector2>
<vector2> 424.491, 588.598 </vector2>
<vector2> 185.655, 588.598 </vector2>
- <resource resource_type="PackedScene" path="res://seesaw.*"> </resource>
+ <resource external="3"> </resource>
<vector2> 602.935, 554.501 </vector2>
- <resource resource_type="PackedScene" path="res://box.*"> </resource>
+ <resource external="4"> </resource>
<vector2> 476.002, 509.406 </vector2>
<real> 21.737282 </real>
- <resource resource_type="PackedScene" path="res://pendulum.*"> </resource>
+ <resource external="5"> </resource>
<vector2> 391.607, 305.444 </vector2>
<vector2> 343.172, 303.774 </vector2>
<vector2> 288.056, 303.774 </vector2>
@@ -180,10 +233,8 @@
<vector2> 116.165, 526.515 </vector2>
<vector2> 0, -200 </vector2>
</array>
- <string> "nodes" </string>
- <int_array len="201"> -1, -1, 0, 0, -1, 1, 1, 0, 0, 0, 0, 3, 2, 1, 2, 4, 2, 5, 3, 0, 0, 0, 3, 6, 1, 1, 4, 4, 0, 0, 0, 3, 7, 1, 1, 4, 5, 0, 0, 0, 9, 8, 6, 1, 4, 7, 0, 0, 0, 9, 10, 8, 1, 4, 9, 0, 0, 0, 9, 11, 8, 1, 4, 10, 0, 0, 0, 9, 12, 8, 1, 4, 11, 0, 0, 0, 3, 13, 1, 2, 4, 12, 5, 13, 0, 0, 0, 3, 14, 1, 3, 4, 14, 5, 15, 15, 16, 0, 0, 0, 9, 16, 6, 1, 4, 17, 0, 0, 0, 3, 17, 1, 1, 4, 18, 0, 0, 0, 3, 18, 1, 1, 4, 19, 0, 0, 0, 3, 19, 1, 1, 4, 20, 0, 0, 0, 21, 20, 21, 1, 4, 22, 0, 0, 0, 9, 22, 23, 2, 4, 24, 5, 25, 0, 0, 0, 21, 23, 26, 1, 4, 27, 0, 0, 0, 21, 24, 26, 1, 4, 28, 0, 0, 0, 21, 25, 26, 1, 4, 29, 0, 0, 0, 21, 26, 26, 1, 4, 30, 0, 0, 0, 9, 27, 6, 2, 4, 31, 28, 32, 0 </int_array>
- <string> "conns" </string>
- <int_array len="0"> </int_array>
+ <string> "version" </string>
+ <int> 2 </int>
</dictionary>
</main_resource>
diff --git a/demos/2d/rubegoldberg/seesaw.xml b/demos/2d/rubegoldberg/seesaw.xml
index 30edbe9162..281e4e7c0d 100644
--- a/demos/2d/rubegoldberg/seesaw.xml
+++ b/demos/2d/rubegoldberg/seesaw.xml
@@ -1,169 +1,243 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="5" version="0.99" version_name="Godot Engine v0.99.2864-pre-beta">
- <ext_resource path="res://art/seesaw_top.png" type="Texture"></ext_resource>
- <ext_resource path="res://art/seesaw_base.png" type="Texture"></ext_resource>
+<resource_file type="PackedScene" subresource_count="5" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+ <ext_resource path="res://art/seesaw_top.png" type="Texture" index="1"></ext_resource>
+ <ext_resource path="res://art/seesaw_base.png" type="Texture" index="0"></ext_resource>
<resource type="ConcavePolygonShape2D" path="local://1">
- <string name="resource/name"> "" </string>
<real name="custom_solver_bias"> 0 </real>
<vector2_array name="segments" len="6"> -32.6231, 32.0838, -1.28218, -31.1383, -1.28218, -31.1383, 33.8412, 33.1645, 33.8412, 33.1645, -32.6231, 32.0838 </vector2_array>
- <resource name="script/script"></resource>
+
</resource>
<resource type="ConvexPolygonShape2D" path="local://2">
- <string name="resource/name"> "" </string>
<real name="custom_solver_bias"> 0 </real>
<vector2_array name="points" len="4"> -99.0874, 7.76759, -125.025, -8.98358, 125.162, -8.44321, 99.2248, 7.22723 </vector2_array>
- <resource name="script/script"></resource>
+
</resource>
<main_resource>
- <string name="resource/name"> "" </string>
- <dictionary name="_bundled">
+ <dictionary name="_bundled" shared="false">
+ <string> "conn_count" </string>
+ <int> 0 </int>
+ <string> "conns" </string>
+ <int_array len="0"> </int_array>
+ <string> "editable_instances" </string>
+ <array len="0" shared="false">
+ </array>
<string> "names" </string>
- <string_array len="58">
+ <string_array len="43">
<string> "SeeSaw" </string>
- <string> "Node2D" </string>
- <string> "process/process" </string>
- <string> "process/fixed_process" </string>
- <string> "process/input" </string>
- <string> "process/unhandled_input" </string>
- <string> "process/mode" </string>
- <string> "visibility/visible" </string>
- <string> "visibility/toplevel" </string>
- <string> "visibility/opacity" </string>
- <string> "visibility/self_opacity" </string>
- <string> "visibility/on_top" </string>
- <string> "visibility/blend_mode" </string>
- <string> "transform/notify" </string>
- <string> "transform/pos" </string>
- <string> "transform/rot" </string>
- <string> "transform/scale" </string>
- <string> "script/script" </string>
<string> "__meta__" </string>
+ <string> "Node2D" </string>
<string> "Sprite" </string>
<string> "texture" </string>
- <string> "centered" </string>
- <string> "offset" </string>
- <string> "flip_h" </string>
- <string> "flip_v" </string>
- <string> "vframes" </string>
- <string> "hframes" </string>
- <string> "frame" </string>
- <string> "modulate" </string>
- <string> "region" </string>
- <string> "region_rect" </string>
<string> "StaticBody2D" </string>
- <string> "shape_count" </string>
+ <string> "input/pickable" </string>
<string> "shapes/0/shape" </string>
<string> "shapes/0/transform" </string>
- <string> "simulate_motion" </string>
+ <string> "shapes/0/trigger" </string>
+ <string> "collision/layers" </string>
+ <string> "collision/mask" </string>
<string> "constant_linear_velocity" </string>
<string> "constant_angular_velocity" </string>
+ <string> "friction" </string>
+ <string> "bounce" </string>
<string> "CollisionPolygon2D" </string>
<string> "build_mode" </string>
<string> "polygon" </string>
+ <string> "shape_range" </string>
+ <string> "trigger" </string>
<string> "RigidBody2D" </string>
+ <string> "transform/pos" </string>
+ <string> "transform/rot" </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> "transform/scale" </string>
<string> "PinJoint2D" </string>
<string> "node_a" </string>
<string> "node_b" </string>
<string> "bias/bias" </string>
+ <string> "softness" </string>
</string_array>
- <string> "version" </string>
- <int> 1 </int>
- <string> "conn_count" </string>
- <int> 0 </int>
<string> "node_count" </string>
<int> 8 </int>
+ <string> "node_paths" </string>
+ <array len="0" shared="false">
+ </array>
+ <string> "nodes" </string>
+ <int_array len="156"> -1, -1, 2, 0, -1, 1, 1, 0, 0, 0, 0, 3, 3, -1, 1, 4, 1, 0, 1, 0, 5, 5, -1, 10, 6, 2, 7, 3, 8, 4, 9, 2, 10, 5, 11, 5, 12, 6, 13, 7, 14, 8, 15, 7, 0, 2, 0, 16, 16, -1, 4, 17, 9, 18, 10, 19, 11, 20, 2, 0, 0, 0, 21, 21, -1, 23, 22, 12, 23, 13, 6, 2, 7, 14, 8, 4, 9, 2, 10, 5, 11, 5, 24, 9, 25, 8, 14, 8, 15, 7, 26, 8, 27, 2, 28, 9, 29, 9, 30, 2, 31, 2, 32, 15, 33, 6, 34, 7, 35, 16, 36, 16, 0, 4, 0, 3, 3, -1, 2, 37, 17, 4, 18, 0, 4, 0, 16, 16, -1, 4, 17, 9, 18, 19, 19, 11, 20, 2, 0, 0, 0, 38, 38, -1, 5, 22, 20, 39, 21, 40, 22, 41, 7, 42, 7, 0 </int_array>
<string> "variants" </string>
- <array len="25">
- <bool> False </bool>
- <int> 0 </int>
- <bool> True </bool>
- <real> 1 </real>
- <vector2> 0, 0 </vector2>
- <real> 0 </real>
- <vector2> 1, 1 </vector2>
- <resource name=""></resource> <dictionary>
+ <array len="23" shared="false">
+ <dictionary shared="false">
+ <string> "__editor_plugin_screen__" </string>
+ <string> "2D" </string>
<string> "__editor_plugin_states__" </string>
- <dictionary>
+ <dictionary shared="false">
<string> "2D" </string>
- <dictionary>
- <string> "zoom" </string>
- <real> 1.670183 </real>
+ <dictionary shared="false">
<string> "ofs" </string>
<vector2> -277.779, -292.484 </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.670183 </real>
</dictionary>
<string> "3D" </string>
- <dictionary>
- <string> "zfar" </string>
- <real> 500 </real>
+ <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> "window_mode" </string>
- <int> 0 </int>
- <string> "window_0" </string>
- <dictionary>
- <string> "distance" </string>
- <real> 4 </real>
- <string> "default_light" </string>
- <bool> True </bool>
- <string> "x_rot" </string>
- <real> 0.337 </real>
- <string> "y_rot" </string>
- <real> -0.575 </real>
- <string> "show_grid" </string>
- <bool> True </bool>
- <string> "show_origin" </string>
- <bool> True </bool>
- <string> "pos" </string>
- <vector3> 0, 0, 0 </vector3>
- </dictionary>
+ <string> "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> "Anim" </string>
+ <dictionary shared="false">
+ <string> "visible" </string>
+ <bool> False </bool>
+ </dictionary>
</dictionary>
<string> "__editor_run_settings__" </string>
- <dictionary>
+ <dictionary shared="false">
<string> "custom_args" </string>
<string> "-l $scene" </string>
<string> "run_mode" </string>
<int> 0 </int>
</dictionary>
- <string> "__editor_plugin_screen__" </string>
- <string> "2D" </string>
</dictionary>
- <resource resource_type="Texture" path="res://art/seesaw_base.png"> </resource>
- <int> 1 </int>
- <color> 1, 1, 1, 1 </color>
- <rect2> 0, 0, 0, 0 </rect2>
- <resource resource_type="ConcavePolygonShape2D" path="local://1"> </resource>
+ <resource external="0"> </resource>
+ <bool> False </bool>
+ <resource resource_type="Shape2D" path="local://1"> </resource>
<matrix32> 1, 0, 0, 1, 0, 0 </matrix32>
+ <int> 1 </int>
+ <vector2> 0, 0 </vector2>
+ <real> 0 </real>
+ <real> 1 </real>
+ <int> 0 </int>
<vector2_array len="3"> -32.6231, 32.0838, -1.28218, -31.1383, 33.8412, 33.1645 </vector2_array>
+ <vector2> -1, -1 </vector2>
<vector2> 1.19748, -29.9368 </vector2>
<real> 16.223282 </real>
- <resource resource_type="ConvexPolygonShape2D" path="local://2"> </resource>
+ <resource resource_type="Shape2D" path="local://2"> </resource>
+ <bool> True </bool>
+ <real> -1 </real>
<vector2> 1, 0.5 </vector2>
- <resource resource_type="Texture" path="res://art/seesaw_top.png"> </resource>
+ <resource external="1"> </resource>
<vector2_array len="4"> -125.025, -8.98358, 125.162, -8.44321, 99.2248, 7.22723, -99.0874, 7.76759 </vector2_array>
<vector2> 0, -31.1343 </vector2>
<node_path> "../RigidBody2D" </node_path>
<node_path> "../Sprite/StaticBody2D" </node_path>
</array>
- <string> "nodes" </string>
- <int_array len="414"> -1, -1, 1, 0, -1, 17, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 0, 14, 4, 15, 5, 16, 6, 17, 7, 18, 8, 0, 0, 0, 19, 19, -1, 27, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 0, 14, 4, 15, 5, 16, 6, 20, 9, 21, 2, 22, 4, 23, 0, 24, 0, 25, 10, 26, 10, 27, 1, 28, 11, 29, 0, 30, 12, 17, 7, 0, 1, 0, 31, 31, -1, 22, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 2, 14, 4, 15, 5, 16, 6, 32, 10, 33, 13, 34, 14, 35, 0, 36, 4, 37, 5, 17, 7, 0, 2, 0, 38, 38, -1, 18, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 2, 14, 4, 15, 5, 16, 6, 39, 1, 40, 15, 17, 7, 0, 0, 0, 41, 41, -1, 31, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 2, 14, 16, 15, 17, 16, 6, 32, 10, 33, 18, 34, 14, 42, 1, 43, 3, 44, 3, 45, 5, 46, 0, 47, 0, 48, 1, 49, 0, 50, 2, 51, 2, 52, 4, 53, 5, 17, 7, 0, 4, 0, 19, 19, -1, 27, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 0, 14, 4, 15, 5, 16, 19, 20, 20, 21, 2, 22, 4, 23, 0, 24, 0, 25, 10, 26, 10, 27, 1, 28, 11, 29, 0, 30, 12, 17, 7, 0, 4, 0, 38, 38, -1, 18, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 2, 14, 4, 15, 5, 16, 6, 39, 1, 40, 21, 17, 7, 0, 0, 0, 54, 54, -1, 19, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 0, 14, 22, 15, 5, 16, 6, 55, 23, 56, 24, 57, 5, 17, 7, 0 </int_array>
- <string> "conns" </string>
- <int_array len="0"> </int_array>
+ <string> "version" </string>
+ <int> 2 </int>
</dictionary>
- <resource name="script/script"></resource>
+
</main_resource>
</resource_file> \ No newline at end of file
diff --git a/demos/2d/screen_space_shaders/screen_shaders.gd b/demos/2d/screen_space_shaders/screen_shaders.gd
index 4e8a548539..b847a9c923 100644
--- a/demos/2d/screen_space_shaders/screen_shaders.gd
+++ b/demos/2d/screen_space_shaders/screen_shaders.gd
@@ -1,32 +1,25 @@
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())
+ 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
+ get_node("effect").add_item("FX: " + c.get_name())
-
-
-func _on_picture_item_selected( ID ):
+func _on_picture_item_selected(ID):
for c in range(get_node("pictures").get_child_count()):
- if (ID==c):
+ if (ID == c):
get_node("pictures").get_child(c).show()
else:
get_node("pictures").get_child(c).hide()
-func _on_effect_item_selected( ID ):
+func _on_effect_item_selected(ID):
for c in range(get_node("effects").get_child_count()):
- if (ID==c):
+ 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
index fc2be96fc9..be12cef02d 100644
--- a/demos/2d/screen_space_shaders/screen_shaders.scn
+++ b/demos/2d/screen_space_shaders/screen_shaders.scn
Binary files differ
diff --git a/demos/2d/sdf_font/sdf.scn b/demos/2d/sdf_font/sdf.scn
index 89d6245bf0..4880500d6d 100644
--- a/demos/2d/sdf_font/sdf.scn
+++ b/demos/2d/sdf_font/sdf.scn
Binary files differ
diff --git a/demos/2d/shower_of_bullets/bullets.gd b/demos/2d/shower_of_bullets/bullets.gd
index 79f4faaae6..e0eba2682a 100644
--- a/demos/2d/shower_of_bullets/bullets.gd
+++ b/demos/2d/shower_of_bullets/bullets.gd
@@ -4,73 +4,68 @@ extends Node2D
# This demo is an example of controling a high number of 2D objects with logic and collision without using scene nodes.
# This technique is a lot more efficient than using instancing and nodes, but requires more programming and is less visual
+# Member variables
const BULLET_COUNT = 500
const SPEED_MIN = 20
const SPEED_MAX = 50
-var bullets=[]
+var bullets = []
var shape
+
+# Inner classes
class Bullet:
var pos = Vector2()
var speed = 1.0
var body = RID()
-
-func _draw():
+func _draw():
var t = preload("res://bullet.png")
var tofs = -t.get_size()*0.5
for b in bullets:
- draw_texture(t,b.pos+tofs)
-
-
+ draw_texture(t, b.pos + tofs)
+
+
func _process(delta):
var width = get_viewport_rect().size.x*2.0
var mat = Matrix32()
for b in bullets:
- b.pos.x-=b.speed*delta
+ b.pos.x -= b.speed*delta
if (b.pos.x < -30):
- b.pos.x+=width
- mat.o=b.pos
-
- Physics2DServer.body_set_state(b.body,Physics2DServer.BODY_STATE_TRANSFORM,mat)
+ b.pos.x += width
+ mat.o = b.pos
+ Physics2DServer.body_set_state(b.body, Physics2DServer.BODY_STATE_TRANSFORM, mat)
+
update()
-
-
-func _ready():
- shape = Physics2DServer.shape_create(Physics2DServer.SHAPE_CIRCLE)
- Physics2DServer.shape_set_data(shape,8) #radius
+func _ready():
+ shape = Physics2DServer.shape_create(Physics2DServer.SHAPE_CIRCLE)
+ Physics2DServer.shape_set_data(shape, 8) # Radius
+
for i in range(BULLET_COUNT):
var b = Bullet.new()
- b.speed=rand_range(SPEED_MIN,SPEED_MAX)
+ b.speed = rand_range(SPEED_MIN, SPEED_MAX)
b.body = Physics2DServer.body_create(Physics2DServer.BODY_MODE_KINEMATIC)
- Physics2DServer.body_set_space(b.body,get_world_2d().get_space())
- Physics2DServer.body_add_shape(b.body,shape)
+ Physics2DServer.body_set_space(b.body, get_world_2d().get_space())
+ Physics2DServer.body_add_shape(b.body, shape)
- b.pos = Vector2( get_viewport_rect().size * Vector2(randf()*2.0,randf()) ) #twice as long
- b.pos.x += get_viewport_rect().size.x # start outside
+ b.pos = Vector2(get_viewport_rect().size * Vector2(randf()*2.0, randf())) # Twice as long
+ b.pos.x += get_viewport_rect().size.x # Start outside
var mat = Matrix32()
- mat.o=b.pos
- Physics2DServer.body_set_state(b.body,Physics2DServer.BODY_STATE_TRANSFORM,mat)
+ mat.o = b.pos
+ Physics2DServer.body_set_state(b.body, Physics2DServer.BODY_STATE_TRANSFORM, mat)
bullets.append(b)
-
-
- set_process(true)
-
+ set_process(true)
+
+
func _exit_tree():
for b in bullets:
Physics2DServer.free_rid(b.body)
Physics2DServer.free_rid(shape)
- # Initalization here
bullets.clear()
-
- pass
-
-
diff --git a/demos/2d/shower_of_bullets/shower.gd b/demos/2d/shower_of_bullets/shower.gd
index bba8431764..50c1109489 100644
--- a/demos/2d/shower_of_bullets/shower.gd
+++ b/demos/2d/shower_of_bullets/shower.gd
@@ -1,32 +1,25 @@
extends Node2D
-# member variables here, example:
-# var a=2
-# var b="textvar"
+# Member variables
+var touching = 0
-var touching=0
+func _input(event):
+ if (event.type == InputEvent.MOUSE_MOTION):
+ get_node("player").set_pos(event.pos - Vector2(0, 16))
-func _input(ev):
- if (ev.type==InputEvent.MOUSE_MOTION):
- get_node("player").set_pos(ev.pos-Vector2(0,16))
-
-
-func _on_player_body_enter_shape( body_id, body, body_shape, area_shape ):
-
- touching+=1
- if (touching==1):
+func _on_player_body_enter_shape(body_id, body, body_shape, area_shape):
+ touching += 1
+ if (touching == 1):
get_node("player/sprite").set_frame(1)
-func _on_player_body_exit_shape( body_id, body, body_shape, area_shape ):
-
- touching-=1
- if (touching==0):
+func _on_player_body_exit_shape(body_id, body, body_shape, area_shape):
+ touching -= 1
+ if (touching == 0):
get_node("player/sprite").set_frame(0)
func _ready():
set_process_input(true)
- pass
diff --git a/demos/2d/shower_of_bullets/shower.scn b/demos/2d/shower_of_bullets/shower.scn
index 648888d099..9e2181e9c6 100644
--- a/demos/2d/shower_of_bullets/shower.scn
+++ b/demos/2d/shower_of_bullets/shower.scn
Binary files differ
diff --git a/demos/2d/space_shooter/asteroid.gd b/demos/2d/space_shooter/asteroid.gd
index f21b9777bb..9f6734e122 100644
--- a/demos/2d/space_shooter/asteroid.gd
+++ b/demos/2d/space_shooter/asteroid.gd
@@ -1,49 +1,43 @@
extends Area2D
-# member variables here, example:
-# var a=2
-# var b="textvar"
+# Member variables
+const SPEED = -200
+const Y_RANDOM = 10
-const SPEED=-200
-const Y_RANDOM=10
+var points = 1
+var speed_y = 0.0
+var destroyed = false
-var points=1
-
-
-var speed_y=0.0
func _process(delta):
+ translate(Vector2(SPEED, speed_y)*delta)
- translate( Vector2(SPEED,speed_y) * delta )
func _ready():
- # Initialization here
- speed_y=rand_range(-Y_RANDOM,Y_RANDOM)
- pass
+ speed_y = rand_range(-Y_RANDOM, Y_RANDOM)
-var destroyed=false
func destroy():
if (destroyed):
- return
- destroyed=true
+ 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
-
+ # Accumulate points
+ get_node("/root/game_state").points += 1
+
+
func is_enemy():
- return not destroyed
-
+ return not destroyed
+
func _on_visibility_enter_screen():
set_process(true)
- #make it spin!
+ # 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
index b881725ea4..6bca98cd30 100644
--- a/demos/2d/space_shooter/asteroid.scn
+++ b/demos/2d/space_shooter/asteroid.scn
Binary files differ
diff --git a/demos/2d/space_shooter/enemy1.gd b/demos/2d/space_shooter/enemy1.gd
index 051798742a..204995c05d 100644
--- a/demos/2d/space_shooter/enemy1.gd
+++ b/demos/2d/space_shooter/enemy1.gd
@@ -1,17 +1,15 @@
extends Area2D
-# member variables here, example:
-# var a=2
-# var b="textvar"
+# Member variables
+const SPEED = -200
+
+var destroyed=false
-const SPEED=-200
func _process(delta):
- get_parent().translate(Vector2(SPEED*delta,0))
+ get_parent().translate(Vector2(SPEED*delta, 0))
-
-var destroyed=false
func is_enemy():
return not destroyed
@@ -19,19 +17,20 @@ func is_enemy():
func destroy():
if (destroyed):
- return
- destroyed=true
+ return
+ destroyed = true
get_node("anim").play("explode")
- set_process(false)
+ set_process(false)
get_node("sfx").play("sound_explode")
- #accum points
- get_node("/root/game_state").points+=5
+ # Accumulate 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
+ 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.scn b/demos/2d/space_shooter/enemy1.scn
index 14298f0a59..805071b772 100644
--- a/demos/2d/space_shooter/enemy1.scn
+++ 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
index 4f632a053d..bfdb743103 100644
--- a/demos/2d/space_shooter/enemy2.gd
+++ b/demos/2d/space_shooter/enemy2.gd
@@ -1,56 +1,51 @@
extends Area2D
-# member variables here, example:
-# var a=2
-# var b="textvar"
-const SPEED=-220
-const SHOOT_INTERVAL=1
-var shoot_timeout=0
+# Member variables
+const SPEED = -220
+const SHOOT_INTERVAL = 1
+
+var shoot_timeout = 0
+var destroyed=false
+
func _process(delta):
- translate( Vector2(SPEED*delta,0) )
- shoot_timeout-=delta
+ translate(Vector2(SPEED*delta, 0))
+ shoot_timeout -= delta
- if (shoot_timeout<0):
-
- shoot_timeout=SHOOT_INTERVAL
+ if (shoot_timeout < 0):
+ shoot_timeout = SHOOT_INTERVAL
- #instance a shot
+ # 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
+ # 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
+ return
+ destroyed = true
get_node("anim").play("explode")
- set_process(false)
+ set_process(false)
get_node("sfx").play("sound_explode")
- #accum points
- get_node("/root/game_state").points+=10
+ # Accumulate 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.scn b/demos/2d/space_shooter/enemy2.scn
index 1d31f9c30e..644add77aa 100644
--- a/demos/2d/space_shooter/enemy2.scn
+++ 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
index 238d24e4a2..6c782b69f1 100644
--- a/demos/2d/space_shooter/enemy_shot.gd
+++ b/demos/2d/space_shooter/enemy_shot.gd
@@ -1,32 +1,31 @@
extends Area2D
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
+# Member variables
const SPEED = -800
+var hit = false
+
+
func _process(delta):
- translate(Vector2(delta*SPEED,0))
+ 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
+ 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.scn b/demos/2d/space_shooter/enemy_shot.scn
index 13f5ae89e5..353c9058f7 100644
--- a/demos/2d/space_shooter/enemy_shot.scn
+++ b/demos/2d/space_shooter/enemy_shot.scn
Binary files differ
diff --git a/demos/2d/space_shooter/explosion.scn b/demos/2d/space_shooter/explosion.scn
index 4edcf709cb..6fc105fac3 100644
--- a/demos/2d/space_shooter/explosion.scn
+++ b/demos/2d/space_shooter/explosion.scn
Binary files differ
diff --git a/demos/2d/space_shooter/game_state.gd b/demos/2d/space_shooter/game_state.gd
index f66d0fa8fa..0aa5e1f42b 100644
--- a/demos/2d/space_shooter/game_state.gd
+++ b/demos/2d/space_shooter/game_state.gd
@@ -1,24 +1,22 @@
-extends Node
+extends Node
+# Member variables
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()
+ # 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
+ if (points > max_points):
+ max_points = points
+ # Save high score
var f = File.new()
- f.open("user://highscore",File.WRITE)
+ f.open("user://highscore", File.WRITE)
f.store_var(max_points)
- \ No newline at end of file
diff --git a/demos/2d/space_shooter/level.scn b/demos/2d/space_shooter/level.scn
index 12a679f8b6..6d5f8005f5 100644
--- a/demos/2d/space_shooter/level.scn
+++ b/demos/2d/space_shooter/level.scn
Binary files differ
diff --git a/demos/2d/space_shooter/level_tiles.scn b/demos/2d/space_shooter/level_tiles.scn
index 4d1feea70f..932be39a29 100644
--- a/demos/2d/space_shooter/level_tiles.scn
+++ 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
index 52221aba1b..a7f242da7b 100644
--- a/demos/2d/space_shooter/main_menu.gd
+++ b/demos/2d/space_shooter/main_menu.gd
@@ -1,20 +1,11 @@
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
-
-
+ get_node("score").set_text("HIGH SCORE: " + str(get_node("/root/game_state").max_points))
func _on_play_pressed():
- get_node("/root/game_state").points=0
+ 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
index b87cc5d3a8..91b0b37b14 100644
--- a/demos/2d/space_shooter/main_menu.scn
+++ b/demos/2d/space_shooter/main_menu.scn
Binary files differ
diff --git a/demos/2d/space_shooter/parallax.scn b/demos/2d/space_shooter/parallax.scn
index f67277dc01..2753d16e84 100644
--- a/demos/2d/space_shooter/parallax.scn
+++ 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
index 22ebd02670..7362dff97d 100644
--- a/demos/2d/space_shooter/rail.gd
+++ b/demos/2d/space_shooter/rail.gd
@@ -1,25 +1,19 @@
extends Node2D
+# Member variables
+const SPEED = 200
+var offset = 0
-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))
+ 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
index fa444868a4..b6c1200632 100644
--- a/demos/2d/space_shooter/ship.gd
+++ b/demos/2d/space_shooter/ship.gd
@@ -1,71 +1,65 @@
extends Area2D
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
+# Member variables
const SPEED = 200
var screen_size
+var prev_shooting = false
+var killed = false
-var prev_shooting=false
func _process(delta):
-
var motion = Vector2()
if Input.is_action_pressed("move_up"):
- motion+=Vector2(0,-1)
+ motion += Vector2(0, -1)
if Input.is_action_pressed("move_down"):
- motion+=Vector2(0,1)
+ motion += Vector2(0, 1)
if Input.is_action_pressed("move_left"):
- motion+=Vector2(-1,0)
+ motion += Vector2(-1, 0)
if Input.is_action_pressed("move_right"):
- motion+=Vector2(1,0)
+ 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
-
+ 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
+ # 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
+ # Use the Position2D 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
+ # 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))
- #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
+ killed = true
get_node("anim").play("explode")
get_node("sfx").play("sound_explode")
get_node("../hud/game_over").show()
@@ -74,15 +68,14 @@ func _hit_something():
set_process(false)
-func _on_ship_body_enter( body ):
+func _on_ship_body_enter(body):
_hit_something()
-func _on_ship_area_enter( area ):
+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.scn b/demos/2d/space_shooter/ship.scn
index 82c710eda7..c60e2e3e3b 100644
--- a/demos/2d/space_shooter/ship.scn
+++ b/demos/2d/space_shooter/ship.scn
Binary files differ
diff --git a/demos/2d/space_shooter/shot.gd b/demos/2d/space_shooter/shot.gd
index 28b67bd26d..936dde73d1 100644
--- a/demos/2d/space_shooter/shot.gd
+++ b/demos/2d/space_shooter/shot.gd
@@ -1,48 +1,40 @@
extends Area2D
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
+# Member variables
const SPEED = 800
+var hit = false
+
+
func _process(delta):
- translate(Vector2(delta*SPEED,0))
+ translate(Vector2(delta*SPEED, 0))
+
func _ready():
- # Initialization here
set_process(true)
- pass
-var hit=false
func _hit_something():
if (hit):
return
- hit=true
+ 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
+func _on_shot_area_enter(area):
+ # Hit an enemy or asteroid
if (area.has_method("destroy")):
- #duck typing at it's best
+ # Duck typing at it's best
area.destroy()
_hit_something()
-
-
- pass
-func _on_shot_body_enter( body ):
- #hit the tilemap
+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
index 86a20ffa47..9daf4ebe82 100644
--- a/demos/2d/space_shooter/shot.scn
+++ b/demos/2d/space_shooter/shot.scn
Binary files differ
diff --git a/demos/2d/splash/splash.xml b/demos/2d/splash/splash.xml
index ecfcb0f5b5..4a36619b09 100644
--- a/demos/2d/splash/splash.xml
+++ b/demos/2d/splash/splash.xml
@@ -1,20 +1,20 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="20" version="0.99" version_name="Godot Engine v0.99.3735-pre-beta">
- <ext_resource path="res://splash_01.*" type="ImageTexture"></ext_resource>
- <ext_resource path="res://splash_02.*" type="ImageTexture"></ext_resource>
- <ext_resource path="res://splash_03.*" type="ImageTexture"></ext_resource>
- <ext_resource path="res://splash_04.*" type="ImageTexture"></ext_resource>
- <ext_resource path="res://splash_05.*" type="ImageTexture"></ext_resource>
- <ext_resource path="res://splash_06.*" type="ImageTexture"></ext_resource>
- <ext_resource path="res://splash_07.*" type="ImageTexture"></ext_resource>
- <ext_resource path="res://splash_08.*" type="ImageTexture"></ext_resource>
- <ext_resource path="res://splash_09.*" type="ImageTexture"></ext_resource>
- <ext_resource path="res://bg.*" type="ImageTexture"></ext_resource>
- <ext_resource path="res://bg_layer_2.*" type="ImageTexture"></ext_resource>
- <ext_resource path="res://bg_layer_1.*" type="ImageTexture"></ext_resource>
- <ext_resource path="res://button_pressed.*" type="ImageTexture"></ext_resource>
- <ext_resource path="res://freesans.*" type="Font"></ext_resource>
- <ext_resource path="res://button.*" type="ImageTexture"></ext_resource>
+<resource_file type="PackedScene" subresource_count="20" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+ <ext_resource path="res://splash_02.png" type="Texture" index="4"></ext_resource>
+ <ext_resource path="res://splash_01.png" type="Texture" index="3"></ext_resource>
+ <ext_resource path="res://splash_05.png" type="Texture" index="7"></ext_resource>
+ <ext_resource path="res://splash_06.png" type="Texture" index="8"></ext_resource>
+ <ext_resource path="res://splash_03.png" type="Texture" index="5"></ext_resource>
+ <ext_resource path="res://splash_04.png" type="Texture" index="6"></ext_resource>
+ <ext_resource path="res://splash_07.png" type="Texture" index="9"></ext_resource>
+ <ext_resource path="res://splash_08.png" type="Texture" index="10"></ext_resource>
+ <ext_resource path="res://splash_09.png" type="Texture" index="11"></ext_resource>
+ <ext_resource path="res://bg.png" type="Texture" index="0"></ext_resource>
+ <ext_resource path="res://bg_layer_2.png" type="Texture" index="1"></ext_resource>
+ <ext_resource path="res://bg_layer_1.png" type="Texture" index="2"></ext_resource>
+ <ext_resource path="res://button_pressed.png" type="Texture" index="13"></ext_resource>
+ <ext_resource path="res://button.png" type="Texture" index="12"></ext_resource>
+ <ext_resource path="res://freesans.fnt" type="Font" index="14"></ext_resource>
<resource type="Animation" path="local://1">
<string name="resource/name"> "scroll" </string>
<real name="length"> 1 </real>
@@ -26,6 +26,8 @@
<dictionary name="tracks/0/keys" shared="false">
<string> "cont" </string>
<bool> True </bool>
+ <string> "times" </string>
+ <real_array len="2"> 0, 1 </real_array>
<string> "transitions" </string>
<real_array len="2"> 1, 1 </real_array>
<string> "values" </string>
@@ -33,48 +35,23 @@
<vector2> 0, 0 </vector2>
<vector2> -800, 0 </vector2>
</array>
- <string> "times" </string>
- <real_array len="2"> 0, 1 </real_array>
</dictionary>
</resource>
<resource type="SpriteFrames" path="local://2">
<array name="frames" len="9" shared="false">
- <resource resource_type="ImageTexture" path="res://splash_01.*"> </resource>
- <resource resource_type="ImageTexture" path="res://splash_02.*"> </resource>
- <resource resource_type="ImageTexture" path="res://splash_03.*"> </resource>
- <resource resource_type="ImageTexture" path="res://splash_04.*"> </resource>
- <resource resource_type="ImageTexture" path="res://splash_05.*"> </resource>
- <resource resource_type="ImageTexture" path="res://splash_06.*"> </resource>
- <resource resource_type="ImageTexture" path="res://splash_07.*"> </resource>
- <resource resource_type="ImageTexture" path="res://splash_08.*"> </resource>
- <resource resource_type="ImageTexture" path="res://splash_09.*"> </resource>
+ <resource external="3"> </resource>
+ <resource external="4"> </resource>
+ <resource external="5"> </resource>
+ <resource external="6"> </resource>
+ <resource external="7"> </resource>
+ <resource external="8"> </resource>
+ <resource external="9"> </resource>
+ <resource external="10"> </resource>
+ <resource external="11"> </resource>
</array>
</resource>
- <resource type="Animation" path="local://3">
- <string name="resource/name"> "loop" </string>
- <real name="length"> 0.6 </real>
- <bool name="loop"> True </bool>
- <real name="step"> 0.1 </real>
- <string name="tracks/0/type"> "value" </string>
- <node_path name="tracks/0/path"> "logo: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="2"> 1, 1 </real_array>
- <string> "values" </string>
- <array len="2" shared="false">
- <int> 8 </int>
- <int> 7 </int>
- </array>
- <string> "times" </string>
- <real_array len="2"> 0, 0.3 </real_array>
- </dictionary>
-
- </resource>
<resource type="Animation" path="local://4">
<string name="resource/name"> "intro" </string>
<real name="length"> 3 </real>
@@ -86,6 +63,8 @@
<dictionary name="tracks/0/keys" shared="false">
<string> "cont" </string>
<bool> True </bool>
+ <string> "times" </string>
+ <real_array len="2"> 1, 1.5 </real_array>
<string> "transitions" </string>
<real_array len="2"> 2, 1 </real_array>
<string> "values" </string>
@@ -93,8 +72,6 @@
<vector2> 412, -212.981 </vector2>
<vector2> 412, 171 </vector2>
</array>
- <string> "times" </string>
- <real_array len="2"> 1, 1.5 </real_array>
</dictionary>
<string name="tracks/1/type"> "value" </string>
<node_path name="tracks/1/path"> "logo:frame" </node_path>
@@ -102,6 +79,8 @@
<dictionary name="tracks/1/keys" shared="false">
<string> "cont" </string>
<bool> False </bool>
+ <string> "times" </string>
+ <real_array len="10"> 0, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3 </real_array>
<string> "transitions" </string>
<real_array len="10"> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 </real_array>
<string> "values" </string>
@@ -117,8 +96,6 @@
<int> 7 </int>
<int> 8 </int>
</array>
- <string> "times" </string>
- <real_array len="10"> 0, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3 </real_array>
</dictionary>
<string name="tracks/2/type"> "value" </string>
<node_path name="tracks/2/path"> "start:visibility/opacity" </node_path>
@@ -126,6 +103,8 @@
<dictionary name="tracks/2/keys" shared="false">
<string> "cont" </string>
<bool> True </bool>
+ <string> "times" </string>
+ <real_array len="2"> 2.5, 2.8 </real_array>
<string> "transitions" </string>
<real_array len="2"> 1, 1 </real_array>
<string> "values" </string>
@@ -133,8 +112,6 @@
<real> 0 </real>
<real> 1 </real>
</array>
- <string> "times" </string>
- <real_array len="2"> 2.5, 2.8 </real_array>
</dictionary>
<string name="tracks/3/type"> "value" </string>
<node_path name="tracks/3/path"> "start:visibility/visible" </node_path>
@@ -142,6 +119,8 @@
<dictionary name="tracks/3/keys" shared="false">
<string> "cont" </string>
<bool> False </bool>
+ <string> "times" </string>
+ <real_array len="2"> 0, 2.5 </real_array>
<string> "transitions" </string>
<real_array len="2"> 1, 1 </real_array>
<string> "values" </string>
@@ -149,8 +128,6 @@
<bool> False </bool>
<bool> True </bool>
</array>
- <string> "times" </string>
- <real_array len="2"> 0, 2.5 </real_array>
</dictionary>
<string name="tracks/4/type"> "value" </string>
<node_path name="tracks/4/path"> "copyright:visibility/visible" </node_path>
@@ -158,6 +135,8 @@
<dictionary name="tracks/4/keys" shared="false">
<string> "cont" </string>
<bool> False </bool>
+ <string> "times" </string>
+ <real_array len="2"> 0, 2.5 </real_array>
<string> "transitions" </string>
<real_array len="2"> 1, 1 </real_array>
<string> "values" </string>
@@ -165,8 +144,6 @@
<bool> False </bool>
<bool> True </bool>
</array>
- <string> "times" </string>
- <real_array len="2"> 0, 2.5 </real_array>
</dictionary>
<string name="tracks/5/type"> "value" </string>
<node_path name="tracks/5/path"> "copyright:visibility/opacity" </node_path>
@@ -174,6 +151,8 @@
<dictionary name="tracks/5/keys" shared="false">
<string> "cont" </string>
<bool> True </bool>
+ <string> "times" </string>
+ <real_array len="2"> 2.5, 2.8 </real_array>
<string> "transitions" </string>
<real_array len="2"> 1, 1 </real_array>
<string> "values" </string>
@@ -181,45 +160,61 @@
<real> 0 </real>
<real> 1 </real>
</array>
+ </dictionary>
+
+ </resource>
+ <resource type="Animation" path="local://3">
+ <string name="resource/name"> "loop" </string>
+ <real name="length"> 0.6 </real>
+ <bool name="loop"> True </bool>
+ <real name="step"> 0.1 </real>
+ <string name="tracks/0/type"> "value" </string>
+ <node_path name="tracks/0/path"> "logo: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="2"> 2.5, 2.8 </real_array>
+ <real_array len="2"> 0, 0.3 </real_array>
+ <string> "transitions" </string>
+ <real_array len="2"> 1, 1 </real_array>
+ <string> "values" </string>
+ <array len="2" shared="false">
+ <int> 8 </int>
+ <int> 7 </int>
+ </array>
</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> "editable_instances" </string>
+ <array len="0" shared="false">
+ </array>
<string> "names" </string>
- <string_array len="81">
+ <string_array len="51">
<string> "splash" </string>
- <string> "Control" </string>
- <string> "visibility/visible" </string>
- <string> "visibility/opacity" </string>
- <string> "visibility/self_opacity" </string>
- <string> "visibility/on_top" </string>
<string> "anchor/right" </string>
<string> "anchor/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/vertical" </string>
- <string> "size_flags/stretch_ratio" </string>
<string> "__meta__" </string>
+ <string> "Control" </string>
<string> "bg" </string>
<string> "margin/right" </string>
<string> "margin/bottom" </string>
<string> "1" </string>
- <string> "TextureFrame" </string>
<string> "texture" </string>
- <string> "modulate" </string>
- <string> "expand" </string>
+ <string> "TextureFrame" </string>
<string> "2" </string>
<string> "margin/left" </string>
<string> "scroll" </string>
- <string> "AnimationPlayer" </string>
<string> "playback/process_mode" </string>
<string> "playback/default_blend_time" </string>
<string> "root/root" </string>
@@ -228,152 +223,172 @@
<string> "playback/speed" </string>
<string> "blend_times" </string>
<string> "autoplay" </string>
+ <string> "AnimationPlayer" </string>
<string> "layer2" </string>
<string> "margin/top" </string>
<string> "layer1" </string>
<string> "logo" </string>
- <string> "AnimatedSprite" </string>
<string> "transform/pos" </string>
- <string> "transform/rot" </string>
- <string> "transform/scale" </string>
<string> "frames" </string>
<string> "frame" </string>
- <string> "centered" </string>
- <string> "flip_h" </string>
- <string> "flip_v" </string>
+ <string> "AnimatedSprite" </string>
<string> "start" </string>
- <string> "TextureButton" </string>
- <string> "disabled" </string>
<string> "toggle_mode" </string>
- <string> "click_on_press" </string>
<string> "textures/normal" </string>
<string> "textures/pressed" </string>
- <string> "textures/hover" </string>
- <string> "textures/disabled" </string>
- <string> "textures/focused" </string>
- <string> "textures/click_mask" </string>
+ <string> "TextureButton" </string>
<string> "copyright" </string>
- <string> "Label" </string>
<string> "custom_fonts/font" </string>
- <string> "range/min" </string>
- <string> "range/max" </string>
- <string> "range/step" </string>
- <string> "range/page" </string>
- <string> "range/value" </string>
- <string> "range/exp_edit" </string>
- <string> "rounded_values" </string>
<string> "text" </string>
- <string> "align" </string>
- <string> "valign" </string>
- <string> "autowrap" </string>
<string> "percent_visible" </string>
+ <string> "lines_skipped" </string>
+ <string> "max_lines_visible" </string>
+ <string> "Label" </string>
<string> "intro" </string>
- <string> "anims/loop" </string>
<string> "anims/intro" </string>
<string> "next/intro" </string>
+ <string> "anims/loop" </string>
</string_array>
- <string> "version" </string>
- <int> 1 </int>
- <string> "conn_count" </string>
- <int> 0 </int>
<string> "node_count" </string>
<int> 17 </int>
+ <string> "node_paths" </string>
+ <array len="0" shared="false">
+ </array>
+ <string> "nodes" </string>
+ <int_array len="387"> -1, -1, 8, 0, -1, 7, 1, 0, 2, 0, 3, 1, 4, 2, 5, 3, 6, 3, 7, 4, 0, 0, 0, 8, 9, -1, 6, 10, 5, 11, 5, 3, 1, 4, 2, 5, 3, 6, 3, 0, 1, 0, 14, 12, -1, 7, 10, 5, 11, 5, 3, 2, 4, 2, 5, 3, 6, 3, 13, 6, 0, 1, 0, 14, 15, -1, 8, 16, 7, 10, 8, 11, 9, 3, 2, 4, 2, 5, 3, 6, 3, 13, 6, 0, 1, 0, 26, 17, -1, 8, 18, 0, 19, 10, 20, 11, 21, 12, 22, 2, 23, 13, 24, 14, 25, 15, 0, 0, 0, 8, 27, -1, 6, 10, 5, 11, 5, 3, 1, 4, 2, 5, 3, 6, 3, 0, 5, 0, 14, 12, -1, 8, 28, 16, 10, 7, 11, 17, 3, 2, 4, 2, 5, 3, 6, 3, 13, 18, 0, 5, 0, 14, 15, -1, 9, 16, 7, 28, 16, 10, 8, 11, 17, 3, 2, 4, 2, 5, 3, 6, 3, 13, 18, 0, 5, 0, 26, 17, -1, 8, 18, 0, 19, 10, 20, 11, 21, 12, 22, 2, 23, 19, 24, 14, 25, 15, 0, 0, 0, 8, 29, -1, 6, 10, 5, 11, 5, 3, 1, 4, 2, 5, 3, 6, 3, 0, 9, 0, 14, 12, -1, 8, 28, 20, 10, 7, 11, 17, 3, 2, 4, 2, 5, 3, 6, 3, 13, 21, 0, 9, 0, 14, 15, -1, 9, 16, 7, 28, 20, 10, 8, 11, 17, 3, 2, 4, 2, 5, 3, 6, 3, 13, 21, 0, 9, 0, 26, 17, -1, 8, 18, 0, 19, 10, 20, 11, 21, 12, 22, 2, 23, 22, 24, 14, 25, 15, 0, 0, 0, 34, 30, -1, 3, 31, 23, 32, 24, 33, 25, 0, 0, 0, 39, 35, -1, 11, 16, 26, 28, 27, 10, 28, 11, 29, 3, 1, 4, 2, 5, 3, 6, 3, 36, 1, 37, 30, 38, 31, 0, 0, 0, 46, 40, -1, 12, 16, 32, 28, 33, 10, 34, 11, 35, 3, 2, 4, 2, 5, 3, 41, 36, 42, 37, 43, 38, 44, 39, 45, 40, 0, 0, 0, 26, 47, -1, 10, 18, 0, 19, 10, 20, 11, 48, 41, 49, 42, 50, 43, 22, 2, 23, 38, 24, 14, 25, 44, 0 </int_array>
<string> "variants" </string>
- <array len="49" shared="false">
- <bool> True </bool>
- <real> 1 </real>
+ <array len="45" shared="false">
<int> 1 </int>
- <node_path> "" </node_path>
<bool> False </bool>
+ <bool> True </bool>
<int> 2 </int>
<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> "pixel_snap" </string>
- <bool> True </bool>
+ <string> "ofs" </string>
+ <vector2> -301.424, -450.503 </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> 0.54036 </real>
- <string> "ofs" </string>
- <vector2> -301.424, 3.30361 </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">
@@ -382,12 +397,9 @@
<string> "run_mode" </string>
<int> 0 </int>
</dictionary>
- <string> "__editor_plugin_screen__" </string>
- <string> "2D" </string>
</dictionary>
<real> 40 </real>
- <resource resource_type="ImageTexture" path="res://bg.*"> </resource>
- <color> 1, 1, 1, 1 </color>
+ <resource external="0"> </resource>
<real> 800 </real>
<real> 1600 </real>
<real> 450 </real>
@@ -400,38 +412,36 @@
<string> "scroll" </string>
<real> 194 </real>
<real> 456 </real>
- <resource resource_type="ImageTexture" path="res://bg_layer_2.*"> </resource>
+ <resource external="1"> </resource>
<real> 0.1 </real>
<real> 212 </real>
- <resource resource_type="ImageTexture" path="res://bg_layer_1.*"> </resource>
+ <resource external="2"> </resource>
<real> 0.2 </real>
<vector2> 412, 171 </vector2>
- <vector2> 1, 1 </vector2>
<resource resource_type="SpriteFrames" path="local://2"> </resource>
<int> 8 </int>
<real> 345 </real>
<real> 369 </real>
<real> 494 </real>
<real> 443 </real>
- <resource resource_type="ImageTexture" path="res://button.*"> </resource>
- <resource resource_type="ImageTexture" path="res://button_pressed.*"> </resource>
- <resource name=""></resource> <real> 658 </real>
+ <resource external="12"> </resource>
+ <resource external="13"> </resource>
+ <real> 658 </real>
<real> 417 </real>
<real> 776 </real>
<real> 434 </real>
- <resource resource_type="Font" path="res://freesans.*"> </resource>
+ <resource external="14"> </resource>
<string> "(c) 1994 SOGA" </string>
+ <real> 1 </real>
<int> 0 </int>
- <real> -1 </real>
- <resource resource_type="Animation" path="local://3"> </resource>
+ <int> -1 </int>
<resource resource_type="Animation" path="local://4"> </resource>
<string> "loop" </string>
+ <resource resource_type="Animation" path="local://3"> </resource>
<string> "intro" </string>
</array>
- <string> "nodes" </string>
- <int_array len="675"> -1, -1, 1, 0, -1, 16, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 2, 8, 3, 9, 3, 10, 3, 11, 3, 12, 4, 13, 0, 14, 5, 15, 5, 16, 1, 17, 6, 0, 0, 0, 1, 18, -1, 15, 2, 0, 3, 1, 4, 1, 5, 0, 19, 7, 20, 7, 8, 3, 9, 3, 10, 3, 11, 3, 12, 4, 13, 0, 14, 5, 15, 5, 16, 1, 0, 1, 0, 22, 21, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 19, 7, 20, 7, 8, 3, 9, 3, 10, 3, 11, 3, 12, 0, 13, 0, 14, 5, 15, 5, 16, 1, 23, 8, 24, 9, 25, 4, 0, 1, 0, 22, 26, -1, 19, 2, 0, 3, 1, 4, 1, 5, 0, 27, 10, 19, 11, 20, 12, 8, 3, 9, 3, 10, 3, 11, 3, 12, 0, 13, 0, 14, 5, 15, 5, 16, 1, 23, 8, 24, 9, 25, 4, 0, 1, 0, 29, 28, -1, 8, 30, 2, 31, 13, 32, 14, 33, 15, 34, 0, 35, 16, 36, 17, 37, 18, 0, 0, 0, 1, 38, -1, 15, 2, 0, 3, 1, 4, 1, 5, 0, 19, 7, 20, 7, 8, 3, 9, 3, 10, 3, 11, 3, 12, 4, 13, 0, 14, 5, 15, 5, 16, 1, 0, 5, 0, 22, 21, -1, 19, 2, 0, 3, 1, 4, 1, 5, 0, 39, 19, 19, 10, 20, 20, 8, 3, 9, 3, 10, 3, 11, 3, 12, 0, 13, 0, 14, 5, 15, 5, 16, 1, 23, 21, 24, 9, 25, 4, 0, 5, 0, 22, 26, -1, 20, 2, 0, 3, 1, 4, 1, 5, 0, 27, 10, 39, 19, 19, 11, 20, 20, 8, 3, 9, 3, 10, 3, 11, 3, 12, 0, 13, 0, 14, 5, 15, 5, 16, 1, 23, 21, 24, 9, 25, 4, 0, 5, 0, 29, 28, -1, 8, 30, 2, 31, 13, 32, 14, 33, 15, 34, 0, 35, 22, 36, 17, 37, 18, 0, 0, 0, 1, 40, -1, 15, 2, 0, 3, 1, 4, 1, 5, 0, 19, 7, 20, 7, 8, 3, 9, 3, 10, 3, 11, 3, 12, 4, 13, 0, 14, 5, 15, 5, 16, 1, 0, 9, 0, 22, 21, -1, 19, 2, 0, 3, 1, 4, 1, 5, 0, 39, 23, 19, 10, 20, 20, 8, 3, 9, 3, 10, 3, 11, 3, 12, 0, 13, 0, 14, 5, 15, 5, 16, 1, 23, 24, 24, 9, 25, 4, 0, 9, 0, 22, 26, -1, 20, 2, 0, 3, 1, 4, 1, 5, 0, 27, 10, 39, 23, 19, 11, 20, 20, 8, 3, 9, 3, 10, 3, 11, 3, 12, 0, 13, 0, 14, 5, 15, 5, 16, 1, 23, 24, 24, 9, 25, 4, 0, 9, 0, 29, 28, -1, 8, 30, 2, 31, 13, 32, 14, 33, 15, 34, 0, 35, 25, 36, 17, 37, 18, 0, 0, 0, 42, 41, -1, 13, 2, 0, 3, 1, 4, 1, 5, 0, 43, 26, 44, 13, 45, 27, 46, 28, 47, 29, 48, 0, 49, 4, 50, 4, 24, 9, 0, 0, 0, 52, 51, -1, 26, 2, 0, 3, 1, 4, 1, 5, 0, 27, 30, 39, 31, 19, 32, 20, 33, 8, 3, 9, 3, 10, 3, 11, 3, 12, 4, 13, 0, 14, 5, 15, 5, 16, 1, 53, 4, 54, 4, 55, 4, 56, 34, 57, 35, 58, 36, 59, 36, 60, 36, 61, 36, 0, 0, 0, 63, 62, -1, 29, 2, 0, 3, 1, 4, 1, 5, 0, 27, 37, 39, 38, 19, 39, 20, 40, 8, 3, 9, 3, 10, 3, 11, 3, 12, 0, 13, 0, 14, 5, 16, 1, 64, 41, 65, 13, 66, 1, 67, 1, 68, 1, 69, 13, 70, 4, 71, 4, 72, 42, 73, 43, 74, 43, 75, 4, 76, 44, 0, 0, 0, 29, 77, -1, 10, 30, 2, 31, 13, 32, 14, 78, 45, 79, 46, 80, 47, 34, 0, 35, 1, 36, 17, 37, 48, 0 </int_array>
- <string> "conns" </string>
- <int_array len="0"> </int_array>
+ <string> "version" </string>
+ <int> 2 </int>
</dictionary>
</main_resource>
diff --git a/demos/2d/sprite_shaders/sprite_shaders.scn b/demos/2d/sprite_shaders/sprite_shaders.scn
index 7c36f2137c..b6060f8eaa 100644
--- a/demos/2d/sprite_shaders/sprite_shaders.scn
+++ 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 8708d168e4..75fabb4210 100644
--- a/demos/2d/tetris/grid.gd
+++ b/demos/2d/tetris/grid.gd
@@ -1,82 +1,76 @@
-
extends Control
# Simple Tetris-like demo, (c) 2012 Juan Linietsky
# Implemented by using a regular Control and drawing on it during the _draw() callback.
# The drawing surface is updated only when changes happen (by calling update())
-
+# Member variables
var score = 0
-var score_label=null
+var score_label = null
const MAX_SHAPES = 7
var block = preload("block.png")
-var block_colors=[
- Color(1,0.5,0.5),
- Color(0.5,1,0.5),
- Color(0.5,0.5,1),
- Color(0.8,0.4,0.8),
- Color(0.8,0.8,0.4),
- Color(0.4,0.8,0.8),
- Color(0.7,0.7,0.7)]
-
-var block_shapes=[
- [ Vector2(0,-1),Vector2(0,0),Vector2(0,1),Vector2(0,2) ], # I
- [ Vector2(0,0),Vector2(1,0),Vector2(1,1),Vector2(0,1) ], # O
- [ Vector2(-1,1),Vector2(0,1),Vector2(0,0),Vector2(1,0) ], # S
- [ Vector2(1,1),Vector2(0,1),Vector2(0,0),Vector2(-1,0) ], # Z
- [ Vector2(-1,1),Vector2(-1,0),Vector2(0,0),Vector2(1,0) ], # L
- [ Vector2(1,1),Vector2(1,0),Vector2(0,0),Vector2(-1,0) ], # J
- [ Vector2(0,1),Vector2(1,0),Vector2(0,0),Vector2(-1,0) ]] # T
-
+var block_colors = [
+ Color(1, 0.5, 0.5),
+ Color(0.5, 1, 0.5),
+ Color(0.5, 0.5, 1),
+ Color(0.8, 0.4, 0.8),
+ Color(0.8, 0.8, 0.4),
+ Color(0.4, 0.8, 0.8),
+ Color(0.7, 0.7, 0.7)]
-var block_rotations=[
- Matrix32( Vector2(1,0),Vector2(0,1), Vector2() ),
- Matrix32( Vector2(0,1),Vector2(-1,0), Vector2() ),
- Matrix32( Vector2(-1,0),Vector2(0,-1), Vector2() ),
- Matrix32( Vector2(0,-1),Vector2(1,0), Vector2() )
-]
-
+var block_shapes = [
+ [ Vector2(0, -1), Vector2(0, 0), Vector2(0, 1), Vector2(0, 2) ], # I
+ [ Vector2(0, 0), Vector2(1, 0), Vector2(1, 1), Vector2(0, 1) ], # O
+ [ Vector2(-1, 1), Vector2(0, 1), Vector2(0, 0), Vector2(1, 0) ], # S
+ [ Vector2(1, 1), Vector2(0, 1), Vector2(0, 0), Vector2(-1, 0) ], # Z
+ [ Vector2(-1, 1), Vector2(-1, 0), Vector2(0, 0), Vector2(1, 0) ], # L
+ [ Vector2(1, 1), Vector2(1, 0), Vector2(0, 0), Vector2(-1, 0) ], # J
+ [ Vector2(0, 1), Vector2(1, 0), Vector2(0, 0), Vector2(-1, 0) ]] # T
-var width=0
-var height=0
+var block_rotations = [
+ Matrix32(Vector2(1, 0), Vector2(0, 1), Vector2()),
+ Matrix32(Vector2(0, 1), Vector2(-1, 0), Vector2()),
+ Matrix32(Vector2(-1, 0), Vector2(0, -1), Vector2()),
+ Matrix32(Vector2(0, -1), Vector2(1, 0), Vector2())]
-var cells={}
+var width = 0
+var height = 0
-var piece_active=false
-var piece_shape=0
-var piece_pos=Vector2()
-var piece_rot=0
+var cells = {}
+var piece_active = false
+var piece_shape = 0
+var piece_pos = Vector2()
+var piece_rot = 0
-func piece_cell_xform(p,er=0):
- var r = (4+er+piece_rot)%4
- return piece_pos+block_rotations[r].xform(p)
-func _draw():
+func piece_cell_xform(p, er = 0):
+ var r = (4 + er + piece_rot) % 4
+ return piece_pos + block_rotations[r].xform(p)
+
- var sb = get_stylebox("bg","Tree") # use line edit bg
- draw_style_box(sb,Rect2(Vector2(),get_size()).grow(3))
+func _draw():
+ var sb = get_stylebox("bg", "Tree") # Use line edit bg
+ draw_style_box(sb, Rect2(Vector2(), get_size()).grow(3))
var bs = block.get_size()
for y in range(height):
for x in range(width):
- if (Vector2(x,y) in cells):
- draw_texture_rect(block,Rect2(Vector2(x,y)*bs,bs),false,block_colors[cells[Vector2(x,y)]])
-
+ if (Vector2(x, y) in cells):
+ draw_texture_rect(block, Rect2(Vector2(x, y)*bs, bs), false, block_colors[cells[Vector2(x, y)]])
+
if (piece_active):
-
for c in block_shapes[piece_shape]:
- draw_texture_rect(block,Rect2(piece_cell_xform(c)*bs,bs),false,block_colors[piece_shape])
-
+ draw_texture_rect(block, Rect2(piece_cell_xform(c)*bs, bs), false, block_colors[piece_shape])
-func piece_check_fit(ofs,er=0):
+func piece_check_fit(ofs, er = 0):
for c in block_shapes[piece_shape]:
- var pos = piece_cell_xform(c,er)+ofs
+ var pos = piece_cell_xform(c, er) + ofs
if (pos.x < 0):
return false
if (pos.y < 0):
@@ -88,130 +82,113 @@ func piece_check_fit(ofs,er=0):
if (pos in cells):
return false
- return true
+ return true
-func new_piece():
- piece_shape = randi() % MAX_SHAPES
- piece_pos = Vector2(width/2,0)
- piece_active=true
- piece_rot=0
- if (piece_shape==0):
- piece_pos.y+=1
-
+func new_piece():
+ piece_shape = randi() % MAX_SHAPES
+ piece_pos = Vector2(width/2, 0)
+ piece_active = true
+ piece_rot = 0
+ if (piece_shape == 0):
+ piece_pos.y += 1
+
if (not piece_check_fit(Vector2())):
- #game over
- #print("GAME OVER!")
+ # Game over
game_over()
-
- update()
-
+ update()
+
+
func test_collapse_rows():
- var accum_down=0
+ var accum_down = 0
for i in range(height):
var y = height - i - 1
var collapse = true
for x in range(width):
- if (Vector2(x,y) in cells):
+ if (Vector2(x, y) in cells):
if (accum_down):
- cells[ Vector2(x,y+accum_down) ] = cells[Vector2(x,y)]
+ cells[Vector2(x, y + accum_down)] = cells[Vector2(x, y)]
else:
- collapse=false
+ collapse = false
if (accum_down):
- cells.erase( Vector2(x,y+accum_down) )
-
- if (collapse):
- accum_down+=1
+ cells.erase(Vector2(x, y + accum_down))
-
- score+=accum_down*100
+ if (collapse):
+ accum_down += 1
+
+ score += accum_down*100
score_label.set_text(str(score))
-
-
+
+
func game_over():
+ piece_active = false
+ get_node("gameover").set_text("Game over!")
+ update()
+
- piece_active=false
- get_node("gameover").set_text("Game Over")
- update()
-
-
func restart_pressed():
+ score = 0
+ score_label.set_text("0")
+ cells.clear()
+ get_node("gameover").set_text("")
+ piece_active = true
+ get_node("../restart").release_focus()
+ update()
- score=0
- score_label.set_text("0")
- cells.clear()
- get_node("gameover").set_text("")
- piece_active=true
- get_node("../restart").release_focus()
- update()
-
-
func piece_move_down():
-
if (!piece_active):
return
- if (piece_check_fit(Vector2(0,1))):
- piece_pos.y+=1
- update()
+ if (piece_check_fit(Vector2(0, 1))):
+ piece_pos.y += 1
+ update()
else:
-
for c in block_shapes[piece_shape]:
var pos = piece_cell_xform(c)
- cells[pos]=piece_shape
+ cells[pos] = piece_shape
test_collapse_rows()
new_piece()
-
-func piece_rotate():
+func piece_rotate():
var adv = 1
- if (not piece_check_fit(Vector2(),1)):
+ if (not piece_check_fit(Vector2(), 1)):
return
piece_rot = (piece_rot + adv) % 4
update()
-
-
-
-func _input(ie):
+func _input(ie):
if (not piece_active):
return
if (!ie.is_pressed()):
return
if (ie.is_action("move_left")):
- if (piece_check_fit(Vector2(-1,0))):
- piece_pos.x-=1
+ if (piece_check_fit(Vector2(-1, 0))):
+ piece_pos.x -= 1
update()
elif (ie.is_action("move_right")):
- if (piece_check_fit(Vector2(1,0))):
- piece_pos.x+=1
+ if (piece_check_fit(Vector2(1, 0))):
+ piece_pos.x += 1
update()
elif (ie.is_action("move_down")):
piece_move_down()
elif (ie.is_action("rotate")):
piece_rotate()
-
-
-func setup(w,h):
- width=w
- height=h
- set_size( Vector2(w,h)*block.get_size() )
+
+
+func setup(w, h):
+ width = w
+ height = h
+ set_size(Vector2(w, h)*block.get_size())
new_piece()
get_node("timer").start()
-
-func _ready():
- # Initalization here
- setup(10,20)
+func _ready():
+ setup(10, 20)
score_label = get_node("../score")
-
+
set_process_input(true)
-
-
-
-
diff --git a/demos/2d/tetris/grid.xml b/demos/2d/tetris/grid.xml
index 072ffb5e75..49ad4ccc41 100644
--- a/demos/2d/tetris/grid.xml
+++ b/demos/2d/tetris/grid.xml
@@ -1,153 +1,209 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="2" version="0.99" version_name="Godot Engine v0.99.3037-pre-beta">
- <ext_resource path="res://grid.gd" type="GDScript"></ext_resource>
+<resource_file type="PackedScene" subresource_count="2" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+ <ext_resource path="res://grid.gd" type="Script" index="0"></ext_resource>
<main_resource>
- <string name="resource/name"> "" </string>
- <dictionary name="_bundled">
+ <dictionary name="_bundled" shared="false">
+ <string> "conn_count" </string>
+ <int> 1 </int>
+ <string> "conns" </string>
+ <int_array len="6"> 1, 0, 30, 29, 2, 0 </int_array>
+ <string> "editable_instances" </string>
+ <array len="0" shared="false">
+ </array>
<string> "names" </string>
- <string_array len="57">
+ <string_array len="31">
<string> "Grid" </string>
- <string> "Control" </string>
- <string> "process/process" </string>
- <string> "process/fixed_process" </string>
- <string> "process/input" </string>
- <string> "process/unhandled_input" </string>
- <string> "process/mode" </string>
- <string> "visibility/visible" </string>
- <string> "visibility/toplevel" </string>
- <string> "visibility/opacity" </string>
- <string> "visibility/self_opacity" </string>
- <string> "visibility/on_top" </string>
- <string> "visibility/blend_mode" </string>
- <string> "transform/notify" </string>
- <string> "anchor/left" </string>
- <string> "anchor/top" </string>
- <string> "anchor/right" </string>
- <string> "anchor/bottom" </string>
- <string> "margin/left" </string>
- <string> "margin/top" </string>
<string> "margin/right" </string>
<string> "margin/bottom" </string>
- <string> "hint/tooltip" </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/vertical" </string>
- <string> "size_flags/stretch_ratio" </string>
<string> "script/script" </string>
<string> "__meta__" </string>
+ <string> "Control" </string>
<string> "timer" </string>
- <string> "Timer" </string>
+ <string> "process_mode" </string>
<string> "wait_time" </string>
<string> "one_shot" </string>
<string> "autostart" </string>
+ <string> "Timer" </string>
<string> "gameover" </string>
- <string> "Label" </string>
+ <string> "anchor/right" </string>
+ <string> "anchor/bottom" </string>
<string> "custom_colors/font_color" </string>
+ <string> "custom_colors/font_color_shadow" </string>
<string> "custom_constants/shadow_offset_x" </string>
<string> "custom_constants/shadow_offset_y" </string>
- <string> "range/min" </string>
- <string> "range/max" </string>
- <string> "range/step" </string>
- <string> "range/page" </string>
- <string> "range/value" </string>
- <string> "range/exp_edit" </string>
- <string> "rounded_values" </string>
- <string> "text" </string>
<string> "align" </string>
<string> "valign" </string>
- <string> "autowrap" </string>
+ <string> "percent_visible" </string>
+ <string> "lines_skipped" </string>
+ <string> "max_lines_visible" </string>
+ <string> "Label" </string>
<string> "piece_move_down" </string>
<string> "timeout" </string>
</string_array>
- <string> "version" </string>
- <int> 1 </int>
- <string> "conn_count" </string>
- <int> 1 </int>
<string> "node_count" </string>
<int> 3 </int>
+ <string> "node_paths" </string>
+ <array len="0" shared="false">
+ </array>
+ <string> "nodes" </string>
+ <int_array len="73"> -1, -1, 9, 0, -1, 8, 1, 0, 2, 0, 3, 1, 4, 2, 5, 3, 6, 3, 7, 4, 8, 5, 0, 0, 0, 15, 10, -1, 4, 11, 6, 12, 7, 13, 1, 14, 1, 0, 0, 0, 28, 16, -1, 14, 17, 6, 18, 6, 3, 2, 4, 2, 5, 3, 19, 8, 20, 9, 21, 6, 22, 6, 23, 6, 24, 6, 25, 7, 26, 10, 27, 11, 0 </int_array>
<string> "variants" </string>
- <array len="14">
+ <array len="12" shared="false">
+ <real> 40 </real>
<bool> False </bool>
- <int> 0 </int>
<bool> True </bool>
- <real> 1 </real>
- <real> 0 </real>
- <real> 40 </real>
- <string> "" </string>
- <node_path> "" </node_path>
<int> 2 </int>
- <resource resource_type="GDScript" path="res://grid.gd"> </resource>
- <dictionary>
+ <resource external="0"> </resource>
+ <dictionary shared="false">
+ <string> "__editor_plugin_screen__" </string>
+ <string> "2D" </string>
<string> "__editor_plugin_states__" </string>
- <dictionary>
- <string> "Script" </string>
- <dictionary>
- <string> "current" </string>
- <int> 0 </int>
- <string> "sources" </string>
- <array len="1">
- <string> "res://grid.gd" </string>
- </array>
- </dictionary>
+ <dictionary shared="false">
<string> "2D" </string>
- <dictionary>
+ <dictionary shared="false">
+ <string> "ofs" </string>
+ <vector2> -229.129, -80 </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 </real>
- <string> "ofs" </string>
- <vector2> -69, -22 </vector2>
</dictionary>
<string> "3D" </string>
- <dictionary>
- <string> "zfar" </string>
- <real> 500 </real>
+ <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> "window_mode" </string>
- <int> 0 </int>
- <string> "window_0" </string>
- <dictionary>
- <string> "distance" </string>
- <real> 4 </real>
- <string> "default_light" </string>
- <bool> True </bool>
- <string> "x_rot" </string>
- <real> 0.337 </real>
- <string> "y_rot" </string>
- <real> -0.575 </real>
- <string> "show_grid" </string>
- <bool> True </bool>
- <string> "show_origin" </string>
- <bool> True </bool>
- <string> "pos" </string>
- <vector3> 0, 0, 0 </vector3>
- </dictionary>
+ <string> "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> "Anim" </string>
+ <dictionary shared="false">
+ <string> "visible" </string>
+ <bool> False </bool>
+ </dictionary>
</dictionary>
<string> "__editor_run_settings__" </string>
- <dictionary>
+ <dictionary shared="false">
<string> "custom_args" </string>
<string> "-l $scene" </string>
<string> "run_mode" </string>
<int> 0 </int>
</dictionary>
- <string> "__editor_plugin_screen__" </string>
- <string> "Script" </string>
</dictionary>
- <resource name=""></resource> <int> 1 </int>
+ <int> 1 </int>
+ <real> 1 </real>
+ <color> 1, 1, 1, 1 </color>
<color> 0, 0, 0, 1 </color>
+ <int> 0 </int>
+ <int> -1 </int>
</array>
- <string> "nodes" </string>
- <int_array len="193"> -1, -1, 1, 0, -1, 32, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 0, 14, 1, 15, 1, 16, 1, 17, 1, 18, 4, 19, 4, 20, 5, 21, 5, 22, 6, 23, 7, 24, 7, 25, 7, 26, 7, 27, 0, 28, 2, 29, 8, 30, 8, 31, 3, 32, 9, 33, 10, 0, 0, 0, 35, 34, -1, 9, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 36, 3, 37, 0, 38, 0, 32, 11, 0, 0, 0, 40, 39, -1, 45, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 0, 14, 1, 15, 1, 16, 12, 17, 12, 18, 4, 19, 4, 20, 4, 21, 4, 22, 6, 23, 7, 24, 7, 25, 7, 26, 7, 27, 2, 28, 2, 29, 8, 30, 1, 31, 3, 41, 13, 42, 12, 43, 12, 44, 4, 45, 3, 46, 3, 47, 3, 48, 4, 49, 0, 50, 0, 51, 6, 52, 12, 53, 12, 54, 0, 32, 11, 0 </int_array>
- <string> "conns" </string>
- <int_array len="6"> 1, 0, 56, 55, 2, 0 </int_array>
+ <string> "version" </string>
+ <int> 2 </int>
</dictionary>
- <resource name="script/script"></resource>
+
</main_resource>
</resource_file> \ No newline at end of file
diff --git a/demos/2d/tetris/tetris.xml b/demos/2d/tetris/tetris.xml
index 1b5e5afeb0..a8e47a8ae4 100644
--- a/demos/2d/tetris/tetris.xml
+++ b/demos/2d/tetris/tetris.xml
@@ -1,147 +1,192 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="2" version="0.99" version_name="Godot Engine v0.99.3037-pre-beta">
- <ext_resource path="res://grid.xml" type="PackedScene"></ext_resource>
+<resource_file type="PackedScene" subresource_count="2" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build">
+ <ext_resource path="res://grid.xml" type="PackedScene" index="0"></ext_resource>
<main_resource>
- <string name="resource/name"> "" </string>
- <dictionary name="_bundled">
+ <dictionary name="_bundled" shared="false">
+ <string> "conn_count" </string>
+ <int> 1 </int>
+ <string> "conns" </string>
+ <int_array len="6"> 4, 1, 23, 22, 2, 0 </int_array>
+ <string> "editable_instances" </string>
+ <array len="0" shared="false">
+ </array>
<string> "names" </string>
- <string_array len="59">
+ <string_array len="24">
<string> "Tetris" </string>
- <string> "Panel" </string>
- <string> "process/process" </string>
- <string> "process/fixed_process" </string>
- <string> "process/input" </string>
- <string> "process/unhandled_input" </string>
- <string> "process/mode" </string>
- <string> "visibility/visible" </string>
- <string> "visibility/toplevel" </string>
- <string> "visibility/opacity" </string>
- <string> "visibility/self_opacity" </string>
- <string> "visibility/on_top" </string>
- <string> "visibility/blend_mode" </string>
- <string> "transform/notify" </string>
- <string> "anchor/left" </string>
- <string> "anchor/top" </string>
- <string> "anchor/right" </string>
- <string> "anchor/bottom" </string>
- <string> "margin/left" </string>
- <string> "margin/top" </string>
<string> "margin/right" </string>
<string> "margin/bottom" </string>
- <string> "hint/tooltip" </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/vertical" </string>
- <string> "size_flags/stretch_ratio" </string>
- <string> "script/script" </string>
<string> "__meta__" </string>
+ <string> "Panel" </string>
<string> "Grid" </string>
- <string> "Control" </string>
+ <string> "margin/left" </string>
+ <string> "margin/top" </string>
<string> "Label" </string>
- <string> "range/min" </string>
- <string> "range/max" </string>
- <string> "range/step" </string>
- <string> "range/page" </string>
- <string> "range/value" </string>
- <string> "range/exp_edit" </string>
- <string> "rounded_values" </string>
<string> "text" </string>
- <string> "align" </string>
- <string> "valign" </string>
- <string> "autowrap" </string>
+ <string> "percent_visible" </string>
+ <string> "lines_skipped" </string>
+ <string> "max_lines_visible" </string>
<string> "score" </string>
<string> "restart" </string>
- <string> "Button" </string>
- <string> "disabled" </string>
<string> "toggle_mode" </string>
- <string> "click_on_press" </string>
- <string> "icon" </string>
<string> "flat" </string>
- <string> "clip_text" </string>
+ <string> "Button" </string>
<string> "restart_pressed" </string>
<string> "pressed" </string>
</string_array>
- <string> "version" </string>
- <int> 1 </int>
- <string> "conn_count" </string>
- <int> 1 </int>
<string> "node_count" </string>
<int> 5 </int>
+ <string> "node_paths" </string>
+ <array len="0" shared="false">
+ </array>
+ <string> "nodes" </string>
+ <int_array len="123"> -1, -1, 8, 0, -1, 7, 1, 0, 2, 0, 3, 1, 4, 2, 5, 3, 6, 3, 7, 4, 0, 0, 0, 2147483647, 9, 5, 4, 10, 6, 11, 7, 1, 8, 2, 9, 0, 0, 0, 12, 12, -1, 11, 10, 10, 11, 11, 1, 12, 2, 13, 3, 2, 4, 2, 5, 3, 13, 14, 14, 15, 15, 16, 16, 17, 0, 0, 0, 12, 17, -1, 11, 10, 18, 11, 19, 1, 20, 2, 21, 3, 2, 4, 2, 5, 3, 13, 22, 14, 15, 15, 16, 16, 17, 0, 0, 0, 21, 18, -1, 11, 10, 10, 11, 23, 1, 24, 2, 25, 3, 1, 4, 2, 5, 3, 6, 3, 19, 1, 13, 26, 20, 1, 0 </int_array>
<string> "variants" </string>
- <array len="30">
+ <array len="27" shared="false">
+ <real> 400 </real>
<bool> False </bool>
- <int> 0 </int>
<bool> True </bool>
- <real> 1 </real>
- <real> 0 </real>
- <real> 400 </real>
- <string> "" </string>
- <node_path> "" </node_path>
<int> 2 </int>
- <resource name=""></resource> <dictionary>
+ <dictionary shared="false">
+ <string> "__editor_plugin_screen__" </string>
+ <string> "2D" </string>
<string> "__editor_plugin_states__" </string>
- <dictionary>
- <string> "Script" </string>
- <dictionary>
- <string> "current" </string>
- <int> 0 </int>
- <string> "sources" </string>
- <array len="1">
- <string> "res://grid.gd" </string>
- </array>
- </dictionary>
+ <dictionary shared="false">
<string> "2D" </string>
- <dictionary>
+ <dictionary shared="false">
+ <string> "ofs" </string>
+ <vector2> -229.129, -54.344 </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.360374 </real>
- <string> "ofs" </string>
- <vector2> -44.5757, -54.344 </vector2>
</dictionary>
<string> "3D" </string>
- <dictionary>
- <string> "zfar" </string>
- <real> 500 </real>
+ <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> "window_mode" </string>
- <int> 0 </int>
- <string> "window_0" </string>
- <dictionary>
- <string> "distance" </string>
- <real> 4 </real>
- <string> "default_light" </string>
- <bool> True </bool>
- <string> "x_rot" </string>
- <real> 0.337 </real>
- <string> "y_rot" </string>
- <real> -0.575 </real>
- <string> "show_grid" </string>
- <bool> True </bool>
- <string> "show_origin" </string>
- <bool> True </bool>
- <string> "pos" </string>
- <vector3> 0, 0, 0 </vector3>
- </dictionary>
+ <string> "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> "Anim" </string>
+ <dictionary shared="false">
+ <string> "visible" </string>
+ <bool> False </bool>
+ </dictionary>
</dictionary>
<string> "__editor_run_settings__" </string>
- <dictionary>
+ <dictionary shared="false">
<string> "custom_args" </string>
<string> "-l $scene" </string>
<string> "run_mode" </string>
<int> 0 </int>
</dictionary>
- <string> "__editor_plugin_screen__" </string>
- <string> "2D" </string>
</dictionary>
- <resource resource_type="PackedScene" path="res://grid.xml"> </resource>
+ <resource external="0"> </resource>
<real> 40 </real>
<real> 35 </real>
<real> 80 </real>
@@ -151,6 +196,9 @@
<real> 283 </real>
<real> 49 </real>
<string> "Score:" </string>
+ <real> 1 </real>
+ <int> 0 </int>
+ <int> -1 </int>
<real> 252 </real>
<real> 55 </real>
<real> 293 </real>
@@ -161,11 +209,9 @@
<real> 311 </real>
<string> "Restart" </string>
</array>
- <string> "nodes" </string>
- <int_array len="351"> -1, -1, 1, 0, -1, 32, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 0, 14, 1, 15, 1, 16, 1, 17, 1, 18, 4, 19, 4, 20, 5, 21, 5, 22, 6, 23, 7, 24, 7, 25, 7, 26, 7, 27, 0, 28, 2, 29, 8, 30, 8, 31, 3, 32, 9, 33, 10, 0, 0, 0, 35, 34, 11, 4, 18, 12, 19, 13, 20, 14, 21, 15, 0, 0, 0, 36, 36, -1, 42, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 0, 14, 1, 15, 1, 16, 1, 17, 1, 18, 16, 19, 17, 20, 18, 21, 19, 22, 6, 23, 7, 24, 7, 25, 7, 26, 7, 27, 2, 28, 2, 29, 8, 30, 1, 31, 3, 37, 4, 38, 3, 39, 3, 40, 3, 41, 4, 42, 0, 43, 0, 44, 20, 45, 1, 46, 1, 47, 0, 32, 9, 0, 0, 0, 36, 48, -1, 42, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 0, 14, 1, 15, 1, 16, 1, 17, 1, 18, 21, 19, 22, 20, 23, 21, 24, 22, 6, 23, 7, 24, 7, 25, 7, 26, 7, 27, 2, 28, 2, 29, 8, 30, 1, 31, 3, 37, 4, 38, 3, 39, 3, 40, 3, 41, 4, 42, 0, 43, 0, 44, 25, 45, 1, 46, 1, 47, 0, 32, 9, 0, 0, 0, 50, 49, -1, 38, 2, 0, 3, 0, 4, 0, 5, 0, 6, 1, 7, 2, 8, 0, 9, 3, 10, 3, 11, 2, 12, 1, 13, 0, 14, 1, 15, 1, 16, 1, 17, 1, 18, 16, 19, 26, 20, 27, 21, 28, 22, 6, 23, 7, 24, 7, 25, 7, 26, 7, 27, 0, 28, 2, 29, 8, 30, 8, 31, 3, 51, 0, 52, 0, 53, 0, 44, 29, 54, 9, 55, 0, 56, 0, 32, 9, 0 </int_array>
- <string> "conns" </string>
- <int_array len="6"> 4, 1, 58, 57, 2, 0 </int_array>
+ <string> "version" </string>
+ <int> 2 </int>
</dictionary>
- <resource name="script/script"></resource>
+
</main_resource>
</resource_file> \ No newline at end of file
diff --git a/demos/2d/texscreen/bubbles.gd b/demos/2d/texscreen/bubbles.gd
index 2ee227a928..400da1a205 100644
--- a/demos/2d/texscreen/bubbles.gd
+++ b/demos/2d/texscreen/bubbles.gd
@@ -1,17 +1,11 @@
extends Control
-# member variables here, example:
-# var a=2
-# var b="textvar"
+# Member variables
+const MAX_BUBBLES = 10
-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
index 41026aceed..8509b3811c 100644
--- a/demos/2d/texscreen/bubbles.scn
+++ b/demos/2d/texscreen/bubbles.scn
Binary files differ
diff --git a/demos/2d/texscreen/lens.gd b/demos/2d/texscreen/lens.gd
index 2ccbfba497..d1007553b0 100644
--- a/demos/2d/texscreen/lens.gd
+++ b/demos/2d/texscreen/lens.gd
@@ -1,37 +1,32 @@
extends BackBufferCopy
-# member variables here, example:
-# var a=2
-# var b="textvar"
-const MOTION_SPEED=150
+# Member variables
+const MOTION_SPEED = 150
+
+var vsize
+var dir
-var vsize;
-var dir;
func _process(delta):
- var pos = get_pos() + dir * delta * MOTION_SPEED
+ 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)
- 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()
+ 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
index 5c6f8b7af8..530a0b1eb0 100644
--- a/demos/2d/texscreen/lens.scn
+++ b/demos/2d/texscreen/lens.scn
Binary files differ
diff --git a/demos/3d/fixed_materials/fixed_materials.scn b/demos/3d/fixed_materials/fixed_materials.scn
index de14ccdb15..94809b9a5e 100644
--- a/demos/3d/fixed_materials/fixed_materials.scn
+++ b/demos/3d/fixed_materials/fixed_materials.scn
Binary files differ
diff --git a/demos/3d/kinematic_char/cubio.gd b/demos/3d/kinematic_char/cubio.gd
index 058b919d05..769ada3bca 100644
--- a/demos/3d/kinematic_char/cubio.gd
+++ b/demos/3d/kinematic_char/cubio.gd
@@ -1,10 +1,7 @@
extends KinematicBody
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
+# Member variables
var g = -9.8
var vel = Vector3()
const MAX_SPEED = 5
@@ -13,83 +10,77 @@ const ACCEL= 2
const DEACCEL= 4
const MAX_SLOPE_ANGLE = 30
-func _fixed_process(delta):
- var dir = Vector3() #where does the player intend to walk to
+func _fixed_process(delta):
+ var dir = Vector3() # Where does the player intend to walk to
var cam_xform = get_node("target/camera").get_global_transform()
if (Input.is_action_pressed("move_forward")):
- dir+=-cam_xform.basis[2]
+ dir += -cam_xform.basis[2]
if (Input.is_action_pressed("move_backwards")):
- dir+=cam_xform.basis[2]
+ dir += cam_xform.basis[2]
if (Input.is_action_pressed("move_left")):
- dir+=-cam_xform.basis[0]
+ dir += -cam_xform.basis[0]
if (Input.is_action_pressed("move_right")):
- dir+=cam_xform.basis[0]
-
- dir.y=0
- dir=dir.normalized()
-
- vel.y+=delta*g
+ dir += cam_xform.basis[0]
+
+ dir.y = 0
+ dir = dir.normalized()
+
+ vel.y += delta*g
var hvel = vel
- hvel.y=0
+ hvel.y = 0
var target = dir*MAX_SPEED
var accel
- if (dir.dot(hvel) >0):
- accel=ACCEL
+ if (dir.dot(hvel) > 0):
+ accel = ACCEL
else:
- accel=DEACCEL
-
- hvel = hvel.linear_interpolate(target,accel*delta)
+ accel = DEACCEL
+
+ hvel = hvel.linear_interpolate(target, accel*delta)
+
+ vel.x = hvel.x
+ vel.z = hvel.z
- vel.x=hvel.x;
- vel.z=hvel.z
-
var motion = move(vel*delta)
-
+
var on_floor = false
var original_vel = vel
-
-
- var floor_velocity=Vector3()
-
- var attempts=4
+ var floor_velocity = Vector3()
+ var attempts = 4
while(is_colliding() and attempts):
- var n=get_collision_normal()
-
- if ( rad2deg(acos(n.dot( Vector3(0,1,0)))) < MAX_SLOPE_ANGLE ):
- #if angle to the "up" vectors is < angle tolerance
- #char is on floor
- floor_velocity=get_collider_velocity()
- on_floor=true
+ var n = get_collision_normal()
+
+ if (rad2deg(acos(n.dot(Vector3(0, 1, 0)))) < MAX_SLOPE_ANGLE):
+ # If angle to the "up" vectors is < angle tolerance,
+ # char is on floor
+ floor_velocity = get_collider_velocity()
+ on_floor = true
motion = n.slide(motion)
vel = n.slide(vel)
if (original_vel.dot(vel) > 0):
- #do not allow to slide towads the opposite direction we were coming from
+ # Do not allow to slide towads the opposite direction we were coming from
motion=move(motion)
- if (motion.length()<0.001):
+ if (motion.length() < 0.001):
break
- attempts-=1
-
- if (on_floor and floor_velocity!=Vector3()):
- move(floor_velocity*delta)
+ attempts -= 1
+
+ if (on_floor and floor_velocity != Vector3()):
+ move(floor_velocity*delta)
if (on_floor and Input.is_action_pressed("jump")):
- vel.y=JUMP_SPEED
-
+ vel.y = JUMP_SPEED
+
var crid = get_node("../elevator1").get_rid()
-# print(crid," : ",PS.body_get_state(crid,PS.BODY_STATE_TRANSFORM))
+
func _ready():
- # Initalization here
set_fixed_process(true)
- pass
-func _on_tcube_body_enter( body ):
+func _on_tcube_body_enter(body):
get_node("../ty").show()
- pass # replace with function body
diff --git a/demos/3d/kinematic_char/follow_camera.gd b/demos/3d/kinematic_char/follow_camera.gd
index cf7172d7bb..37a1402053 100644
--- a/demos/3d/kinematic_char/follow_camera.gd
+++ b/demos/3d/kinematic_char/follow_camera.gd
@@ -1,69 +1,57 @@
extends Camera
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
-var collision_exception=[]
-export var min_distance=0.5
-export var max_distance=4.0
-export var angle_v_adjust=0.0
-export var autoturn_ray_aperture=25
-export var autoturn_speed=50
+# Member variables
+var collision_exception = []
+export var min_distance = 0.5
+export var max_distance = 4.0
+export var angle_v_adjust = 0.0
+export var autoturn_ray_aperture = 25
+export var autoturn_speed = 50
var max_height = 2.0
var min_height = 0
+
func _fixed_process(dt):
- var target = get_parent().get_global_transform().origin
+ var target = get_parent().get_global_transform().origin
var pos = get_global_transform().origin
- var up = Vector3(0,1,0)
+ var up = Vector3(0, 1, 0)
var delta = pos - target
- #regular delta follow
+ # Regular delta follow
- #check ranges
-
+ # Check ranges
if (delta.length() < min_distance):
- delta = delta.normalized() * min_distance
+ delta = delta.normalized()*min_distance
elif (delta.length() > max_distance):
- delta = delta.normalized() * max_distance
+ delta = delta.normalized()*max_distance
- #check upper and lower height
- if ( delta.y > max_height):
+ # Check upper and lower height
+ if (delta.y > max_height):
delta.y = max_height
- if ( delta.y < min_height):
+ if (delta.y < min_height):
delta.y = min_height
-
+
pos = target + delta
- look_at_from_pos(pos,target,up)
+ look_at_from_pos(pos, target, up)
- #turn a little up or down
+ # Turn a little up or down
var t = get_transform()
- t.basis = Matrix3(t.basis[0],deg2rad(angle_v_adjust)) * t.basis
+ t.basis = Matrix3(t.basis[0], deg2rad(angle_v_adjust))*t.basis
set_transform(t)
-
-
-func _ready():
-#find collision exceptions for ray
+func _ready():
+ # Find collision exceptions for ray
var node = self
while(node):
if (node extends RigidBody):
collision_exception.append(node.get_rid())
break
else:
- node=node.get_parent()
- # Initalization here
+ node = node.get_parent()
set_fixed_process(true)
- #this detaches the camera transform from the parent spatial node
+ # This detaches the camera transform from the parent spatial node
set_as_toplevel(true)
-
-
-
-
-
-
diff --git a/demos/3d/kinematic_char/level.scn b/demos/3d/kinematic_char/level.scn
index 8be64c61c0..0082f55f43 100644
--- a/demos/3d/kinematic_char/level.scn
+++ b/demos/3d/kinematic_char/level.scn
Binary files differ
diff --git a/demos/3d/kinematic_char/purplecube.scn b/demos/3d/kinematic_char/purplecube.scn
index ab758366fd..e3ed1bf84b 100644
--- a/demos/3d/kinematic_char/purplecube.scn
+++ b/demos/3d/kinematic_char/purplecube.scn
Binary files differ
diff --git a/demos/3d/mousepick_test/mousepick.gd b/demos/3d/mousepick_test/mousepick.gd
index c96091b650..674ec7ff6f 100644
--- a/demos/3d/mousepick_test/mousepick.gd
+++ b/demos/3d/mousepick_test/mousepick.gd
@@ -1,15 +1,12 @@
extends RigidBody
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
+# Member variables
var gray_mat = FixedMaterial.new()
+var selected = false
-var selected=false
-func _input_event(camera,event,pos,normal,shape):
+func _input_event(camera, event, pos, normal, shape):
if (event.type==InputEvent.MOUSE_BUTTON and event.pressed):
if (not selected):
get_node("mesh").set_material_override(gray_mat)
@@ -17,16 +14,11 @@ func _input_event(camera,event,pos,normal,shape):
get_node("mesh").set_material_override(null)
selected = not selected
-
-func _mouse_enter():
- get_node("mesh").set_scale( Vector3(1.1,1.1,1.1) )
-func _mouse_exit():
- get_node("mesh").set_scale( Vector3(1,1,1) )
-
-func _ready():
- # Initalization here
- pass
+func _mouse_enter():
+ get_node("mesh").set_scale(Vector3(1.1, 1.1, 1.1))
+func _mouse_exit():
+ get_node("mesh").set_scale(Vector3(1, 1, 1))
diff --git a/demos/3d/mousepick_test/mousepick.scn b/demos/3d/mousepick_test/mousepick.scn
index 7ecac46a86..0b6c33c119 100644
--- a/demos/3d/mousepick_test/mousepick.scn
+++ b/demos/3d/mousepick_test/mousepick.scn
Binary files differ
diff --git a/demos/3d/navmesh/navmesh.gd b/demos/3d/navmesh/navmesh.gd
index b5dc488ec3..30b8cfb32a 100644
--- a/demos/3d/navmesh/navmesh.gd
+++ b/demos/3d/navmesh/navmesh.gd
@@ -1,61 +1,54 @@
extends Navigation
-# member variables here, example:
-# var a=2
-# var b="textvar"
+# Member variables
+const SPEED = 4.0
-const SPEED=4.0
+var camrot = 0.0
-var camrot=0.0
-
-var begin=Vector3()
-var end=Vector3()
+var begin = Vector3()
+var end = Vector3()
var m = FixedMaterial.new()
-var path=[]
-
-func _process(delta):
+var path = []
+var draw_path = false
- if (path.size()>1):
-
+func _process(delta):
+ if (path.size() > 1):
var to_walk = delta*SPEED
- var to_watch = Vector3(0,1,0)
- while(to_walk>0 and path.size()>=2):
- var pfrom = path[path.size()-1]
- var pto = path[path.size()-2]
+ var to_watch = Vector3(0, 1, 0)
+ while(to_walk > 0 and path.size() >= 2):
+ var pfrom = path[path.size() - 1]
+ var pto = path[path.size() - 2]
to_watch = (pto - pfrom).normalized()
var d = pfrom.distance_to(pto)
- if (d<=to_walk):
- path.remove(path.size()-1)
- to_walk-=d
+ 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]
+ path[path.size() - 1] = pfrom.linear_interpolate(pto, to_walk/d)
+ to_walk = 0
+
+ var atpos = path[path.size() - 1]
var atdir = to_watch
- atdir.y=0
+ atdir.y = 0
var t = Transform()
- t.origin=atpos
- t=t.looking_at(atpos+atdir,Vector3(0,1,0))
+ t.origin = atpos
+ t=t.looking_at(atpos + atdir, Vector3(0, 1, 0))
get_node("robot_base").set_transform(t)
- if (path.size()<2):
- path=[]
+ if (path.size() < 2):
+ path = []
set_process(false)
-
else:
set_process(false)
-var draw_path=false
func _update_path():
-
- var p = get_simple_path(begin,end,true)
- path=Array(p) # Vector3array to complex to use, convert to regular array
+ var p = get_simple_path(begin, end, true)
+ path = Array(p) # Vector3array too complex to use, convert to regular array
path.invert()
set_process(true)
@@ -63,48 +56,40 @@ func _update_path():
var im = get_node("draw")
im.set_material_override(m)
im.clear()
- im.begin(Mesh.PRIMITIVE_POINTS,null)
+ im.begin(Mesh.PRIMITIVE_POINTS, null)
im.add_vertex(begin)
im.add_vertex(end)
im.end()
- im.begin(Mesh.PRIMITIVE_LINE_STRIP,null)
+ im.begin(Mesh.PRIMITIVE_LINE_STRIP, null)
for x in p:
im.add_vertex(x)
im.end()
-func _input(ev):
- if (ev.type==InputEvent.MOUSE_BUTTON and ev.button_index==BUTTON_LEFT and ev.pressed):
-
- var from = get_node("cambase/Camera").project_ray_origin(ev.pos)
- var to = from+get_node("cambase/Camera").project_ray_normal(ev.pos)*100
- var p = get_closest_point_to_segment(from,to)
-
- begin=get_closest_point(get_node("robot_base").get_translation())
- end=p
+func _input(event):
+ if (event.type == InputEvent.MOUSE_BUTTON and event.button_index == BUTTON_LEFT and event.pressed):
+ var from = get_node("cambase/Camera").project_ray_origin(event.pos)
+ var to = from + get_node("cambase/Camera").project_ray_normal(event.pos)*100
+ var p = get_closest_point_to_segment(from, to)
+
+ begin = get_closest_point(get_node("robot_base").get_translation())
+ end = p
_update_path()
-
- if (ev.type==InputEvent.MOUSE_MOTION):
- if (ev.button_mask&BUTTON_MASK_MIDDLE):
-
- camrot+=ev.relative_x*0.005
- get_node("cambase").set_rotation(Vector3(0,camrot,0))
+
+ if (event.type == InputEvent.MOUSE_MOTION):
+ if (event.button_mask&BUTTON_MASK_MIDDLE):
+ camrot += event.relative_x*0.005
+ get_node("cambase").set_rotation(Vector3(0, camrot, 0))
print("camrot ", camrot)
-
func _ready():
- # Initalization here
set_process_input(true)
m.set_line_width(3)
m.set_point_size(3)
- m.set_fixed_flag(FixedMaterial.FLAG_USE_POINT_SIZE,true)
- m.set_flag(Material.FLAG_UNSHADED,true)
+ m.set_fixed_flag(FixedMaterial.FLAG_USE_POINT_SIZE, true)
+ m.set_flag(Material.FLAG_UNSHADED, true)
#begin = get_closest_point(get_node("start").get_translation())
#end = get_closest_point(get_node("end").get_translation())
#call_deferred("_update_path")
-
- pass
-
-
diff --git a/demos/3d/navmesh/navmesh.scn b/demos/3d/navmesh/navmesh.scn
index 1202985dec..33183781ad 100644
--- a/demos/3d/navmesh/navmesh.scn
+++ b/demos/3d/navmesh/navmesh.scn
Binary files differ
diff --git a/demos/3d/platformer/bullet.gd b/demos/3d/platformer/bullet.gd
index 842e6874e9..29219403bd 100644
--- a/demos/3d/platformer/bullet.gd
+++ b/demos/3d/platformer/bullet.gd
@@ -1,14 +1,5 @@
extends RigidBody
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
-var disabled=false
-
-func _ready():
- # Initalization here
- pass
-
-
+# Member variables
+var disabled = false
diff --git a/demos/3d/platformer/bullet.scn b/demos/3d/platformer/bullet.scn
index da90dba1a5..54ceb50488 100644
--- a/demos/3d/platformer/bullet.scn
+++ b/demos/3d/platformer/bullet.scn
Binary files differ
diff --git a/demos/3d/platformer/coin.gd b/demos/3d/platformer/coin.gd
index 8bf1a3460d..bd2eea81e2 100644
--- a/demos/3d/platformer/coin.gd
+++ b/demos/3d/platformer/coin.gd
@@ -1,23 +1,11 @@
extends Area
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
-
+# Member variables
var taken = false
-func _on_coin_body_enter( body ):
+func _on_coin_body_enter(body):
if (not taken and body extends preload("res://player.gd")):
get_node("anim").play("take")
- taken=true
-
-
-func _ready():
- # Initalization here
- pass
-
-
-
+ taken = true
diff --git a/demos/3d/platformer/coin.scn b/demos/3d/platformer/coin.scn
index a4148b4060..238150788b 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 9b2e95a96d..55c79e4858 100644
--- a/demos/3d/platformer/enemy.gd
+++ b/demos/3d/platformer/enemy.gd
@@ -1,14 +1,10 @@
extends RigidBody
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
+# Member variables
const STATE_WALKING = 0
const STATE_DYING = 1
-
var prev_advance = false
var deaccel = 20.0
var accel = 5
@@ -16,80 +12,67 @@ var max_speed = 2
var rot_dir = 4
var rot_speed = 1
-var dying=false
-
-func _integrate_forces(state):
+var dying = false
-
+func _integrate_forces(state):
var delta = state.get_step()
var lv = state.get_linear_velocity()
var g = state.get_total_gravity()
- lv += g * delta #apply gravity
+ lv += g*delta # Apply gravity
var up = -g.normalized()
-
+
if (dying):
state.set_linear_velocity(lv)
return
-
+
for i in range(state.get_contact_count()):
var cc = state.get_contact_collider_object(i)
var dp = state.get_contact_local_normal(i)
-
+
if (cc):
if (cc extends preload("res://bullet.gd") and not cc.disabled):
set_mode(MODE_RIGID)
- dying=true
- #lv=s.get_contact_local_normal(i)*400
- state.set_angular_velocity( -dp.cross(up).normalized() *33.0)
+ dying = true
+ #lv = s.get_contact_local_normal(i)*400
+ state.set_angular_velocity(-dp.cross(up).normalized()*33.0)
get_node("AnimationPlayer").play("impact")
get_node("AnimationPlayer").queue("explode")
set_friction(1)
- cc.disabled=true
+ cc.disabled = true
get_node("sound").play("hit")
return
-
-
-
-
var col_floor = get_node("Armature/ray_floor").is_colliding()
var col_wall = get_node("Armature/ray_wall").is_colliding()
var advance = not col_wall and col_floor
var dir = get_node("Armature").get_transform().basis[2].normalized()
-
-
var deaccel_dir = dir
if (advance):
if (dir.dot(lv) < max_speed):
- lv+=dir * accel * delta
+ lv += dir*accel*delta
deaccel_dir = dir.cross(g).normalized()
else:
if (prev_advance):
- rot_dir = 1 #randf() * 2.0 -1.0
-
- dir = Matrix3(up,rot_dir * rot_speed * delta).xform(dir)
- get_node("Armature").set_transform( Transform().looking_at(-dir,up) )
-
+ rot_dir = 1 # randf()*2.0 - 1.0
+ dir = Matrix3(up, rot_dir*rot_speed*delta).xform(dir)
+ get_node("Armature").set_transform(Transform().looking_at(-dir, up))
+
var dspeed = deaccel_dir.dot(lv)
- dspeed -= deaccel * delta
- if (dspeed<0):
- dspeed=0
+ dspeed -= deaccel*delta
+ if (dspeed < 0):
+ dspeed = 0
lv = lv - deaccel_dir*deaccel_dir.dot(lv) + deaccel_dir*dspeed
-
state.set_linear_velocity(lv)
- prev_advance=advance
+ prev_advance = advance
-func _ready():
- # Initalization here
- pass
func _die():
queue_free()
diff --git a/demos/3d/platformer/enemy.scn b/demos/3d/platformer/enemy.scn
index 083582a85a..dd62692b7f 100644
--- a/demos/3d/platformer/enemy.scn
+++ b/demos/3d/platformer/enemy.scn
Binary files differ
diff --git a/demos/3d/platformer/engine.cfg b/demos/3d/platformer/engine.cfg
index 793ac36364..84cac52c97 100644
--- a/demos/3d/platformer/engine.cfg
+++ b/demos/3d/platformer/engine.cfg
@@ -1,7 +1,7 @@
[application]
name="Platformer 3D"
-main_scene="res://stage.xml"
+main_scene="res://stage.scn"
icon="res://icon.png"
[display]
diff --git a/demos/3d/platformer/follow_camera.gd b/demos/3d/platformer/follow_camera.gd
index 3d18327df0..d0d531b9a5 100644
--- a/demos/3d/platformer/follow_camera.gd
+++ b/demos/3d/platformer/follow_camera.gd
@@ -1,95 +1,80 @@
extends Camera
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
-var collision_exception=[]
-export var min_distance=0.5
-export var max_distance=4.0
-export var angle_v_adjust=0.0
-export var autoturn_ray_aperture=25
-export var autoturn_speed=50
+# Member variables
+var collision_exception = []
+export var min_distance = 0.5
+export var max_distance = 4.0
+export var angle_v_adjust = 0.0
+export var autoturn_ray_aperture = 25
+export var autoturn_speed = 50
var max_height = 2.0
var min_height = 0
func _fixed_process(dt):
- var target = get_parent().get_global_transform().origin
+ var target = get_parent().get_global_transform().origin
var pos = get_global_transform().origin
- var up = Vector3(0,1,0)
+ var up = Vector3(0, 1, 0)
var delta = pos - target
- #regular delta follow
-
- #check ranges
+ # Regular delta follow
+ # Check ranges
if (delta.length() < min_distance):
- delta = delta.normalized() * min_distance
+ delta = delta.normalized()*min_distance
elif (delta.length() > max_distance):
- delta = delta.normalized() * max_distance
+ delta = delta.normalized()*max_distance
- #check upper and lower height
- if ( delta.y > max_height):
+ # Check upper and lower height
+ if (delta.y > max_height):
delta.y = max_height
- if ( delta.y < min_height):
+ if (delta.y < min_height):
delta.y = min_height
- #check autoturn
-
- var ds = PhysicsServer.space_get_direct_state( get_world().get_space() )
-
+ # Check autoturn
+ var ds = PhysicsServer.space_get_direct_state(get_world().get_space())
- var col_left = ds.intersect_ray(target,target+Matrix3(up,deg2rad(autoturn_ray_aperture)).xform(delta),collision_exception)
- var col = ds.intersect_ray(target,target+delta,collision_exception)
- var col_right = ds.intersect_ray(target,target+Matrix3(up,deg2rad(-autoturn_ray_aperture)).xform(delta),collision_exception)
+ var col_left = ds.intersect_ray(target, target + Matrix3(up, deg2rad(autoturn_ray_aperture)).xform(delta), collision_exception)
+ var col = ds.intersect_ray(target, target + delta, collision_exception)
+ var col_right = ds.intersect_ray(target, target + Matrix3(up, deg2rad(-autoturn_ray_aperture)).xform(delta), collision_exception)
if (!col.empty()):
- #if main ray was occluded, get camera closer, this is the worst case scenario
+ # If main ray was occluded, get camera closer, this is the worst case scenario
delta = col.position - target
elif (!col_left.empty() and col_right.empty()):
- #if only left ray is occluded, turn the camera around to the right
- delta = Matrix3(up,deg2rad(-dt*autoturn_speed)).xform(delta)
+ # If only left ray is occluded, turn the camera around to the right
+ delta = Matrix3(up, deg2rad(-dt*autoturn_speed)).xform(delta)
elif (col_left.empty() and !col_right.empty()):
- #if only right ray is occluded, turn the camera around to the left
- delta = Matrix3(up,deg2rad(dt*autoturn_speed)).xform(delta)
+ # If only right ray is occluded, turn the camera around to the left
+ delta = Matrix3(up, deg2rad(dt*autoturn_speed)).xform(delta)
else:
- #do nothing otherwise, left and right are occluded but center is not, so do not autoturn
+ # Do nothing otherwise, left and right are occluded but center is not, so do not autoturn
pass
- #apply lookat
- if (delta==Vector3()):
- delta = (pos - target).normalized() * 0.0001
+ # Apply lookat
+ if (delta == Vector3()):
+ delta = (pos - target).normalized()*0.0001
pos = target + delta
- look_at_from_pos(pos,target,up)
+ look_at_from_pos(pos, target, up)
- #turn a little up or down
+ # Turn a little up or down
var t = get_transform()
- t.basis = Matrix3(t.basis[0],deg2rad(angle_v_adjust)) * t.basis
+ t.basis = Matrix3(t.basis[0], deg2rad(angle_v_adjust))*t.basis
set_transform(t)
-
-
-func _ready():
-#find collision exceptions for ray
+func _ready():
+ # Find collision exceptions for ray
var node = self
while(node):
if (node extends RigidBody):
collision_exception.append(node.get_rid())
break
else:
- node=node.get_parent()
- # Initalization here
+ node = node.get_parent()
set_fixed_process(true)
- #this detaches the camera transform from the parent spatial node
+ # This detaches the camera transform from the parent spatial node
set_as_toplevel(true)
-
-
-
-
-
-
diff --git a/demos/3d/platformer/player.gd b/demos/3d/platformer/player.gd
index 76cf2861bf..7471460538 100644
--- a/demos/3d/platformer/player.gd
+++ b/demos/3d/platformer/player.gd
@@ -1,12 +1,7 @@
extends RigidBody
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
-#var dir=Vector3()
-
+# Member variables
const ANIM_FLOOR = 0
const ANIM_AIR_UP = 1
const ANIM_AIR_DOWN = 2
@@ -14,21 +9,21 @@ const ANIM_AIR_DOWN = 2
const SHOOT_TIME = 1.5
const SHOOT_SCALE = 2
-const CHAR_SCALE = Vector3(0.3,0.3,0.3)
+const CHAR_SCALE = Vector3(0.3, 0.3, 0.3)
var facing_dir = Vector3(1, 0, 0)
var movement_dir = Vector3()
-var jumping=false
+var jumping = false
-var turn_speed=40
+var turn_speed = 40
var keep_jump_inertia = true
var air_idle_deaccel = false
-var accel=19.0
-var deaccel=14.0
-var sharp_turn_threshhold = 140
+var accel = 19.0
+var deaccel = 14.0
+var sharp_turn_threshold = 140
-var max_speed=3.1
+var max_speed = 3.1
var on_floor = false
var prev_shoot = false
@@ -37,9 +32,9 @@ var last_floor_velocity = Vector3()
var shoot_blend = 0
-func adjust_facing(p_facing, p_target,p_step, p_adjust_rate,current_gn):
- var n = p_target # normal
+func adjust_facing(p_facing, p_target, p_step, p_adjust_rate, current_gn):
+ var n = p_target # Normal
var t = n.cross(current_gn).normalized()
var x = n.dot(p_facing)
@@ -47,47 +42,43 @@ func adjust_facing(p_facing, p_target,p_step, p_adjust_rate,current_gn):
var ang = atan2(y,x)
- if (abs(ang)<0.001): # too small
+ if (abs(ang) < 0.001): # Too small
return p_facing
var s = sign(ang)
- ang = ang * s
- var turn = ang * p_adjust_rate * p_step
+ ang = ang*s
+ var turn = ang*p_adjust_rate*p_step
var a
- if (ang<turn):
- a=ang
+ if (ang < turn):
+ a = ang
else:
- a=turn
- ang = (ang - a) * s
+ a = turn
+ ang = (ang - a)*s
- return ((n * cos(ang)) + (t * sin(ang))) * p_facing.length()
-
-
+ return (n*cos(ang) + t*sin(ang))*p_facing.length()
-func _integrate_forces( state ):
- var lv = state.get_linear_velocity() # linear velocity
+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
- lv += g * delta #apply gravity
-
+# if (d < 0):
+# d = 0
+ lv += g*delta # Apply gravity
+
var anim = ANIM_FLOOR
-
+
var up = -g.normalized() # (up is against gravity)
- var vv = up.dot(lv) # vertical velocity
- var hv = lv - (up*vv) # horizontal velocity
-
-
-
- var hdir = hv.normalized() # horizontal direction
- var hspeed = hv.length() #horizontal speed
-
+ var vv = up.dot(lv) # Vertical velocity
+ var hv = lv - up*vv # Horizontal velocity
+
+ var hdir = hv.normalized() # Horizontal direction
+ var hspeed = hv.length() # Horizontal speed
+
var floor_velocity
var onfloor = false
-
+
if (state.get_contact_count() == 0):
floor_velocity = last_floor_velocity
else:
@@ -98,104 +89,89 @@ func _integrate_forces( state ):
onfloor = true
floor_velocity = state.get_contact_collider_velocity_at_pos(i)
break
-
-
- var dir = Vector3() #where does the player intend to walk to
+
+ var dir = Vector3() # Where does the player intend to walk to
var cam_xform = get_node("target/camera").get_global_transform()
if (Input.is_action_pressed("move_forward")):
- dir+=-cam_xform.basis[2]
+ dir += -cam_xform.basis[2]
if (Input.is_action_pressed("move_backwards")):
- dir+=cam_xform.basis[2]
+ dir += cam_xform.basis[2]
if (Input.is_action_pressed("move_left")):
- dir+=-cam_xform.basis[0]
+ dir += -cam_xform.basis[0]
if (Input.is_action_pressed("move_right")):
- dir+=cam_xform.basis[0]
-
+ dir += cam_xform.basis[0]
+
var jump_attempt = Input.is_action_pressed("jump")
var shoot_attempt = Input.is_action_pressed("shoot")
-
+
var target_dir = (dir - up*dir.dot(up)).normalized()
if (onfloor):
-
- var sharp_turn = hspeed > 0.1 and rad2deg(acos(target_dir.dot(hdir))) > sharp_turn_threshhold
-
- if (dir.length()>0.1 and !sharp_turn) :
- if (hspeed > 0.001) :
-
+ var sharp_turn = hspeed > 0.1 and rad2deg(acos(target_dir.dot(hdir))) > sharp_turn_threshold
+
+ if (dir.length() > 0.1 and !sharp_turn):
+ if (hspeed > 0.001):
#linear_dir = linear_h_velocity/linear_vel
- #if (linear_vel > brake_velocity_limit and linear_dir.dot(ctarget_dir)<-cos(Math::deg2rad(brake_angular_limit)))
- # brake=true
+ #if (linear_vel > brake_velocity_limit and linear_dir.dot(ctarget_dir) < -cos(Math::deg2rad(brake_angular_limit)))
+ # brake = true
#else
- hdir = adjust_facing(hdir,target_dir,delta,1.0/hspeed*turn_speed,up)
+ hdir = adjust_facing(hdir, target_dir, delta, 1.0/hspeed*turn_speed, up)
facing_dir = hdir
else:
-
hdir = target_dir
- if (hspeed<max_speed):
- hspeed+=accel*delta
-
+ if (hspeed < max_speed):
+ hspeed += accel*delta
else:
- hspeed-=deaccel*delta
- if (hspeed<0):
- hspeed=0
+ hspeed -= deaccel*delta
+ if (hspeed < 0):
+ hspeed = 0
hv = hdir*hspeed
- var mesh_xform = get_node("Armature").get_transform()
- var facing_mesh=-mesh_xform.basis[0].normalized()
+ var mesh_xform = get_node("Armature").get_transform()
+ var facing_mesh = -mesh_xform.basis[0].normalized()
facing_mesh = (facing_mesh - up*facing_mesh.dot(up)).normalized()
- facing_mesh = adjust_facing(facing_mesh,target_dir,delta,1.0/hspeed*turn_speed,up)
- var m3 = Matrix3(-facing_mesh,up,-facing_mesh.cross(up).normalized()).scaled( CHAR_SCALE )
+ facing_mesh = adjust_facing(facing_mesh, target_dir, delta, 1.0/hspeed*turn_speed, up)
+ var m3 = Matrix3(-facing_mesh, up, -facing_mesh.cross(up).normalized()).scaled(CHAR_SCALE)
+
+ get_node("Armature").set_transform(Transform(m3, mesh_xform.origin))
- get_node("Armature").set_transform(Transform(m3,mesh_xform.origin))
-
if (not jumping and jump_attempt):
vv = 7.0
- jumping = true
+ jumping = true
get_node("sfx").play("jump")
else:
-
- if (vv>0):
- anim=ANIM_AIR_UP
+ if (vv > 0):
+ anim = ANIM_AIR_UP
else:
- anim=ANIM_AIR_DOWN
-
+ anim = ANIM_AIR_DOWN
+
var hs
- if (dir.length()>0.1):
-
- hv += target_dir * (accel * 0.2) * delta
+ if (dir.length() > 0.1):
+ hv += target_dir*(accel*0.2)*delta
if (hv.length() > max_speed):
- hv = hv.normalized() * max_speed
-
+ hv = hv.normalized()*max_speed
else:
-
if (air_idle_deaccel):
- hspeed = hspeed - (deaccel * 0.2) * delta
- if (hspeed<0):
- hspeed=0
-
+ hspeed = hspeed - (deaccel*0.2)*delta
+ if (hspeed < 0):
+ hspeed = 0
+
hv = hdir*hspeed
-
-
+
if (jumping and vv < 0):
- jumping=false
-
- lv = hv+up*vv
+ jumping = false
+ lv = hv + up*vv
-
if (onfloor):
-
movement_dir = lv
#lv += floor_velocity
last_floor_velocity = floor_velocity
else:
-
- if (on_floor) :
-
+ if (on_floor):
#if (keep_jump_inertia):
# lv += last_floor_velocity
pass
@@ -204,40 +180,32 @@ func _integrate_forces( state ):
movement_dir = lv
on_floor = onfloor
-
+
state.set_linear_velocity(lv)
- if (shoot_blend>0):
- shoot_blend -= delta * SHOOT_SCALE
- if (shoot_blend<0):
- shoot_blend=0
+ if (shoot_blend > 0):
+ shoot_blend -= delta*SHOOT_SCALE
+ if (shoot_blend < 0):
+ shoot_blend = 0
if (shoot_attempt and not prev_shoot):
- shoot_blend = SHOOT_TIME
+ shoot_blend = SHOOT_TIME
var bullet = preload("res://bullet.scn").instance()
- bullet.set_transform( get_node("Armature/bullet").get_global_transform().orthonormalized() )
- get_parent().add_child( bullet )
- bullet.set_linear_velocity( get_node("Armature/bullet").get_global_transform().basis[2].normalized() * 20 )
- PS.body_add_collision_exception( bullet.get_rid(), get_rid() ) #add it to bullet
+ bullet.set_transform(get_node("Armature/bullet").get_global_transform().orthonormalized())
+ get_parent().add_child(bullet)
+ bullet.set_linear_velocity(get_node("Armature/bullet").get_global_transform().basis[2].normalized()*20)
+ PS.body_add_collision_exception(bullet.get_rid(), get_rid()) # Add it to bullet
get_node("sfx").play("shoot")
-
+
prev_shoot = shoot_attempt
if (onfloor):
- get_node("AnimationTreePlayer").blend2_node_set_amount("walk",hspeed / max_speed)
-
- get_node("AnimationTreePlayer").transition_node_set_current("state",anim)
- get_node("AnimationTreePlayer").blend2_node_set_amount("gun",min(shoot_blend,1.0))
-# state.set_angular_velocity(Vector3())
-
+ get_node("AnimationTreePlayer").blend2_node_set_amount("walk", hspeed/max_speed)
+ get_node("AnimationTreePlayer").transition_node_set_current("state", anim)
+ get_node("AnimationTreePlayer").blend2_node_set_amount("gun", min(shoot_blend, 1.0))
+# state.set_angular_velocity(Vector3())
func _ready():
-
-
- # Initalization here
get_node("AnimationTreePlayer").set_active(true)
- pass
-
-
diff --git a/demos/3d/platformer/player.scn b/demos/3d/platformer/player.scn
new file mode 100644
index 0000000000..854a8397e4
--- /dev/null
+++ b/demos/3d/platformer/player.scn
Binary files differ
diff --git a/demos/3d/platformer/player.xml b/demos/3d/platformer/player.xml
deleted file mode 100644
index c008d21675..0000000000
--- a/demos/3d/platformer/player.xml
+++ /dev/null
@@ -1,1762 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="23" version="1.0" version_name="Godot Engine v1.0.3917-beta1">
- <ext_resource path="res://osb_left.png" type="Texture"></ext_resource>
- <ext_resource path="res://osb_up.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://follow_camera.gd" type="Script"></ext_resource>
- <ext_resource path="res://osb_down.png" type="Texture"></ext_resource>
- <ext_resource path="res://osb_right.png" type="Texture"></ext_resource>
- <ext_resource path="res://sound_shoot.wav" type="Sample"></ext_resource>
- <resource type="CapsuleShape" path="local://1">
- <real name="radius"> 0.4 </real>
- <real name="height"> 0.4 </real>
-
- </resource>
- <resource type="RayShape" path="local://2">
- <real name="length"> 1 </real>
-
- </resource>
- <resource type="FixedMaterial" path="local://3">
- <bool name="flags/visible"> True </bool>
- <bool name="flags/double_sided"> True </bool>
- <bool name="flags/invert_faces"> False </bool>
- <bool name="flags/unshaded"> False </bool>
- <bool name="flags/on_top"> False </bool>
- <bool name="flags/wireframe"> False </bool>
- <bool name="flags/billboard_sw"> False </bool>
- <bool name="hints/decal"> False </bool>
- <bool name="hints/opaque_pre_zpass"> False </bool>
- <bool name="hints/no_shadow"> False </bool>
- <bool name="hints/no_depth_draw"> False </bool>
- <int name="params/blend_mode"> 0 </int>
- <real name="params/line_width"> 0 </real>
- <bool name="fixed_flags/use_alpha"> False </bool>
- <bool name="fixed_flags/use_color_array"> False </bool>
- <bool name="fixed_flags/use_point_size"> False </bool>
- <color name="params/diffuse"> 0.702475, 0.707942, 0.727015, 1 </color>
- <color name="params/specular"> 0.351321, 0.35466, 0.377071, 1 </color>
- <color name="params/emission"> 0, 0, 0, 1 </color>
- <real name="params/specular_exp"> 34.20256 </real>
- <int name="params/detail_blend"> 0 </int>
- <real name="params/detail_mix"> 1 </real>
- <int name="params/normal_depth"> 1 </int>
- <real name="params/shade_param"> 0.5 </real>
- <int name="params/glow"> 0 </int>
- <real name="params/point_size"> 1 </real>
- <transform name="uv_xform"> 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 </transform>
- <resource name="textures/diffuse"></resource> <int name="textures/diffuse_tc"> 0 </int>
- <resource name="textures/detail"></resource> <int name="textures/detail_tc"> 0 </int>
- <resource name="textures/specular"></resource> <int name="textures/specular_tc"> 0 </int>
- <resource name="textures/emission"></resource> <int name="textures/emission_tc"> 0 </int>
- <resource name="textures/specular_exp"></resource> <int name="textures/specular_exp_tc"> 0 </int>
- <resource name="textures/glow"></resource> <int name="textures/glow_tc"> 0 </int>
- <resource name="textures/normal"></resource> <int name="textures/normal_tc"> 0 </int>
- <resource name="textures/shade_param"></resource> <int name="textures/shade_param_tc"> 0 </int>
-
- </resource>
- <resource type="FixedMaterial" path="local://4">
- <bool name="flags/visible"> True </bool>
- <bool name="flags/double_sided"> True </bool>
- <bool name="flags/invert_faces"> False </bool>
- <bool name="flags/unshaded"> False </bool>
- <bool name="flags/on_top"> False </bool>
- <bool name="flags/wireframe"> False </bool>
- <bool name="flags/billboard_sw"> False </bool>
- <bool name="hints/decal"> False </bool>
- <bool name="hints/opaque_pre_zpass"> False </bool>
- <bool name="hints/no_shadow"> False </bool>
- <bool name="hints/no_depth_draw"> False </bool>
- <int name="params/blend_mode"> 0 </int>
- <real name="params/line_width"> 0 </real>
- <bool name="fixed_flags/use_alpha"> False </bool>
- <bool name="fixed_flags/use_color_array"> False </bool>
- <bool name="fixed_flags/use_point_size"> False </bool>
- <color name="params/diffuse"> 0.0616188, 0.431354, 0.64, 1 </color>
- <color name="params/specular"> 0.5, 0.5, 0.5, 1 </color>
- <color name="params/emission"> 0.0196078, 0.235675, 0.675973, 1 </color>
- <real name="params/specular_exp"> 50 </real>
- <int name="params/detail_blend"> 0 </int>
- <real name="params/detail_mix"> 1 </real>
- <int name="params/normal_depth"> 1 </int>
- <real name="params/shade_param"> 0.5 </real>
- <real name="params/glow"> 0.4 </real>
- <real name="params/point_size"> 1 </real>
- <transform name="uv_xform"> 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 </transform>
- <resource name="textures/diffuse"></resource> <int name="textures/diffuse_tc"> 0 </int>
- <resource name="textures/detail"></resource> <int name="textures/detail_tc"> 0 </int>
- <resource name="textures/specular"></resource> <int name="textures/specular_tc"> 0 </int>
- <resource name="textures/emission"></resource> <int name="textures/emission_tc"> 0 </int>
- <resource name="textures/specular_exp"></resource> <int name="textures/specular_exp_tc"> 0 </int>
- <resource name="textures/glow"></resource> <int name="textures/glow_tc"> 0 </int>
- <resource name="textures/normal"></resource> <int name="textures/normal_tc"> 0 </int>
- <resource name="textures/shade_param"></resource> <int name="textures/shade_param_tc"> 0 </int>
-
- </resource>
- <resource type="Mesh" path="local://5">
- <string name="resource/name"> "Cube.002" </string>
- <dictionary name="surfaces/0" shared="false">
- <string> "alphasort" </string>
- <bool> False </bool>
- <string> "material" </string>
- <resource resource_type="Material" path="local://3"> </resource>
- <string> "morph_arrays" </string>
- <array len="0" shared="false">
- </array>
- <string> "primitive" </string>
- <int> 4 </int>
- <string> "arrays" </string>
- <array len="9" shared="false">
- <vector3_array len="679"> 0.2607, 6.45948, 0.980779, 0.852531, 6.83043, 0.609826, 0.852531, 6.93043, 0.609826, 0.2607, 6.55948, 0.980779, 0, 7.06621, 0.103096, 0.955654, 7.06621, 0.103096, 0.852531, 6.93043, -0.403642, 0, 6.93043, -0.403642, 0, 6.45948, -0.774594, 0, 6.55948, -0.774594, 0.2607, 6.55948, -0.774594, 0.2607, 6.45948, -0.774594, 0, 6.45948, 0.980779, 0, 6.55948, 0.980779, 0.852531, 6.83043, -0.403642, 0.955654, 6.96621, 0.103096, 0, 6.93043, 0.609826, 1.70474, 3.5573, -0.353999, 1.71449, 3.62366, -0.198996, 1.77916, 3.62988, -0.16353, 1.76754, 3.55083, -0.34818, 1.71511, 3.58298, -0.0127468, 1.70308, 3.74367, 0.0692484, 1.80667, 3.81951, -0.174607, 1.52592, 3.24162, -0.0839551, 1.50573, 3.18374, -0.268539, 1.36446, 3.09798, -0.344433, 1.38154, 3.17921, -0.0161709, 2.44682, 3.07552, 0.376618, 2.28993, 2.80163, 0.457827, 2.52299, 2.59433, 0.553631, 2.69474, 2.85281, 0.479075, 2.53359, 3.02984, -0.15501, 2.55604, 3.1449, 0.136694, 2.79433, 2.92572, 0.24463, 2.78064, 2.80757, -0.0472709, 2.39441, 2.7167, -0.284614, 2.64285, 2.49755, -0.175588, 2.70938, 2.79639, 0.46437, 2.79808, 2.86134, 0.255559, 2.78589, 2.75611, -0.00442547, 2.66316, 2.47998, -0.118712, 2.38561, 2.31013, 0.396952, 2.36919, 2.23204, 0.0813577, 2.41942, 2.2435, 0.110139, 2.43405, 2.31306, 0.391226, 2.55641, 2.56618, 0.530774, 2.47334, 2.30784, -0.0772789, 2.51219, 2.31101, -0.0311523, 2.38859, 2.74151, 0.0599679, 2.38864, 2.7416, 0.0600288, 2.12663, 2.44425, -0.0282163, 2.22321, 2.52508, -0.185319, 2.13459, 2.5274, 0.293671, 0.173831, 0.925795, -0.251959, 0.323615, 0.972996, -0.416293, 0.50934, 0.00104547, -0.453384, 0.175987, 0.00104547, -0.331706, 0.916812, 0.888823, 0.214332, 0.549239, 0.836962, 0.37006, 0.552121, 0.665123, 0.401021, 0.944465, 0.443271, 0.182901, 0.631626, 1.83578, -0.105239, 0.721202, 1.70631, 0.188726, 0.913722, 0.95431, -0.169976, 0.478232, 1.53675, 0.317272, 0.454208, 1.69171, -0.268756, 0.63543, 0.987243, -0.370343, 0.262225, 1.39447, 0.162709, 0.170564, 0.859014, 0.160279, 0.255551, 1.52426, -0.294896, 0.126803, 1.32882, -0.0395796, 0.0660405, 0.880691, -0.102965, 0.19102, 1.40531, -0.162224, 0.256767, 1.56023, -0.0958005, 0.300707, 1.62315, -0.168503, 0.292542, 1.58081, -0.213789, 0.245079, 1.4957, -0.123593, 0.426543, 1.69115, -0.196413, 0.547313, 1.79071, -0.0844079, 0.586182, 1.83924, -0.0975873, 0.434509, 1.71208, -0.231916, 0.212253, 1.44274, -0.0415312, 0.220281, 1.46968, -0.143048, 0.175617, 1.41154, -0.0437374, 0.543306, 0.573346, 0.523815, 0.207486, 0.384965, 0.351051, 0.269976, 0.320526, 0.743389, 0.53325, 0.468211, 0.783185, 0.792721, 0.321493, 0.73458, 0.514523, 0.271138, 0.956088, 0.631719, 0.163855, 0.92639, 0.386424, 0.163401, 0.930524, 0.486595, 0.00104547, 1.08874, 0.326299, 0.00104547, 0.904533, 0.668445, 1.73174, 0.152757, 0.462058, 1.58268, 0.259184, 0.290415, 1.46398, 0.121989, 1.57608, 3.45117, -0.0476083, 1.50191, 3.29774, -0.132197, 1.61428, 3.4244, 0.016813, 1.66072, 3.58429, -0.072422, 1.62434, 3.38222, -0.419987, 1.67177, 3.34226, -0.426789, 1.48496, 3.24915, -0.287145, 1.54119, 3.29007, -0.372791, 1.57272, 3.23249, -0.370566, 1.79243, 3.69662, -0.478226, 1.47279, 3.17682, -0.509438, 1.6491, 3.37415, -0.611694, 1.52444, 3.47482, 0.146797, 1.97806, 2.60303, -0.0912834, 1.98619, 2.68696, 0.233771, 2.07568, 2.68462, -0.249978, 2.24859, 2.87814, -0.35026, 2.14291, 2.96404, 0.3995, 2.30152, 3.24052, 0.317542, 2.38915, 3.19439, -0.219368, 2.41174, 3.31063, 0.0752657, 0.0964089, 0.00104547, -0.196812, 0.154027, 0.441809, 0.19622, 0.835003, 0.00104547, -0.205403, 0.55748, 1.72198, 0.0964474, 0.425773, 1.62639, 0.166544, 0.447702, 1.58483, 0.201877, 0.611101, 1.70343, 0.114914, 0.506064, 1.79234, -0.0642154, 0.311982, 1.54621, 0.0812291, 0.30653, 1.48536, 0.0960338, 0.408718, 1.71209, -0.154497, 0.23599, 1.51185, -0.0296548, 0.272186, 1.57784, -0.251696, 0.0508581, 0.00104547, 0.0402964, 0.14499, 0.00104547, 0.619324, 0.916171, 0.00104547, 0.0302318, 0.874277, 0.386199, 0.339815, 0.82337, 0.00104547, 0.611434, 0.644625, 0.00104547, 0.90083, 0.19633, 0.00104547, -0.176104, 0.736495, 0.00104547, -0.182387, 0.85902, 0.00104547, 0.0313234, 0.108829, 0.00104547, 0.040049, 1.86783, 5.49219, -0.536097, 1.99626, 5.62831, -0.300326, 1.99626, 5.45781, -0.129823, 1.86783, 5.22204, -0.265945, 1.86783, 6.50041, -0.265945, 1.99626, 6.26464, -0.129823, 1.99626, 6.09414, -0.300326, 1.86783, 6.23026, -0.536097, 1.99626, 5.86123, -0.362734, 1.86783, 5.86123, -0.63498, 1.7, 6.62333, -0.336911, 1.7, 6.30123, -0.659013, 1.7, 5.42123, -0.659013, 1.7, 5.09912, -0.336911, 1.7, 5.86123, -0.776911, 1.6, 6.62333, 0.543096, 1.6, 6.30123, 0.865198, 1.7, 6.30123, 0.865198, 1.7, 6.62333, 0.543096, 1.6, 5.86123, 0.983096, 1.7, 5.86123, 0.983096, 1.6, 5.42123, 0.865198, 1.7, 5.42123, 0.865198, 1.6, 5.42123, -0.659013, 1.6, 5.09912, -0.336911, 1.6, 5.09913, 0.543096, 1.7, 5.09913, 0.543096, 1.6, 5.86123, -0.776911, 1.6, 4.98123, 0.103096, 1.7, 4.98123, 0.103096, 1.6, 6.30123, -0.659013, 1.6, 6.62333, -0.336911, 1.6, 6.74123, 0.103096, 1.7, 6.74123, 0.103096, 1.86783, 5.86123, 0.841165, 1.86783, 6.23026, 0.742282, 1.86783, 5.49219, 0.742282, 1.86783, 5.22204, 0.47213, 1.86783, 5.12316, 0.103096, 1.86783, 6.50041, 0.47213, 1.86783, 6.5993, 0.103096, 1.99626, 5.3954, 0.103096, 1.99626, 5.45781, 0.336007, 1.99626, 5.62832, 0.50651, 1.99626, 5.86123, 0.568919, 1.99626, 6.09414, 0.50651, 1.99626, 6.26464, 0.336007, 1.99626, 6.32705, 0.103096, 0.102832, 2.48009, 0.176006, 5.00021e-06, 2.4738, 0.177211, 5.00021e-06, 2.42055, 0.19141, 0.0988953, 2.42787, 0.190009, 0.149215, 2.70638, -0.125392, 0.228589, 2.63923, -0.0490058, 0.245228, 2.61305, -0.0718189, 0.152867, 2.69118, -0.160703, 5.00021e-06, 2.7271, -0.192857, 0.200279, 2.72863, -0.178996, 5.00021e-06, 2.77269, -0.218433, 0.254515, 2.5228, 0.0532499, 0.177509, 2.46933, 0.131427, 0.230502, 2.45653, 0.179303, 0.32495, 2.52211, 0.0834183, 0.31356, 2.6328, -0.0699792, 5.00021e-06, 2.38434, 0.263172, 0.134082, 2.39331, 0.261453, 4.89224e-06, 2.18251, 0.500372, 0.225093, 2.1995, 0.49518, 0.391925, 2.2292, 0.34273, 0.272307, 2.12215, 0.166987, 0.273286, 2.15284, 0.145033, 0.377566, 2.23301, 0.230347, 0.509219, 2.60277, -0.0602789, 0.306467, 2.75371, -0.22827, 0.384471, 2.30721, 0.355435, 5.53206e-06, 2.7678, -0.324424, 0.340915, 2.69228, -0.257391, 0.141881, 2.21642, -0.246023, 5.00021e-06, 2.24749, -0.273838, 0.226149, 2.1204, 0.482878, 5.00021e-06, 2.10499, 0.484715, 5.00021e-06, 1.97359, 0.0658354, 0.0951926, 1.97992, 0.0646229, 0.536694, 2.41886, 0.193185, 0.163197, 2.02451, 0.00668271, 5.00021e-06, 2.80311, -0.262553, 0.221777, 2.14883, -0.169134, 5.0058e-06, 2.08031, -0.179583, 4.99835e-06, 2.12243, -0.227502, 5.00021e-06, 1.97109, -0.0331461, 4.99835e-06, 1.97504, -0.0339018, 0.229811, 2.07077, -0.0609438, 5.0058e-06, 2.03165, -0.112157, 4.99835e-06, 2.00283, -0.0700111, 5.00021e-06, 2.14179, -0.244837, 0.549486, 2.33903, 0.185763, 0.532141, 2.52821, -0.0726373, 0.367385, 2.32682, -0.123862, 0.198102, 4.44663, -0.00271145, 0.535945, 4.16951, 0.521097, 0.681184, 4.27477, 0.307467, 0.0960235, 4.4178, 0.0939296, 0, 4.41627, 0.145479, 0, 4.10504, 0.75232, 0.295152, 4.11437, 0.707528, 0, 4.62654, -0.650476, 0.75197, 4.49872, -0.484507, 0.568386, 3.97815, -0.416848, 0, 4.0743, -0.542347, 0.453404, 3.62952, 1.15385, 0, 3.62251, 1.22471, 0, 3.3304, 0.897974, 0.354866, 3.3434, 0.864531, 0.713601, 4.46674, -0.124363, 1.03995, 4.04518, 0.442157, 1.12602, 4.3213, -0.0494407, 0, 4.73174, -0.547059, 0.464921, 4.64317, -0.424668, 0.716219, 4.58287, -0.480226, 0, 4.71901, -0.593658, 0.850048, 3.71295, 0.879328, 0.649196, 3.42772, 0.674737, 0.84841, 3.80937, 0.873472, 0.451539, 3.72707, 1.15037, 0.155937, 3.05577, 0.331006, 0.258719, 3.09481, 0.245674, 0.822291, 3.77674, 0.0641416, 0.359401, 3.14451, 0.132252, 0.226502, 3.30884, -0.183514, 0, 3.34718, -0.233548, 0, 3.04671, 0.334585, 1.1403, 4.19005, 0.0860849, 1.11025, 4.20631, -0.0820755, 0, 3.71833, 1.2227, 1.07207, 4.04817, 0.195228, 0.177538, 3.25078, -0.147598, 0, 3.28068, -0.186631, 0.249187, 2.13753, -0.031997, 0.20137, 2.11848, 0.0341487, 0.497933, 2.32861, 0.160251, 0.252884, 2.22978, -0.1047, 0.438171, 2.39896, -0.000411894, 0.941862, 3.86072, 0.194563, 0.997836, 4.10049, -0.213272, 0.87372, 3.89175, -0.186777, 0.347259, 3.23006, -0.0503454, 0.821813, 3.80214, -0.0657451, 0.908494, 3.91354, 0.153681, 1.01577, 4.06798, 0.154229, 1.07199, 4.18489, 0.0643051, 1.04723, 4.19828, -0.0742428, 2.0359, 6.20719, -0.0966551, 2.0359, 6.06097, -0.242878, 2.0359, 5.66148, -0.242878, 2.0359, 5.51526, -0.0966551, 2.0359, 5.86123, -0.296399, 2.0359, 5.86123, 0.502584, 2.0359, 6.06097, 0.449063, 2.0359, 5.66148, 0.449063, 2.0359, 5.51526, 0.30284, 2.0359, 5.46174, 0.103096, 2.0359, 6.20719, 0.30284, 2.0359, 6.26072, 0.103096, 0, 5.86123, 1.1031, 0, 5.47658, 1.00003, 0.329213, 5.47658, 1.00003, 0, 5.20179, 0.809688, 0, 4.9952, 0.603096, 0.329213, 5.20344, 0.811334, 1.15486, 6.36123, 0.969121, 1.2072, 6.11123, 1.03611, 1.39648, 6.36123, 0.969121, 0, 5.86123, -0.896911, 1.39648, 5.86123, -0.896911, 1.39648, 5.36123, -0.762936, 0, 5.36123, -0.762936, 1.39648, 4.9952, -0.396911, 0, 4.9952, -0.396911, 0.329213, 5.36123, 0.969121, 0.257147, 5.40641, 0.875976, 0.257146, 5.2834, 0.752961, 0, 5.49634, 0.900073, 0.257147, 5.49634, 0.900073, 0, 5.28211, 0.751677, 0.685695, 5.86123, 1.1031, 0.633352, 6.11123, 1.03611, 1.39648, 5.36123, 0.969121, 1.39648, 5.86123, 1.1031, 1.15486, 5.86123, 1.1031, 1.39648, 4.9952, 0.603096, 0.23657, 2.56168, 0.0584772, 0.170392, 2.51572, 0.125662, 5.00021e-06, 2.73725, -0.153025, 0.350345, 2.31871, -0.0906937, 0, 4.66231, -0.410127, 0.153299, 4.61636, -0.336561, 0.252264, 4.53307, -0.191655, 0.271744, 3.18932, -0.0437093, 0.122488, 3.05335, 0.253795, 0.202672, 3.0838, 0.187225, 0.281216, 3.12258, 0.0987407, 0, 3.04628, 0.256587, 0.954611, 4.1111, -0.182336, 0.85235, 3.93911, -0.160509, 0.809584, 3.86528, -0.0607897, 0.809978, 3.84435, 0.0462258, 0, 4.97587, -0.315884, 1.39648, 4.86123, 0.103096, 0.18642, 4.95573, -0.248219, 0.269727, 4.92174, -0.116503, 0.212301, 4.88556, 0.0356146, 0, 4.86123, 0.103096, 0.942888, 6.86123, 0.103096, 1.39648, 6.86123, 0.103096, 1.39648, 6.72725, -0.396911, 0.841135, 6.72725, -0.396911, 1.39648, 6.36123, -0.762936, 0.257165, 6.36123, -0.762936, 0.841135, 6.72725, 0.603096, 1.39648, 6.72725, 0.603096, 0, 6.36123, -0.762936, 0.257165, 6.36123, 0.969121, 0.685695, 6.36123, 0.969121, 0, 6.36123, 0.969121, -0.2607, 6.45948, 0.980779, -0.2607, 6.55948, 0.980779, -0.852531, 6.93043, 0.609826, -0.852531, 6.83043, 0.609826, -0.852531, 6.93043, -0.403642, -0.955654, 7.06621, 0.103096, -0.2607, 6.45948, -0.774594, -0.2607, 6.55948, -0.774594, -0.852531, 6.83043, -0.403642, -0.955654, 6.96621, 0.103096, -1.70474, 3.5573, -0.353999, -1.76754, 3.55083, -0.34818, -1.77916, 3.62988, -0.16353, -1.71449, 3.62366, -0.198996, -1.80667, 3.81951, -0.174607, -1.70308, 3.74367, 0.0692484, -1.71511, 3.58298, -0.0127468, -1.52592, 3.24162, -0.0839551, -1.38154, 3.17921, -0.0161709, -1.36446, 3.09798, -0.344433, -1.50573, 3.18374, -0.268539, -2.44682, 3.07552, 0.376618, -2.69474, 2.85281, 0.479075, -2.52299, 2.59433, 0.553631, -2.28993, 2.80163, 0.457827, -2.53359, 3.02984, -0.15501, -2.78064, 2.80757, -0.0472709, -2.79433, 2.92572, 0.24463, -2.55604, 3.1449, 0.136694, -2.39441, 2.7167, -0.284614, -2.64285, 2.49755, -0.175588, -2.79808, 2.86134, 0.255559, -2.70938, 2.79639, 0.46437, -2.66316, 2.47998, -0.118712, -2.78589, 2.75611, -0.00442547, -2.38561, 2.31013, 0.396952, -2.43405, 2.31306, 0.391226, -2.41942, 2.2435, 0.110139, -2.36919, 2.23204, 0.0813577, -2.55641, 2.56618, 0.530774, -2.51219, 2.31101, -0.0311523, -2.47334, 2.30784, -0.0772789, -2.38859, 2.74151, 0.0599679, -2.38864, 2.7416, 0.0600288, -2.12663, 2.44425, -0.0282163, -2.22321, 2.52508, -0.185319, -2.13459, 2.5274, 0.293671, -0.173831, 0.925795, -0.251959, -0.175987, 0.00104547, -0.331706, -0.50934, 0.00104547, -0.453384, -0.323615, 0.972996, -0.416293, -0.916812, 0.888823, 0.214332, -0.944465, 0.443271, 0.182901, -0.552121, 0.665123, 0.401021, -0.549239, 0.836962, 0.37006, -0.631626, 1.83578, -0.105239, -0.913722, 0.95431, -0.169976, -0.721202, 1.70631, 0.188726, -0.478232, 1.53675, 0.317272, -0.454208, 1.69171, -0.268756, -0.63543, 0.987243, -0.370343, -0.170564, 0.859014, 0.160279, -0.262225, 1.39447, 0.162709, -0.255551, 1.52426, -0.294896, -0.0660405, 0.880691, -0.102965, -0.126803, 1.32882, -0.0395796, -0.19102, 1.40531, -0.162224, -0.256767, 1.56023, -0.0958005, -0.245079, 1.4957, -0.123593, -0.292542, 1.58081, -0.213789, -0.300707, 1.62315, -0.168503, -0.426543, 1.69115, -0.196413, -0.434509, 1.71208, -0.231916, -0.586182, 1.83924, -0.0975873, -0.547313, 1.79071, -0.0844079, -0.212253, 1.44274, -0.0415312, -0.175617, 1.41154, -0.0437374, -0.220281, 1.46968, -0.143048, -0.543306, 0.573346, 0.523815, -0.53325, 0.468211, 0.783185, -0.269976, 0.320526, 0.743389, -0.207486, 0.384965, 0.351051, -0.792721, 0.321493, 0.73458, -0.631719, 0.163855, 0.92639, -0.514523, 0.271138, 0.956088, -0.386424, 0.163401, 0.930524, -0.486595, 0.00104547, 1.08874, -0.326299, 0.00104547, 0.904533, -0.462058, 1.58268, 0.259184, -0.668445, 1.73174, 0.152757, -0.290415, 1.46398, 0.121989, -1.57608, 3.45117, -0.0476083, -1.61428, 3.4244, 0.016813, -1.50191, 3.29774, -0.132197, -1.66072, 3.58429, -0.072422, -1.62434, 3.38222, -0.419987, -1.67177, 3.34226, -0.426789, -1.48496, 3.24915, -0.287145, -1.57272, 3.23249, -0.370566, -1.54119, 3.29007, -0.372791, -1.79243, 3.69662, -0.478226, -1.47279, 3.17682, -0.509438, -1.6491, 3.37415, -0.611694, -1.52444, 3.47482, 0.146797, -1.98619, 2.68696, 0.233771, -1.97806, 2.60303, -0.0912834, -2.07568, 2.68462, -0.249978, -2.24859, 2.87814, -0.35026, -2.14291, 2.96404, 0.3995, -2.30152, 3.24052, 0.317542, -2.38915, 3.19439, -0.219368, -2.41174, 3.31063, 0.0752657, -0.0964089, 0.00104547, -0.196812, -0.154027, 0.441809, 0.19622, -0.835003, 0.00104547, -0.205403, -0.55748, 1.72198, 0.0964474, -0.611101, 1.70343, 0.114914, -0.447702, 1.58483, 0.201877, -0.425773, 1.62639, 0.166544, -0.506064, 1.79234, -0.0642154, -0.30653, 1.48536, 0.0960338, -0.311982, 1.54621, 0.0812291, -0.408718, 1.71209, -0.154497, -0.23599, 1.51185, -0.0296548, -0.272186, 1.57784, -0.251696, -0.14499, 0.00104547, 0.619324, -0.0508581, 0.00104547, 0.0402964, -0.916171, 0.00104547, 0.0302318, -0.82337, 0.00104547, 0.611434, -0.874277, 0.386199, 0.339815, -0.644625, 0.00104547, 0.90083, -0.19633, 0.00104547, -0.176104, -0.108829, 0.00104547, 0.040049, -0.85902, 0.00104547, 0.0313234, -0.736495, 0.00104547, -0.182387, -1.86783, 5.49219, -0.536097, -1.86783, 5.22204, -0.265945, -1.99626, 5.45781, -0.129823, -1.99626, 5.62831, -0.300326, -1.86783, 6.50041, -0.265945, -1.86783, 6.23026, -0.536097, -1.99626, 6.09414, -0.300326, -1.99626, 6.26464, -0.129823, -1.86783, 5.86123, -0.63498, -1.99626, 5.86123, -0.362734, -1.7, 6.62333, -0.336911, -1.7, 6.30123, -0.659013, -1.7, 5.42123, -0.659013, -1.7, 5.09912, -0.336911, -1.7, 5.86123, -0.776911, -1.6, 6.62333, 0.543096, -1.7, 6.62333, 0.543096, -1.7, 6.30123, 0.865198, -1.6, 6.30123, 0.865198, -1.7, 5.86123, 0.983096, -1.6, 5.86123, 0.983096, -1.7, 5.42123, 0.865198, -1.6, 5.42123, 0.865198, -1.6, 5.42123, -0.659013, -1.6, 5.09912, -0.336911, -1.7, 5.09913, 0.543096, -1.6, 5.09913, 0.543096, -1.6, 5.86123, -0.776911, -1.7, 4.98123, 0.103096, -1.6, 4.98123, 0.103096, -1.6, 6.30123, -0.659013, -1.6, 6.62333, -0.336911, -1.6, 6.74123, 0.103096, -1.7, 6.74123, 0.103096, -1.86783, 6.23026, 0.742282, -1.86783, 5.86123, 0.841165, -1.86783, 5.49219, 0.742282, -1.86783, 5.22204, 0.47213, -1.86783, 5.12316, 0.103096, -1.86783, 6.5993, 0.103096, -1.86783, 6.50041, 0.47213, -1.99626, 5.45781, 0.336007, -1.99626, 5.3954, 0.103096, -1.99626, 5.86123, 0.568919, -1.99626, 5.62832, 0.50651, -1.99626, 6.09414, 0.50651, -1.99626, 6.26464, 0.336007, -1.99626, 6.32705, 0.103096, -0.102832, 2.48009, 0.176006, -0.0988953, 2.42787, 0.190009, -0.149215, 2.70638, -0.125392, -0.152867, 2.69118, -0.160703, -0.245228, 2.61305, -0.0718189, -0.228589, 2.63923, -0.0490058, -0.200279, 2.72863, -0.178996, -0.254515, 2.5228, 0.0532499, -0.32495, 2.52211, 0.0834183, -0.230502, 2.45653, 0.179303, -0.177509, 2.46933, 0.131427, -0.31356, 2.6328, -0.0699792, -0.134082, 2.39331, 0.261453, -0.225093, 2.1995, 0.49518, -0.391925, 2.2292, 0.34273, -0.377566, 2.23301, 0.230347, -0.273286, 2.15284, 0.145033, -0.272307, 2.12215, 0.166987, -0.306467, 2.75371, -0.22827, -0.509219, 2.60277, -0.0602789, -0.384471, 2.30721, 0.355435, -0.141881, 2.21642, -0.246023, -0.340915, 2.69228, -0.257391, -0.226149, 2.1204, 0.482878, -0.0951926, 1.97992, 0.0646229, -0.536694, 2.41886, 0.193185, -0.163197, 2.02451, 0.00668271, -0.221777, 2.14883, -0.169134, -0.229811, 2.07077, -0.0609438, -0.549486, 2.33903, 0.185763, -0.532141, 2.52821, -0.0726373, -0.367385, 2.32682, -0.123862, -0.198102, 4.44663, -0.00271145, -0.681184, 4.27477, 0.307467, -0.535945, 4.16951, 0.521097, -0.0960235, 4.4178, 0.0939296, -0.295152, 4.11437, 0.707528, -0.568386, 3.97815, -0.416848, -0.75197, 4.49872, -0.484507, -0.453404, 3.62952, 1.15385, -0.354866, 3.3434, 0.864531, -0.713601, 4.46674, -0.124363, -1.12602, 4.3213, -0.0494407, -1.03995, 4.04518, 0.442157, -0.716219, 4.58287, -0.480226, -0.464921, 4.64317, -0.424668, -0.850048, 3.71295, 0.879328, -0.649196, 3.42772, 0.674737, -0.84841, 3.80937, 0.873472, -0.451539, 3.72707, 1.15037, -0.258719, 3.09481, 0.245674, -0.155937, 3.05577, 0.331006, -0.822291, 3.77674, 0.0641416, -0.359401, 3.14451, 0.132252, -0.226502, 3.30884, -0.183514, -1.1403, 4.19005, 0.0860849, -1.11025, 4.20631, -0.0820755, -1.07207, 4.04817, 0.195228, -0.177538, 3.25078, -0.147598, -0.20137, 2.11848, 0.0341487, -0.249187, 2.13753, -0.031997, -0.497933, 2.32861, 0.160251, -0.252884, 2.22978, -0.1047, -0.438171, 2.39896, -0.000411894, -0.941862, 3.86072, 0.194563, -0.997836, 4.10049, -0.213272, -0.87372, 3.89175, -0.186777, -0.347259, 3.23006, -0.0503454, -0.821813, 3.80214, -0.0657451, -1.01577, 4.06798, 0.154229, -0.908494, 3.91354, 0.153681, -1.04723, 4.19828, -0.0742428, -1.07199, 4.18489, 0.0643051, -2.0359, 6.06097, -0.242878, -2.0359, 6.20719, -0.0966551, -2.0359, 5.51526, -0.0966551, -2.0359, 5.66148, -0.242878, -2.0359, 5.86123, -0.296399, -2.0359, 6.06097, 0.449063, -2.0359, 5.86123, 0.502584, -2.0359, 5.66148, 0.449063, -2.0359, 5.51526, 0.30284, -2.0359, 5.46174, 0.103096, -2.0359, 6.26072, 0.103096, -2.0359, 6.20719, 0.30284, -0.329213, 5.47658, 1.00003, -0.329213, 5.20344, 0.811334, -1.15486, 6.36123, 0.969121, -1.39648, 6.36123, 0.969121, -1.2072, 6.11123, 1.03611, -1.39648, 5.36123, -0.762936, -1.39648, 5.86123, -0.896911, -1.39648, 4.9952, -0.396911, -0.257146, 5.2834, 0.752961, -0.257147, 5.40641, 0.875976, -0.329213, 5.36123, 0.969121, -0.257147, 5.49634, 0.900073, -0.685695, 5.86123, 1.1031, -0.633352, 6.11123, 1.03611, -1.39648, 5.36123, 0.969121, -1.15486, 5.86123, 1.1031, -1.39648, 5.86123, 1.1031, -1.39648, 4.9952, 0.603096, -0.23657, 2.56168, 0.0584772, -0.170392, 2.51572, 0.125662, -0.350345, 2.31871, -0.0906937, -0.153299, 4.61636, -0.336561, -0.252264, 4.53307, -0.191655, -0.271744, 3.18932, -0.0437093, -0.202672, 3.0838, 0.187225, -0.122488, 3.05335, 0.253795, -0.281216, 3.12258, 0.0987407, -0.85235, 3.93911, -0.160509, -0.954611, 4.1111, -0.182336, -0.809584, 3.86528, -0.0607897, -0.809978, 3.84435, 0.0462258, -1.39648, 4.86123, 0.103096, -0.18642, 4.95573, -0.248219, -0.269727, 4.92174, -0.116503, -0.212301, 4.88556, 0.0356146, -0.942888, 6.86123, 0.103096, -0.841135, 6.72725, -0.396911, -1.39648, 6.72725, -0.396911, -1.39648, 6.86123, 0.103096, -0.257165, 6.36123, -0.762936, -1.39648, 6.36123, -0.762936, -1.39648, 6.72725, 0.603096, -0.841135, 6.72725, 0.603096, -0.257165, 6.36123, 0.969121, -0.685695, 6.36123, 0.969121 </vector3_array>
- <vector3_array len="679"> 0.323483, -0.753124, 0.572855, 0.771126, -0.534781, 0.345505, 0.599478, 0.562448, 0.569454, 0.202252, 0.315394, 0.927157, 0, 1, -0, 0.696021, 0.718022, -0, 0.599136, 0.562128, -0.57013, 0, 0.866019, -0.500011, 0, -0.789191, -0.614148, 0, 0.382911, -0.923785, 0.202065, 0.315101, -0.927298, 0.323297, -0.752692, -0.573527, 0, -0.789675, 0.613525, 0, 0.383265, 0.923638, 0.770859, -0.534596, -0.346386, 0.868674, -0.495384, 0, 0, 0.866452, 0.49926, 0.167052, 0.584181, -0.794246, 0.308094, 0.942288, -0.13104, -0.783538, 0.601413, -0.156107, -0.724538, 0.614456, -0.312232, -0.831821, 0.51651, -0.203201, -0.468553, 0.81396, 0.343405, -0.207013, 0.970059, -0.127008, -0.839933, 0.527586, -0.127141, -0.839469, 0.51929, -0.16009, -0.952083, -0.0830945, -0.294335, -0.969325, 0.0600821, 0.238326, -0.242219, 0.80573, 0.54049, -0.618771, 0.285356, 0.731912, -0.00900884, -0.126124, 0.991974, 0.500138, 0.3651, 0.785216, 0.0490036, 0.723054, -0.689051, 0.0889861, 0.993844, -0.0659897, 0.858321, 0.492184, 0.145054, 0.845097, 0.209024, -0.492057, -0.210106, 0.16008, -0.964484, 0.529219, -0.36215, -0.767317, 0.835061, -0.3935, 0.384488, 0.882867, -0.432425, 0.18318, 0.857612, -0.49035, 0.155111, 0.828872, -0.533561, 0.168177, -0.311554, -0.724288, 0.615094, -0.251244, -0.959933, -0.124121, 0.661603, -0.73467, 0.150137, 0.642912, -0.678963, 0.354503, 0.72766, -0.516469, 0.45141, 0.115162, -0.7841, -0.609856, 0.772162, -0.611128, 0.174036, 0.773373, -0.45522, 0.441213, 0.537341, -0.81952, 0.199126, -0.891041, -0.346405, -0.293343, -0.609658, -0.17619, -0.772835, -0.901333, -0.16224, 0.401594, -0.77153, 0.0690475, -0.632435, -0.315127, 0.0940378, -0.944379, 0.055046, -0.627524, -0.776649, -0.536581, -0.621673, -0.570617, 0.861095, 0.107012, 0.497055, -0.0380375, 0.0810799, 0.995982, -0.00700771, -0.117129, 0.993092, 0.797008, -0.304385, 0.521659, 0.524884, 0.803823, -0.279938, 0.595044, 0.585044, 0.551041, 0.871559, 0.129934, -0.472761, -0.200267, 0.367489, 0.90821, 0.0669956, 0.520966, -0.850944, 0.382844, 0.129947, -0.914628, -0.739262, 0.276472, 0.614048, -0.776468, 0.0611156, 0.627186, -0.58619, 0.359116, -0.726235, -0.959877, 0.277253, 0.0420384, -0.992667, 0.0720484, -0.0970652, -0.896641, 0.277198, -0.345247, -0.943047, 0.164182, -0.289321, -0.728454, 0.359224, -0.583363, -0.765447, 0.642375, 0.0380222, -0.855938, 0.516566, 0.0230252, -0.610501, 0.786645, -0.0920755, -0.477172, 0.854307, 0.206074, -0.309014, 0.951044, 0.00500023, -0.513202, 0.81332, -0.274108, -0.781621, 0.597475, 0.179142, -0.831231, 0.554821, 0.0350519, -0.80571, 0.57851, 0.127112, 0.0110026, 0.996233, -0.0860201, -0.616626, 0.733745, -0.28529, -0.740791, 0.504539, 0.443474, 0.0110097, 0.826727, 0.562495, 0.798668, 0.375314, 0.470393, 0.00700849, 0.548665, 0.836013, 0.68171, 0.189197, 0.706736, -0.65479, 0.336406, 0.676817, -0.0310549, -0.441781, 0.896585, -0.617121, -0.634152, 0.465846, -0.16707, 0.870366, 0.463195, -0.5063, 0.725429, 0.466276, -0.711913, 0.614788, 0.339435, -0.409744, 0.0530964, 0.910654, -0.764085, -0.38755, 0.515732, -0.847732, 0.508439, -0.15113, 0.0380266, 0.718502, 0.694485, -0.160029, 0.076014, -0.984181, -0.759497, 0.484317, -0.434284, -0.812045, -0.505651, -0.291375, -0.511638, -0.289361, -0.809009, -0.820559, 0.421287, -0.386263, -0.223103, 0.739342, -0.635294, -0.724353, 0.0750365, -0.685334, -0.43004, 0.304028, -0.850078, -0.80007, 0.434581, 0.413553, -0.0460378, -0.996819, -0.0650535, -0.0350519, -0.808196, 0.58787, 0.267172, -0.820528, -0.505325, 0.6294, -0.428272, -0.648412, 0.297403, -0.309419, 0.903223, 0.622553, 0.221196, 0.750666, 0.897953, 0.117994, -0.423978, 0.920375, 0.351143, 0.17207, -0.753305, -0.654134, 0.0681181, -0.674119, -0.252419, 0.694153, 0.713493, -0.691478, -0.113078, 0.455352, 0.602466, 0.655507, -0.318438, 0.223307, 0.921266, -0.564392, 0.704489, 0.430299, -0.398344, 0.805696, 0.438379, 0.565223, 0.681269, -0.465184, -0.74958, 0.0670519, 0.658509, -0.747893, 0.534638, 0.39347, -0.0789773, 0.541844, -0.83676, -0.969378, 0.150213, 0.194276, -0.723252, 0.667233, -0.178062, -0.702756, -0.294317, -0.647697, -0.77343, -0.576065, 0.264489, 0.64207, -0.336037, -0.689075, 0.714816, 0.636836, -0.288926, 0.692559, -0.68055, 0.239193, 0.560659, -0.716842, 0.414487, -0.216317, -0.957402, 0.19128, 0.194204, -0.972021, 0.132139, 0.711943, 0.135989, -0.688945, -0.686439, 0.302193, -0.661423, 0.776432, -0.314175, -0.546304, 0.886017, -0.231005, -0.402008, 0.886168, -0.401076, -0.232044, 0.776611, -0.545429, -0.315248, 0.776187, 0.546132, -0.315076, 0.885812, 0.401915, -0.231951, 0.885812, 0.231951, -0.401915, 0.776187, 0.315076, -0.546132, 0.885871, 0, -0.463932, 0.776359, 0, -0.630291, 0.327036, 0.818089, -0.473052, 0.327036, 0.473052, -0.818089, 0.32719, -0.472275, -0.818476, 0.327303, -0.817758, -0.473439, 0.327008, 0, -0.945022, -0.652547, 0.65655, 0.378317, -0.652728, 0.379423, 0.655732, 0.327303, 0.473439, 0.817758, 0.32719, 0.818476, 0.472275, -0.653098, 0, 0.757273, 0.327317, 0, 0.944915, -0.652976, -0.378566, 0.65598, 0.327458, -0.472662, 0.818145, -0.652547, -0.378317, -0.65655, -0.652728, -0.655732, -0.379423, -0.652976, -0.65598, 0.378566, 0.327458, -0.818145, 0.472662, -0.652603, 0, -0.7577, -0.653098, -0.757273, 0, 0.327317, -0.944915, 0, -0.6523, 0.379174, -0.656302, -0.6523, 0.656302, -0.379174, -0.652603, 0.7577, 0, 0.327008, 0.945022, -0, 0.776848, 0, 0.629688, 0.776611, 0.315248, 0.545429, 0.776856, -0.314346, 0.545601, 0.776856, -0.545601, 0.314346, 0.776848, -0.629688, 0, 0.776432, 0.546304, 0.314175, 0.776359, 0.630291, -0, 0.886281, -0.463147, 0, 0.886373, -0.401169, 0.231097, 0.886373, -0.231097, 0.401169, 0.886281, 0, 0.463147, 0.886168, 0.232044, 0.401076, 0.886017, 0.402008, 0.231005, 0.885871, 0.463932, -0, 0.320359, 0.0650729, 0.945059, 0, 0.0700382, 0.997544, 0, 0.642347, 0.766414, 0.0170187, 0.688755, 0.724794, 0.609974, 0.430981, -0.664971, 0.947519, 0.264145, -0.180099, 0.303207, 0.801547, 0.515352, 0.183115, 0.866546, 0.464292, 0, 0.882519, 0.470277, -0.0130118, 0.73066, 0.682617, 0, 0.706106, 0.708106, 0.225998, 0.736995, 0.636996, 0.221247, 0.645722, 0.730817, -0.0530284, 0.84045, 0.539289, -0.0270074, 0.825227, 0.564155, -0.0350336, 0.777746, 0.627602, 0, 0.830353, 0.557237, -0.0410178, 0.818354, 0.573248, 0, 0.314425, 0.949282, 0.27534, 0.29136, 0.916132, 0.778752, -0.489473, 0.392379, 0.746544, -0.651475, -0.135099, 0.272405, -0.803194, 0.529788, 0.652602, -0.667616, 0.35833, 0.671414, 0.730451, 0.125077, 0.357959, 0.928893, -0.0949891, 0.443473, 0.436465, 0.782835, 0, 0.377932, -0.925833, 0.555211, 0.240091, -0.796302, 0.325138, -0.340145, -0.882376, 0, -0.203036, -0.979171, 0.405354, -0.612535, 0.678593, 0, -0.671726, 0.7408, 0, -0.989545, 0.144225, 0.324316, -0.945923, 0.00700683, 0.678459, 0.508344, 0.530359, 0.581287, -0.797393, -0.16208, 0, 0.993246, -0.116029, 0.624575, -0.536494, -0.567522, 0, -0.741749, -0.670677, 0, -0.556084, -0.831126, 0, -0.999902, -0.0140126, 0, -0.966632, -0.256168, 0.738289, -0.658258, -0.147058, 0, -0.851521, -0.524321, 0, -0.900741, -0.434357, 0, -0.346076, -0.938206, 0.897164, -0.425078, 0.120022, 0.916025, -0.0850023, -0.392011, 0.746835, -0.537601, -0.391438, 0.24712, 0.836407, 0.489238, 0.187033, 0.840147, 0.509089, 0.180007, 0.858032, 0.481018, 0.245128, 0.817427, 0.521272, 0, 0.768221, 0.640184, 0, 0.834352, 0.551232, 0.143113, 0.833656, 0.53342, 0, 0.114054, -0.993474, 0.536767, 0.0429814, -0.842635, 0.34218, -0.328173, -0.880463, 0, -0.278155, -0.960536, 0.372421, -0.379429, 0.846957, 0, -0.377424, 0.926041, 0, -0.819843, 0.572589, 0.295296, -0.813817, 0.500502, 0.195064, 0.900294, 0.389127, 0.804875, 0.356387, 0.474516, 0.808731, 0.587804, -0.020993, 0, 0.994988, 0.0999987, 0.169127, 0.969729, 0.176132, 0.451126, 0.771215, -0.449125, 0, 0.777245, -0.629198, 0.78993, -0.410483, 0.455536, 0.657391, -0.729434, 0.189112, 0.705632, 0.319286, 0.632566, 0.308272, 0.411363, 0.857758, 0.231245, -0.951006, 0.205217, 0.47266, -0.881231, 0.00500699, 0.887311, -0.393138, -0.241085, 0.618412, -0.762508, -0.190127, 0.259028, -0.529057, -0.808087, 0, -0.471055, -0.882104, 0, -0.97194, 0.235228, 0.972719, -0.231933, -0.00499856, 0.748485, -0.564366, -0.348226, 0, 0.419376, 0.907813, 0.793691, -0.521454, -0.313273, 0.307062, -0.405082, -0.861174, 0, -0.36621, -0.930532, -0.256367, -0.749072, -0.610874, 0.241336, -0.969348, -0.0460641, 0.800238, -0.563168, -0.206061, 0.679395, -0.526306, -0.511297, 0.794806, -0.441448, -0.416422, 0.78099, -0.430994, -0.451994, 0.727309, -0.686292, 0.00500213, 0.915343, -0.34713, -0.204077, 0.535473, -0.673595, -0.50945, 0.971477, -0.237116, 0.00300147, 0.731118, -0.68011, -0.0540087, 0.849093, -0.528058, -0.0140015, 0.83344, -0.540285, -0.116061, 0.864591, -0.499341, -0.0560383, 0.984291, 0.153045, -0.088026, 0.984291, 0.088026, -0.153045, 0.984377, -0.0870333, -0.153059, 0.984441, -0.152068, -0.0880395, 0.984378, 0, -0.176068, 0.984551, 0, 0.175098, 0.984441, 0.0880395, 0.152068, 0.984527, -0.0870466, 0.152081, 0.984527, -0.152081, 0.0870466, 0.984551, -0.175098, 0, 0.984377, 0.153059, 0.0870333, 0.984378, 0.176068, -0, 0, 0, 1, 0, -0.848897, 0.528558, -0.210351, -0.405676, 0.889483, 0, -0.0810577, 0.996709, 0, -0.92105, 0.389444, -0.197353, -0.573024, 0.795421, -0.167145, 0.336293, 0.926806, -0.401672, 0.237397, 0.884479, 0.653302, 0.379175, 0.655303, 0, 0, -1, 0.653177, 0, -0.757205, 0.653121, -0.37807, -0.656122, 0, -0.49926, -0.866452, 0.671631, -0.686645, -0.278262, 0, -0.926881, -0.375357, -0.433934, -0.447965, 0.781683, -0.4965, -0.437441, 0.749755, -0.353503, -0.137195, 0.925318, 0, -0.848897, 0.528558, -0.359502, -0.75906, 0.542758, 0, -0.0770792, 0.997025, 0.168109, 0.172111, 0.970627, 0.402511, 0.237301, 0.884123, 0.65355, -0.378318, 0.655551, 0.653672, 0, 0.756778, -0.167136, 0.17214, 0.97079, 0.668803, -0.684822, 0.289347, 0.880048, 0.129007, 0.457025, 0.644507, 0.0390307, 0.763601, 0, 0.542878, -0.839811, 0.823173, -0.419088, -0.383081, 0, 0.941447, 0.33716, 0.175995, 0.932972, 0.31399, 0.269002, 0.885006, 0.380003, 0.644374, -0.493286, -0.584339, 0.355385, -0.786851, 0.504546, 0.641692, -0.681736, 0.351379, 0.758512, -0.647437, -0.07405, 0, -0.746027, 0.665916, 0.905274, -0.411124, -0.107032, 0.759428, -0.614346, -0.214121, 0.64053, -0.74862, -0.171142, 0.712784, -0.693763, -0.103113, 0, -0.812786, -0.582563, 0.707572, -0.706571, 0.0100081, 0.463983, -0.666975, -0.582978, 0.721736, -0.682696, -0.114116, 0.557506, -0.667605, 0.493448, 0, -0.762778, 0.64666, -0.001, 1, 0, 0.653177, 0.757205, -0, 0.652874, 0.655873, -0.378927, -0.0379873, 0.86471, -0.500832, 0.652874, 0.378927, -0.655873, -0.0350082, 0.578135, -0.81519, -0.0380063, 0.865143, 0.500083, 0.653121, 0.656122, 0.37807, 0, 0.610194, -0.792252, -0.0350367, 0.578606, 0.814854, 0.168118, 0.336236, 0.926651, 0, 0.610678, 0.791879, -0.322586, -0.753368, 0.57304, -0.201292, 0.315457, 0.927345, -0.598836, 0.562786, 0.569796, -0.77072, -0.535194, 0.345772, -0.598495, 0.562465, -0.570471, -0.695505, 0.718521, 0, -0.322401, -0.752935, -0.573713, -0.201105, 0.315165, -0.927485, -0.770452, -0.535009, -0.346654, -0.868428, -0.495815, 0, -0.166079, 0.584278, -0.794378, 0.725013, 0.614011, -0.312005, 0.783924, 0.600942, -0.155985, -0.307188, 0.942578, -0.13108, 0.20797, 0.969858, -0.126981, 0.469334, 0.813578, 0.343244, 0.832129, 0.51608, -0.203032, 0.840228, 0.527143, -0.127034, 0.969385, 0.0600239, 0.238095, 0.952177, -0.0830154, -0.294055, 0.839764, 0.518854, -0.159955, 0.243161, 0.805534, 0.540358, -0.499387, 0.365283, 0.785609, 0.0100097, -0.126123, 0.991964, 0.619388, 0.285179, 0.731458, -0.0480059, 0.723089, -0.689085, -0.844811, 0.209201, -0.492473, -0.858057, 0.492607, 0.145179, -0.087994, 0.993932, -0.0659955, 0.211062, 0.160047, -0.964281, -0.528498, -0.362341, -0.767723, -0.882646, -0.432807, 0.183342, -0.834757, -0.393829, 0.38481, -0.828558, -0.534004, 0.168317, -0.857347, -0.490771, 0.155244, 0.312458, -0.724062, 0.614902, -0.642324, -0.679401, 0.354731, -0.66104, -0.735157, 0.150236, 0.252182, -0.959691, -0.124089, -0.727189, -0.516845, 0.451739, -0.771757, -0.6116, 0.174171, -0.114173, -0.784191, -0.609926, -0.772971, -0.455572, 0.441554, -0.536629, -0.819961, 0.199233, 0.891247, -0.346096, -0.293081, 0.610287, -0.176083, -0.772363, 0.90152, -0.162094, 0.401232, 0.771935, 0.0689942, -0.631947, 0.537293, -0.621339, -0.570311, -0.0540481, -0.627558, -0.776691, 0.316027, 0.0940081, -0.944081, -0.860836, 0.107104, 0.497483, -0.796642, -0.304628, 0.522076, 0.00800875, -0.117128, 0.993085, 0.039037, 0.0810768, 0.995943, -0.524159, 0.804245, -0.280085, -0.871318, 0.130047, -0.473173, -0.594398, 0.585392, 0.551369, 0.201228, 0.367416, 0.908027, -0.0660001, 0.521001, -0.851001, -0.381991, 0.129997, -0.914978, 0.776865, 0.061068, 0.626698, 0.739716, 0.276267, 0.613594, 0.586846, 0.358906, -0.725809, 0.992681, 0.0719769, -0.0969689, 0.959955, 0.276987, 0.0419981, 0.896837, 0.27695, -0.344937, 0.943158, 0.164027, -0.289048, 0.856205, 0.516124, 0.0230055, 0.765861, 0.641883, 0.0379931, 0.728923, 0.358962, -0.582938, 0.611128, 0.786165, -0.0920193, 0.513938, 0.812902, -0.273967, 0.309918, 0.95075, 0.00499869, 0.477944, 0.853899, 0.205976, 0.78201, 0.597008, 0.179002, 0.806061, 0.578044, 0.12701, 0.83154, 0.55436, 0.0350227, -0.0100024, 0.996243, -0.086021, -0.0100089, 0.826736, 0.562501, 0.741242, 0.504165, 0.443145, 0.617246, 0.733292, -0.285114, -0.798305, 0.375614, 0.470769, -0.681174, 0.189326, 0.707219, -0.00600732, 0.548668, 0.836019, 0.655362, 0.336185, 0.676373, 0.0320557, -0.441767, 0.896557, 0.617741, -0.63376, 0.465558, 0.507043, 0.725062, 0.46604, 0.168043, 0.870221, 0.463117, 0.712406, 0.61435, 0.339193, 0.410577, 0.0530746, 0.91028, 0.848013, 0.508008, -0.151002, 0.764501, -0.387254, 0.515338, -0.0370272, 0.718529, 0.694511, 0.161004, 0.0760018, -0.984023, 0.75992, 0.483949, -0.433954, 0.812386, -0.50524, -0.291138, 0.820886, 0.420942, -0.385946, 0.512377, -0.289213, -0.808595, 0.224054, 0.739177, -0.635152, 0.724828, 0.0749822, -0.684837, 0.430854, 0.303897, -0.849712, 0.80043, 0.434233, 0.413222, 0.0360521, -0.808167, 0.587849, 0.0470365, -0.996773, -0.0650504, -0.266242, -0.820747, -0.50546, -0.628795, -0.428542, -0.648821, -0.296489, -0.309511, 0.903492, -0.621939, 0.221334, 0.751134, -0.897759, 0.1181, -0.424359, -0.920222, 0.351467, 0.172229, 0.753738, -0.65364, 0.0680667, 0.674665, -0.252249, 0.693684, -0.713001, -0.691972, -0.113159, -0.454558, 0.60274, 0.655806, 0.399186, 0.805375, 0.438204, 0.565073, 0.704091, 0.430056, 0.319337, 0.223236, 0.920972, -0.564542, 0.681654, -0.465447, 0.748334, 0.534238, 0.393175, 0.750018, 0.0670016, 0.658015, 0.0799707, 0.541802, -0.836693, 0.969438, 0.150068, 0.194088, 0.723729, 0.66675, -0.177933, 0.773832, -0.575619, 0.264284, 0.703262, -0.29411, -0.647241, -0.641482, -0.336253, -0.689518, -0.692038, -0.681022, 0.239359, -0.714327, 0.637291, -0.289132, -0.559972, -0.717244, 0.41472, 0.217271, -0.957194, 0.191239, 0.686968, 0.301986, -0.660969, -0.711449, 0.136086, -0.689435, -0.19324, -0.972209, 0.132164, -0.776034, -0.314419, -0.546728, -0.776214, -0.545854, -0.315493, -0.885953, -0.401432, -0.23225, -0.885802, -0.231209, -0.402364, -0.775789, 0.546556, -0.315321, -0.775789, 0.315321, -0.546556, -0.885597, 0.232156, -0.402271, -0.885597, 0.402271, -0.232156, -0.775961, 0, -0.630781, -0.885655, 0, -0.464344, -0.326142, 0.818357, -0.473206, -0.326142, 0.473206, -0.818357, -0.326296, -0.472429, -0.818744, -0.326409, -0.818026, -0.473594, -0.326114, 0, -0.94533, 0.653121, 0.656122, 0.37807, -0.326296, 0.818744, 0.472429, -0.326409, 0.473594, 0.818026, 0.653302, 0.379175, 0.655303, -0.326423, 0, 0.945224, 0.653672, 0, 0.756778, -0.326564, -0.472817, 0.818413, 0.65355, -0.378318, 0.655551, 0.653121, -0.37807, -0.656122, 0.653302, -0.655303, -0.379175, -0.326564, -0.818413, 0.472817, 0.65355, -0.655551, 0.378318, 0.653177, 0, -0.757205, -0.326423, -0.945224, 0, 0.653672, -0.756778, 0, 0.652874, 0.378927, -0.655873, 0.652874, 0.655873, -0.378927, 0.653177, 0.757205, -0, -0.326114, 0.94533, 0, -0.776214, 0.315493, 0.545854, -0.776451, 0, 0.630178, -0.776459, -0.314591, 0.546026, -0.776459, -0.546026, 0.314591, -0.776451, -0.630178, 0, -0.775961, 0.630781, 0, -0.776034, 0.546728, 0.314419, -0.886159, -0.401525, 0.231302, -0.886067, -0.463558, 0, -0.886067, 0, 0.463558, -0.886159, -0.231302, 0.401525, -0.885953, 0.23225, 0.401432, -0.885802, 0.402364, 0.231209, -0.885655, 0.464344, 0, -0.31946, 0.0650937, 0.945361, -0.0160178, 0.688766, 0.724806, -0.609345, 0.431244, -0.665377, -0.182148, 0.866704, 0.464377, -0.302298, 0.80179, 0.515508, -0.947416, 0.264395, -0.18027, 0.0140125, 0.730651, 0.682608, -0.225049, 0.737161, 0.637139, 0.0280069, 0.825204, 0.56414, 0.054026, 0.840405, 0.53926, -0.220295, 0.645864, 0.730978, 0.0360333, 0.777718, 0.62758, 0.0420165, 0.81832, 0.573224, -0.274414, 0.29144, 0.916384, -0.778358, -0.489855, 0.392685, -0.652026, -0.668052, 0.358564, -0.271477, -0.803413, 0.529932, -0.746101, -0.651962, -0.135199, -0.357087, 0.929225, -0.095023, -0.670864, 0.730942, 0.125161, -0.442668, 0.436659, 0.783182, -0.324243, -0.340255, -0.882662, -0.554518, 0.240224, -0.796745, -0.404517, -0.612784, 0.678868, -0.323422, -0.946236, 0.00600785, -0.677918, 0.508689, 0.530719, -0.580624, -0.797857, -0.162174, -0.623964, -0.536829, -0.567877, -0.737833, -0.658744, -0.147166, -0.896969, -0.42546, 0.12013, -0.915864, -0.0850803, -0.39237, -0.746391, -0.538003, -0.39173, -0.246181, 0.836614, 0.489359, -0.179039, 0.858186, 0.481104, -0.186067, 0.840304, 0.509184, -0.244187, 0.817627, 0.5214, -0.142132, 0.833775, 0.533496, -0.341296, -0.328285, -0.880764, -0.536055, 0.0430044, -0.843087, -0.371558, -0.37957, 0.847273, -0.294382, -0.814057, 0.50065, -0.194101, 0.90047, 0.389203, -0.808384, 0.58828, -0.02101, -0.804522, 0.356675, 0.474898, -0.450328, 0.771563, -0.449328, -0.168155, 0.969892, 0.176162, -0.789553, -0.410808, 0.455897, -0.656822, -0.729914, 0.189237, -0.705129, 0.319511, 0.633013, -0.307366, 0.41149, 0.858022, -0.471882, -0.881648, 0.00500936, -0.230297, -0.951225, 0.205264, -0.887098, -0.393487, -0.241299, -0.617794, -0.76298, -0.190244, -0.258094, -0.529194, -0.808295, -0.972665, -0.232159, -0.00500342, -0.748045, -0.564789, -0.348487, -0.79332, -0.521869, -0.313522, -0.306156, -0.405206, -0.861439, -0.240392, -0.969582, -0.0460752, 0.257302, -0.748879, -0.610717, -0.799878, -0.563619, -0.206226, -0.678856, -0.526664, -0.511645, -0.794437, -0.441799, -0.416754, -0.780599, -0.431331, -0.452347, -0.726837, -0.686791, 0.00500577, -0.915181, -0.347448, -0.204264, -0.534758, -0.673956, -0.509723, -0.97142, -0.237347, 0.00300439, -0.848814, -0.528507, -0.0140134, -0.730652, -0.680607, -0.0540482, -0.864338, -0.499774, -0.0560868, -0.833134, -0.540736, -0.116158, -0.98426, 0.0881128, -0.153196, -0.98426, 0.153196, -0.0881128, -0.98441, -0.152218, -0.0881262, -0.984346, -0.0871191, -0.15321, -0.984347, 0, -0.176241, -0.98441, 0.0881262, 0.152218, -0.98452, 0, 0.175271, -0.984497, -0.0871325, 0.152231, -0.984497, -0.152231, 0.0871325, -0.98452, -0.175271, 0, -0.984347, 0.176241, 0, -0.984346, 0.15321, 0.0871191, 0.211308, -0.405591, 0.889295, 0.198315, -0.572911, 0.795264, 0.168118, 0.336236, 0.926651, -0.652728, 0.379423, 0.655732, 0.402511, 0.237301, 0.884123, -0.652547, -0.378317, -0.65655, -0.652603, 0, -0.7577, -0.671081, -0.687107, -0.278449, 0.354379, -0.137147, 0.92499, 0.497254, -0.437223, 0.749383, 0.434747, -0.44777, 0.781343, 0.360374, -0.758786, 0.542562, -0.167136, 0.17214, 0.97079, -0.401672, 0.237397, 0.884479, -0.652976, -0.378566, 0.65598, 0.168109, 0.172111, 0.970627, -0.653098, 0, 0.757273, -0.668249, -0.685281, 0.289541, -0.879823, 0.129121, 0.457428, -0.643922, 0.0390559, 0.764094, -0.82285, -0.419434, -0.383396, -0.175025, 0.933135, 0.314046, -0.268074, 0.885244, 0.380105, -0.643788, -0.493604, -0.584716, -0.641103, -0.682174, 0.351605, -0.354509, -0.787131, 0.504725, -0.758087, -0.647929, -0.0741063, -0.759004, -0.614813, -0.214283, -0.905093, -0.411497, -0.107129, -0.639939, -0.7491, -0.171251, -0.712291, -0.694258, -0.103187, -0.707071, -0.707071, 0.0100152, -0.463198, -0.667285, -0.583249, -0.721256, -0.68319, -0.114199, -0.556815, -0.667978, 0.493723, 0.002, 0.999998, -0, 0.0389854, 0.864677, -0.500813, -0.6523, 0.656302, -0.379174, -0.652603, 0.7577, 0, 0.0360071, 0.578114, -0.815161, -0.6523, 0.379174, -0.656302, -0.652547, 0.65655, 0.378317, 0.039005, 0.86511, 0.500063, 0.0360365, 0.578586, 0.814825, -0.167145, 0.336293, 0.926806 </vector3_array>
- <nil> </nil>
- <nil> </nil>
- <nil> </nil>
- <nil> </nil>
- <real_array len="2716"> 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 9, 8, 0, 0, 8, 9, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 12, 13, 0, 0, 12, 13, 0, 0, 13, 12, 0, 0, 13, 12, 0, 0, 13, 12, 0, 0, 13, 12, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 12, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 9, 8, 0, 0, 8, 9, 0, 0, 9, 0, 0, 0, 8, 9, 0, 0, 9, 8, 0, 0, 9, 0, 0, 0, 8, 9, 0, 0, 8, 9, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 12, 13, 0, 0, 12, 13, 0, 0, 13, 12, 0, 0, 13, 12, 0, 0, 12, 13, 0, 0, 12, 13, 0, 0, 13, 12, 0, 0, 12, 13, 0, 0, 12, 13, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 7, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 11, 10, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 10, 11, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 15, 16, 0, 0, 16, 15, 0, 0, 16, 15, 0, 0, 15, 16, 0, 0, 16, 15, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 15, 0, 0, 16, 15, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 11, 10, 0, 0, 11, 0, 0, 0, 10, 11, 0, 0, 10, 11, 0, 0, 11, 10, 0, 0, 11, 0, 0, 0, 10, 11, 0, 0, 11, 0, 0, 0, 10, 11, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 15, 16, 0, 0, 16, 15, 0, 0, 16, 15, 0, 0, 15, 16, 0, 0, 15, 16, 0, 0, 16, 15, 0, 0, 15, 16, 0, 0, 15, 16, 0, 0, 15, 16, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 16, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 15, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0 </real_array>
- <real_array len="2716"> 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.5, 0.5, 0, 0, 0.503159, 0.496841, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.700171, 0.299829, 0, 0, 0.66474, 0.33526, 0, 0, 0.704636, 0.295364, 0, 0, 0.664742, 0.335258, 0, 0, 0.719812, 0.280188, 0, 0, 0.682575, 0.317425, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.664813, 0.335187, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.533212, 0.466788, 0, 0, 0.538228, 0.461772, 0, 0, 1, 0, 0, 0, 0.500006, 0.499994, 0, 0, 0.525218, 0.474782, 0, 0, 1, 0, 0, 0, 0.563768, 0.436232, 0, 0, 0.523139, 0.476861, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.665519, 0.334481, 0, 0, 0.664658, 0.335342, 0, 0, 0.676033, 0.323967, 0, 0, 0.667711, 0.332289, 0, 0, 0.668675, 0.331325, 0, 0, 0.673479, 0.326521, 0, 0, 0.667424, 0.332576, 0, 0, 0.6672, 0.3328, 0, 0, 0.664792, 0.335208, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.500004, 0.499996, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.997415, 0.00258508, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.5, 0.5, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.503159, 0.496841, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.700171, 0.299829, 0, 0, 0.664742, 0.335258, 0, 0, 0.704636, 0.295364, 0, 0, 0.66474, 0.33526, 0, 0, 0.719812, 0.280188, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.682575, 0.317425, 0, 0, 0.664813, 0.335187, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.533212, 0.466788, 0, 0, 1, 0, 0, 0, 0.538228, 0.461772, 0, 0, 0.500006, 0.499994, 0, 0, 0.525218, 0.474782, 0, 0, 1, 0, 0, 0, 0.563768, 0.436232, 0, 0, 1, 0, 0, 0, 0.523139, 0.476861, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.665519, 0.334481, 0, 0, 0.667711, 0.332289, 0, 0, 0.676033, 0.323967, 0, 0, 0.664658, 0.335342, 0, 0, 0.668675, 0.331325, 0, 0, 0.667424, 0.332576, 0, 0, 0.673479, 0.326521, 0, 0, 0.6672, 0.3328, 0, 0, 0.664792, 0.335208, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.500004, 0.499996, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 </real_array>
- <int_array len="3246"> 0, 2, 1, 0, 3, 2, 4, 6, 5, 4, 7, 6, 8, 10, 9, 8, 11, 10, 12, 3, 0, 12, 13, 3, 11, 6, 10, 11, 14, 6, 14, 5, 6, 14, 15, 5, 1, 5, 15, 1, 2, 5, 4, 2, 16, 4, 5, 2, 16, 3, 13, 16, 2, 3, 7, 10, 6, 7, 9, 10, 17, 19, 18, 17, 20, 19, 19, 22, 21, 19, 23, 22, 24, 26, 25, 24, 27, 26, 28, 30, 29, 28, 31, 30, 32, 34, 33, 32, 35, 34, 33, 31, 28, 33, 34, 31, 36, 35, 32, 36, 37, 35, 34, 38, 31, 34, 39, 38, 37, 40, 35, 37, 41, 40, 42, 44, 43, 42, 45, 44, 31, 46, 30, 31, 38, 46, 35, 39, 34, 35, 40, 39, 43, 48, 47, 43, 44, 48, 47, 41, 37, 47, 48, 41, 30, 45, 42, 30, 46, 45, 44, 49, 48, 48, 49, 41, 46, 49, 45, 39, 50, 38, 41, 50, 40, 41, 49, 50, 45, 49, 44, 38, 49, 46, 38, 50, 49, 40, 50, 39, 51, 47, 52, 51, 43, 47, 52, 37, 36, 52, 47, 37, 53, 43, 51, 53, 42, 43, 29, 42, 53, 29, 30, 42, 54, 56, 55, 54, 57, 56, 58, 60, 59, 58, 61, 60, 62, 58, 63, 62, 64, 58, 63, 59, 65, 63, 58, 59, 66, 64, 62, 66, 67, 64, 65, 69, 68, 65, 59, 69, 70, 67, 66, 70, 55, 67, 68, 72, 71, 68, 69, 72, 73, 55, 70, 73, 54, 55, 74, 76, 75, 74, 77, 76, 78, 80, 79, 78, 81, 80, 82, 83, 77, 82, 84, 83, 85, 87, 86, 85, 88, 87, 89, 90, 88, 89, 91, 90, 88, 92, 87, 88, 90, 92, 91, 93, 90, 90, 93, 92, 92, 93, 94, 55, 56, 67, 65, 95, 63, 65, 96, 95, 68, 96, 65, 68, 97, 96, 71, 54, 73, 71, 72, 54, 98, 24, 99, 98, 100, 24, 18, 21, 101, 18, 19, 21, 102, 20, 17, 102, 103, 20, 99, 25, 104, 99, 24, 25, 101, 100, 98, 101, 21, 100, 104, 106, 105, 104, 25, 106, 105, 103, 102, 105, 106, 103, 20, 23, 19, 20, 107, 23, 25, 108, 106, 25, 26, 108, 106, 109, 103, 106, 108, 109, 100, 27, 24, 100, 110, 27, 103, 107, 20, 103, 109, 107, 21, 110, 100, 21, 22, 110, 27, 111, 26, 27, 112, 111, 26, 113, 108, 26, 111, 113, 108, 114, 109, 108, 113, 114, 110, 112, 27, 110, 115, 112, 22, 115, 110, 22, 116, 115, 109, 117, 107, 109, 114, 117, 107, 118, 23, 107, 117, 118, 23, 116, 22, 23, 118, 116, 72, 57, 54, 72, 119, 57, 59, 120, 69, 59, 60, 120, 64, 61, 58, 64, 121, 61, 69, 119, 72, 69, 120, 119, 122, 124, 123, 122, 125, 124, 126, 125, 122, 126, 79, 125, 123, 128, 127, 123, 124, 128, 129, 79, 126, 129, 78, 79, 130, 77, 74, 130, 82, 77, 75, 78, 129, 75, 76, 78, 127, 82, 130, 127, 128, 82, 124, 97, 128, 124, 96, 97, 79, 95, 125, 79, 80, 95, 128, 84, 82, 128, 97, 84, 76, 81, 78, 76, 131, 81, 77, 131, 76, 77, 83, 131, 125, 96, 124, 125, 95, 96, 86, 133, 132, 86, 87, 133, 134, 89, 135, 134, 136, 89, 135, 88, 85, 135, 89, 88, 136, 91, 89, 136, 137, 91, 87, 94, 133, 87, 92, 94, 137, 93, 91, 67, 121, 64, 67, 56, 121, 83, 70, 131, 83, 73, 70, 73, 84, 71, 73, 83, 84, 63, 80, 62, 63, 95, 80, 66, 131, 70, 66, 81, 131, 97, 71, 84, 97, 68, 71, 81, 62, 80, 81, 66, 62, 138, 140, 139, 138, 141, 140, 57, 139, 56, 138, 139, 119, 119, 139, 57, 56, 139, 121, 132, 136, 134, 132, 133, 136, 137, 133, 94, 137, 136, 133, 94, 93, 137, 142, 144, 143, 142, 145, 144, 146, 148, 147, 146, 149, 148, 149, 150, 148, 149, 151, 150, 151, 143, 150, 151, 142, 143, 152, 149, 146, 152, 153, 149, 154, 145, 142, 154, 155, 145, 156, 142, 151, 156, 154, 142, 153, 151, 149, 153, 156, 151, 157, 159, 158, 157, 160, 159, 158, 162, 161, 158, 159, 162, 161, 164, 163, 161, 162, 164, 165, 155, 154, 165, 166, 155, 163, 168, 167, 163, 164, 168, 169, 154, 156, 169, 165, 154, 167, 171, 170, 167, 168, 171, 172, 156, 153, 172, 169, 156, 173, 153, 152, 173, 172, 153, 174, 160, 157, 174, 175, 160, 159, 176, 162, 159, 177, 176, 162, 178, 164, 162, 176, 178, 164, 179, 168, 164, 178, 179, 168, 180, 171, 168, 179, 180, 175, 181, 160, 175, 182, 181, 160, 177, 159, 160, 181, 177, 179, 183, 180, 179, 184, 183, 176, 185, 178, 176, 186, 185, 177, 186, 176, 177, 187, 186, 181, 187, 177, 181, 188, 187, 178, 184, 179, 178, 185, 184, 182, 188, 181, 182, 189, 188, 182, 147, 189, 182, 146, 147, 145, 183, 144, 145, 180, 183, 175, 146, 182, 175, 152, 146, 155, 180, 145, 155, 171, 180, 174, 152, 175, 174, 173, 152, 166, 171, 155, 166, 170, 171, 190, 192, 191, 190, 193, 192, 194, 196, 195, 194, 197, 196, 198, 199, 197, 198, 200, 199, 201, 203, 202, 201, 204, 203, 197, 205, 196, 197, 199, 205, 193, 206, 192, 193, 207, 206, 196, 204, 201, 196, 205, 204, 202, 207, 193, 202, 203, 207, 207, 208, 206, 207, 209, 208, 210, 212, 211, 210, 213, 212, 199, 214, 205, 199, 215, 214, 203, 209, 207, 203, 216, 209, 217, 219, 218, 217, 220, 219, 221, 223, 222, 221, 224, 223, 205, 225, 204, 205, 214, 225, 204, 216, 203, 204, 225, 216, 224, 211, 226, 221, 211, 224, 210, 211, 221, 200, 215, 199, 200, 227, 215, 219, 229, 228, 219, 230, 229, 224, 231, 223, 224, 232, 231, 228, 234, 233, 228, 229, 234, 226, 232, 224, 226, 235, 232, 220, 230, 219, 220, 236, 230, 233, 235, 226, 233, 234, 235, 237, 214, 238, 237, 225, 214, 215, 238, 214, 215, 218, 238, 218, 227, 217, 218, 215, 227, 221, 216, 210, 221, 209, 216, 209, 222, 208, 209, 221, 222, 225, 210, 216, 225, 237, 210, 218, 219, 238, 238, 219, 239, 239, 219, 228, 240, 242, 241, 243, 245, 244, 243, 246, 245, 247, 249, 248, 247, 250, 249, 251, 253, 252, 251, 254, 253, 255, 256, 242, 255, 257, 256, 258, 260, 259, 258, 261, 260, 262, 254, 251, 262, 263, 254, 242, 264, 241, 242, 256, 264, 240, 246, 243, 240, 241, 246, 241, 265, 246, 241, 264, 265, 259, 257, 255, 259, 260, 257, 263, 266, 254, 263, 267, 266, 268, 267, 263, 268, 269, 267, 250, 270, 249, 250, 271, 270, 254, 272, 253, 254, 266, 272, 251, 264, 262, 251, 265, 264, 248, 261, 247, 248, 260, 261, 257, 273, 256, 260, 274, 257, 260, 248, 274, 265, 252, 275, 265, 251, 252, 256, 262, 264, 256, 276, 262, 246, 275, 245, 246, 265, 275, 271, 277, 270, 271, 278, 277, 226, 279, 233, 226, 280, 279, 211, 280, 226, 211, 212, 280, 237, 213, 210, 237, 281, 213, 233, 282, 228, 233, 279, 282, 238, 281, 237, 238, 283, 281, 276, 284, 262, 262, 284, 268, 262, 268, 263, 248, 249, 274, 274, 249, 285, 285, 249, 286, 249, 287, 286, 249, 270, 287, 286, 287, 288, 288, 287, 268, 268, 287, 269, 276, 289, 284, 276, 290, 289, 274, 291, 273, 274, 292, 291, 273, 290, 276, 273, 291, 290, 273, 257, 274, 256, 273, 276, 147, 294, 293, 147, 148, 294, 143, 296, 295, 143, 144, 296, 150, 295, 297, 150, 143, 295, 148, 297, 294, 148, 150, 297, 187, 298, 186, 187, 299, 298, 186, 300, 185, 186, 298, 300, 185, 301, 184, 185, 300, 301, 184, 302, 183, 184, 301, 302, 189, 303, 188, 189, 304, 303, 188, 299, 187, 188, 303, 299, 305, 307, 306, 308, 310, 309, 311, 313, 312, 189, 293, 304, 189, 147, 293, 144, 302, 296, 144, 183, 302, 314, 316, 315, 314, 317, 316, 317, 318, 316, 317, 319, 318, 310, 321, 320, 310, 322, 321, 307, 323, 306, 307, 324, 323, 320, 324, 307, 320, 321, 324, 308, 322, 310, 308, 325, 322, 326, 305, 327, 328, 330, 329, 328, 326, 330, 326, 320, 307, 320, 326, 328, 328, 310, 320, 326, 307, 305, 309, 310, 331, 331, 310, 328, 312, 329, 330, 313, 329, 312, 195, 201, 332, 195, 196, 201, 333, 193, 190, 333, 202, 193, 334, 197, 194, 334, 198, 197, 332, 202, 333, 332, 201, 202, 239, 283, 238, 239, 335, 283, 336, 259, 337, 336, 258, 259, 337, 255, 338, 337, 259, 255, 338, 242, 240, 338, 255, 242, 270, 339, 287, 270, 277, 339, 267, 340, 266, 267, 341, 340, 287, 342, 269, 287, 339, 342, 269, 341, 267, 269, 342, 341, 266, 343, 272, 266, 340, 343, 286, 344, 285, 286, 345, 344, 228, 335, 239, 228, 282, 335, 288, 345, 286, 288, 346, 345, 268, 346, 288, 268, 347, 346, 284, 347, 268, 284, 289, 347, 285, 292, 274, 285, 344, 292, 348, 318, 319, 348, 349, 318, 350, 349, 348, 351, 349, 350, 352, 349, 351, 353, 349, 352, 309, 349, 353, 309, 331, 349, 354, 356, 355, 354, 357, 356, 357, 358, 356, 357, 359, 358, 354, 361, 360, 354, 355, 361, 362, 314, 359, 359, 314, 358, 358, 314, 315, 360, 361, 363, 363, 361, 313, 363, 313, 364, 364, 313, 311, 365, 363, 305, 364, 327, 363, 327, 305, 363, 366, 368, 367, 366, 369, 368, 4, 370, 7, 4, 371, 370, 8, 373, 372, 8, 9, 373, 12, 367, 13, 12, 366, 367, 372, 370, 374, 372, 373, 370, 374, 371, 375, 374, 370, 371, 369, 371, 368, 369, 375, 371, 4, 368, 371, 4, 16, 368, 16, 367, 368, 16, 13, 367, 7, 373, 9, 7, 370, 373, 376, 378, 377, 376, 379, 378, 378, 381, 380, 378, 382, 381, 383, 385, 384, 383, 386, 385, 387, 389, 388, 387, 390, 389, 391, 393, 392, 391, 394, 393, 394, 388, 393, 394, 387, 388, 395, 392, 396, 395, 391, 392, 393, 398, 397, 393, 388, 398, 396, 400, 399, 396, 392, 400, 401, 403, 402, 401, 404, 403, 388, 405, 398, 388, 389, 405, 392, 397, 400, 392, 393, 397, 404, 406, 403, 404, 407, 406, 407, 399, 406, 407, 396, 399, 389, 402, 405, 389, 401, 402, 403, 406, 408, 406, 399, 408, 405, 402, 408, 397, 398, 409, 399, 409, 408, 399, 400, 409, 402, 403, 408, 398, 408, 409, 398, 405, 408, 400, 397, 409, 410, 407, 404, 410, 411, 407, 411, 396, 407, 411, 395, 396, 412, 404, 401, 412, 410, 404, 390, 401, 389, 390, 412, 401, 413, 415, 414, 413, 416, 415, 417, 419, 418, 417, 420, 419, 421, 417, 422, 421, 423, 417, 423, 420, 417, 423, 424, 420, 425, 422, 426, 425, 421, 422, 424, 427, 420, 424, 428, 427, 429, 426, 416, 429, 425, 426, 428, 430, 427, 428, 431, 430, 432, 416, 413, 432, 429, 416, 433, 435, 434, 433, 436, 435, 437, 439, 438, 437, 440, 439, 441, 443, 442, 441, 434, 443, 444, 446, 445, 444, 447, 446, 448, 450, 449, 448, 445, 450, 445, 451, 450, 445, 446, 451, 449, 450, 452, 450, 451, 452, 451, 453, 452, 416, 426, 415, 424, 455, 454, 424, 423, 455, 428, 454, 456, 428, 424, 454, 431, 413, 430, 431, 432, 413, 457, 383, 458, 457, 459, 383, 379, 382, 378, 379, 460, 382, 461, 377, 462, 461, 376, 377, 459, 386, 383, 459, 463, 386, 460, 458, 382, 460, 457, 458, 463, 464, 386, 463, 465, 464, 465, 462, 464, 465, 461, 462, 377, 380, 466, 377, 378, 380, 386, 467, 385, 386, 464, 467, 464, 468, 467, 464, 462, 468, 458, 384, 469, 458, 383, 384, 462, 466, 468, 462, 377, 466, 382, 469, 381, 382, 458, 469, 384, 471, 470, 384, 385, 471, 385, 472, 471, 385, 467, 472, 467, 473, 472, 467, 468, 473, 469, 470, 474, 469, 384, 470, 381, 474, 475, 381, 469, 474, 468, 476, 473, 468, 466, 476, 466, 477, 476, 466, 380, 477, 380, 475, 477, 380, 381, 475, 430, 414, 478, 430, 413, 414, 420, 479, 419, 420, 427, 479, 422, 418, 480, 422, 417, 418, 427, 478, 479, 427, 430, 478, 481, 483, 482, 481, 484, 483, 485, 482, 440, 485, 481, 482, 484, 486, 483, 484, 487, 486, 488, 440, 437, 488, 485, 440, 489, 434, 441, 489, 433, 434, 436, 437, 435, 436, 488, 437, 487, 441, 486, 487, 489, 441, 483, 456, 454, 483, 486, 456, 440, 455, 439, 440, 482, 455, 486, 442, 456, 486, 441, 442, 435, 438, 490, 435, 437, 438, 434, 490, 443, 434, 435, 490, 482, 454, 455, 482, 483, 454, 447, 491, 446, 447, 492, 491, 493, 448, 494, 493, 495, 448, 495, 445, 448, 495, 444, 445, 494, 449, 496, 494, 448, 449, 446, 453, 451, 446, 491, 453, 496, 449, 452, 426, 480, 415, 426, 422, 480, 443, 429, 432, 443, 490, 429, 432, 442, 443, 432, 431, 442, 423, 439, 455, 423, 421, 439, 425, 490, 438, 425, 429, 490, 456, 431, 428, 456, 442, 431, 438, 421, 425, 438, 439, 421, 497, 499, 498, 497, 500, 499, 414, 415, 500, 497, 478, 500, 478, 414, 500, 415, 480, 500, 492, 494, 491, 492, 493, 494, 496, 491, 494, 496, 453, 491, 453, 496, 452, 501, 503, 502, 501, 504, 503, 505, 507, 506, 505, 508, 507, 506, 510, 509, 506, 507, 510, 509, 504, 501, 509, 510, 504, 511, 506, 512, 511, 505, 506, 513, 502, 514, 513, 501, 502, 515, 501, 513, 515, 509, 501, 512, 509, 515, 512, 506, 509, 516, 518, 517, 516, 519, 518, 519, 520, 518, 519, 521, 520, 521, 522, 520, 521, 523, 522, 524, 514, 525, 524, 513, 514, 523, 526, 522, 523, 527, 526, 528, 513, 524, 528, 515, 513, 527, 529, 526, 527, 530, 529, 531, 515, 528, 531, 512, 515, 532, 512, 531, 532, 511, 512, 533, 517, 534, 533, 516, 517, 518, 536, 535, 518, 520, 536, 520, 537, 536, 520, 522, 537, 522, 538, 537, 522, 526, 538, 526, 539, 538, 526, 529, 539, 534, 541, 540, 534, 517, 541, 517, 535, 541, 517, 518, 535, 538, 543, 542, 538, 539, 543, 536, 545, 544, 536, 537, 545, 535, 544, 546, 535, 536, 544, 541, 546, 547, 541, 535, 546, 537, 542, 545, 537, 538, 542, 540, 547, 548, 540, 541, 547, 540, 508, 505, 540, 548, 508, 502, 543, 539, 502, 503, 543, 534, 505, 511, 534, 540, 505, 514, 539, 529, 514, 502, 539, 533, 511, 532, 533, 534, 511, 525, 529, 530, 525, 514, 529, 549, 192, 550, 549, 191, 192, 551, 553, 552, 551, 554, 553, 198, 555, 200, 198, 552, 555, 556, 558, 557, 556, 559, 558, 552, 560, 555, 552, 553, 560, 550, 206, 561, 550, 192, 206, 553, 557, 560, 553, 556, 557, 559, 561, 558, 559, 550, 561, 561, 208, 562, 561, 206, 208, 563, 565, 564, 563, 566, 565, 555, 568, 567, 555, 560, 568, 558, 562, 569, 558, 561, 562, 217, 570, 220, 217, 571, 570, 572, 223, 573, 572, 222, 223, 560, 574, 568, 560, 557, 574, 557, 569, 574, 557, 558, 569, 566, 573, 575, 566, 572, 573, 563, 572, 566, 200, 567, 227, 200, 555, 567, 570, 229, 230, 570, 576, 229, 573, 231, 232, 573, 223, 231, 576, 234, 229, 576, 577, 234, 575, 232, 235, 575, 573, 232, 220, 230, 236, 220, 570, 230, 577, 235, 234, 577, 575, 235, 578, 568, 574, 578, 579, 568, 567, 579, 571, 567, 568, 579, 571, 227, 567, 571, 217, 227, 572, 569, 562, 572, 563, 569, 562, 222, 572, 562, 208, 222, 574, 563, 578, 574, 569, 563, 571, 579, 570, 570, 579, 580, 570, 580, 576, 581, 583, 582, 584, 245, 585, 584, 244, 245, 247, 586, 250, 247, 587, 586, 588, 253, 589, 588, 252, 253, 590, 592, 591, 590, 582, 592, 258, 593, 261, 258, 594, 593, 595, 589, 596, 595, 588, 589, 582, 597, 592, 582, 583, 597, 581, 585, 583, 581, 584, 585, 583, 598, 597, 583, 585, 598, 594, 591, 593, 594, 590, 591, 596, 600, 599, 596, 589, 600, 601, 599, 602, 601, 596, 599, 250, 603, 271, 250, 586, 603, 589, 272, 600, 589, 253, 272, 588, 597, 598, 588, 595, 597, 587, 261, 593, 587, 247, 261, 591, 592, 604, 593, 605, 587, 593, 591, 605, 598, 252, 588, 598, 275, 252, 592, 595, 606, 592, 597, 595, 585, 275, 598, 585, 245, 275, 271, 607, 278, 271, 603, 607, 575, 609, 608, 575, 577, 609, 566, 608, 565, 566, 575, 608, 578, 564, 610, 578, 563, 564, 577, 611, 609, 577, 576, 611, 579, 610, 612, 579, 578, 610, 606, 595, 613, 613, 595, 601, 601, 595, 596, 587, 605, 586, 586, 605, 614, 586, 614, 615, 586, 616, 603, 586, 615, 616, 615, 617, 616, 616, 617, 601, 616, 601, 602, 606, 619, 618, 606, 613, 619, 605, 621, 620, 605, 604, 621, 604, 618, 621, 604, 606, 618, 604, 605, 591, 592, 606, 604, 508, 622, 507, 508, 623, 622, 504, 624, 503, 504, 625, 624, 510, 625, 504, 510, 626, 625, 507, 626, 510, 507, 622, 626, 546, 628, 627, 546, 544, 628, 544, 629, 628, 544, 545, 629, 545, 630, 629, 545, 542, 630, 542, 631, 630, 542, 543, 631, 548, 633, 632, 548, 547, 633, 547, 627, 633, 547, 546, 627, 305, 306, 634, 308, 309, 635, 636, 638, 637, 548, 623, 508, 548, 632, 623, 503, 631, 543, 503, 624, 631, 314, 639, 317, 314, 640, 639, 317, 641, 319, 317, 639, 641, 635, 643, 642, 635, 644, 643, 634, 323, 645, 634, 306, 323, 644, 645, 643, 644, 634, 645, 308, 642, 325, 308, 635, 642, 646, 647, 305, 648, 650, 649, 648, 649, 646, 646, 634, 644, 644, 648, 646, 648, 644, 635, 646, 305, 634, 309, 651, 635, 651, 648, 635, 638, 649, 650, 637, 638, 650, 554, 556, 553, 554, 652, 556, 653, 550, 559, 653, 549, 550, 334, 552, 198, 334, 551, 552, 652, 559, 556, 652, 653, 559, 580, 612, 654, 580, 579, 612, 336, 594, 258, 336, 655, 594, 655, 590, 594, 655, 656, 590, 656, 582, 590, 656, 581, 582, 603, 657, 607, 603, 616, 657, 599, 659, 658, 599, 600, 659, 616, 660, 657, 616, 602, 660, 602, 658, 660, 602, 599, 658, 600, 343, 659, 600, 272, 343, 615, 662, 661, 615, 614, 662, 576, 654, 611, 576, 580, 654, 617, 661, 663, 617, 615, 661, 601, 663, 664, 601, 617, 663, 613, 664, 619, 613, 601, 664, 614, 620, 662, 614, 605, 620, 665, 319, 641, 665, 348, 319, 665, 666, 348, 665, 667, 666, 665, 668, 667, 665, 353, 668, 651, 353, 665, 309, 353, 651, 669, 671, 670, 669, 672, 671, 670, 674, 673, 670, 671, 674, 669, 675, 672, 669, 676, 675, 640, 673, 674, 362, 673, 640, 362, 640, 314, 676, 637, 675, 676, 677, 637, 637, 677, 636, 636, 677, 678, 365, 305, 677, 678, 677, 647, 647, 677, 305 </int_array>
- </array>
- </dictionary>
- <dictionary name="surfaces/1" shared="false">
- <string> "alphasort" </string>
- <bool> False </bool>
- <string> "material" </string>
- <resource resource_type="Material" path="local://4"> </resource>
- <string> "morph_arrays" </string>
- <array len="0" shared="false">
- </array>
- <string> "primitive" </string>
- <int> 4 </int>
- <string> "arrays" </string>
- <array len="9" shared="false">
- <vector3_array len="625"> 0.23068, 6.41266, 0.879344, 0.754113, 6.74074, 0.551263, 0.754113, 6.81344, 0.551263, 0.23068, 6.48536, 0.879344, 0.845318, 6.86083, 0.103095, 0.845318, 6.93353, 0.103095, 0.754113, 6.74074, -0.345078, 0.754113, 6.81344, -0.345078, 0, 6.36123, 0.969121, 0.257165, 6.36123, 0.969121, 0, 6.41266, 0.879344, 0, 6.36123, -0.762936, 0, 6.41266, -0.673159, 0.23068, 6.41266, -0.673159, 0.257165, 6.36123, -0.762936, 0.23068, 6.48536, -0.673159, 0.2607, 6.45948, -0.774594, 0.852531, 6.83043, -0.403642, 0, 6.48536, -0.673159, 0, 6.48536, 0.879344, 0.955654, 6.96621, 0.103096, 0.852531, 6.83043, 0.609826, 0.2607, 6.45948, 0.980779, 0, 6.45948, -0.774594, 0, 6.45948, 0.980779, 0.144337, 4.62833, -0.267808, 0.227645, 4.56054, -0.149869, 0.230474, 4.54553, -0.1645, 0.145367, 4.61509, -0.285537, 0, 4.66573, -0.327684, 0, 4.65348, -0.346986, 0.16781, 4.49143, -0.0124773, 0.169802, 4.47494, -0.0244043, 2.39441, 2.7167, -0.284614, 2.22321, 2.52508, -0.185319, 2.22875, 2.57563, -0.151192, 2.37464, 2.73891, -0.235805, 0.829811, 0.39491, 0.192334, 0.539954, 0.53255, 0.320534, 0.53677, 0.505704, 0.45924, 0.823707, 0.343455, 0.299719, 0.251731, 0.393841, 0.202075, 0.245627, 0.342385, 0.30946, 2.37016, 3.14596, -0.180206, 2.39069, 3.24439, 0.0703977, 2.51365, 3.10316, 0.122743, 2.49324, 3.00574, -0.125365, 2.02679, 2.71357, 0.205928, 2.02114, 2.64141, -0.071524, 2.14773, 2.50612, -0.0177825, 2.15324, 2.5776, 0.25697, 0.197471, 4.75418, 0.019584, 0.212301, 4.88556, 0.0356146, 0, 4.86123, 0.103096, 0, 4.72999, 0.114516, 2.55604, 3.1449, 0.136694, 2.53359, 3.02984, -0.15501, 2.38915, 3.19439, -0.219368, 2.41174, 3.31063, 0.0752657, 2.13459, 2.5274, 0.293671, 2.28993, 2.80163, 0.457827, 2.27149, 2.82221, 0.391821, 2.44682, 3.07552, 0.376618, 2.41931, 3.04467, 0.327652, 1.98619, 2.68696, 0.233771, 1.97806, 2.60303, -0.0912834, 2.12663, 2.44425, -0.0282163, 2.24859, 2.87814, -0.35026, 2.25039, 2.87648, -0.291744, 2.07568, 2.68462, -0.249978, 2.10304, 2.71157, -0.20629, 2.30152, 3.24052, 0.317542, 2.29549, 3.18528, 0.277312, 2.14291, 2.96404, 0.3995, 2.1462, 2.9606, 0.342119, 1.31621, 3.39795, -0.203802, 1.35829, 3.43387, -0.29479, 1.54119, 3.29007, -0.372791, 1.48496, 3.24915, -0.287145, 0.552121, 0.665123, 0.401021, 0.154027, 0.441809, 0.19622, 0.944465, 0.443271, 0.182901, 0.0964089, 0.00104547, -0.196812, 0.19633, 0.00104547, -0.176104, 0.835003, 0.00104547, -0.205403, 0.736495, 0.00104547, -0.182387, 0.108829, 0.00104547, 0.040049, 0.85902, 0.00104547, 0.0313234, 0.0508581, 0.00104547, 0.0402964, 0.207486, 0.384965, 0.351051, 0.874277, 0.386199, 0.339815, 0.916171, 0.00104547, 0.0302318, 0.543306, 0.573346, 0.523815, 0.158656, 2.88784, -0.132794, 0.242974, 2.8226, -0.0472403, 0.228589, 2.63923, -0.0490058, 0.149215, 2.70638, -0.125392, 0.241672, 4.68094, -0.138747, 0.158365, 4.73746, -0.261278, 0, 4.76911, -0.32375, 0.18264, 4.62281, 0.00355331, 0, 4.46751, 0.137356, 0, 4.44976, 0.12846, 1.6, 5.86123, 0.903096, 1.6, 5.46123, 0.795916, 1.6, 5.42123, 0.865198, 1.6, 5.86123, 0.983096, 1.6, 5.16841, 0.503096, 1.6, 5.09913, 0.543096, 1.6, 5.06123, 0.103096, 1.6, 4.98123, 0.103096, 1.6, 5.46123, -0.589731, 1.6, 5.42123, -0.659013, 1.6, 5.09912, -0.336911, 1.6, 5.16841, -0.296911, 1.6, 5.86123, -0.696911, 1.6, 5.86123, -0.776911, 1.6, 6.26123, -0.589731, 1.6, 6.30123, -0.659013, 1.6, 6.55405, -0.296911, 1.6, 6.62333, -0.336911, 1.15486, 6.36123, 0.969121, 0.685695, 6.36123, 0.969121, 0.765488, 6.24202, 0.864397, 1.07507, 6.24202, 0.864397, 1.2072, 6.11123, 1.03611, 1.10961, 6.07706, 0.908599, 2.0359, 5.66148, 0.449063, 2.0359, 5.51526, 0.30284, 1.90356, 5.8612, 0.10311, 2.0359, 5.46174, 0.103096, 2.0359, 6.20719, 0.30284, 2.0359, 6.06097, 0.449063, 2.0359, 5.51526, -0.0966551, 2.0359, 5.66148, -0.242878, 2.0359, 5.86123, -0.296399, 0, 5.40641, 0.875976, 0, 5.28211, 0.751677, 0.257146, 5.2834, 0.752961, 0.257147, 5.40641, 0.875976, 1.39648, 4.9952, 0.603096, 1.39648, 4.86123, 0.103096, 1.39648, 5.06123, 0.103096, 1.39648, 5.16841, 0.503096, 1.39648, 6.86123, 0.103096, 1.39648, 6.72725, 0.603096, 1.39648, 6.55405, 0.503096, 1.39648, 6.66123, 0.103096, 1.39648, 6.36123, 0.969121, 1.39648, 6.26123, 0.795916, 1.39648, 5.86123, 1.1031, 1.39648, 5.86123, 0.903096, 1.39648, 5.36123, 0.969121, 1.39648, 5.46123, 0.795916, 1.6, 6.66123, 0.103096, 1.6, 6.55405, 0.503096, 1.6, 6.62333, 0.543096, 1.6, 6.74123, 0.103096, 1.6, 6.26123, 0.795916, 1.6, 6.30123, 0.865198, 1.39648, 5.36123, -0.762936, 1.39648, 5.46123, -0.589731, 1.39648, 5.16841, -0.296911, 1.39648, 4.9952, -0.396911, 1.39648, 5.86123, -0.896911, 1.39648, 5.86123, -0.696911, 1.39648, 6.36123, -0.762936, 1.39648, 6.26123, -0.589731, 1.39648, 6.72725, -0.396911, 1.39648, 6.55405, -0.296911, 0.73095, 6.07706, 0.908599, 0.765488, 5.9121, 0.9528, 1.07507, 5.9121, 0.9528, 1.10961, 6.07706, 0.908599, 0.765488, 6.24202, 0.864397, 1.07507, 6.24202, 0.864397, 0.685695, 5.86123, 1.1031, 1.15486, 5.86123, 1.1031, 1.07507, 5.9121, 0.9528, 0.765488, 5.9121, 0.9528, 0.633352, 6.11123, 1.03611, 0.73095, 6.07706, 0.908599, 1.39648, 6.66123, 0.103096, 1.39648, 6.55405, 0.503096, 1.6, 6.55405, 0.503096, 1.6, 6.66123, 0.103096, 1.39648, 6.26123, 0.795916, 1.6, 6.26123, 0.795916, 1.39648, 5.86123, 0.903096, 1.6, 5.86123, 0.903096, 1.39648, 5.46123, 0.795916, 1.6, 5.46123, 0.795916, 1.39648, 5.16841, 0.503096, 1.6, 5.16841, 0.503096, 1.39648, 5.06123, 0.103096, 1.6, 5.06123, 0.103096, 1.39648, 5.46123, -0.589731, 1.6, 5.46123, -0.589731, 1.6, 5.16841, -0.296911, 1.39648, 5.16841, -0.296911, 1.39648, 5.86123, -0.696911, 1.6, 5.86123, -0.696911, 1.39648, 6.26123, -0.589731, 1.6, 6.26123, -0.589731, 1.39648, 6.55405, -0.296911, 1.6, 6.55405, -0.296911, 2.0359, 5.86123, 0.502584, 2.0359, 6.26072, 0.103096, 2.0359, 6.06097, -0.242878, 2.0359, 6.20719, -0.0966551, 0, 5.49634, 0.900073, 0.257147, 5.49634, 0.900073, 0.252264, 4.53307, -0.191655, 0.153299, 4.61636, -0.336561, 0, 4.66231, -0.410127, 0.198102, 4.44663, -0.00271145, 0, 2.66463, 0.20367, 5.00021e-06, 2.4738, 0.177211, 0.102832, 2.48009, 0.176006, 0.109384, 2.67117, 0.201936, 0.251452, 2.74864, 0.0718984, 0.23657, 2.56168, 0.0584772, 0.181152, 2.70508, 0.146183, 0.170392, 2.51572, 0.125662, 0, 2.91839, -0.164227, 5.00021e-06, 2.73725, -0.153025, 1.35355, 3.45169, -0.0607277, 1.50191, 3.29774, -0.132197, 0.413722, 1.77804, 0.182495, 0.302308, 1.69787, 0.09718, 0.311982, 1.54621, 0.0812291, 0.425773, 1.62639, 0.166544, 0.489091, 1.94399, -0.0482645, 0.542593, 1.87364, 0.112398, 0.55748, 1.72198, 0.0964474, 0.506064, 1.79234, -0.0642154, 0.394125, 1.86374, -0.138546, 0.408718, 1.71209, -0.154497, 0.227335, 1.66351, -0.0137039, 0.23599, 1.51185, -0.0296548, 0.0960235, 4.4178, 0.0939296, 1.5172, 3.69575, -0.311084, 1.54768, 3.76732, -0.167808, 1.71449, 3.62366, -0.198996, 1.70474, 3.5573, -0.353999, 1.43134, 3.52144, -0.355117, 1.62434, 3.38222, -0.419987, 1.436, 3.60537, 0.00285106, 1.57608, 3.45117, -0.0476083, 1.51354, 3.73444, -0.0382403, 1.66072, 3.58429, -0.072422, 0.254872, 1.70456, -0.0798497, 0.256767, 1.56023, -0.0958005, 0.288751, 1.77481, -0.152552, 0.300707, 1.62315, -0.168503, 0, 4.41627, 0.145479, 0.841135, 6.72725, 0.603096, 0.841135, 6.72725, -0.396911, 0.942888, 6.86123, 0.103096, -0.23068, 6.41266, 0.879344, -0.23068, 6.48536, 0.879344, -0.754113, 6.81344, 0.551263, -0.754113, 6.74074, 0.551263, -0.845318, 6.93353, 0.103095, -0.845318, 6.86083, 0.103095, -0.754113, 6.74074, -0.345078, -0.754113, 6.81344, -0.345078, -0.257165, 6.36123, 0.969121, -0.257165, 6.36123, -0.762936, -0.23068, 6.41266, -0.673159, -0.23068, 6.48536, -0.673159, -0.852531, 6.83043, -0.403642, -0.2607, 6.45948, -0.774594, -0.852531, 6.83043, 0.609826, -0.955654, 6.96621, 0.103096, -0.2607, 6.45948, 0.980779, -0.144337, 4.62833, -0.267808, -0.145367, 4.61509, -0.285537, -0.230474, 4.54553, -0.1645, -0.227645, 4.56054, -0.149869, -0.169802, 4.47494, -0.0244043, -0.16781, 4.49143, -0.0124773, -2.39441, 2.7167, -0.284614, -2.37464, 2.73891, -0.235805, -2.22875, 2.57563, -0.151192, -2.22321, 2.52508, -0.185319, -0.829811, 0.39491, 0.192334, -0.823707, 0.343455, 0.299719, -0.53677, 0.505704, 0.45924, -0.539954, 0.53255, 0.320534, -0.245627, 0.342385, 0.30946, -0.251731, 0.393841, 0.202075, -2.37016, 3.14596, -0.180206, -2.49324, 3.00574, -0.125365, -2.51365, 3.10316, 0.122743, -2.39069, 3.24439, 0.0703977, -2.02679, 2.71357, 0.205928, -2.15324, 2.5776, 0.25697, -2.14773, 2.50612, -0.0177825, -2.02114, 2.64141, -0.071524, -0.197471, 4.75418, 0.019584, -0.212301, 4.88556, 0.0356146, -2.55604, 3.1449, 0.136694, -2.53359, 3.02984, -0.15501, -2.38915, 3.19439, -0.219368, -2.41174, 3.31063, 0.0752657, -2.13459, 2.5274, 0.293671, -2.27149, 2.82221, 0.391821, -2.28993, 2.80163, 0.457827, -2.44682, 3.07552, 0.376618, -2.41931, 3.04467, 0.327652, -1.98619, 2.68696, 0.233771, -1.97806, 2.60303, -0.0912834, -2.12663, 2.44425, -0.0282163, -2.24859, 2.87814, -0.35026, -2.25039, 2.87648, -0.291744, -2.07568, 2.68462, -0.249978, -2.10304, 2.71157, -0.20629, -2.29549, 3.18528, 0.277312, -2.30152, 3.24052, 0.317542, -2.1462, 2.9606, 0.342119, -2.14291, 2.96404, 0.3995, -1.31621, 3.39795, -0.203802, -1.48496, 3.24915, -0.287145, -1.54119, 3.29007, -0.372791, -1.35829, 3.43387, -0.29479, -0.552121, 0.665123, 0.401021, -0.154027, 0.441809, 0.19622, -0.944465, 0.443271, 0.182901, -0.19633, 0.00104547, -0.176104, -0.0964089, 0.00104547, -0.196812, -0.835003, 0.00104547, -0.205403, -0.736495, 0.00104547, -0.182387, -0.108829, 0.00104547, 0.040049, -0.85902, 0.00104547, 0.0313234, -0.207486, 0.384965, 0.351051, -0.0508581, 0.00104547, 0.0402964, -0.916171, 0.00104547, 0.0302318, -0.874277, 0.386199, 0.339815, -0.543306, 0.573346, 0.523815, -0.158656, 2.88784, -0.132794, -0.149215, 2.70638, -0.125392, -0.228589, 2.63923, -0.0490058, -0.242974, 2.8226, -0.0472403, -0.241672, 4.68094, -0.138747, -0.158365, 4.73746, -0.261278, -0.18264, 4.62281, 0.00355331, -1.6, 5.86123, 0.903096, -1.6, 5.86123, 0.983096, -1.6, 5.42123, 0.865198, -1.6, 5.46123, 0.795916, -1.6, 5.09913, 0.543096, -1.6, 5.16841, 0.503096, -1.6, 4.98123, 0.103096, -1.6, 5.06123, 0.103096, -1.6, 5.46123, -0.589731, -1.6, 5.16841, -0.296911, -1.6, 5.09912, -0.336911, -1.6, 5.42123, -0.659013, -1.6, 5.86123, -0.696911, -1.6, 5.86123, -0.776911, -1.6, 6.26123, -0.589731, -1.6, 6.30123, -0.659013, -1.6, 6.55405, -0.296911, -1.6, 6.62333, -0.336911, -1.15486, 6.36123, 0.969121, -1.07507, 6.24202, 0.864397, -0.765488, 6.24202, 0.864397, -0.685695, 6.36123, 0.969121, -1.2072, 6.11123, 1.03611, -1.10961, 6.07706, 0.908599, -2.0359, 5.66148, 0.449063, -1.90356, 5.8612, 0.10311, -2.0359, 5.51526, 0.30284, -2.0359, 5.46174, 0.103096, -2.0359, 6.20719, 0.30284, -2.0359, 6.06097, 0.449063, -2.0359, 5.51526, -0.0966551, -2.0359, 5.66148, -0.242878, -2.0359, 5.86123, -0.296399, -0.257147, 5.40641, 0.875976, -0.257146, 5.2834, 0.752961, -1.39648, 4.9952, 0.603096, -1.39648, 5.16841, 0.503096, -1.39648, 5.06123, 0.103096, -1.39648, 4.86123, 0.103096, -1.39648, 6.86123, 0.103096, -1.39648, 6.66123, 0.103096, -1.39648, 6.55405, 0.503096, -1.39648, 6.72725, 0.603096, -1.39648, 6.26123, 0.795916, -1.39648, 6.36123, 0.969121, -1.39648, 5.86123, 0.903096, -1.39648, 5.86123, 1.1031, -1.39648, 5.46123, 0.795916, -1.39648, 5.36123, 0.969121, -1.6, 6.66123, 0.103096, -1.6, 6.74123, 0.103096, -1.6, 6.62333, 0.543096, -1.6, 6.55405, 0.503096, -1.6, 6.30123, 0.865198, -1.6, 6.26123, 0.795916, -1.39648, 5.36123, -0.762936, -1.39648, 4.9952, -0.396911, -1.39648, 5.16841, -0.296911, -1.39648, 5.46123, -0.589731, -1.39648, 5.86123, -0.896911, -1.39648, 5.86123, -0.696911, -1.39648, 6.36123, -0.762936, -1.39648, 6.26123, -0.589731, -1.39648, 6.72725, -0.396911, -1.39648, 6.55405, -0.296911, -0.73095, 6.07706, 0.908599, -1.10961, 6.07706, 0.908599, -1.07507, 5.9121, 0.9528, -0.765488, 5.9121, 0.9528, -0.765488, 6.24202, 0.864397, -1.07507, 6.24202, 0.864397, -0.685695, 5.86123, 1.1031, -0.765488, 5.9121, 0.9528, -1.07507, 5.9121, 0.9528, -1.15486, 5.86123, 1.1031, -0.633352, 6.11123, 1.03611, -0.73095, 6.07706, 0.908599, -1.39648, 6.66123, 0.103096, -1.6, 6.66123, 0.103096, -1.6, 6.55405, 0.503096, -1.39648, 6.55405, 0.503096, -1.6, 6.26123, 0.795916, -1.39648, 6.26123, 0.795916, -1.6, 5.86123, 0.903096, -1.39648, 5.86123, 0.903096, -1.6, 5.46123, 0.795916, -1.39648, 5.46123, 0.795916, -1.6, 5.16841, 0.503096, -1.39648, 5.16841, 0.503096, -1.6, 5.06123, 0.103096, -1.39648, 5.06123, 0.103096, -1.39648, 5.46123, -0.589731, -1.39648, 5.16841, -0.296911, -1.6, 5.16841, -0.296911, -1.6, 5.46123, -0.589731, -1.39648, 5.86123, -0.696911, -1.6, 5.86123, -0.696911, -1.39648, 6.26123, -0.589731, -1.6, 6.26123, -0.589731, -1.39648, 6.55405, -0.296911, -1.6, 6.55405, -0.296911, -2.0359, 5.86123, 0.502584, -2.0359, 6.26072, 0.103096, -2.0359, 6.06097, -0.242878, -2.0359, 6.20719, -0.0966551, -0.257147, 5.49634, 0.900073, -0.153299, 4.61636, -0.336561, -0.252264, 4.53307, -0.191655, -0.198102, 4.44663, -0.00271145, -0.109384, 2.67117, 0.201936, -0.102832, 2.48009, 0.176006, -0.251452, 2.74864, 0.0718984, -0.23657, 2.56168, 0.0584772, -0.181152, 2.70508, 0.146183, -0.170392, 2.51572, 0.125662, -1.35355, 3.45169, -0.0607277, -1.50191, 3.29774, -0.132197, -0.413722, 1.77804, 0.182495, -0.425773, 1.62639, 0.166544, -0.311982, 1.54621, 0.0812291, -0.302308, 1.69787, 0.09718, -0.489091, 1.94399, -0.0482645, -0.506064, 1.79234, -0.0642154, -0.55748, 1.72198, 0.0964474, -0.542593, 1.87364, 0.112398, -0.394125, 1.86374, -0.138546, -0.408718, 1.71209, -0.154497, -0.23599, 1.51185, -0.0296548, -0.227335, 1.66351, -0.0137039, -0.0960235, 4.4178, 0.0939296, -1.5172, 3.69575, -0.311084, -1.70474, 3.5573, -0.353999, -1.71449, 3.62366, -0.198996, -1.54768, 3.76732, -0.167808, -1.62434, 3.38222, -0.419987, -1.43134, 3.52144, -0.355117, -1.436, 3.60537, 0.00285106, -1.57608, 3.45117, -0.0476083, -1.66072, 3.58429, -0.072422, -1.51354, 3.73444, -0.0382403, -0.256767, 1.56023, -0.0958005, -0.254872, 1.70456, -0.0798497, -0.288751, 1.77481, -0.152552, -0.300707, 1.62315, -0.168503, -0.841135, 6.72725, 0.603096, -0.841135, 6.72725, -0.396911, -0.942888, 6.86123, 0.103096, 0.177538, 3.25078, -0.147598, 0.271744, 3.18932, -0.0437093, 0.257359, 3.00596, -0.0454748, 0.168097, 3.06931, -0.140196, 0, 3.04628, 0.256587, 0, 2.85545, 0.230128, 0.115936, 2.86226, 0.227866, 0.122488, 3.05335, 0.253795, 0.281216, 3.12258, 0.0987407, 0.266334, 2.93561, 0.0853195, 0.202672, 3.0838, 0.187225, 0.191912, 2.89444, 0.166704, 0, 3.28068, -0.186631, 0, 3.09954, -0.175429, -0.177538, 3.25078, -0.147598, -0.168097, 3.06931, -0.140196, -0.257359, 3.00596, -0.0454748, -0.271744, 3.18932, -0.0437093, -0.122488, 3.05335, 0.253795, -0.115936, 2.86226, 0.227866, -0.281216, 3.12258, 0.0987407, -0.266334, 2.93561, 0.0853195, -0.202672, 3.0838, 0.187225, -0.191912, 2.89444, 0.166704, 0, 4.59875, 0.125936, 0.269727, 4.92174, -0.116503, 0.2557, 4.80134, -0.127625, 0.172392, 4.8466, -0.254748, 0.18642, 4.95573, -0.248219, 0, 4.87249, -0.319817, 0, 4.97587, -0.315884, -0.269727, 4.92174, -0.116503, -0.18642, 4.95573, -0.248219, -0.172392, 4.8466, -0.254748, -0.2557, 4.80134, -0.127625, -0.809978, 3.84435, 0.0462258, -0.978723, 3.69555, -0.0371168, -0.992485, 3.72148, -0.13879, -0.809584, 3.86528, -0.0607897, -1.14747, 3.54675, -0.120459, -1.17539, 3.57767, -0.21679, -0.908494, 3.91354, 0.153681, -1.05685, 3.75959, 0.0822117, -1.2052, 3.60564, 0.010742, -0.954611, 4.1111, -0.182336, -1.14214, 3.97265, -0.225252, -1.21405, 4.05463, -0.105431, -1.04723, 4.19828, -0.0742428, -1.32967, 3.8342, -0.268168, -1.38086, 3.91097, -0.136619, -1.04535, 3.79989, -0.225379, -0.85235, 3.93911, -0.160509, -1.23834, 3.66066, -0.290248, -1.01577, 4.06798, 0.154229, -1.15585, 3.91378, 0.10377, -1.29593, 3.75958, 0.0533104, -1.21917, 4.03474, 0.0301233, -1.07199, 4.18489, 0.0643051, -1.36635, 3.88459, -0.00405846, 0.809978, 3.84435, 0.0462258, 0.809584, 3.86528, -0.0607897, 0.992485, 3.72148, -0.13879, 0.978723, 3.69555, -0.0371168, 1.17539, 3.57767, -0.21679, 1.14747, 3.54675, -0.120459, 0.908494, 3.91354, 0.153681, 1.05685, 3.75959, 0.0822117, 1.2052, 3.60564, 0.010742, 0.954611, 4.1111, -0.182336, 1.04723, 4.19828, -0.0742428, 1.21405, 4.05463, -0.105431, 1.14214, 3.97265, -0.225252, 1.38086, 3.91097, -0.136619, 1.32967, 3.8342, -0.268168, 0.85235, 3.93911, -0.160509, 1.04535, 3.79989, -0.225379, 1.23834, 3.66066, -0.290248, 1.01577, 4.06798, 0.154229, 1.15585, 3.91378, 0.10377, 1.29593, 3.75958, 0.0533104, 1.07199, 4.18489, 0.0643051, 1.21917, 4.03474, 0.0301233, 1.36635, 3.88459, -0.00405846, 0.377566, 2.23301, 0.230347, 0.273286, 2.15284, 0.145033, 0.28296, 2.00118, 0.129082, 0.389618, 2.08136, 0.214396, 0.292634, 1.84952, 0.113131, 0.40167, 1.9297, 0.198445, 0.438171, 2.39896, -0.000411894, 0.497933, 2.32861, 0.160251, 0.51282, 2.17695, 0.1443, 0.455144, 2.24731, -0.0163628, 0.527707, 2.02529, 0.128349, 0.472118, 2.09565, -0.0323137, 0.350345, 2.31871, -0.0906937, 0.364938, 2.16706, -0.106645, 0.379531, 2.0154, -0.122595, 0.20137, 2.11848, 0.0341487, 0.210025, 1.96682, 0.0181978, 0.21868, 1.81516, 0.00224695, 0.249187, 2.13753, -0.031997, 0.251082, 1.9932, -0.0479479, 0.252977, 1.84888, -0.0638988, 0.252884, 2.22978, -0.1047, 0.26484, 2.07812, -0.12065, 0.276796, 1.92646, -0.136601, -0.377566, 2.23301, 0.230347, -0.389618, 2.08136, 0.214396, -0.28296, 2.00118, 0.129082, -0.273286, 2.15284, 0.145033, -0.40167, 1.9297, 0.198445, -0.292634, 1.84952, 0.113131, -0.438171, 2.39896, -0.000411894, -0.455144, 2.24731, -0.0163628, -0.51282, 2.17695, 0.1443, -0.497933, 2.32861, 0.160251, -0.472118, 2.09565, -0.0323137, -0.527707, 2.02529, 0.128349, -0.350345, 2.31871, -0.0906937, -0.364938, 2.16706, -0.106645, -0.379531, 2.0154, -0.122595, -0.210025, 1.96682, 0.0181978, -0.20137, 2.11848, 0.0341487, -0.21868, 1.81516, 0.00224695, -0.251082, 1.9932, -0.0479479, -0.249187, 2.13753, -0.031997, -0.252977, 1.84888, -0.0638988, -0.252884, 2.22978, -0.1047, -0.26484, 2.07812, -0.12065, -0.276796, 1.92646, -0.136601 </vector3_array>
- <vector3_array len="625"> 0.0360096, 0.589157, 0.807216, 0.379162, 0.648277, 0.660282, 0.710781, -0.701771, 0.0480528, 0.391591, -0.775171, 0.495749, 0.722924, 0.690928, -0, 0.722446, -0.691427, 0, 0.378912, 0.647849, -0.660846, 0.710746, -0.701737, -0.0490515, 0, 0.610678, 0.791879, -0.0350367, 0.578606, 0.814854, 0, 0.501628, 0.865083, 0, 0.610194, -0.792252, 0, 0.501194, -0.865335, 0.0359806, 0.588682, -0.807564, -0.0350082, 0.578135, -0.81519, 0.391397, -0.774786, -0.496503, 0.323297, -0.752692, -0.573527, 0.770859, -0.534596, -0.346386, 0, -0.789191, -0.614148, 0, -0.789675, 0.613525, 0.868674, -0.495384, 0, 0.771126, -0.534781, 0.345505, 0.323483, -0.753124, 0.572855, 0, -0.789191, -0.614148, 0, -0.789675, 0.613525, 0.705688, 0.318859, -0.63272, 0.999838, 0.00999838, 0.0149976, 0.799697, 0.565786, 0.200924, 0.540954, 0.82793, -0.147987, 0, 0.473026, -0.881048, 0, 0.986122, -0.166021, 0.790431, -0.193105, 0.581317, 0.744403, 0.310168, 0.59132, -0.210106, 0.16008, -0.964484, -0.609658, -0.17619, -0.772835, -0.695748, -0.0600646, -0.71577, -0.418461, 0.236261, -0.876967, 0.72763, -0.205178, 0.654566, 0.0120115, 0.213204, 0.976934, -0.0129987, 0.889909, -0.455953, 0.408168, 0.754311, -0.514212, -0.717691, -0.0310299, 0.69567, -0.403281, 0.782544, -0.47433, 0.962114, -0.068008, -0.264031, 0.98219, 0.109021, 0.15303, -0.0740053, 0.995071, -0.0660047, -0.0730215, 0.709209, -0.701207, 0.120177, -0.831221, 0.542797, 0.130096, -0.988732, -0.0740548, -0.9642, -0.11214, -0.240299, -0.953245, 0.0220288, 0.301394, 0.741648, -0.0980857, 0.66358, 0.557506, -0.667605, 0.493448, 0, -0.762778, 0.64666, 0, -0.0440454, 0.99903, 0.0889861, 0.993844, -0.0659897, 0.0490036, 0.723054, -0.689051, 0.897953, 0.117994, -0.423978, 0.920375, 0.351143, 0.17207, -0.901333, -0.16224, 0.401594, -0.618771, 0.285356, 0.731912, -0.721733, 0.300305, 0.623633, -0.242219, 0.80573, 0.54049, -0.400552, 0.758045, 0.514709, -0.0350519, -0.808196, 0.58787, -0.0460378, -0.996819, -0.0650535, -0.891041, -0.346405, -0.293343, 0.6294, -0.428272, -0.648412, 0.728593, -0.433353, -0.530432, 0.267172, -0.820528, -0.505325, 0.35736, -0.806813, -0.470474, 0.622553, 0.221196, 0.750666, 0.819836, -0.00400408, 0.572584, 0.297403, -0.309419, 0.903223, 0.487706, -0.344499, 0.802162, -0.679917, -0.730986, -0.0580783, -0.592431, -0.368268, -0.716522, -0.511638, -0.289361, -0.809009, -0.812045, -0.505651, -0.291375, -0.00700771, -0.117129, 0.993092, -0.674119, -0.252419, 0.694153, 0.797008, -0.304385, 0.521659, -0.753305, -0.654134, 0.0681181, -0.216317, -0.957402, 0.19128, 0.713493, -0.691478, -0.113078, 0.194204, -0.972021, 0.132139, -0.686439, 0.302193, -0.661423, 0.711943, 0.135989, -0.688945, -0.702756, -0.294317, -0.647697, -0.616626, 0.733745, -0.28529, 0.714816, 0.636836, -0.288926, 0.64207, -0.336037, -0.689075, 0.0110026, 0.996233, -0.0860201, 0.456853, -0.0569817, -0.887715, 0.891957, -0.0679967, -0.446978, 0.947519, 0.264145, -0.180099, 0.609974, 0.430981, -0.664971, 0.983744, -0.109971, -0.141963, 0.618615, -0.0169894, -0.785511, 0, 0.0229939, -0.999736, 0.785814, -0.0981016, 0.610633, 0, -0.271413, 0.962463, 0, 0.126129, 0.992014, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -0.167145, 0.336293, 0.926806, 0.168118, 0.336236, 0.926651, 0.327528, -0.185299, 0.926493, -0.326633, -0.185359, 0.926797, -0.401672, 0.237397, 0.884479, -0.493594, 0.225271, 0.840011, 0.984527, -0.0870466, 0.152081, 0.984527, -0.152081, 0.0870466, 1, 0, -0, 0.984551, -0.175098, 0, 0.984377, 0.153059, 0.0870333, 0.984441, 0.0880395, 0.152068, 0.984441, -0.152068, -0.0880395, 0.984377, -0.0870333, -0.153059, 0.984378, 0, -0.176068, 0, -0.499694, 0.866202, 0, -0.0770792, 0.997025, -0.353503, -0.137195, 0.925318, -0.4965, -0.437441, 0.749755, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 0, 0.25922, 0.965818, 0, 0.25922, 0.965818, 0, 0.25922, 0.965818, 0, 0.25922, 0.965818, 0, 0.25922, 0.965818, 0, 0.25922, 0.965818, 0.168109, 0.172111, 0.970627, -0.167136, 0.17214, 0.97079, -0.326504, 0.624964, 0.709094, 0.327398, 0.62476, 0.708862, 0.402511, 0.237301, 0.884123, 0.494351, 0.22516, 0.839595, 0.770022, 0.638018, -0, 0.77049, 0.552351, 0.318202, -0.770083, 0.552777, 0.318448, -0.769614, 0.638509, 0, 0.77067, 0.319278, 0.551479, -0.770263, 0.319524, 0.551905, 0.770513, 0, 0.637424, -0.770106, 0, 0.637916, 0.770916, -0.318378, 0.551655, -0.770509, -0.318624, 0.552081, 0.770916, -0.551655, 0.318378, -0.770509, -0.552081, 0.318624, 0.770513, -0.637424, 0, -0.770106, -0.637916, 0, 0.77049, -0.318202, -0.552351, -0.770083, -0.318448, -0.552777, -0.770263, -0.551905, -0.319524, 0.77067, -0.551479, -0.319278, 0.770022, 0, -0.638018, -0.769614, 0, -0.638509, 0.770245, 0.319101, -0.552175, -0.769837, 0.319347, -0.552601, 0.770245, 0.552175, -0.319101, -0.769837, 0.552601, -0.319347, 0.984551, 0, 0.175098, 0.984378, 0.176068, -0, 0.984291, 0.088026, -0.153045, 0.984291, 0.153045, -0.088026, 0, -0.848897, 0.528558, -0.359502, -0.75906, 0.542758, 0.269002, 0.885006, 0.380003, 0.175995, 0.932972, 0.31399, 0, 0.941447, 0.33716, 0.24712, 0.836407, 0.489238, 0, -0.135113, 0.99083, 0, 0.0700382, 0.997544, 0.320359, 0.0650729, 0.945059, 0.353552, -0.136213, 0.925444, 0.952453, -0.0990471, 0.288137, 0.880048, 0.129007, 0.457025, 0.701409, -0.115067, 0.70341, 0.644507, 0.0390307, 0.763601, 0, -0.0550267, -0.998485, 0, 0.542878, -0.839811, -0.285466, -0.616005, 0.734198, -0.764085, -0.38755, 0.515732, -0.0240167, -0.100069, 0.994691, -0.686889, -0.119154, 0.716928, -0.74958, 0.0670519, 0.658509, -0.318438, 0.223307, 0.921266, 0.825985, 0.143997, -0.54499, 0.923944, 0.0519969, 0.378977, 0.455352, 0.602466, 0.655507, 0.565223, 0.681269, -0.465184, 0.342959, 0.132984, -0.929889, -0.0789773, 0.541844, -0.83676, -0.991178, -0.058069, 0.119142, -0.969378, 0.150213, 0.194276, 0.245128, 0.817427, 0.521272, 0.232988, 0.56297, -0.792958, 0.642155, 0.763184, -0.0720174, 0.308094, 0.942288, -0.13104, 0.167052, 0.584181, -0.794246, -0.281137, 0.0480233, -0.958465, -0.160029, 0.076014, -0.984181, 0.184197, -0.152163, 0.97104, -0.409744, 0.0530964, 0.910654, 0.581446, 0.410315, 0.702539, 0.0380266, 0.718502, 0.694485, -0.910035, 0.00700797, -0.414472, -0.943047, 0.164182, -0.289321, -0.529471, 0.0660587, -0.845752, -0.728454, 0.359224, -0.583363, 0, 0.768221, 0.640184, -0.0380063, 0.865143, 0.500083, -0.0379873, 0.86471, -0.500832, -0.001, 1, 0, -0.0350106, 0.589178, 0.807244, -0.390743, -0.775474, 0.495943, -0.710285, -0.70227, 0.048087, -0.378305, 0.648523, 0.660533, -0.721967, -0.691927, 0, -0.722446, 0.691427, 0, -0.378055, 0.648094, -0.661096, -0.71025, -0.702236, -0.0490864, 0.0360365, 0.578586, 0.814825, 0.0360071, 0.578114, -0.815161, -0.0349823, 0.588703, -0.807592, -0.390549, -0.775089, -0.496698, -0.770452, -0.535009, -0.346654, -0.322401, -0.752935, -0.573713, -0.77072, -0.535194, 0.345772, -0.868428, -0.495815, 0, -0.322586, -0.753368, 0.57304, -0.705185, 0.319084, -0.633166, -0.540246, 0.828378, -0.148068, -0.799337, 0.566238, 0.201085, -0.999837, 0.0100084, 0.0150126, -0.743957, 0.310399, 0.591761, -0.790055, -0.193258, 0.581777, 0.211062, 0.160047, -0.964281, 0.419287, 0.236161, -0.876599, 0.696264, -0.0600228, -0.715271, 0.610287, -0.176083, -0.772363, -0.727158, -0.205327, 0.655043, -0.407334, 0.754619, -0.514422, 0.0139984, 0.889897, -0.455947, -0.0110107, 0.213206, 0.976945, 0.404118, 0.782228, -0.474138, 0.718176, -0.0310076, 0.69517, -0.962039, -0.0680735, -0.264285, 0.0740164, 0.709157, -0.701155, 0.0749998, 0.994997, -0.0659998, -0.982154, 0.109128, 0.15318, -0.119189, -0.831321, 0.542862, 0.953337, 0.0220078, 0.301106, 0.96427, -0.112031, -0.240067, -0.129112, -0.98886, -0.0740644, -0.741197, -0.0981585, 0.664072, -0.556815, -0.667978, 0.493723, -0.087994, 0.993932, -0.0659955, -0.0480059, 0.723089, -0.689085, -0.897759, 0.1181, -0.424359, -0.920222, 0.351467, 0.172229, 0.90152, -0.162094, 0.401232, 0.722212, 0.300088, 0.623183, 0.619388, 0.285179, 0.731458, 0.243161, 0.805534, 0.540358, 0.401392, 0.757741, 0.514503, 0.0360521, -0.808167, 0.587849, 0.0470365, -0.996773, -0.0650504, 0.891247, -0.346096, -0.293081, -0.628795, -0.428542, -0.648821, -0.728123, -0.433669, -0.530819, -0.266242, -0.820747, -0.50546, -0.356487, -0.807102, -0.470642, -0.819508, -0.00400737, 0.573054, -0.621939, 0.221334, 0.751134, -0.486942, -0.344667, 0.802553, -0.296489, -0.309511, 0.903492, 0.680455, -0.730488, -0.0580388, 0.812386, -0.50524, -0.291138, 0.512377, -0.289213, -0.808595, 0.59308, -0.36805, -0.716097, 0.00800875, -0.117128, 0.993085, 0.674665, -0.252249, 0.693684, -0.796642, -0.304628, 0.522076, 0.217271, -0.957194, 0.191239, 0.753738, -0.65364, 0.0680667, -0.713001, -0.691972, -0.113159, -0.19324, -0.972209, 0.132164, 0.686968, 0.301986, -0.660969, -0.711449, 0.136086, -0.689435, 0.617246, 0.733292, -0.285114, 0.703262, -0.29411, -0.647241, -0.641482, -0.336253, -0.689518, -0.714327, 0.637291, -0.289132, -0.0100024, 0.996243, -0.086021, -0.456062, -0.0570077, -0.88812, -0.609345, 0.431244, -0.665377, -0.947416, 0.264395, -0.18027, -0.891752, -0.0680574, -0.447377, -0.983712, -0.11008, -0.142103, -0.617997, -0.0169999, -0.785996, -0.785431, -0.0981788, 0.611113, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 0.168118, 0.336236, 0.926651, 0.327528, -0.185299, 0.926493, -0.326633, -0.185359, 0.926797, -0.167145, 0.336293, 0.926806, 0.402511, 0.237301, 0.884123, 0.494351, 0.22516, 0.839595, -0.984497, -0.0871325, 0.152231, -1, 0, 0, -0.984497, -0.152231, 0.0871325, -0.98452, -0.175271, 0, -0.984346, 0.15321, 0.0871191, -0.98441, 0.0881262, 0.152218, -0.98441, -0.152218, -0.0881262, -0.984346, -0.0871191, -0.15321, -0.984347, 0, -0.176241, 0.497254, -0.437223, 0.749383, 0.354379, -0.137147, 0.92499, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0.25922, 0.965818, 0, 0.25922, 0.965818, 0, 0.25922, 0.965818, 0, 0.25922, 0.965818, 0, 0.25922, 0.965818, 0, 0.25922, 0.965818, -0.167136, 0.17214, 0.97079, -0.326504, 0.624964, 0.709094, 0.327398, 0.62476, 0.708862, 0.168109, 0.172111, 0.970627, -0.401672, 0.237397, 0.884479, -0.493594, 0.225271, 0.840011, -0.769614, 0.638509, 0, 0.770022, 0.638018, -0, 0.77049, 0.552351, 0.318202, -0.770083, 0.552777, 0.318448, 0.77067, 0.319278, 0.551479, -0.770263, 0.319524, 0.551905, 0.770513, 0, 0.637424, -0.770106, 0, 0.637916, 0.770916, -0.318378, 0.551655, -0.770509, -0.318624, 0.552081, 0.770916, -0.551655, 0.318378, -0.770509, -0.552081, 0.318624, 0.770513, -0.637424, 0, -0.770106, -0.637916, 0, -0.770083, -0.318448, -0.552777, -0.770263, -0.551905, -0.319524, 0.77067, -0.551479, -0.319278, 0.77049, -0.318202, -0.552351, -0.769614, 0, -0.638509, 0.770022, 0, -0.638018, -0.769837, 0.319347, -0.552601, 0.770245, 0.319101, -0.552175, -0.769837, 0.552601, -0.319347, 0.770245, 0.552175, -0.319101, -0.98452, 0, 0.175271, -0.984347, 0.176241, 0, -0.98426, 0.0881128, -0.153196, -0.98426, 0.153196, -0.0881128, 0.360374, -0.758786, 0.542562, -0.175025, 0.933135, 0.314046, -0.268074, 0.885244, 0.380105, -0.246181, 0.836614, 0.489359, -0.352675, -0.136261, 0.925772, -0.31946, 0.0650937, 0.945361, -0.95236, -0.0991416, 0.288412, -0.879823, 0.129121, 0.457428, -0.7009, -0.115148, 0.703904, -0.643922, 0.0390559, 0.764094, 0.286385, -0.615829, 0.733988, 0.764501, -0.387254, 0.515338, 0.0250168, -0.100067, 0.994666, 0.319337, 0.223236, 0.920972, 0.750018, 0.0670016, 0.658015, 0.687417, -0.119072, 0.716435, -0.825667, 0.144116, -0.54544, -0.564542, 0.681654, -0.465447, -0.454558, 0.60274, 0.655806, -0.923798, 0.0520449, 0.379327, -0.342076, 0.13303, -0.930208, 0.0799707, 0.541802, -0.836693, 0.969438, 0.150068, 0.194088, 0.991195, -0.0580114, 0.119023, -0.244187, 0.817627, 0.5214, -0.232042, 0.563101, -0.793142, -0.166079, 0.584278, -0.794378, -0.307188, 0.942578, -0.13108, -0.641567, 0.763675, -0.0720637, 0.161004, 0.0760018, -0.984023, 0.282058, 0.0480098, -0.958196, -0.18323, -0.152191, 0.971218, 0.410577, 0.0530746, 0.91028, -0.0370272, 0.718529, 0.694511, -0.580783, 0.410554, 0.702948, 0.943158, 0.164027, -0.289048, 0.910207, 0.00700159, -0.414094, 0.530191, 0.0660237, -0.845304, 0.728923, 0.358962, -0.582938, 0.039005, 0.86511, 0.500063, 0.0389854, 0.864677, -0.500813, 0.002, 0.999998, -0, 0.307062, -0.405082, -0.861174, 0.644374, -0.493286, -0.584339, 0.899636, -0.0680481, -0.431305, 0.473063, -0.0580077, -0.879117, 0, -0.746027, 0.665916, 0, -0.135113, 0.99083, 0.361199, -0.136075, 0.922507, 0.355385, -0.786851, 0.504546, 0.758512, -0.647437, -0.07405, 0.952727, -0.0990756, 0.287219, 0.641692, -0.681736, 0.351379, 0.709379, -0.115062, 0.695372, 0, -0.36621, -0.930532, 0, -0.0550267, -0.998485, -0.306156, -0.405206, -0.861439, -0.472286, -0.0580352, -0.879533, -0.899445, -0.0681094, -0.431694, -0.643788, -0.493604, -0.584716, -0.354509, -0.787131, 0.504725, -0.360328, -0.136124, 0.92284, -0.758087, -0.647929, -0.0741063, -0.952635, -0.0991702, 0.287493, -0.641103, -0.682174, 0.351605, -0.708882, -0.115143, 0.695866, 0, -0.0550817, 0.998482, 0.721736, -0.682696, -0.114116, 0.984884, -0.110987, -0.132984, 0.620192, -0.0180056, -0.784243, 0.463983, -0.666975, -0.582978, 0, 0.0239931, -0.999712, 0, -0.812786, -0.582563, -0.721256, -0.68319, -0.114199, -0.463198, -0.667285, -0.583249, -0.619576, -0.0180168, -0.78473, -0.984854, -0.111096, -0.133115, -0.712291, -0.694258, -0.103187, 0.595443, -0.778579, 0.198147, 0.653726, -0.55762, -0.511568, -0.639939, -0.7491, -0.171251, 0.643677, -0.761801, 0.0730768, 0.630288, -0.468214, -0.619283, -0.730652, -0.680607, -0.0540482, 0.116169, -0.506735, 0.854239, 0.201265, -0.563742, 0.801054, -0.905093, -0.411497, -0.107129, -0.0970155, 0.416066, -0.904144, -0.581217, 0.747279, -0.32212, -0.864338, -0.499774, -0.0560868, -0.164974, 0.491923, -0.854866, -0.616439, 0.761542, -0.200142, 0.407071, -0.149026, -0.901157, -0.759004, -0.614813, -0.214283, 0.347173, -0.0500249, -0.936466, -0.848814, -0.528507, -0.0140134, -0.344309, 0.00500449, 0.938843, -0.266308, -0.0730846, 0.961113, -0.669545, 0.542441, 0.507413, -0.833134, -0.540736, -0.116158, -0.62997, 0.48074, 0.609939, 0.712784, -0.693763, -0.103113, 0.64053, -0.74862, -0.171142, -0.653152, -0.557985, -0.511903, -0.594796, -0.779043, 0.198265, -0.629685, -0.46851, -0.619674, -0.64309, -0.762292, 0.0731239, 0.731118, -0.68011, -0.0540087, -0.11518, -0.506794, 0.854338, -0.200304, -0.563855, 0.801215, 0.905274, -0.411124, -0.107032, 0.864591, -0.499341, -0.0560383, 0.581879, 0.746844, -0.321933, 0.0980061, 0.416026, -0.904056, 0.617059, 0.761072, -0.200019, 0.165946, 0.491841, -0.854724, 0.759428, -0.614346, -0.214121, -0.406236, -0.149087, -0.901524, -0.346292, -0.0500423, -0.936791, 0.849093, -0.528058, -0.0140015, 0.345191, 0.00500277, 0.938519, 0.267238, -0.0730651, 0.960857, 0.83344, -0.540285, -0.116061, 0.670096, 0.542078, 0.507073, 0.630574, 0.480437, 0.609555, 0.652602, -0.667616, 0.35833, 0.272405, -0.803194, 0.529788, -0.69805, -0.119179, 0.706062, -0.0250168, -0.100067, 0.994666, -0.692476, -0.119254, 0.711516, -0.0250168, -0.100067, 0.994666, 0.794806, -0.441448, -0.416422, 0.800238, -0.563168, -0.206061, 0.931286, 0.0550169, 0.360111, 0.825985, 0.143997, -0.54499, 0.927789, 0.0530451, 0.369314, 0.825985, 0.143997, -0.54499, 0.823173, -0.419088, -0.383081, 0.35507, 0.134026, -0.925182, 0.348836, 0.133937, -0.927564, 0.241336, -0.969348, -0.0460641, -0.998282, -0.049063, 0.0320411, -0.995768, -0.0530409, 0.0750579, -0.256367, -0.749072, -0.610874, -0.92242, 0.00300137, -0.386176, -0.915525, 0.00500287, -0.402231, 0.679395, -0.526306, -0.511297, -0.621461, 0.0540401, -0.781579, -0.575446, 0.0600465, -0.815632, -0.652026, -0.668052, 0.358564, 0.0260168, -0.100064, 0.994641, 0.698563, -0.119096, 0.705568, -0.271477, -0.803413, 0.529932, 0.0260168, -0.100064, 0.994641, 0.692997, -0.119171, 0.711023, -0.794437, -0.441799, -0.416754, -0.825667, 0.144116, -0.54544, -0.931153, 0.0550682, 0.360446, -0.799878, -0.563619, -0.206226, -0.825667, 0.144116, -0.54544, -0.92765, 0.0530944, 0.369657, -0.82285, -0.419434, -0.383396, -0.354195, 0.134074, -0.925511, -0.347958, 0.133984, -0.927887, 0.998285, -0.049014, 0.0320091, -0.240392, -0.969582, -0.0460752, 0.995776, -0.0529881, 0.0749831, 0.922569, 0.0029986, -0.38582, 0.257302, -0.748879, -0.610717, 0.915686, 0.00499829, -0.401862, -0.678856, -0.526664, -0.511645, 0.622074, 0.0540065, -0.781093, 0.576115, 0.060012, -0.815163 </vector3_array>
- <nil> </nil>
- <nil> </nil>
- <nil> </nil>
- <nil> </nil>
- <real_array len="2500"> 6, 7, 0, 0, 6, 7, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 6, 7, 0, 0, 7, 0, 0, 0, 7, 6, 0, 0, 7, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 7, 0, 0, 6, 7, 0, 0, 6, 7, 0, 0, 6, 7, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 6, 3, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 3, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 8, 9, 3, 0, 8, 9, 3, 0, 8, 9, 0, 0, 8, 9, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 1, 3, 0, 0, 1, 3, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 6, 0, 0, 3, 6, 0, 0, 3, 6, 0, 0, 3, 6, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 1, 3, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 0, 1, 3, 0, 0, 1, 0, 0, 0, 1, 3, 0, 0, 1, 0, 0, 0, 1, 3, 0, 0, 1, 0, 0, 0, 8, 9, 3, 0, 8, 9, 0, 0, 12, 13, 1, 0, 12, 13, 1, 0, 12, 13, 0, 0, 12, 13, 0, 0, 12, 13, 1, 0, 12, 13, 1, 0, 12, 13, 0, 0, 12, 13, 0, 0, 12, 13, 1, 0, 12, 13, 0, 0, 12, 13, 1, 0, 12, 13, 0, 0, 3, 0, 0, 0, 8, 9, 3, 0, 8, 9, 3, 0, 8, 9, 0, 0, 9, 8, 0, 0, 9, 8, 3, 0, 9, 8, 0, 0, 9, 8, 3, 0, 9, 8, 0, 0, 8, 9, 3, 0, 8, 9, 0, 0, 12, 13, 1, 0, 12, 13, 0, 0, 12, 13, 1, 0, 12, 13, 0, 0, 3, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 7, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 6, 7, 0, 0, 7, 0, 0, 0, 6, 7, 0, 0, 7, 6, 0, 0, 7, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 7, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 16, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 6, 3, 0, 0, 6, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 10, 11, 3, 0, 10, 11, 0, 0, 10, 11, 0, 0, 10, 11, 3, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 1, 3, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 0, 3, 6, 0, 0, 3, 6, 0, 0, 3, 6, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 1, 3, 0, 0, 1, 0, 0, 0, 1, 3, 0, 0, 1, 0, 0, 0, 1, 3, 0, 0, 1, 0, 0, 0, 10, 11, 3, 0, 10, 11, 0, 0, 15, 16, 1, 0, 15, 16, 0, 0, 15, 16, 0, 0, 15, 16, 1, 0, 15, 16, 1, 0, 15, 16, 0, 0, 15, 16, 0, 0, 15, 16, 1, 0, 15, 16, 1, 0, 15, 16, 0, 0, 15, 16, 0, 0, 15, 16, 1, 0, 3, 0, 0, 0, 10, 11, 3, 0, 11, 10, 0, 0, 10, 11, 0, 0, 10, 11, 3, 0, 11, 10, 0, 0, 11, 10, 3, 0, 11, 10, 3, 0, 11, 10, 0, 0, 10, 11, 0, 0, 10, 11, 3, 0, 15, 16, 0, 0, 15, 16, 1, 0, 15, 16, 1, 0, 15, 16, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 1, 0, 0, 3, 1, 0, 0, 3, 0, 0, 0, 3, 1, 0, 0, 3, 1, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 1, 0, 0, 3, 0, 0, 0, 3, 1, 0, 0, 3, 0, 0, 0, 3, 1, 0, 0, 3, 0, 0, 0, 3, 1, 0, 0, 3, 1, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 1, 0, 0, 3, 0, 0, 0, 3, 1, 0, 0, 3, 0, 0, 0, 3, 1, 0, 0, 3, 6, 0, 0, 6, 0, 0, 0, 6, 3, 0, 0, 6, 3, 0, 0, 6, 0, 0, 0, 6, 3, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 3, 0, 0, 6, 3, 0, 0, 3, 0, 0, 0, 3, 10, 11, 0, 3, 10, 11, 0, 3, 0, 0, 0, 3, 10, 11, 0, 3, 10, 11, 0, 3, 0, 0, 0, 3, 10, 11, 0, 3, 10, 11, 0, 3, 0, 0, 0, 3, 10, 11, 0, 3, 10, 11, 0, 3, 0, 0, 0, 3, 11, 10, 0, 3, 10, 11, 0, 3, 11, 10, 0, 3, 0, 0, 0, 3, 11, 10, 0, 3, 0, 0, 0, 3, 11, 10, 0, 3, 11, 10, 0, 3, 10, 11, 0, 3, 0, 0, 0, 3, 10, 11, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 8, 9, 0, 3, 8, 9, 0, 3, 8, 9, 0, 3, 8, 9, 0, 3, 0, 0, 0, 3, 8, 9, 0, 3, 8, 9, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 8, 9, 0, 3, 8, 9, 0, 3, 8, 9, 0, 3, 9, 8, 0, 3, 0, 0, 0, 3, 9, 8, 0, 3, 9, 8, 0, 3, 0, 0, 0, 3, 9, 8, 0, 3, 9, 8, 0, 3, 0, 0, 0, 3, 8, 9, 0, 3, 8, 9, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 13, 0, 1, 12, 13, 0, 1, 12, 13, 0, 1, 12, 13, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 13, 0, 1, 12, 13, 0, 1, 12, 13, 0, 1, 12, 13, 0, 1, 12, 0, 0, 12, 1, 13, 0, 12, 1, 13, 0, 1, 0, 0, 0, 1, 12, 13, 0, 1, 12, 13, 0, 1, 0, 0, 0, 1, 12, 13, 0, 1, 12, 13, 0, 1, 0, 0, 0, 1, 12, 13, 0, 1, 12, 13, 0, 1, 0, 0, 0, 1, 15, 16, 0, 1, 15, 16, 0, 1, 0, 0, 0, 1, 15, 16, 0, 1, 15, 16, 0, 1, 0, 0, 0, 1, 15, 16, 0, 1, 15, 16, 0, 1, 0, 0, 0, 1, 15, 16, 0, 1, 15, 16, 0, 1, 15, 0, 0, 15, 1, 16, 0, 15, 1, 16, 0, 1, 15, 16, 0, 1, 0, 0, 0, 1, 15, 16, 0, 1, 15, 16, 0, 1, 0, 0, 0, 1, 15, 16, 0, 1, 0, 0, 0, 1, 15, 16, 0, 1, 15, 16, 0 </real_array>
- <real_array len="2500"> 0.500006, 0.499994, 0, 0, 0.500036, 0.499964, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.508359, 0.491641, 0, 0, 1, 0, 0, 0, 0.500012, 0.499988, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.500137, 0.499863, 0, 0, 0.997415, 0.00258508, 0, 0, 0.5, 0.5, 0, 0, 0.502778, 0.497222, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.439327, 0.339942, 0.220731, 0, 0.397775, 0.362587, 0.239639, 0, 0.523139, 0.476861, 0, 0, 0.563768, 0.436232, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 0.666667, 0.333333, 0, 0, 0.666667, 0.333333, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 0.66667, 0.33333, 0, 0, 1, 0, 0, 0, 0.412375, 0.353797, 0.233829, 0, 0.538228, 0.461772, 0, 0, 0.544073, 0.274503, 0.181424, 0, 0.550005, 0.266658, 0.183337, 0, 0.673479, 0.326521, 0, 0, 0.664658, 0.335342, 0, 0, 0.546797, 0.270935, 0.182268, 0, 0.544673, 0.273746, 0.181581, 0, 0.665519, 0.334481, 0, 0, 0.668675, 0.331325, 0, 0, 0.615652, 0.230199, 0.154149, 0, 0.6672, 0.3328, 0, 0, 0.544198, 0.2744, 0.181402, 0, 0.664792, 0.335208, 0, 0, 1, 0, 0, 0, 0.37581, 0.37581, 0.24838, 0, 0.378779, 0.374023, 0.247199, 0, 0.503159, 0.496841, 0, 0, 0.5, 0.5, 0, 0, 0.399773, 0.361383, 0.238845, 0, 0.525218, 0.474782, 0, 0, 0.409739, 0.358697, 0.231565, 0, 0.533212, 0.466788, 0, 0, 0.375815, 0.375807, 0.248378, 0, 0.500006, 0.499994, 0, 0, 0.56732, 0.24294, 0.18974, 0, 0.700171, 0.299829, 0, 0, 0.544164, 0.274448, 0.181388, 0, 0.66474, 0.33526, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.500006, 0.499994, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.500036, 0.499964, 0, 0, 1, 0, 0, 0, 0.508359, 0.491641, 0, 0, 0.500012, 0.499988, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.502778, 0.497222, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.439327, 0.339942, 0.220731, 0, 0.563768, 0.436232, 0, 0, 0.523139, 0.476861, 0, 0, 0.397775, 0.362587, 0.239639, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 0.666667, 0.333333, 0, 0, 0.666667, 0.333333, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 0.412375, 0.353797, 0.233829, 0, 0.538228, 0.461772, 0, 0, 0.544073, 0.274503, 0.181424, 0, 0.664658, 0.335342, 0, 0, 0.673479, 0.326521, 0, 0, 0.550005, 0.266658, 0.183337, 0, 0.546797, 0.270935, 0.182268, 0, 0.668675, 0.331325, 0, 0, 0.665519, 0.334481, 0, 0, 0.544673, 0.273746, 0.181581, 0, 0.615652, 0.230199, 0.154149, 0, 0.6672, 0.3328, 0, 0, 0.664792, 0.335208, 0, 0, 0.544198, 0.2744, 0.181402, 0, 1, 0, 0, 0, 0.37581, 0.37581, 0.24838, 0, 0.5, 0.5, 0, 0, 0.503159, 0.496841, 0, 0, 0.378779, 0.374023, 0.247199, 0, 0.525218, 0.474782, 0, 0, 0.399773, 0.361383, 0.238845, 0, 0.409739, 0.358697, 0.231565, 0, 0.533212, 0.466788, 0, 0, 0.500006, 0.499994, 0, 0, 0.375815, 0.375807, 0.248378, 0, 0.700171, 0.299829, 0, 0, 0.56732, 0.24294, 0.18974, 0, 0.544164, 0.274448, 0.181388, 0, 0.66474, 0.33526, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 0.666663, 0.333337, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 0.718253, 0.15884, 0.122907, 0, 0.739344, 0.136359, 0.124296, 0, 1, 0, 0, 0, 0.45939, 0.304779, 0.235832, 0, 0.485992, 0.268898, 0.245111, 0, 1, 0, 0, 0, 0.7331, 0.143653, 0.123247, 0, 0.477963, 0.280975, 0.241062, 0, 1, 0, 0, 0, 0.748373, 0.125813, 0.125813, 0, 0.747178, 0.12721, 0.125612, 0, 1, 0, 0, 0, 0.497836, 0.251082, 0.251082, 0, 0.496251, 0.253466, 0.250283, 0, 0.738503, 0.137343, 0.124154, 0, 1, 0, 0, 0, 0.484902, 0.270539, 0.244559, 0, 1, 0, 0, 0, 0.730612, 0.143641, 0.125747, 0, 0.4748, 0.280042, 0.245157, 0, 0.748371, 0.125816, 0.125813, 0, 1, 0, 0, 0, 0.497833, 0.251086, 0.251081, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.739344, 0.136359, 0.124296, 0, 0.718253, 0.15884, 0.122907, 0, 0.485992, 0.268898, 0.245111, 0, 0.45939, 0.304779, 0.235832, 0, 1, 0, 0, 0, 0.7331, 0.143653, 0.123247, 0, 0.477963, 0.280975, 0.241062, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.747178, 0.12721, 0.125612, 0, 0.748373, 0.125813, 0.125813, 0, 0.496251, 0.253466, 0.250283, 0, 0.497836, 0.251082, 0.251082, 0, 1, 0, 0, 0, 0.738503, 0.137343, 0.124154, 0, 0.484902, 0.270539, 0.244559, 0, 1, 0, 0, 0, 0.730612, 0.143641, 0.125747, 0, 0.4748, 0.280042, 0.245157, 0, 1, 0, 0, 0, 0.748371, 0.125816, 0.125813, 0, 0.497833, 0.251086, 0.251081, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.668925, 0.222972, 0.108103, 0, 0.666077, 0.221944, 0.111978, 0, 0.402445, 0.40244, 0.195114, 0, 0.399364, 0.399217, 0.201418, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666312, 0.222075, 0.111612, 0, 0.667337, 0.222443, 0.110219, 0, 0.399617, 0.399566, 0.200817, 0, 0.400725, 0.40072, 0.198555, 0, 0.500004, 0.499996, 0, 0, 0.533361, 0.40023, 0.0664093, 0, 0.571539, 0.286063, 0.142398, 0, 1, 0, 0, 0, 0.666044, 0.222012, 0.111945, 0, 0.399328, 0.399322, 0.20135, 0, 1, 0, 0, 0, 0.678203, 0.225313, 0.0964842, 0, 0.412634, 0.411257, 0.176109, 0, 1, 0, 0, 0, 0.666023, 0.222008, 0.111969, 0, 0.399306, 0.399306, 0.201389, 0, 1, 0, 0, 0, 0.666077, 0.221944, 0.111978, 0, 0.668925, 0.222972, 0.108103, 0, 1, 0, 0, 0, 0.399364, 0.399217, 0.201418, 0, 0.402445, 0.40244, 0.195114, 0, 1, 0, 0, 0, 0.667337, 0.222443, 0.110219, 0, 0.666312, 0.222075, 0.111612, 0, 1, 0, 0, 0, 0.400725, 0.40072, 0.198555, 0, 0.399617, 0.399566, 0.200817, 0, 0.500004, 0.499996, 0, 0, 0.533361, 0.40023, 0.0664093, 0, 0.571539, 0.286063, 0.142398, 0, 0.666044, 0.222012, 0.111945, 0, 1, 0, 0, 0, 0.399328, 0.399322, 0.20135, 0, 0.678203, 0.225313, 0.0964842, 0, 1, 0, 0, 0, 0.412634, 0.411257, 0.176109, 0, 1, 0, 0, 0, 0.666023, 0.222008, 0.111969, 0, 0.399306, 0.399306, 0.201389, 0 </real_array>
- <int_array len="2502"> 0, 2, 1, 0, 3, 2, 1, 5, 4, 1, 2, 5, 6, 5, 7, 6, 4, 5, 8, 0, 9, 8, 10, 0, 11, 13, 12, 11, 14, 13, 15, 17, 16, 15, 7, 17, 12, 15, 18, 12, 13, 15, 10, 3, 0, 10, 19, 3, 13, 7, 15, 13, 6, 7, 2, 20, 5, 2, 21, 20, 7, 20, 17, 7, 5, 20, 21, 3, 22, 21, 2, 3, 18, 16, 23, 18, 15, 16, 22, 19, 24, 22, 3, 19, 25, 27, 26, 25, 28, 27, 29, 28, 25, 29, 30, 28, 26, 32, 31, 26, 27, 32, 33, 35, 34, 33, 36, 35, 37, 39, 38, 37, 40, 39, 38, 42, 41, 38, 39, 42, 43, 45, 44, 43, 46, 45, 47, 49, 48, 47, 50, 49, 51, 53, 52, 51, 54, 53, 55, 46, 56, 55, 45, 46, 57, 44, 58, 57, 43, 44, 59, 61, 60, 59, 50, 61, 62, 45, 55, 62, 63, 45, 64, 48, 65, 64, 47, 48, 66, 50, 59, 66, 49, 50, 67, 43, 57, 67, 68, 43, 69, 68, 67, 69, 70, 68, 34, 49, 66, 34, 35, 49, 65, 70, 69, 65, 48, 70, 58, 72, 71, 58, 44, 72, 56, 36, 33, 56, 46, 36, 71, 74, 73, 71, 72, 74, 60, 63, 62, 60, 61, 63, 73, 47, 64, 73, 74, 47, 75, 77, 76, 75, 78, 77, 79, 41, 80, 79, 38, 41, 81, 38, 79, 81, 37, 38, 80, 83, 82, 80, 41, 83, 84, 37, 81, 84, 85, 37, 41, 86, 83, 41, 42, 86, 85, 40, 37, 85, 87, 40, 42, 88, 86, 42, 89, 88, 87, 90, 40, 87, 91, 90, 40, 92, 39, 40, 90, 92, 39, 89, 42, 39, 92, 89, 48, 35, 70, 48, 49, 35, 74, 50, 47, 74, 61, 50, 70, 36, 68, 70, 35, 36, 44, 63, 72, 44, 45, 63, 68, 46, 43, 68, 36, 46, 72, 61, 74, 72, 63, 61, 93, 95, 94, 93, 96, 95, 97, 25, 26, 97, 98, 25, 98, 29, 25, 98, 99, 29, 100, 26, 31, 100, 97, 26, 31, 102, 101, 31, 32, 102, 103, 105, 104, 103, 106, 105, 104, 108, 107, 104, 105, 108, 107, 110, 109, 107, 108, 110, 111, 113, 112, 111, 114, 113, 115, 112, 116, 115, 111, 112, 117, 116, 118, 117, 115, 116, 119, 118, 120, 119, 117, 118, 114, 110, 113, 114, 109, 110, 121, 123, 122, 121, 124, 123, 125, 124, 121, 125, 126, 124, 127, 129, 128, 128, 129, 130, 131, 129, 132, 133, 130, 129, 134, 133, 129, 135, 134, 129, 136, 138, 137, 136, 139, 138, 140, 142, 141, 140, 143, 142, 144, 146, 145, 144, 147, 146, 145, 149, 148, 145, 146, 149, 148, 151, 150, 148, 149, 151, 150, 153, 152, 150, 151, 153, 152, 143, 140, 152, 153, 143, 154, 156, 155, 154, 157, 156, 155, 159, 158, 155, 156, 159, 158, 106, 103, 158, 159, 106, 160, 162, 161, 160, 163, 162, 164, 161, 165, 164, 160, 161, 166, 165, 167, 166, 164, 165, 168, 167, 169, 168, 166, 167, 154, 120, 157, 154, 119, 120, 144, 169, 147, 144, 168, 169, 163, 142, 162, 163, 141, 142, 170, 172, 171, 170, 173, 172, 174, 173, 170, 174, 175, 173, 176, 178, 177, 176, 179, 178, 177, 126, 125, 177, 178, 126, 180, 179, 176, 180, 181, 179, 122, 181, 180, 122, 123, 181, 182, 184, 183, 182, 185, 184, 183, 187, 186, 183, 184, 187, 186, 189, 188, 186, 187, 189, 188, 191, 190, 188, 189, 191, 190, 193, 192, 190, 191, 193, 192, 195, 194, 192, 193, 195, 196, 198, 197, 196, 199, 198, 200, 197, 201, 200, 196, 197, 202, 201, 203, 202, 200, 201, 204, 203, 205, 204, 202, 203, 199, 195, 198, 199, 194, 195, 182, 205, 185, 182, 204, 205, 206, 129, 127, 207, 129, 131, 132, 129, 206, 208, 135, 129, 209, 208, 129, 207, 209, 129, 210, 139, 136, 210, 211, 139, 28, 212, 27, 28, 213, 212, 30, 213, 28, 30, 214, 213, 27, 215, 32, 27, 212, 215, 216, 218, 217, 216, 219, 218, 220, 95, 221, 220, 94, 95, 222, 218, 219, 222, 223, 218, 224, 96, 93, 224, 225, 96, 220, 223, 222, 220, 221, 223, 226, 78, 75, 226, 227, 78, 228, 230, 229, 228, 231, 230, 232, 234, 233, 232, 235, 234, 236, 235, 232, 236, 237, 235, 229, 239, 238, 229, 230, 239, 233, 231, 228, 233, 234, 231, 32, 240, 102, 32, 215, 240, 241, 243, 242, 241, 244, 243, 76, 246, 245, 76, 77, 246, 247, 227, 226, 247, 248, 227, 242, 250, 249, 242, 243, 250, 245, 244, 241, 245, 246, 244, 249, 248, 247, 249, 250, 248, 238, 252, 251, 238, 239, 252, 253, 237, 236, 253, 254, 237, 251, 254, 253, 251, 252, 254, 102, 240, 255, 9, 1, 256, 9, 0, 1, 14, 6, 13, 14, 257, 6, 256, 4, 258, 256, 1, 4, 257, 4, 6, 257, 258, 4, 259, 261, 260, 259, 262, 261, 262, 263, 261, 262, 264, 263, 265, 263, 264, 265, 266, 263, 8, 259, 10, 8, 267, 259, 11, 269, 268, 11, 12, 269, 270, 271, 266, 270, 272, 271, 12, 270, 269, 12, 18, 270, 10, 260, 19, 10, 259, 260, 269, 266, 265, 269, 270, 266, 261, 274, 273, 261, 263, 274, 266, 274, 263, 266, 271, 274, 260, 273, 275, 260, 261, 273, 18, 272, 270, 18, 23, 272, 19, 275, 24, 19, 260, 275, 276, 278, 277, 276, 279, 278, 29, 277, 30, 29, 276, 277, 279, 280, 278, 279, 281, 280, 282, 284, 283, 282, 285, 284, 286, 288, 287, 286, 289, 288, 289, 290, 288, 289, 291, 290, 292, 294, 293, 292, 295, 294, 296, 298, 297, 296, 299, 298, 300, 53, 54, 300, 301, 53, 302, 293, 294, 302, 303, 293, 304, 295, 292, 304, 305, 295, 306, 307, 297, 306, 308, 307, 309, 294, 310, 309, 302, 294, 311, 299, 296, 311, 312, 299, 313, 297, 298, 313, 306, 297, 314, 292, 315, 314, 304, 292, 316, 315, 317, 316, 314, 315, 285, 298, 284, 285, 313, 298, 312, 317, 299, 312, 316, 317, 305, 318, 295, 305, 319, 318, 303, 283, 293, 303, 282, 283, 319, 320, 318, 319, 321, 320, 308, 310, 307, 308, 309, 310, 321, 296, 320, 321, 311, 296, 322, 324, 323, 322, 325, 324, 326, 291, 289, 326, 327, 291, 328, 289, 286, 328, 326, 289, 327, 329, 291, 327, 330, 329, 331, 286, 332, 331, 328, 286, 291, 333, 290, 291, 329, 333, 332, 287, 334, 332, 286, 287, 290, 336, 335, 290, 333, 336, 334, 338, 337, 334, 287, 338, 287, 339, 338, 287, 288, 339, 288, 335, 339, 288, 290, 335, 299, 284, 298, 299, 317, 284, 320, 297, 307, 320, 296, 297, 317, 283, 284, 317, 315, 283, 295, 310, 294, 295, 318, 310, 315, 293, 283, 315, 292, 293, 318, 307, 310, 318, 320, 307, 340, 342, 341, 340, 343, 342, 344, 276, 345, 344, 279, 276, 345, 29, 99, 345, 276, 29, 346, 279, 344, 346, 281, 279, 281, 102, 280, 281, 101, 102, 347, 349, 348, 347, 350, 349, 350, 351, 349, 350, 352, 351, 352, 353, 351, 352, 354, 353, 355, 357, 356, 355, 358, 357, 359, 358, 355, 359, 360, 358, 361, 360, 359, 361, 362, 360, 363, 362, 361, 363, 364, 362, 356, 353, 354, 356, 357, 353, 365, 367, 366, 365, 368, 367, 369, 366, 370, 369, 365, 366, 371, 373, 372, 373, 374, 372, 375, 376, 372, 377, 372, 374, 378, 372, 377, 379, 372, 378, 136, 381, 380, 136, 137, 381, 382, 384, 383, 382, 385, 384, 386, 388, 387, 386, 389, 388, 389, 390, 388, 389, 391, 390, 391, 392, 390, 391, 393, 392, 393, 394, 392, 393, 395, 394, 395, 383, 394, 395, 382, 383, 396, 398, 397, 396, 399, 398, 399, 400, 398, 399, 401, 400, 401, 348, 400, 401, 347, 348, 402, 404, 403, 402, 405, 404, 406, 405, 402, 406, 407, 405, 408, 407, 406, 408, 409, 407, 410, 409, 408, 410, 411, 409, 396, 364, 363, 396, 397, 364, 386, 411, 410, 386, 387, 411, 403, 384, 385, 403, 404, 384, 412, 414, 413, 412, 415, 414, 416, 413, 417, 416, 412, 413, 418, 420, 419, 418, 421, 420, 421, 370, 420, 421, 369, 370, 422, 419, 423, 422, 418, 419, 368, 423, 367, 368, 422, 423, 424, 426, 425, 424, 427, 426, 427, 428, 426, 427, 429, 428, 429, 430, 428, 429, 431, 430, 431, 432, 430, 431, 433, 432, 433, 434, 432, 433, 435, 434, 435, 436, 434, 435, 437, 436, 438, 440, 439, 438, 441, 440, 442, 441, 438, 442, 443, 441, 444, 443, 442, 444, 445, 443, 446, 445, 444, 446, 447, 445, 439, 436, 437, 439, 440, 436, 424, 447, 446, 424, 425, 447, 448, 371, 372, 449, 375, 372, 376, 448, 372, 450, 372, 379, 451, 372, 450, 449, 372, 451, 210, 380, 452, 210, 136, 380, 277, 454, 453, 277, 278, 454, 30, 453, 214, 30, 277, 453, 278, 455, 454, 278, 280, 455, 216, 457, 456, 216, 217, 457, 458, 342, 343, 458, 459, 342, 460, 457, 461, 460, 456, 457, 224, 341, 225, 224, 340, 341, 458, 461, 459, 458, 460, 461, 462, 323, 463, 462, 322, 323, 464, 466, 465, 464, 467, 466, 468, 470, 469, 468, 471, 470, 472, 469, 473, 472, 468, 469, 467, 474, 466, 467, 475, 474, 471, 465, 470, 471, 464, 465, 280, 476, 455, 280, 102, 476, 477, 479, 478, 477, 480, 479, 325, 481, 324, 325, 482, 481, 483, 463, 484, 483, 462, 463, 480, 485, 479, 480, 486, 485, 482, 478, 481, 482, 477, 478, 486, 484, 485, 486, 483, 484, 475, 487, 474, 475, 488, 487, 489, 473, 490, 489, 472, 473, 488, 490, 487, 488, 489, 490, 102, 255, 476, 267, 262, 259, 267, 491, 262, 268, 265, 492, 268, 269, 265, 491, 264, 262, 491, 493, 264, 492, 264, 493, 492, 265, 264, 494, 496, 495, 494, 497, 496, 497, 94, 496, 497, 93, 94, 498, 500, 499, 498, 501, 500, 499, 219, 216, 499, 500, 219, 502, 496, 503, 502, 495, 496, 503, 94, 220, 503, 496, 94, 504, 500, 501, 504, 505, 500, 505, 219, 500, 505, 222, 219, 506, 497, 494, 506, 507, 497, 507, 93, 497, 507, 224, 93, 502, 505, 504, 502, 503, 505, 503, 222, 505, 503, 220, 222, 508, 510, 509, 508, 511, 510, 509, 343, 340, 509, 510, 343, 498, 513, 512, 498, 499, 513, 499, 456, 513, 499, 216, 456, 514, 510, 511, 514, 515, 510, 515, 343, 510, 515, 458, 343, 516, 513, 517, 516, 512, 513, 517, 456, 460, 517, 513, 456, 506, 509, 507, 506, 508, 509, 507, 340, 224, 507, 509, 340, 514, 517, 515, 514, 516, 517, 515, 460, 458, 515, 517, 460, 31, 518, 100, 31, 101, 518, 100, 54, 51, 100, 518, 54, 519, 521, 520, 519, 522, 521, 520, 98, 97, 520, 521, 98, 522, 523, 521, 522, 524, 523, 521, 99, 98, 521, 523, 99, 52, 520, 51, 52, 519, 520, 51, 97, 100, 51, 520, 97, 281, 518, 101, 281, 346, 518, 346, 54, 518, 346, 300, 54, 525, 527, 526, 525, 528, 527, 528, 345, 527, 528, 344, 345, 526, 523, 524, 526, 527, 523, 527, 99, 523, 527, 345, 99, 301, 528, 525, 301, 300, 528, 300, 344, 528, 300, 346, 344, 529, 531, 530, 529, 532, 531, 530, 534, 533, 530, 531, 534, 533, 325, 322, 533, 534, 325, 535, 530, 536, 535, 529, 530, 536, 533, 537, 536, 530, 533, 537, 322, 462, 537, 533, 322, 538, 540, 539, 538, 541, 540, 539, 543, 542, 539, 540, 543, 542, 480, 477, 542, 543, 480, 532, 544, 531, 532, 545, 544, 531, 546, 534, 531, 544, 546, 534, 482, 325, 534, 546, 482, 547, 536, 548, 547, 535, 536, 548, 537, 549, 548, 536, 537, 549, 462, 483, 549, 537, 462, 541, 550, 540, 541, 551, 550, 540, 552, 543, 540, 550, 552, 543, 486, 480, 543, 552, 486, 545, 539, 544, 545, 538, 539, 544, 542, 546, 544, 539, 542, 546, 477, 482, 546, 542, 477, 551, 548, 550, 551, 547, 548, 550, 549, 552, 550, 548, 549, 552, 483, 486, 552, 549, 483, 553, 555, 554, 553, 556, 555, 556, 557, 555, 556, 558, 557, 558, 76, 557, 558, 75, 76, 559, 556, 553, 559, 560, 556, 560, 558, 556, 560, 561, 558, 561, 75, 558, 561, 226, 75, 562, 564, 563, 562, 565, 564, 565, 566, 564, 565, 567, 566, 567, 242, 566, 567, 241, 242, 554, 569, 568, 554, 555, 569, 555, 570, 569, 555, 557, 570, 557, 245, 570, 557, 76, 245, 571, 560, 559, 571, 572, 560, 572, 561, 560, 572, 573, 561, 573, 226, 561, 573, 247, 226, 563, 575, 574, 563, 564, 575, 564, 576, 575, 564, 566, 576, 566, 249, 576, 566, 242, 249, 568, 565, 562, 568, 569, 565, 569, 567, 565, 569, 570, 567, 570, 241, 567, 570, 245, 241, 574, 572, 571, 574, 575, 572, 575, 573, 572, 575, 576, 573, 576, 247, 573, 576, 249, 247, 577, 579, 578, 577, 580, 579, 580, 581, 579, 580, 582, 581, 582, 229, 581, 582, 228, 229, 583, 585, 584, 583, 586, 585, 586, 587, 585, 586, 588, 587, 588, 233, 587, 588, 232, 233, 589, 586, 583, 589, 590, 586, 590, 588, 586, 590, 591, 588, 591, 232, 588, 591, 236, 232, 578, 593, 592, 578, 579, 593, 579, 594, 593, 579, 581, 594, 581, 238, 594, 581, 229, 238, 584, 580, 577, 584, 585, 580, 585, 582, 580, 585, 587, 582, 587, 228, 582, 587, 233, 228, 592, 596, 595, 592, 593, 596, 593, 597, 596, 593, 594, 597, 594, 251, 597, 594, 238, 251, 598, 590, 589, 598, 599, 590, 599, 591, 590, 599, 600, 591, 600, 236, 591, 600, 253, 236, 595, 599, 598, 595, 596, 599, 596, 600, 599, 596, 597, 600, 597, 253, 600, 597, 251, 253, 601, 603, 602, 601, 604, 603, 602, 606, 605, 602, 603, 606, 605, 467, 464, 605, 606, 467, 607, 609, 608, 607, 610, 609, 608, 612, 611, 608, 609, 612, 611, 471, 468, 611, 612, 471, 613, 608, 614, 613, 607, 608, 614, 611, 615, 614, 608, 611, 615, 468, 472, 615, 611, 468, 604, 616, 603, 604, 617, 616, 603, 618, 606, 603, 616, 618, 606, 475, 467, 606, 618, 475, 610, 602, 609, 610, 601, 602, 609, 605, 612, 609, 602, 605, 612, 464, 471, 612, 605, 464, 617, 619, 616, 617, 620, 619, 616, 621, 618, 616, 619, 621, 618, 488, 475, 618, 621, 488, 622, 614, 623, 622, 613, 614, 623, 615, 624, 623, 614, 615, 624, 472, 489, 624, 615, 472, 620, 623, 619, 620, 622, 623, 619, 624, 621, 619, 623, 624, 621, 489, 488, 621, 624, 489 </int_array>
- </array>
- </dictionary>
-
- </resource>
- <resource type="SampleLibrary" path="local://6">
- <dictionary name="samples/jump" shared="false">
- <string> "db" </string>
- <real> 0 </real>
- <string> "pitch" </string>
- <real> 1 </real>
- <string> "sample" </string>
- <resource resource_type="Sample" path="res://sound_jump.wav"> </resource>
- </dictionary>
- <dictionary name="samples/shoot" shared="false">
- <string> "db" </string>
- <real> 0 </real>
- <string> "pitch" </string>
- <real> 1 </real>
- <string> "sample" </string>
- <resource resource_type="Sample" path="res://sound_shoot.wav"> </resource>
- </dictionary>
-
- </resource>
- <resource type="Animation" path="local://7">
- <string name="resource/name"> "idle" </string>
- <real name="length"> 1.25 </real>
- <bool name="loop"> True </bool>
- <real name="step"> 0.1 </real>
- <string name="tracks/0/type"> "transform" </string>
- <node_path name="tracks/0/path"> "Armature/Skeleton:r-arm" </node_path>
- <int name="tracks/0/interp"> 1 </int>
- <real_array name="tracks/0/keys" len="180"> 0, 1, 1.01328e-06, -8.34465e-07, 1.07288e-06, -0.0255728, 0.138077, -0.259039, 0.955604, 1, 1, 1, 0.05, 1, 5.96046e-07, -2.38419e-07, 3.8743e-07, -0.0264725, 0.139277, -0.25962, 0.955248, 1, 1, 1, 0.1, 1, 5.36442e-07, -2.38419e-07, 3.8743e-07, -0.028916, 0.142508, -0.261183, 0.954274, 1, 1, 1, 0.15, 1, 1.19209e-07, 1.19209e-07, 5.96046e-08, -0.0326835, 0.14736, -0.26354, 0.952766, 1, 1, 1, 0.25, 1, 5.96046e-08, 1.19209e-07, 0, -0.0433083, 0.158072, -0.268982, 0.949098, 1, 1, 1, 0.3, 1, 8.9407e-07, -3.57628e-07, 5.96046e-07, -0.0481632, 0.16058, -0.27034, 0.948056, 1, 1, 1, 0.35, 1, 7.15256e-07, -3.57628e-07, 5.36442e-07, -0.0515519, 0.159894, -0.270034, 0.948081, 1, 1, 1, 0.4, 1, 6.25849e-07, -3.57628e-07, 5.06639e-07, -0.0529994, 0.155917, -0.267946, 0.949256, 1, 1, 1, 0.85, 1, 8.04663e-07, -5.96046e-07, 8.34465e-07, -0.01551, 0.114246, -0.235933, 0.964906, 1, 1, 1, 0.9, 1, 7.15256e-07, -4.76837e-07, 7.15256e-07, -0.0133439, 0.115591, -0.236366, 0.964672, 1, 1, 1, 0.95, 1, 5.06639e-07, -3.57628e-07, 4.76837e-07, -0.0142794, 0.118993, -0.239276, 0.963527, 1, 1, 1, 1.1, 1, 6.55651e-07, -3.57628e-07, 5.36442e-07, -0.0224776, 0.132362, -0.25315, 0.958066, 1, 1, 1, 1.15, 1, 7.45058e-07, -2.38419e-07, 4.17233e-07, -0.0241962, 0.135447, -0.25637, 0.956736, 1, 1, 1, 1.2, 1, 7.15256e-07, -2.38419e-07, 5.06639e-07, -0.0252313, 0.137384, -0.258343, 0.955902, 1, 1, 1, 1.25, 1, 1.01328e-06, -8.34465e-07, 1.07288e-06, -0.0255726, 0.138077, -0.259039, 0.955604, 1, 1, 1 </real_array>
- <string name="tracks/1/type"> "transform" </string>
- <node_path name="tracks/1/path"> "Armature/Skeleton:r-forearm" </node_path>
- <int name="tracks/1/interp"> 1 </int>
- <real_array name="tracks/1/keys" len="204"> 0, 1, 2.38419e-07, -8.34465e-07, -4.76837e-07, -0.218168, -0.120735, -0.0116329, 0.968344, 1, 1, 1, 0.05, 1, 2.98023e-08, -5.96046e-07, -2.38419e-07, -0.218633, -0.120967, -0.0119311, 0.968207, 1, 1, 1, 0.1, 1, 1.78814e-07, -7.7486e-07, -4.76837e-07, -0.219848, -0.121646, -0.0127373, 0.967836, 1, 1, 1, 0.15, 1, -5.96046e-08, -6.25849e-07, -4.76837e-07, -0.221585, -0.122891, -0.0139574, 0.967266, 1, 1, 1, 0.2, 1, -2.98023e-08, -9.83477e-07, -1.78814e-07, -0.223801, -0.125062, -0.0151597, 0.966459, 1, 1, 1, 0.25, 1, 1.49012e-07, -5.66244e-07, -2.38419e-07, -0.225991, -0.128733, -0.0159408, 0.965454, 1, 1, 1, 0.3, 1, 0, -1.04308e-06, -2.38419e-07, -0.227229, -0.134329, -0.0159913, 0.9644, 1, 0.999999, 1, 0.55, 1, 2.98023e-08, -5.66244e-07, -3.57628e-07, -0.218159, -0.170756, -0.00658222, 0.960836, 1, 1, 1, 0.6, 1, 1.49012e-07, -5.36442e-07, -2.98023e-07, -0.214746, -0.174272, -0.00460497, 0.960985, 1, 1, 1, 0.65, 1, 2.38419e-07, -2.08616e-07, -3.57628e-07, -0.21128, -0.17607, -0.0030008, 0.961432, 1, 1, 1, 0.7, 1, 1.49012e-07, -4.47035e-07, -2.38419e-07, -0.207961, -0.17612, -0.00179697, 0.962149, 1, 1, 1, 0.75, 1, -2.38419e-07, -6.55651e-07, -3.57628e-07, -0.204984, -0.174339, -0.000935222, 0.963113, 1, 1, 1, 0.8, 1, 8.9407e-08, -2.98023e-08, -1.19209e-07, -0.202542, -0.170485, -0.000499965, 0.964319, 1, 0.999999, 1, 0.85, 1, 8.9407e-08, -8.64267e-07, -4.17233e-07, -0.200954, -0.164989, -0.000498206, 0.965607, 1, 0.999999, 1, 1.15, 1, 1.19209e-07, -6.85453e-07, -2.98023e-07, -0.216378, -0.124725, -0.0104075, 0.968254, 1, 1, 1, 1.2, 1, -2.98023e-08, 2.98023e-08, -1.78814e-07, -0.217708, -0.121801, -0.0113103, 0.968318, 1, 1, 1, 1.25, 1, 2.38419e-07, -8.34465e-07, -4.76837e-07, -0.218168, -0.120734, -0.0116329, 0.968344, 1, 1, 1 </real_array>
- <string name="tracks/2/type"> "transform" </string>
- <node_path name="tracks/2/path"> "Armature/Skeleton:l-arm" </node_path>
- <int name="tracks/2/interp"> 1 </int>
- <real_array name="tracks/2/keys" len="180"> 0, 1, -1.01328e-06, -8.34465e-07, 1.07288e-06, -0.0255728, -0.138077, 0.25904, 0.955604, 1, 1, 1, 0.05, 1, -5.96046e-07, -2.38419e-07, 3.8743e-07, -0.0264725, -0.139277, 0.25962, 0.955248, 1, 1, 1, 0.1, 1, -5.36442e-07, -2.38419e-07, 3.8743e-07, -0.028916, -0.142508, 0.261183, 0.954274, 1, 1, 1, 0.15, 1, -1.19209e-07, 1.19209e-07, 5.96046e-08, -0.0326835, -0.14736, 0.26354, 0.952766, 1, 1, 1, 0.25, 1, -5.96046e-08, 1.19209e-07, 0, -0.0433083, -0.158072, 0.268982, 0.949098, 1, 1, 1, 0.3, 1, -8.9407e-07, -3.57628e-07, 5.96046e-07, -0.0481632, -0.16058, 0.27034, 0.948056, 1, 1, 1, 0.35, 1, -7.15256e-07, -3.57628e-07, 5.36442e-07, -0.0515519, -0.159894, 0.270034, 0.948081, 1, 1, 1, 0.4, 1, -6.25849e-07, -3.57628e-07, 5.06639e-07, -0.0529994, -0.155917, 0.267946, 0.949256, 1, 1, 1, 0.85, 1, -8.04663e-07, -5.96046e-07, 8.34465e-07, -0.01551, -0.114246, 0.235933, 0.964906, 1, 1, 1, 0.9, 1, -7.15256e-07, -4.76837e-07, 7.15256e-07, -0.0133439, -0.115591, 0.236367, 0.964672, 1, 1, 1, 0.95, 1, -5.06639e-07, -3.57628e-07, 4.76837e-07, -0.0142794, -0.118993, 0.239276, 0.963527, 1, 1, 1, 1.1, 1, -6.55651e-07, -3.57628e-07, 5.36442e-07, -0.0224776, -0.132362, 0.25315, 0.958066, 1, 1, 1, 1.15, 1, -7.45058e-07, -2.38419e-07, 4.17233e-07, -0.0241962, -0.135447, 0.25637, 0.956736, 1, 1, 1, 1.2, 1, -7.15256e-07, -2.38419e-07, 5.06639e-07, -0.0252313, -0.137384, 0.258343, 0.955902, 1, 1, 1, 1.25, 1, -1.01328e-06, -8.34465e-07, 1.07288e-06, -0.0255726, -0.138077, 0.259039, 0.955604, 1, 1, 1 </real_array>
- <string name="tracks/3/type"> "transform" </string>
- <node_path name="tracks/3/path"> "Armature/Skeleton:l-forearm" </node_path>
- <int name="tracks/3/interp"> 1 </int>
- <real_array name="tracks/3/keys" len="204"> 0, 1, -2.38419e-07, -8.34465e-07, -4.76837e-07, -0.218168, 0.120735, 0.0116329, 0.968344, 1, 1, 1, 0.05, 1, -5.96046e-08, -8.04663e-07, -3.57628e-07, -0.218633, 0.120966, 0.0119311, 0.968207, 1, 1, 1, 0.1, 1, -3.57628e-07, -7.45058e-07, -4.17233e-07, -0.219848, 0.121646, 0.0127373, 0.967836, 1, 1, 1, 0.15, 1, -1.49012e-07, -6.25849e-07, -3.57628e-07, -0.221585, 0.122891, 0.0139575, 0.967266, 1, 1, 1, 0.2, 1, 0, -9.53674e-07, -1.19209e-07, -0.223801, 0.125062, 0.0151597, 0.966459, 1, 1, 1, 0.25, 1, -1.49012e-07, -5.66244e-07, -2.38419e-07, -0.225991, 0.128733, 0.0159408, 0.965454, 1, 1, 1, 0.3, 1, 0, -1.04308e-06, -2.38419e-07, -0.227229, 0.134329, 0.0159913, 0.9644, 1, 0.999999, 1, 0.55, 1, -2.98023e-08, -5.66244e-07, -3.57628e-07, -0.218159, 0.170756, 0.00658222, 0.960836, 1, 1, 1, 0.6, 1, -1.49012e-07, -5.36442e-07, -2.98023e-07, -0.214746, 0.174272, 0.00460497, 0.960985, 1, 1, 1, 0.65, 1, -2.38419e-07, -2.08616e-07, -3.57628e-07, -0.21128, 0.17607, 0.0030008, 0.961432, 1, 1, 1, 0.7, 1, -1.49012e-07, -4.47035e-07, -2.38419e-07, -0.207961, 0.17612, 0.00179697, 0.962149, 1, 1, 1, 0.75, 1, 2.38419e-07, -6.55651e-07, -3.57628e-07, -0.204984, 0.174339, 0.000935222, 0.963113, 1, 1, 1, 0.8, 1, -2.98023e-08, 0, -1.19209e-07, -0.202542, 0.170485, 0.000499968, 0.964319, 1, 1, 1, 0.85, 1, 1.49012e-07, -8.34465e-07, -4.17233e-07, -0.200954, 0.164989, 0.000498198, 0.965606, 1, 1, 1, 1.15, 1, -2.38419e-07, -8.04663e-07, -6.55651e-07, -0.216378, 0.124725, 0.0104075, 0.968254, 1, 1, 1, 1.2, 1, -2.08616e-07, 2.08616e-07, -2.98023e-07, -0.217708, 0.121801, 0.0113103, 0.968318, 1, 1, 1, 1.25, 1, -2.38419e-07, -8.34465e-07, -4.76837e-07, -0.218168, 0.120734, 0.0116329, 0.968344, 1, 1, 1 </real_array>
- <string name="tracks/4/type"> "transform" </string>
- <node_path name="tracks/4/path"> "Armature/Skeleton:r-thigh" </node_path>
- <int name="tracks/4/interp"> 1 </int>
- <real_array name="tracks/4/keys" len="180"> 0, 1, 0, 5.21541e-08, -3.42727e-07, -0.0539951, -0.0696263, 0.0213632, 0.995882, 1, 1, 1, 0.05, 1, 0, 5.21541e-08, -3.42727e-07, -0.0567764, -0.0700338, 0.0212387, 0.995701, 1, 1, 1, 0.1, 1, 0, 3.72529e-08, -3.42727e-07, -0.06411, -0.0711033, 0.0209058, 0.995187, 1, 1, 1, 0.15, 1, 0, 9.68575e-08, -3.42727e-07, -0.0751103, -0.0727354, 0.0204167, 0.994309, 1, 1, 1, 0.45, 1, 0, 1.41561e-07, -1.3411e-07, -0.154319, -0.0862804, 0.0175296, 0.984091, 1, 1, 1, 0.5, 1, 2.98023e-08, 7.45058e-09, 2.5332e-07, -0.162001, -0.0877685, 0.017297, 0.982728, 1, 1, 1, 0.55, 1, 0, 3.72529e-08, -3.42727e-07, -0.166842, -0.0887317, 0.0171579, 0.981833, 1, 1, 1, 0.6, 1, 0, 2.98023e-08, -1.49012e-07, -0.169226, -0.0892111, 0.0170905, 0.981383, 1, 1, 1, 0.65, 1, 0, 2.98023e-08, -1.49012e-07, -0.169226, -0.0892111, 0.0170905, 0.981383, 1, 1, 1, 0.7, 1, 0, 3.72529e-08, -3.42727e-07, -0.166842, -0.0887317, 0.0171579, 0.981833, 1, 1, 1, 0.75, 1, 2.98023e-08, 7.45058e-09, 2.5332e-07, -0.162001, -0.0877685, 0.017297, 0.982728, 1, 1, 1, 0.8, 1, 0, 1.41561e-07, -1.3411e-07, -0.154319, -0.0862804, 0.0175296, 0.984091, 1, 1, 1, 1.15, 1, 0, 3.72529e-08, -3.42727e-07, -0.06411, -0.0711033, 0.0209058, 0.995187, 1, 1, 1, 1.2, 1, 0, 5.21541e-08, -3.42727e-07, -0.0567764, -0.0700338, 0.0212387, 0.995701, 1, 1, 1, 1.25, 1, 0, 5.21541e-08, -3.42727e-07, -0.0539951, -0.0696263, 0.0213632, 0.995882, 1, 1, 1 </real_array>
- <string name="tracks/5/type"> "transform" </string>
- <node_path name="tracks/5/path"> "Armature/Skeleton:r-leg" </node_path>
- <int name="tracks/5/interp"> 1 </int>
- <real_array name="tracks/5/keys" len="192"> 0, 1, 1.42842e-07, 1.93715e-07, 2.98023e-07, -0.0965851, -0.0177476, 0.000627753, 0.995166, 1, 1, 1, 0.05, 1, 4.62169e-08, -6.70552e-08, 6.55651e-07, -0.100604, -0.0182764, 0.000608928, 0.994758, 1, 1, 1, 0.1, 1, 8.12579e-08, 5.96046e-08, 5.36442e-07, -0.111195, -0.0196529, 0.000562433, 0.993604, 1, 1, 1, 0.15, 1, 3.0268e-08, -2.98023e-08, 5.96046e-07, -0.127055, -0.0217242, 0.000494295, 0.991658, 1, 1, 1, 0.45, 1, 1.55647e-07, 1.49012e-07, 4.76837e-07, -0.240017, -0.0376881, -3.78875e-05, 0.970037, 1, 1, 1, 0.5, 1, -1.23866e-07, 3.57628e-07, 7.7486e-07, -0.250826, -0.0393224, -9.00224e-05, 0.967233, 1, 1, 1, 0.55, 1, 5.34346e-08, 3.72529e-08, 5.96046e-07, -0.25762, -0.040368, -0.000123774, 0.965403, 1, 1, 1, 0.6, 1, 1.08266e-08, 5.96046e-08, 7.15256e-07, -0.260963, -0.0408854, -0.000140397, 0.964483, 1, 1, 1, 0.65, 1, 1.08266e-08, 5.96046e-08, 7.15256e-07, -0.260963, -0.0408854, -0.000140397, 0.964483, 1, 1, 1, 0.7, 1, 5.34346e-08, 3.72529e-08, 5.96046e-07, -0.25762, -0.040368, -0.000123775, 0.965403, 1, 1, 1, 0.75, 1, -1.23866e-07, 3.57628e-07, 7.7486e-07, -0.250826, -0.0393224, -9.00224e-05, 0.967233, 1, 1, 1, 0.8, 1, 1.55647e-07, 1.49012e-07, 4.76837e-07, -0.240017, -0.0376881, -3.78871e-05, 0.970037, 1, 1, 1, 0.9, 1, -4.8778e-08, -1.3411e-07, 7.15256e-07, -0.208519, -0.0330444, 0.00011266, 0.97746, 1, 1, 1, 1.15, 1, 8.12579e-08, 5.96046e-08, 5.36442e-07, -0.111195, -0.0196529, 0.000562432, 0.993604, 1, 1, 1, 1.2, 1, 4.62169e-08, -6.70552e-08, 6.55651e-07, -0.100605, -0.0182764, 0.000608928, 0.994758, 1, 1, 1, 1.25, 1, 1.42842e-07, 1.93715e-07, 2.98023e-07, -0.0965852, -0.0177476, 0.000627753, 0.995166, 1, 1, 1 </real_array>
- <string name="tracks/6/type"> "transform" </string>
- <node_path name="tracks/6/path"> "Armature/Skeleton:r-foot" </node_path>
- <int name="tracks/6/interp"> 1 </int>
- <real_array name="tracks/6/keys" len="180"> 0, 1, 8.9407e-08, 2.38419e-07, -2.23517e-08, 0.0349931, -0.0301778, 0.0362945, 0.998272, 1, 1, 1, 0.05, 1, 7.45058e-08, 2.38419e-07, 6.33299e-08, 0.0358993, -0.0301376, 0.0363473, 0.998239, 1, 1, 1, 0.1, 1, 5.21541e-08, 1.19209e-07, 2.98023e-08, 0.0384013, -0.0300263, 0.0364927, 0.998144, 1, 1, 1, 0.15, 1, 4.47035e-08, 1.19209e-07, -1.11759e-08, 0.0424549, -0.0298457, 0.0367279, 0.997977, 1, 1, 1, 0.5, 1, 5.21541e-08, 1.19209e-07, 7.45058e-09, 0.0873535, -0.0278095, 0.0392948, 0.995014, 1, 1, 1, 0.55, 1, -7.45058e-09, 0, -5.21541e-08, 0.0905253, -0.0276632, 0.0394735, 0.994727, 1, 1, 1, 0.6, 1, 2.98023e-08, 0, 2.23517e-08, 0.0921114, -0.0275899, 0.0395627, 0.99458, 1, 1, 1, 0.65, 1, 2.98023e-08, 0, 2.23517e-08, 0.0921114, -0.0275899, 0.0395627, 0.99458, 1, 1, 1, 0.7, 1, -7.45058e-09, 0, -5.21541e-08, 0.0905253, -0.0276632, 0.0394735, 0.994727, 1, 1, 1, 0.75, 1, 5.21541e-08, 1.19209e-07, 7.45058e-09, 0.0873535, -0.0278095, 0.0392948, 0.995014, 1, 1, 1, 0.8, 1, 1.04308e-07, 2.38419e-07, -1.49012e-08, 0.0824784, -0.0280337, 0.0390195, 0.995434, 1, 1, 1, 1.1, 1, 4.47035e-08, 1.19209e-07, -1.11759e-08, 0.0424549, -0.0298457, 0.0367279, 0.997977, 1, 1, 1, 1.15, 1, 5.21541e-08, 1.19209e-07, 2.98023e-08, 0.0384013, -0.0300263, 0.0364927, 0.998144, 1, 1, 1, 1.2, 1, 7.45058e-08, 2.38419e-07, 6.33299e-08, 0.0358993, -0.0301376, 0.0363473, 0.998239, 1, 1, 1, 1.25, 1, 8.9407e-08, 2.38419e-07, -2.23517e-08, 0.0349931, -0.0301778, 0.0362945, 0.998272, 1, 1, 1 </real_array>
- <string name="tracks/7/type"> "transform" </string>
- <node_path name="tracks/7/path"> "Armature/Skeleton:l-thigh" </node_path>
- <int name="tracks/7/interp"> 1 </int>
- <real_array name="tracks/7/keys" len="180"> 0, 1, 0, 6.70552e-08, -1.04308e-07, -0.0539995, 0.0696269, -0.0213643, 0.995881, 1, 0.999999, 1, 0.05, 1, 0, 6.70552e-08, -1.04308e-07, -0.05678, 0.0700343, -0.0212398, 0.995701, 1, 0.999999, 1, 0.1, 1, 0, 2.23517e-08, -1.04308e-07, -0.0641135, 0.0711039, -0.0209069, 0.995187, 1, 0.999999, 1, 0.15, 1, 0, 8.19564e-08, -1.04308e-07, -0.075114, 0.072736, -0.0204178, 0.994309, 1, 0.999999, 1, 0.45, 1, -2.98023e-08, 1.04308e-07, 1.04308e-07, -0.15432, 0.0862808, -0.0175308, 0.98409, 1, 0.999999, 1, 0.5, 1, -5.96046e-08, 2.98023e-08, 4.91738e-07, -0.162002, 0.0877689, -0.0172983, 0.982727, 1, 0.999999, 1, 0.55, 1, 0, 5.21541e-08, -1.04308e-07, -0.166843, 0.0887321, -0.0171591, 0.981833, 1, 0.999999, 1, 0.6, 1, -2.98023e-08, 4.47035e-08, 8.9407e-08, -0.169228, 0.0892116, -0.0170917, 0.981382, 1, 0.999999, 1, 0.65, 1, -2.98023e-08, 4.47035e-08, 8.9407e-08, -0.169228, 0.0892116, -0.0170917, 0.981382, 1, 0.999999, 1, 0.7, 1, 0, 5.21541e-08, -1.04308e-07, -0.166843, 0.0887321, -0.0171591, 0.981833, 1, 0.999999, 1, 0.75, 1, -5.96046e-08, 2.98023e-08, 4.91738e-07, -0.162002, 0.0877689, -0.0172983, 0.982727, 1, 0.999999, 1, 0.8, 1, -2.98023e-08, 1.04308e-07, 1.04308e-07, -0.15432, 0.0862808, -0.0175308, 0.98409, 1, 0.999999, 1, 1.15, 1, 0, 2.23517e-08, -1.04308e-07, -0.0641135, 0.0711039, -0.020907, 0.995187, 1, 0.999999, 1, 1.2, 1, 0, 6.70552e-08, -1.04308e-07, -0.05678, 0.0700343, -0.0212398, 0.995701, 1, 0.999999, 1, 1.25, 1, 0, 6.70552e-08, -1.04308e-07, -0.0539992, 0.0696269, -0.0213643, 0.995881, 1, 0.999999, 1 </real_array>
- <string name="tracks/8/type"> "transform" </string>
- <node_path name="tracks/8/path"> "Armature/Skeleton:l-leg" </node_path>
- <int name="tracks/8/interp"> 1 </int>
- <real_array name="tracks/8/keys" len="192"> 0, 1, 9.06875e-08, -8.19564e-08, 3.57628e-07, -0.0965913, 0.0177484, -0.00062776, 0.995166, 1, 1, 1, 0.05, 1, 3.44589e-08, -1.93715e-07, 2.98023e-07, -0.10061, 0.0182771, -0.000608941, 0.994758, 1, 1, 1, 0.1, 1, 2.52621e-08, -1.86265e-07, 5.96046e-08, -0.1112, 0.0196536, -0.000562456, 0.993604, 1, 1, 1, 0.15, 1, 9.02219e-08, -1.19209e-07, 1.19209e-07, -0.127061, 0.021725, -0.000494313, 0.991657, 1, 1, 1, 0.45, 1, 7.13626e-08, -5.21541e-08, 1.19209e-07, -0.24002, 0.0376883, 3.78708e-05, 0.970036, 1, 1, 1, 0.5, 1, -2.84053e-08, -1.78814e-07, -1.78814e-07, -0.250828, 0.0393224, 9.00085e-05, 0.967233, 1, 1, 1, 0.55, 1, 1.234e-08, 2.01166e-07, 1.78814e-07, -0.257623, 0.0403681, 0.000123756, 0.965402, 1, 1, 1, 0.6, 1, -9.97679e-08, 5.21541e-08, -5.96046e-08, -0.260966, 0.0408856, 0.000140381, 0.964482, 1, 1, 1, 0.65, 1, -9.97679e-08, 5.21541e-08, -5.96046e-08, -0.260966, 0.0408856, 0.000140381, 0.964482, 1, 1, 1, 0.7, 1, 1.234e-08, 2.01166e-07, 1.78814e-07, -0.257623, 0.0403681, 0.000123754, 0.965402, 1, 1, 1, 0.75, 1, -2.84053e-08, -1.78814e-07, -1.78814e-07, -0.250828, 0.0393224, 9.00085e-05, 0.967233, 1, 1, 1, 0.8, 1, 7.13626e-08, -5.21541e-08, 1.19209e-07, -0.24002, 0.0376883, 3.78693e-05, 0.970036, 1, 1, 1, 0.9, 1, 3.73693e-08, -5.21541e-08, 2.38419e-07, -0.208521, 0.0330446, -0.000112648, 0.977459, 1, 1, 1, 1.15, 1, 2.52621e-08, -1.86265e-07, 5.96046e-08, -0.1112, 0.0196536, -0.000562457, 0.993604, 1, 1, 1, 1.2, 1, 3.44589e-08, -1.93715e-07, 2.98023e-07, -0.10061, 0.0182771, -0.000608943, 0.994758, 1, 1, 1, 1.25, 1, 9.06875e-08, -8.19564e-08, 3.57628e-07, -0.0965911, 0.0177484, -0.000627765, 0.995166, 1, 1, 1 </real_array>
- <string name="tracks/9/type"> "transform" </string>
- <node_path name="tracks/9/path"> "Armature/Skeleton:l-foot" </node_path>
- <int name="tracks/9/interp"> 1 </int>
- <real_array name="tracks/9/keys" len="180"> 0, 1, -6.70552e-08, 0, -3.72529e-09, 0.0349931, 0.0301778, -0.0362945, 0.998272, 1, 1, 1, 0.05, 1, -1.49012e-08, 1.19209e-07, -7.45058e-09, 0.0358993, 0.0301376, -0.0363473, 0.998239, 1, 1, 1, 0.1, 1, 1.49012e-08, -1.19209e-07, 1.49012e-08, 0.0384013, 0.0300263, -0.0364927, 0.998144, 1, 1, 1, 0.15, 1, -4.47035e-08, 0, -3.72529e-09, 0.0424549, 0.0298457, -0.0367279, 0.997977, 1, 1, 1, 0.5, 1, 5.21541e-08, 0, -1.11759e-08, 0.0873535, 0.0278095, -0.0392948, 0.995014, 1, 1, 1, 0.55, 1, 4.47035e-08, 0, -2.98023e-08, 0.0905253, 0.0276632, -0.0394736, 0.994727, 1, 1, 1, 0.6, 1, 1.49012e-08, 0, -1.86265e-08, 0.0921114, 0.02759, -0.0395628, 0.99458, 1, 1, 1, 0.65, 1, 1.49012e-08, 0, -1.86265e-08, 0.0921114, 0.02759, -0.0395628, 0.99458, 1, 1, 1, 0.7, 1, 4.47035e-08, 0, -2.98023e-08, 0.0905253, 0.0276633, -0.0394736, 0.994727, 1, 1, 1, 0.75, 1, 5.21541e-08, 0, -1.11759e-08, 0.0873535, 0.0278095, -0.0392948, 0.995014, 1, 1, 1, 0.8, 1, -3.72529e-08, 1.19209e-07, -1.11759e-08, 0.0824784, 0.0280338, -0.0390195, 0.995434, 1, 1, 1, 1.1, 1, -4.47035e-08, 0, -3.72529e-09, 0.0424549, 0.0298457, -0.0367279, 0.997977, 1, 1, 1, 1.15, 1, 1.49012e-08, -1.19209e-07, 1.49012e-08, 0.0384013, 0.0300263, -0.0364927, 0.998144, 1, 1, 1, 1.2, 1, -1.49012e-08, 1.19209e-07, -7.45058e-09, 0.0358992, 0.0301376, -0.0363473, 0.998239, 1, 1, 1, 1.25, 1, -6.70552e-08, 0, -3.72529e-09, 0.0349931, 0.0301778, -0.0362945, 0.998272, 1, 1, 1 </real_array>
- <string name="tracks/10/type"> "transform" </string>
- <node_path name="tracks/10/path"> "Armature/Skeleton:MASTER" </node_path>
- <int name="tracks/10/interp"> 1 </int>
- <real_array name="tracks/10/keys" len="24"> 0, 1, 0, -0.322829, 2.42144e-08, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0, -0.322829, 2.42144e-08, 5.1658e-08, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/11/type"> "transform" </string>
- <node_path name="tracks/11/path"> "Armature/Skeleton:HEAD" </node_path>
- <int name="tracks/11/interp"> 1 </int>
- <real_array name="tracks/11/keys" len="24"> 0, 1, -5.68434e-14, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -5.68434e-14, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/12/type"> "transform" </string>
- <node_path name="tracks/12/path"> "Armature/Skeleton:r-LEGCONTROL" </node_path>
- <int name="tracks/12/interp"> 1 </int>
- <real_array name="tracks/12/keys" len="24"> 0, 1, 0.220288, -4.0302e-11, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.220288, -4.0302e-11, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/13/type"> "transform" </string>
- <node_path name="tracks/13/path"> "Armature/Skeleton:l-LEGCONTROL" </node_path>
- <int name="tracks/13/interp"> 1 </int>
- <real_array name="tracks/13/keys" len="24"> 0, 1, -0.220288, -4.0302e-11, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.220288, -4.0302e-11, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/14/type"> "transform" </string>
- <node_path name="tracks/14/path"> "Armature/Skeleton:r-LEGORIENT" </node_path>
- <int name="tracks/14/interp"> 1 </int>
- <real_array name="tracks/14/keys" len="24"> 0, 1, -0.183564, 0.0305941, 5.96046e-08, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.183564, 0.0305941, 5.96046e-08, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1 </real_array>
- <string name="tracks/15/type"> "transform" </string>
- <node_path name="tracks/15/path"> "Armature/Skeleton:l-LEGORIENT" </node_path>
- <int name="tracks/15/interp"> 1 </int>
- <real_array name="tracks/15/keys" len="24"> 0, 1, 0.183564, 0.030594, 5.96046e-08, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.183564, 0.030594, 5.96046e-08, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1 </real_array>
- <string name="tracks/16/type"> "transform" </string>
- <node_path name="tracks/16/path"> "Armature/Skeleton:r-ARMCONTROL" </node_path>
- <int name="tracks/16/interp"> 1 </int>
- <real_array name="tracks/16/keys" len="168"> 0, 1, -1.15243, -0.687477, 0.0713858, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -1.15504, -0.689394, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, -1.16214, -0.694617, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.15, 1, -1.17317, -0.702725, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.3, 1, -1.21295, -0.731968, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.35, 1, -1.22128, -0.738092, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.4, 1, -1.2252, -0.740971, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.45, 1, -1.22553, -0.741211, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.5, 1, -1.22422, -0.740253, 0.0713858, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, -1.22161, -0.73833, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.6, 1, -1.21787, -0.735585, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1.15, 1, -1.15488, -0.689275, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1.2, 1, -1.15308, -0.687955, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1.25, 1, -1.15243, -0.687477, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/17/type"> "transform" </string>
- <node_path name="tracks/17/path"> "Armature/Skeleton:l-ARMCONTROL" </node_path>
- <int name="tracks/17/interp"> 1 </int>
- <real_array name="tracks/17/keys" len="168"> 0, 1, 1.15243, -0.687477, 0.0713859, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 1.15504, -0.689394, 0.0713859, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, 1.16214, -0.694617, 0.0713859, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.15, 1, 1.17317, -0.702725, 0.0713859, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.3, 1, 1.21295, -0.731968, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.35, 1, 1.22128, -0.738092, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.4, 1, 1.2252, -0.740971, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.45, 1, 1.22553, -0.741211, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.5, 1, 1.22422, -0.740253, 0.0713858, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, 1.22161, -0.73833, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.6, 1, 1.21787, -0.735585, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1.15, 1, 1.15488, -0.689275, 0.0713859, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1.2, 1, 1.15308, -0.687955, 0.0713859, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1.25, 1, 1.15243, -0.687477, 0.0713859, -5.1658e-08, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/18/type"> "transform" </string>
- <node_path name="tracks/18/path"> "Armature/Skeleton:r-ARMORIENT" </node_path>
- <int name="tracks/18/interp"> 1 </int>
- <real_array name="tracks/18/keys" len="156"> 0, 1, 0.849557, -0.741664, 4.9468, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 0.849557, -0.741664, 4.93101, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, 0.849557, -0.741664, 4.88735, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.15, 1, 0.849557, -0.741664, 4.81599, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.2, 1, 0.849557, -0.741664, 4.71797, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.75, 1, 0.849557, -0.741664, 3.21234, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, 0.849557, -0.741664, 3.18081, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.85, 1, 0.849557, -0.741664, 3.18869, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.9, 1, 0.849557, -0.741664, 3.28296, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.95, 1, 0.849557, -0.741664, 3.48291, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1.15, 1, 0.849557, -0.741664, 4.70777, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1.2, 1, 0.849557, -0.741664, 4.88227, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.849557, -0.741664, 4.9468, -5.1658e-08, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/19/type"> "transform" </string>
- <node_path name="tracks/19/path"> "Armature/Skeleton:l-ARMORIENT" </node_path>
- <int name="tracks/19/interp"> 1 </int>
- <real_array name="tracks/19/keys" len="156"> 0, 1, -0.849557, -0.741664, 4.9468, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -0.849557, -0.741664, 4.93101, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, -0.849557, -0.741664, 4.88735, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.15, 1, -0.849557, -0.741664, 4.81599, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.2, 1, -0.849557, -0.741664, 4.71797, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.75, 1, -0.849557, -0.741664, 3.21234, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, -0.849557, -0.741664, 3.18081, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.85, 1, -0.849557, -0.741664, 3.18869, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.9, 1, -0.849557, -0.741664, 3.28296, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.95, 1, -0.849557, -0.741664, 3.48291, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1.15, 1, -0.849557, -0.741664, 4.70777, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1.2, 1, -0.849557, -0.741664, 4.88227, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.849557, -0.741664, 4.9468, -5.1658e-08, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/20/type"> "transform" </string>
- <node_path name="tracks/20/path"> "Armature/Skeleton:hip" </node_path>
- <int name="tracks/20/interp"> 1 </int>
- <real_array name="tracks/20/keys" len="180"> 0, 1, 1.11759e-08, 0.0713859, 0.0510914, 0, 0, 1.44945e-21, 1, 1, 1, 1, 0.05, 1, 1.11759e-08, 0.0713859, 0.0522077, -4.26326e-14, 4.23516e-22, 1.44945e-21, 1, 1, 1, 1, 0.1, 1, 1.11759e-08, 0.0713859, 0.05529, -5.68434e-14, 2.11758e-21, 1.44945e-21, 1, 1, 1, 1, 0.15, 1, 1.11759e-08, 0.0713859, 0.0602832, -4.26326e-14, 4.23516e-22, 1.44945e-21, 1, 1, 1, 1, 0.5, 1, 1.11759e-08, 0.0713859, 0.115648, 0, 0, 1.44945e-21, 1, 1, 1, 1, 0.55, 1, 1.11759e-08, 0.0713859, 0.119568, -4.26326e-14, 4.23516e-22, 1.44945e-21, 1, 1, 1, 1, 0.6, 1, 1.11759e-08, 0.0713859, 0.121528, -4.26326e-14, 4.23516e-22, 1.44945e-21, 1, 1, 1, 1, 0.65, 1, 1.11759e-08, 0.0713859, 0.121528, -4.26326e-14, 4.23516e-22, 1.44945e-21, 1, 1, 1, 1, 0.7, 1, 1.11759e-08, 0.0713859, 0.119568, -5.68434e-14, 2.11758e-21, 1.44945e-21, 1, 1, 1, 1, 0.75, 1, 1.11759e-08, 0.0713859, 0.115648, 0, 0, 1.44945e-21, 1, 1, 1, 1, 0.8, 1, 1.11759e-08, 0.0713859, 0.109626, -5.68434e-14, 2.11758e-21, 1.44945e-21, 1, 1, 1, 1, 1.1, 1, 1.11759e-08, 0.0713859, 0.0602832, -5.68434e-14, 2.11758e-21, 1.44945e-21, 1, 1, 1, 1, 1.15, 1, 1.11759e-08, 0.0713859, 0.05529, -4.26326e-14, 4.23516e-22, 1.44945e-21, 1, 1, 1, 1, 1.2, 1, 1.11759e-08, 0.0713859, 0.0522077, -2.84217e-14, -4.23516e-22, 1.44945e-21, 1, 1, 1, 1, 1.25, 1, 1.11759e-08, 0.0713859, 0.0510914, -4.26326e-14, 4.23516e-22, 1.44945e-21, 1, 1, 1, 1 </real_array>
- <string name="tracks/21/type"> "transform" </string>
- <node_path name="tracks/21/path"> "Armature/Skeleton:waist" </node_path>
- <int name="tracks/21/interp"> 1 </int>
- <real_array name="tracks/21/keys" len="168"> 0, 1, 5.71157e-15, -1.62345e-08, 8.9407e-08, 0, 0, 2.44616e-35, 1, 1, 1, 1, 0.05, 1, 5.75176e-15, -1.64873e-08, 8.9407e-08, 0.000214909, 1.42979e-18, -2.11758e-22, 1, 1, 1, 1, 0.1, 1, 4.06271e-15, -5.26452e-09, 8.9407e-08, 0.000808293, -3.04932e-19, 2.465e-22, 1, 1, 1, 1, 0.15, 1, 1.54246e-15, 1.14859e-08, 8.9407e-08, 0.00176961, 6.63395e-18, -1.17394e-20, 0.999998, 1, 1, 1, 0.5, 1, 4.42376e-15, -1.05373e-09, -2.98023e-08, 0.0124283, 2.20213e-20, -2.77954e-22, 0.999923, 1, 1, 1, 0.55, 1, 4.56489e-15, -1.94163e-09, 8.9407e-08, 0.0131829, 1.00996e-17, -7.10618e-15, 0.999913, 1, 1, 1, 0.65, 1, 1.79332e-15, -2.38573e-09, 8.9407e-08, 0.0135603, 1.03769e-16, -1.40726e-18, 0.999908, 1, 1, 1, 0.7, 1, 4.56489e-15, -1.94163e-09, 8.9407e-08, 0.0131829, -1.18256e-16, 1.5591e-18, 0.999913, 1, 1, 1, 0.75, 1, 4.42376e-15, -1.05373e-09, -2.98023e-08, 0.0124282, 2.20246e-20, -2.77954e-22, 0.999923, 1, 1, 1, 0.8, 1, 4.20699e-15, 3.1009e-10, -2.98023e-08, 0.011269, -6.2751e-17, 7.07106e-19, 0.999937, 1, 1, 1, 1.1, 1, 1.54246e-15, 1.14859e-08, 8.9407e-08, 0.00176961, 7.93788e-18, -7.10545e-15, 0.999998, 1, 1, 1, 1.15, 1, 4.06271e-15, -5.26452e-09, 8.9407e-08, 0.000808293, -3.04932e-19, 2.465e-22, 1, 1, 1, 1, 1.2, 1, 5.75176e-15, -1.64874e-08, 8.9407e-08, 0.00021491, -2.03966e-18, 4.23517e-22, 1, 1, 1, 1, 1.25, 1, 5.71157e-15, -1.62345e-08, 8.9407e-08, 3.83187e-10, 0, 1.22308e-35, 1, 1, 1, 1 </real_array>
- <string name="tracks/22/type"> "transform" </string>
- <node_path name="tracks/22/path"> "Armature/Skeleton:chest" </node_path>
- <int name="tracks/22/interp"> 1 </int>
- <real_array name="tracks/22/keys" len="156"> 0, 1, 7.24544e-18, 1.86265e-08, 5.96046e-08, 0, 0, -1.33383e-23, 1, 1, 1, 1, 0.05, 1, -3.76414e-18, 3.72529e-09, 0, 0.00110099, -2.41201e-19, -1.97577e-17, 0.999999, 1, 1, 1, 0.1, 1, 9.18675e-18, 1.49012e-08, -1.19209e-07, 0.00410119, -8.96205e-19, -7.35977e-17, 0.999992, 1, 1, 1, 0.15, 1, 1.76552e-17, 7.45058e-09, -5.96046e-08, 0.00875896, -1.91283e-18, -1.57184e-16, 0.999962, 1, 1, 1, 0.3, 1, 1.31081e-17, -1.11759e-08, 0, 0.0255569, -5.58266e-18, -4.58633e-16, 0.999673, 1, 1, 1, 0.35, 1, 1.99653e-17, -1.49012e-08, -5.96046e-08, 0.0290738, -6.35135e-18, -5.21745e-16, 0.999577, 1, 1, 1, 0.4, 1, 1.92772e-17, 1.11759e-08, 1.19209e-07, 0.0307265, -6.71273e-18, -5.51404e-16, 0.999528, 1, 1, 1, 0.5, 1, 4.47552e-17, 1.11759e-08, 5.96046e-08, 0.0303143, -6.6203e-18, -5.44008e-16, 0.99954, 1, 1, 1, 0.55, 1, 1.08083e-17, 2.23517e-08, -5.96046e-08, 0.0292103, -6.38065e-18, -5.24195e-16, 0.999573, 1, 1, 1, 0.6, 1, -3.34373e-18, -1.11759e-08, -2.98023e-07, 0.0276344, -6.03606e-18, -4.95914e-16, 0.999618, 1, 1, 1, 1.15, 1, 9.18674e-18, 1.49012e-08, -1.19209e-07, 0.0010327, -2.26125e-19, -1.85323e-17, 0.999999, 1, 1, 1, 1.2, 1, -3.7641e-18, 0, 0, 0.000274137, -6.02241e-20, -4.91966e-18, 1, 1, 1, 1, 1.25, 1, 7.24539e-18, 1.86265e-08, 5.96046e-08, 0, 0, 1.31315e-23, 1, 1, 1, 1 </real_array>
- <string name="tracks/23/type"> "transform" </string>
- <node_path name="tracks/23/path"> "Armature/Skeleton:neck" </node_path>
- <int name="tracks/23/interp"> 1 </int>
- <real_array name="tracks/23/keys" len="24"> 0, 1, -1.13687e-13, -1.49012e-08, -3.57628e-07, 1.17383e-27, 2.13163e-14, 5.50671e-14, 1, 1, 1, 1, 1.25, 1, -1.13687e-13, -1.49012e-08, -3.57628e-07, -2.46125e-27, 2.13163e-14, -1.77636e-15, 1, 1, 1, 1 </real_array>
- <string name="tracks/24/type"> "transform" </string>
- <node_path name="tracks/24/path"> "Armature/Skeleton:headtracker" </node_path>
- <int name="tracks/24/interp"> 1 </int>
- <real_array name="tracks/24/keys" len="180"> 0, 1, -2.16716e-13, 2.38419e-07, -1.20141e-07, 0.00540576, -3.97061e-09, 4.73012e-08, 0.999985, 1, 1, 1, 0.05, 1, 1.42109e-14, -6.85453e-07, -5.96046e-08, 0.00687155, -3.90174e-09, 4.73059e-08, 0.999976, 1, 1, 1, 0.1, 1, -1.06581e-13, -3.57628e-07, 4.65661e-09, 0.0108835, -3.7136e-09, 4.73184e-08, 0.999941, 1, 1, 1, 0.15, 1, 2.4869e-14, -7.15256e-07, -2.79397e-09, 0.0171898, -3.41769e-09, 4.73365e-08, 0.999852, 1, 1, 1, 0.35, 1, 5.68434e-14, -4.76837e-07, -2.16532e-08, 0.0482761, -1.95634e-09, 4.7399e-08, 0.998834, 1, 1, 1, 0.4, 1, 1.3145e-13, -4.76837e-07, 1.39698e-08, 0.0525864, -1.75345e-09, 4.74044e-08, 0.998616, 1, 1, 1, 0.45, 1, -7.10543e-15, -2.98023e-07, -2.23517e-08, 0.0549628, -1.64161e-09, 4.74072e-08, 0.998488, 1, 1, 1, 0.5, 1, 8.88178e-14, -4.47035e-07, -5.75092e-08, 0.056151, -1.58539e-09, 4.74086e-08, 0.998422, 1, 1, 1, 0.55, 1, -1.06581e-14, -7.15256e-07, -1.09896e-07, 0.0561279, -1.58659e-09, 4.74089e-08, 0.998424, 1, 1, 1, 0.6, 1, 1.49214e-13, -5.36442e-07, 8.3819e-09, 0.0550227, -1.63855e-09, 4.74081e-08, 0.998485, 1, 1, 1, 0.65, 1, 1.42109e-13, -5.66244e-07, -2.72412e-08, 0.0528693, -1.73995e-09, 4.74061e-08, 0.998601, 1, 1, 1, 0.7, 1, 1.27898e-13, -9.83477e-07, 2.23517e-08, 0.0497256, -1.88791e-09, 4.74026e-08, 0.998763, 1, 1, 1, 1.15, 1, 4.61853e-14, -2.68221e-07, -1.44821e-07, 0.00768525, -3.86364e-09, 4.73087e-08, 0.99997, 1, 1, 1, 1.2, 1, -4.61853e-14, -2.38419e-07, -9.12696e-08, 0.00601107, -3.94226e-09, 4.73032e-08, 0.999982, 1, 1, 1, 1.25, 1, -2.16716e-13, 2.38419e-07, -1.20141e-07, 0.00540581, -3.97061e-09, 4.73011e-08, 0.999985, 1, 1, 1 </real_array>
- <string name="tracks/25/type"> "transform" </string>
- <node_path name="tracks/25/path"> "Armature/Skeleton:head" </node_path>
- <int name="tracks/25/interp"> 1 </int>
- <real_array name="tracks/25/keys" len="156"> 0, 1, -1.11494e-13, -1.15717e-07, -2.08616e-07, 7.45058e-09, 8.88178e-15, 0, 1, 1, 1, 1, 0.05, 1, 1.80868e-10, 1.36495e-05, 0.000901487, 1.49012e-08, 1.77636e-14, -2.13163e-14, 1, 1, 1, 1, 0.1, 1, 6.8149e-10, 5.12244e-05, 0.00339634, 7.45058e-09, 1.77636e-15, -2.13163e-14, 1, 1, 1, 1, 0.15, 1, 1.5005e-09, 0.00011289, 0.00747763, 7.45058e-09, 7.10543e-15, -7.10543e-15, 1, 1, 1, 1, 0.2, 1, 2.6273e-09, 0.000197746, 0.0130927, 7.45058e-09, -5.32907e-15, 7.10543e-15, 1, 1, 1, 1, 0.75, 1, 2.00072e-08, 0.00150619, 0.0996987, 7.45058e-09, 3.55271e-15, -1.42109e-14, 1, 1, 1, 1, 0.8, 1, 2.03706e-08, 0.00153358, 0.10151, 1.49012e-08, 3.55271e-15, -1.42109e-14, 1, 1, 1, 1, 0.85, 1, 2.02794e-08, 0.00152671, 0.101055, 1.49012e-08, -5.32907e-15, 7.10543e-15, 1, 1, 1, 1, 0.9, 1, 1.91881e-08, 0.00144463, 0.0956172, 7.45058e-09, -7.10543e-15, 0, 1, 1, 1, 1, 0.95, 1, 1.68664e-08, 0.00126975, 0.084048, 1.49012e-08, 1.77636e-15, -2.13163e-14, 1, 1, 1, 1, 1.15, 1, 2.70661e-09, 0.000203704, 0.0134885, 7.45058e-09, -5.32907e-15, 7.10543e-15, 1, 1, 1, 1, 1.2, 1, 7.26606e-10, 5.46668e-05, 0.00362133, 7.45058e-09, 2.13163e-14, -1.42109e-14, 1, 1, 1, 1, 1.25, 1, -1.10217e-13, -1.15717e-07, -2.02097e-07, 7.45058e-09, -5.32907e-15, 7.10543e-15, 1, 1, 1, 1 </real_array>
- <string name="tracks/26/type"> "transform" </string>
- <node_path name="tracks/26/path"> "Armature/Skeleton:vent" </node_path>
- <int name="tracks/26/interp"> 1 </int>
- <real_array name="tracks/26/keys" len="24"> 0, 1, 4.48581e-08, 0.00292328, 0.204329, 1.04774e-09, -4.44089e-15, 5.58928e-15, 1, 1, 1, 1, 1.25, 1, 4.48581e-08, 0.00292328, 0.204329, 1.74623e-09, -6.21725e-15, 3.40058e-14, 1, 1, 1, 1 </real_array>
-
- </resource>
- <resource type="Animation" path="local://8">
- <string name="resource/name"> "shooting" </string>
- <real name="length"> 0.416667 </real>
- <bool name="loop"> False </bool>
- <real name="step"> 0.1 </real>
- <string name="tracks/0/type"> "transform" </string>
- <node_path name="tracks/0/path"> "Armature/Skeleton:r-arm" </node_path>
- <int name="tracks/0/interp"> 1 </int>
- <real_array name="tracks/0/keys" len="108"> 0, 1, 2.98023e-07, 3.57628e-07, 2.38419e-07, 0.177354, -0.316176, -0.0334956, 0.931373, 1, 1, 1, 0.05, 1, 5.36442e-07, -1.19209e-07, 5.06639e-07, 0.188185, -0.332103, -0.0311768, 0.923754, 1, 1, 1, 0.1, 1, 7.15256e-07, -3.57628e-07, 5.66244e-07, 0.204001, -0.354515, -0.0276657, 0.912106, 1, 1, 1, 0.15, 1, 6.25849e-07, -1.19209e-07, 4.76837e-07, 0.207621, -0.359465, -0.0268362, 0.909372, 1, 1, 1, 0.2, 1, 4.47035e-07, -1.19209e-07, 4.76837e-07, 0.203765, -0.354216, -0.0277227, 0.912273, 1, 1, 1, 0.35, 1, 6.85453e-07, -3.57628e-07, 5.36442e-07, 0.181322, -0.322103, -0.0326568, 0.928604, 1, 1, 1, 0.4, 1, 5.36442e-07, -1.19209e-07, 4.76837e-07, 0.177926, -0.317037, -0.0333752, 0.930976, 1, 1, 1, 0.45, 1, 2.98023e-07, 3.57628e-07, 2.38419e-07, 0.177354, -0.316176, -0.0334956, 0.931373, 1, 1, 1, 1.25, 1, 2.98023e-07, 3.57628e-07, 2.38419e-07, 0.177354, -0.316176, -0.0334956, 0.931373, 1, 1, 1 </real_array>
- <string name="tracks/1/type"> "transform" </string>
- <node_path name="tracks/1/path"> "Armature/Skeleton:r-forearm" </node_path>
- <int name="tracks/1/interp"> 1 </int>
- <real_array name="tracks/1/keys" len="108"> 0, 1, -4.47035e-07, -2.98023e-07, 0, 0.00444313, -0.215306, 0.0125622, 0.976456, 1, 1, 1, 0.05, 1, -2.08616e-07, -4.17233e-07, -2.98023e-07, 0.00305205, -0.21031, 0.0121764, 0.977554, 1, 1, 1, 0.1, 1, 2.08616e-07, -3.57628e-07, -3.57628e-07, 0.000634907, -0.201765, 0.0115128, 0.979366, 1, 0.999999, 1, 0.15, 1, 1.19209e-07, -1.19209e-07, -4.17233e-07, 2.2336e-05, -0.199561, 0.0113313, 0.97982, 1, 1, 1, 0.2, 1, 2.98023e-07, -8.9407e-08, -4.17233e-07, 0.000688273, -0.201948, 0.0115275, 0.979328, 1, 1, 1, 0.3, 1, -1.78814e-07, -2.68221e-07, -5.96046e-08, 0.00309916, -0.210458, 0.0121876, 0.977522, 1, 1, 1, 0.35, 1, 2.98023e-07, -5.96046e-07, -4.17233e-07, 0.00397812, -0.213611, 0.0124303, 0.976832, 1, 1, 1, 0.4, 1, -2.68221e-07, -4.47035e-07, -1.78814e-07, 0.00437828, -0.215068, 0.0125436, 0.976509, 1, 1, 1, 1.25, 1, -4.47035e-07, -2.98023e-07, 0, 0.00444313, -0.215306, 0.0125622, 0.976456, 1, 1, 1 </real_array>
- <string name="tracks/2/type"> "transform" </string>
- <node_path name="tracks/2/path"> "Armature/Skeleton:l-arm" </node_path>
- <int name="tracks/2/interp"> 1 </int>
- <real_array name="tracks/2/keys" len="108"> 0, 1, -5.66244e-07, 0, 2.68221e-07, -0.666114, -0.365882, 0.129948, 0.636817, 1, 1, 1, 0.05, 1, -5.96046e-07, -4.76837e-07, 4.76837e-07, -0.656623, -0.392941, 0.132853, 0.629916, 1, 1, 0.999999, 0.1, 1, -1.04308e-06, -5.96046e-07, 7.45058e-07, -0.641339, -0.431274, 0.137762, 0.619442, 1, 1, 1, 0.15, 1, -1.04308e-06, -7.15256e-07, 8.9407e-07, -0.637616, -0.439805, 0.139013, 0.617003, 1, 1, 0.999999, 0.2, 1, 2.98023e-08, 0, 3.27826e-07, -0.641587, -0.430741, 0.137654, 0.61958, 1, 1, 0.999999, 0.35, 1, -2.38419e-07, -3.57628e-07, 1.49012e-07, -0.662747, -0.375915, 0.130927, 0.634281, 1, 1, 0.999999, 0.4, 1, -5.66244e-07, -1.19209e-07, 3.57628e-07, -0.665636, -0.367338, 0.130084, 0.636451, 1, 1, 1, 0.45, 1, -5.66244e-07, 0, 2.68221e-07, -0.666114, -0.365882, 0.129948, 0.636817, 1, 1, 1, 1.25, 1, -5.66244e-07, 0, 2.68221e-07, -0.666114, -0.365882, 0.129948, 0.636817, 1, 1, 1 </real_array>
- <string name="tracks/3/type"> "transform" </string>
- <node_path name="tracks/3/path"> "Armature/Skeleton:l-forearm" </node_path>
- <int name="tracks/3/interp"> 1 </int>
- <real_array name="tracks/3/keys" len="108"> 0, 1, 2.98023e-08, -5.96046e-07, -4.17233e-07, -0.130784, -0.271804, -0.0853016, 0.949601, 1.3, 1.3, 1.3, 0.05, 1, 1.49012e-07, -6.55651e-07, -5.96046e-07, -0.133062, -0.270527, -0.0774246, 0.950324, 1.3, 1.3, 1.3, 0.1, 1, 2.68221e-07, -5.96046e-07, -2.38419e-07, -0.136329, -0.26867, -0.0661281, 0.95124, 1.3, 1.3, 1.3, 0.15, 1, -8.9407e-08, -8.04663e-07, -7.15256e-07, -0.137063, -0.26825, -0.0635932, 0.951426, 1.3, 1.3, 1.3, 0.2, 1, -8.9407e-08, -6.85453e-07, -7.15256e-07, -0.136283, -0.268695, -0.0662837, 0.951229, 1.3, 1.3, 1.3, 0.35, 1, -1.78814e-07, -5.66244e-07, -4.76837e-07, -0.131626, -0.271333, -0.0823877, 0.949876, 1.3, 1.3, 1.3, 0.4, 1, 5.96046e-08, -5.96046e-07, -3.57628e-07, -0.130906, -0.271736, -0.0848797, 0.949641, 1.3, 1.3, 1.3, 0.45, 1, 2.98023e-08, -5.96046e-07, -4.17233e-07, -0.130784, -0.271804, -0.0853016, 0.949601, 1.3, 1.3, 1.3, 1.25, 1, 2.98023e-08, -5.96046e-07, -4.17233e-07, -0.130784, -0.271804, -0.0853016, 0.949601, 1.3, 1.3, 1.3 </real_array>
- <string name="tracks/4/type"> "transform" </string>
- <node_path name="tracks/4/path"> "Armature/Skeleton:r-thigh" </node_path>
- <int name="tracks/4/interp"> 1 </int>
- <real_array name="tracks/4/keys" len="24"> 0, 1, 0, 1.63913e-07, 1.93715e-07, -0.283345, 0.0300071, -0.0426225, 0.957601, 1, 1, 1, 1.25, 1, 0, 1.63913e-07, 1.93715e-07, -0.283345, 0.0300071, -0.0426225, 0.957601, 1, 1, 1 </real_array>
- <string name="tracks/5/type"> "transform" </string>
- <node_path name="tracks/5/path"> "Armature/Skeleton:r-leg" </node_path>
- <int name="tracks/5/interp"> 1 </int>
- <real_array name="tracks/5/keys" len="24"> 0, 1, 2.29338e-08, 8.9407e-08, 5.36442e-07, -0.369097, -0.0505305, 0.00260278, 0.928013, 1, 1, 1, 1.25, 1, 2.29338e-08, 8.9407e-08, 5.36442e-07, -0.369097, -0.0505305, 0.00260278, 0.928013, 1, 1, 1 </real_array>
- <string name="tracks/6/type"> "transform" </string>
- <node_path name="tracks/6/path"> "Armature/Skeleton:r-foot" </node_path>
- <int name="tracks/6/interp"> 1 </int>
- <real_array name="tracks/6/keys" len="24"> 0, 1, 1.49012e-08, 0, -5.21541e-08, 0.163945, 0.140221, -0.046324, 0.975354, 1, 1, 1, 1.25, 1, 1.49012e-08, 0, -5.21541e-08, 0.163945, 0.140221, -0.046324, 0.975354, 1, 1, 1 </real_array>
- <string name="tracks/7/type"> "transform" </string>
- <node_path name="tracks/7/path"> "Armature/Skeleton:l-thigh" </node_path>
- <int name="tracks/7/interp"> 1 </int>
- <real_array name="tracks/7/keys" len="24"> 0, 1, 0, 2.08616e-07, 1.49012e-08, 0.284249, 0.0874448, 0.000525696, 0.954754, 1, 1, 1, 1.25, 1, 0, 2.08616e-07, 1.49012e-08, 0.284249, 0.0874448, 0.000525696, 0.954754, 1, 1, 1 </real_array>
- <string name="tracks/8/type"> "transform" </string>
- <node_path name="tracks/8/path"> "Armature/Skeleton:l-leg" </node_path>
- <int name="tracks/8/interp"> 1 </int>
- <real_array name="tracks/8/keys" len="24"> 0, 1, -6.98492e-10, -2.98023e-08, 4.76837e-07, -0.32359, -0.0556479, 0.000232734, 0.94456, 1, 1, 1, 1.25, 1, -6.98492e-10, -2.98023e-08, 4.76837e-07, -0.32359, -0.0556479, 0.000232734, 0.94456, 1, 1, 1 </real_array>
- <string name="tracks/9/type"> "transform" </string>
- <node_path name="tracks/9/path"> "Armature/Skeleton:l-foot" </node_path>
- <int name="tracks/9/interp"> 1 </int>
- <real_array name="tracks/9/keys" len="24"> 0, 1, 2.23517e-08, 1.19209e-07, 7.45058e-09, -0.260411, 0.0677016, 0.0123204, 0.963042, 1, 1, 1, 1.25, 1, 2.23517e-08, 1.19209e-07, 7.45058e-09, -0.260411, 0.0677016, 0.0123204, 0.963042, 1, 1, 1 </real_array>
- <string name="tracks/10/type"> "transform" </string>
- <node_path name="tracks/10/path"> "Armature/Skeleton:MASTER" </node_path>
- <int name="tracks/10/interp"> 1 </int>
- <real_array name="tracks/10/keys" len="24"> 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/11/type"> "transform" </string>
- <node_path name="tracks/11/path"> "Armature/Skeleton:HEAD" </node_path>
- <int name="tracks/11/interp"> 1 </int>
- <real_array name="tracks/11/keys" len="24"> 0, 1, -5.68434e-14, 0, 0.994808, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -5.68434e-14, 0, 0.994808, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/12/type"> "transform" </string>
- <node_path name="tracks/12/path"> "Armature/Skeleton:r-LEGCONTROL" </node_path>
- <int name="tracks/12/interp"> 1 </int>
- <real_array name="tracks/12/keys" len="24"> 0, 1, -0.142338, -0.593751, 0.041427, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.142338, -0.593751, 0.041427, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/13/type"> "transform" </string>
- <node_path name="tracks/13/path"> "Armature/Skeleton:l-LEGCONTROL" </node_path>
- <int name="tracks/13/interp"> 1 </int>
- <real_array name="tracks/13/keys" len="24"> 0, 1, 0.133965, 1.12742, 1.35169, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.133965, 1.12742, 1.35169, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/14/type"> "transform" </string>
- <node_path name="tracks/14/path"> "Armature/Skeleton:r-LEGORIENT" </node_path>
- <int name="tracks/14/interp"> 1 </int>
- <real_array name="tracks/14/keys" len="24"> 0, 1, 0.100474, 0.669825, -0.778672, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.100474, 0.669825, -0.778672, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/15/type"> "transform" </string>
- <node_path name="tracks/15/path"> "Armature/Skeleton:l-LEGORIENT" </node_path>
- <int name="tracks/15/interp"> 1 </int>
- <real_array name="tracks/15/keys" len="24"> 0, 1, -0.0204011, -0.122407, 5.96046e-08, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.0204011, -0.122407, 5.96046e-08, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/16/type"> "transform" </string>
- <node_path name="tracks/16/path"> "Armature/Skeleton:r-ARMCONTROL" </node_path>
- <int name="tracks/16/interp"> 1 </int>
- <real_array name="tracks/16/keys" len="24"> 0, 1, -0.868295, 0.288818, -0.834593, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.868295, 0.288818, -0.834593, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/17/type"> "transform" </string>
- <node_path name="tracks/17/path"> "Armature/Skeleton:l-ARMCONTROL" </node_path>
- <int name="tracks/17/interp"> 1 </int>
- <real_array name="tracks/17/keys" len="24"> 0, 1, 1.73339, 0.895247, 5.13844, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 1.73339, 0.895247, 5.13844, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/18/type"> "transform" </string>
- <node_path name="tracks/18/path"> "Armature/Skeleton:r-ARMORIENT" </node_path>
- <int name="tracks/18/interp"> 1 </int>
- <real_array name="tracks/18/keys" len="24"> 0, 1, 0.405204, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.405204, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/19/type"> "transform" </string>
- <node_path name="tracks/19/path"> "Armature/Skeleton:l-ARMORIENT" </node_path>
- <int name="tracks/19/interp"> 1 </int>
- <real_array name="tracks/19/keys" len="24"> 0, 1, -1.5774, 0.0723579, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -1.5774, 0.0723579, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/20/type"> "transform" </string>
- <node_path name="tracks/20/path"> "Armature/Skeleton:hip" </node_path>
- <int name="tracks/20/interp"> 1 </int>
- <real_array name="tracks/20/keys" len="24"> 0, 1, 0.050238, 0.697428, 0.108012, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1, 1.25, 1, 0.050238, 0.697428, 0.108012, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1 </real_array>
- <string name="tracks/21/type"> "transform" </string>
- <node_path name="tracks/21/path"> "Armature/Skeleton:waist" </node_path>
- <int name="tracks/21/interp"> 1 </int>
- <real_array name="tracks/21/keys" len="24"> 0, 1, 7.45059e-09, -5.21541e-08, 2.38419e-07, 0.0550011, -0.00481196, -0.0870228, 0.994675, 1, 1, 1, 1.25, 1, 7.45059e-09, -5.21541e-08, 2.38419e-07, 0.0550011, -0.00481196, -0.0870228, 0.994675, 1, 1, 1 </real_array>
- <string name="tracks/22/type"> "transform" </string>
- <node_path name="tracks/22/path"> "Armature/Skeleton:chest" </node_path>
- <int name="tracks/22/interp"> 1 </int>
- <real_array name="tracks/22/keys" len="108"> 0, 1, -1.93979e-09, 3.72529e-08, -1.78814e-07, 4.95597e-09, 0.00666624, -0.163159, 0.986577, 1, 1, 1, 0.05, 1, -1.93979e-09, 3.72529e-08, -1.78814e-07, -0.00988221, 0.00482982, -0.145309, 0.989325, 1, 1, 1, 0.1, 1, -1.93979e-09, 3.72529e-08, -1.78814e-07, -0.0244913, 0.00210965, -0.118794, 0.992615, 1, 1, 1, 0.15, 1, -1.93979e-09, 3.72529e-08, -1.78814e-07, -0.0278586, 0.00148179, -0.112662, 0.993242, 1, 1, 1, 0.2, 1, -1.93979e-09, 3.72529e-08, -1.78814e-07, -0.0242687, 0.00215113, -0.1192, 0.992571, 1, 1, 1, 0.35, 1, -1.93979e-09, 3.72529e-08, -1.78814e-07, -0.00360581, 0.00599648, -0.156654, 0.987629, 1, 1, 1, 0.4, 1, -1.93979e-09, 3.72529e-08, -1.78814e-07, -0.000519651, 0.00656974, -0.162222, 0.986732, 1, 1, 1, 0.45, 1, -1.93979e-09, 3.72529e-08, -1.78814e-07, 4.95597e-09, 0.00666624, -0.163159, 0.986577, 1, 1, 1, 1.25, 1, -1.93979e-09, 3.72529e-08, -1.78814e-07, 4.95597e-09, 0.00666624, -0.163159, 0.986577, 1, 1, 1 </real_array>
- <string name="tracks/23/type"> "transform" </string>
- <node_path name="tracks/23/path"> "Armature/Skeleton:neck" </node_path>
- <int name="tracks/23/interp"> 1 </int>
- <real_array name="tracks/23/keys" len="24"> 0, 1, -2.91038e-08, -1.78814e-07, -9.53674e-07, -7.45058e-09, 2.57076e-09, -2.87348e-09, 1, 1, 1, 1, 1.25, 1, -2.91038e-08, -1.78814e-07, -9.53674e-07, -7.45058e-09, 2.57076e-09, -2.87348e-09, 1, 1, 1, 1 </real_array>
- <string name="tracks/24/type"> "transform" </string>
- <node_path name="tracks/24/path"> "Armature/Skeleton:headtracker" </node_path>
- <int name="tracks/24/interp"> 1 </int>
- <real_array name="tracks/24/keys" len="108"> 0, 1, 1.05648e-08, -8.34465e-07, 8.61473e-09, 0.067043, -0.15676, 0.0458898, 0.984289, 1, 1, 1, 0.05, 1, -2.68221e-08, -7.7486e-07, -7.12462e-08, 0.0563978, -0.14039, 0.0396845, 0.987692, 1, 1, 1, 0.1, 1, 2.66356e-08, -1.78814e-07, -1.87429e-07, 0.0407343, -0.116242, 0.0305639, 0.991915, 1, 1, 1, 0.15, 1, -1.30386e-08, -3.57628e-07, -7.72998e-08, 0.0371396, -0.110688, 0.0284725, 0.992753, 1, 1, 1, 0.2, 1, 2.57045e-08, -5.96046e-07, -9.05711e-08, 0.0409678, -0.116604, 0.0306994, 0.991858, 1, 1, 1, 0.35, 1, 4.0076e-08, -1.78814e-07, -5.26197e-08, 0.0631478, -0.150775, 0.0436179, 0.985584, 1, 1, 1, 0.4, 1, 3.32831e-08, -5.36442e-07, 3.95812e-09, 0.0664811, -0.155897, 0.045562, 0.98448, 1, 1, 1, 0.45, 1, 1.05648e-08, -8.34465e-07, 8.61473e-09, 0.067043, -0.15676, 0.0458898, 0.984289, 1, 1, 1, 1.25, 1, 1.05648e-08, -8.34465e-07, 8.61473e-09, 0.067043, -0.15676, 0.0458898, 0.984289, 1, 1, 1 </real_array>
- <string name="tracks/25/type"> "transform" </string>
- <node_path name="tracks/25/path"> "Armature/Skeleton:head" </node_path>
- <int name="tracks/25/interp"> 1 </int>
- <real_array name="tracks/25/keys" len="24"> 0, 1, -7.38021e-13, 4.70318e-08, 9.16189e-08, -1.036e-25, -3.37508e-14, -8.17124e-13, 1, 1, 1, 1, 1.25, 1, -7.38021e-13, 4.70318e-08, 9.16189e-08, -1.036e-25, -3.37508e-14, -8.17124e-13, 1, 1, 1, 1 </real_array>
- <string name="tracks/26/type"> "transform" </string>
- <node_path name="tracks/26/path"> "Armature/Skeleton:vent" </node_path>
- <int name="tracks/26/interp"> 1 </int>
- <real_array name="tracks/26/keys" len="24"> 0, 1, 4.48982e-08, 0.00292331, 0.204329, 8.84756e-09, -3.8014e-13, 5.94471e-12, 1, 1, 1, 1, 1.25, 1, 4.48982e-08, 0.00292331, 0.204329, 8.84756e-09, -3.8014e-13, 5.94471e-12, 1, 1, 1, 1 </real_array>
-
- </resource>
- <resource type="Animation" path="local://9">
- <string name="resource/name"> "falling-cycle" </string>
- <real name="length"> 0.416667 </real>
- <bool name="loop"> True </bool>
- <real name="step"> 0.1 </real>
- <string name="tracks/0/type"> "transform" </string>
- <node_path name="tracks/0/path"> "Armature/Skeleton:r-arm" </node_path>
- <int name="tracks/0/interp"> 1 </int>
- <real_array name="tracks/0/keys" len="132"> 0, 1, 2.98023e-08, 1.19209e-07, -2.98023e-08, -0.336022, 0.262721, 0.175267, 0.887326, 1, 1, 1, 0.05, 1, 7.45058e-07, -3.57628e-07, 5.36442e-07, -0.336851, 0.262046, 0.173695, 0.887521, 1, 1, 1, 0.1, 1, 8.34465e-07, -5.96046e-07, 7.15256e-07, -0.33853, 0.260365, 0.16952, 0.888184, 1, 1, 1, 0.15, 1, 8.9407e-07, -3.57628e-07, 8.9407e-07, -0.338209, 0.258327, 0.163568, 0.890015, 1, 1, 1, 0.2, 1, 5.96046e-07, -3.57628e-07, 7.45058e-07, -0.333363, 0.256341, 0.157703, 0.89347, 1, 1, 1, 0.25, 1, 1.43051e-06, -8.34465e-07, 1.3113e-06, -0.339001, 0.253177, 0.158008, 0.892196, 1, 1, 0.999999, 0.3, 1, 5.96046e-07, -1.19209e-07, 2.98023e-07, -0.348081, 0.252511, 0.164449, 0.887713, 1, 1, 1, 0.35, 1, 1.07288e-06, -5.96046e-07, 7.45058e-07, -0.343056, 0.25799, 0.170697, 0.886914, 1, 1, 1, 0.4, 1, 3.27826e-07, 0, 2.38419e-07, -0.337258, 0.26196, 0.174599, 0.887214, 1, 1, 1, 0.45, 1, 2.98023e-08, 1.19209e-07, -2.98023e-08, -0.336022, 0.262721, 0.175267, 0.887326, 1, 1, 1, 1.25, 1, 2.98023e-08, 1.19209e-07, -2.98023e-08, -0.336022, 0.262721, 0.175267, 0.887326, 1, 1, 1 </real_array>
- <string name="tracks/1/type"> "transform" </string>
- <node_path name="tracks/1/path"> "Armature/Skeleton:r-forearm" </node_path>
- <int name="tracks/1/interp"> 1 </int>
- <real_array name="tracks/1/keys" len="120"> 0, 1, 3.27826e-07, -6.55651e-07, -4.17233e-07, 0.46904, -0.387773, 0.0221851, 0.793184, 1, 1, 1, 0.05, 1, -1.49012e-07, -8.34465e-07, -5.36442e-07, 0.467449, -0.38757, 0.0209387, 0.794256, 1, 0.999999, 1, 0.15, 1, 8.9407e-08, -8.34465e-07, -2.38419e-07, 0.457674, -0.38779, 0.0142454, 0.799969, 1, 1, 1, 0.2, 1, -1.19209e-07, -9.53674e-07, -5.96046e-07, 0.453414, -0.391376, 0.0115749, 0.800692, 1, 1, 1, 0.25, 1, -2.98023e-08, -8.64267e-07, -5.96046e-07, 0.455951, -0.392917, 0.0127032, 0.798476, 1, 1, 1, 0.3, 1, -2.68221e-07, -5.96046e-07, -3.57628e-07, 0.461696, -0.389009, 0.0167183, 0.797013, 1, 1, 1, 0.35, 1, 5.96046e-08, -9.23872e-07, -5.96046e-07, 0.465445, -0.38698, 0.0198743, 0.795747, 1, 1, 1, 0.4, 1, 2.68221e-07, -8.64267e-07, -6.55651e-07, 0.4685, -0.387548, 0.0218417, 0.793623, 1, 1, 1, 0.45, 1, 3.27826e-07, -6.55651e-07, -4.17233e-07, 0.46904, -0.387773, 0.0221851, 0.793184, 1, 1, 1, 1.25, 1, 3.27826e-07, -6.55651e-07, -4.17233e-07, 0.46904, -0.387773, 0.0221851, 0.793184, 1, 1, 1 </real_array>
- <string name="tracks/2/type"> "transform" </string>
- <node_path name="tracks/2/path"> "Armature/Skeleton:l-arm" </node_path>
- <int name="tracks/2/interp"> 1 </int>
- <real_array name="tracks/2/keys" len="132"> 0, 1, -2.98023e-08, 1.19209e-07, -2.98023e-08, -0.326141, -0.23441, -0.185472, 0.896819, 1, 1, 1, 0.05, 1, -9.53674e-07, -4.76837e-07, 5.66244e-07, -0.309655, -0.239675, -0.179325, 0.902503, 1, 1, 1, 0.1, 1, -8.64267e-07, -4.76837e-07, 7.15256e-07, -0.27681, -0.251556, -0.166111, 0.912416, 1, 1, 1, 0.15, 1, -8.64267e-07, -3.57628e-07, 8.04663e-07, -0.254018, -0.264552, -0.15679, 0.917008, 1, 1, 1, 0.2, 1, -4.76837e-07, -3.57628e-07, 4.47035e-07, -0.251196, -0.272504, -0.156931, 0.915431, 1, 1, 1, 0.25, 1, -1.13249e-06, -7.15256e-07, 8.9407e-07, -0.279016, -0.258742, -0.169921, 0.909027, 1, 1, 1, 0.3, 1, -7.15256e-07, 1.19209e-07, 5.06639e-07, -0.316679, -0.238757, -0.183476, 0.89947, 1, 1, 1, 0.35, 1, -6.25849e-07, -1.19209e-07, 3.57628e-07, -0.327726, -0.235686, -0.18601, 0.895795, 1, 1, 1, 0.4, 1, -2.68221e-07, 0, 1.49012e-07, -0.326797, -0.234512, -0.185665, 0.896514, 1, 1, 1, 0.45, 1, -2.98023e-08, 1.19209e-07, -2.98023e-08, -0.326141, -0.23441, -0.185472, 0.896819, 1, 1, 1, 1.25, 1, -2.98023e-08, 1.19209e-07, -2.98023e-08, -0.326141, -0.23441, -0.185472, 0.896819, 1, 1, 1 </real_array>
- <string name="tracks/3/type"> "transform" </string>
- <node_path name="tracks/3/path"> "Armature/Skeleton:l-forearm" </node_path>
- <int name="tracks/3/interp"> 1 </int>
- <real_array name="tracks/3/keys" len="120"> 0, 1, -2.08616e-07, -1.54972e-06, -1.19209e-07, 0.47174, 0.366267, -0.0198596, 0.80182, 1, 1, 1, 0.05, 1, -2.98023e-08, -6.25849e-07, 0, 0.468656, 0.375596, -0.0166676, 0.799382, 1, 1, 1, 0.1, 1, -8.9407e-08, -2.68221e-07, -5.96046e-08, 0.459943, 0.392089, -0.0107327, 0.79662, 1, 1, 1, 0.15, 1, -2.08616e-07, -2.08616e-07, -2.38419e-07, 0.451048, 0.400355, -0.00696642, 0.797636, 1, 1, 1, 0.2, 1, -2.38419e-07, -7.7486e-07, 0, 0.448637, 0.398723, -0.00658308, 0.799813, 1, 1, 1, 0.3, 1, -5.96046e-08, -2.98023e-07, -4.17233e-07, 0.465357, 0.361793, -0.0151844, 0.807662, 1, 1, 1, 0.35, 1, -1.49012e-07, -5.36442e-07, -3.57628e-07, 0.468536, 0.360417, -0.0183993, 0.806372, 1, 1, 1, 0.4, 1, -5.96046e-08, -8.64267e-07, -1.78814e-07, 0.471244, 0.365087, -0.0196777, 0.802654, 1, 1, 1, 0.45, 1, -2.08616e-07, -1.54972e-06, -1.19209e-07, 0.47174, 0.366267, -0.0198596, 0.80182, 1, 1, 1, 1.25, 1, -2.08616e-07, -1.54972e-06, -1.19209e-07, 0.47174, 0.366267, -0.0198596, 0.80182, 1, 1, 1 </real_array>
- <string name="tracks/4/type"> "transform" </string>
- <node_path name="tracks/4/path"> "Armature/Skeleton:r-thigh" </node_path>
- <int name="tracks/4/interp"> 1 </int>
- <real_array name="tracks/4/keys" len="132"> 0, 1, 0, 7.45058e-09, -1.3411e-07, -0.0625169, 0.00920125, -0.00328561, 0.997996, 1, 1, 1, 0.05, 1, 5.96046e-08, 8.9407e-08, -6.10948e-07, -0.0877092, 0.00901381, -0.00306586, 0.996101, 1, 1, 1, 0.1, 1, 5.96046e-08, -2.23517e-08, -1.19209e-07, -0.138998, 0.00794913, -0.00288258, 0.990257, 1, 1, 1, 0.15, 1, 5.96046e-08, 1.49012e-08, -4.02331e-07, -0.178155, 0.00579277, -0.00296187, 0.983981, 1, 1, 1, 0.2, 1, 8.9407e-08, 0, 1.78814e-07, -0.18648, 0.0038127, -0.0029159, 0.982447, 1, 1, 1, 0.25, 1, 5.96046e-08, 5.21541e-08, -1.93715e-07, -0.189861, 0.00940162, -0.00299906, 0.981761, 1, 1, 1, 0.3, 1, 5.96046e-08, -5.96046e-08, 2.83122e-07, -0.170763, 0.015059, -0.00307746, 0.985192, 1, 1, 1, 0.35, 1, 0, -7.45058e-09, -1.3411e-07, -0.115285, 0.0123617, -0.00312517, 0.993251, 1, 1, 1, 0.4, 1, 0, 7.45058e-09, -1.3411e-07, -0.0713277, 0.00977016, -0.00325209, 0.9974, 1, 1, 1, 0.45, 1, 0, 7.45058e-09, -1.3411e-07, -0.0625169, 0.00920125, -0.00328561, 0.997996, 1, 1, 1, 1.25, 1, 0, 7.45058e-09, -1.3411e-07, -0.0625169, 0.00920125, -0.00328561, 0.997996, 1, 1, 1 </real_array>
- <string name="tracks/5/type"> "transform" </string>
- <node_path name="tracks/5/path"> "Armature/Skeleton:r-leg" </node_path>
- <int name="tracks/5/interp"> 1 </int>
- <real_array name="tracks/5/keys" len="120"> 0, 1, 4.42378e-08, -8.19564e-08, 1.78814e-07, -0.407694, 0.0277893, 0.000765211, 0.912696, 1, 1, 1, 0.05, 1, 1.89757e-08, -5.21541e-08, 6.55651e-07, -0.435809, 0.0297697, 0.000893482, 0.899546, 1, 1, 1, 0.1, 1, 1.42027e-08, 6.70552e-08, 7.15256e-07, -0.489147, 0.0339313, 0.00115069, 0.871541, 1, 1, 1, 0.15, 1, 1.13854e-07, 0, 5.96046e-07, -0.523927, 0.0370339, 0.00133512, 0.850957, 1, 1, 1, 0.2, 1, 1.29221e-07, -3.72529e-08, 4.17233e-07, -0.526448, 0.0372296, 0.00134975, 0.849391, 1, 1, 1, 0.25, 1, 1.6077e-07, -2.68221e-07, 4.76837e-07, -0.538369, 0.0372441, 0.00135905, 0.841885, 1, 1, 1, 0.3, 1, 6.17001e-09, -1.04308e-07, 7.15256e-07, -0.530237, 0.0358611, 0.00127618, 0.84709, 1, 1, 1, 0.4, 1, 2.08383e-08, -2.23517e-08, 4.17233e-07, -0.418447, 0.0284447, 0.00080823, 0.907795, 1, 1, 1, 0.45, 1, 4.42378e-08, -8.19564e-08, 1.78814e-07, -0.407694, 0.0277893, 0.000765211, 0.912696, 1, 1, 1, 1.25, 1, 4.42378e-08, -8.19564e-08, 1.78814e-07, -0.407694, 0.0277893, 0.000765211, 0.912696, 1, 1, 1 </real_array>
- <string name="tracks/6/type"> "transform" </string>
- <node_path name="tracks/6/path"> "Armature/Skeleton:r-foot" </node_path>
- <int name="tracks/6/interp"> 1 </int>
- <real_array name="tracks/6/keys" len="24"> 0, 1, 1.04308e-07, -1.19209e-07, 6.70552e-08, -1.11759e-08, 1.16415e-09, 7.45058e-09, 1, 1, 1, 1, 1.25, 1, 1.04308e-07, -1.19209e-07, 6.70552e-08, -1.11759e-08, 1.16415e-09, 7.45058e-09, 1, 1, 1, 1 </real_array>
- <string name="tracks/7/type"> "transform" </string>
- <node_path name="tracks/7/path"> "Armature/Skeleton:l-thigh" </node_path>
- <int name="tracks/7/interp"> 1 </int>
- <real_array name="tracks/7/keys" len="120"> 0, 1, -2.98023e-08, 1.49012e-08, 1.19209e-07, -0.630421, -0.0882657, 0.00990556, 0.771155, 1, 1, 1, 0.05, 1, 8.9407e-08, 9.68575e-08, -2.38419e-07, -0.641086, -0.0918399, 0.00914405, 0.7619, 1, 1, 1, 0.15, 1, 5.96046e-08, 2.23517e-08, -1.3411e-07, -0.695929, -0.109196, 0.0054072, 0.70974, 1, 1, 1, 0.2, 1, 0, 7.45058e-09, 4.61936e-07, -0.716484, -0.115048, 0.00471066, 0.688035, 0.999999, 1, 1, 0.25, 1, 2.98023e-08, 5.21541e-08, 7.45058e-08, -0.742062, -0.116709, 0.0109015, 0.660003, 1, 1, 1, 0.3, 1, -5.96046e-08, -6.70552e-08, 5.51343e-07, -0.738131, -0.110711, 0.0165993, 0.665304, 0.999999, 1, 1, 0.35, 1, -2.98023e-08, -1.49012e-08, 1.19209e-07, -0.683291, -0.098194, 0.0131016, 0.723395, 1, 1, 1, 0.4, 1, -2.98023e-08, 1.49012e-08, 1.19209e-07, -0.638973, -0.0897534, 0.0103931, 0.763904, 1, 1, 1, 0.45, 1, -2.98023e-08, 1.49012e-08, 1.19209e-07, -0.630421, -0.0882657, 0.00990556, 0.771155, 1, 1, 1, 1.25, 1, -2.98023e-08, 1.49012e-08, 1.19209e-07, -0.630421, -0.0882657, 0.00990556, 0.771155, 1, 1, 1 </real_array>
- <string name="tracks/8/type"> "transform" </string>
- <node_path name="tracks/8/path"> "Armature/Skeleton:l-leg" </node_path>
- <int name="tracks/8/interp"> 1 </int>
- <real_array name="tracks/8/keys" len="120"> 0, 1, 4.48199e-08, -1.11759e-07, 1.78814e-07, -0.822993, -0.106344, -0.00540277, 0.557982, 1, 1, 1, 0.05, 1, 4.30737e-09, -2.08616e-07, -1.19209e-07, -0.827005, -0.107477, -0.00546779, 0.551799, 1, 1, 1, 0.1, 1, 8.84756e-09, -1.19209e-07, 1.19209e-07, -0.836608, -0.110063, -0.00562015, 0.536601, 1, 1, 1, 0.2, 1, -2.91038e-08, 1.19209e-07, 0, -0.857806, -0.115929, -0.00596456, 0.500693, 1, 1, 1, 0.25, 1, 7.33417e-09, 0, 5.96046e-08, 0.876669, 0.123709, 0.00633999, -0.464874, 1, 1, 1, 0.3, 1, -4.38886e-08, -1.3411e-07, -1.19209e-07, 0.881066, 0.125876, 0.00641456, -0.455891, 1, 1, 1, 0.35, 1, 9.66247e-09, 0, -5.96046e-08, -0.853515, -0.11545, -0.00587343, 0.508083, 1, 1, 1, 0.4, 1, 2.17697e-08, -3.72529e-08, 5.96046e-08, -0.828218, -0.107764, -0.00547631, 0.549921, 1, 1, 1, 0.45, 1, 4.48199e-08, -1.11759e-07, 1.78814e-07, -0.822993, -0.106344, -0.00540277, 0.557982, 1, 1, 1, 1.25, 1, 4.48199e-08, -1.11759e-07, 1.78814e-07, -0.822993, -0.106344, -0.00540277, 0.557982, 1, 1, 1 </real_array>
- <string name="tracks/9/type"> "transform" </string>
- <node_path name="tracks/9/path"> "Armature/Skeleton:l-foot" </node_path>
- <int name="tracks/9/interp"> 1 </int>
- <real_array name="tracks/9/keys" len="24"> 0, 1, 7.45058e-09, -2.38419e-07, -8.19564e-08, -1.86265e-08, -1.28057e-09, 3.72529e-09, 1, 1, 1, 1, 1.25, 1, 7.45058e-09, -2.38419e-07, -8.19564e-08, -1.86265e-08, -1.28057e-09, 3.72529e-09, 1, 1, 1, 1 </real_array>
- <string name="tracks/10/type"> "transform" </string>
- <node_path name="tracks/10/path"> "Armature/Skeleton:MASTER" </node_path>
- <int name="tracks/10/interp"> 1 </int>
- <real_array name="tracks/10/keys" len="24"> 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/11/type"> "transform" </string>
- <node_path name="tracks/11/path"> "Armature/Skeleton:HEAD" </node_path>
- <int name="tracks/11/interp"> 1 </int>
- <real_array name="tracks/11/keys" len="108"> 0, 1, -5.68434e-14, 0, 2.81136, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -5.68434e-14, 0, 2.88275, 0, 0, 0, 1, 1, 1, 1, 0.15, 1, 5.68434e-14, 4.76837e-07, 3.22584, 0, 0, 0, 1, 1, 1, 1, 0.2, 1, 5.68434e-14, 4.76837e-07, 3.31311, 0, 0, -7.10543e-15, 1, 1, 1, 1, 0.25, 1, 5.68434e-14, 4.76837e-07, 3.27685, 0, 0, 0, 1, 1, 1, 1, 0.35, 1, -5.68434e-14, 0, 2.93405, 0, 0, -7.10543e-15, 1, 1, 1, 1, 0.4, 1, -5.68434e-14, 0, 2.82965, 0, 0, 0, 1, 1, 1, 1, 0.45, 1, -5.68434e-14, 0, 2.81136, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -5.68434e-14, 0, 2.81136, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/12/type"> "transform" </string>
- <node_path name="tracks/12/path"> "Armature/Skeleton:r-LEGCONTROL" </node_path>
- <int name="tracks/12/interp"> 1 </int>
- <real_array name="tracks/12/keys" len="120"> 0, 1, -5.96046e-08, 0.623878, 0.831837, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -5.96046e-08, 0.623878, 0.85661, 0, 0, 0, 1, 1, 1, 1, 0.1, 1, -5.96046e-08, 0.623878, 0.907642, 0, 0, 0, 1, 1, 1, 1, 0.15, 1, -5.96046e-08, 0.623878, 0.942906, 0, 0, 0, 1, 1, 1, 1, 0.2, 1, -5.96046e-08, 0.623878, 0.943599, 0, 0, 0, 1, 1, 1, 1, 0.25, 1, -5.96046e-08, 0.623878, 0.921011, 0, 0, 0, 1, 1, 1, 1, 0.35, 1, -5.96046e-08, 0.623878, 0.851786, 0, 0, 0, 1, 1, 1, 1, 0.4, 1, -5.96046e-08, 0.623878, 0.834743, 0, 0, 0, 1, 1, 1, 1, 0.45, 1, -5.96046e-08, 0.623878, 0.831837, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -5.96046e-08, 0.623878, 0.831837, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/13/type"> "transform" </string>
- <node_path name="tracks/13/path"> "Armature/Skeleton:l-LEGCONTROL" </node_path>
- <int name="tracks/13/interp"> 1 </int>
- <real_array name="tracks/13/keys" len="132"> 0, 1, -1.19209e-07, 1.00668e-07, 1.33339, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -1.19209e-07, 1.01535e-07, 1.34488, 0, 0, 0, 1, 1, 1, 1, 0.1, 1, -1.19209e-07, 1.0373e-07, 1.37395, 0, 0, 0, 1, 1, 1, 1, 0.15, 1, -1.19209e-07, 1.06482e-07, 1.41041, 0, 0, 0, 1, 1, 1, 1, 0.2, 1, -1.19209e-07, 1.08677e-07, 1.43947, 0, 0, 0, 1, 1, 1, 1, 0.25, 1, -1.19209e-07, 1.09544e-07, 1.45096, 0, 0, 0, 1, 1, 1, 1, 0.3, 1, -1.19209e-07, 1.07675e-07, 1.4262, 0, 0, 0, 1, 1, 1, 1, 0.35, 1, -1.19209e-07, 1.03822e-07, 1.37517, 0, 0, 0, 1, 1, 1, 1, 0.4, 1, -1.19209e-07, 1.01159e-07, 1.33989, 0, 0, 0, 1, 1, 1, 1, 0.45, 1, -1.19209e-07, 1.00668e-07, 1.33339, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -1.19209e-07, 1.00668e-07, 1.33339, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/14/type"> "transform" </string>
- <node_path name="tracks/14/path"> "Armature/Skeleton:r-LEGORIENT" </node_path>
- <int name="tracks/14/interp"> 1 </int>
- <real_array name="tracks/14/keys" len="24"> 0, 1, -2.98023e-08, 1.19209e-07, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -2.98023e-08, 1.19209e-07, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/15/type"> "transform" </string>
- <node_path name="tracks/15/path"> "Armature/Skeleton:l-LEGORIENT" </node_path>
- <int name="tracks/15/interp"> 1 </int>
- <real_array name="tracks/15/keys" len="24"> 0, 1, 2.98023e-08, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 2.98023e-08, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/16/type"> "transform" </string>
- <node_path name="tracks/16/path"> "Armature/Skeleton:r-ARMCONTROL" </node_path>
- <int name="tracks/16/interp"> 1 </int>
- <real_array name="tracks/16/keys" len="132"> 0, 1, -1.39671, 2.72686, 1.19541, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -1.39671, 2.70532, 1.19971, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, -1.39671, 2.65088, 1.2106, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.15, 1, -1.39671, 2.5826, 1.22425, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.2, 1, -1.39671, 2.52819, 1.23514, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.25, 1, -1.39671, 2.50668, 1.23944, 0, 0, 0, 1, 1, 1, 1, 0.3, 1, -1.39671, 2.55303, 1.23017, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.35, 1, -1.39671, 2.64856, 1.21105, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.4, 1, -1.39671, 2.71466, 1.19784, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.45, 1, -1.39671, 2.72686, 1.19541, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -1.39671, 2.72686, 1.19541, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/17/type"> "transform" </string>
- <node_path name="tracks/17/path"> "Armature/Skeleton:l-ARMCONTROL" </node_path>
- <int name="tracks/17/interp"> 1 </int>
- <real_array name="tracks/17/keys" len="120"> 0, 1, 1.27388, 2.72686, 1.19541, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 1.27388, 2.68042, 1.20468, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, 1.27388, 2.58486, 1.2238, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.15, 1, 1.27388, 2.51885, 1.23701, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.2, 1, 1.27388, 2.51756, 1.23727, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.25, 1, 1.27388, 2.55985, 1.22881, 0, 0, 0, 1, 1, 1, 1, 0.35, 1, 1.27388, 2.68948, 1.20288, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.4, 1, 1.27388, 2.72141, 1.19649, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.45, 1, 1.27388, 2.72686, 1.19541, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 1.27388, 2.72686, 1.19541, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/18/type"> "transform" </string>
- <node_path name="tracks/18/path"> "Armature/Skeleton:r-ARMORIENT" </node_path>
- <int name="tracks/18/interp"> 1 </int>
- <real_array name="tracks/18/keys" len="24"> 0, 1, 0.59069, -0.00390959, 0.736489, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.59069, -0.00390959, 0.736489, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/19/type"> "transform" </string>
- <node_path name="tracks/19/path"> "Armature/Skeleton:l-ARMORIENT" </node_path>
- <int name="tracks/19/interp"> 1 </int>
- <real_array name="tracks/19/keys" len="24"> 0, 1, -0.59069, -0.00390959, 0.736489, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.59069, -0.00390959, 0.736489, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/20/type"> "transform" </string>
- <node_path name="tracks/20/path"> "Armature/Skeleton:hip" </node_path>
- <int name="tracks/20/interp"> 1 </int>
- <real_array name="tracks/20/keys" len="120"> 0, 1, -9.25123e-16, 1.16368e-07, -0.513782, -0.068257, 1.03065e-08, 8.40178e-15, 0.997668, 1, 1, 1, 0.05, 1, -0.00604435, -0.0171726, -0.516875, -0.068257, 1.03065e-08, 1.59689e-14, 0.997668, 1, 1, 1, 0.15, 1, -0.0352723, -0.100186, -0.531832, -0.068257, 1.03065e-08, 8.79127e-15, 0.997668, 1, 1, 1, 0.2, 1, -0.0427212, -0.121339, -0.535645, -0.068257, 1.03065e-08, 1.59689e-14, 0.997668, 1, 1, 1, 0.25, 1, -0.0251165, -0.102747, -0.494262, -0.068257, 1.03065e-08, 8.40178e-15, 0.997668, 1, 1, 1, 0.3, 1, -0.00387635, -0.0612733, -0.455449, -0.068257, 1.03065e-08, 8.79127e-15, 0.997668, 1, 1, 1, 0.35, 1, -0.000906605, -0.0266833, -0.479965, -0.068257, 1.03065e-08, 1.59689e-14, 0.997668, 1, 1, 1, 0.4, 1, -5.88306e-05, -0.00401501, -0.507859, -0.068257, 1.03065e-08, 8.79127e-15, 0.997668, 1, 1, 1, 0.45, 1, -9.25123e-16, 1.16368e-07, -0.513782, -0.068257, 1.03065e-08, 8.40178e-15, 0.997668, 1, 1, 1, 1.25, 1, -9.25123e-16, 1.16368e-07, -0.513782, -0.068257, 1.03065e-08, 8.40178e-15, 0.997668, 1, 1, 1 </real_array>
- <string name="tracks/21/type"> "transform" </string>
- <node_path name="tracks/21/path"> "Armature/Skeleton:waist" </node_path>
- <int name="tracks/21/interp"> 1 </int>
- <real_array name="tracks/21/keys" len="108"> 0, 1, -5.25618e-15, 1.49011e-08, -1.49012e-07, 0.0904093, -6.07213e-16, 7.18977e-15, 0.995905, 1, 1, 1, 0.05, 1, -2.67973e-10, 2.32644e-08, -5.96046e-08, 0.0920949, -3.47794e-16, 7.16792e-15, 0.99575, 1, 1, 1, 0.15, 1, 2.52298e-09, 2.61876e-08, -2.98023e-08, 0.100243, -1.17281e-15, 7.25956e-15, 0.994963, 1, 1, 1, 0.2, 1, -5.62989e-10, 3.32728e-08, -1.49012e-07, 0.102318, -1.15767e-15, 7.26199e-15, 0.994752, 1, 1, 1, 0.25, 1, -1.24048e-09, 3.35948e-08, -8.9407e-08, 0.101456, -6.3375e-16, 7.20691e-15, 0.99484, 1, 1, 1, 0.35, 1, 8.229e-13, 2.99392e-08, -1.49012e-07, 0.0933096, -3.39049e-16, 7.16834e-15, 0.995637, 1, 1, 1, 0.4, 1, -3.31995e-12, 2.53408e-08, -1.49012e-07, 0.0908406, -1.44454e-15, 1.31767e-16, 0.995865, 1, 1, 1, 0.45, 1, -5.25618e-15, 1.49011e-08, -1.49012e-07, 0.0904093, -6.07213e-16, 7.18977e-15, 0.995905, 1, 1, 1, 1.25, 1, -5.25618e-15, 1.49011e-08, -1.49012e-07, 0.0904093, -6.07213e-16, 7.18977e-15, 0.995905, 1, 1, 1 </real_array>
- <string name="tracks/22/type"> "transform" </string>
- <node_path name="tracks/22/path"> "Armature/Skeleton:chest" </node_path>
- <int name="tracks/22/interp"> 1 </int>
- <real_array name="tracks/22/keys" len="108"> 0, 1, -1.31025e-21, 7.45058e-09, -1.78814e-07, 0.0570428, -7.52314e-16, -1.03276e-15, 0.998372, 1, 1, 1, 0.05, 1, -6.93196e-14, 7.45058e-09, 0, 0.0590419, -0.00284152, 0.000283556, 0.998251, 1, 1, 1, 0.15, 1, 7.44988e-10, -3.72529e-09, 0, 0.0686997, -0.0165823, 0.00165476, 0.997498, 1, 1, 1, 0.2, 1, -7.04617e-14, -7.45058e-09, -5.96046e-08, 0.0711578, -0.0200834, 0.00200414, 0.997261, 1, 1, 1, 0.25, 1, -6.96491e-14, -3.72529e-09, -5.96046e-08, 0.0701373, -0.0186297, 0.00185908, 0.997362, 1, 1, 1, 0.35, 1, 6.97804e-11, 7.45058e-09, -1.78814e-07, 0.0604823, -0.00488944, 0.000487919, 0.998157, 1, 1, 1, 0.4, 1, -2.75782e-14, 1.11759e-08, -2.38419e-07, 0.0575543, -0.000727023, 7.25494e-05, 0.998342, 1, 1, 1, 0.45, 1, -1.31025e-21, 7.45058e-09, -1.78814e-07, 0.0570428, -7.52314e-16, -1.03276e-15, 0.998372, 1, 1, 1, 1.25, 1, -1.31025e-21, 7.45058e-09, -1.78814e-07, 0.0570428, -7.52314e-16, -1.03276e-15, 0.998372, 1, 1, 1 </real_array>
- <string name="tracks/23/type"> "transform" </string>
- <node_path name="tracks/23/path"> "Armature/Skeleton:neck" </node_path>
- <int name="tracks/23/interp"> 1 </int>
- <real_array name="tracks/23/keys" len="24"> 0, 1, -8.52651e-14, -4.47035e-08, -4.76837e-07, -7.45058e-09, 2.13163e-14, -1.77636e-15, 1, 1, 1, 1, 1.25, 1, -8.52651e-14, -4.47035e-08, -4.76837e-07, -7.45058e-09, 2.13163e-14, -1.77636e-15, 1, 1, 1, 1 </real_array>
- <string name="tracks/24/type"> "transform" </string>
- <node_path name="tracks/24/path"> "Armature/Skeleton:headtracker" </node_path>
- <int name="tracks/24/interp"> 1 </int>
- <real_array name="tracks/24/keys" len="120"> 0, 1, 1.77636e-14, -4.17233e-07, -3.53903e-08, -0.197724, -1.34662e-08, 4.54456e-08, 0.980258, 1, 1, 1, 0.05, 1, -1.95943e-09, -5.06639e-07, -6.40284e-08, -0.199636, 0.000196518, -0.00285815, 0.979866, 1, 1, 1, 0.15, 1, -2.19083e-08, -2.38419e-07, -5.75092e-08, -0.207914, 0.00144056, -0.0167025, 0.978003, 1, 1, 1, 0.2, 1, 6.08469e-09, -3.8743e-07, -6.33299e-08, -0.209803, 0.00183038, -0.0202351, 0.977533, 1, 1, 1, 0.25, 1, -4.45088e-08, -8.64267e-07, -5.21541e-08, -0.20649, 0.000358444, -0.0190238, 0.978264, 1, 1, 1, 0.3, 1, 7.56265e-09, -8.34465e-07, -4.84288e-08, -0.200537, -0.000986884, -0.0126263, 0.979604, 1, 1, 1, 0.35, 1, 3.42126e-11, -4.17233e-07, -2.37487e-08, -0.198104, -0.000490507, -0.00505109, 0.980168, 1, 1, 1, 0.4, 1, 3.9655e-10, -3.57628e-07, -3.05008e-08, -0.197722, -8.26043e-05, -0.000750033, 0.980258, 1, 1, 1, 0.45, 1, 1.77636e-14, -4.17233e-07, -3.53903e-08, -0.197724, -1.34662e-08, 4.54456e-08, 0.980258, 1, 1, 1, 1.25, 1, 1.77636e-14, -4.17233e-07, -3.53903e-08, -0.197724, -1.34662e-08, 4.54456e-08, 0.980258, 1, 1, 1 </real_array>
- <string name="tracks/25/type"> "transform" </string>
- <node_path name="tracks/25/path"> "Armature/Skeleton:head" </node_path>
- <int name="tracks/25/interp"> 1 </int>
- <real_array name="tracks/25/keys" len="24"> 0, 1, 2.81164e-14, 2.468e-08, 3.32249e-07, 2.23517e-08, -5.32907e-15, 7.10543e-15, 1, 1, 1, 1, 1.25, 1, 2.81164e-14, 2.468e-08, 3.32249e-07, 2.23517e-08, -5.32907e-15, 7.10543e-15, 1, 1, 1, 1 </real_array>
- <string name="tracks/26/type"> "transform" </string>
- <node_path name="tracks/26/path"> "Armature/Skeleton:vent" </node_path>
- <int name="tracks/26/interp"> 1 </int>
- <real_array name="tracks/26/keys" len="24"> 0, 1, 7.99361e-14, 1.49012e-07, -8.34465e-07, 2.43308e-08, 6.21725e-15, -8.59209e-15, 1, 1, 1, 1, 1.25, 1, 7.99361e-14, 1.49012e-07, -8.34465e-07, 2.43308e-08, 6.21725e-15, -8.59209e-15, 1, 1, 1, 1 </real_array>
-
- </resource>
- <resource type="Animation" path="local://10">
- <string name="resource/name"> "default" </string>
- <real name="length"> 1.25 </real>
- <bool name="loop"> False </bool>
- <real name="step"> 0.1 </real>
- <string name="tracks/0/type"> "transform" </string>
- <node_path name="tracks/0/path"> "Armature/Skeleton:r-arm" </node_path>
- <int name="tracks/0/interp"> 1 </int>
- <real_array name="tracks/0/keys" len="12"> 0, 1, 5.06639e-07, -1.19209e-07, 3.57628e-07, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/1/type"> "transform" </string>
- <node_path name="tracks/1/path"> "Armature/Skeleton:r-forearm" </node_path>
- <int name="tracks/1/interp"> 1 </int>
- <real_array name="tracks/1/keys" len="12"> 0, 1, 1.19209e-07, -8.9407e-07, -1.19209e-07, -3.72529e-08, -1.49012e-08, 2.23517e-08, 1, 1, 1, 1 </real_array>
- <string name="tracks/2/type"> "transform" </string>
- <node_path name="tracks/2/path"> "Armature/Skeleton:l-arm" </node_path>
- <int name="tracks/2/interp"> 1 </int>
- <real_array name="tracks/2/keys" len="12"> 0, 1, -5.06639e-07, -1.19209e-07, 3.57628e-07, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/3/type"> "transform" </string>
- <node_path name="tracks/3/path"> "Armature/Skeleton:l-forearm" </node_path>
- <int name="tracks/3/interp"> 1 </int>
- <real_array name="tracks/3/keys" len="12"> 0, 1, -1.19209e-07, -8.9407e-07, -1.19209e-07, -3.72529e-08, 1.49012e-08, -2.23517e-08, 1, 1, 1, 1 </real_array>
- <string name="tracks/4/type"> "transform" </string>
- <node_path name="tracks/4/path"> "Armature/Skeleton:r-thigh" </node_path>
- <int name="tracks/4/interp"> 1 </int>
- <real_array name="tracks/4/keys" len="12"> 0, 1, 0, 2.98023e-08, -2.5332e-07, 0, 5.20417e-18, -2.79397e-09, 1, 1, 1, 1 </real_array>
- <string name="tracks/5/type"> "transform" </string>
- <node_path name="tracks/5/path"> "Armature/Skeleton:r-leg" </node_path>
- <int name="tracks/5/interp"> 1 </int>
- <real_array name="tracks/5/keys" len="12"> 0, 1, 2.10712e-08, -7.45058e-09, 5.96046e-07, 7.45058e-09, 3.60887e-09, 3.91446e-09, 1, 1, 1, 1 </real_array>
- <string name="tracks/6/type"> "transform" </string>
- <node_path name="tracks/6/path"> "Armature/Skeleton:r-foot" </node_path>
- <int name="tracks/6/interp"> 1 </int>
- <real_array name="tracks/6/keys" len="12"> 0, 1, 6.70552e-08, 1.19209e-07, 0, 3.72529e-09, 1.16415e-09, 3.72529e-09, 1, 1, 1, 1 </real_array>
- <string name="tracks/7/type"> "transform" </string>
- <node_path name="tracks/7/path"> "Armature/Skeleton:l-thigh" </node_path>
- <int name="tracks/7/interp"> 1 </int>
- <real_array name="tracks/7/keys" len="12"> 0, 1, 0, 2.98023e-08, -1.49012e-08, 1.86265e-09, 7.45058e-09, 2.09548e-09, 1, 1, 1, 1 </real_array>
- <string name="tracks/8/type"> "transform" </string>
- <node_path name="tracks/8/path"> "Armature/Skeleton:l-leg" </node_path>
- <int name="tracks/8/interp"> 1 </int>
- <real_array name="tracks/8/keys" len="12"> 0, 1, 1.74623e-08, -2.98023e-08, 2.98023e-07, 3.72529e-09, 7.45058e-09, -1.17143e-09, 1, 1, 1, 1 </real_array>
- <string name="tracks/9/type"> "transform" </string>
- <node_path name="tracks/9/path"> "Armature/Skeleton:l-foot" </node_path>
- <int name="tracks/9/interp"> 1 </int>
- <real_array name="tracks/9/keys" len="12"> 0, 1, 1.49012e-08, 0, 0, 0, -1.39698e-09, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/10/type"> "transform" </string>
- <node_path name="tracks/10/path"> "Armature/Skeleton:MASTER" </node_path>
- <int name="tracks/10/interp"> 1 </int>
- <real_array name="tracks/10/keys" len="12"> 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/11/type"> "transform" </string>
- <node_path name="tracks/11/path"> "Armature/Skeleton:HEAD" </node_path>
- <int name="tracks/11/interp"> 1 </int>
- <real_array name="tracks/11/keys" len="12"> 0, 1, -5.68434e-14, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/12/type"> "transform" </string>
- <node_path name="tracks/12/path"> "Armature/Skeleton:r-LEGCONTROL" </node_path>
- <int name="tracks/12/interp"> 1 </int>
- <real_array name="tracks/12/keys" len="12"> 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/13/type"> "transform" </string>
- <node_path name="tracks/13/path"> "Armature/Skeleton:l-LEGCONTROL" </node_path>
- <int name="tracks/13/interp"> 1 </int>
- <real_array name="tracks/13/keys" len="12"> 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/14/type"> "transform" </string>
- <node_path name="tracks/14/path"> "Armature/Skeleton:r-LEGORIENT" </node_path>
- <int name="tracks/14/interp"> 1 </int>
- <real_array name="tracks/14/keys" len="12"> 0, 1, -2.98023e-08, 1.19209e-07, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/15/type"> "transform" </string>
- <node_path name="tracks/15/path"> "Armature/Skeleton:l-LEGORIENT" </node_path>
- <int name="tracks/15/interp"> 1 </int>
- <real_array name="tracks/15/keys" len="12"> 0, 1, 2.98023e-08, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/16/type"> "transform" </string>
- <node_path name="tracks/16/path"> "Armature/Skeleton:r-ARMCONTROL" </node_path>
- <int name="tracks/16/interp"> 1 </int>
- <real_array name="tracks/16/keys" len="12"> 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/17/type"> "transform" </string>
- <node_path name="tracks/17/path"> "Armature/Skeleton:l-ARMCONTROL" </node_path>
- <int name="tracks/17/interp"> 1 </int>
- <real_array name="tracks/17/keys" len="12"> 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/18/type"> "transform" </string>
- <node_path name="tracks/18/path"> "Armature/Skeleton:r-ARMORIENT" </node_path>
- <int name="tracks/18/interp"> 1 </int>
- <real_array name="tracks/18/keys" len="12"> 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/19/type"> "transform" </string>
- <node_path name="tracks/19/path"> "Armature/Skeleton:l-ARMORIENT" </node_path>
- <int name="tracks/19/interp"> 1 </int>
- <real_array name="tracks/19/keys" len="12"> 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/20/type"> "transform" </string>
- <node_path name="tracks/20/path"> "Armature/Skeleton:hip" </node_path>
- <int name="tracks/20/interp"> 1 </int>
- <real_array name="tracks/20/keys" len="12"> 0, 1, 0, -2.84217e-14, 0, 0, 0, 1.44945e-21, 1, 1, 1, 1 </real_array>
- <string name="tracks/21/type"> "transform" </string>
- <node_path name="tracks/21/path"> "Armature/Skeleton:waist" </node_path>
- <int name="tracks/21/interp"> 1 </int>
- <real_array name="tracks/21/keys" len="12"> 0, 1, -6.35275e-21, 2.84217e-14, 0, 0, 0, 2.44616e-35, 1, 1, 1, 1 </real_array>
- <string name="tracks/22/type"> "transform" </string>
- <node_path name="tracks/22/path"> "Armature/Skeleton:chest" </node_path>
- <int name="tracks/22/interp"> 1 </int>
- <real_array name="tracks/22/keys" len="12"> 0, 1, -3.38813e-21, 0, 0, 0, 0, -1.33383e-23, 1, 1, 1, 1 </real_array>
- <string name="tracks/23/type"> "transform" </string>
- <node_path name="tracks/23/path"> "Armature/Skeleton:neck" </node_path>
- <int name="tracks/23/interp"> 1 </int>
- <real_array name="tracks/23/keys" len="12"> 0, 1, -8.52651e-14, -5.96046e-08, -7.15256e-07, 1.17383e-27, 2.13163e-14, 5.50671e-14, 1, 1, 1, 1 </real_array>
- <string name="tracks/24/type"> "transform" </string>
- <node_path name="tracks/24/path"> "Armature/Skeleton:headtracker" </node_path>
- <int name="tracks/24/interp"> 1 </int>
- <real_array name="tracks/24/keys" len="12"> 0, 1, -1.77636e-13, 5.96046e-08, -5.98375e-08, 7.45058e-09, 1.04639e-13, -2.13163e-14, 1, 1, 1, 1 </real_array>
- <string name="tracks/25/type"> "transform" </string>
- <node_path name="tracks/25/path"> "Armature/Skeleton:head" </node_path>
- <int name="tracks/25/interp"> 1 </int>
- <real_array name="tracks/25/keys" len="12"> 0, 1, -2.30926e-14, -1.22469e-07, 2.39583e-07, -2.52436e-28, 7.10543e-15, -7.10543e-15, 1, 1, 1, 1 </real_array>
- <string name="tracks/26/type"> "transform" </string>
- <node_path name="tracks/26/path"> "Armature/Skeleton:vent" </node_path>
- <int name="tracks/26/interp"> 1 </int>
- <real_array name="tracks/26/keys" len="12"> 0, 1, 3.55271e-15, 5.96046e-08, -7.15256e-07, 1.97906e-09, -2.66454e-15, 5.59448e-15, 1, 1, 1, 1 </real_array>
-
- </resource>
- <resource type="Animation" path="local://11">
- <string name="resource/name"> "run-cycle" </string>
- <real name="length"> 0.833333 </real>
- <bool name="loop"> True </bool>
- <real name="step"> 0.1 </real>
- <string name="tracks/0/type"> "transform" </string>
- <node_path name="tracks/0/path"> "Armature/Skeleton:r-arm" </node_path>
- <int name="tracks/0/interp"> 1 </int>
- <real_array name="tracks/0/keys" len="192"> 0, 1, 9.23872e-07, -3.57628e-07, 5.66244e-07, 0.222344, -0.226466, -0.0274315, 0.947905, 1, 1, 1, 0.05, 1, 6.55651e-07, -1.19209e-07, 2.98023e-07, 0.251975, -0.208305, -0.0408158, 0.944167, 1, 1, 1, 0.15, 1, 1.07288e-06, -3.57628e-07, 5.36442e-07, 0.379887, -0.057225, -0.102903, 0.917509, 1, 1, 1, 0.2, 1, 6.25849e-07, -3.57628e-07, 7.45058e-07, 0.418674, -0.00696497, -0.113328, 0.901011, 1, 1, 1, 0.25, 1, 8.64267e-07, -3.57628e-07, 3.8743e-07, 0.413182, 0.0386478, -0.0801881, 0.906287, 1, 1, 1, 0.3, 1, 9.53674e-07, -4.76837e-07, 5.96046e-07, 0.315261, 0.124735, -0.0152523, 0.940648, 1, 1, 1, 0.4, 1, 6.25849e-07, -3.57628e-07, 4.17233e-07, -0.151881, 0.360683, -0.0357324, 0.919545, 1, 1, 0.999999, 0.45, 1, 6.25849e-07, -3.57628e-07, 7.45058e-07, -0.172392, 0.343529, -0.046079, 0.922034, 1, 1, 0.999999, 0.55, 1, 6.55651e-07, -3.57628e-07, 5.36442e-07, 0.168352, 0.0191591, -0.0776353, 0.982478, 1, 1, 1, 0.6, 1, 9.53674e-07, -3.57628e-07, 3.27826e-07, 0.182793, -0.0233152, -0.109476, 0.976759, 1, 1, 1, 0.65, 1, 4.17233e-07, 0, 1.78814e-07, 0.138039, -0.0157468, -0.121765, 0.982787, 1, 1, 1, 0.7, 1, 6.25849e-07, -2.38419e-07, 1.78814e-07, 0.121673, -0.0809579, -0.109793, 0.983152, 1, 1, 1, 0.75, 1, 9.23872e-07, -3.57628e-07, 7.45058e-07, 0.131274, -0.176942, -0.0767055, 0.972407, 1, 1, 1, 0.8, 1, 5.66244e-07, -1.19209e-07, 5.96046e-07, 0.13073, -0.218021, -0.0501677, 0.965847, 1, 1, 1, 0.85, 1, 2.98023e-08, 0, -5.96046e-08, 0.129118, -0.224691, -0.0428281, 0.964888, 1, 1, 1, 1.25, 1, 2.98023e-08, 0, -5.96046e-08, 0.129118, -0.224691, -0.0428281, 0.964888, 1, 1, 1 </real_array>
- <string name="tracks/1/type"> "transform" </string>
- <node_path name="tracks/1/path"> "Armature/Skeleton:r-forearm" </node_path>
- <int name="tracks/1/interp"> 1 </int>
- <real_array name="tracks/1/keys" len="180"> 0, 1, 0, -4.17233e-07, -3.57628e-07, -0.0379169, -0.0715942, 0.00193508, 0.996711, 1, 1, 1, 0.05, 1, -1.78814e-07, -5.96046e-07, -4.17233e-07, -0.000241383, -0.109076, 0.00379063, 0.994026, 1, 1, 1, 0.1, 1, 8.9407e-08, -6.55651e-07, -6.55651e-07, 0.0679255, -0.167209, 0.00334064, 0.983573, 1, 0.999999, 1, 0.25, 1, -1.19209e-07, -3.8743e-07, 0, 0.158727, -0.350464, 0.00627285, 0.923007, 1, 1, 1, 0.3, 1, -3.27826e-07, -6.85453e-07, 1.78814e-07, 0.146536, -0.393807, 0.00119701, 0.907437, 1, 1, 1, 0.35, 1, -8.9407e-08, -6.55651e-07, -3.57628e-07, 0.153485, -0.416977, -0.0128296, 0.895772, 1, 1, 1, 0.4, 1, 8.9407e-08, -9.83477e-07, -5.36442e-07, 0.172873, -0.368078, -0.014432, 0.913469, 1, 0.999999, 1, 0.45, 1, 0, -9.83477e-07, -1.19209e-07, 0.191151, -0.391536, -0.0140892, 0.899979, 1, 1, 1, 0.5, 1, 8.9407e-08, -5.96046e-07, -6.55651e-07, 0.210133, -0.527231, -0.0202225, 0.823081, 1, 1, 1, 0.55, 1, 2.68221e-07, -6.25849e-07, -4.17233e-07, 0.159334, -0.589231, -0.00909611, 0.792046, 1, 1, 1, 0.65, 1, -1.19209e-07, -6.85453e-07, -7.15256e-07, 0.0168538, -0.43832, 0.0104639, 0.8986, 1, 1, 1, 0.7, 1, 1.78814e-07, -5.36442e-07, -1.78814e-07, -0.00524541, -0.376783, 0.0174757, 0.926122, 1, 1, 1, 0.8, 1, -5.96046e-08, -7.15256e-07, -5.36442e-07, 0.00762745, -0.243737, 0.014512, 0.969703, 1, 1, 1, 0.85, 1, 1.19209e-07, -6.85453e-07, -7.7486e-07, 0.00858928, -0.221202, 0.0126834, 0.975108, 1, 1, 1, 1.25, 1, 1.19209e-07, -6.85453e-07, -7.7486e-07, 0.00858928, -0.221202, 0.0126834, 0.975108, 1, 1, 1 </real_array>
- <string name="tracks/2/type"> "transform" </string>
- <node_path name="tracks/2/path"> "Armature/Skeleton:l-arm" </node_path>
- <int name="tracks/2/interp"> 1 </int>
- <real_array name="tracks/2/keys" len="228"> 0, 1, -9.53674e-07, -5.96046e-07, 4.76837e-07, -0.211109, -0.378307, 0.04716, 0.900052, 1, 1, 1, 0.05, 1, -9.53674e-07, 1.19209e-07, 3.57628e-07, -0.122361, -0.307485, 0.0444022, 0.942608, 1, 1, 1, 0.1, 1, -6.85453e-07, -2.38419e-07, 5.96046e-07, 0.0655243, -0.124344, 0.0558387, 0.988497, 1, 1, 1, 0.15, 1, -7.7486e-07, -1.19209e-07, 5.66244e-07, 0.17223, 0.0168325, 0.088774, 0.980904, 1, 1, 1, 0.2, 1, -5.36442e-07, -3.57628e-07, 5.36442e-07, 0.151153, 0.0193605, 0.111763, 0.981981, 1, 1, 1, 0.25, 1, -6.25849e-07, -3.57628e-07, 5.96046e-07, 0.105831, 0.0199286, 0.119921, 0.986925, 1, 1, 1, 0.3, 1, -1.19209e-06, -5.96046e-07, 6.25849e-07, 0.11, 0.117841, 0.0973986, 0.982103, 1, 1, 1, 0.35, 1, -5.36442e-07, -1.19209e-07, 4.47035e-07, 0.163427, 0.213955, 0.0590648, 0.961263, 1, 1, 1, 0.4, 1, -6.85453e-07, -3.57628e-07, 5.06639e-07, 0.212517, 0.23167, 0.0327435, 0.948733, 1, 1, 1, 0.45, 1, -8.04663e-07, -2.38419e-07, 5.66244e-07, 0.240572, 0.207043, 0.0320326, 0.947751, 1, 1, 1, 0.5, 1, -9.23872e-07, 0, 8.04663e-07, 0.292283, 0.151342, 0.0529747, 0.942794, 1, 1, 1, 0.55, 1, -6.85453e-07, -3.57628e-07, 3.57628e-07, 0.354424, 0.0696654, 0.0852169, 0.928584, 1, 1, 1, 0.6, 1, -5.66244e-07, -2.38419e-07, 2.98023e-07, 0.397207, 0.0175472, 0.104303, 0.911614, 1, 1, 1, 0.65, 1, -8.34465e-07, -2.38419e-07, 4.47035e-07, 0.407225, -0.0166533, 0.0875941, 0.908965, 1, 1, 1, 0.7, 1, -1.2517e-06, -1.19209e-07, 6.55651e-07, 0.349327, -0.0813931, 0.0308211, 0.93295, 1, 1, 1, 0.75, 1, -1.19209e-07, 1.19209e-07, 2.08616e-07, 0.214708, -0.14004, -0.012317, 0.966508, 1, 1, 1, 0.8, 1, -6.55651e-07, -1.19209e-07, 2.98023e-07, -0.00140518, -0.171137, -0.0177305, 0.985087, 1, 1, 1, 0.85, 1, -4.76837e-07, -3.57628e-07, 3.8743e-07, -0.0925096, -0.171599, -0.011185, 0.98075, 1, 1, 1, 1.25, 1, -4.76837e-07, -3.57628e-07, 3.8743e-07, -0.0925096, -0.171599, -0.011185, 0.98075, 1, 1, 1 </real_array>
- <string name="tracks/3/type"> "transform" </string>
- <node_path name="tracks/3/path"> "Armature/Skeleton:l-forearm" </node_path>
- <int name="tracks/3/interp"> 1 </int>
- <real_array name="tracks/3/keys" len="180"> 0, 1, 2.08616e-07, -2.98023e-08, -5.96046e-07, 0.176871, 0.346752, 0.0115369, 0.921058, 1, 1, 1, 0.05, 1, -1.49012e-07, -4.76837e-07, -2.38419e-07, 0.1969, 0.431458, 0.0161118, 0.880236, 1, 1, 1, 0.1, 1, -3.57628e-07, -8.04663e-07, -4.76837e-07, 0.196923, 0.556224, 0.0152519, 0.80722, 1, 1, 1, 0.15, 1, -2.68221e-07, -4.17233e-07, -2.98023e-07, 0.134905, 0.568169, 0.00154346, 0.811777, 1, 1, 1, 0.2, 1, -1.49012e-07, -6.25849e-07, -4.17233e-07, 0.0562878, 0.484209, -0.00707307, 0.873111, 1, 1, 1, 0.25, 1, -2.98023e-08, -8.04663e-07, -3.57628e-07, 0.0047636, 0.406038, -0.0121859, 0.913763, 1, 1, 1, 0.3, 1, 5.96046e-08, -7.7486e-07, -1.78814e-07, -0.011494, 0.345751, -0.0179636, 0.938084, 1, 0.999999, 1, 0.4, 1, 5.36442e-07, -5.36442e-07, -1.19209e-07, -0.0325058, 0.107107, -0.00429871, 0.993707, 1, 0.999999, 1, 0.45, 1, 2.08616e-07, -8.34465e-07, -1.78814e-07, -0.0177273, 0.0767786, -0.00241131, 0.996888, 1, 1, 1, 0.65, 1, -5.96046e-08, -6.55651e-07, -1.07288e-06, 0.154364, 0.318848, -0.0046877, 0.935139, 1, 1, 1, 0.7, 1, 5.96046e-08, -9.23872e-07, -1.01328e-06, 0.155566, 0.376204, -0.00401138, 0.913375, 1, 1, 1, 0.75, 1, 0, -8.9407e-07, -4.17233e-07, 0.173064, 0.444685, 0.00561718, 0.87879, 1, 1, 1, 0.8, 1, 3.27826e-07, -6.55651e-07, -4.17233e-07, 0.251551, 0.464674, 0.00544377, 0.848982, 1, 1, 1, 0.85, 1, 8.9407e-08, -7.15256e-07, -9.53674e-07, 0.280639, 0.447823, -0.00246765, 0.848935, 1, 1, 1, 1.25, 1, 8.9407e-08, -7.15256e-07, -9.53674e-07, 0.280639, 0.447823, -0.00246765, 0.848935, 1, 1, 1 </real_array>
- <string name="tracks/4/type"> "transform" </string>
- <node_path name="tracks/4/path"> "Armature/Skeleton:r-thigh" </node_path>
- <int name="tracks/4/interp"> 1 </int>
- <real_array name="tracks/4/keys" len="192"> 0, 1, 0, 1.63913e-07, 1.93715e-07, -0.283345, 0.0300071, -0.0426225, 0.957601, 1, 1, 1, 0.05, 1, 8.9407e-08, 1.93715e-07, -5.06639e-07, -0.221388, 0.0587497, -0.0627932, 0.971387, 1, 1, 1, 0.15, 1, 5.96046e-08, 6.70552e-08, -1.3411e-07, 0.127996, 0.137739, -0.113256, 0.975612, 1, 1, 1, 0.2, 1, -5.96046e-08, -7.45058e-09, -7.45058e-07, 0.264976, 0.121823, -0.100248, 0.951261, 1, 1, 1, 0.25, 1, 2.98023e-08, -2.01166e-07, -4.91738e-07, 0.314522, 0.0998354, -0.077727, 0.94078, 1, 1, 1, 0.3, 1, 1.49012e-07, 1.3411e-07, 1.3411e-07, 0.306548, 0.0507913, -0.0454783, 0.949411, 1, 1, 1, 0.35, 1, 8.9407e-08, 7.45058e-09, -2.83122e-07, 0.297828, -0.0187708, -0.0207563, 0.954209, 1, 1, 1, 0.4, 1, 8.9407e-08, 4.47035e-08, -2.98023e-07, 0.287784, -0.0733564, -0.00467344, 0.95487, 1, 1, 1, 0.45, 1, 2.98023e-08, 2.23517e-08, -2.5332e-07, 0.170166, -0.0854042, 0.00266015, 0.981704, 1, 1, 1, 0.6, 1, 0, 1.04308e-07, 0, -0.531982, -0.0722138, 0.0220251, 0.843383, 1, 1, 1, 0.65, 1, 0, 1.3411e-07, -3.12924e-07, -0.652152, -0.0747176, 0.0102306, 0.754328, 1, 1, 1, 0.7, 1, -2.98023e-08, 0, 1.49012e-07, -0.686637, -0.0649825, 0.00231536, 0.724087, 1, 1, 1, 0.75, 1, 2.98023e-08, -1.56462e-07, -2.38419e-07, -0.638385, -0.0394346, -0.00259775, 0.768702, 1, 1, 1, 0.8, 1, 1.49012e-07, -8.9407e-08, -1.93715e-07, -0.432358, 0.00843852, -0.0248422, 0.90132, 1, 1, 1, 0.85, 1, 0, 1.63913e-07, 1.93715e-07, -0.283345, 0.0300071, -0.0426225, 0.957601, 1, 1, 1, 1.25, 1, 0, 1.63913e-07, 1.93715e-07, -0.283345, 0.0300071, -0.0426225, 0.957601, 1, 1, 1 </real_array>
- <string name="tracks/5/type"> "transform" </string>
- <node_path name="tracks/5/path"> "Armature/Skeleton:r-leg" </node_path>
- <int name="tracks/5/interp"> 1 </int>
- <real_array name="tracks/5/keys" len="216"> 0, 1, 2.29338e-08, 8.9407e-08, 5.36442e-07, -0.369097, -0.0505305, 0.00260278, 0.928013, 1, 1, 1, 0.05, 1, 8.26549e-08, 1.93715e-07, 4.76837e-07, -0.32656, -0.0387365, 0.00230976, 0.94438, 1, 1, 1, 0.15, 1, 4.78467e-08, -7.45058e-09, 7.7486e-07, -0.04833, 0.013837, -0.00331139, 0.99873, 1, 1, 1, 0.2, 1, 1.44588e-07, 0, 7.15256e-07, 0.0174433, 0.00914093, -0.00369525, 0.999799, 1, 1, 1, 0.25, 1, 4.49363e-08, 1.63913e-07, 2.38419e-07, -0.0309752, 0.0174032, -0.00233819, 0.999366, 1, 1, 1, 0.3, 1, 6.06524e-08, -7.45058e-08, 6.55651e-07, -0.161344, 0.031869, -0.00095907, 0.986383, 1, 1, 1, 0.35, 1, 6.23986e-08, 1.11759e-07, 5.36442e-07, -0.258604, 0.043227, -0.000463765, 0.965016, 1, 1, 1, 0.4, 1, 2.66591e-08, 1.11759e-07, 5.96046e-07, -0.311843, 0.0531668, -0.000274837, 0.948645, 1, 1, 1, 0.45, 1, -0.000736501, 0.00352155, -0.0507002, -0.471618, 0.0737067, 0.000546333, 0.878717, 1, 1, 1, 0.5, 1, -0.00351399, 0.0168005, -0.241486, -0.74573, 0.0999092, 7.49679e-05, 0.658714, 1, 1, 1, 0.55, 1, -0.00736267, 0.0352004, -0.505227, 0.896291, -0.0831834, 0.00513814, -0.435565, 1, 1, 1, 0.6, 1, -0.0098056, 0.0468799, -0.672563, 0.946677, -0.0409485, 0.00588309, -0.319519, 1, 1, 1, 0.65, 1, -0.0098056, 0.0468801, -0.672652, 0.947809, 0.0057637, 0.00256107, -0.318776, 1, 1, 1, 0.7, 1, -0.00736268, 0.0352004, -0.505962, 0.888767, 0.0669386, 0.000245982, -0.453445, 1, 1, 1, 0.75, 1, -0.003514, 0.016801, -0.242868, -0.757574, -0.0924392, -0.000540428, 0.64617, 1, 1, 1, 0.8, 1, -0.000736581, 0.0035219, -0.0512407, -0.527405, -0.0678553, 0.00109702, 0.846899, 1, 1, 1, 0.85, 1, 2.29338e-08, 8.9407e-08, 5.36442e-07, -0.369097, -0.0505305, 0.00260278, 0.928013, 1, 1, 1, 1.25, 1, 2.29338e-08, 8.9407e-08, 5.36442e-07, -0.369097, -0.0505305, 0.00260278, 0.928013, 1, 1, 1 </real_array>
- <string name="tracks/6/type"> "transform" </string>
- <node_path name="tracks/6/path"> "Armature/Skeleton:r-foot" </node_path>
- <int name="tracks/6/interp"> 1 </int>
- <real_array name="tracks/6/keys" len="216"> 0, 1, 1.49012e-08, 0, -5.21541e-08, 0.163945, 0.140221, -0.046324, 0.975354, 1, 1, 1, 0.05, 1, 9.68575e-08, 0, 7.82311e-08, 0.163142, 0.147087, -0.0386578, 0.974811, 1, 1, 1, 0.1, 1, 7.45058e-08, 0, 1.11759e-08, 0.154504, 0.157524, -0.0272069, 0.974974, 1, 1, 1, 0.15, 1, 8.9407e-08, 0, 3.72529e-08, 0.106593, 0.145246, -0.0455539, 0.982581, 1, 1, 1, 0.2, 1, 3.72529e-08, 0, 0, 0.00306457, 0.0975244, -0.0887594, 0.991263, 1, 1, 1, 0.3, 1, 4.47035e-08, 1.19209e-07, -1.60187e-07, -0.165764, -0.00244496, -0.0619073, 0.984217, 1, 1, 1, 0.35, 1, 3.72529e-08, -1.19209e-07, -1.2666e-07, -0.225564, -0.0444232, -0.0320188, 0.972688, 1, 1, 1, 0.4, 1, -2.98023e-08, -1.19209e-07, 1.3411e-07, -0.254966, -0.0644888, -0.0152293, 0.964677, 1, 1, 1, 0.45, 1, 5.96046e-08, 1.19209e-07, -3.72529e-09, -0.263415, -0.0674915, -0.0129876, 0.962231, 1, 1, 1, 0.5, 1, 7.45058e-08, 0, -2.98023e-08, -0.26682, -0.065605, -0.0157537, 0.961382, 1, 1, 1, 0.55, 1, 5.96046e-08, 0, 3.35276e-08, -0.268414, -0.0578826, -0.0205736, 0.961343, 1, 1, 1, 0.6, 1, 2.23517e-08, -1.19209e-07, 1.49012e-07, -0.268984, -0.0431783, -0.0254932, 0.961839, 1, 1, 1, 0.65, 1, 3.72529e-08, 0, -1.11759e-08, -0.205247, -0.0144598, -0.0301062, 0.97814, 1, 1, 1, 0.7, 1, 7.45058e-08, -1.19209e-07, -5.58794e-08, 0.0302446, 0.0427142, -0.0345553, 0.998031, 1, 1, 1, 0.75, 1, 8.9407e-08, 0, -1.11759e-07, 0.187052, 0.0967062, -0.0379775, 0.97684, 1, 1, 1, 0.8, 1, 8.19564e-08, -1.19209e-07, 2.23517e-08, 0.173053, 0.130372, -0.0438442, 0.975261, 1, 1, 1, 0.85, 1, 1.49012e-08, 0, -5.21541e-08, 0.163945, 0.140221, -0.046324, 0.975354, 1, 1, 1, 1.25, 1, 1.49012e-08, 0, -5.21541e-08, 0.163945, 0.140221, -0.046324, 0.975354, 1, 1, 1 </real_array>
- <string name="tracks/7/type"> "transform" </string>
- <node_path name="tracks/7/path"> "Armature/Skeleton:l-thigh" </node_path>
- <int name="tracks/7/interp"> 1 </int>
- <real_array name="tracks/7/keys" len="204"> 0, 1, 0, 2.08616e-07, 1.49012e-08, 0.284249, 0.0874448, 0.000525696, 0.954754, 1, 1, 1, 0.05, 1, 0, 1.11759e-07, -1.63913e-07, 0.0840381, 0.068345, -0.00156289, 0.994115, 1, 1, 1, 0.15, 1, 0, -9.68575e-08, -1.19209e-07, -0.428198, 0.103089, -0.0309307, 0.897253, 1, 1, 1, 0.2, 1, 2.98023e-08, 0, -2.5332e-07, -0.585268, 0.121806, -0.0264258, 0.801203, 1, 1, 1, 0.25, 1, -5.96046e-08, -2.68221e-07, -1.93715e-07, -0.68271, 0.117151, -0.00691618, 0.721203, 1, 1, 1, 0.3, 1, 5.96046e-08, 5.21541e-08, 3.57628e-07, -0.675843, 0.0951763, -0.00368054, 0.730865, 1, 1, 1, 0.35, 1, -5.96046e-08, -8.9407e-08, -1.04308e-07, -0.577504, 0.0522321, 0.00297164, 0.81471, 1, 1, 1, 0.4, 1, 0, 7.45058e-09, 1.63913e-07, -0.36481, -0.00958558, 0.0300626, 0.930547, 1, 1, 1, 0.45, 1, -1.19209e-07, 7.45058e-08, 1.49012e-07, -0.214962, -0.0628985, 0.0719756, 0.971933, 1, 1, 1, 0.5, 1, 0, 7.45058e-09, -7.15256e-07, -0.0924244, -0.113076, 0.110988, 0.983033, 1, 1, 1, 0.6, 1, 2.98023e-08, 3.72529e-08, 7.30157e-07, 0.212199, -0.104928, 0.0711089, 0.968971, 1, 1, 1, 0.65, 1, 8.9407e-08, 1.49012e-08, -1.63913e-07, 0.280374, -0.0786743, 0.0551762, 0.955069, 1, 1, 1, 0.7, 1, 0, 1.11759e-07, 2.5332e-07, 0.288443, -0.0349057, 0.033278, 0.956282, 1, 1, 1, 0.75, 1, -2.98023e-08, -1.3411e-07, -6.85453e-07, 0.285487, 0.0289713, 0.0136411, 0.957847, 1, 1, 1, 0.8, 1, -5.96046e-08, 8.9407e-08, -3.27826e-07, 0.284867, 0.0752772, 0.00313844, 0.955602, 1, 1, 1, 0.85, 1, 0, 2.08616e-07, 1.49012e-08, 0.284249, 0.0874448, 0.000525696, 0.954754, 1, 1, 1, 1.25, 1, 0, 2.08616e-07, 1.49012e-08, 0.284249, 0.0874448, 0.000525696, 0.954754, 1, 1, 1 </real_array>
- <string name="tracks/8/type"> "transform" </string>
- <node_path name="tracks/8/path"> "Armature/Skeleton:l-leg" </node_path>
- <int name="tracks/8/interp"> 1 </int>
- <real_array name="tracks/8/keys" len="216"> 0, 1, -6.98492e-10, -2.98023e-08, 4.76837e-07, -0.32359, -0.0556479, 0.000232734, 0.94456, 1, 1, 1, 0.05, 1, 0.0014394, 0.00688202, -0.0998148, -0.562955, -0.0817876, -0.000658042, 0.82243, 1, 1, 1, 0.1, 1, 0.00484604, 0.0231691, -0.333955, -0.80836, -0.0993527, 0.00161956, 0.580241, 1, 1, 1, 0.15, 1, 0.00839999, 0.04016, -0.576718, 0.916395, 0.0904963, -0.00581601, -0.389867, 1, 1, 1, 0.2, 1, 0.010174, 0.048641, -0.697832, 0.949699, 0.0597103, -0.00558806, -0.307368, 1, 1, 1, 0.25, 1, 0.00943748, 0.0451194, -0.647324, 0.940565, -0.00539416, -0.00131091, -0.339569, 1, 1, 1, 0.3, 1, 0.00617793, 0.0295368, -0.424059, -0.852217, 0.0810981, 0.000142268, 0.516865, 1, 1, 1, 0.35, 1, 0.00247674, 0.0118409, -0.170242, -0.686673, 0.0913182, 0.000156236, 0.721208, 1, 1, 1, 0.4, 1, 0.000368256, 0.00176083, -0.02535, -0.450712, 0.0617424, -0.0017981, 0.89053, 1, 1, 1, 0.45, 1, -3.27127e-08, -2.23517e-08, 0, -0.320919, 0.0402711, -0.00287403, 0.946246, 1, 1, 1, 0.5, 1, -3.65544e-08, 2.6077e-07, 0, -0.222093, 0.0121194, -0.000893378, 0.97495, 1, 1, 1, 0.55, 1, -7.85803e-08, -5.21541e-08, 5.96046e-08, -0.085227, -0.0121138, 0.00211304, 0.996286, 1, 1, 1, 0.6, 1, -9.66247e-09, -1.93715e-07, -5.96046e-08, -0.0204391, -0.0111085, 0.00211107, 0.999727, 1, 1, 1, 0.65, 1, -1.47847e-08, -7.45058e-09, 1.19209e-07, -0.0461144, -0.0137229, 0.00155832, 0.998841, 1, 1, 1, 0.75, 1, 9.77889e-08, -8.9407e-08, 0, -0.259445, -0.0379664, 0.000355786, 0.965011, 1, 1, 1, 0.8, 1, -3.06172e-08, -1.19209e-07, 1.19209e-07, -0.311223, -0.0514541, 0.000257438, 0.948943, 1, 1, 1, 0.85, 1, -6.98492e-10, -2.98023e-08, 4.76837e-07, -0.32359, -0.0556479, 0.000232734, 0.94456, 1, 1, 1, 1.25, 1, -6.98492e-10, -2.98023e-08, 4.76837e-07, -0.32359, -0.0556479, 0.000232734, 0.94456, 1, 1, 1 </real_array>
- <string name="tracks/9/type"> "transform" </string>
- <node_path name="tracks/9/path"> "Armature/Skeleton:l-foot" </node_path>
- <int name="tracks/9/interp"> 1 </int>
- <real_array name="tracks/9/keys" len="204"> 0, 1, 2.23517e-08, 1.19209e-07, 7.45058e-09, -0.260411, 0.0677016, 0.0123204, 0.963042, 1, 1, 1, 0.05, 1, 1.49012e-08, 1.19209e-07, -6.33299e-08, -0.261291, 0.0586691, 0.0123934, 0.963396, 1, 1, 1, 0.1, 1, 1.49012e-08, 1.19209e-07, 3.35276e-08, -0.262834, 0.0342669, 0.0126709, 0.964149, 1, 1, 1, 0.2, 1, 1.49012e-08, 0, 1.86265e-08, -0.260355, -0.0293857, 0.0140367, 0.964964, 1, 1, 1, 0.25, 1, -6.70552e-08, 0, -2.49594e-07, -0.153196, -0.0556389, 0.0191204, 0.986443, 1, 1, 1, 0.3, 1, 7.45058e-09, 2.38419e-07, 3.35276e-08, 0.102501, -0.0807205, 0.0313849, 0.990956, 1, 1, 1, 0.35, 1, -1.49012e-08, 1.19209e-07, -1.11759e-08, 0.182765, -0.105332, 0.0403985, 0.976663, 1, 1, 1, 0.4, 1, 0, 2.38419e-07, 2.98023e-08, 0.1689, -0.131443, 0.0454069, 0.975773, 1, 1, 1, 0.45, 1, -2.23517e-08, 1.19209e-07, 1.11759e-08, 0.162548, -0.163949, 0.0367097, 0.972292, 1, 1, 1, 0.5, 1, -7.45058e-09, 1.19209e-07, -6.70552e-08, 0.160675, -0.186181, 0.0223394, 0.969031, 1, 1, 1, 0.55, 1, 0, 2.38419e-07, -4.09782e-08, 0.121712, -0.123055, 0.0340729, 0.984318, 1, 1, 1, 0.65, 1, -2.23517e-08, 2.38419e-07, -4.84288e-08, -0.0909908, -0.00331438, 0.030867, 0.995368, 1, 1, 1, 0.7, 1, -2.98023e-08, 0, -1.86265e-08, -0.167009, 0.0327264, 0.0253347, 0.985086, 1, 1, 1, 0.75, 1, -1.49012e-08, 2.38419e-07, -9.31323e-08, -0.225897, 0.0565391, 0.0182554, 0.972338, 1, 1, 1, 0.8, 1, 7.45058e-09, 0, 1.41561e-07, -0.254123, 0.0658906, 0.0135391, 0.96483, 1, 1, 1, 0.85, 1, 2.23517e-08, 1.19209e-07, 7.45058e-09, -0.260411, 0.0677016, 0.0123204, 0.963042, 1, 1, 1, 1.25, 1, 2.23517e-08, 1.19209e-07, 7.45058e-09, -0.260411, 0.0677016, 0.0123204, 0.963042, 1, 1, 1 </real_array>
- <string name="tracks/10/type"> "transform" </string>
- <node_path name="tracks/10/path"> "Armature/Skeleton:MASTER" </node_path>
- <int name="tracks/10/interp"> 1 </int>
- <real_array name="tracks/10/keys" len="24"> 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/11/type"> "transform" </string>
- <node_path name="tracks/11/path"> "Armature/Skeleton:HEAD" </node_path>
- <int name="tracks/11/interp"> 1 </int>
- <real_array name="tracks/11/keys" len="192"> 0, 1, -5.68434e-14, 0, 0.994808, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -5.68434e-14, 0, 0.908378, 0, 0, 0, 1, 1, 1, 1, 0.1, 1, -5.68434e-14, 0, 0.865919, 0, 0, 7.10543e-15, 1, 1, 1, 1, 0.15, 1, -5.68434e-14, 0, 0.952043, 0, 0, 0, 1, 1, 1, 1, 0.25, 1, -5.68434e-14, 0, 1.23636, 0, 0, 0, 1, 1, 1, 1, 0.3, 1, -5.68434e-14, 0, 1.26452, 0, 0, 7.10543e-15, 1, 1, 1, 1, 0.35, 1, -5.68434e-14, 0, 1.17812, 0, 0, -7.10543e-15, 1, 1, 1, 1, 0.45, 1, -5.68434e-14, 0, 0.917901, 0, 0, 0, 1, 1, 1, 1, 0.5, 1, -5.68434e-14, 0, 0.850875, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, -5.68434e-14, 0, 0.90967, 0, 0, 0, 1, 1, 1, 1, 0.65, 1, -5.68434e-14, 0, 1.19399, 0, 0, 0, 1, 1, 1, 1, 0.7, 1, -5.68434e-14, 0, 1.26645, 0, 0, 7.10543e-15, 1, 1, 1, 1, 0.75, 1, -5.68434e-14, 0, 1.20667, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, -5.68434e-14, 0, 1.04898, 0, 0, 7.10543e-15, 1, 1, 1, 1, 0.85, 1, -5.68434e-14, 0, 0.994808, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -5.68434e-14, 0, 0.994808, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/12/type"> "transform" </string>
- <node_path name="tracks/12/path"> "Armature/Skeleton:r-LEGCONTROL" </node_path>
- <int name="tracks/12/interp"> 1 </int>
- <real_array name="tracks/12/keys" len="192"> 0, 1, -0.142338, -0.593751, 0.041427, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -0.141891, -0.466314, 0.0666584, 0, 0, 0, 1, 1, 1, 1, 0.1, 1, -0.140854, -0.18721, 0.16679, 0, 0, 0, 1, 1, 1, 1, 0.3, 1, -0.135712, 0.882052, 1.08263, 0, 0, 0, 1, 1, 1, 1, 0.35, 1, -0.134593, 1.04285, 1.23903, 0, 0, 0, 1, 1, 1, 1, 0.4, 1, -0.134052, 1.11594, 1.33052, 0, 0, 0, 1, 1, 1, 1, 0.45, 1, -0.134139, 1.01025, 1.37488, 0, 0, 0, 1, 1, 1, 1, 0.5, 1, -0.134864, 0.561422, 1.40083, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, -0.136154, -0.107091, 1.41207, 0, 0, 0, 1, 1, 1, 1, 0.6, 1, -0.137517, -0.627938, 1.41499, 0, 0, 0, 1, 1, 1, 1, 0.65, 1, -0.138802, -0.880369, 1.32217, 0, 0, 0, 1, 1, 1, 1, 0.7, 1, -0.140187, -0.97361, 0.946171, 0, 0, 0, 1, 1, 1, 1, 0.75, 1, -0.141374, -0.990009, 0.507478, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, -0.142135, -0.753522, 0.166703, 0, 0, 0, 1, 1, 1, 1, 0.85, 1, -0.142338, -0.593751, 0.041427, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.142338, -0.593751, 0.041427, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/13/type"> "transform" </string>
- <node_path name="tracks/13/path"> "Armature/Skeleton:l-LEGCONTROL" </node_path>
- <int name="tracks/13/interp"> 1 </int>
- <real_array name="tracks/13/keys" len="192"> 0, 1, 0.133965, 1.12742, 1.35169, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 0.134319, 0.88137, 1.36048, 0, 0, 0, 1, 1, 1, 1, 0.15, 1, 0.136624, -0.318866, 1.4031, 0, 0, 0, 1, 1, 1, 1, 0.2, 1, 0.13794, -0.745207, 1.41408, 0, 0, 0, 1, 1, 1, 1, 0.25, 1, 0.139237, -0.932173, 1.26013, 0, 0, 0, 1, 1, 1, 1, 0.3, 1, 0.140615, -0.985177, 0.795642, 0, 0, 0, 1, 1, 1, 1, 0.35, 1, 0.141658, -0.933265, 0.382912, 0, 0, 0, 1, 1, 1, 1, 0.4, 1, 0.142236, -0.69551, 0.103281, 0, 0, 0, 1, 1, 1, 1, 0.45, 1, 0.142112, -0.449542, 0.0515677, 0, 0, 0, 1, 1, 1, 1, 0.5, 1, 0.141234, -0.239295, 0.11699, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, 0.140074, 0.0127278, 0.285218, 0, 0, 0, 1, 1, 1, 1, 0.7, 1, 0.136158, 0.812955, 1.03336, 0, 0, 0, 1, 1, 1, 1, 0.75, 1, 0.134866, 1.00553, 1.22614, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, 0.13414, 1.10444, 1.32777, 0, 0, 0, 1, 1, 1, 1, 0.85, 1, 0.133965, 1.12742, 1.35169, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.133965, 1.12742, 1.35169, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/14/type"> "transform" </string>
- <node_path name="tracks/14/path"> "Armature/Skeleton:r-LEGORIENT" </node_path>
- <int name="tracks/14/interp"> 1 </int>
- <real_array name="tracks/14/keys" len="180"> 0, 1, 0.100474, 0.669825, -0.778672, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 0.0953997, 0.642052, -0.742965, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 0.1, 1, 0.0823101, 0.56581, -0.648221, 4.1297e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.35, 1, 0.0243976, -0.0441461, -0.063019, 4.1297e-08, 2.53394e-15, -7.10543e-15, 1, 1, 1, 1, 0.4, 1, 0.020945, -0.11126, -0.00892317, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 0.45, 1, 0.0214889, -0.0993756, -0.1204, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.5, 1, 0.0261557, -0.00703263, -0.571036, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, 0.0350212, 0.144668, -1.19143, 7.10993e-08, 6.08666e-15, -4.32757e-22, 1, 1, 1, 1, 0.6, 1, 0.0452013, 0.286137, -1.58564, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.65, 1, 0.056361, 0.396596, -1.62736, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.7, 1, 0.0713525, 0.504199, -1.41721, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 0.75, 1, 0.0877976, 0.602767, -1.08603, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, 0.097935, 0.656912, -0.843801, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 0.85, 1, 0.100474, 0.669825, -0.778672, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.100474, 0.669825, -0.778672, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/15/type"> "transform" </string>
- <node_path name="tracks/15/path"> "Armature/Skeleton:l-LEGORIENT" </node_path>
- <int name="tracks/15/interp"> 1 </int>
- <real_array name="tracks/15/keys" len="180"> 0, 1, -0.0204011, -0.122407, 5.96046e-08, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -0.0226399, -0.0760723, -0.246171, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 0.15, 1, -0.0384328, 0.195889, -1.36473, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.2, 1, -0.0485586, 0.325533, -1.64571, 7.10993e-08, 9.63937e-15, -6.85353e-22, 1, 1, 1, 1, 0.25, 1, -0.0604436, 0.430887, -1.61593, 0, 0, 0, 1, 1, 1, 1, 0.3, 1, -0.0768237, 0.538687, -1.39129, 7.10993e-08, 2.53394e-15, -2.11758e-22, 1, 1, 1, 1, 0.35, 1, -0.0915991, 0.623227, -1.09587, 4.1297e-08, 2.53394e-15, -7.10543e-15, 1, 1, 1, 1, 0.4, 1, -0.0992045, 0.663389, -0.847581, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 0.45, 1, -0.0979352, 0.656214, -0.687419, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.5, 1, -0.0877979, 0.599371, -0.580202, 0, 0, 0, 1, 1, 1, 1, 0.65, 1, -0.0452008, 0.276356, -0.334939, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.75, 1, -0.0261556, -0.010167, -0.0897738, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, -0.0214889, -0.0999783, -0.0177123, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 0.85, 1, -0.0204011, -0.122407, 5.96046e-08, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.0204011, -0.122407, 5.96046e-08, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/16/type"> "transform" </string>
- <node_path name="tracks/16/path"> "Armature/Skeleton:r-ARMCONTROL" </node_path>
- <int name="tracks/16/interp"> 1 </int>
- <real_array name="tracks/16/keys" len="168"> 0, 1, -0.868295, 0.288818, -0.834593, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -0.920336, 0.223441, -0.675278, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, -1.0611, 0.0535004, -0.268795, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.3, 1, -1.81549, -0.572945, 1.93497, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.35, 1, -1.97521, -0.260334, 2.42549, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.4, 1, -2.07242, 0.0952058, 2.72719, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.45, 1, -2.06152, 0.134094, 2.70055, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.5, 1, -1.94935, -0.00418663, 2.38214, 0, 0, 0, 1, 1, 1, 1, 0.6, 1, -1.5659, -0.316463, 1.27531, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.65, 1, -1.39564, -0.31023, 0.768786, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.75, 1, -1.01032, 0.0728607, -0.380929, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, -0.896442, 0.243316, -0.739858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.85, 1, -0.868295, 0.288818, -0.834593, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.868295, 0.288818, -0.834593, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/17/type"> "transform" </string>
- <node_path name="tracks/17/path"> "Armature/Skeleton:l-ARMCONTROL" </node_path>
- <int name="tracks/17/interp"> 1 </int>
- <real_array name="tracks/17/keys" len="168"> 0, 1, 2.08906, 0.170859, 2.78004, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 2.03311, 0.0989122, 2.61048, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, 1.88529, -0.0705678, 2.18507, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.2, 1, 1.50915, -0.334755, 1.10648, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.25, 1, 1.33866, -0.287646, 0.593788, 0, 0, 0, 1, 1, 1, 1, 0.35, 1, 0.966909, 0.137533, -0.532556, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.4, 1, 0.882217, 0.266322, -0.791318, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.45, 1, 0.89374, 0.256562, -0.760212, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.5, 1, 0.999084, 0.126561, -0.459517, 0, 0, 0, 1, 1, 1, 1, 0.7, 1, 1.75712, -0.595706, 1.75783, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.75, 1, 1.92686, -0.424236, 2.27222, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, 2.0556, 0.0151663, 2.66931, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.85, 1, 2.08906, 0.170859, 2.78004, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 2.08906, 0.170859, 2.78004, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/18/type"> "transform" </string>
- <node_path name="tracks/18/path"> "Armature/Skeleton:r-ARMORIENT" </node_path>
- <int name="tracks/18/interp"> 1 </int>
- <real_array name="tracks/18/keys" len="156"> 0, 1, 0.405204, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 0.341349, -0.264663, 0.0556155, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.15, 1, 0.0336542, -1.45692, 0.323532, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.2, 1, -0.0452293, -1.75482, 0.391734, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.25, 1, 0.0926713, -1.62165, 0.363375, 0, 0, 0, 1, 1, 1, 1, 0.35, 1, 1.18685, -0.378264, 0.0954279, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.4, 1, 1.51909, 0.00473738, 0.0141962, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.45, 1, 1.55064, 0.0706801, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.5, 1, 1.44211, 0.0639179, 0, 0, 0, 0, 1, 1, 1, 1, 0.75, 1, 0.54098, 0.00832748, 0, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, 0.432091, 0.00163841, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.85, 1, 0.405204, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.405204, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/19/type"> "transform" </string>
- <node_path name="tracks/19/path"> "Armature/Skeleton:l-ARMORIENT" </node_path>
- <int name="tracks/19/interp"> 1 </int>
- <real_array name="tracks/19/keys" len="168"> 0, 1, -1.5774, 0.0723579, 0, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -1.5235, 0.0690539, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, -1.38104, 0.0602572, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.4, 1, -0.448482, 0.0061903, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.45, 1, -0.312683, -0.140136, 0.0283925, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.5, 1, -0.161211, -0.627825, 0.135386, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, -0.030728, -1.28144, 0.283529, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.6, 1, 0.0389389, -1.69292, 0.377552, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.65, 1, -0.0330012, -1.68882, 0.377568, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.7, 1, -0.409697, -1.26443, 0.283661, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.75, 1, -1.00503, -0.588506, 0.135634, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, -1.45325, -0.0721812, 0.0284887, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.85, 1, -1.5774, 0.0723579, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -1.5774, 0.0723579, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/20/type"> "transform" </string>
- <node_path name="tracks/20/path"> "Armature/Skeleton:hip" </node_path>
- <int name="tracks/20/interp"> 1 </int>
- <real_array name="tracks/20/keys" len="216"> 0, 1, 0.050238, 0.697428, 0.108012, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1, 0.05, 1, 0.0669454, 0.729981, 0.0847113, 0.0751978, 0.000902196, 0.0773167, 0.994166, 1, 1, 1, 0.15, 1, 0.147711, 0.887191, -0.02789, 0.103321, 0.0347243, 0.0196114, 0.993848, 1, 1, 1, 0.2, 1, 0.168294, 0.927241, -0.0565808, 0.110419, 0.0433374, -0.00845134, 0.992904, 1, 1, 1, 0.25, 1, 0.154709, 0.910602, -0.0446639, 0.107418, 0.0422538, -0.0318613, 0.992804, 1, 1, 1, 0.3, 1, 0.0960078, 0.836978, 0.00806546, 0.0942701, 0.034167, -0.0564973, 0.993355, 1, 1, 1, 0.35, 1, 0.021745, 0.753374, 0.0679436, 0.0793445, 0.0222103, -0.0760792, 0.993692, 1, 1, 1, 0.4, 1, -0.035471, 0.705747, 0.102054, 0.07085, 0.00995431, -0.0854402, 0.993771, 1, 1, 1, 0.45, 1, -0.0674228, 0.714066, 0.0960958, 0.0723594, -0.00257329, -0.0821245, 0.993989, 1, 1, 1, 0.5, 1, -0.0866932, 0.776805, 0.0511615, 0.0836199, -0.0185098, -0.0626717, 0.994353, 1, 1, 1, 0.55, 1, -0.0950061, 0.863738, -0.0110998, 0.0991637, -0.0338542, -0.0304325, 0.994029, 1, 1, 1, 0.6, 1, -0.0971422, 0.918921, -0.0506222, 0.108957, -0.0424157, -6.6921e-05, 0.993141, 1, 1, 1, 0.65, 1, -0.0894483, 0.918925, -0.0506237, 0.108927, -0.0421963, 0.0241723, 0.99286, 1, 1, 1, 0.7, 1, -0.0546535, 0.863773, -0.0111129, 0.0990954, -0.0332032, 0.0485143, 0.99334, 1, 1, 1, 0.75, 1, 0.000162542, 0.776872, 0.051137, 0.0835711, -0.0190219, 0.071275, 0.993768, 1, 1, 1, 0.8, 1, 0.0397389, 0.714092, 0.0960863, 0.072346, -0.00878352, 0.08392, 0.993804, 1, 1, 1, 0.85, 1, 0.050238, 0.697428, 0.108012, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1, 1.25, 1, 0.050238, 0.697428, 0.108012, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1 </real_array>
- <string name="tracks/21/type"> "transform" </string>
- <node_path name="tracks/21/path"> "Armature/Skeleton:waist" </node_path>
- <int name="tracks/21/interp"> 1 </int>
- <real_array name="tracks/21/keys" len="180"> 0, 1, 7.45059e-09, -5.21541e-08, 2.38419e-07, 0.0550011, -0.00481196, -0.0870228, 0.994675, 1, 1, 1, 0.05, 1, -2.16067e-08, -1.49015e-09, 1.19209e-07, 0.0607085, -0.00428583, -0.0791363, 0.995004, 1, 1, 1, 0.1, 1, -2.23518e-09, 4.61936e-08, 1.49012e-07, 0.0742298, -0.00290666, -0.0580589, 0.995545, 1, 1, 1, 0.2, 1, -1.22934e-08, -7.00588e-08, 1.49012e-07, 0.0953622, 0.000412438, -0.00409159, 0.995434, 1, 1, 1, 0.25, 1, -1.86265e-08, 1.39698e-08, -1.49012e-07, 0.0924473, 0.00171257, 0.0202586, 0.99551, 1, 1, 1, 0.35, 1, -1.56462e-08, 3.1013e-08, 0, 0.0648424, 0.00419923, 0.0731356, 0.995203, 1, 1, 1, 0.4, 1, 2.23523e-09, -2.84985e-08, 1.19209e-07, 0.0564666, 0.00472734, 0.0850757, 0.994762, 1, 1, 1, 0.45, 1, -4.47039e-09, 2.23518e-08, -8.9407e-08, 0.0579181, 0.00454757, 0.0830774, 0.994848, 1, 1, 1, 0.5, 1, 8.43755e-15, -5.58794e-08, 8.9407e-08, 0.0689504, 0.00348495, 0.0670145, 0.995361, 1, 1, 1, 0.6, 1, 5.5879e-09, -7.60309e-08, -2.98023e-08, 0.0939097, 5.69107e-05, 0.0121633, 0.995506, 1, 1, 1, 0.65, 1, 1.78815e-08, -2.31898e-08, 3.27826e-07, 0.0939129, -0.00128467, -0.0120988, 0.995506, 1, 1, 1, 0.75, 1, -1.86265e-09, 3.11993e-08, -2.98023e-08, 0.0689717, -0.00392611, -0.0670089, 0.995358, 1, 1, 1, 0.8, 1, 1.49013e-09, 4.80559e-08, 0, 0.0579302, -0.00464071, -0.0830884, 0.994846, 1, 1, 1, 0.85, 1, 7.45059e-09, -5.21541e-08, 2.38419e-07, 0.0550011, -0.00481196, -0.0870228, 0.994675, 1, 1, 1, 1.25, 1, 7.45059e-09, -5.21541e-08, 2.38419e-07, 0.0550011, -0.00481196, -0.0870228, 0.994675, 1, 1, 1 </real_array>
- <string name="tracks/22/type"> "transform" </string>
- <node_path name="tracks/22/path"> "Armature/Skeleton:chest" </node_path>
- <int name="tracks/22/interp"> 1 </int>
- <real_array name="tracks/22/keys" len="168"> 0, 1, -1.93979e-09, 3.72529e-08, -1.78814e-07, 0.0947232, -0.00739035, -0.0868418, 0.991681, 1, 1, 1, 0.05, 1, 9.31322e-10, 7.07805e-08, 5.96046e-08, 0.0947233, -0.00739035, -0.0868419, 0.991681, 1, 1, 1, 0.1, 1, 6.51926e-10, 7.07805e-08, 5.96046e-08, 0.0949443, -0.00694628, -0.0757376, 0.992573, 1, 1, 1, 0.15, 1, 3.7253e-10, -2.6077e-08, -2.38419e-07, 0.0959905, -0.00433497, -0.0114678, 0.995307, 1, 1, 1, 0.25, 1, 1.86265e-08, 2.23517e-08, 1.19209e-07, 0.0965992, 0.00494126, 0.201269, 0.974749, 1, 1, 1, 0.3, 1, -7.68343e-10, 7.45058e-09, 1.78814e-07, 0.0963173, 0.00675391, 0.221794, 0.970301, 1, 1, 1, 0.4, 1, -1.56574e-10, 7.82311e-08, -1.78814e-07, 0.0949654, 0.0073896, 0.100605, 0.990356, 1, 1, 1, 0.45, 1, 3.30057e-09, 1.08033e-07, -5.96046e-08, 0.0947232, 0.00739035, 0.0868418, 0.991681, 1, 1, 1, 0.5, 1, -3.25963e-09, -9.31323e-08, 5.96046e-08, 0.0947232, 0.00739035, 0.0868418, 0.991681, 1, 1, 1, 0.55, 1, -2.10027e-08, 7.45058e-08, -1.78814e-07, 0.0955253, 0.00546829, 0.0431828, 0.994475, 1, 1, 1, 0.65, 1, 1.26195e-08, -4.84288e-08, -2.38419e-07, 0.0967914, -0.0040173, -0.170015, 0.980668, 1, 1, 1, 0.7, 1, 1.23865e-08, -8.19564e-08, -5.96046e-08, 0.0964064, -0.00640121, -0.223121, 0.969991, 1, 1, 1, 0.75, 1, 1.86265e-09, -7.07805e-08, -2.98023e-07, 0.0963505, -0.00664593, -0.228565, 0.968726, 1, 1, 1, 1.25, 1, -1.93979e-09, 3.72529e-08, -1.78814e-07, 0.0963505, -0.00664594, -0.228565, 0.968726, 1, 1, 1 </real_array>
- <string name="tracks/23/type"> "transform" </string>
- <node_path name="tracks/23/path"> "Armature/Skeleton:neck" </node_path>
- <int name="tracks/23/interp"> 1 </int>
- <real_array name="tracks/23/keys" len="24"> 0, 1, -1.95579e-08, -1.49012e-08, -9.53674e-07, -7.45058e-09, -2.48375e-09, 8.87174e-09, 1, 1, 1, 1, 1.25, 1, -6.51927e-08, -7.45058e-08, -9.53674e-07, 6.80667e-18, 2.71908e-09, -1.56593e-08, 1, 1, 1, 1 </real_array>
- <string name="tracks/24/type"> "transform" </string>
- <node_path name="tracks/24/path"> "Armature/Skeleton:headtracker" </node_path>
- <int name="tracks/24/interp"> 1 </int>
- <real_array name="tracks/24/keys" len="204"> 0, 1, 2.79375e-09, -5.96046e-07, -2.50526e-07, 0.174741, -0.0963796, 0.0144345, 0.97978, 1, 1, 1, 0.05, 1, -3.7254e-09, -2.08616e-07, -1.22236e-07, 0.195715, -0.0950264, 0.0238173, 0.975755, 1, 1, 1, 0.1, 1, 4.54485e-08, -7.15256e-07, -7.68341e-08, 0.229373, -0.0816785, 0.0404464, 0.969062, 1, 1, 1, 0.15, 1, -1.49012e-08, -6.85453e-07, -8.59145e-08, 0.25499, -0.0176933, 0.0391946, 0.965987, 1, 1, 1, 0.25, 1, 1.4901e-08, -1.49012e-07, -1.78115e-07, 0.23692, 0.192561, -0.0167461, 0.952108, 1, 1, 1, 0.3, 1, -4.61937e-08, -4.47035e-07, -1.46218e-07, 0.20349, 0.220566, -0.0253329, 0.953573, 1, 1, 1, 0.35, 1, 8.94071e-09, -2.68221e-07, -1.97906e-08, 0.179164, 0.172369, -0.0185073, 0.968425, 1, 1, 1, 0.4, 1, 2.23509e-09, -3.57628e-07, -9.56934e-08, 0.17384, 0.110352, -0.0138213, 0.978474, 1, 1, 1, 0.45, 1, -2.75671e-08, -7.45058e-07, 2.63099e-08, 0.188123, 0.0930304, -0.0247279, 0.977417, 1, 1, 1, 0.5, 1, -9.31436e-10, 4.47035e-07, -6.37956e-08, 0.217624, 0.0872372, -0.0441829, 0.971122, 1, 1, 1, 0.55, 1, 1.04306e-08, -2.38419e-07, -1.33412e-07, 0.247766, 0.0401273, -0.0490683, 0.966744, 1, 1, 1, 0.65, 1, 3.27827e-08, -4.47035e-07, -6.26314e-08, 0.245106, -0.170404, 0.00637661, 0.954382, 1, 1, 1, 0.7, 1, 3.27823e-08, -1.49012e-07, -6.70552e-08, 0.212986, -0.224596, 0.0272969, 0.950499, 1, 1, 1, 0.75, 1, -7.45057e-08, 0, 6.33299e-08, 0.183845, -0.233119, 0.0392625, 0.954104, 1, 1, 1, 0.8, 1, -6.7055e-08, -5.96046e-07, -5.00586e-08, 0.175853, -0.235075, 0.0484733, 0.954707, 1, 1, 1, 0.85, 1, 7.45066e-09, -6.55651e-07, 6.75209e-09, 0.174943, -0.235515, 0.051072, 0.95463, 1, 1, 1, 1.25, 1, 7.45066e-09, -6.55651e-07, 6.75209e-09, 0.174943, -0.235515, 0.051072, 0.95463, 1, 1, 1 </real_array>
- <string name="tracks/25/type"> "transform" </string>
- <node_path name="tracks/25/path"> "Armature/Skeleton:head" </node_path>
- <int name="tracks/25/interp"> 1 </int>
- <real_array name="tracks/25/keys" len="24"> 0, 1, -1.25867e-08, -4.23752e-08, -2.57976e-07, 2.23517e-08, 3.7017e-10, 7.60394e-10, 1, 1, 1, 1, 1.25, 1, 1.23749e-08, -2.09548e-09, 2.43308e-07, 2.23517e-08, -2.79233e-10, -7.29088e-11, 1, 1, 1, 1 </real_array>
- <string name="tracks/26/type"> "transform" </string>
- <node_path name="tracks/26/path"> "Armature/Skeleton:vent" </node_path>
- <int name="tracks/26/interp"> 1 </int>
- <real_array name="tracks/26/keys" len="24"> 0, 1, 5.20962e-08, 0.00292337, 0.204329, -7.21775e-09, 1.1358e-11, -7.03732e-10, 1, 1, 1, 1, 1.25, 1, 4.12186e-08, 0.00292328, 0.20433, -8.14907e-09, 9.21561e-11, 1.63806e-10, 1, 1, 1, 1 </real_array>
-
- </resource>
- <resource type="Animation" path="local://12">
- <string name="resource/name"> "walk-cycle" </string>
- <real name="length"> 1.041667 </real>
- <bool name="loop"> True </bool>
- <real name="step"> 0.1 </real>
- <string name="tracks/0/type"> "transform" </string>
- <node_path name="tracks/0/path"> "Armature/Skeleton:r-arm" </node_path>
- <int name="tracks/0/interp"> 1 </int>
- <real_array name="tracks/0/keys" len="228"> 0, 1, 7.7486e-07, -3.57628e-07, 5.66244e-07, 0.132777, -0.115851, -0.0857195, 0.980613, 1, 1, 1, 0.05, 1, 4.17233e-07, 1.19209e-07, 3.27826e-07, 0.136218, -0.113975, -0.0877542, 0.980181, 1, 1, 1, 0.1, 1, 5.06639e-07, -2.38419e-07, 2.98023e-07, 0.144837, -0.108331, -0.0933223, 0.97907, 1, 1, 1, 0.15, 1, 5.36442e-07, -3.57628e-07, 3.57628e-07, 0.15539, -0.0990044, -0.102617, 0.977508, 1, 0.999999, 1, 0.2, 1, 7.15256e-07, -3.57628e-07, 4.47035e-07, 0.162073, -0.0835771, -0.115431, 0.976434, 1, 1, 1, 0.25, 1, 6.25849e-07, -3.57628e-07, 4.17233e-07, 0.160674, -0.0537521, -0.128708, 0.977102, 1, 1, 1, 0.3, 1, 6.85453e-07, -3.57628e-07, 2.98023e-07, 0.144844, 0.00232148, -0.137246, 0.979887, 1, 1, 1, 0.45, 1, 9.53674e-07, -7.15256e-07, 6.85453e-07, 0.0267683, 0.215793, -0.138386, 0.966212, 1, 1, 1, 0.5, 1, 7.7486e-07, -3.57628e-07, 4.17233e-07, -0.00441569, 0.255036, -0.137846, 0.957045, 1, 1, 1, 0.55, 1, 8.34465e-07, -5.96046e-07, 5.36442e-07, -0.00986276, 0.263176, -0.137756, 0.954811, 1, 1, 1, 0.6, 1, 4.76837e-07, 0, 3.8743e-07, 0.0174093, 0.245944, -0.13741, 0.959337, 1, 1, 1, 0.7, 1, 3.27826e-07, -1.19209e-07, 2.68221e-07, 0.12402, 0.181155, -0.127036, 0.967297, 1, 1, 1, 0.75, 1, 7.45058e-07, 0, 4.47035e-07, 0.157369, 0.166922, -0.11544, 0.96646, 1, 1, 1, 0.8, 1, 8.34465e-07, -1.19209e-07, 4.47035e-07, 0.166665, 0.143487, -0.108193, 0.969499, 1, 1, 1, 0.85, 1, 2.98023e-07, 0, 1.49012e-07, 0.164004, 0.0866041, -0.105149, 0.977009, 1, 0.999999, 1, 0.95, 1, 4.76837e-07, 0, 2.38419e-07, 0.144168, -0.0621538, -0.0938402, 0.983131, 1, 1, 1, 1, 1, 8.64267e-07, -4.76837e-07, 6.85453e-07, 0.135099, -0.105557, -0.0876091, 0.98129, 1, 1, 1, 1.05, 1, 7.7486e-07, -3.57628e-07, 5.66244e-07, 0.132777, -0.115851, -0.0857195, 0.980613, 1, 1, 1, 1.25, 1, 7.7486e-07, -3.57628e-07, 5.66244e-07, 0.132777, -0.115851, -0.0857195, 0.980613, 1, 1, 1 </real_array>
- <string name="tracks/1/type"> "transform" </string>
- <node_path name="tracks/1/path"> "Armature/Skeleton:r-forearm" </node_path>
- <int name="tracks/1/interp"> 1 </int>
- <real_array name="tracks/1/keys" len="228"> 0, 1, 7.45058e-07, -8.04663e-07, -8.34465e-07, -0.0607703, -0.240987, 0.00892511, 0.968583, 1, 1, 1, 0.05, 1, -2.98023e-07, -3.57628e-07, 1.78814e-07, -0.0608664, -0.247441, 0.00903588, 0.966947, 1, 0.999999, 1, 0.1, 1, -1.78814e-07, -7.45058e-07, -1.19209e-07, -0.0607357, -0.265635, 0.00908754, 0.962116, 1, 1, 1, 0.15, 1, 4.17233e-07, -8.64267e-07, -4.17233e-07, -0.0586521, -0.298966, 0.00880687, 0.952419, 1, 1, 1, 0.25, 1, 3.8743e-07, -5.96046e-07, -2.98023e-07, -0.0404347, -0.402042, 0.00443354, 0.914717, 1, 1, 1, 0.3, 1, -2.98023e-08, -6.85453e-07, -2.38419e-07, -0.0222657, -0.438743, -0.00390802, 0.898328, 1, 1, 1, 0.35, 1, -3.27826e-07, -2.68221e-07, -1.78814e-07, -0.001747, -0.450439, -0.0151044, 0.892678, 1, 0.999999, 1, 0.4, 1, -2.98023e-08, -3.57628e-07, -4.76837e-07, 0.0165229, -0.440184, -0.0247739, 0.897414, 1, 1, 1, 0.5, 1, 2.98023e-08, -3.27826e-07, 0, 0.0357718, -0.396841, -0.0343986, 0.916545, 1, 1, 1, 0.55, 1, 1.49012e-07, -6.25849e-07, -1.78814e-07, 0.0355214, -0.39013, -0.0350975, 0.919405, 1, 1, 1, 0.6, 1, 1.78814e-07, -5.06639e-07, -5.36442e-07, 0.01977, -0.384514, -0.0345495, 0.92226, 1, 1, 1, 0.65, 1, -1.19209e-07, -4.17233e-07, -2.38419e-07, -0.0162325, -0.357154, -0.033198, 0.933314, 1, 0.999999, 1, 0.75, 1, -2.98023e-08, -3.57628e-07, -2.98023e-07, -0.0986698, -0.203446, -0.0321126, 0.973572, 1, 0.999999, 1, 0.8, 1, 5.96046e-08, -7.45058e-07, -2.38419e-07, -0.110421, -0.161891, -0.0281555, 0.980207, 1, 1, 1, 0.85, 1, 4.76837e-07, -8.04663e-07, -8.34465e-07, -0.104832, -0.172931, -0.0183971, 0.979166, 1, 0.999999, 1, 0.95, 1, 0, -6.55651e-07, -5.96046e-07, -0.0743493, -0.227469, 0.00271093, 0.970939, 1, 1, 1, 1, 1, -2.98023e-08, -3.57628e-07, -2.38419e-07, -0.0636988, -0.238854, 0.00790001, 0.968932, 1, 1, 1, 1.05, 1, 7.45058e-07, -8.04663e-07, -8.34465e-07, -0.0607703, -0.240987, 0.00892511, 0.968583, 1, 1, 1, 1.25, 1, 7.45058e-07, -8.04663e-07, -8.34465e-07, -0.0607703, -0.240987, 0.00892511, 0.968583, 1, 1, 1 </real_array>
- <string name="tracks/2/type"> "transform" </string>
- <node_path name="tracks/2/path"> "Armature/Skeleton:l-arm" </node_path>
- <int name="tracks/2/interp"> 1 </int>
- <real_array name="tracks/2/keys" len="216"> 0, 1, -7.45058e-07, -4.76837e-07, 4.47035e-07, -0.0127337, -0.264935, 0.137763, 0.954289, 1, 1, 1, 0.05, 1, -3.8743e-07, 0, 2.38419e-07, 0.0104992, -0.248758, 0.137429, 0.958709, 1, 1, 1, 0.15, 1, -5.66244e-07, -1.19209e-07, 4.47035e-07, 0.119317, -0.176495, 0.127478, 0.968691, 1, 1, 1, 0.2, 1, -5.06639e-07, -1.19209e-07, 3.27826e-07, 0.156208, -0.160784, 0.115735, 0.967653, 1, 1, 1, 0.25, 1, -4.17233e-07, -1.19209e-07, 2.68221e-07, 0.170588, -0.146234, 0.10696, 0.968543, 1, 0.999999, 1, 0.3, 1, -8.34465e-07, -3.57628e-07, 8.9407e-07, 0.16899, -0.106962, 0.104274, 0.974232, 1, 1, 1, 0.45, 1, -9.23872e-07, -5.96046e-07, 7.7486e-07, 0.141826, 0.058077, 0.0901382, 0.984067, 1, 1, 1, 0.5, 1, -7.7486e-07, -5.96046e-07, 2.98023e-07, 0.134623, 0.0959315, 0.0862667, 0.982462, 1, 1, 1, 0.55, 1, -7.45058e-07, -3.57628e-07, 6.25849e-07, 0.133233, 0.11842, 0.0861958, 0.980202, 1, 1, 1, 0.6, 1, -4.76837e-07, 0, 4.47035e-07, 0.137596, 0.131505, 0.0903706, 0.977551, 1, 1, 1, 0.65, 1, -6.55651e-07, -3.57628e-07, 5.36442e-07, 0.146837, 0.135484, 0.0990691, 0.974817, 1, 1, 1, 0.7, 1, -5.96046e-07, -3.57628e-07, 6.25849e-07, 0.15676, 0.127354, 0.111789, 0.972991, 1, 1, 1, 0.75, 1, -4.17233e-07, 0, 3.8743e-07, 0.161767, 0.101349, 0.126219, 0.973462, 1, 1, 1, 0.8, 1, -6.85453e-07, -3.57628e-07, 5.06639e-07, 0.154473, 0.0449621, 0.136756, 0.977453, 1, 1, 1, 0.95, 1, -6.55651e-07, -2.38419e-07, 4.76837e-07, 0.0363447, -0.203514, 0.138296, 0.968574, 1, 1, 1, 1, 1, -5.96046e-07, -3.57628e-07, 3.57628e-07, -0.00218869, -0.252498, 0.137778, 0.957735, 1, 1, 1, 1.05, 1, -7.45058e-07, -4.76837e-07, 4.47035e-07, -0.0127337, -0.264935, 0.137763, 0.954289, 1, 1, 1, 1.25, 1, -7.45058e-07, -4.76837e-07, 4.47035e-07, -0.0127337, -0.264935, 0.137763, 0.954289, 1, 1, 1 </real_array>
- <string name="tracks/3/type"> "transform" </string>
- <node_path name="tracks/3/path"> "Armature/Skeleton:l-forearm" </node_path>
- <int name="tracks/3/interp"> 1 </int>
- <real_array name="tracks/3/keys" len="192"> 0, 1, 3.57628e-07, -5.96046e-07, -3.57628e-07, 0.0370915, 0.39046, 0.0351404, 0.919201, 1, 1, 1, 0.05, 1, -1.49012e-07, -5.96046e-07, -2.38419e-07, 0.0247868, 0.388139, 0.0345456, 0.92062, 1, 1, 1, 0.1, 1, -3.57628e-07, -5.66244e-07, -4.76837e-07, -0.00839952, 0.367653, 0.0329431, 0.929342, 1, 1, 1, 0.15, 1, -1.78814e-07, -5.66244e-07, -7.7486e-07, -0.0538019, 0.307417, 0.0309853, 0.949547, 1, 1, 1, 0.2, 1, 0, -3.8743e-07, -4.17233e-07, -0.0934157, 0.21941, 0.0316565, 0.970634, 1, 1, 1, 0.25, 1, -1.49012e-07, -7.7486e-07, -3.57628e-07, -0.112029, 0.160435, 0.0303507, 0.980198, 1, 1, 1, 0.3, 1, 1.19209e-07, -7.15256e-07, -2.38419e-07, -0.111906, 0.1565, 0.0231637, 0.981045, 1, 1, 1, 0.35, 1, 2.68221e-07, -5.06639e-07, -2.38419e-07, -0.104709, 0.167819, 0.0144275, 0.980135, 1, 1, 1, 0.6, 1, 2.38419e-07, -3.57628e-07, -2.98023e-07, -0.0540049, 0.274564, -0.0119163, 0.959977, 1, 1, 1, 0.65, 1, 2.68221e-07, -2.68221e-07, 5.96046e-08, -0.0496356, 0.312827, -0.0136146, 0.948415, 1, 1, 1, 0.8, 1, 1.78814e-07, -3.8743e-07, -2.38419e-07, -0.0228587, 0.449632, -0.00310725, 0.892916, 1, 1, 1, 0.85, 1, -2.08616e-07, -6.25849e-07, -5.36442e-07, -0.00418434, 0.463526, 0.00969348, 0.886021, 1, 1, 1, 0.9, 1, -2.68221e-07, -6.85453e-07, -1.19209e-07, 0.0143603, 0.452468, 0.0218435, 0.891397, 1, 1, 1, 1, 1, 8.9407e-08, -5.96046e-07, -5.36442e-07, 0.0356796, 0.398885, 0.0342096, 0.915668, 1, 1, 1, 1.05, 1, 3.57628e-07, -5.96046e-07, -3.57628e-07, 0.0370915, 0.39046, 0.0351404, 0.919201, 1, 1, 1, 1.25, 1, 3.57628e-07, -5.96046e-07, -3.57628e-07, 0.0370915, 0.39046, 0.0351404, 0.919201, 1, 1, 1 </real_array>
- <string name="tracks/4/type"> "transform" </string>
- <node_path name="tracks/4/path"> "Armature/Skeleton:r-thigh" </node_path>
- <int name="tracks/4/interp"> 1 </int>
- <real_array name="tracks/4/keys" len="180"> 0, 1, -5.96046e-08, 7.45058e-09, -1.3411e-07, -0.47466, -0.0131527, -0.012987, 0.879975, 1, 1, 1, 0.05, 1, 2.98023e-08, 2.23517e-08, -2.23517e-07, -0.410091, -0.00379406, -0.0158917, 0.911898, 1, 1, 1, 0.25, 1, -1.19209e-07, 1.11759e-07, -5.21541e-07, 0.0997313, 0.0337367, -0.0261638, 0.994098, 1, 1, 1, 0.3, 1, 8.9407e-08, 4.47035e-08, -4.02331e-07, 0.122513, 0.0214196, -0.0200121, 0.992034, 1, 1, 1, 0.45, 1, 1.19209e-07, 7.45058e-09, -3.27826e-07, 0.229705, -0.0511077, 0.00301582, 0.971913, 1, 1, 1, 0.5, 1, 0, 3.72529e-08, -3.72529e-07, 0.236488, -0.0697987, 0.00859063, 0.969086, 1, 1, 1, 0.55, 1, 0, 2.98023e-08, -2.5332e-07, 0.206064, -0.0732532, 0.0100766, 0.975741, 1, 1, 1, 0.6, 1, -2.98023e-08, 4.47035e-08, -2.68221e-07, 0.118009, -0.0599028, 0.00750554, 0.991176, 1, 1, 1, 0.65, 1, -8.9407e-08, 2.23517e-08, -2.83122e-07, -0.0368129, -0.031384, 0.00214083, 0.998827, 1, 1, 1, 0.8, 1, -5.96046e-08, 2.23517e-08, -3.42727e-07, -0.634332, 0.0354032, -0.00990766, 0.772186, 1, 1, 1, 0.85, 1, 0, 2.23517e-08, -5.51343e-07, -0.746229, 0.0185993, -0.00698883, 0.665393, 1, 1, 1, 0.9, 1, 2.98023e-08, 1.49012e-08, -3.72529e-07, -0.740985, -0.00577112, -0.000829951, 0.671497, 1, 1, 1, 1, 1, 0, 2.98023e-08, -2.68221e-07, -0.523042, -0.0161244, -0.00986391, 0.852097, 1, 1, 1, 1.05, 1, -5.96046e-08, 7.45058e-09, -1.3411e-07, -0.47466, -0.0131527, -0.012987, 0.879975, 1, 1, 1, 1.25, 1, -5.96046e-08, 7.45058e-09, -1.3411e-07, -0.47466, -0.0131527, -0.012987, 0.879975, 1, 1, 1 </real_array>
- <string name="tracks/5/type"> "transform" </string>
- <node_path name="tracks/5/path"> "Armature/Skeleton:r-leg" </node_path>
- <int name="tracks/5/interp"> 1 </int>
- <real_array name="tracks/5/keys" len="216"> 0, 1, 9.0804e-08, -5.21541e-08, 5.36442e-07, -0.373219, -0.0555838, 8.64882e-05, 0.926077, 1, 1, 1, 0.05, 1, 2.50293e-08, 1.3411e-07, 5.96046e-07, -0.322099, -0.0481091, 0.000521386, 0.945483, 1, 1, 1, 0.1, 1, 1.20257e-07, -1.49012e-07, 7.15256e-07, -0.224139, -0.0330777, 0.00125387, 0.973995, 1, 1, 1, 0.15, 1, 3.94648e-08, -1.3411e-07, 6.55651e-07, -0.165692, -0.0218823, 0.00143977, 0.985934, 1, 1, 1, 0.2, 1, 1.33412e-07, -1.56462e-07, 5.36442e-07, -0.09297, -0.0104596, 0.00125276, 0.995613, 1, 1, 1, 0.25, 1, 3.55067e-08, 4.47035e-08, 1.78814e-07, -0.0411288, -0.0028586, 0.000542978, 0.99915, 1, 1, 1, 0.35, 1, 9.26666e-08, 5.96046e-08, 6.55651e-07, -0.159491, 0.00874812, -0.00126692, 0.98716, 1, 1, 1, 0.45, 1, 3.87663e-08, 0, 4.76837e-07, -0.233894, 0.0318884, -0.00310529, 0.971734, 1, 1, 1, 0.5, 1, -3.53903e-08, -7.45058e-08, 5.96046e-07, -0.280896, 0.0453351, -0.00364749, 0.95866, 1, 1, 1, 0.55, 1, 1.59489e-08, 4.47035e-08, 5.96046e-07, -0.352331, 0.0592861, -0.00363569, 0.933989, 1, 1, 1, 0.6, 1, 2.16532e-08, 1.3411e-07, 6.55651e-07, -0.469209, 0.0766892, -0.00261066, 0.879747, 1, 1, 1, 0.75, 1, 9.51113e-08, -2.01166e-07, 7.15256e-07, -0.846575, 0.0999882, 0.00219129, 0.522789, 1, 1, 1, 0.8, 1, 3.77186e-08, -1.49012e-07, 6.55651e-07, 0.900504, -0.0754152, -0.00223886, -0.428252, 1, 1, 1, 0.85, 1, 4.92437e-08, 1.49012e-07, 6.55651e-07, 0.906482, -0.0264902, -0.00126108, -0.42141, 1, 1, 1, 0.9, 1, -2.71248e-08, 1.63913e-07, 5.36442e-07, -0.830638, -0.0316768, -0.000334372, 0.555911, 1, 1, 1, 1, 1, 2.87546e-08, 4.84288e-07, 7.7486e-07, -0.453335, -0.0623349, -0.000381388, 0.889158, 1, 1, 1, 1.05, 1, 9.0804e-08, -5.21541e-08, 5.36442e-07, -0.373219, -0.0555838, 8.64882e-05, 0.926077, 1, 1, 1, 1.25, 1, 9.0804e-08, -5.21541e-08, 5.36442e-07, -0.373219, -0.0555838, 8.64882e-05, 0.926077, 1, 1, 1 </real_array>
- <string name="tracks/6/type"> "transform" </string>
- <node_path name="tracks/6/path"> "Armature/Skeleton:r-foot" </node_path>
- <int name="tracks/6/interp"> 1 </int>
- <real_array name="tracks/6/keys" len="168"> 0, 1, 5.21541e-08, -1.19209e-07, 9.31323e-08, 0.00219921, 0.118787, -0.0237834, 0.992633, 1, 1, 1, 0.05, 1, 5.96046e-08, 0, -5.58794e-08, 0.00569734, 0.111426, -0.0235639, 0.993477, 1, 1, 1, 0.1, 1, 4.47035e-08, -1.19209e-07, 3.35276e-08, 0.015864, 0.0910374, -0.022104, 0.995476, 1, 1, 1, 0.25, 1, 2.98023e-08, 1.19209e-07, -5.58794e-08, 0.0701794, 0.000367211, 0.000696922, 0.997534, 1, 1, 1, 0.35, 1, 8.19564e-08, -1.19209e-07, -1.11759e-08, 0.121501, -0.050768, 0.0840024, 0.987727, 1, 1, 1, 0.4, 1, 7.45058e-08, 1.19209e-07, 1.04308e-07, 0.115586, -0.0703619, 0.0928345, 0.986444, 1, 1, 1, 0.45, 1, 7.45058e-08, 1.19209e-07, 3.72529e-08, 0.0659214, -0.0866695, 0.0774413, 0.991033, 1, 1, 1, 0.5, 1, -5.96046e-08, 1.19209e-07, -1.11759e-07, 0.0031081, -0.0968864, 0.054063, 0.993821, 1, 1, 1, 0.55, 1, 5.96046e-08, 0, -6.70552e-08, -0.0166663, -0.0982007, 0.0374834, 0.994321, 1, 1, 1, 0.6, 1, 5.96046e-08, 1.19209e-07, -4.84288e-08, -0.0148445, -0.0906634, 0.0264974, 0.995418, 1, 1, 1, 0.65, 1, 0, 0, 4.09782e-08, -0.0108355, -0.0727448, 0.0177847, 0.997133, 1, 1, 1, 1, 1, 6.70552e-08, 0, 7.07805e-08, 0.00219189, 0.11394, -0.0230367, 0.993218, 1, 1, 1, 1.05, 1, 5.21541e-08, -1.19209e-07, 9.31323e-08, 0.00219921, 0.118787, -0.0237834, 0.992633, 1, 1, 1, 1.25, 1, 5.21541e-08, -1.19209e-07, 9.31323e-08, 0.00219921, 0.118787, -0.0237834, 0.992633, 1, 1, 1 </real_array>
- <string name="tracks/7/type"> "transform" </string>
- <node_path name="tracks/7/path"> "Armature/Skeleton:l-thigh" </node_path>
- <int name="tracks/7/interp"> 1 </int>
- <real_array name="tracks/7/keys" len="144"> 0, 1, 2.98023e-08, 2.98023e-08, 1.04308e-07, 0.217295, 0.0746597, -0.0103365, 0.973192, 1, 0.999999, 1, 0.05, 1, -8.9407e-08, 1.49012e-08, 1.49012e-08, 0.151772, 0.0624666, -0.00777083, 0.986409, 1, 1, 1, 0.1, 1, -2.98023e-08, 2.98023e-08, -8.9407e-08, -0.00391929, 0.0335048, -0.00214722, 0.999429, 1, 0.999999, 1, 0.3, 1, 0, 3.72529e-08, -1.49012e-07, -0.748933, -0.0405244, 0.0112371, 0.66131, 1, 1, 1, 0.35, 1, 5.96046e-08, 7.45058e-09, -3.12924e-07, -0.802758, -0.0149771, 0.00481471, 0.596097, 1, 1, 1, 0.4, 1, 0, 7.45058e-09, -1.78814e-07, -0.770121, 0.00992629, -0.000335305, 0.63782, 1, 1, 1, 0.8, 1, -5.96046e-08, 5.21541e-08, -1.04308e-07, 0.0878935, -0.0301616, 0.023494, 0.995396, 1, 1, 1, 0.85, 1, 2.98023e-08, 5.21541e-08, -2.98023e-07, 0.0819817, -0.0162162, 0.0156585, 0.996379, 1, 0.999999, 1, 0.9, 1, -5.96046e-08, 7.45058e-09, -1.3411e-07, 0.0980511, 0.00664153, 0.00756362, 0.99513, 1, 0.999999, 1, 1, 1, -5.96046e-08, 2.98023e-08, -2.98023e-08, 0.201153, 0.0660118, -0.00800331, 0.9773, 1, 0.999999, 1, 1.05, 1, 2.98023e-08, 2.98023e-08, 1.04308e-07, 0.217295, 0.0746597, -0.0103365, 0.973192, 1, 0.999999, 1, 1.25, 1, 2.98023e-08, 2.98023e-08, 1.04308e-07, 0.217295, 0.0746597, -0.0103365, 0.973192, 1, 0.999999, 1 </real_array>
- <string name="tracks/8/type"> "transform" </string>
- <node_path name="tracks/8/path"> "Armature/Skeleton:l-leg" </node_path>
- <int name="tracks/8/interp"> 1 </int>
- <real_array name="tracks/8/keys" len="228"> 0, 1, 4.19095e-08, 1.41561e-07, 2.98023e-07, -0.33502, -0.0565195, 0.00376308, 0.940507, 1, 1, 1, 0.05, 1, 2.82889e-08, 1.86265e-07, 0, -0.412041, -0.0666523, 0.00293558, 0.908719, 1, 1, 1, 0.2, 1, -7.12462e-08, -1.2666e-07, 5.96046e-08, -0.831864, -0.10996, -0.00255585, 0.543972, 1, 1, 1, 0.25, 1, 2.32831e-09, -1.04308e-07, 5.96046e-08, 0.89602, 0.0970023, 0.00298318, -0.433277, 1, 1, 1, 0.3, 1, 1.9907e-08, 3.65078e-07, 2.98023e-07, 0.921569, 0.0590099, 0.00230107, -0.383696, 1, 1, 1, 0.35, 1, -8.28877e-08, -1.93715e-07, 2.38419e-07, 0.901128, 0.00554219, 0.000798309, -0.433517, 1, 1, 1, 0.4, 1, -7.53207e-08, 5.21541e-08, 1.19209e-07, -0.81758, 0.0439972, 0.000730356, 0.574132, 1, 1, 1, 0.5, 1, -2.91038e-09, 1.41561e-07, 2.38419e-07, -0.503688, 0.068707, 0.00074972, 0.861149, 1, 1, 1, 0.55, 1, 6.1933e-08, 8.19564e-08, 5.96046e-08, -0.352333, 0.0527461, -0.000239235, 0.934387, 1, 1, 1, 0.6, 1, -2.95695e-08, 1.04308e-07, 1.78814e-07, -0.244271, 0.03738, -0.00103017, 0.968986, 1, 1, 1, 0.65, 1, 9.54606e-09, 3.50177e-07, 1.78814e-07, -0.200824, 0.0283491, -0.00130918, 0.979216, 1, 1, 1, 0.7, 1, 2.01399e-08, 2.23517e-08, 0, -0.167963, 0.0193272, -0.0011918, 0.985603, 1, 1, 1, 0.75, 1, -2.47965e-08, -2.23517e-07, 1.19209e-07, -0.0847999, 0.00700657, -0.000838314, 0.996373, 1, 1, 1, 0.8, 1, -4.88944e-08, -7.45058e-09, 0, -0.073705, 0.000793342, 3.27131e-05, 0.99728, 1, 1, 1, 0.9, 1, -5.50644e-08, 0, 1.19209e-07, -0.297998, -0.0240387, 0.0012853, 0.954263, 1, 1, 1, 0.95, 1, -1.08266e-08, -2.98023e-08, 1.19209e-07, -0.340478, -0.0423349, 0.0021981, 0.939296, 1, 1, 1, 1, 1, 5.07571e-08, -1.63913e-07, 0, -0.339784, -0.0539663, 0.00332048, 0.938948, 1, 1, 1, 1.05, 1, 4.19095e-08, 1.41561e-07, 2.98023e-07, -0.33502, -0.0565195, 0.00376308, 0.940507, 1, 1, 1, 1.25, 1, 4.19095e-08, 1.41561e-07, 2.98023e-07, -0.33502, -0.0565195, 0.00376308, 0.940507, 1, 1, 1 </real_array>
- <string name="tracks/9/type"> "transform" </string>
- <node_path name="tracks/9/path"> "Armature/Skeleton:l-foot" </node_path>
- <int name="tracks/9/interp"> 1 </int>
- <real_array name="tracks/9/keys" len="192"> 0, 1, -3.72529e-08, 0, 8.19564e-08, -0.0168517, 0.0989445, -0.0394225, 0.994169, 1, 1, 1, 0.05, 1, 6.70552e-08, 1.19209e-07, -4.47035e-08, -0.0168456, 0.0944203, -0.0381151, 0.99466, 1, 1, 1, 0.1, 1, 1.49012e-08, 1.19209e-07, -3.35276e-08, -0.0167772, 0.0819293, -0.034504, 0.995899, 1, 1, 1, 0.15, 1, -7.45058e-09, 1.19209e-07, -1.3411e-07, -0.0165494, 0.0617975, -0.0286797, 0.997539, 1, 1, 1, 0.4, 1, -2.23517e-08, 0, 2.6077e-08, -0.00864448, -0.0855905, 0.0141105, 0.996193, 1, 1, 1, 0.45, 1, 7.45058e-09, 2.38419e-07, -7.45058e-08, -0.00528641, -0.10464, 0.0196597, 0.994302, 1, 1, 1, 0.5, 1, -1.49012e-08, 1.19209e-07, 7.45058e-09, -0.00140908, -0.115976, 0.0229639, 0.992986, 1, 1, 1, 0.55, 1, 1.49012e-08, 2.38419e-07, 3.72529e-08, 0.00315788, -0.117918, 0.023482, 0.992741, 1, 1, 1, 0.6, 1, -2.98023e-08, 1.19209e-07, -1.49012e-08, 0.00993965, -0.108994, 0.0205203, 0.993781, 1, 1, 1, 0.65, 1, 1.49012e-08, 0, 1.86265e-08, 0.0206495, -0.0875135, 0.0140912, 0.99585, 1, 1, 1, 0.8, 1, -2.23517e-08, 1.19209e-07, -3.72529e-09, 0.0751354, 0.00445886, 0.00173853, 0.997162, 1, 1, 1, 0.9, 1, 0, 0, -2.98023e-08, 0.131833, 0.0617586, 0.0448617, 0.988329, 1, 1, 1, 0.95, 1, 3.72529e-08, 0, -6.70552e-08, 0.10712, 0.0825392, 0.0325464, 0.99028, 1, 1, 1, 1, 1, 1.49012e-08, 2.38419e-07, -4.84288e-08, 0.0202877, 0.0962194, -0.0179372, 0.994992, 1, 1, 1, 1.05, 1, -3.72529e-08, 0, 8.19564e-08, -0.0168517, 0.0989445, -0.0394225, 0.994169, 1, 1, 1, 1.25, 1, -3.72529e-08, 0, 8.19564e-08, -0.0168517, 0.0989445, -0.0394225, 0.994169, 1, 1, 1 </real_array>
- <string name="tracks/10/type"> "transform" </string>
- <node_path name="tracks/10/path"> "Armature/Skeleton:MASTER" </node_path>
- <int name="tracks/10/interp"> 1 </int>
- <real_array name="tracks/10/keys" len="24"> 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/11/type"> "transform" </string>
- <node_path name="tracks/11/path"> "Armature/Skeleton:HEAD" </node_path>
- <int name="tracks/11/interp"> 1 </int>
- <real_array name="tracks/11/keys" len="216"> 0, 1, -5.68434e-14, 0, 0.850875, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -5.68434e-14, 0, 0.888268, 0, 0, 0, 1, 1, 1, 1, 0.1, 1, -5.68434e-14, 0, 0.982704, 0, 0, 7.10543e-15, 1, 1, 1, 1, 0.15, 1, -5.68434e-14, 0, 1.10101, 0, 0, 0, 1, 1, 1, 1, 0.2, 1, -5.68434e-14, 0, 1.19526, 0, 0, -7.10543e-15, 1, 1, 1, 1, 0.25, 1, -5.68434e-14, 0, 1.23253, 0, 0, 0, 1, 1, 1, 1, 0.3, 1, -5.68434e-14, 0, 1.20497, 0, 0, 7.10543e-15, 1, 1, 1, 1, 0.35, 1, -5.68434e-14, 0, 1.13278, 0, 0, -7.10543e-15, 1, 1, 1, 1, 0.45, 1, -5.68434e-14, 0, 0.935015, 0, 0, 0, 1, 1, 1, 1, 0.5, 1, -5.68434e-14, 0, 0.868188, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, -5.68434e-14, 0, 0.85559, 0, 0, 0, 1, 1, 1, 1, 0.6, 1, -5.68434e-14, 0, 0.901897, 0, 0, 0, 1, 1, 1, 1, 0.75, 1, -5.68434e-14, 0, 1.20896, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, -5.68434e-14, 0, 1.22782, 0, 0, 7.10543e-15, 1, 1, 1, 1, 0.85, 1, -5.68434e-14, 0, 1.18155, 0, 0, 0, 1, 1, 1, 1, 1, 1, -5.68434e-14, 0, 0.874524, 0, 0, 0, 1, 1, 1, 1, 1.05, 1, -5.68434e-14, 0, 0.850875, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -5.68434e-14, 0, 0.850875, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/12/type"> "transform" </string>
- <node_path name="tracks/12/path"> "Armature/Skeleton:r-LEGCONTROL" </node_path>
- <int name="tracks/12/interp"> 1 </int>
- <real_array name="tracks/12/keys" len="180"> 0, 1, -0.142338, -0.946415, 0.217759, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -0.142333, -0.853172, 0.14976, 0, 0, 0, 1, 1, 1, 1, 0.1, 1, -0.142326, -0.626394, 0.0493819, 0, 0, 0, 1, 1, 1, 1, 0.25, 1, -0.142324, 0.323052, 0.113333, 0, 0, 0, 1, 1, 1, 1, 0.45, 1, -0.139402, 1.42157, 0.666575, 0, 0, 0, 1, 1, 1, 1, 0.5, 1, -0.136793, 1.55206, 0.805069, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, -0.131841, 1.57295, 0.911952, 0, 0, 0, 1, 1, 1, 1, 0.6, 1, -0.113377, 1.47151, 1.00452, 0, 0, 0, 1, 1, 1, 1, 0.65, 1, -0.077946, 1.23249, 1.08549, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, -0.0017584, 0.265596, 1.17195, 0, 0, 0, 1, 1, 1, 1, 0.85, 1, -0.0190262, -0.03908, 1.05516, 0, 0, 0, 1, 1, 1, 1, 0.95, 1, -0.100589, -0.692012, 0.50379, 0, 0, 0, 1, 1, 1, 1, 1, 1, -0.133542, -0.895383, 0.278588, 0, 0, 0, 1, 1, 1, 1, 1.05, 1, -0.142338, -0.946415, 0.217759, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.142338, -0.946415, 0.217759, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/13/type"> "transform" </string>
- <node_path name="tracks/13/path"> "Armature/Skeleton:l-LEGCONTROL" </node_path>
- <int name="tracks/13/interp"> 1 </int>
- <real_array name="tracks/13/keys" len="192"> 0, 1, 0.133965, 1.58294, 0.896163, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 0.120869, 1.49689, 0.924311, 0, 0, 0, 1, 1, 1, 1, 0.1, 1, 0.0877482, 1.26696, 0.995435, 0, 0, 0, 1, 1, 1, 1, 0.25, 1, 0, 0.313476, 1.18387, 0, 0, 0, 1, 1, 1, 1, 0.3, 1, 0.0102771, 0.0502403, 1.13241, 0, 0, 0, 1, 1, 1, 1, 0.4, 1, 0.0744684, -0.535892, 0.782828, 0, 0, 0, 1, 1, 1, 1, 0.45, 1, 0.110957, -0.769809, 0.54983, 0, 0, 0, 1, 1, 1, 1, 0.5, 1, 0.13588, -0.912113, 0.342608, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, 0.142337, -0.934969, 0.197995, 0, 0, 0, 1, 1, 1, 1, 0.6, 1, 0.142331, -0.819832, 0.0904105, 0, 0, 0, 1, 1, 1, 1, 0.65, 1, 0.142325, -0.584709, 0.0345853, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, 0.14222, 0.375652, 0.134472, 0, 0, 0, 1, 1, 1, 1, 0.95, 1, 0.136416, 1.34572, 0.707882, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0.134481, 1.53602, 0.857536, 0, 0, 0, 1, 1, 1, 1, 1.05, 1, 0.133965, 1.58294, 0.896163, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.133965, 1.58294, 0.896163, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/14/type"> "transform" </string>
- <node_path name="tracks/14/path"> "Armature/Skeleton:r-LEGORIENT" </node_path>
- <int name="tracks/14/interp"> 1 </int>
- <real_array name="tracks/14/keys" len="192"> 0, 1, 0.100474, 0.669825, -0.778672, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 0.098364, 0.655731, -0.762274, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 0.1, 1, 0.092555, 0.616937, -0.717148, 4.1297e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.15, 1, 0.0832335, 0.55472, -0.644792, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.4, 1, 0.0154476, 0.102931, -0.119635, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 0.45, 1, 0.00660282, 0.0440027, -0.051146, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.5, 1, 0.00131494, 0.00876498, -0.0101888, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, 0.000308841, 0.00205886, -0.00239307, 7.10993e-08, 6.08666e-15, -4.32757e-22, 1, 1, 1, 1, 0.6, 1, 0.00340915, 0.0227199, -0.0264083, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.65, 1, 0.0108188, 0.0720865, -0.0837842, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.7, 1, 0.0221942, 0.14786, -0.171845, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 0.9, 1, 0.0824287, 0.549322, -0.638501, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.95, 1, 0.0927294, 0.618084, -0.718475, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 1, 1, 0.0989292, 0.659501, -0.766658, 0, 0, 0, 1, 1, 1, 1, 1.05, 1, 0.100474, 0.669825, -0.778672, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.100474, 0.669825, -0.778672, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/15/type"> "transform" </string>
- <node_path name="tracks/15/path"> "Armature/Skeleton:l-LEGORIENT" </node_path>
- <int name="tracks/15/interp"> 1 </int>
- <real_array name="tracks/15/keys" len="192"> 0, 1, 2.98023e-08, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -0.00210956, 0.0140947, -0.0163979, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 0.1, 1, -0.00791863, 0.0528884, -0.0615235, 4.1297e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.15, 1, -0.0172402, 0.115105, -0.13388, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.4, 1, -0.085026, 0.566894, -0.659037, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 0.45, 1, -0.0938708, 0.625823, -0.727526, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.5, 1, -0.0991587, 0.66106, -0.768483, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, -0.100165, 0.667766, -0.776279, 7.10993e-08, 6.08666e-15, -4.32757e-22, 1, 1, 1, 1, 0.6, 1, -0.0970645, 0.647105, -0.752263, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.65, 1, -0.0896548, 0.597739, -0.694888, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.7, 1, -0.0782794, 0.521965, -0.606827, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 0.9, 1, -0.0180449, 0.120504, -0.14017, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.95, 1, -0.00774428, 0.0517416, -0.0601966, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 1, 1, -0.00154439, 0.0103241, -0.0120134, 0, 0, 0, 1, 1, 1, 1, 1.05, 1, 2.98023e-08, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 2.98023e-08, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/16/type"> "transform" </string>
- <node_path name="tracks/16/path"> "Armature/Skeleton:r-ARMCONTROL" </node_path>
- <int name="tracks/16/interp"> 1 </int>
- <real_array name="tracks/16/keys" len="180"> 0, 1, -0.868295, -0.434147, -0.728793, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -0.894115, -0.429589, -0.685758, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, -0.965105, -0.417039, -0.56775, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.15, 1, -1.07881, -0.396902, -0.379345, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.4, 1, -1.9017, -0.250463, 0.973224, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.45, 1, -2.00893, -0.231348, 1.14912, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.5, 1, -2.07309, -0.219917, 1.25447, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, -2.08428, -0.222594, 1.27283, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.6, 1, -2.0356, -0.276793, 1.19246, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.65, 1, -1.92036, -0.39421, 1.00266, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.75, 1, -1.5939, -0.636021, 0.464508, 0, 0, 0, 1, 1, 1, 1, 0.95, 1, -0.989962, -0.50147, -0.527541, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1, 1, -0.8923, -0.448337, -0.688738, 0, 0, 0, 1, 1, 1, 1, 1.05, 1, -0.868295, -0.434147, -0.728793, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.868295, -0.434147, -0.728793, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/17/type"> "transform" </string>
- <node_path name="tracks/17/path"> "Armature/Skeleton:l-ARMCONTROL" </node_path>
- <int name="tracks/17/interp"> 1 </int>
- <real_array name="tracks/17/keys" len="180"> 0, 1, 2.08906, -0.217074, 1.28073, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 2.04863, -0.260861, 1.21323, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, 1.93875, -0.371377, 1.03141, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.25, 1, 1.47813, -0.663608, 0.273554, 0, 0, 0, 1, 1, 1, 1, 0.45, 1, 0.953814, -0.514624, -0.588262, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.5, 1, 0.884829, -0.464922, -0.701557, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, 0.872045, -0.428974, -0.722627, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.6, 1, 0.909668, -0.39768, -0.660821, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.65, 1, 0.999508, -0.365756, -0.513451, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.7, 1, 1.13734, -0.334072, -0.287612, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.9, 1, 1.86856, -0.237138, 0.914287, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.95, 1, 1.99427, -0.225258, 1.12276, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1, 1, 2.07012, -0.218627, 1.24908, 0, 0, 0, 1, 1, 1, 1, 1.05, 1, 2.08906, -0.217074, 1.28073, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 2.08906, -0.217074, 1.28073, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/18/type"> "transform" </string>
- <node_path name="tracks/18/path"> "Armature/Skeleton:r-ARMORIENT" </node_path>
- <int name="tracks/18/interp"> 1 </int>
- <real_array name="tracks/18/keys" len="192"> 0, 1, 0.405204, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 0.429983, 0.0015192, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, 0.498118, 0.0057025, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.15, 1, 0.607264, 0.0124156, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.4, 1, 1.39747, 0.061233, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.45, 1, 1.50046, 0.0676029, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.5, 1, 1.56207, 0.0714109, 0, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, 1.5738, 0.0721354, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.6, 1, 1.53767, 0.0699027, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.65, 1, 1.45139, 0.0645664, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.7, 1, 1.31902, 0.0563741, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.9, 1, 0.616836, 0.0129952, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.95, 1, 0.496168, 0.00557709, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1, 1, 0.423375, 0.00111222, 0, 0, 0, 0, 1, 1, 1, 1, 1.05, 1, 0.405204, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.405204, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/19/type"> "transform" </string>
- <node_path name="tracks/19/path"> "Armature/Skeleton:l-ARMORIENT" </node_path>
- <int name="tracks/19/interp"> 1 </int>
- <real_array name="tracks/19/keys" len="192"> 0, 1, -1.5774, 0.0723579, 0, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -1.55262, 0.0708387, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, -1.48449, 0.0666554, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.15, 1, -1.37534, 0.0599422, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.4, 1, -0.585136, 0.0111248, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.45, 1, -0.482148, 0.00475502, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.5, 1, -0.420538, 0.000946999, 0, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, -0.408805, 0.000222445, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.6, 1, -0.444934, 0.00245523, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.65, 1, -0.531212, 0.00779152, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.7, 1, -0.663587, 0.0159838, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.9, 1, -1.36577, 0.0593629, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.95, 1, -1.48644, 0.0667808, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1, 1, -1.55923, 0.0712457, 0, 0, 0, 0, 1, 1, 1, 1, 1.05, 1, -1.5774, 0.0723579, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -1.5774, 0.0723579, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/20/type"> "transform" </string>
- <node_path name="tracks/20/path"> "Armature/Skeleton:hip" </node_path>
- <int name="tracks/20/interp"> 1 </int>
- <real_array name="tracks/20/keys" len="276"> 0, 1, 0.0502379, 0.036174, 0.108012, 7.74552e-15, -1.97402e-08, 0.0871557, 0.996195, 1, 1, 1, 0.05, 1, 0.0469382, 0.0509099, 0.094259, -3.35906e-14, -1.89171e-08, 0.0835209, 0.996506, 1, 1, 1, 0.1, 1, 0.0379226, 0.088175, 0.0594788, -4.57539e-14, -1.66467e-08, 0.0734954, 0.997296, 1, 1, 1, 0.15, 1, 0.0249111, 0.134917, 0.0158529, -3.14989e-14, -1.29934e-08, 0.0573644, 0.998353, 1, 1, 1, 0.2, 1, 0.0112907, 0.17217, -0.0189178, -1.3373e-14, -8.15547e-09, 0.0360035, 0.999352, 1, 1, 1, 0.25, 1, 2.27588e-08, 0.186899, -0.0326645, -1.50375e-14, -2.49281e-09, 0.0110021, 0.99994, 1, 1, 1, 0.3, 1, -0.0104418, 0.176016, -0.0225072, -7.05369e-14, 3.45387e-09, -0.0152525, 0.999884, 1, 1, 1, 0.35, 1, -0.0222285, 0.147506, 0.00410175, -3.23609e-14, 9.01354e-09, -0.039798, 0.999208, 1, 1, 1, 0.4, 1, -0.0338161, 0.108041, 0.0409362, -3.84007e-14, 1.36964e-08, -0.0604725, 0.99817, 1, 1, 1, 0.45, 1, -0.043192, 0.0694027, 0.0769985, -3.85801e-14, 1.71613e-08, -0.0757699, 0.997125, 1, 1, 1, 0.5, 1, -0.0488776, 0.0430113, 0.10163, -7.13117e-15, 1.92273e-08, -0.084891, 0.99639, 1, 1, 1, 0.55, 1, -0.049846, 0.0380361, 0.106274, -6.66418e-14, 1.96198e-08, -0.0866238, 0.996241, 1, 1, 1, 0.6, 1, -0.0458462, 0.0563236, 0.0892055, -1.43694e-14, 1.84095e-08, -0.0812805, 0.996691, 1, 1, 1, 0.65, 1, -0.0363638, 0.0959547, 0.0522163, -5.40282e-14, 1.5511e-08, -0.0684838, 0.997652, 1, 1, 1, 0.7, 1, -0.0231681, 0.1427, 0.0085876, -3.25683e-14, 1.10473e-08, -0.0487772, 0.99881, 1, 1, 1, 0.75, 1, -0.00951665, 0.177588, -0.0239747, 1.83932e-15, 5.34013e-09, -0.0235807, 0.999722, 1, 1, 1, 0.8, 1, 0.00190332, 0.185037, -0.0309267, -4.07805e-14, -1.06814e-09, 0.00471147, 0.999989, 1, 1, 1, 0.85, 1, 0.0140465, 0.166752, -0.0138602, -8.20187e-14, -7.29738e-09, 0.0322142, 0.999481, 1, 1, 1, 0.9, 1, 0.0278208, 0.127127, 0.0231235, -3.37482e-14, -1.26773e-08, 0.0559684, 0.998433, 1, 1, 1, 0.95, 1, 0.0402532, 0.080384, 0.0667505, -4.05783e-14, -1.67149e-08, 0.0737966, 0.997273, 1, 1, 1, 1, 1, 0.0482781, 0.0454891, 0.0993183, 1.00279e-15, -1.91378e-08, 0.0844954, 0.996424, 1, 1, 1, 1.05, 1, 0.0502379, 0.036174, 0.108012, 7.74552e-15, -1.97402e-08, 0.0871557, 0.996195, 1, 1, 1, 1.25, 1, 0.0502379, 0.036174, 0.108012, 7.74552e-15, -1.97402e-08, 0.0871557, 0.996195, 1, 1, 1 </real_array>
- <string name="tracks/21/type"> "transform" </string>
- <node_path name="tracks/21/path"> "Armature/Skeleton:waist" </node_path>
- <int name="tracks/21/interp"> 1 </int>
- <real_array name="tracks/21/keys" len="192"> 0, 1, 4.1909e-09, -2.55596e-10, -3.57628e-07, 0.0550011, -0.00481196, -0.0870228, 0.994675, 1, 1, 1, 0.05, 1, 3.53838e-09, 6.53649e-11, -5.96046e-08, 0.0550183, -0.0046113, -0.0833935, 0.994986, 1, 1, 1, 0.1, 1, -5.60775e-10, -7.51698e-09, -2.98023e-08, 0.0550619, -0.00405785, -0.0733833, 0.995774, 1, 1, 1, 0.15, 1, -2.23866e-09, -1.11867e-08, -1.49012e-07, 0.0551203, -0.00316731, -0.0572769, 0.996831, 1, 1, 1, 0.4, 1, -2.04997e-09, -2.75862e-09, 1.78814e-07, 0.0551102, 0.00333869, 0.0603803, 0.996647, 1, 1, 1, 0.45, 1, 2.0486e-09, 4.35754e-10, 5.96046e-08, 0.0550525, 0.00418331, 0.0756543, 0.995605, 1, 1, 1, 0.5, 1, -5.1223e-09, 2.12108e-09, 1.19209e-07, 0.0550119, 0.00468692, 0.0847616, 0.994871, 1, 1, 1, 0.55, 1, 9.31448e-11, -6.0701e-10, 0, 0.0550037, 0.00478259, 0.0864917, 0.994722, 1, 1, 1, 0.6, 1, -8.38328e-10, -2.70165e-09, 0, 0.0550285, 0.00448757, 0.0811565, 0.995171, 1, 1, 1, 0.65, 1, -5.5956e-10, 2.044e-09, 2.98023e-08, 0.0550816, 0.00378102, 0.0683793, 0.996131, 1, 1, 1, 0.7, 1, -1.88318e-10, -1.00538e-08, -1.49012e-07, 0.0551455, 0.00269294, 0.0487028, 0.997286, 1, 1, 1, 0.9, 1, -2.42557e-09, -9.9462e-09, 1.19209e-07, 0.0551247, -0.00309027, -0.055883, 0.99691, 1, 1, 1, 0.95, 1, 2.79174e-09, -8.13951e-09, 0, 0.0550607, -0.00407449, -0.073684, 0.995752, 1, 1, 1, 1, 1, -4.66262e-10, 1.71346e-09, 0, 0.0550138, -0.0046651, -0.0843665, 0.994904, 1, 1, 1, 1.05, 1, 4.1909e-09, -2.55596e-10, -3.57628e-07, 0.0550011, -0.00481196, -0.0870228, 0.994675, 1, 1, 1, 1.25, 1, 4.1909e-09, -2.55596e-10, -3.57628e-07, 0.0550011, -0.00481196, -0.0870228, 0.994675, 1, 1, 1 </real_array>
- <string name="tracks/22/type"> "transform" </string>
- <node_path name="tracks/22/path"> "Armature/Skeleton:chest" </node_path>
- <int name="tracks/22/interp"> 1 </int>
- <real_array name="tracks/22/keys" len="192"> 0, 1, 4.20218e-09, -1.49012e-08, 0, 0.0550026, -0.0108562, -0.086477, 0.994675, 1, 1, 1, 0.05, 1, 6.60681e-10, -7.45058e-09, -5.96046e-08, 0.0550197, -0.0104035, -0.0828704, 0.994986, 1, 1, 1, 0.1, 1, 1.42138e-09, -7.45058e-09, 1.19209e-07, 0.0550633, -0.00915483, -0.072923, 0.995774, 1, 1, 1, 0.15, 1, -1.4402e-10, -1.86265e-08, -5.96046e-08, 0.0551217, -0.00714571, -0.0569177, 0.99683, 1, 1, 1, 0.4, 1, -2.54046e-09, 7.45058e-09, -1.78814e-07, 0.0551116, 0.00753235, 0.0600015, 0.996647, 1, 1, 1, 0.45, 1, -2.31643e-09, 1.86265e-08, -1.78814e-07, 0.0550539, 0.00943788, 0.0751797, 0.995604, 1, 1, 1, 0.5, 1, -3.16026e-09, 1.49012e-08, 5.96046e-08, 0.0550134, 0.0105741, 0.0842299, 0.99487, 1, 1, 1, 0.55, 1, -4.35034e-09, 2.23517e-08, -1.78814e-07, 0.0550051, 0.0107899, 0.0859492, 0.994722, 1, 1, 1, 0.6, 1, -1.53961e-09, -7.45058e-09, 5.96046e-08, 0.05503, 0.0101243, 0.0806475, 0.995171, 1, 1, 1, 0.65, 1, -1.47879e-09, -1.86265e-08, -5.96046e-08, 0.055083, 0.00853027, 0.0679504, 0.996131, 1, 1, 1, 0.7, 1, -2.07954e-09, 2.6077e-08, -2.38419e-07, 0.0551469, 0.00607548, 0.0483973, 0.997286, 1, 1, 1, 0.9, 1, -1.29246e-09, -2.6077e-08, 5.96046e-08, 0.0551261, -0.00697189, -0.0555325, 0.99691, 1, 1, 1, 0.95, 1, 2.48766e-09, -7.45058e-09, 5.96046e-08, 0.0550621, -0.00919238, -0.0732219, 0.995752, 1, 1, 1, 1, 1, -1.94411e-09, -7.45058e-09, -1.19209e-07, 0.0550152, -0.0105248, -0.0838373, 0.994904, 1, 1, 1, 1.05, 1, 4.20218e-09, -1.49012e-08, 0, 0.0550026, -0.0108562, -0.086477, 0.994675, 1, 1, 1, 1.25, 1, 4.20218e-09, -1.49012e-08, 0, 0.0550026, -0.0108562, -0.086477, 0.994675, 1, 1, 1 </real_array>
- <string name="tracks/23/type"> "transform" </string>
- <node_path name="tracks/23/path"> "Armature/Skeleton:neck" </node_path>
- <int name="tracks/23/interp"> 1 </int>
- <real_array name="tracks/23/keys" len="24"> 0, 1, 1.58195e-10, -1.19209e-07, -8.34465e-07, -1.49012e-08, 2.17021e-10, 8.15234e-10, 1, 1, 1, 1, 1.25, 1, 1.58195e-10, -1.19209e-07, -8.34465e-07, -1.49012e-08, 2.17021e-10, 8.15234e-10, 1, 1, 1, 1 </real_array>
- <string name="tracks/24/type"> "transform" </string>
- <node_path name="tracks/24/path"> "Armature/Skeleton:headtracker" </node_path>
- <int name="tracks/24/interp"> 1 </int>
- <real_array name="tracks/24/keys" len="144"> 0, 1, 8.86136e-10, -2.38419e-07, -4.91273e-08, 0.0549542, -0.0952446, 0.00487296, 0.993924, 1, 1, 1, 0.05, 1, 2.18506e-09, -1.78814e-07, -5.65778e-08, 0.0504772, -0.0912067, 0.0042631, 0.994543, 1, 1, 1, 0.1, 1, 5.53928e-10, -4.17233e-07, -3.67872e-08, 0.0390059, -0.0800384, 0.00284171, 0.996024, 1, 1, 1, 0.45, 1, -5.1797e-09, -8.04663e-07, -5.82077e-08, 0.0448447, 0.08285, -0.00340957, 0.995547, 1, 1, 1, 0.5, 1, 3.73723e-09, 3.57628e-07, -5.28526e-08, 0.052893, 0.0927872, -0.00455309, 0.99427, 1, 1, 1, 0.55, 1, 3.81474e-09, -2.98023e-08, -4.30737e-08, 0.0543919, 0.0946615, -0.00479041, 0.994011, 1, 1, 1, 0.6, 1, 5.97727e-09, -1.01328e-06, -7.35745e-08, 0.0488359, 0.0887913, -0.00401032, 0.994844, 1, 1, 1, 0.65, 1, -3.89822e-10, -6.25849e-07, -7.96281e-08, 0.0366099, 0.0746935, -0.00247956, 0.996531, 1, 1, 1, 0.95, 1, -4.46247e-09, 1.19209e-07, -6.96164e-08, 0.0414353, -0.080551, 0.00304791, 0.995884, 1, 1, 1, 1, 1, 2.64143e-09, -5.96046e-07, -7.72998e-08, 0.052136, -0.0923283, 0.0044599, 0.994353, 1, 1, 1, 1.05, 1, 8.86136e-10, -2.38419e-07, -4.91273e-08, 0.0549542, -0.0952446, 0.00487296, 0.993924, 1, 1, 1, 1.25, 1, 8.86136e-10, -2.38419e-07, -4.91273e-08, 0.0549542, -0.0952446, 0.00487296, 0.993924, 1, 1, 1 </real_array>
- <string name="tracks/25/type"> "transform" </string>
- <node_path name="tracks/25/path"> "Armature/Skeleton:head" </node_path>
- <int name="tracks/25/interp"> 1 </int>
- <real_array name="tracks/25/keys" len="24"> 0, 1, -3.08853e-09, 1.69966e-08, 3.98955e-07, 4.70848e-20, -1.3217e-10, -5.67425e-10, 1, 1, 1, 1, 1.25, 1, -3.08853e-09, 1.69966e-08, 3.98955e-07, 4.70848e-20, -1.3217e-10, -5.67425e-10, 1, 1, 1, 1 </real_array>
- <string name="tracks/26/type"> "transform" </string>
- <node_path name="tracks/26/path"> "Armature/Skeleton:vent" </node_path>
- <int name="tracks/26/interp"> 1 </int>
- <real_array name="tracks/26/keys" len="24"> 0, 1, 5.17831e-08, 0.00292331, 0.204329, 3.25963e-09, -2.17324e-11, 3.00563e-10, 1, 1, 1, 1, 1.25, 1, 5.17831e-08, 0.00292331, 0.204329, 3.25963e-09, -2.17324e-11, 3.00563e-10, 1, 1, 1, 1 </real_array>
-
- </resource>
- <resource type="Animation" path="local://13">
- <string name="resource/name"> "shooting_standing" </string>
- <real name="length"> 0.416667 </real>
- <bool name="loop"> False </bool>
- <real name="step"> 0.1 </real>
- <string name="tracks/0/type"> "transform" </string>
- <node_path name="tracks/0/path"> "Armature/Skeleton:r-arm" </node_path>
- <int name="tracks/0/interp"> 1 </int>
- <real_array name="tracks/0/keys" len="132"> 0, 1, 5.96046e-07, -1.19209e-07, 4.47035e-07, -0.206314, 0.709894, -0.150643, 0.656348, 1, 1, 1, 0.05, 1, 1.07288e-06, -4.76837e-07, 8.34465e-07, -0.199825, 0.723236, -0.14911, 0.644023, 1, 1, 1, 0.1, 1, 4.47035e-07, -1.19209e-07, 3.27826e-07, -0.186028, 0.74616, -0.147051, 0.622106, 1, 1, 1, 0.15, 1, 4.47035e-07, -1.19209e-07, 1.49012e-07, -0.168011, 0.761016, -0.149525, 0.608497, 1, 1, 1, 0.2, 1, 2.38419e-07, 1.19209e-07, -1.19209e-07, -0.141127, 0.777642, -0.158168, 0.591895, 1, 1, 1, 0.25, 1, 7.15256e-07, -2.38419e-07, 2.68221e-07, -0.129783, 0.779527, -0.165304, 0.590059, 1, 1, 1, 0.3, 1, 6.25849e-07, -1.19209e-07, 2.08616e-07, -0.152097, 0.757922, -0.164122, 0.612768, 1, 1, 1, 0.35, 1, 8.9407e-07, -4.76837e-07, 8.34465e-07, -0.183836, 0.730436, -0.157254, 0.638701, 1, 1, 1, 0.4, 1, 7.45058e-07, -3.57628e-07, 5.66244e-07, -0.202964, 0.713054, -0.151716, 0.653714, 1, 1, 1, 0.45, 1, 5.96046e-07, -1.19209e-07, 4.47035e-07, -0.206314, 0.709894, -0.150643, 0.656348, 1, 1, 1, 1.25, 1, 5.96046e-07, -1.19209e-07, 4.47035e-07, -0.206314, 0.709894, -0.150643, 0.656348, 1, 1, 1 </real_array>
- <string name="tracks/1/type"> "transform" </string>
- <node_path name="tracks/1/path"> "Armature/Skeleton:r-forearm" </node_path>
- <int name="tracks/1/interp"> 1 </int>
- <real_array name="tracks/1/keys" len="120"> 0, 1, 0, -4.76837e-07, -7.7486e-07, 0.0490264, -0.364254, 0.0100564, 0.929954, 1, 1, 1, 0.05, 1, 1.19209e-07, -4.47035e-07, -4.76837e-07, 0.0346734, -0.325178, 0.00768963, 0.944986, 1, 1, 1, 0.1, 1, 1.19209e-07, -5.06639e-07, -3.57628e-07, 0.00822793, -0.255634, 0.00344931, 0.966732, 1, 1, 1, 0.15, 1, 2.98023e-08, -7.15256e-07, -5.96046e-07, -0.00893206, -0.219161, 0.00118009, 0.975647, 1, 1, 1, 0.2, 1, 1.49012e-07, -4.47035e-07, -5.96046e-07, -0.0220165, -0.204408, 0.000203021, 0.978638, 1, 1, 1, 0.25, 1, 4.17233e-07, -4.76837e-07, -5.36442e-07, -0.0204464, -0.223283, 0.00158917, 0.974538, 1, 1, 1, 0.35, 1, 1.19209e-07, -6.85453e-07, -2.98023e-07, 0.0295549, -0.331584, 0.00842644, 0.942925, 1, 1, 1, 0.4, 1, 0, -6.55651e-07, -6.55651e-07, 0.0460614, -0.359518, 0.00983853, 0.931949, 1, 1, 1, 0.45, 1, 0, -4.76837e-07, -7.7486e-07, 0.0490264, -0.364254, 0.0100564, 0.929954, 1, 1, 1, 1.25, 1, 0, -4.76837e-07, -7.7486e-07, 0.0490264, -0.364254, 0.0100564, 0.929954, 1, 1, 1 </real_array>
- <string name="tracks/2/type"> "transform" </string>
- <node_path name="tracks/2/path"> "Armature/Skeleton:l-arm" </node_path>
- <int name="tracks/2/interp"> 1 </int>
- <real_array name="tracks/2/keys" len="132"> 0, 1, -4.17233e-07, -3.57628e-07, 4.47035e-07, -0.474516, -0.584521, 0.0340579, 0.657274, 1, 1, 1, 0.05, 1, -7.45058e-07, -3.57628e-07, 5.36442e-07, -0.46761, -0.58693, 0.0339523, 0.660076, 1, 1, 1, 0.1, 1, -4.76837e-07, -2.38419e-07, 2.98023e-07, -0.452786, -0.591715, 0.0339493, 0.666112, 1, 1, 1, 0.15, 1, -6.55651e-07, -3.57628e-07, 2.98023e-07, -0.443727, -0.588057, 0.0337848, 0.675392, 1, 1, 1, 0.2, 1, 2.98023e-08, 1.19209e-07, -3.27826e-07, -0.450408, -0.563251, 0.0324613, 0.691973, 1, 1, 1, 0.25, 1, -5.96046e-07, -3.57628e-07, 2.98023e-07, -0.461281, -0.543778, 0.0314456, 0.700383, 1, 1, 1, 0.3, 1, -4.17233e-07, 0, 1.78814e-07, -0.469244, -0.550688, 0.0318109, 0.689595, 1, 1, 1, 0.35, 1, -7.7486e-07, -2.38419e-07, 4.76837e-07, -0.473462, -0.569016, 0.0329517, 0.671542, 1, 1, 1, 0.4, 1, -6.25849e-07, -3.57628e-07, 5.96046e-07, -0.474439, -0.5821, 0.0338759, 0.659485, 1, 1, 1, 0.45, 1, -4.17233e-07, -3.57628e-07, 4.47035e-07, -0.474516, -0.584521, 0.0340579, 0.657274, 1, 1, 1, 1.25, 1, -4.17233e-07, -3.57628e-07, 4.47035e-07, -0.474516, -0.584521, 0.0340579, 0.657274, 1, 1, 1 </real_array>
- <string name="tracks/3/type"> "transform" </string>
- <node_path name="tracks/3/path"> "Armature/Skeleton:l-forearm" </node_path>
- <int name="tracks/3/interp"> 1 </int>
- <real_array name="tracks/3/keys" len="96"> 0, 1, 1.78814e-07, 2.98023e-08, -3.57628e-07, -0.156054, -0.257929, 9.29801e-05, 0.953478, 1.3, 1.3, 1.3, 0.05, 1, -8.9407e-08, -9.23872e-07, -2.98023e-07, -0.156186, -0.25785, 0.000491834, 0.953477, 1.3, 1.3, 1.3, 0.1, 1, 0, -5.06639e-07, -2.98023e-07, -0.156442, -0.257682, 0.00128265, 0.95348, 1.3, 1.3, 1.3, 0.15, 1, -2.08616e-07, -5.36442e-07, -5.96046e-08, -0.156528, -0.257623, 0.00155313, 0.953481, 1.3, 1.3, 1.3, 0.25, 1, 2.98023e-08, -5.36442e-07, -3.57628e-07, -0.155874, -0.258131, -0.000583909, 0.953452, 1.3, 1.3, 1.3, 0.35, 1, 2.98023e-08, -4.76837e-07, -3.57628e-07, -0.15592, -0.258051, -0.000371468, 0.953467, 1.3, 1.3, 1.3, 0.4, 1, 1.49012e-07, -2.68221e-07, -2.98023e-07, -0.156032, -0.257949, 1.56283e-05, 0.953476, 1.3, 1.3, 1.3, 1.25, 1, 1.78814e-07, 2.98023e-08, -3.57628e-07, -0.156054, -0.257929, 9.29801e-05, 0.953478, 1.3, 1.3, 1.3 </real_array>
- <string name="tracks/4/type"> "transform" </string>
- <node_path name="tracks/4/path"> "Armature/Skeleton:r-thigh" </node_path>
- <int name="tracks/4/interp"> 1 </int>
- <real_array name="tracks/4/keys" len="120"> 0, 1, 5.96046e-08, 2.23517e-08, -1.3411e-07, 0.301601, -0.0701581, -0.00864293, 0.95081, 1, 1, 1, 0.05, 1, 5.96046e-08, 2.98023e-08, -1.04308e-07, 0.248345, -0.0620849, -0.00736271, 0.966652, 1, 1, 1, 0.1, 1, 8.9407e-08, 6.70552e-08, -1.04308e-07, 0.175365, -0.0511626, -0.00552639, 0.983158, 1, 1, 1, 0.15, 1, 8.9407e-08, 4.47035e-08, -1.04308e-07, 0.153891, -0.0497144, -0.00660778, 0.986814, 1, 1, 1, 0.2, 1, 5.96046e-08, -2.98023e-08, -1.49012e-08, 0.151238, -0.0561188, -0.0117034, 0.986834, 1, 1, 1, 0.25, 1, 2.98023e-08, -1.49012e-08, -1.04308e-07, 0.168743, -0.0655087, -0.0152581, 0.983362, 1, 1, 1, 0.35, 1, 2.98023e-08, 2.23517e-08, -1.63913e-07, 0.26593, -0.072486, -0.0117415, 0.961192, 1, 1, 1, 0.4, 1, 5.96046e-08, 7.45058e-09, -1.78814e-07, 0.296131, -0.070636, -0.00916634, 0.952488, 1, 1, 1, 0.45, 1, 5.96046e-08, 2.23517e-08, -1.3411e-07, 0.301601, -0.0701581, -0.00864293, 0.95081, 1, 1, 1, 1.25, 1, 5.96046e-08, 2.23517e-08, -1.3411e-07, 0.301601, -0.0701581, -0.00864293, 0.95081, 1, 1, 1 </real_array>
- <string name="tracks/5/type"> "transform" </string>
- <node_path name="tracks/5/path"> "Armature/Skeleton:r-leg" </node_path>
- <int name="tracks/5/interp"> 1 </int>
- <real_array name="tracks/5/keys" len="120"> 0, 1, -4.31901e-08, -7.45058e-08, 7.7486e-07, -0.33852, 0.053398, -0.0152903, 0.939319, 1, 1, 1, 0.05, 1, 5.6345e-08, -2.23517e-08, 6.55651e-07, -0.403989, 0.0628472, -0.0146608, 0.912484, 1, 1, 1, 0.1, 1, 5.02914e-08, -1.49012e-08, 5.36442e-07, -0.486228, 0.0751824, -0.0137902, 0.870483, 1, 1, 1, 0.15, 1, 1.11642e-07, 5.96046e-08, 5.96046e-07, -0.506485, 0.0840018, -0.0142775, 0.858028, 1, 1, 1, 0.2, 1, 1.23633e-07, 8.19564e-08, 5.36442e-07, -0.500531, 0.103313, -0.0168649, 0.859367, 1, 1, 1, 0.25, 1, 9.58098e-08, 1.49012e-08, 6.55651e-07, -0.475505, 0.111896, -0.0189746, 0.872361, 1, 1, 1, 0.35, 1, 7.84639e-08, 9.68575e-08, 5.96046e-07, -0.376662, 0.0699087, -0.0169347, 0.923554, 1, 1, 1, 0.4, 1, -1.16415e-09, -7.45058e-09, 7.15256e-07, -0.344524, 0.0558207, -0.0155573, 0.936987, 1, 1, 1, 0.45, 1, -4.31901e-08, -7.45058e-08, 7.7486e-07, -0.33852, 0.053398, -0.0152903, 0.939319, 1, 1, 1, 1.25, 1, -4.31901e-08, -7.45058e-08, 7.7486e-07, -0.33852, 0.053398, -0.0152903, 0.939319, 1, 1, 1 </real_array>
- <string name="tracks/6/type"> "transform" </string>
- <node_path name="tracks/6/path"> "Armature/Skeleton:r-foot" </node_path>
- <int name="tracks/6/interp"> 1 </int>
- <real_array name="tracks/6/keys" len="108"> 0, 1, 1.19209e-07, 0, 1.82539e-07, -0.218034, -0.0651501, 0.015764, 0.973637, 1, 1, 1, 0.05, 1, 5.21541e-08, 0, -9.31323e-08, -0.206333, -0.0662009, 0.0171463, 0.976089, 1, 1, 1, 0.1, 1, 2.98023e-08, -1.19209e-07, -7.45058e-08, -0.188973, -0.0677374, 0.0191861, 0.979455, 1, 1, 1, 0.15, 1, 0, 0, -4.84288e-08, -0.184958, -0.0680889, 0.0196559, 0.980188, 1, 1, 1, 0.2, 1, 5.96046e-08, 0, -1.19209e-07, -0.189238, -0.0677142, 0.019155, 0.979406, 1, 1, 1, 0.35, 1, 8.19564e-08, 1.19209e-07, 3.72529e-08, -0.213767, -0.0655347, 0.0162687, 0.974548, 1, 1, 1, 0.4, 1, 1.04308e-07, 0, 5.21541e-08, -0.217419, -0.0652056, 0.0158368, 0.973769, 1, 1, 1, 0.45, 1, 1.19209e-07, 0, 1.82539e-07, -0.218034, -0.0651501, 0.015764, 0.973637, 1, 1, 1, 1.25, 1, 1.19209e-07, 0, 1.82539e-07, -0.218034, -0.0651501, 0.015764, 0.973637, 1, 1, 1 </real_array>
- <string name="tracks/7/type"> "transform" </string>
- <node_path name="tracks/7/path"> "Armature/Skeleton:l-thigh" </node_path>
- <int name="tracks/7/interp"> 1 </int>
- <real_array name="tracks/7/keys" len="132"> 0, 1, -5.96046e-08, -1.2666e-07, 1.04308e-07, -0.633392, 0.109953, 0.00349885, 0.765972, 1, 1, 1, 0.05, 1, 0, -4.47035e-08, 1.3411e-07, -0.628866, 0.106487, 0.00414994, 0.770176, 1, 1, 1, 0.1, 1, -2.98023e-08, 4.47035e-08, 1.49012e-07, -0.619935, 0.101098, 0.00522767, 0.778095, 1, 1, 1, 0.15, 1, -2.98023e-08, 5.96046e-08, 1.49012e-07, -0.616185, 0.108634, 0.00550208, 0.780054, 1, 1, 1, 0.2, 1, 5.96046e-08, 4.47035e-08, 2.5332e-07, -0.613177, 0.141231, 0.00523592, 0.7772, 1, 1, 1, 0.25, 1, 0, 0, 1.49012e-07, -0.612177, 0.164991, 0.00476259, 0.773301, 1, 1, 1, 0.3, 1, 5.96046e-08, -7.45058e-09, 1.3411e-07, -0.619021, 0.155086, 0.00421746, 0.769898, 1, 1, 1, 0.35, 1, 2.98023e-08, 7.45058e-09, 7.45058e-08, -0.627679, 0.130628, 0.00377015, 0.767425, 1, 1, 1, 0.4, 1, -2.98023e-08, -1.3411e-07, 7.45058e-08, -0.632568, 0.11319, 0.0035387, 0.766181, 1, 1, 1, 0.45, 1, -5.96046e-08, -1.2666e-07, 1.04308e-07, -0.633392, 0.109953, 0.00349885, 0.765972, 1, 1, 1, 1.25, 1, -5.96046e-08, -1.2666e-07, 1.04308e-07, -0.633392, 0.109953, 0.00349885, 0.765972, 1, 1, 1 </real_array>
- <string name="tracks/8/type"> "transform" </string>
- <node_path name="tracks/8/path"> "Armature/Skeleton:l-leg" </node_path>
- <int name="tracks/8/interp"> 1 </int>
- <real_array name="tracks/8/keys" len="120"> 0, 1, -4.07454e-08, -1.11759e-07, 0, -0.55604, 0.155102, 0.00378888, 0.816547, 1, 1, 1, 0.05, 1, 7.60192e-08, -8.9407e-08, 1.19209e-07, -0.534898, 0.148998, 0.00358481, 0.831668, 1, 1, 1, 0.1, 1, -1.0326e-07, -1.49012e-08, 2.38419e-07, -0.500235, 0.139173, 0.00323174, 0.854626, 1, 1, 1, 0.15, 1, 6.41448e-08, 4.47035e-08, 1.78814e-07, -0.492131, 0.143377, 0.00332103, 0.858626, 1, 1, 1, 0.25, 1, -6.58911e-08, -8.19564e-08, 1.78814e-07, -0.517192, 0.191548, 0.00473312, 0.834146, 1, 1, 1, 0.3, 1, 3.0268e-08, 1.49012e-08, 1.19209e-07, -0.534465, 0.187415, 0.00465677, 0.824136, 1, 1, 1, 0.35, 1, 3.11993e-08, -5.21541e-08, 2.38419e-07, -0.548296, 0.170437, 0.0042049, 0.818722, 1, 1, 1, 0.4, 1, 2.51457e-08, -9.68575e-08, 1.19209e-07, -0.554953, 0.157536, 0.00385503, 0.81682, 1, 1, 1, 0.45, 1, -4.07454e-08, -1.11759e-07, 0, -0.55604, 0.155102, 0.00378888, 0.816547, 1, 1, 1, 1.25, 1, -4.07454e-08, -1.11759e-07, 0, -0.55604, 0.155102, 0.00378888, 0.816547, 1, 1, 1 </real_array>
- <string name="tracks/9/type"> "transform" </string>
- <node_path name="tracks/9/path"> "Armature/Skeleton:l-foot" </node_path>
- <int name="tracks/9/interp"> 1 </int>
- <real_array name="tracks/9/keys" len="108"> 0, 1, 7.45058e-08, 1.19209e-07, 3.72529e-09, -0.143967, -0.0951747, 0.00523759, 0.984981, 1, 1, 1, 0.05, 1, 7.45058e-09, 2.38419e-07, 3.35276e-08, -0.157581, -0.0952617, 0.00367365, 0.982894, 1, 1, 1, 0.1, 1, -2.23517e-08, 1.19209e-07, -1.11759e-08, -0.17766, -0.0953568, 0.00135921, 0.97946, 1, 1, 1, 0.15, 1, -3.72529e-08, 1.19209e-07, 4.84288e-08, -0.182282, -0.0953731, 0.000825106, 0.97861, 1, 1, 1, 0.2, 1, 1.49012e-08, 1.19209e-07, -5.21541e-08, -0.177354, -0.0953557, 0.00139453, 0.979516, 1, 1, 1, 0.35, 1, 4.47035e-08, 0, 5.96046e-08, -0.148938, -0.0952085, 0.00466699, 0.984241, 1, 1, 1, 0.4, 1, 5.21541e-08, 1.19209e-07, -4.09782e-08, -0.144684, -0.0951797, 0.00515536, 0.984876, 1, 1, 1, 0.45, 1, 7.45058e-08, 1.19209e-07, 3.72529e-09, -0.143967, -0.0951747, 0.00523759, 0.984981, 1, 1, 1, 1.25, 1, 7.45058e-08, 1.19209e-07, 3.72529e-09, -0.143967, -0.0951747, 0.00523759, 0.984981, 1, 1, 1 </real_array>
- <string name="tracks/10/type"> "transform" </string>
- <node_path name="tracks/10/path"> "Armature/Skeleton:MASTER" </node_path>
- <int name="tracks/10/interp"> 1 </int>
- <real_array name="tracks/10/keys" len="24"> 0, 1, 0, 1.36988, -1.03377e-07, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0, 1.36988, -1.03377e-07, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/11/type"> "transform" </string>
- <node_path name="tracks/11/path"> "Armature/Skeleton:HEAD" </node_path>
- <int name="tracks/11/interp"> 1 </int>
- <real_array name="tracks/11/keys" len="108"> 0, 1, 8.64522e-08, 0.572547, -4.76837e-07, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 8.64522e-08, 0.572548, 0.471507, 0, 0, 0, 1, 1, 1, 1, 0.1, 1, 8.64522e-08, 0.572548, 1.12029, 0, 0, 7.10543e-15, 1, 1, 1, 1, 0.15, 1, 8.64522e-08, 0.572548, 1.26782, 0, 0, 0, 1, 1, 1, 1, 0.2, 1, 8.64522e-08, 0.572548, 1.10411, 0, 0, -7.10543e-15, 1, 1, 1, 1, 0.35, 1, 8.64522e-08, 0.572548, 0.166984, 0, 0, -7.10543e-15, 1, 1, 1, 1, 0.4, 1, 8.64522e-08, 0.572547, 0.024261, 0, 0, 0, 1, 1, 1, 1, 0.45, 1, 8.64522e-08, 0.572547, -4.76837e-07, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 8.64522e-08, 0.572547, -4.76837e-07, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/12/type"> "transform" </string>
- <node_path name="tracks/12/path"> "Armature/Skeleton:r-LEGCONTROL" </node_path>
- <int name="tracks/12/interp"> 1 </int>
- <real_array name="tracks/12/keys" len="108"> 0, 1, -0.0366479, -0.0811065, 0.809552, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -0.0366479, -0.0811065, 0.816585, 0, 0, 0, 1, 1, 1, 1, 0.1, 1, -0.0366479, -0.0811065, 0.826986, 0, 0, 0, 1, 1, 1, 1, 0.15, 1, -0.0366479, -0.0811065, 0.829386, 0, 0, 0, 1, 1, 1, 1, 0.2, 1, -0.0366479, -0.0811065, 0.826827, 0, 0, 0, 1, 1, 1, 1, 0.35, 1, -0.0366479, -0.0811065, 0.812119, 0, 0, 0, 1, 1, 1, 1, 0.4, 1, -0.0366479, -0.0811065, 0.809922, 0, 0, 0, 1, 1, 1, 1, 0.45, 1, -0.0366479, -0.0811065, 0.809552, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.0366479, -0.0811065, 0.809552, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/13/type"> "transform" </string>
- <node_path name="tracks/13/path"> "Armature/Skeleton:l-LEGCONTROL" </node_path>
- <int name="tracks/13/interp"> 1 </int>
- <real_array name="tracks/13/keys" len="24"> 0, 1, 0.0611181, -2.75446, 0.0815672, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.0611181, -2.75446, 0.0815672, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/14/type"> "transform" </string>
- <node_path name="tracks/14/path"> "Armature/Skeleton:r-LEGORIENT" </node_path>
- <int name="tracks/14/interp"> 1 </int>
- <real_array name="tracks/14/keys" len="24"> 0, 1, 0.0798243, -0.0543702, -2.95838, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.0798243, -0.0543702, -2.95838, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/15/type"> "transform" </string>
- <node_path name="tracks/15/path"> "Armature/Skeleton:l-LEGORIENT" </node_path>
- <int name="tracks/15/interp"> 1 </int>
- <real_array name="tracks/15/keys" len="24"> 0, 1, 0.183564, 0.0305935, -3.02205, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.183564, 0.0305935, -3.02205, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/16/type"> "transform" </string>
- <node_path name="tracks/16/path"> "Armature/Skeleton:r-ARMCONTROL" </node_path>
- <int name="tracks/16/interp"> 1 </int>
- <real_array name="tracks/16/keys" len="24"> 0, 1, -2.74884, 1.12805, 3.06242, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -2.74884, 1.12805, 3.06242, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/17/type"> "transform" </string>
- <node_path name="tracks/17/path"> "Armature/Skeleton:l-ARMCONTROL" </node_path>
- <int name="tracks/17/interp"> 1 </int>
- <real_array name="tracks/17/keys" len="24"> 0, 1, 1.73339, 0.895247, 5.13844, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 1.73339, 0.895247, 5.13844, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/18/type"> "transform" </string>
- <node_path name="tracks/18/path"> "Armature/Skeleton:r-ARMORIENT" </node_path>
- <int name="tracks/18/interp"> 1 </int>
- <real_array name="tracks/18/keys" len="24"> 0, 1, 0.101768, -0.813356, 5.76642, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.101768, -0.813356, 5.76642, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/19/type"> "transform" </string>
- <node_path name="tracks/19/path"> "Armature/Skeleton:l-ARMORIENT" </node_path>
- <int name="tracks/19/interp"> 1 </int>
- <real_array name="tracks/19/keys" len="24"> 0, 1, -0.849557, -0.741664, 5.51935, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.849557, -0.741664, 5.51935, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/20/type"> "transform" </string>
- <node_path name="tracks/20/path"> "Armature/Skeleton:hip" </node_path>
- <int name="tracks/20/interp"> 1 </int>
- <real_array name="tracks/20/keys" len="132"> 0, 1, 2.65402e-07, 1.83685, 0.489514, -5.25643e-15, 1.43922e-08, -0.0635436, 0.997979, 1, 1, 1, 0.05, 1, 2.56992e-07, 1.7811, 0.489514, -1.96073e-14, 1.43922e-08, -0.0635436, 0.997979, 1, 1, 1, 0.1, 1, 2.44553e-07, 1.69876, 0.489514, -1.94961e-14, 1.43922e-08, -0.0635436, 0.997979, 1, 1, 1, 0.15, 1, 2.41683e-07, 1.67977, 0.489514, -4.43536e-14, 1.60316e-08, -0.070782, 0.997492, 1, 1, 1, 0.2, 1, 2.44743e-07, 1.70003, 0.489514, -3.42428e-14, 2.17962e-08, -0.0962332, 0.995359, 1, 1, 1, 0.25, 1, 2.50383e-07, 1.73738, 0.489514, -5.58716e-16, 2.56855e-08, -0.113405, 0.993549, 1, 1, 1, 0.3, 1, 2.57035e-07, 1.78143, 0.489514, -6.36206e-15, 2.33115e-08, -0.102924, 0.994689, 1, 1, 1, 0.35, 1, 2.62333e-07, 1.81652, 0.489514, -1.06935e-14, 1.84103e-08, -0.0812848, 0.996691, 1, 1, 1, 0.4, 1, 2.6496e-07, 1.83392, 0.489514, -2.45344e-14, 1.50179e-08, -0.0663065, 0.997799, 1, 1, 1, 0.45, 1, 2.65402e-07, 1.83685, 0.489514, -5.25643e-15, 1.43922e-08, -0.0635436, 0.997979, 1, 1, 1, 1.25, 1, 2.65402e-07, 1.83685, 0.489514, -5.25643e-15, 1.43922e-08, -0.0635436, 0.997979, 1, 1, 1 </real_array>
- <string name="tracks/21/type"> "transform" </string>
- <node_path name="tracks/21/path"> "Armature/Skeleton:waist" </node_path>
- <int name="tracks/21/interp"> 1 </int>
- <real_array name="tracks/21/keys" len="120"> 0, 1, -4.65684e-10, 7.57313e-10, 0, -8.93894e-16, 2.55708e-08, -0.112898, 0.993607, 1, 1, 1, 0.05, 1, -4.18389e-09, 6.71868e-09, -2.98023e-08, -0.00385828, -0.000945429, -0.112898, 0.993599, 1, 1, 1, 0.1, 1, -2.6989e-09, 6.71803e-09, -2.98023e-08, -0.0118093, -0.00289381, -0.11289, 0.993533, 1, 1, 1, 0.15, 1, -1.65698e-09, 6.19854e-09, -1.19209e-07, -0.0173041, -0.00424031, -0.112881, 0.993449, 1, 1, 1, 0.2, 1, 6.17568e-09, 2.79554e-08, -1.78814e-07, -0.0174121, -0.00426678, -0.11288, 0.993447, 1, 1, 1, 0.25, 1, -9.69976e-10, -3.44268e-09, -2.98023e-08, -0.013893, -0.00340444, -0.112887, 0.993505, 1, 1, 1, 0.35, 1, 8.55826e-09, 2.92274e-08, -2.98023e-08, -0.00310744, -0.000761444, -0.112898, 0.993601, 1, 1, 1, 0.4, 1, 2.05826e-09, 1.24848e-08, 0, -0.000452603, -0.000110883, -0.112898, 0.993606, 1, 1, 1, 0.45, 1, -4.65684e-10, 7.57313e-10, 0, -8.93894e-16, 2.55708e-08, -0.112898, 0.993607, 1, 1, 1, 1.25, 1, -4.65684e-10, 7.57313e-10, 0, -8.93894e-16, 2.55708e-08, -0.112898, 0.993607, 1, 1, 1 </real_array>
- <string name="tracks/22/type"> "transform" </string>
- <node_path name="tracks/22/path"> "Armature/Skeleton:chest" </node_path>
- <int name="tracks/22/interp"> 1 </int>
- <real_array name="tracks/22/keys" len="108"> 0, 1, -7.51303e-09, 2.23517e-08, -2.38419e-07, 2.43554e-09, -0.00270918, 0.0663084, 0.997796, 1, 1, 1, 0.05, 1, -5.41336e-11, 3.72529e-09, -2.38419e-07, -0.00158657, -0.00317713, 0.0662892, 0.997794, 1, 1, 1, 0.15, 1, -3.26683e-10, 0, 5.96046e-08, -0.00925885, -0.00543992, 0.0661937, 0.997749, 1, 1, 1, 0.2, 1, -2.06055e-09, 1.49012e-08, -2.38419e-07, -0.0112141, -0.00601653, 0.0661687, 0.997727, 1, 1, 1, 0.25, 1, 1.76951e-08, -3.72529e-09, -1.78814e-07, -0.0104022, -0.00577711, 0.0661791, 0.997737, 1, 1, 1, 0.35, 1, 7.20902e-09, 7.45058e-09, -1.19209e-07, -0.00273, -0.00351437, 0.0662752, 0.997791, 1, 1, 1, 0.4, 1, 4.13622e-10, 3.72529e-09, -1.78814e-07, -0.000405934, -0.00282891, 0.0663035, 0.997795, 1, 1, 1, 0.45, 1, -7.51303e-09, 2.23517e-08, -2.38419e-07, 2.43554e-09, -0.00270918, 0.0663084, 0.997796, 1, 1, 1, 1.25, 1, -7.51303e-09, 2.23517e-08, -2.38419e-07, 2.43554e-09, -0.00270918, 0.0663084, 0.997796, 1, 1, 1 </real_array>
- <string name="tracks/23/type"> "transform" </string>
- <node_path name="tracks/23/path"> "Armature/Skeleton:neck" </node_path>
- <int name="tracks/23/interp"> 1 </int>
- <real_array name="tracks/23/keys" len="24"> 0, 1, 4.48992e-09, -1.3411e-07, -1.07288e-06, -1.49012e-08, 7.81341e-10, 2.3736e-09, 1, 1, 1, 1, 1.25, 1, 4.48992e-09, -1.3411e-07, -1.07288e-06, -1.49012e-08, 7.81341e-10, 2.3736e-09, 1, 1, 1, 1 </real_array>
- <string name="tracks/24/type"> "transform" </string>
- <node_path name="tracks/24/path"> "Armature/Skeleton:headtracker" </node_path>
- <int name="tracks/24/interp"> 1 </int>
- <real_array name="tracks/24/keys" len="120"> 0, 1, -1.54592e-09, -2.38419e-07, -3.32948e-08, 0.0746069, -0.101992, 0.0306522, 0.99151, 1, 1, 1, 0.05, 1, -1.11768e-09, -1.19209e-07, -9.73232e-08, 0.0219469, -0.103542, 0.0251775, 0.994064, 1, 1, 1, 0.1, 1, 3.72477e-10, -2.98023e-07, -7.61356e-08, -0.0560921, -0.105311, 0.0169133, 0.992712, 1, 1, 1, 0.15, 1, 1.49005e-09, -3.8743e-07, -9.8953e-08, -0.0807068, -0.112423, 0.0155536, 0.990255, 1, 1, 1, 0.2, 1, 9.68555e-09, -1.78814e-07, -2.06754e-07, -0.0663987, -0.135548, 0.0221852, 0.988294, 1, 1, 1, 0.25, 1, 1.86265e-08, -2.68221e-07, -1.18744e-08, -0.0319373, -0.150579, 0.0303761, 0.987615, 1, 1, 1, 0.35, 1, 7.26442e-09, -6.85453e-07, 3.81842e-08, 0.0516026, -0.119052, 0.0329235, 0.990999, 1, 1, 1, 0.4, 1, -1.48637e-09, -2.38419e-07, -5.07571e-08, 0.0712567, -0.10465, 0.03106, 0.991467, 1, 1, 1, 0.45, 1, -1.54592e-09, -2.38419e-07, -3.32948e-08, 0.0746069, -0.101992, 0.0306522, 0.99151, 1, 1, 1, 1.25, 1, -1.54592e-09, -2.38419e-07, -3.32948e-08, 0.0746069, -0.101992, 0.0306522, 0.99151, 1, 1, 1 </real_array>
- <string name="tracks/25/type"> "transform" </string>
- <node_path name="tracks/25/path"> "Armature/Skeleton:head" </node_path>
- <int name="tracks/25/interp"> 1 </int>
- <real_array name="tracks/25/keys" len="24"> 0, 1, 3.53794e-09, -1.25496e-07, -8.33534e-08, 2.23517e-08, 1.01485e-10, -1.43572e-10, 1, 1, 1, 1, 1.25, 1, 3.53794e-09, -1.25496e-07, -8.33534e-08, 2.23517e-08, 1.01485e-10, -1.43572e-10, 1, 1, 1, 1 </real_array>
- <string name="tracks/26/type"> "transform" </string>
- <node_path name="tracks/26/path"> "Armature/Skeleton:vent" </node_path>
- <int name="tracks/26/interp"> 1 </int>
- <real_array name="tracks/26/keys" len="24"> 0, 1, 1.23685e-09, 2.38419e-07, -5.96046e-07, -2.32831e-09, -1.31362e-12, 1.19249e-11, 1, 1, 1, 1, 1.25, 1, 1.23685e-09, 2.38419e-07, -5.96046e-07, -2.32831e-09, -1.31362e-12, 1.19249e-11, 1, 1, 1, 1 </real_array>
-
- </resource>
- <resource type="Animation" path="local://14">
- <string name="resource/name"> "jump-up-cycle" </string>
- <real name="length"> 0.416667 </real>
- <bool name="loop"> True </bool>
- <real name="step"> 0.1 </real>
- <string name="tracks/0/type"> "transform" </string>
- <node_path name="tracks/0/path"> "Armature/Skeleton:r-arm" </node_path>
- <int name="tracks/0/interp"> 1 </int>
- <real_array name="tracks/0/keys" len="120"> 0, 1, 6.55651e-07, -3.57628e-07, 5.66244e-07, 0.208387, -0.176945, -0.0164982, 0.961766, 1, 1, 1, 0.05, 1, 6.85453e-07, -2.38419e-07, 4.17233e-07, 0.211256, -0.175803, -0.0179009, 0.961324, 1, 1, 1, 0.1, 1, 6.55651e-07, -2.38419e-07, 3.27826e-07, 0.216682, -0.174684, -0.0207438, 0.960263, 1, 1, 1, 0.15, 1, 6.25849e-07, -3.57628e-07, 6.25849e-07, 0.219812, -0.176984, -0.0232576, 0.959072, 1, 1, 1, 0.25, 1, 1.3113e-06, -9.53674e-07, 9.23872e-07, 0.223631, -0.219998, -0.0262768, 0.949157, 1, 1, 1, 0.3, 1, 8.9407e-07, -4.76837e-07, 6.85453e-07, 0.220416, -0.21329, -0.0232336, 0.951517, 1, 1, 1, 0.35, 1, 8.34465e-07, -3.57628e-07, 6.25849e-07, 0.214429, -0.195082, -0.0193009, 0.956865, 1, 1, 1, 0.4, 1, 8.34465e-07, -3.57628e-07, 6.25849e-07, 0.209436, -0.180062, -0.0169379, 0.960951, 1, 1, 1, 0.45, 1, 6.55651e-07, -3.57628e-07, 5.66244e-07, 0.208387, -0.176945, -0.0164982, 0.961766, 1, 1, 1, 1.25, 1, 6.55651e-07, -3.57628e-07, 5.66244e-07, 0.208387, -0.176945, -0.0164982, 0.961766, 1, 1, 1 </real_array>
- <string name="tracks/1/type"> "transform" </string>
- <node_path name="tracks/1/path"> "Armature/Skeleton:r-forearm" </node_path>
- <int name="tracks/1/interp"> 1 </int>
- <real_array name="tracks/1/keys" len="108"> 0, 1, 5.06639e-07, -8.64267e-07, -8.9407e-07, -0.0797867, 0.0313898, -0.00372185, 0.996311, 1, 1, 1, 0.05, 1, -5.96046e-08, -4.76837e-07, -3.57628e-07, -0.0735466, 0.0175489, -0.00298843, 0.997133, 1, 1, 1, 0.2, 1, 2.98023e-07, -9.83477e-07, -5.36442e-07, -0.0401349, -0.0767179, 0.000985969, 0.996244, 1, 1, 1, 0.25, 1, -2.98023e-08, -6.25849e-07, -4.17233e-07, -0.0324823, -0.0976145, 0.00230383, 0.994691, 1, 1, 1, 0.3, 1, 2.08616e-07, -9.53674e-07, -6.55651e-07, -0.0445163, -0.0629722, 0.000635031, 0.997022, 1, 0.999999, 1, 0.35, 1, -1.49012e-07, -8.34465e-07, -4.17233e-07, -0.0633553, -0.0111982, -0.0018671, 0.997926, 1, 1, 1, 0.4, 1, 2.38419e-07, -8.64267e-07, -7.7486e-07, -0.0770585, 0.0244395, -0.00342743, 0.996721, 1, 1, 1, 0.45, 1, 5.06639e-07, -8.64267e-07, -8.9407e-07, -0.0797867, 0.0313898, -0.00372185, 0.996311, 1, 1, 1, 1.25, 1, 5.06639e-07, -8.64267e-07, -8.9407e-07, -0.0797867, 0.0313898, -0.00372185, 0.996311, 1, 1, 1 </real_array>
- <string name="tracks/2/type"> "transform" </string>
- <node_path name="tracks/2/path"> "Armature/Skeleton:l-arm" </node_path>
- <int name="tracks/2/interp"> 1 </int>
- <real_array name="tracks/2/keys" len="132"> 0, 1, -1.19209e-07, -5.96046e-07, 5.36442e-07, -0.488489, -0.631801, -0.249807, 0.547542, 1, 1, 1, 0.05, 1, -1.49012e-07, -7.15256e-07, 5.96046e-07, -0.474017, -0.625071, -0.244485, 0.569931, 1, 1, 0.999999, 0.1, 1, -5.96046e-07, -3.57628e-07, 6.25849e-07, -0.454842, -0.607865, -0.232791, 0.607805, 1, 1, 0.999999, 0.15, 1, -6.25849e-07, -4.76837e-07, 6.85453e-07, -0.465321, -0.582319, -0.222366, 0.628437, 1, 1, 1, 0.2, 1, -3.8743e-07, -5.96046e-07, 6.25849e-07, -0.510621, -0.547625, -0.217789, 0.626052, 1, 1, 1, 0.25, 1, -5.96046e-07, -7.15256e-07, 2.98023e-07, -0.546434, -0.526096, -0.217482, 0.614275, 1, 1, 1, 0.3, 1, -3.57628e-07, -5.96046e-07, 6.85453e-07, -0.543207, -0.547611, -0.225218, 0.595252, 1, 1, 0.999999, 0.35, 1, -5.06639e-07, -5.96046e-07, 7.7486e-07, -0.516521, -0.594071, -0.238908, 0.568514, 1, 1, 1, 0.4, 1, -3.27826e-07, -5.96046e-07, 7.15256e-07, -0.493183, -0.625944, -0.248106, 0.550825, 1, 1, 1, 0.45, 1, -1.19209e-07, -5.96046e-07, 5.36442e-07, -0.488489, -0.631801, -0.249807, 0.547542, 1, 1, 1, 1.25, 1, -1.19209e-07, -5.96046e-07, 5.36442e-07, -0.488489, -0.631801, -0.249807, 0.547542, 1, 1, 1 </real_array>
- <string name="tracks/3/type"> "transform" </string>
- <node_path name="tracks/3/path"> "Armature/Skeleton:l-forearm" </node_path>
- <int name="tracks/3/interp"> 1 </int>
- <real_array name="tracks/3/keys" len="132"> 0, 1, -8.9407e-08, -5.96046e-07, -2.38419e-07, 0.170167, 0.120493, -0.091473, 0.973734, 1, 1, 1, 0.05, 1, -5.96046e-08, -5.36442e-07, -2.98023e-07, 0.191507, 0.15179, -0.0881411, 0.965669, 1, 1, 1, 0.1, 1, -2.98023e-08, -5.06639e-07, -1.19209e-07, 0.225056, 0.198248, -0.0838434, 0.950273, 1, 1, 1, 0.15, 1, -1.78814e-07, -6.85453e-07, -2.38419e-07, 0.242609, 0.209269, -0.0881917, 0.94317, 1, 1, 1, 0.2, 1, -3.27826e-07, -5.36442e-07, -1.19209e-07, 0.246276, 0.185328, -0.105902, 0.945403, 1, 1, 1, 0.25, 1, -4.76837e-07, -5.06639e-07, -7.7486e-07, 0.240434, 0.157542, -0.120519, 0.950183, 1, 1, 1, 0.3, 1, -8.9407e-08, -6.85453e-07, -2.98023e-07, 0.22081, 0.140399, -0.117544, 0.957974, 1, 0.999999, 1, 0.35, 1, -1.19209e-07, -7.7486e-07, -2.98023e-07, 0.191979, 0.127301, -0.104336, 0.967498, 1, 1, 1, 0.4, 1, -8.9407e-08, -6.55651e-07, -2.98023e-07, 0.173508, 0.121415, -0.0935976, 0.972827, 1, 1, 1, 0.45, 1, -8.9407e-08, -5.96046e-07, -2.38419e-07, 0.170167, 0.120493, -0.091473, 0.973734, 1, 1, 1, 1.25, 1, -8.9407e-08, -5.96046e-07, -2.38419e-07, 0.170167, 0.120493, -0.091473, 0.973734, 1, 1, 1 </real_array>
- <string name="tracks/4/type"> "transform" </string>
- <node_path name="tracks/4/path"> "Armature/Skeleton:r-thigh" </node_path>
- <int name="tracks/4/interp"> 1 </int>
- <real_array name="tracks/4/keys" len="120"> 0, 1, 0, 1.63913e-07, 1.93715e-07, -0.731646, -0.0455606, -0.00930311, 0.680097, 1, 1, 1, 0.05, 1, -8.9407e-08, 5.96046e-08, -3.57628e-07, -0.699019, -0.0340935, -0.0129449, 0.714172, 1, 1, 1, 0.1, 1, -8.9407e-08, 1.41561e-07, -2.83122e-07, -0.643626, -0.015991, -0.0189581, 0.764938, 1, 1, 1, 0.15, 1, -8.9407e-08, 3.72529e-08, -5.06639e-07, -0.617849, -0.00879986, -0.0226563, 0.785921, 1, 1, 1, 0.2, 1, -5.96046e-08, 9.68575e-08, 7.45058e-08, -0.628974, -0.00984708, -0.0265256, 0.776912, 1, 1, 1, 0.25, 1, -5.96046e-08, 9.68575e-08, -4.47035e-07, -0.653197, -0.0153019, -0.02661, 0.756565, 1, 1, 1, 0.35, 1, -2.98023e-08, 2.98023e-08, 2.98023e-07, -0.712225, -0.0376632, -0.0133416, 0.700813, 1, 1, 1, 0.4, 1, -2.98023e-08, 1.04308e-07, 1.63913e-07, -0.728798, -0.0444052, -0.00986262, 0.683216, 1, 1, 1, 0.45, 1, 0, 1.63913e-07, 1.93715e-07, -0.731646, -0.0455606, -0.00930311, 0.680097, 1, 1, 1, 1.25, 1, 0, 1.63913e-07, 1.93715e-07, -0.731646, -0.0455606, -0.00930311, 0.680097, 1, 1, 1 </real_array>
- <string name="tracks/5/type"> "transform" </string>
- <node_path name="tracks/5/path"> "Armature/Skeleton:r-leg" </node_path>
- <int name="tracks/5/interp"> 1 </int>
- <real_array name="tracks/5/keys" len="120"> 0, 1, -0.0436297, 0.0381679, -0.243318, 0.903835, 0.221183, 0.00392365, -0.366258, 1, 1, 1, 0.05, 1, -0.0436298, 0.0381678, -0.243318, 0.894017, 0.213358, 0.00409072, -0.393949, 1, 1, 1, 0.1, 1, -0.0436297, 0.0381675, -0.243318, 0.873591, 0.198684, 0.00402625, -0.444239, 1, 1, 1, 0.15, 1, -0.0436297, 0.0381679, -0.243318, 0.86099, 0.194348, 0.00472605, -0.470004, 1, 1, 1, 0.2, 1, -0.0436298, 0.038168, -0.243318, 0.866453, 0.209209, 0.00740134, -0.453251, 1, 1, 1, 0.25, 1, -0.0436297, 0.0381682, -0.243318, 0.877278, 0.223532, 0.00901692, -0.42466, 1, 1, 1, 0.35, 1, -0.0436297, 0.0381675, -0.243318, 0.89824, 0.222872, 0.00544398, -0.378765, 1, 1, 1, 0.4, 1, -0.0436297, 0.0381677, -0.243318, 0.90306, 0.22143, 0.0041485, -0.368015, 1, 1, 1, 0.45, 1, -0.0436297, 0.0381679, -0.243318, 0.903835, 0.221183, 0.00392365, -0.366258, 1, 1, 1, 1.25, 1, -0.0436297, 0.0381679, -0.243318, 0.903835, 0.221183, 0.00392365, -0.366258, 1, 1, 1 </real_array>
- <string name="tracks/6/type"> "transform" </string>
- <node_path name="tracks/6/path"> "Armature/Skeleton:r-foot" </node_path>
- <int name="tracks/6/interp"> 1 </int>
- <real_array name="tracks/6/keys" len="108"> 0, 1, 7.45058e-08, 1.19209e-07, -3.72529e-09, -0.278586, 0.162913, 0.049835, 0.94518, 1, 1, 1, 0.05, 1, 5.21541e-08, -1.19209e-07, 4.47035e-08, -0.263884, 0.163221, 0.0462377, 0.949519, 1, 1, 1, 0.15, 1, 3.72529e-08, 0, 2.98023e-08, -0.191844, 0.164134, 0.02867, 0.967178, 1, 1, 1, 0.2, 1, 9.68575e-08, 0, -7.45058e-09, -0.173312, 0.164214, 0.0241673, 0.970779, 1, 1, 1, 0.25, 1, 8.9407e-08, -3.57628e-07, 2.6077e-08, -0.181008, 0.164188, 0.0260364, 0.96933, 1, 1, 1, 0.35, 1, 7.45058e-08, 3.57628e-07, 7.45058e-09, -0.253238, 0.163417, 0.0436354, 0.952503, 1, 1, 1, 0.4, 1, 8.19564e-08, 2.38419e-07, 2.6077e-08, -0.274832, 0.162996, 0.0489163, 0.946312, 1, 1, 1, 0.45, 1, 7.45058e-08, 1.19209e-07, -3.72529e-09, -0.278586, 0.162913, 0.049835, 0.94518, 1, 1, 1, 1.25, 1, 7.45058e-08, 1.19209e-07, -3.72529e-09, -0.278586, 0.162913, 0.049835, 0.94518, 1, 1, 1 </real_array>
- <string name="tracks/7/type"> "transform" </string>
- <node_path name="tracks/7/path"> "Armature/Skeleton:l-thigh" </node_path>
- <int name="tracks/7/interp"> 1 </int>
- <real_array name="tracks/7/keys" len="120"> 0, 1, 0, 2.08616e-07, 1.49012e-08, 0.318341, 0.0708015, -0.00441775, 0.945318, 1, 1, 1, 0.05, 1, 0, 1.93715e-07, 3.42727e-07, 0.307147, 0.068999, -0.0035256, 0.949151, 1, 1, 1, 0.1, 1, 2.98023e-08, 2.01166e-07, 4.47035e-08, 0.292292, 0.0665824, -0.00232838, 0.954006, 1, 1, 1, 0.15, 1, 5.96046e-08, 1.04308e-07, -1.93715e-07, 0.272221, 0.0650766, -0.00188312, 0.96003, 1, 1, 1, 0.2, 1, 2.98023e-08, 2.23517e-08, -1.78814e-07, 0.232486, 0.0650023, -0.00182597, 0.970424, 1, 1, 1, 0.25, 1, 5.96046e-08, -1.49012e-08, -1.04308e-07, 0.226129, 0.0676028, -0.00263455, 0.971745, 1, 1, 1, 0.35, 1, -2.98023e-08, 5.21541e-08, 1.63913e-07, 0.288667, 0.069411, -0.00418897, 0.954901, 1, 1, 1, 0.4, 1, -2.98023e-08, 1.41561e-07, 1.93715e-07, 0.312853, 0.0704368, -0.0043685, 0.947176, 1, 1, 1, 0.45, 1, 0, 2.08616e-07, 1.49012e-08, 0.318341, 0.0708015, -0.00441775, 0.945318, 1, 1, 1, 1.25, 1, 0, 2.08616e-07, 1.49012e-08, 0.318341, 0.0708015, -0.00441775, 0.945318, 1, 1, 1 </real_array>
- <string name="tracks/8/type"> "transform" </string>
- <node_path name="tracks/8/path"> "Armature/Skeleton:l-leg" </node_path>
- <int name="tracks/8/interp"> 1 </int>
- <real_array name="tracks/8/keys" len="108"> 0, 1, 5.78584e-08, 5.96046e-08, 2.38419e-07, -0.0511448, -0.0112637, 0.00107338, 0.998627, 1, 1, 1, 0.05, 1, -2.94531e-08, -8.19564e-08, 1.78814e-07, -0.0669256, -0.012717, 0.000882011, 0.997677, 1, 1, 1, 0.1, 1, -3.07336e-08, -2.98023e-08, 3.57628e-07, -0.0875047, -0.0145704, 0.000627808, 0.996057, 1, 1, 1, 0.15, 1, 1.66474e-08, -8.9407e-08, 2.38419e-07, -0.12177, -0.0175352, 0.000386084, 0.992403, 1, 1, 1, 0.2, 1, 1.28057e-08, -1.49012e-08, 1.19209e-07, -0.196391, -0.0229446, -2.58925e-05, 0.980257, 1, 1, 1, 0.25, 1, -7.91624e-08, 8.9407e-08, 0, -0.21572, -0.0236374, -9.3472e-05, 0.976169, 1, 1, 1, 0.4, 1, 2.95695e-08, 6.70552e-08, 1.19209e-07, -0.060964, -0.012162, 0.00100229, 0.998065, 1, 1, 1, 0.45, 1, 5.78584e-08, 5.96046e-08, 2.38419e-07, -0.0511448, -0.0112637, 0.00107338, 0.998627, 1, 1, 1, 1.25, 1, 5.78584e-08, 5.96046e-08, 2.38419e-07, -0.0511448, -0.0112637, 0.00107338, 0.998627, 1, 1, 1 </real_array>
- <string name="tracks/9/type"> "transform" </string>
- <node_path name="tracks/9/path"> "Armature/Skeleton:l-foot" </node_path>
- <int name="tracks/9/interp"> 1 </int>
- <real_array name="tracks/9/keys" len="108"> 0, 1, 5.21541e-08, 1.19209e-07, -1.9744e-07, -0.285587, 0.0658082, 0.0159816, 0.955957, 1, 1, 1, 0.05, 1, 7.45058e-09, 1.19209e-07, -1.08033e-07, -0.295281, 0.0650349, 0.017475, 0.953034, 1, 1, 1, 0.15, 1, -2.23517e-08, 1.19209e-07, 2.98023e-08, -0.341727, 0.0611981, 0.0246725, 0.93748, 1, 1, 1, 0.2, 1, 5.21541e-08, 1.19209e-07, -1.19209e-07, -0.353427, 0.0601963, 0.0264969, 0.933147, 1, 1, 1, 0.25, 1, -1.49012e-08, 2.38419e-07, -4.84288e-08, -0.348577, 0.0606133, 0.0257401, 0.934964, 1, 1, 1, 0.35, 1, -7.45058e-09, 1.19209e-07, -7.45058e-09, -0.302251, 0.0644732, 0.0185506, 0.950865, 1, 1, 1, 0.4, 1, 5.21541e-08, 1.19209e-07, -8.19564e-08, -0.28807, 0.065611, 0.0163638, 0.955219, 1, 1, 1, 0.45, 1, 5.21541e-08, 1.19209e-07, -1.9744e-07, -0.285587, 0.0658082, 0.0159816, 0.955957, 1, 1, 1, 1.25, 1, 5.21541e-08, 1.19209e-07, -1.9744e-07, -0.285587, 0.0658082, 0.0159816, 0.955957, 1, 1, 1 </real_array>
- <string name="tracks/10/type"> "transform" </string>
- <node_path name="tracks/10/path"> "Armature/Skeleton:MASTER" </node_path>
- <int name="tracks/10/interp"> 1 </int>
- <real_array name="tracks/10/keys" len="24"> 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/11/type"> "transform" </string>
- <node_path name="tracks/11/path"> "Armature/Skeleton:HEAD" </node_path>
- <int name="tracks/11/interp"> 1 </int>
- <real_array name="tracks/11/keys" len="108"> 0, 1, 1.37965e-08, 0.0913706, -0.0102687, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 1.37965e-08, 0.0913706, 0.0826712, 0, 0, 0, 1, 1, 1, 1, 0.15, 1, 1.37965e-08, 0.0913706, 0.527418, 0, 0, 0, 1, 1, 1, 1, 0.2, 1, 1.37965e-08, 0.0913706, 0.640416, 0, 0, -7.10543e-15, 1, 1, 1, 1, 0.25, 1, 1.37965e-08, 0.0913706, 0.59344, 0, 0, 0, 1, 1, 1, 1, 0.35, 1, 1.37965e-08, 0.0913706, 0.149321, 0, 0, -7.10543e-15, 1, 1, 1, 1, 0.4, 1, 1.37965e-08, 0.0913706, 0.0135775, 0, 0, 0, 1, 1, 1, 1, 0.45, 1, 1.37965e-08, 0.0913706, -0.0102687, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 1.37965e-08, 0.0913706, -0.0102687, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/12/type"> "transform" </string>
- <node_path name="tracks/12/path"> "Armature/Skeleton:r-LEGCONTROL" </node_path>
- <int name="tracks/12/interp"> 1 </int>
- <real_array name="tracks/12/keys" len="108"> 0, 1, -0.142338, -0.579062, 1.09897, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -0.142338, -0.574357, 1.07628, 0, 0, 0, 1, 1, 1, 1, 0.15, 1, -0.142338, -0.551601, 0.966619, 0, 0, 0, 1, 1, 1, 1, 0.2, 1, -0.142338, -0.545802, 0.938678, 0, 0, 0, 1, 1, 1, 1, 0.25, 1, -0.142338, -0.54821, 0.950281, 0, 0, 0, 1, 1, 1, 1, 0.35, 1, -0.142338, -0.570965, 1.05993, 0, 0, 0, 1, 1, 1, 1, 0.4, 1, -0.142338, -0.577858, 1.09316, 0, 0, 0, 1, 1, 1, 1, 0.45, 1, -0.142338, -0.579062, 1.09897, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.142338, -0.579062, 1.09897, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/13/type"> "transform" </string>
- <node_path name="tracks/13/path"> "Armature/Skeleton:l-LEGCONTROL" </node_path>
- <int name="tracks/13/interp"> 1 </int>
- <real_array name="tracks/13/keys" len="108"> 0, 1, 0.133965, 0.921787, 0.705414, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 0.133965, 0.88632, 0.724279, 0, 0, 0, 1, 1, 1, 1, 0.1, 1, 0.133965, 0.833892, 0.752174, 0, 0, 0, 1, 1, 1, 1, 0.15, 1, 0.133965, 0.821796, 0.758611, 0, 0, 0, 1, 1, 1, 1, 0.2, 1, 0.133965, 0.834697, 0.751748, 0, 0, 0, 1, 1, 1, 1, 0.35, 1, 0.133965, 0.908846, 0.712298, 0, 0, 0, 1, 1, 1, 1, 0.4, 1, 0.133965, 0.919922, 0.706406, 0, 0, 0, 1, 1, 1, 1, 0.45, 1, 0.133965, 0.921787, 0.705414, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.133965, 0.921787, 0.705414, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/14/type"> "transform" </string>
- <node_path name="tracks/14/path"> "Armature/Skeleton:r-LEGORIENT" </node_path>
- <int name="tracks/14/interp"> 1 </int>
- <real_array name="tracks/14/keys" len="24"> 0, 1, 0.100474, 0.669825, -0.778672, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.100474, 0.669825, -0.778672, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/15/type"> "transform" </string>
- <node_path name="tracks/15/path"> "Armature/Skeleton:l-LEGORIENT" </node_path>
- <int name="tracks/15/interp"> 1 </int>
- <real_array name="tracks/15/keys" len="24"> 0, 1, -0.0204011, -0.122407, 5.96046e-08, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.0204011, -0.122407, 5.96046e-08, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/16/type"> "transform" </string>
- <node_path name="tracks/16/path"> "Armature/Skeleton:r-ARMCONTROL" </node_path>
- <int name="tracks/16/interp"> 1 </int>
- <real_array name="tracks/16/keys" len="120"> 0, 1, -0.868295, 0.267668, -0.820401, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -0.868295, 0.253357, -0.761204, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, -0.868295, 0.216179, -0.653431, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.15, 1, -0.868295, 0.157463, -0.585229, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.2, 1, -0.868295, 0.102061, -0.562116, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.25, 1, -0.868295, 0.10969, -0.583242, 0, 0, 0, 1, 1, 1, 1, 0.35, 1, -0.868295, 0.226187, -0.758093, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.4, 1, -0.868295, 0.261497, -0.811129, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.45, 1, -0.868295, 0.267668, -0.820401, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.868295, 0.267668, -0.820401, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/17/type"> "transform" </string>
- <node_path name="tracks/17/path"> "Armature/Skeleton:l-ARMCONTROL" </node_path>
- <int name="tracks/17/interp"> 1 </int>
- <real_array name="tracks/17/keys" len="108"> 0, 1, 2.08906, 2.18272, 3.23967, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 2.08906, 2.16545, 3.23967, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.15, 1, 2.08906, 2.08198, 3.23967, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.2, 1, 2.08906, 2.06071, 3.23967, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.25, 1, 2.08906, 2.06954, 3.23967, 0, 0, 0, 1, 1, 1, 1, 0.35, 1, 2.08906, 2.15301, 3.23967, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.4, 1, 2.08906, 2.1783, 3.23967, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.45, 1, 2.08906, 2.18272, 3.23967, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 2.08906, 2.18272, 3.23967, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/18/type"> "transform" </string>
- <node_path name="tracks/18/path"> "Armature/Skeleton:r-ARMORIENT" </node_path>
- <int name="tracks/18/interp"> 1 </int>
- <real_array name="tracks/18/keys" len="24"> 0, 1, 0.405204, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.405204, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/19/type"> "transform" </string>
- <node_path name="tracks/19/path"> "Armature/Skeleton:l-ARMORIENT" </node_path>
- <int name="tracks/19/interp"> 1 </int>
- <real_array name="tracks/19/keys" len="132"> 0, 1, -0.495073, -1.94554, 0.375148, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -0.529633, -1.94554, 0.375148, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, -0.616933, -1.94554, 0.375148, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.15, 1, -0.726325, -1.94554, 0.375148, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.2, 1, -0.813485, -1.94554, 0.375148, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.25, 1, -0.847955, -1.94554, 0.375148, 0, 0, 0, 1, 1, 1, 1, 0.3, 1, -0.773744, -1.94554, 0.375148, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.35, 1, -0.620743, -1.94554, 0.375148, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.4, 1, -0.514687, -1.94554, 0.375148, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.45, 1, -0.495073, -1.94554, 0.375148, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.495073, -1.94554, 0.375148, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/20/type"> "transform" </string>
- <node_path name="tracks/20/path"> "Armature/Skeleton:hip" </node_path>
- <int name="tracks/20/interp"> 1 </int>
- <real_array name="tracks/20/keys" len="132"> 0, 1, 0.050238, 0.697428, 0.108012, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1, 0.05, 1, 0.050238, 0.727833, 0.0877454, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1, 0.1, 1, 0.050238, 0.772783, 0.0577767, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1, 0.15, 1, 0.050238, 0.78451, 0.0674334, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1, 0.2, 1, 0.050238, 0.778496, 0.13139, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1, 0.25, 1, 0.050238, 0.766398, 0.174636, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1, 0.3, 1, 0.050238, 0.744412, 0.160603, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1, 0.35, 1, 0.050238, 0.716858, 0.131686, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1, 0.4, 1, 0.050238, 0.700317, 0.111698, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1, 0.45, 1, 0.050238, 0.697428, 0.108012, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1, 1.25, 1, 0.050238, 0.697428, 0.108012, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1 </real_array>
- <string name="tracks/21/type"> "transform" </string>
- <node_path name="tracks/21/path"> "Armature/Skeleton:waist" </node_path>
- <int name="tracks/21/interp"> 1 </int>
- <real_array name="tracks/21/keys" len="24"> 0, 1, 7.45059e-09, -5.21541e-08, 2.38419e-07, 0.126301, -0.0110499, -0.0864524, 0.988156, 1, 1, 1, 1.25, 1, 7.45059e-09, -5.21541e-08, 2.38419e-07, 0.126301, -0.0110499, -0.0864524, 0.988156, 1, 1, 1 </real_array>
- <string name="tracks/22/type"> "transform" </string>
- <node_path name="tracks/22/path"> "Armature/Skeleton:chest" </node_path>
- <int name="tracks/22/interp"> 1 </int>
- <real_array name="tracks/22/keys" len="24"> 0, 1, -2.26918e-09, 5.21541e-08, -1.78814e-07, 0.0237758, -0.0135633, -0.0860939, 0.995911, 1, 1, 1, 1.25, 1, -2.26918e-09, 5.21541e-08, -1.78814e-07, 0.0237758, -0.0135633, -0.0860939, 0.995911, 1, 1, 1 </real_array>
- <string name="tracks/23/type"> "transform" </string>
- <node_path name="tracks/23/path"> "Armature/Skeleton:neck" </node_path>
- <int name="tracks/23/interp"> 1 </int>
- <real_array name="tracks/23/keys" len="24"> 0, 1, -1.11758e-08, -2.23517e-07, -1.43051e-06, -7.45058e-09, -4.4605e-10, 4.26538e-09, 1, 1, 1, 1, 1.25, 1, -1.11758e-08, -2.23517e-07, -1.43051e-06, -7.45058e-09, -4.4605e-10, 4.26538e-09, 1, 1, 1, 1 </real_array>
- <string name="tracks/24/type"> "transform" </string>
- <node_path name="tracks/24/path"> "Armature/Skeleton:headtracker" </node_path>
- <int name="tracks/24/interp"> 1 </int>
- <real_array name="tracks/24/keys" len="108"> 0, 1, 1.02445e-08, -4.47035e-07, -1.05007e-07, 0.287287, -0.0941088, 0.0255168, 0.952869, 1, 1, 1, 0.05, 1, -2.68222e-08, -2.98023e-08, -7.10133e-08, 0.277009, -0.0944548, 0.024506, 0.9559, 1, 1, 1, 0.15, 1, -2.42144e-08, -3.57628e-07, -3.39933e-08, 0.229614, -0.0956923, 0.0198279, 0.968363, 1, 1, 1, 0.2, 1, -1.22934e-08, -1.78814e-07, 1.30385e-08, 0.224057, -0.0957887, 0.0192787, 0.969665, 1, 1, 1, 0.25, 1, -3.91156e-08, 1.19209e-07, -4.79631e-08, 0.233664, -0.0955615, 0.0202274, 0.967399, 1, 1, 1, 0.35, 1, -3.35279e-09, -3.27826e-07, -4.61005e-08, 0.274341, -0.0944949, 0.024241, 0.956671, 1, 1, 1, 0.4, 1, -1.67641e-09, -2.68221e-07, -8.21892e-08, 0.285395, -0.0941665, 0.0253304, 0.953436, 1, 1, 1, 0.45, 1, 1.02445e-08, -4.47035e-07, -1.05007e-07, 0.287287, -0.0941088, 0.0255168, 0.952869, 1, 1, 1, 1.25, 1, 1.02445e-08, -4.47035e-07, -1.05007e-07, 0.287287, -0.0941088, 0.0255168, 0.952869, 1, 1, 1 </real_array>
- <string name="tracks/25/type"> "transform" </string>
- <node_path name="tracks/25/path"> "Armature/Skeleton:head" </node_path>
- <int name="tracks/25/interp"> 1 </int>
- <real_array name="tracks/25/keys" len="24"> 0, 1, -7.74519e-09, -9.56934e-08, 3.16533e-07, 7.45058e-09, 3.37575e-10, -1.99442e-09, 1, 1, 1, 1, 1.25, 1, -7.74519e-09, -9.56934e-08, 3.16533e-07, 7.45058e-09, 3.37575e-10, -1.99442e-09, 1, 1, 1, 1 </real_array>
- <string name="tracks/26/type"> "transform" </string>
- <node_path name="tracks/26/path"> "Armature/Skeleton:vent" </node_path>
- <int name="tracks/26/interp"> 1 </int>
- <real_array name="tracks/26/keys" len="24"> 0, 1, 3.38022e-08, 0.00292349, 0.20433, 6.98492e-10, 2.45226e-11, 6.71222e-11, 1, 1, 1, 1, 1.25, 1, 3.38022e-08, 0.00292349, 0.20433, 6.98492e-10, 2.45226e-11, 6.71222e-11, 1, 1, 1, 1 </real_array>
-
- </resource>
- <main_resource>
- <dictionary name="_bundled" shared="false">
- <string> "names" </string>
- <string_array len="248">
- <string> "player" </string>
- <string> "RigidBody" </string>
- <string> "shape_count" </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> "mode" </string>
- <string> "mass" </string>
- <string> "friction" </string>
- <string> "bounce" </string>
- <string> "custom_integrator" </string>
- <string> "continuous_cd" </string>
- <string> "contacts_reported" </string>
- <string> "contact_monitor" </string>
- <string> "active" </string>
- <string> "can_sleep" </string>
- <string> "velocity/linear" </string>
- <string> "velocity/angular" </string>
- <string> "script/script" </string>
- <string> "__meta__" </string>
- <string> "collision_capsule" </string>
- <string> "CollisionShape" </string>
- <string> "transform/local" </string>
- <string> "shape" </string>
- <string> "trigger" </string>
- <string> "collision_ray" </string>
- <string> "target" </string>
- <string> "Spatial" </string>
- <string> "camera" </string>
- <string> "Camera" </string>
- <string> "projection" </string>
- <string> "fov" </string>
- <string> "near" </string>
- <string> "far" </string>
- <string> "vaspect" </string>
- <string> "current" </string>
- <string> "visible_layers" </string>
- <string> "environment" </string>
- <string> "min_distance" </string>
- <string> "max_distance" </string>
- <string> "angle_v_adjust" </string>
- <string> "autoturn_ray_aperture" </string>
- <string> "autoturn_speed" </string>
- <string> "Armature" </string>
- <string> "Skeleton" </string>
- <string> "bones/0/name" </string>
- <string> "bones/0/parent" </string>
- <string> "bones/0/rest" </string>
- <string> "bones/0/enabled" </string>
- <string> "bones/0/bound_childs" </string>
- <string> "bones/1/name" </string>
- <string> "bones/1/parent" </string>
- <string> "bones/1/rest" </string>
- <string> "bones/1/enabled" </string>
- <string> "bones/1/bound_childs" </string>
- <string> "bones/2/name" </string>
- <string> "bones/2/parent" </string>
- <string> "bones/2/rest" </string>
- <string> "bones/2/enabled" </string>
- <string> "bones/2/bound_childs" </string>
- <string> "bones/3/name" </string>
- <string> "bones/3/parent" </string>
- <string> "bones/3/rest" </string>
- <string> "bones/3/enabled" </string>
- <string> "bones/3/bound_childs" </string>
- <string> "bones/4/name" </string>
- <string> "bones/4/parent" </string>
- <string> "bones/4/rest" </string>
- <string> "bones/4/enabled" </string>
- <string> "bones/4/bound_childs" </string>
- <string> "bones/5/name" </string>
- <string> "bones/5/parent" </string>
- <string> "bones/5/rest" </string>
- <string> "bones/5/enabled" </string>
- <string> "bones/5/bound_childs" </string>
- <string> "bones/6/name" </string>
- <string> "bones/6/parent" </string>
- <string> "bones/6/rest" </string>
- <string> "bones/6/enabled" </string>
- <string> "bones/6/bound_childs" </string>
- <string> "bones/7/name" </string>
- <string> "bones/7/parent" </string>
- <string> "bones/7/rest" </string>
- <string> "bones/7/enabled" </string>
- <string> "bones/7/bound_childs" </string>
- <string> "bones/8/name" </string>
- <string> "bones/8/parent" </string>
- <string> "bones/8/rest" </string>
- <string> "bones/8/enabled" </string>
- <string> "bones/8/bound_childs" </string>
- <string> "bones/9/name" </string>
- <string> "bones/9/parent" </string>
- <string> "bones/9/rest" </string>
- <string> "bones/9/enabled" </string>
- <string> "bones/9/bound_childs" </string>
- <string> "bones/10/name" </string>
- <string> "bones/10/parent" </string>
- <string> "bones/10/rest" </string>
- <string> "bones/10/enabled" </string>
- <string> "bones/10/bound_childs" </string>
- <string> "bones/11/name" </string>
- <string> "bones/11/parent" </string>
- <string> "bones/11/rest" </string>
- <string> "bones/11/enabled" </string>
- <string> "bones/11/bound_childs" </string>
- <string> "bones/12/name" </string>
- <string> "bones/12/parent" </string>
- <string> "bones/12/rest" </string>
- <string> "bones/12/enabled" </string>
- <string> "bones/12/bound_childs" </string>
- <string> "bones/13/name" </string>
- <string> "bones/13/parent" </string>
- <string> "bones/13/rest" </string>
- <string> "bones/13/enabled" </string>
- <string> "bones/13/bound_childs" </string>
- <string> "bones/14/name" </string>
- <string> "bones/14/parent" </string>
- <string> "bones/14/rest" </string>
- <string> "bones/14/enabled" </string>
- <string> "bones/14/bound_childs" </string>
- <string> "bones/15/name" </string>
- <string> "bones/15/parent" </string>
- <string> "bones/15/rest" </string>
- <string> "bones/15/enabled" </string>
- <string> "bones/15/bound_childs" </string>
- <string> "bones/16/name" </string>
- <string> "bones/16/parent" </string>
- <string> "bones/16/rest" </string>
- <string> "bones/16/enabled" </string>
- <string> "bones/16/bound_childs" </string>
- <string> "bones/17/name" </string>
- <string> "bones/17/parent" </string>
- <string> "bones/17/rest" </string>
- <string> "bones/17/enabled" </string>
- <string> "bones/17/bound_childs" </string>
- <string> "bones/18/name" </string>
- <string> "bones/18/parent" </string>
- <string> "bones/18/rest" </string>
- <string> "bones/18/enabled" </string>
- <string> "bones/18/bound_childs" </string>
- <string> "bones/19/name" </string>
- <string> "bones/19/parent" </string>
- <string> "bones/19/rest" </string>
- <string> "bones/19/enabled" </string>
- <string> "bones/19/bound_childs" </string>
- <string> "bones/20/name" </string>
- <string> "bones/20/parent" </string>
- <string> "bones/20/rest" </string>
- <string> "bones/20/enabled" </string>
- <string> "bones/20/bound_childs" </string>
- <string> "bones/21/name" </string>
- <string> "bones/21/parent" </string>
- <string> "bones/21/rest" </string>
- <string> "bones/21/enabled" </string>
- <string> "bones/21/bound_childs" </string>
- <string> "bones/22/name" </string>
- <string> "bones/22/parent" </string>
- <string> "bones/22/rest" </string>
- <string> "bones/22/enabled" </string>
- <string> "bones/22/bound_childs" </string>
- <string> "bones/23/name" </string>
- <string> "bones/23/parent" </string>
- <string> "bones/23/rest" </string>
- <string> "bones/23/enabled" </string>
- <string> "bones/23/bound_childs" </string>
- <string> "bones/24/name" </string>
- <string> "bones/24/parent" </string>
- <string> "bones/24/rest" </string>
- <string> "bones/24/enabled" </string>
- <string> "bones/24/bound_childs" </string>
- <string> "bones/25/name" </string>
- <string> "bones/25/parent" </string>
- <string> "bones/25/rest" </string>
- <string> "bones/25/enabled" </string>
- <string> "bones/25/bound_childs" </string>
- <string> "bones/26/name" </string>
- <string> "bones/26/parent" </string>
- <string> "bones/26/rest" </string>
- <string> "bones/26/enabled" </string>
- <string> "bones/26/bound_childs" </string>
- <string> "robot" </string>
- <string> "MeshInstance" </string>
- <string> "layers" </string>
- <string> "geometry/visible" </string>
- <string> "geometry/material_override" </string>
- <string> "geometry/cast_shadow" </string>
- <string> "geometry/receive_shadows" </string>
- <string> "geometry/range_begin" </string>
- <string> "geometry/range_end" </string>
- <string> "geometry/billboard" </string>
- <string> "geometry/billboard_y" </string>
- <string> "geometry/depth_scale" </string>
- <string> "geometry/visible_in_all_rooms" </string>
- <string> "mesh/mesh" </string>
- <string> "bullet" </string>
- <string> "Position3D" </string>
- <string> "sfx" </string>
- <string> "SpatialSamplePlayer" </string>
- <string> "params/volume_db" </string>
- <string> "params/pitch_scale" </string>
- <string> "params/attenuation/min_distance" </string>
- <string> "params/attenuation/max_distance" </string>
- <string> "params/attenuation/distance_exp" </string>
- <string> "params/emission_cone/degrees" </string>
- <string> "params/emission_cone/attenuation_db" </string>
- <string> "config/polyphony" </string>
- <string> "config/samples" </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/shooting" </string>
- <string> "anims/falling-cycle" </string>
- <string> "anims/default" </string>
- <string> "anims/run-cycle" </string>
- <string> "anims/walk-cycle" </string>
- <string> "anims/shooting_standing" </string>
- <string> "anims/jump-up-cycle" </string>
- <string> "playback/active" </string>
- <string> "playback/speed" </string>
- <string> "blend_times" </string>
- <string> "autoplay" </string>
- <string> "AnimationTreePlayer" </string>
- <string> "base_path" </string>
- <string> "master_player" </string>
- <string> "data" </string>
- <string> "fwd" </string>
- <string> "TouchScreenButton" </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> "normal" </string>
- <string> "pressed" </string>
- <string> "bitmask" </string>
- <string> "passby_press" </string>
- <string> "action" </string>
- <string> "visibility_mode" </string>
- <string> "bwd" </string>
- <string> "left" </string>
- <string> "right" </string>
- </string_array>
- <string> "version" </string>
- <int> 1 </int>
- <string> "conn_count" </string>
- <int> 0 </int>
- <string> "node_count" </string>
- <int> 16 </int>
- <string> "variants" </string>
- <array len="121" shared="false">
- <int> 2 </int>
- <resource resource_type="Shape" path="local://1"> </resource>
- <transform> 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0.954765, 0 </transform>
- <bool> False </bool>
- <resource resource_type="Shape" path="local://2"> </resource>
- <transform> 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 1.01236, 0 </transform>
- <real> 1 </real>
- <real> 0 </real>
- <bool> True </bool>
- <int> 3 </int>
- <vector3> 0, 0, 0 </vector3>
- <resource resource_type="Script" path="res://player.gd"> </resource>
- <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> "zfar" </string>
- <real> 500 </real>
- <string> "fov" </string>
- <real> 400 </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> "show_origin" </string>
- <bool> True </bool>
- <string> "znear" </string>
- <real> 0.1 </real>
- </dictionary>
- </dictionary>
- <string> "__editor_run_settings__" </string>
- <dictionary shared="false">
- <string> "custom_args" </string>
- <string> "-l $scene" </string>
- <string> "run_mode" </string>
- <int> 0 </int>
- </dictionary>
- <string> "__editor_plugin_screen__" </string>
- <string> "3D" </string>
- </dictionary>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.95244, 0 </transform>
- <transform> 1, 0, 0, 0, 0.871263, 0.490817, 0, -0.490817, 0.871263, 0, 2.59805, 1.25672 </transform>
- <int> 0 </int>
- <real> 70 </real>
- <real> 0.1 </real>
- <real> 100 </real>
- <int> -1 </int>
- <resource name=""></resource> <resource resource_type="Script" path="res://follow_camera.gd"> </resource>
- <real> 3 </real>
- <int> 25 </int>
- <int> 50 </int>
- <transform> 0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0, 0, 0 </transform>
- <string> "MASTER" </string>
- <transform> 1, 0, -0, 0, 7.54979e-08, 1, -0, -1, 7.54979e-08, 0, -0.011277, -0 </transform>
- <array len="0" shared="false">
- </array>
- <string> "hip" </string>
- <transform> 1, -1.50996e-07, -3.60002e-14, -1.50996e-07, -1, -3.01992e-07, 9.59926e-15, 3.01992e-07, -1, -3.38813e-21, 2.58363e-07, 2.10612 </transform>
- <string> "waist" </string>
- <int> 1 </int>
- <transform> 1, 1.50996e-07, 1.80001e-14, -1.50996e-07, 1, 0, -1.80001e-14, 0, 1, 3.38813e-21, 2.84217e-14, -0.384614 </transform>
- <string> "chest" </string>
- <transform> 1, -7.31455e-16, 4.86029e-17, 7.28861e-16, 0.999166, 0.040823, -7.84198e-17, -0.040823, 0.999166, 0, 4.84022e-11, -0.8217 </transform>
- <string> "neck" </string>
- <transform> -1, -1.10548e-06, -9.37766e-09, 1.08766e-06, -0.985328, 0.170671, -1.97913e-07, 0.170671, 0.985328, -1.64727e-13, 5.96046e-08, -1.24906 </transform>
- <string> "headtracker" </string>
- <int> 4 </int>
- <transform> 1, 9.87793e-08, -1.09789e-06, 1.09743e-06, 0.00449866, 0.99999, 1.03717e-07, -0.99999, 0.00449866, 0, 5.96046e-08, -0.491774 </transform>
- <string> "head" </string>
- <int> 5 </int>
- <transform> -1, 2.36978e-07, 1.97097e-07, -2.5035e-07, -0.25144, -0.967873, -1.79807e-07, -0.967873, 0.25144, -2.94648e-10, 4.76837e-07, 0.00400549 </transform>
- <string> "vent" </string>
- <int> 6 </int>
- <transform> 1, -2.54965e-07, -1.4699e-08, 2.55005e-07, 0.999996, 0.00282324, 1.39791e-08, -0.00282325, 0.999996, -7.04808e-08, 0.270992, -1.2429 </transform>
- <string> "r-arm" </string>
- <transform> 0.11477, -0.699489, -0.705367, -0.802661, -0.483653, 0.349021, -0.585289, 0.526113, -0.616961, 0.940786, 0.107144, -0.773564 </transform>
- <string> "r-forearm" </string>
- <int> 8 </int>
- <transform> -0.859542, 0.0564943, 0.507934, 0.107631, -0.951571, 0.287973, 0.499604, 0.302194, 0.811834, 2.38419e-07, -4.76837e-07, -0.935513 </transform>
- <string> "l-arm" </string>
- <transform> 0.11477, 0.699489, 0.705367, 0.802661, -0.483653, 0.349021, 0.585289, 0.526113, -0.616961, -0.940786, 0.107144, -0.773564 </transform>
- <string> "l-forearm" </string>
- <int> 10 </int>
- <transform> -0.859542, -0.0564943, -0.507934, -0.107631, -0.951571, 0.287973, -0.499604, 0.302194, 0.811834, -2.38419e-07, -4.76837e-07, -0.935513 </transform>
- <string> "r-thigh" </string>
- <transform> 0.994883, -0.0545632, -0.085028, -0.0580629, -0.997541, -0.0392442, -0.0826777, 0.0439804, -0.995605, 0.349652, 0.0628238, -0.163877 </transform>
- <string> "r-leg" </string>
- <int> 12 </int>
- <transform> -0.999508, -0.031366, -0.000870243, 0.0312939, -0.994411, -0.100835, 0.00229738, -0.100812, 0.994903, 5.96046e-08, 5.96046e-08, -0.644636 </transform>
- <string> "r-foot" </string>
- <int> 13 </int>
- <transform> 0.996208, -0.0766666, -0.0411273, -0.0442384, -0.0393329, -0.998246, 0.0749145, 0.996281, -0.0425754, -5.96046e-08, 4.19095e-09, -1.43073 </transform>
- <string> "l-thigh" </string>
- <transform> 0.994883, 0.0545632, 0.085028, 0.0580633, -0.997541, -0.0392452, 0.0826776, 0.0439813, -0.995606, -0.349652, 0.0628238, -0.163877 </transform>
- <string> "l-leg" </string>
- <int> 15 </int>
- <transform> -0.999508, 0.0313662, 0.000870456, -0.0312941, -0.994411, -0.100836, -0.00229725, -0.100814, 0.994903, 0, 1.49012e-08, -0.644636 </transform>
- <string> "l-foot" </string>
- <int> 16 </int>
- <transform> 0.996208, 0.0766668, 0.0411275, 0.0442386, -0.0393327, -0.998246, -0.0749147, 0.996281, -0.0425752, 0, -8.3819e-09, -1.43073 </transform>
- <string> "HEAD" </string>
- <transform> 1, -1.50996e-07, -0, -1.50996e-07, -1, 0, 0, 0, -1, 5.68434e-14, -5.79659, 6.35228 </transform>
- <string> "r-LEGCONTROL" </string>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.518863, 3.72276e-07, 0.204768 </transform>
- <string> "l-LEGCONTROL" </string>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.518863, 3.72276e-07, 0.204768 </transform>
- <string> "r-LEGORIENT" </string>
- <transform> -1, -1.50996e-07, -5.03577e-15, -3.75647e-14, 2.15429e-07, 1, -1.50996e-07, 1, -2.15429e-07, 0.411677, -0.66395, 1.62881 </transform>
- <string> "l-LEGORIENT" </string>
- <transform> -1, -1.50996e-07, -5.03577e-15, -3.75647e-14, 2.15429e-07, 1, -1.50996e-07, 1, -2.15429e-07, -0.411677, -0.66395, 1.62881 </transform>
- <string> "r-ARMCONTROL" </string>
- <transform> 1, 0, 0, 0, 7.54979e-08, -1, 0, 1, 7.54979e-08, 2.62535, -0.186879, 2.59016 </transform>
- <string> "l-ARMCONTROL" </string>
- <transform> 1, 0, 0, 0, 7.54979e-08, -1, 0, 1, 7.54979e-08, -2.62535, -0.186879, 2.59016 </transform>
- <string> "r-ARMORIENT" </string>
- <transform> 1, 0, 0, 0, 7.54979e-08, -1, 0, 1, 7.54979e-08, 1.57185, 0.510255, 3.44768 </transform>
- <string> "l-ARMORIENT" </string>
- <transform> 1, 0, 0, 0, 7.54979e-08, -1, 0, 1, 7.54979e-08, -1.57185, 0.510255, 3.44768 </transform>
- <resource resource_type="Mesh" path="local://5"> </resource>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.94071, 3.64079, 3.3802 </transform>
- <real> 180 </real>
- <real> -6 </real>
- <resource resource_type="SampleLibrary" path="local://6"> </resource>
- <node_path> ".." </node_path>
- <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>
- <resource resource_type="Animation" path="local://13"> </resource>
- <resource resource_type="Animation" path="local://14"> </resource>
- <string> "" </string>
- <node_path> "../AnimationPlayer" </node_path>
- <dictionary shared="false">
- <string> "connections" </string>
- <array len="27" shared="false">
- <string> "walk" </string>
- <string> "scale" </string>
- <int> 0 </int>
- <string> "scale" </string>
- <string> "state" </string>
- <int> 0 </int>
- <string> "anim 3" </string>
- <string> "state" </string>
- <int> 1 </int>
- <string> "anim 4" </string>
- <string> "state" </string>
- <int> 2 </int>
- <string> "gun" </string>
- <string> "out" </string>
- <int> 0 </int>
- <string> "state" </string>
- <string> "gun" </string>
- <int> 0 </int>
- <string> "anim 5" </string>
- <string> "gun" </string>
- <int> 1 </int>
- <string> "anim" </string>
- <string> "walk" </string>
- <int> 0 </int>
- <string> "anim 2" </string>
- <string> "walk" </string>
- <int> 1 </int>
- </array>
- <string> "master" </string>
- <node_path> "../AnimationPlayer" </node_path>
- <string> "active" </string>
- <bool> True </bool>
- <string> "nodes" </string>
- <array len="10" shared="false">
- <dictionary shared="false">
- <string> "id" </string>
- <string> "scale" </string>
- <string> "scale" </string>
- <real> 1.2 </real>
- <string> "pos" </string>
- <vector2> 247, 68 </vector2>
- <string> "type" </string>
- <string> "timescale" </string>
- </dictionary>
- <dictionary shared="false">
- <string> "id" </string>
- <string> "state" </string>
- <string> "transitions" </string>
- <array len="3" shared="false">
- <dictionary shared="false">
- <string> "auto_advance" </string>
- <bool> False </bool>
- </dictionary>
- <dictionary shared="false">
- <string> "auto_advance" </string>
- <bool> False </bool>
- </dictionary>
- <dictionary shared="false">
- <string> "auto_advance" </string>
- <bool> False </bool>
- </dictionary>
- </array>
- <string> "xfade" </string>
- <real> 0.1 </real>
- <string> "type" </string>
- <string> "transition" </string>
- <string> "pos" </string>
- <vector2> 359, 132 </vector2>
- </dictionary>
- <dictionary shared="false">
- <string> "from" </string>
- <string> "idle" </string>
- <string> "id" </string>
- <string> "anim" </string>
- <string> "pos" </string>
- <vector2> 7, 70 </vector2>
- <string> "type" </string>
- <string> "animation" </string>
- </dictionary>
- <dictionary shared="false">
- <string> "id" </string>
- <string> "out" </string>
- <string> "type" </string>
- <string> "output" </string>
- <string> "pos" </string>
- <vector2> 579, 114 </vector2>
- </dictionary>
- <dictionary shared="false">
- <string> "from" </string>
- <string> "shooting_standing" </string>
- <string> "id" </string>
- <string> "anim 5" </string>
- <string> "pos" </string>
- <vector2> 331, 242 </vector2>
- <string> "type" </string>
- <string> "animation" </string>
- </dictionary>
- <dictionary shared="false">
- <string> "from" </string>
- <string> "jump-up-cycle" </string>
- <string> "id" </string>
- <string> "anim 3" </string>
- <string> "pos" </string>
- <vector2> 143, 144 </vector2>
- <string> "type" </string>
- <string> "animation" </string>
- </dictionary>
- <dictionary shared="false">
- <string> "from" </string>
- <string> "walk-cycle" </string>
- <string> "id" </string>
- <string> "anim 2" </string>
- <string> "pos" </string>
- <vector2> 7, 152 </vector2>
- <string> "type" </string>
- <string> "animation" </string>
- </dictionary>
- <dictionary shared="false">
- <string> "id" </string>
- <string> "gun" </string>
- <string> "blend" </string>
- <real> 1 </real>
- <string> "filter" </string>
- <array len="22" shared="false">
- <node_path> "Armature/Skeleton:MASTER" </node_path>
- <node_path> "Armature/Skeleton:l-thigh" </node_path>
- <node_path> "Armature/Skeleton:headtracker" </node_path>
- <node_path> "Armature/Skeleton:r-foot" </node_path>
- <node_path> "Armature/Skeleton:r-leg" </node_path>
- <node_path> "Armature/Skeleton:waist" </node_path>
- <node_path> "Armature/Skeleton:r-ARMCONTROL" </node_path>
- <node_path> "Armature/Skeleton:r-ARMORIENT" </node_path>
- <node_path> "Armature/Skeleton:r-LEGCONTROL" </node_path>
- <node_path> "Armature/Skeleton:r-LEGORIENT" </node_path>
- <node_path> "Armature/Skeleton:hip" </node_path>
- <node_path> "Armature/Skeleton:l-foot" </node_path>
- <node_path> "Armature/Skeleton:l-leg" </node_path>
- <node_path> "Armature/Skeleton:neck" </node_path>
- <node_path> "Armature" </node_path>
- <node_path> "Armature/Skeleton:l-ARMCONTROL" </node_path>
- <node_path> "Armature/Skeleton:l-ARMORIENT" </node_path>
- <node_path> "Armature/Skeleton:l-LEGCONTROL" </node_path>
- <node_path> "Armature/Skeleton:l-LEGORIENT" </node_path>
- <node_path> "Armature/Skeleton:HEAD" </node_path>
- <node_path> "Armature/Skeleton:head" </node_path>
- <node_path> "Armature/Skeleton:r-thigh" </node_path>
- </array>
- <string> "type" </string>
- <string> "blend2" </string>
- <string> "pos" </string>
- <vector2> 469, 127 </vector2>
- </dictionary>
- <dictionary shared="false">
- <string> "from" </string>
- <string> "falling-cycle" </string>
- <string> "id" </string>
- <string> "anim 4" </string>
- <string> "pos" </string>
- <vector2> 141, 230 </vector2>
- <string> "type" </string>
- <string> "animation" </string>
- </dictionary>
- <dictionary shared="false">
- <string> "id" </string>
- <string> "walk" </string>
- <string> "blend" </string>
- <real> 1 </real>
- <string> "filter" </string>
- <array len="0" shared="false">
- </array>
- <string> "type" </string>
- <string> "blend2" </string>
- <string> "pos" </string>
- <vector2> 148, 46 </vector2>
- </dictionary>
- </array>
- </dictionary>
- <vector2> 72, 301 </vector2>
- <vector2> 1, 1 </vector2>
- <resource resource_type="Texture" path="res://osb_up.png"> </resource>
- <string> "move_forward" </string>
- <vector2> 72, 365 </vector2>
- <resource resource_type="Texture" path="res://osb_down.png"> </resource>
- <string> "move_backwards" </string>
- <vector2> 29, 332 </vector2>
- <resource resource_type="Texture" path="res://osb_left.png"> </resource>
- <string> "move_left" </string>
- <vector2> 108, 327 </vector2>
- <resource resource_type="Texture" path="res://osb_right.png"> </resource>
- <string> "move_right" </string>
- </array>
- <string> "nodes" </string>
- <int_array len="654"> -1, -1, 1, 0, -1, 21, 2, 0, 3, 1, 4, 2, 5, 3, 6, 4, 7, 5, 8, 3, 9, 0, 10, 6, 11, 7, 12, 7, 13, 8, 14, 3, 15, 9, 16, 8, 17, 8, 18, 8, 19, 10, 20, 10, 21, 11, 22, 12, 0, 0, 0, 24, 23, -1, 3, 25, 2, 26, 1, 27, 3, 0, 0, 0, 24, 28, -1, 3, 25, 5, 26, 4, 27, 3, 0, 0, 0, 30, 29, -1, 1, 25, 13, 0, 3, 0, 32, 31, -1, 15, 25, 14, 33, 15, 34, 16, 35, 17, 36, 18, 37, 3, 38, 3, 39, 19, 40, 20, 21, 21, 41, 6, 42, 22, 43, 7, 44, 23, 45, 24, 0, 0, 0, 30, 46, -1, 1, 25, 25, 0, 5, 0, 47, 47, -1, 135, 48, 26, 49, 19, 50, 27, 51, 8, 52, 28, 53, 29, 54, 15, 55, 30, 56, 8, 57, 28, 58, 31, 59, 32, 60, 33, 61, 8, 62, 28, 63, 34, 64, 0, 65, 35, 66, 8, 67, 28, 68, 36, 69, 9, 70, 37, 71, 8, 72, 28, 73, 38, 74, 39, 75, 40, 76, 8, 77, 28, 78, 41, 79, 42, 80, 43, 81, 8, 82, 28, 83, 44, 84, 45, 85, 46, 86, 8, 87, 28, 88, 47, 89, 9, 90, 48, 91, 8, 92, 28, 93, 49, 94, 50, 95, 51, 96, 8, 97, 28, 98, 52, 99, 9, 100, 53, 101, 8, 102, 28, 103, 54, 104, 55, 105, 56, 106, 8, 107, 28, 108, 57, 109, 32, 110, 58, 111, 8, 112, 28, 113, 59, 114, 60, 115, 61, 116, 8, 117, 28, 118, 62, 119, 63, 120, 64, 121, 8, 122, 28, 123, 65, 124, 32, 125, 66, 126, 8, 127, 28, 128, 67, 129, 68, 130, 69, 131, 8, 132, 28, 133, 70, 134, 71, 135, 72, 136, 8, 137, 28, 138, 73, 139, 15, 140, 74, 141, 8, 142, 28, 143, 75, 144, 15, 145, 76, 146, 8, 147, 28, 148, 77, 149, 15, 150, 78, 151, 8, 152, 28, 153, 79, 154, 15, 155, 80, 156, 8, 157, 28, 158, 81, 159, 15, 160, 82, 161, 8, 162, 28, 163, 83, 164, 15, 165, 84, 166, 8, 167, 28, 168, 85, 169, 15, 170, 86, 171, 8, 172, 28, 173, 87, 174, 15, 175, 88, 176, 8, 177, 28, 178, 89, 179, 15, 180, 90, 181, 8, 182, 28, 0, 6, 0, 184, 183, -1, 12, 185, 32, 186, 8, 187, 20, 188, 8, 189, 8, 190, 7, 191, 7, 192, 3, 193, 3, 194, 3, 195, 3, 196, 91, 0, 5, 0, 198, 197, -1, 1, 25, 92, 0, 0, 0, 200, 199, -1, 9, 201, 7, 202, 6, 203, 6, 204, 18, 205, 6, 206, 93, 207, 94, 208, 32, 209, 95, 0, 0, 0, 210, 210, -1, 15, 211, 32, 212, 7, 213, 96, 214, 97, 215, 98, 216, 99, 217, 100, 218, 101, 219, 102, 220, 103, 221, 104, 222, 8, 223, 6, 224, 28, 225, 105, 0, 0, 0, 226, 226, -1, 3, 227, 96, 228, 106, 229, 107, 0, 0, 0, 231, 230, -1, 13, 232, 8, 233, 6, 234, 6, 235, 3, 236, 108, 237, 7, 238, 109, 239, 110, 240, 20, 241, 20, 242, 8, 243, 111, 244, 32, 0, 0, 0, 231, 245, -1, 13, 232, 8, 233, 6, 234, 6, 235, 3, 236, 112, 237, 7, 238, 109, 239, 113, 240, 20, 241, 20, 242, 8, 243, 114, 244, 32, 0, 0, 0, 231, 246, -1, 13, 232, 8, 233, 6, 234, 6, 235, 3, 236, 115, 237, 7, 238, 109, 239, 116, 240, 20, 241, 20, 242, 8, 243, 117, 244, 32, 0, 0, 0, 231, 247, -1, 13, 232, 8, 233, 6, 234, 6, 235, 3, 236, 118, 237, 7, 238, 109, 239, 119, 240, 20, 241, 20, 242, 8, 243, 120, 244, 32, 0 </int_array>
- <string> "conns" </string>
- <int_array len="0"> </int_array>
- </dictionary>
-
- </main_resource>
-</resource_file> \ No newline at end of file
diff --git a/demos/3d/platformer/robotrigged.scn b/demos/3d/platformer/robotrigged.scn
index e54125a07e..68af0cfe47 100644
--- a/demos/3d/platformer/robotrigged.scn
+++ b/demos/3d/platformer/robotrigged.scn
Binary files differ
diff --git a/demos/3d/platformer/stage.scn b/demos/3d/platformer/stage.scn
new file mode 100644
index 0000000000..7eafda5888
--- /dev/null
+++ b/demos/3d/platformer/stage.scn
Binary files differ
diff --git a/demos/3d/platformer/stage.xml b/demos/3d/platformer/stage.xml
deleted file mode 100644
index 37a11068c9..0000000000
--- a/demos/3d/platformer/stage.xml
+++ /dev/null
@@ -1,697 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<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://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>
- <real name="ambient_light/energy"> 1 </real>
- <bool name="fxaa/enabled"> False </bool>
- <int name="background/mode"> 4 </int>
- <color name="background/color"> 0, 0, 0, 1 </color>
- <nil name="background/texture"> </nil>
- <resource name="background/cubemap" resource_type="CubeMap" path="res://sb.cube"> </resource>
- <real name="background/energy"> 1 </real>
- <real name="background/scale"> 1 </real>
- <real name="background/glow"> 0.6 </real>
- <bool name="glow/enabled"> True </bool>
- <int name="glow/blur_passes"> 2 </int>
- <real name="glow/blur_scale"> 1.3 </real>
- <real name="glow/blur_strength"> 1.2 </real>
- <int name="glow/blur_blend_mode"> 1 </int>
- <real name="glow/bloom"> 0 </real>
- <real name="glow/bloom_treshold"> 0.5 </real>
- <bool name="dof_blur/enabled"> False </bool>
- <int name="dof_blur/blur_passes"> 1 </int>
- <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/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>
- <real name="hdr/max_luminance"> 8 </real>
- <real name="hdr/exposure_adj_speed"> 2 </real>
- <bool name="fog/enabled"> True </bool>
- <real name="fog/begin"> 10 </real>
- <color name="fog/begin_color"> 0, 0.773632, 0.985852, 1 </color>
- <color name="fog/end_color"> 0, 0, 0, 1 </color>
- <real name="fog/attenuation"> 0.965936 </real>
- <bool name="fog/bg"> True </bool>
- <bool name="bcs/enabled"> False </bool>
- <real name="bcs/brightness"> 1 </real>
- <real name="bcs/contrast"> 1 </real>
- <real name="bcs/saturation"> 1.608 </real>
- <bool name="srgb/enabled"> False </bool>
-
- </resource>
- <main_resource>
- <dictionary name="_bundled" shared="false">
- <string> "names" </string>
- <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>
- <string> "theme/bake" </string>
- <string> "lighting/bake" </string>
- <string> "cell/size" </string>
- <string> "cell/octant_size" </string>
- <string> "cell/center_x" </string>
- <string> "cell/center_y" </string>
- <string> "cell/center_z" </string>
- <string> "cell/scale" </string>
- <string> "data" </string>
- <string> "DirectionalLight" </string>
- <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>
- <string> "colors/specular" </string>
- <string> "shadow/shadow" </string>
- <string> "shadow/darkening" </string>
- <string> "shadow/z_offset" </string>
- <string> "shadow/z_slope_scale" </string>
- <string> "shadow/esm_multiplier" </string>
- <string> "shadow/blur_passes" </string>
- <string> "projector" </string>
- <string> "operator" </string>
- <string> "shadow/mode" </string>
- <string> "shadow/max_distance" </string>
- <string> "shadow/split_weight" </string>
- <string> "shadow/zoffset_scale" </string>
- <string> "environment" </string>
- <string> "WorldEnvironment" </string>
- <string> "coins" </string>
- <string> "Node" </string>
- <string> "coin" </string>
- <string> "Area" </string>
- <string> "coin 2" </string>
- <string> "coin 3" </string>
- <string> "coin 3 2" </string>
- <string> "coin 4" </string>
- <string> "coin 4 2" </string>
- <string> "coin 4 3" </string>
- <string> "coin 3 3" </string>
- <string> "coin 5" </string>
- <string> "coin 4 4" </string>
- <string> "coin 3 4" </string>
- <string> "coin 4 4 2" </string>
- <string> "coin 6" </string>
- <string> "coin 4 5" </string>
- <string> "coin 3 5" </string>
- <string> "coin 4 5 2" </string>
- <string> "coin 4 4 3" </string>
- <string> "coin 3 5 2" </string>
- <string> "coin 6 2" </string>
- <string> "coin 4 5 3" </string>
- <string> "coin 7" </string>
- <string> "coin 4 6" </string>
- <string> "coin 6 3" </string>
- <string> "coin 3 5 3" </string>
- <string> "coin 4 4 4" </string>
- <string> "coin 3 6" </string>
- <string> "coin 4 5 4" </string>
- <string> "coin 4 5 4 2" </string>
- <string> "coin 8" </string>
- <string> "coin 4 4 5" </string>
- <string> "coin 4 7" </string>
- <string> "coin 6 4" </string>
- <string> "coin 3 5 4" </string>
- <string> "coin 4 5 5" </string>
- <string> "coin 3 7" </string>
- <string> "coin 4 5 4 3" </string>
- <string> "coin 9" </string>
- <string> "coin 4 4 6" </string>
- <string> "coin 4 8" </string>
- <string> "coin 4 5 6" </string>
- <string> "coin 3 5 5" </string>
- <string> "coin 6 5" </string>
- <string> "coin 3 8" </string>
- <string> "coin 4 5 4 4" </string>
- <string> "enemies" </string>
- <string> "enemy" </string>
- <string> "RigidBody" </string>
- <string> "enemy 2" </string>
- <string> "enemy 3" </string>
- <string> "enemy 4" </string>
- <string> "player" </string>
- </string_array>
- <string> "version" </string>
- <int> 1 </int>
- <string> "conn_count" </string>
- <int> 0 </int>
- <string> "node_count" </string>
- <int> 55 </int>
- <string> "variants" </string>
- <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">
- <string> "2D" </string>
- <dictionary shared="false">
- <string> "pixel_snap" </string>
- <bool> False </bool>
- <string> "zoom" </string>
- <real> 1 </real>
- <string> "use_snap" </string>
- <bool> False </bool>
- <string> "ofs" </string>
- <vector2> 1, 1 </vector2>
- <string> "snap" </string>
- <int> 10 </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>
- <real> 179 </real>
- <string> "viewports" </string>
- <array len="4" shared="false">
- <dictionary shared="false">
- <string> "distance" </string>
- <real> 9.009935 </real>
- <string> "x_rot" </string>
- <real> 0.458294 </real>
- <string> "y_rot" </string>
- <real> -1.2 </real>
- <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>
- <dictionary shared="false">
- <string> "distance" </string>
- <real> 4 </real>
- <string> "x_rot" </string>
- <real> 0 </real>
- <string> "y_rot" </string>
- <real> 0 </real>
- <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>
- <dictionary shared="false">
- <string> "distance" </string>
- <real> 4 </real>
- <string> "x_rot" </string>
- <real> 0 </real>
- <string> "y_rot" </string>
- <real> 0 </real>
- <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>
- <dictionary shared="false">
- <string> "distance" </string>
- <real> 4 </real>
- <string> "x_rot" </string>
- <real> 0 </real>
- <string> "y_rot" </string>
- <real> 0 </real>
- <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>
- </array>
- <string> "viewport_mode" </string>
- <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>
- <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>
- <resource resource_type="MeshLibrary" path="res://tiles.res"> </resource>
- <bool> False </bool>
- <real> 2 </real>
- <int> 4 </int>
- <real> 1.001 </real>
- <dictionary shared="false">
- <string> "cells" </string>
- <int_array len="5133"> 3, 0, 1048584, 12, 0, 1441800, 65539, 0, 1048584, 65548, 0, 1441800, 131075, 0, 1048578, 131084, 0, 1441800, 196611, 0, 1048578, 196620, 0, 1441800, 262147, 0, 1048578, 262156, 0, 1441800, 327683, 0, 1048584, 327692, 0, 1441794, 393219, 0, 1048584, 393228, 0, 1441794, 458752, 0, 655367, 458753, 0, 655367, 458754, 0, 655367, 458755, 0, 655367, 458764, 0, 1441794, 524286, 0, 655367, 524287, 0, 655367, 524300, 0, 1441798, -65533, 0, 1048579, -65532, 0, 1441799, -65531, 0, 1441799, -65530, 0, 1441799, -65529, 0, 1441799, -65528, 0, 1441799, -65527, 0, 1441799, -65526, 0, 1441799, -65525, 0, 1441799, -65524, 0, 1441800, 3, 1, 1048584, 12, 1, 1441800, 29, 1, 8, 30, 1, 8, 31, 1, 8, 65539, 1, 1048584, 65548, 1, 1441800, 65560, 1, 655366, 65561, 1, 655366, 65562, 1, 655366, 65563, 1, 655366, 65564, 1, 655365, 65565, 1, 6, 65566, 1, 6, 65567, 1, 6, 65568, 1, 655366, 65569, 1, 655365, 131075, 1, 1048578, 131084, 1, 1441800, 196611, 1, 1048578, 196620, 1, 1441800, 262147, 1, 1048578, 262156, 1, 1441800, 327683, 1, 1048584, 327692, 1, 1441794, 393219, 1, 1048584, 393228, 1, 1441794, 458752, 1, 655367, 458753, 1, 655367, 458754, 1, 655367, 458755, 1, 655367, 458764, 1, 1441794, 524285, 1, 655367, 524286, 1, 655367, 524287, 1, 655367, 524300, 1, 1441798, -65533, 1, 1048579, -65532, 1, 1441799, -65531, 1, 1441799, -65530, 1, 1441799, -65529, 1, 1441799, -65528, 1, 1441799, -65527, 1, 1441799, -65526, 1, 1441799, -65525, 1, 1441799, -65524, 1, 1441800, -65507, 1, 3, -65506, 1, 3, -65505, 1, 3, 3, 2, 1048584, 5, 2, 1441797, 6, 2, 655365, 8, 2, 1441801, 9, 2, 655368, 10, 2, 655368, 11, 2, 655368, 12, 2, 1441800, 28, 2, 1048584, 32, 2, 9, 65539, 2, 1048584, 65544, 2, 1441797, 65545, 2, 655366, 65546, 2, 655366, 65547, 2, 655366, 65548, 2, 1441800, 65564, 2, 655369, 65568, 2, 5, 65569, 2, 1048583, 65570, 2, 655365, 131075, 2, 1048578, 131084, 2, 1441800, 131100, 2, 655369, 196611, 2, 1048578, 196620, 2, 1441800, 196632, 2, 655366, 196633, 2, 655366, 196634, 2, 655366, 196635, 2, 655366, 196636, 2, 655365, 262147, 2, 1048578, 262156, 2, 1441800, 327683, 2, 1048584, 327692, 2, 1441794, 393219, 2, 1048584, 393228, 2, 1441794, 458752, 2, 655367, 458753, 2, 655367, 458754, 2, 655367, 458755, 2, 655367, 458764, 2, 1441794, 524285, 2, 655367, 524286, 2, 655367, 524287, 2, 655367, 524300, 2, 1441798, -65533, 2, 1048579, -65532, 2, 1048583, -65531, 2, 1441796, -65530, 2, 655364, -65529, 2, 1441799, -65528, 2, 1441796, -65527, 2, 655363, -65526, 2, 655363, -65525, 2, 655363, -65524, 2, 1441800, -65508, 2, 1048579, -65507, 2, 1441799, -65506, 2, 1441799, -65505, 2, 1441799, -65504, 2, 4, 3, 3, 1048584, 5, 3, 5, 6, 3, 1048581, 8, 3, 9, 9, 3, 8, 10, 3, 8, 11, 3, 8, 12, 3, 1441800, 28, 3, 1048585, 33, 3, 9, 65539, 3, 1048584, 65544, 3, 5, 65545, 3, 6, 65546, 3, 6, 65547, 3, 6, 65548, 3, 1441800, 65564, 3, 1048585, 65569, 3, 5, 65570, 3, 1048583, 65571, 3, 655365, 131075, 3, 1048578, 131084, 3, 1441800, 131100, 3, 1048585, 196611, 3, 1048578, 196620, 3, 1441800, 196632, 3, 655363, 196633, 3, 655363, 196634, 3, 655363, 196635, 3, 655364, 196636, 3, 1048581, 262147, 3, 1048578, 262156, 3, 1441800, 262168, 3, 655366, 262169, 3, 655366, 262170, 3, 655366, 262171, 3, 655365, 327683, 3, 1048584, 327692, 3, 1441794, 393219, 3, 1048584, 393228, 3, 1441794, 458752, 3, 655367, 458753, 3, 655366, 458754, 3, 655366, 458755, 3, 655367, 458764, 3, 1441794, 458771, 3, 1048578, 524284, 3, 655367, 524285, 3, 655367, 524286, 3, 655367, 524287, 3, 655367, 524300, 3, 1441798, -65533, 3, 1048579, -65532, 3, 1048583, -65531, 3, 4, -65530, 3, 1048580, -65529, 3, 1441799, -65528, 3, 4, -65527, 3, 3, -65526, 3, 3, -65525, 3, 3, -65524, 3, 1441800, -65508, 3, 1048580, -65507, 3, 1441799, -65506, 3, 1441799, -65505, 3, 1441799, -65504, 3, 1441799, -65503, 3, 4, 3, 4, 1048584, 12, 4, 1441800, 27, 4, 1048584, 34, 4, 1441800, 65539, 4, 1048584, 65548, 4, 1441800, 65563, 4, 1048584, 65570, 4, 1048583, 65571, 4, 1048582, 131075, 4, 1048578, 131084, 4, 9, 131085, 4, 3, 131086, 4, 3, 131087, 4, 3, 131088, 4, 3, 131089, 4, 3, 131090, 4, 3, 131099, 4, 1048584, 196611, 4, 1048578, 196620, 4, 9, 196621, 4, 8, 196622, 4, 8, 196623, 4, 8, 196624, 4, 8, 196625, 4, 8, 196626, 4, 8, 196635, 4, 1048584, 262147, 4, 1048578, 262156, 4, 1441800, 262168, 4, 655363, 262169, 4, 655363, 262170, 4, 655364, 262171, 4, 1048582, 327680, 4, 8, 327681, 4, 8, 327682, 4, 8, 327683, 4, 1048580, 327691, 4, 1441808, 327692, 4, 9, 327693, 4, 3, 327694, 4, 3, 327695, 4, 3, 327696, 4, 3, 327697, 4, 3, 393216, 4, 8, 393217, 4, 8, 393218, 4, 8, 393219, 4, 1048585, 393228, 4, 9, 393229, 4, 2, 393230, 4, 2, 393231, 4, 2, 393232, 4, 2, 393233, 4, 2, 458752, 4, 6, 458753, 4, 6, 458754, 4, 6, 458755, 4, 1048581, 458764, 4, 1441800, 458771, 4, 1048578, 458774, 4, 1048583, 458775, 4, 1048583, 458776, 4, 1048583, 458777, 4, 1048583, 458778, 4, 1048582, 524284, 4, 655367, 524285, 4, 655367, 524286, 4, 655367, 524287, 4, 1048583, 524300, 4, 1441798, 524307, 4, 1048582, -65533, 4, 1048579, -65532, 4, 7, -65531, 4, 7, -65530, 4, 7, -65529, 4, 7, -65528, 4, 1441799, -65527, 4, 1441799, -65526, 4, 1441799, -65525, 4, 1441799, -65524, 4, 1441800, -65509, 4, 1048579, -65508, 4, 1441799, -65507, 4, 1441799, -65506, 4, 1441799, -65505, 4, 1441799, -65504, 4, 1441799, -65503, 4, 1441799, -65502, 4, 1441795, 3, 5, 1048584, 11, 5, 1441801, 27, 5, 1048584, 34, 5, 9, 65538, 5, 3, 65539, 5, 1048580, 65547, 5, 1441801, 65563, 5, 1048584, 65570, 5, 5, 65571, 5, 1048582, 131074, 5, 2, 131075, 5, 1048585, 131083, 5, 1441797, 131084, 5, 7, 131085, 5, 7, 131086, 5, 7, 131087, 5, 7, 131088, 5, 7, 131089, 5, 7, 131090, 5, 7, 131091, 5, 1441795, 131099, 5, 1048584, 196610, 5, 2, 196611, 5, 1048585, 196627, 5, 1441800, 196635, 5, 1048584, 262146, 5, 2, 262147, 5, 1048585, 262156, 5, 1441806, 262157, 5, 1, 262158, 5, 1, 262159, 5, 1, 262160, 5, 1, 262161, 5, 655361, 262162, 5, 655361, 262170, 5, 1048584, 262171, 5, 1048582, 327680, 5, 655366, 327681, 5, 1441798, 327682, 5, 6, 327683, 5, 1048581, 327692, 5, 1441798, 327693, 5, 7, 327694, 5, 7, 327695, 5, 7, 327696, 5, 7, 327697, 5, 1048583, 327698, 5, 1441795, 393215, 5, 1048584, 393234, 5, 1441794, 458751, 5, 1048584, 458764, 5, 1441806, 458765, 5, 655361, 458766, 5, 655361, 458767, 5, 655361, 458768, 5, 655361, 458769, 5, 655361, 458771, 5, 1048578, 458773, 5, 1048583, 458774, 5, 1048583, 458775, 5, 1048583, 458776, 5, 1048583, 458777, 5, 1048583, 458778, 5, 1048582, 524283, 5, 655367, 524284, 5, 655367, 524285, 5, 655367, 524286, 5, 655367, 524287, 5, 1048582, 524300, 5, 1441798, 524301, 5, 1441799, 524302, 5, 1441799, 524303, 5, 1441799, 524304, 5, 1441799, 524305, 5, 1441799, 524306, 5, 1441799, 524307, 5, 1048582, -65533, 5, 1048579, -65532, 5, 7, -65531, 5, 7, -65530, 5, 7, -65529, 5, 1048583, -65528, 5, 1441799, -65527, 5, 1441799, -65526, 5, 1441799, -65525, 5, 1441801, -65509, 5, 1048579, -65508, 5, 1441799, -65507, 5, 1441799, -65506, 5, 1441799, -65505, 5, 1441799, -65504, 5, 1441799, -65503, 5, 1441799, -65502, 5, 4, 2, 6, 655368, 3, 6, 655368, 4, 6, 655369, 11, 6, 1441794, 27, 6, 1048584, 35, 6, 1441800, 65537, 6, 1048579, 65538, 6, 655366, 65539, 6, 655366, 65540, 6, 655365, 65547, 6, 1441794, 65563, 6, 1048584, 65571, 6, 1441798, 131073, 6, 1048584, 131083, 6, 1441798, 131084, 6, 7, 131085, 6, 7, 131086, 6, 7, 131087, 6, 7, 131088, 6, 7, 131089, 6, 7, 131090, 6, 7, 131091, 6, 1441795, 131099, 6, 1048584, 196609, 6, 1048584, 196627, 6, 1441800, 196635, 6, 1048584, 262145, 6, 1048584, 262156, 6, 1441806, 262157, 6, 1, 262158, 6, 1, 262159, 6, 1, 262160, 6, 1, 262161, 6, 655361, 262162, 6, 655361, 262170, 6, 1048584, 262171, 6, 1048582, 327680, 6, 1441799, 327681, 6, 1048582, 327692, 6, 1441798, 327693, 6, 7, 327694, 6, 7, 327695, 6, 7, 327696, 6, 7, 327697, 6, 1048583, 327698, 6, 1441795, 393215, 6, 1048584, 393234, 6, 1441794, 458751, 6, 1048584, 458764, 6, 1441806, 458765, 6, 655361, 458766, 6, 655361, 458767, 6, 655361, 458768, 6, 655361, 458769, 6, 655361, 458771, 6, 1048578, 458773, 6, 1048583, 458774, 6, 1048583, 458775, 6, 1048583, 458776, 6, 1048583, 458777, 6, 1048583, 458778, 6, 1048582, 524283, 6, 655367, 524284, 6, 655367, 524285, 6, 655367, 524286, 6, 655367, 524287, 6, 1048582, 524300, 6, 1441798, 524301, 6, 1441799, 524302, 6, 1441799, 524303, 6, 1441799, 524304, 6, 1441799, 524305, 6, 1441799, 524306, 6, 1441799, 524307, 6, 1048582, -65534, 6, 655363, -65533, 6, 655363, -65532, 6, 655364, -65531, 6, 655367, -65530, 6, 655367, -65529, 6, 1048583, -65528, 6, 7, -65527, 6, 1441799, -65526, 6, 1441799, -65525, 6, 1441795, -65509, 6, 1048579, -65508, 6, 1441799, -65507, 6, 1441799, -65506, 6, 1441799, -65505, 6, 1441799, -65504, 6, 1441799, -65503, 6, 1441799, -65502, 6, 1441799, -65501, 6, 1441800, 4, 7, 1048584, 6, 7, 11, 11, 7, 9, 27, 7, 1048584, 35, 7, 1441800, 65537, 7, 1048579, 65538, 7, 1441799, 65539, 7, 1441799, 65540, 7, 1048582, 65542, 7, 12, 65547, 7, 9, 65563, 7, 1048584, 65571, 7, 1441798, 131073, 7, 1048584, 131078, 7, 1441804, 131083, 7, 5, 131084, 7, 7, 131085, 7, 1441796, 131086, 7, 655363, 131087, 7, 655363, 131088, 7, 655364, 131089, 7, 7, 131090, 7, 7, 131091, 7, 1441795, 131099, 7, 1048584, 196609, 7, 1048584, 196614, 7, 13, 196621, 7, 1441801, 196622, 7, 655362, 196623, 7, 655362, 196624, 7, 655369, 196627, 7, 1441800, 196635, 7, 1048584, 262145, 7, 1048584, 262156, 7, 1441806, 262157, 7, 1441806, 262158, 7, 1, 262159, 7, 1, 262160, 7, 1, 262161, 7, 655361, 262162, 7, 655361, 262170, 7, 1048584, 262171, 7, 1048582, 327680, 7, 1441799, 327681, 7, 1048582, 327691, 7, 1441809, 327692, 7, 1441801, 327693, 7, 655363, 327694, 7, 655363, 327695, 7, 655363, 327696, 7, 655364, 327697, 7, 1048583, 327698, 7, 1441795, 393215, 7, 1048584, 393228, 7, 1441801, 393229, 7, 655368, 393230, 7, 655368, 393231, 7, 655368, 393232, 7, 655369, 393234, 7, 1441794, 458751, 7, 1048584, 458764, 7, 1441800, 458768, 7, 655361, 458769, 7, 655361, 458771, 7, 1048578, 458774, 7, 1048583, 458775, 7, 1048583, 458776, 7, 1048583, 458777, 7, 1048583, 458778, 7, 1048582, 524282, 7, 655367, 524283, 7, 655367, 524284, 7, 655367, 524285, 7, 655367, 524286, 7, 655367, 524287, 7, 1048582, 524300, 7, 1441798, 524301, 7, 1441799, 524302, 7, 1441799, 524303, 7, 1441799, 524304, 7, 1441799, 524305, 7, 1441799, 524306, 7, 1441799, 524307, 7, 1048582, -65532, 7, 1048579, -65531, 7, 1048583, -65530, 7, 10, -65529, 7, 1441799, -65528, 7, 1441799, -65527, 7, 1441799, -65526, 7, 1441799, -65525, 7, 4, -65509, 7, 1048579, -65508, 7, 1441799, -65507, 7, 1441799, -65506, 7, 1441799, -65505, 7, 1441799, -65504, 7, 1441799, -65503, 7, 1441799, -65502, 7, 1441799, -65501, 7, 1441800, 2, 8, 3, 3, 8, 3, 4, 8, 1048585, 12, 8, 1441800, 27, 8, 1048584, 35, 8, 1441800, 65537, 8, 1048579, 65538, 8, 6, 65539, 8, 6, 65540, 8, 1048581, 65548, 8, 1441800, 65563, 8, 1048584, 65571, 8, 1441798, 65572, 8, 655366, 65573, 8, 655366, 65574, 8, 655366, 65575, 8, 655366, 65576, 8, 655366, 65577, 8, 655365, 131073, 8, 1048584, 131084, 8, 1441796, 131088, 8, 1048579, 131089, 8, 7, 131090, 8, 7, 131091, 8, 1441795, 131099, 8, 1048584, 196609, 8, 1048584, 196620, 8, 1441801, 196624, 8, 1048584, 196627, 8, 1441800, 196635, 8, 1048584, 262145, 8, 1048584, 262156, 8, 1441800, 262161, 8, 655361, 262162, 8, 655361, 262170, 8, 1048584, 262171, 8, 1048582, 327680, 8, 1441799, 327681, 8, 1048581, 327692, 8, 1441800, 327695, 8, 3, 327696, 8, 1048580, 327697, 8, 1048583, 327698, 8, 1441795, 393215, 8, 1048584, 393228, 8, 1441800, 393231, 8, 8, 393232, 8, 1048585, 393234, 8, 1441794, 458751, 8, 1048584, 458764, 8, 9, 458769, 8, 655361, 458771, 8, 1048578, 458774, 8, 1048583, 458775, 8, 1048583, 458776, 8, 1048583, 458777, 8, 1048583, 458778, 8, 1048582, 524282, 8, 655367, 524283, 8, 655367, 524284, 8, 655367, 524285, 8, 655367, 524286, 8, 655367, 524287, 8, 1048582, 524300, 8, 5, 524301, 8, 1441799, 524302, 8, 1441799, 524303, 8, 1441799, 524304, 8, 1441799, 524305, 8, 1441799, 524306, 8, 1441799, 524307, 8, 1048582, -65534, 8, 3, -65533, 8, 3, -65532, 8, 1048580, -65531, 8, 655367, -65530, 8, 655367, -65529, 8, 655367, -65528, 8, 1441799, -65527, 8, 1441799, -65526, 8, 1441799, -65525, 8, 655367, -65524, 8, 1441800, -65509, 8, 1048579, -65508, 8, 1441799, -65507, 8, 1441799, -65506, 8, 1441799, -65505, 8, 1441799, -65504, 8, 1441799, -65503, 8, 1441799, -65502, 8, 1441799, -65501, 8, 1441800, 1, 9, 1048578, 2, 9, 5, 3, 9, 1048581, 8, 9, 11, 12, 9, 1441800, 27, 9, 1048584, 35, 9, 1441800, 65537, 9, 1048578, 65544, 9, 12, 65548, 9, 1441800, 65563, 9, 1048584, 65570, 9, 1441809, 65571, 9, 1441801, 65572, 9, 655363, 65573, 9, 655363, 65574, 9, 655363, 65575, 9, 655363, 65576, 9, 655363, 131073, 9, 1048578, 131080, 9, 1048588, 131084, 9, 1441800, 131088, 9, 1048579, 131089, 9, 7, 131090, 9, 7, 131091, 9, 1441795, 131099, 9, 1048584, 131107, 9, 1441797, 131108, 9, 655366, 131109, 9, 655366, 131110, 9, 655366, 131111, 9, 655366, 131112, 9, 655366, 131113, 9, 655365, 196609, 9, 1048578, 196616, 9, 1048588, 196620, 9, 1441800, 196624, 9, 1048584, 196627, 9, 1441800, 196635, 9, 1048584, 262145, 9, 1048578, 262152, 9, 1048589, 262156, 9, 1441800, 262161, 9, 655361, 262162, 9, 655361, 262169, 9, 3, 262170, 9, 1048580, 262171, 9, 1048582, 327680, 9, 655368, 327681, 9, 655369, 327682, 9, 1048592, 327692, 9, 1441800, 327694, 9, 1048579, 327695, 9, 1441799, 327696, 9, 1441799, 327697, 9, 1441799, 327698, 9, 1441795, 327705, 9, 8, 327706, 9, 1048585, 393216, 9, 655368, 393217, 9, 655369, 393228, 9, 1441800, 393230, 9, 1048584, 393234, 9, 1441794, 393241, 9, 8, 393242, 9, 1048585, 458752, 9, 655366, 458753, 9, 655365, 458764, 9, 1441798, 458765, 9, 1441795, 458767, 9, 655361, 458768, 9, 655361, 458769, 9, 655361, 458771, 9, 1048578, 458774, 9, 1048583, 458775, 9, 1048583, 458776, 9, 1048583, 458777, 9, 6, 458778, 9, 1048581, 524282, 9, 655367, 524283, 9, 655367, 524284, 9, 655367, 524285, 9, 655367, 524286, 9, 655367, 524287, 9, 655367, 524301, 9, 1441798, 524302, 9, 1441799, 524303, 9, 1441799, 524304, 9, 1441799, 524305, 9, 1441799, 524306, 9, 1441799, 524307, 9, 1048582, -65535, 9, 1048584, -65534, 9, 4, -65533, 9, 1048580, -65532, 9, 7, -65531, 9, 7, -65530, 9, 7, -65529, 9, 7, -65528, 9, 10, -65527, 9, 1441799, -65526, 9, 1441799, -65525, 9, 655367, -65524, 9, 1441800, -65509, 9, 1048579, -65508, 9, 1441799, -65507, 9, 1441799, -65506, 9, 1441799, -65505, 9, 1441799, -65504, 9, 1441799, -65503, 9, 1441799, -65502, 9, 1441799, -65501, 9, 1441800, 1, 10, 1048578, 12, 10, 1441800, 26, 10, 8, 27, 10, 1048585, 35, 10, 1441800, 65537, 10, 1048578, 65548, 10, 1441800, 65561, 10, 3, 65562, 10, 3, 65563, 10, 1048585, 65571, 10, 1441800, 131073, 10, 1048578, 131084, 10, 1441800, 131088, 10, 1048580, 131089, 10, 1048583, 131090, 10, 1048583, 131091, 10, 4, 131097, 10, 8, 131098, 10, 8, 131099, 10, 1048585, 131106, 10, 1441809, 131107, 10, 1441801, 131108, 10, 655363, 131109, 10, 655363, 131110, 10, 655363, 131111, 10, 655363, 131112, 10, 655364, 131113, 10, 1048582, 196609, 10, 1048578, 196620, 10, 1441800, 196624, 10, 1048585, 196627, 10, 9, 196633, 10, 8, 196634, 10, 8, 196635, 10, 1048585, 196643, 10, 1441797, 196644, 10, 655366, 196645, 10, 655366, 196646, 10, 655366, 196647, 10, 655366, 196648, 10, 655366, 196649, 10, 655365, 262145, 10, 1048578, 262156, 10, 1441800, 262161, 10, 1, 262162, 10, 1, 262168, 10, 1048579, 262169, 10, 6, 262170, 10, 6, 262171, 10, 1048581, 327681, 10, 1048578, 327685, 10, 655377, 327689, 10, 655376, 327692, 10, 1441800, 327694, 10, 1048579, 327695, 10, 1441799, 327696, 10, 1441796, 327697, 10, 655363, 327704, 10, 1048584, 393217, 10, 1048584, 393228, 10, 1441800, 393230, 10, 1048584, 393232, 10, 1441801, 393233, 10, 655362, 393240, 10, 1048584, 458752, 10, 6, 458753, 10, 1048582, 458764, 10, 1441798, 458765, 10, 4, 458766, 10, 3, 458767, 10, 14, 458768, 10, 3, 458769, 10, 8, 458770, 10, 8, 458771, 10, 1048585, 458774, 10, 1048583, 458775, 10, 1048583, 458776, 10, 1048582, 524282, 10, 655367, 524283, 10, 655367, 524284, 10, 655367, 524285, 10, 655367, 524286, 10, 655367, 524287, 10, 655367, 524301, 10, 5, 524302, 10, 6, 524303, 10, 6, 524304, 10, 6, 524305, 10, 6, 524306, 10, 6, 524307, 10, 1048581, -65535, 10, 1048584, -65534, 10, 1048583, -65533, 10, 7, -65532, 10, 7, -65531, 10, 7, -65530, 10, 7, -65529, 10, 7, -65528, 10, 655367, -65527, 10, 655367, -65526, 10, 655367, -65525, 10, 655367, -65524, 10, 1441800, -65511, 10, 3, -65510, 10, 3, -65509, 10, 1048580, -65508, 10, 7, -65507, 10, 7, -65506, 10, 7, -65505, 10, 7, -65504, 10, 7, -65503, 10, 7, -65502, 10, 1441799, -65501, 10, 1441795, 2, 11, 655368, 3, 11, 655368, 4, 11, 655368, 5, 11, 655368, 6, 11, 655368, 7, 11, 655368, 8, 11, 655368, 9, 11, 655368, 10, 11, 655368, 11, 11, 655368, 21, 11, 8, 22, 11, 8, 23, 11, 8, 24, 11, 1048585, 25, 11, 1441801, 26, 11, 655369, 35, 11, 1441800, 65538, 11, 655368, 65539, 11, 655368, 65540, 11, 655368, 65541, 11, 655368, 65542, 11, 655368, 65543, 11, 655368, 65544, 11, 655368, 65545, 11, 655368, 65546, 11, 655368, 65547, 11, 655368, 65549, 11, 8, 65550, 11, 8, 65551, 11, 8, 65552, 11, 8, 65553, 11, 8, 65554, 11, 8, 65555, 11, 8, 65556, 11, 8, 65557, 11, 8, 65558, 11, 8, 65559, 11, 8, 65560, 11, 1048585, 65561, 11, 1441797, 65562, 11, 655365, 65571, 11, 1441800, 131074, 11, 655368, 131075, 11, 655368, 131076, 11, 655368, 131077, 11, 655368, 131078, 11, 655368, 131079, 11, 655368, 131080, 11, 655368, 131081, 11, 655368, 131082, 11, 655368, 131083, 11, 655368, 131085, 11, 8, 131086, 11, 8, 131087, 11, 1048585, 131088, 11, 6, 131089, 11, 6, 131090, 11, 6, 131091, 11, 6, 131092, 11, 9, 131093, 11, 8, 131094, 11, 8, 131095, 11, 8, 131096, 11, 1048585, 131107, 11, 1441800, 196610, 11, 655368, 196611, 11, 655368, 196612, 11, 655368, 196613, 11, 655368, 196614, 11, 655368, 196615, 11, 655368, 196616, 11, 655368, 196617, 11, 655368, 196618, 11, 655368, 196619, 11, 655368, 196621, 11, 8, 196622, 11, 8, 196623, 11, 1048585, 196628, 11, 9, 196629, 11, 8, 196630, 11, 8, 196631, 11, 8, 196632, 11, 1048585, 196642, 11, 1441809, 196643, 11, 1441801, 196644, 11, 655363, 196645, 11, 655363, 196646, 11, 655363, 196647, 11, 655363, 196648, 11, 655364, 196649, 11, 1048582, 262146, 11, 655368, 262147, 11, 655368, 262148, 11, 655368, 262149, 11, 655368, 262150, 11, 655368, 262151, 11, 655368, 262152, 11, 655368, 262153, 11, 655368, 262154, 11, 655368, 262155, 11, 655368, 262157, 11, 8, 262158, 11, 8, 262159, 11, 8, 262160, 11, 14, 262161, 11, 14, 262162, 11, 14, 262163, 11, 14, 262164, 11, 8, 262165, 11, 8, 262166, 11, 8, 262167, 11, 8, 262168, 11, 1048585, 262179, 11, 1441797, 262180, 11, 655366, 262181, 11, 655366, 262182, 11, 655366, 262183, 11, 655366, 262184, 11, 655366, 262185, 11, 655365, 327682, 11, 655362, 327683, 11, 655362, 327684, 11, 655362, 327685, 11, 655369, 327686, 11, 655366, 327687, 11, 655366, 327688, 11, 655366, 327689, 11, 1441801, 327690, 11, 655368, 327691, 11, 655368, 327693, 11, 8, 327694, 11, 1048585, 327695, 11, 6, 327696, 11, 9, 327697, 11, 8, 327698, 11, 8, 327699, 11, 8, 327700, 11, 8, 327701, 11, 8, 327702, 11, 8, 327703, 11, 8, 327704, 11, 1048585, 393218, 11, 655362, 393219, 11, 655362, 393220, 11, 655362, 393221, 11, 655369, 393225, 11, 1441801, 393226, 11, 655368, 393227, 11, 655368, 393229, 11, 8, 393230, 11, 1048585, 393232, 11, 9, 393233, 11, 2, 393234, 11, 2, 393235, 11, 2, 393236, 11, 2, 393237, 11, 8, 393238, 11, 8, 393239, 11, 8, 393240, 11, 1048585, 458752, 11, 655367, 458753, 11, 655367, 458754, 11, 655366, 458755, 11, 655366, 458756, 11, 655366, 458757, 11, 655366, 458761, 11, 1441797, 458762, 11, 655366, 458763, 11, 655366, 458764, 11, 1441799, 458765, 11, 6, 458766, 11, 1048581, 458768, 11, 5, 458769, 11, 6, 458770, 11, 6, 458771, 11, 6, 458772, 11, 6, 458773, 11, 6, 458774, 11, 6, 458775, 11, 6, 458776, 11, 1048581, 524282, 11, 655367, 524283, 11, 655367, 524284, 11, 655367, 524285, 11, 655367, 524286, 11, 655367, 524287, 11, 655367, -65534, 11, 655363, -65533, 11, 655363, -65532, 11, 655363, -65531, 11, 655363, -65530, 11, 655363, -65529, 11, 655363, -65528, 11, 655363, -65527, 11, 655363, -65526, 11, 655363, -65525, 11, 655363, -65512, 11, 1048580, -65511, 11, 1441796, -65510, 11, 655364, -65509, 11, 7, -65508, 11, 7, -65507, 11, 7, -65506, 11, 7, -65505, 11, 7, -65504, 11, 7, -65503, 11, 7, -65502, 11, 7, -65501, 11, 1441795, 21, 12, 15, 23, 12, 1048582, 25, 12, 9, 26, 12, 1048585, 35, 12, 1441800, 65548, 12, 1048584, 65549, 12, 1048583, 65550, 12, 1048583, 65551, 12, 1048583, 65552, 12, 1048583, 65553, 12, 1048583, 65554, 12, 1048583, 65555, 12, 1048583, 65556, 12, 1048583, 65561, 12, 5, 65562, 12, 1048581, 65571, 12, 1441800, 131084, 12, 1048584, 131087, 12, 16, 131092, 12, 17, 131107, 12, 1441800, 196620, 12, 1048584, 196643, 12, 1441800, 262156, 12, 1048584, 262178, 12, 1441809, 262179, 12, 1441801, 262180, 12, 655363, 262181, 12, 655363, 262182, 12, 655363, 262183, 12, 655363, 262184, 12, 655364, 262185, 12, 1048582, 327686, 12, 655363, 327687, 12, 655363, 327688, 12, 655363, 327692, 12, 1048584, 327694, 12, 16, 327696, 12, 17, 327715, 12, 1441797, 327716, 12, 655366, 327717, 12, 655366, 327718, 12, 655366, 327719, 12, 655366, 327720, 12, 655365, 393222, 12, 655368, 393223, 12, 655368, 393224, 12, 655368, 393228, 12, 1048584, 458752, 12, 655367, 458753, 12, 655367, 458754, 12, 655367, 458755, 12, 655367, 458756, 12, 655367, 458757, 12, 655367, 458758, 12, 655366, 458759, 12, 655366, 458760, 12, 655366, 458761, 12, 1441799, 458762, 12, 1441799, 458763, 12, 1441799, 458764, 12, 655366, 524282, 12, 655367, 524283, 12, 655367, 524284, 12, 655367, 524285, 12, 655367, 524286, 12, 655367, 524287, 12, 655367, -65513, 12, 1048579, -65512, 12, 7, -65511, 12, 4, -65510, 12, 1048580, -65509, 12, 7, -65508, 12, 7, -65507, 12, 7, -65506, 12, 7, -65505, 12, 7, -65504, 12, 7, -65503, 12, 7, -65502, 12, 7, -65501, 12, 1441795, 21, 13, 15, 23, 13, 1048582, 28, 13, 1441801, 29, 13, 655369, 35, 13, 1441800, 65548, 13, 1048584, 65549, 13, 1048583, 65550, 13, 1048583, 65551, 13, 1048583, 65552, 13, 1048583, 65553, 13, 1048583, 65554, 13, 1048583, 65555, 13, 1048583, 65556, 13, 1048583, 65564, 13, 1441801, 65565, 13, 655369, 65571, 13, 1441800, 131084, 13, 1048584, 131100, 13, 1441797, 131101, 13, 655365, 131107, 13, 1441800, 196620, 13, 1048584, 196643, 13, 1441800, 262156, 13, 1048584, 262179, 13, 1441800, 327692, 13, 1048584, 327715, 13, 1441798, 393228, 13, 1048584, 458752, 13, 655367, 458753, 13, 655367, 458754, 13, 655367, 458755, 13, 655367, 458756, 13, 655367, 458757, 13, 655367, 458758, 13, 655367, 458759, 13, 655367, 458760, 13, 655367, 458761, 13, 655367, 458762, 13, 1441799, 458763, 13, 1441799, 458764, 13, 655366, 524282, 13, 655367, 524283, 13, 655367, 524284, 13, 655367, 524285, 13, 655367, 524286, 13, 655367, 524287, 13, 655367, -65513, 13, 1048579, -65512, 13, 7, -65511, 13, 7, -65510, 13, 7, -65509, 13, 7, -65508, 13, 1441796, -65507, 13, 655364, -65506, 13, 7, -65505, 13, 7, -65504, 13, 7, -65503, 13, 7, -65502, 13, 7, -65501, 13, 1441795, 21, 14, 15, 23, 14, 1048582, 28, 14, 9, 29, 14, 1048585, 35, 14, 1441800, 65548, 14, 1048584, 65549, 14, 1048583, 65550, 14, 1048583, 65551, 14, 1048583, 65552, 14, 1048583, 65553, 14, 655373, 65554, 14, 655373, 65555, 14, 1048583, 65556, 14, 1048583, 65564, 14, 9, 65565, 14, 1048585, 65571, 14, 1441800, 131084, 14, 1048584, 131090, 14, 655373, 131100, 14, 5, 131101, 14, 1048581, 131107, 14, 1441800, 196620, 14, 1048584, 196643, 14, 1441800, 262156, 14, 1048584, 262179, 14, 1441800, 327692, 14, 1048584, 327715, 14, 1441798, 393228, 14, 1048584, 458752, 14, 655367, 458753, 14, 655367, 458754, 14, 655367, 458755, 14, 655367, 458756, 14, 655367, 458757, 14, 655367, 458758, 14, 655367, 458759, 14, 655367, 458760, 14, 655367, 458761, 14, 655367, 458762, 14, 1441799, 458763, 14, 1441799, 458764, 14, 655366, 524282, 14, 655367, 524283, 14, 655367, 524284, 14, 655367, 524285, 14, 655367, 524286, 14, 655367, 524287, 14, 655367, -65513, 14, 1048579, -65512, 14, 7, -65511, 14, 7, -65510, 14, 7, -65509, 14, 7, -65508, 14, 4, -65507, 14, 1048580, -65506, 14, 7, -65505, 14, 7, -65504, 14, 7, -65503, 14, 7, -65502, 14, 7, -65501, 14, 1441795, 21, 15, 655368, 22, 15, 655368, 23, 15, 655368, 24, 15, 655369, 31, 15, 1441801, 32, 15, 655369, 35, 15, 1441800, 65548, 15, 1048584, 65549, 15, 655368, 65550, 15, 655368, 65551, 15, 655368, 65552, 15, 655368, 65553, 15, 655368, 65554, 15, 655368, 65555, 15, 655368, 65556, 15, 655368, 65557, 15, 655368, 65558, 15, 655368, 65559, 15, 655368, 65560, 15, 655369, 65567, 15, 1441801, 65568, 15, 655369, 65571, 15, 1441800, 131084, 15, 1048584, 131085, 15, 655368, 131086, 15, 655368, 131087, 15, 655368, 131088, 15, 655368, 131089, 15, 655368, 131090, 15, 655368, 131091, 15, 655368, 131092, 15, 655368, 131093, 15, 655368, 131094, 15, 655368, 131095, 15, 655368, 131096, 15, 655369, 131103, 15, 1441801, 131104, 15, 655369, 131107, 15, 1441800, 196620, 15, 1048584, 196621, 15, 655368, 196622, 15, 655368, 196623, 15, 655368, 196624, 15, 655368, 196625, 15, 655368, 196626, 15, 655368, 196627, 15, 655368, 196628, 15, 655368, 196629, 15, 655368, 196630, 15, 655368, 196631, 15, 655368, 196632, 15, 655369, 196639, 15, 1441797, 196640, 15, 655365, 196643, 15, 1441800, 262156, 15, 1048584, 262158, 15, 655368, 262159, 15, 655368, 262160, 15, 655368, 262161, 15, 655368, 262162, 15, 655368, 262163, 15, 655368, 262164, 15, 655368, 262165, 15, 655368, 262166, 15, 655368, 262167, 15, 655368, 262168, 15, 655369, 262179, 15, 1441800, 327692, 15, 1048584, 327693, 15, 655368, 327694, 15, 655368, 327695, 15, 655368, 327696, 15, 655368, 327697, 15, 655368, 327698, 15, 655368, 327699, 15, 655368, 327700, 15, 655366, 327701, 15, 655366, 327702, 15, 655366, 327703, 15, 655366, 327704, 15, 655365, 327715, 15, 1441798, 393228, 15, 1048584, 393229, 15, 655368, 393230, 15, 655368, 393231, 15, 655368, 393232, 15, 655368, 393233, 15, 655368, 393234, 15, 655368, 393235, 15, 655368, 458752, 15, 655367, 458753, 15, 655367, 458754, 15, 655367, 458755, 15, 655367, 458756, 15, 655367, 458757, 15, 655367, 458758, 15, 655367, 458759, 15, 655367, 458760, 15, 655367, 458761, 15, 655367, 458762, 15, 1441799, 458763, 15, 1441799, 458764, 15, 655366, 458765, 15, 655366, 458766, 15, 655366, 458767, 15, 655366, 458768, 15, 655366, 458769, 15, 655366, 458770, 15, 655366, 458771, 15, 655366, 524282, 15, 655367, 524284, 15, 655367, 524285, 15, 655367, 524286, 15, 655367, 524287, 15, 655367, -65512, 15, 655364, -65511, 15, 7, -65510, 15, 7, -65509, 15, 7, -65508, 15, 7, -65507, 15, 7, -65506, 15, 7, -65505, 15, 1441796, -65504, 15, 655364, -65503, 15, 7, -65502, 15, 7, -65501, 15, 1441795, 25, 16, 655369, 31, 16, 9, 32, 16, 1048585, 34, 16, 1441801, 65548, 16, 1048584, 65561, 16, 655369, 65567, 16, 9, 65568, 16, 1048585, 65570, 16, 1441801, 131084, 16, 1048584, 131097, 16, 655369, 131103, 16, 9, 131104, 16, 1048585, 131106, 16, 1441801, 196620, 16, 1048584, 196633, 16, 655369, 196639, 16, 5, 196640, 16, 1048581, 196642, 16, 1441801, 262156, 16, 1048584, 262169, 16, 655369, 262178, 16, 1441801, 327692, 16, 1048584, 327705, 16, 655365, 327714, 16, 1441797, 393228, 16, 1048584, 458752, 16, 655367, 458753, 16, 655367, 458754, 16, 655367, 458755, 16, 655367, 458756, 16, 655367, 458757, 16, 655367, 458758, 16, 655367, 458759, 16, 655367, 458760, 16, 655367, 458761, 16, 655367, 458762, 16, 1441799, 458763, 16, 1441799, 458764, 16, 655366, 524282, 16, 655367, 524284, 16, 655367, 524285, 16, 655367, 524286, 16, 655367, 524287, 16, 655367, -65511, 16, 655364, -65510, 16, 7, -65509, 16, 7, -65508, 16, 7, -65507, 16, 7, -65506, 16, 7, -65505, 16, 4, -65504, 16, 1048580, -65503, 16, 7, -65502, 16, 1441796, 25, 17, 1048584, 34, 17, 1441800, 65548, 17, 1048584, 65561, 17, 1048584, 65570, 17, 1441800, 131084, 17, 1048584, 131097, 17, 1048584, 131106, 17, 1441800, 196633, 17, 1048584, 196642, 17, 1441800, 262169, 17, 1048584, 262174, 17, 655377, 262177, 17, 655376, 262178, 17, 1441800, 327705, 17, 1048582, 327714, 17, 1441798, 458752, 17, 655367, 458753, 17, 655367, 458754, 17, 655367, 458755, 17, 655367, 458756, 17, 655367, 458757, 17, 655367, 458758, 17, 655367, 458759, 17, 655367, 458760, 17, 655367, 458761, 17, 655367, 458762, 17, 1441799, 458763, 17, 1441799, 458764, 17, 1441799, 524282, 17, 655367, 524283, 17, 655367, 524284, 17, 655367, 524285, 17, 655367, 524286, 17, 655367, 524287, 17, 655367, -65511, 17, 1048579, -65510, 17, 7, -65509, 17, 7, -65508, 17, 7, -65507, 17, 7, -65506, 17, 7, -65505, 17, 7, -65504, 17, 7, -65503, 17, 7, -65502, 17, 1441795, 26, 18, 655368, 27, 18, 655368, 28, 18, 655368, 29, 18, 655368, 30, 18, 655368, 31, 18, 655368, 32, 18, 655368, 33, 18, 655368, 65562, 18, 655368, 65563, 18, 655368, 65564, 18, 655368, 65565, 18, 655368, 65566, 18, 655368, 65567, 18, 655368, 65568, 18, 655368, 65569, 18, 655368, 131098, 18, 655368, 131099, 18, 655368, 131100, 18, 655368, 131101, 18, 655368, 131102, 18, 655368, 131103, 18, 655368, 131104, 18, 655368, 131105, 18, 655368, 196634, 18, 655368, 196635, 18, 655368, 196636, 18, 655368, 196637, 18, 655368, 196638, 18, 655368, 196639, 18, 655368, 196640, 18, 655368, 196641, 18, 655368, 262170, 18, 655368, 262171, 18, 655368, 262172, 18, 655368, 262173, 18, 655368, 262174, 18, 655369, 262175, 18, 655366, 262176, 18, 655366, 262177, 18, 1441801, 327706, 18, 655366, 327707, 18, 655366, 327708, 18, 655366, 327709, 18, 655366, 327710, 18, 655366, 327713, 18, 1441797, 458752, 18, 655367, 458753, 18, 655367, 458754, 18, 655367, 458755, 18, 655367, 458756, 18, 655367, 458757, 18, 655367, 458758, 18, 655367, 458759, 18, 655367, 458760, 18, 655367, 458762, 18, 1441799, 458763, 18, 1441799, 458764, 18, 1441799, 524283, 18, 655367, 524284, 18, 655367, 524285, 18, 655367, 524286, 18, 655367, 524287, 18, 655367, -65510, 18, 655363, -65509, 18, 655363, -65508, 18, 655363, -65507, 18, 655363, -65506, 18, 655363, -65505, 18, 655363, -65504, 18, 655363, -65503, 18, 655363, 524287, 19, 655367, 65540, 65533, 3, 131076, 65533, 2, 131077, 65533, 3, 196611, 65533, 1048579, 196612, 65533, 6, 196613, 65533, 6, 196614, 65533, 655366, 196615, 65533, 655366, 196616, 65533, 655366, 196617, 65533, 655366, 196618, 65533, 7, 196619, 65533, 655366, 196620, 65533, 1441801, 262147, 65533, 1048578, 262156, 65533, 1441801, 327683, 65533, 1048584, 327692, 65533, 1441801, 393219, 65533, 1048584, 393228, 65533, 1441801, 458764, 65533, 1441801, 524300, 65533, 1441797, 65539, 65534, 1048579, 65540, 65534, 1048583, 65541, 65534, 4, 131075, 65534, 1048578, 131077, 65534, 5, 131078, 65534, 4, 196611, 65534, 1048578, 196614, 65534, 5, 196615, 65534, 7, 196616, 65534, 655370, 196617, 65534, 7, 196618, 65534, 7, 196619, 65534, 7, 196620, 65534, 1441800, 262147, 65534, 1048578, 262152, 65534, 655372, 262156, 65534, 1441800, 327683, 65534, 1048584, 327688, 65534, 655373, 327692, 65534, 1441794, 393219, 65534, 1048584, 393228, 65534, 1441794, 458753, 65534, 655367, 458754, 65534, 655367, 458764, 65534, 1441794, 524300, 65534, 1441798, 4, 65535, 2, 5, 65535, 2, 6, 65535, 2, 7, 65535, 2, 8, 65535, 2, 9, 65535, 2, 10, 65535, 2, 11, 65535, 2, 65539, 65535, 1048579, 65540, 65535, 5, 65541, 65535, 1048581, 65542, 65535, 4, 65543, 65535, 2, 65544, 65535, 2, 65545, 65535, 2, 65546, 65535, 2, 65547, 65535, 2, 131075, 65535, 1048578, 131078, 65535, 5, 131079, 65535, 9, 131080, 65535, 2, 131081, 65535, 2, 131082, 65535, 2, 131083, 65535, 2, 196611, 65535, 1048578, 196615, 65535, 5, 196616, 65535, 6, 196617, 65535, 6, 196618, 65535, 6, 196619, 65535, 6, 196620, 65535, 1441800, 262147, 65535, 1048578, 262156, 65535, 1441800, 327683, 65535, 1048584, 327692, 65535, 1441794, 393219, 65535, 1048584, 393228, 65535, 1441794, 458752, 65535, 655367, 458753, 65535, 655367, 458754, 65535, 655367, 458755, 65535, 655367, 458764, 65535, 1441794, 524287, 65535, 655367, 524300, 65535, 1441798, -65532, 65535, 2, -65531, 65535, 2, -65530, 65535, 2, -65529, 65535, 2, -65528, 65535, 2, -65527, 65535, 2, -65526, 65535, 2, -65525, 65535, 2 </int_array>
- </dictionary>
- <dictionary shared="false">
- <string> "_editor_clip_" </string>
- <int> 0 </int>
- <string> "_editor_floor_" </string>
- <vector3> 0, 2, 0 </vector3>
- </dictionary>
- <transform> 0.522923, 0.663002, -0.535706, -0.24539, 0.718971, 0.650281, 0.816294, -0.20859, 0.53866, 0, 0, 0 </transform>
- <int> 1 </int>
- <int> 0 </int>
- <real> 1.5 </real>
- <color> 1, 1, 1, 1 </color>
- <real> 0 </real>
- <real> 0.08 </real>
- <real> 0.5 </real>
- <real> 60 </real>
- <real> 1 </real>
- <resource name=""></resource> <int> 2 </int>
- <real> 40 </real>
- <real> 0.410558 </real>
- <resource resource_type="Environment" path="local://1"> </resource>
- <dictionary shared="false">
- <string> "_editor_collapsed" </string>
- <bool> True </bool>
- </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>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.61344, 11.28, 11.0239 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.61344, 11.28, 13.0239 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.61344, 11.28, 11.0239 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.61344, 11.28, 13.0239 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.61344, 12.9027, 11.03 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.61344, 12.9027, 13.03 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.61344, 12.9027, 13.03 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.61344, 12.9027, 11.03 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.61344, 11.28, 15.0922 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.61344, 11.28, 17.0922 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.61344, 11.28, 17.0922 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.61344, 11.28, 15.0922 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.61344, 12.9027, 15.0983 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.61344, 12.9027, 17.0983 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.61344, 12.9027, 15.0983 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.61344, 12.9027, 17.0983 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 57.057, 4.14271, 26.9338 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 57.057, 4.14271, 28.9338 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 57.057, 5.76534, 26.9399 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 59.057, 5.76534, 28.9399 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 59.057, 5.76534, 26.9399 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 59.057, 4.14271, 28.9338 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 59.057, 4.14271, 26.9338 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 57.057, 5.76534, 28.9399 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 62.9108, 6.16547, 31.0899 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 64.9108, 7.7881, 31.096 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 62.9108, 6.16547, 33.0899 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 62.9108, 7.7881, 31.096 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 64.9108, 7.7881, 33.096 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 64.9108, 6.16547, 31.0899 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 64.9108, 6.16547, 33.0899 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 62.9108, 7.7881, 33.096 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 51.5614, 2.98252, 23.1775 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 53.5614, 4.60515, 23.1836 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 51.5614, 2.98252, 25.1775 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 53.5614, 2.98252, 23.1775 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 53.5614, 4.60515, 25.1836 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 51.5614, 4.60515, 23.1836 </transform>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 53.5614, 2.98252, 25.1775 </transform>
- <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="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>
-
- </main_resource>
-</resource_file> \ No newline at end of file
diff --git a/demos/3d/platformer/tiles.scn b/demos/3d/platformer/tiles.scn
index ca804d2d09..4c3442dbeb 100644
--- a/demos/3d/platformer/tiles.scn
+++ b/demos/3d/platformer/tiles.scn
Binary files differ
diff --git a/demos/2d/polygon_path_finder/engine.cfg b/demos/3d/polygon_path_finder/engine.cfg
index 47450408af..47450408af 100644
--- a/demos/2d/polygon_path_finder/engine.cfg
+++ b/demos/3d/polygon_path_finder/engine.cfg
diff --git a/demos/2d/polygon_path_finder/icon.png b/demos/3d/polygon_path_finder/icon.png
index 643f5595ee..643f5595ee 100644
--- a/demos/2d/polygon_path_finder/icon.png
+++ b/demos/3d/polygon_path_finder/icon.png
Binary files differ
diff --git a/demos/2d/polygon_path_finder/poly_with_holes.scn b/demos/3d/polygon_path_finder/poly_with_holes.scn
index 6b340377b7..6b340377b7 100644
--- a/demos/2d/polygon_path_finder/poly_with_holes.scn
+++ b/demos/3d/polygon_path_finder/poly_with_holes.scn
Binary files differ
diff --git a/demos/2d/polygon_path_finder/polygonpathfinder.gd b/demos/3d/polygon_path_finder/polygonpathfinder.gd
index a0e71dd127..1e843043da 100644
--- a/demos/2d/polygon_path_finder/polygonpathfinder.gd
+++ b/demos/3d/polygon_path_finder/polygonpathfinder.gd
@@ -1,37 +1,38 @@
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 ...
+ # 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(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(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
+ 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
-
+
+ # 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"))
@@ -44,24 +45,22 @@ func _ready():
connections.push_back(7)
connections.push_back(4)
drawLine(points[7], points[4], get_node("/root/Spatial/Polys"))
-
- print("points: ",points)
- print("connections: ",connections)
+ 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)
+ print("path: ", path)
for step in path:
- print("step: ",step)
+ print("step: ", step)
if (lastStep != null):
var currPathSegment = Vector2Array()
drawLine(lastStep, step, get_node("/root/Spatial/Path"))
lastStep = step
-
func drawLine(pointA, pointB, immediateGeo):
@@ -76,5 +75,3 @@ func drawLine(pointA, pointB, immediateGeo):
im.add_vertex(Vector3(pointA.x, drawPosY, pointA.y))
im.add_vertex(Vector3(pointB.x, drawPosY, pointB.y))
im.end()
-
-
diff --git a/demos/3d/sat_test/box.scn b/demos/3d/sat_test/box.scn
index 8b02826ea7..f9c15839a2 100644
--- a/demos/3d/sat_test/box.scn
+++ b/demos/3d/sat_test/box.scn
Binary files differ
diff --git a/demos/3d/sat_test/capsule.scn b/demos/3d/sat_test/capsule.scn
index a4fe2b2b3f..db8ff43116 100644
--- a/demos/3d/sat_test/capsule.scn
+++ b/demos/3d/sat_test/capsule.scn
Binary files differ
diff --git a/demos/3d/sat_test/convex.scn b/demos/3d/sat_test/convex.scn
index 5f62beccaf..93e05338eb 100644
--- a/demos/3d/sat_test/convex.scn
+++ b/demos/3d/sat_test/convex.scn
Binary files differ
diff --git a/demos/3d/sat_test/engine.cfg b/demos/3d/sat_test/engine.cfg
index 82c688635d..e21c9b1eff 100644
--- a/demos/3d/sat_test/engine.cfg
+++ b/demos/3d/sat_test/engine.cfg
@@ -1,5 +1,5 @@
[application]
name="SAT Collision Test"
-main_scene="res://sat_test.xml"
+main_scene="res://sat_test.scn"
icon="res://icon.png"
diff --git a/demos/3d/sat_test/sat_test.scn b/demos/3d/sat_test/sat_test.scn
new file mode 100644
index 0000000000..0b25431202
--- /dev/null
+++ b/demos/3d/sat_test/sat_test.scn
Binary files differ
diff --git a/demos/3d/sat_test/sat_test.xml b/demos/3d/sat_test/sat_test.xml
deleted file mode 100644
index f11dec3292..0000000000
--- a/demos/3d/sat_test/sat_test.xml
+++ /dev/null
@@ -1,179 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="5" version="0.99" version_name="Godot Engine v0.99.3735-pre-beta">
- <ext_resource path="res://box.*" type="PackedScene"></ext_resource>
- <ext_resource path="res://sphere.*" type="PackedScene"></ext_resource>
- <ext_resource path="res://capsule.*" type="PackedScene"></ext_resource>
- <ext_resource path="res://convex.*" type="PackedScene"></ext_resource>
- <main_resource>
- <dictionary name="_bundled" shared="false">
- <string> "names" </string>
- <string_array len="30">
- <string> "Node" </string>
- <string> "__meta__" </string>
- <string> "sphere" </string>
- <string> "Spatial" </string>
- <string> "transform/local" </string>
- <string> "box" </string>
- <string> "convex" </string>
- <string> "Camera" </string>
- <string> "projection" </string>
- <string> "fov" </string>
- <string> "near" </string>
- <string> "far" </string>
- <string> "vaspect" </string>
- <string> "current" </string>
- <string> "visible_layers" </string>
- <string> "environment" </string>
- <string> "OmniLight" </string>
- <string> "layers" </string>
- <string> "params/energy" </string>
- <string> "colors/ambient" </string>
- <string> "colors/diffuse" </string>
- <string> "colors/specular" </string>
- <string> "shadow/shadow" </string>
- <string> "shadow/darkening" </string>
- <string> "shadow/z_offset" </string>
- <string> "shadow/z_slope_scale" </string>
- <string> "projector" </string>
- <string> "operator" </string>
- <string> "params/radius" </string>
- <string> "params/attenuation" </string>
- </string_array>
- <string> "version" </string>
- <int> 1 </int>
- <string> "conn_count" </string>
- <int> 0 </int>
- <string> "node_count" </string>
- <int> 7 </int>
- <string> "variants" </string>
- <array len="26" shared="false">
- <dictionary shared="false">
- <string> "__editor_plugin_states__" </string>
- <dictionary shared="false">
- <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> "zfar" </string>
- <real> 500 </real>
- <string> "fov" </string>
- <real> 400 </real>
- <string> "viewports" </string>
- <array len="4" shared="false">
- <dictionary shared="false">
- <string> "distance" </string>
- <real> 34.508423 </real>
- <string> "x_rot" </string>
- <real> 0.7 </real>
- <string> "y_rot" </string>
- <real> 1.262503 </real>
- <string> "use_orthogonal" </string>
- <bool> False </bool>
- <string> "use_environment" </string>
- <bool> False </bool>
- <string> "pos" </string>
- <vector3> 13.3659, 3.22136, 2.27417 </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> False </bool>
- <string> "show_grid" </string>
- <bool> True </bool>
- <string> "show_origin" </string>
- <bool> True </bool>
- <string> "znear" </string>
- <real> 0.1 </real>
- </dictionary>
- </dictionary>
- <string> "__editor_run_settings__" </string>
- <dictionary shared="false">
- <string> "custom_args" </string>
- <string> "-l $scene" </string>
- <string> "run_mode" </string>
- <int> 0 </int>
- </dictionary>
- <string> "__editor_plugin_screen__" </string>
- <string> "3D" </string>
- </dictionary>
- <resource resource_type="PackedScene" path="res://sphere.*"> </resource>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2.93877 </transform>
- <resource resource_type="PackedScene" path="res://box.*"> </resource>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 13.5356, 0, -3.40082 </transform>
- <resource resource_type="PackedScene" path="res://convex.*"> </resource>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 22.8626, 0, -2.50073 </transform>
- <resource resource_type="PackedScene" path="res://capsule.*"> </resource>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 28.4061, 0, -2.76809 </transform>
- <transform> 1, 0, 0, 0, 0.819152, 0.573576, 0, -0.573576, 0.819152, 14.482, 11.1225, 20.5858 </transform>
- <int> 0 </int>
- <real> 60 </real>
- <real> 0.1 </real>
- <real> 100 </real>
- <bool> False </bool>
- <int> -1 </int>
- <resource name=""></resource> <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 66.4797, 0, 10.4696 </transform>
- <int> 1 </int>
- <real> 1.5 </real>
- <color> 0.355828, 0.346354, 0.329995, 1 </color>
- <color> 1, 1, 1, 1 </color>
- <real> 0 </real>
- <real> 0.05 </real>
- <real> 500 </real>
- <real> 0.535887 </real>
- </array>
- <string> "nodes" </string>
- <int_array len="105"> -1, -1, 0, 0, -1, 1, 1, 0, 0, 0, 0, 3, 2, 1, 1, 4, 2, 0, 0, 0, 3, 5, 3, 1, 4, 4, 0, 0, 0, 3, 6, 5, 1, 4, 6, 0, 0, 0, 3, 3, 7, 1, 4, 8, 0, 0, 0, 7, 7, -1, 9, 4, 9, 8, 10, 9, 11, 10, 12, 11, 13, 12, 14, 13, 14, 14, 15, 15, 16, 0, 0, 0, 16, 16, -1, 14, 4, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 21, 22, 14, 23, 22, 24, 23, 25, 22, 26, 16, 27, 10, 28, 24, 29, 25, 0 </int_array>
- <string> "conns" </string>
- <int_array len="0"> </int_array>
- </dictionary>
-
- </main_resource>
-</resource_file> \ No newline at end of file
diff --git a/demos/3d/sat_test/shapes.scn b/demos/3d/sat_test/shapes.scn
index 584237b89d..bf10be0a59 100644
--- a/demos/3d/sat_test/shapes.scn
+++ b/demos/3d/sat_test/shapes.scn
Binary files differ
diff --git a/demos/3d/sat_test/sphere.scn b/demos/3d/sat_test/sphere.scn
index dd49c914b3..e40c3bd42d 100644
--- a/demos/3d/sat_test/sphere.scn
+++ b/demos/3d/sat_test/sphere.scn
Binary files differ
diff --git a/demos/3d/shader_materials/shader_materials.scn b/demos/3d/shader_materials/shader_materials.scn
index 243c6c8f06..7eb43cda0d 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/car_base.scn b/demos/3d/truck_town/car_base.scn
index d62c8dcb29..acfbfae162 100644
--- a/demos/3d/truck_town/car_base.scn
+++ b/demos/3d/truck_town/car_base.scn
Binary files differ
diff --git a/demos/3d/truck_town/car_select.gd b/demos/3d/truck_town/car_select.gd
index 00b4d853b8..4efcf63426 100644
--- a/demos/3d/truck_town/car_select.gd
+++ b/demos/3d/truck_town/car_select.gd
@@ -1,40 +1,30 @@
extends Control
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
-func _ready():
- # Initalization here
- pass
-
-var town=null
+# Member variables
+var town = null
func _back():
-
town.queue_free()
show()
-
-func _load_scene(car):
+func _load_scene(car):
var tt = load(car).instance()
tt.set_name("car")
town = load("res://truck_scene.scn").instance()
town.get_node("instance_pos").add_child(tt)
- town.get_node("back").connect("pressed",self,"_back")
+ town.get_node("back").connect("pressed", self, "_back")
get_parent().add_child(town)
hide()
-func _on_van_1_pressed():
+func _on_van_1_pressed():
_load_scene("res://car_base.scn")
func _on_van_2_pressed():
-
_load_scene("res://trailer_truck.scn")
diff --git a/demos/3d/truck_town/car_select.scn b/demos/3d/truck_town/car_select.scn
index 024adf1423..d838e995b2 100644
--- a/demos/3d/truck_town/car_select.scn
+++ b/demos/3d/truck_town/car_select.scn
Binary files differ
diff --git a/demos/3d/truck_town/crane.scn b/demos/3d/truck_town/crane.scn
index 2c4645af69..dfddd97882 100644
--- a/demos/3d/truck_town/crane.scn
+++ b/demos/3d/truck_town/crane.scn
Binary files differ
diff --git a/demos/3d/truck_town/follow_camera.gd b/demos/3d/truck_town/follow_camera.gd
index cf7172d7bb..7c6a0a2ba6 100644
--- a/demos/3d/truck_town/follow_camera.gd
+++ b/demos/3d/truck_town/follow_camera.gd
@@ -1,69 +1,57 @@
extends Camera
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
-var collision_exception=[]
-export var min_distance=0.5
-export var max_distance=4.0
-export var angle_v_adjust=0.0
-export var autoturn_ray_aperture=25
-export var autoturn_speed=50
+# Member variables
+var collision_exception = []
+export var min_distance = 0.5
+export var max_distance = 4.0
+export var angle_v_adjust = 0.0
+export var autoturn_ray_aperture = 25
+export var autoturn_speed = 50
var max_height = 2.0
var min_height = 0
+
func _fixed_process(dt):
- var target = get_parent().get_global_transform().origin
+ var target = get_parent().get_global_transform().origin
var pos = get_global_transform().origin
- var up = Vector3(0,1,0)
+ var up = Vector3(0, 1, 0)
var delta = pos - target
- #regular delta follow
+ # Regular delta follow
- #check ranges
-
+ # Check ranges
if (delta.length() < min_distance):
- delta = delta.normalized() * min_distance
+ delta = delta.normalized()*min_distance
elif (delta.length() > max_distance):
- delta = delta.normalized() * max_distance
+ delta = delta.normalized()*max_distance
- #check upper and lower height
+ # Check upper and lower height
if ( delta.y > max_height):
delta.y = max_height
if ( delta.y < min_height):
delta.y = min_height
-
+
pos = target + delta
- look_at_from_pos(pos,target,up)
+ look_at_from_pos(pos, target, up)
- #turn a little up or down
+ # Turn a little up or down
var t = get_transform()
- t.basis = Matrix3(t.basis[0],deg2rad(angle_v_adjust)) * t.basis
+ t.basis = Matrix3(t.basis[0], deg2rad(angle_v_adjust))*t.basis
set_transform(t)
-
-
-func _ready():
-#find collision exceptions for ray
+func _ready():
+ # Find collision exceptions for ray
var node = self
while(node):
if (node extends RigidBody):
collision_exception.append(node.get_rid())
break
else:
- node=node.get_parent()
- # Initalization here
+ node = node.get_parent()
set_fixed_process(true)
- #this detaches the camera transform from the parent spatial node
+ # This detaches the camera transform from the parent spatial node
set_as_toplevel(true)
-
-
-
-
-
-
diff --git a/demos/3d/truck_town/trailer_truck.scn b/demos/3d/truck_town/trailer_truck.scn
index 0131e9e3a2..6fcf83e270 100644
--- a/demos/3d/truck_town/trailer_truck.scn
+++ b/demos/3d/truck_town/trailer_truck.scn
Binary files differ
diff --git a/demos/3d/truck_town/truck_scene.scn b/demos/3d/truck_town/truck_scene.scn
index a02ce259c1..0c1be13ce2 100644
--- a/demos/3d/truck_town/truck_scene.scn
+++ b/demos/3d/truck_town/truck_scene.scn
Binary files differ
diff --git a/demos/3d/truck_town/trucktown.scn b/demos/3d/truck_town/trucktown.scn
index 57a84315ee..4a8f7e7e52 100644
--- a/demos/3d/truck_town/trucktown.scn
+++ b/demos/3d/truck_town/trucktown.scn
Binary files differ
diff --git a/demos/3d/truck_town/vehicle.gd b/demos/3d/truck_town/vehicle.gd
index 1aa7f0faa2..c4224577c6 100644
--- a/demos/3d/truck_town/vehicle.gd
+++ b/demos/3d/truck_town/vehicle.gd
@@ -1,54 +1,45 @@
extends VehicleBody
-# member variables here, example:
-# var a=2
-# var b="textvar"
+# Member variables
+const STEER_SPEED = 1
+const STEER_LIMIT = 0.4
+var steer_angle = 0
+var steer_target = 0
-const STEER_SPEED=1
-const STEER_LIMIT=0.4
+export var engine_force = 40
-var steer_angle=0
-var steer_target=0
-
-
-export var engine_force=40
func _fixed_process(delta):
-
-
if (Input.is_action_pressed("ui_left")):
- steer_target=-STEER_LIMIT
+ steer_target = -STEER_LIMIT
elif (Input.is_action_pressed("ui_right")):
- steer_target=STEER_LIMIT
+ steer_target = STEER_LIMIT
else:
- steer_target=0
-
+ steer_target = 0
+
if (Input.is_action_pressed("ui_up")):
set_engine_force(engine_force)
else:
set_engine_force(0)
-
+
if (Input.is_action_pressed("ui_down")):
set_brake(1)
else:
set_brake(0.0)
-
-
+
if (steer_target < steer_angle):
steer_angle -= STEER_SPEED*delta
if (steer_target > steer_angle):
- steer_angle=steer_target
+ steer_angle = steer_target
elif (steer_target > steer_angle):
steer_angle += STEER_SPEED*delta
if (steer_target < steer_angle):
- steer_angle=steer_target
-
+ steer_angle = steer_target
+
set_steering(steer_angle)
-func _ready():
- # Initalization here
- set_fixed_process(true)
- pass
+func _ready():
+ set_fixed_process(true)
diff --git a/demos/gui/drag_and_drop/drag_and_drop.scn b/demos/gui/drag_and_drop/drag_and_drop.scn
index 94a25cc53e..9dec254ef7 100644
--- a/demos/gui/drag_and_drop/drag_and_drop.scn
+++ 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
index 21a737ce1a..719c42fe8f 100644
--- a/demos/gui/drag_and_drop/drag_drop_script.gd
+++ b/demos/gui/drag_and_drop/drag_drop_script.gd
@@ -2,23 +2,19 @@
extends ColorPickerButton
-#virtual function
func get_drag_data(pos):
-
- #use another colorpicker as drag preview
+ # Use another colorpicker as drag preview
var cpb = ColorPickerButton.new()
- cpb.set_color( get_color() )
- cpb.set_size(Vector2(50,50))
+ cpb.set_color(get_color())
+ cpb.set_size(Vector2(50, 50))
set_drag_preview(cpb)
- #return color as drag data
+ # Return color as drag data
return get_color()
-#virtual function
+
func can_drop_data(pos, data):
- return typeof(data)==TYPE_COLOR
+ return typeof(data) == TYPE_COLOR
+
-#virtual function
func drop_data(pos, data):
set_color(data)
-
-
diff --git a/demos/gui/input_mapping/controls.gd b/demos/gui/input_mapping/controls.gd
index 6ca059c812..3cee6e6871 100644
--- a/demos/gui/input_mapping/controls.gd
+++ b/demos/gui/input_mapping/controls.gd
@@ -1,3 +1,6 @@
+
+extends Control
+
# Note for the reader:
#
# This demo conveniently uses the same names for actions and for the container nodes
@@ -9,12 +12,12 @@
# action and the node, e.g.:
# button.connect("pressed", self, "wait_for_input", [ button, action ])
-extends Control
-
+# Member variables
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
@@ -22,6 +25,7 @@ func wait_for_input(action_bind):
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):
@@ -39,6 +43,7 @@ func _input(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
diff --git a/demos/gui/input_mapping/controls.scn b/demos/gui/input_mapping/controls.scn
index 276712ba22..98cbbca464 100644
--- a/demos/gui/input_mapping/controls.scn
+++ b/demos/gui/input_mapping/controls.scn
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
index 30fac1f729..79a08c1303 100644
--- a/demos/gui/rich_text_bbcode/rich_text_bbcode.gd
+++ b/demos/gui/rich_text_bbcode/rich_text_bbcode.gd
@@ -1,17 +1,6 @@
extends Panel
-# member variables here, example:
-# var a=2
-# var b="textvar"
-func _ready():
- # Initialization here
- pass
-
-
-
-
-func _on_RichTextLabel_meta_clicked( meta ):
+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
index 081338fd91..c908d44dc3 100644
--- a/demos/gui/rich_text_bbcode/rich_text_bbcode.scn
+++ b/demos/gui/rich_text_bbcode/rich_text_bbcode.scn
Binary files differ
diff --git a/demos/gui/translation/controls.gd b/demos/gui/translation/controls.gd
index f8403f49a7..ae2e26362b 100644
--- a/demos/gui/translation/controls.gd
+++ b/demos/gui/translation/controls.gd
@@ -1,20 +1,9 @@
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
index 66e6d47702..055ac90b9b 100644
--- a/demos/gui/translation/controls.scn
+++ b/demos/gui/translation/controls.scn
Binary files differ
diff --git a/demos/gui/translation/main.gd b/demos/gui/translation/main.gd
index bf3c0c0840..c3e788f82b 100644
--- a/demos/gui/translation/main.gd
+++ b/demos/gui/translation/main.gd
@@ -1,31 +1,21 @@
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
+ # 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.
+# NOTE: Changing 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")
diff --git a/demos/gui/translation/main.scn b/demos/gui/translation/main.scn
index 76c9ba7b45..8fc0b4ffb2 100644
--- a/demos/gui/translation/main.scn
+++ b/demos/gui/translation/main.scn
Binary files differ
diff --git a/demos/misc/autoload/global.gd b/demos/misc/autoload/global.gd
index d1bd45461f..735995e806 100644
--- a/demos/misc/autoload/global.gd
+++ b/demos/misc/autoload/global.gd
@@ -1,43 +1,36 @@
extends Node
-var current_scene = null
+# Changing scenes is most easily done using the functions `change_scene`
+# and `change_scene_to` of the SceneTree. This script demonstrates how to
+# change scenes without those helpers.
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()
-
+ # Immediately free the current scene, there is no risk here.
+ get_tree().get_current_scene().free()
+
# Load new scene
- var s = ResourceLoader.load(path)
-
+ var packed_scene = ResourceLoader.load(path)
+
# Instance the new scene
- current_scene = s.instance()
-
- # Add it to the active scene, as child of root
- get_tree().get_root().add_child(current_scene)
-
-
-func _ready():
- # Get the current scene, the first time.
- # it is always the last child of root,
- # after the autoloaded nodes.
-
- var root = get_tree().get_root()
- current_scene = root.get_child( root.get_child_count() -1 )
+ var instanced_scene = packed_scene.instance()
+
+ # Add it to the scene tree, as direct child of root
+ get_tree().get_root().add_child(instanced_scene)
+
+ # Set it as the current scene, only after it has been added to the tree
+ get_tree().set_current_scene(instanced_scene)
diff --git a/demos/misc/autoload/scene_a.gd b/demos/misc/autoload/scene_a.gd
index 21a6a84eb9..03da86d9a0 100644
--- a/demos/misc/autoload/scene_a.gd
+++ b/demos/misc/autoload/scene_a.gd
@@ -1,17 +1,5 @@
-
extends Panel
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
-func _ready():
- # Initalization here
- pass
-
-
-
func _on_goto_scene_pressed():
get_node("/root/global").goto_scene("res://scene_b.scn")
- pass # replace with function body
diff --git a/demos/misc/autoload/scene_a.scn b/demos/misc/autoload/scene_a.scn
index 61727a57ba..eff314e29d 100644
--- a/demos/misc/autoload/scene_a.scn
+++ b/demos/misc/autoload/scene_a.scn
Binary files differ
diff --git a/demos/misc/autoload/scene_b.gd b/demos/misc/autoload/scene_b.gd
index 4a88fddda9..dea8c4623f 100644
--- a/demos/misc/autoload/scene_b.gd
+++ b/demos/misc/autoload/scene_b.gd
@@ -1,17 +1,5 @@
-
extends Panel
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
-func _ready():
- # Initalization here
- pass
-
-
-
func _on_goto_scene_pressed():
get_node("/root/global").goto_scene("res://scene_a.scn")
- pass # replace with function body
diff --git a/demos/misc/autoload/scene_b.scn b/demos/misc/autoload/scene_b.scn
index ae09eeff88..4cdb03e90e 100644
--- a/demos/misc/autoload/scene_b.scn
+++ b/demos/misc/autoload/scene_b.scn
Binary files differ
diff --git a/demos/misc/instancing/ball.scn b/demos/misc/instancing/ball.scn
index 81c222a306..4d6367885e 100644
--- a/demos/misc/instancing/ball.scn
+++ b/demos/misc/instancing/ball.scn
Binary files differ
diff --git a/demos/misc/instancing/container.scn b/demos/misc/instancing/container.scn
index 9a365ac494..0f65daa2ca 100644
--- a/demos/misc/instancing/container.scn
+++ b/demos/misc/instancing/container.scn
Binary files differ
diff --git a/demos/misc/joysticks/joysticks.gd b/demos/misc/joysticks/joysticks.gd
index d359e993e6..7add88573d 100644
--- a/demos/misc/joysticks/joysticks.gd
+++ b/demos/misc/joysticks/joysticks.gd
@@ -8,33 +8,36 @@ extends Node2D
#
# Licensed under the MIT license
+# Member variables
var joy_num
var cur_joy
var axis_value
var btn_state
-func _ready():
- set_process_input(true)
-func _input(ev):
- # get the joystick device number from the spinbox
+func _input(event):
+ # Get the joystick device number from the spinbox
joy_num = get_node("joy_num").get_value()
-
- # display the name of the joystick if we haven't already
+
+ # Display the name of the joystick if we haven't already
if joy_num != cur_joy:
cur_joy = joy_num
- get_node("joy_name").set_text( Input.get_joy_name(joy_num) )
-
- # loop through the axes and show their current values
- for axis in range(0,8):
- axis_value = Input.get_joy_axis(joy_num,axis)
- get_node("axis_prog"+str(axis)).set_value(100*axis_value)
- get_node("axis_val"+str(axis)).set_text(str(axis_value))
-
- # loop through the buttons and highlight the ones that are pressed
- for btn in range(0,17):
+ get_node("joy_name").set_text(Input.get_joy_name(joy_num))
+
+ # Loop through the axes and show their current values
+ for axis in range(0, 8):
+ axis_value = Input.get_joy_axis(joy_num, axis)
+ get_node("axis_prog" + str(axis)).set_value(100*axis_value)
+ get_node("axis_val" + str(axis)).set_text(str(axis_value))
+
+ # Loop through the buttons and highlight the ones that are pressed
+ for btn in range(0, 17):
btn_state = 1
if (Input.is_joy_button_pressed(joy_num, btn)):
- get_node("btn"+str(btn)).add_color_override("font_color",Color(1,1,1,1))
+ get_node("btn" + str(btn)).add_color_override("font_color", Color(1, 1, 1, 1))
else:
- get_node("btn"+str(btn)).add_color_override("font_color",Color(0.2,0.1,0.3,1))
+ get_node("btn" + str(btn)).add_color_override("font_color", Color(0.2, 0.1, 0.3, 1))
+
+
+func _ready():
+ set_process_input(true)
diff --git a/demos/misc/joysticks/joysticks.scn b/demos/misc/joysticks/joysticks.scn
index 5dbd7f49bf..b78bccbf33 100644
--- a/demos/misc/joysticks/joysticks.scn
+++ b/demos/misc/joysticks/joysticks.scn
Binary files differ
diff --git a/demos/misc/pause/spinpause.gd b/demos/misc/pause/spinpause.gd
index 1b8f8388f0..ea5617c06f 100644
--- a/demos/misc/pause/spinpause.gd
+++ b/demos/misc/pause/spinpause.gd
@@ -11,5 +11,3 @@ func _on_pause_pressed():
func _on_unpause_pressed():
get_node("pause_popup").hide()
get_tree().set_pause(false)
-
-
diff --git a/demos/misc/pause/spinpause.scn b/demos/misc/pause/spinpause.scn
index a3835c4374..2cbe85ec9a 100644
--- a/demos/misc/pause/spinpause.scn
+++ b/demos/misc/pause/spinpause.scn
Binary files differ
diff --git a/demos/misc/regex/regex.gd b/demos/misc/regex/regex.gd
index 409b4cab05..98e5ca8828 100644
--- a/demos/misc/regex/regex.gd
+++ b/demos/misc/regex/regex.gd
@@ -1,11 +1,15 @@
+
extends VBoxContainer
+# Member variables
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")
@@ -18,7 +22,7 @@ func update_text():
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
index 1f46521d0d..debd55504f 100644
--- a/demos/misc/regex/regex.scn
+++ b/demos/misc/regex/regex.scn
Binary files differ
diff --git a/demos/misc/scene_changer/scene_a.gd b/demos/misc/scene_changer/scene_a.gd
index 956878b0f7..0e80395e84 100644
--- a/demos/misc/scene_changer/scene_a.gd
+++ b/demos/misc/scene_changer/scene_a.gd
@@ -1,17 +1,16 @@
extends Panel
-# member variables here, example:
+# 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
+ pass # Replace with function body
diff --git a/demos/misc/scene_changer/scene_a.scn b/demos/misc/scene_changer/scene_a.scn
index 61727a57ba..9a4b6434be 100644
--- a/demos/misc/scene_changer/scene_a.scn
+++ 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
index 4f94d6bb8f..9ed13cf26b 100644
--- a/demos/misc/scene_changer/scene_b.gd
+++ b/demos/misc/scene_changer/scene_b.gd
@@ -1,17 +1,16 @@
extends Panel
-# member variables here, example:
+# 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
+ pass # Replace with function body
diff --git a/demos/misc/scene_changer/scene_b.scn b/demos/misc/scene_changer/scene_b.scn
index ae09eeff88..4cdb03e90e 100644
--- a/demos/misc/scene_changer/scene_b.scn
+++ b/demos/misc/scene_changer/scene_b.scn
Binary files differ
diff --git a/demos/misc/threads/thread.gd b/demos/misc/threads/thread.gd
index 7d8aabd1b7..1ef67e403c 100644
--- a/demos/misc/threads/thread.gd
+++ b/demos/misc/threads/thread.gd
@@ -1,31 +1,31 @@
extends Node2D
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
+# Member variables
var thread = Thread.new()
-#this function runs in a thread!
-#threads always take one userdata argument
+
+# This function runs in a thread!
+# Threads always take one userdata argument
func _bg_load(path):
print("THREAD FUNC!")
- #load the resource
+ # Load the resource
var tex = ResourceLoader.load(path)
- #call _bg_load_done on main thread
+ # Call _bg_load_done on main thread
call_deferred("_bg_load_done")
- return tex #return it
+ return tex # return it
+
func _bg_load_done():
- #wait for the thread to complete, get the returned value
+ # Wait for the thread to complete, get the returned value
var tex = thread.wait_to_finish()
- #set to the sprite
+ # Set to the sprite
get_node("sprite").set_texture(tex)
+
func _on_load_pressed():
if (thread.is_active()):
- #already working
+ # Already working
return
print("START THREAD!")
- thread.start(self,"_bg_load","res://mona.png")
+ thread.start(self, "_bg_load", "res://mona.png")
diff --git a/demos/misc/threads/thread.scn b/demos/misc/threads/thread.scn
index 349127529a..eea93615c7 100644
--- a/demos/misc/threads/thread.scn
+++ b/demos/misc/threads/thread.scn
Binary files differ
diff --git a/demos/misc/tween/engine.cfg b/demos/misc/tween/engine.cfg
index 3d3d639964..1d87303015 100644
--- a/demos/misc/tween/engine.cfg
+++ b/demos/misc/tween/engine.cfg
@@ -1,7 +1,7 @@
[application]
name="Tween Demo"
-main_scene="res://main.xml"
+main_scene="res://main.scn"
icon="res://icon.png"
target_fps=60
diff --git a/demos/misc/tween/main.gd b/demos/misc/tween/main.gd
index a0106a7682..512271311e 100644
--- a/demos/misc/tween/main.gd
+++ b/demos/misc/tween/main.gd
@@ -1,10 +1,7 @@
extends Control
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
+# Member variables
var trans = ["linear", "sine", "quint", "quart", "quad", "expo", "elastic", "cubic", "circ", "bounce", "back"]
var eases = ["in", "out", "in_out", "out_in"]
var modes = ["move", "color", "scale", "rotate", "callback", "follow", "repeat", "pause"]
@@ -14,6 +11,7 @@ var state = {
eases = Tween.EASE_IN,
}
+
func _ready():
for index in range(trans.size()):
var name = trans[index]
@@ -39,9 +37,7 @@ func _ready():
get_node("modes/repeat").set_pressed(true)
reset_tween()
-
- # Initalization here
- pass
+
func on_trans_changed(name, index):
for index in range(trans.size()):
@@ -53,7 +49,8 @@ func on_trans_changed(name, index):
state.trans = index
reset_tween()
-
+
+
func on_eases_changed(name, index):
for index in range(eases.size()):
var pressed = eases[index] == name
@@ -64,7 +61,8 @@ func on_eases_changed(name, index):
state.eases = index
reset_tween()
-
+
+
func on_modes_changed(name):
var tween = get_node("tween")
if name == "pause":
@@ -76,10 +74,12 @@ func on_modes_changed(name):
get_node("timeline").set_ignore_mouse(true)
else:
reset_tween()
-
+
+
func on_color_changed(color):
reset_tween()
-
+
+
func reset_tween():
var tween = get_node("tween")
var pos = tween.tell()
@@ -92,20 +92,20 @@ func reset_tween():
var size = get_node("tween/area").get_size()
if get_node("modes/move").is_pressed():
- tween.interpolate_method(sprite, "set_pos", Vector2(0,0), Vector2(size.width, size.height), 2, state.trans, state.eases)
- tween.interpolate_property(sprite, "transform/pos", Vector2(size.width,size.height), Vector2(0, 0), 2, state.trans, state.eases, 2)
+ tween.interpolate_method(sprite, "set_pos", Vector2(0, 0), Vector2(size.width, size.height), 2, state.trans, state.eases)
+ tween.interpolate_property(sprite, "transform/pos", Vector2(size.width, size.height), Vector2(0, 0), 2, state.trans, state.eases, 2)
if get_node("modes/color").is_pressed():
tween.interpolate_method(sprite, "set_modulate", get_node("color/color_from").get_color(), get_node("color/color_to").get_color(), 2, state.trans, state.eases)
tween.interpolate_property(sprite, "modulate", get_node("color/color_to").get_color(), get_node("color/color_from").get_color(), 2, state.trans, state.eases, 2)
else:
- sprite.set_modulate(Color(1, 1, 1, 1))
+ sprite.set_modulate(Color(1,1,1,1))
if get_node("modes/scale").is_pressed():
- tween.interpolate_method(sprite, "set_scale", Vector2(0.5,0.5), Vector2(1.5, 1.5), 2, state.trans, state.eases)
- tween.interpolate_property(sprite, "transform/scale", Vector2(1.5,1.5), Vector2(0.5, 0.5), 2, state.trans, state.eases, 2)
+ tween.interpolate_method(sprite, "set_scale", Vector2(0.5, 0.5), Vector2(1.5, 1.5), 2, state.trans, state.eases)
+ tween.interpolate_property(sprite, "transform/scale", Vector2(1.5, 1.5), Vector2(0.5, 0.5), 2, state.trans, state.eases, 2)
else:
- sprite.set_scale(Vector2(1, 1))
+ sprite.set_scale(Vector2(1,1))
if get_node("modes/rotate").is_pressed():
tween.interpolate_method(sprite, "_set_rotd", 0, 360, 2, state.trans, state.eases)
@@ -139,26 +139,27 @@ func reset_tween():
else:
tween.resume_all()
get_node("timeline").set_ignore_mouse(true)
-
-func _on_tween_step( object, key, elapsed, value ):
- var timeline = get_node("timeline")
+func _on_tween_step(object, key, elapsed, value):
+ var timeline = get_node("timeline")
+
var tween = get_node("tween")
var runtime = tween.get_runtime()
-
- var ratio = 100 * (elapsed / runtime)
- timeline.set_value(ratio)
+ var ratio = 100*(elapsed/runtime)
+ timeline.set_value(ratio)
+
-func _on_timeline_value_changed( value ):
+func _on_timeline_value_changed(value):
if !get_node("modes/pause").is_pressed():
return
var tween = get_node("tween")
var runtime = tween.get_runtime()
- tween.seek(runtime * value / 100)
-
+ tween.seek(runtime*value/100)
+
+
func on_callback(arg):
var label = get_node("tween/area/label")
label.add_text("on_callback -> " + arg + "\n")
diff --git a/demos/misc/tween/main.scn b/demos/misc/tween/main.scn
new file mode 100644
index 0000000000..3f25bfd75c
--- /dev/null
+++ b/demos/misc/tween/main.scn
Binary files differ
diff --git a/demos/misc/tween/main.xml b/demos/misc/tween/main.xml
deleted file mode 100644
index 6580ba04da..0000000000
--- a/demos/misc/tween/main.xml
+++ /dev/null
@@ -1,367 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="3" version="1.0" version_name="Godot Engine v1.0.3917-beta1">
- <ext_resource path="res://icon.png" type="Texture"></ext_resource>
- <ext_resource path="res://main.gd" type="Script"></ext_resource>
- <main_resource>
- <dictionary name="_bundled" shared="false">
- <string> "names" </string>
- <string_array len="115">
- <string> "main" </string>
- <string> "Control" </string>
- <string> "_import_path" </string>
- <string> "visibility/visible" </string>
- <string> "visibility/opacity" </string>
- <string> "visibility/self_opacity" </string>
- <string> "visibility/behind_parent" </string>
- <string> "margin/right" </string>
- <string> "margin/bottom" </string>
- <string> "transform/rot" </string>
- <string> "transform/scale" </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/vertical" </string>
- <string> "size_flags/stretch_ratio" </string>
- <string> "script/script" </string>
- <string> "__meta__" </string>
- <string> "trans" </string>
- <string> "VBoxContainer" </string>
- <string> "margin/left" </string>
- <string> "margin/top" </string>
- <string> "linear" </string>
- <string> "Button" </string>
- <string> "disabled" </string>
- <string> "pressed" </string>
- <string> "toggle_mode" </string>
- <string> "click_on_press" </string>
- <string> "text" </string>
- <string> "icon" </string>
- <string> "flat" </string>
- <string> "clip_text" </string>
- <string> "align" </string>
- <string> "sine" </string>
- <string> "quint" </string>
- <string> "quart" </string>
- <string> "quad" </string>
- <string> "expo" </string>
- <string> "elastic" </string>
- <string> "cubic" </string>
- <string> "circ" </string>
- <string> "bounce" </string>
- <string> "back" </string>
- <string> "eases" </string>
- <string> "in" </string>
- <string> "out" </string>
- <string> "in_out" </string>
- <string> "out_in" </string>
- <string> "modes" </string>
- <string> "move" </string>
- <string> "color" </string>
- <string> "scale" </string>
- <string> "rotate" </string>
- <string> "callback" </string>
- <string> "follow" </string>
- <string> "repeat" </string>
- <string> "pause" </string>
- <string> "label_1" </string>
- <string> "Label" </string>
- <string> "range/min" </string>
- <string> "range/max" </string>
- <string> "range/step" </string>
- <string> "range/page" </string>
- <string> "range/value" </string>
- <string> "range/exp_edit" </string>
- <string> "rounded_values" </string>
- <string> "valign" </string>
- <string> "autowrap" </string>
- <string> "uppercase" </string>
- <string> "percent_visible" </string>
- <string> "color_from" </string>
- <string> "ColorPicker" </string>
- <string> "label_2" </string>
- <string> "color_to" </string>
- <string> "tween" </string>
- <string> "Tween" </string>
- <string> "playback/process_mode" </string>
- <string> "playback/active" </string>
- <string> "playback/repeat" </string>
- <string> "playback/speed" </string>
- <string> "area" </string>
- <string> "Panel" </string>
- <string> "label" </string>
- <string> "RichTextLabel" </string>
- <string> "scroll_active" </string>
- <string> "scroll_follow" </string>
- <string> "tab_size" </string>
- <string> "selection_enabled" </string>
- <string> "sprite" </string>
- <string> "Sprite" </string>
- <string> "transform/pos" </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> "follow_2" </string>
- <string> "timeline" </string>
- <string> "HSlider" </string>
- <string> "tick_count" </string>
- <string> "ticks_on_borders" </string>
- <string> "_on_tween_step" </string>
- <string> "tween_step" </string>
- <string> "_on_timeline_value_changed" </string>
- <string> "value_changed" </string>
- </string_array>
- <string> "version" </string>
- <int> 1 </int>
- <string> "conn_count" </string>
- <int> 2 </int>
- <string> "node_count" </string>
- <int> 39 </int>
- <string> "variants" </string>
- <array len="104" shared="false">
- <node_path> "" </node_path>
- <bool> True </bool>
- <real> 1 </real>
- <bool> False </bool>
- <real> 800 </real>
- <real> 600 </real>
- <real> 0 </real>
- <vector2> 1, 1 </vector2>
- <int> 2 </int>
- <resource resource_type="Script" path="res://main.gd"> </resource>
- <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://main.gd" </string>
- </array>
- </dictionary>
- <string> "2D" </string>
- <dictionary shared="false">
- <string> "pixel_snap" </string>
- <bool> False </bool>
- <string> "zoom" </string>
- <real> 1.360374 </real>
- <string> "use_snap" </string>
- <bool> True </bool>
- <string> "ofs" </string>
- <vector2> -215.073, -20.8125 </vector2>
- <string> "snap" </string>
- <int> 8 </int>
- </dictionary>
- <string> "3D" </string>
- <dictionary shared="false">
- <string> "zfar" </string>
- <real> 500 </real>
- <string> "fov" </string>
- <real> 45 </real>
- <string> "viewports" </string>
- <array len="4" shared="false">
- <dictionary shared="false">
- <string> "distance" </string>
- <real> 4 </real>
- <string> "x_rot" </string>
- <real> 0 </real>
- <string> "y_rot" </string>
- <real> 0 </real>
- <string> "use_orthogonal" </string>
- <bool> False </bool>
- <string> "use_environment" </string>
- <bool> False </bool>
- <string> "pos" </string>
- <vector3> 0, 0, 0 </vector3>
- </dictionary>
- <dictionary shared="false">
- <string> "distance" </string>
- <real> 4 </real>
- <string> "x_rot" </string>
- <real> 0 </real>
- <string> "y_rot" </string>
- <real> 0 </real>
- <string> "use_orthogonal" </string>
- <bool> False </bool>
- <string> "use_environment" </string>
- <bool> False </bool>
- <string> "pos" </string>
- <vector3> 0, 0, 0 </vector3>
- </dictionary>
- <dictionary shared="false">
- <string> "distance" </string>
- <real> 4 </real>
- <string> "x_rot" </string>
- <real> 0 </real>
- <string> "y_rot" </string>
- <real> 0 </real>
- <string> "use_orthogonal" </string>
- <bool> False </bool>
- <string> "use_environment" </string>
- <bool> False </bool>
- <string> "pos" </string>
- <vector3> 0, 0, 0 </vector3>
- </dictionary>
- <dictionary shared="false">
- <string> "distance" </string>
- <real> 4 </real>
- <string> "x_rot" </string>
- <real> 0 </real>
- <string> "y_rot" </string>
- <real> 0 </real>
- <string> "use_orthogonal" </string>
- <bool> False </bool>
- <string> "use_environment" </string>
- <bool> False </bool>
- <string> "pos" </string>
- <vector3> 0, 0, 0 </vector3>
- </dictionary>
- </array>
- <string> "viewport_mode" </string>
- <int> 1 </int>
- <string> "default_light" </string>
- <bool> True </bool>
- <string> "show_grid" </string>
- <bool> True </bool>
- <string> "show_origin" </string>
- <bool> True </bool>
- <string> "znear" </string>
- <real> 0.1 </real>
- </dictionary>
- </dictionary>
- <string> "__editor_run_settings__" </string>
- <dictionary shared="false">
- <string> "custom_args" </string>
- <string> "-l $scene" </string>
- <string> "run_mode" </string>
- <int> 0 </int>
- </dictionary>
- <string> "__editor_plugin_screen__" </string>
- <string> "Script" </string>
- </dictionary>
- <real> 56 </real>
- <real> 256 </real>
- <real> 129 </real>
- <real> 582 </real>
- <dictionary shared="false">
- <string> "_editor_collapsed" </string>
- <bool> True </bool>
- </dictionary>
- <real> 73 </real>
- <real> 26 </real>
- <string> "linear" </string>
- <resource name=""></resource> <int> 1 </int>
- <real> 30 </real>
- <string> "sine" </string>
- <real> 60 </real>
- <real> 86 </real>
- <string> "quint" </string>
- <real> 90 </real>
- <real> 116 </real>
- <string> "quart" </string>
- <real> 120 </real>
- <real> 146 </real>
- <string> "quad" </string>
- <real> 150 </real>
- <real> 176 </real>
- <string> "expo" </string>
- <real> 180 </real>
- <real> 206 </real>
- <string> "elastic" </string>
- <real> 210 </real>
- <real> 236 </real>
- <string> "cubic" </string>
- <real> 240 </real>
- <real> 266 </real>
- <string> "circ" </string>
- <real> 270 </real>
- <real> 296 </real>
- <string> "bounce" </string>
- <real> 300 </real>
- <real> 326 </real>
- <string> "back" </string>
- <real> 152 </real>
- <real> 215 </real>
- <real> 372 </real>
- <dictionary shared="false">
- <string> "_editor_collapsed" </string>
- <bool> True </bool>
- </dictionary>
- <real> 63 </real>
- <string> "in" </string>
- <string> "out" </string>
- <string> "in_out" </string>
- <string> "out_in" </string>
- <real> 317 </real>
- <real> 492 </real>
- <dictionary shared="false">
- <string> "_editor_collapsed" </string>
- <bool> True </bool>
- </dictionary>
- <real> 77 </real>
- <string> "move" </string>
- <string> "color" </string>
- <string> "scale" </string>
- <string> "rotate" </string>
- <string> "callback" </string>
- <string> "follow" </string>
- <string> "repeat" </string>
- <string> "pause" </string>
- <real> 384 </real>
- <real> 760 </real>
- <real> 592 </real>
- <dictionary shared="false">
- <string> "_editor_collapsed" </string>
- <bool> True </bool>
- </dictionary>
- <real> 376 </real>
- <real> 19 </real>
- <string> "Color From:" </string>
- <int> 0 </int>
- <real> -1 </real>
- <real> 23 </real>
- <real> 174 </real>
- <real> 178 </real>
- <real> 197 </real>
- <string> "Color To:" </string>
- <real> 201 </real>
- <real> 352 </real>
- <real> 32 </real>
- <real> 768 </real>
- <real> 216 </real>
- <real> 24 </real>
- <real> 552 </real>
- <real> 160 </real>
- <string> "" </string>
- <int> 4 </int>
- <vector2> 0, 0 </vector2>
- <resource resource_type="Texture" path="res://icon.png"> </resource>
- <color> 1, 1, 1, 1 </color>
- <rect2> 0, 0, 0, 0 </rect2>
- <vector2> 0, 184 </vector2>
- <vector2> 736, 0 </vector2>
- <real> 40 </real>
- <real> 224 </real>
- <real> 100 </real>
- </array>
- <string> "nodes" </string>
- <int_array len="2229"> -1, -1, 1, 0, -1, 20, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 7, 4, 8, 5, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 1, 17, 8, 18, 8, 19, 2, 20, 9, 21, 10, 0, 0, 0, 23, 22, -1, 21, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 24, 11, 25, 12, 7, 13, 8, 14, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 3, 17, 8, 18, 8, 19, 2, 21, 15, 0, 1, 0, 27, 26, -1, 27, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 7, 16, 8, 17, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 1, 17, 8, 18, 8, 19, 2, 28, 3, 29, 3, 30, 1, 31, 3, 32, 18, 33, 19, 34, 3, 35, 3, 36, 20, 0, 1, 0, 27, 37, -1, 28, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 25, 21, 7, 16, 8, 11, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 1, 17, 8, 18, 8, 19, 2, 28, 3, 29, 3, 30, 1, 31, 3, 32, 22, 33, 19, 34, 3, 35, 3, 36, 20, 0, 1, 0, 27, 38, -1, 28, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 25, 23, 7, 16, 8, 24, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 1, 17, 8, 18, 8, 19, 2, 28, 3, 29, 3, 30, 1, 31, 3, 32, 25, 33, 19, 34, 3, 35, 3, 36, 20, 0, 1, 0, 27, 39, -1, 28, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 25, 26, 7, 16, 8, 27, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 1, 17, 8, 18, 8, 19, 2, 28, 3, 29, 3, 30, 1, 31, 3, 32, 28, 33, 19, 34, 3, 35, 3, 36, 20, 0, 1, 0, 27, 40, -1, 28, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 25, 29, 7, 16, 8, 30, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 1, 17, 8, 18, 8, 19, 2, 28, 3, 29, 3, 30, 1, 31, 3, 32, 31, 33, 19, 34, 3, 35, 3, 36, 20, 0, 1, 0, 27, 41, -1, 28, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 25, 32, 7, 16, 8, 33, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 1, 17, 8, 18, 8, 19, 2, 28, 3, 29, 3, 30, 1, 31, 3, 32, 34, 33, 19, 34, 3, 35, 3, 36, 20, 0, 1, 0, 27, 42, -1, 28, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 25, 35, 7, 16, 8, 36, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 1, 17, 8, 18, 8, 19, 2, 28, 3, 29, 3, 30, 1, 31, 3, 32, 37, 33, 19, 34, 3, 35, 3, 36, 20, 0, 1, 0, 27, 43, -1, 28, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 25, 38, 7, 16, 8, 39, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 1, 17, 8, 18, 8, 19, 2, 28, 3, 29, 3, 30, 1, 31, 3, 32, 40, 33, 19, 34, 3, 35, 3, 36, 20, 0, 1, 0, 27, 44, -1, 28, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 25, 41, 7, 16, 8, 42, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 1, 17, 8, 18, 8, 19, 2, 28, 3, 29, 3, 30, 1, 31, 3, 32, 43, 33, 19, 34, 3, 35, 3, 36, 20, 0, 1, 0, 27, 45, -1, 28, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 25, 44, 7, 16, 8, 45, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 1, 17, 8, 18, 8, 19, 2, 28, 3, 29, 3, 30, 1, 31, 3, 32, 46, 33, 19, 34, 3, 35, 3, 36, 20, 0, 1, 0, 27, 46, -1, 28, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 25, 47, 7, 16, 8, 48, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 1, 17, 8, 18, 8, 19, 2, 28, 3, 29, 3, 30, 1, 31, 3, 32, 49, 33, 19, 34, 3, 35, 3, 36, 20, 0, 0, 0, 23, 47, -1, 21, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 24, 50, 25, 12, 7, 51, 8, 52, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 3, 17, 8, 18, 8, 19, 2, 21, 53, 0, 13, 0, 27, 48, -1, 27, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 7, 54, 8, 17, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 1, 17, 8, 18, 8, 19, 2, 28, 3, 29, 3, 30, 1, 31, 3, 32, 55, 33, 19, 34, 3, 35, 3, 36, 20, 0, 13, 0, 27, 49, -1, 28, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 25, 21, 7, 54, 8, 11, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 1, 17, 8, 18, 8, 19, 2, 28, 3, 29, 3, 30, 1, 31, 3, 32, 56, 33, 19, 34, 3, 35, 3, 36, 20, 0, 13, 0, 27, 50, -1, 28, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 25, 23, 7, 54, 8, 24, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 1, 17, 8, 18, 8, 19, 2, 28, 3, 29, 3, 30, 1, 31, 3, 32, 57, 33, 19, 34, 3, 35, 3, 36, 20, 0, 13, 0, 27, 51, -1, 28, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 25, 26, 7, 54, 8, 27, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 1, 17, 8, 18, 8, 19, 2, 28, 3, 29, 3, 30, 1, 31, 3, 32, 58, 33, 19, 34, 3, 35, 3, 36, 20, 0, 0, 0, 23, 52, -1, 21, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 24, 41, 25, 12, 7, 59, 8, 60, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 3, 17, 8, 18, 8, 19, 2, 21, 61, 0, 18, 0, 27, 53, -1, 27, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 7, 62, 8, 17, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 1, 17, 8, 18, 8, 19, 2, 28, 3, 29, 3, 30, 1, 31, 3, 32, 63, 33, 19, 34, 3, 35, 3, 36, 20, 0, 18, 0, 27, 54, -1, 28, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 25, 21, 7, 62, 8, 11, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 1, 17, 8, 18, 8, 19, 2, 28, 3, 29, 3, 30, 1, 31, 3, 32, 64, 33, 19, 34, 3, 35, 3, 36, 20, 0, 18, 0, 27, 55, -1, 28, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 25, 23, 7, 62, 8, 24, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 1, 17, 8, 18, 8, 19, 2, 28, 3, 29, 3, 30, 1, 31, 3, 32, 65, 33, 19, 34, 3, 35, 3, 36, 20, 0, 18, 0, 27, 56, -1, 28, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 25, 26, 7, 62, 8, 27, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 1, 17, 8, 18, 8, 19, 2, 28, 3, 29, 3, 30, 1, 31, 3, 32, 66, 33, 19, 34, 3, 35, 3, 36, 20, 0, 18, 0, 27, 57, -1, 28, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 25, 29, 7, 62, 8, 30, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 1, 17, 8, 18, 8, 19, 2, 28, 3, 29, 3, 30, 1, 31, 3, 32, 67, 33, 19, 34, 3, 35, 3, 36, 20, 0, 18, 0, 27, 58, -1, 28, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 25, 32, 7, 62, 8, 33, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 1, 17, 8, 18, 8, 19, 2, 28, 3, 29, 3, 30, 1, 31, 3, 32, 68, 33, 19, 34, 3, 35, 3, 36, 20, 0, 18, 0, 27, 59, -1, 28, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 25, 35, 7, 62, 8, 36, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 1, 17, 8, 18, 8, 19, 2, 28, 3, 29, 3, 30, 1, 31, 3, 32, 69, 33, 19, 34, 3, 35, 3, 36, 20, 0, 18, 0, 27, 60, -1, 28, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 25, 38, 7, 62, 8, 39, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 1, 17, 8, 18, 8, 19, 2, 28, 3, 29, 3, 30, 1, 31, 3, 32, 70, 33, 19, 34, 3, 35, 3, 36, 20, 0, 0, 0, 23, 54, -1, 21, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 24, 71, 25, 41, 7, 72, 8, 73, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 3, 17, 8, 18, 8, 19, 2, 21, 74, 0, 27, 0, 62, 61, -1, 30, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 7, 75, 8, 76, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 1, 16, 1, 17, 8, 19, 2, 63, 6, 64, 2, 65, 2, 66, 2, 67, 6, 68, 3, 69, 3, 32, 77, 36, 78, 70, 78, 71, 3, 72, 3, 73, 79, 0, 27, 0, 75, 74, -1, 19, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 25, 80, 7, 75, 8, 81, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 3, 17, 8, 18, 8, 19, 2, 0, 27, 0, 62, 76, -1, 31, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 25, 82, 7, 75, 8, 83, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 1, 16, 1, 17, 8, 19, 2, 63, 6, 64, 2, 65, 2, 66, 2, 67, 6, 68, 3, 69, 3, 32, 84, 36, 78, 70, 78, 71, 3, 72, 3, 73, 79, 0, 27, 0, 75, 77, -1, 19, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 25, 85, 7, 75, 8, 86, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 3, 17, 8, 18, 8, 19, 2, 0, 0, 0, 79, 78, -1, 5, 2, 0, 80, 20, 81, 1, 82, 1, 83, 2, 0, 32, 0, 85, 84, -1, 20, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 24, 87, 25, 87, 7, 88, 8, 89, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 1, 17, 8, 18, 8, 19, 2, 0, 33, 0, 87, 86, -1, 24, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 24, 33, 25, 90, 7, 91, 8, 92, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 1, 17, 8, 19, 2, 32, 93, 88, 1, 89, 1, 90, 94, 91, 3, 0, 33, 0, 93, 92, -1, 19, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 94, 95, 9, 6, 10, 7, 95, 96, 96, 1, 97, 95, 98, 3, 99, 3, 100, 20, 101, 20, 102, 78, 103, 97, 104, 3, 105, 98, 0, 33, 0, 93, 58, -1, 19, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 94, 99, 9, 6, 10, 7, 95, 96, 96, 1, 97, 95, 98, 3, 99, 3, 100, 20, 101, 20, 102, 78, 103, 97, 104, 3, 105, 98, 0, 33, 0, 93, 106, -1, 19, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 94, 100, 9, 6, 10, 7, 95, 96, 96, 1, 97, 95, 98, 3, 99, 3, 100, 20, 101, 20, 102, 78, 103, 97, 104, 3, 105, 98, 0, 0, 0, 108, 107, -1, 28, 2, 0, 3, 1, 4, 2, 5, 2, 6, 3, 24, 101, 25, 102, 7, 72, 8, 41, 9, 6, 10, 7, 11, 0, 12, 0, 13, 0, 14, 0, 15, 3, 16, 1, 17, 8, 19, 2, 63, 6, 64, 103, 65, 2, 66, 6, 67, 2, 68, 3, 69, 3, 109, 78, 110, 3, 0 </int_array>
- <string> "conns" </string>
- <int_array len="12"> 32, 0, 112, 111, 2, 0, 38, 0, 114, 113, 2, 0 </int_array>
- </dictionary>
-
- </main_resource>
-</resource_file>
diff --git a/demos/misc/udp_chat/chat.gd b/demos/misc/udp_chat/chat.gd
index 3270eebbfe..b60afa9ded 100644
--- a/demos/misc/udp_chat/chat.gd
+++ b/demos/misc/udp_chat/chat.gd
@@ -1,72 +1,66 @@
extends Panel
-# Really simple UDP chat client, not intended as a chat example!!
+# Really simple UDP chat client, not intended as a comprehensive chat implementation.
# (UDP can lose packets and you won't normally find out, so don't do a chat this way)
# This is just a demo that shows how to use the UDP class.
+# Member variables
var udp = PacketPeerUDP.new()
-func _process(delta):
+func _process(delta):
if (not udp.is_listening()):
return
-
- while(udp.get_available_packet_count()>0):
+
+ while(udp.get_available_packet_count() > 0):
var packet = udp.get_var()
- if (typeof(packet)==TYPE_STRING):
+ if (typeof(packet) == TYPE_STRING):
var host = udp.get_packet_ip()
var port = udp.get_packet_port()
- get_node("chat/text").add_text("("+host+":"+str(port)+":) "+packet)
+ get_node("chat/text").add_text("(" + host + ":" + str(port) + ":) " + packet)
get_node("chat/text").newline()
-
-
+
func _ready():
- # Initalization here
- get_node("chat").add_style_override("panel",get_stylebox("bg","Tree"))
+ get_node("chat").add_style_override("panel", get_stylebox("bg", "Tree"))
set_process(true)
-
func send_message(text):
if (udp.is_listening()):
udp.put_var(text)
-
-
-func _on_connect_toggled( pressed ):
+func _on_connect_toggled(pressed):
if (pressed):
- var err = udp.listen( get_node("listen_port").get_val() )
- if (err!=OK):
- get_node("status").set_text("Error:\nCan't Listen.")
+ var err = udp.listen(get_node("listen_port").get_val())
+ if (err != OK):
+ get_node("status").set_text("Error:\nCan't listen.")
get_node("connect").set_pressed(false)
else:
get_node("status").set_text("Connected.")
get_node("connect").set_text("Disconnect")
err = udp.set_send_address(get_node("remote_host").get_text(),get_node("remote_port").get_val())
- if (err!=OK):
- get_node("status").set_text("Error:\nCan't Resolve.")
+ if (err != OK):
+ get_node("status").set_text("Error:\nCan't resolve.")
get_node("connect").set_pressed(false)
else:
- send_message("* "+get_node("user_name").get_text()+" entered chat.")
+ send_message("* " + get_node("user_name").get_text() + " entered chat.")
else:
-
udp.close()
get_node("status").set_text("Disconnected.")
get_node("connect").set_text("Connect")
-
+func _on_entry_line_text_entered(text):
+ _on_entry_button_pressed()
-func _on_entry_line_text_entered( text ):
- _on_entry_button_pressed();
func _on_entry_button_pressed():
var msg = get_node("entry_line").get_text()
- if (msg==""):
+ if (msg == ""):
return
- send_message(get_node("user_name").get_text()+"> "+msg)
+ send_message(get_node("user_name").get_text() + "> " + msg)
get_node("entry_line").set_text("")
diff --git a/demos/misc/udp_chat/chat.scn b/demos/misc/udp_chat/chat.scn
index efa4b799a0..fe38e9da72 100644
--- a/demos/misc/udp_chat/chat.scn
+++ b/demos/misc/udp_chat/chat.scn
Binary files differ
diff --git a/demos/misc/window_management/control.gd b/demos/misc/window_management/control.gd
index 1609dda699..cd8e0e185b 100644
--- a/demos/misc/window_management/control.gd
+++ b/demos/misc/window_management/control.gd
@@ -1,17 +1,18 @@
extends Control
+# Member variables
var mousepos
-func _fixed_process(delta):
+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"
@@ -29,119 +30,119 @@ func _fixed_process(delta):
get_node("Label_Mode").set_text(modetext)
- get_node("Label_Position").set_text( str("Position:\n", OS.get_window_position() ) )
+ 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_Size").set_text(str("Size:\n", OS.get_window_size()))
- get_node("Label_MousePosition").set_text(str("Mouse Position:\n", mousepos ) )
+ 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_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_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_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() ) )
+ 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) ) )
+ 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 )
+
+ 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") ):
+ if(!OS.has_method("get_screen_count")):
s += " - get_screen_count()\n"
- if( !OS.has_method("get_current_screen") ):
+ if(!OS.has_method("get_current_screen")):
s += " - get_current_screen()\n"
- if( !OS.has_method("set_current_screen") ):
+ if(!OS.has_method("set_current_screen")):
s += " - set_current_screen()\n"
- if( !OS.has_method("get_screen_position") ):
+ if(!OS.has_method("get_screen_position")):
s += " - get_screen_position()\n"
- if( !OS.has_method("get_screen_size") ):
+ if(!OS.has_method("get_screen_size")):
s += " - get_screen_size()\n"
- if( !OS.has_method("get_window_position") ):
+ if(!OS.has_method("get_window_position")):
s += " - get_window_position()\n"
- if( !OS.has_method("set_window_position") ):
+ if(!OS.has_method("set_window_position")):
s += " - set_window_position()\n"
- if( !OS.has_method("get_window_size") ):
+ if(!OS.has_method("get_window_size")):
s += " - get_window_size()\n"
- if( !OS.has_method("set_window_size") ):
+ if(!OS.has_method("set_window_size")):
s += " - set_window_size()\n"
- if( !OS.has_method("set_window_fullscreen") ):
+ if(!OS.has_method("set_window_fullscreen")):
s += " - set_window_fullscreen()\n"
- if( !OS.has_method("is_window_fullscreen") ):
+ if(!OS.has_method("is_window_fullscreen")):
s += " - is_window_fullscreen()\n"
- if( !OS.has_method("set_window_resizable") ):
+ if(!OS.has_method("set_window_resizable")):
s += " - set_window_resizable()\n"
- if( !OS.has_method("is_window_resizable") ):
+ if(!OS.has_method("is_window_resizable")):
s += " - is_window_resizable()\n"
- if( !OS.has_method("set_window_minimized") ):
+ if(!OS.has_method("set_window_minimized")):
s += " - set_window_minimized()\n"
- if( !OS.has_method("is_window_minimized") ):
+ if(!OS.has_method("is_window_minimized")):
s += " - is_window_minimized()\n"
- if( !OS.has_method("set_window_maximized") ):
+ if(!OS.has_method("set_window_maximized")):
s += " - set_window_maximized()\n"
- if( !OS.has_method("is_window_maximized") ):
+ if(!OS.has_method("is_window_maximized")):
s += " - is_window_maximized()\n"
- if( s.length() == 0 ):
+ 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/Text").set_text(text + s)
get_node("ImplementationDialog").show()
return false
func _ready():
- if( check_wm_api() ):
+ 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 _input(event):
+ if (event.type == InputEvent.MOUSE_MOTION):
+ mousepos = event.pos
func _on_Button_MoveTo_pressed():
- OS.set_window_position( Vector2(100,100) )
+ OS.set_window_position(Vector2(100, 100))
func _on_Button_Resize_pressed():
- OS.set_window_size( Vector2(1024,768) )
+ OS.set_window_size(Vector2(1024, 768))
func _on_Button_Screen0_pressed():
diff --git a/demos/misc/window_management/observer/observer.gd b/demos/misc/window_management/observer/observer.gd
index d27912a670..f100811859 100644
--- a/demos/misc/window_management/observer/observer.gd
+++ b/demos/misc/window_management/observer/observer.gd
@@ -1,16 +1,17 @@
extends Spatial
+# Member variables
var r_pos = Vector2()
var state
-const STATE_MENU=0
-const STATE_GRAB=1
+const STATE_MENU = 0
+const STATE_GRAB = 1
+
func direction(vector):
- var v = get_node("Camera").get_global_transform().basis * vector
+ var v = get_node("Camera").get_global_transform().basis*vector
v = v.normalized()
-
return v
@@ -22,43 +23,42 @@ func impulse(event, action):
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 dir = Vector3()
var cam = get_global_transform()
var org = get_translation()
if (Input.is_action_pressed("move_forward")):
- dir += direction(Vector3(0,0,-1))
+ dir += direction(Vector3(0, 0, -1))
if (Input.is_action_pressed("move_backwards")):
- dir += direction(Vector3(0,0,1))
+ dir += direction(Vector3(0, 0, 1))
if (Input.is_action_pressed("move_left")):
- dir += direction(Vector3(-1,0,0))
+ dir += direction(Vector3(-1, 0, 0))
if (Input.is_action_pressed("move_right")):
- dir += direction(Vector3(1,0,0))
+ dir += direction(Vector3(1, 0, 0))
dir = dir.normalized()
- move(dir * 10 * delta)
- var d = delta * 0.1
+ move(dir*10*delta)
+ var d = delta*0.1
- var yaw = get_transform().rotated(Vector3(0,1,0), d * r_pos.x)
+ 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)
+ 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 ):
+func _input(event):
if(event.type == InputEvent.MOUSE_MOTION):
r_pos = event.relative_pos
@@ -76,4 +76,3 @@ func _ready():
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
index da29ad62b8..813d7d4587 100644
--- a/demos/misc/window_management/observer/observer.scn
+++ 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
index 8db43b6638..35662871f1 100644
--- a/demos/misc/window_management/window_management.scn
+++ b/demos/misc/window_management/window_management.scn
Binary files differ
diff --git a/demos/viewport/2d_in_3d/pong.gd b/demos/viewport/2d_in_3d/pong.gd
index bfffdcf0d8..ac3457453b 100644
--- a/demos/viewport/2d_in_3d/pong.gd
+++ b/demos/viewport/2d_in_3d/pong.gd
@@ -1,73 +1,66 @@
extends Node2D
-# member variables here, example:
-# var a=2
-# var b="textvar"
+# Member variables
const INITIAL_BALL_SPEED = 80
var ball_speed = INITIAL_BALL_SPEED
-var screen_size = Vector2(640,400)
-#default ball direction
-var direction = Vector2(-1,0)
-var pad_size = Vector2(8,32)
+var screen_size = Vector2(640, 400)
+# Default ball direction
+var direction = Vector2(-1, 0)
+var pad_size = Vector2(8, 32)
const PAD_SPEED = 150
func _process(delta):
-
-
- # get ball positio and pad rectangles
+ # Get ball position and pad rectangles
var ball_pos = get_node("ball").get_pos()
- var left_rect = Rect2( get_node("left").get_pos() - pad_size*0.5, pad_size )
- var right_rect = Rect2( get_node("right").get_pos() - pad_size*0.5, pad_size )
+ var left_rect = Rect2(get_node("left").get_pos() - pad_size*0.5, pad_size)
+ var right_rect = Rect2(get_node("right").get_pos() - pad_size*0.5, pad_size)
- #integrate new ball postion
- ball_pos+=direction*ball_speed*delta
+ # Integrate new ball postion
+ ball_pos += direction*ball_speed*delta
- #flip when touching roof or floor
- if ( (ball_pos.y<0 and direction.y <0) or (ball_pos.y>screen_size.y and direction.y>0)):
+ # Flip when touching roof or floor
+ if ((ball_pos.y < 0 and direction.y < 0) or (ball_pos.y > screen_size.y and direction.y > 0)):
direction.y = -direction.y
-
- #flip, change direction and increase speed when touching pads
- if ( (left_rect.has_point(ball_pos) and direction.x < 0) or (right_rect.has_point(ball_pos) and direction.x > 0)):
- direction.x=-direction.x
- ball_speed*=1.1
- direction.y=randf()*2.0-1
+
+ # Flip, change direction and increase speed when touching pads
+ if ((left_rect.has_point(ball_pos) and direction.x < 0) or (right_rect.has_point(ball_pos) and direction.x > 0)):
+ direction.x = -direction.x
+ ball_speed *= 1.1
+ direction.y = randf()*2.0 - 1
direction = direction.normalized()
-
- #check gameover
- if (ball_pos.x<0 or ball_pos.x>screen_size.x):
- ball_pos=screen_size*0.5
- ball_speed=INITIAL_BALL_SPEED
- direction=Vector2(-1,0)
-
-
+
+ # Check gameover
+ if (ball_pos.x < 0 or ball_pos.x > screen_size.x):
+ ball_pos = screen_size*0.5
+ ball_speed = INITIAL_BALL_SPEED
+ direction = Vector2(-1, 0)
+
get_node("ball").set_pos(ball_pos)
-
- #move left pad
+
+ # Move left pad
var left_pos = get_node("left").get_pos()
if (left_pos.y > 0 and Input.is_action_pressed("left_move_up")):
- left_pos.y+=-PAD_SPEED*delta
+ left_pos.y += -PAD_SPEED*delta
if (left_pos.y < screen_size.y and Input.is_action_pressed("left_move_down")):
- left_pos.y+=PAD_SPEED*delta
-
+ left_pos.y += PAD_SPEED*delta
+
get_node("left").set_pos(left_pos)
-
- #move right pad
+
+ # Move right pad
var right_pos = get_node("right").get_pos()
if (right_pos.y > 0 and Input.is_action_pressed("right_move_up")):
- right_pos.y+=-PAD_SPEED*delta
+ right_pos.y += -PAD_SPEED*delta
if (right_pos.y < screen_size.y and Input.is_action_pressed("right_move_down")):
- right_pos.y+=PAD_SPEED*delta
-
- get_node("right").set_pos(right_pos)
+ right_pos.y += PAD_SPEED*delta
-
+ get_node("right").set_pos(right_pos)
+
func _ready():
- screen_size = get_viewport_rect().size # get actual size
+ screen_size = get_viewport_rect().size # Get actual size
pad_size = get_node("left").get_texture().get_size()
set_process(true)
-
diff --git a/demos/viewport/2d_in_3d/pong.scn b/demos/viewport/2d_in_3d/pong.scn
new file mode 100644
index 0000000000..559e2f96bc
--- /dev/null
+++ b/demos/viewport/2d_in_3d/pong.scn
Binary files differ
diff --git a/demos/viewport/2d_in_3d/pong.xml b/demos/viewport/2d_in_3d/pong.xml
deleted file mode 100644
index cf47a8db9f..0000000000
--- a/demos/viewport/2d_in_3d/pong.xml
+++ /dev/null
@@ -1,183 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" subresource_count="6" version="0.99" version_name="Godot Engine v0.99.3735-pre-beta">
- <ext_resource path="res://pong.*" type="GDScript"></ext_resource>
- <ext_resource path="res://separator.*" type="ImageTexture"></ext_resource>
- <ext_resource path="res://left_pallete.*" type="ImageTexture"></ext_resource>
- <ext_resource path="res://right_pallete.*" type="ImageTexture"></ext_resource>
- <ext_resource path="res://ball.*" type="ImageTexture"></ext_resource>
- <main_resource>
- <dictionary name="_bundled" shared="false">
- <string> "names" </string>
- <string_array len="27">
- <string> "game" </string>
- <string> "Node2D" </string>
- <string> "visibility/visible" </string>
- <string> "visibility/opacity" </string>
- <string> "visibility/self_opacity" </string>
- <string> "visibility/on_top" </string>
- <string> "transform/pos" </string>
- <string> "transform/rot" </string>
- <string> "transform/scale" </string>
- <string> "script/script" </string>
- <string> "__meta__" </string>
- <string> "left" </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> "right" </string>
- <string> "separator" </string>
- <string> "ball" </string>
- </string_array>
- <string> "version" </string>
- <int> 1 </int>
- <string> "conn_count" </string>
- <int> 0 </int>
- <string> "node_count" </string>
- <int> 5 </int>
- <string> "variants" </string>
- <array len="20" shared="false">
- <bool> True </bool>
- <real> 1 </real>
- <vector2> 0, 0 </vector2>
- <real> 0 </real>
- <vector2> 1, 1 </vector2>
- <resource resource_type="GDScript" path="res://pong.*"> </resource>
- <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://pong.gd" </string>
- </array>
- </dictionary>
- <string> "2D" </string>
- <dictionary shared="false">
- <string> "pixel_snap" </string>
- <bool> True </bool>
- <string> "zoom" </string>
- <real> 1.108033 </real>
- <string> "ofs" </string>
- <vector2> -54.59, -36.0052 </vector2>
- </dictionary>
- <string> "3D" </string>
- <dictionary shared="false">
- <string> "zfar" </string>
- <real> 500 </real>
- <string> "fov" </string>
- <real> 45 </real>
- <string> "viewports" </string>
- <array len="4" shared="false">
- <dictionary shared="false">
- <string> "distance" </string>
- <real> 4 </real>
- <string> "x_rot" </string>
- <real> 0 </real>
- <string> "y_rot" </string>
- <real> 0 </real>
- <string> "use_orthogonal" </string>
- <bool> False </bool>
- <string> "use_environment" </string>
- <bool> False </bool>
- <string> "pos" </string>
- <vector3> 0, 0, 0 </vector3>
- </dictionary>
- <dictionary shared="false">
- <string> "distance" </string>
- <real> 4 </real>
- <string> "x_rot" </string>
- <real> 0 </real>
- <string> "y_rot" </string>
- <real> 0 </real>
- <string> "use_orthogonal" </string>
- <bool> False </bool>
- <string> "use_environment" </string>
- <bool> False </bool>
- <string> "pos" </string>
- <vector3> 0, 0, 0 </vector3>
- </dictionary>
- <dictionary shared="false">
- <string> "distance" </string>
- <real> 4 </real>
- <string> "x_rot" </string>
- <real> 0 </real>
- <string> "y_rot" </string>
- <real> 0 </real>
- <string> "use_orthogonal" </string>
- <bool> False </bool>
- <string> "use_environment" </string>
- <bool> False </bool>
- <string> "pos" </string>
- <vector3> 0, 0, 0 </vector3>
- </dictionary>
- <dictionary shared="false">
- <string> "distance" </string>
- <real> 4 </real>
- <string> "x_rot" </string>
- <real> 0 </real>
- <string> "y_rot" </string>
- <real> 0 </real>
- <string> "use_orthogonal" </string>
- <bool> False </bool>
- <string> "use_environment" </string>
- <bool> False </bool>
- <string> "pos" </string>
- <vector3> 0, 0, 0 </vector3>
- </dictionary>
- </array>
- <string> "viewport_mode" </string>
- <int> 1 </int>
- <string> "default_light" </string>
- <bool> True </bool>
- <string> "show_grid" </string>
- <bool> True </bool>
- <string> "show_origin" </string>
- <bool> True </bool>
- <string> "znear" </string>
- <real> 0.1 </real>
- </dictionary>
- </dictionary>
- <string> "__editor_run_settings__" </string>
- <dictionary shared="false">
- <string> "custom_args" </string>
- <string> "-l $scene" </string>
- <string> "run_mode" </string>
- <int> 0 </int>
- </dictionary>
- <string> "__editor_plugin_screen__" </string>
- <string> "Script" </string>
- </dictionary>
- <vector2> 67.6875, 183.208 </vector2>
- <resource resource_type="ImageTexture" path="res://left_pallete.*"> </resource>
- <bool> False </bool>
- <int> 1 </int>
- <int> 0 </int>
- <color> 1, 1, 1, 1 </color>
- <rect2> 0, 0, 0, 0 </rect2>
- <vector2> 577, 187 </vector2>
- <resource resource_type="ImageTexture" path="res://right_pallete.*"> </resource>
- <vector2> 320, 200 </vector2>
- <resource resource_type="ImageTexture" path="res://separator.*"> </resource>
- <vector2> 320.283, 188 </vector2>
- <resource resource_type="ImageTexture" path="res://ball.*"> </resource>
- </array>
- <string> "nodes" </string>
- <int_array len="197"> -1, -1, 1, 0, -1, 9, 2, 0, 3, 1, 4, 1, 5, 0, 6, 2, 7, 3, 8, 4, 9, 5, 10, 6, 0, 0, 0, 12, 11, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 7, 7, 3, 8, 4, 13, 8, 14, 0, 15, 2, 16, 9, 17, 9, 18, 10, 19, 10, 20, 11, 21, 12, 22, 9, 23, 13, 0, 0, 0, 12, 24, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 14, 7, 3, 8, 4, 13, 15, 14, 0, 15, 2, 16, 9, 17, 9, 18, 10, 19, 10, 20, 11, 21, 12, 22, 9, 23, 13, 0, 0, 0, 12, 25, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 16, 7, 3, 8, 4, 13, 17, 14, 0, 15, 2, 16, 9, 17, 9, 18, 10, 19, 10, 20, 11, 21, 12, 22, 9, 23, 13, 0, 0, 0, 12, 26, -1, 18, 2, 0, 3, 1, 4, 1, 5, 0, 6, 18, 7, 3, 8, 4, 13, 19, 14, 0, 15, 2, 16, 9, 17, 9, 18, 10, 19, 10, 20, 11, 21, 12, 22, 9, 23, 13, 0 </int_array>
- <string> "conns" </string>
- <int_array len="0"> </int_array>
- </dictionary>
-
- </main_resource>
-</resource_file> \ No newline at end of file
diff --git a/demos/viewport/2d_in_3d/pong3d.gd b/demos/viewport/2d_in_3d/pong3d.gd
index 046d4dd859..79a7a36801 100644
--- a/demos/viewport/2d_in_3d/pong3d.gd
+++ b/demos/viewport/2d_in_3d/pong3d.gd
@@ -1,14 +1,7 @@
extends Spatial
-# member variables here, example:
-# var a=2
-# var b="textvar"
func _ready():
- # Initalization here
var tex = get_node("Viewport").get_render_target_texture()
- get_node("Quad").get_material_override().set_texture(FixedMaterial.PARAM_DIFFUSE,tex)
- pass
-
-
+ get_node("Quad").get_material_override().set_texture(FixedMaterial.PARAM_DIFFUSE, tex)
diff --git a/demos/viewport/2d_in_3d/pong3d.scn b/demos/viewport/2d_in_3d/pong3d.scn
index 58fd1513c0..2e60764a88 100644
--- a/demos/viewport/2d_in_3d/pong3d.scn
+++ b/demos/viewport/2d_in_3d/pong3d.scn
Binary files differ
diff --git a/demos/viewport/3d_in_2d/main.scn b/demos/viewport/3d_in_2d/main.scn
index ad371b4417..d6c4deea42 100644
--- a/demos/viewport/3d_in_2d/main.scn
+++ b/demos/viewport/3d_in_2d/main.scn
Binary files differ
diff --git a/demos/viewport/3d_in_2d/player.scn b/demos/viewport/3d_in_2d/player.scn
index d6e6ddc461..7f490237fb 100644
--- a/demos/viewport/3d_in_2d/player.scn
+++ b/demos/viewport/3d_in_2d/player.scn
Binary files differ
diff --git a/demos/viewport/3d_in_2d/player.xml b/demos/viewport/3d_in_2d/player.xml
deleted file mode 100644
index 5730336107..0000000000
--- a/demos/viewport/3d_in_2d/player.xml
+++ /dev/null
@@ -1,1736 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<resource_file type="PackedScene" version="0.99" version_name="Godot Engine v0.99.3735-pre-beta">
- <resource type="CapsuleShape" path="local://1">
- <real name="radius"> 0.4 </real>
- <real name="height"> 0.4 </real>
-
- </resource>
- <resource type="RayShape" path="local://2">
- <real name="length"> 1 </real>
-
- </resource>
- <resource type="FixedMaterial" path="local://3">
- <bool name="flags/visible"> True </bool>
- <bool name="flags/double_sided"> True </bool>
- <bool name="flags/invert_faces"> False </bool>
- <bool name="flags/unshaded"> False </bool>
- <bool name="flags/on_top"> False </bool>
- <bool name="flags/wireframe"> False </bool>
- <bool name="flags/billboard_sw"> False </bool>
- <bool name="hints/decal"> False </bool>
- <bool name="hints/opaque_pre_zpass"> False </bool>
- <bool name="hints/no_shadow"> False </bool>
- <bool name="hints/no_depth_draw"> False </bool>
- <int name="params/blend_mode"> 0 </int>
- <real name="params/line_width"> 0 </real>
- <bool name="fixed_flags/use_alpha"> False </bool>
- <bool name="fixed_flags/use_color_array"> False </bool>
- <bool name="fixed_flags/use_point_size"> False </bool>
- <color name="params/diffuse"> 0.702475, 0.707942, 0.727015, 1 </color>
- <color name="params/specular"> 0.351321, 0.35466, 0.377071, 1 </color>
- <color name="params/emission"> 0, 0, 0, 1 </color>
- <real name="params/specular_exp"> 34.20256 </real>
- <int name="params/detail_blend"> 0 </int>
- <real name="params/detail_mix"> 1 </real>
- <int name="params/normal_depth"> 1 </int>
- <real name="params/shade_param"> 0.5 </real>
- <int name="params/glow"> 0 </int>
- <real name="params/point_size"> 1 </real>
- <transform name="uv_xform"> 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 </transform>
- <resource name="textures/diffuse"></resource> <int name="textures/diffuse_tc"> 0 </int>
- <resource name="textures/detail"></resource> <int name="textures/detail_tc"> 0 </int>
- <resource name="textures/specular"></resource> <int name="textures/specular_tc"> 0 </int>
- <resource name="textures/emission"></resource> <int name="textures/emission_tc"> 0 </int>
- <resource name="textures/specular_exp"></resource> <int name="textures/specular_exp_tc"> 0 </int>
- <resource name="textures/glow"></resource> <int name="textures/glow_tc"> 0 </int>
- <resource name="textures/normal"></resource> <int name="textures/normal_tc"> 0 </int>
- <resource name="textures/shade_param"></resource> <int name="textures/shade_param_tc"> 0 </int>
-
- </resource>
- <resource type="FixedMaterial" path="local://4">
- <bool name="flags/visible"> True </bool>
- <bool name="flags/double_sided"> True </bool>
- <bool name="flags/invert_faces"> False </bool>
- <bool name="flags/unshaded"> False </bool>
- <bool name="flags/on_top"> False </bool>
- <bool name="flags/wireframe"> False </bool>
- <bool name="flags/billboard_sw"> False </bool>
- <bool name="hints/decal"> False </bool>
- <bool name="hints/opaque_pre_zpass"> False </bool>
- <bool name="hints/no_shadow"> False </bool>
- <bool name="hints/no_depth_draw"> False </bool>
- <int name="params/blend_mode"> 0 </int>
- <real name="params/line_width"> 0 </real>
- <bool name="fixed_flags/use_alpha"> False </bool>
- <bool name="fixed_flags/use_color_array"> False </bool>
- <bool name="fixed_flags/use_point_size"> False </bool>
- <color name="params/diffuse"> 0.0616188, 0.431354, 0.64, 1 </color>
- <color name="params/specular"> 0.5, 0.5, 0.5, 1 </color>
- <color name="params/emission"> 0.0196078, 0.235675, 0.675973, 1 </color>
- <real name="params/specular_exp"> 50 </real>
- <int name="params/detail_blend"> 0 </int>
- <real name="params/detail_mix"> 1 </real>
- <int name="params/normal_depth"> 1 </int>
- <real name="params/shade_param"> 0.5 </real>
- <real name="params/glow"> 0.4 </real>
- <real name="params/point_size"> 1 </real>
- <transform name="uv_xform"> 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 </transform>
- <resource name="textures/diffuse"></resource> <int name="textures/diffuse_tc"> 0 </int>
- <resource name="textures/detail"></resource> <int name="textures/detail_tc"> 0 </int>
- <resource name="textures/specular"></resource> <int name="textures/specular_tc"> 0 </int>
- <resource name="textures/emission"></resource> <int name="textures/emission_tc"> 0 </int>
- <resource name="textures/specular_exp"></resource> <int name="textures/specular_exp_tc"> 0 </int>
- <resource name="textures/glow"></resource> <int name="textures/glow_tc"> 0 </int>
- <resource name="textures/normal"></resource> <int name="textures/normal_tc"> 0 </int>
- <resource name="textures/shade_param"></resource> <int name="textures/shade_param_tc"> 0 </int>
-
- </resource>
- <resource type="Mesh" path="local://5">
- <string name="resource/name"> "Cube.002" </string>
- <dictionary name="surfaces/0" shared="false">
- <string> "alphasort" </string>
- <bool> False </bool>
- <string> "material" </string>
- <resource resource_type="FixedMaterial" path="local://3"> </resource>
- <string> "morph_arrays" </string>
- <array len="0" shared="false">
- </array>
- <string> "primitive" </string>
- <int> 4 </int>
- <string> "arrays" </string>
- <array len="9" shared="false">
- <vector3_array len="679"> 0.2607, 6.45948, 0.980779, 0.852531, 6.83043, 0.609826, 0.852531, 6.93043, 0.609826, 0.2607, 6.55948, 0.980779, 0, 7.06621, 0.103096, 0.955654, 7.06621, 0.103096, 0.852531, 6.93043, -0.403642, 0, 6.93043, -0.403642, 0, 6.45948, -0.774594, 0, 6.55948, -0.774594, 0.2607, 6.55948, -0.774594, 0.2607, 6.45948, -0.774594, 0, 6.45948, 0.980779, 0, 6.55948, 0.980779, 0.852531, 6.83043, -0.403642, 0.955654, 6.96621, 0.103096, 0, 6.93043, 0.609826, 1.70474, 3.5573, -0.353999, 1.71449, 3.62366, -0.198996, 1.77916, 3.62988, -0.16353, 1.76754, 3.55083, -0.34818, 1.71511, 3.58298, -0.0127468, 1.70308, 3.74367, 0.0692484, 1.80667, 3.81951, -0.174607, 1.52592, 3.24162, -0.0839551, 1.50573, 3.18374, -0.268539, 1.36446, 3.09798, -0.344433, 1.38154, 3.17921, -0.0161709, 2.44682, 3.07552, 0.376618, 2.28993, 2.80163, 0.457827, 2.52299, 2.59433, 0.553631, 2.69474, 2.85281, 0.479075, 2.53359, 3.02984, -0.15501, 2.55604, 3.1449, 0.136694, 2.79433, 2.92572, 0.24463, 2.78064, 2.80757, -0.0472709, 2.39441, 2.7167, -0.284614, 2.64285, 2.49755, -0.175588, 2.70938, 2.79639, 0.46437, 2.79808, 2.86134, 0.255559, 2.78589, 2.75611, -0.00442547, 2.66316, 2.47998, -0.118712, 2.38561, 2.31013, 0.396952, 2.36919, 2.23204, 0.0813577, 2.41942, 2.2435, 0.110139, 2.43405, 2.31306, 0.391226, 2.55641, 2.56618, 0.530774, 2.47334, 2.30784, -0.0772789, 2.51219, 2.31101, -0.0311523, 2.38859, 2.74151, 0.0599679, 2.38864, 2.7416, 0.0600288, 2.12663, 2.44425, -0.0282163, 2.22321, 2.52508, -0.185319, 2.13459, 2.5274, 0.293671, 0.173831, 0.925795, -0.251959, 0.323615, 0.972996, -0.416293, 0.50934, 0.00104547, -0.453384, 0.175987, 0.00104547, -0.331706, 0.916812, 0.888823, 0.214332, 0.549239, 0.836962, 0.37006, 0.552121, 0.665123, 0.401021, 0.944465, 0.443271, 0.182901, 0.631626, 1.83578, -0.105239, 0.721202, 1.70631, 0.188726, 0.913722, 0.95431, -0.169976, 0.478232, 1.53675, 0.317272, 0.454208, 1.69171, -0.268756, 0.63543, 0.987243, -0.370343, 0.262225, 1.39447, 0.162709, 0.170564, 0.859014, 0.160279, 0.255551, 1.52426, -0.294896, 0.126803, 1.32882, -0.0395796, 0.0660405, 0.880691, -0.102965, 0.19102, 1.40531, -0.162224, 0.256767, 1.56023, -0.0958005, 0.300707, 1.62315, -0.168503, 0.292542, 1.58081, -0.213789, 0.245079, 1.4957, -0.123593, 0.426543, 1.69115, -0.196413, 0.547313, 1.79071, -0.0844079, 0.586182, 1.83924, -0.0975873, 0.434509, 1.71208, -0.231916, 0.212253, 1.44274, -0.0415312, 0.220281, 1.46968, -0.143048, 0.175617, 1.41154, -0.0437374, 0.543306, 0.573346, 0.523815, 0.207486, 0.384965, 0.351051, 0.269976, 0.320526, 0.743389, 0.53325, 0.468211, 0.783185, 0.792721, 0.321493, 0.73458, 0.514523, 0.271138, 0.956088, 0.631719, 0.163855, 0.92639, 0.386424, 0.163401, 0.930524, 0.486595, 0.00104547, 1.08874, 0.326299, 0.00104547, 0.904533, 0.668445, 1.73174, 0.152757, 0.462058, 1.58268, 0.259184, 0.290415, 1.46398, 0.121989, 1.57608, 3.45117, -0.0476083, 1.50191, 3.29774, -0.132197, 1.61428, 3.4244, 0.016813, 1.66072, 3.58429, -0.072422, 1.62434, 3.38222, -0.419987, 1.67177, 3.34226, -0.426789, 1.48496, 3.24915, -0.287145, 1.54119, 3.29007, -0.372791, 1.57272, 3.23249, -0.370566, 1.79243, 3.69662, -0.478226, 1.47279, 3.17682, -0.509438, 1.6491, 3.37415, -0.611694, 1.52444, 3.47482, 0.146797, 1.97806, 2.60303, -0.0912834, 1.98619, 2.68696, 0.233771, 2.07568, 2.68462, -0.249978, 2.24859, 2.87814, -0.35026, 2.14291, 2.96404, 0.3995, 2.30152, 3.24052, 0.317542, 2.38915, 3.19439, -0.219368, 2.41174, 3.31063, 0.0752657, 0.0964089, 0.00104547, -0.196812, 0.154027, 0.441809, 0.19622, 0.835003, 0.00104547, -0.205403, 0.55748, 1.72198, 0.0964474, 0.425773, 1.62639, 0.166544, 0.447702, 1.58483, 0.201877, 0.611101, 1.70343, 0.114914, 0.506064, 1.79234, -0.0642154, 0.311982, 1.54621, 0.0812291, 0.30653, 1.48536, 0.0960338, 0.408718, 1.71209, -0.154497, 0.23599, 1.51185, -0.0296548, 0.272186, 1.57784, -0.251696, 0.0508581, 0.00104547, 0.0402964, 0.14499, 0.00104547, 0.619324, 0.916171, 0.00104547, 0.0302318, 0.874277, 0.386199, 0.339815, 0.82337, 0.00104547, 0.611434, 0.644625, 0.00104547, 0.90083, 0.19633, 0.00104547, -0.176104, 0.736495, 0.00104547, -0.182387, 0.85902, 0.00104547, 0.0313234, 0.108829, 0.00104547, 0.040049, 1.86783, 5.49219, -0.536097, 1.99626, 5.62831, -0.300326, 1.99626, 5.45781, -0.129823, 1.86783, 5.22204, -0.265945, 1.86783, 6.50041, -0.265945, 1.99626, 6.26464, -0.129823, 1.99626, 6.09414, -0.300326, 1.86783, 6.23026, -0.536097, 1.99626, 5.86123, -0.362734, 1.86783, 5.86123, -0.63498, 1.7, 6.62333, -0.336911, 1.7, 6.30123, -0.659013, 1.7, 5.42123, -0.659013, 1.7, 5.09912, -0.336911, 1.7, 5.86123, -0.776911, 1.6, 6.62333, 0.543096, 1.6, 6.30123, 0.865198, 1.7, 6.30123, 0.865198, 1.7, 6.62333, 0.543096, 1.6, 5.86123, 0.983096, 1.7, 5.86123, 0.983096, 1.6, 5.42123, 0.865198, 1.7, 5.42123, 0.865198, 1.6, 5.42123, -0.659013, 1.6, 5.09912, -0.336911, 1.6, 5.09913, 0.543096, 1.7, 5.09913, 0.543096, 1.6, 5.86123, -0.776911, 1.6, 4.98123, 0.103096, 1.7, 4.98123, 0.103096, 1.6, 6.30123, -0.659013, 1.6, 6.62333, -0.336911, 1.6, 6.74123, 0.103096, 1.7, 6.74123, 0.103096, 1.86783, 5.86123, 0.841165, 1.86783, 6.23026, 0.742282, 1.86783, 5.49219, 0.742282, 1.86783, 5.22204, 0.47213, 1.86783, 5.12316, 0.103096, 1.86783, 6.50041, 0.47213, 1.86783, 6.5993, 0.103096, 1.99626, 5.3954, 0.103096, 1.99626, 5.45781, 0.336007, 1.99626, 5.62832, 0.50651, 1.99626, 5.86123, 0.568919, 1.99626, 6.09414, 0.50651, 1.99626, 6.26464, 0.336007, 1.99626, 6.32705, 0.103096, 0.102832, 2.48009, 0.176006, 5.00021e-06, 2.4738, 0.177211, 5.00021e-06, 2.42055, 0.19141, 0.0988953, 2.42787, 0.190009, 0.149215, 2.70638, -0.125392, 0.228589, 2.63923, -0.0490058, 0.245228, 2.61305, -0.0718189, 0.152867, 2.69118, -0.160703, 5.00021e-06, 2.7271, -0.192857, 0.200279, 2.72863, -0.178996, 5.00021e-06, 2.77269, -0.218433, 0.254515, 2.5228, 0.0532499, 0.177509, 2.46933, 0.131427, 0.230502, 2.45653, 0.179303, 0.32495, 2.52211, 0.0834183, 0.31356, 2.6328, -0.0699792, 5.00021e-06, 2.38434, 0.263172, 0.134082, 2.39331, 0.261453, 4.89224e-06, 2.18251, 0.500372, 0.225093, 2.1995, 0.49518, 0.391925, 2.2292, 0.34273, 0.272307, 2.12215, 0.166987, 0.273286, 2.15284, 0.145033, 0.377566, 2.23301, 0.230347, 0.509219, 2.60277, -0.0602789, 0.306467, 2.75371, -0.22827, 0.384471, 2.30721, 0.355435, 5.53206e-06, 2.7678, -0.324424, 0.340915, 2.69228, -0.257391, 0.141881, 2.21642, -0.246023, 5.00021e-06, 2.24749, -0.273838, 0.226149, 2.1204, 0.482878, 5.00021e-06, 2.10499, 0.484715, 5.00021e-06, 1.97359, 0.0658354, 0.0951926, 1.97992, 0.0646229, 0.536694, 2.41886, 0.193185, 0.163197, 2.02451, 0.00668271, 5.00021e-06, 2.80311, -0.262553, 0.221777, 2.14883, -0.169134, 5.0058e-06, 2.08031, -0.179583, 4.99835e-06, 2.12243, -0.227502, 5.00021e-06, 1.97109, -0.0331461, 4.99835e-06, 1.97504, -0.0339018, 0.229811, 2.07077, -0.0609438, 5.0058e-06, 2.03165, -0.112157, 4.99835e-06, 2.00283, -0.0700111, 5.00021e-06, 2.14179, -0.244837, 0.549486, 2.33903, 0.185763, 0.532141, 2.52821, -0.0726373, 0.367385, 2.32682, -0.123862, 0.198102, 4.44663, -0.00271145, 0.535945, 4.16951, 0.521097, 0.681184, 4.27477, 0.307467, 0.0960235, 4.4178, 0.0939296, 0, 4.41627, 0.145479, 0, 4.10504, 0.75232, 0.295152, 4.11437, 0.707528, 0, 4.62654, -0.650476, 0.75197, 4.49872, -0.484507, 0.568386, 3.97815, -0.416848, 0, 4.0743, -0.542347, 0.453404, 3.62952, 1.15385, 0, 3.62251, 1.22471, 0, 3.3304, 0.897974, 0.354866, 3.3434, 0.864531, 0.713601, 4.46674, -0.124363, 1.03995, 4.04518, 0.442157, 1.12602, 4.3213, -0.0494407, 0, 4.73174, -0.547059, 0.464921, 4.64317, -0.424668, 0.716219, 4.58287, -0.480226, 0, 4.71901, -0.593658, 0.850048, 3.71295, 0.879328, 0.649196, 3.42772, 0.674737, 0.84841, 3.80937, 0.873472, 0.451539, 3.72707, 1.15037, 0.155937, 3.05577, 0.331006, 0.258719, 3.09481, 0.245674, 0.822291, 3.77674, 0.0641416, 0.359401, 3.14451, 0.132252, 0.226502, 3.30884, -0.183514, 0, 3.34718, -0.233548, 0, 3.04671, 0.334585, 1.1403, 4.19005, 0.0860849, 1.11025, 4.20631, -0.0820755, 0, 3.71833, 1.2227, 1.07207, 4.04817, 0.195228, 0.177538, 3.25078, -0.147598, 0, 3.28068, -0.186631, 0.249187, 2.13753, -0.031997, 0.20137, 2.11848, 0.0341487, 0.497933, 2.32861, 0.160251, 0.252884, 2.22978, -0.1047, 0.438171, 2.39896, -0.000411894, 0.941862, 3.86072, 0.194563, 0.997836, 4.10049, -0.213272, 0.87372, 3.89175, -0.186777, 0.347259, 3.23006, -0.0503454, 0.821813, 3.80214, -0.0657451, 0.908494, 3.91354, 0.153681, 1.01577, 4.06798, 0.154229, 1.07199, 4.18489, 0.0643051, 1.04723, 4.19828, -0.0742428, 2.0359, 6.20719, -0.0966551, 2.0359, 6.06097, -0.242878, 2.0359, 5.66148, -0.242878, 2.0359, 5.51526, -0.0966551, 2.0359, 5.86123, -0.296399, 2.0359, 5.86123, 0.502584, 2.0359, 6.06097, 0.449063, 2.0359, 5.66148, 0.449063, 2.0359, 5.51526, 0.30284, 2.0359, 5.46174, 0.103096, 2.0359, 6.20719, 0.30284, 2.0359, 6.26072, 0.103096, 0, 5.86123, 1.1031, 0, 5.47658, 1.00003, 0.329213, 5.47658, 1.00003, 0, 5.20179, 0.809688, 0, 4.9952, 0.603096, 0.329213, 5.20344, 0.811334, 1.15486, 6.36123, 0.969121, 1.2072, 6.11123, 1.03611, 1.39648, 6.36123, 0.969121, 0, 5.86123, -0.896911, 1.39648, 5.86123, -0.896911, 1.39648, 5.36123, -0.762936, 0, 5.36123, -0.762936, 1.39648, 4.9952, -0.396911, 0, 4.9952, -0.396911, 0.329213, 5.36123, 0.969121, 0.257147, 5.40641, 0.875976, 0.257146, 5.2834, 0.752961, 0, 5.49634, 0.900073, 0.257147, 5.49634, 0.900073, 0, 5.28211, 0.751677, 0.685695, 5.86123, 1.1031, 0.633352, 6.11123, 1.03611, 1.39648, 5.36123, 0.969121, 1.39648, 5.86123, 1.1031, 1.15486, 5.86123, 1.1031, 1.39648, 4.9952, 0.603096, 0.23657, 2.56168, 0.0584772, 0.170392, 2.51572, 0.125662, 5.00021e-06, 2.73725, -0.153025, 0.350345, 2.31871, -0.0906937, 0, 4.66231, -0.410127, 0.153299, 4.61636, -0.336561, 0.252264, 4.53307, -0.191655, 0.271744, 3.18932, -0.0437093, 0.122488, 3.05335, 0.253795, 0.202672, 3.0838, 0.187225, 0.281216, 3.12258, 0.0987407, 0, 3.04628, 0.256587, 0.954611, 4.1111, -0.182336, 0.85235, 3.93911, -0.160509, 0.809584, 3.86528, -0.0607897, 0.809978, 3.84435, 0.0462258, 0, 4.97587, -0.315884, 1.39648, 4.86123, 0.103096, 0.18642, 4.95573, -0.248219, 0.269727, 4.92174, -0.116503, 0.212301, 4.88556, 0.0356146, 0, 4.86123, 0.103096, 0.942888, 6.86123, 0.103096, 1.39648, 6.86123, 0.103096, 1.39648, 6.72725, -0.396911, 0.841135, 6.72725, -0.396911, 1.39648, 6.36123, -0.762936, 0.257165, 6.36123, -0.762936, 0.841135, 6.72725, 0.603096, 1.39648, 6.72725, 0.603096, 0, 6.36123, -0.762936, 0.257165, 6.36123, 0.969121, 0.685695, 6.36123, 0.969121, 0, 6.36123, 0.969121, -0.2607, 6.45948, 0.980779, -0.2607, 6.55948, 0.980779, -0.852531, 6.93043, 0.609826, -0.852531, 6.83043, 0.609826, -0.852531, 6.93043, -0.403642, -0.955654, 7.06621, 0.103096, -0.2607, 6.45948, -0.774594, -0.2607, 6.55948, -0.774594, -0.852531, 6.83043, -0.403642, -0.955654, 6.96621, 0.103096, -1.70474, 3.5573, -0.353999, -1.76754, 3.55083, -0.34818, -1.77916, 3.62988, -0.16353, -1.71449, 3.62366, -0.198996, -1.80667, 3.81951, -0.174607, -1.70308, 3.74367, 0.0692484, -1.71511, 3.58298, -0.0127468, -1.52592, 3.24162, -0.0839551, -1.38154, 3.17921, -0.0161709, -1.36446, 3.09798, -0.344433, -1.50573, 3.18374, -0.268539, -2.44682, 3.07552, 0.376618, -2.69474, 2.85281, 0.479075, -2.52299, 2.59433, 0.553631, -2.28993, 2.80163, 0.457827, -2.53359, 3.02984, -0.15501, -2.78064, 2.80757, -0.0472709, -2.79433, 2.92572, 0.24463, -2.55604, 3.1449, 0.136694, -2.39441, 2.7167, -0.284614, -2.64285, 2.49755, -0.175588, -2.79808, 2.86134, 0.255559, -2.70938, 2.79639, 0.46437, -2.66316, 2.47998, -0.118712, -2.78589, 2.75611, -0.00442547, -2.38561, 2.31013, 0.396952, -2.43405, 2.31306, 0.391226, -2.41942, 2.2435, 0.110139, -2.36919, 2.23204, 0.0813577, -2.55641, 2.56618, 0.530774, -2.51219, 2.31101, -0.0311523, -2.47334, 2.30784, -0.0772789, -2.38859, 2.74151, 0.0599679, -2.38864, 2.7416, 0.0600288, -2.12663, 2.44425, -0.0282163, -2.22321, 2.52508, -0.185319, -2.13459, 2.5274, 0.293671, -0.173831, 0.925795, -0.251959, -0.175987, 0.00104547, -0.331706, -0.50934, 0.00104547, -0.453384, -0.323615, 0.972996, -0.416293, -0.916812, 0.888823, 0.214332, -0.944465, 0.443271, 0.182901, -0.552121, 0.665123, 0.401021, -0.549239, 0.836962, 0.37006, -0.631626, 1.83578, -0.105239, -0.913722, 0.95431, -0.169976, -0.721202, 1.70631, 0.188726, -0.478232, 1.53675, 0.317272, -0.454208, 1.69171, -0.268756, -0.63543, 0.987243, -0.370343, -0.170564, 0.859014, 0.160279, -0.262225, 1.39447, 0.162709, -0.255551, 1.52426, -0.294896, -0.0660405, 0.880691, -0.102965, -0.126803, 1.32882, -0.0395796, -0.19102, 1.40531, -0.162224, -0.256767, 1.56023, -0.0958005, -0.245079, 1.4957, -0.123593, -0.292542, 1.58081, -0.213789, -0.300707, 1.62315, -0.168503, -0.426543, 1.69115, -0.196413, -0.434509, 1.71208, -0.231916, -0.586182, 1.83924, -0.0975873, -0.547313, 1.79071, -0.0844079, -0.212253, 1.44274, -0.0415312, -0.175617, 1.41154, -0.0437374, -0.220281, 1.46968, -0.143048, -0.543306, 0.573346, 0.523815, -0.53325, 0.468211, 0.783185, -0.269976, 0.320526, 0.743389, -0.207486, 0.384965, 0.351051, -0.792721, 0.321493, 0.73458, -0.631719, 0.163855, 0.92639, -0.514523, 0.271138, 0.956088, -0.386424, 0.163401, 0.930524, -0.486595, 0.00104547, 1.08874, -0.326299, 0.00104547, 0.904533, -0.462058, 1.58268, 0.259184, -0.668445, 1.73174, 0.152757, -0.290415, 1.46398, 0.121989, -1.57608, 3.45117, -0.0476083, -1.61428, 3.4244, 0.016813, -1.50191, 3.29774, -0.132197, -1.66072, 3.58429, -0.072422, -1.62434, 3.38222, -0.419987, -1.67177, 3.34226, -0.426789, -1.48496, 3.24915, -0.287145, -1.57272, 3.23249, -0.370566, -1.54119, 3.29007, -0.372791, -1.79243, 3.69662, -0.478226, -1.47279, 3.17682, -0.509438, -1.6491, 3.37415, -0.611694, -1.52444, 3.47482, 0.146797, -1.98619, 2.68696, 0.233771, -1.97806, 2.60303, -0.0912834, -2.07568, 2.68462, -0.249978, -2.24859, 2.87814, -0.35026, -2.14291, 2.96404, 0.3995, -2.30152, 3.24052, 0.317542, -2.38915, 3.19439, -0.219368, -2.41174, 3.31063, 0.0752657, -0.0964089, 0.00104547, -0.196812, -0.154027, 0.441809, 0.19622, -0.835003, 0.00104547, -0.205403, -0.55748, 1.72198, 0.0964474, -0.611101, 1.70343, 0.114914, -0.447702, 1.58483, 0.201877, -0.425773, 1.62639, 0.166544, -0.506064, 1.79234, -0.0642154, -0.30653, 1.48536, 0.0960338, -0.311982, 1.54621, 0.0812291, -0.408718, 1.71209, -0.154497, -0.23599, 1.51185, -0.0296548, -0.272186, 1.57784, -0.251696, -0.14499, 0.00104547, 0.619324, -0.0508581, 0.00104547, 0.0402964, -0.916171, 0.00104547, 0.0302318, -0.82337, 0.00104547, 0.611434, -0.874277, 0.386199, 0.339815, -0.644625, 0.00104547, 0.90083, -0.19633, 0.00104547, -0.176104, -0.108829, 0.00104547, 0.040049, -0.85902, 0.00104547, 0.0313234, -0.736495, 0.00104547, -0.182387, -1.86783, 5.49219, -0.536097, -1.86783, 5.22204, -0.265945, -1.99626, 5.45781, -0.129823, -1.99626, 5.62831, -0.300326, -1.86783, 6.50041, -0.265945, -1.86783, 6.23026, -0.536097, -1.99626, 6.09414, -0.300326, -1.99626, 6.26464, -0.129823, -1.86783, 5.86123, -0.63498, -1.99626, 5.86123, -0.362734, -1.7, 6.62333, -0.336911, -1.7, 6.30123, -0.659013, -1.7, 5.42123, -0.659013, -1.7, 5.09912, -0.336911, -1.7, 5.86123, -0.776911, -1.6, 6.62333, 0.543096, -1.7, 6.62333, 0.543096, -1.7, 6.30123, 0.865198, -1.6, 6.30123, 0.865198, -1.7, 5.86123, 0.983096, -1.6, 5.86123, 0.983096, -1.7, 5.42123, 0.865198, -1.6, 5.42123, 0.865198, -1.6, 5.42123, -0.659013, -1.6, 5.09912, -0.336911, -1.7, 5.09913, 0.543096, -1.6, 5.09913, 0.543096, -1.6, 5.86123, -0.776911, -1.7, 4.98123, 0.103096, -1.6, 4.98123, 0.103096, -1.6, 6.30123, -0.659013, -1.6, 6.62333, -0.336911, -1.6, 6.74123, 0.103096, -1.7, 6.74123, 0.103096, -1.86783, 6.23026, 0.742282, -1.86783, 5.86123, 0.841165, -1.86783, 5.49219, 0.742282, -1.86783, 5.22204, 0.47213, -1.86783, 5.12316, 0.103096, -1.86783, 6.5993, 0.103096, -1.86783, 6.50041, 0.47213, -1.99626, 5.45781, 0.336007, -1.99626, 5.3954, 0.103096, -1.99626, 5.86123, 0.568919, -1.99626, 5.62832, 0.50651, -1.99626, 6.09414, 0.50651, -1.99626, 6.26464, 0.336007, -1.99626, 6.32705, 0.103096, -0.102832, 2.48009, 0.176006, -0.0988953, 2.42787, 0.190009, -0.149215, 2.70638, -0.125392, -0.152867, 2.69118, -0.160703, -0.245228, 2.61305, -0.0718189, -0.228589, 2.63923, -0.0490058, -0.200279, 2.72863, -0.178996, -0.254515, 2.5228, 0.0532499, -0.32495, 2.52211, 0.0834183, -0.230502, 2.45653, 0.179303, -0.177509, 2.46933, 0.131427, -0.31356, 2.6328, -0.0699792, -0.134082, 2.39331, 0.261453, -0.225093, 2.1995, 0.49518, -0.391925, 2.2292, 0.34273, -0.377566, 2.23301, 0.230347, -0.273286, 2.15284, 0.145033, -0.272307, 2.12215, 0.166987, -0.306467, 2.75371, -0.22827, -0.509219, 2.60277, -0.0602789, -0.384471, 2.30721, 0.355435, -0.141881, 2.21642, -0.246023, -0.340915, 2.69228, -0.257391, -0.226149, 2.1204, 0.482878, -0.0951926, 1.97992, 0.0646229, -0.536694, 2.41886, 0.193185, -0.163197, 2.02451, 0.00668271, -0.221777, 2.14883, -0.169134, -0.229811, 2.07077, -0.0609438, -0.549486, 2.33903, 0.185763, -0.532141, 2.52821, -0.0726373, -0.367385, 2.32682, -0.123862, -0.198102, 4.44663, -0.00271145, -0.681184, 4.27477, 0.307467, -0.535945, 4.16951, 0.521097, -0.0960235, 4.4178, 0.0939296, -0.295152, 4.11437, 0.707528, -0.568386, 3.97815, -0.416848, -0.75197, 4.49872, -0.484507, -0.453404, 3.62952, 1.15385, -0.354866, 3.3434, 0.864531, -0.713601, 4.46674, -0.124363, -1.12602, 4.3213, -0.0494407, -1.03995, 4.04518, 0.442157, -0.716219, 4.58287, -0.480226, -0.464921, 4.64317, -0.424668, -0.850048, 3.71295, 0.879328, -0.649196, 3.42772, 0.674737, -0.84841, 3.80937, 0.873472, -0.451539, 3.72707, 1.15037, -0.258719, 3.09481, 0.245674, -0.155937, 3.05577, 0.331006, -0.822291, 3.77674, 0.0641416, -0.359401, 3.14451, 0.132252, -0.226502, 3.30884, -0.183514, -1.1403, 4.19005, 0.0860849, -1.11025, 4.20631, -0.0820755, -1.07207, 4.04817, 0.195228, -0.177538, 3.25078, -0.147598, -0.20137, 2.11848, 0.0341487, -0.249187, 2.13753, -0.031997, -0.497933, 2.32861, 0.160251, -0.252884, 2.22978, -0.1047, -0.438171, 2.39896, -0.000411894, -0.941862, 3.86072, 0.194563, -0.997836, 4.10049, -0.213272, -0.87372, 3.89175, -0.186777, -0.347259, 3.23006, -0.0503454, -0.821813, 3.80214, -0.0657451, -1.01577, 4.06798, 0.154229, -0.908494, 3.91354, 0.153681, -1.04723, 4.19828, -0.0742428, -1.07199, 4.18489, 0.0643051, -2.0359, 6.06097, -0.242878, -2.0359, 6.20719, -0.0966551, -2.0359, 5.51526, -0.0966551, -2.0359, 5.66148, -0.242878, -2.0359, 5.86123, -0.296399, -2.0359, 6.06097, 0.449063, -2.0359, 5.86123, 0.502584, -2.0359, 5.66148, 0.449063, -2.0359, 5.51526, 0.30284, -2.0359, 5.46174, 0.103096, -2.0359, 6.26072, 0.103096, -2.0359, 6.20719, 0.30284, -0.329213, 5.47658, 1.00003, -0.329213, 5.20344, 0.811334, -1.15486, 6.36123, 0.969121, -1.39648, 6.36123, 0.969121, -1.2072, 6.11123, 1.03611, -1.39648, 5.36123, -0.762936, -1.39648, 5.86123, -0.896911, -1.39648, 4.9952, -0.396911, -0.257146, 5.2834, 0.752961, -0.257147, 5.40641, 0.875976, -0.329213, 5.36123, 0.969121, -0.257147, 5.49634, 0.900073, -0.685695, 5.86123, 1.1031, -0.633352, 6.11123, 1.03611, -1.39648, 5.36123, 0.969121, -1.15486, 5.86123, 1.1031, -1.39648, 5.86123, 1.1031, -1.39648, 4.9952, 0.603096, -0.23657, 2.56168, 0.0584772, -0.170392, 2.51572, 0.125662, -0.350345, 2.31871, -0.0906937, -0.153299, 4.61636, -0.336561, -0.252264, 4.53307, -0.191655, -0.271744, 3.18932, -0.0437093, -0.202672, 3.0838, 0.187225, -0.122488, 3.05335, 0.253795, -0.281216, 3.12258, 0.0987407, -0.85235, 3.93911, -0.160509, -0.954611, 4.1111, -0.182336, -0.809584, 3.86528, -0.0607897, -0.809978, 3.84435, 0.0462258, -1.39648, 4.86123, 0.103096, -0.18642, 4.95573, -0.248219, -0.269727, 4.92174, -0.116503, -0.212301, 4.88556, 0.0356146, -0.942888, 6.86123, 0.103096, -0.841135, 6.72725, -0.396911, -1.39648, 6.72725, -0.396911, -1.39648, 6.86123, 0.103096, -0.257165, 6.36123, -0.762936, -1.39648, 6.36123, -0.762936, -1.39648, 6.72725, 0.603096, -0.841135, 6.72725, 0.603096, -0.257165, 6.36123, 0.969121, -0.685695, 6.36123, 0.969121 </vector3_array>
- <vector3_array len="679"> 0.323483, -0.753124, 0.572855, 0.771126, -0.534781, 0.345505, 0.599478, 0.562448, 0.569454, 0.202252, 0.315394, 0.927157, 0, 1, -0, 0.696021, 0.718022, -0, 0.599136, 0.562128, -0.57013, 0, 0.866019, -0.500011, 0, -0.789191, -0.614148, 0, 0.382911, -0.923785, 0.202065, 0.315101, -0.927298, 0.323297, -0.752692, -0.573527, 0, -0.789675, 0.613525, 0, 0.383265, 0.923638, 0.770859, -0.534596, -0.346386, 0.868674, -0.495384, 0, 0, 0.866452, 0.49926, 0.167052, 0.584181, -0.794246, 0.308094, 0.942288, -0.13104, -0.783538, 0.601413, -0.156107, -0.724538, 0.614456, -0.312232, -0.831821, 0.51651, -0.203201, -0.468553, 0.81396, 0.343405, -0.207013, 0.970059, -0.127008, -0.839933, 0.527586, -0.127141, -0.839469, 0.51929, -0.16009, -0.952083, -0.0830945, -0.294335, -0.969325, 0.0600821, 0.238326, -0.242219, 0.80573, 0.54049, -0.618771, 0.285356, 0.731912, -0.00900884, -0.126124, 0.991974, 0.500138, 0.3651, 0.785216, 0.0490036, 0.723054, -0.689051, 0.0889861, 0.993844, -0.0659897, 0.858321, 0.492184, 0.145054, 0.845097, 0.209024, -0.492057, -0.210106, 0.16008, -0.964484, 0.529219, -0.36215, -0.767317, 0.835061, -0.3935, 0.384488, 0.882867, -0.432425, 0.18318, 0.857612, -0.49035, 0.155111, 0.828872, -0.533561, 0.168177, -0.311554, -0.724288, 0.615094, -0.251244, -0.959933, -0.124121, 0.661603, -0.73467, 0.150137, 0.642912, -0.678963, 0.354503, 0.72766, -0.516469, 0.45141, 0.115162, -0.7841, -0.609856, 0.772162, -0.611128, 0.174036, 0.773373, -0.45522, 0.441213, 0.537341, -0.81952, 0.199126, -0.891041, -0.346405, -0.293343, -0.609658, -0.17619, -0.772835, -0.901333, -0.16224, 0.401594, -0.77153, 0.0690475, -0.632435, -0.315127, 0.0940378, -0.944379, 0.055046, -0.627524, -0.776649, -0.536581, -0.621673, -0.570617, 0.861095, 0.107012, 0.497055, -0.0380375, 0.0810799, 0.995982, -0.00700771, -0.117129, 0.993092, 0.797008, -0.304385, 0.521659, 0.524884, 0.803823, -0.279938, 0.595044, 0.585044, 0.551041, 0.871559, 0.129934, -0.472761, -0.200267, 0.367489, 0.90821, 0.0669956, 0.520966, -0.850944, 0.382844, 0.129947, -0.914628, -0.739262, 0.276472, 0.614048, -0.776468, 0.0611156, 0.627186, -0.58619, 0.359116, -0.726235, -0.959877, 0.277253, 0.0420384, -0.992667, 0.0720484, -0.0970652, -0.896641, 0.277198, -0.345247, -0.943047, 0.164182, -0.289321, -0.728454, 0.359224, -0.583363, -0.765447, 0.642375, 0.0380222, -0.855938, 0.516566, 0.0230252, -0.610501, 0.786645, -0.0920755, -0.477172, 0.854307, 0.206074, -0.309014, 0.951044, 0.00500023, -0.513202, 0.81332, -0.274108, -0.781621, 0.597475, 0.179142, -0.831231, 0.554821, 0.0350519, -0.80571, 0.57851, 0.127112, 0.0110026, 0.996233, -0.0860201, -0.616626, 0.733745, -0.28529, -0.740791, 0.504539, 0.443474, 0.0110097, 0.826727, 0.562495, 0.798668, 0.375314, 0.470393, 0.00700849, 0.548665, 0.836013, 0.68171, 0.189197, 0.706736, -0.65479, 0.336406, 0.676817, -0.0310549, -0.441781, 0.896585, -0.617121, -0.634152, 0.465846, -0.16707, 0.870366, 0.463195, -0.5063, 0.725429, 0.466276, -0.711913, 0.614788, 0.339435, -0.409744, 0.0530964, 0.910654, -0.764085, -0.38755, 0.515732, -0.847732, 0.508439, -0.15113, 0.0380266, 0.718502, 0.694485, -0.160029, 0.076014, -0.984181, -0.759497, 0.484317, -0.434284, -0.812045, -0.505651, -0.291375, -0.511638, -0.289361, -0.809009, -0.820559, 0.421287, -0.386263, -0.223103, 0.739342, -0.635294, -0.724353, 0.0750365, -0.685334, -0.43004, 0.304028, -0.850078, -0.80007, 0.434581, 0.413553, -0.0460378, -0.996819, -0.0650535, -0.0350519, -0.808196, 0.58787, 0.267172, -0.820528, -0.505325, 0.6294, -0.428272, -0.648412, 0.297403, -0.309419, 0.903223, 0.622553, 0.221196, 0.750666, 0.897953, 0.117994, -0.423978, 0.920375, 0.351143, 0.17207, -0.753305, -0.654134, 0.0681181, -0.674119, -0.252419, 0.694153, 0.713493, -0.691478, -0.113078, 0.455352, 0.602466, 0.655507, -0.318438, 0.223307, 0.921266, -0.564392, 0.704489, 0.430299, -0.398344, 0.805696, 0.438379, 0.565223, 0.681269, -0.465184, -0.74958, 0.0670519, 0.658509, -0.747893, 0.534638, 0.39347, -0.0789773, 0.541844, -0.83676, -0.969378, 0.150213, 0.194276, -0.723252, 0.667233, -0.178062, -0.702756, -0.294317, -0.647697, -0.77343, -0.576065, 0.264489, 0.64207, -0.336037, -0.689075, 0.714816, 0.636836, -0.288926, 0.692559, -0.68055, 0.239193, 0.560659, -0.716842, 0.414487, -0.216317, -0.957402, 0.19128, 0.194204, -0.972021, 0.132139, 0.711943, 0.135989, -0.688945, -0.686439, 0.302193, -0.661423, 0.776432, -0.314175, -0.546304, 0.886017, -0.231005, -0.402008, 0.886168, -0.401076, -0.232044, 0.776611, -0.545429, -0.315248, 0.776187, 0.546132, -0.315076, 0.885812, 0.401915, -0.231951, 0.885812, 0.231951, -0.401915, 0.776187, 0.315076, -0.546132, 0.885871, 0, -0.463932, 0.776359, 0, -0.630291, 0.327036, 0.818089, -0.473052, 0.327036, 0.473052, -0.818089, 0.32719, -0.472275, -0.818476, 0.327303, -0.817758, -0.473439, 0.327008, 0, -0.945022, -0.652547, 0.65655, 0.378317, -0.652728, 0.379423, 0.655732, 0.327303, 0.473439, 0.817758, 0.32719, 0.818476, 0.472275, -0.653098, 0, 0.757273, 0.327317, 0, 0.944915, -0.652976, -0.378566, 0.65598, 0.327458, -0.472662, 0.818145, -0.652547, -0.378317, -0.65655, -0.652728, -0.655732, -0.379423, -0.652976, -0.65598, 0.378566, 0.327458, -0.818145, 0.472662, -0.652603, 0, -0.7577, -0.653098, -0.757273, 0, 0.327317, -0.944915, 0, -0.6523, 0.379174, -0.656302, -0.6523, 0.656302, -0.379174, -0.652603, 0.7577, 0, 0.327008, 0.945022, -0, 0.776848, 0, 0.629688, 0.776611, 0.315248, 0.545429, 0.776856, -0.314346, 0.545601, 0.776856, -0.545601, 0.314346, 0.776848, -0.629688, 0, 0.776432, 0.546304, 0.314175, 0.776359, 0.630291, -0, 0.886281, -0.463147, 0, 0.886373, -0.401169, 0.231097, 0.886373, -0.231097, 0.401169, 0.886281, 0, 0.463147, 0.886168, 0.232044, 0.401076, 0.886017, 0.402008, 0.231005, 0.885871, 0.463932, -0, 0.320359, 0.0650729, 0.945059, 0, 0.0700382, 0.997544, 0, 0.642347, 0.766414, 0.0170187, 0.688755, 0.724794, 0.609974, 0.430981, -0.664971, 0.947519, 0.264145, -0.180099, 0.303207, 0.801547, 0.515352, 0.183115, 0.866546, 0.464292, 0, 0.882519, 0.470277, -0.0130118, 0.73066, 0.682617, 0, 0.706106, 0.708106, 0.225998, 0.736995, 0.636996, 0.221247, 0.645722, 0.730817, -0.0530284, 0.84045, 0.539289, -0.0270074, 0.825227, 0.564155, -0.0350336, 0.777746, 0.627602, 0, 0.830353, 0.557237, -0.0410178, 0.818354, 0.573248, 0, 0.314425, 0.949282, 0.27534, 0.29136, 0.916132, 0.778752, -0.489473, 0.392379, 0.746544, -0.651475, -0.135099, 0.272405, -0.803194, 0.529788, 0.652602, -0.667616, 0.35833, 0.671414, 0.730451, 0.125077, 0.357959, 0.928893, -0.0949891, 0.443473, 0.436465, 0.782835, 0, 0.377932, -0.925833, 0.555211, 0.240091, -0.796302, 0.325138, -0.340145, -0.882376, 0, -0.203036, -0.979171, 0.405354, -0.612535, 0.678593, 0, -0.671726, 0.7408, 0, -0.989545, 0.144225, 0.324316, -0.945923, 0.00700683, 0.678459, 0.508344, 0.530359, 0.581287, -0.797393, -0.16208, 0, 0.993246, -0.116029, 0.624575, -0.536494, -0.567522, 0, -0.741749, -0.670677, 0, -0.556084, -0.831126, 0, -0.999902, -0.0140126, 0, -0.966632, -0.256168, 0.738289, -0.658258, -0.147058, 0, -0.851521, -0.524321, 0, -0.900741, -0.434357, 0, -0.346076, -0.938206, 0.897164, -0.425078, 0.120022, 0.916025, -0.0850023, -0.392011, 0.746835, -0.537601, -0.391438, 0.24712, 0.836407, 0.489238, 0.187033, 0.840147, 0.509089, 0.180007, 0.858032, 0.481018, 0.245128, 0.817427, 0.521272, 0, 0.768221, 0.640184, 0, 0.834352, 0.551232, 0.143113, 0.833656, 0.53342, 0, 0.114054, -0.993474, 0.536767, 0.0429814, -0.842635, 0.34218, -0.328173, -0.880463, 0, -0.278155, -0.960536, 0.372421, -0.379429, 0.846957, 0, -0.377424, 0.926041, 0, -0.819843, 0.572589, 0.295296, -0.813817, 0.500502, 0.195064, 0.900294, 0.389127, 0.804875, 0.356387, 0.474516, 0.808731, 0.587804, -0.020993, 0, 0.994988, 0.0999987, 0.169127, 0.969729, 0.176132, 0.451126, 0.771215, -0.449125, 0, 0.777245, -0.629198, 0.78993, -0.410483, 0.455536, 0.657391, -0.729434, 0.189112, 0.705632, 0.319286, 0.632566, 0.308272, 0.411363, 0.857758, 0.231245, -0.951006, 0.205217, 0.47266, -0.881231, 0.00500699, 0.887311, -0.393138, -0.241085, 0.618412, -0.762508, -0.190127, 0.259028, -0.529057, -0.808087, 0, -0.471055, -0.882104, 0, -0.97194, 0.235228, 0.972719, -0.231933, -0.00499856, 0.748485, -0.564366, -0.348226, 0, 0.419376, 0.907813, 0.793691, -0.521454, -0.313273, 0.307062, -0.405082, -0.861174, 0, -0.36621, -0.930532, -0.256367, -0.749072, -0.610874, 0.241336, -0.969348, -0.0460641, 0.800238, -0.563168, -0.206061, 0.679395, -0.526306, -0.511297, 0.794806, -0.441448, -0.416422, 0.78099, -0.430994, -0.451994, 0.727309, -0.686292, 0.00500213, 0.915343, -0.34713, -0.204077, 0.535473, -0.673595, -0.50945, 0.971477, -0.237116, 0.00300147, 0.731118, -0.68011, -0.0540087, 0.849093, -0.528058, -0.0140015, 0.83344, -0.540285, -0.116061, 0.864591, -0.499341, -0.0560383, 0.984291, 0.153045, -0.088026, 0.984291, 0.088026, -0.153045, 0.984377, -0.0870333, -0.153059, 0.984441, -0.152068, -0.0880395, 0.984378, 0, -0.176068, 0.984551, 0, 0.175098, 0.984441, 0.0880395, 0.152068, 0.984527, -0.0870466, 0.152081, 0.984527, -0.152081, 0.0870466, 0.984551, -0.175098, 0, 0.984377, 0.153059, 0.0870333, 0.984378, 0.176068, -0, 0, 0, 1, 0, -0.848897, 0.528558, -0.210351, -0.405676, 0.889483, 0, -0.0810577, 0.996709, 0, -0.92105, 0.389444, -0.197353, -0.573024, 0.795421, -0.167145, 0.336293, 0.926806, -0.401672, 0.237397, 0.884479, 0.653302, 0.379175, 0.655303, 0, 0, -1, 0.653177, 0, -0.757205, 0.653121, -0.37807, -0.656122, 0, -0.49926, -0.866452, 0.671631, -0.686645, -0.278262, 0, -0.926881, -0.375357, -0.433934, -0.447965, 0.781683, -0.4965, -0.437441, 0.749755, -0.353503, -0.137195, 0.925318, 0, -0.848897, 0.528558, -0.359502, -0.75906, 0.542758, 0, -0.0770792, 0.997025, 0.168109, 0.172111, 0.970627, 0.402511, 0.237301, 0.884123, 0.65355, -0.378318, 0.655551, 0.653672, 0, 0.756778, -0.167136, 0.17214, 0.97079, 0.668803, -0.684822, 0.289347, 0.880048, 0.129007, 0.457025, 0.644507, 0.0390307, 0.763601, 0, 0.542878, -0.839811, 0.823173, -0.419088, -0.383081, 0, 0.941447, 0.33716, 0.175995, 0.932972, 0.31399, 0.269002, 0.885006, 0.380003, 0.644374, -0.493286, -0.584339, 0.355385, -0.786851, 0.504546, 0.641692, -0.681736, 0.351379, 0.758512, -0.647437, -0.07405, 0, -0.746027, 0.665916, 0.905274, -0.411124, -0.107032, 0.759428, -0.614346, -0.214121, 0.64053, -0.74862, -0.171142, 0.712784, -0.693763, -0.103113, 0, -0.812786, -0.582563, 0.707572, -0.706571, 0.0100081, 0.463983, -0.666975, -0.582978, 0.721736, -0.682696, -0.114116, 0.557506, -0.667605, 0.493448, 0, -0.762778, 0.64666, -0.001, 1, 0, 0.653177, 0.757205, -0, 0.652874, 0.655873, -0.378927, -0.0379873, 0.86471, -0.500832, 0.652874, 0.378927, -0.655873, -0.0350082, 0.578135, -0.81519, -0.0380063, 0.865143, 0.500083, 0.653121, 0.656122, 0.37807, 0, 0.610194, -0.792252, -0.0350367, 0.578606, 0.814854, 0.168118, 0.336236, 0.926651, 0, 0.610678, 0.791879, -0.322586, -0.753368, 0.57304, -0.201292, 0.315457, 0.927345, -0.598836, 0.562786, 0.569796, -0.77072, -0.535194, 0.345772, -0.598495, 0.562465, -0.570471, -0.695505, 0.718521, 0, -0.322401, -0.752935, -0.573713, -0.201105, 0.315165, -0.927485, -0.770452, -0.535009, -0.346654, -0.868428, -0.495815, 0, -0.166079, 0.584278, -0.794378, 0.725013, 0.614011, -0.312005, 0.783924, 0.600942, -0.155985, -0.307188, 0.942578, -0.13108, 0.20797, 0.969858, -0.126981, 0.469334, 0.813578, 0.343244, 0.832129, 0.51608, -0.203032, 0.840228, 0.527143, -0.127034, 0.969385, 0.0600239, 0.238095, 0.952177, -0.0830154, -0.294055, 0.839764, 0.518854, -0.159955, 0.243161, 0.805534, 0.540358, -0.499387, 0.365283, 0.785609, 0.0100097, -0.126123, 0.991964, 0.619388, 0.285179, 0.731458, -0.0480059, 0.723089, -0.689085, -0.844811, 0.209201, -0.492473, -0.858057, 0.492607, 0.145179, -0.087994, 0.993932, -0.0659955, 0.211062, 0.160047, -0.964281, -0.528498, -0.362341, -0.767723, -0.882646, -0.432807, 0.183342, -0.834757, -0.393829, 0.38481, -0.828558, -0.534004, 0.168317, -0.857347, -0.490771, 0.155244, 0.312458, -0.724062, 0.614902, -0.642324, -0.679401, 0.354731, -0.66104, -0.735157, 0.150236, 0.252182, -0.959691, -0.124089, -0.727189, -0.516845, 0.451739, -0.771757, -0.6116, 0.174171, -0.114173, -0.784191, -0.609926, -0.772971, -0.455572, 0.441554, -0.536629, -0.819961, 0.199233, 0.891247, -0.346096, -0.293081, 0.610287, -0.176083, -0.772363, 0.90152, -0.162094, 0.401232, 0.771935, 0.0689942, -0.631947, 0.537293, -0.621339, -0.570311, -0.0540481, -0.627558, -0.776691, 0.316027, 0.0940081, -0.944081, -0.860836, 0.107104, 0.497483, -0.796642, -0.304628, 0.522076, 0.00800875, -0.117128, 0.993085, 0.039037, 0.0810768, 0.995943, -0.524159, 0.804245, -0.280085, -0.871318, 0.130047, -0.473173, -0.594398, 0.585392, 0.551369, 0.201228, 0.367416, 0.908027, -0.0660001, 0.521001, -0.851001, -0.381991, 0.129997, -0.914978, 0.776865, 0.061068, 0.626698, 0.739716, 0.276267, 0.613594, 0.586846, 0.358906, -0.725809, 0.992681, 0.0719769, -0.0969689, 0.959955, 0.276987, 0.0419981, 0.896837, 0.27695, -0.344937, 0.943158, 0.164027, -0.289048, 0.856205, 0.516124, 0.0230055, 0.765861, 0.641883, 0.0379931, 0.728923, 0.358962, -0.582938, 0.611128, 0.786165, -0.0920193, 0.513938, 0.812902, -0.273967, 0.309918, 0.95075, 0.00499869, 0.477944, 0.853899, 0.205976, 0.78201, 0.597008, 0.179002, 0.806061, 0.578044, 0.12701, 0.83154, 0.55436, 0.0350227, -0.0100024, 0.996243, -0.086021, -0.0100089, 0.826736, 0.562501, 0.741242, 0.504165, 0.443145, 0.617246, 0.733292, -0.285114, -0.798305, 0.375614, 0.470769, -0.681174, 0.189326, 0.707219, -0.00600732, 0.548668, 0.836019, 0.655362, 0.336185, 0.676373, 0.0320557, -0.441767, 0.896557, 0.617741, -0.63376, 0.465558, 0.507043, 0.725062, 0.46604, 0.168043, 0.870221, 0.463117, 0.712406, 0.61435, 0.339193, 0.410577, 0.0530746, 0.91028, 0.848013, 0.508008, -0.151002, 0.764501, -0.387254, 0.515338, -0.0370272, 0.718529, 0.694511, 0.161004, 0.0760018, -0.984023, 0.75992, 0.483949, -0.433954, 0.812386, -0.50524, -0.291138, 0.820886, 0.420942, -0.385946, 0.512377, -0.289213, -0.808595, 0.224054, 0.739177, -0.635152, 0.724828, 0.0749822, -0.684837, 0.430854, 0.303897, -0.849712, 0.80043, 0.434233, 0.413222, 0.0360521, -0.808167, 0.587849, 0.0470365, -0.996773, -0.0650504, -0.266242, -0.820747, -0.50546, -0.628795, -0.428542, -0.648821, -0.296489, -0.309511, 0.903492, -0.621939, 0.221334, 0.751134, -0.897759, 0.1181, -0.424359, -0.920222, 0.351467, 0.172229, 0.753738, -0.65364, 0.0680667, 0.674665, -0.252249, 0.693684, -0.713001, -0.691972, -0.113159, -0.454558, 0.60274, 0.655806, 0.399186, 0.805375, 0.438204, 0.565073, 0.704091, 0.430056, 0.319337, 0.223236, 0.920972, -0.564542, 0.681654, -0.465447, 0.748334, 0.534238, 0.393175, 0.750018, 0.0670016, 0.658015, 0.0799707, 0.541802, -0.836693, 0.969438, 0.150068, 0.194088, 0.723729, 0.66675, -0.177933, 0.773832, -0.575619, 0.264284, 0.703262, -0.29411, -0.647241, -0.641482, -0.336253, -0.689518, -0.692038, -0.681022, 0.239359, -0.714327, 0.637291, -0.289132, -0.559972, -0.717244, 0.41472, 0.217271, -0.957194, 0.191239, 0.686968, 0.301986, -0.660969, -0.711449, 0.136086, -0.689435, -0.19324, -0.972209, 0.132164, -0.776034, -0.314419, -0.546728, -0.776214, -0.545854, -0.315493, -0.885953, -0.401432, -0.23225, -0.885802, -0.231209, -0.402364, -0.775789, 0.546556, -0.315321, -0.775789, 0.315321, -0.546556, -0.885597, 0.232156, -0.402271, -0.885597, 0.402271, -0.232156, -0.775961, 0, -0.630781, -0.885655, 0, -0.464344, -0.326142, 0.818357, -0.473206, -0.326142, 0.473206, -0.818357, -0.326296, -0.472429, -0.818744, -0.326409, -0.818026, -0.473594, -0.326114, 0, -0.94533, 0.653121, 0.656122, 0.37807, -0.326296, 0.818744, 0.472429, -0.326409, 0.473594, 0.818026, 0.653302, 0.379175, 0.655303, -0.326423, 0, 0.945224, 0.653672, 0, 0.756778, -0.326564, -0.472817, 0.818413, 0.65355, -0.378318, 0.655551, 0.653121, -0.37807, -0.656122, 0.653302, -0.655303, -0.379175, -0.326564, -0.818413, 0.472817, 0.65355, -0.655551, 0.378318, 0.653177, 0, -0.757205, -0.326423, -0.945224, 0, 0.653672, -0.756778, 0, 0.652874, 0.378927, -0.655873, 0.652874, 0.655873, -0.378927, 0.653177, 0.757205, -0, -0.326114, 0.94533, 0, -0.776214, 0.315493, 0.545854, -0.776451, 0, 0.630178, -0.776459, -0.314591, 0.546026, -0.776459, -0.546026, 0.314591, -0.776451, -0.630178, 0, -0.775961, 0.630781, 0, -0.776034, 0.546728, 0.314419, -0.886159, -0.401525, 0.231302, -0.886067, -0.463558, 0, -0.886067, 0, 0.463558, -0.886159, -0.231302, 0.401525, -0.885953, 0.23225, 0.401432, -0.885802, 0.402364, 0.231209, -0.885655, 0.464344, 0, -0.31946, 0.0650937, 0.945361, -0.0160178, 0.688766, 0.724806, -0.609345, 0.431244, -0.665377, -0.182148, 0.866704, 0.464377, -0.302298, 0.80179, 0.515508, -0.947416, 0.264395, -0.18027, 0.0140125, 0.730651, 0.682608, -0.225049, 0.737161, 0.637139, 0.0280069, 0.825204, 0.56414, 0.054026, 0.840405, 0.53926, -0.220295, 0.645864, 0.730978, 0.0360333, 0.777718, 0.62758, 0.0420165, 0.81832, 0.573224, -0.274414, 0.29144, 0.916384, -0.778358, -0.489855, 0.392685, -0.652026, -0.668052, 0.358564, -0.271477, -0.803413, 0.529932, -0.746101, -0.651962, -0.135199, -0.357087, 0.929225, -0.095023, -0.670864, 0.730942, 0.125161, -0.442668, 0.436659, 0.783182, -0.324243, -0.340255, -0.882662, -0.554518, 0.240224, -0.796745, -0.404517, -0.612784, 0.678868, -0.323422, -0.946236, 0.00600785, -0.677918, 0.508689, 0.530719, -0.580624, -0.797857, -0.162174, -0.623964, -0.536829, -0.567877, -0.737833, -0.658744, -0.147166, -0.896969, -0.42546, 0.12013, -0.915864, -0.0850803, -0.39237, -0.746391, -0.538003, -0.39173, -0.246181, 0.836614, 0.489359, -0.179039, 0.858186, 0.481104, -0.186067, 0.840304, 0.509184, -0.244187, 0.817627, 0.5214, -0.142132, 0.833775, 0.533496, -0.341296, -0.328285, -0.880764, -0.536055, 0.0430044, -0.843087, -0.371558, -0.37957, 0.847273, -0.294382, -0.814057, 0.50065, -0.194101, 0.90047, 0.389203, -0.808384, 0.58828, -0.02101, -0.804522, 0.356675, 0.474898, -0.450328, 0.771563, -0.449328, -0.168155, 0.969892, 0.176162, -0.789553, -0.410808, 0.455897, -0.656822, -0.729914, 0.189237, -0.705129, 0.319511, 0.633013, -0.307366, 0.41149, 0.858022, -0.471882, -0.881648, 0.00500936, -0.230297, -0.951225, 0.205264, -0.887098, -0.393487, -0.241299, -0.617794, -0.76298, -0.190244, -0.258094, -0.529194, -0.808295, -0.972665, -0.232159, -0.00500342, -0.748045, -0.564789, -0.348487, -0.79332, -0.521869, -0.313522, -0.306156, -0.405206, -0.861439, -0.240392, -0.969582, -0.0460752, 0.257302, -0.748879, -0.610717, -0.799878, -0.563619, -0.206226, -0.678856, -0.526664, -0.511645, -0.794437, -0.441799, -0.416754, -0.780599, -0.431331, -0.452347, -0.726837, -0.686791, 0.00500577, -0.915181, -0.347448, -0.204264, -0.534758, -0.673956, -0.509723, -0.97142, -0.237347, 0.00300439, -0.848814, -0.528507, -0.0140134, -0.730652, -0.680607, -0.0540482, -0.864338, -0.499774, -0.0560868, -0.833134, -0.540736, -0.116158, -0.98426, 0.0881128, -0.153196, -0.98426, 0.153196, -0.0881128, -0.98441, -0.152218, -0.0881262, -0.984346, -0.0871191, -0.15321, -0.984347, 0, -0.176241, -0.98441, 0.0881262, 0.152218, -0.98452, 0, 0.175271, -0.984497, -0.0871325, 0.152231, -0.984497, -0.152231, 0.0871325, -0.98452, -0.175271, 0, -0.984347, 0.176241, 0, -0.984346, 0.15321, 0.0871191, 0.211308, -0.405591, 0.889295, 0.198315, -0.572911, 0.795264, 0.168118, 0.336236, 0.926651, -0.652728, 0.379423, 0.655732, 0.402511, 0.237301, 0.884123, -0.652547, -0.378317, -0.65655, -0.652603, 0, -0.7577, -0.671081, -0.687107, -0.278449, 0.354379, -0.137147, 0.92499, 0.497254, -0.437223, 0.749383, 0.434747, -0.44777, 0.781343, 0.360374, -0.758786, 0.542562, -0.167136, 0.17214, 0.97079, -0.401672, 0.237397, 0.884479, -0.652976, -0.378566, 0.65598, 0.168109, 0.172111, 0.970627, -0.653098, 0, 0.757273, -0.668249, -0.685281, 0.289541, -0.879823, 0.129121, 0.457428, -0.643922, 0.0390559, 0.764094, -0.82285, -0.419434, -0.383396, -0.175025, 0.933135, 0.314046, -0.268074, 0.885244, 0.380105, -0.643788, -0.493604, -0.584716, -0.641103, -0.682174, 0.351605, -0.354509, -0.787131, 0.504725, -0.758087, -0.647929, -0.0741063, -0.759004, -0.614813, -0.214283, -0.905093, -0.411497, -0.107129, -0.639939, -0.7491, -0.171251, -0.712291, -0.694258, -0.103187, -0.707071, -0.707071, 0.0100152, -0.463198, -0.667285, -0.583249, -0.721256, -0.68319, -0.114199, -0.556815, -0.667978, 0.493723, 0.002, 0.999998, -0, 0.0389854, 0.864677, -0.500813, -0.6523, 0.656302, -0.379174, -0.652603, 0.7577, 0, 0.0360071, 0.578114, -0.815161, -0.6523, 0.379174, -0.656302, -0.652547, 0.65655, 0.378317, 0.039005, 0.86511, 0.500063, 0.0360365, 0.578586, 0.814825, -0.167145, 0.336293, 0.926806 </vector3_array>
- <nil> </nil>
- <nil> </nil>
- <nil> </nil>
- <nil> </nil>
- <real_array len="2716"> 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 9, 8, 0, 0, 8, 9, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 12, 13, 0, 0, 12, 13, 0, 0, 13, 12, 0, 0, 13, 12, 0, 0, 13, 12, 0, 0, 13, 12, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 12, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 9, 8, 0, 0, 8, 9, 0, 0, 9, 0, 0, 0, 8, 9, 0, 0, 9, 8, 0, 0, 9, 0, 0, 0, 8, 9, 0, 0, 8, 9, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 12, 13, 0, 0, 12, 13, 0, 0, 13, 12, 0, 0, 13, 12, 0, 0, 12, 13, 0, 0, 12, 13, 0, 0, 13, 12, 0, 0, 12, 13, 0, 0, 12, 13, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 7, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 11, 10, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 10, 11, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 15, 16, 0, 0, 16, 15, 0, 0, 16, 15, 0, 0, 15, 16, 0, 0, 16, 15, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 15, 0, 0, 16, 15, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 11, 10, 0, 0, 11, 0, 0, 0, 10, 11, 0, 0, 10, 11, 0, 0, 11, 10, 0, 0, 11, 0, 0, 0, 10, 11, 0, 0, 11, 0, 0, 0, 10, 11, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 15, 16, 0, 0, 16, 15, 0, 0, 16, 15, 0, 0, 15, 16, 0, 0, 15, 16, 0, 0, 16, 15, 0, 0, 15, 16, 0, 0, 15, 16, 0, 0, 15, 16, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 16, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 15, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0 </real_array>
- <real_array len="2716"> 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.5, 0.5, 0, 0, 0.503159, 0.496841, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.700171, 0.299829, 0, 0, 0.66474, 0.33526, 0, 0, 0.704636, 0.295364, 0, 0, 0.664742, 0.335258, 0, 0, 0.719812, 0.280188, 0, 0, 0.682575, 0.317425, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.664813, 0.335187, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.533212, 0.466788, 0, 0, 0.538228, 0.461772, 0, 0, 1, 0, 0, 0, 0.500006, 0.499994, 0, 0, 0.525218, 0.474782, 0, 0, 1, 0, 0, 0, 0.563768, 0.436232, 0, 0, 0.523139, 0.476861, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.665519, 0.334481, 0, 0, 0.664658, 0.335342, 0, 0, 0.676033, 0.323967, 0, 0, 0.667711, 0.332289, 0, 0, 0.668675, 0.331325, 0, 0, 0.673479, 0.326521, 0, 0, 0.667424, 0.332576, 0, 0, 0.6672, 0.3328, 0, 0, 0.664792, 0.335208, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.500004, 0.499996, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.997415, 0.00258508, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.5, 0.5, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.503159, 0.496841, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.700171, 0.299829, 0, 0, 0.664742, 0.335258, 0, 0, 0.704636, 0.295364, 0, 0, 0.66474, 0.33526, 0, 0, 0.719812, 0.280188, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.682575, 0.317425, 0, 0, 0.664813, 0.335187, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.533212, 0.466788, 0, 0, 1, 0, 0, 0, 0.538228, 0.461772, 0, 0, 0.500006, 0.499994, 0, 0, 0.525218, 0.474782, 0, 0, 1, 0, 0, 0, 0.563768, 0.436232, 0, 0, 1, 0, 0, 0, 0.523139, 0.476861, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.665519, 0.334481, 0, 0, 0.667711, 0.332289, 0, 0, 0.676033, 0.323967, 0, 0, 0.664658, 0.335342, 0, 0, 0.668675, 0.331325, 0, 0, 0.667424, 0.332576, 0, 0, 0.673479, 0.326521, 0, 0, 0.6672, 0.3328, 0, 0, 0.664792, 0.335208, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.500004, 0.499996, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 </real_array>
- <int_array len="3246"> 0, 2, 1, 0, 3, 2, 4, 6, 5, 4, 7, 6, 8, 10, 9, 8, 11, 10, 12, 3, 0, 12, 13, 3, 11, 6, 10, 11, 14, 6, 14, 5, 6, 14, 15, 5, 1, 5, 15, 1, 2, 5, 4, 2, 16, 4, 5, 2, 16, 3, 13, 16, 2, 3, 7, 10, 6, 7, 9, 10, 17, 19, 18, 17, 20, 19, 19, 22, 21, 19, 23, 22, 24, 26, 25, 24, 27, 26, 28, 30, 29, 28, 31, 30, 32, 34, 33, 32, 35, 34, 33, 31, 28, 33, 34, 31, 36, 35, 32, 36, 37, 35, 34, 38, 31, 34, 39, 38, 37, 40, 35, 37, 41, 40, 42, 44, 43, 42, 45, 44, 31, 46, 30, 31, 38, 46, 35, 39, 34, 35, 40, 39, 43, 48, 47, 43, 44, 48, 47, 41, 37, 47, 48, 41, 30, 45, 42, 30, 46, 45, 44, 49, 48, 48, 49, 41, 46, 49, 45, 39, 50, 38, 41, 50, 40, 41, 49, 50, 45, 49, 44, 38, 49, 46, 38, 50, 49, 40, 50, 39, 51, 47, 52, 51, 43, 47, 52, 37, 36, 52, 47, 37, 53, 43, 51, 53, 42, 43, 29, 42, 53, 29, 30, 42, 54, 56, 55, 54, 57, 56, 58, 60, 59, 58, 61, 60, 62, 58, 63, 62, 64, 58, 63, 59, 65, 63, 58, 59, 66, 64, 62, 66, 67, 64, 65, 69, 68, 65, 59, 69, 70, 67, 66, 70, 55, 67, 68, 72, 71, 68, 69, 72, 73, 55, 70, 73, 54, 55, 74, 76, 75, 74, 77, 76, 78, 80, 79, 78, 81, 80, 82, 83, 77, 82, 84, 83, 85, 87, 86, 85, 88, 87, 89, 90, 88, 89, 91, 90, 88, 92, 87, 88, 90, 92, 91, 93, 90, 90, 93, 92, 92, 93, 94, 55, 56, 67, 65, 95, 63, 65, 96, 95, 68, 96, 65, 68, 97, 96, 71, 54, 73, 71, 72, 54, 98, 24, 99, 98, 100, 24, 18, 21, 101, 18, 19, 21, 102, 20, 17, 102, 103, 20, 99, 25, 104, 99, 24, 25, 101, 100, 98, 101, 21, 100, 104, 106, 105, 104, 25, 106, 105, 103, 102, 105, 106, 103, 20, 23, 19, 20, 107, 23, 25, 108, 106, 25, 26, 108, 106, 109, 103, 106, 108, 109, 100, 27, 24, 100, 110, 27, 103, 107, 20, 103, 109, 107, 21, 110, 100, 21, 22, 110, 27, 111, 26, 27, 112, 111, 26, 113, 108, 26, 111, 113, 108, 114, 109, 108, 113, 114, 110, 112, 27, 110, 115, 112, 22, 115, 110, 22, 116, 115, 109, 117, 107, 109, 114, 117, 107, 118, 23, 107, 117, 118, 23, 116, 22, 23, 118, 116, 72, 57, 54, 72, 119, 57, 59, 120, 69, 59, 60, 120, 64, 61, 58, 64, 121, 61, 69, 119, 72, 69, 120, 119, 122, 124, 123, 122, 125, 124, 126, 125, 122, 126, 79, 125, 123, 128, 127, 123, 124, 128, 129, 79, 126, 129, 78, 79, 130, 77, 74, 130, 82, 77, 75, 78, 129, 75, 76, 78, 127, 82, 130, 127, 128, 82, 124, 97, 128, 124, 96, 97, 79, 95, 125, 79, 80, 95, 128, 84, 82, 128, 97, 84, 76, 81, 78, 76, 131, 81, 77, 131, 76, 77, 83, 131, 125, 96, 124, 125, 95, 96, 86, 133, 132, 86, 87, 133, 134, 89, 135, 134, 136, 89, 135, 88, 85, 135, 89, 88, 136, 91, 89, 136, 137, 91, 87, 94, 133, 87, 92, 94, 137, 93, 91, 67, 121, 64, 67, 56, 121, 83, 70, 131, 83, 73, 70, 73, 84, 71, 73, 83, 84, 63, 80, 62, 63, 95, 80, 66, 131, 70, 66, 81, 131, 97, 71, 84, 97, 68, 71, 81, 62, 80, 81, 66, 62, 138, 140, 139, 138, 141, 140, 57, 139, 56, 138, 139, 119, 119, 139, 57, 56, 139, 121, 132, 136, 134, 132, 133, 136, 137, 133, 94, 137, 136, 133, 94, 93, 137, 142, 144, 143, 142, 145, 144, 146, 148, 147, 146, 149, 148, 149, 150, 148, 149, 151, 150, 151, 143, 150, 151, 142, 143, 152, 149, 146, 152, 153, 149, 154, 145, 142, 154, 155, 145, 156, 142, 151, 156, 154, 142, 153, 151, 149, 153, 156, 151, 157, 159, 158, 157, 160, 159, 158, 162, 161, 158, 159, 162, 161, 164, 163, 161, 162, 164, 165, 155, 154, 165, 166, 155, 163, 168, 167, 163, 164, 168, 169, 154, 156, 169, 165, 154, 167, 171, 170, 167, 168, 171, 172, 156, 153, 172, 169, 156, 173, 153, 152, 173, 172, 153, 174, 160, 157, 174, 175, 160, 159, 176, 162, 159, 177, 176, 162, 178, 164, 162, 176, 178, 164, 179, 168, 164, 178, 179, 168, 180, 171, 168, 179, 180, 175, 181, 160, 175, 182, 181, 160, 177, 159, 160, 181, 177, 179, 183, 180, 179, 184, 183, 176, 185, 178, 176, 186, 185, 177, 186, 176, 177, 187, 186, 181, 187, 177, 181, 188, 187, 178, 184, 179, 178, 185, 184, 182, 188, 181, 182, 189, 188, 182, 147, 189, 182, 146, 147, 145, 183, 144, 145, 180, 183, 175, 146, 182, 175, 152, 146, 155, 180, 145, 155, 171, 180, 174, 152, 175, 174, 173, 152, 166, 171, 155, 166, 170, 171, 190, 192, 191, 190, 193, 192, 194, 196, 195, 194, 197, 196, 198, 199, 197, 198, 200, 199, 201, 203, 202, 201, 204, 203, 197, 205, 196, 197, 199, 205, 193, 206, 192, 193, 207, 206, 196, 204, 201, 196, 205, 204, 202, 207, 193, 202, 203, 207, 207, 208, 206, 207, 209, 208, 210, 212, 211, 210, 213, 212, 199, 214, 205, 199, 215, 214, 203, 209, 207, 203, 216, 209, 217, 219, 218, 217, 220, 219, 221, 223, 222, 221, 224, 223, 205, 225, 204, 205, 214, 225, 204, 216, 203, 204, 225, 216, 224, 211, 226, 221, 211, 224, 210, 211, 221, 200, 215, 199, 200, 227, 215, 219, 229, 228, 219, 230, 229, 224, 231, 223, 224, 232, 231, 228, 234, 233, 228, 229, 234, 226, 232, 224, 226, 235, 232, 220, 230, 219, 220, 236, 230, 233, 235, 226, 233, 234, 235, 237, 214, 238, 237, 225, 214, 215, 238, 214, 215, 218, 238, 218, 227, 217, 218, 215, 227, 221, 216, 210, 221, 209, 216, 209, 222, 208, 209, 221, 222, 225, 210, 216, 225, 237, 210, 218, 219, 238, 238, 219, 239, 239, 219, 228, 240, 242, 241, 243, 245, 244, 243, 246, 245, 247, 249, 248, 247, 250, 249, 251, 253, 252, 251, 254, 253, 255, 256, 242, 255, 257, 256, 258, 260, 259, 258, 261, 260, 262, 254, 251, 262, 263, 254, 242, 264, 241, 242, 256, 264, 240, 246, 243, 240, 241, 246, 241, 265, 246, 241, 264, 265, 259, 257, 255, 259, 260, 257, 263, 266, 254, 263, 267, 266, 268, 267, 263, 268, 269, 267, 250, 270, 249, 250, 271, 270, 254, 272, 253, 254, 266, 272, 251, 264, 262, 251, 265, 264, 248, 261, 247, 248, 260, 261, 257, 273, 256, 260, 274, 257, 260, 248, 274, 265, 252, 275, 265, 251, 252, 256, 262, 264, 256, 276, 262, 246, 275, 245, 246, 265, 275, 271, 277, 270, 271, 278, 277, 226, 279, 233, 226, 280, 279, 211, 280, 226, 211, 212, 280, 237, 213, 210, 237, 281, 213, 233, 282, 228, 233, 279, 282, 238, 281, 237, 238, 283, 281, 276, 284, 262, 262, 284, 268, 262, 268, 263, 248, 249, 274, 274, 249, 285, 285, 249, 286, 249, 287, 286, 249, 270, 287, 286, 287, 288, 288, 287, 268, 268, 287, 269, 276, 289, 284, 276, 290, 289, 274, 291, 273, 274, 292, 291, 273, 290, 276, 273, 291, 290, 273, 257, 274, 256, 273, 276, 147, 294, 293, 147, 148, 294, 143, 296, 295, 143, 144, 296, 150, 295, 297, 150, 143, 295, 148, 297, 294, 148, 150, 297, 187, 298, 186, 187, 299, 298, 186, 300, 185, 186, 298, 300, 185, 301, 184, 185, 300, 301, 184, 302, 183, 184, 301, 302, 189, 303, 188, 189, 304, 303, 188, 299, 187, 188, 303, 299, 305, 307, 306, 308, 310, 309, 311, 313, 312, 189, 293, 304, 189, 147, 293, 144, 302, 296, 144, 183, 302, 314, 316, 315, 314, 317, 316, 317, 318, 316, 317, 319, 318, 310, 321, 320, 310, 322, 321, 307, 323, 306, 307, 324, 323, 320, 324, 307, 320, 321, 324, 308, 322, 310, 308, 325, 322, 326, 305, 327, 328, 330, 329, 328, 326, 330, 326, 320, 307, 320, 326, 328, 328, 310, 320, 326, 307, 305, 309, 310, 331, 331, 310, 328, 312, 329, 330, 313, 329, 312, 195, 201, 332, 195, 196, 201, 333, 193, 190, 333, 202, 193, 334, 197, 194, 334, 198, 197, 332, 202, 333, 332, 201, 202, 239, 283, 238, 239, 335, 283, 336, 259, 337, 336, 258, 259, 337, 255, 338, 337, 259, 255, 338, 242, 240, 338, 255, 242, 270, 339, 287, 270, 277, 339, 267, 340, 266, 267, 341, 340, 287, 342, 269, 287, 339, 342, 269, 341, 267, 269, 342, 341, 266, 343, 272, 266, 340, 343, 286, 344, 285, 286, 345, 344, 228, 335, 239, 228, 282, 335, 288, 345, 286, 288, 346, 345, 268, 346, 288, 268, 347, 346, 284, 347, 268, 284, 289, 347, 285, 292, 274, 285, 344, 292, 348, 318, 319, 348, 349, 318, 350, 349, 348, 351, 349, 350, 352, 349, 351, 353, 349, 352, 309, 349, 353, 309, 331, 349, 354, 356, 355, 354, 357, 356, 357, 358, 356, 357, 359, 358, 354, 361, 360, 354, 355, 361, 362, 314, 359, 359, 314, 358, 358, 314, 315, 360, 361, 363, 363, 361, 313, 363, 313, 364, 364, 313, 311, 365, 363, 305, 364, 327, 363, 327, 305, 363, 366, 368, 367, 366, 369, 368, 4, 370, 7, 4, 371, 370, 8, 373, 372, 8, 9, 373, 12, 367, 13, 12, 366, 367, 372, 370, 374, 372, 373, 370, 374, 371, 375, 374, 370, 371, 369, 371, 368, 369, 375, 371, 4, 368, 371, 4, 16, 368, 16, 367, 368, 16, 13, 367, 7, 373, 9, 7, 370, 373, 376, 378, 377, 376, 379, 378, 378, 381, 380, 378, 382, 381, 383, 385, 384, 383, 386, 385, 387, 389, 388, 387, 390, 389, 391, 393, 392, 391, 394, 393, 394, 388, 393, 394, 387, 388, 395, 392, 396, 395, 391, 392, 393, 398, 397, 393, 388, 398, 396, 400, 399, 396, 392, 400, 401, 403, 402, 401, 404, 403, 388, 405, 398, 388, 389, 405, 392, 397, 400, 392, 393, 397, 404, 406, 403, 404, 407, 406, 407, 399, 406, 407, 396, 399, 389, 402, 405, 389, 401, 402, 403, 406, 408, 406, 399, 408, 405, 402, 408, 397, 398, 409, 399, 409, 408, 399, 400, 409, 402, 403, 408, 398, 408, 409, 398, 405, 408, 400, 397, 409, 410, 407, 404, 410, 411, 407, 411, 396, 407, 411, 395, 396, 412, 404, 401, 412, 410, 404, 390, 401, 389, 390, 412, 401, 413, 415, 414, 413, 416, 415, 417, 419, 418, 417, 420, 419, 421, 417, 422, 421, 423, 417, 423, 420, 417, 423, 424, 420, 425, 422, 426, 425, 421, 422, 424, 427, 420, 424, 428, 427, 429, 426, 416, 429, 425, 426, 428, 430, 427, 428, 431, 430, 432, 416, 413, 432, 429, 416, 433, 435, 434, 433, 436, 435, 437, 439, 438, 437, 440, 439, 441, 443, 442, 441, 434, 443, 444, 446, 445, 444, 447, 446, 448, 450, 449, 448, 445, 450, 445, 451, 450, 445, 446, 451, 449, 450, 452, 450, 451, 452, 451, 453, 452, 416, 426, 415, 424, 455, 454, 424, 423, 455, 428, 454, 456, 428, 424, 454, 431, 413, 430, 431, 432, 413, 457, 383, 458, 457, 459, 383, 379, 382, 378, 379, 460, 382, 461, 377, 462, 461, 376, 377, 459, 386, 383, 459, 463, 386, 460, 458, 382, 460, 457, 458, 463, 464, 386, 463, 465, 464, 465, 462, 464, 465, 461, 462, 377, 380, 466, 377, 378, 380, 386, 467, 385, 386, 464, 467, 464, 468, 467, 464, 462, 468, 458, 384, 469, 458, 383, 384, 462, 466, 468, 462, 377, 466, 382, 469, 381, 382, 458, 469, 384, 471, 470, 384, 385, 471, 385, 472, 471, 385, 467, 472, 467, 473, 472, 467, 468, 473, 469, 470, 474, 469, 384, 470, 381, 474, 475, 381, 469, 474, 468, 476, 473, 468, 466, 476, 466, 477, 476, 466, 380, 477, 380, 475, 477, 380, 381, 475, 430, 414, 478, 430, 413, 414, 420, 479, 419, 420, 427, 479, 422, 418, 480, 422, 417, 418, 427, 478, 479, 427, 430, 478, 481, 483, 482, 481, 484, 483, 485, 482, 440, 485, 481, 482, 484, 486, 483, 484, 487, 486, 488, 440, 437, 488, 485, 440, 489, 434, 441, 489, 433, 434, 436, 437, 435, 436, 488, 437, 487, 441, 486, 487, 489, 441, 483, 456, 454, 483, 486, 456, 440, 455, 439, 440, 482, 455, 486, 442, 456, 486, 441, 442, 435, 438, 490, 435, 437, 438, 434, 490, 443, 434, 435, 490, 482, 454, 455, 482, 483, 454, 447, 491, 446, 447, 492, 491, 493, 448, 494, 493, 495, 448, 495, 445, 448, 495, 444, 445, 494, 449, 496, 494, 448, 449, 446, 453, 451, 446, 491, 453, 496, 449, 452, 426, 480, 415, 426, 422, 480, 443, 429, 432, 443, 490, 429, 432, 442, 443, 432, 431, 442, 423, 439, 455, 423, 421, 439, 425, 490, 438, 425, 429, 490, 456, 431, 428, 456, 442, 431, 438, 421, 425, 438, 439, 421, 497, 499, 498, 497, 500, 499, 414, 415, 500, 497, 478, 500, 478, 414, 500, 415, 480, 500, 492, 494, 491, 492, 493, 494, 496, 491, 494, 496, 453, 491, 453, 496, 452, 501, 503, 502, 501, 504, 503, 505, 507, 506, 505, 508, 507, 506, 510, 509, 506, 507, 510, 509, 504, 501, 509, 510, 504, 511, 506, 512, 511, 505, 506, 513, 502, 514, 513, 501, 502, 515, 501, 513, 515, 509, 501, 512, 509, 515, 512, 506, 509, 516, 518, 517, 516, 519, 518, 519, 520, 518, 519, 521, 520, 521, 522, 520, 521, 523, 522, 524, 514, 525, 524, 513, 514, 523, 526, 522, 523, 527, 526, 528, 513, 524, 528, 515, 513, 527, 529, 526, 527, 530, 529, 531, 515, 528, 531, 512, 515, 532, 512, 531, 532, 511, 512, 533, 517, 534, 533, 516, 517, 518, 536, 535, 518, 520, 536, 520, 537, 536, 520, 522, 537, 522, 538, 537, 522, 526, 538, 526, 539, 538, 526, 529, 539, 534, 541, 540, 534, 517, 541, 517, 535, 541, 517, 518, 535, 538, 543, 542, 538, 539, 543, 536, 545, 544, 536, 537, 545, 535, 544, 546, 535, 536, 544, 541, 546, 547, 541, 535, 546, 537, 542, 545, 537, 538, 542, 540, 547, 548, 540, 541, 547, 540, 508, 505, 540, 548, 508, 502, 543, 539, 502, 503, 543, 534, 505, 511, 534, 540, 505, 514, 539, 529, 514, 502, 539, 533, 511, 532, 533, 534, 511, 525, 529, 530, 525, 514, 529, 549, 192, 550, 549, 191, 192, 551, 553, 552, 551, 554, 553, 198, 555, 200, 198, 552, 555, 556, 558, 557, 556, 559, 558, 552, 560, 555, 552, 553, 560, 550, 206, 561, 550, 192, 206, 553, 557, 560, 553, 556, 557, 559, 561, 558, 559, 550, 561, 561, 208, 562, 561, 206, 208, 563, 565, 564, 563, 566, 565, 555, 568, 567, 555, 560, 568, 558, 562, 569, 558, 561, 562, 217, 570, 220, 217, 571, 570, 572, 223, 573, 572, 222, 223, 560, 574, 568, 560, 557, 574, 557, 569, 574, 557, 558, 569, 566, 573, 575, 566, 572, 573, 563, 572, 566, 200, 567, 227, 200, 555, 567, 570, 229, 230, 570, 576, 229, 573, 231, 232, 573, 223, 231, 576, 234, 229, 576, 577, 234, 575, 232, 235, 575, 573, 232, 220, 230, 236, 220, 570, 230, 577, 235, 234, 577, 575, 235, 578, 568, 574, 578, 579, 568, 567, 579, 571, 567, 568, 579, 571, 227, 567, 571, 217, 227, 572, 569, 562, 572, 563, 569, 562, 222, 572, 562, 208, 222, 574, 563, 578, 574, 569, 563, 571, 579, 570, 570, 579, 580, 570, 580, 576, 581, 583, 582, 584, 245, 585, 584, 244, 245, 247, 586, 250, 247, 587, 586, 588, 253, 589, 588, 252, 253, 590, 592, 591, 590, 582, 592, 258, 593, 261, 258, 594, 593, 595, 589, 596, 595, 588, 589, 582, 597, 592, 582, 583, 597, 581, 585, 583, 581, 584, 585, 583, 598, 597, 583, 585, 598, 594, 591, 593, 594, 590, 591, 596, 600, 599, 596, 589, 600, 601, 599, 602, 601, 596, 599, 250, 603, 271, 250, 586, 603, 589, 272, 600, 589, 253, 272, 588, 597, 598, 588, 595, 597, 587, 261, 593, 587, 247, 261, 591, 592, 604, 593, 605, 587, 593, 591, 605, 598, 252, 588, 598, 275, 252, 592, 595, 606, 592, 597, 595, 585, 275, 598, 585, 245, 275, 271, 607, 278, 271, 603, 607, 575, 609, 608, 575, 577, 609, 566, 608, 565, 566, 575, 608, 578, 564, 610, 578, 563, 564, 577, 611, 609, 577, 576, 611, 579, 610, 612, 579, 578, 610, 606, 595, 613, 613, 595, 601, 601, 595, 596, 587, 605, 586, 586, 605, 614, 586, 614, 615, 586, 616, 603, 586, 615, 616, 615, 617, 616, 616, 617, 601, 616, 601, 602, 606, 619, 618, 606, 613, 619, 605, 621, 620, 605, 604, 621, 604, 618, 621, 604, 606, 618, 604, 605, 591, 592, 606, 604, 508, 622, 507, 508, 623, 622, 504, 624, 503, 504, 625, 624, 510, 625, 504, 510, 626, 625, 507, 626, 510, 507, 622, 626, 546, 628, 627, 546, 544, 628, 544, 629, 628, 544, 545, 629, 545, 630, 629, 545, 542, 630, 542, 631, 630, 542, 543, 631, 548, 633, 632, 548, 547, 633, 547, 627, 633, 547, 546, 627, 305, 306, 634, 308, 309, 635, 636, 638, 637, 548, 623, 508, 548, 632, 623, 503, 631, 543, 503, 624, 631, 314, 639, 317, 314, 640, 639, 317, 641, 319, 317, 639, 641, 635, 643, 642, 635, 644, 643, 634, 323, 645, 634, 306, 323, 644, 645, 643, 644, 634, 645, 308, 642, 325, 308, 635, 642, 646, 647, 305, 648, 650, 649, 648, 649, 646, 646, 634, 644, 644, 648, 646, 648, 644, 635, 646, 305, 634, 309, 651, 635, 651, 648, 635, 638, 649, 650, 637, 638, 650, 554, 556, 553, 554, 652, 556, 653, 550, 559, 653, 549, 550, 334, 552, 198, 334, 551, 552, 652, 559, 556, 652, 653, 559, 580, 612, 654, 580, 579, 612, 336, 594, 258, 336, 655, 594, 655, 590, 594, 655, 656, 590, 656, 582, 590, 656, 581, 582, 603, 657, 607, 603, 616, 657, 599, 659, 658, 599, 600, 659, 616, 660, 657, 616, 602, 660, 602, 658, 660, 602, 599, 658, 600, 343, 659, 600, 272, 343, 615, 662, 661, 615, 614, 662, 576, 654, 611, 576, 580, 654, 617, 661, 663, 617, 615, 661, 601, 663, 664, 601, 617, 663, 613, 664, 619, 613, 601, 664, 614, 620, 662, 614, 605, 620, 665, 319, 641, 665, 348, 319, 665, 666, 348, 665, 667, 666, 665, 668, 667, 665, 353, 668, 651, 353, 665, 309, 353, 651, 669, 671, 670, 669, 672, 671, 670, 674, 673, 670, 671, 674, 669, 675, 672, 669, 676, 675, 640, 673, 674, 362, 673, 640, 362, 640, 314, 676, 637, 675, 676, 677, 637, 637, 677, 636, 636, 677, 678, 365, 305, 677, 678, 677, 647, 647, 677, 305 </int_array>
- </array>
- </dictionary>
- <dictionary name="surfaces/1" shared="false">
- <string> "alphasort" </string>
- <bool> False </bool>
- <string> "material" </string>
- <resource resource_type="FixedMaterial" path="local://4"> </resource>
- <string> "morph_arrays" </string>
- <array len="0" shared="false">
- </array>
- <string> "primitive" </string>
- <int> 4 </int>
- <string> "arrays" </string>
- <array len="9" shared="false">
- <vector3_array len="625"> 0.23068, 6.41266, 0.879344, 0.754113, 6.74074, 0.551263, 0.754113, 6.81344, 0.551263, 0.23068, 6.48536, 0.879344, 0.845318, 6.86083, 0.103095, 0.845318, 6.93353, 0.103095, 0.754113, 6.74074, -0.345078, 0.754113, 6.81344, -0.345078, 0, 6.36123, 0.969121, 0.257165, 6.36123, 0.969121, 0, 6.41266, 0.879344, 0, 6.36123, -0.762936, 0, 6.41266, -0.673159, 0.23068, 6.41266, -0.673159, 0.257165, 6.36123, -0.762936, 0.23068, 6.48536, -0.673159, 0.2607, 6.45948, -0.774594, 0.852531, 6.83043, -0.403642, 0, 6.48536, -0.673159, 0, 6.48536, 0.879344, 0.955654, 6.96621, 0.103096, 0.852531, 6.83043, 0.609826, 0.2607, 6.45948, 0.980779, 0, 6.45948, -0.774594, 0, 6.45948, 0.980779, 0.144337, 4.62833, -0.267808, 0.227645, 4.56054, -0.149869, 0.230474, 4.54553, -0.1645, 0.145367, 4.61509, -0.285537, 0, 4.66573, -0.327684, 0, 4.65348, -0.346986, 0.16781, 4.49143, -0.0124773, 0.169802, 4.47494, -0.0244043, 2.39441, 2.7167, -0.284614, 2.22321, 2.52508, -0.185319, 2.22875, 2.57563, -0.151192, 2.37464, 2.73891, -0.235805, 0.829811, 0.39491, 0.192334, 0.539954, 0.53255, 0.320534, 0.53677, 0.505704, 0.45924, 0.823707, 0.343455, 0.299719, 0.251731, 0.393841, 0.202075, 0.245627, 0.342385, 0.30946, 2.37016, 3.14596, -0.180206, 2.39069, 3.24439, 0.0703977, 2.51365, 3.10316, 0.122743, 2.49324, 3.00574, -0.125365, 2.02679, 2.71357, 0.205928, 2.02114, 2.64141, -0.071524, 2.14773, 2.50612, -0.0177825, 2.15324, 2.5776, 0.25697, 0.197471, 4.75418, 0.019584, 0.212301, 4.88556, 0.0356146, 0, 4.86123, 0.103096, 0, 4.72999, 0.114516, 2.55604, 3.1449, 0.136694, 2.53359, 3.02984, -0.15501, 2.38915, 3.19439, -0.219368, 2.41174, 3.31063, 0.0752657, 2.13459, 2.5274, 0.293671, 2.28993, 2.80163, 0.457827, 2.27149, 2.82221, 0.391821, 2.44682, 3.07552, 0.376618, 2.41931, 3.04467, 0.327652, 1.98619, 2.68696, 0.233771, 1.97806, 2.60303, -0.0912834, 2.12663, 2.44425, -0.0282163, 2.24859, 2.87814, -0.35026, 2.25039, 2.87648, -0.291744, 2.07568, 2.68462, -0.249978, 2.10304, 2.71157, -0.20629, 2.30152, 3.24052, 0.317542, 2.29549, 3.18528, 0.277312, 2.14291, 2.96404, 0.3995, 2.1462, 2.9606, 0.342119, 1.31621, 3.39795, -0.203802, 1.35829, 3.43387, -0.29479, 1.54119, 3.29007, -0.372791, 1.48496, 3.24915, -0.287145, 0.552121, 0.665123, 0.401021, 0.154027, 0.441809, 0.19622, 0.944465, 0.443271, 0.182901, 0.0964089, 0.00104547, -0.196812, 0.19633, 0.00104547, -0.176104, 0.835003, 0.00104547, -0.205403, 0.736495, 0.00104547, -0.182387, 0.108829, 0.00104547, 0.040049, 0.85902, 0.00104547, 0.0313234, 0.0508581, 0.00104547, 0.0402964, 0.207486, 0.384965, 0.351051, 0.874277, 0.386199, 0.339815, 0.916171, 0.00104547, 0.0302318, 0.543306, 0.573346, 0.523815, 0.158656, 2.88784, -0.132794, 0.242974, 2.8226, -0.0472403, 0.228589, 2.63923, -0.0490058, 0.149215, 2.70638, -0.125392, 0.241672, 4.68094, -0.138747, 0.158365, 4.73746, -0.261278, 0, 4.76911, -0.32375, 0.18264, 4.62281, 0.00355331, 0, 4.46751, 0.137356, 0, 4.44976, 0.12846, 1.6, 5.86123, 0.903096, 1.6, 5.46123, 0.795916, 1.6, 5.42123, 0.865198, 1.6, 5.86123, 0.983096, 1.6, 5.16841, 0.503096, 1.6, 5.09913, 0.543096, 1.6, 5.06123, 0.103096, 1.6, 4.98123, 0.103096, 1.6, 5.46123, -0.589731, 1.6, 5.42123, -0.659013, 1.6, 5.09912, -0.336911, 1.6, 5.16841, -0.296911, 1.6, 5.86123, -0.696911, 1.6, 5.86123, -0.776911, 1.6, 6.26123, -0.589731, 1.6, 6.30123, -0.659013, 1.6, 6.55405, -0.296911, 1.6, 6.62333, -0.336911, 1.15486, 6.36123, 0.969121, 0.685695, 6.36123, 0.969121, 0.765488, 6.24202, 0.864397, 1.07507, 6.24202, 0.864397, 1.2072, 6.11123, 1.03611, 1.10961, 6.07706, 0.908599, 2.0359, 5.66148, 0.449063, 2.0359, 5.51526, 0.30284, 1.90356, 5.8612, 0.10311, 2.0359, 5.46174, 0.103096, 2.0359, 6.20719, 0.30284, 2.0359, 6.06097, 0.449063, 2.0359, 5.51526, -0.0966551, 2.0359, 5.66148, -0.242878, 2.0359, 5.86123, -0.296399, 0, 5.40641, 0.875976, 0, 5.28211, 0.751677, 0.257146, 5.2834, 0.752961, 0.257147, 5.40641, 0.875976, 1.39648, 4.9952, 0.603096, 1.39648, 4.86123, 0.103096, 1.39648, 5.06123, 0.103096, 1.39648, 5.16841, 0.503096, 1.39648, 6.86123, 0.103096, 1.39648, 6.72725, 0.603096, 1.39648, 6.55405, 0.503096, 1.39648, 6.66123, 0.103096, 1.39648, 6.36123, 0.969121, 1.39648, 6.26123, 0.795916, 1.39648, 5.86123, 1.1031, 1.39648, 5.86123, 0.903096, 1.39648, 5.36123, 0.969121, 1.39648, 5.46123, 0.795916, 1.6, 6.66123, 0.103096, 1.6, 6.55405, 0.503096, 1.6, 6.62333, 0.543096, 1.6, 6.74123, 0.103096, 1.6, 6.26123, 0.795916, 1.6, 6.30123, 0.865198, 1.39648, 5.36123, -0.762936, 1.39648, 5.46123, -0.589731, 1.39648, 5.16841, -0.296911, 1.39648, 4.9952, -0.396911, 1.39648, 5.86123, -0.896911, 1.39648, 5.86123, -0.696911, 1.39648, 6.36123, -0.762936, 1.39648, 6.26123, -0.589731, 1.39648, 6.72725, -0.396911, 1.39648, 6.55405, -0.296911, 0.73095, 6.07706, 0.908599, 0.765488, 5.9121, 0.9528, 1.07507, 5.9121, 0.9528, 1.10961, 6.07706, 0.908599, 0.765488, 6.24202, 0.864397, 1.07507, 6.24202, 0.864397, 0.685695, 5.86123, 1.1031, 1.15486, 5.86123, 1.1031, 1.07507, 5.9121, 0.9528, 0.765488, 5.9121, 0.9528, 0.633352, 6.11123, 1.03611, 0.73095, 6.07706, 0.908599, 1.39648, 6.66123, 0.103096, 1.39648, 6.55405, 0.503096, 1.6, 6.55405, 0.503096, 1.6, 6.66123, 0.103096, 1.39648, 6.26123, 0.795916, 1.6, 6.26123, 0.795916, 1.39648, 5.86123, 0.903096, 1.6, 5.86123, 0.903096, 1.39648, 5.46123, 0.795916, 1.6, 5.46123, 0.795916, 1.39648, 5.16841, 0.503096, 1.6, 5.16841, 0.503096, 1.39648, 5.06123, 0.103096, 1.6, 5.06123, 0.103096, 1.39648, 5.46123, -0.589731, 1.6, 5.46123, -0.589731, 1.6, 5.16841, -0.296911, 1.39648, 5.16841, -0.296911, 1.39648, 5.86123, -0.696911, 1.6, 5.86123, -0.696911, 1.39648, 6.26123, -0.589731, 1.6, 6.26123, -0.589731, 1.39648, 6.55405, -0.296911, 1.6, 6.55405, -0.296911, 2.0359, 5.86123, 0.502584, 2.0359, 6.26072, 0.103096, 2.0359, 6.06097, -0.242878, 2.0359, 6.20719, -0.0966551, 0, 5.49634, 0.900073, 0.257147, 5.49634, 0.900073, 0.252264, 4.53307, -0.191655, 0.153299, 4.61636, -0.336561, 0, 4.66231, -0.410127, 0.198102, 4.44663, -0.00271145, 0, 2.66463, 0.20367, 5.00021e-06, 2.4738, 0.177211, 0.102832, 2.48009, 0.176006, 0.109384, 2.67117, 0.201936, 0.251452, 2.74864, 0.0718984, 0.23657, 2.56168, 0.0584772, 0.181152, 2.70508, 0.146183, 0.170392, 2.51572, 0.125662, 0, 2.91839, -0.164227, 5.00021e-06, 2.73725, -0.153025, 1.35355, 3.45169, -0.0607277, 1.50191, 3.29774, -0.132197, 0.413722, 1.77804, 0.182495, 0.302308, 1.69787, 0.09718, 0.311982, 1.54621, 0.0812291, 0.425773, 1.62639, 0.166544, 0.489091, 1.94399, -0.0482645, 0.542593, 1.87364, 0.112398, 0.55748, 1.72198, 0.0964474, 0.506064, 1.79234, -0.0642154, 0.394125, 1.86374, -0.138546, 0.408718, 1.71209, -0.154497, 0.227335, 1.66351, -0.0137039, 0.23599, 1.51185, -0.0296548, 0.0960235, 4.4178, 0.0939296, 1.5172, 3.69575, -0.311084, 1.54768, 3.76732, -0.167808, 1.71449, 3.62366, -0.198996, 1.70474, 3.5573, -0.353999, 1.43134, 3.52144, -0.355117, 1.62434, 3.38222, -0.419987, 1.436, 3.60537, 0.00285106, 1.57608, 3.45117, -0.0476083, 1.51354, 3.73444, -0.0382403, 1.66072, 3.58429, -0.072422, 0.254872, 1.70456, -0.0798497, 0.256767, 1.56023, -0.0958005, 0.288751, 1.77481, -0.152552, 0.300707, 1.62315, -0.168503, 0, 4.41627, 0.145479, 0.841135, 6.72725, 0.603096, 0.841135, 6.72725, -0.396911, 0.942888, 6.86123, 0.103096, -0.23068, 6.41266, 0.879344, -0.23068, 6.48536, 0.879344, -0.754113, 6.81344, 0.551263, -0.754113, 6.74074, 0.551263, -0.845318, 6.93353, 0.103095, -0.845318, 6.86083, 0.103095, -0.754113, 6.74074, -0.345078, -0.754113, 6.81344, -0.345078, -0.257165, 6.36123, 0.969121, -0.257165, 6.36123, -0.762936, -0.23068, 6.41266, -0.673159, -0.23068, 6.48536, -0.673159, -0.852531, 6.83043, -0.403642, -0.2607, 6.45948, -0.774594, -0.852531, 6.83043, 0.609826, -0.955654, 6.96621, 0.103096, -0.2607, 6.45948, 0.980779, -0.144337, 4.62833, -0.267808, -0.145367, 4.61509, -0.285537, -0.230474, 4.54553, -0.1645, -0.227645, 4.56054, -0.149869, -0.169802, 4.47494, -0.0244043, -0.16781, 4.49143, -0.0124773, -2.39441, 2.7167, -0.284614, -2.37464, 2.73891, -0.235805, -2.22875, 2.57563, -0.151192, -2.22321, 2.52508, -0.185319, -0.829811, 0.39491, 0.192334, -0.823707, 0.343455, 0.299719, -0.53677, 0.505704, 0.45924, -0.539954, 0.53255, 0.320534, -0.245627, 0.342385, 0.30946, -0.251731, 0.393841, 0.202075, -2.37016, 3.14596, -0.180206, -2.49324, 3.00574, -0.125365, -2.51365, 3.10316, 0.122743, -2.39069, 3.24439, 0.0703977, -2.02679, 2.71357, 0.205928, -2.15324, 2.5776, 0.25697, -2.14773, 2.50612, -0.0177825, -2.02114, 2.64141, -0.071524, -0.197471, 4.75418, 0.019584, -0.212301, 4.88556, 0.0356146, -2.55604, 3.1449, 0.136694, -2.53359, 3.02984, -0.15501, -2.38915, 3.19439, -0.219368, -2.41174, 3.31063, 0.0752657, -2.13459, 2.5274, 0.293671, -2.27149, 2.82221, 0.391821, -2.28993, 2.80163, 0.457827, -2.44682, 3.07552, 0.376618, -2.41931, 3.04467, 0.327652, -1.98619, 2.68696, 0.233771, -1.97806, 2.60303, -0.0912834, -2.12663, 2.44425, -0.0282163, -2.24859, 2.87814, -0.35026, -2.25039, 2.87648, -0.291744, -2.07568, 2.68462, -0.249978, -2.10304, 2.71157, -0.20629, -2.29549, 3.18528, 0.277312, -2.30152, 3.24052, 0.317542, -2.1462, 2.9606, 0.342119, -2.14291, 2.96404, 0.3995, -1.31621, 3.39795, -0.203802, -1.48496, 3.24915, -0.287145, -1.54119, 3.29007, -0.372791, -1.35829, 3.43387, -0.29479, -0.552121, 0.665123, 0.401021, -0.154027, 0.441809, 0.19622, -0.944465, 0.443271, 0.182901, -0.19633, 0.00104547, -0.176104, -0.0964089, 0.00104547, -0.196812, -0.835003, 0.00104547, -0.205403, -0.736495, 0.00104547, -0.182387, -0.108829, 0.00104547, 0.040049, -0.85902, 0.00104547, 0.0313234, -0.207486, 0.384965, 0.351051, -0.0508581, 0.00104547, 0.0402964, -0.916171, 0.00104547, 0.0302318, -0.874277, 0.386199, 0.339815, -0.543306, 0.573346, 0.523815, -0.158656, 2.88784, -0.132794, -0.149215, 2.70638, -0.125392, -0.228589, 2.63923, -0.0490058, -0.242974, 2.8226, -0.0472403, -0.241672, 4.68094, -0.138747, -0.158365, 4.73746, -0.261278, -0.18264, 4.62281, 0.00355331, -1.6, 5.86123, 0.903096, -1.6, 5.86123, 0.983096, -1.6, 5.42123, 0.865198, -1.6, 5.46123, 0.795916, -1.6, 5.09913, 0.543096, -1.6, 5.16841, 0.503096, -1.6, 4.98123, 0.103096, -1.6, 5.06123, 0.103096, -1.6, 5.46123, -0.589731, -1.6, 5.16841, -0.296911, -1.6, 5.09912, -0.336911, -1.6, 5.42123, -0.659013, -1.6, 5.86123, -0.696911, -1.6, 5.86123, -0.776911, -1.6, 6.26123, -0.589731, -1.6, 6.30123, -0.659013, -1.6, 6.55405, -0.296911, -1.6, 6.62333, -0.336911, -1.15486, 6.36123, 0.969121, -1.07507, 6.24202, 0.864397, -0.765488, 6.24202, 0.864397, -0.685695, 6.36123, 0.969121, -1.2072, 6.11123, 1.03611, -1.10961, 6.07706, 0.908599, -2.0359, 5.66148, 0.449063, -1.90356, 5.8612, 0.10311, -2.0359, 5.51526, 0.30284, -2.0359, 5.46174, 0.103096, -2.0359, 6.20719, 0.30284, -2.0359, 6.06097, 0.449063, -2.0359, 5.51526, -0.0966551, -2.0359, 5.66148, -0.242878, -2.0359, 5.86123, -0.296399, -0.257147, 5.40641, 0.875976, -0.257146, 5.2834, 0.752961, -1.39648, 4.9952, 0.603096, -1.39648, 5.16841, 0.503096, -1.39648, 5.06123, 0.103096, -1.39648, 4.86123, 0.103096, -1.39648, 6.86123, 0.103096, -1.39648, 6.66123, 0.103096, -1.39648, 6.55405, 0.503096, -1.39648, 6.72725, 0.603096, -1.39648, 6.26123, 0.795916, -1.39648, 6.36123, 0.969121, -1.39648, 5.86123, 0.903096, -1.39648, 5.86123, 1.1031, -1.39648, 5.46123, 0.795916, -1.39648, 5.36123, 0.969121, -1.6, 6.66123, 0.103096, -1.6, 6.74123, 0.103096, -1.6, 6.62333, 0.543096, -1.6, 6.55405, 0.503096, -1.6, 6.30123, 0.865198, -1.6, 6.26123, 0.795916, -1.39648, 5.36123, -0.762936, -1.39648, 4.9952, -0.396911, -1.39648, 5.16841, -0.296911, -1.39648, 5.46123, -0.589731, -1.39648, 5.86123, -0.896911, -1.39648, 5.86123, -0.696911, -1.39648, 6.36123, -0.762936, -1.39648, 6.26123, -0.589731, -1.39648, 6.72725, -0.396911, -1.39648, 6.55405, -0.296911, -0.73095, 6.07706, 0.908599, -1.10961, 6.07706, 0.908599, -1.07507, 5.9121, 0.9528, -0.765488, 5.9121, 0.9528, -0.765488, 6.24202, 0.864397, -1.07507, 6.24202, 0.864397, -0.685695, 5.86123, 1.1031, -0.765488, 5.9121, 0.9528, -1.07507, 5.9121, 0.9528, -1.15486, 5.86123, 1.1031, -0.633352, 6.11123, 1.03611, -0.73095, 6.07706, 0.908599, -1.39648, 6.66123, 0.103096, -1.6, 6.66123, 0.103096, -1.6, 6.55405, 0.503096, -1.39648, 6.55405, 0.503096, -1.6, 6.26123, 0.795916, -1.39648, 6.26123, 0.795916, -1.6, 5.86123, 0.903096, -1.39648, 5.86123, 0.903096, -1.6, 5.46123, 0.795916, -1.39648, 5.46123, 0.795916, -1.6, 5.16841, 0.503096, -1.39648, 5.16841, 0.503096, -1.6, 5.06123, 0.103096, -1.39648, 5.06123, 0.103096, -1.39648, 5.46123, -0.589731, -1.39648, 5.16841, -0.296911, -1.6, 5.16841, -0.296911, -1.6, 5.46123, -0.589731, -1.39648, 5.86123, -0.696911, -1.6, 5.86123, -0.696911, -1.39648, 6.26123, -0.589731, -1.6, 6.26123, -0.589731, -1.39648, 6.55405, -0.296911, -1.6, 6.55405, -0.296911, -2.0359, 5.86123, 0.502584, -2.0359, 6.26072, 0.103096, -2.0359, 6.06097, -0.242878, -2.0359, 6.20719, -0.0966551, -0.257147, 5.49634, 0.900073, -0.153299, 4.61636, -0.336561, -0.252264, 4.53307, -0.191655, -0.198102, 4.44663, -0.00271145, -0.109384, 2.67117, 0.201936, -0.102832, 2.48009, 0.176006, -0.251452, 2.74864, 0.0718984, -0.23657, 2.56168, 0.0584772, -0.181152, 2.70508, 0.146183, -0.170392, 2.51572, 0.125662, -1.35355, 3.45169, -0.0607277, -1.50191, 3.29774, -0.132197, -0.413722, 1.77804, 0.182495, -0.425773, 1.62639, 0.166544, -0.311982, 1.54621, 0.0812291, -0.302308, 1.69787, 0.09718, -0.489091, 1.94399, -0.0482645, -0.506064, 1.79234, -0.0642154, -0.55748, 1.72198, 0.0964474, -0.542593, 1.87364, 0.112398, -0.394125, 1.86374, -0.138546, -0.408718, 1.71209, -0.154497, -0.23599, 1.51185, -0.0296548, -0.227335, 1.66351, -0.0137039, -0.0960235, 4.4178, 0.0939296, -1.5172, 3.69575, -0.311084, -1.70474, 3.5573, -0.353999, -1.71449, 3.62366, -0.198996, -1.54768, 3.76732, -0.167808, -1.62434, 3.38222, -0.419987, -1.43134, 3.52144, -0.355117, -1.436, 3.60537, 0.00285106, -1.57608, 3.45117, -0.0476083, -1.66072, 3.58429, -0.072422, -1.51354, 3.73444, -0.0382403, -0.256767, 1.56023, -0.0958005, -0.254872, 1.70456, -0.0798497, -0.288751, 1.77481, -0.152552, -0.300707, 1.62315, -0.168503, -0.841135, 6.72725, 0.603096, -0.841135, 6.72725, -0.396911, -0.942888, 6.86123, 0.103096, 0.177538, 3.25078, -0.147598, 0.271744, 3.18932, -0.0437093, 0.257359, 3.00596, -0.0454748, 0.168097, 3.06931, -0.140196, 0, 3.04628, 0.256587, 0, 2.85545, 0.230128, 0.115936, 2.86226, 0.227866, 0.122488, 3.05335, 0.253795, 0.281216, 3.12258, 0.0987407, 0.266334, 2.93561, 0.0853195, 0.202672, 3.0838, 0.187225, 0.191912, 2.89444, 0.166704, 0, 3.28068, -0.186631, 0, 3.09954, -0.175429, -0.177538, 3.25078, -0.147598, -0.168097, 3.06931, -0.140196, -0.257359, 3.00596, -0.0454748, -0.271744, 3.18932, -0.0437093, -0.122488, 3.05335, 0.253795, -0.115936, 2.86226, 0.227866, -0.281216, 3.12258, 0.0987407, -0.266334, 2.93561, 0.0853195, -0.202672, 3.0838, 0.187225, -0.191912, 2.89444, 0.166704, 0, 4.59875, 0.125936, 0.269727, 4.92174, -0.116503, 0.2557, 4.80134, -0.127625, 0.172392, 4.8466, -0.254748, 0.18642, 4.95573, -0.248219, 0, 4.87249, -0.319817, 0, 4.97587, -0.315884, -0.269727, 4.92174, -0.116503, -0.18642, 4.95573, -0.248219, -0.172392, 4.8466, -0.254748, -0.2557, 4.80134, -0.127625, -0.809978, 3.84435, 0.0462258, -0.978723, 3.69555, -0.0371168, -0.992485, 3.72148, -0.13879, -0.809584, 3.86528, -0.0607897, -1.14747, 3.54675, -0.120459, -1.17539, 3.57767, -0.21679, -0.908494, 3.91354, 0.153681, -1.05685, 3.75959, 0.0822117, -1.2052, 3.60564, 0.010742, -0.954611, 4.1111, -0.182336, -1.14214, 3.97265, -0.225252, -1.21405, 4.05463, -0.105431, -1.04723, 4.19828, -0.0742428, -1.32967, 3.8342, -0.268168, -1.38086, 3.91097, -0.136619, -1.04535, 3.79989, -0.225379, -0.85235, 3.93911, -0.160509, -1.23834, 3.66066, -0.290248, -1.01577, 4.06798, 0.154229, -1.15585, 3.91378, 0.10377, -1.29593, 3.75958, 0.0533104, -1.21917, 4.03474, 0.0301233, -1.07199, 4.18489, 0.0643051, -1.36635, 3.88459, -0.00405846, 0.809978, 3.84435, 0.0462258, 0.809584, 3.86528, -0.0607897, 0.992485, 3.72148, -0.13879, 0.978723, 3.69555, -0.0371168, 1.17539, 3.57767, -0.21679, 1.14747, 3.54675, -0.120459, 0.908494, 3.91354, 0.153681, 1.05685, 3.75959, 0.0822117, 1.2052, 3.60564, 0.010742, 0.954611, 4.1111, -0.182336, 1.04723, 4.19828, -0.0742428, 1.21405, 4.05463, -0.105431, 1.14214, 3.97265, -0.225252, 1.38086, 3.91097, -0.136619, 1.32967, 3.8342, -0.268168, 0.85235, 3.93911, -0.160509, 1.04535, 3.79989, -0.225379, 1.23834, 3.66066, -0.290248, 1.01577, 4.06798, 0.154229, 1.15585, 3.91378, 0.10377, 1.29593, 3.75958, 0.0533104, 1.07199, 4.18489, 0.0643051, 1.21917, 4.03474, 0.0301233, 1.36635, 3.88459, -0.00405846, 0.377566, 2.23301, 0.230347, 0.273286, 2.15284, 0.145033, 0.28296, 2.00118, 0.129082, 0.389618, 2.08136, 0.214396, 0.292634, 1.84952, 0.113131, 0.40167, 1.9297, 0.198445, 0.438171, 2.39896, -0.000411894, 0.497933, 2.32861, 0.160251, 0.51282, 2.17695, 0.1443, 0.455144, 2.24731, -0.0163628, 0.527707, 2.02529, 0.128349, 0.472118, 2.09565, -0.0323137, 0.350345, 2.31871, -0.0906937, 0.364938, 2.16706, -0.106645, 0.379531, 2.0154, -0.122595, 0.20137, 2.11848, 0.0341487, 0.210025, 1.96682, 0.0181978, 0.21868, 1.81516, 0.00224695, 0.249187, 2.13753, -0.031997, 0.251082, 1.9932, -0.0479479, 0.252977, 1.84888, -0.0638988, 0.252884, 2.22978, -0.1047, 0.26484, 2.07812, -0.12065, 0.276796, 1.92646, -0.136601, -0.377566, 2.23301, 0.230347, -0.389618, 2.08136, 0.214396, -0.28296, 2.00118, 0.129082, -0.273286, 2.15284, 0.145033, -0.40167, 1.9297, 0.198445, -0.292634, 1.84952, 0.113131, -0.438171, 2.39896, -0.000411894, -0.455144, 2.24731, -0.0163628, -0.51282, 2.17695, 0.1443, -0.497933, 2.32861, 0.160251, -0.472118, 2.09565, -0.0323137, -0.527707, 2.02529, 0.128349, -0.350345, 2.31871, -0.0906937, -0.364938, 2.16706, -0.106645, -0.379531, 2.0154, -0.122595, -0.210025, 1.96682, 0.0181978, -0.20137, 2.11848, 0.0341487, -0.21868, 1.81516, 0.00224695, -0.251082, 1.9932, -0.0479479, -0.249187, 2.13753, -0.031997, -0.252977, 1.84888, -0.0638988, -0.252884, 2.22978, -0.1047, -0.26484, 2.07812, -0.12065, -0.276796, 1.92646, -0.136601 </vector3_array>
- <vector3_array len="625"> 0.0360096, 0.589157, 0.807216, 0.379162, 0.648277, 0.660282, 0.710781, -0.701771, 0.0480528, 0.391591, -0.775171, 0.495749, 0.722924, 0.690928, -0, 0.722446, -0.691427, 0, 0.378912, 0.647849, -0.660846, 0.710746, -0.701737, -0.0490515, 0, 0.610678, 0.791879, -0.0350367, 0.578606, 0.814854, 0, 0.501628, 0.865083, 0, 0.610194, -0.792252, 0, 0.501194, -0.865335, 0.0359806, 0.588682, -0.807564, -0.0350082, 0.578135, -0.81519, 0.391397, -0.774786, -0.496503, 0.323297, -0.752692, -0.573527, 0.770859, -0.534596, -0.346386, 0, -0.789191, -0.614148, 0, -0.789675, 0.613525, 0.868674, -0.495384, 0, 0.771126, -0.534781, 0.345505, 0.323483, -0.753124, 0.572855, 0, -0.789191, -0.614148, 0, -0.789675, 0.613525, 0.705688, 0.318859, -0.63272, 0.999838, 0.00999838, 0.0149976, 0.799697, 0.565786, 0.200924, 0.540954, 0.82793, -0.147987, 0, 0.473026, -0.881048, 0, 0.986122, -0.166021, 0.790431, -0.193105, 0.581317, 0.744403, 0.310168, 0.59132, -0.210106, 0.16008, -0.964484, -0.609658, -0.17619, -0.772835, -0.695748, -0.0600646, -0.71577, -0.418461, 0.236261, -0.876967, 0.72763, -0.205178, 0.654566, 0.0120115, 0.213204, 0.976934, -0.0129987, 0.889909, -0.455953, 0.408168, 0.754311, -0.514212, -0.717691, -0.0310299, 0.69567, -0.403281, 0.782544, -0.47433, 0.962114, -0.068008, -0.264031, 0.98219, 0.109021, 0.15303, -0.0740053, 0.995071, -0.0660047, -0.0730215, 0.709209, -0.701207, 0.120177, -0.831221, 0.542797, 0.130096, -0.988732, -0.0740548, -0.9642, -0.11214, -0.240299, -0.953245, 0.0220288, 0.301394, 0.741648, -0.0980857, 0.66358, 0.557506, -0.667605, 0.493448, 0, -0.762778, 0.64666, 0, -0.0440454, 0.99903, 0.0889861, 0.993844, -0.0659897, 0.0490036, 0.723054, -0.689051, 0.897953, 0.117994, -0.423978, 0.920375, 0.351143, 0.17207, -0.901333, -0.16224, 0.401594, -0.618771, 0.285356, 0.731912, -0.721733, 0.300305, 0.623633, -0.242219, 0.80573, 0.54049, -0.400552, 0.758045, 0.514709, -0.0350519, -0.808196, 0.58787, -0.0460378, -0.996819, -0.0650535, -0.891041, -0.346405, -0.293343, 0.6294, -0.428272, -0.648412, 0.728593, -0.433353, -0.530432, 0.267172, -0.820528, -0.505325, 0.35736, -0.806813, -0.470474, 0.622553, 0.221196, 0.750666, 0.819836, -0.00400408, 0.572584, 0.297403, -0.309419, 0.903223, 0.487706, -0.344499, 0.802162, -0.679917, -0.730986, -0.0580783, -0.592431, -0.368268, -0.716522, -0.511638, -0.289361, -0.809009, -0.812045, -0.505651, -0.291375, -0.00700771, -0.117129, 0.993092, -0.674119, -0.252419, 0.694153, 0.797008, -0.304385, 0.521659, -0.753305, -0.654134, 0.0681181, -0.216317, -0.957402, 0.19128, 0.713493, -0.691478, -0.113078, 0.194204, -0.972021, 0.132139, -0.686439, 0.302193, -0.661423, 0.711943, 0.135989, -0.688945, -0.702756, -0.294317, -0.647697, -0.616626, 0.733745, -0.28529, 0.714816, 0.636836, -0.288926, 0.64207, -0.336037, -0.689075, 0.0110026, 0.996233, -0.0860201, 0.456853, -0.0569817, -0.887715, 0.891957, -0.0679967, -0.446978, 0.947519, 0.264145, -0.180099, 0.609974, 0.430981, -0.664971, 0.983744, -0.109971, -0.141963, 0.618615, -0.0169894, -0.785511, 0, 0.0229939, -0.999736, 0.785814, -0.0981016, 0.610633, 0, -0.271413, 0.962463, 0, 0.126129, 0.992014, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -0.167145, 0.336293, 0.926806, 0.168118, 0.336236, 0.926651, 0.327528, -0.185299, 0.926493, -0.326633, -0.185359, 0.926797, -0.401672, 0.237397, 0.884479, -0.493594, 0.225271, 0.840011, 0.984527, -0.0870466, 0.152081, 0.984527, -0.152081, 0.0870466, 1, 0, -0, 0.984551, -0.175098, 0, 0.984377, 0.153059, 0.0870333, 0.984441, 0.0880395, 0.152068, 0.984441, -0.152068, -0.0880395, 0.984377, -0.0870333, -0.153059, 0.984378, 0, -0.176068, 0, -0.499694, 0.866202, 0, -0.0770792, 0.997025, -0.353503, -0.137195, 0.925318, -0.4965, -0.437441, 0.749755, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 0, 0.25922, 0.965818, 0, 0.25922, 0.965818, 0, 0.25922, 0.965818, 0, 0.25922, 0.965818, 0, 0.25922, 0.965818, 0, 0.25922, 0.965818, 0.168109, 0.172111, 0.970627, -0.167136, 0.17214, 0.97079, -0.326504, 0.624964, 0.709094, 0.327398, 0.62476, 0.708862, 0.402511, 0.237301, 0.884123, 0.494351, 0.22516, 0.839595, 0.770022, 0.638018, -0, 0.77049, 0.552351, 0.318202, -0.770083, 0.552777, 0.318448, -0.769614, 0.638509, 0, 0.77067, 0.319278, 0.551479, -0.770263, 0.319524, 0.551905, 0.770513, 0, 0.637424, -0.770106, 0, 0.637916, 0.770916, -0.318378, 0.551655, -0.770509, -0.318624, 0.552081, 0.770916, -0.551655, 0.318378, -0.770509, -0.552081, 0.318624, 0.770513, -0.637424, 0, -0.770106, -0.637916, 0, 0.77049, -0.318202, -0.552351, -0.770083, -0.318448, -0.552777, -0.770263, -0.551905, -0.319524, 0.77067, -0.551479, -0.319278, 0.770022, 0, -0.638018, -0.769614, 0, -0.638509, 0.770245, 0.319101, -0.552175, -0.769837, 0.319347, -0.552601, 0.770245, 0.552175, -0.319101, -0.769837, 0.552601, -0.319347, 0.984551, 0, 0.175098, 0.984378, 0.176068, -0, 0.984291, 0.088026, -0.153045, 0.984291, 0.153045, -0.088026, 0, -0.848897, 0.528558, -0.359502, -0.75906, 0.542758, 0.269002, 0.885006, 0.380003, 0.175995, 0.932972, 0.31399, 0, 0.941447, 0.33716, 0.24712, 0.836407, 0.489238, 0, -0.135113, 0.99083, 0, 0.0700382, 0.997544, 0.320359, 0.0650729, 0.945059, 0.353552, -0.136213, 0.925444, 0.952453, -0.0990471, 0.288137, 0.880048, 0.129007, 0.457025, 0.701409, -0.115067, 0.70341, 0.644507, 0.0390307, 0.763601, 0, -0.0550267, -0.998485, 0, 0.542878, -0.839811, -0.285466, -0.616005, 0.734198, -0.764085, -0.38755, 0.515732, -0.0240167, -0.100069, 0.994691, -0.686889, -0.119154, 0.716928, -0.74958, 0.0670519, 0.658509, -0.318438, 0.223307, 0.921266, 0.825985, 0.143997, -0.54499, 0.923944, 0.0519969, 0.378977, 0.455352, 0.602466, 0.655507, 0.565223, 0.681269, -0.465184, 0.342959, 0.132984, -0.929889, -0.0789773, 0.541844, -0.83676, -0.991178, -0.058069, 0.119142, -0.969378, 0.150213, 0.194276, 0.245128, 0.817427, 0.521272, 0.232988, 0.56297, -0.792958, 0.642155, 0.763184, -0.0720174, 0.308094, 0.942288, -0.13104, 0.167052, 0.584181, -0.794246, -0.281137, 0.0480233, -0.958465, -0.160029, 0.076014, -0.984181, 0.184197, -0.152163, 0.97104, -0.409744, 0.0530964, 0.910654, 0.581446, 0.410315, 0.702539, 0.0380266, 0.718502, 0.694485, -0.910035, 0.00700797, -0.414472, -0.943047, 0.164182, -0.289321, -0.529471, 0.0660587, -0.845752, -0.728454, 0.359224, -0.583363, 0, 0.768221, 0.640184, -0.0380063, 0.865143, 0.500083, -0.0379873, 0.86471, -0.500832, -0.001, 1, 0, -0.0350106, 0.589178, 0.807244, -0.390743, -0.775474, 0.495943, -0.710285, -0.70227, 0.048087, -0.378305, 0.648523, 0.660533, -0.721967, -0.691927, 0, -0.722446, 0.691427, 0, -0.378055, 0.648094, -0.661096, -0.71025, -0.702236, -0.0490864, 0.0360365, 0.578586, 0.814825, 0.0360071, 0.578114, -0.815161, -0.0349823, 0.588703, -0.807592, -0.390549, -0.775089, -0.496698, -0.770452, -0.535009, -0.346654, -0.322401, -0.752935, -0.573713, -0.77072, -0.535194, 0.345772, -0.868428, -0.495815, 0, -0.322586, -0.753368, 0.57304, -0.705185, 0.319084, -0.633166, -0.540246, 0.828378, -0.148068, -0.799337, 0.566238, 0.201085, -0.999837, 0.0100084, 0.0150126, -0.743957, 0.310399, 0.591761, -0.790055, -0.193258, 0.581777, 0.211062, 0.160047, -0.964281, 0.419287, 0.236161, -0.876599, 0.696264, -0.0600228, -0.715271, 0.610287, -0.176083, -0.772363, -0.727158, -0.205327, 0.655043, -0.407334, 0.754619, -0.514422, 0.0139984, 0.889897, -0.455947, -0.0110107, 0.213206, 0.976945, 0.404118, 0.782228, -0.474138, 0.718176, -0.0310076, 0.69517, -0.962039, -0.0680735, -0.264285, 0.0740164, 0.709157, -0.701155, 0.0749998, 0.994997, -0.0659998, -0.982154, 0.109128, 0.15318, -0.119189, -0.831321, 0.542862, 0.953337, 0.0220078, 0.301106, 0.96427, -0.112031, -0.240067, -0.129112, -0.98886, -0.0740644, -0.741197, -0.0981585, 0.664072, -0.556815, -0.667978, 0.493723, -0.087994, 0.993932, -0.0659955, -0.0480059, 0.723089, -0.689085, -0.897759, 0.1181, -0.424359, -0.920222, 0.351467, 0.172229, 0.90152, -0.162094, 0.401232, 0.722212, 0.300088, 0.623183, 0.619388, 0.285179, 0.731458, 0.243161, 0.805534, 0.540358, 0.401392, 0.757741, 0.514503, 0.0360521, -0.808167, 0.587849, 0.0470365, -0.996773, -0.0650504, 0.891247, -0.346096, -0.293081, -0.628795, -0.428542, -0.648821, -0.728123, -0.433669, -0.530819, -0.266242, -0.820747, -0.50546, -0.356487, -0.807102, -0.470642, -0.819508, -0.00400737, 0.573054, -0.621939, 0.221334, 0.751134, -0.486942, -0.344667, 0.802553, -0.296489, -0.309511, 0.903492, 0.680455, -0.730488, -0.0580388, 0.812386, -0.50524, -0.291138, 0.512377, -0.289213, -0.808595, 0.59308, -0.36805, -0.716097, 0.00800875, -0.117128, 0.993085, 0.674665, -0.252249, 0.693684, -0.796642, -0.304628, 0.522076, 0.217271, -0.957194, 0.191239, 0.753738, -0.65364, 0.0680667, -0.713001, -0.691972, -0.113159, -0.19324, -0.972209, 0.132164, 0.686968, 0.301986, -0.660969, -0.711449, 0.136086, -0.689435, 0.617246, 0.733292, -0.285114, 0.703262, -0.29411, -0.647241, -0.641482, -0.336253, -0.689518, -0.714327, 0.637291, -0.289132, -0.0100024, 0.996243, -0.086021, -0.456062, -0.0570077, -0.88812, -0.609345, 0.431244, -0.665377, -0.947416, 0.264395, -0.18027, -0.891752, -0.0680574, -0.447377, -0.983712, -0.11008, -0.142103, -0.617997, -0.0169999, -0.785996, -0.785431, -0.0981788, 0.611113, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 0.168118, 0.336236, 0.926651, 0.327528, -0.185299, 0.926493, -0.326633, -0.185359, 0.926797, -0.167145, 0.336293, 0.926806, 0.402511, 0.237301, 0.884123, 0.494351, 0.22516, 0.839595, -0.984497, -0.0871325, 0.152231, -1, 0, 0, -0.984497, -0.152231, 0.0871325, -0.98452, -0.175271, 0, -0.984346, 0.15321, 0.0871191, -0.98441, 0.0881262, 0.152218, -0.98441, -0.152218, -0.0881262, -0.984346, -0.0871191, -0.15321, -0.984347, 0, -0.176241, 0.497254, -0.437223, 0.749383, 0.354379, -0.137147, 0.92499, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, 1, 0, -0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0.25922, 0.965818, 0, 0.25922, 0.965818, 0, 0.25922, 0.965818, 0, 0.25922, 0.965818, 0, 0.25922, 0.965818, 0, 0.25922, 0.965818, -0.167136, 0.17214, 0.97079, -0.326504, 0.624964, 0.709094, 0.327398, 0.62476, 0.708862, 0.168109, 0.172111, 0.970627, -0.401672, 0.237397, 0.884479, -0.493594, 0.225271, 0.840011, -0.769614, 0.638509, 0, 0.770022, 0.638018, -0, 0.77049, 0.552351, 0.318202, -0.770083, 0.552777, 0.318448, 0.77067, 0.319278, 0.551479, -0.770263, 0.319524, 0.551905, 0.770513, 0, 0.637424, -0.770106, 0, 0.637916, 0.770916, -0.318378, 0.551655, -0.770509, -0.318624, 0.552081, 0.770916, -0.551655, 0.318378, -0.770509, -0.552081, 0.318624, 0.770513, -0.637424, 0, -0.770106, -0.637916, 0, -0.770083, -0.318448, -0.552777, -0.770263, -0.551905, -0.319524, 0.77067, -0.551479, -0.319278, 0.77049, -0.318202, -0.552351, -0.769614, 0, -0.638509, 0.770022, 0, -0.638018, -0.769837, 0.319347, -0.552601, 0.770245, 0.319101, -0.552175, -0.769837, 0.552601, -0.319347, 0.770245, 0.552175, -0.319101, -0.98452, 0, 0.175271, -0.984347, 0.176241, 0, -0.98426, 0.0881128, -0.153196, -0.98426, 0.153196, -0.0881128, 0.360374, -0.758786, 0.542562, -0.175025, 0.933135, 0.314046, -0.268074, 0.885244, 0.380105, -0.246181, 0.836614, 0.489359, -0.352675, -0.136261, 0.925772, -0.31946, 0.0650937, 0.945361, -0.95236, -0.0991416, 0.288412, -0.879823, 0.129121, 0.457428, -0.7009, -0.115148, 0.703904, -0.643922, 0.0390559, 0.764094, 0.286385, -0.615829, 0.733988, 0.764501, -0.387254, 0.515338, 0.0250168, -0.100067, 0.994666, 0.319337, 0.223236, 0.920972, 0.750018, 0.0670016, 0.658015, 0.687417, -0.119072, 0.716435, -0.825667, 0.144116, -0.54544, -0.564542, 0.681654, -0.465447, -0.454558, 0.60274, 0.655806, -0.923798, 0.0520449, 0.379327, -0.342076, 0.13303, -0.930208, 0.0799707, 0.541802, -0.836693, 0.969438, 0.150068, 0.194088, 0.991195, -0.0580114, 0.119023, -0.244187, 0.817627, 0.5214, -0.232042, 0.563101, -0.793142, -0.166079, 0.584278, -0.794378, -0.307188, 0.942578, -0.13108, -0.641567, 0.763675, -0.0720637, 0.161004, 0.0760018, -0.984023, 0.282058, 0.0480098, -0.958196, -0.18323, -0.152191, 0.971218, 0.410577, 0.0530746, 0.91028, -0.0370272, 0.718529, 0.694511, -0.580783, 0.410554, 0.702948, 0.943158, 0.164027, -0.289048, 0.910207, 0.00700159, -0.414094, 0.530191, 0.0660237, -0.845304, 0.728923, 0.358962, -0.582938, 0.039005, 0.86511, 0.500063, 0.0389854, 0.864677, -0.500813, 0.002, 0.999998, -0, 0.307062, -0.405082, -0.861174, 0.644374, -0.493286, -0.584339, 0.899636, -0.0680481, -0.431305, 0.473063, -0.0580077, -0.879117, 0, -0.746027, 0.665916, 0, -0.135113, 0.99083, 0.361199, -0.136075, 0.922507, 0.355385, -0.786851, 0.504546, 0.758512, -0.647437, -0.07405, 0.952727, -0.0990756, 0.287219, 0.641692, -0.681736, 0.351379, 0.709379, -0.115062, 0.695372, 0, -0.36621, -0.930532, 0, -0.0550267, -0.998485, -0.306156, -0.405206, -0.861439, -0.472286, -0.0580352, -0.879533, -0.899445, -0.0681094, -0.431694, -0.643788, -0.493604, -0.584716, -0.354509, -0.787131, 0.504725, -0.360328, -0.136124, 0.92284, -0.758087, -0.647929, -0.0741063, -0.952635, -0.0991702, 0.287493, -0.641103, -0.682174, 0.351605, -0.708882, -0.115143, 0.695866, 0, -0.0550817, 0.998482, 0.721736, -0.682696, -0.114116, 0.984884, -0.110987, -0.132984, 0.620192, -0.0180056, -0.784243, 0.463983, -0.666975, -0.582978, 0, 0.0239931, -0.999712, 0, -0.812786, -0.582563, -0.721256, -0.68319, -0.114199, -0.463198, -0.667285, -0.583249, -0.619576, -0.0180168, -0.78473, -0.984854, -0.111096, -0.133115, -0.712291, -0.694258, -0.103187, 0.595443, -0.778579, 0.198147, 0.653726, -0.55762, -0.511568, -0.639939, -0.7491, -0.171251, 0.643677, -0.761801, 0.0730768, 0.630288, -0.468214, -0.619283, -0.730652, -0.680607, -0.0540482, 0.116169, -0.506735, 0.854239, 0.201265, -0.563742, 0.801054, -0.905093, -0.411497, -0.107129, -0.0970155, 0.416066, -0.904144, -0.581217, 0.747279, -0.32212, -0.864338, -0.499774, -0.0560868, -0.164974, 0.491923, -0.854866, -0.616439, 0.761542, -0.200142, 0.407071, -0.149026, -0.901157, -0.759004, -0.614813, -0.214283, 0.347173, -0.0500249, -0.936466, -0.848814, -0.528507, -0.0140134, -0.344309, 0.00500449, 0.938843, -0.266308, -0.0730846, 0.961113, -0.669545, 0.542441, 0.507413, -0.833134, -0.540736, -0.116158, -0.62997, 0.48074, 0.609939, 0.712784, -0.693763, -0.103113, 0.64053, -0.74862, -0.171142, -0.653152, -0.557985, -0.511903, -0.594796, -0.779043, 0.198265, -0.629685, -0.46851, -0.619674, -0.64309, -0.762292, 0.0731239, 0.731118, -0.68011, -0.0540087, -0.11518, -0.506794, 0.854338, -0.200304, -0.563855, 0.801215, 0.905274, -0.411124, -0.107032, 0.864591, -0.499341, -0.0560383, 0.581879, 0.746844, -0.321933, 0.0980061, 0.416026, -0.904056, 0.617059, 0.761072, -0.200019, 0.165946, 0.491841, -0.854724, 0.759428, -0.614346, -0.214121, -0.406236, -0.149087, -0.901524, -0.346292, -0.0500423, -0.936791, 0.849093, -0.528058, -0.0140015, 0.345191, 0.00500277, 0.938519, 0.267238, -0.0730651, 0.960857, 0.83344, -0.540285, -0.116061, 0.670096, 0.542078, 0.507073, 0.630574, 0.480437, 0.609555, 0.652602, -0.667616, 0.35833, 0.272405, -0.803194, 0.529788, -0.69805, -0.119179, 0.706062, -0.0250168, -0.100067, 0.994666, -0.692476, -0.119254, 0.711516, -0.0250168, -0.100067, 0.994666, 0.794806, -0.441448, -0.416422, 0.800238, -0.563168, -0.206061, 0.931286, 0.0550169, 0.360111, 0.825985, 0.143997, -0.54499, 0.927789, 0.0530451, 0.369314, 0.825985, 0.143997, -0.54499, 0.823173, -0.419088, -0.383081, 0.35507, 0.134026, -0.925182, 0.348836, 0.133937, -0.927564, 0.241336, -0.969348, -0.0460641, -0.998282, -0.049063, 0.0320411, -0.995768, -0.0530409, 0.0750579, -0.256367, -0.749072, -0.610874, -0.92242, 0.00300137, -0.386176, -0.915525, 0.00500287, -0.402231, 0.679395, -0.526306, -0.511297, -0.621461, 0.0540401, -0.781579, -0.575446, 0.0600465, -0.815632, -0.652026, -0.668052, 0.358564, 0.0260168, -0.100064, 0.994641, 0.698563, -0.119096, 0.705568, -0.271477, -0.803413, 0.529932, 0.0260168, -0.100064, 0.994641, 0.692997, -0.119171, 0.711023, -0.794437, -0.441799, -0.416754, -0.825667, 0.144116, -0.54544, -0.931153, 0.0550682, 0.360446, -0.799878, -0.563619, -0.206226, -0.825667, 0.144116, -0.54544, -0.92765, 0.0530944, 0.369657, -0.82285, -0.419434, -0.383396, -0.354195, 0.134074, -0.925511, -0.347958, 0.133984, -0.927887, 0.998285, -0.049014, 0.0320091, -0.240392, -0.969582, -0.0460752, 0.995776, -0.0529881, 0.0749831, 0.922569, 0.0029986, -0.38582, 0.257302, -0.748879, -0.610717, 0.915686, 0.00499829, -0.401862, -0.678856, -0.526664, -0.511645, 0.622074, 0.0540065, -0.781093, 0.576115, 0.060012, -0.815163 </vector3_array>
- <nil> </nil>
- <nil> </nil>
- <nil> </nil>
- <nil> </nil>
- <real_array len="2500"> 6, 7, 0, 0, 6, 7, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 6, 7, 0, 0, 7, 0, 0, 0, 7, 6, 0, 0, 7, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 7, 0, 0, 6, 7, 0, 0, 6, 7, 0, 0, 6, 7, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 6, 3, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 3, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 8, 9, 3, 0, 8, 9, 3, 0, 8, 9, 0, 0, 8, 9, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 1, 3, 0, 0, 1, 3, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 6, 0, 0, 3, 6, 0, 0, 3, 6, 0, 0, 3, 6, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 1, 3, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 0, 1, 3, 0, 0, 1, 0, 0, 0, 1, 3, 0, 0, 1, 0, 0, 0, 1, 3, 0, 0, 1, 0, 0, 0, 8, 9, 3, 0, 8, 9, 0, 0, 12, 13, 1, 0, 12, 13, 1, 0, 12, 13, 0, 0, 12, 13, 0, 0, 12, 13, 1, 0, 12, 13, 1, 0, 12, 13, 0, 0, 12, 13, 0, 0, 12, 13, 1, 0, 12, 13, 0, 0, 12, 13, 1, 0, 12, 13, 0, 0, 3, 0, 0, 0, 8, 9, 3, 0, 8, 9, 3, 0, 8, 9, 0, 0, 9, 8, 0, 0, 9, 8, 3, 0, 9, 8, 0, 0, 9, 8, 3, 0, 9, 8, 0, 0, 8, 9, 3, 0, 8, 9, 0, 0, 12, 13, 1, 0, 12, 13, 0, 0, 12, 13, 1, 0, 12, 13, 0, 0, 3, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 7, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 6, 7, 0, 0, 7, 0, 0, 0, 6, 7, 0, 0, 7, 6, 0, 0, 7, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 7, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 16, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 6, 3, 0, 0, 6, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 10, 11, 3, 0, 10, 11, 0, 0, 10, 11, 0, 0, 10, 11, 3, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 1, 3, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 0, 3, 6, 0, 0, 3, 6, 0, 0, 3, 6, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 1, 3, 0, 0, 1, 0, 0, 0, 1, 3, 0, 0, 1, 0, 0, 0, 1, 3, 0, 0, 1, 0, 0, 0, 10, 11, 3, 0, 10, 11, 0, 0, 15, 16, 1, 0, 15, 16, 0, 0, 15, 16, 0, 0, 15, 16, 1, 0, 15, 16, 1, 0, 15, 16, 0, 0, 15, 16, 0, 0, 15, 16, 1, 0, 15, 16, 1, 0, 15, 16, 0, 0, 15, 16, 0, 0, 15, 16, 1, 0, 3, 0, 0, 0, 10, 11, 3, 0, 11, 10, 0, 0, 10, 11, 0, 0, 10, 11, 3, 0, 11, 10, 0, 0, 11, 10, 3, 0, 11, 10, 3, 0, 11, 10, 0, 0, 10, 11, 0, 0, 10, 11, 3, 0, 15, 16, 0, 0, 15, 16, 1, 0, 15, 16, 1, 0, 15, 16, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 1, 0, 0, 3, 1, 0, 0, 3, 0, 0, 0, 3, 1, 0, 0, 3, 1, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 1, 0, 0, 3, 0, 0, 0, 3, 1, 0, 0, 3, 0, 0, 0, 3, 1, 0, 0, 3, 0, 0, 0, 3, 1, 0, 0, 3, 1, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 1, 0, 0, 3, 0, 0, 0, 3, 1, 0, 0, 3, 0, 0, 0, 3, 1, 0, 0, 3, 6, 0, 0, 6, 0, 0, 0, 6, 3, 0, 0, 6, 3, 0, 0, 6, 0, 0, 0, 6, 3, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 3, 0, 0, 6, 3, 0, 0, 3, 0, 0, 0, 3, 10, 11, 0, 3, 10, 11, 0, 3, 0, 0, 0, 3, 10, 11, 0, 3, 10, 11, 0, 3, 0, 0, 0, 3, 10, 11, 0, 3, 10, 11, 0, 3, 0, 0, 0, 3, 10, 11, 0, 3, 10, 11, 0, 3, 0, 0, 0, 3, 11, 10, 0, 3, 10, 11, 0, 3, 11, 10, 0, 3, 0, 0, 0, 3, 11, 10, 0, 3, 0, 0, 0, 3, 11, 10, 0, 3, 11, 10, 0, 3, 10, 11, 0, 3, 0, 0, 0, 3, 10, 11, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 8, 9, 0, 3, 8, 9, 0, 3, 8, 9, 0, 3, 8, 9, 0, 3, 0, 0, 0, 3, 8, 9, 0, 3, 8, 9, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 8, 9, 0, 3, 8, 9, 0, 3, 8, 9, 0, 3, 9, 8, 0, 3, 0, 0, 0, 3, 9, 8, 0, 3, 9, 8, 0, 3, 0, 0, 0, 3, 9, 8, 0, 3, 9, 8, 0, 3, 0, 0, 0, 3, 8, 9, 0, 3, 8, 9, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 13, 0, 1, 12, 13, 0, 1, 12, 13, 0, 1, 12, 13, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 13, 0, 1, 12, 13, 0, 1, 12, 13, 0, 1, 12, 13, 0, 1, 12, 0, 0, 12, 1, 13, 0, 12, 1, 13, 0, 1, 0, 0, 0, 1, 12, 13, 0, 1, 12, 13, 0, 1, 0, 0, 0, 1, 12, 13, 0, 1, 12, 13, 0, 1, 0, 0, 0, 1, 12, 13, 0, 1, 12, 13, 0, 1, 0, 0, 0, 1, 15, 16, 0, 1, 15, 16, 0, 1, 0, 0, 0, 1, 15, 16, 0, 1, 15, 16, 0, 1, 0, 0, 0, 1, 15, 16, 0, 1, 15, 16, 0, 1, 0, 0, 0, 1, 15, 16, 0, 1, 15, 16, 0, 1, 15, 0, 0, 15, 1, 16, 0, 15, 1, 16, 0, 1, 15, 16, 0, 1, 0, 0, 0, 1, 15, 16, 0, 1, 15, 16, 0, 1, 0, 0, 0, 1, 15, 16, 0, 1, 0, 0, 0, 1, 15, 16, 0, 1, 15, 16, 0 </real_array>
- <real_array len="2500"> 0.500006, 0.499994, 0, 0, 0.500036, 0.499964, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.508359, 0.491641, 0, 0, 1, 0, 0, 0, 0.500012, 0.499988, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.500137, 0.499863, 0, 0, 0.997415, 0.00258508, 0, 0, 0.5, 0.5, 0, 0, 0.502778, 0.497222, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.439327, 0.339942, 0.220731, 0, 0.397775, 0.362587, 0.239639, 0, 0.523139, 0.476861, 0, 0, 0.563768, 0.436232, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 0.666667, 0.333333, 0, 0, 0.666667, 0.333333, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 0.66667, 0.33333, 0, 0, 1, 0, 0, 0, 0.412375, 0.353797, 0.233829, 0, 0.538228, 0.461772, 0, 0, 0.544073, 0.274503, 0.181424, 0, 0.550005, 0.266658, 0.183337, 0, 0.673479, 0.326521, 0, 0, 0.664658, 0.335342, 0, 0, 0.546797, 0.270935, 0.182268, 0, 0.544673, 0.273746, 0.181581, 0, 0.665519, 0.334481, 0, 0, 0.668675, 0.331325, 0, 0, 0.615652, 0.230199, 0.154149, 0, 0.6672, 0.3328, 0, 0, 0.544198, 0.2744, 0.181402, 0, 0.664792, 0.335208, 0, 0, 1, 0, 0, 0, 0.37581, 0.37581, 0.24838, 0, 0.378779, 0.374023, 0.247199, 0, 0.503159, 0.496841, 0, 0, 0.5, 0.5, 0, 0, 0.399773, 0.361383, 0.238845, 0, 0.525218, 0.474782, 0, 0, 0.409739, 0.358697, 0.231565, 0, 0.533212, 0.466788, 0, 0, 0.375815, 0.375807, 0.248378, 0, 0.500006, 0.499994, 0, 0, 0.56732, 0.24294, 0.18974, 0, 0.700171, 0.299829, 0, 0, 0.544164, 0.274448, 0.181388, 0, 0.66474, 0.33526, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.500006, 0.499994, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.500036, 0.499964, 0, 0, 1, 0, 0, 0, 0.508359, 0.491641, 0, 0, 0.500012, 0.499988, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.502778, 0.497222, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.439327, 0.339942, 0.220731, 0, 0.563768, 0.436232, 0, 0, 0.523139, 0.476861, 0, 0, 0.397775, 0.362587, 0.239639, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 0.666667, 0.333333, 0, 0, 0.666667, 0.333333, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 0.412375, 0.353797, 0.233829, 0, 0.538228, 0.461772, 0, 0, 0.544073, 0.274503, 0.181424, 0, 0.664658, 0.335342, 0, 0, 0.673479, 0.326521, 0, 0, 0.550005, 0.266658, 0.183337, 0, 0.546797, 0.270935, 0.182268, 0, 0.668675, 0.331325, 0, 0, 0.665519, 0.334481, 0, 0, 0.544673, 0.273746, 0.181581, 0, 0.615652, 0.230199, 0.154149, 0, 0.6672, 0.3328, 0, 0, 0.664792, 0.335208, 0, 0, 0.544198, 0.2744, 0.181402, 0, 1, 0, 0, 0, 0.37581, 0.37581, 0.24838, 0, 0.5, 0.5, 0, 0, 0.503159, 0.496841, 0, 0, 0.378779, 0.374023, 0.247199, 0, 0.525218, 0.474782, 0, 0, 0.399773, 0.361383, 0.238845, 0, 0.409739, 0.358697, 0.231565, 0, 0.533212, 0.466788, 0, 0, 0.500006, 0.499994, 0, 0, 0.375815, 0.375807, 0.248378, 0, 0.700171, 0.299829, 0, 0, 0.56732, 0.24294, 0.18974, 0, 0.544164, 0.274448, 0.181388, 0, 0.66474, 0.33526, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 0.666663, 0.333337, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666667, 0.333333, 0, 0, 0.666667, 0.333333, 0, 0, 1, 0, 0, 0, 0.718253, 0.15884, 0.122907, 0, 0.739344, 0.136359, 0.124296, 0, 1, 0, 0, 0, 0.45939, 0.304779, 0.235832, 0, 0.485992, 0.268898, 0.245111, 0, 1, 0, 0, 0, 0.7331, 0.143653, 0.123247, 0, 0.477963, 0.280975, 0.241062, 0, 1, 0, 0, 0, 0.748373, 0.125813, 0.125813, 0, 0.747178, 0.12721, 0.125612, 0, 1, 0, 0, 0, 0.497836, 0.251082, 0.251082, 0, 0.496251, 0.253466, 0.250283, 0, 0.738503, 0.137343, 0.124154, 0, 1, 0, 0, 0, 0.484902, 0.270539, 0.244559, 0, 1, 0, 0, 0, 0.730612, 0.143641, 0.125747, 0, 0.4748, 0.280042, 0.245157, 0, 0.748371, 0.125816, 0.125813, 0, 1, 0, 0, 0, 0.497833, 0.251086, 0.251081, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.739344, 0.136359, 0.124296, 0, 0.718253, 0.15884, 0.122907, 0, 0.485992, 0.268898, 0.245111, 0, 0.45939, 0.304779, 0.235832, 0, 1, 0, 0, 0, 0.7331, 0.143653, 0.123247, 0, 0.477963, 0.280975, 0.241062, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.747178, 0.12721, 0.125612, 0, 0.748373, 0.125813, 0.125813, 0, 0.496251, 0.253466, 0.250283, 0, 0.497836, 0.251082, 0.251082, 0, 1, 0, 0, 0, 0.738503, 0.137343, 0.124154, 0, 0.484902, 0.270539, 0.244559, 0, 1, 0, 0, 0, 0.730612, 0.143641, 0.125747, 0, 0.4748, 0.280042, 0.245157, 0, 1, 0, 0, 0, 0.748371, 0.125816, 0.125813, 0, 0.497833, 0.251086, 0.251081, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.668925, 0.222972, 0.108103, 0, 0.666077, 0.221944, 0.111978, 0, 0.402445, 0.40244, 0.195114, 0, 0.399364, 0.399217, 0.201418, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0.666312, 0.222075, 0.111612, 0, 0.667337, 0.222443, 0.110219, 0, 0.399617, 0.399566, 0.200817, 0, 0.400725, 0.40072, 0.198555, 0, 0.500004, 0.499996, 0, 0, 0.533361, 0.40023, 0.0664093, 0, 0.571539, 0.286063, 0.142398, 0, 1, 0, 0, 0, 0.666044, 0.222012, 0.111945, 0, 0.399328, 0.399322, 0.20135, 0, 1, 0, 0, 0, 0.678203, 0.225313, 0.0964842, 0, 0.412634, 0.411257, 0.176109, 0, 1, 0, 0, 0, 0.666023, 0.222008, 0.111969, 0, 0.399306, 0.399306, 0.201389, 0, 1, 0, 0, 0, 0.666077, 0.221944, 0.111978, 0, 0.668925, 0.222972, 0.108103, 0, 1, 0, 0, 0, 0.399364, 0.399217, 0.201418, 0, 0.402445, 0.40244, 0.195114, 0, 1, 0, 0, 0, 0.667337, 0.222443, 0.110219, 0, 0.666312, 0.222075, 0.111612, 0, 1, 0, 0, 0, 0.400725, 0.40072, 0.198555, 0, 0.399617, 0.399566, 0.200817, 0, 0.500004, 0.499996, 0, 0, 0.533361, 0.40023, 0.0664093, 0, 0.571539, 0.286063, 0.142398, 0, 0.666044, 0.222012, 0.111945, 0, 1, 0, 0, 0, 0.399328, 0.399322, 0.20135, 0, 0.678203, 0.225313, 0.0964842, 0, 1, 0, 0, 0, 0.412634, 0.411257, 0.176109, 0, 1, 0, 0, 0, 0.666023, 0.222008, 0.111969, 0, 0.399306, 0.399306, 0.201389, 0 </real_array>
- <int_array len="2502"> 0, 2, 1, 0, 3, 2, 1, 5, 4, 1, 2, 5, 6, 5, 7, 6, 4, 5, 8, 0, 9, 8, 10, 0, 11, 13, 12, 11, 14, 13, 15, 17, 16, 15, 7, 17, 12, 15, 18, 12, 13, 15, 10, 3, 0, 10, 19, 3, 13, 7, 15, 13, 6, 7, 2, 20, 5, 2, 21, 20, 7, 20, 17, 7, 5, 20, 21, 3, 22, 21, 2, 3, 18, 16, 23, 18, 15, 16, 22, 19, 24, 22, 3, 19, 25, 27, 26, 25, 28, 27, 29, 28, 25, 29, 30, 28, 26, 32, 31, 26, 27, 32, 33, 35, 34, 33, 36, 35, 37, 39, 38, 37, 40, 39, 38, 42, 41, 38, 39, 42, 43, 45, 44, 43, 46, 45, 47, 49, 48, 47, 50, 49, 51, 53, 52, 51, 54, 53, 55, 46, 56, 55, 45, 46, 57, 44, 58, 57, 43, 44, 59, 61, 60, 59, 50, 61, 62, 45, 55, 62, 63, 45, 64, 48, 65, 64, 47, 48, 66, 50, 59, 66, 49, 50, 67, 43, 57, 67, 68, 43, 69, 68, 67, 69, 70, 68, 34, 49, 66, 34, 35, 49, 65, 70, 69, 65, 48, 70, 58, 72, 71, 58, 44, 72, 56, 36, 33, 56, 46, 36, 71, 74, 73, 71, 72, 74, 60, 63, 62, 60, 61, 63, 73, 47, 64, 73, 74, 47, 75, 77, 76, 75, 78, 77, 79, 41, 80, 79, 38, 41, 81, 38, 79, 81, 37, 38, 80, 83, 82, 80, 41, 83, 84, 37, 81, 84, 85, 37, 41, 86, 83, 41, 42, 86, 85, 40, 37, 85, 87, 40, 42, 88, 86, 42, 89, 88, 87, 90, 40, 87, 91, 90, 40, 92, 39, 40, 90, 92, 39, 89, 42, 39, 92, 89, 48, 35, 70, 48, 49, 35, 74, 50, 47, 74, 61, 50, 70, 36, 68, 70, 35, 36, 44, 63, 72, 44, 45, 63, 68, 46, 43, 68, 36, 46, 72, 61, 74, 72, 63, 61, 93, 95, 94, 93, 96, 95, 97, 25, 26, 97, 98, 25, 98, 29, 25, 98, 99, 29, 100, 26, 31, 100, 97, 26, 31, 102, 101, 31, 32, 102, 103, 105, 104, 103, 106, 105, 104, 108, 107, 104, 105, 108, 107, 110, 109, 107, 108, 110, 111, 113, 112, 111, 114, 113, 115, 112, 116, 115, 111, 112, 117, 116, 118, 117, 115, 116, 119, 118, 120, 119, 117, 118, 114, 110, 113, 114, 109, 110, 121, 123, 122, 121, 124, 123, 125, 124, 121, 125, 126, 124, 127, 129, 128, 128, 129, 130, 131, 129, 132, 133, 130, 129, 134, 133, 129, 135, 134, 129, 136, 138, 137, 136, 139, 138, 140, 142, 141, 140, 143, 142, 144, 146, 145, 144, 147, 146, 145, 149, 148, 145, 146, 149, 148, 151, 150, 148, 149, 151, 150, 153, 152, 150, 151, 153, 152, 143, 140, 152, 153, 143, 154, 156, 155, 154, 157, 156, 155, 159, 158, 155, 156, 159, 158, 106, 103, 158, 159, 106, 160, 162, 161, 160, 163, 162, 164, 161, 165, 164, 160, 161, 166, 165, 167, 166, 164, 165, 168, 167, 169, 168, 166, 167, 154, 120, 157, 154, 119, 120, 144, 169, 147, 144, 168, 169, 163, 142, 162, 163, 141, 142, 170, 172, 171, 170, 173, 172, 174, 173, 170, 174, 175, 173, 176, 178, 177, 176, 179, 178, 177, 126, 125, 177, 178, 126, 180, 179, 176, 180, 181, 179, 122, 181, 180, 122, 123, 181, 182, 184, 183, 182, 185, 184, 183, 187, 186, 183, 184, 187, 186, 189, 188, 186, 187, 189, 188, 191, 190, 188, 189, 191, 190, 193, 192, 190, 191, 193, 192, 195, 194, 192, 193, 195, 196, 198, 197, 196, 199, 198, 200, 197, 201, 200, 196, 197, 202, 201, 203, 202, 200, 201, 204, 203, 205, 204, 202, 203, 199, 195, 198, 199, 194, 195, 182, 205, 185, 182, 204, 205, 206, 129, 127, 207, 129, 131, 132, 129, 206, 208, 135, 129, 209, 208, 129, 207, 209, 129, 210, 139, 136, 210, 211, 139, 28, 212, 27, 28, 213, 212, 30, 213, 28, 30, 214, 213, 27, 215, 32, 27, 212, 215, 216, 218, 217, 216, 219, 218, 220, 95, 221, 220, 94, 95, 222, 218, 219, 222, 223, 218, 224, 96, 93, 224, 225, 96, 220, 223, 222, 220, 221, 223, 226, 78, 75, 226, 227, 78, 228, 230, 229, 228, 231, 230, 232, 234, 233, 232, 235, 234, 236, 235, 232, 236, 237, 235, 229, 239, 238, 229, 230, 239, 233, 231, 228, 233, 234, 231, 32, 240, 102, 32, 215, 240, 241, 243, 242, 241, 244, 243, 76, 246, 245, 76, 77, 246, 247, 227, 226, 247, 248, 227, 242, 250, 249, 242, 243, 250, 245, 244, 241, 245, 246, 244, 249, 248, 247, 249, 250, 248, 238, 252, 251, 238, 239, 252, 253, 237, 236, 253, 254, 237, 251, 254, 253, 251, 252, 254, 102, 240, 255, 9, 1, 256, 9, 0, 1, 14, 6, 13, 14, 257, 6, 256, 4, 258, 256, 1, 4, 257, 4, 6, 257, 258, 4, 259, 261, 260, 259, 262, 261, 262, 263, 261, 262, 264, 263, 265, 263, 264, 265, 266, 263, 8, 259, 10, 8, 267, 259, 11, 269, 268, 11, 12, 269, 270, 271, 266, 270, 272, 271, 12, 270, 269, 12, 18, 270, 10, 260, 19, 10, 259, 260, 269, 266, 265, 269, 270, 266, 261, 274, 273, 261, 263, 274, 266, 274, 263, 266, 271, 274, 260, 273, 275, 260, 261, 273, 18, 272, 270, 18, 23, 272, 19, 275, 24, 19, 260, 275, 276, 278, 277, 276, 279, 278, 29, 277, 30, 29, 276, 277, 279, 280, 278, 279, 281, 280, 282, 284, 283, 282, 285, 284, 286, 288, 287, 286, 289, 288, 289, 290, 288, 289, 291, 290, 292, 294, 293, 292, 295, 294, 296, 298, 297, 296, 299, 298, 300, 53, 54, 300, 301, 53, 302, 293, 294, 302, 303, 293, 304, 295, 292, 304, 305, 295, 306, 307, 297, 306, 308, 307, 309, 294, 310, 309, 302, 294, 311, 299, 296, 311, 312, 299, 313, 297, 298, 313, 306, 297, 314, 292, 315, 314, 304, 292, 316, 315, 317, 316, 314, 315, 285, 298, 284, 285, 313, 298, 312, 317, 299, 312, 316, 317, 305, 318, 295, 305, 319, 318, 303, 283, 293, 303, 282, 283, 319, 320, 318, 319, 321, 320, 308, 310, 307, 308, 309, 310, 321, 296, 320, 321, 311, 296, 322, 324, 323, 322, 325, 324, 326, 291, 289, 326, 327, 291, 328, 289, 286, 328, 326, 289, 327, 329, 291, 327, 330, 329, 331, 286, 332, 331, 328, 286, 291, 333, 290, 291, 329, 333, 332, 287, 334, 332, 286, 287, 290, 336, 335, 290, 333, 336, 334, 338, 337, 334, 287, 338, 287, 339, 338, 287, 288, 339, 288, 335, 339, 288, 290, 335, 299, 284, 298, 299, 317, 284, 320, 297, 307, 320, 296, 297, 317, 283, 284, 317, 315, 283, 295, 310, 294, 295, 318, 310, 315, 293, 283, 315, 292, 293, 318, 307, 310, 318, 320, 307, 340, 342, 341, 340, 343, 342, 344, 276, 345, 344, 279, 276, 345, 29, 99, 345, 276, 29, 346, 279, 344, 346, 281, 279, 281, 102, 280, 281, 101, 102, 347, 349, 348, 347, 350, 349, 350, 351, 349, 350, 352, 351, 352, 353, 351, 352, 354, 353, 355, 357, 356, 355, 358, 357, 359, 358, 355, 359, 360, 358, 361, 360, 359, 361, 362, 360, 363, 362, 361, 363, 364, 362, 356, 353, 354, 356, 357, 353, 365, 367, 366, 365, 368, 367, 369, 366, 370, 369, 365, 366, 371, 373, 372, 373, 374, 372, 375, 376, 372, 377, 372, 374, 378, 372, 377, 379, 372, 378, 136, 381, 380, 136, 137, 381, 382, 384, 383, 382, 385, 384, 386, 388, 387, 386, 389, 388, 389, 390, 388, 389, 391, 390, 391, 392, 390, 391, 393, 392, 393, 394, 392, 393, 395, 394, 395, 383, 394, 395, 382, 383, 396, 398, 397, 396, 399, 398, 399, 400, 398, 399, 401, 400, 401, 348, 400, 401, 347, 348, 402, 404, 403, 402, 405, 404, 406, 405, 402, 406, 407, 405, 408, 407, 406, 408, 409, 407, 410, 409, 408, 410, 411, 409, 396, 364, 363, 396, 397, 364, 386, 411, 410, 386, 387, 411, 403, 384, 385, 403, 404, 384, 412, 414, 413, 412, 415, 414, 416, 413, 417, 416, 412, 413, 418, 420, 419, 418, 421, 420, 421, 370, 420, 421, 369, 370, 422, 419, 423, 422, 418, 419, 368, 423, 367, 368, 422, 423, 424, 426, 425, 424, 427, 426, 427, 428, 426, 427, 429, 428, 429, 430, 428, 429, 431, 430, 431, 432, 430, 431, 433, 432, 433, 434, 432, 433, 435, 434, 435, 436, 434, 435, 437, 436, 438, 440, 439, 438, 441, 440, 442, 441, 438, 442, 443, 441, 444, 443, 442, 444, 445, 443, 446, 445, 444, 446, 447, 445, 439, 436, 437, 439, 440, 436, 424, 447, 446, 424, 425, 447, 448, 371, 372, 449, 375, 372, 376, 448, 372, 450, 372, 379, 451, 372, 450, 449, 372, 451, 210, 380, 452, 210, 136, 380, 277, 454, 453, 277, 278, 454, 30, 453, 214, 30, 277, 453, 278, 455, 454, 278, 280, 455, 216, 457, 456, 216, 217, 457, 458, 342, 343, 458, 459, 342, 460, 457, 461, 460, 456, 457, 224, 341, 225, 224, 340, 341, 458, 461, 459, 458, 460, 461, 462, 323, 463, 462, 322, 323, 464, 466, 465, 464, 467, 466, 468, 470, 469, 468, 471, 470, 472, 469, 473, 472, 468, 469, 467, 474, 466, 467, 475, 474, 471, 465, 470, 471, 464, 465, 280, 476, 455, 280, 102, 476, 477, 479, 478, 477, 480, 479, 325, 481, 324, 325, 482, 481, 483, 463, 484, 483, 462, 463, 480, 485, 479, 480, 486, 485, 482, 478, 481, 482, 477, 478, 486, 484, 485, 486, 483, 484, 475, 487, 474, 475, 488, 487, 489, 473, 490, 489, 472, 473, 488, 490, 487, 488, 489, 490, 102, 255, 476, 267, 262, 259, 267, 491, 262, 268, 265, 492, 268, 269, 265, 491, 264, 262, 491, 493, 264, 492, 264, 493, 492, 265, 264, 494, 496, 495, 494, 497, 496, 497, 94, 496, 497, 93, 94, 498, 500, 499, 498, 501, 500, 499, 219, 216, 499, 500, 219, 502, 496, 503, 502, 495, 496, 503, 94, 220, 503, 496, 94, 504, 500, 501, 504, 505, 500, 505, 219, 500, 505, 222, 219, 506, 497, 494, 506, 507, 497, 507, 93, 497, 507, 224, 93, 502, 505, 504, 502, 503, 505, 503, 222, 505, 503, 220, 222, 508, 510, 509, 508, 511, 510, 509, 343, 340, 509, 510, 343, 498, 513, 512, 498, 499, 513, 499, 456, 513, 499, 216, 456, 514, 510, 511, 514, 515, 510, 515, 343, 510, 515, 458, 343, 516, 513, 517, 516, 512, 513, 517, 456, 460, 517, 513, 456, 506, 509, 507, 506, 508, 509, 507, 340, 224, 507, 509, 340, 514, 517, 515, 514, 516, 517, 515, 460, 458, 515, 517, 460, 31, 518, 100, 31, 101, 518, 100, 54, 51, 100, 518, 54, 519, 521, 520, 519, 522, 521, 520, 98, 97, 520, 521, 98, 522, 523, 521, 522, 524, 523, 521, 99, 98, 521, 523, 99, 52, 520, 51, 52, 519, 520, 51, 97, 100, 51, 520, 97, 281, 518, 101, 281, 346, 518, 346, 54, 518, 346, 300, 54, 525, 527, 526, 525, 528, 527, 528, 345, 527, 528, 344, 345, 526, 523, 524, 526, 527, 523, 527, 99, 523, 527, 345, 99, 301, 528, 525, 301, 300, 528, 300, 344, 528, 300, 346, 344, 529, 531, 530, 529, 532, 531, 530, 534, 533, 530, 531, 534, 533, 325, 322, 533, 534, 325, 535, 530, 536, 535, 529, 530, 536, 533, 537, 536, 530, 533, 537, 322, 462, 537, 533, 322, 538, 540, 539, 538, 541, 540, 539, 543, 542, 539, 540, 543, 542, 480, 477, 542, 543, 480, 532, 544, 531, 532, 545, 544, 531, 546, 534, 531, 544, 546, 534, 482, 325, 534, 546, 482, 547, 536, 548, 547, 535, 536, 548, 537, 549, 548, 536, 537, 549, 462, 483, 549, 537, 462, 541, 550, 540, 541, 551, 550, 540, 552, 543, 540, 550, 552, 543, 486, 480, 543, 552, 486, 545, 539, 544, 545, 538, 539, 544, 542, 546, 544, 539, 542, 546, 477, 482, 546, 542, 477, 551, 548, 550, 551, 547, 548, 550, 549, 552, 550, 548, 549, 552, 483, 486, 552, 549, 483, 553, 555, 554, 553, 556, 555, 556, 557, 555, 556, 558, 557, 558, 76, 557, 558, 75, 76, 559, 556, 553, 559, 560, 556, 560, 558, 556, 560, 561, 558, 561, 75, 558, 561, 226, 75, 562, 564, 563, 562, 565, 564, 565, 566, 564, 565, 567, 566, 567, 242, 566, 567, 241, 242, 554, 569, 568, 554, 555, 569, 555, 570, 569, 555, 557, 570, 557, 245, 570, 557, 76, 245, 571, 560, 559, 571, 572, 560, 572, 561, 560, 572, 573, 561, 573, 226, 561, 573, 247, 226, 563, 575, 574, 563, 564, 575, 564, 576, 575, 564, 566, 576, 566, 249, 576, 566, 242, 249, 568, 565, 562, 568, 569, 565, 569, 567, 565, 569, 570, 567, 570, 241, 567, 570, 245, 241, 574, 572, 571, 574, 575, 572, 575, 573, 572, 575, 576, 573, 576, 247, 573, 576, 249, 247, 577, 579, 578, 577, 580, 579, 580, 581, 579, 580, 582, 581, 582, 229, 581, 582, 228, 229, 583, 585, 584, 583, 586, 585, 586, 587, 585, 586, 588, 587, 588, 233, 587, 588, 232, 233, 589, 586, 583, 589, 590, 586, 590, 588, 586, 590, 591, 588, 591, 232, 588, 591, 236, 232, 578, 593, 592, 578, 579, 593, 579, 594, 593, 579, 581, 594, 581, 238, 594, 581, 229, 238, 584, 580, 577, 584, 585, 580, 585, 582, 580, 585, 587, 582, 587, 228, 582, 587, 233, 228, 592, 596, 595, 592, 593, 596, 593, 597, 596, 593, 594, 597, 594, 251, 597, 594, 238, 251, 598, 590, 589, 598, 599, 590, 599, 591, 590, 599, 600, 591, 600, 236, 591, 600, 253, 236, 595, 599, 598, 595, 596, 599, 596, 600, 599, 596, 597, 600, 597, 253, 600, 597, 251, 253, 601, 603, 602, 601, 604, 603, 602, 606, 605, 602, 603, 606, 605, 467, 464, 605, 606, 467, 607, 609, 608, 607, 610, 609, 608, 612, 611, 608, 609, 612, 611, 471, 468, 611, 612, 471, 613, 608, 614, 613, 607, 608, 614, 611, 615, 614, 608, 611, 615, 468, 472, 615, 611, 468, 604, 616, 603, 604, 617, 616, 603, 618, 606, 603, 616, 618, 606, 475, 467, 606, 618, 475, 610, 602, 609, 610, 601, 602, 609, 605, 612, 609, 602, 605, 612, 464, 471, 612, 605, 464, 617, 619, 616, 617, 620, 619, 616, 621, 618, 616, 619, 621, 618, 488, 475, 618, 621, 488, 622, 614, 623, 622, 613, 614, 623, 615, 624, 623, 614, 615, 624, 472, 489, 624, 615, 472, 620, 623, 619, 620, 622, 623, 619, 624, 621, 619, 623, 624, 621, 489, 488, 621, 624, 489 </int_array>
- </array>
- </dictionary>
-
- </resource>
- <resource type="SampleLibrary" path="local://6">
- </resource>
- <resource type="Animation" path="local://7">
- <string name="resource/name"> "idle" </string>
- <real name="length"> 1.25 </real>
- <bool name="loop"> True </bool>
- <real name="step"> 0.1 </real>
- <string name="tracks/0/type"> "transform" </string>
- <node_path name="tracks/0/path"> "Armature/Skeleton:r-arm" </node_path>
- <int name="tracks/0/interp"> 1 </int>
- <real_array name="tracks/0/keys" len="180"> 0, 1, 1.01328e-06, -8.34465e-07, 1.07288e-06, -0.0255728, 0.138077, -0.259039, 0.955604, 1, 1, 1, 0.05, 1, 5.96046e-07, -2.38419e-07, 3.8743e-07, -0.0264725, 0.139277, -0.25962, 0.955248, 1, 1, 1, 0.1, 1, 5.36442e-07, -2.38419e-07, 3.8743e-07, -0.028916, 0.142508, -0.261183, 0.954274, 1, 1, 1, 0.15, 1, 1.19209e-07, 1.19209e-07, 5.96046e-08, -0.0326835, 0.14736, -0.26354, 0.952766, 1, 1, 1, 0.25, 1, 5.96046e-08, 1.19209e-07, 0, -0.0433083, 0.158072, -0.268982, 0.949098, 1, 1, 1, 0.3, 1, 8.9407e-07, -3.57628e-07, 5.96046e-07, -0.0481632, 0.16058, -0.27034, 0.948056, 1, 1, 1, 0.35, 1, 7.15256e-07, -3.57628e-07, 5.36442e-07, -0.0515519, 0.159894, -0.270034, 0.948081, 1, 1, 1, 0.4, 1, 6.25849e-07, -3.57628e-07, 5.06639e-07, -0.0529994, 0.155917, -0.267946, 0.949256, 1, 1, 1, 0.85, 1, 8.04663e-07, -5.96046e-07, 8.34465e-07, -0.01551, 0.114246, -0.235933, 0.964906, 1, 1, 1, 0.9, 1, 7.15256e-07, -4.76837e-07, 7.15256e-07, -0.0133439, 0.115591, -0.236366, 0.964672, 1, 1, 1, 0.95, 1, 5.06639e-07, -3.57628e-07, 4.76837e-07, -0.0142794, 0.118993, -0.239276, 0.963527, 1, 1, 1, 1.1, 1, 6.55651e-07, -3.57628e-07, 5.36442e-07, -0.0224776, 0.132362, -0.25315, 0.958066, 1, 1, 1, 1.15, 1, 7.45058e-07, -2.38419e-07, 4.17233e-07, -0.0241962, 0.135447, -0.25637, 0.956736, 1, 1, 1, 1.2, 1, 7.15256e-07, -2.38419e-07, 5.06639e-07, -0.0252313, 0.137384, -0.258343, 0.955902, 1, 1, 1, 1.25, 1, 1.01328e-06, -8.34465e-07, 1.07288e-06, -0.0255726, 0.138077, -0.259039, 0.955604, 1, 1, 1 </real_array>
- <string name="tracks/1/type"> "transform" </string>
- <node_path name="tracks/1/path"> "Armature/Skeleton:r-forearm" </node_path>
- <int name="tracks/1/interp"> 1 </int>
- <real_array name="tracks/1/keys" len="204"> 0, 1, 2.38419e-07, -8.34465e-07, -4.76837e-07, -0.218168, -0.120735, -0.0116329, 0.968344, 1, 1, 1, 0.05, 1, 2.98023e-08, -5.96046e-07, -2.38419e-07, -0.218633, -0.120967, -0.0119311, 0.968207, 1, 1, 1, 0.1, 1, 1.78814e-07, -7.7486e-07, -4.76837e-07, -0.219848, -0.121646, -0.0127373, 0.967836, 1, 1, 1, 0.15, 1, -5.96046e-08, -6.25849e-07, -4.76837e-07, -0.221585, -0.122891, -0.0139574, 0.967266, 1, 1, 1, 0.2, 1, -2.98023e-08, -9.83477e-07, -1.78814e-07, -0.223801, -0.125062, -0.0151597, 0.966459, 1, 1, 1, 0.25, 1, 1.49012e-07, -5.66244e-07, -2.38419e-07, -0.225991, -0.128733, -0.0159408, 0.965454, 1, 1, 1, 0.3, 1, 0, -1.04308e-06, -2.38419e-07, -0.227229, -0.134329, -0.0159913, 0.9644, 1, 0.999999, 1, 0.55, 1, 2.98023e-08, -5.66244e-07, -3.57628e-07, -0.218159, -0.170756, -0.00658222, 0.960836, 1, 1, 1, 0.6, 1, 1.49012e-07, -5.36442e-07, -2.98023e-07, -0.214746, -0.174272, -0.00460497, 0.960985, 1, 1, 1, 0.65, 1, 2.38419e-07, -2.08616e-07, -3.57628e-07, -0.21128, -0.17607, -0.0030008, 0.961432, 1, 1, 1, 0.7, 1, 1.49012e-07, -4.47035e-07, -2.38419e-07, -0.207961, -0.17612, -0.00179697, 0.962149, 1, 1, 1, 0.75, 1, -2.38419e-07, -6.55651e-07, -3.57628e-07, -0.204984, -0.174339, -0.000935222, 0.963113, 1, 1, 1, 0.8, 1, 8.9407e-08, -2.98023e-08, -1.19209e-07, -0.202542, -0.170485, -0.000499965, 0.964319, 1, 0.999999, 1, 0.85, 1, 8.9407e-08, -8.64267e-07, -4.17233e-07, -0.200954, -0.164989, -0.000498206, 0.965607, 1, 0.999999, 1, 1.15, 1, 1.19209e-07, -6.85453e-07, -2.98023e-07, -0.216378, -0.124725, -0.0104075, 0.968254, 1, 1, 1, 1.2, 1, -2.98023e-08, 2.98023e-08, -1.78814e-07, -0.217708, -0.121801, -0.0113103, 0.968318, 1, 1, 1, 1.25, 1, 2.38419e-07, -8.34465e-07, -4.76837e-07, -0.218168, -0.120734, -0.0116329, 0.968344, 1, 1, 1 </real_array>
- <string name="tracks/2/type"> "transform" </string>
- <node_path name="tracks/2/path"> "Armature/Skeleton:l-arm" </node_path>
- <int name="tracks/2/interp"> 1 </int>
- <real_array name="tracks/2/keys" len="180"> 0, 1, -1.01328e-06, -8.34465e-07, 1.07288e-06, -0.0255728, -0.138077, 0.25904, 0.955604, 1, 1, 1, 0.05, 1, -5.96046e-07, -2.38419e-07, 3.8743e-07, -0.0264725, -0.139277, 0.25962, 0.955248, 1, 1, 1, 0.1, 1, -5.36442e-07, -2.38419e-07, 3.8743e-07, -0.028916, -0.142508, 0.261183, 0.954274, 1, 1, 1, 0.15, 1, -1.19209e-07, 1.19209e-07, 5.96046e-08, -0.0326835, -0.14736, 0.26354, 0.952766, 1, 1, 1, 0.25, 1, -5.96046e-08, 1.19209e-07, 0, -0.0433083, -0.158072, 0.268982, 0.949098, 1, 1, 1, 0.3, 1, -8.9407e-07, -3.57628e-07, 5.96046e-07, -0.0481632, -0.16058, 0.27034, 0.948056, 1, 1, 1, 0.35, 1, -7.15256e-07, -3.57628e-07, 5.36442e-07, -0.0515519, -0.159894, 0.270034, 0.948081, 1, 1, 1, 0.4, 1, -6.25849e-07, -3.57628e-07, 5.06639e-07, -0.0529994, -0.155917, 0.267946, 0.949256, 1, 1, 1, 0.85, 1, -8.04663e-07, -5.96046e-07, 8.34465e-07, -0.01551, -0.114246, 0.235933, 0.964906, 1, 1, 1, 0.9, 1, -7.15256e-07, -4.76837e-07, 7.15256e-07, -0.0133439, -0.115591, 0.236367, 0.964672, 1, 1, 1, 0.95, 1, -5.06639e-07, -3.57628e-07, 4.76837e-07, -0.0142794, -0.118993, 0.239276, 0.963527, 1, 1, 1, 1.1, 1, -6.55651e-07, -3.57628e-07, 5.36442e-07, -0.0224776, -0.132362, 0.25315, 0.958066, 1, 1, 1, 1.15, 1, -7.45058e-07, -2.38419e-07, 4.17233e-07, -0.0241962, -0.135447, 0.25637, 0.956736, 1, 1, 1, 1.2, 1, -7.15256e-07, -2.38419e-07, 5.06639e-07, -0.0252313, -0.137384, 0.258343, 0.955902, 1, 1, 1, 1.25, 1, -1.01328e-06, -8.34465e-07, 1.07288e-06, -0.0255726, -0.138077, 0.259039, 0.955604, 1, 1, 1 </real_array>
- <string name="tracks/3/type"> "transform" </string>
- <node_path name="tracks/3/path"> "Armature/Skeleton:l-forearm" </node_path>
- <int name="tracks/3/interp"> 1 </int>
- <real_array name="tracks/3/keys" len="204"> 0, 1, -2.38419e-07, -8.34465e-07, -4.76837e-07, -0.218168, 0.120735, 0.0116329, 0.968344, 1, 1, 1, 0.05, 1, -5.96046e-08, -8.04663e-07, -3.57628e-07, -0.218633, 0.120966, 0.0119311, 0.968207, 1, 1, 1, 0.1, 1, -3.57628e-07, -7.45058e-07, -4.17233e-07, -0.219848, 0.121646, 0.0127373, 0.967836, 1, 1, 1, 0.15, 1, -1.49012e-07, -6.25849e-07, -3.57628e-07, -0.221585, 0.122891, 0.0139575, 0.967266, 1, 1, 1, 0.2, 1, 0, -9.53674e-07, -1.19209e-07, -0.223801, 0.125062, 0.0151597, 0.966459, 1, 1, 1, 0.25, 1, -1.49012e-07, -5.66244e-07, -2.38419e-07, -0.225991, 0.128733, 0.0159408, 0.965454, 1, 1, 1, 0.3, 1, 0, -1.04308e-06, -2.38419e-07, -0.227229, 0.134329, 0.0159913, 0.9644, 1, 0.999999, 1, 0.55, 1, -2.98023e-08, -5.66244e-07, -3.57628e-07, -0.218159, 0.170756, 0.00658222, 0.960836, 1, 1, 1, 0.6, 1, -1.49012e-07, -5.36442e-07, -2.98023e-07, -0.214746, 0.174272, 0.00460497, 0.960985, 1, 1, 1, 0.65, 1, -2.38419e-07, -2.08616e-07, -3.57628e-07, -0.21128, 0.17607, 0.0030008, 0.961432, 1, 1, 1, 0.7, 1, -1.49012e-07, -4.47035e-07, -2.38419e-07, -0.207961, 0.17612, 0.00179697, 0.962149, 1, 1, 1, 0.75, 1, 2.38419e-07, -6.55651e-07, -3.57628e-07, -0.204984, 0.174339, 0.000935222, 0.963113, 1, 1, 1, 0.8, 1, -2.98023e-08, 0, -1.19209e-07, -0.202542, 0.170485, 0.000499968, 0.964319, 1, 1, 1, 0.85, 1, 1.49012e-07, -8.34465e-07, -4.17233e-07, -0.200954, 0.164989, 0.000498198, 0.965606, 1, 1, 1, 1.15, 1, -2.38419e-07, -8.04663e-07, -6.55651e-07, -0.216378, 0.124725, 0.0104075, 0.968254, 1, 1, 1, 1.2, 1, -2.08616e-07, 2.08616e-07, -2.98023e-07, -0.217708, 0.121801, 0.0113103, 0.968318, 1, 1, 1, 1.25, 1, -2.38419e-07, -8.34465e-07, -4.76837e-07, -0.218168, 0.120734, 0.0116329, 0.968344, 1, 1, 1 </real_array>
- <string name="tracks/4/type"> "transform" </string>
- <node_path name="tracks/4/path"> "Armature/Skeleton:r-thigh" </node_path>
- <int name="tracks/4/interp"> 1 </int>
- <real_array name="tracks/4/keys" len="180"> 0, 1, 0, 5.21541e-08, -3.42727e-07, -0.0539951, -0.0696263, 0.0213632, 0.995882, 1, 1, 1, 0.05, 1, 0, 5.21541e-08, -3.42727e-07, -0.0567764, -0.0700338, 0.0212387, 0.995701, 1, 1, 1, 0.1, 1, 0, 3.72529e-08, -3.42727e-07, -0.06411, -0.0711033, 0.0209058, 0.995187, 1, 1, 1, 0.15, 1, 0, 9.68575e-08, -3.42727e-07, -0.0751103, -0.0727354, 0.0204167, 0.994309, 1, 1, 1, 0.45, 1, 0, 1.41561e-07, -1.3411e-07, -0.154319, -0.0862804, 0.0175296, 0.984091, 1, 1, 1, 0.5, 1, 2.98023e-08, 7.45058e-09, 2.5332e-07, -0.162001, -0.0877685, 0.017297, 0.982728, 1, 1, 1, 0.55, 1, 0, 3.72529e-08, -3.42727e-07, -0.166842, -0.0887317, 0.0171579, 0.981833, 1, 1, 1, 0.6, 1, 0, 2.98023e-08, -1.49012e-07, -0.169226, -0.0892111, 0.0170905, 0.981383, 1, 1, 1, 0.65, 1, 0, 2.98023e-08, -1.49012e-07, -0.169226, -0.0892111, 0.0170905, 0.981383, 1, 1, 1, 0.7, 1, 0, 3.72529e-08, -3.42727e-07, -0.166842, -0.0887317, 0.0171579, 0.981833, 1, 1, 1, 0.75, 1, 2.98023e-08, 7.45058e-09, 2.5332e-07, -0.162001, -0.0877685, 0.017297, 0.982728, 1, 1, 1, 0.8, 1, 0, 1.41561e-07, -1.3411e-07, -0.154319, -0.0862804, 0.0175296, 0.984091, 1, 1, 1, 1.15, 1, 0, 3.72529e-08, -3.42727e-07, -0.06411, -0.0711033, 0.0209058, 0.995187, 1, 1, 1, 1.2, 1, 0, 5.21541e-08, -3.42727e-07, -0.0567764, -0.0700338, 0.0212387, 0.995701, 1, 1, 1, 1.25, 1, 0, 5.21541e-08, -3.42727e-07, -0.0539951, -0.0696263, 0.0213632, 0.995882, 1, 1, 1 </real_array>
- <string name="tracks/5/type"> "transform" </string>
- <node_path name="tracks/5/path"> "Armature/Skeleton:r-leg" </node_path>
- <int name="tracks/5/interp"> 1 </int>
- <real_array name="tracks/5/keys" len="192"> 0, 1, 1.42842e-07, 1.93715e-07, 2.98023e-07, -0.0965851, -0.0177476, 0.000627753, 0.995166, 1, 1, 1, 0.05, 1, 4.62169e-08, -6.70552e-08, 6.55651e-07, -0.100604, -0.0182764, 0.000608928, 0.994758, 1, 1, 1, 0.1, 1, 8.12579e-08, 5.96046e-08, 5.36442e-07, -0.111195, -0.0196529, 0.000562433, 0.993604, 1, 1, 1, 0.15, 1, 3.0268e-08, -2.98023e-08, 5.96046e-07, -0.127055, -0.0217242, 0.000494295, 0.991658, 1, 1, 1, 0.45, 1, 1.55647e-07, 1.49012e-07, 4.76837e-07, -0.240017, -0.0376881, -3.78875e-05, 0.970037, 1, 1, 1, 0.5, 1, -1.23866e-07, 3.57628e-07, 7.7486e-07, -0.250826, -0.0393224, -9.00224e-05, 0.967233, 1, 1, 1, 0.55, 1, 5.34346e-08, 3.72529e-08, 5.96046e-07, -0.25762, -0.040368, -0.000123774, 0.965403, 1, 1, 1, 0.6, 1, 1.08266e-08, 5.96046e-08, 7.15256e-07, -0.260963, -0.0408854, -0.000140397, 0.964483, 1, 1, 1, 0.65, 1, 1.08266e-08, 5.96046e-08, 7.15256e-07, -0.260963, -0.0408854, -0.000140397, 0.964483, 1, 1, 1, 0.7, 1, 5.34346e-08, 3.72529e-08, 5.96046e-07, -0.25762, -0.040368, -0.000123775, 0.965403, 1, 1, 1, 0.75, 1, -1.23866e-07, 3.57628e-07, 7.7486e-07, -0.250826, -0.0393224, -9.00224e-05, 0.967233, 1, 1, 1, 0.8, 1, 1.55647e-07, 1.49012e-07, 4.76837e-07, -0.240017, -0.0376881, -3.78871e-05, 0.970037, 1, 1, 1, 0.9, 1, -4.8778e-08, -1.3411e-07, 7.15256e-07, -0.208519, -0.0330444, 0.00011266, 0.97746, 1, 1, 1, 1.15, 1, 8.12579e-08, 5.96046e-08, 5.36442e-07, -0.111195, -0.0196529, 0.000562432, 0.993604, 1, 1, 1, 1.2, 1, 4.62169e-08, -6.70552e-08, 6.55651e-07, -0.100605, -0.0182764, 0.000608928, 0.994758, 1, 1, 1, 1.25, 1, 1.42842e-07, 1.93715e-07, 2.98023e-07, -0.0965852, -0.0177476, 0.000627753, 0.995166, 1, 1, 1 </real_array>
- <string name="tracks/6/type"> "transform" </string>
- <node_path name="tracks/6/path"> "Armature/Skeleton:r-foot" </node_path>
- <int name="tracks/6/interp"> 1 </int>
- <real_array name="tracks/6/keys" len="180"> 0, 1, 8.9407e-08, 2.38419e-07, -2.23517e-08, 0.0349931, -0.0301778, 0.0362945, 0.998272, 1, 1, 1, 0.05, 1, 7.45058e-08, 2.38419e-07, 6.33299e-08, 0.0358993, -0.0301376, 0.0363473, 0.998239, 1, 1, 1, 0.1, 1, 5.21541e-08, 1.19209e-07, 2.98023e-08, 0.0384013, -0.0300263, 0.0364927, 0.998144, 1, 1, 1, 0.15, 1, 4.47035e-08, 1.19209e-07, -1.11759e-08, 0.0424549, -0.0298457, 0.0367279, 0.997977, 1, 1, 1, 0.5, 1, 5.21541e-08, 1.19209e-07, 7.45058e-09, 0.0873535, -0.0278095, 0.0392948, 0.995014, 1, 1, 1, 0.55, 1, -7.45058e-09, 0, -5.21541e-08, 0.0905253, -0.0276632, 0.0394735, 0.994727, 1, 1, 1, 0.6, 1, 2.98023e-08, 0, 2.23517e-08, 0.0921114, -0.0275899, 0.0395627, 0.99458, 1, 1, 1, 0.65, 1, 2.98023e-08, 0, 2.23517e-08, 0.0921114, -0.0275899, 0.0395627, 0.99458, 1, 1, 1, 0.7, 1, -7.45058e-09, 0, -5.21541e-08, 0.0905253, -0.0276632, 0.0394735, 0.994727, 1, 1, 1, 0.75, 1, 5.21541e-08, 1.19209e-07, 7.45058e-09, 0.0873535, -0.0278095, 0.0392948, 0.995014, 1, 1, 1, 0.8, 1, 1.04308e-07, 2.38419e-07, -1.49012e-08, 0.0824784, -0.0280337, 0.0390195, 0.995434, 1, 1, 1, 1.1, 1, 4.47035e-08, 1.19209e-07, -1.11759e-08, 0.0424549, -0.0298457, 0.0367279, 0.997977, 1, 1, 1, 1.15, 1, 5.21541e-08, 1.19209e-07, 2.98023e-08, 0.0384013, -0.0300263, 0.0364927, 0.998144, 1, 1, 1, 1.2, 1, 7.45058e-08, 2.38419e-07, 6.33299e-08, 0.0358993, -0.0301376, 0.0363473, 0.998239, 1, 1, 1, 1.25, 1, 8.9407e-08, 2.38419e-07, -2.23517e-08, 0.0349931, -0.0301778, 0.0362945, 0.998272, 1, 1, 1 </real_array>
- <string name="tracks/7/type"> "transform" </string>
- <node_path name="tracks/7/path"> "Armature/Skeleton:l-thigh" </node_path>
- <int name="tracks/7/interp"> 1 </int>
- <real_array name="tracks/7/keys" len="180"> 0, 1, 0, 6.70552e-08, -1.04308e-07, -0.0539995, 0.0696269, -0.0213643, 0.995881, 1, 0.999999, 1, 0.05, 1, 0, 6.70552e-08, -1.04308e-07, -0.05678, 0.0700343, -0.0212398, 0.995701, 1, 0.999999, 1, 0.1, 1, 0, 2.23517e-08, -1.04308e-07, -0.0641135, 0.0711039, -0.0209069, 0.995187, 1, 0.999999, 1, 0.15, 1, 0, 8.19564e-08, -1.04308e-07, -0.075114, 0.072736, -0.0204178, 0.994309, 1, 0.999999, 1, 0.45, 1, -2.98023e-08, 1.04308e-07, 1.04308e-07, -0.15432, 0.0862808, -0.0175308, 0.98409, 1, 0.999999, 1, 0.5, 1, -5.96046e-08, 2.98023e-08, 4.91738e-07, -0.162002, 0.0877689, -0.0172983, 0.982727, 1, 0.999999, 1, 0.55, 1, 0, 5.21541e-08, -1.04308e-07, -0.166843, 0.0887321, -0.0171591, 0.981833, 1, 0.999999, 1, 0.6, 1, -2.98023e-08, 4.47035e-08, 8.9407e-08, -0.169228, 0.0892116, -0.0170917, 0.981382, 1, 0.999999, 1, 0.65, 1, -2.98023e-08, 4.47035e-08, 8.9407e-08, -0.169228, 0.0892116, -0.0170917, 0.981382, 1, 0.999999, 1, 0.7, 1, 0, 5.21541e-08, -1.04308e-07, -0.166843, 0.0887321, -0.0171591, 0.981833, 1, 0.999999, 1, 0.75, 1, -5.96046e-08, 2.98023e-08, 4.91738e-07, -0.162002, 0.0877689, -0.0172983, 0.982727, 1, 0.999999, 1, 0.8, 1, -2.98023e-08, 1.04308e-07, 1.04308e-07, -0.15432, 0.0862808, -0.0175308, 0.98409, 1, 0.999999, 1, 1.15, 1, 0, 2.23517e-08, -1.04308e-07, -0.0641135, 0.0711039, -0.020907, 0.995187, 1, 0.999999, 1, 1.2, 1, 0, 6.70552e-08, -1.04308e-07, -0.05678, 0.0700343, -0.0212398, 0.995701, 1, 0.999999, 1, 1.25, 1, 0, 6.70552e-08, -1.04308e-07, -0.0539992, 0.0696269, -0.0213643, 0.995881, 1, 0.999999, 1 </real_array>
- <string name="tracks/8/type"> "transform" </string>
- <node_path name="tracks/8/path"> "Armature/Skeleton:l-leg" </node_path>
- <int name="tracks/8/interp"> 1 </int>
- <real_array name="tracks/8/keys" len="192"> 0, 1, 9.06875e-08, -8.19564e-08, 3.57628e-07, -0.0965913, 0.0177484, -0.00062776, 0.995166, 1, 1, 1, 0.05, 1, 3.44589e-08, -1.93715e-07, 2.98023e-07, -0.10061, 0.0182771, -0.000608941, 0.994758, 1, 1, 1, 0.1, 1, 2.52621e-08, -1.86265e-07, 5.96046e-08, -0.1112, 0.0196536, -0.000562456, 0.993604, 1, 1, 1, 0.15, 1, 9.02219e-08, -1.19209e-07, 1.19209e-07, -0.127061, 0.021725, -0.000494313, 0.991657, 1, 1, 1, 0.45, 1, 7.13626e-08, -5.21541e-08, 1.19209e-07, -0.24002, 0.0376883, 3.78708e-05, 0.970036, 1, 1, 1, 0.5, 1, -2.84053e-08, -1.78814e-07, -1.78814e-07, -0.250828, 0.0393224, 9.00085e-05, 0.967233, 1, 1, 1, 0.55, 1, 1.234e-08, 2.01166e-07, 1.78814e-07, -0.257623, 0.0403681, 0.000123756, 0.965402, 1, 1, 1, 0.6, 1, -9.97679e-08, 5.21541e-08, -5.96046e-08, -0.260966, 0.0408856, 0.000140381, 0.964482, 1, 1, 1, 0.65, 1, -9.97679e-08, 5.21541e-08, -5.96046e-08, -0.260966, 0.0408856, 0.000140381, 0.964482, 1, 1, 1, 0.7, 1, 1.234e-08, 2.01166e-07, 1.78814e-07, -0.257623, 0.0403681, 0.000123754, 0.965402, 1, 1, 1, 0.75, 1, -2.84053e-08, -1.78814e-07, -1.78814e-07, -0.250828, 0.0393224, 9.00085e-05, 0.967233, 1, 1, 1, 0.8, 1, 7.13626e-08, -5.21541e-08, 1.19209e-07, -0.24002, 0.0376883, 3.78693e-05, 0.970036, 1, 1, 1, 0.9, 1, 3.73693e-08, -5.21541e-08, 2.38419e-07, -0.208521, 0.0330446, -0.000112648, 0.977459, 1, 1, 1, 1.15, 1, 2.52621e-08, -1.86265e-07, 5.96046e-08, -0.1112, 0.0196536, -0.000562457, 0.993604, 1, 1, 1, 1.2, 1, 3.44589e-08, -1.93715e-07, 2.98023e-07, -0.10061, 0.0182771, -0.000608943, 0.994758, 1, 1, 1, 1.25, 1, 9.06875e-08, -8.19564e-08, 3.57628e-07, -0.0965911, 0.0177484, -0.000627765, 0.995166, 1, 1, 1 </real_array>
- <string name="tracks/9/type"> "transform" </string>
- <node_path name="tracks/9/path"> "Armature/Skeleton:l-foot" </node_path>
- <int name="tracks/9/interp"> 1 </int>
- <real_array name="tracks/9/keys" len="180"> 0, 1, -6.70552e-08, 0, -3.72529e-09, 0.0349931, 0.0301778, -0.0362945, 0.998272, 1, 1, 1, 0.05, 1, -1.49012e-08, 1.19209e-07, -7.45058e-09, 0.0358993, 0.0301376, -0.0363473, 0.998239, 1, 1, 1, 0.1, 1, 1.49012e-08, -1.19209e-07, 1.49012e-08, 0.0384013, 0.0300263, -0.0364927, 0.998144, 1, 1, 1, 0.15, 1, -4.47035e-08, 0, -3.72529e-09, 0.0424549, 0.0298457, -0.0367279, 0.997977, 1, 1, 1, 0.5, 1, 5.21541e-08, 0, -1.11759e-08, 0.0873535, 0.0278095, -0.0392948, 0.995014, 1, 1, 1, 0.55, 1, 4.47035e-08, 0, -2.98023e-08, 0.0905253, 0.0276632, -0.0394736, 0.994727, 1, 1, 1, 0.6, 1, 1.49012e-08, 0, -1.86265e-08, 0.0921114, 0.02759, -0.0395628, 0.99458, 1, 1, 1, 0.65, 1, 1.49012e-08, 0, -1.86265e-08, 0.0921114, 0.02759, -0.0395628, 0.99458, 1, 1, 1, 0.7, 1, 4.47035e-08, 0, -2.98023e-08, 0.0905253, 0.0276633, -0.0394736, 0.994727, 1, 1, 1, 0.75, 1, 5.21541e-08, 0, -1.11759e-08, 0.0873535, 0.0278095, -0.0392948, 0.995014, 1, 1, 1, 0.8, 1, -3.72529e-08, 1.19209e-07, -1.11759e-08, 0.0824784, 0.0280338, -0.0390195, 0.995434, 1, 1, 1, 1.1, 1, -4.47035e-08, 0, -3.72529e-09, 0.0424549, 0.0298457, -0.0367279, 0.997977, 1, 1, 1, 1.15, 1, 1.49012e-08, -1.19209e-07, 1.49012e-08, 0.0384013, 0.0300263, -0.0364927, 0.998144, 1, 1, 1, 1.2, 1, -1.49012e-08, 1.19209e-07, -7.45058e-09, 0.0358992, 0.0301376, -0.0363473, 0.998239, 1, 1, 1, 1.25, 1, -6.70552e-08, 0, -3.72529e-09, 0.0349931, 0.0301778, -0.0362945, 0.998272, 1, 1, 1 </real_array>
- <string name="tracks/10/type"> "transform" </string>
- <node_path name="tracks/10/path"> "Armature/Skeleton:MASTER" </node_path>
- <int name="tracks/10/interp"> 1 </int>
- <real_array name="tracks/10/keys" len="24"> 0, 1, 0, -0.322829, 2.42144e-08, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0, -0.322829, 2.42144e-08, 5.1658e-08, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/11/type"> "transform" </string>
- <node_path name="tracks/11/path"> "Armature/Skeleton:HEAD" </node_path>
- <int name="tracks/11/interp"> 1 </int>
- <real_array name="tracks/11/keys" len="24"> 0, 1, -5.68434e-14, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -5.68434e-14, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/12/type"> "transform" </string>
- <node_path name="tracks/12/path"> "Armature/Skeleton:r-LEGCONTROL" </node_path>
- <int name="tracks/12/interp"> 1 </int>
- <real_array name="tracks/12/keys" len="24"> 0, 1, 0.220288, -4.0302e-11, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.220288, -4.0302e-11, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/13/type"> "transform" </string>
- <node_path name="tracks/13/path"> "Armature/Skeleton:l-LEGCONTROL" </node_path>
- <int name="tracks/13/interp"> 1 </int>
- <real_array name="tracks/13/keys" len="24"> 0, 1, -0.220288, -4.0302e-11, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.220288, -4.0302e-11, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/14/type"> "transform" </string>
- <node_path name="tracks/14/path"> "Armature/Skeleton:r-LEGORIENT" </node_path>
- <int name="tracks/14/interp"> 1 </int>
- <real_array name="tracks/14/keys" len="24"> 0, 1, -0.183564, 0.0305941, 5.96046e-08, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.183564, 0.0305941, 5.96046e-08, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1 </real_array>
- <string name="tracks/15/type"> "transform" </string>
- <node_path name="tracks/15/path"> "Armature/Skeleton:l-LEGORIENT" </node_path>
- <int name="tracks/15/interp"> 1 </int>
- <real_array name="tracks/15/keys" len="24"> 0, 1, 0.183564, 0.030594, 5.96046e-08, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.183564, 0.030594, 5.96046e-08, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1 </real_array>
- <string name="tracks/16/type"> "transform" </string>
- <node_path name="tracks/16/path"> "Armature/Skeleton:r-ARMCONTROL" </node_path>
- <int name="tracks/16/interp"> 1 </int>
- <real_array name="tracks/16/keys" len="168"> 0, 1, -1.15243, -0.687477, 0.0713858, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -1.15504, -0.689394, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, -1.16214, -0.694617, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.15, 1, -1.17317, -0.702725, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.3, 1, -1.21295, -0.731968, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.35, 1, -1.22128, -0.738092, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.4, 1, -1.2252, -0.740971, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.45, 1, -1.22553, -0.741211, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.5, 1, -1.22422, -0.740253, 0.0713858, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, -1.22161, -0.73833, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.6, 1, -1.21787, -0.735585, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1.15, 1, -1.15488, -0.689275, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1.2, 1, -1.15308, -0.687955, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1.25, 1, -1.15243, -0.687477, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/17/type"> "transform" </string>
- <node_path name="tracks/17/path"> "Armature/Skeleton:l-ARMCONTROL" </node_path>
- <int name="tracks/17/interp"> 1 </int>
- <real_array name="tracks/17/keys" len="168"> 0, 1, 1.15243, -0.687477, 0.0713859, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 1.15504, -0.689394, 0.0713859, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, 1.16214, -0.694617, 0.0713859, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.15, 1, 1.17317, -0.702725, 0.0713859, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.3, 1, 1.21295, -0.731968, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.35, 1, 1.22128, -0.738092, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.4, 1, 1.2252, -0.740971, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.45, 1, 1.22553, -0.741211, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.5, 1, 1.22422, -0.740253, 0.0713858, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, 1.22161, -0.73833, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.6, 1, 1.21787, -0.735585, 0.0713858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1.15, 1, 1.15488, -0.689275, 0.0713859, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1.2, 1, 1.15308, -0.687955, 0.0713859, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1.25, 1, 1.15243, -0.687477, 0.0713859, -5.1658e-08, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/18/type"> "transform" </string>
- <node_path name="tracks/18/path"> "Armature/Skeleton:r-ARMORIENT" </node_path>
- <int name="tracks/18/interp"> 1 </int>
- <real_array name="tracks/18/keys" len="156"> 0, 1, 0.849557, -0.741664, 4.9468, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 0.849557, -0.741664, 4.93101, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, 0.849557, -0.741664, 4.88735, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.15, 1, 0.849557, -0.741664, 4.81599, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.2, 1, 0.849557, -0.741664, 4.71797, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.75, 1, 0.849557, -0.741664, 3.21234, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, 0.849557, -0.741664, 3.18081, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.85, 1, 0.849557, -0.741664, 3.18869, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.9, 1, 0.849557, -0.741664, 3.28296, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.95, 1, 0.849557, -0.741664, 3.48291, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1.15, 1, 0.849557, -0.741664, 4.70777, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1.2, 1, 0.849557, -0.741664, 4.88227, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.849557, -0.741664, 4.9468, -5.1658e-08, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/19/type"> "transform" </string>
- <node_path name="tracks/19/path"> "Armature/Skeleton:l-ARMORIENT" </node_path>
- <int name="tracks/19/interp"> 1 </int>
- <real_array name="tracks/19/keys" len="156"> 0, 1, -0.849557, -0.741664, 4.9468, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -0.849557, -0.741664, 4.93101, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, -0.849557, -0.741664, 4.88735, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.15, 1, -0.849557, -0.741664, 4.81599, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.2, 1, -0.849557, -0.741664, 4.71797, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.75, 1, -0.849557, -0.741664, 3.21234, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, -0.849557, -0.741664, 3.18081, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.85, 1, -0.849557, -0.741664, 3.18869, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.9, 1, -0.849557, -0.741664, 3.28296, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.95, 1, -0.849557, -0.741664, 3.48291, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1.15, 1, -0.849557, -0.741664, 4.70777, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1.2, 1, -0.849557, -0.741664, 4.88227, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.849557, -0.741664, 4.9468, -5.1658e-08, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/20/type"> "transform" </string>
- <node_path name="tracks/20/path"> "Armature/Skeleton:hip" </node_path>
- <int name="tracks/20/interp"> 1 </int>
- <real_array name="tracks/20/keys" len="180"> 0, 1, 1.11759e-08, 0.0713859, 0.0510914, 0, 0, 1.44945e-21, 1, 1, 1, 1, 0.05, 1, 1.11759e-08, 0.0713859, 0.0522077, -4.26326e-14, 4.23516e-22, 1.44945e-21, 1, 1, 1, 1, 0.1, 1, 1.11759e-08, 0.0713859, 0.05529, -5.68434e-14, 2.11758e-21, 1.44945e-21, 1, 1, 1, 1, 0.15, 1, 1.11759e-08, 0.0713859, 0.0602832, -4.26326e-14, 4.23516e-22, 1.44945e-21, 1, 1, 1, 1, 0.5, 1, 1.11759e-08, 0.0713859, 0.115648, 0, 0, 1.44945e-21, 1, 1, 1, 1, 0.55, 1, 1.11759e-08, 0.0713859, 0.119568, -4.26326e-14, 4.23516e-22, 1.44945e-21, 1, 1, 1, 1, 0.6, 1, 1.11759e-08, 0.0713859, 0.121528, -4.26326e-14, 4.23516e-22, 1.44945e-21, 1, 1, 1, 1, 0.65, 1, 1.11759e-08, 0.0713859, 0.121528, -4.26326e-14, 4.23516e-22, 1.44945e-21, 1, 1, 1, 1, 0.7, 1, 1.11759e-08, 0.0713859, 0.119568, -5.68434e-14, 2.11758e-21, 1.44945e-21, 1, 1, 1, 1, 0.75, 1, 1.11759e-08, 0.0713859, 0.115648, 0, 0, 1.44945e-21, 1, 1, 1, 1, 0.8, 1, 1.11759e-08, 0.0713859, 0.109626, -5.68434e-14, 2.11758e-21, 1.44945e-21, 1, 1, 1, 1, 1.1, 1, 1.11759e-08, 0.0713859, 0.0602832, -5.68434e-14, 2.11758e-21, 1.44945e-21, 1, 1, 1, 1, 1.15, 1, 1.11759e-08, 0.0713859, 0.05529, -4.26326e-14, 4.23516e-22, 1.44945e-21, 1, 1, 1, 1, 1.2, 1, 1.11759e-08, 0.0713859, 0.0522077, -2.84217e-14, -4.23516e-22, 1.44945e-21, 1, 1, 1, 1, 1.25, 1, 1.11759e-08, 0.0713859, 0.0510914, -4.26326e-14, 4.23516e-22, 1.44945e-21, 1, 1, 1, 1 </real_array>
- <string name="tracks/21/type"> "transform" </string>
- <node_path name="tracks/21/path"> "Armature/Skeleton:waist" </node_path>
- <int name="tracks/21/interp"> 1 </int>
- <real_array name="tracks/21/keys" len="168"> 0, 1, 5.71157e-15, -1.62345e-08, 8.9407e-08, 0, 0, 2.44616e-35, 1, 1, 1, 1, 0.05, 1, 5.75176e-15, -1.64873e-08, 8.9407e-08, 0.000214909, 1.42979e-18, -2.11758e-22, 1, 1, 1, 1, 0.1, 1, 4.06271e-15, -5.26452e-09, 8.9407e-08, 0.000808293, -3.04932e-19, 2.465e-22, 1, 1, 1, 1, 0.15, 1, 1.54246e-15, 1.14859e-08, 8.9407e-08, 0.00176961, 6.63395e-18, -1.17394e-20, 0.999998, 1, 1, 1, 0.5, 1, 4.42376e-15, -1.05373e-09, -2.98023e-08, 0.0124283, 2.20213e-20, -2.77954e-22, 0.999923, 1, 1, 1, 0.55, 1, 4.56489e-15, -1.94163e-09, 8.9407e-08, 0.0131829, 1.00996e-17, -7.10618e-15, 0.999913, 1, 1, 1, 0.65, 1, 1.79332e-15, -2.38573e-09, 8.9407e-08, 0.0135603, 1.03769e-16, -1.40726e-18, 0.999908, 1, 1, 1, 0.7, 1, 4.56489e-15, -1.94163e-09, 8.9407e-08, 0.0131829, -1.18256e-16, 1.5591e-18, 0.999913, 1, 1, 1, 0.75, 1, 4.42376e-15, -1.05373e-09, -2.98023e-08, 0.0124282, 2.20246e-20, -2.77954e-22, 0.999923, 1, 1, 1, 0.8, 1, 4.20699e-15, 3.1009e-10, -2.98023e-08, 0.011269, -6.2751e-17, 7.07106e-19, 0.999937, 1, 1, 1, 1.1, 1, 1.54246e-15, 1.14859e-08, 8.9407e-08, 0.00176961, 7.93788e-18, -7.10545e-15, 0.999998, 1, 1, 1, 1.15, 1, 4.06271e-15, -5.26452e-09, 8.9407e-08, 0.000808293, -3.04932e-19, 2.465e-22, 1, 1, 1, 1, 1.2, 1, 5.75176e-15, -1.64874e-08, 8.9407e-08, 0.00021491, -2.03966e-18, 4.23517e-22, 1, 1, 1, 1, 1.25, 1, 5.71157e-15, -1.62345e-08, 8.9407e-08, 3.83187e-10, 0, 1.22308e-35, 1, 1, 1, 1 </real_array>
- <string name="tracks/22/type"> "transform" </string>
- <node_path name="tracks/22/path"> "Armature/Skeleton:chest" </node_path>
- <int name="tracks/22/interp"> 1 </int>
- <real_array name="tracks/22/keys" len="156"> 0, 1, 7.24544e-18, 1.86265e-08, 5.96046e-08, 0, 0, -1.33383e-23, 1, 1, 1, 1, 0.05, 1, -3.76414e-18, 3.72529e-09, 0, 0.00110099, -2.41201e-19, -1.97577e-17, 0.999999, 1, 1, 1, 0.1, 1, 9.18675e-18, 1.49012e-08, -1.19209e-07, 0.00410119, -8.96205e-19, -7.35977e-17, 0.999992, 1, 1, 1, 0.15, 1, 1.76552e-17, 7.45058e-09, -5.96046e-08, 0.00875896, -1.91283e-18, -1.57184e-16, 0.999962, 1, 1, 1, 0.3, 1, 1.31081e-17, -1.11759e-08, 0, 0.0255569, -5.58266e-18, -4.58633e-16, 0.999673, 1, 1, 1, 0.35, 1, 1.99653e-17, -1.49012e-08, -5.96046e-08, 0.0290738, -6.35135e-18, -5.21745e-16, 0.999577, 1, 1, 1, 0.4, 1, 1.92772e-17, 1.11759e-08, 1.19209e-07, 0.0307265, -6.71273e-18, -5.51404e-16, 0.999528, 1, 1, 1, 0.5, 1, 4.47552e-17, 1.11759e-08, 5.96046e-08, 0.0303143, -6.6203e-18, -5.44008e-16, 0.99954, 1, 1, 1, 0.55, 1, 1.08083e-17, 2.23517e-08, -5.96046e-08, 0.0292103, -6.38065e-18, -5.24195e-16, 0.999573, 1, 1, 1, 0.6, 1, -3.34373e-18, -1.11759e-08, -2.98023e-07, 0.0276344, -6.03606e-18, -4.95914e-16, 0.999618, 1, 1, 1, 1.15, 1, 9.18674e-18, 1.49012e-08, -1.19209e-07, 0.0010327, -2.26125e-19, -1.85323e-17, 0.999999, 1, 1, 1, 1.2, 1, -3.7641e-18, 0, 0, 0.000274137, -6.02241e-20, -4.91966e-18, 1, 1, 1, 1, 1.25, 1, 7.24539e-18, 1.86265e-08, 5.96046e-08, 0, 0, 1.31315e-23, 1, 1, 1, 1 </real_array>
- <string name="tracks/23/type"> "transform" </string>
- <node_path name="tracks/23/path"> "Armature/Skeleton:neck" </node_path>
- <int name="tracks/23/interp"> 1 </int>
- <real_array name="tracks/23/keys" len="24"> 0, 1, -1.13687e-13, -1.49012e-08, -3.57628e-07, 1.17383e-27, 2.13163e-14, 5.50671e-14, 1, 1, 1, 1, 1.25, 1, -1.13687e-13, -1.49012e-08, -3.57628e-07, -2.46125e-27, 2.13163e-14, -1.77636e-15, 1, 1, 1, 1 </real_array>
- <string name="tracks/24/type"> "transform" </string>
- <node_path name="tracks/24/path"> "Armature/Skeleton:headtracker" </node_path>
- <int name="tracks/24/interp"> 1 </int>
- <real_array name="tracks/24/keys" len="180"> 0, 1, -2.16716e-13, 2.38419e-07, -1.20141e-07, 0.00540576, -3.97061e-09, 4.73012e-08, 0.999985, 1, 1, 1, 0.05, 1, 1.42109e-14, -6.85453e-07, -5.96046e-08, 0.00687155, -3.90174e-09, 4.73059e-08, 0.999976, 1, 1, 1, 0.1, 1, -1.06581e-13, -3.57628e-07, 4.65661e-09, 0.0108835, -3.7136e-09, 4.73184e-08, 0.999941, 1, 1, 1, 0.15, 1, 2.4869e-14, -7.15256e-07, -2.79397e-09, 0.0171898, -3.41769e-09, 4.73365e-08, 0.999852, 1, 1, 1, 0.35, 1, 5.68434e-14, -4.76837e-07, -2.16532e-08, 0.0482761, -1.95634e-09, 4.7399e-08, 0.998834, 1, 1, 1, 0.4, 1, 1.3145e-13, -4.76837e-07, 1.39698e-08, 0.0525864, -1.75345e-09, 4.74044e-08, 0.998616, 1, 1, 1, 0.45, 1, -7.10543e-15, -2.98023e-07, -2.23517e-08, 0.0549628, -1.64161e-09, 4.74072e-08, 0.998488, 1, 1, 1, 0.5, 1, 8.88178e-14, -4.47035e-07, -5.75092e-08, 0.056151, -1.58539e-09, 4.74086e-08, 0.998422, 1, 1, 1, 0.55, 1, -1.06581e-14, -7.15256e-07, -1.09896e-07, 0.0561279, -1.58659e-09, 4.74089e-08, 0.998424, 1, 1, 1, 0.6, 1, 1.49214e-13, -5.36442e-07, 8.3819e-09, 0.0550227, -1.63855e-09, 4.74081e-08, 0.998485, 1, 1, 1, 0.65, 1, 1.42109e-13, -5.66244e-07, -2.72412e-08, 0.0528693, -1.73995e-09, 4.74061e-08, 0.998601, 1, 1, 1, 0.7, 1, 1.27898e-13, -9.83477e-07, 2.23517e-08, 0.0497256, -1.88791e-09, 4.74026e-08, 0.998763, 1, 1, 1, 1.15, 1, 4.61853e-14, -2.68221e-07, -1.44821e-07, 0.00768525, -3.86364e-09, 4.73087e-08, 0.99997, 1, 1, 1, 1.2, 1, -4.61853e-14, -2.38419e-07, -9.12696e-08, 0.00601107, -3.94226e-09, 4.73032e-08, 0.999982, 1, 1, 1, 1.25, 1, -2.16716e-13, 2.38419e-07, -1.20141e-07, 0.00540581, -3.97061e-09, 4.73011e-08, 0.999985, 1, 1, 1 </real_array>
- <string name="tracks/25/type"> "transform" </string>
- <node_path name="tracks/25/path"> "Armature/Skeleton:head" </node_path>
- <int name="tracks/25/interp"> 1 </int>
- <real_array name="tracks/25/keys" len="156"> 0, 1, -1.11494e-13, -1.15717e-07, -2.08616e-07, 7.45058e-09, 8.88178e-15, 0, 1, 1, 1, 1, 0.05, 1, 1.80868e-10, 1.36495e-05, 0.000901487, 1.49012e-08, 1.77636e-14, -2.13163e-14, 1, 1, 1, 1, 0.1, 1, 6.8149e-10, 5.12244e-05, 0.00339634, 7.45058e-09, 1.77636e-15, -2.13163e-14, 1, 1, 1, 1, 0.15, 1, 1.5005e-09, 0.00011289, 0.00747763, 7.45058e-09, 7.10543e-15, -7.10543e-15, 1, 1, 1, 1, 0.2, 1, 2.6273e-09, 0.000197746, 0.0130927, 7.45058e-09, -5.32907e-15, 7.10543e-15, 1, 1, 1, 1, 0.75, 1, 2.00072e-08, 0.00150619, 0.0996987, 7.45058e-09, 3.55271e-15, -1.42109e-14, 1, 1, 1, 1, 0.8, 1, 2.03706e-08, 0.00153358, 0.10151, 1.49012e-08, 3.55271e-15, -1.42109e-14, 1, 1, 1, 1, 0.85, 1, 2.02794e-08, 0.00152671, 0.101055, 1.49012e-08, -5.32907e-15, 7.10543e-15, 1, 1, 1, 1, 0.9, 1, 1.91881e-08, 0.00144463, 0.0956172, 7.45058e-09, -7.10543e-15, 0, 1, 1, 1, 1, 0.95, 1, 1.68664e-08, 0.00126975, 0.084048, 1.49012e-08, 1.77636e-15, -2.13163e-14, 1, 1, 1, 1, 1.15, 1, 2.70661e-09, 0.000203704, 0.0134885, 7.45058e-09, -5.32907e-15, 7.10543e-15, 1, 1, 1, 1, 1.2, 1, 7.26606e-10, 5.46668e-05, 0.00362133, 7.45058e-09, 2.13163e-14, -1.42109e-14, 1, 1, 1, 1, 1.25, 1, -1.10217e-13, -1.15717e-07, -2.02097e-07, 7.45058e-09, -5.32907e-15, 7.10543e-15, 1, 1, 1, 1 </real_array>
- <string name="tracks/26/type"> "transform" </string>
- <node_path name="tracks/26/path"> "Armature/Skeleton:vent" </node_path>
- <int name="tracks/26/interp"> 1 </int>
- <real_array name="tracks/26/keys" len="24"> 0, 1, 4.48581e-08, 0.00292328, 0.204329, 1.04774e-09, -4.44089e-15, 5.58928e-15, 1, 1, 1, 1, 1.25, 1, 4.48581e-08, 0.00292328, 0.204329, 1.74623e-09, -6.21725e-15, 3.40058e-14, 1, 1, 1, 1 </real_array>
-
- </resource>
- <resource type="Animation" path="local://8">
- <string name="resource/name"> "shooting" </string>
- <real name="length"> 0.416667 </real>
- <bool name="loop"> False </bool>
- <real name="step"> 0.1 </real>
- <string name="tracks/0/type"> "transform" </string>
- <node_path name="tracks/0/path"> "Armature/Skeleton:r-arm" </node_path>
- <int name="tracks/0/interp"> 1 </int>
- <real_array name="tracks/0/keys" len="108"> 0, 1, 2.98023e-07, 3.57628e-07, 2.38419e-07, 0.177354, -0.316176, -0.0334956, 0.931373, 1, 1, 1, 0.05, 1, 5.36442e-07, -1.19209e-07, 5.06639e-07, 0.188185, -0.332103, -0.0311768, 0.923754, 1, 1, 1, 0.1, 1, 7.15256e-07, -3.57628e-07, 5.66244e-07, 0.204001, -0.354515, -0.0276657, 0.912106, 1, 1, 1, 0.15, 1, 6.25849e-07, -1.19209e-07, 4.76837e-07, 0.207621, -0.359465, -0.0268362, 0.909372, 1, 1, 1, 0.2, 1, 4.47035e-07, -1.19209e-07, 4.76837e-07, 0.203765, -0.354216, -0.0277227, 0.912273, 1, 1, 1, 0.35, 1, 6.85453e-07, -3.57628e-07, 5.36442e-07, 0.181322, -0.322103, -0.0326568, 0.928604, 1, 1, 1, 0.4, 1, 5.36442e-07, -1.19209e-07, 4.76837e-07, 0.177926, -0.317037, -0.0333752, 0.930976, 1, 1, 1, 0.45, 1, 2.98023e-07, 3.57628e-07, 2.38419e-07, 0.177354, -0.316176, -0.0334956, 0.931373, 1, 1, 1, 1.25, 1, 2.98023e-07, 3.57628e-07, 2.38419e-07, 0.177354, -0.316176, -0.0334956, 0.931373, 1, 1, 1 </real_array>
- <string name="tracks/1/type"> "transform" </string>
- <node_path name="tracks/1/path"> "Armature/Skeleton:r-forearm" </node_path>
- <int name="tracks/1/interp"> 1 </int>
- <real_array name="tracks/1/keys" len="108"> 0, 1, -4.47035e-07, -2.98023e-07, 0, 0.00444313, -0.215306, 0.0125622, 0.976456, 1, 1, 1, 0.05, 1, -2.08616e-07, -4.17233e-07, -2.98023e-07, 0.00305205, -0.21031, 0.0121764, 0.977554, 1, 1, 1, 0.1, 1, 2.08616e-07, -3.57628e-07, -3.57628e-07, 0.000634907, -0.201765, 0.0115128, 0.979366, 1, 0.999999, 1, 0.15, 1, 1.19209e-07, -1.19209e-07, -4.17233e-07, 2.2336e-05, -0.199561, 0.0113313, 0.97982, 1, 1, 1, 0.2, 1, 2.98023e-07, -8.9407e-08, -4.17233e-07, 0.000688273, -0.201948, 0.0115275, 0.979328, 1, 1, 1, 0.3, 1, -1.78814e-07, -2.68221e-07, -5.96046e-08, 0.00309916, -0.210458, 0.0121876, 0.977522, 1, 1, 1, 0.35, 1, 2.98023e-07, -5.96046e-07, -4.17233e-07, 0.00397812, -0.213611, 0.0124303, 0.976832, 1, 1, 1, 0.4, 1, -2.68221e-07, -4.47035e-07, -1.78814e-07, 0.00437828, -0.215068, 0.0125436, 0.976509, 1, 1, 1, 1.25, 1, -4.47035e-07, -2.98023e-07, 0, 0.00444313, -0.215306, 0.0125622, 0.976456, 1, 1, 1 </real_array>
- <string name="tracks/2/type"> "transform" </string>
- <node_path name="tracks/2/path"> "Armature/Skeleton:l-arm" </node_path>
- <int name="tracks/2/interp"> 1 </int>
- <real_array name="tracks/2/keys" len="108"> 0, 1, -5.66244e-07, 0, 2.68221e-07, -0.666114, -0.365882, 0.129948, 0.636817, 1, 1, 1, 0.05, 1, -5.96046e-07, -4.76837e-07, 4.76837e-07, -0.656623, -0.392941, 0.132853, 0.629916, 1, 1, 0.999999, 0.1, 1, -1.04308e-06, -5.96046e-07, 7.45058e-07, -0.641339, -0.431274, 0.137762, 0.619442, 1, 1, 1, 0.15, 1, -1.04308e-06, -7.15256e-07, 8.9407e-07, -0.637616, -0.439805, 0.139013, 0.617003, 1, 1, 0.999999, 0.2, 1, 2.98023e-08, 0, 3.27826e-07, -0.641587, -0.430741, 0.137654, 0.61958, 1, 1, 0.999999, 0.35, 1, -2.38419e-07, -3.57628e-07, 1.49012e-07, -0.662747, -0.375915, 0.130927, 0.634281, 1, 1, 0.999999, 0.4, 1, -5.66244e-07, -1.19209e-07, 3.57628e-07, -0.665636, -0.367338, 0.130084, 0.636451, 1, 1, 1, 0.45, 1, -5.66244e-07, 0, 2.68221e-07, -0.666114, -0.365882, 0.129948, 0.636817, 1, 1, 1, 1.25, 1, -5.66244e-07, 0, 2.68221e-07, -0.666114, -0.365882, 0.129948, 0.636817, 1, 1, 1 </real_array>
- <string name="tracks/3/type"> "transform" </string>
- <node_path name="tracks/3/path"> "Armature/Skeleton:l-forearm" </node_path>
- <int name="tracks/3/interp"> 1 </int>
- <real_array name="tracks/3/keys" len="108"> 0, 1, 2.98023e-08, -5.96046e-07, -4.17233e-07, -0.130784, -0.271804, -0.0853016, 0.949601, 1.3, 1.3, 1.3, 0.05, 1, 1.49012e-07, -6.55651e-07, -5.96046e-07, -0.133062, -0.270527, -0.0774246, 0.950324, 1.3, 1.3, 1.3, 0.1, 1, 2.68221e-07, -5.96046e-07, -2.38419e-07, -0.136329, -0.26867, -0.0661281, 0.95124, 1.3, 1.3, 1.3, 0.15, 1, -8.9407e-08, -8.04663e-07, -7.15256e-07, -0.137063, -0.26825, -0.0635932, 0.951426, 1.3, 1.3, 1.3, 0.2, 1, -8.9407e-08, -6.85453e-07, -7.15256e-07, -0.136283, -0.268695, -0.0662837, 0.951229, 1.3, 1.3, 1.3, 0.35, 1, -1.78814e-07, -5.66244e-07, -4.76837e-07, -0.131626, -0.271333, -0.0823877, 0.949876, 1.3, 1.3, 1.3, 0.4, 1, 5.96046e-08, -5.96046e-07, -3.57628e-07, -0.130906, -0.271736, -0.0848797, 0.949641, 1.3, 1.3, 1.3, 0.45, 1, 2.98023e-08, -5.96046e-07, -4.17233e-07, -0.130784, -0.271804, -0.0853016, 0.949601, 1.3, 1.3, 1.3, 1.25, 1, 2.98023e-08, -5.96046e-07, -4.17233e-07, -0.130784, -0.271804, -0.0853016, 0.949601, 1.3, 1.3, 1.3 </real_array>
- <string name="tracks/4/type"> "transform" </string>
- <node_path name="tracks/4/path"> "Armature/Skeleton:r-thigh" </node_path>
- <int name="tracks/4/interp"> 1 </int>
- <real_array name="tracks/4/keys" len="24"> 0, 1, 0, 1.63913e-07, 1.93715e-07, -0.283345, 0.0300071, -0.0426225, 0.957601, 1, 1, 1, 1.25, 1, 0, 1.63913e-07, 1.93715e-07, -0.283345, 0.0300071, -0.0426225, 0.957601, 1, 1, 1 </real_array>
- <string name="tracks/5/type"> "transform" </string>
- <node_path name="tracks/5/path"> "Armature/Skeleton:r-leg" </node_path>
- <int name="tracks/5/interp"> 1 </int>
- <real_array name="tracks/5/keys" len="24"> 0, 1, 2.29338e-08, 8.9407e-08, 5.36442e-07, -0.369097, -0.0505305, 0.00260278, 0.928013, 1, 1, 1, 1.25, 1, 2.29338e-08, 8.9407e-08, 5.36442e-07, -0.369097, -0.0505305, 0.00260278, 0.928013, 1, 1, 1 </real_array>
- <string name="tracks/6/type"> "transform" </string>
- <node_path name="tracks/6/path"> "Armature/Skeleton:r-foot" </node_path>
- <int name="tracks/6/interp"> 1 </int>
- <real_array name="tracks/6/keys" len="24"> 0, 1, 1.49012e-08, 0, -5.21541e-08, 0.163945, 0.140221, -0.046324, 0.975354, 1, 1, 1, 1.25, 1, 1.49012e-08, 0, -5.21541e-08, 0.163945, 0.140221, -0.046324, 0.975354, 1, 1, 1 </real_array>
- <string name="tracks/7/type"> "transform" </string>
- <node_path name="tracks/7/path"> "Armature/Skeleton:l-thigh" </node_path>
- <int name="tracks/7/interp"> 1 </int>
- <real_array name="tracks/7/keys" len="24"> 0, 1, 0, 2.08616e-07, 1.49012e-08, 0.284249, 0.0874448, 0.000525696, 0.954754, 1, 1, 1, 1.25, 1, 0, 2.08616e-07, 1.49012e-08, 0.284249, 0.0874448, 0.000525696, 0.954754, 1, 1, 1 </real_array>
- <string name="tracks/8/type"> "transform" </string>
- <node_path name="tracks/8/path"> "Armature/Skeleton:l-leg" </node_path>
- <int name="tracks/8/interp"> 1 </int>
- <real_array name="tracks/8/keys" len="24"> 0, 1, -6.98492e-10, -2.98023e-08, 4.76837e-07, -0.32359, -0.0556479, 0.000232734, 0.94456, 1, 1, 1, 1.25, 1, -6.98492e-10, -2.98023e-08, 4.76837e-07, -0.32359, -0.0556479, 0.000232734, 0.94456, 1, 1, 1 </real_array>
- <string name="tracks/9/type"> "transform" </string>
- <node_path name="tracks/9/path"> "Armature/Skeleton:l-foot" </node_path>
- <int name="tracks/9/interp"> 1 </int>
- <real_array name="tracks/9/keys" len="24"> 0, 1, 2.23517e-08, 1.19209e-07, 7.45058e-09, -0.260411, 0.0677016, 0.0123204, 0.963042, 1, 1, 1, 1.25, 1, 2.23517e-08, 1.19209e-07, 7.45058e-09, -0.260411, 0.0677016, 0.0123204, 0.963042, 1, 1, 1 </real_array>
- <string name="tracks/10/type"> "transform" </string>
- <node_path name="tracks/10/path"> "Armature/Skeleton:MASTER" </node_path>
- <int name="tracks/10/interp"> 1 </int>
- <real_array name="tracks/10/keys" len="24"> 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/11/type"> "transform" </string>
- <node_path name="tracks/11/path"> "Armature/Skeleton:HEAD" </node_path>
- <int name="tracks/11/interp"> 1 </int>
- <real_array name="tracks/11/keys" len="24"> 0, 1, -5.68434e-14, 0, 0.994808, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -5.68434e-14, 0, 0.994808, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/12/type"> "transform" </string>
- <node_path name="tracks/12/path"> "Armature/Skeleton:r-LEGCONTROL" </node_path>
- <int name="tracks/12/interp"> 1 </int>
- <real_array name="tracks/12/keys" len="24"> 0, 1, -0.142338, -0.593751, 0.041427, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.142338, -0.593751, 0.041427, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/13/type"> "transform" </string>
- <node_path name="tracks/13/path"> "Armature/Skeleton:l-LEGCONTROL" </node_path>
- <int name="tracks/13/interp"> 1 </int>
- <real_array name="tracks/13/keys" len="24"> 0, 1, 0.133965, 1.12742, 1.35169, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.133965, 1.12742, 1.35169, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/14/type"> "transform" </string>
- <node_path name="tracks/14/path"> "Armature/Skeleton:r-LEGORIENT" </node_path>
- <int name="tracks/14/interp"> 1 </int>
- <real_array name="tracks/14/keys" len="24"> 0, 1, 0.100474, 0.669825, -0.778672, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.100474, 0.669825, -0.778672, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/15/type"> "transform" </string>
- <node_path name="tracks/15/path"> "Armature/Skeleton:l-LEGORIENT" </node_path>
- <int name="tracks/15/interp"> 1 </int>
- <real_array name="tracks/15/keys" len="24"> 0, 1, -0.0204011, -0.122407, 5.96046e-08, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.0204011, -0.122407, 5.96046e-08, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/16/type"> "transform" </string>
- <node_path name="tracks/16/path"> "Armature/Skeleton:r-ARMCONTROL" </node_path>
- <int name="tracks/16/interp"> 1 </int>
- <real_array name="tracks/16/keys" len="24"> 0, 1, -0.868295, 0.288818, -0.834593, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.868295, 0.288818, -0.834593, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/17/type"> "transform" </string>
- <node_path name="tracks/17/path"> "Armature/Skeleton:l-ARMCONTROL" </node_path>
- <int name="tracks/17/interp"> 1 </int>
- <real_array name="tracks/17/keys" len="24"> 0, 1, 1.73339, 0.895247, 5.13844, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 1.73339, 0.895247, 5.13844, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/18/type"> "transform" </string>
- <node_path name="tracks/18/path"> "Armature/Skeleton:r-ARMORIENT" </node_path>
- <int name="tracks/18/interp"> 1 </int>
- <real_array name="tracks/18/keys" len="24"> 0, 1, 0.405204, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.405204, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/19/type"> "transform" </string>
- <node_path name="tracks/19/path"> "Armature/Skeleton:l-ARMORIENT" </node_path>
- <int name="tracks/19/interp"> 1 </int>
- <real_array name="tracks/19/keys" len="24"> 0, 1, -1.5774, 0.0723579, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -1.5774, 0.0723579, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/20/type"> "transform" </string>
- <node_path name="tracks/20/path"> "Armature/Skeleton:hip" </node_path>
- <int name="tracks/20/interp"> 1 </int>
- <real_array name="tracks/20/keys" len="24"> 0, 1, 0.050238, 0.697428, 0.108012, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1, 1.25, 1, 0.050238, 0.697428, 0.108012, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1 </real_array>
- <string name="tracks/21/type"> "transform" </string>
- <node_path name="tracks/21/path"> "Armature/Skeleton:waist" </node_path>
- <int name="tracks/21/interp"> 1 </int>
- <real_array name="tracks/21/keys" len="24"> 0, 1, 7.45059e-09, -5.21541e-08, 2.38419e-07, 0.0550011, -0.00481196, -0.0870228, 0.994675, 1, 1, 1, 1.25, 1, 7.45059e-09, -5.21541e-08, 2.38419e-07, 0.0550011, -0.00481196, -0.0870228, 0.994675, 1, 1, 1 </real_array>
- <string name="tracks/22/type"> "transform" </string>
- <node_path name="tracks/22/path"> "Armature/Skeleton:chest" </node_path>
- <int name="tracks/22/interp"> 1 </int>
- <real_array name="tracks/22/keys" len="108"> 0, 1, -1.93979e-09, 3.72529e-08, -1.78814e-07, 4.95597e-09, 0.00666624, -0.163159, 0.986577, 1, 1, 1, 0.05, 1, -1.93979e-09, 3.72529e-08, -1.78814e-07, -0.00988221, 0.00482982, -0.145309, 0.989325, 1, 1, 1, 0.1, 1, -1.93979e-09, 3.72529e-08, -1.78814e-07, -0.0244913, 0.00210965, -0.118794, 0.992615, 1, 1, 1, 0.15, 1, -1.93979e-09, 3.72529e-08, -1.78814e-07, -0.0278586, 0.00148179, -0.112662, 0.993242, 1, 1, 1, 0.2, 1, -1.93979e-09, 3.72529e-08, -1.78814e-07, -0.0242687, 0.00215113, -0.1192, 0.992571, 1, 1, 1, 0.35, 1, -1.93979e-09, 3.72529e-08, -1.78814e-07, -0.00360581, 0.00599648, -0.156654, 0.987629, 1, 1, 1, 0.4, 1, -1.93979e-09, 3.72529e-08, -1.78814e-07, -0.000519651, 0.00656974, -0.162222, 0.986732, 1, 1, 1, 0.45, 1, -1.93979e-09, 3.72529e-08, -1.78814e-07, 4.95597e-09, 0.00666624, -0.163159, 0.986577, 1, 1, 1, 1.25, 1, -1.93979e-09, 3.72529e-08, -1.78814e-07, 4.95597e-09, 0.00666624, -0.163159, 0.986577, 1, 1, 1 </real_array>
- <string name="tracks/23/type"> "transform" </string>
- <node_path name="tracks/23/path"> "Armature/Skeleton:neck" </node_path>
- <int name="tracks/23/interp"> 1 </int>
- <real_array name="tracks/23/keys" len="24"> 0, 1, -2.91038e-08, -1.78814e-07, -9.53674e-07, -7.45058e-09, 2.57076e-09, -2.87348e-09, 1, 1, 1, 1, 1.25, 1, -2.91038e-08, -1.78814e-07, -9.53674e-07, -7.45058e-09, 2.57076e-09, -2.87348e-09, 1, 1, 1, 1 </real_array>
- <string name="tracks/24/type"> "transform" </string>
- <node_path name="tracks/24/path"> "Armature/Skeleton:headtracker" </node_path>
- <int name="tracks/24/interp"> 1 </int>
- <real_array name="tracks/24/keys" len="108"> 0, 1, 1.05648e-08, -8.34465e-07, 8.61473e-09, 0.067043, -0.15676, 0.0458898, 0.984289, 1, 1, 1, 0.05, 1, -2.68221e-08, -7.7486e-07, -7.12462e-08, 0.0563978, -0.14039, 0.0396845, 0.987692, 1, 1, 1, 0.1, 1, 2.66356e-08, -1.78814e-07, -1.87429e-07, 0.0407343, -0.116242, 0.0305639, 0.991915, 1, 1, 1, 0.15, 1, -1.30386e-08, -3.57628e-07, -7.72998e-08, 0.0371396, -0.110688, 0.0284725, 0.992753, 1, 1, 1, 0.2, 1, 2.57045e-08, -5.96046e-07, -9.05711e-08, 0.0409678, -0.116604, 0.0306994, 0.991858, 1, 1, 1, 0.35, 1, 4.0076e-08, -1.78814e-07, -5.26197e-08, 0.0631478, -0.150775, 0.0436179, 0.985584, 1, 1, 1, 0.4, 1, 3.32831e-08, -5.36442e-07, 3.95812e-09, 0.0664811, -0.155897, 0.045562, 0.98448, 1, 1, 1, 0.45, 1, 1.05648e-08, -8.34465e-07, 8.61473e-09, 0.067043, -0.15676, 0.0458898, 0.984289, 1, 1, 1, 1.25, 1, 1.05648e-08, -8.34465e-07, 8.61473e-09, 0.067043, -0.15676, 0.0458898, 0.984289, 1, 1, 1 </real_array>
- <string name="tracks/25/type"> "transform" </string>
- <node_path name="tracks/25/path"> "Armature/Skeleton:head" </node_path>
- <int name="tracks/25/interp"> 1 </int>
- <real_array name="tracks/25/keys" len="24"> 0, 1, -7.38021e-13, 4.70318e-08, 9.16189e-08, -1.036e-25, -3.37508e-14, -8.17124e-13, 1, 1, 1, 1, 1.25, 1, -7.38021e-13, 4.70318e-08, 9.16189e-08, -1.036e-25, -3.37508e-14, -8.17124e-13, 1, 1, 1, 1 </real_array>
- <string name="tracks/26/type"> "transform" </string>
- <node_path name="tracks/26/path"> "Armature/Skeleton:vent" </node_path>
- <int name="tracks/26/interp"> 1 </int>
- <real_array name="tracks/26/keys" len="24"> 0, 1, 4.48982e-08, 0.00292331, 0.204329, 8.84756e-09, -3.8014e-13, 5.94471e-12, 1, 1, 1, 1, 1.25, 1, 4.48982e-08, 0.00292331, 0.204329, 8.84756e-09, -3.8014e-13, 5.94471e-12, 1, 1, 1, 1 </real_array>
-
- </resource>
- <resource type="Animation" path="local://9">
- <string name="resource/name"> "jump-up-cycle" </string>
- <real name="length"> 0.416667 </real>
- <bool name="loop"> True </bool>
- <real name="step"> 0.1 </real>
- <string name="tracks/0/type"> "transform" </string>
- <node_path name="tracks/0/path"> "Armature/Skeleton:r-arm" </node_path>
- <int name="tracks/0/interp"> 1 </int>
- <real_array name="tracks/0/keys" len="120"> 0, 1, 6.55651e-07, -3.57628e-07, 5.66244e-07, 0.208387, -0.176945, -0.0164982, 0.961766, 1, 1, 1, 0.05, 1, 6.85453e-07, -2.38419e-07, 4.17233e-07, 0.211256, -0.175803, -0.0179009, 0.961324, 1, 1, 1, 0.1, 1, 6.55651e-07, -2.38419e-07, 3.27826e-07, 0.216682, -0.174684, -0.0207438, 0.960263, 1, 1, 1, 0.15, 1, 6.25849e-07, -3.57628e-07, 6.25849e-07, 0.219812, -0.176984, -0.0232576, 0.959072, 1, 1, 1, 0.25, 1, 1.3113e-06, -9.53674e-07, 9.23872e-07, 0.223631, -0.219998, -0.0262768, 0.949157, 1, 1, 1, 0.3, 1, 8.9407e-07, -4.76837e-07, 6.85453e-07, 0.220416, -0.21329, -0.0232336, 0.951517, 1, 1, 1, 0.35, 1, 8.34465e-07, -3.57628e-07, 6.25849e-07, 0.214429, -0.195082, -0.0193009, 0.956865, 1, 1, 1, 0.4, 1, 8.34465e-07, -3.57628e-07, 6.25849e-07, 0.209436, -0.180062, -0.0169379, 0.960951, 1, 1, 1, 0.45, 1, 6.55651e-07, -3.57628e-07, 5.66244e-07, 0.208387, -0.176945, -0.0164982, 0.961766, 1, 1, 1, 1.25, 1, 6.55651e-07, -3.57628e-07, 5.66244e-07, 0.208387, -0.176945, -0.0164982, 0.961766, 1, 1, 1 </real_array>
- <string name="tracks/1/type"> "transform" </string>
- <node_path name="tracks/1/path"> "Armature/Skeleton:r-forearm" </node_path>
- <int name="tracks/1/interp"> 1 </int>
- <real_array name="tracks/1/keys" len="108"> 0, 1, 5.06639e-07, -8.64267e-07, -8.9407e-07, -0.0797867, 0.0313898, -0.00372185, 0.996311, 1, 1, 1, 0.05, 1, -5.96046e-08, -4.76837e-07, -3.57628e-07, -0.0735466, 0.0175489, -0.00298843, 0.997133, 1, 1, 1, 0.2, 1, 2.98023e-07, -9.83477e-07, -5.36442e-07, -0.0401349, -0.0767179, 0.000985969, 0.996244, 1, 1, 1, 0.25, 1, -2.98023e-08, -6.25849e-07, -4.17233e-07, -0.0324823, -0.0976145, 0.00230383, 0.994691, 1, 1, 1, 0.3, 1, 2.08616e-07, -9.53674e-07, -6.55651e-07, -0.0445163, -0.0629722, 0.000635031, 0.997022, 1, 0.999999, 1, 0.35, 1, -1.49012e-07, -8.34465e-07, -4.17233e-07, -0.0633553, -0.0111982, -0.0018671, 0.997926, 1, 1, 1, 0.4, 1, 2.38419e-07, -8.64267e-07, -7.7486e-07, -0.0770585, 0.0244395, -0.00342743, 0.996721, 1, 1, 1, 0.45, 1, 5.06639e-07, -8.64267e-07, -8.9407e-07, -0.0797867, 0.0313898, -0.00372185, 0.996311, 1, 1, 1, 1.25, 1, 5.06639e-07, -8.64267e-07, -8.9407e-07, -0.0797867, 0.0313898, -0.00372185, 0.996311, 1, 1, 1 </real_array>
- <string name="tracks/2/type"> "transform" </string>
- <node_path name="tracks/2/path"> "Armature/Skeleton:l-arm" </node_path>
- <int name="tracks/2/interp"> 1 </int>
- <real_array name="tracks/2/keys" len="132"> 0, 1, -1.19209e-07, -5.96046e-07, 5.36442e-07, -0.488489, -0.631801, -0.249807, 0.547542, 1, 1, 1, 0.05, 1, -1.49012e-07, -7.15256e-07, 5.96046e-07, -0.474017, -0.625071, -0.244485, 0.569931, 1, 1, 0.999999, 0.1, 1, -5.96046e-07, -3.57628e-07, 6.25849e-07, -0.454842, -0.607865, -0.232791, 0.607805, 1, 1, 0.999999, 0.15, 1, -6.25849e-07, -4.76837e-07, 6.85453e-07, -0.465321, -0.582319, -0.222366, 0.628437, 1, 1, 1, 0.2, 1, -3.8743e-07, -5.96046e-07, 6.25849e-07, -0.510621, -0.547625, -0.217789, 0.626052, 1, 1, 1, 0.25, 1, -5.96046e-07, -7.15256e-07, 2.98023e-07, -0.546434, -0.526096, -0.217482, 0.614275, 1, 1, 1, 0.3, 1, -3.57628e-07, -5.96046e-07, 6.85453e-07, -0.543207, -0.547611, -0.225218, 0.595252, 1, 1, 0.999999, 0.35, 1, -5.06639e-07, -5.96046e-07, 7.7486e-07, -0.516521, -0.594071, -0.238908, 0.568514, 1, 1, 1, 0.4, 1, -3.27826e-07, -5.96046e-07, 7.15256e-07, -0.493183, -0.625944, -0.248106, 0.550825, 1, 1, 1, 0.45, 1, -1.19209e-07, -5.96046e-07, 5.36442e-07, -0.488489, -0.631801, -0.249807, 0.547542, 1, 1, 1, 1.25, 1, -1.19209e-07, -5.96046e-07, 5.36442e-07, -0.488489, -0.631801, -0.249807, 0.547542, 1, 1, 1 </real_array>
- <string name="tracks/3/type"> "transform" </string>
- <node_path name="tracks/3/path"> "Armature/Skeleton:l-forearm" </node_path>
- <int name="tracks/3/interp"> 1 </int>
- <real_array name="tracks/3/keys" len="132"> 0, 1, -8.9407e-08, -5.96046e-07, -2.38419e-07, 0.170167, 0.120493, -0.091473, 0.973734, 1, 1, 1, 0.05, 1, -5.96046e-08, -5.36442e-07, -2.98023e-07, 0.191507, 0.15179, -0.0881411, 0.965669, 1, 1, 1, 0.1, 1, -2.98023e-08, -5.06639e-07, -1.19209e-07, 0.225056, 0.198248, -0.0838434, 0.950273, 1, 1, 1, 0.15, 1, -1.78814e-07, -6.85453e-07, -2.38419e-07, 0.242609, 0.209269, -0.0881917, 0.94317, 1, 1, 1, 0.2, 1, -3.27826e-07, -5.36442e-07, -1.19209e-07, 0.246276, 0.185328, -0.105902, 0.945403, 1, 1, 1, 0.25, 1, -4.76837e-07, -5.06639e-07, -7.7486e-07, 0.240434, 0.157542, -0.120519, 0.950183, 1, 1, 1, 0.3, 1, -8.9407e-08, -6.85453e-07, -2.98023e-07, 0.22081, 0.140399, -0.117544, 0.957974, 1, 0.999999, 1, 0.35, 1, -1.19209e-07, -7.7486e-07, -2.98023e-07, 0.191979, 0.127301, -0.104336, 0.967498, 1, 1, 1, 0.4, 1, -8.9407e-08, -6.55651e-07, -2.98023e-07, 0.173508, 0.121415, -0.0935976, 0.972827, 1, 1, 1, 0.45, 1, -8.9407e-08, -5.96046e-07, -2.38419e-07, 0.170167, 0.120493, -0.091473, 0.973734, 1, 1, 1, 1.25, 1, -8.9407e-08, -5.96046e-07, -2.38419e-07, 0.170167, 0.120493, -0.091473, 0.973734, 1, 1, 1 </real_array>
- <string name="tracks/4/type"> "transform" </string>
- <node_path name="tracks/4/path"> "Armature/Skeleton:r-thigh" </node_path>
- <int name="tracks/4/interp"> 1 </int>
- <real_array name="tracks/4/keys" len="120"> 0, 1, 0, 1.63913e-07, 1.93715e-07, -0.731646, -0.0455606, -0.00930311, 0.680097, 1, 1, 1, 0.05, 1, -8.9407e-08, 5.96046e-08, -3.57628e-07, -0.699019, -0.0340935, -0.0129449, 0.714172, 1, 1, 1, 0.1, 1, -8.9407e-08, 1.41561e-07, -2.83122e-07, -0.643626, -0.015991, -0.0189581, 0.764938, 1, 1, 1, 0.15, 1, -8.9407e-08, 3.72529e-08, -5.06639e-07, -0.617849, -0.00879986, -0.0226563, 0.785921, 1, 1, 1, 0.2, 1, -5.96046e-08, 9.68575e-08, 7.45058e-08, -0.628974, -0.00984708, -0.0265256, 0.776912, 1, 1, 1, 0.25, 1, -5.96046e-08, 9.68575e-08, -4.47035e-07, -0.653197, -0.0153019, -0.02661, 0.756565, 1, 1, 1, 0.35, 1, -2.98023e-08, 2.98023e-08, 2.98023e-07, -0.712225, -0.0376632, -0.0133416, 0.700813, 1, 1, 1, 0.4, 1, -2.98023e-08, 1.04308e-07, 1.63913e-07, -0.728798, -0.0444052, -0.00986262, 0.683216, 1, 1, 1, 0.45, 1, 0, 1.63913e-07, 1.93715e-07, -0.731646, -0.0455606, -0.00930311, 0.680097, 1, 1, 1, 1.25, 1, 0, 1.63913e-07, 1.93715e-07, -0.731646, -0.0455606, -0.00930311, 0.680097, 1, 1, 1 </real_array>
- <string name="tracks/5/type"> "transform" </string>
- <node_path name="tracks/5/path"> "Armature/Skeleton:r-leg" </node_path>
- <int name="tracks/5/interp"> 1 </int>
- <real_array name="tracks/5/keys" len="120"> 0, 1, -0.0436297, 0.0381679, -0.243318, 0.903835, 0.221183, 0.00392365, -0.366258, 1, 1, 1, 0.05, 1, -0.0436298, 0.0381678, -0.243318, 0.894017, 0.213358, 0.00409072, -0.393949, 1, 1, 1, 0.1, 1, -0.0436297, 0.0381675, -0.243318, 0.873591, 0.198684, 0.00402625, -0.444239, 1, 1, 1, 0.15, 1, -0.0436297, 0.0381679, -0.243318, 0.86099, 0.194348, 0.00472605, -0.470004, 1, 1, 1, 0.2, 1, -0.0436298, 0.038168, -0.243318, 0.866453, 0.209209, 0.00740134, -0.453251, 1, 1, 1, 0.25, 1, -0.0436297, 0.0381682, -0.243318, 0.877278, 0.223532, 0.00901692, -0.42466, 1, 1, 1, 0.35, 1, -0.0436297, 0.0381675, -0.243318, 0.89824, 0.222872, 0.00544398, -0.378765, 1, 1, 1, 0.4, 1, -0.0436297, 0.0381677, -0.243318, 0.90306, 0.22143, 0.0041485, -0.368015, 1, 1, 1, 0.45, 1, -0.0436297, 0.0381679, -0.243318, 0.903835, 0.221183, 0.00392365, -0.366258, 1, 1, 1, 1.25, 1, -0.0436297, 0.0381679, -0.243318, 0.903835, 0.221183, 0.00392365, -0.366258, 1, 1, 1 </real_array>
- <string name="tracks/6/type"> "transform" </string>
- <node_path name="tracks/6/path"> "Armature/Skeleton:r-foot" </node_path>
- <int name="tracks/6/interp"> 1 </int>
- <real_array name="tracks/6/keys" len="108"> 0, 1, 7.45058e-08, 1.19209e-07, -3.72529e-09, -0.278586, 0.162913, 0.049835, 0.94518, 1, 1, 1, 0.05, 1, 5.21541e-08, -1.19209e-07, 4.47035e-08, -0.263884, 0.163221, 0.0462377, 0.949519, 1, 1, 1, 0.15, 1, 3.72529e-08, 0, 2.98023e-08, -0.191844, 0.164134, 0.02867, 0.967178, 1, 1, 1, 0.2, 1, 9.68575e-08, 0, -7.45058e-09, -0.173312, 0.164214, 0.0241673, 0.970779, 1, 1, 1, 0.25, 1, 8.9407e-08, -3.57628e-07, 2.6077e-08, -0.181008, 0.164188, 0.0260364, 0.96933, 1, 1, 1, 0.35, 1, 7.45058e-08, 3.57628e-07, 7.45058e-09, -0.253238, 0.163417, 0.0436354, 0.952503, 1, 1, 1, 0.4, 1, 8.19564e-08, 2.38419e-07, 2.6077e-08, -0.274832, 0.162996, 0.0489163, 0.946312, 1, 1, 1, 0.45, 1, 7.45058e-08, 1.19209e-07, -3.72529e-09, -0.278586, 0.162913, 0.049835, 0.94518, 1, 1, 1, 1.25, 1, 7.45058e-08, 1.19209e-07, -3.72529e-09, -0.278586, 0.162913, 0.049835, 0.94518, 1, 1, 1 </real_array>
- <string name="tracks/7/type"> "transform" </string>
- <node_path name="tracks/7/path"> "Armature/Skeleton:l-thigh" </node_path>
- <int name="tracks/7/interp"> 1 </int>
- <real_array name="tracks/7/keys" len="120"> 0, 1, 0, 2.08616e-07, 1.49012e-08, 0.318341, 0.0708015, -0.00441775, 0.945318, 1, 1, 1, 0.05, 1, 0, 1.93715e-07, 3.42727e-07, 0.307147, 0.068999, -0.0035256, 0.949151, 1, 1, 1, 0.1, 1, 2.98023e-08, 2.01166e-07, 4.47035e-08, 0.292292, 0.0665824, -0.00232838, 0.954006, 1, 1, 1, 0.15, 1, 5.96046e-08, 1.04308e-07, -1.93715e-07, 0.272221, 0.0650766, -0.00188312, 0.96003, 1, 1, 1, 0.2, 1, 2.98023e-08, 2.23517e-08, -1.78814e-07, 0.232486, 0.0650023, -0.00182597, 0.970424, 1, 1, 1, 0.25, 1, 5.96046e-08, -1.49012e-08, -1.04308e-07, 0.226129, 0.0676028, -0.00263455, 0.971745, 1, 1, 1, 0.35, 1, -2.98023e-08, 5.21541e-08, 1.63913e-07, 0.288667, 0.069411, -0.00418897, 0.954901, 1, 1, 1, 0.4, 1, -2.98023e-08, 1.41561e-07, 1.93715e-07, 0.312853, 0.0704368, -0.0043685, 0.947176, 1, 1, 1, 0.45, 1, 0, 2.08616e-07, 1.49012e-08, 0.318341, 0.0708015, -0.00441775, 0.945318, 1, 1, 1, 1.25, 1, 0, 2.08616e-07, 1.49012e-08, 0.318341, 0.0708015, -0.00441775, 0.945318, 1, 1, 1 </real_array>
- <string name="tracks/8/type"> "transform" </string>
- <node_path name="tracks/8/path"> "Armature/Skeleton:l-leg" </node_path>
- <int name="tracks/8/interp"> 1 </int>
- <real_array name="tracks/8/keys" len="108"> 0, 1, 5.78584e-08, 5.96046e-08, 2.38419e-07, -0.0511448, -0.0112637, 0.00107338, 0.998627, 1, 1, 1, 0.05, 1, -2.94531e-08, -8.19564e-08, 1.78814e-07, -0.0669256, -0.012717, 0.000882011, 0.997677, 1, 1, 1, 0.1, 1, -3.07336e-08, -2.98023e-08, 3.57628e-07, -0.0875047, -0.0145704, 0.000627808, 0.996057, 1, 1, 1, 0.15, 1, 1.66474e-08, -8.9407e-08, 2.38419e-07, -0.12177, -0.0175352, 0.000386084, 0.992403, 1, 1, 1, 0.2, 1, 1.28057e-08, -1.49012e-08, 1.19209e-07, -0.196391, -0.0229446, -2.58925e-05, 0.980257, 1, 1, 1, 0.25, 1, -7.91624e-08, 8.9407e-08, 0, -0.21572, -0.0236374, -9.3472e-05, 0.976169, 1, 1, 1, 0.4, 1, 2.95695e-08, 6.70552e-08, 1.19209e-07, -0.060964, -0.012162, 0.00100229, 0.998065, 1, 1, 1, 0.45, 1, 5.78584e-08, 5.96046e-08, 2.38419e-07, -0.0511448, -0.0112637, 0.00107338, 0.998627, 1, 1, 1, 1.25, 1, 5.78584e-08, 5.96046e-08, 2.38419e-07, -0.0511448, -0.0112637, 0.00107338, 0.998627, 1, 1, 1 </real_array>
- <string name="tracks/9/type"> "transform" </string>
- <node_path name="tracks/9/path"> "Armature/Skeleton:l-foot" </node_path>
- <int name="tracks/9/interp"> 1 </int>
- <real_array name="tracks/9/keys" len="108"> 0, 1, 5.21541e-08, 1.19209e-07, -1.9744e-07, -0.285587, 0.0658082, 0.0159816, 0.955957, 1, 1, 1, 0.05, 1, 7.45058e-09, 1.19209e-07, -1.08033e-07, -0.295281, 0.0650349, 0.017475, 0.953034, 1, 1, 1, 0.15, 1, -2.23517e-08, 1.19209e-07, 2.98023e-08, -0.341727, 0.0611981, 0.0246725, 0.93748, 1, 1, 1, 0.2, 1, 5.21541e-08, 1.19209e-07, -1.19209e-07, -0.353427, 0.0601963, 0.0264969, 0.933147, 1, 1, 1, 0.25, 1, -1.49012e-08, 2.38419e-07, -4.84288e-08, -0.348577, 0.0606133, 0.0257401, 0.934964, 1, 1, 1, 0.35, 1, -7.45058e-09, 1.19209e-07, -7.45058e-09, -0.302251, 0.0644732, 0.0185506, 0.950865, 1, 1, 1, 0.4, 1, 5.21541e-08, 1.19209e-07, -8.19564e-08, -0.28807, 0.065611, 0.0163638, 0.955219, 1, 1, 1, 0.45, 1, 5.21541e-08, 1.19209e-07, -1.9744e-07, -0.285587, 0.0658082, 0.0159816, 0.955957, 1, 1, 1, 1.25, 1, 5.21541e-08, 1.19209e-07, -1.9744e-07, -0.285587, 0.0658082, 0.0159816, 0.955957, 1, 1, 1 </real_array>
- <string name="tracks/10/type"> "transform" </string>
- <node_path name="tracks/10/path"> "Armature/Skeleton:MASTER" </node_path>
- <int name="tracks/10/interp"> 1 </int>
- <real_array name="tracks/10/keys" len="24"> 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/11/type"> "transform" </string>
- <node_path name="tracks/11/path"> "Armature/Skeleton:HEAD" </node_path>
- <int name="tracks/11/interp"> 1 </int>
- <real_array name="tracks/11/keys" len="108"> 0, 1, 1.37965e-08, 0.0913706, -0.0102687, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 1.37965e-08, 0.0913706, 0.0826712, 0, 0, 0, 1, 1, 1, 1, 0.15, 1, 1.37965e-08, 0.0913706, 0.527418, 0, 0, 0, 1, 1, 1, 1, 0.2, 1, 1.37965e-08, 0.0913706, 0.640416, 0, 0, -7.10543e-15, 1, 1, 1, 1, 0.25, 1, 1.37965e-08, 0.0913706, 0.59344, 0, 0, 0, 1, 1, 1, 1, 0.35, 1, 1.37965e-08, 0.0913706, 0.149321, 0, 0, -7.10543e-15, 1, 1, 1, 1, 0.4, 1, 1.37965e-08, 0.0913706, 0.0135775, 0, 0, 0, 1, 1, 1, 1, 0.45, 1, 1.37965e-08, 0.0913706, -0.0102687, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 1.37965e-08, 0.0913706, -0.0102687, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/12/type"> "transform" </string>
- <node_path name="tracks/12/path"> "Armature/Skeleton:r-LEGCONTROL" </node_path>
- <int name="tracks/12/interp"> 1 </int>
- <real_array name="tracks/12/keys" len="108"> 0, 1, -0.142338, -0.579062, 1.09897, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -0.142338, -0.574357, 1.07628, 0, 0, 0, 1, 1, 1, 1, 0.15, 1, -0.142338, -0.551601, 0.966619, 0, 0, 0, 1, 1, 1, 1, 0.2, 1, -0.142338, -0.545802, 0.938678, 0, 0, 0, 1, 1, 1, 1, 0.25, 1, -0.142338, -0.54821, 0.950281, 0, 0, 0, 1, 1, 1, 1, 0.35, 1, -0.142338, -0.570965, 1.05993, 0, 0, 0, 1, 1, 1, 1, 0.4, 1, -0.142338, -0.577858, 1.09316, 0, 0, 0, 1, 1, 1, 1, 0.45, 1, -0.142338, -0.579062, 1.09897, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.142338, -0.579062, 1.09897, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/13/type"> "transform" </string>
- <node_path name="tracks/13/path"> "Armature/Skeleton:l-LEGCONTROL" </node_path>
- <int name="tracks/13/interp"> 1 </int>
- <real_array name="tracks/13/keys" len="108"> 0, 1, 0.133965, 0.921787, 0.705414, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 0.133965, 0.88632, 0.724279, 0, 0, 0, 1, 1, 1, 1, 0.1, 1, 0.133965, 0.833892, 0.752174, 0, 0, 0, 1, 1, 1, 1, 0.15, 1, 0.133965, 0.821796, 0.758611, 0, 0, 0, 1, 1, 1, 1, 0.2, 1, 0.133965, 0.834697, 0.751748, 0, 0, 0, 1, 1, 1, 1, 0.35, 1, 0.133965, 0.908846, 0.712298, 0, 0, 0, 1, 1, 1, 1, 0.4, 1, 0.133965, 0.919922, 0.706406, 0, 0, 0, 1, 1, 1, 1, 0.45, 1, 0.133965, 0.921787, 0.705414, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.133965, 0.921787, 0.705414, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/14/type"> "transform" </string>
- <node_path name="tracks/14/path"> "Armature/Skeleton:r-LEGORIENT" </node_path>
- <int name="tracks/14/interp"> 1 </int>
- <real_array name="tracks/14/keys" len="24"> 0, 1, 0.100474, 0.669825, -0.778672, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.100474, 0.669825, -0.778672, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/15/type"> "transform" </string>
- <node_path name="tracks/15/path"> "Armature/Skeleton:l-LEGORIENT" </node_path>
- <int name="tracks/15/interp"> 1 </int>
- <real_array name="tracks/15/keys" len="24"> 0, 1, -0.0204011, -0.122407, 5.96046e-08, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.0204011, -0.122407, 5.96046e-08, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/16/type"> "transform" </string>
- <node_path name="tracks/16/path"> "Armature/Skeleton:r-ARMCONTROL" </node_path>
- <int name="tracks/16/interp"> 1 </int>
- <real_array name="tracks/16/keys" len="120"> 0, 1, -0.868295, 0.267668, -0.820401, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -0.868295, 0.253357, -0.761204, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, -0.868295, 0.216179, -0.653431, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.15, 1, -0.868295, 0.157463, -0.585229, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.2, 1, -0.868295, 0.102061, -0.562116, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.25, 1, -0.868295, 0.10969, -0.583242, 0, 0, 0, 1, 1, 1, 1, 0.35, 1, -0.868295, 0.226187, -0.758093, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.4, 1, -0.868295, 0.261497, -0.811129, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.45, 1, -0.868295, 0.267668, -0.820401, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.868295, 0.267668, -0.820401, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/17/type"> "transform" </string>
- <node_path name="tracks/17/path"> "Armature/Skeleton:l-ARMCONTROL" </node_path>
- <int name="tracks/17/interp"> 1 </int>
- <real_array name="tracks/17/keys" len="108"> 0, 1, 2.08906, 2.18272, 3.23967, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 2.08906, 2.16545, 3.23967, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.15, 1, 2.08906, 2.08198, 3.23967, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.2, 1, 2.08906, 2.06071, 3.23967, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.25, 1, 2.08906, 2.06954, 3.23967, 0, 0, 0, 1, 1, 1, 1, 0.35, 1, 2.08906, 2.15301, 3.23967, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.4, 1, 2.08906, 2.1783, 3.23967, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.45, 1, 2.08906, 2.18272, 3.23967, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 2.08906, 2.18272, 3.23967, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/18/type"> "transform" </string>
- <node_path name="tracks/18/path"> "Armature/Skeleton:r-ARMORIENT" </node_path>
- <int name="tracks/18/interp"> 1 </int>
- <real_array name="tracks/18/keys" len="24"> 0, 1, 0.405204, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.405204, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/19/type"> "transform" </string>
- <node_path name="tracks/19/path"> "Armature/Skeleton:l-ARMORIENT" </node_path>
- <int name="tracks/19/interp"> 1 </int>
- <real_array name="tracks/19/keys" len="132"> 0, 1, -0.495073, -1.94554, 0.375148, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -0.529633, -1.94554, 0.375148, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, -0.616933, -1.94554, 0.375148, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.15, 1, -0.726325, -1.94554, 0.375148, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.2, 1, -0.813485, -1.94554, 0.375148, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.25, 1, -0.847955, -1.94554, 0.375148, 0, 0, 0, 1, 1, 1, 1, 0.3, 1, -0.773744, -1.94554, 0.375148, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.35, 1, -0.620743, -1.94554, 0.375148, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.4, 1, -0.514687, -1.94554, 0.375148, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.45, 1, -0.495073, -1.94554, 0.375148, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.495073, -1.94554, 0.375148, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/20/type"> "transform" </string>
- <node_path name="tracks/20/path"> "Armature/Skeleton:hip" </node_path>
- <int name="tracks/20/interp"> 1 </int>
- <real_array name="tracks/20/keys" len="132"> 0, 1, 0.050238, 0.697428, 0.108012, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1, 0.05, 1, 0.050238, 0.727833, 0.0877454, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1, 0.1, 1, 0.050238, 0.772783, 0.0577767, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1, 0.15, 1, 0.050238, 0.78451, 0.0674334, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1, 0.2, 1, 0.050238, 0.778496, 0.13139, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1, 0.25, 1, 0.050238, 0.766398, 0.174636, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1, 0.3, 1, 0.050238, 0.744412, 0.160603, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1, 0.35, 1, 0.050238, 0.716858, 0.131686, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1, 0.4, 1, 0.050238, 0.700317, 0.111698, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1, 0.45, 1, 0.050238, 0.697428, 0.108012, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1, 1.25, 1, 0.050238, 0.697428, 0.108012, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1 </real_array>
- <string name="tracks/21/type"> "transform" </string>
- <node_path name="tracks/21/path"> "Armature/Skeleton:waist" </node_path>
- <int name="tracks/21/interp"> 1 </int>
- <real_array name="tracks/21/keys" len="24"> 0, 1, 7.45059e-09, -5.21541e-08, 2.38419e-07, 0.126301, -0.0110499, -0.0864524, 0.988156, 1, 1, 1, 1.25, 1, 7.45059e-09, -5.21541e-08, 2.38419e-07, 0.126301, -0.0110499, -0.0864524, 0.988156, 1, 1, 1 </real_array>
- <string name="tracks/22/type"> "transform" </string>
- <node_path name="tracks/22/path"> "Armature/Skeleton:chest" </node_path>
- <int name="tracks/22/interp"> 1 </int>
- <real_array name="tracks/22/keys" len="24"> 0, 1, -2.26918e-09, 5.21541e-08, -1.78814e-07, 0.0237758, -0.0135633, -0.0860939, 0.995911, 1, 1, 1, 1.25, 1, -2.26918e-09, 5.21541e-08, -1.78814e-07, 0.0237758, -0.0135633, -0.0860939, 0.995911, 1, 1, 1 </real_array>
- <string name="tracks/23/type"> "transform" </string>
- <node_path name="tracks/23/path"> "Armature/Skeleton:neck" </node_path>
- <int name="tracks/23/interp"> 1 </int>
- <real_array name="tracks/23/keys" len="24"> 0, 1, -1.11758e-08, -2.23517e-07, -1.43051e-06, -7.45058e-09, -4.4605e-10, 4.26538e-09, 1, 1, 1, 1, 1.25, 1, -1.11758e-08, -2.23517e-07, -1.43051e-06, -7.45058e-09, -4.4605e-10, 4.26538e-09, 1, 1, 1, 1 </real_array>
- <string name="tracks/24/type"> "transform" </string>
- <node_path name="tracks/24/path"> "Armature/Skeleton:headtracker" </node_path>
- <int name="tracks/24/interp"> 1 </int>
- <real_array name="tracks/24/keys" len="108"> 0, 1, 1.02445e-08, -4.47035e-07, -1.05007e-07, 0.287287, -0.0941088, 0.0255168, 0.952869, 1, 1, 1, 0.05, 1, -2.68222e-08, -2.98023e-08, -7.10133e-08, 0.277009, -0.0944548, 0.024506, 0.9559, 1, 1, 1, 0.15, 1, -2.42144e-08, -3.57628e-07, -3.39933e-08, 0.229614, -0.0956923, 0.0198279, 0.968363, 1, 1, 1, 0.2, 1, -1.22934e-08, -1.78814e-07, 1.30385e-08, 0.224057, -0.0957887, 0.0192787, 0.969665, 1, 1, 1, 0.25, 1, -3.91156e-08, 1.19209e-07, -4.79631e-08, 0.233664, -0.0955615, 0.0202274, 0.967399, 1, 1, 1, 0.35, 1, -3.35279e-09, -3.27826e-07, -4.61005e-08, 0.274341, -0.0944949, 0.024241, 0.956671, 1, 1, 1, 0.4, 1, -1.67641e-09, -2.68221e-07, -8.21892e-08, 0.285395, -0.0941665, 0.0253304, 0.953436, 1, 1, 1, 0.45, 1, 1.02445e-08, -4.47035e-07, -1.05007e-07, 0.287287, -0.0941088, 0.0255168, 0.952869, 1, 1, 1, 1.25, 1, 1.02445e-08, -4.47035e-07, -1.05007e-07, 0.287287, -0.0941088, 0.0255168, 0.952869, 1, 1, 1 </real_array>
- <string name="tracks/25/type"> "transform" </string>
- <node_path name="tracks/25/path"> "Armature/Skeleton:head" </node_path>
- <int name="tracks/25/interp"> 1 </int>
- <real_array name="tracks/25/keys" len="24"> 0, 1, -7.74519e-09, -9.56934e-08, 3.16533e-07, 7.45058e-09, 3.37575e-10, -1.99442e-09, 1, 1, 1, 1, 1.25, 1, -7.74519e-09, -9.56934e-08, 3.16533e-07, 7.45058e-09, 3.37575e-10, -1.99442e-09, 1, 1, 1, 1 </real_array>
- <string name="tracks/26/type"> "transform" </string>
- <node_path name="tracks/26/path"> "Armature/Skeleton:vent" </node_path>
- <int name="tracks/26/interp"> 1 </int>
- <real_array name="tracks/26/keys" len="24"> 0, 1, 3.38022e-08, 0.00292349, 0.20433, 6.98492e-10, 2.45226e-11, 6.71222e-11, 1, 1, 1, 1, 1.25, 1, 3.38022e-08, 0.00292349, 0.20433, 6.98492e-10, 2.45226e-11, 6.71222e-11, 1, 1, 1, 1 </real_array>
-
- </resource>
- <resource type="Animation" path="local://10">
- <string name="resource/name"> "shooting_standing" </string>
- <real name="length"> 0.416667 </real>
- <bool name="loop"> False </bool>
- <real name="step"> 0.1 </real>
- <string name="tracks/0/type"> "transform" </string>
- <node_path name="tracks/0/path"> "Armature/Skeleton:r-arm" </node_path>
- <int name="tracks/0/interp"> 1 </int>
- <real_array name="tracks/0/keys" len="132"> 0, 1, 5.96046e-07, -1.19209e-07, 4.47035e-07, -0.206314, 0.709894, -0.150643, 0.656348, 1, 1, 1, 0.05, 1, 1.07288e-06, -4.76837e-07, 8.34465e-07, -0.199825, 0.723236, -0.14911, 0.644023, 1, 1, 1, 0.1, 1, 4.47035e-07, -1.19209e-07, 3.27826e-07, -0.186028, 0.74616, -0.147051, 0.622106, 1, 1, 1, 0.15, 1, 4.47035e-07, -1.19209e-07, 1.49012e-07, -0.168011, 0.761016, -0.149525, 0.608497, 1, 1, 1, 0.2, 1, 2.38419e-07, 1.19209e-07, -1.19209e-07, -0.141127, 0.777642, -0.158168, 0.591895, 1, 1, 1, 0.25, 1, 7.15256e-07, -2.38419e-07, 2.68221e-07, -0.129783, 0.779527, -0.165304, 0.590059, 1, 1, 1, 0.3, 1, 6.25849e-07, -1.19209e-07, 2.08616e-07, -0.152097, 0.757922, -0.164122, 0.612768, 1, 1, 1, 0.35, 1, 8.9407e-07, -4.76837e-07, 8.34465e-07, -0.183836, 0.730436, -0.157254, 0.638701, 1, 1, 1, 0.4, 1, 7.45058e-07, -3.57628e-07, 5.66244e-07, -0.202964, 0.713054, -0.151716, 0.653714, 1, 1, 1, 0.45, 1, 5.96046e-07, -1.19209e-07, 4.47035e-07, -0.206314, 0.709894, -0.150643, 0.656348, 1, 1, 1, 1.25, 1, 5.96046e-07, -1.19209e-07, 4.47035e-07, -0.206314, 0.709894, -0.150643, 0.656348, 1, 1, 1 </real_array>
- <string name="tracks/1/type"> "transform" </string>
- <node_path name="tracks/1/path"> "Armature/Skeleton:r-forearm" </node_path>
- <int name="tracks/1/interp"> 1 </int>
- <real_array name="tracks/1/keys" len="120"> 0, 1, 0, -4.76837e-07, -7.7486e-07, 0.0490264, -0.364254, 0.0100564, 0.929954, 1, 1, 1, 0.05, 1, 1.19209e-07, -4.47035e-07, -4.76837e-07, 0.0346734, -0.325178, 0.00768963, 0.944986, 1, 1, 1, 0.1, 1, 1.19209e-07, -5.06639e-07, -3.57628e-07, 0.00822793, -0.255634, 0.00344931, 0.966732, 1, 1, 1, 0.15, 1, 2.98023e-08, -7.15256e-07, -5.96046e-07, -0.00893206, -0.219161, 0.00118009, 0.975647, 1, 1, 1, 0.2, 1, 1.49012e-07, -4.47035e-07, -5.96046e-07, -0.0220165, -0.204408, 0.000203021, 0.978638, 1, 1, 1, 0.25, 1, 4.17233e-07, -4.76837e-07, -5.36442e-07, -0.0204464, -0.223283, 0.00158917, 0.974538, 1, 1, 1, 0.35, 1, 1.19209e-07, -6.85453e-07, -2.98023e-07, 0.0295549, -0.331584, 0.00842644, 0.942925, 1, 1, 1, 0.4, 1, 0, -6.55651e-07, -6.55651e-07, 0.0460614, -0.359518, 0.00983853, 0.931949, 1, 1, 1, 0.45, 1, 0, -4.76837e-07, -7.7486e-07, 0.0490264, -0.364254, 0.0100564, 0.929954, 1, 1, 1, 1.25, 1, 0, -4.76837e-07, -7.7486e-07, 0.0490264, -0.364254, 0.0100564, 0.929954, 1, 1, 1 </real_array>
- <string name="tracks/2/type"> "transform" </string>
- <node_path name="tracks/2/path"> "Armature/Skeleton:l-arm" </node_path>
- <int name="tracks/2/interp"> 1 </int>
- <real_array name="tracks/2/keys" len="132"> 0, 1, -4.17233e-07, -3.57628e-07, 4.47035e-07, -0.474516, -0.584521, 0.0340579, 0.657274, 1, 1, 1, 0.05, 1, -7.45058e-07, -3.57628e-07, 5.36442e-07, -0.46761, -0.58693, 0.0339523, 0.660076, 1, 1, 1, 0.1, 1, -4.76837e-07, -2.38419e-07, 2.98023e-07, -0.452786, -0.591715, 0.0339493, 0.666112, 1, 1, 1, 0.15, 1, -6.55651e-07, -3.57628e-07, 2.98023e-07, -0.443727, -0.588057, 0.0337848, 0.675392, 1, 1, 1, 0.2, 1, 2.98023e-08, 1.19209e-07, -3.27826e-07, -0.450408, -0.563251, 0.0324613, 0.691973, 1, 1, 1, 0.25, 1, -5.96046e-07, -3.57628e-07, 2.98023e-07, -0.461281, -0.543778, 0.0314456, 0.700383, 1, 1, 1, 0.3, 1, -4.17233e-07, 0, 1.78814e-07, -0.469244, -0.550688, 0.0318109, 0.689595, 1, 1, 1, 0.35, 1, -7.7486e-07, -2.38419e-07, 4.76837e-07, -0.473462, -0.569016, 0.0329517, 0.671542, 1, 1, 1, 0.4, 1, -6.25849e-07, -3.57628e-07, 5.96046e-07, -0.474439, -0.5821, 0.0338759, 0.659485, 1, 1, 1, 0.45, 1, -4.17233e-07, -3.57628e-07, 4.47035e-07, -0.474516, -0.584521, 0.0340579, 0.657274, 1, 1, 1, 1.25, 1, -4.17233e-07, -3.57628e-07, 4.47035e-07, -0.474516, -0.584521, 0.0340579, 0.657274, 1, 1, 1 </real_array>
- <string name="tracks/3/type"> "transform" </string>
- <node_path name="tracks/3/path"> "Armature/Skeleton:l-forearm" </node_path>
- <int name="tracks/3/interp"> 1 </int>
- <real_array name="tracks/3/keys" len="96"> 0, 1, 1.78814e-07, 2.98023e-08, -3.57628e-07, -0.156054, -0.257929, 9.29801e-05, 0.953478, 1.3, 1.3, 1.3, 0.05, 1, -8.9407e-08, -9.23872e-07, -2.98023e-07, -0.156186, -0.25785, 0.000491834, 0.953477, 1.3, 1.3, 1.3, 0.1, 1, 0, -5.06639e-07, -2.98023e-07, -0.156442, -0.257682, 0.00128265, 0.95348, 1.3, 1.3, 1.3, 0.15, 1, -2.08616e-07, -5.36442e-07, -5.96046e-08, -0.156528, -0.257623, 0.00155313, 0.953481, 1.3, 1.3, 1.3, 0.25, 1, 2.98023e-08, -5.36442e-07, -3.57628e-07, -0.155874, -0.258131, -0.000583909, 0.953452, 1.3, 1.3, 1.3, 0.35, 1, 2.98023e-08, -4.76837e-07, -3.57628e-07, -0.15592, -0.258051, -0.000371468, 0.953467, 1.3, 1.3, 1.3, 0.4, 1, 1.49012e-07, -2.68221e-07, -2.98023e-07, -0.156032, -0.257949, 1.56283e-05, 0.953476, 1.3, 1.3, 1.3, 1.25, 1, 1.78814e-07, 2.98023e-08, -3.57628e-07, -0.156054, -0.257929, 9.29801e-05, 0.953478, 1.3, 1.3, 1.3 </real_array>
- <string name="tracks/4/type"> "transform" </string>
- <node_path name="tracks/4/path"> "Armature/Skeleton:r-thigh" </node_path>
- <int name="tracks/4/interp"> 1 </int>
- <real_array name="tracks/4/keys" len="120"> 0, 1, 5.96046e-08, 2.23517e-08, -1.3411e-07, 0.301601, -0.0701581, -0.00864293, 0.95081, 1, 1, 1, 0.05, 1, 5.96046e-08, 2.98023e-08, -1.04308e-07, 0.248345, -0.0620849, -0.00736271, 0.966652, 1, 1, 1, 0.1, 1, 8.9407e-08, 6.70552e-08, -1.04308e-07, 0.175365, -0.0511626, -0.00552639, 0.983158, 1, 1, 1, 0.15, 1, 8.9407e-08, 4.47035e-08, -1.04308e-07, 0.153891, -0.0497144, -0.00660778, 0.986814, 1, 1, 1, 0.2, 1, 5.96046e-08, -2.98023e-08, -1.49012e-08, 0.151238, -0.0561188, -0.0117034, 0.986834, 1, 1, 1, 0.25, 1, 2.98023e-08, -1.49012e-08, -1.04308e-07, 0.168743, -0.0655087, -0.0152581, 0.983362, 1, 1, 1, 0.35, 1, 2.98023e-08, 2.23517e-08, -1.63913e-07, 0.26593, -0.072486, -0.0117415, 0.961192, 1, 1, 1, 0.4, 1, 5.96046e-08, 7.45058e-09, -1.78814e-07, 0.296131, -0.070636, -0.00916634, 0.952488, 1, 1, 1, 0.45, 1, 5.96046e-08, 2.23517e-08, -1.3411e-07, 0.301601, -0.0701581, -0.00864293, 0.95081, 1, 1, 1, 1.25, 1, 5.96046e-08, 2.23517e-08, -1.3411e-07, 0.301601, -0.0701581, -0.00864293, 0.95081, 1, 1, 1 </real_array>
- <string name="tracks/5/type"> "transform" </string>
- <node_path name="tracks/5/path"> "Armature/Skeleton:r-leg" </node_path>
- <int name="tracks/5/interp"> 1 </int>
- <real_array name="tracks/5/keys" len="120"> 0, 1, -4.31901e-08, -7.45058e-08, 7.7486e-07, -0.33852, 0.053398, -0.0152903, 0.939319, 1, 1, 1, 0.05, 1, 5.6345e-08, -2.23517e-08, 6.55651e-07, -0.403989, 0.0628472, -0.0146608, 0.912484, 1, 1, 1, 0.1, 1, 5.02914e-08, -1.49012e-08, 5.36442e-07, -0.486228, 0.0751824, -0.0137902, 0.870483, 1, 1, 1, 0.15, 1, 1.11642e-07, 5.96046e-08, 5.96046e-07, -0.506485, 0.0840018, -0.0142775, 0.858028, 1, 1, 1, 0.2, 1, 1.23633e-07, 8.19564e-08, 5.36442e-07, -0.500531, 0.103313, -0.0168649, 0.859367, 1, 1, 1, 0.25, 1, 9.58098e-08, 1.49012e-08, 6.55651e-07, -0.475505, 0.111896, -0.0189746, 0.872361, 1, 1, 1, 0.35, 1, 7.84639e-08, 9.68575e-08, 5.96046e-07, -0.376662, 0.0699087, -0.0169347, 0.923554, 1, 1, 1, 0.4, 1, -1.16415e-09, -7.45058e-09, 7.15256e-07, -0.344524, 0.0558207, -0.0155573, 0.936987, 1, 1, 1, 0.45, 1, -4.31901e-08, -7.45058e-08, 7.7486e-07, -0.33852, 0.053398, -0.0152903, 0.939319, 1, 1, 1, 1.25, 1, -4.31901e-08, -7.45058e-08, 7.7486e-07, -0.33852, 0.053398, -0.0152903, 0.939319, 1, 1, 1 </real_array>
- <string name="tracks/6/type"> "transform" </string>
- <node_path name="tracks/6/path"> "Armature/Skeleton:r-foot" </node_path>
- <int name="tracks/6/interp"> 1 </int>
- <real_array name="tracks/6/keys" len="108"> 0, 1, 1.19209e-07, 0, 1.82539e-07, -0.218034, -0.0651501, 0.015764, 0.973637, 1, 1, 1, 0.05, 1, 5.21541e-08, 0, -9.31323e-08, -0.206333, -0.0662009, 0.0171463, 0.976089, 1, 1, 1, 0.1, 1, 2.98023e-08, -1.19209e-07, -7.45058e-08, -0.188973, -0.0677374, 0.0191861, 0.979455, 1, 1, 1, 0.15, 1, 0, 0, -4.84288e-08, -0.184958, -0.0680889, 0.0196559, 0.980188, 1, 1, 1, 0.2, 1, 5.96046e-08, 0, -1.19209e-07, -0.189238, -0.0677142, 0.019155, 0.979406, 1, 1, 1, 0.35, 1, 8.19564e-08, 1.19209e-07, 3.72529e-08, -0.213767, -0.0655347, 0.0162687, 0.974548, 1, 1, 1, 0.4, 1, 1.04308e-07, 0, 5.21541e-08, -0.217419, -0.0652056, 0.0158368, 0.973769, 1, 1, 1, 0.45, 1, 1.19209e-07, 0, 1.82539e-07, -0.218034, -0.0651501, 0.015764, 0.973637, 1, 1, 1, 1.25, 1, 1.19209e-07, 0, 1.82539e-07, -0.218034, -0.0651501, 0.015764, 0.973637, 1, 1, 1 </real_array>
- <string name="tracks/7/type"> "transform" </string>
- <node_path name="tracks/7/path"> "Armature/Skeleton:l-thigh" </node_path>
- <int name="tracks/7/interp"> 1 </int>
- <real_array name="tracks/7/keys" len="132"> 0, 1, -5.96046e-08, -1.2666e-07, 1.04308e-07, -0.633392, 0.109953, 0.00349885, 0.765972, 1, 1, 1, 0.05, 1, 0, -4.47035e-08, 1.3411e-07, -0.628866, 0.106487, 0.00414994, 0.770176, 1, 1, 1, 0.1, 1, -2.98023e-08, 4.47035e-08, 1.49012e-07, -0.619935, 0.101098, 0.00522767, 0.778095, 1, 1, 1, 0.15, 1, -2.98023e-08, 5.96046e-08, 1.49012e-07, -0.616185, 0.108634, 0.00550208, 0.780054, 1, 1, 1, 0.2, 1, 5.96046e-08, 4.47035e-08, 2.5332e-07, -0.613177, 0.141231, 0.00523592, 0.7772, 1, 1, 1, 0.25, 1, 0, 0, 1.49012e-07, -0.612177, 0.164991, 0.00476259, 0.773301, 1, 1, 1, 0.3, 1, 5.96046e-08, -7.45058e-09, 1.3411e-07, -0.619021, 0.155086, 0.00421746, 0.769898, 1, 1, 1, 0.35, 1, 2.98023e-08, 7.45058e-09, 7.45058e-08, -0.627679, 0.130628, 0.00377015, 0.767425, 1, 1, 1, 0.4, 1, -2.98023e-08, -1.3411e-07, 7.45058e-08, -0.632568, 0.11319, 0.0035387, 0.766181, 1, 1, 1, 0.45, 1, -5.96046e-08, -1.2666e-07, 1.04308e-07, -0.633392, 0.109953, 0.00349885, 0.765972, 1, 1, 1, 1.25, 1, -5.96046e-08, -1.2666e-07, 1.04308e-07, -0.633392, 0.109953, 0.00349885, 0.765972, 1, 1, 1 </real_array>
- <string name="tracks/8/type"> "transform" </string>
- <node_path name="tracks/8/path"> "Armature/Skeleton:l-leg" </node_path>
- <int name="tracks/8/interp"> 1 </int>
- <real_array name="tracks/8/keys" len="120"> 0, 1, -4.07454e-08, -1.11759e-07, 0, -0.55604, 0.155102, 0.00378888, 0.816547, 1, 1, 1, 0.05, 1, 7.60192e-08, -8.9407e-08, 1.19209e-07, -0.534898, 0.148998, 0.00358481, 0.831668, 1, 1, 1, 0.1, 1, -1.0326e-07, -1.49012e-08, 2.38419e-07, -0.500235, 0.139173, 0.00323174, 0.854626, 1, 1, 1, 0.15, 1, 6.41448e-08, 4.47035e-08, 1.78814e-07, -0.492131, 0.143377, 0.00332103, 0.858626, 1, 1, 1, 0.25, 1, -6.58911e-08, -8.19564e-08, 1.78814e-07, -0.517192, 0.191548, 0.00473312, 0.834146, 1, 1, 1, 0.3, 1, 3.0268e-08, 1.49012e-08, 1.19209e-07, -0.534465, 0.187415, 0.00465677, 0.824136, 1, 1, 1, 0.35, 1, 3.11993e-08, -5.21541e-08, 2.38419e-07, -0.548296, 0.170437, 0.0042049, 0.818722, 1, 1, 1, 0.4, 1, 2.51457e-08, -9.68575e-08, 1.19209e-07, -0.554953, 0.157536, 0.00385503, 0.81682, 1, 1, 1, 0.45, 1, -4.07454e-08, -1.11759e-07, 0, -0.55604, 0.155102, 0.00378888, 0.816547, 1, 1, 1, 1.25, 1, -4.07454e-08, -1.11759e-07, 0, -0.55604, 0.155102, 0.00378888, 0.816547, 1, 1, 1 </real_array>
- <string name="tracks/9/type"> "transform" </string>
- <node_path name="tracks/9/path"> "Armature/Skeleton:l-foot" </node_path>
- <int name="tracks/9/interp"> 1 </int>
- <real_array name="tracks/9/keys" len="108"> 0, 1, 7.45058e-08, 1.19209e-07, 3.72529e-09, -0.143967, -0.0951747, 0.00523759, 0.984981, 1, 1, 1, 0.05, 1, 7.45058e-09, 2.38419e-07, 3.35276e-08, -0.157581, -0.0952617, 0.00367365, 0.982894, 1, 1, 1, 0.1, 1, -2.23517e-08, 1.19209e-07, -1.11759e-08, -0.17766, -0.0953568, 0.00135921, 0.97946, 1, 1, 1, 0.15, 1, -3.72529e-08, 1.19209e-07, 4.84288e-08, -0.182282, -0.0953731, 0.000825106, 0.97861, 1, 1, 1, 0.2, 1, 1.49012e-08, 1.19209e-07, -5.21541e-08, -0.177354, -0.0953557, 0.00139453, 0.979516, 1, 1, 1, 0.35, 1, 4.47035e-08, 0, 5.96046e-08, -0.148938, -0.0952085, 0.00466699, 0.984241, 1, 1, 1, 0.4, 1, 5.21541e-08, 1.19209e-07, -4.09782e-08, -0.144684, -0.0951797, 0.00515536, 0.984876, 1, 1, 1, 0.45, 1, 7.45058e-08, 1.19209e-07, 3.72529e-09, -0.143967, -0.0951747, 0.00523759, 0.984981, 1, 1, 1, 1.25, 1, 7.45058e-08, 1.19209e-07, 3.72529e-09, -0.143967, -0.0951747, 0.00523759, 0.984981, 1, 1, 1 </real_array>
- <string name="tracks/10/type"> "transform" </string>
- <node_path name="tracks/10/path"> "Armature/Skeleton:MASTER" </node_path>
- <int name="tracks/10/interp"> 1 </int>
- <real_array name="tracks/10/keys" len="24"> 0, 1, 0, 1.36988, -1.03377e-07, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0, 1.36988, -1.03377e-07, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/11/type"> "transform" </string>
- <node_path name="tracks/11/path"> "Armature/Skeleton:HEAD" </node_path>
- <int name="tracks/11/interp"> 1 </int>
- <real_array name="tracks/11/keys" len="108"> 0, 1, 8.64522e-08, 0.572547, -4.76837e-07, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 8.64522e-08, 0.572548, 0.471507, 0, 0, 0, 1, 1, 1, 1, 0.1, 1, 8.64522e-08, 0.572548, 1.12029, 0, 0, 7.10543e-15, 1, 1, 1, 1, 0.15, 1, 8.64522e-08, 0.572548, 1.26782, 0, 0, 0, 1, 1, 1, 1, 0.2, 1, 8.64522e-08, 0.572548, 1.10411, 0, 0, -7.10543e-15, 1, 1, 1, 1, 0.35, 1, 8.64522e-08, 0.572548, 0.166984, 0, 0, -7.10543e-15, 1, 1, 1, 1, 0.4, 1, 8.64522e-08, 0.572547, 0.024261, 0, 0, 0, 1, 1, 1, 1, 0.45, 1, 8.64522e-08, 0.572547, -4.76837e-07, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 8.64522e-08, 0.572547, -4.76837e-07, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/12/type"> "transform" </string>
- <node_path name="tracks/12/path"> "Armature/Skeleton:r-LEGCONTROL" </node_path>
- <int name="tracks/12/interp"> 1 </int>
- <real_array name="tracks/12/keys" len="108"> 0, 1, -0.0366479, -0.0811065, 0.809552, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -0.0366479, -0.0811065, 0.816585, 0, 0, 0, 1, 1, 1, 1, 0.1, 1, -0.0366479, -0.0811065, 0.826986, 0, 0, 0, 1, 1, 1, 1, 0.15, 1, -0.0366479, -0.0811065, 0.829386, 0, 0, 0, 1, 1, 1, 1, 0.2, 1, -0.0366479, -0.0811065, 0.826827, 0, 0, 0, 1, 1, 1, 1, 0.35, 1, -0.0366479, -0.0811065, 0.812119, 0, 0, 0, 1, 1, 1, 1, 0.4, 1, -0.0366479, -0.0811065, 0.809922, 0, 0, 0, 1, 1, 1, 1, 0.45, 1, -0.0366479, -0.0811065, 0.809552, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.0366479, -0.0811065, 0.809552, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/13/type"> "transform" </string>
- <node_path name="tracks/13/path"> "Armature/Skeleton:l-LEGCONTROL" </node_path>
- <int name="tracks/13/interp"> 1 </int>
- <real_array name="tracks/13/keys" len="24"> 0, 1, 0.0611181, -2.75446, 0.0815672, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.0611181, -2.75446, 0.0815672, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/14/type"> "transform" </string>
- <node_path name="tracks/14/path"> "Armature/Skeleton:r-LEGORIENT" </node_path>
- <int name="tracks/14/interp"> 1 </int>
- <real_array name="tracks/14/keys" len="24"> 0, 1, 0.0798243, -0.0543702, -2.95838, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.0798243, -0.0543702, -2.95838, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/15/type"> "transform" </string>
- <node_path name="tracks/15/path"> "Armature/Skeleton:l-LEGORIENT" </node_path>
- <int name="tracks/15/interp"> 1 </int>
- <real_array name="tracks/15/keys" len="24"> 0, 1, 0.183564, 0.0305935, -3.02205, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.183564, 0.0305935, -3.02205, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/16/type"> "transform" </string>
- <node_path name="tracks/16/path"> "Armature/Skeleton:r-ARMCONTROL" </node_path>
- <int name="tracks/16/interp"> 1 </int>
- <real_array name="tracks/16/keys" len="24"> 0, 1, -2.74884, 1.12805, 3.06242, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -2.74884, 1.12805, 3.06242, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/17/type"> "transform" </string>
- <node_path name="tracks/17/path"> "Armature/Skeleton:l-ARMCONTROL" </node_path>
- <int name="tracks/17/interp"> 1 </int>
- <real_array name="tracks/17/keys" len="24"> 0, 1, 1.73339, 0.895247, 5.13844, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 1.73339, 0.895247, 5.13844, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/18/type"> "transform" </string>
- <node_path name="tracks/18/path"> "Armature/Skeleton:r-ARMORIENT" </node_path>
- <int name="tracks/18/interp"> 1 </int>
- <real_array name="tracks/18/keys" len="24"> 0, 1, 0.101768, -0.813356, 5.76642, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.101768, -0.813356, 5.76642, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/19/type"> "transform" </string>
- <node_path name="tracks/19/path"> "Armature/Skeleton:l-ARMORIENT" </node_path>
- <int name="tracks/19/interp"> 1 </int>
- <real_array name="tracks/19/keys" len="24"> 0, 1, -0.849557, -0.741664, 5.51935, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.849557, -0.741664, 5.51935, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/20/type"> "transform" </string>
- <node_path name="tracks/20/path"> "Armature/Skeleton:hip" </node_path>
- <int name="tracks/20/interp"> 1 </int>
- <real_array name="tracks/20/keys" len="132"> 0, 1, 2.65402e-07, 1.83685, 0.489514, -5.25643e-15, 1.43922e-08, -0.0635436, 0.997979, 1, 1, 1, 0.05, 1, 2.56992e-07, 1.7811, 0.489514, -1.96073e-14, 1.43922e-08, -0.0635436, 0.997979, 1, 1, 1, 0.1, 1, 2.44553e-07, 1.69876, 0.489514, -1.94961e-14, 1.43922e-08, -0.0635436, 0.997979, 1, 1, 1, 0.15, 1, 2.41683e-07, 1.67977, 0.489514, -4.43536e-14, 1.60316e-08, -0.070782, 0.997492, 1, 1, 1, 0.2, 1, 2.44743e-07, 1.70003, 0.489514, -3.42428e-14, 2.17962e-08, -0.0962332, 0.995359, 1, 1, 1, 0.25, 1, 2.50383e-07, 1.73738, 0.489514, -5.58716e-16, 2.56855e-08, -0.113405, 0.993549, 1, 1, 1, 0.3, 1, 2.57035e-07, 1.78143, 0.489514, -6.36206e-15, 2.33115e-08, -0.102924, 0.994689, 1, 1, 1, 0.35, 1, 2.62333e-07, 1.81652, 0.489514, -1.06935e-14, 1.84103e-08, -0.0812848, 0.996691, 1, 1, 1, 0.4, 1, 2.6496e-07, 1.83392, 0.489514, -2.45344e-14, 1.50179e-08, -0.0663065, 0.997799, 1, 1, 1, 0.45, 1, 2.65402e-07, 1.83685, 0.489514, -5.25643e-15, 1.43922e-08, -0.0635436, 0.997979, 1, 1, 1, 1.25, 1, 2.65402e-07, 1.83685, 0.489514, -5.25643e-15, 1.43922e-08, -0.0635436, 0.997979, 1, 1, 1 </real_array>
- <string name="tracks/21/type"> "transform" </string>
- <node_path name="tracks/21/path"> "Armature/Skeleton:waist" </node_path>
- <int name="tracks/21/interp"> 1 </int>
- <real_array name="tracks/21/keys" len="120"> 0, 1, -4.65684e-10, 7.57313e-10, 0, -8.93894e-16, 2.55708e-08, -0.112898, 0.993607, 1, 1, 1, 0.05, 1, -4.18389e-09, 6.71868e-09, -2.98023e-08, -0.00385828, -0.000945429, -0.112898, 0.993599, 1, 1, 1, 0.1, 1, -2.6989e-09, 6.71803e-09, -2.98023e-08, -0.0118093, -0.00289381, -0.11289, 0.993533, 1, 1, 1, 0.15, 1, -1.65698e-09, 6.19854e-09, -1.19209e-07, -0.0173041, -0.00424031, -0.112881, 0.993449, 1, 1, 1, 0.2, 1, 6.17568e-09, 2.79554e-08, -1.78814e-07, -0.0174121, -0.00426678, -0.11288, 0.993447, 1, 1, 1, 0.25, 1, -9.69976e-10, -3.44268e-09, -2.98023e-08, -0.013893, -0.00340444, -0.112887, 0.993505, 1, 1, 1, 0.35, 1, 8.55826e-09, 2.92274e-08, -2.98023e-08, -0.00310744, -0.000761444, -0.112898, 0.993601, 1, 1, 1, 0.4, 1, 2.05826e-09, 1.24848e-08, 0, -0.000452603, -0.000110883, -0.112898, 0.993606, 1, 1, 1, 0.45, 1, -4.65684e-10, 7.57313e-10, 0, -8.93894e-16, 2.55708e-08, -0.112898, 0.993607, 1, 1, 1, 1.25, 1, -4.65684e-10, 7.57313e-10, 0, -8.93894e-16, 2.55708e-08, -0.112898, 0.993607, 1, 1, 1 </real_array>
- <string name="tracks/22/type"> "transform" </string>
- <node_path name="tracks/22/path"> "Armature/Skeleton:chest" </node_path>
- <int name="tracks/22/interp"> 1 </int>
- <real_array name="tracks/22/keys" len="108"> 0, 1, -7.51303e-09, 2.23517e-08, -2.38419e-07, 2.43554e-09, -0.00270918, 0.0663084, 0.997796, 1, 1, 1, 0.05, 1, -5.41336e-11, 3.72529e-09, -2.38419e-07, -0.00158657, -0.00317713, 0.0662892, 0.997794, 1, 1, 1, 0.15, 1, -3.26683e-10, 0, 5.96046e-08, -0.00925885, -0.00543992, 0.0661937, 0.997749, 1, 1, 1, 0.2, 1, -2.06055e-09, 1.49012e-08, -2.38419e-07, -0.0112141, -0.00601653, 0.0661687, 0.997727, 1, 1, 1, 0.25, 1, 1.76951e-08, -3.72529e-09, -1.78814e-07, -0.0104022, -0.00577711, 0.0661791, 0.997737, 1, 1, 1, 0.35, 1, 7.20902e-09, 7.45058e-09, -1.19209e-07, -0.00273, -0.00351437, 0.0662752, 0.997791, 1, 1, 1, 0.4, 1, 4.13622e-10, 3.72529e-09, -1.78814e-07, -0.000405934, -0.00282891, 0.0663035, 0.997795, 1, 1, 1, 0.45, 1, -7.51303e-09, 2.23517e-08, -2.38419e-07, 2.43554e-09, -0.00270918, 0.0663084, 0.997796, 1, 1, 1, 1.25, 1, -7.51303e-09, 2.23517e-08, -2.38419e-07, 2.43554e-09, -0.00270918, 0.0663084, 0.997796, 1, 1, 1 </real_array>
- <string name="tracks/23/type"> "transform" </string>
- <node_path name="tracks/23/path"> "Armature/Skeleton:neck" </node_path>
- <int name="tracks/23/interp"> 1 </int>
- <real_array name="tracks/23/keys" len="24"> 0, 1, 4.48992e-09, -1.3411e-07, -1.07288e-06, -1.49012e-08, 7.81341e-10, 2.3736e-09, 1, 1, 1, 1, 1.25, 1, 4.48992e-09, -1.3411e-07, -1.07288e-06, -1.49012e-08, 7.81341e-10, 2.3736e-09, 1, 1, 1, 1 </real_array>
- <string name="tracks/24/type"> "transform" </string>
- <node_path name="tracks/24/path"> "Armature/Skeleton:headtracker" </node_path>
- <int name="tracks/24/interp"> 1 </int>
- <real_array name="tracks/24/keys" len="120"> 0, 1, -1.54592e-09, -2.38419e-07, -3.32948e-08, 0.0746069, -0.101992, 0.0306522, 0.99151, 1, 1, 1, 0.05, 1, -1.11768e-09, -1.19209e-07, -9.73232e-08, 0.0219469, -0.103542, 0.0251775, 0.994064, 1, 1, 1, 0.1, 1, 3.72477e-10, -2.98023e-07, -7.61356e-08, -0.0560921, -0.105311, 0.0169133, 0.992712, 1, 1, 1, 0.15, 1, 1.49005e-09, -3.8743e-07, -9.8953e-08, -0.0807068, -0.112423, 0.0155536, 0.990255, 1, 1, 1, 0.2, 1, 9.68555e-09, -1.78814e-07, -2.06754e-07, -0.0663987, -0.135548, 0.0221852, 0.988294, 1, 1, 1, 0.25, 1, 1.86265e-08, -2.68221e-07, -1.18744e-08, -0.0319373, -0.150579, 0.0303761, 0.987615, 1, 1, 1, 0.35, 1, 7.26442e-09, -6.85453e-07, 3.81842e-08, 0.0516026, -0.119052, 0.0329235, 0.990999, 1, 1, 1, 0.4, 1, -1.48637e-09, -2.38419e-07, -5.07571e-08, 0.0712567, -0.10465, 0.03106, 0.991467, 1, 1, 1, 0.45, 1, -1.54592e-09, -2.38419e-07, -3.32948e-08, 0.0746069, -0.101992, 0.0306522, 0.99151, 1, 1, 1, 1.25, 1, -1.54592e-09, -2.38419e-07, -3.32948e-08, 0.0746069, -0.101992, 0.0306522, 0.99151, 1, 1, 1 </real_array>
- <string name="tracks/25/type"> "transform" </string>
- <node_path name="tracks/25/path"> "Armature/Skeleton:head" </node_path>
- <int name="tracks/25/interp"> 1 </int>
- <real_array name="tracks/25/keys" len="24"> 0, 1, 3.53794e-09, -1.25496e-07, -8.33534e-08, 2.23517e-08, 1.01485e-10, -1.43572e-10, 1, 1, 1, 1, 1.25, 1, 3.53794e-09, -1.25496e-07, -8.33534e-08, 2.23517e-08, 1.01485e-10, -1.43572e-10, 1, 1, 1, 1 </real_array>
- <string name="tracks/26/type"> "transform" </string>
- <node_path name="tracks/26/path"> "Armature/Skeleton:vent" </node_path>
- <int name="tracks/26/interp"> 1 </int>
- <real_array name="tracks/26/keys" len="24"> 0, 1, 1.23685e-09, 2.38419e-07, -5.96046e-07, -2.32831e-09, -1.31362e-12, 1.19249e-11, 1, 1, 1, 1, 1.25, 1, 1.23685e-09, 2.38419e-07, -5.96046e-07, -2.32831e-09, -1.31362e-12, 1.19249e-11, 1, 1, 1, 1 </real_array>
-
- </resource>
- <resource type="Animation" path="local://11">
- <string name="resource/name"> "falling-cycle" </string>
- <real name="length"> 0.416667 </real>
- <bool name="loop"> True </bool>
- <real name="step"> 0.1 </real>
- <string name="tracks/0/type"> "transform" </string>
- <node_path name="tracks/0/path"> "Armature/Skeleton:r-arm" </node_path>
- <int name="tracks/0/interp"> 1 </int>
- <real_array name="tracks/0/keys" len="132"> 0, 1, 2.98023e-08, 1.19209e-07, -2.98023e-08, -0.336022, 0.262721, 0.175267, 0.887326, 1, 1, 1, 0.05, 1, 7.45058e-07, -3.57628e-07, 5.36442e-07, -0.336851, 0.262046, 0.173695, 0.887521, 1, 1, 1, 0.1, 1, 8.34465e-07, -5.96046e-07, 7.15256e-07, -0.33853, 0.260365, 0.16952, 0.888184, 1, 1, 1, 0.15, 1, 8.9407e-07, -3.57628e-07, 8.9407e-07, -0.338209, 0.258327, 0.163568, 0.890015, 1, 1, 1, 0.2, 1, 5.96046e-07, -3.57628e-07, 7.45058e-07, -0.333363, 0.256341, 0.157703, 0.89347, 1, 1, 1, 0.25, 1, 1.43051e-06, -8.34465e-07, 1.3113e-06, -0.339001, 0.253177, 0.158008, 0.892196, 1, 1, 0.999999, 0.3, 1, 5.96046e-07, -1.19209e-07, 2.98023e-07, -0.348081, 0.252511, 0.164449, 0.887713, 1, 1, 1, 0.35, 1, 1.07288e-06, -5.96046e-07, 7.45058e-07, -0.343056, 0.25799, 0.170697, 0.886914, 1, 1, 1, 0.4, 1, 3.27826e-07, 0, 2.38419e-07, -0.337258, 0.26196, 0.174599, 0.887214, 1, 1, 1, 0.45, 1, 2.98023e-08, 1.19209e-07, -2.98023e-08, -0.336022, 0.262721, 0.175267, 0.887326, 1, 1, 1, 1.25, 1, 2.98023e-08, 1.19209e-07, -2.98023e-08, -0.336022, 0.262721, 0.175267, 0.887326, 1, 1, 1 </real_array>
- <string name="tracks/1/type"> "transform" </string>
- <node_path name="tracks/1/path"> "Armature/Skeleton:r-forearm" </node_path>
- <int name="tracks/1/interp"> 1 </int>
- <real_array name="tracks/1/keys" len="120"> 0, 1, 3.27826e-07, -6.55651e-07, -4.17233e-07, 0.46904, -0.387773, 0.0221851, 0.793184, 1, 1, 1, 0.05, 1, -1.49012e-07, -8.34465e-07, -5.36442e-07, 0.467449, -0.38757, 0.0209387, 0.794256, 1, 0.999999, 1, 0.15, 1, 8.9407e-08, -8.34465e-07, -2.38419e-07, 0.457674, -0.38779, 0.0142454, 0.799969, 1, 1, 1, 0.2, 1, -1.19209e-07, -9.53674e-07, -5.96046e-07, 0.453414, -0.391376, 0.0115749, 0.800692, 1, 1, 1, 0.25, 1, -2.98023e-08, -8.64267e-07, -5.96046e-07, 0.455951, -0.392917, 0.0127032, 0.798476, 1, 1, 1, 0.3, 1, -2.68221e-07, -5.96046e-07, -3.57628e-07, 0.461696, -0.389009, 0.0167183, 0.797013, 1, 1, 1, 0.35, 1, 5.96046e-08, -9.23872e-07, -5.96046e-07, 0.465445, -0.38698, 0.0198743, 0.795747, 1, 1, 1, 0.4, 1, 2.68221e-07, -8.64267e-07, -6.55651e-07, 0.4685, -0.387548, 0.0218417, 0.793623, 1, 1, 1, 0.45, 1, 3.27826e-07, -6.55651e-07, -4.17233e-07, 0.46904, -0.387773, 0.0221851, 0.793184, 1, 1, 1, 1.25, 1, 3.27826e-07, -6.55651e-07, -4.17233e-07, 0.46904, -0.387773, 0.0221851, 0.793184, 1, 1, 1 </real_array>
- <string name="tracks/2/type"> "transform" </string>
- <node_path name="tracks/2/path"> "Armature/Skeleton:l-arm" </node_path>
- <int name="tracks/2/interp"> 1 </int>
- <real_array name="tracks/2/keys" len="132"> 0, 1, -2.98023e-08, 1.19209e-07, -2.98023e-08, -0.326141, -0.23441, -0.185472, 0.896819, 1, 1, 1, 0.05, 1, -9.53674e-07, -4.76837e-07, 5.66244e-07, -0.309655, -0.239675, -0.179325, 0.902503, 1, 1, 1, 0.1, 1, -8.64267e-07, -4.76837e-07, 7.15256e-07, -0.27681, -0.251556, -0.166111, 0.912416, 1, 1, 1, 0.15, 1, -8.64267e-07, -3.57628e-07, 8.04663e-07, -0.254018, -0.264552, -0.15679, 0.917008, 1, 1, 1, 0.2, 1, -4.76837e-07, -3.57628e-07, 4.47035e-07, -0.251196, -0.272504, -0.156931, 0.915431, 1, 1, 1, 0.25, 1, -1.13249e-06, -7.15256e-07, 8.9407e-07, -0.279016, -0.258742, -0.169921, 0.909027, 1, 1, 1, 0.3, 1, -7.15256e-07, 1.19209e-07, 5.06639e-07, -0.316679, -0.238757, -0.183476, 0.89947, 1, 1, 1, 0.35, 1, -6.25849e-07, -1.19209e-07, 3.57628e-07, -0.327726, -0.235686, -0.18601, 0.895795, 1, 1, 1, 0.4, 1, -2.68221e-07, 0, 1.49012e-07, -0.326797, -0.234512, -0.185665, 0.896514, 1, 1, 1, 0.45, 1, -2.98023e-08, 1.19209e-07, -2.98023e-08, -0.326141, -0.23441, -0.185472, 0.896819, 1, 1, 1, 1.25, 1, -2.98023e-08, 1.19209e-07, -2.98023e-08, -0.326141, -0.23441, -0.185472, 0.896819, 1, 1, 1 </real_array>
- <string name="tracks/3/type"> "transform" </string>
- <node_path name="tracks/3/path"> "Armature/Skeleton:l-forearm" </node_path>
- <int name="tracks/3/interp"> 1 </int>
- <real_array name="tracks/3/keys" len="120"> 0, 1, -2.08616e-07, -1.54972e-06, -1.19209e-07, 0.47174, 0.366267, -0.0198596, 0.80182, 1, 1, 1, 0.05, 1, -2.98023e-08, -6.25849e-07, 0, 0.468656, 0.375596, -0.0166676, 0.799382, 1, 1, 1, 0.1, 1, -8.9407e-08, -2.68221e-07, -5.96046e-08, 0.459943, 0.392089, -0.0107327, 0.79662, 1, 1, 1, 0.15, 1, -2.08616e-07, -2.08616e-07, -2.38419e-07, 0.451048, 0.400355, -0.00696642, 0.797636, 1, 1, 1, 0.2, 1, -2.38419e-07, -7.7486e-07, 0, 0.448637, 0.398723, -0.00658308, 0.799813, 1, 1, 1, 0.3, 1, -5.96046e-08, -2.98023e-07, -4.17233e-07, 0.465357, 0.361793, -0.0151844, 0.807662, 1, 1, 1, 0.35, 1, -1.49012e-07, -5.36442e-07, -3.57628e-07, 0.468536, 0.360417, -0.0183993, 0.806372, 1, 1, 1, 0.4, 1, -5.96046e-08, -8.64267e-07, -1.78814e-07, 0.471244, 0.365087, -0.0196777, 0.802654, 1, 1, 1, 0.45, 1, -2.08616e-07, -1.54972e-06, -1.19209e-07, 0.47174, 0.366267, -0.0198596, 0.80182, 1, 1, 1, 1.25, 1, -2.08616e-07, -1.54972e-06, -1.19209e-07, 0.47174, 0.366267, -0.0198596, 0.80182, 1, 1, 1 </real_array>
- <string name="tracks/4/type"> "transform" </string>
- <node_path name="tracks/4/path"> "Armature/Skeleton:r-thigh" </node_path>
- <int name="tracks/4/interp"> 1 </int>
- <real_array name="tracks/4/keys" len="132"> 0, 1, 0, 7.45058e-09, -1.3411e-07, -0.0625169, 0.00920125, -0.00328561, 0.997996, 1, 1, 1, 0.05, 1, 5.96046e-08, 8.9407e-08, -6.10948e-07, -0.0877092, 0.00901381, -0.00306586, 0.996101, 1, 1, 1, 0.1, 1, 5.96046e-08, -2.23517e-08, -1.19209e-07, -0.138998, 0.00794913, -0.00288258, 0.990257, 1, 1, 1, 0.15, 1, 5.96046e-08, 1.49012e-08, -4.02331e-07, -0.178155, 0.00579277, -0.00296187, 0.983981, 1, 1, 1, 0.2, 1, 8.9407e-08, 0, 1.78814e-07, -0.18648, 0.0038127, -0.0029159, 0.982447, 1, 1, 1, 0.25, 1, 5.96046e-08, 5.21541e-08, -1.93715e-07, -0.189861, 0.00940162, -0.00299906, 0.981761, 1, 1, 1, 0.3, 1, 5.96046e-08, -5.96046e-08, 2.83122e-07, -0.170763, 0.015059, -0.00307746, 0.985192, 1, 1, 1, 0.35, 1, 0, -7.45058e-09, -1.3411e-07, -0.115285, 0.0123617, -0.00312517, 0.993251, 1, 1, 1, 0.4, 1, 0, 7.45058e-09, -1.3411e-07, -0.0713277, 0.00977016, -0.00325209, 0.9974, 1, 1, 1, 0.45, 1, 0, 7.45058e-09, -1.3411e-07, -0.0625169, 0.00920125, -0.00328561, 0.997996, 1, 1, 1, 1.25, 1, 0, 7.45058e-09, -1.3411e-07, -0.0625169, 0.00920125, -0.00328561, 0.997996, 1, 1, 1 </real_array>
- <string name="tracks/5/type"> "transform" </string>
- <node_path name="tracks/5/path"> "Armature/Skeleton:r-leg" </node_path>
- <int name="tracks/5/interp"> 1 </int>
- <real_array name="tracks/5/keys" len="120"> 0, 1, 4.42378e-08, -8.19564e-08, 1.78814e-07, -0.407694, 0.0277893, 0.000765211, 0.912696, 1, 1, 1, 0.05, 1, 1.89757e-08, -5.21541e-08, 6.55651e-07, -0.435809, 0.0297697, 0.000893482, 0.899546, 1, 1, 1, 0.1, 1, 1.42027e-08, 6.70552e-08, 7.15256e-07, -0.489147, 0.0339313, 0.00115069, 0.871541, 1, 1, 1, 0.15, 1, 1.13854e-07, 0, 5.96046e-07, -0.523927, 0.0370339, 0.00133512, 0.850957, 1, 1, 1, 0.2, 1, 1.29221e-07, -3.72529e-08, 4.17233e-07, -0.526448, 0.0372296, 0.00134975, 0.849391, 1, 1, 1, 0.25, 1, 1.6077e-07, -2.68221e-07, 4.76837e-07, -0.538369, 0.0372441, 0.00135905, 0.841885, 1, 1, 1, 0.3, 1, 6.17001e-09, -1.04308e-07, 7.15256e-07, -0.530237, 0.0358611, 0.00127618, 0.84709, 1, 1, 1, 0.4, 1, 2.08383e-08, -2.23517e-08, 4.17233e-07, -0.418447, 0.0284447, 0.00080823, 0.907795, 1, 1, 1, 0.45, 1, 4.42378e-08, -8.19564e-08, 1.78814e-07, -0.407694, 0.0277893, 0.000765211, 0.912696, 1, 1, 1, 1.25, 1, 4.42378e-08, -8.19564e-08, 1.78814e-07, -0.407694, 0.0277893, 0.000765211, 0.912696, 1, 1, 1 </real_array>
- <string name="tracks/6/type"> "transform" </string>
- <node_path name="tracks/6/path"> "Armature/Skeleton:r-foot" </node_path>
- <int name="tracks/6/interp"> 1 </int>
- <real_array name="tracks/6/keys" len="24"> 0, 1, 1.04308e-07, -1.19209e-07, 6.70552e-08, -1.11759e-08, 1.16415e-09, 7.45058e-09, 1, 1, 1, 1, 1.25, 1, 1.04308e-07, -1.19209e-07, 6.70552e-08, -1.11759e-08, 1.16415e-09, 7.45058e-09, 1, 1, 1, 1 </real_array>
- <string name="tracks/7/type"> "transform" </string>
- <node_path name="tracks/7/path"> "Armature/Skeleton:l-thigh" </node_path>
- <int name="tracks/7/interp"> 1 </int>
- <real_array name="tracks/7/keys" len="120"> 0, 1, -2.98023e-08, 1.49012e-08, 1.19209e-07, -0.630421, -0.0882657, 0.00990556, 0.771155, 1, 1, 1, 0.05, 1, 8.9407e-08, 9.68575e-08, -2.38419e-07, -0.641086, -0.0918399, 0.00914405, 0.7619, 1, 1, 1, 0.15, 1, 5.96046e-08, 2.23517e-08, -1.3411e-07, -0.695929, -0.109196, 0.0054072, 0.70974, 1, 1, 1, 0.2, 1, 0, 7.45058e-09, 4.61936e-07, -0.716484, -0.115048, 0.00471066, 0.688035, 0.999999, 1, 1, 0.25, 1, 2.98023e-08, 5.21541e-08, 7.45058e-08, -0.742062, -0.116709, 0.0109015, 0.660003, 1, 1, 1, 0.3, 1, -5.96046e-08, -6.70552e-08, 5.51343e-07, -0.738131, -0.110711, 0.0165993, 0.665304, 0.999999, 1, 1, 0.35, 1, -2.98023e-08, -1.49012e-08, 1.19209e-07, -0.683291, -0.098194, 0.0131016, 0.723395, 1, 1, 1, 0.4, 1, -2.98023e-08, 1.49012e-08, 1.19209e-07, -0.638973, -0.0897534, 0.0103931, 0.763904, 1, 1, 1, 0.45, 1, -2.98023e-08, 1.49012e-08, 1.19209e-07, -0.630421, -0.0882657, 0.00990556, 0.771155, 1, 1, 1, 1.25, 1, -2.98023e-08, 1.49012e-08, 1.19209e-07, -0.630421, -0.0882657, 0.00990556, 0.771155, 1, 1, 1 </real_array>
- <string name="tracks/8/type"> "transform" </string>
- <node_path name="tracks/8/path"> "Armature/Skeleton:l-leg" </node_path>
- <int name="tracks/8/interp"> 1 </int>
- <real_array name="tracks/8/keys" len="120"> 0, 1, 4.48199e-08, -1.11759e-07, 1.78814e-07, -0.822993, -0.106344, -0.00540277, 0.557982, 1, 1, 1, 0.05, 1, 4.30737e-09, -2.08616e-07, -1.19209e-07, -0.827005, -0.107477, -0.00546779, 0.551799, 1, 1, 1, 0.1, 1, 8.84756e-09, -1.19209e-07, 1.19209e-07, -0.836608, -0.110063, -0.00562015, 0.536601, 1, 1, 1, 0.2, 1, -2.91038e-08, 1.19209e-07, 0, -0.857806, -0.115929, -0.00596456, 0.500693, 1, 1, 1, 0.25, 1, 7.33417e-09, 0, 5.96046e-08, 0.876669, 0.123709, 0.00633999, -0.464874, 1, 1, 1, 0.3, 1, -4.38886e-08, -1.3411e-07, -1.19209e-07, 0.881066, 0.125876, 0.00641456, -0.455891, 1, 1, 1, 0.35, 1, 9.66247e-09, 0, -5.96046e-08, -0.853515, -0.11545, -0.00587343, 0.508083, 1, 1, 1, 0.4, 1, 2.17697e-08, -3.72529e-08, 5.96046e-08, -0.828218, -0.107764, -0.00547631, 0.549921, 1, 1, 1, 0.45, 1, 4.48199e-08, -1.11759e-07, 1.78814e-07, -0.822993, -0.106344, -0.00540277, 0.557982, 1, 1, 1, 1.25, 1, 4.48199e-08, -1.11759e-07, 1.78814e-07, -0.822993, -0.106344, -0.00540277, 0.557982, 1, 1, 1 </real_array>
- <string name="tracks/9/type"> "transform" </string>
- <node_path name="tracks/9/path"> "Armature/Skeleton:l-foot" </node_path>
- <int name="tracks/9/interp"> 1 </int>
- <real_array name="tracks/9/keys" len="24"> 0, 1, 7.45058e-09, -2.38419e-07, -8.19564e-08, -1.86265e-08, -1.28057e-09, 3.72529e-09, 1, 1, 1, 1, 1.25, 1, 7.45058e-09, -2.38419e-07, -8.19564e-08, -1.86265e-08, -1.28057e-09, 3.72529e-09, 1, 1, 1, 1 </real_array>
- <string name="tracks/10/type"> "transform" </string>
- <node_path name="tracks/10/path"> "Armature/Skeleton:MASTER" </node_path>
- <int name="tracks/10/interp"> 1 </int>
- <real_array name="tracks/10/keys" len="24"> 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/11/type"> "transform" </string>
- <node_path name="tracks/11/path"> "Armature/Skeleton:HEAD" </node_path>
- <int name="tracks/11/interp"> 1 </int>
- <real_array name="tracks/11/keys" len="108"> 0, 1, -5.68434e-14, 0, 2.81136, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -5.68434e-14, 0, 2.88275, 0, 0, 0, 1, 1, 1, 1, 0.15, 1, 5.68434e-14, 4.76837e-07, 3.22584, 0, 0, 0, 1, 1, 1, 1, 0.2, 1, 5.68434e-14, 4.76837e-07, 3.31311, 0, 0, -7.10543e-15, 1, 1, 1, 1, 0.25, 1, 5.68434e-14, 4.76837e-07, 3.27685, 0, 0, 0, 1, 1, 1, 1, 0.35, 1, -5.68434e-14, 0, 2.93405, 0, 0, -7.10543e-15, 1, 1, 1, 1, 0.4, 1, -5.68434e-14, 0, 2.82965, 0, 0, 0, 1, 1, 1, 1, 0.45, 1, -5.68434e-14, 0, 2.81136, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -5.68434e-14, 0, 2.81136, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/12/type"> "transform" </string>
- <node_path name="tracks/12/path"> "Armature/Skeleton:r-LEGCONTROL" </node_path>
- <int name="tracks/12/interp"> 1 </int>
- <real_array name="tracks/12/keys" len="120"> 0, 1, -5.96046e-08, 0.623878, 0.831837, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -5.96046e-08, 0.623878, 0.85661, 0, 0, 0, 1, 1, 1, 1, 0.1, 1, -5.96046e-08, 0.623878, 0.907642, 0, 0, 0, 1, 1, 1, 1, 0.15, 1, -5.96046e-08, 0.623878, 0.942906, 0, 0, 0, 1, 1, 1, 1, 0.2, 1, -5.96046e-08, 0.623878, 0.943599, 0, 0, 0, 1, 1, 1, 1, 0.25, 1, -5.96046e-08, 0.623878, 0.921011, 0, 0, 0, 1, 1, 1, 1, 0.35, 1, -5.96046e-08, 0.623878, 0.851786, 0, 0, 0, 1, 1, 1, 1, 0.4, 1, -5.96046e-08, 0.623878, 0.834743, 0, 0, 0, 1, 1, 1, 1, 0.45, 1, -5.96046e-08, 0.623878, 0.831837, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -5.96046e-08, 0.623878, 0.831837, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/13/type"> "transform" </string>
- <node_path name="tracks/13/path"> "Armature/Skeleton:l-LEGCONTROL" </node_path>
- <int name="tracks/13/interp"> 1 </int>
- <real_array name="tracks/13/keys" len="132"> 0, 1, -1.19209e-07, 1.00668e-07, 1.33339, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -1.19209e-07, 1.01535e-07, 1.34488, 0, 0, 0, 1, 1, 1, 1, 0.1, 1, -1.19209e-07, 1.0373e-07, 1.37395, 0, 0, 0, 1, 1, 1, 1, 0.15, 1, -1.19209e-07, 1.06482e-07, 1.41041, 0, 0, 0, 1, 1, 1, 1, 0.2, 1, -1.19209e-07, 1.08677e-07, 1.43947, 0, 0, 0, 1, 1, 1, 1, 0.25, 1, -1.19209e-07, 1.09544e-07, 1.45096, 0, 0, 0, 1, 1, 1, 1, 0.3, 1, -1.19209e-07, 1.07675e-07, 1.4262, 0, 0, 0, 1, 1, 1, 1, 0.35, 1, -1.19209e-07, 1.03822e-07, 1.37517, 0, 0, 0, 1, 1, 1, 1, 0.4, 1, -1.19209e-07, 1.01159e-07, 1.33989, 0, 0, 0, 1, 1, 1, 1, 0.45, 1, -1.19209e-07, 1.00668e-07, 1.33339, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -1.19209e-07, 1.00668e-07, 1.33339, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/14/type"> "transform" </string>
- <node_path name="tracks/14/path"> "Armature/Skeleton:r-LEGORIENT" </node_path>
- <int name="tracks/14/interp"> 1 </int>
- <real_array name="tracks/14/keys" len="24"> 0, 1, -2.98023e-08, 1.19209e-07, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -2.98023e-08, 1.19209e-07, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/15/type"> "transform" </string>
- <node_path name="tracks/15/path"> "Armature/Skeleton:l-LEGORIENT" </node_path>
- <int name="tracks/15/interp"> 1 </int>
- <real_array name="tracks/15/keys" len="24"> 0, 1, 2.98023e-08, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 2.98023e-08, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/16/type"> "transform" </string>
- <node_path name="tracks/16/path"> "Armature/Skeleton:r-ARMCONTROL" </node_path>
- <int name="tracks/16/interp"> 1 </int>
- <real_array name="tracks/16/keys" len="132"> 0, 1, -1.39671, 2.72686, 1.19541, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -1.39671, 2.70532, 1.19971, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, -1.39671, 2.65088, 1.2106, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.15, 1, -1.39671, 2.5826, 1.22425, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.2, 1, -1.39671, 2.52819, 1.23514, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.25, 1, -1.39671, 2.50668, 1.23944, 0, 0, 0, 1, 1, 1, 1, 0.3, 1, -1.39671, 2.55303, 1.23017, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.35, 1, -1.39671, 2.64856, 1.21105, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.4, 1, -1.39671, 2.71466, 1.19784, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.45, 1, -1.39671, 2.72686, 1.19541, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -1.39671, 2.72686, 1.19541, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/17/type"> "transform" </string>
- <node_path name="tracks/17/path"> "Armature/Skeleton:l-ARMCONTROL" </node_path>
- <int name="tracks/17/interp"> 1 </int>
- <real_array name="tracks/17/keys" len="120"> 0, 1, 1.27388, 2.72686, 1.19541, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 1.27388, 2.68042, 1.20468, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, 1.27388, 2.58486, 1.2238, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.15, 1, 1.27388, 2.51885, 1.23701, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.2, 1, 1.27388, 2.51756, 1.23727, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.25, 1, 1.27388, 2.55985, 1.22881, 0, 0, 0, 1, 1, 1, 1, 0.35, 1, 1.27388, 2.68948, 1.20288, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.4, 1, 1.27388, 2.72141, 1.19649, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.45, 1, 1.27388, 2.72686, 1.19541, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 1.27388, 2.72686, 1.19541, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/18/type"> "transform" </string>
- <node_path name="tracks/18/path"> "Armature/Skeleton:r-ARMORIENT" </node_path>
- <int name="tracks/18/interp"> 1 </int>
- <real_array name="tracks/18/keys" len="24"> 0, 1, 0.59069, -0.00390959, 0.736489, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.59069, -0.00390959, 0.736489, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/19/type"> "transform" </string>
- <node_path name="tracks/19/path"> "Armature/Skeleton:l-ARMORIENT" </node_path>
- <int name="tracks/19/interp"> 1 </int>
- <real_array name="tracks/19/keys" len="24"> 0, 1, -0.59069, -0.00390959, 0.736489, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.59069, -0.00390959, 0.736489, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/20/type"> "transform" </string>
- <node_path name="tracks/20/path"> "Armature/Skeleton:hip" </node_path>
- <int name="tracks/20/interp"> 1 </int>
- <real_array name="tracks/20/keys" len="120"> 0, 1, -9.25123e-16, 1.16368e-07, -0.513782, -0.068257, 1.03065e-08, 8.40178e-15, 0.997668, 1, 1, 1, 0.05, 1, -0.00604435, -0.0171726, -0.516875, -0.068257, 1.03065e-08, 1.59689e-14, 0.997668, 1, 1, 1, 0.15, 1, -0.0352723, -0.100186, -0.531832, -0.068257, 1.03065e-08, 8.79127e-15, 0.997668, 1, 1, 1, 0.2, 1, -0.0427212, -0.121339, -0.535645, -0.068257, 1.03065e-08, 1.59689e-14, 0.997668, 1, 1, 1, 0.25, 1, -0.0251165, -0.102747, -0.494262, -0.068257, 1.03065e-08, 8.40178e-15, 0.997668, 1, 1, 1, 0.3, 1, -0.00387635, -0.0612733, -0.455449, -0.068257, 1.03065e-08, 8.79127e-15, 0.997668, 1, 1, 1, 0.35, 1, -0.000906605, -0.0266833, -0.479965, -0.068257, 1.03065e-08, 1.59689e-14, 0.997668, 1, 1, 1, 0.4, 1, -5.88306e-05, -0.00401501, -0.507859, -0.068257, 1.03065e-08, 8.79127e-15, 0.997668, 1, 1, 1, 0.45, 1, -9.25123e-16, 1.16368e-07, -0.513782, -0.068257, 1.03065e-08, 8.40178e-15, 0.997668, 1, 1, 1, 1.25, 1, -9.25123e-16, 1.16368e-07, -0.513782, -0.068257, 1.03065e-08, 8.40178e-15, 0.997668, 1, 1, 1 </real_array>
- <string name="tracks/21/type"> "transform" </string>
- <node_path name="tracks/21/path"> "Armature/Skeleton:waist" </node_path>
- <int name="tracks/21/interp"> 1 </int>
- <real_array name="tracks/21/keys" len="108"> 0, 1, -5.25618e-15, 1.49011e-08, -1.49012e-07, 0.0904093, -6.07213e-16, 7.18977e-15, 0.995905, 1, 1, 1, 0.05, 1, -2.67973e-10, 2.32644e-08, -5.96046e-08, 0.0920949, -3.47794e-16, 7.16792e-15, 0.99575, 1, 1, 1, 0.15, 1, 2.52298e-09, 2.61876e-08, -2.98023e-08, 0.100243, -1.17281e-15, 7.25956e-15, 0.994963, 1, 1, 1, 0.2, 1, -5.62989e-10, 3.32728e-08, -1.49012e-07, 0.102318, -1.15767e-15, 7.26199e-15, 0.994752, 1, 1, 1, 0.25, 1, -1.24048e-09, 3.35948e-08, -8.9407e-08, 0.101456, -6.3375e-16, 7.20691e-15, 0.99484, 1, 1, 1, 0.35, 1, 8.229e-13, 2.99392e-08, -1.49012e-07, 0.0933096, -3.39049e-16, 7.16834e-15, 0.995637, 1, 1, 1, 0.4, 1, -3.31995e-12, 2.53408e-08, -1.49012e-07, 0.0908406, -1.44454e-15, 1.31767e-16, 0.995865, 1, 1, 1, 0.45, 1, -5.25618e-15, 1.49011e-08, -1.49012e-07, 0.0904093, -6.07213e-16, 7.18977e-15, 0.995905, 1, 1, 1, 1.25, 1, -5.25618e-15, 1.49011e-08, -1.49012e-07, 0.0904093, -6.07213e-16, 7.18977e-15, 0.995905, 1, 1, 1 </real_array>
- <string name="tracks/22/type"> "transform" </string>
- <node_path name="tracks/22/path"> "Armature/Skeleton:chest" </node_path>
- <int name="tracks/22/interp"> 1 </int>
- <real_array name="tracks/22/keys" len="108"> 0, 1, -1.31025e-21, 7.45058e-09, -1.78814e-07, 0.0570428, -7.52314e-16, -1.03276e-15, 0.998372, 1, 1, 1, 0.05, 1, -6.93196e-14, 7.45058e-09, 0, 0.0590419, -0.00284152, 0.000283556, 0.998251, 1, 1, 1, 0.15, 1, 7.44988e-10, -3.72529e-09, 0, 0.0686997, -0.0165823, 0.00165476, 0.997498, 1, 1, 1, 0.2, 1, -7.04617e-14, -7.45058e-09, -5.96046e-08, 0.0711578, -0.0200834, 0.00200414, 0.997261, 1, 1, 1, 0.25, 1, -6.96491e-14, -3.72529e-09, -5.96046e-08, 0.0701373, -0.0186297, 0.00185908, 0.997362, 1, 1, 1, 0.35, 1, 6.97804e-11, 7.45058e-09, -1.78814e-07, 0.0604823, -0.00488944, 0.000487919, 0.998157, 1, 1, 1, 0.4, 1, -2.75782e-14, 1.11759e-08, -2.38419e-07, 0.0575543, -0.000727023, 7.25494e-05, 0.998342, 1, 1, 1, 0.45, 1, -1.31025e-21, 7.45058e-09, -1.78814e-07, 0.0570428, -7.52314e-16, -1.03276e-15, 0.998372, 1, 1, 1, 1.25, 1, -1.31025e-21, 7.45058e-09, -1.78814e-07, 0.0570428, -7.52314e-16, -1.03276e-15, 0.998372, 1, 1, 1 </real_array>
- <string name="tracks/23/type"> "transform" </string>
- <node_path name="tracks/23/path"> "Armature/Skeleton:neck" </node_path>
- <int name="tracks/23/interp"> 1 </int>
- <real_array name="tracks/23/keys" len="24"> 0, 1, -8.52651e-14, -4.47035e-08, -4.76837e-07, -7.45058e-09, 2.13163e-14, -1.77636e-15, 1, 1, 1, 1, 1.25, 1, -8.52651e-14, -4.47035e-08, -4.76837e-07, -7.45058e-09, 2.13163e-14, -1.77636e-15, 1, 1, 1, 1 </real_array>
- <string name="tracks/24/type"> "transform" </string>
- <node_path name="tracks/24/path"> "Armature/Skeleton:headtracker" </node_path>
- <int name="tracks/24/interp"> 1 </int>
- <real_array name="tracks/24/keys" len="120"> 0, 1, 1.77636e-14, -4.17233e-07, -3.53903e-08, -0.197724, -1.34662e-08, 4.54456e-08, 0.980258, 1, 1, 1, 0.05, 1, -1.95943e-09, -5.06639e-07, -6.40284e-08, -0.199636, 0.000196518, -0.00285815, 0.979866, 1, 1, 1, 0.15, 1, -2.19083e-08, -2.38419e-07, -5.75092e-08, -0.207914, 0.00144056, -0.0167025, 0.978003, 1, 1, 1, 0.2, 1, 6.08469e-09, -3.8743e-07, -6.33299e-08, -0.209803, 0.00183038, -0.0202351, 0.977533, 1, 1, 1, 0.25, 1, -4.45088e-08, -8.64267e-07, -5.21541e-08, -0.20649, 0.000358444, -0.0190238, 0.978264, 1, 1, 1, 0.3, 1, 7.56265e-09, -8.34465e-07, -4.84288e-08, -0.200537, -0.000986884, -0.0126263, 0.979604, 1, 1, 1, 0.35, 1, 3.42126e-11, -4.17233e-07, -2.37487e-08, -0.198104, -0.000490507, -0.00505109, 0.980168, 1, 1, 1, 0.4, 1, 3.9655e-10, -3.57628e-07, -3.05008e-08, -0.197722, -8.26043e-05, -0.000750033, 0.980258, 1, 1, 1, 0.45, 1, 1.77636e-14, -4.17233e-07, -3.53903e-08, -0.197724, -1.34662e-08, 4.54456e-08, 0.980258, 1, 1, 1, 1.25, 1, 1.77636e-14, -4.17233e-07, -3.53903e-08, -0.197724, -1.34662e-08, 4.54456e-08, 0.980258, 1, 1, 1 </real_array>
- <string name="tracks/25/type"> "transform" </string>
- <node_path name="tracks/25/path"> "Armature/Skeleton:head" </node_path>
- <int name="tracks/25/interp"> 1 </int>
- <real_array name="tracks/25/keys" len="24"> 0, 1, 2.81164e-14, 2.468e-08, 3.32249e-07, 2.23517e-08, -5.32907e-15, 7.10543e-15, 1, 1, 1, 1, 1.25, 1, 2.81164e-14, 2.468e-08, 3.32249e-07, 2.23517e-08, -5.32907e-15, 7.10543e-15, 1, 1, 1, 1 </real_array>
- <string name="tracks/26/type"> "transform" </string>
- <node_path name="tracks/26/path"> "Armature/Skeleton:vent" </node_path>
- <int name="tracks/26/interp"> 1 </int>
- <real_array name="tracks/26/keys" len="24"> 0, 1, 7.99361e-14, 1.49012e-07, -8.34465e-07, 2.43308e-08, 6.21725e-15, -8.59209e-15, 1, 1, 1, 1, 1.25, 1, 7.99361e-14, 1.49012e-07, -8.34465e-07, 2.43308e-08, 6.21725e-15, -8.59209e-15, 1, 1, 1, 1 </real_array>
-
- </resource>
- <resource type="Animation" path="local://12">
- <string name="resource/name"> "walk-cycle" </string>
- <real name="length"> 1.041667 </real>
- <bool name="loop"> True </bool>
- <real name="step"> 0.1 </real>
- <string name="tracks/0/type"> "transform" </string>
- <node_path name="tracks/0/path"> "Armature/Skeleton:r-arm" </node_path>
- <int name="tracks/0/interp"> 1 </int>
- <real_array name="tracks/0/keys" len="228"> 0, 1, 7.7486e-07, -3.57628e-07, 5.66244e-07, 0.132777, -0.115851, -0.0857195, 0.980613, 1, 1, 1, 0.05, 1, 4.17233e-07, 1.19209e-07, 3.27826e-07, 0.136218, -0.113975, -0.0877542, 0.980181, 1, 1, 1, 0.1, 1, 5.06639e-07, -2.38419e-07, 2.98023e-07, 0.144837, -0.108331, -0.0933223, 0.97907, 1, 1, 1, 0.15, 1, 5.36442e-07, -3.57628e-07, 3.57628e-07, 0.15539, -0.0990044, -0.102617, 0.977508, 1, 0.999999, 1, 0.2, 1, 7.15256e-07, -3.57628e-07, 4.47035e-07, 0.162073, -0.0835771, -0.115431, 0.976434, 1, 1, 1, 0.25, 1, 6.25849e-07, -3.57628e-07, 4.17233e-07, 0.160674, -0.0537521, -0.128708, 0.977102, 1, 1, 1, 0.3, 1, 6.85453e-07, -3.57628e-07, 2.98023e-07, 0.144844, 0.00232148, -0.137246, 0.979887, 1, 1, 1, 0.45, 1, 9.53674e-07, -7.15256e-07, 6.85453e-07, 0.0267683, 0.215793, -0.138386, 0.966212, 1, 1, 1, 0.5, 1, 7.7486e-07, -3.57628e-07, 4.17233e-07, -0.00441569, 0.255036, -0.137846, 0.957045, 1, 1, 1, 0.55, 1, 8.34465e-07, -5.96046e-07, 5.36442e-07, -0.00986276, 0.263176, -0.137756, 0.954811, 1, 1, 1, 0.6, 1, 4.76837e-07, 0, 3.8743e-07, 0.0174093, 0.245944, -0.13741, 0.959337, 1, 1, 1, 0.7, 1, 3.27826e-07, -1.19209e-07, 2.68221e-07, 0.12402, 0.181155, -0.127036, 0.967297, 1, 1, 1, 0.75, 1, 7.45058e-07, 0, 4.47035e-07, 0.157369, 0.166922, -0.11544, 0.96646, 1, 1, 1, 0.8, 1, 8.34465e-07, -1.19209e-07, 4.47035e-07, 0.166665, 0.143487, -0.108193, 0.969499, 1, 1, 1, 0.85, 1, 2.98023e-07, 0, 1.49012e-07, 0.164004, 0.0866041, -0.105149, 0.977009, 1, 0.999999, 1, 0.95, 1, 4.76837e-07, 0, 2.38419e-07, 0.144168, -0.0621538, -0.0938402, 0.983131, 1, 1, 1, 1, 1, 8.64267e-07, -4.76837e-07, 6.85453e-07, 0.135099, -0.105557, -0.0876091, 0.98129, 1, 1, 1, 1.05, 1, 7.7486e-07, -3.57628e-07, 5.66244e-07, 0.132777, -0.115851, -0.0857195, 0.980613, 1, 1, 1, 1.25, 1, 7.7486e-07, -3.57628e-07, 5.66244e-07, 0.132777, -0.115851, -0.0857195, 0.980613, 1, 1, 1 </real_array>
- <string name="tracks/1/type"> "transform" </string>
- <node_path name="tracks/1/path"> "Armature/Skeleton:r-forearm" </node_path>
- <int name="tracks/1/interp"> 1 </int>
- <real_array name="tracks/1/keys" len="228"> 0, 1, 7.45058e-07, -8.04663e-07, -8.34465e-07, -0.0607703, -0.240987, 0.00892511, 0.968583, 1, 1, 1, 0.05, 1, -2.98023e-07, -3.57628e-07, 1.78814e-07, -0.0608664, -0.247441, 0.00903588, 0.966947, 1, 0.999999, 1, 0.1, 1, -1.78814e-07, -7.45058e-07, -1.19209e-07, -0.0607357, -0.265635, 0.00908754, 0.962116, 1, 1, 1, 0.15, 1, 4.17233e-07, -8.64267e-07, -4.17233e-07, -0.0586521, -0.298966, 0.00880687, 0.952419, 1, 1, 1, 0.25, 1, 3.8743e-07, -5.96046e-07, -2.98023e-07, -0.0404347, -0.402042, 0.00443354, 0.914717, 1, 1, 1, 0.3, 1, -2.98023e-08, -6.85453e-07, -2.38419e-07, -0.0222657, -0.438743, -0.00390802, 0.898328, 1, 1, 1, 0.35, 1, -3.27826e-07, -2.68221e-07, -1.78814e-07, -0.001747, -0.450439, -0.0151044, 0.892678, 1, 0.999999, 1, 0.4, 1, -2.98023e-08, -3.57628e-07, -4.76837e-07, 0.0165229, -0.440184, -0.0247739, 0.897414, 1, 1, 1, 0.5, 1, 2.98023e-08, -3.27826e-07, 0, 0.0357718, -0.396841, -0.0343986, 0.916545, 1, 1, 1, 0.55, 1, 1.49012e-07, -6.25849e-07, -1.78814e-07, 0.0355214, -0.39013, -0.0350975, 0.919405, 1, 1, 1, 0.6, 1, 1.78814e-07, -5.06639e-07, -5.36442e-07, 0.01977, -0.384514, -0.0345495, 0.92226, 1, 1, 1, 0.65, 1, -1.19209e-07, -4.17233e-07, -2.38419e-07, -0.0162325, -0.357154, -0.033198, 0.933314, 1, 0.999999, 1, 0.75, 1, -2.98023e-08, -3.57628e-07, -2.98023e-07, -0.0986698, -0.203446, -0.0321126, 0.973572, 1, 0.999999, 1, 0.8, 1, 5.96046e-08, -7.45058e-07, -2.38419e-07, -0.110421, -0.161891, -0.0281555, 0.980207, 1, 1, 1, 0.85, 1, 4.76837e-07, -8.04663e-07, -8.34465e-07, -0.104832, -0.172931, -0.0183971, 0.979166, 1, 0.999999, 1, 0.95, 1, 0, -6.55651e-07, -5.96046e-07, -0.0743493, -0.227469, 0.00271093, 0.970939, 1, 1, 1, 1, 1, -2.98023e-08, -3.57628e-07, -2.38419e-07, -0.0636988, -0.238854, 0.00790001, 0.968932, 1, 1, 1, 1.05, 1, 7.45058e-07, -8.04663e-07, -8.34465e-07, -0.0607703, -0.240987, 0.00892511, 0.968583, 1, 1, 1, 1.25, 1, 7.45058e-07, -8.04663e-07, -8.34465e-07, -0.0607703, -0.240987, 0.00892511, 0.968583, 1, 1, 1 </real_array>
- <string name="tracks/2/type"> "transform" </string>
- <node_path name="tracks/2/path"> "Armature/Skeleton:l-arm" </node_path>
- <int name="tracks/2/interp"> 1 </int>
- <real_array name="tracks/2/keys" len="216"> 0, 1, -7.45058e-07, -4.76837e-07, 4.47035e-07, -0.0127337, -0.264935, 0.137763, 0.954289, 1, 1, 1, 0.05, 1, -3.8743e-07, 0, 2.38419e-07, 0.0104992, -0.248758, 0.137429, 0.958709, 1, 1, 1, 0.15, 1, -5.66244e-07, -1.19209e-07, 4.47035e-07, 0.119317, -0.176495, 0.127478, 0.968691, 1, 1, 1, 0.2, 1, -5.06639e-07, -1.19209e-07, 3.27826e-07, 0.156208, -0.160784, 0.115735, 0.967653, 1, 1, 1, 0.25, 1, -4.17233e-07, -1.19209e-07, 2.68221e-07, 0.170588, -0.146234, 0.10696, 0.968543, 1, 0.999999, 1, 0.3, 1, -8.34465e-07, -3.57628e-07, 8.9407e-07, 0.16899, -0.106962, 0.104274, 0.974232, 1, 1, 1, 0.45, 1, -9.23872e-07, -5.96046e-07, 7.7486e-07, 0.141826, 0.058077, 0.0901382, 0.984067, 1, 1, 1, 0.5, 1, -7.7486e-07, -5.96046e-07, 2.98023e-07, 0.134623, 0.0959315, 0.0862667, 0.982462, 1, 1, 1, 0.55, 1, -7.45058e-07, -3.57628e-07, 6.25849e-07, 0.133233, 0.11842, 0.0861958, 0.980202, 1, 1, 1, 0.6, 1, -4.76837e-07, 0, 4.47035e-07, 0.137596, 0.131505, 0.0903706, 0.977551, 1, 1, 1, 0.65, 1, -6.55651e-07, -3.57628e-07, 5.36442e-07, 0.146837, 0.135484, 0.0990691, 0.974817, 1, 1, 1, 0.7, 1, -5.96046e-07, -3.57628e-07, 6.25849e-07, 0.15676, 0.127354, 0.111789, 0.972991, 1, 1, 1, 0.75, 1, -4.17233e-07, 0, 3.8743e-07, 0.161767, 0.101349, 0.126219, 0.973462, 1, 1, 1, 0.8, 1, -6.85453e-07, -3.57628e-07, 5.06639e-07, 0.154473, 0.0449621, 0.136756, 0.977453, 1, 1, 1, 0.95, 1, -6.55651e-07, -2.38419e-07, 4.76837e-07, 0.0363447, -0.203514, 0.138296, 0.968574, 1, 1, 1, 1, 1, -5.96046e-07, -3.57628e-07, 3.57628e-07, -0.00218869, -0.252498, 0.137778, 0.957735, 1, 1, 1, 1.05, 1, -7.45058e-07, -4.76837e-07, 4.47035e-07, -0.0127337, -0.264935, 0.137763, 0.954289, 1, 1, 1, 1.25, 1, -7.45058e-07, -4.76837e-07, 4.47035e-07, -0.0127337, -0.264935, 0.137763, 0.954289, 1, 1, 1 </real_array>
- <string name="tracks/3/type"> "transform" </string>
- <node_path name="tracks/3/path"> "Armature/Skeleton:l-forearm" </node_path>
- <int name="tracks/3/interp"> 1 </int>
- <real_array name="tracks/3/keys" len="192"> 0, 1, 3.57628e-07, -5.96046e-07, -3.57628e-07, 0.0370915, 0.39046, 0.0351404, 0.919201, 1, 1, 1, 0.05, 1, -1.49012e-07, -5.96046e-07, -2.38419e-07, 0.0247868, 0.388139, 0.0345456, 0.92062, 1, 1, 1, 0.1, 1, -3.57628e-07, -5.66244e-07, -4.76837e-07, -0.00839952, 0.367653, 0.0329431, 0.929342, 1, 1, 1, 0.15, 1, -1.78814e-07, -5.66244e-07, -7.7486e-07, -0.0538019, 0.307417, 0.0309853, 0.949547, 1, 1, 1, 0.2, 1, 0, -3.8743e-07, -4.17233e-07, -0.0934157, 0.21941, 0.0316565, 0.970634, 1, 1, 1, 0.25, 1, -1.49012e-07, -7.7486e-07, -3.57628e-07, -0.112029, 0.160435, 0.0303507, 0.980198, 1, 1, 1, 0.3, 1, 1.19209e-07, -7.15256e-07, -2.38419e-07, -0.111906, 0.1565, 0.0231637, 0.981045, 1, 1, 1, 0.35, 1, 2.68221e-07, -5.06639e-07, -2.38419e-07, -0.104709, 0.167819, 0.0144275, 0.980135, 1, 1, 1, 0.6, 1, 2.38419e-07, -3.57628e-07, -2.98023e-07, -0.0540049, 0.274564, -0.0119163, 0.959977, 1, 1, 1, 0.65, 1, 2.68221e-07, -2.68221e-07, 5.96046e-08, -0.0496356, 0.312827, -0.0136146, 0.948415, 1, 1, 1, 0.8, 1, 1.78814e-07, -3.8743e-07, -2.38419e-07, -0.0228587, 0.449632, -0.00310725, 0.892916, 1, 1, 1, 0.85, 1, -2.08616e-07, -6.25849e-07, -5.36442e-07, -0.00418434, 0.463526, 0.00969348, 0.886021, 1, 1, 1, 0.9, 1, -2.68221e-07, -6.85453e-07, -1.19209e-07, 0.0143603, 0.452468, 0.0218435, 0.891397, 1, 1, 1, 1, 1, 8.9407e-08, -5.96046e-07, -5.36442e-07, 0.0356796, 0.398885, 0.0342096, 0.915668, 1, 1, 1, 1.05, 1, 3.57628e-07, -5.96046e-07, -3.57628e-07, 0.0370915, 0.39046, 0.0351404, 0.919201, 1, 1, 1, 1.25, 1, 3.57628e-07, -5.96046e-07, -3.57628e-07, 0.0370915, 0.39046, 0.0351404, 0.919201, 1, 1, 1 </real_array>
- <string name="tracks/4/type"> "transform" </string>
- <node_path name="tracks/4/path"> "Armature/Skeleton:r-thigh" </node_path>
- <int name="tracks/4/interp"> 1 </int>
- <real_array name="tracks/4/keys" len="180"> 0, 1, -5.96046e-08, 7.45058e-09, -1.3411e-07, -0.47466, -0.0131527, -0.012987, 0.879975, 1, 1, 1, 0.05, 1, 2.98023e-08, 2.23517e-08, -2.23517e-07, -0.410091, -0.00379406, -0.0158917, 0.911898, 1, 1, 1, 0.25, 1, -1.19209e-07, 1.11759e-07, -5.21541e-07, 0.0997313, 0.0337367, -0.0261638, 0.994098, 1, 1, 1, 0.3, 1, 8.9407e-08, 4.47035e-08, -4.02331e-07, 0.122513, 0.0214196, -0.0200121, 0.992034, 1, 1, 1, 0.45, 1, 1.19209e-07, 7.45058e-09, -3.27826e-07, 0.229705, -0.0511077, 0.00301582, 0.971913, 1, 1, 1, 0.5, 1, 0, 3.72529e-08, -3.72529e-07, 0.236488, -0.0697987, 0.00859063, 0.969086, 1, 1, 1, 0.55, 1, 0, 2.98023e-08, -2.5332e-07, 0.206064, -0.0732532, 0.0100766, 0.975741, 1, 1, 1, 0.6, 1, -2.98023e-08, 4.47035e-08, -2.68221e-07, 0.118009, -0.0599028, 0.00750554, 0.991176, 1, 1, 1, 0.65, 1, -8.9407e-08, 2.23517e-08, -2.83122e-07, -0.0368129, -0.031384, 0.00214083, 0.998827, 1, 1, 1, 0.8, 1, -5.96046e-08, 2.23517e-08, -3.42727e-07, -0.634332, 0.0354032, -0.00990766, 0.772186, 1, 1, 1, 0.85, 1, 0, 2.23517e-08, -5.51343e-07, -0.746229, 0.0185993, -0.00698883, 0.665393, 1, 1, 1, 0.9, 1, 2.98023e-08, 1.49012e-08, -3.72529e-07, -0.740985, -0.00577112, -0.000829951, 0.671497, 1, 1, 1, 1, 1, 0, 2.98023e-08, -2.68221e-07, -0.523042, -0.0161244, -0.00986391, 0.852097, 1, 1, 1, 1.05, 1, -5.96046e-08, 7.45058e-09, -1.3411e-07, -0.47466, -0.0131527, -0.012987, 0.879975, 1, 1, 1, 1.25, 1, -5.96046e-08, 7.45058e-09, -1.3411e-07, -0.47466, -0.0131527, -0.012987, 0.879975, 1, 1, 1 </real_array>
- <string name="tracks/5/type"> "transform" </string>
- <node_path name="tracks/5/path"> "Armature/Skeleton:r-leg" </node_path>
- <int name="tracks/5/interp"> 1 </int>
- <real_array name="tracks/5/keys" len="216"> 0, 1, 9.0804e-08, -5.21541e-08, 5.36442e-07, -0.373219, -0.0555838, 8.64882e-05, 0.926077, 1, 1, 1, 0.05, 1, 2.50293e-08, 1.3411e-07, 5.96046e-07, -0.322099, -0.0481091, 0.000521386, 0.945483, 1, 1, 1, 0.1, 1, 1.20257e-07, -1.49012e-07, 7.15256e-07, -0.224139, -0.0330777, 0.00125387, 0.973995, 1, 1, 1, 0.15, 1, 3.94648e-08, -1.3411e-07, 6.55651e-07, -0.165692, -0.0218823, 0.00143977, 0.985934, 1, 1, 1, 0.2, 1, 1.33412e-07, -1.56462e-07, 5.36442e-07, -0.09297, -0.0104596, 0.00125276, 0.995613, 1, 1, 1, 0.25, 1, 3.55067e-08, 4.47035e-08, 1.78814e-07, -0.0411288, -0.0028586, 0.000542978, 0.99915, 1, 1, 1, 0.35, 1, 9.26666e-08, 5.96046e-08, 6.55651e-07, -0.159491, 0.00874812, -0.00126692, 0.98716, 1, 1, 1, 0.45, 1, 3.87663e-08, 0, 4.76837e-07, -0.233894, 0.0318884, -0.00310529, 0.971734, 1, 1, 1, 0.5, 1, -3.53903e-08, -7.45058e-08, 5.96046e-07, -0.280896, 0.0453351, -0.00364749, 0.95866, 1, 1, 1, 0.55, 1, 1.59489e-08, 4.47035e-08, 5.96046e-07, -0.352331, 0.0592861, -0.00363569, 0.933989, 1, 1, 1, 0.6, 1, 2.16532e-08, 1.3411e-07, 6.55651e-07, -0.469209, 0.0766892, -0.00261066, 0.879747, 1, 1, 1, 0.75, 1, 9.51113e-08, -2.01166e-07, 7.15256e-07, -0.846575, 0.0999882, 0.00219129, 0.522789, 1, 1, 1, 0.8, 1, 3.77186e-08, -1.49012e-07, 6.55651e-07, 0.900504, -0.0754152, -0.00223886, -0.428252, 1, 1, 1, 0.85, 1, 4.92437e-08, 1.49012e-07, 6.55651e-07, 0.906482, -0.0264902, -0.00126108, -0.42141, 1, 1, 1, 0.9, 1, -2.71248e-08, 1.63913e-07, 5.36442e-07, -0.830638, -0.0316768, -0.000334372, 0.555911, 1, 1, 1, 1, 1, 2.87546e-08, 4.84288e-07, 7.7486e-07, -0.453335, -0.0623349, -0.000381388, 0.889158, 1, 1, 1, 1.05, 1, 9.0804e-08, -5.21541e-08, 5.36442e-07, -0.373219, -0.0555838, 8.64882e-05, 0.926077, 1, 1, 1, 1.25, 1, 9.0804e-08, -5.21541e-08, 5.36442e-07, -0.373219, -0.0555838, 8.64882e-05, 0.926077, 1, 1, 1 </real_array>
- <string name="tracks/6/type"> "transform" </string>
- <node_path name="tracks/6/path"> "Armature/Skeleton:r-foot" </node_path>
- <int name="tracks/6/interp"> 1 </int>
- <real_array name="tracks/6/keys" len="168"> 0, 1, 5.21541e-08, -1.19209e-07, 9.31323e-08, 0.00219921, 0.118787, -0.0237834, 0.992633, 1, 1, 1, 0.05, 1, 5.96046e-08, 0, -5.58794e-08, 0.00569734, 0.111426, -0.0235639, 0.993477, 1, 1, 1, 0.1, 1, 4.47035e-08, -1.19209e-07, 3.35276e-08, 0.015864, 0.0910374, -0.022104, 0.995476, 1, 1, 1, 0.25, 1, 2.98023e-08, 1.19209e-07, -5.58794e-08, 0.0701794, 0.000367211, 0.000696922, 0.997534, 1, 1, 1, 0.35, 1, 8.19564e-08, -1.19209e-07, -1.11759e-08, 0.121501, -0.050768, 0.0840024, 0.987727, 1, 1, 1, 0.4, 1, 7.45058e-08, 1.19209e-07, 1.04308e-07, 0.115586, -0.0703619, 0.0928345, 0.986444, 1, 1, 1, 0.45, 1, 7.45058e-08, 1.19209e-07, 3.72529e-08, 0.0659214, -0.0866695, 0.0774413, 0.991033, 1, 1, 1, 0.5, 1, -5.96046e-08, 1.19209e-07, -1.11759e-07, 0.0031081, -0.0968864, 0.054063, 0.993821, 1, 1, 1, 0.55, 1, 5.96046e-08, 0, -6.70552e-08, -0.0166663, -0.0982007, 0.0374834, 0.994321, 1, 1, 1, 0.6, 1, 5.96046e-08, 1.19209e-07, -4.84288e-08, -0.0148445, -0.0906634, 0.0264974, 0.995418, 1, 1, 1, 0.65, 1, 0, 0, 4.09782e-08, -0.0108355, -0.0727448, 0.0177847, 0.997133, 1, 1, 1, 1, 1, 6.70552e-08, 0, 7.07805e-08, 0.00219189, 0.11394, -0.0230367, 0.993218, 1, 1, 1, 1.05, 1, 5.21541e-08, -1.19209e-07, 9.31323e-08, 0.00219921, 0.118787, -0.0237834, 0.992633, 1, 1, 1, 1.25, 1, 5.21541e-08, -1.19209e-07, 9.31323e-08, 0.00219921, 0.118787, -0.0237834, 0.992633, 1, 1, 1 </real_array>
- <string name="tracks/7/type"> "transform" </string>
- <node_path name="tracks/7/path"> "Armature/Skeleton:l-thigh" </node_path>
- <int name="tracks/7/interp"> 1 </int>
- <real_array name="tracks/7/keys" len="144"> 0, 1, 2.98023e-08, 2.98023e-08, 1.04308e-07, 0.217295, 0.0746597, -0.0103365, 0.973192, 1, 0.999999, 1, 0.05, 1, -8.9407e-08, 1.49012e-08, 1.49012e-08, 0.151772, 0.0624666, -0.00777083, 0.986409, 1, 1, 1, 0.1, 1, -2.98023e-08, 2.98023e-08, -8.9407e-08, -0.00391929, 0.0335048, -0.00214722, 0.999429, 1, 0.999999, 1, 0.3, 1, 0, 3.72529e-08, -1.49012e-07, -0.748933, -0.0405244, 0.0112371, 0.66131, 1, 1, 1, 0.35, 1, 5.96046e-08, 7.45058e-09, -3.12924e-07, -0.802758, -0.0149771, 0.00481471, 0.596097, 1, 1, 1, 0.4, 1, 0, 7.45058e-09, -1.78814e-07, -0.770121, 0.00992629, -0.000335305, 0.63782, 1, 1, 1, 0.8, 1, -5.96046e-08, 5.21541e-08, -1.04308e-07, 0.0878935, -0.0301616, 0.023494, 0.995396, 1, 1, 1, 0.85, 1, 2.98023e-08, 5.21541e-08, -2.98023e-07, 0.0819817, -0.0162162, 0.0156585, 0.996379, 1, 0.999999, 1, 0.9, 1, -5.96046e-08, 7.45058e-09, -1.3411e-07, 0.0980511, 0.00664153, 0.00756362, 0.99513, 1, 0.999999, 1, 1, 1, -5.96046e-08, 2.98023e-08, -2.98023e-08, 0.201153, 0.0660118, -0.00800331, 0.9773, 1, 0.999999, 1, 1.05, 1, 2.98023e-08, 2.98023e-08, 1.04308e-07, 0.217295, 0.0746597, -0.0103365, 0.973192, 1, 0.999999, 1, 1.25, 1, 2.98023e-08, 2.98023e-08, 1.04308e-07, 0.217295, 0.0746597, -0.0103365, 0.973192, 1, 0.999999, 1 </real_array>
- <string name="tracks/8/type"> "transform" </string>
- <node_path name="tracks/8/path"> "Armature/Skeleton:l-leg" </node_path>
- <int name="tracks/8/interp"> 1 </int>
- <real_array name="tracks/8/keys" len="228"> 0, 1, 4.19095e-08, 1.41561e-07, 2.98023e-07, -0.33502, -0.0565195, 0.00376308, 0.940507, 1, 1, 1, 0.05, 1, 2.82889e-08, 1.86265e-07, 0, -0.412041, -0.0666523, 0.00293558, 0.908719, 1, 1, 1, 0.2, 1, -7.12462e-08, -1.2666e-07, 5.96046e-08, -0.831864, -0.10996, -0.00255585, 0.543972, 1, 1, 1, 0.25, 1, 2.32831e-09, -1.04308e-07, 5.96046e-08, 0.89602, 0.0970023, 0.00298318, -0.433277, 1, 1, 1, 0.3, 1, 1.9907e-08, 3.65078e-07, 2.98023e-07, 0.921569, 0.0590099, 0.00230107, -0.383696, 1, 1, 1, 0.35, 1, -8.28877e-08, -1.93715e-07, 2.38419e-07, 0.901128, 0.00554219, 0.000798309, -0.433517, 1, 1, 1, 0.4, 1, -7.53207e-08, 5.21541e-08, 1.19209e-07, -0.81758, 0.0439972, 0.000730356, 0.574132, 1, 1, 1, 0.5, 1, -2.91038e-09, 1.41561e-07, 2.38419e-07, -0.503688, 0.068707, 0.00074972, 0.861149, 1, 1, 1, 0.55, 1, 6.1933e-08, 8.19564e-08, 5.96046e-08, -0.352333, 0.0527461, -0.000239235, 0.934387, 1, 1, 1, 0.6, 1, -2.95695e-08, 1.04308e-07, 1.78814e-07, -0.244271, 0.03738, -0.00103017, 0.968986, 1, 1, 1, 0.65, 1, 9.54606e-09, 3.50177e-07, 1.78814e-07, -0.200824, 0.0283491, -0.00130918, 0.979216, 1, 1, 1, 0.7, 1, 2.01399e-08, 2.23517e-08, 0, -0.167963, 0.0193272, -0.0011918, 0.985603, 1, 1, 1, 0.75, 1, -2.47965e-08, -2.23517e-07, 1.19209e-07, -0.0847999, 0.00700657, -0.000838314, 0.996373, 1, 1, 1, 0.8, 1, -4.88944e-08, -7.45058e-09, 0, -0.073705, 0.000793342, 3.27131e-05, 0.99728, 1, 1, 1, 0.9, 1, -5.50644e-08, 0, 1.19209e-07, -0.297998, -0.0240387, 0.0012853, 0.954263, 1, 1, 1, 0.95, 1, -1.08266e-08, -2.98023e-08, 1.19209e-07, -0.340478, -0.0423349, 0.0021981, 0.939296, 1, 1, 1, 1, 1, 5.07571e-08, -1.63913e-07, 0, -0.339784, -0.0539663, 0.00332048, 0.938948, 1, 1, 1, 1.05, 1, 4.19095e-08, 1.41561e-07, 2.98023e-07, -0.33502, -0.0565195, 0.00376308, 0.940507, 1, 1, 1, 1.25, 1, 4.19095e-08, 1.41561e-07, 2.98023e-07, -0.33502, -0.0565195, 0.00376308, 0.940507, 1, 1, 1 </real_array>
- <string name="tracks/9/type"> "transform" </string>
- <node_path name="tracks/9/path"> "Armature/Skeleton:l-foot" </node_path>
- <int name="tracks/9/interp"> 1 </int>
- <real_array name="tracks/9/keys" len="192"> 0, 1, -3.72529e-08, 0, 8.19564e-08, -0.0168517, 0.0989445, -0.0394225, 0.994169, 1, 1, 1, 0.05, 1, 6.70552e-08, 1.19209e-07, -4.47035e-08, -0.0168456, 0.0944203, -0.0381151, 0.99466, 1, 1, 1, 0.1, 1, 1.49012e-08, 1.19209e-07, -3.35276e-08, -0.0167772, 0.0819293, -0.034504, 0.995899, 1, 1, 1, 0.15, 1, -7.45058e-09, 1.19209e-07, -1.3411e-07, -0.0165494, 0.0617975, -0.0286797, 0.997539, 1, 1, 1, 0.4, 1, -2.23517e-08, 0, 2.6077e-08, -0.00864448, -0.0855905, 0.0141105, 0.996193, 1, 1, 1, 0.45, 1, 7.45058e-09, 2.38419e-07, -7.45058e-08, -0.00528641, -0.10464, 0.0196597, 0.994302, 1, 1, 1, 0.5, 1, -1.49012e-08, 1.19209e-07, 7.45058e-09, -0.00140908, -0.115976, 0.0229639, 0.992986, 1, 1, 1, 0.55, 1, 1.49012e-08, 2.38419e-07, 3.72529e-08, 0.00315788, -0.117918, 0.023482, 0.992741, 1, 1, 1, 0.6, 1, -2.98023e-08, 1.19209e-07, -1.49012e-08, 0.00993965, -0.108994, 0.0205203, 0.993781, 1, 1, 1, 0.65, 1, 1.49012e-08, 0, 1.86265e-08, 0.0206495, -0.0875135, 0.0140912, 0.99585, 1, 1, 1, 0.8, 1, -2.23517e-08, 1.19209e-07, -3.72529e-09, 0.0751354, 0.00445886, 0.00173853, 0.997162, 1, 1, 1, 0.9, 1, 0, 0, -2.98023e-08, 0.131833, 0.0617586, 0.0448617, 0.988329, 1, 1, 1, 0.95, 1, 3.72529e-08, 0, -6.70552e-08, 0.10712, 0.0825392, 0.0325464, 0.99028, 1, 1, 1, 1, 1, 1.49012e-08, 2.38419e-07, -4.84288e-08, 0.0202877, 0.0962194, -0.0179372, 0.994992, 1, 1, 1, 1.05, 1, -3.72529e-08, 0, 8.19564e-08, -0.0168517, 0.0989445, -0.0394225, 0.994169, 1, 1, 1, 1.25, 1, -3.72529e-08, 0, 8.19564e-08, -0.0168517, 0.0989445, -0.0394225, 0.994169, 1, 1, 1 </real_array>
- <string name="tracks/10/type"> "transform" </string>
- <node_path name="tracks/10/path"> "Armature/Skeleton:MASTER" </node_path>
- <int name="tracks/10/interp"> 1 </int>
- <real_array name="tracks/10/keys" len="24"> 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/11/type"> "transform" </string>
- <node_path name="tracks/11/path"> "Armature/Skeleton:HEAD" </node_path>
- <int name="tracks/11/interp"> 1 </int>
- <real_array name="tracks/11/keys" len="216"> 0, 1, -5.68434e-14, 0, 0.850875, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -5.68434e-14, 0, 0.888268, 0, 0, 0, 1, 1, 1, 1, 0.1, 1, -5.68434e-14, 0, 0.982704, 0, 0, 7.10543e-15, 1, 1, 1, 1, 0.15, 1, -5.68434e-14, 0, 1.10101, 0, 0, 0, 1, 1, 1, 1, 0.2, 1, -5.68434e-14, 0, 1.19526, 0, 0, -7.10543e-15, 1, 1, 1, 1, 0.25, 1, -5.68434e-14, 0, 1.23253, 0, 0, 0, 1, 1, 1, 1, 0.3, 1, -5.68434e-14, 0, 1.20497, 0, 0, 7.10543e-15, 1, 1, 1, 1, 0.35, 1, -5.68434e-14, 0, 1.13278, 0, 0, -7.10543e-15, 1, 1, 1, 1, 0.45, 1, -5.68434e-14, 0, 0.935015, 0, 0, 0, 1, 1, 1, 1, 0.5, 1, -5.68434e-14, 0, 0.868188, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, -5.68434e-14, 0, 0.85559, 0, 0, 0, 1, 1, 1, 1, 0.6, 1, -5.68434e-14, 0, 0.901897, 0, 0, 0, 1, 1, 1, 1, 0.75, 1, -5.68434e-14, 0, 1.20896, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, -5.68434e-14, 0, 1.22782, 0, 0, 7.10543e-15, 1, 1, 1, 1, 0.85, 1, -5.68434e-14, 0, 1.18155, 0, 0, 0, 1, 1, 1, 1, 1, 1, -5.68434e-14, 0, 0.874524, 0, 0, 0, 1, 1, 1, 1, 1.05, 1, -5.68434e-14, 0, 0.850875, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -5.68434e-14, 0, 0.850875, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/12/type"> "transform" </string>
- <node_path name="tracks/12/path"> "Armature/Skeleton:r-LEGCONTROL" </node_path>
- <int name="tracks/12/interp"> 1 </int>
- <real_array name="tracks/12/keys" len="180"> 0, 1, -0.142338, -0.946415, 0.217759, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -0.142333, -0.853172, 0.14976, 0, 0, 0, 1, 1, 1, 1, 0.1, 1, -0.142326, -0.626394, 0.0493819, 0, 0, 0, 1, 1, 1, 1, 0.25, 1, -0.142324, 0.323052, 0.113333, 0, 0, 0, 1, 1, 1, 1, 0.45, 1, -0.139402, 1.42157, 0.666575, 0, 0, 0, 1, 1, 1, 1, 0.5, 1, -0.136793, 1.55206, 0.805069, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, -0.131841, 1.57295, 0.911952, 0, 0, 0, 1, 1, 1, 1, 0.6, 1, -0.113377, 1.47151, 1.00452, 0, 0, 0, 1, 1, 1, 1, 0.65, 1, -0.077946, 1.23249, 1.08549, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, -0.0017584, 0.265596, 1.17195, 0, 0, 0, 1, 1, 1, 1, 0.85, 1, -0.0190262, -0.03908, 1.05516, 0, 0, 0, 1, 1, 1, 1, 0.95, 1, -0.100589, -0.692012, 0.50379, 0, 0, 0, 1, 1, 1, 1, 1, 1, -0.133542, -0.895383, 0.278588, 0, 0, 0, 1, 1, 1, 1, 1.05, 1, -0.142338, -0.946415, 0.217759, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.142338, -0.946415, 0.217759, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/13/type"> "transform" </string>
- <node_path name="tracks/13/path"> "Armature/Skeleton:l-LEGCONTROL" </node_path>
- <int name="tracks/13/interp"> 1 </int>
- <real_array name="tracks/13/keys" len="192"> 0, 1, 0.133965, 1.58294, 0.896163, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 0.120869, 1.49689, 0.924311, 0, 0, 0, 1, 1, 1, 1, 0.1, 1, 0.0877482, 1.26696, 0.995435, 0, 0, 0, 1, 1, 1, 1, 0.25, 1, 0, 0.313476, 1.18387, 0, 0, 0, 1, 1, 1, 1, 0.3, 1, 0.0102771, 0.0502403, 1.13241, 0, 0, 0, 1, 1, 1, 1, 0.4, 1, 0.0744684, -0.535892, 0.782828, 0, 0, 0, 1, 1, 1, 1, 0.45, 1, 0.110957, -0.769809, 0.54983, 0, 0, 0, 1, 1, 1, 1, 0.5, 1, 0.13588, -0.912113, 0.342608, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, 0.142337, -0.934969, 0.197995, 0, 0, 0, 1, 1, 1, 1, 0.6, 1, 0.142331, -0.819832, 0.0904105, 0, 0, 0, 1, 1, 1, 1, 0.65, 1, 0.142325, -0.584709, 0.0345853, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, 0.14222, 0.375652, 0.134472, 0, 0, 0, 1, 1, 1, 1, 0.95, 1, 0.136416, 1.34572, 0.707882, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0.134481, 1.53602, 0.857536, 0, 0, 0, 1, 1, 1, 1, 1.05, 1, 0.133965, 1.58294, 0.896163, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.133965, 1.58294, 0.896163, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/14/type"> "transform" </string>
- <node_path name="tracks/14/path"> "Armature/Skeleton:r-LEGORIENT" </node_path>
- <int name="tracks/14/interp"> 1 </int>
- <real_array name="tracks/14/keys" len="192"> 0, 1, 0.100474, 0.669825, -0.778672, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 0.098364, 0.655731, -0.762274, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 0.1, 1, 0.092555, 0.616937, -0.717148, 4.1297e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.15, 1, 0.0832335, 0.55472, -0.644792, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.4, 1, 0.0154476, 0.102931, -0.119635, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 0.45, 1, 0.00660282, 0.0440027, -0.051146, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.5, 1, 0.00131494, 0.00876498, -0.0101888, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, 0.000308841, 0.00205886, -0.00239307, 7.10993e-08, 6.08666e-15, -4.32757e-22, 1, 1, 1, 1, 0.6, 1, 0.00340915, 0.0227199, -0.0264083, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.65, 1, 0.0108188, 0.0720865, -0.0837842, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.7, 1, 0.0221942, 0.14786, -0.171845, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 0.9, 1, 0.0824287, 0.549322, -0.638501, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.95, 1, 0.0927294, 0.618084, -0.718475, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 1, 1, 0.0989292, 0.659501, -0.766658, 0, 0, 0, 1, 1, 1, 1, 1.05, 1, 0.100474, 0.669825, -0.778672, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.100474, 0.669825, -0.778672, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/15/type"> "transform" </string>
- <node_path name="tracks/15/path"> "Armature/Skeleton:l-LEGORIENT" </node_path>
- <int name="tracks/15/interp"> 1 </int>
- <real_array name="tracks/15/keys" len="192"> 0, 1, 2.98023e-08, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -0.00210956, 0.0140947, -0.0163979, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 0.1, 1, -0.00791863, 0.0528884, -0.0615235, 4.1297e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.15, 1, -0.0172402, 0.115105, -0.13388, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.4, 1, -0.085026, 0.566894, -0.659037, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 0.45, 1, -0.0938708, 0.625823, -0.727526, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.5, 1, -0.0991587, 0.66106, -0.768483, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, -0.100165, 0.667766, -0.776279, 7.10993e-08, 6.08666e-15, -4.32757e-22, 1, 1, 1, 1, 0.6, 1, -0.0970645, 0.647105, -0.752263, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.65, 1, -0.0896548, 0.597739, -0.694888, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.7, 1, -0.0782794, 0.521965, -0.606827, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 0.9, 1, -0.0180449, 0.120504, -0.14017, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.95, 1, -0.00774428, 0.0517416, -0.0601966, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 1, 1, -0.00154439, 0.0103241, -0.0120134, 0, 0, 0, 1, 1, 1, 1, 1.05, 1, 2.98023e-08, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 2.98023e-08, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/16/type"> "transform" </string>
- <node_path name="tracks/16/path"> "Armature/Skeleton:r-ARMCONTROL" </node_path>
- <int name="tracks/16/interp"> 1 </int>
- <real_array name="tracks/16/keys" len="180"> 0, 1, -0.868295, -0.434147, -0.728793, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -0.894115, -0.429589, -0.685758, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, -0.965105, -0.417039, -0.56775, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.15, 1, -1.07881, -0.396902, -0.379345, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.4, 1, -1.9017, -0.250463, 0.973224, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.45, 1, -2.00893, -0.231348, 1.14912, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.5, 1, -2.07309, -0.219917, 1.25447, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, -2.08428, -0.222594, 1.27283, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.6, 1, -2.0356, -0.276793, 1.19246, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.65, 1, -1.92036, -0.39421, 1.00266, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.75, 1, -1.5939, -0.636021, 0.464508, 0, 0, 0, 1, 1, 1, 1, 0.95, 1, -0.989962, -0.50147, -0.527541, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1, 1, -0.8923, -0.448337, -0.688738, 0, 0, 0, 1, 1, 1, 1, 1.05, 1, -0.868295, -0.434147, -0.728793, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.868295, -0.434147, -0.728793, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/17/type"> "transform" </string>
- <node_path name="tracks/17/path"> "Armature/Skeleton:l-ARMCONTROL" </node_path>
- <int name="tracks/17/interp"> 1 </int>
- <real_array name="tracks/17/keys" len="180"> 0, 1, 2.08906, -0.217074, 1.28073, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 2.04863, -0.260861, 1.21323, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, 1.93875, -0.371377, 1.03141, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.25, 1, 1.47813, -0.663608, 0.273554, 0, 0, 0, 1, 1, 1, 1, 0.45, 1, 0.953814, -0.514624, -0.588262, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.5, 1, 0.884829, -0.464922, -0.701557, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, 0.872045, -0.428974, -0.722627, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.6, 1, 0.909668, -0.39768, -0.660821, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.65, 1, 0.999508, -0.365756, -0.513451, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.7, 1, 1.13734, -0.334072, -0.287612, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.9, 1, 1.86856, -0.237138, 0.914287, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.95, 1, 1.99427, -0.225258, 1.12276, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1, 1, 2.07012, -0.218627, 1.24908, 0, 0, 0, 1, 1, 1, 1, 1.05, 1, 2.08906, -0.217074, 1.28073, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 2.08906, -0.217074, 1.28073, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/18/type"> "transform" </string>
- <node_path name="tracks/18/path"> "Armature/Skeleton:r-ARMORIENT" </node_path>
- <int name="tracks/18/interp"> 1 </int>
- <real_array name="tracks/18/keys" len="192"> 0, 1, 0.405204, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 0.429983, 0.0015192, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, 0.498118, 0.0057025, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.15, 1, 0.607264, 0.0124156, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.4, 1, 1.39747, 0.061233, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.45, 1, 1.50046, 0.0676029, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.5, 1, 1.56207, 0.0714109, 0, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, 1.5738, 0.0721354, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.6, 1, 1.53767, 0.0699027, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.65, 1, 1.45139, 0.0645664, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.7, 1, 1.31902, 0.0563741, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.9, 1, 0.616836, 0.0129952, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.95, 1, 0.496168, 0.00557709, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1, 1, 0.423375, 0.00111222, 0, 0, 0, 0, 1, 1, 1, 1, 1.05, 1, 0.405204, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.405204, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/19/type"> "transform" </string>
- <node_path name="tracks/19/path"> "Armature/Skeleton:l-ARMORIENT" </node_path>
- <int name="tracks/19/interp"> 1 </int>
- <real_array name="tracks/19/keys" len="192"> 0, 1, -1.5774, 0.0723579, 0, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -1.55262, 0.0708387, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, -1.48449, 0.0666554, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.15, 1, -1.37534, 0.0599422, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.4, 1, -0.585136, 0.0111248, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.45, 1, -0.482148, 0.00475502, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.5, 1, -0.420538, 0.000946999, 0, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, -0.408805, 0.000222445, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.6, 1, -0.444934, 0.00245523, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.65, 1, -0.531212, 0.00779152, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.7, 1, -0.663587, 0.0159838, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.9, 1, -1.36577, 0.0593629, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.95, 1, -1.48644, 0.0667808, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 1, 1, -1.55923, 0.0712457, 0, 0, 0, 0, 1, 1, 1, 1, 1.05, 1, -1.5774, 0.0723579, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -1.5774, 0.0723579, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/20/type"> "transform" </string>
- <node_path name="tracks/20/path"> "Armature/Skeleton:hip" </node_path>
- <int name="tracks/20/interp"> 1 </int>
- <real_array name="tracks/20/keys" len="276"> 0, 1, 0.0502379, 0.036174, 0.108012, 7.74552e-15, -1.97402e-08, 0.0871557, 0.996195, 1, 1, 1, 0.05, 1, 0.0469382, 0.0509099, 0.094259, -3.35906e-14, -1.89171e-08, 0.0835209, 0.996506, 1, 1, 1, 0.1, 1, 0.0379226, 0.088175, 0.0594788, -4.57539e-14, -1.66467e-08, 0.0734954, 0.997296, 1, 1, 1, 0.15, 1, 0.0249111, 0.134917, 0.0158529, -3.14989e-14, -1.29934e-08, 0.0573644, 0.998353, 1, 1, 1, 0.2, 1, 0.0112907, 0.17217, -0.0189178, -1.3373e-14, -8.15547e-09, 0.0360035, 0.999352, 1, 1, 1, 0.25, 1, 2.27588e-08, 0.186899, -0.0326645, -1.50375e-14, -2.49281e-09, 0.0110021, 0.99994, 1, 1, 1, 0.3, 1, -0.0104418, 0.176016, -0.0225072, -7.05369e-14, 3.45387e-09, -0.0152525, 0.999884, 1, 1, 1, 0.35, 1, -0.0222285, 0.147506, 0.00410175, -3.23609e-14, 9.01354e-09, -0.039798, 0.999208, 1, 1, 1, 0.4, 1, -0.0338161, 0.108041, 0.0409362, -3.84007e-14, 1.36964e-08, -0.0604725, 0.99817, 1, 1, 1, 0.45, 1, -0.043192, 0.0694027, 0.0769985, -3.85801e-14, 1.71613e-08, -0.0757699, 0.997125, 1, 1, 1, 0.5, 1, -0.0488776, 0.0430113, 0.10163, -7.13117e-15, 1.92273e-08, -0.084891, 0.99639, 1, 1, 1, 0.55, 1, -0.049846, 0.0380361, 0.106274, -6.66418e-14, 1.96198e-08, -0.0866238, 0.996241, 1, 1, 1, 0.6, 1, -0.0458462, 0.0563236, 0.0892055, -1.43694e-14, 1.84095e-08, -0.0812805, 0.996691, 1, 1, 1, 0.65, 1, -0.0363638, 0.0959547, 0.0522163, -5.40282e-14, 1.5511e-08, -0.0684838, 0.997652, 1, 1, 1, 0.7, 1, -0.0231681, 0.1427, 0.0085876, -3.25683e-14, 1.10473e-08, -0.0487772, 0.99881, 1, 1, 1, 0.75, 1, -0.00951665, 0.177588, -0.0239747, 1.83932e-15, 5.34013e-09, -0.0235807, 0.999722, 1, 1, 1, 0.8, 1, 0.00190332, 0.185037, -0.0309267, -4.07805e-14, -1.06814e-09, 0.00471147, 0.999989, 1, 1, 1, 0.85, 1, 0.0140465, 0.166752, -0.0138602, -8.20187e-14, -7.29738e-09, 0.0322142, 0.999481, 1, 1, 1, 0.9, 1, 0.0278208, 0.127127, 0.0231235, -3.37482e-14, -1.26773e-08, 0.0559684, 0.998433, 1, 1, 1, 0.95, 1, 0.0402532, 0.080384, 0.0667505, -4.05783e-14, -1.67149e-08, 0.0737966, 0.997273, 1, 1, 1, 1, 1, 0.0482781, 0.0454891, 0.0993183, 1.00279e-15, -1.91378e-08, 0.0844954, 0.996424, 1, 1, 1, 1.05, 1, 0.0502379, 0.036174, 0.108012, 7.74552e-15, -1.97402e-08, 0.0871557, 0.996195, 1, 1, 1, 1.25, 1, 0.0502379, 0.036174, 0.108012, 7.74552e-15, -1.97402e-08, 0.0871557, 0.996195, 1, 1, 1 </real_array>
- <string name="tracks/21/type"> "transform" </string>
- <node_path name="tracks/21/path"> "Armature/Skeleton:waist" </node_path>
- <int name="tracks/21/interp"> 1 </int>
- <real_array name="tracks/21/keys" len="192"> 0, 1, 4.1909e-09, -2.55596e-10, -3.57628e-07, 0.0550011, -0.00481196, -0.0870228, 0.994675, 1, 1, 1, 0.05, 1, 3.53838e-09, 6.53649e-11, -5.96046e-08, 0.0550183, -0.0046113, -0.0833935, 0.994986, 1, 1, 1, 0.1, 1, -5.60775e-10, -7.51698e-09, -2.98023e-08, 0.0550619, -0.00405785, -0.0733833, 0.995774, 1, 1, 1, 0.15, 1, -2.23866e-09, -1.11867e-08, -1.49012e-07, 0.0551203, -0.00316731, -0.0572769, 0.996831, 1, 1, 1, 0.4, 1, -2.04997e-09, -2.75862e-09, 1.78814e-07, 0.0551102, 0.00333869, 0.0603803, 0.996647, 1, 1, 1, 0.45, 1, 2.0486e-09, 4.35754e-10, 5.96046e-08, 0.0550525, 0.00418331, 0.0756543, 0.995605, 1, 1, 1, 0.5, 1, -5.1223e-09, 2.12108e-09, 1.19209e-07, 0.0550119, 0.00468692, 0.0847616, 0.994871, 1, 1, 1, 0.55, 1, 9.31448e-11, -6.0701e-10, 0, 0.0550037, 0.00478259, 0.0864917, 0.994722, 1, 1, 1, 0.6, 1, -8.38328e-10, -2.70165e-09, 0, 0.0550285, 0.00448757, 0.0811565, 0.995171, 1, 1, 1, 0.65, 1, -5.5956e-10, 2.044e-09, 2.98023e-08, 0.0550816, 0.00378102, 0.0683793, 0.996131, 1, 1, 1, 0.7, 1, -1.88318e-10, -1.00538e-08, -1.49012e-07, 0.0551455, 0.00269294, 0.0487028, 0.997286, 1, 1, 1, 0.9, 1, -2.42557e-09, -9.9462e-09, 1.19209e-07, 0.0551247, -0.00309027, -0.055883, 0.99691, 1, 1, 1, 0.95, 1, 2.79174e-09, -8.13951e-09, 0, 0.0550607, -0.00407449, -0.073684, 0.995752, 1, 1, 1, 1, 1, -4.66262e-10, 1.71346e-09, 0, 0.0550138, -0.0046651, -0.0843665, 0.994904, 1, 1, 1, 1.05, 1, 4.1909e-09, -2.55596e-10, -3.57628e-07, 0.0550011, -0.00481196, -0.0870228, 0.994675, 1, 1, 1, 1.25, 1, 4.1909e-09, -2.55596e-10, -3.57628e-07, 0.0550011, -0.00481196, -0.0870228, 0.994675, 1, 1, 1 </real_array>
- <string name="tracks/22/type"> "transform" </string>
- <node_path name="tracks/22/path"> "Armature/Skeleton:chest" </node_path>
- <int name="tracks/22/interp"> 1 </int>
- <real_array name="tracks/22/keys" len="192"> 0, 1, 4.20218e-09, -1.49012e-08, 0, 0.0550026, -0.0108562, -0.086477, 0.994675, 1, 1, 1, 0.05, 1, 6.60681e-10, -7.45058e-09, -5.96046e-08, 0.0550197, -0.0104035, -0.0828704, 0.994986, 1, 1, 1, 0.1, 1, 1.42138e-09, -7.45058e-09, 1.19209e-07, 0.0550633, -0.00915483, -0.072923, 0.995774, 1, 1, 1, 0.15, 1, -1.4402e-10, -1.86265e-08, -5.96046e-08, 0.0551217, -0.00714571, -0.0569177, 0.99683, 1, 1, 1, 0.4, 1, -2.54046e-09, 7.45058e-09, -1.78814e-07, 0.0551116, 0.00753235, 0.0600015, 0.996647, 1, 1, 1, 0.45, 1, -2.31643e-09, 1.86265e-08, -1.78814e-07, 0.0550539, 0.00943788, 0.0751797, 0.995604, 1, 1, 1, 0.5, 1, -3.16026e-09, 1.49012e-08, 5.96046e-08, 0.0550134, 0.0105741, 0.0842299, 0.99487, 1, 1, 1, 0.55, 1, -4.35034e-09, 2.23517e-08, -1.78814e-07, 0.0550051, 0.0107899, 0.0859492, 0.994722, 1, 1, 1, 0.6, 1, -1.53961e-09, -7.45058e-09, 5.96046e-08, 0.05503, 0.0101243, 0.0806475, 0.995171, 1, 1, 1, 0.65, 1, -1.47879e-09, -1.86265e-08, -5.96046e-08, 0.055083, 0.00853027, 0.0679504, 0.996131, 1, 1, 1, 0.7, 1, -2.07954e-09, 2.6077e-08, -2.38419e-07, 0.0551469, 0.00607548, 0.0483973, 0.997286, 1, 1, 1, 0.9, 1, -1.29246e-09, -2.6077e-08, 5.96046e-08, 0.0551261, -0.00697189, -0.0555325, 0.99691, 1, 1, 1, 0.95, 1, 2.48766e-09, -7.45058e-09, 5.96046e-08, 0.0550621, -0.00919238, -0.0732219, 0.995752, 1, 1, 1, 1, 1, -1.94411e-09, -7.45058e-09, -1.19209e-07, 0.0550152, -0.0105248, -0.0838373, 0.994904, 1, 1, 1, 1.05, 1, 4.20218e-09, -1.49012e-08, 0, 0.0550026, -0.0108562, -0.086477, 0.994675, 1, 1, 1, 1.25, 1, 4.20218e-09, -1.49012e-08, 0, 0.0550026, -0.0108562, -0.086477, 0.994675, 1, 1, 1 </real_array>
- <string name="tracks/23/type"> "transform" </string>
- <node_path name="tracks/23/path"> "Armature/Skeleton:neck" </node_path>
- <int name="tracks/23/interp"> 1 </int>
- <real_array name="tracks/23/keys" len="24"> 0, 1, 1.58195e-10, -1.19209e-07, -8.34465e-07, -1.49012e-08, 2.17021e-10, 8.15234e-10, 1, 1, 1, 1, 1.25, 1, 1.58195e-10, -1.19209e-07, -8.34465e-07, -1.49012e-08, 2.17021e-10, 8.15234e-10, 1, 1, 1, 1 </real_array>
- <string name="tracks/24/type"> "transform" </string>
- <node_path name="tracks/24/path"> "Armature/Skeleton:headtracker" </node_path>
- <int name="tracks/24/interp"> 1 </int>
- <real_array name="tracks/24/keys" len="144"> 0, 1, 8.86136e-10, -2.38419e-07, -4.91273e-08, 0.0549542, -0.0952446, 0.00487296, 0.993924, 1, 1, 1, 0.05, 1, 2.18506e-09, -1.78814e-07, -5.65778e-08, 0.0504772, -0.0912067, 0.0042631, 0.994543, 1, 1, 1, 0.1, 1, 5.53928e-10, -4.17233e-07, -3.67872e-08, 0.0390059, -0.0800384, 0.00284171, 0.996024, 1, 1, 1, 0.45, 1, -5.1797e-09, -8.04663e-07, -5.82077e-08, 0.0448447, 0.08285, -0.00340957, 0.995547, 1, 1, 1, 0.5, 1, 3.73723e-09, 3.57628e-07, -5.28526e-08, 0.052893, 0.0927872, -0.00455309, 0.99427, 1, 1, 1, 0.55, 1, 3.81474e-09, -2.98023e-08, -4.30737e-08, 0.0543919, 0.0946615, -0.00479041, 0.994011, 1, 1, 1, 0.6, 1, 5.97727e-09, -1.01328e-06, -7.35745e-08, 0.0488359, 0.0887913, -0.00401032, 0.994844, 1, 1, 1, 0.65, 1, -3.89822e-10, -6.25849e-07, -7.96281e-08, 0.0366099, 0.0746935, -0.00247956, 0.996531, 1, 1, 1, 0.95, 1, -4.46247e-09, 1.19209e-07, -6.96164e-08, 0.0414353, -0.080551, 0.00304791, 0.995884, 1, 1, 1, 1, 1, 2.64143e-09, -5.96046e-07, -7.72998e-08, 0.052136, -0.0923283, 0.0044599, 0.994353, 1, 1, 1, 1.05, 1, 8.86136e-10, -2.38419e-07, -4.91273e-08, 0.0549542, -0.0952446, 0.00487296, 0.993924, 1, 1, 1, 1.25, 1, 8.86136e-10, -2.38419e-07, -4.91273e-08, 0.0549542, -0.0952446, 0.00487296, 0.993924, 1, 1, 1 </real_array>
- <string name="tracks/25/type"> "transform" </string>
- <node_path name="tracks/25/path"> "Armature/Skeleton:head" </node_path>
- <int name="tracks/25/interp"> 1 </int>
- <real_array name="tracks/25/keys" len="24"> 0, 1, -3.08853e-09, 1.69966e-08, 3.98955e-07, 4.70848e-20, -1.3217e-10, -5.67425e-10, 1, 1, 1, 1, 1.25, 1, -3.08853e-09, 1.69966e-08, 3.98955e-07, 4.70848e-20, -1.3217e-10, -5.67425e-10, 1, 1, 1, 1 </real_array>
- <string name="tracks/26/type"> "transform" </string>
- <node_path name="tracks/26/path"> "Armature/Skeleton:vent" </node_path>
- <int name="tracks/26/interp"> 1 </int>
- <real_array name="tracks/26/keys" len="24"> 0, 1, 5.17831e-08, 0.00292331, 0.204329, 3.25963e-09, -2.17324e-11, 3.00563e-10, 1, 1, 1, 1, 1.25, 1, 5.17831e-08, 0.00292331, 0.204329, 3.25963e-09, -2.17324e-11, 3.00563e-10, 1, 1, 1, 1 </real_array>
-
- </resource>
- <resource type="Animation" path="local://13">
- <string name="resource/name"> "run-cycle" </string>
- <real name="length"> 0.833333 </real>
- <bool name="loop"> True </bool>
- <real name="step"> 0.1 </real>
- <string name="tracks/0/type"> "transform" </string>
- <node_path name="tracks/0/path"> "Armature/Skeleton:r-arm" </node_path>
- <int name="tracks/0/interp"> 1 </int>
- <real_array name="tracks/0/keys" len="192"> 0, 1, 9.23872e-07, -3.57628e-07, 5.66244e-07, 0.222344, -0.226466, -0.0274315, 0.947905, 1, 1, 1, 0.05, 1, 6.55651e-07, -1.19209e-07, 2.98023e-07, 0.251975, -0.208305, -0.0408158, 0.944167, 1, 1, 1, 0.15, 1, 1.07288e-06, -3.57628e-07, 5.36442e-07, 0.379887, -0.057225, -0.102903, 0.917509, 1, 1, 1, 0.2, 1, 6.25849e-07, -3.57628e-07, 7.45058e-07, 0.418674, -0.00696497, -0.113328, 0.901011, 1, 1, 1, 0.25, 1, 8.64267e-07, -3.57628e-07, 3.8743e-07, 0.413182, 0.0386478, -0.0801881, 0.906287, 1, 1, 1, 0.3, 1, 9.53674e-07, -4.76837e-07, 5.96046e-07, 0.315261, 0.124735, -0.0152523, 0.940648, 1, 1, 1, 0.4, 1, 6.25849e-07, -3.57628e-07, 4.17233e-07, -0.151881, 0.360683, -0.0357324, 0.919545, 1, 1, 0.999999, 0.45, 1, 6.25849e-07, -3.57628e-07, 7.45058e-07, -0.172392, 0.343529, -0.046079, 0.922034, 1, 1, 0.999999, 0.55, 1, 6.55651e-07, -3.57628e-07, 5.36442e-07, 0.168352, 0.0191591, -0.0776353, 0.982478, 1, 1, 1, 0.6, 1, 9.53674e-07, -3.57628e-07, 3.27826e-07, 0.182793, -0.0233152, -0.109476, 0.976759, 1, 1, 1, 0.65, 1, 4.17233e-07, 0, 1.78814e-07, 0.138039, -0.0157468, -0.121765, 0.982787, 1, 1, 1, 0.7, 1, 6.25849e-07, -2.38419e-07, 1.78814e-07, 0.121673, -0.0809579, -0.109793, 0.983152, 1, 1, 1, 0.75, 1, 9.23872e-07, -3.57628e-07, 7.45058e-07, 0.131274, -0.176942, -0.0767055, 0.972407, 1, 1, 1, 0.8, 1, 5.66244e-07, -1.19209e-07, 5.96046e-07, 0.13073, -0.218021, -0.0501677, 0.965847, 1, 1, 1, 0.85, 1, 2.98023e-08, 0, -5.96046e-08, 0.129118, -0.224691, -0.0428281, 0.964888, 1, 1, 1, 1.25, 1, 2.98023e-08, 0, -5.96046e-08, 0.129118, -0.224691, -0.0428281, 0.964888, 1, 1, 1 </real_array>
- <string name="tracks/1/type"> "transform" </string>
- <node_path name="tracks/1/path"> "Armature/Skeleton:r-forearm" </node_path>
- <int name="tracks/1/interp"> 1 </int>
- <real_array name="tracks/1/keys" len="180"> 0, 1, 0, -4.17233e-07, -3.57628e-07, -0.0379169, -0.0715942, 0.00193508, 0.996711, 1, 1, 1, 0.05, 1, -1.78814e-07, -5.96046e-07, -4.17233e-07, -0.000241383, -0.109076, 0.00379063, 0.994026, 1, 1, 1, 0.1, 1, 8.9407e-08, -6.55651e-07, -6.55651e-07, 0.0679255, -0.167209, 0.00334064, 0.983573, 1, 0.999999, 1, 0.25, 1, -1.19209e-07, -3.8743e-07, 0, 0.158727, -0.350464, 0.00627285, 0.923007, 1, 1, 1, 0.3, 1, -3.27826e-07, -6.85453e-07, 1.78814e-07, 0.146536, -0.393807, 0.00119701, 0.907437, 1, 1, 1, 0.35, 1, -8.9407e-08, -6.55651e-07, -3.57628e-07, 0.153485, -0.416977, -0.0128296, 0.895772, 1, 1, 1, 0.4, 1, 8.9407e-08, -9.83477e-07, -5.36442e-07, 0.172873, -0.368078, -0.014432, 0.913469, 1, 0.999999, 1, 0.45, 1, 0, -9.83477e-07, -1.19209e-07, 0.191151, -0.391536, -0.0140892, 0.899979, 1, 1, 1, 0.5, 1, 8.9407e-08, -5.96046e-07, -6.55651e-07, 0.210133, -0.527231, -0.0202225, 0.823081, 1, 1, 1, 0.55, 1, 2.68221e-07, -6.25849e-07, -4.17233e-07, 0.159334, -0.589231, -0.00909611, 0.792046, 1, 1, 1, 0.65, 1, -1.19209e-07, -6.85453e-07, -7.15256e-07, 0.0168538, -0.43832, 0.0104639, 0.8986, 1, 1, 1, 0.7, 1, 1.78814e-07, -5.36442e-07, -1.78814e-07, -0.00524541, -0.376783, 0.0174757, 0.926122, 1, 1, 1, 0.8, 1, -5.96046e-08, -7.15256e-07, -5.36442e-07, 0.00762745, -0.243737, 0.014512, 0.969703, 1, 1, 1, 0.85, 1, 1.19209e-07, -6.85453e-07, -7.7486e-07, 0.00858928, -0.221202, 0.0126834, 0.975108, 1, 1, 1, 1.25, 1, 1.19209e-07, -6.85453e-07, -7.7486e-07, 0.00858928, -0.221202, 0.0126834, 0.975108, 1, 1, 1 </real_array>
- <string name="tracks/2/type"> "transform" </string>
- <node_path name="tracks/2/path"> "Armature/Skeleton:l-arm" </node_path>
- <int name="tracks/2/interp"> 1 </int>
- <real_array name="tracks/2/keys" len="228"> 0, 1, -9.53674e-07, -5.96046e-07, 4.76837e-07, -0.211109, -0.378307, 0.04716, 0.900052, 1, 1, 1, 0.05, 1, -9.53674e-07, 1.19209e-07, 3.57628e-07, -0.122361, -0.307485, 0.0444022, 0.942608, 1, 1, 1, 0.1, 1, -6.85453e-07, -2.38419e-07, 5.96046e-07, 0.0655243, -0.124344, 0.0558387, 0.988497, 1, 1, 1, 0.15, 1, -7.7486e-07, -1.19209e-07, 5.66244e-07, 0.17223, 0.0168325, 0.088774, 0.980904, 1, 1, 1, 0.2, 1, -5.36442e-07, -3.57628e-07, 5.36442e-07, 0.151153, 0.0193605, 0.111763, 0.981981, 1, 1, 1, 0.25, 1, -6.25849e-07, -3.57628e-07, 5.96046e-07, 0.105831, 0.0199286, 0.119921, 0.986925, 1, 1, 1, 0.3, 1, -1.19209e-06, -5.96046e-07, 6.25849e-07, 0.11, 0.117841, 0.0973986, 0.982103, 1, 1, 1, 0.35, 1, -5.36442e-07, -1.19209e-07, 4.47035e-07, 0.163427, 0.213955, 0.0590648, 0.961263, 1, 1, 1, 0.4, 1, -6.85453e-07, -3.57628e-07, 5.06639e-07, 0.212517, 0.23167, 0.0327435, 0.948733, 1, 1, 1, 0.45, 1, -8.04663e-07, -2.38419e-07, 5.66244e-07, 0.240572, 0.207043, 0.0320326, 0.947751, 1, 1, 1, 0.5, 1, -9.23872e-07, 0, 8.04663e-07, 0.292283, 0.151342, 0.0529747, 0.942794, 1, 1, 1, 0.55, 1, -6.85453e-07, -3.57628e-07, 3.57628e-07, 0.354424, 0.0696654, 0.0852169, 0.928584, 1, 1, 1, 0.6, 1, -5.66244e-07, -2.38419e-07, 2.98023e-07, 0.397207, 0.0175472, 0.104303, 0.911614, 1, 1, 1, 0.65, 1, -8.34465e-07, -2.38419e-07, 4.47035e-07, 0.407225, -0.0166533, 0.0875941, 0.908965, 1, 1, 1, 0.7, 1, -1.2517e-06, -1.19209e-07, 6.55651e-07, 0.349327, -0.0813931, 0.0308211, 0.93295, 1, 1, 1, 0.75, 1, -1.19209e-07, 1.19209e-07, 2.08616e-07, 0.214708, -0.14004, -0.012317, 0.966508, 1, 1, 1, 0.8, 1, -6.55651e-07, -1.19209e-07, 2.98023e-07, -0.00140518, -0.171137, -0.0177305, 0.985087, 1, 1, 1, 0.85, 1, -4.76837e-07, -3.57628e-07, 3.8743e-07, -0.0925096, -0.171599, -0.011185, 0.98075, 1, 1, 1, 1.25, 1, -4.76837e-07, -3.57628e-07, 3.8743e-07, -0.0925096, -0.171599, -0.011185, 0.98075, 1, 1, 1 </real_array>
- <string name="tracks/3/type"> "transform" </string>
- <node_path name="tracks/3/path"> "Armature/Skeleton:l-forearm" </node_path>
- <int name="tracks/3/interp"> 1 </int>
- <real_array name="tracks/3/keys" len="180"> 0, 1, 2.08616e-07, -2.98023e-08, -5.96046e-07, 0.176871, 0.346752, 0.0115369, 0.921058, 1, 1, 1, 0.05, 1, -1.49012e-07, -4.76837e-07, -2.38419e-07, 0.1969, 0.431458, 0.0161118, 0.880236, 1, 1, 1, 0.1, 1, -3.57628e-07, -8.04663e-07, -4.76837e-07, 0.196923, 0.556224, 0.0152519, 0.80722, 1, 1, 1, 0.15, 1, -2.68221e-07, -4.17233e-07, -2.98023e-07, 0.134905, 0.568169, 0.00154346, 0.811777, 1, 1, 1, 0.2, 1, -1.49012e-07, -6.25849e-07, -4.17233e-07, 0.0562878, 0.484209, -0.00707307, 0.873111, 1, 1, 1, 0.25, 1, -2.98023e-08, -8.04663e-07, -3.57628e-07, 0.0047636, 0.406038, -0.0121859, 0.913763, 1, 1, 1, 0.3, 1, 5.96046e-08, -7.7486e-07, -1.78814e-07, -0.011494, 0.345751, -0.0179636, 0.938084, 1, 0.999999, 1, 0.4, 1, 5.36442e-07, -5.36442e-07, -1.19209e-07, -0.0325058, 0.107107, -0.00429871, 0.993707, 1, 0.999999, 1, 0.45, 1, 2.08616e-07, -8.34465e-07, -1.78814e-07, -0.0177273, 0.0767786, -0.00241131, 0.996888, 1, 1, 1, 0.65, 1, -5.96046e-08, -6.55651e-07, -1.07288e-06, 0.154364, 0.318848, -0.0046877, 0.935139, 1, 1, 1, 0.7, 1, 5.96046e-08, -9.23872e-07, -1.01328e-06, 0.155566, 0.376204, -0.00401138, 0.913375, 1, 1, 1, 0.75, 1, 0, -8.9407e-07, -4.17233e-07, 0.173064, 0.444685, 0.00561718, 0.87879, 1, 1, 1, 0.8, 1, 3.27826e-07, -6.55651e-07, -4.17233e-07, 0.251551, 0.464674, 0.00544377, 0.848982, 1, 1, 1, 0.85, 1, 8.9407e-08, -7.15256e-07, -9.53674e-07, 0.280639, 0.447823, -0.00246765, 0.848935, 1, 1, 1, 1.25, 1, 8.9407e-08, -7.15256e-07, -9.53674e-07, 0.280639, 0.447823, -0.00246765, 0.848935, 1, 1, 1 </real_array>
- <string name="tracks/4/type"> "transform" </string>
- <node_path name="tracks/4/path"> "Armature/Skeleton:r-thigh" </node_path>
- <int name="tracks/4/interp"> 1 </int>
- <real_array name="tracks/4/keys" len="192"> 0, 1, 0, 1.63913e-07, 1.93715e-07, -0.283345, 0.0300071, -0.0426225, 0.957601, 1, 1, 1, 0.05, 1, 8.9407e-08, 1.93715e-07, -5.06639e-07, -0.221388, 0.0587497, -0.0627932, 0.971387, 1, 1, 1, 0.15, 1, 5.96046e-08, 6.70552e-08, -1.3411e-07, 0.127996, 0.137739, -0.113256, 0.975612, 1, 1, 1, 0.2, 1, -5.96046e-08, -7.45058e-09, -7.45058e-07, 0.264976, 0.121823, -0.100248, 0.951261, 1, 1, 1, 0.25, 1, 2.98023e-08, -2.01166e-07, -4.91738e-07, 0.314522, 0.0998354, -0.077727, 0.94078, 1, 1, 1, 0.3, 1, 1.49012e-07, 1.3411e-07, 1.3411e-07, 0.306548, 0.0507913, -0.0454783, 0.949411, 1, 1, 1, 0.35, 1, 8.9407e-08, 7.45058e-09, -2.83122e-07, 0.297828, -0.0187708, -0.0207563, 0.954209, 1, 1, 1, 0.4, 1, 8.9407e-08, 4.47035e-08, -2.98023e-07, 0.287784, -0.0733564, -0.00467344, 0.95487, 1, 1, 1, 0.45, 1, 2.98023e-08, 2.23517e-08, -2.5332e-07, 0.170166, -0.0854042, 0.00266015, 0.981704, 1, 1, 1, 0.6, 1, 0, 1.04308e-07, 0, -0.531982, -0.0722138, 0.0220251, 0.843383, 1, 1, 1, 0.65, 1, 0, 1.3411e-07, -3.12924e-07, -0.652152, -0.0747176, 0.0102306, 0.754328, 1, 1, 1, 0.7, 1, -2.98023e-08, 0, 1.49012e-07, -0.686637, -0.0649825, 0.00231536, 0.724087, 1, 1, 1, 0.75, 1, 2.98023e-08, -1.56462e-07, -2.38419e-07, -0.638385, -0.0394346, -0.00259775, 0.768702, 1, 1, 1, 0.8, 1, 1.49012e-07, -8.9407e-08, -1.93715e-07, -0.432358, 0.00843852, -0.0248422, 0.90132, 1, 1, 1, 0.85, 1, 0, 1.63913e-07, 1.93715e-07, -0.283345, 0.0300071, -0.0426225, 0.957601, 1, 1, 1, 1.25, 1, 0, 1.63913e-07, 1.93715e-07, -0.283345, 0.0300071, -0.0426225, 0.957601, 1, 1, 1 </real_array>
- <string name="tracks/5/type"> "transform" </string>
- <node_path name="tracks/5/path"> "Armature/Skeleton:r-leg" </node_path>
- <int name="tracks/5/interp"> 1 </int>
- <real_array name="tracks/5/keys" len="216"> 0, 1, 2.29338e-08, 8.9407e-08, 5.36442e-07, -0.369097, -0.0505305, 0.00260278, 0.928013, 1, 1, 1, 0.05, 1, 8.26549e-08, 1.93715e-07, 4.76837e-07, -0.32656, -0.0387365, 0.00230976, 0.94438, 1, 1, 1, 0.15, 1, 4.78467e-08, -7.45058e-09, 7.7486e-07, -0.04833, 0.013837, -0.00331139, 0.99873, 1, 1, 1, 0.2, 1, 1.44588e-07, 0, 7.15256e-07, 0.0174433, 0.00914093, -0.00369525, 0.999799, 1, 1, 1, 0.25, 1, 4.49363e-08, 1.63913e-07, 2.38419e-07, -0.0309752, 0.0174032, -0.00233819, 0.999366, 1, 1, 1, 0.3, 1, 6.06524e-08, -7.45058e-08, 6.55651e-07, -0.161344, 0.031869, -0.00095907, 0.986383, 1, 1, 1, 0.35, 1, 6.23986e-08, 1.11759e-07, 5.36442e-07, -0.258604, 0.043227, -0.000463765, 0.965016, 1, 1, 1, 0.4, 1, 2.66591e-08, 1.11759e-07, 5.96046e-07, -0.311843, 0.0531668, -0.000274837, 0.948645, 1, 1, 1, 0.45, 1, -0.000736501, 0.00352155, -0.0507002, -0.471618, 0.0737067, 0.000546333, 0.878717, 1, 1, 1, 0.5, 1, -0.00351399, 0.0168005, -0.241486, -0.74573, 0.0999092, 7.49679e-05, 0.658714, 1, 1, 1, 0.55, 1, -0.00736267, 0.0352004, -0.505227, 0.896291, -0.0831834, 0.00513814, -0.435565, 1, 1, 1, 0.6, 1, -0.0098056, 0.0468799, -0.672563, 0.946677, -0.0409485, 0.00588309, -0.319519, 1, 1, 1, 0.65, 1, -0.0098056, 0.0468801, -0.672652, 0.947809, 0.0057637, 0.00256107, -0.318776, 1, 1, 1, 0.7, 1, -0.00736268, 0.0352004, -0.505962, 0.888767, 0.0669386, 0.000245982, -0.453445, 1, 1, 1, 0.75, 1, -0.003514, 0.016801, -0.242868, -0.757574, -0.0924392, -0.000540428, 0.64617, 1, 1, 1, 0.8, 1, -0.000736581, 0.0035219, -0.0512407, -0.527405, -0.0678553, 0.00109702, 0.846899, 1, 1, 1, 0.85, 1, 2.29338e-08, 8.9407e-08, 5.36442e-07, -0.369097, -0.0505305, 0.00260278, 0.928013, 1, 1, 1, 1.25, 1, 2.29338e-08, 8.9407e-08, 5.36442e-07, -0.369097, -0.0505305, 0.00260278, 0.928013, 1, 1, 1 </real_array>
- <string name="tracks/6/type"> "transform" </string>
- <node_path name="tracks/6/path"> "Armature/Skeleton:r-foot" </node_path>
- <int name="tracks/6/interp"> 1 </int>
- <real_array name="tracks/6/keys" len="216"> 0, 1, 1.49012e-08, 0, -5.21541e-08, 0.163945, 0.140221, -0.046324, 0.975354, 1, 1, 1, 0.05, 1, 9.68575e-08, 0, 7.82311e-08, 0.163142, 0.147087, -0.0386578, 0.974811, 1, 1, 1, 0.1, 1, 7.45058e-08, 0, 1.11759e-08, 0.154504, 0.157524, -0.0272069, 0.974974, 1, 1, 1, 0.15, 1, 8.9407e-08, 0, 3.72529e-08, 0.106593, 0.145246, -0.0455539, 0.982581, 1, 1, 1, 0.2, 1, 3.72529e-08, 0, 0, 0.00306457, 0.0975244, -0.0887594, 0.991263, 1, 1, 1, 0.3, 1, 4.47035e-08, 1.19209e-07, -1.60187e-07, -0.165764, -0.00244496, -0.0619073, 0.984217, 1, 1, 1, 0.35, 1, 3.72529e-08, -1.19209e-07, -1.2666e-07, -0.225564, -0.0444232, -0.0320188, 0.972688, 1, 1, 1, 0.4, 1, -2.98023e-08, -1.19209e-07, 1.3411e-07, -0.254966, -0.0644888, -0.0152293, 0.964677, 1, 1, 1, 0.45, 1, 5.96046e-08, 1.19209e-07, -3.72529e-09, -0.263415, -0.0674915, -0.0129876, 0.962231, 1, 1, 1, 0.5, 1, 7.45058e-08, 0, -2.98023e-08, -0.26682, -0.065605, -0.0157537, 0.961382, 1, 1, 1, 0.55, 1, 5.96046e-08, 0, 3.35276e-08, -0.268414, -0.0578826, -0.0205736, 0.961343, 1, 1, 1, 0.6, 1, 2.23517e-08, -1.19209e-07, 1.49012e-07, -0.268984, -0.0431783, -0.0254932, 0.961839, 1, 1, 1, 0.65, 1, 3.72529e-08, 0, -1.11759e-08, -0.205247, -0.0144598, -0.0301062, 0.97814, 1, 1, 1, 0.7, 1, 7.45058e-08, -1.19209e-07, -5.58794e-08, 0.0302446, 0.0427142, -0.0345553, 0.998031, 1, 1, 1, 0.75, 1, 8.9407e-08, 0, -1.11759e-07, 0.187052, 0.0967062, -0.0379775, 0.97684, 1, 1, 1, 0.8, 1, 8.19564e-08, -1.19209e-07, 2.23517e-08, 0.173053, 0.130372, -0.0438442, 0.975261, 1, 1, 1, 0.85, 1, 1.49012e-08, 0, -5.21541e-08, 0.163945, 0.140221, -0.046324, 0.975354, 1, 1, 1, 1.25, 1, 1.49012e-08, 0, -5.21541e-08, 0.163945, 0.140221, -0.046324, 0.975354, 1, 1, 1 </real_array>
- <string name="tracks/7/type"> "transform" </string>
- <node_path name="tracks/7/path"> "Armature/Skeleton:l-thigh" </node_path>
- <int name="tracks/7/interp"> 1 </int>
- <real_array name="tracks/7/keys" len="204"> 0, 1, 0, 2.08616e-07, 1.49012e-08, 0.284249, 0.0874448, 0.000525696, 0.954754, 1, 1, 1, 0.05, 1, 0, 1.11759e-07, -1.63913e-07, 0.0840381, 0.068345, -0.00156289, 0.994115, 1, 1, 1, 0.15, 1, 0, -9.68575e-08, -1.19209e-07, -0.428198, 0.103089, -0.0309307, 0.897253, 1, 1, 1, 0.2, 1, 2.98023e-08, 0, -2.5332e-07, -0.585268, 0.121806, -0.0264258, 0.801203, 1, 1, 1, 0.25, 1, -5.96046e-08, -2.68221e-07, -1.93715e-07, -0.68271, 0.117151, -0.00691618, 0.721203, 1, 1, 1, 0.3, 1, 5.96046e-08, 5.21541e-08, 3.57628e-07, -0.675843, 0.0951763, -0.00368054, 0.730865, 1, 1, 1, 0.35, 1, -5.96046e-08, -8.9407e-08, -1.04308e-07, -0.577504, 0.0522321, 0.00297164, 0.81471, 1, 1, 1, 0.4, 1, 0, 7.45058e-09, 1.63913e-07, -0.36481, -0.00958558, 0.0300626, 0.930547, 1, 1, 1, 0.45, 1, -1.19209e-07, 7.45058e-08, 1.49012e-07, -0.214962, -0.0628985, 0.0719756, 0.971933, 1, 1, 1, 0.5, 1, 0, 7.45058e-09, -7.15256e-07, -0.0924244, -0.113076, 0.110988, 0.983033, 1, 1, 1, 0.6, 1, 2.98023e-08, 3.72529e-08, 7.30157e-07, 0.212199, -0.104928, 0.0711089, 0.968971, 1, 1, 1, 0.65, 1, 8.9407e-08, 1.49012e-08, -1.63913e-07, 0.280374, -0.0786743, 0.0551762, 0.955069, 1, 1, 1, 0.7, 1, 0, 1.11759e-07, 2.5332e-07, 0.288443, -0.0349057, 0.033278, 0.956282, 1, 1, 1, 0.75, 1, -2.98023e-08, -1.3411e-07, -6.85453e-07, 0.285487, 0.0289713, 0.0136411, 0.957847, 1, 1, 1, 0.8, 1, -5.96046e-08, 8.9407e-08, -3.27826e-07, 0.284867, 0.0752772, 0.00313844, 0.955602, 1, 1, 1, 0.85, 1, 0, 2.08616e-07, 1.49012e-08, 0.284249, 0.0874448, 0.000525696, 0.954754, 1, 1, 1, 1.25, 1, 0, 2.08616e-07, 1.49012e-08, 0.284249, 0.0874448, 0.000525696, 0.954754, 1, 1, 1 </real_array>
- <string name="tracks/8/type"> "transform" </string>
- <node_path name="tracks/8/path"> "Armature/Skeleton:l-leg" </node_path>
- <int name="tracks/8/interp"> 1 </int>
- <real_array name="tracks/8/keys" len="216"> 0, 1, -6.98492e-10, -2.98023e-08, 4.76837e-07, -0.32359, -0.0556479, 0.000232734, 0.94456, 1, 1, 1, 0.05, 1, 0.0014394, 0.00688202, -0.0998148, -0.562955, -0.0817876, -0.000658042, 0.82243, 1, 1, 1, 0.1, 1, 0.00484604, 0.0231691, -0.333955, -0.80836, -0.0993527, 0.00161956, 0.580241, 1, 1, 1, 0.15, 1, 0.00839999, 0.04016, -0.576718, 0.916395, 0.0904963, -0.00581601, -0.389867, 1, 1, 1, 0.2, 1, 0.010174, 0.048641, -0.697832, 0.949699, 0.0597103, -0.00558806, -0.307368, 1, 1, 1, 0.25, 1, 0.00943748, 0.0451194, -0.647324, 0.940565, -0.00539416, -0.00131091, -0.339569, 1, 1, 1, 0.3, 1, 0.00617793, 0.0295368, -0.424059, -0.852217, 0.0810981, 0.000142268, 0.516865, 1, 1, 1, 0.35, 1, 0.00247674, 0.0118409, -0.170242, -0.686673, 0.0913182, 0.000156236, 0.721208, 1, 1, 1, 0.4, 1, 0.000368256, 0.00176083, -0.02535, -0.450712, 0.0617424, -0.0017981, 0.89053, 1, 1, 1, 0.45, 1, -3.27127e-08, -2.23517e-08, 0, -0.320919, 0.0402711, -0.00287403, 0.946246, 1, 1, 1, 0.5, 1, -3.65544e-08, 2.6077e-07, 0, -0.222093, 0.0121194, -0.000893378, 0.97495, 1, 1, 1, 0.55, 1, -7.85803e-08, -5.21541e-08, 5.96046e-08, -0.085227, -0.0121138, 0.00211304, 0.996286, 1, 1, 1, 0.6, 1, -9.66247e-09, -1.93715e-07, -5.96046e-08, -0.0204391, -0.0111085, 0.00211107, 0.999727, 1, 1, 1, 0.65, 1, -1.47847e-08, -7.45058e-09, 1.19209e-07, -0.0461144, -0.0137229, 0.00155832, 0.998841, 1, 1, 1, 0.75, 1, 9.77889e-08, -8.9407e-08, 0, -0.259445, -0.0379664, 0.000355786, 0.965011, 1, 1, 1, 0.8, 1, -3.06172e-08, -1.19209e-07, 1.19209e-07, -0.311223, -0.0514541, 0.000257438, 0.948943, 1, 1, 1, 0.85, 1, -6.98492e-10, -2.98023e-08, 4.76837e-07, -0.32359, -0.0556479, 0.000232734, 0.94456, 1, 1, 1, 1.25, 1, -6.98492e-10, -2.98023e-08, 4.76837e-07, -0.32359, -0.0556479, 0.000232734, 0.94456, 1, 1, 1 </real_array>
- <string name="tracks/9/type"> "transform" </string>
- <node_path name="tracks/9/path"> "Armature/Skeleton:l-foot" </node_path>
- <int name="tracks/9/interp"> 1 </int>
- <real_array name="tracks/9/keys" len="204"> 0, 1, 2.23517e-08, 1.19209e-07, 7.45058e-09, -0.260411, 0.0677016, 0.0123204, 0.963042, 1, 1, 1, 0.05, 1, 1.49012e-08, 1.19209e-07, -6.33299e-08, -0.261291, 0.0586691, 0.0123934, 0.963396, 1, 1, 1, 0.1, 1, 1.49012e-08, 1.19209e-07, 3.35276e-08, -0.262834, 0.0342669, 0.0126709, 0.964149, 1, 1, 1, 0.2, 1, 1.49012e-08, 0, 1.86265e-08, -0.260355, -0.0293857, 0.0140367, 0.964964, 1, 1, 1, 0.25, 1, -6.70552e-08, 0, -2.49594e-07, -0.153196, -0.0556389, 0.0191204, 0.986443, 1, 1, 1, 0.3, 1, 7.45058e-09, 2.38419e-07, 3.35276e-08, 0.102501, -0.0807205, 0.0313849, 0.990956, 1, 1, 1, 0.35, 1, -1.49012e-08, 1.19209e-07, -1.11759e-08, 0.182765, -0.105332, 0.0403985, 0.976663, 1, 1, 1, 0.4, 1, 0, 2.38419e-07, 2.98023e-08, 0.1689, -0.131443, 0.0454069, 0.975773, 1, 1, 1, 0.45, 1, -2.23517e-08, 1.19209e-07, 1.11759e-08, 0.162548, -0.163949, 0.0367097, 0.972292, 1, 1, 1, 0.5, 1, -7.45058e-09, 1.19209e-07, -6.70552e-08, 0.160675, -0.186181, 0.0223394, 0.969031, 1, 1, 1, 0.55, 1, 0, 2.38419e-07, -4.09782e-08, 0.121712, -0.123055, 0.0340729, 0.984318, 1, 1, 1, 0.65, 1, -2.23517e-08, 2.38419e-07, -4.84288e-08, -0.0909908, -0.00331438, 0.030867, 0.995368, 1, 1, 1, 0.7, 1, -2.98023e-08, 0, -1.86265e-08, -0.167009, 0.0327264, 0.0253347, 0.985086, 1, 1, 1, 0.75, 1, -1.49012e-08, 2.38419e-07, -9.31323e-08, -0.225897, 0.0565391, 0.0182554, 0.972338, 1, 1, 1, 0.8, 1, 7.45058e-09, 0, 1.41561e-07, -0.254123, 0.0658906, 0.0135391, 0.96483, 1, 1, 1, 0.85, 1, 2.23517e-08, 1.19209e-07, 7.45058e-09, -0.260411, 0.0677016, 0.0123204, 0.963042, 1, 1, 1, 1.25, 1, 2.23517e-08, 1.19209e-07, 7.45058e-09, -0.260411, 0.0677016, 0.0123204, 0.963042, 1, 1, 1 </real_array>
- <string name="tracks/10/type"> "transform" </string>
- <node_path name="tracks/10/path"> "Armature/Skeleton:MASTER" </node_path>
- <int name="tracks/10/interp"> 1 </int>
- <real_array name="tracks/10/keys" len="24"> 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/11/type"> "transform" </string>
- <node_path name="tracks/11/path"> "Armature/Skeleton:HEAD" </node_path>
- <int name="tracks/11/interp"> 1 </int>
- <real_array name="tracks/11/keys" len="192"> 0, 1, -5.68434e-14, 0, 0.994808, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -5.68434e-14, 0, 0.908378, 0, 0, 0, 1, 1, 1, 1, 0.1, 1, -5.68434e-14, 0, 0.865919, 0, 0, 7.10543e-15, 1, 1, 1, 1, 0.15, 1, -5.68434e-14, 0, 0.952043, 0, 0, 0, 1, 1, 1, 1, 0.25, 1, -5.68434e-14, 0, 1.23636, 0, 0, 0, 1, 1, 1, 1, 0.3, 1, -5.68434e-14, 0, 1.26452, 0, 0, 7.10543e-15, 1, 1, 1, 1, 0.35, 1, -5.68434e-14, 0, 1.17812, 0, 0, -7.10543e-15, 1, 1, 1, 1, 0.45, 1, -5.68434e-14, 0, 0.917901, 0, 0, 0, 1, 1, 1, 1, 0.5, 1, -5.68434e-14, 0, 0.850875, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, -5.68434e-14, 0, 0.90967, 0, 0, 0, 1, 1, 1, 1, 0.65, 1, -5.68434e-14, 0, 1.19399, 0, 0, 0, 1, 1, 1, 1, 0.7, 1, -5.68434e-14, 0, 1.26645, 0, 0, 7.10543e-15, 1, 1, 1, 1, 0.75, 1, -5.68434e-14, 0, 1.20667, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, -5.68434e-14, 0, 1.04898, 0, 0, 7.10543e-15, 1, 1, 1, 1, 0.85, 1, -5.68434e-14, 0, 0.994808, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -5.68434e-14, 0, 0.994808, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/12/type"> "transform" </string>
- <node_path name="tracks/12/path"> "Armature/Skeleton:r-LEGCONTROL" </node_path>
- <int name="tracks/12/interp"> 1 </int>
- <real_array name="tracks/12/keys" len="192"> 0, 1, -0.142338, -0.593751, 0.041427, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -0.141891, -0.466314, 0.0666584, 0, 0, 0, 1, 1, 1, 1, 0.1, 1, -0.140854, -0.18721, 0.16679, 0, 0, 0, 1, 1, 1, 1, 0.3, 1, -0.135712, 0.882052, 1.08263, 0, 0, 0, 1, 1, 1, 1, 0.35, 1, -0.134593, 1.04285, 1.23903, 0, 0, 0, 1, 1, 1, 1, 0.4, 1, -0.134052, 1.11594, 1.33052, 0, 0, 0, 1, 1, 1, 1, 0.45, 1, -0.134139, 1.01025, 1.37488, 0, 0, 0, 1, 1, 1, 1, 0.5, 1, -0.134864, 0.561422, 1.40083, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, -0.136154, -0.107091, 1.41207, 0, 0, 0, 1, 1, 1, 1, 0.6, 1, -0.137517, -0.627938, 1.41499, 0, 0, 0, 1, 1, 1, 1, 0.65, 1, -0.138802, -0.880369, 1.32217, 0, 0, 0, 1, 1, 1, 1, 0.7, 1, -0.140187, -0.97361, 0.946171, 0, 0, 0, 1, 1, 1, 1, 0.75, 1, -0.141374, -0.990009, 0.507478, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, -0.142135, -0.753522, 0.166703, 0, 0, 0, 1, 1, 1, 1, 0.85, 1, -0.142338, -0.593751, 0.041427, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.142338, -0.593751, 0.041427, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/13/type"> "transform" </string>
- <node_path name="tracks/13/path"> "Armature/Skeleton:l-LEGCONTROL" </node_path>
- <int name="tracks/13/interp"> 1 </int>
- <real_array name="tracks/13/keys" len="192"> 0, 1, 0.133965, 1.12742, 1.35169, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 0.134319, 0.88137, 1.36048, 0, 0, 0, 1, 1, 1, 1, 0.15, 1, 0.136624, -0.318866, 1.4031, 0, 0, 0, 1, 1, 1, 1, 0.2, 1, 0.13794, -0.745207, 1.41408, 0, 0, 0, 1, 1, 1, 1, 0.25, 1, 0.139237, -0.932173, 1.26013, 0, 0, 0, 1, 1, 1, 1, 0.3, 1, 0.140615, -0.985177, 0.795642, 0, 0, 0, 1, 1, 1, 1, 0.35, 1, 0.141658, -0.933265, 0.382912, 0, 0, 0, 1, 1, 1, 1, 0.4, 1, 0.142236, -0.69551, 0.103281, 0, 0, 0, 1, 1, 1, 1, 0.45, 1, 0.142112, -0.449542, 0.0515677, 0, 0, 0, 1, 1, 1, 1, 0.5, 1, 0.141234, -0.239295, 0.11699, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, 0.140074, 0.0127278, 0.285218, 0, 0, 0, 1, 1, 1, 1, 0.7, 1, 0.136158, 0.812955, 1.03336, 0, 0, 0, 1, 1, 1, 1, 0.75, 1, 0.134866, 1.00553, 1.22614, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, 0.13414, 1.10444, 1.32777, 0, 0, 0, 1, 1, 1, 1, 0.85, 1, 0.133965, 1.12742, 1.35169, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.133965, 1.12742, 1.35169, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/14/type"> "transform" </string>
- <node_path name="tracks/14/path"> "Armature/Skeleton:r-LEGORIENT" </node_path>
- <int name="tracks/14/interp"> 1 </int>
- <real_array name="tracks/14/keys" len="180"> 0, 1, 0.100474, 0.669825, -0.778672, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 0.0953997, 0.642052, -0.742965, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 0.1, 1, 0.0823101, 0.56581, -0.648221, 4.1297e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.35, 1, 0.0243976, -0.0441461, -0.063019, 4.1297e-08, 2.53394e-15, -7.10543e-15, 1, 1, 1, 1, 0.4, 1, 0.020945, -0.11126, -0.00892317, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 0.45, 1, 0.0214889, -0.0993756, -0.1204, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.5, 1, 0.0261557, -0.00703263, -0.571036, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, 0.0350212, 0.144668, -1.19143, 7.10993e-08, 6.08666e-15, -4.32757e-22, 1, 1, 1, 1, 0.6, 1, 0.0452013, 0.286137, -1.58564, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.65, 1, 0.056361, 0.396596, -1.62736, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.7, 1, 0.0713525, 0.504199, -1.41721, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 0.75, 1, 0.0877976, 0.602767, -1.08603, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, 0.097935, 0.656912, -0.843801, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 0.85, 1, 0.100474, 0.669825, -0.778672, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.100474, 0.669825, -0.778672, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/15/type"> "transform" </string>
- <node_path name="tracks/15/path"> "Armature/Skeleton:l-LEGORIENT" </node_path>
- <int name="tracks/15/interp"> 1 </int>
- <real_array name="tracks/15/keys" len="180"> 0, 1, -0.0204011, -0.122407, 5.96046e-08, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -0.0226399, -0.0760723, -0.246171, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 0.15, 1, -0.0384328, 0.195889, -1.36473, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.2, 1, -0.0485586, 0.325533, -1.64571, 7.10993e-08, 9.63937e-15, -6.85353e-22, 1, 1, 1, 1, 0.25, 1, -0.0604436, 0.430887, -1.61593, 0, 0, 0, 1, 1, 1, 1, 0.3, 1, -0.0768237, 0.538687, -1.39129, 7.10993e-08, 2.53394e-15, -2.11758e-22, 1, 1, 1, 1, 0.35, 1, -0.0915991, 0.623227, -1.09587, 4.1297e-08, 2.53394e-15, -7.10543e-15, 1, 1, 1, 1, 0.4, 1, -0.0992045, 0.663389, -0.847581, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 0.45, 1, -0.0979352, 0.656214, -0.687419, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.5, 1, -0.0877979, 0.599371, -0.580202, 0, 0, 0, 1, 1, 1, 1, 0.65, 1, -0.0452008, 0.276356, -0.334939, 7.10993e-08, 2.53395e-15, 7.10543e-15, 1, 1, 1, 1, 0.75, 1, -0.0261556, -0.010167, -0.0897738, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, -0.0214889, -0.0999783, -0.0177123, 7.10993e-08, 6.08666e-15, 7.10543e-15, 1, 1, 1, 1, 0.85, 1, -0.0204011, -0.122407, 5.96046e-08, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.0204011, -0.122407, 5.96046e-08, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/16/type"> "transform" </string>
- <node_path name="tracks/16/path"> "Armature/Skeleton:r-ARMCONTROL" </node_path>
- <int name="tracks/16/interp"> 1 </int>
- <real_array name="tracks/16/keys" len="168"> 0, 1, -0.868295, 0.288818, -0.834593, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -0.920336, 0.223441, -0.675278, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, -1.0611, 0.0535004, -0.268795, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.3, 1, -1.81549, -0.572945, 1.93497, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.35, 1, -1.97521, -0.260334, 2.42549, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.4, 1, -2.07242, 0.0952058, 2.72719, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.45, 1, -2.06152, 0.134094, 2.70055, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.5, 1, -1.94935, -0.00418663, 2.38214, 0, 0, 0, 1, 1, 1, 1, 0.6, 1, -1.5659, -0.316463, 1.27531, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.65, 1, -1.39564, -0.31023, 0.768786, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.75, 1, -1.01032, 0.0728607, -0.380929, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, -0.896442, 0.243316, -0.739858, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.85, 1, -0.868295, 0.288818, -0.834593, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -0.868295, 0.288818, -0.834593, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/17/type"> "transform" </string>
- <node_path name="tracks/17/path"> "Armature/Skeleton:l-ARMCONTROL" </node_path>
- <int name="tracks/17/interp"> 1 </int>
- <real_array name="tracks/17/keys" len="168"> 0, 1, 2.08906, 0.170859, 2.78004, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 2.03311, 0.0989122, 2.61048, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, 1.88529, -0.0705678, 2.18507, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.2, 1, 1.50915, -0.334755, 1.10648, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.25, 1, 1.33866, -0.287646, 0.593788, 0, 0, 0, 1, 1, 1, 1, 0.35, 1, 0.966909, 0.137533, -0.532556, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.4, 1, 0.882217, 0.266322, -0.791318, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.45, 1, 0.89374, 0.256562, -0.760212, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.5, 1, 0.999084, 0.126561, -0.459517, 0, 0, 0, 1, 1, 1, 1, 0.7, 1, 1.75712, -0.595706, 1.75783, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.75, 1, 1.92686, -0.424236, 2.27222, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, 2.0556, 0.0151663, 2.66931, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.85, 1, 2.08906, 0.170859, 2.78004, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 2.08906, 0.170859, 2.78004, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/18/type"> "transform" </string>
- <node_path name="tracks/18/path"> "Armature/Skeleton:r-ARMORIENT" </node_path>
- <int name="tracks/18/interp"> 1 </int>
- <real_array name="tracks/18/keys" len="156"> 0, 1, 0.405204, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, 0.341349, -0.264663, 0.0556155, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.15, 1, 0.0336542, -1.45692, 0.323532, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.2, 1, -0.0452293, -1.75482, 0.391734, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.25, 1, 0.0926713, -1.62165, 0.363375, 0, 0, 0, 1, 1, 1, 1, 0.35, 1, 1.18685, -0.378264, 0.0954279, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.4, 1, 1.51909, 0.00473738, 0.0141962, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.45, 1, 1.55064, 0.0706801, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.5, 1, 1.44211, 0.0639179, 0, 0, 0, 0, 1, 1, 1, 1, 0.75, 1, 0.54098, 0.00832748, 0, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, 0.432091, 0.00163841, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.85, 1, 0.405204, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, 0.405204, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/19/type"> "transform" </string>
- <node_path name="tracks/19/path"> "Armature/Skeleton:l-ARMORIENT" </node_path>
- <int name="tracks/19/interp"> 1 </int>
- <real_array name="tracks/19/keys" len="168"> 0, 1, -1.5774, 0.0723579, 0, 0, 0, 0, 1, 1, 1, 1, 0.05, 1, -1.5235, 0.0690539, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.1, 1, -1.38104, 0.0602572, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.4, 1, -0.448482, 0.0061903, 0, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.45, 1, -0.312683, -0.140136, 0.0283925, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.5, 1, -0.161211, -0.627825, 0.135386, 0, 0, 0, 1, 1, 1, 1, 0.55, 1, -0.030728, -1.28144, 0.283529, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.6, 1, 0.0389389, -1.69292, 0.377552, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.65, 1, -0.0330012, -1.68882, 0.377568, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.7, 1, -0.409697, -1.26443, 0.283661, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.75, 1, -1.00503, -0.588506, 0.135634, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, -1.45325, -0.0721812, 0.0284887, -5.1658e-08, 0, 0, 1, 1, 1, 1, 0.85, 1, -1.5774, 0.0723579, 0, 0, 0, 0, 1, 1, 1, 1, 1.25, 1, -1.5774, 0.0723579, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/20/type"> "transform" </string>
- <node_path name="tracks/20/path"> "Armature/Skeleton:hip" </node_path>
- <int name="tracks/20/interp"> 1 </int>
- <real_array name="tracks/20/keys" len="216"> 0, 1, 0.050238, 0.697428, 0.108012, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1, 0.05, 1, 0.0669454, 0.729981, 0.0847113, 0.0751978, 0.000902196, 0.0773167, 0.994166, 1, 1, 1, 0.15, 1, 0.147711, 0.887191, -0.02789, 0.103321, 0.0347243, 0.0196114, 0.993848, 1, 1, 1, 0.2, 1, 0.168294, 0.927241, -0.0565808, 0.110419, 0.0433374, -0.00845134, 0.992904, 1, 1, 1, 0.25, 1, 0.154709, 0.910602, -0.0446639, 0.107418, 0.0422538, -0.0318613, 0.992804, 1, 1, 1, 0.3, 1, 0.0960078, 0.836978, 0.00806546, 0.0942701, 0.034167, -0.0564973, 0.993355, 1, 1, 1, 0.35, 1, 0.021745, 0.753374, 0.0679436, 0.0793445, 0.0222103, -0.0760792, 0.993692, 1, 1, 1, 0.4, 1, -0.035471, 0.705747, 0.102054, 0.07085, 0.00995431, -0.0854402, 0.993771, 1, 1, 1, 0.45, 1, -0.0674228, 0.714066, 0.0960958, 0.0723594, -0.00257329, -0.0821245, 0.993989, 1, 1, 1, 0.5, 1, -0.0866932, 0.776805, 0.0511615, 0.0836199, -0.0185098, -0.0626717, 0.994353, 1, 1, 1, 0.55, 1, -0.0950061, 0.863738, -0.0110998, 0.0991637, -0.0338542, -0.0304325, 0.994029, 1, 1, 1, 0.6, 1, -0.0971422, 0.918921, -0.0506222, 0.108957, -0.0424157, -6.6921e-05, 0.993141, 1, 1, 1, 0.65, 1, -0.0894483, 0.918925, -0.0506237, 0.108927, -0.0421963, 0.0241723, 0.99286, 1, 1, 1, 0.7, 1, -0.0546535, 0.863773, -0.0111129, 0.0990954, -0.0332032, 0.0485143, 0.99334, 1, 1, 1, 0.75, 1, 0.000162542, 0.776872, 0.051137, 0.0835711, -0.0190219, 0.071275, 0.993768, 1, 1, 1, 0.8, 1, 0.0397389, 0.714092, 0.0960863, 0.072346, -0.00878352, 0.08392, 0.993804, 1, 1, 1, 0.85, 1, 0.050238, 0.697428, 0.108012, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1, 1.25, 1, 0.050238, 0.697428, 0.108012, 0.0693673, -0.00606888, 0.0869442, 0.993777, 1, 1, 1 </real_array>
- <string name="tracks/21/type"> "transform" </string>
- <node_path name="tracks/21/path"> "Armature/Skeleton:waist" </node_path>
- <int name="tracks/21/interp"> 1 </int>
- <real_array name="tracks/21/keys" len="180"> 0, 1, 7.45059e-09, -5.21541e-08, 2.38419e-07, 0.0550011, -0.00481196, -0.0870228, 0.994675, 1, 1, 1, 0.05, 1, -2.16067e-08, -1.49015e-09, 1.19209e-07, 0.0607085, -0.00428583, -0.0791363, 0.995004, 1, 1, 1, 0.1, 1, -2.23518e-09, 4.61936e-08, 1.49012e-07, 0.0742298, -0.00290666, -0.0580589, 0.995545, 1, 1, 1, 0.2, 1, -1.22934e-08, -7.00588e-08, 1.49012e-07, 0.0953622, 0.000412438, -0.00409159, 0.995434, 1, 1, 1, 0.25, 1, -1.86265e-08, 1.39698e-08, -1.49012e-07, 0.0924473, 0.00171257, 0.0202586, 0.99551, 1, 1, 1, 0.35, 1, -1.56462e-08, 3.1013e-08, 0, 0.0648424, 0.00419923, 0.0731356, 0.995203, 1, 1, 1, 0.4, 1, 2.23523e-09, -2.84985e-08, 1.19209e-07, 0.0564666, 0.00472734, 0.0850757, 0.994762, 1, 1, 1, 0.45, 1, -4.47039e-09, 2.23518e-08, -8.9407e-08, 0.0579181, 0.00454757, 0.0830774, 0.994848, 1, 1, 1, 0.5, 1, 8.43755e-15, -5.58794e-08, 8.9407e-08, 0.0689504, 0.00348495, 0.0670145, 0.995361, 1, 1, 1, 0.6, 1, 5.5879e-09, -7.60309e-08, -2.98023e-08, 0.0939097, 5.69107e-05, 0.0121633, 0.995506, 1, 1, 1, 0.65, 1, 1.78815e-08, -2.31898e-08, 3.27826e-07, 0.0939129, -0.00128467, -0.0120988, 0.995506, 1, 1, 1, 0.75, 1, -1.86265e-09, 3.11993e-08, -2.98023e-08, 0.0689717, -0.00392611, -0.0670089, 0.995358, 1, 1, 1, 0.8, 1, 1.49013e-09, 4.80559e-08, 0, 0.0579302, -0.00464071, -0.0830884, 0.994846, 1, 1, 1, 0.85, 1, 7.45059e-09, -5.21541e-08, 2.38419e-07, 0.0550011, -0.00481196, -0.0870228, 0.994675, 1, 1, 1, 1.25, 1, 7.45059e-09, -5.21541e-08, 2.38419e-07, 0.0550011, -0.00481196, -0.0870228, 0.994675, 1, 1, 1 </real_array>
- <string name="tracks/22/type"> "transform" </string>
- <node_path name="tracks/22/path"> "Armature/Skeleton:chest" </node_path>
- <int name="tracks/22/interp"> 1 </int>
- <real_array name="tracks/22/keys" len="168"> 0, 1, -1.93979e-09, 3.72529e-08, -1.78814e-07, 0.0947232, -0.00739035, -0.0868418, 0.991681, 1, 1, 1, 0.05, 1, 9.31322e-10, 7.07805e-08, 5.96046e-08, 0.0947233, -0.00739035, -0.0868419, 0.991681, 1, 1, 1, 0.1, 1, 6.51926e-10, 7.07805e-08, 5.96046e-08, 0.0949443, -0.00694628, -0.0757376, 0.992573, 1, 1, 1, 0.15, 1, 3.7253e-10, -2.6077e-08, -2.38419e-07, 0.0959905, -0.00433497, -0.0114678, 0.995307, 1, 1, 1, 0.25, 1, 1.86265e-08, 2.23517e-08, 1.19209e-07, 0.0965992, 0.00494126, 0.201269, 0.974749, 1, 1, 1, 0.3, 1, -7.68343e-10, 7.45058e-09, 1.78814e-07, 0.0963173, 0.00675391, 0.221794, 0.970301, 1, 1, 1, 0.4, 1, -1.56574e-10, 7.82311e-08, -1.78814e-07, 0.0949654, 0.0073896, 0.100605, 0.990356, 1, 1, 1, 0.45, 1, 3.30057e-09, 1.08033e-07, -5.96046e-08, 0.0947232, 0.00739035, 0.0868418, 0.991681, 1, 1, 1, 0.5, 1, -3.25963e-09, -9.31323e-08, 5.96046e-08, 0.0947232, 0.00739035, 0.0868418, 0.991681, 1, 1, 1, 0.55, 1, -2.10027e-08, 7.45058e-08, -1.78814e-07, 0.0955253, 0.00546829, 0.0431828, 0.994475, 1, 1, 1, 0.65, 1, 1.26195e-08, -4.84288e-08, -2.38419e-07, 0.0967914, -0.0040173, -0.170015, 0.980668, 1, 1, 1, 0.7, 1, 1.23865e-08, -8.19564e-08, -5.96046e-08, 0.0964064, -0.00640121, -0.223121, 0.969991, 1, 1, 1, 0.75, 1, 1.86265e-09, -7.07805e-08, -2.98023e-07, 0.0963505, -0.00664593, -0.228565, 0.968726, 1, 1, 1, 1.25, 1, -1.93979e-09, 3.72529e-08, -1.78814e-07, 0.0963505, -0.00664594, -0.228565, 0.968726, 1, 1, 1 </real_array>
- <string name="tracks/23/type"> "transform" </string>
- <node_path name="tracks/23/path"> "Armature/Skeleton:neck" </node_path>
- <int name="tracks/23/interp"> 1 </int>
- <real_array name="tracks/23/keys" len="24"> 0, 1, -1.95579e-08, -1.49012e-08, -9.53674e-07, -7.45058e-09, -2.48375e-09, 8.87174e-09, 1, 1, 1, 1, 1.25, 1, -6.51927e-08, -7.45058e-08, -9.53674e-07, 6.80667e-18, 2.71908e-09, -1.56593e-08, 1, 1, 1, 1 </real_array>
- <string name="tracks/24/type"> "transform" </string>
- <node_path name="tracks/24/path"> "Armature/Skeleton:headtracker" </node_path>
- <int name="tracks/24/interp"> 1 </int>
- <real_array name="tracks/24/keys" len="204"> 0, 1, 2.79375e-09, -5.96046e-07, -2.50526e-07, 0.174741, -0.0963796, 0.0144345, 0.97978, 1, 1, 1, 0.05, 1, -3.7254e-09, -2.08616e-07, -1.22236e-07, 0.195715, -0.0950264, 0.0238173, 0.975755, 1, 1, 1, 0.1, 1, 4.54485e-08, -7.15256e-07, -7.68341e-08, 0.229373, -0.0816785, 0.0404464, 0.969062, 1, 1, 1, 0.15, 1, -1.49012e-08, -6.85453e-07, -8.59145e-08, 0.25499, -0.0176933, 0.0391946, 0.965987, 1, 1, 1, 0.25, 1, 1.4901e-08, -1.49012e-07, -1.78115e-07, 0.23692, 0.192561, -0.0167461, 0.952108, 1, 1, 1, 0.3, 1, -4.61937e-08, -4.47035e-07, -1.46218e-07, 0.20349, 0.220566, -0.0253329, 0.953573, 1, 1, 1, 0.35, 1, 8.94071e-09, -2.68221e-07, -1.97906e-08, 0.179164, 0.172369, -0.0185073, 0.968425, 1, 1, 1, 0.4, 1, 2.23509e-09, -3.57628e-07, -9.56934e-08, 0.17384, 0.110352, -0.0138213, 0.978474, 1, 1, 1, 0.45, 1, -2.75671e-08, -7.45058e-07, 2.63099e-08, 0.188123, 0.0930304, -0.0247279, 0.977417, 1, 1, 1, 0.5, 1, -9.31436e-10, 4.47035e-07, -6.37956e-08, 0.217624, 0.0872372, -0.0441829, 0.971122, 1, 1, 1, 0.55, 1, 1.04306e-08, -2.38419e-07, -1.33412e-07, 0.247766, 0.0401273, -0.0490683, 0.966744, 1, 1, 1, 0.65, 1, 3.27827e-08, -4.47035e-07, -6.26314e-08, 0.245106, -0.170404, 0.00637661, 0.954382, 1, 1, 1, 0.7, 1, 3.27823e-08, -1.49012e-07, -6.70552e-08, 0.212986, -0.224596, 0.0272969, 0.950499, 1, 1, 1, 0.75, 1, -7.45057e-08, 0, 6.33299e-08, 0.183845, -0.233119, 0.0392625, 0.954104, 1, 1, 1, 0.8, 1, -6.7055e-08, -5.96046e-07, -5.00586e-08, 0.175853, -0.235075, 0.0484733, 0.954707, 1, 1, 1, 0.85, 1, 7.45066e-09, -6.55651e-07, 6.75209e-09, 0.174943, -0.235515, 0.051072, 0.95463, 1, 1, 1, 1.25, 1, 7.45066e-09, -6.55651e-07, 6.75209e-09, 0.174943, -0.235515, 0.051072, 0.95463, 1, 1, 1 </real_array>
- <string name="tracks/25/type"> "transform" </string>
- <node_path name="tracks/25/path"> "Armature/Skeleton:head" </node_path>
- <int name="tracks/25/interp"> 1 </int>
- <real_array name="tracks/25/keys" len="24"> 0, 1, -1.25867e-08, -4.23752e-08, -2.57976e-07, 2.23517e-08, 3.7017e-10, 7.60394e-10, 1, 1, 1, 1, 1.25, 1, 1.23749e-08, -2.09548e-09, 2.43308e-07, 2.23517e-08, -2.79233e-10, -7.29088e-11, 1, 1, 1, 1 </real_array>
- <string name="tracks/26/type"> "transform" </string>
- <node_path name="tracks/26/path"> "Armature/Skeleton:vent" </node_path>
- <int name="tracks/26/interp"> 1 </int>
- <real_array name="tracks/26/keys" len="24"> 0, 1, 5.20962e-08, 0.00292337, 0.204329, -7.21775e-09, 1.1358e-11, -7.03732e-10, 1, 1, 1, 1, 1.25, 1, 4.12186e-08, 0.00292328, 0.20433, -8.14907e-09, 9.21561e-11, 1.63806e-10, 1, 1, 1, 1 </real_array>
-
- </resource>
- <resource type="Animation" path="local://14">
- <string name="resource/name"> "default" </string>
- <real name="length"> 1.25 </real>
- <bool name="loop"> False </bool>
- <real name="step"> 0.1 </real>
- <string name="tracks/0/type"> "transform" </string>
- <node_path name="tracks/0/path"> "Armature/Skeleton:r-arm" </node_path>
- <int name="tracks/0/interp"> 1 </int>
- <real_array name="tracks/0/keys" len="12"> 0, 1, 5.06639e-07, -1.19209e-07, 3.57628e-07, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/1/type"> "transform" </string>
- <node_path name="tracks/1/path"> "Armature/Skeleton:r-forearm" </node_path>
- <int name="tracks/1/interp"> 1 </int>
- <real_array name="tracks/1/keys" len="12"> 0, 1, 1.19209e-07, -8.9407e-07, -1.19209e-07, -3.72529e-08, -1.49012e-08, 2.23517e-08, 1, 1, 1, 1 </real_array>
- <string name="tracks/2/type"> "transform" </string>
- <node_path name="tracks/2/path"> "Armature/Skeleton:l-arm" </node_path>
- <int name="tracks/2/interp"> 1 </int>
- <real_array name="tracks/2/keys" len="12"> 0, 1, -5.06639e-07, -1.19209e-07, 3.57628e-07, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/3/type"> "transform" </string>
- <node_path name="tracks/3/path"> "Armature/Skeleton:l-forearm" </node_path>
- <int name="tracks/3/interp"> 1 </int>
- <real_array name="tracks/3/keys" len="12"> 0, 1, -1.19209e-07, -8.9407e-07, -1.19209e-07, -3.72529e-08, 1.49012e-08, -2.23517e-08, 1, 1, 1, 1 </real_array>
- <string name="tracks/4/type"> "transform" </string>
- <node_path name="tracks/4/path"> "Armature/Skeleton:r-thigh" </node_path>
- <int name="tracks/4/interp"> 1 </int>
- <real_array name="tracks/4/keys" len="12"> 0, 1, 0, 2.98023e-08, -2.5332e-07, 0, 5.20417e-18, -2.79397e-09, 1, 1, 1, 1 </real_array>
- <string name="tracks/5/type"> "transform" </string>
- <node_path name="tracks/5/path"> "Armature/Skeleton:r-leg" </node_path>
- <int name="tracks/5/interp"> 1 </int>
- <real_array name="tracks/5/keys" len="12"> 0, 1, 2.10712e-08, -7.45058e-09, 5.96046e-07, 7.45058e-09, 3.60887e-09, 3.91446e-09, 1, 1, 1, 1 </real_array>
- <string name="tracks/6/type"> "transform" </string>
- <node_path name="tracks/6/path"> "Armature/Skeleton:r-foot" </node_path>
- <int name="tracks/6/interp"> 1 </int>
- <real_array name="tracks/6/keys" len="12"> 0, 1, 6.70552e-08, 1.19209e-07, 0, 3.72529e-09, 1.16415e-09, 3.72529e-09, 1, 1, 1, 1 </real_array>
- <string name="tracks/7/type"> "transform" </string>
- <node_path name="tracks/7/path"> "Armature/Skeleton:l-thigh" </node_path>
- <int name="tracks/7/interp"> 1 </int>
- <real_array name="tracks/7/keys" len="12"> 0, 1, 0, 2.98023e-08, -1.49012e-08, 1.86265e-09, 7.45058e-09, 2.09548e-09, 1, 1, 1, 1 </real_array>
- <string name="tracks/8/type"> "transform" </string>
- <node_path name="tracks/8/path"> "Armature/Skeleton:l-leg" </node_path>
- <int name="tracks/8/interp"> 1 </int>
- <real_array name="tracks/8/keys" len="12"> 0, 1, 1.74623e-08, -2.98023e-08, 2.98023e-07, 3.72529e-09, 7.45058e-09, -1.17143e-09, 1, 1, 1, 1 </real_array>
- <string name="tracks/9/type"> "transform" </string>
- <node_path name="tracks/9/path"> "Armature/Skeleton:l-foot" </node_path>
- <int name="tracks/9/interp"> 1 </int>
- <real_array name="tracks/9/keys" len="12"> 0, 1, 1.49012e-08, 0, 0, 0, -1.39698e-09, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/10/type"> "transform" </string>
- <node_path name="tracks/10/path"> "Armature/Skeleton:MASTER" </node_path>
- <int name="tracks/10/interp"> 1 </int>
- <real_array name="tracks/10/keys" len="12"> 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/11/type"> "transform" </string>
- <node_path name="tracks/11/path"> "Armature/Skeleton:HEAD" </node_path>
- <int name="tracks/11/interp"> 1 </int>
- <real_array name="tracks/11/keys" len="12"> 0, 1, -5.68434e-14, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/12/type"> "transform" </string>
- <node_path name="tracks/12/path"> "Armature/Skeleton:r-LEGCONTROL" </node_path>
- <int name="tracks/12/interp"> 1 </int>
- <real_array name="tracks/12/keys" len="12"> 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/13/type"> "transform" </string>
- <node_path name="tracks/13/path"> "Armature/Skeleton:l-LEGCONTROL" </node_path>
- <int name="tracks/13/interp"> 1 </int>
- <real_array name="tracks/13/keys" len="12"> 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/14/type"> "transform" </string>
- <node_path name="tracks/14/path"> "Armature/Skeleton:r-LEGORIENT" </node_path>
- <int name="tracks/14/interp"> 1 </int>
- <real_array name="tracks/14/keys" len="12"> 0, 1, -2.98023e-08, 1.19209e-07, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/15/type"> "transform" </string>
- <node_path name="tracks/15/path"> "Armature/Skeleton:l-LEGORIENT" </node_path>
- <int name="tracks/15/interp"> 1 </int>
- <real_array name="tracks/15/keys" len="12"> 0, 1, 2.98023e-08, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/16/type"> "transform" </string>
- <node_path name="tracks/16/path"> "Armature/Skeleton:r-ARMCONTROL" </node_path>
- <int name="tracks/16/interp"> 1 </int>
- <real_array name="tracks/16/keys" len="12"> 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/17/type"> "transform" </string>
- <node_path name="tracks/17/path"> "Armature/Skeleton:l-ARMCONTROL" </node_path>
- <int name="tracks/17/interp"> 1 </int>
- <real_array name="tracks/17/keys" len="12"> 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/18/type"> "transform" </string>
- <node_path name="tracks/18/path"> "Armature/Skeleton:r-ARMORIENT" </node_path>
- <int name="tracks/18/interp"> 1 </int>
- <real_array name="tracks/18/keys" len="12"> 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/19/type"> "transform" </string>
- <node_path name="tracks/19/path"> "Armature/Skeleton:l-ARMORIENT" </node_path>
- <int name="tracks/19/interp"> 1 </int>
- <real_array name="tracks/19/keys" len="12"> 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 </real_array>
- <string name="tracks/20/type"> "transform" </string>
- <node_path name="tracks/20/path"> "Armature/Skeleton:hip" </node_path>
- <int name="tracks/20/interp"> 1 </int>
- <real_array name="tracks/20/keys" len="12"> 0, 1, 0, -2.84217e-14, 0, 0, 0, 1.44945e-21, 1, 1, 1, 1 </real_array>
- <string name="tracks/21/type"> "transform" </string>
- <node_path name="tracks/21/path"> "Armature/Skeleton:waist" </node_path>
- <int name="tracks/21/interp"> 1 </int>
- <real_array name="tracks/21/keys" len="12"> 0, 1, -6.35275e-21, 2.84217e-14, 0, 0, 0, 2.44616e-35, 1, 1, 1, 1 </real_array>
- <string name="tracks/22/type"> "transform" </string>
- <node_path name="tracks/22/path"> "Armature/Skeleton:chest" </node_path>
- <int name="tracks/22/interp"> 1 </int>
- <real_array name="tracks/22/keys" len="12"> 0, 1, -3.38813e-21, 0, 0, 0, 0, -1.33383e-23, 1, 1, 1, 1 </real_array>
- <string name="tracks/23/type"> "transform" </string>
- <node_path name="tracks/23/path"> "Armature/Skeleton:neck" </node_path>
- <int name="tracks/23/interp"> 1 </int>
- <real_array name="tracks/23/keys" len="12"> 0, 1, -8.52651e-14, -5.96046e-08, -7.15256e-07, 1.17383e-27, 2.13163e-14, 5.50671e-14, 1, 1, 1, 1 </real_array>
- <string name="tracks/24/type"> "transform" </string>
- <node_path name="tracks/24/path"> "Armature/Skeleton:headtracker" </node_path>
- <int name="tracks/24/interp"> 1 </int>
- <real_array name="tracks/24/keys" len="12"> 0, 1, -1.77636e-13, 5.96046e-08, -5.98375e-08, 7.45058e-09, 1.04639e-13, -2.13163e-14, 1, 1, 1, 1 </real_array>
- <string name="tracks/25/type"> "transform" </string>
- <node_path name="tracks/25/path"> "Armature/Skeleton:head" </node_path>
- <int name="tracks/25/interp"> 1 </int>
- <real_array name="tracks/25/keys" len="12"> 0, 1, -2.30926e-14, -1.22469e-07, 2.39583e-07, -2.52436e-28, 7.10543e-15, -7.10543e-15, 1, 1, 1, 1 </real_array>
- <string name="tracks/26/type"> "transform" </string>
- <node_path name="tracks/26/path"> "Armature/Skeleton:vent" </node_path>
- <int name="tracks/26/interp"> 1 </int>
- <real_array name="tracks/26/keys" len="12"> 0, 1, 3.55271e-15, 5.96046e-08, -7.15256e-07, 1.97906e-09, -2.66454e-15, 5.59448e-15, 1, 1, 1, 1 </real_array>
-
- </resource>
- <main_resource>
- <dictionary name="_bundled" shared="false">
- <string> "names" </string>
- <string_array len="249">
- <string> "player" </string>
- <string> "RigidBody" </string>
- <string> "shape_count" </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> "mode" </string>
- <string> "mass" </string>
- <string> "friction" </string>
- <string> "bounce" </string>
- <string> "custom_integrator" </string>
- <string> "continuous_cd" </string>
- <string> "contacts_reported" </string>
- <string> "contact_monitor" </string>
- <string> "active" </string>
- <string> "can_sleep" </string>
- <string> "velocity/linear" </string>
- <string> "velocity/angular" </string>
- <string> "script/script" </string>
- <string> "__meta__" </string>
- <string> "collision_capsule" </string>
- <string> "CollisionShape" </string>
- <string> "transform/local" </string>
- <string> "shape" </string>
- <string> "trigger" </string>
- <string> "collision_ray" </string>
- <string> "target" </string>
- <string> "Spatial" </string>
- <string> "camera" </string>
- <string> "Camera" </string>
- <string> "projection" </string>
- <string> "fov" </string>
- <string> "near" </string>
- <string> "far" </string>
- <string> "vaspect" </string>
- <string> "current" </string>
- <string> "visible_layers" </string>
- <string> "environment" </string>
- <string> "min_distance" </string>
- <string> "max_distance" </string>
- <string> "angle_v_adjust" </string>
- <string> "autoturn_ray_aperture" </string>
- <string> "autoturn_speed" </string>
- <string> "Armature" </string>
- <string> "Skeleton" </string>
- <string> "bones/0/name" </string>
- <string> "bones/0/parent" </string>
- <string> "bones/0/rest" </string>
- <string> "bones/0/enabled" </string>
- <string> "bones/0/bound_childs" </string>
- <string> "bones/1/name" </string>
- <string> "bones/1/parent" </string>
- <string> "bones/1/rest" </string>
- <string> "bones/1/enabled" </string>
- <string> "bones/1/bound_childs" </string>
- <string> "bones/2/name" </string>
- <string> "bones/2/parent" </string>
- <string> "bones/2/rest" </string>
- <string> "bones/2/enabled" </string>
- <string> "bones/2/bound_childs" </string>
- <string> "bones/3/name" </string>
- <string> "bones/3/parent" </string>
- <string> "bones/3/rest" </string>
- <string> "bones/3/enabled" </string>
- <string> "bones/3/bound_childs" </string>
- <string> "bones/4/name" </string>
- <string> "bones/4/parent" </string>
- <string> "bones/4/rest" </string>
- <string> "bones/4/enabled" </string>
- <string> "bones/4/bound_childs" </string>
- <string> "bones/5/name" </string>
- <string> "bones/5/parent" </string>
- <string> "bones/5/rest" </string>
- <string> "bones/5/enabled" </string>
- <string> "bones/5/bound_childs" </string>
- <string> "bones/6/name" </string>
- <string> "bones/6/parent" </string>
- <string> "bones/6/rest" </string>
- <string> "bones/6/enabled" </string>
- <string> "bones/6/bound_childs" </string>
- <string> "bones/7/name" </string>
- <string> "bones/7/parent" </string>
- <string> "bones/7/rest" </string>
- <string> "bones/7/enabled" </string>
- <string> "bones/7/bound_childs" </string>
- <string> "bones/8/name" </string>
- <string> "bones/8/parent" </string>
- <string> "bones/8/rest" </string>
- <string> "bones/8/enabled" </string>
- <string> "bones/8/bound_childs" </string>
- <string> "bones/9/name" </string>
- <string> "bones/9/parent" </string>
- <string> "bones/9/rest" </string>
- <string> "bones/9/enabled" </string>
- <string> "bones/9/bound_childs" </string>
- <string> "bones/10/name" </string>
- <string> "bones/10/parent" </string>
- <string> "bones/10/rest" </string>
- <string> "bones/10/enabled" </string>
- <string> "bones/10/bound_childs" </string>
- <string> "bones/11/name" </string>
- <string> "bones/11/parent" </string>
- <string> "bones/11/rest" </string>
- <string> "bones/11/enabled" </string>
- <string> "bones/11/bound_childs" </string>
- <string> "bones/12/name" </string>
- <string> "bones/12/parent" </string>
- <string> "bones/12/rest" </string>
- <string> "bones/12/enabled" </string>
- <string> "bones/12/bound_childs" </string>
- <string> "bones/13/name" </string>
- <string> "bones/13/parent" </string>
- <string> "bones/13/rest" </string>
- <string> "bones/13/enabled" </string>
- <string> "bones/13/bound_childs" </string>
- <string> "bones/14/name" </string>
- <string> "bones/14/parent" </string>
- <string> "bones/14/rest" </string>
- <string> "bones/14/enabled" </string>
- <string> "bones/14/bound_childs" </string>
- <string> "bones/15/name" </string>
- <string> "bones/15/parent" </string>
- <string> "bones/15/rest" </string>
- <string> "bones/15/enabled" </string>
- <string> "bones/15/bound_childs" </string>
- <string> "bones/16/name" </string>
- <string> "bones/16/parent" </string>
- <string> "bones/16/rest" </string>
- <string> "bones/16/enabled" </string>
- <string> "bones/16/bound_childs" </string>
- <string> "bones/17/name" </string>
- <string> "bones/17/parent" </string>
- <string> "bones/17/rest" </string>
- <string> "bones/17/enabled" </string>
- <string> "bones/17/bound_childs" </string>
- <string> "bones/18/name" </string>
- <string> "bones/18/parent" </string>
- <string> "bones/18/rest" </string>
- <string> "bones/18/enabled" </string>
- <string> "bones/18/bound_childs" </string>
- <string> "bones/19/name" </string>
- <string> "bones/19/parent" </string>
- <string> "bones/19/rest" </string>
- <string> "bones/19/enabled" </string>
- <string> "bones/19/bound_childs" </string>
- <string> "bones/20/name" </string>
- <string> "bones/20/parent" </string>
- <string> "bones/20/rest" </string>
- <string> "bones/20/enabled" </string>
- <string> "bones/20/bound_childs" </string>
- <string> "bones/21/name" </string>
- <string> "bones/21/parent" </string>
- <string> "bones/21/rest" </string>
- <string> "bones/21/enabled" </string>
- <string> "bones/21/bound_childs" </string>
- <string> "bones/22/name" </string>
- <string> "bones/22/parent" </string>
- <string> "bones/22/rest" </string>
- <string> "bones/22/enabled" </string>
- <string> "bones/22/bound_childs" </string>
- <string> "bones/23/name" </string>
- <string> "bones/23/parent" </string>
- <string> "bones/23/rest" </string>
- <string> "bones/23/enabled" </string>
- <string> "bones/23/bound_childs" </string>
- <string> "bones/24/name" </string>
- <string> "bones/24/parent" </string>
- <string> "bones/24/rest" </string>
- <string> "bones/24/enabled" </string>
- <string> "bones/24/bound_childs" </string>
- <string> "bones/25/name" </string>
- <string> "bones/25/parent" </string>
- <string> "bones/25/rest" </string>
- <string> "bones/25/enabled" </string>
- <string> "bones/25/bound_childs" </string>
- <string> "bones/26/name" </string>
- <string> "bones/26/parent" </string>
- <string> "bones/26/rest" </string>
- <string> "bones/26/enabled" </string>
- <string> "bones/26/bound_childs" </string>
- <string> "robot" </string>
- <string> "MeshInstance" </string>
- <string> "layers" </string>
- <string> "geometry/visible" </string>
- <string> "geometry/material_override" </string>
- <string> "geometry/cast_shadow" </string>
- <string> "geometry/receive_shadows" </string>
- <string> "geometry/range_begin" </string>
- <string> "geometry/range_end" </string>
- <string> "geometry/billboard" </string>
- <string> "geometry/billboard_y" </string>
- <string> "geometry/depth_scale" </string>
- <string> "geometry/visible_in_all_rooms" </string>
- <string> "mesh/mesh" </string>
- <string> "bullet" </string>
- <string> "Position3D" </string>
- <string> "sfx" </string>
- <string> "SpatialSamplePlayer" </string>
- <string> "params/volume_db" </string>
- <string> "params/pitch_scale" </string>
- <string> "params/attenuation/min_distance" </string>
- <string> "params/attenuation/max_distance" </string>
- <string> "params/attenuation/distance_exp" </string>
- <string> "params/emission_cone/degrees" </string>
- <string> "params/emission_cone/attenuation_db" </string>
- <string> "config/polyphony" </string>
- <string> "config/samples" </string>
- <string> "AnimationPlayer" </string>
- <string> "playback/process_mode" </string>
- <string> "playback/default_blend_time" </string>
- <string> "root/root" </string>
- <string> "speed" </string>
- <string> "anims/idle" </string>
- <string> "anims/shooting" </string>
- <string> "anims/jump-up-cycle" </string>
- <string> "anims/shooting_standing" </string>
- <string> "anims/falling-cycle" </string>
- <string> "anims/walk-cycle" </string>
- <string> "anims/run-cycle" </string>
- <string> "anims/default" </string>
- <string> "blend_times" </string>
- <string> "autoplay" </string>
- <string> "AnimationTreePlayer" </string>
- <string> "process/process" </string>
- <string> "base_path" </string>
- <string> "master_player" </string>
- <string> "data" </string>
- <string> "fwd" </string>
- <string> "TouchScreenButton" </string>
- <string> "process/input" </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> "normal" </string>
- <string> "pressed" </string>
- <string> "bitmask" </string>
- <string> "passby_press" </string>
- <string> "action" </string>
- <string> "visibility_mode" </string>
- <string> "bwd" </string>
- <string> "left" </string>
- <string> "right" </string>
- </string_array>
- <string> "version" </string>
- <int> 1 </int>
- <string> "conn_count" </string>
- <int> 0 </int>
- <string> "node_count" </string>
- <int> 16 </int>
- <string> "variants" </string>
- <array len="121" shared="false">
- <int> 2 </int>
- <resource resource_type="CapsuleShape" path="local://1"> </resource>
- <transform> 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0.954765, 0 </transform>
- <bool> False </bool>
- <resource resource_type="RayShape" path="local://2"> </resource>
- <transform> 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 1.01236, 0 </transform>
- <real> 1 </real>
- <real> 0 </real>
- <bool> True </bool>
- <int> 3 </int>
- <vector3> 0, 0, 0 </vector3>
- <resource resource_type="GDScript" path="res://player.*"> </resource>
- <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> "zoom" </string>
- <real> 1 </real>
- <string> "ofs" </string>
- <vector2> -241, -19 </vector2>
- </dictionary>
- <string> "3D" </string>
- <dictionary shared="false">
- <string> "zfar" </string>
- <real> 500 </real>
- <string> "fov" </string>
- <real> 400 </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> "show_origin" </string>
- <bool> True </bool>
- <string> "znear" </string>
- <real> 0.1 </real>
- </dictionary>
- </dictionary>
- <string> "__editor_run_settings__" </string>
- <dictionary shared="false">
- <string> "custom_args" </string>
- <string> "-l $scene" </string>
- <string> "run_mode" </string>
- <int> 0 </int>
- </dictionary>
- <string> "__editor_plugin_screen__" </string>
- <string> "Script" </string>
- </dictionary>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.95244, 0 </transform>
- <transform> 1, 0, 0, 0, 0.871263, 0.490817, 0, -0.490817, 0.871263, 0, 2.59805, 1.25672 </transform>
- <int> 0 </int>
- <real> 70 </real>
- <real> 0.1 </real>
- <real> 100 </real>
- <int> -1 </int>
- <resource name=""></resource> <resource resource_type="GDScript" path="res://follow_camera.*"> </resource>
- <real> 3 </real>
- <int> 25 </int>
- <int> 50 </int>
- <transform> 0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0, 0, 0 </transform>
- <string> "MASTER" </string>
- <transform> 1, 0, -0, 0, 7.54979e-08, 1, -0, -1, 7.54979e-08, 0, -0.011277, -0 </transform>
- <array len="0" shared="false">
- </array>
- <string> "hip" </string>
- <transform> 1, -1.50996e-07, -3.60002e-14, -1.50996e-07, -1, -3.01992e-07, 9.59926e-15, 3.01992e-07, -1, -3.38813e-21, 2.58363e-07, 2.10612 </transform>
- <string> "waist" </string>
- <int> 1 </int>
- <transform> 1, 1.50996e-07, 1.80001e-14, -1.50996e-07, 1, 0, -1.80001e-14, 0, 1, 3.38813e-21, 2.84217e-14, -0.384614 </transform>
- <string> "chest" </string>
- <transform> 1, -7.31455e-16, 4.86029e-17, 7.28861e-16, 0.999166, 0.040823, -7.84198e-17, -0.040823, 0.999166, 0, 4.84022e-11, -0.8217 </transform>
- <string> "neck" </string>
- <transform> -1, -1.10548e-06, -9.37766e-09, 1.08766e-06, -0.985328, 0.170671, -1.97913e-07, 0.170671, 0.985328, -1.64727e-13, 5.96046e-08, -1.24906 </transform>
- <string> "headtracker" </string>
- <int> 4 </int>
- <transform> 1, 9.87793e-08, -1.09789e-06, 1.09743e-06, 0.00449866, 0.99999, 1.03717e-07, -0.99999, 0.00449866, 0, 5.96046e-08, -0.491774 </transform>
- <string> "head" </string>
- <int> 5 </int>
- <transform> -1, 2.36978e-07, 1.97097e-07, -2.5035e-07, -0.25144, -0.967873, -1.79807e-07, -0.967873, 0.25144, -2.94648e-10, 4.76837e-07, 0.00400549 </transform>
- <string> "vent" </string>
- <int> 6 </int>
- <transform> 1, -2.54965e-07, -1.4699e-08, 2.55005e-07, 0.999996, 0.00282324, 1.39791e-08, -0.00282325, 0.999996, -7.04808e-08, 0.270992, -1.2429 </transform>
- <string> "r-arm" </string>
- <transform> 0.11477, -0.699489, -0.705367, -0.802661, -0.483653, 0.349021, -0.585289, 0.526113, -0.616961, 0.940786, 0.107144, -0.773564 </transform>
- <string> "r-forearm" </string>
- <int> 8 </int>
- <transform> -0.859542, 0.0564943, 0.507934, 0.107631, -0.951571, 0.287973, 0.499604, 0.302194, 0.811834, 2.38419e-07, -4.76837e-07, -0.935513 </transform>
- <string> "l-arm" </string>
- <transform> 0.11477, 0.699489, 0.705367, 0.802661, -0.483653, 0.349021, 0.585289, 0.526113, -0.616961, -0.940786, 0.107144, -0.773564 </transform>
- <string> "l-forearm" </string>
- <int> 10 </int>
- <transform> -0.859542, -0.0564943, -0.507934, -0.107631, -0.951571, 0.287973, -0.499604, 0.302194, 0.811834, -2.38419e-07, -4.76837e-07, -0.935513 </transform>
- <string> "r-thigh" </string>
- <transform> 0.994883, -0.0545632, -0.085028, -0.0580629, -0.997541, -0.0392442, -0.0826777, 0.0439804, -0.995605, 0.349652, 0.0628238, -0.163877 </transform>
- <string> "r-leg" </string>
- <int> 12 </int>
- <transform> -0.999508, -0.031366, -0.000870243, 0.0312939, -0.994411, -0.100835, 0.00229738, -0.100812, 0.994903, 5.96046e-08, 5.96046e-08, -0.644636 </transform>
- <string> "r-foot" </string>
- <int> 13 </int>
- <transform> 0.996208, -0.0766666, -0.0411273, -0.0442384, -0.0393329, -0.998246, 0.0749145, 0.996281, -0.0425754, -5.96046e-08, 4.19095e-09, -1.43073 </transform>
- <string> "l-thigh" </string>
- <transform> 0.994883, 0.0545632, 0.085028, 0.0580633, -0.997541, -0.0392452, 0.0826776, 0.0439813, -0.995606, -0.349652, 0.0628238, -0.163877 </transform>
- <string> "l-leg" </string>
- <int> 15 </int>
- <transform> -0.999508, 0.0313662, 0.000870456, -0.0312941, -0.994411, -0.100836, -0.00229725, -0.100814, 0.994903, 0, 1.49012e-08, -0.644636 </transform>
- <string> "l-foot" </string>
- <int> 16 </int>
- <transform> 0.996208, 0.0766668, 0.0411275, 0.0442386, -0.0393327, -0.998246, -0.0749147, 0.996281, -0.0425752, 0, -8.3819e-09, -1.43073 </transform>
- <string> "HEAD" </string>
- <transform> 1, -1.50996e-07, -0, -1.50996e-07, -1, 0, 0, 0, -1, 5.68434e-14, -5.79659, 6.35228 </transform>
- <string> "r-LEGCONTROL" </string>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.518863, 3.72276e-07, 0.204768 </transform>
- <string> "l-LEGCONTROL" </string>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.518863, 3.72276e-07, 0.204768 </transform>
- <string> "r-LEGORIENT" </string>
- <transform> -1, -1.50996e-07, -5.03577e-15, -3.75647e-14, 2.15429e-07, 1, -1.50996e-07, 1, -2.15429e-07, 0.411677, -0.66395, 1.62881 </transform>
- <string> "l-LEGORIENT" </string>
- <transform> -1, -1.50996e-07, -5.03577e-15, -3.75647e-14, 2.15429e-07, 1, -1.50996e-07, 1, -2.15429e-07, -0.411677, -0.66395, 1.62881 </transform>
- <string> "r-ARMCONTROL" </string>
- <transform> 1, 0, 0, 0, 7.54979e-08, -1, 0, 1, 7.54979e-08, 2.62535, -0.186879, 2.59016 </transform>
- <string> "l-ARMCONTROL" </string>
- <transform> 1, 0, 0, 0, 7.54979e-08, -1, 0, 1, 7.54979e-08, -2.62535, -0.186879, 2.59016 </transform>
- <string> "r-ARMORIENT" </string>
- <transform> 1, 0, 0, 0, 7.54979e-08, -1, 0, 1, 7.54979e-08, 1.57185, 0.510255, 3.44768 </transform>
- <string> "l-ARMORIENT" </string>
- <transform> 1, 0, 0, 0, 7.54979e-08, -1, 0, 1, 7.54979e-08, -1.57185, 0.510255, 3.44768 </transform>
- <resource resource_type="Mesh" path="local://5"> </resource>
- <transform> 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.94071, 3.64079, 3.3802 </transform>
- <real> 180 </real>
- <real> -6 </real>
- <resource resource_type="SampleLibrary" path="local://6"> </resource>
- <node_path> ".." </node_path>
- <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>
- <resource resource_type="Animation" path="local://13"> </resource>
- <resource resource_type="Animation" path="local://14"> </resource>
- <string> "" </string>
- <node_path> "../AnimationPlayer" </node_path>
- <dictionary shared="false">
- <string> "connections" </string>
- <array len="27" shared="false">
- <string> "walk" </string>
- <string> "scale" </string>
- <int> 0 </int>
- <string> "scale" </string>
- <string> "state" </string>
- <int> 0 </int>
- <string> "anim 3" </string>
- <string> "state" </string>
- <int> 1 </int>
- <string> "anim 4" </string>
- <string> "state" </string>
- <int> 2 </int>
- <string> "gun" </string>
- <string> "out" </string>
- <int> 0 </int>
- <string> "state" </string>
- <string> "gun" </string>
- <int> 0 </int>
- <string> "anim 5" </string>
- <string> "gun" </string>
- <int> 1 </int>
- <string> "anim" </string>
- <string> "walk" </string>
- <int> 0 </int>
- <string> "anim 2" </string>
- <string> "walk" </string>
- <int> 1 </int>
- </array>
- <string> "master" </string>
- <node_path> "../AnimationPlayer" </node_path>
- <string> "active" </string>
- <bool> True </bool>
- <string> "nodes" </string>
- <array len="10" shared="false">
- <dictionary shared="false">
- <string> "id" </string>
- <string> "scale" </string>
- <string> "scale" </string>
- <real> 1.2 </real>
- <string> "pos" </string>
- <vector2> 247, 68 </vector2>
- <string> "type" </string>
- <string> "timescale" </string>
- </dictionary>
- <dictionary shared="false">
- <string> "id" </string>
- <string> "state" </string>
- <string> "transitions" </string>
- <array len="3" shared="false">
- <dictionary shared="false">
- <string> "auto_advance" </string>
- <bool> False </bool>
- </dictionary>
- <dictionary shared="false">
- <string> "auto_advance" </string>
- <bool> False </bool>
- </dictionary>
- <dictionary shared="false">
- <string> "auto_advance" </string>
- <bool> False </bool>
- </dictionary>
- </array>
- <string> "xfade" </string>
- <real> 0.1 </real>
- <string> "type" </string>
- <string> "transition" </string>
- <string> "pos" </string>
- <vector2> 359, 132 </vector2>
- </dictionary>
- <dictionary shared="false">
- <string> "from" </string>
- <string> "idle" </string>
- <string> "id" </string>
- <string> "anim" </string>
- <string> "pos" </string>
- <vector2> 7, 70 </vector2>
- <string> "type" </string>
- <string> "animation" </string>
- </dictionary>
- <dictionary shared="false">
- <string> "id" </string>
- <string> "out" </string>
- <string> "type" </string>
- <string> "output" </string>
- <string> "pos" </string>
- <vector2> 579, 114 </vector2>
- </dictionary>
- <dictionary shared="false">
- <string> "from" </string>
- <string> "jump-up-cycle" </string>
- <string> "id" </string>
- <string> "anim 3" </string>
- <string> "pos" </string>
- <vector2> 143, 144 </vector2>
- <string> "type" </string>
- <string> "animation" </string>
- </dictionary>
- <dictionary shared="false">
- <string> "from" </string>
- <string> "shooting_standing" </string>
- <string> "id" </string>
- <string> "anim 5" </string>
- <string> "pos" </string>
- <vector2> 331, 242 </vector2>
- <string> "type" </string>
- <string> "animation" </string>
- </dictionary>
- <dictionary shared="false">
- <string> "from" </string>
- <string> "walk-cycle" </string>
- <string> "id" </string>
- <string> "anim 2" </string>
- <string> "pos" </string>
- <vector2> 7, 152 </vector2>
- <string> "type" </string>
- <string> "animation" </string>
- </dictionary>
- <dictionary shared="false">
- <string> "id" </string>
- <string> "gun" </string>
- <string> "blend" </string>
- <real> 1 </real>
- <string> "filter" </string>
- <array len="22" shared="false">
- <node_path> "Armature/Skeleton:MASTER" </node_path>
- <node_path> "Armature/Skeleton:l-thigh" </node_path>
- <node_path> "Armature/Skeleton:headtracker" </node_path>
- <node_path> "Armature/Skeleton:r-leg" </node_path>
- <node_path> "Armature/Skeleton:r-foot" </node_path>
- <node_path> "Armature/Skeleton:r-LEGORIENT" </node_path>
- <node_path> "Armature/Skeleton:r-LEGCONTROL" </node_path>
- <node_path> "Armature/Skeleton:r-ARMORIENT" </node_path>
- <node_path> "Armature/Skeleton:r-ARMCONTROL" </node_path>
- <node_path> "Armature/Skeleton:waist" </node_path>
- <node_path> "Armature/Skeleton:neck" </node_path>
- <node_path> "Armature/Skeleton:l-leg" </node_path>
- <node_path> "Armature/Skeleton:l-foot" </node_path>
- <node_path> "Armature/Skeleton:hip" </node_path>
- <node_path> "Armature/Skeleton:head" </node_path>
- <node_path> "Armature/Skeleton:HEAD" </node_path>
- <node_path> "Armature/Skeleton:l-LEGORIENT" </node_path>
- <node_path> "Armature/Skeleton:l-LEGCONTROL" </node_path>
- <node_path> "Armature/Skeleton:l-ARMORIENT" </node_path>
- <node_path> "Armature/Skeleton:l-ARMCONTROL" </node_path>
- <node_path> "Armature" </node_path>
- <node_path> "Armature/Skeleton:r-thigh" </node_path>
- </array>
- <string> "type" </string>
- <string> "blend2" </string>
- <string> "pos" </string>
- <vector2> 469, 127 </vector2>
- </dictionary>
- <dictionary shared="false">
- <string> "from" </string>
- <string> "falling-cycle" </string>
- <string> "id" </string>
- <string> "anim 4" </string>
- <string> "pos" </string>
- <vector2> 141, 230 </vector2>
- <string> "type" </string>
- <string> "animation" </string>
- </dictionary>
- <dictionary shared="false">
- <string> "id" </string>
- <string> "walk" </string>
- <string> "blend" </string>
- <real> 1 </real>
- <string> "filter" </string>
- <array len="0" shared="false">
- </array>
- <string> "type" </string>
- <string> "blend2" </string>
- <string> "pos" </string>
- <vector2> 148, 46 </vector2>
- </dictionary>
- </array>
- </dictionary>
- <vector2> 72, 301 </vector2>
- <vector2> 1, 1 </vector2>
- <resource resource_type="ImageTexture" path="res://osb_up.*"> </resource>
- <string> "move_forward" </string>
- <vector2> 72, 365 </vector2>
- <resource resource_type="ImageTexture" path="res://osb_down.*"> </resource>
- <string> "move_backwards" </string>
- <vector2> 29, 332 </vector2>
- <resource resource_type="ImageTexture" path="res://osb_left.*"> </resource>
- <string> "move_left" </string>
- <vector2> 108, 327 </vector2>
- <resource resource_type="ImageTexture" path="res://osb_right.*"> </resource>
- <string> "move_right" </string>
- </array>
- <string> "nodes" </string>
- <int_array len="662"> -1, -1, 1, 0, -1, 21, 2, 0, 3, 1, 4, 2, 5, 3, 6, 4, 7, 5, 8, 3, 9, 0, 10, 6, 11, 7, 12, 7, 13, 8, 14, 3, 15, 9, 16, 8, 17, 8, 18, 8, 19, 10, 20, 10, 21, 11, 22, 12, 0, 0, 0, 24, 23, -1, 3, 25, 2, 26, 1, 27, 3, 0, 0, 0, 24, 28, -1, 3, 25, 5, 26, 4, 27, 3, 0, 0, 0, 30, 29, -1, 1, 25, 13, 0, 3, 0, 32, 31, -1, 15, 25, 14, 33, 15, 34, 16, 35, 17, 36, 18, 37, 3, 38, 3, 39, 19, 40, 20, 21, 21, 41, 6, 42, 22, 43, 7, 44, 23, 45, 24, 0, 0, 0, 30, 46, -1, 1, 25, 25, 0, 5, 0, 47, 47, -1, 135, 48, 26, 49, 19, 50, 27, 51, 8, 52, 28, 53, 29, 54, 15, 55, 30, 56, 8, 57, 28, 58, 31, 59, 32, 60, 33, 61, 8, 62, 28, 63, 34, 64, 0, 65, 35, 66, 8, 67, 28, 68, 36, 69, 9, 70, 37, 71, 8, 72, 28, 73, 38, 74, 39, 75, 40, 76, 8, 77, 28, 78, 41, 79, 42, 80, 43, 81, 8, 82, 28, 83, 44, 84, 45, 85, 46, 86, 8, 87, 28, 88, 47, 89, 9, 90, 48, 91, 8, 92, 28, 93, 49, 94, 50, 95, 51, 96, 8, 97, 28, 98, 52, 99, 9, 100, 53, 101, 8, 102, 28, 103, 54, 104, 55, 105, 56, 106, 8, 107, 28, 108, 57, 109, 32, 110, 58, 111, 8, 112, 28, 113, 59, 114, 60, 115, 61, 116, 8, 117, 28, 118, 62, 119, 63, 120, 64, 121, 8, 122, 28, 123, 65, 124, 32, 125, 66, 126, 8, 127, 28, 128, 67, 129, 68, 130, 69, 131, 8, 132, 28, 133, 70, 134, 71, 135, 72, 136, 8, 137, 28, 138, 73, 139, 15, 140, 74, 141, 8, 142, 28, 143, 75, 144, 15, 145, 76, 146, 8, 147, 28, 148, 77, 149, 15, 150, 78, 151, 8, 152, 28, 153, 79, 154, 15, 155, 80, 156, 8, 157, 28, 158, 81, 159, 15, 160, 82, 161, 8, 162, 28, 163, 83, 164, 15, 165, 84, 166, 8, 167, 28, 168, 85, 169, 15, 170, 86, 171, 8, 172, 28, 173, 87, 174, 15, 175, 88, 176, 8, 177, 28, 178, 89, 179, 15, 180, 90, 181, 8, 182, 28, 0, 6, 0, 184, 183, -1, 12, 185, 32, 186, 8, 187, 20, 188, 8, 189, 8, 190, 7, 191, 7, 192, 3, 193, 3, 194, 3, 195, 3, 196, 91, 0, 5, 0, 198, 197, -1, 1, 25, 92, 0, 0, 0, 200, 199, -1, 9, 201, 7, 202, 6, 203, 6, 204, 18, 205, 6, 206, 93, 207, 94, 208, 32, 209, 95, 0, 0, 0, 210, 210, -1, 14, 211, 32, 212, 7, 213, 96, 214, 6, 215, 97, 216, 98, 217, 99, 218, 100, 219, 101, 220, 102, 221, 103, 222, 104, 223, 28, 224, 105, 0, 0, 0, 225, 225, -1, 4, 226, 8, 227, 96, 228, 106, 229, 107, 0, 0, 0, 231, 230, -1, 14, 232, 8, 233, 8, 234, 6, 235, 6, 236, 8, 237, 108, 238, 7, 239, 109, 240, 110, 241, 20, 242, 20, 243, 8, 244, 111, 245, 32, 0, 0, 0, 231, 246, -1, 14, 232, 8, 233, 8, 234, 6, 235, 6, 236, 8, 237, 112, 238, 7, 239, 109, 240, 113, 241, 20, 242, 20, 243, 8, 244, 114, 245, 32, 0, 0, 0, 231, 247, -1, 14, 232, 8, 233, 8, 234, 6, 235, 6, 236, 8, 237, 115, 238, 7, 239, 109, 240, 116, 241, 20, 242, 20, 243, 8, 244, 117, 245, 32, 0, 0, 0, 231, 248, -1, 14, 232, 8, 233, 8, 234, 6, 235, 6, 236, 8, 237, 118, 238, 7, 239, 109, 240, 119, 241, 20, 242, 20, 243, 8, 244, 120, 245, 32, 0 </int_array>
- <string> "conns" </string>
- <int_array len="0"> </int_array>
- </dictionary>
-
- </main_resource>
-</resource_file> \ No newline at end of file
diff --git a/demos/viewport/3d_in_2d/player_2d.scn b/demos/viewport/3d_in_2d/player_2d.scn
index eb6a09ae82..edb6c080c1 100644
--- a/demos/viewport/3d_in_2d/player_2d.scn
+++ b/demos/viewport/3d_in_2d/player_2d.scn
Binary files differ
diff --git a/demos/viewport/3d_in_2d/player_3d.scn b/demos/viewport/3d_in_2d/player_3d.scn
index 1dfd35adf4..c8bba5e460 100644
--- a/demos/viewport/3d_in_2d/player_3d.scn
+++ b/demos/viewport/3d_in_2d/player_3d.scn
Binary files differ
diff --git a/demos/viewport/gui_in_3d/gui.scn b/demos/viewport/gui_in_3d/gui.scn
index 4d665226b7..d7daa30340 100644
--- a/demos/viewport/gui_in_3d/gui.scn
+++ b/demos/viewport/gui_in_3d/gui.scn
Binary files differ
diff --git a/demos/viewport/gui_in_3d/gui_3d.gd b/demos/viewport/gui_in_3d/gui_3d.gd
index c2a9df0069..b93c17521d 100644
--- a/demos/viewport/gui_in_3d/gui_3d.gd
+++ b/demos/viewport/gui_in_3d/gui_3d.gd
@@ -1,45 +1,37 @@
extends Spatial
-# member variables here, example:
-# var a=2
-# var b="textvar"
-
-var prev_pos=null
-
-
-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)
-
-
-#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)
-
-
+# Member variables
+var prev_pos = null
+
+
+func _input(event):
+ # All other (non-mouse) events
+ if (not event.type in [InputEvent.MOUSE_BUTTON, InputEvent.MOUSE_MOTION, InputEvent.SCREEN_DRAG, InputEvent.SCREEN_TOUCH]):
+ get_node("viewport").input(event)
+
+
+# Mouse events for Area
+func _on_area_input_event(camera, event, 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
+ event.pos = pos
+ event.global_pos = pos
+ if (prev_pos == null):
+ prev_pos = pos
+ if (event.type == InputEvent.MOUSE_MOTION):
+ event.relative_pos = pos - prev_pos
+ prev_pos = pos
+ # Send the event to the viewport
+ get_node("viewport").input(event)
+
func _ready():
- # Initalization here
- get_node("area/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 c69d4dc73f..0541e7b142 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/screen_capture/screen_capture.gd b/demos/viewport/screen_capture/screen_capture.gd
index 69f16fa498..9867d95452 100644
--- a/demos/viewport/screen_capture/screen_capture.gd
+++ b/demos/viewport/screen_capture/screen_capture.gd
@@ -1,27 +1,16 @@
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
+ # Let two frames pass to make sure the screen was captured
+ 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
+ # Create a texture for it
var tex = ImageTexture.new()
tex.create_from_image(img)
- #set it to the capture node
+ # 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
index d204e3b67e..ee847fbe62 100644
--- a/demos/viewport/screen_capture/screen_capture.scn
+++ b/demos/viewport/screen_capture/screen_capture.scn
Binary files differ
diff --git a/Doxyfile b/doc/Doxyfile
index 4268ed8c7d..c1904f17c9 100644
--- a/Doxyfile
+++ b/doc/Doxyfile
@@ -51,14 +51,14 @@ PROJECT_BRIEF = "Game Engine MIT"
# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
# the logo to the output directory.
-PROJECT_LOGO = ./logo_small.png
+PROJECT_LOGO = ../logo.png
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
# into which the generated documentation will be written. If a relative path is
# entered, it will be relative to the location where doxygen was started. If
# left blank the current directory will be used.
-OUTPUT_DIRECTORY = ./doc/doxygen/
+OUTPUT_DIRECTORY = ./_build/doxygen/
# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
# directories (in 2 levels) under the output directory of each output format and
@@ -768,7 +768,7 @@ WARN_LOGFILE =
# spaces.
# Note: If this tag is empty the current directory is searched.
-INPUT = ./core/ ./main/ ./scene/
+INPUT = ../core/ ../main/ ../scene/
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
diff --git a/doc/Makefile b/doc/Makefile
new file mode 100644
index 0000000000..286a5162af
--- /dev/null
+++ b/doc/Makefile
@@ -0,0 +1,47 @@
+BASEDIR = $(CURDIR)
+CLASSES = $(BASEDIR)/base/classes.xml
+OUTPUTDIR = $(BASEDIR)/_build
+TOOLSDIR = $(BASEDIR)/tools
+
+.ONESHELL:
+
+clean:
+ rm -rf $(OUTPUTDIR)
+
+doku:
+ rm -rf $(OUTPUTDIR)/doku
+ mkdir -p $(OUTPUTDIR)/doku
+ pushd $(OUTPUTDIR)/doku
+ python2 $(TOOLSDIR)/makedoku.py $(CLASSES)
+ popd
+
+doxygen:
+ rm -rf $(OUTPUTDIR)/doxygen
+ mkdir -p $(OUTPUTDIR)/doxygen
+ doxygen Doxyfile
+
+html:
+ rm -rf $(OUTPUTDIR)/html
+ mkdir -p $(OUTPUTDIR)/html
+ pushd $(OUTPUTDIR)/html
+ python2 $(TOOLSDIR)/makehtml.py -multipage $(CLASSES)
+ popd
+
+markdown:
+ rm -rf $(OUTPUTDIR)/markdown
+ mkdir -p $(OUTPUTDIR)/markdown
+ pushd $(OUTPUTDIR)/markdown
+ python2 $(TOOLSDIR)/makemd.py $(CLASSES)
+ popd
+
+rst:
+ rm -rf $(OUTPUTDIR)/rst
+ mkdir -p $(OUTPUTDIR)/rst
+ pushd $(OUTPUTDIR)/rst
+ echo "TODO"
+ popd
+
+textile:
+ rm -rf $(OUTPUTDIR)/textile
+ mkdir -p $(OUTPUTDIR)/textile
+ python3 $(TOOLSDIR)/makedocs.py --input $(CLASSES) --output $(OUTPUTDIR)/textile
diff --git a/doc/base/classes.xml b/doc/base/classes.xml
index fd5df945ba..39b3791e84 100644
--- a/doc/base/classes.xml
+++ b/doc/base/classes.xml
@@ -13147,6 +13147,21 @@ returns:= "username=user&amp;password=pass"
<description>
</description>
</method>
+ <method name="Image">
+ <return type="Image">
+ </return>
+ <argument index="0" name="width" type="int">
+ </argument>
+ <argument index="1" name="height" type="int">
+ </argument>
+ <argument index="2" name="mipmaps" type="bool">
+ </argument>
+ <argument index="3" name="format" type="int">
+ </argument>
+ <description>
+ Create an empty image of a specific size and format.
+ </description>
+ </method>
</methods>
<constants>
<constant name="COMPRESS_BC" value="0">
@@ -15038,14 +15053,13 @@ returns:= "username=user&amp;password=pass"
<description>
</description>
</method>
- <method name="can_move_to">
+ <method name="can_teleport_to">
<return type="bool">
</return>
<argument index="0" name="position" type="Vector3">
</argument>
- <argument index="1" name="arg1" type="bool">
- </argument>
<description>
+ Returns whether the KinematicBody can be teleported to the destination given as an argument, checking all collision shapes of the body against potential colliders at the destination.
</description>
</method>
<method name="is_colliding" qualifiers="const">
@@ -26945,7 +26959,7 @@ This method controls whether the position between two cached points is interpola
Lazy (non-greedy) quantifiers [code]*?[/code]
Begining [code]^[/code] and end [code]$[/code] anchors
Alternation [code]|[/code]
- Backreferences [code]\1[/code] to [code]\9[/code]
+ Backreferences [code]\1[/code] and [code]\g{1}[/code]
POSIX character classes [code][[:alnum:]][/code]
Lookahead [code](?=)[/code], [code](?!)[/code] and lookbehind [code](?&lt;=)[/code], [code](?&lt;!)[/code]
ASCII [code]\xFF[/code] and Unicode [code]\uFFFF[/code] code points (in a style similar to Python)
@@ -26957,9 +26971,10 @@ This method controls whether the position between two cached points is interpola
</return>
<argument index="0" name="pattern" type="String">
</argument>
- <argument index="1" name="expanded" type="bool" default="true">
+ <argument index="1" name="capture" type="int" default="9">
</argument>
<description>
+ Compiles and assign the regular expression pattern to use. The limit on the number of capturing groups can be specified or made unlimited if negative.
</description>
</method>
<method name="find" qualifiers="const">
diff --git a/doc/core_classes.xml b/doc/core_classes.xml
deleted file mode 100644
index c37b50f122..0000000000
--- a/doc/core_classes.xml
+++ /dev/null
@@ -1,2654 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<doc version="1.0" name="Core Types">
-<class category="Core" name="Vector3">
- <brief_description>
- Vector class, which performs basic 3D vector math operations.
- </brief_description>
- <description>
- Vector3 is one of the core classes of the engine, and includes several built-in helper functions to perform basic vecor math operations.
- </description>
- <methods>
- <method name="operator+">
- <argument index="0" name="b" type="Vector3">
- </argument>
- <return type="Vector3">
- Sum.
- </return>
- <description>
- Add two vectors.
- </description>
- </method>
- <method name="operator-">
- <argument index="0" name="b" type="Vector3">
- </argument>
- <return type="Vector3">
- Difference.
- </return>
- <description>
- Substract two vectors.
- </description>
- </method>
- <method name="operator/">
- <argument index="0" name="b" type="Vector3">
- </argument>
- <return type="Vector3">
- Quotient.
- </return>
- <description>
- Divide two vectors (component wise).
- </description>
- </method>
- <method name="operator*">
- <argument index="0" name="b" type="Vector3">
- </argument>
- <return type="Vector3">
- Product.
- </return>
- <description>
- Multiply two vectors (components wise).
- </description>
- </method>
- <method name="set_axis">
- <argument index="0" name="axis" type="int">
- Axis Index.
- </argument>
- <argument index="1" name="value" type="real">
- Value.
- </argument>
- <description>
- Set an individual axis (0 is X, 1 is Y and 2 is Z). the enum constants Vector.AXIS_X, Vector.AXIS_Y, and Vector.AXIS_Z, are also valid. This is specially useful for for-loops.
- </description>
- </method>
- <method name="get_axis">
- <argument index="0" name="axis" type="int">
- Axis Index.
- </argument>
- <return type="real">
- Value.
- </return>
- <description>
- Set an individual axis (0 is X, 1 is Y and 2 is Z). the enum constants Vector.AXIS_X, Vector.AXIS_Y, and Vector.AXIS_Z, are also valid. This is specially useful for for-loops.
- </description>
- </method>
- <method name="length">
- <return type="real">
- Length: sqrt(x^2+y^2+z^2)
- </return>
- <description>
- Return the length of the vector.
- </description>
- </method>
- <method name="length_squared">
- <return type="real">
- Squared Length: x^2+y^2+z^2.
- </return>
- <description>
- Return the length of the vector, without the square root step.
- </description>
- </method>
- <method name="normalize">
- <description>
- Normalize the vector to unit length. This is the same as v = v / v.length()
- </description>
- </method>
- <method name="normalized">
- <return type="Vector3">
- </return>
- <description>
- Return a copy of the normalized vector to unit length. This is the same as v / v.length()
- </description>
- </method>
- <method name="inverse">
- <return type="Vector3">
- Inverse: 1/v
- </return>
- <description>
- Returns the inverse of the vector. this is the same as Vector3( 1.0 / v.x, 1.0 / v.y, 1.0 / v.z )
- </description>
- </method>
- <method name="zero">
- <description>
- Set x,y and z to 0.
- </description>
- </method>
- <method name="snap">
- <argument index="0" name="snap" type="real">
- </argument>
- <description>
- Snap the vector in each axis the the lowest nearest multiple. ie: 4,5,7 snapped to 2 equals 4,4,6.
- </description>
- </method>
- <method name="snapped">
- <argument index="0" name="snap" type="real">
- </argument>
- <return type="Vector3">
- Snapped copy.
- </return>
- <description>
- Return a copy of the vector, snapped to the lowest neared multiple.
- </description>
- </method>
- <method name="linear_interpolate">
- <argument index="0" name="b" type="Vector3">
- </argument>
- <argument index="1" name="i" type="real">
- </argument>
- <return type="Vector3">
- </return>
- <description>
- Linearly interpolates the vector to a given one (b), by the given amount (i)
- </description>
- </method>
- <method name="cubic_interpolate">
- <argument index="0" name="a" type="Vector3">
- </argument>
- <argument index="1" name="c" type="Vector3">
- </argument>
- <argument index="2" name="d" type="Vector3">
- </argument>
- <argument index="3" name="i" type="real">
- </argument>
- <return type="Vector3">
- </return>
- <description>
- Perform a cubic interpolation between vectors a,b,c,d (b is current), by the given amount (i).
- </description>
- </method>
- <method name="cross">
- <argument index="0" name="b" type="Vector3">
- </argument>
- <return type="Vector3">
- Cross product.
- </return>
- <description>
- Return the cross product with b.
- </description>
- </method>
- <method name="dot">
- <argument index="0" name="b" type="Vector3">
- </argument>
- <return type="real">
- </return>
- <description>
- Return the dot product with b.
- </description>
- </method>
- <method name="distance_to">
- <argument index="0" name="b" type="Vector3">
- </argument>
- <return type="real">
- </return>
- <description>
- Return the distance to b.
- </description>
- </method>
- <method name="distance_squared_to">
- <argument index="0" name="b" type="Vector3">
- </argument>
- <return type="real">
- </return>
- <description>
- Return the squared distance (distance minus the last square root) to b.
- </description>
- </method>
- </methods>
- <constants>
- <constant name="AXIS_X" value="0">
- </constant>
- <constant name="AXIS_Y" value="1">
- </constant>
- <constant name="AXIS_Z" value="2">
- </constant>
- </constants>
- <members>
- <member name="x" type="real">
- </member>
- <member name="y" type="real">
- </member>
- <member name="z" type="real">
- </member>
- </members>
-</class>
-<class category="Core" name="AABB">
- <brief_description>
- Axis-Aligned-Bounding-Box.
- </brief_description>
- <description>
- AABB stands for "Axis Aligned Bounding Box". It consits of a position and a size, which for an box that is always aligned to the x, y and z axis, which goes from "pos" to "pos+size".
- </description>
- <methods>
- <method name="has_no_area">
- <return type="bool">
- </return>
- <description>
- Returns true if the AABB volume is empty (even if it has a surface). Holds true if size.x,y or z is 0.
- </description>
- </method>
- <method name="has_no_surface">
- <return type="bool">
- </return>
- <description>
- Return true if size is 0,0,0.
- </description>
- </method>
- <method name="area">
- <return type="real">
- </return>
- <description>
- Compute the volume of the AABB.
- </description>
- </method>
- <method name="intersects">
- <argument index="0" name="b" type="AABB">
- </argument>
- <return type="bool">
- </return>
- <description>
- Returns true if this AABB shares a portion of space with b.
- </description>
- </method>
- <method name="encloses">
- <argument index="0" name="b" type="AABB">
- </argument>
- <return type="bool">
- </return>
- <description>
- Returns true if this AABB completely encloses b.
- </description>
- </method>
- <method name="merge_with">
- <argument index="0" name="b" type="AABB">
- </argument>
- <description>
- Expand this AABB to also enclose the area of b.
- </description>
- </method>
- <method name="intersection_with">
- <argument index="0" name="b" type="AABB">
- </argument>
- <return type="AABB">
- </return>
- <description>
- Return the shared portion of space with b (empty if they don't intersect).
- </description>
- </method>
- <method name="intersects_segment">
- <argument index="0" name="a" type="Vector3">
- </argument>
- <argument index="1" name="b" type="Vector3">
- </argument>
- <argument index="2" name="@r" type="Vector3">
- result (if they intersect)
- </argument>
- <argument index="3" name="@n" type="Vector3">
- normal (if they intersect)
- </argument>
- <return type="bool">
- </return>
- <description>
- Returns true if this AABB intersects segment "a" towards "b". Also, return the point and normal of intersection.
- </description>
- </method>
- <method name="intersects_plane">
- <argument index="0" name="p" type="Plane">
- </argument>
- <return type="bool">
- </return>
- <description>
- Returns true if this AABB intersects the plane b.
- </description>
- </method>
- <method name="has_point">
- <argument index="0" name="p" type="Vector3">
- </argument>
- <return type="bool">
- </return>
- <description>
- Return true if this AABB contains point "p".
- </description>
- </method>
- <method name="get_longest_axis">
- <return type="Vector3">
- Axis direction
- </return>
- <description>
- Get the normal of the longest axis in this AABB.
- </description>
- </method>
- <method name="get_longest_axis_index">
- <return type="int">
- </return>
- <description>
- Get the index of the longest axis in this AABB.
- </description>
- </method>
- <method name="get_longest_axis_size">
- <return type="real">
- Get the length of the longest axis in this AABB.
- </return>
- <description>
- </description>
- </method>
- <method name="get_edge">
- <argument index="0" name="@ra" type="Vector3">
- </argument>
- <argument index="1" name="@rb" type="Vector3">
- </argument>
- <description>
- Get one of the edges (0 to 11) of this AABB in "ra" and "rb".
- </description>
- </method>
- <method name="grow_by">
- <argument index="0" name="s" type="real">
- </argument>
- <description>
- Grow this AABB, by expanding its margin, by "s".
- </description>
- </method>
- <method name="expand_to">
- <argument index="0" name="p" type="Vector3">
- </argument>
- <description>
- Expand this AABB to contain point "p".
- </description>
- </method>
- </methods>
- <members>
- <member name="pos" type="Vector3">
- Position of the AABB.
- </member>
- <member name="size" type="Vector3">
- Suze of the AABB (should always be positive).
- </member>
- </members>
-</class>
-<class category="Core" name="Plane">
- <brief_description>
- Plane in hessian form.
- </brief_description>
- <description>
- Plane represents a normalized plane equation. Basically, "normal" is the normal of the plane (a,b,c normalized), and "d" is the distance from the origin to the plane (in the direction of "normal"). "Over" or "Above" the plane is considered the side of the plane towards where the normal is pointing.
- </description>
- <methods>
- <method name="normalize">
- <description>
- Normalize the plane (although it will be often normalized already).
- </description>
- </method>
- <method name="normalized">
- <return type="Plane">
- </return>
- <description>
- Returns a copy of the plane, normalized.
- </description>
- </method>
- <method name="is_point_over">
- <argument index="0" name="p" type="Vector3">
- </argument>
- <return type="bool">
- </return>
- <description>
- Returns true if "p" is located above the plane.
- </description>
- </method>
- <method name="distance">
- <argument index="0" name="p" type="Vector3">
- </argument>
- <return type="real">
- </return>
- <description>
- Returns the orthogonal distance from "p" to the plane. If positive, "p" is above, if negative, "p" is below.
- </description>
- </method>
- <method name="has_point">
- <argument index="0" name="p" type="Vector3">
- </argument>
- <return type="bool">
- </return>
- <description>
- Returns true if "p" is inside the plane (by a very minimum treshold).
- </description>
- </method>
- <method name="intersect_3">
- <argument index="0" name="a" type="Plane">
- </argument>
- <argument index="1" name="b" type="Plane">
- </argument>
- <argument index="2" name="@r" type="Vector3">
- </argument>
- <return type="bool">
- </return>
- <description>
- Returns true if this plane intersects with planes "a" and "b". The resulting intersectin is placed in "r".
- </description>
- </method>
- <method name="intersects_ray">
- <argument index="0" name="p" type="Vector3">
- </argument>
- <argument index="1" name="d" type="Vector3">
- </argument>
- <argument index="2" name="@r" type="Vector3">
- </argument>
- <return type="bool">
- </return>
- <description>
- Returns true if ray consiting of position "p" and direction normal "d" intersects this plane. If true, the result is placed in "r".
- </description>
- </method>
- <method name="intersects_segment">
- <argument index="0" name="sa" type="Vector3">
- </argument>
- <argument index="1" name="sb" type="Vector3">
- </argument>
- <argument index="2" name="@r" type="Vector3">
- </argument>
- <return type="bool">
- </return>
- <description>
- Returns true if segment from position "sa" to position "sb" intersects this plane. If true, the result is placed in "r".
-
- </description>
- </method>
- <method name="project">
- <argument index="0" name="p" type="Vector3">
- </argument>
- <return type="Vector3">
- </return>
- <description>
- Returns the orthogonal projection of point "p" into a point in the plane.
- </description>
- </method>
- <method name="is_almost_like">
- <argument index="0" name="b" type="plane">
- </argument>
- <return type="bool">
- </return>
- <description>
- Returns true if plane "b" is very similar to this one.
- </description>
- </method>
- </methods>
- <members>
- <member name="normal" type="Vector3">
- Plane normal vector (a,c and d in the plane equation normalized).
- </member>
- <member name="d" type="real">
- Plane distance (d in the plane equation).
- </member>
- </members>
-</class>
-<class category="Core" name="Quat">
- <brief_description>
- Quaternion.
- </brief_description>
- <description>
- Quaternion is a 4 dimensional vector that is used to represet a rotation. It mainly exists to perform SLERP (spherical-linear interpolation) between to rotations obtained by a Matrix3 cheaply. Adding quaternions also cheaply adds the rotations, however quaternions need to be often normalized, or else they suffer from precision issues.
- </description>
- <methods>
- <method name="length">
- <return type="real">
- </return>
- <description>
- Returns the length of the quaternion.
- </description>
- </method>
- <method name="length_squared">
- <return type="real">
- </return>
- <description>
- Returns the length of the quaternion, minus the square root.
- </description>
- </method>
- <method name="normalize">
- <description>
- Normalize the quaternion to unit length.
- </description>
- </method>
- <method name="normalized">
- <return type="Quat">
- </return>
- <description>
- Returns a copy of the quaternion, normalized to unit length.
- </description>
- </method>
- <method name="inverse">
- <return type="Quat">
- </return>
- <description>
- Returns the inverse of the quaternion (applies to the inverse rotatio too).
- </description>
- </method>
- <method name="dot">
- <argument index="0" name="b" type="Quat">
- </argument>
- <return type="real">
- </return>
- <description>
- Returns the dot product between two quaternions.
- </description>
- </method>
- <method name="set_euler">
- <argument index="0" name="e" type="Vector3">
- </argument>
- <description>
- Create a quaternion from euler rotation "e", as yaw, pitch, roll.
- </description>
- </method>
- <method name="slerp">
- <argument index="0" name="b" type="Quat">
- </argument>
- <argument index="1" name="i" type="real">
- </argument>
- <return type="Quat">
- </return>
- <description>
- Perform a spherical-linear interpolation with another quaternion.
- </description>
- </method>
- <method name="operator*">
- <argument index="0" name="arg1" type="Quat">
- </argument>
- <return type="Quat">
- </return>
- <description>
- Peform multiplication between two quaternions.
- </description>
- </method>
- </methods>
- <members>
- <member name="x" type="real">
- x-axis
- </member>
- <member name="y" type="real">
- y-axis
- </member>
- <member name="z" type="real">
- z-axis
- </member>
- <member name="w" type="real">
- w-axis
- </member>
- </members>
-</class>
-<class category="Core" name="Matrix3">
- <brief_description>
- 3x3 Matrix.
- </brief_description>
- <description>
- Matrix represent a 3x3 (3 rows by 3 columns) transformation matrix. it is used mainly to represent and accumulate transformations such as rotation or scale when used as an OCS (oriented coordinate system).
- </description>
- <methods>
- <method name="invert">
- <description>
- Invert the matrix (transformations are reversed).
- </description>
- </method>
- <method name="transpose">
- <description>
- Transpose the matrix (transformations are reversed only for orthogonal matrices).
- </description>
- </method>
- <method name="inverse">
- <return type="Matrix3">
- </return>
- <description>
- Returns the inverse of the matrix.
- </description>
- </method>
- <method name="transposed">
- <return type="Matrix3">
- </return>
- <description>
- Returns the transposition of the matrix.
- </description>
- </method>
- <method name="rotate">
- <argument index="0" name="axis" type="Vector3">
- </argument>
- <argument index="1" name="phi" type="real">
- </argument>
- <description>
- Rotates the matrix in normalized "axis" by amount "phi" in radians. (This is equivalent to glRotate from OpenGL).
- </description>
- </method>
- <method name="scale">
- <argument index="0" name="s" type="Vector3">
- </argument>
- <description>
- Scale each axis of the rotated matrix by 's".
- </description>
- </method>
- <method name="get_scale">
- <return type="Vector3">
- </return>
- <description>
- Get the scale of the matrix.
- </description>
- </method>
- <method name="set_euler">
- <argument index="0" name="e" type="Vector3">
- </argument>
- <description>
- Create an orthogonal matrix from euler angles "e", as yaw, pitch, roll.
- </description>
- </method>
- <method name="get_euler">
- <return type="Vector3">
- </return>
- <description>
- Computes and returns the euler engles for an orthogonal matrix, as yaw, pitch, roll.
- </description>
- </method>
- <method name="tdotx">
- <argument index="0" name="v" type="Vector3">
- </argument>
- <return type="Vector3">
- </return>
- <description>
- Computes and returns a dot product with transposed axis x.
- </description>
- </method>
- <method name="tdoty">
- <argument index="0" name="v" type="Vector3">
- </argument>
- <return type="Vector3">
- </return>
- <description>
- Computes and returns a dot product with transposed axis y.
- </description>
- </method>
- <method name="tdotz">
- <argument index="0" name="arg1" type="Vector3">
- </argument>
- <return type="Vector3">
- </return>
- <description>
- Computes and returns a dot product with transposed axis z.
- </description>
- </method>
- <method name="xform">
- <argument index="0" name="v" type="Vector3">
- </argument>
- <return type="Vector3">
- </return>
- <description>
- Transforms vector "v" by this matrix (as M x V) and returns the result.
- </description>
- </method>
- <method name="xform_inv">
- <argument index="0" name="v" type="Vector3">
- </argument>
- <return type="Vector3">
- </return>
- <description>
- Inverse-transforms vector "v" by this matrix (as V x M) and returns the result.
- </description>
- </method>
- <method name="get_axis">
- <argument index="0" name="axis" type="int">
- </argument>
- <return type="Vector3">
- </return>
- <description>
- Get an axis of the OCS. (0 is X, 1 is Y and 2 is Z). The enum constants Vector.AXIS_X, Vector.AXIS_Y, and Vector.AXIS_Z, are also valid. This is equivalent to get_column().
- </description>
- </method>
- <method name="set_axis">
- <argument index="0" name="axis" type="int">
- </argument>
- <argument index="1" name="v" type="Vector3">
- </argument>
- <description>
- Set an axis of the OCS. (0 is X, 1 is Y and 2 is Z). The enum constants Vector.AXIS_X, Vector.AXIS_Y, and Vector.AXIS_Z, are also valid. This is equivalent to set_column()
- </description>
- </method>
- <method name="get_row">
- <argument index="0" name="i" type="int">
- </argument>
- <return type="Vector3">
- </return>
- <description>
- Get a matrix row.
- </description>
- </method>
- <method name="set_row">
- <argument index="0" name="i" type="int">
- </argument>
- <argument index="1" name="v" type="Vector3">
- </argument>
- <description>
- Set a matrix row.
- </description>
- </method>
- <method name="get_column">
- <argument index="0" name="axis" type="int">
- </argument>
- <return type="Vector3">
- </return>
- <description>
- Get a matrix column. This is equivalent to get_axis()
- </description>
- </method>
- <method name="set_column">
- <argument index="0" name="axis" type="int">
- </argument>
- <argument index="1" name="av" type="Vector3">
- </argument>
- Set a matrix column. This is equivalent to set_axis
- <description>
- </description>
- </method>
- <method name="operator*">
- <argument index="0" name="N" type="Matrix3">
- </argument>
- <return type="Matrix3">
- </return>
- <description>
- Perform a matrix multiplication (M x N) and return the result.
- </description>
- </method>
- <method name="transpose_xform">
- <argument index="0" name="arg1" type="Matrix3">
- </argument>
- <return type="Matrix3">
- </return>
- <description>
- Perform a transposed-matrix multiplication (Mt x N) and return the result.
- </description>
- </method>
- </methods>
- <members>
- <member name="xx" type="real">
- </member>
- <member name="xy" type="real">
- </member>
- <member name="xz" type="real">
- </member>
- <member name="yx" type="real">
- </member>
- <member name="yy" type="real">
- </member>
- <member name="yz" type="real">
- </member>
- <member name="zx" type="real">
- </member>
- <member name="zy" type="real">
- </member>
- <member name="zz" type="real">
- </member>
- </members>
-</class>
-<class category="Core" name="Transform">
- <brief_description>
- Transformation.
- </brief_description>
- <description>
- Transform is used to store transformations, including translations. It consists of a Matrix3 "basis" and Vector3 "origin". Transform is used to represent transformations of any object in space. It is similar to a 4x3 matrix.
- </description>
- <methods>
- <method name="invert">
- <description>
- Invert the transform.
- </description>
- </method>
-
- <method name="inverse">
- <return type="Transform">
- </return>
- <description>
- Returns the inverse of the transform.
- </description>
- </method>
- <method name="rotate">
- <argument index="0" name="axis" type="Vector3">
- </argument>
- <argument index="1" name="phi" type="real">
- </argument>
- <description>
- Rotates the transform in normalized "axis" by amount "phi" in radians. (This is equivalent to glRotate from OpenGL).
- </description>
- </method>
- <method name="scale">
- <argument index="0" name="s" type="Vector3">
- </argument>
- <description>
- Scales the whole transform by "s" (including the origin)
- </description>
- </method>
- <method name="get_basis">
- <return type="Matrix3">
- </return>
- <description>
- Get the basis.
- </description>
- </method>
- <method name="translate">
- <argument index="0" name="v" type="Vector3">
- </argument>
- <description>
- Translate the transform by "v".
- </description>
- </method>
- <method name="set_look_at">
- <argument index="0" name="eye" type="Vector3">
- "Eye" Position.
- </argument>
- <argument index="1" name="target" type="Vector3">
- "Target" Position.
- </argument>
- <argument index="2" name="up" type="Vector3">
- "Up" Normal Vector.
- </argument>
- <description>
- Creates a transform positioned at "eye", looking towards "target". "up" represents the direction where "up" is. This function is useful for setting up cameras.
- </description>
- </method>
- <method name="xform">
- <argument index="0" name="v" type="Vector3">
- </argument>
- <return type="Vector3">
- </return>
- <description>
- Transforms vector "v" by this transform.
- </description>
- </method>
- <method name="xform_inv">
- <argument index="0" name="arg1" type="Vector3">
- </argument>
- <return type="Vector3">
- </return>
- <description>
- Inverse-transforms vector "v" by this transform.
- </description>
- </method>
- <method name="xform_aabb">
- <argument index="0" name="a" type="AABB">
- </argument>
- <return type="AABB">
- </return>
- <description>
- Transforms AABB "a" by this transform. The resulting aabb will often be larger, so succesive transforms are not recommended.
- </description>
- </method>
- <method name="xform_aabb_inv">
- <argument index="0" name="a" type="AABB">
- </argument>
- <return type="AABB">
- </return>
- <description>
- Inverse-transforms AABB "a" by this transform. The resulting aabb will often be larger, so succesive transforms are not recommended.
- </description>
- </method>
- <method name="xform_plane">
- <argument index="0" name="p" type="Plane">
- </argument>
- <return type="Plane">
- </return>
- <description>
- Transform plane "p" by this transform.
- </description>
- </method>
- <method name="xform_plane_inv">
- <argument index="0" name="p" type="Plane">
- </argument>
- <return type="Plane">
- </return>
- <description>
- Inverse-transforms plane "p" by this transform.
- </description>
- </method>
- </methods>
- <members>
- <member name="basis" type="Matrix3">
- Transform "basis" or OCS.
- </member>
- <member name="origin" type="Vector3">
- Transform origin.
- </member>
- <member name="xx" type="real">
- </member>
- <member name="xy" type="real">
- </member>
- <member name="xz" type="real">
- </member>
- <member name="yx" type="real">
- </member>
- <member name="yy" type="real">
- </member>
- <member name="yz" type="real">
- </member>
- <member name="zx" type="real">
- </member>
- <member name="zy" type="real">
- </member>
- <member name="zz" type="real">
- </member>
- <member name="tx" type="real">
- </member>
- <member name="ty" type="real">
- </member>
- <member name="tz" type="real">
- </member>
-
- </members>
-</class>
-<class category="Core" name="Vector2">
- <brief_description>
- Vector used for 2D Math.
- </brief_description>
- <description>
- Vector class, which performs basic 2D vector math operations.
- </description>
- <methods>
- <method name="operator+">
- <argument index="0" name="b" type="Vector2">
- </argument>
- <return type="Vector2">
- </return>
- <description>
- Add two vectors.
- </description>
- </method>
- <method name="operator-">
- <argument index="0" name="b" type="Vector2">
- </argument>
- <return type="Vector2">
- </return>
- <description>
- Substract two vectors.
- </description>
- </method>
- <method name="operator/">
- <argument index="0" name="b" type="Vector2">
- </argument>
- <return type="Vector2">
- </return>
- <description>
- Divide two vectors.
- </description>
- </method>
- <method name="operator*">
- <argument index="0" name="b" type="Vector2">
- </argument>
- <return type="Vector2">
- </return>
- <description>
- Multiply two vectors.
- </description>
- </method>
- <method name="length">
- <return type="real">
- </return>
- <description>
- Returns the length of the vector.
- </description>
- </method>
- <method name="length_squared">
- <return type="real">
- </return>
- <description>
- Returns the squared length of the vector.
- </description>
- </method>
- <method name="normalize">
- <description>
- Normalizes the vector to unit length.
- </description>
- </method>
- <method name="normalized">
- <return type="Vector2">
- </return>
- <description>
- Returns a normalized vector to unit length.
- </description>
- </method>
- <method name="zero">
- <description>
- Sets x and y to 0.
- </description>
- </method>
- <method name="linear_interpolate">
- <argument index="0" name="b" type="Vector2">
- </argument>
- <argument index="1" name="i" type="real">
- </argument>
- <return type="Vector2">
- </return>
- <description>
- Returns the result of the linear interpolation between this vector and "b", by amount "i".
- </description>
- </method>
- <method name="dot">
- <argument index="0" name="b" type="Vector2">
- </argument>
- <return type="real">
- </return>
- <description>
- Returns the dot product with vector "b".
- </description>
- </method>
- <method name="distance_to">
- <argument index="0" name="b" type="Vector2">
- </argument>
- <return type="real">
- </return>
- <description>
- Returns the distance to vector "b".
- </description>
- </method>
- <method name="floor">
- <return type="Vector2">
- </return>
- <description>
- Remove the fractional part of x and y.
- </description>
- </method>
- </methods>
-
- <members>
- <member name="x" type="real">
- </member>
- <member name="y" type="real">
- </member>
-
- </members>
-</class>
-<class category="Core" name="Rect2">
- <brief_description>
- Positioned rectangle in 2D.
- </brief_description>
- <description>
- Rect2 represets a positioned rectangle of position "pos" and "size".
- </description>
- <methods>
- <method name="has_no_area">
- <return type="bool">
- </return>
- <description>
- Returns "true" if the rectangle has no area.
- </description>
- </method>
- <method name="has_point">
- <argument index="0" name="v" type="Vector2">
- </argument>
- <return type="bool">
- </return>
- <description>
- Returns true if v is contained within the rectangle.
- </description>
- </method>
- <method name="merge">
- <argument index="0" name="b" type="Rect2">
- </argument>
- <description>
- Extend the rectangle to enclose "b".
- </description>
- </method>
- <method name="clip">
- <argument index="0" name="b" type="Rect2">
- </argument>
- <return type="Rect2">
- </return>
- <description>
- Return the interection with rectangle "b"
- </description>
- </method>
- <method name="grow">
- <argument index="0" name="m" type="Vector2">
- </argument>
- <description>
- Extend the rectangle margin by "m".
- </description>
- </method>
- </methods>
- <members>
- <member name="pos" type="Vector2">
- Position of the rectangle.
- </member>
- <member name="size" type="Vector2">
- Size of the rectangle.
- </member>
- <member name="x" type="real">
- </member>
- <member name="y" type="real">
- </member>
- <member name="size_x" type="real">
- </member>
- <member name="size_y" type="real">
- </member>
- </members>
-</class>
-
-<class category="Core" name="Color">
- <brief_description>
- Color in RGBA format.
- </brief_description>
- <description>
- A color is represented as red, green and blue (r,g,b) components. Additionally, "a" represents the alpha component, often used for transparency.
- </description>
- <methods>
- <method name="to_32">
- <return type="real">
- </return>
- <description>
- Convert the color to a 32 its integer (each byte represets a RGBA).
- </description>
- </method>
- <method name="gray">
- <return type="real">
- </return>
- <description>
- Convert the color to gray.
- </description>
- </method>
- <method name="get_h">
- <return type="real">
- </return>
- <description>
- Compute the "hue" of the color.
- </description>
- </method>
- <method name="get_s">
- <return type="real">
- </return>
- <description>
- Compute the "saturation" of the color.
- </description>
- </method>
- <method name="get_v">
- <return type="real">
- </return>
- <description>
- Compute the "value" of the color.
- </description>
- </method>
- <method name="set_hsv">
- <argument index="0" name="h" type="real">
- </argument>
- <argument index="1" name="s" type="real">
- </argument>
- <argument index="2" name="v" type="real">
- </argument>
- <description>
- Set the color from the HSV format.
- </description>
- </method>
- <method name="invert">
- <description>
- Invert the color.
- </description>
- </method>
- <method name="contrast">
- <description>
- Contrast the color.
- </description>
- </method>
- <method name="interpolate">
- <argument index="0" name="c" type="Vector3">
- </argument>
- <argument index="1" name="i" type="real">
- (0 to 1)
- </argument>
- <description>
- Linearly blend with color "c", by amount "i".
- </description>
- </method>
- </methods>
- <members>
- <member name="r" type="real">
- Red.
- </member>
- <member name="g" type="real">
- Green.
- </member>
- <member name="b" type="real">
- Blue.
- </member>
- <member name="a" type="real">
- Alpha.
- </member>
- </members>
-</class>
-<class category="Core" name="Image">
- <brief_description>
- Two Dimensional Image.
- </brief_description>
- <description>
- Image represents a two-dimensional representation of an image, composed by a color per pixel.
- </description>
- <methods>
- <method name="get_width">
- <return type="real">
- </return>
- <description>
- Returns the width of the image (in pixels).
- </description>
- </method>
- <method name="get_height">
- <return type="real">
- </return>
- <description>
- Returns the height of the image (in pixels).
- </description>
- </method>
- <method name="get_pixel">
- <argument index="0" name="x" type="int">
- </argument>
- <argument index="1" name="y" type="int">
- </argument>
- <return type="Color">
- </return>
- <description>
- Get the color of the pixel at position (x,y).
- </description>
- </method>
- <method name="put_pixel">
- <argument index="0" name="x" type="int">
- </argument>
- <argument index="1" name="y" type="int">
- </argument>
- <argument index="2" name="color" type="Color">
- </argument>
- <description>
- Sets the color of the pixel at position (x,y).
- </description>
- </method>
- <method name="convert">
- <argument index="0" name="format" type="int">
- </argument>
- <description>
- Convert the image to a new format (valid values in the FORMAT_* enumeration).
- </description>
- </method>
- <method name="get_format">
- <return type="int">
- </return>
- <description>
- Get the image format (valid values in the FORMAT_* enumeration).
- </description>
- </method>
- <method name="resize">
- <argument index="0" name="width" type="int">
- </argument>
- <argument index="1" name="height" type="int">
- </argument>
- <description>
- Resize the image to a new pixel resolution given by width,height.
- </description>
- </method>
- <method name="crop">
- <argument index="0" name="width" type="int">
- </argument>
- <argument index="1" name="height" type="int">
- </argument>
- <description>
- Crop the image to a new pixel resolution given by width,height.
- </description>
- </method>
- <method name="flip_x">
- <description>
- Flip the X axis of the image.
- </description>
- </method>
- <method name="flip_y">
- <description>
- Flip the Y axis of the image.
- </description>
- </method>
- <method name="make_mipmap">
- <argument index="0" name="source" type="Image">
- </argument>
- <description>
- Create a mipmap from "source" image.
- </description>
- </method>
- <method name="make_normalmap">
- <argument index="0" name="height_scale" type="real">
- </argument>
- <description>
- Create a normalmap from "height_scale" image.
- </description>
- </method>
- <method name="create">
- <argument index="0" name="width" type="int">
- </argument>
- <argument index="1" name="height" type="int">
- </argument>
- <argument index="2" name="format" type="int">
- </argument>
- <description>
- Create a new image of size width, height and format.
- </description>
- </method>
- <method name="import">
- <argument index="0" name="width" type="int">
- </argument>
- <argument index="1" name="height" type="int">
- </argument>
- <argument index="2" name="format" type="int">
- </argument>
- <argument index="3" name="data" type="RawArray">
- </argument>
- <description>
- Import an image from raw data, given a specific format.
- </description>
- </method>
- <method name="empty">
- <return type="bool">
- </return>
- <description>
- Returns true if the image is empty.
- </description>
- </method>
- <method name="load">
- <argument index="0" name="path" type="String">
- </argument>
- <return type="Error">
- </return>
- <description>
- Load an image from a file in "path".
- </description>
- </method>
- </methods>
- <constants>
- <constant name="FORMAT_GRAYSCALE" value="0">
- </constant>
- <constant name="FORMAT_INTENSITY" value="1">
- </constant>
- <constant name="FORMAT_GRAYSCALE_ALPHA" value="2">
- </constant>
- <constant name="FORMAT_RGB" value="3">
- </constant>
- <constant name="FORMAT_RGBA" value="4">
- </constant>
- <constant name="FORMAT_INDEXED" value="5">
- </constant>
- <constant name="FORMAT_INDEXED_ALPHA" value="6">
- </constant>
- </constants>
-</class>
-<class category="Core" name="RID">
- <brief_description>
- Resource ID.
- </brief_description>
- <description>
- RID references a resource, typically created in a server.
- </description>
- <methods>
- <method name="is_valid">
- <return type="bool">
- </return>
- <description>
- Returns true if the resource is valid.
- </description>
- </method>
- </methods>
-</class>
-<class category="Core" name="InputEvent">
- <brief_description>
- A struct containing information fron an input device.
- </brief_description>
- <description>
- A struct containing information fron an input event, such as mouse, keyboard, joystick, etc. Valid event types are:<br></br>
- <list>
- <li> InputEvent.NONE </li>
- <li> InputEvent.KEY </li>
- <li> InputEvent.MOUSE_BUTTON </li>
- <li> InputEvent.MOUSE_MOTION </li>
- <li> InputEvent.JOYSTICK_MOTION </li>
- <li> InputEvent.JOYSTICK_BUTTON </li>
- </list>
-
- </description>
- <members>
- <member name="ID" type="int">
- Event ID. Every event as a unique ID.
- </member>
- <member name="type" type="int">
- Event type (check description).
- </member>
- <member name="device" type="int">
- Device that originated the event.
- </member>
- <member name="mouse_x" type="int">
- Mouse x position (for mouse events).
- </member>
- <member name="mouse_y" type="int">
- Mouse y position (for mouse events).
- </member>
- <member name="mouse_button_mask" type="int">
- State of the mouse buttons as a bitmask (for key and mouse events)
- </member>
- <member name="mouse_global_x" type="int">
- Global mouse x position (used in GUI Controls).
- </member>
- <member name="mouse_global_y" type="int">
- Global mouse y position (used in GUI Controls).
- </member>
- <member name="mouse_pressed" type="bool">
- if MOUSE_BUTTON was a press, this value is true.
- </member>
- <member name="mouse_doubleclick" type="bool">
- if MOUSE_BUTTON was a doubleclick, this value is true.
- </member>
- <member name="mouse_button_index" type="int">
- Index of the clicked button (mouse button event).
- </member>
- <member name="mouse_motion_x" type="int">
- Relative x motion of the mouse (mouse motion event).
- </member>
- <member name="mouse_motion_y" type="int">
- Relative y motion of the mouse (mouse motion event).
- </member>
- <member name="mod_alt" type="bool">
- If ALT modifier is pressed, this is true (mouse and key events).
- </member>
- <member name="mod_shift" type="bool">
- If SHIFT modifier is pressed, this is true (mouse and key events).
- </member>
- <member name="mod_control" type="bool">
- If CONTROL modifier is pressed, this is true (mouse and key events).
- </member>
- <member name="mod_meta" type="bool">
- If META modifier (win/apple/etc keys) is pressed, this is true (mouse and key events).
- </member>
- <member name="key_pressed" type="bool">
- if a KEY event originated from a keypress, this is true.
- </member>
- <member name="key_echo" type="bool">
- if a KEY event originated from an echo key, this is true.
- </member>
- <member name="key_unicode" type="int">
- Unicode value of a key pressed (key event).
- </member>
- <member name="key_scancode" type="Key">
- Scancode of a key pressed (check the KEY_* enumeration) (key event).
- </member>
- <member name="joy_button_index" type="int">
- Joystick button index (joy button event).
- </member>
- <member name="joy_button_pressed" type="bool">
- If joystick button was pressed, this is true (joy button event).
- </member>
- <member name="joy_button_index" type="int">
- Index of the pressed/released joystick button.
- </member>
- <member name="joy_axis" type="int">
- Axis of a joystick (joy axis event).
- </member>
- <member name="joy_axis_value" type="real">
- Axis value a joystick, from -1 to 1 (joy axis event).
- </member>
- </members>
- <constants>
- <constant name="NONE" value="0">
- Empty input event.
- </constant>
- <constant name="KEY" value="1">
- Key pressed/released event.
- </constant>
- <constant name="MOUSE_BUTTON" value="2">
- Mouse button pressed/released event.
- </constant>
- <constant name="JOYSTICK_MOTION" value="3">
- Joystick axis motion event.
- </constant>
- <constant name="JOYSTICK_BUTTON" value="4">
- Joystick button press/release event.
- </constant>
- </constants>
-
-</class>
-<class category="Core" name="FileAccess">
- <brief_description>
- File Access Interface.
- </brief_description>
- <description>
- FileAccess provides access to files in the host platform (remote access to files in webserver in the web plugin, as web plugin does not access the local filesystem).
- </description>
- <methods>
- <method name="open">
- <argument index="0" name="path" type="String">
- Path to a file
- </argument>
- <argument index="1" name="mode" type="int">
- Open mode: FileAccess.READ, FileAccess.WRITE or FileAccess.READ_WRITE
- </argument>
- <return type="Error">
- Error value (check the ERR_ macro for the meaning of the values)
- </return>
- <description>
- Open a file in a given path. Error is returned if the file can't be opened, is nt found, etc.
- </description>
- </method>
- <method name="close">
- <description>
- Closes a currently open file.
- </description>
- </method>
- <method name="is_open">
- <return type="bool">
- </return>
- <description>
- Returns true if a file is currently open.
- </description>
- </method>
- <method name="seek">
- <argument index="0" name="pos" type="int">
- </argument>
- <description>
- Seek to a given position (in bytes) in the file.
- </description>
- </method>
- <method name="seek_end">
- <argument index="0" name="pos" type="int">
- </argument>
- <description>
- Seek to a given position (in bytes) in the file, from the end of the file.
- </description>
- </method>
- <method name="get_pos">
- <return type="int">
- </return>
- <description>
- Get the current position in the file.
- </description>
- </method>
- <method name="get_len">
- <return type="int">
- </return>
- <description>
- Get the open file size (in bytes).
- </description>
- </method>
- <method name="eof_reached">
- <return type="bool">
- </return>
- <description>
- Returns true if EOF was reached (read past end of file).
- </description>
- </method>
- <method name="get_8">
- <return type="int">
- </return>
- <description>
- Read a byte from the file.
- </description>
- </method>
- <method name="get_16">
- <return type="int">
- </return>
- <description>
- Read a 16-bits unsigned integer from the file, in little/big endian format.
- </description>
- </method>
- <method name="get_32">
- <return type="int">
- </return>
- <description>
- Read a 32-bits unsigned integer from the file, in little/big endian format.
- </description>
- </method>
- <method name="set_endian_swap">
- <argument index="0" name="swap" type="bool">
- </argument>
- <description>
- Change the endian mode for reading sizes larger than a byte (read big endian files).
- </description>
- </method>
- <method name="get_endian_swap">
- <return type="bool">
- </return>
- <description>
- Return the status of the endian swap.
- </description>
- </method>
- <method name="store_8">
- <argument index="0" name="byte" type="int">
- </argument>
- <description>
- Store a byte in the file.
- </description>
- </method>
- <method name="store_16">
- <argument index="0" name="word" type="int">
- </argument>
- <description>
- Store a 16-bits integer in the file.
- </description>
- </method>
- <method name="store_32">
- <argument index="0" name="dword" type="int">
- </argument>
- <description>
- Store a 32 bits integer in the file.
- </description>
- </method>
- <method name="file_exists">
- <argument index="0" name="path" type="String">
- </argument>
- <return type="bool">
- </return>
- <description>
- Returns true if a given file (in path) exist.
- </description>
- </method>
- </methods>
- <constants>
- <constant name="READ" value="1">
- </constant>
- <constant name="WRITE" value="2">
- </constant>
- <constant name="READ_WRITE" value="4">
- </constant>
-
- </constants>
-</class>
-<class category="Core" name="Dir">
- <brief_description>
- Directory Tree Access Interface.
- </brief_description>
- <description>
- Dir provides access to directories in the host platform (remote access to files in webserver in the web plugin, as web plugin does not access the local filesystem).
- </description>
- <methods>
- <method name="list_dir_begin">
- <return type="bool">
- true if an error ocurred.
- </return>
- <description>
- Begin a directory listing. This is done iteratively due to the positility of directories with a large amount of entries.
- </description>
- </method>
- <method name="get_next">
- <return type="String">
- </return>
- <description>
- Get the next item. If the return value is empty (""), then the end of the directory has been reached.
- </description>
- </method>
- <method name="current_is_dir">
- <return type="bool">
- </return>
- <description>
- Returns true if the current item is a directory (not a file).
- </description>
- </method>
- <method name="list_dir_end">
- <description>
- End the directory listing.
- </description>
- </method>
- <method name="get_drive_count">
- <return type="int">
- </return>
- <description>
- Get the amount of drives (windows only, returns 0 on other platforms).
- </description>
- </method>
- <method name="get_drive">
- <argument index="0" name="di" type="int">
- </argument>
- <return type="String">
- </return>
- <description>
- Get the string (or character) representing the drive (such as "C","D",etc).
- </description>
- </method>
- <method name="change_dir">
- <argument index="0" name="dir" type="String">
- </argument>
- <return type="bool">
- </return>
- <description>
- Change the current directory of the dir access. "dir" can be either absolute or relative.
- </description>
- </method>
- <method name="get_current_dir">
- <return type="String">
- </return>
- <description>
- Get the full path of the current dir.
- </description>
- </method>
- <method name="get_dir_separator">
- <return type="String">
- </return>
- <description>
- Get the string or character most commonly used as drive separator in the host OS.
- </description>
- </method>
- <method name="make_dir">
- <argument index="0" name="name" type="String">
- </argument>
- <return type="bool">
- true on error.
- </return>
- <description>
- Create a new directory. "name" can be either absolute or relative.
- </description>
- </method>
- <method name="file_exists">
- <argument index="0" name="path" type="String">
- </argument>
- <return type="bool">
- </return>
- <description>
- Returns true if a file exist. "path" can be either absolute or relative.
- </description>
- </method>
- <method name="get_space_left">
- <return type="int">
- </return>
- <description>
- Return the space left on the device, in kilobytes.
- </description>
- </method>
- </methods>
-</class>
-<class category="Core" name="VideoMode">
- <brief_description>
- Video Mode structure.
- </brief_description>
- <description>
- Describes a video mode.
- </description>
- <members>
- <member name="width" type="int">
- </member>
- <member name="height" type="int">
- </member>
- <member name="fullscreen" type="bool">
- "true" if the video mode is full scren.
- </member>
- <member name="resizable" type="bool">
- "true" if the video mode can be resized to another video mode.
- </member>
- </members>
-</class>
-<class category="Core" name="Date">
- <brief_description>
- Date structure.
- </brief_description>
- <description>
- Describes a date.
- </description>
- <members>
- <member name="year" type="int">
- year (integer)
- </member>
- <member name="day" type="int">
- day of the year
- </member>
- <member name="weekday" type="int">
- day of the week (0 to 6)
- </member>
- <member name="month" type="int">
- month of the year (0 to 11)
- </member>
- <member name="dst" type="bool">
- "true" if daylight savings is enabled.
- </member>
- </members>
-</class>
-<class category="Core" name="Time">
- <brief_description>
- Current Time.
- </brief_description>
- <description>
- Describes the current time.
- </description>
- <members>
- <member name="hour" type="int">
- (0 to 11)
- </member>
- <member name="min" type="int">
- (0 to 59)
- </member>
- <member name="sec" type="int">
- (0 to 59)
- </member>
- </members>
-</class>
-<class category="Core" name="OS">
- <brief_description>
- Operating System common functions.
- </brief_description>
- <description>
- OS provides access to common host OS functions. "OS" Must not be instanced. All members are static (called like OS.get_name() ).
- </description>
- <methods>
- <method name="alert">
- <argument index="0" name="text" type="String">
- </argument>
- <description>
- Produce an alert. On OSs such as windows or mac, this may result in a popup dialog.
- </description>
- </method>
- <method name="set_mouse_show">
- <argument index="0" name="show" type="bool">
- </argument>
- <description>
- Determine the hardware cursor visibility (if available).
- </description>
- </method>
- <method name="set_mouse_grab">
- <argument index="0" name="grab" type="bool">
- </argument>
- <description>
- Capture the hardware cursor (if available).
- </description>
- </method>
- <method name="is_mouse_grab_enabled">
- <return type="bool">
- </return>
- <description>
- Returns true if the application is capturing the hardware cursor.
- </description>
- </method>
- <method name="get_name">
- <return type="String">
- </return>
- <description>
- Get the name of the host OS or Platform.
- </description>
- </method>
- <method name="set_video_mode">
- <argument index="0" name="mode" type="VideoMode">
- </argument>
- <description>
- Change the current videomode (if available).
- </description>
- </method>
- <method name="get_video_mode">
- <return type="VideoMode">
- </return>
- <description>
- Get the current videomode.
- </description>
- </method>
- <method name="get_date">
- <return type="Date">
- </return>
- <description>
- Get the current date.
- </description>
- </method>
- <method name="get_time">
- <return type="Time">
- </return>
- <description>
- Get the current time.
- </description>
- </method>
- <method name="get_ticks_msec">
- <return type="int">
- </return>
- <description>
- Get the amount of milliseconds since the app started.
- </description>
- </method>
- <method name="delay_usec">
- <argument index="0" name="usec" type="int">
- </argument>
- <description>
- Suspend the calling thread for "usec" milliseconds
- </description>
- </method>
- </methods>
-</class>
-<class category="Core" name="Math">
- <brief_description>
- Common math functions.
- </brief_description>
- <description>
- Math provides implementations of commonly used math functions."Math" shouldt not be instanced since all members are static (called like Math.cos() ).
- </description>
- <methods>
- <method name="sin">
- <argument index="0" name="rad" type="real">
- </argument>
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="cos">
- <argument index="0" name="rad" type="real">
- </argument>
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="tan">
- <argument index="0" name="rad" type="real">
- </argument>
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="asin">
- <argument index="0" name="s" type="real">
- </argument>
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="acos">
- <argument index="0" name="s" type="real">
- </argument>
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="atan2">
- <argument index="0" name="x" type="real">
- </argument>
- <argument index="1" name="y" type="real">
- </argument>
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="deg2rad">
- <argument index="0" name="deg" type="real">
- </argument>
- <return type="real">
- </return>
- <description>
- Degrees to Radians conversion.
- </description>
- </method>
- <method name="sqrt">
- <argument index="0" name="s" type="real">
- </argument>
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="pow">
- <argument index="0" name="base" type="real">
- </argument>
- <argument index="1" name="power" type="real">
- </argument>
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="exp">
- <argument index="0" name="s" type="real">
- </argument>
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="log">
- <argument index="0" name="s" type="real">
- </argument>
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="fmod">
- <argument index="0" name="x" type="real">
- </argument>
- <argument index="1" name="y" type="real">
- </argument>
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="stepify">
- <argument index="0" name="x" type="real">
- </argument>
- <argument index="1" name="step" type="real">
- </argument>
- <return type="real">
- </return>
- <description>
- Round to nearest (lowest) value in given step.
- </description>
- </method>
- <method name="floor">
- <argument index="0" name="s" type="real">
- </argument>
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="round">
- <argument index="0" name="s" type="real">
- </argument>
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="decimals">
- <argument index="0" name="s" type="real">
- </argument>
- <return type="int">
- </return>
- <description>
- Returns the amount of decimals used by "s".
- </description>
- </method>
- <method name="randf">
- <return type="real">
- </return>
- <description>
- Returns a random number fro 0 to 1
- </description>
- </method>
- <method name="random">
- <argument index="0" name="min" type="real">
- </argument>
- <argument index="1" name="max" type="real">
- </argument>
- <return type="real">
- </return>
- <description>
- Returns a random number between "min" and "max"
- </description>
- </method>
- </methods>
- <constants>
- <constant name="PI" value="3.14159265358979323846">
- </constant>
- </constants>
-
-</class>
-<class category="Core" name="Shell">
- <brief_description>
- Shell Execution interface.
- </brief_description>
- <description>
- Shell allows the application to open a given URL in the host OS. It can be anything the host OS understands, from a web page to a media file.
- </description>
- <methods>
- <method name="exec">
- <argument index="0" name="url" type="String">
- </argument>
- <description>
- Open any URL the host OS understands.
- </description>
- </method>
- </methods>
-</class>
-<class category="Core" name="ResourceLoader">
- <brief_description>
- Resource Loader.
- </brief_description>
- <description>
- ResourceLoader loads resources from disk and returns a resource object.
- </description>
- <methods>
- <method name="load">
- <argument index="0" name="path" type="String">
- </argument>
- <return type="Resource">
- null on failure.
- </return>
- <description>
- Open a resource in the given path.
- </description>
- </method>
- </methods>
-</class>
-<class category="Core" name="SceneLoader">
- <brief_description>
- Scene Loader
- </brief_description>
- <description>
- SceneLoader loads scenes from disk and returns a scene node.
- </description>
- <methods>
- <method name="load">
- <argument index="0" name="path" type="String">
- </argument>
- <return type="Node">
- A scene node, null on error.
- </return>
- <description>
- Load a scene from disk at given "path" and return a node object.
- </description>
- </method>
- </methods>
-</class>
-<class category="Core" name="Object">
- <brief_description>
- Base class for the Object Model.
- </brief_description>
- <description>
- Object is the building block of most of the high level engine interfaces. The "Object" interface contains a reference to an actual internal Object.
- Usually, Object memory should not be managed by the API, as resources will be fred automatically when not in use and nodes are deleted by their parent nodes.
- </description>
- <methods>
- <method name="free">
- <description>
- Free the Object reference. This should not be used with nodes inside a scene tree, as they are removed by their parent node. This function can also be used to unreference resources.
- </description>
- </method>
- <method name="get_type">
- <return type="String">
- </return>
- <description>
- Get a string with the type name of the object.
- </description>
- </method>
- <method name="has_instance">
- <return type="bool">
- </return>
- <description>
- Returns true if the Object datatype contains a reference to an actual object instance.
- </description>
- </method>
- <method name="get_instance_ID">
- <return type="bool">
- </return>
- <description>
- Return the instance ID of the object. Every Object has a unique instance ID.
- </description>
- </method>
- <method name="is_type" qualifiers="const" >
- <return type="bool" >
- </return>
- <argument index="0" name="type" type="String" >
- </argument>
- <description>
- Return true if the type of the object class (or any base clases) match "type.
- </description>
- </method>
- <method name="set" >
- <argument index="0" name="property" type="String" >
- </argument>
- <argument index="1" name="value" type="var" >
- </argument>
- <description>
- Set a property "property", with any value "value. This function can be inherited with "_set" (but base class "_set" will still be called).
- </description>
- </method>
- <method name="get" qualifiers="const" >
- <return type="var" >
- </return>
- <argument index="0" name="property" type="String" >
- </argument>
- <description>
- Return a property "property". This function can be inherited with "_get" (but base class "_get" will still be called).
- </description>
- </method>
- <method name="notification" >
- <argument index="0" name="what" type="int" >
- </argument>
- <argument index="1" name="reverse" type="bool" default="false" >
- </argument>
- <description>
- Perform a notification. Notifications are quick ways to tell an Object that something happened or changed regarding it's state and surroundings. This function can be inherited with "_notification" (but base class "_notification" will still be called).
- </description>
- </method>
- <method name="set_script" >
- <argument index="0" name="script" type="RefPtr" >
- </argument>
- <description>
- Set the script of the object. Any object can contain a script. Scripts behave as if they inherited the object they are set to
- </description>
- </method>
- <method name="get_script" qualifiers="const" >
- <return type="RefPtr" >
- </return>
- <description>
- Return the script of the object. Any object can contain a script. Scripts behave as if they inherited the object they are set to
- </description>
- </method>
- <method name="set_meta" >
- <argument index="0" name="name" type="String" >
- </argument>
- <description>
- Set a meta property. Meta properties are just containers for setting and retrieving any custom data to an object. Metaproperties are also saved with the object.
- </description>
- </method>
- <method name="get_meta" qualifiers="const" >
- <argument index="0" name="name" type="String" >
- </argument>
- <description>
- Return a meta property. Meta properties are just containers for setting and retrieving any custom data to an object. Metaproperties are also saved with the object.
- </description>
- </method>
- <method name="has_meta" qualifiers="const" >
- <return type="bool" >
- </return>
- <argument index="0" name="name" type="String" >
- </argument>
- <description>
- Return wether an object has a meta property. Meta properties are just containers for setting and retrieving any custom data to an object. Metaproperties are also saved with the object.
- </description>
- </method>
- <method name="get_meta_list" qualifiers="const" >
- <return type="StringArray" >
- </return>
- <description>
- Return the list of meta properties in the object. Meta properties are just containers for setting and retrieving any custom data to an object. Metaproperties are also saved with the object.
- </description>
- </method>
- <method name="call" >
- <argument index="0" name="method" type="String" >
- </argument>
- <description>
- Call any method in the object (syntax: call("method", .. arguments..).
- </description>
- </method>
- </methods>
- <constants>
- <constant name="NOTIFICATION_POSTINITIALIZE" value="0">
- This notification is called right after the object is done initializing
- </constant>
- <constant name="NOTIFICATION_PREDELETE" value="1">
- This notification is called right before the object will e deleted.
- </constant>
- </constants>
-</class>
-<class category="Core" name="Key">
- <brief_description>
- All Symbolic Key Names
- </brief_description>
- <description>
- Key is an enumaration containing the constants for all the symbolic key names. They are used directly (not with Key. prefix). This value is used in the "scancode" field of the "KEY" InputEvent.
- </description>
- <constants>
- <constant name="SPKEY">Special Key Mask</constant>
- <constant name="KEY_ESCAPE"></constant>
- <constant name="KEY_TAB"></constant>
- <constant name="KEY_BACKTAB"></constant>
- <constant name="KEY_BACKSPACE"></constant>
- <constant name="KEY_RETURN"></constant>
- <constant name="KEY_ENTER"></constant>
- <constant name="KEY_INSERT"></constant>
- <constant name="KEY_DELETE"></constant>
- <constant name="KEY_PAUSE"></constant>
- <constant name="KEY_PRINT"></constant>
- <constant name="KEY_SYSREQ"></constant>
- <constant name="KEY_CLEAR"></constant>
- <constant name="KEY_HOME"></constant>
- <constant name="KEY_END"></constant>
- <constant name="KEY_LEFT"></constant>
- <constant name="KEY_UP"></constant>
- <constant name="KEY_RIGHT"></constant>
- <constant name="KEY_DOWN"></constant>
- <constant name="KEY_PAGEUP"></constant>
- <constant name="KEY_PAGEDOWN"></constant>
- <constant name="KEY_SHIFT"></constant>
- <constant name="KEY_CONTROL"></constant>
- <constant name="KEY_META"></constant>
- <constant name="KEY_ALT"></constant>
- <constant name="KEY_CAPSLOCK"></constant>
- <constant name="KEY_NUMLOCK"></constant>
- <constant name="KEY_SCROLLLOCK"></constant>
- <constant name="KEY_F1"></constant>
- <constant name="KEY_F2"></constant>
- <constant name="KEY_F3"></constant>
- <constant name="KEY_F4"></constant>
- <constant name="KEY_F5"></constant>
- <constant name="KEY_F6"></constant>
- <constant name="KEY_F7"></constant>
- <constant name="KEY_F8"></constant>
- <constant name="KEY_F9"></constant>
- <constant name="KEY_F10"></constant>
- <constant name="KEY_F11"></constant>
- <constant name="KEY_F12"></constant>
- <constant name="KEY_F13"></constant>
- <constant name="KEY_F14"></constant>
- <constant name="KEY_F15"></constant>
- <constant name="KEY_F16"></constant>
- <constant name="KEY_KP_ENTER"></constant>
- <constant name="KEY_KP_MULTIPLY"></constant>
- <constant name="KEY_KP_DIVIDE"></constant>
- <constant name="KEY_KP_SUBSTRACT"></constant>
- <constant name="KEY_KP_PERIOD"></constant>
- <constant name="KEY_KP_ADD"></constant>
- <constant name="KEY_KP_0"></constant>
- <constant name="KEY_KP_1"></constant>
- <constant name="KEY_KP_2"></constant>
- <constant name="KEY_KP_3"></constant>
- <constant name="KEY_KP_4"></constant>
- <constant name="KEY_KP_5"></constant>
- <constant name="KEY_KP_6"></constant>
- <constant name="KEY_KP_7"></constant>
- <constant name="KEY_KP_8"></constant>
- <constant name="KEY_KP_9"></constant>
- <constant name="KEY_SUPER_L"></constant>
- <constant name="KEY_SUPER_R"></constant>
- <constant name="KEY_MENU"></constant>
- <constant name="KEY_HYPER_L"></constant>
- <constant name="KEY_HYPER_R"></constant>
- <constant name="KEY_HELP"></constant>
- <constant name="KEY_DIRECTION_L"></constant>
- <constant name="KEY_DIRECTION_R"></constant>
- <constant name="KEY_BACK"></constant>
- <constant name="KEY_FORWARD"></constant>
- <constant name="KEY_STOP"></constant>
- <constant name="KEY_REFRESH"></constant>
- <constant name="KEY_VOLUMEDOWN"></constant>
- <constant name="KEY_VOLUMEMUTE"></constant>
- <constant name="KEY_VOLUMEUP"></constant>
- <constant name="KEY_BASSBOOST"></constant>
- <constant name="KEY_BASSUP"></constant>
- <constant name="KEY_BASSDOWN"></constant>
- <constant name="KEY_TREBLEUP"></constant>
- <constant name="KEY_TREBLEDOWN"></constant>
- <constant name="KEY_MEDIAPLAY"></constant>
- <constant name="KEY_MEDIASTOP"></constant>
- <constant name="KEY_MEDIAPREVIOUS"></constant>
- <constant name="KEY_MEDIANEXT"></constant>
- <constant name="KEY_MEDIARECORD"></constant>
- <constant name="KEY_HOMEPAGE"></constant>
- <constant name="KEY_FAVORITES"></constant>
- <constant name="KEY_SEARCH"></constant>
- <constant name="KEY_STANDBY"></constant>
- <constant name="KEY_OPENURL"></constant>
- <constant name="KEY_LAUNCHMAIL"></constant>
- <constant name="KEY_LAUNCHMEDIA"></constant>
- <constant name="KEY_LAUNCH0"></constant>
- <constant name="KEY_LAUNCH1"></constant>
- <constant name="KEY_LAUNCH2"></constant>
- <constant name="KEY_LAUNCH3"></constant>
- <constant name="KEY_LAUNCH4"></constant>
- <constant name="KEY_LAUNCH5"></constant>
- <constant name="KEY_LAUNCH6"></constant>
- <constant name="KEY_LAUNCH7"></constant>
- <constant name="KEY_LAUNCH8"></constant>
- <constant name="KEY_LAUNCH9"></constant>
- <constant name="KEY_LAUNCHA"></constant>
- <constant name="KEY_LAUNCHB"></constant>
- <constant name="KEY_LAUNCHC"></constant>
- <constant name="KEY_LAUNCHD"></constant>
- <constant name="KEY_LAUNCHE"></constant>
- <constant name="KEY_LAUNCHF"></constant>
-
- <constant name="KEY_UNKNOWN"></constant>
- <constant name="KEY_SPACE"></constant>
- <constant name="KEY_EXCLAM"></constant>
- <constant name="KEY_QUOTEDBL"></constant>
- <constant name="KEY_NUMBERSIGN"></constant>
- <constant name="KEY_DOLLAR"></constant>
- <constant name="KEY_PERCENT"></constant>
- <constant name="KEY_AMPERSAND"></constant>
- <constant name="KEY_APOSTROPHE"></constant>
- <constant name="KEY_PARENLEFT"></constant>
- <constant name="KEY_PARENRIGHT"></constant>
- <constant name="KEY_ASTERISK"></constant>
- <constant name="KEY_PLUS"></constant>
- <constant name="KEY_COMMA"></constant>
- <constant name="KEY_MINUS"></constant>
- <constant name="KEY_PERIOD"></constant>
- <constant name="KEY_SLASH"></constant>
- <constant name="KEY_0"></constant>
- <constant name="KEY_1"></constant>
- <constant name="KEY_2"></constant>
- <constant name="KEY_3"></constant>
- <constant name="KEY_4"></constant>
- <constant name="KEY_5"></constant>
- <constant name="KEY_6"></constant>
- <constant name="KEY_7"></constant>
- <constant name="KEY_8"></constant>
- <constant name="KEY_9"></constant>
- <constant name="KEY_COLON"></constant>
- <constant name="KEY_SEMICOLON"></constant>
- <constant name="KEY_LESS"></constant>
- <constant name="KEY_EQUAL"></constant>
- <constant name="KEY_GREATER"></constant>
- <constant name="KEY_QUESTION"></constant>
- <constant name="KEY_AT"></constant>
- <constant name="KEY_A"></constant>
- <constant name="KEY_B"></constant>
- <constant name="KEY_C"></constant>
- <constant name="KEY_D"></constant>
- <constant name="KEY_E"></constant>
- <constant name="KEY_F"></constant>
- <constant name="KEY_G"></constant>
- <constant name="KEY_H"></constant>
- <constant name="KEY_I"></constant>
- <constant name="KEY_J"></constant>
- <constant name="KEY_K"></constant>
- <constant name="KEY_L"></constant>
- <constant name="KEY_M"></constant>
- <constant name="KEY_N"></constant>
- <constant name="KEY_O"></constant>
- <constant name="KEY_P"></constant>
- <constant name="KEY_Q"></constant>
- <constant name="KEY_R"></constant>
- <constant name="KEY_S"></constant>
- <constant name="KEY_T"></constant>
- <constant name="KEY_U"></constant>
- <constant name="KEY_V"></constant>
- <constant name="KEY_W"></constant>
- <constant name="KEY_X"></constant>
- <constant name="KEY_Y"></constant>
- <constant name="KEY_Z"></constant>
- <constant name="KEY_BRACKETLEFT"></constant>
- <constant name="KEY_BACKSLASH"></constant>
- <constant name="KEY_BRACKETRIGHT"></constant>
- <constant name="KEY_ASCIICIRCUM"></constant>
- <constant name="KEY_UNDERSCORE"></constant>
- <constant name="KEY_QUOTELEFT"></constant>
- <constant name="KEY_BRACELEFT"></constant>
- <constant name="KEY_BAR"></constant>
- <constant name="KEY_BRACERIGHT"></constant>
- <constant name="KEY_ASCIITILDE"></constant>
- <constant name="KEY_NOBREAKSPACE"></constant>
- <constant name="KEY_EXCLAMDOWN"></constant>
- <constant name="KEY_CENT"></constant>
- <constant name="KEY_STERLING"></constant>
- <constant name="KEY_CURRENCY"></constant>
- <constant name="KEY_YEN"></constant>
- <constant name="KEY_BROKENBAR"></constant>
- <constant name="KEY_SECTION"></constant>
- <constant name="KEY_DIAERESIS"></constant>
- <constant name="KEY_COPYRIGHT"></constant>
- <constant name="KEY_ORDFEMININE"></constant>
- <constant name="KEY_GUILLEMOTLEFT"></constant>
- <constant name="KEY_NOTSIGN"></constant>
- <constant name="KEY_HYPHEN"></constant>
- <constant name="KEY_REGISTERED"></constant>
- <constant name="KEY_MACRON"></constant>
- <constant name="KEY_DEGREE"></constant>
- <constant name="KEY_PLUSMINUS"></constant>
- <constant name="KEY_TWOSUPERIOR"></constant>
- <constant name="KEY_THREESUPERIOR"></constant>
- <constant name="KEY_ACUTE"></constant>
- <constant name="KEY_MU"></constant>
- <constant name="KEY_PARAGRAPH"></constant>
- <constant name="KEY_PERIODCENTERED"></constant>
- <constant name="KEY_CEDILLA"></constant>
- <constant name="KEY_ONESUPERIOR"></constant>
- <constant name="KEY_MASCULINE"></constant>
- <constant name="KEY_GUILLEMOTRIGHT"></constant>
- <constant name="KEY_ONEQUARTER"></constant>
- <constant name="KEY_ONEHALF"></constant>
- <constant name="KEY_THREEQUARTERS"></constant>
- <constant name="KEY_QUESTIONDOWN"></constant>
- <constant name="KEY_AGRAVE"></constant>
- <constant name="KEY_AACUTE"></constant>
- <constant name="KEY_ACIRCUMFLEX"></constant>
- <constant name="KEY_ATILDE"></constant>
- <constant name="KEY_ADIAERESIS"></constant>
- <constant name="KEY_ARING"></constant>
- <constant name="KEY_AE"></constant>
- <constant name="KEY_CCEDILLA"></constant>
- <constant name="KEY_EGRAVE"></constant>
- <constant name="KEY_EACUTE"></constant>
- <constant name="KEY_ECIRCUMFLEX"></constant>
- <constant name="KEY_EDIAERESIS"></constant>
- <constant name="KEY_IGRAVE"></constant>
- <constant name="KEY_IACUTE"></constant>
- <constant name="KEY_ICIRCUMFLEX"></constant>
- <constant name="KEY_IDIAERESIS"></constant>
- <constant name="KEY_ETH"></constant>
- <constant name="KEY_NTILDE"></constant>
- <constant name="KEY_OGRAVE"></constant>
- <constant name="KEY_OACUTE"></constant>
- <constant name="KEY_OCIRCUMFLEX"></constant>
- <constant name="KEY_OTILDE"></constant>
- <constant name="KEY_ODIAERESIS"></constant>
- <constant name="KEY_MULTIPLY"></constant>
- <constant name="KEY_OOBLIQUE"></constant>
- <constant name="KEY_UGRAVE"></constant>
- <constant name="KEY_UACUTE"></constant>
- <constant name="KEY_UCIRCUMFLEX"></constant>
- <constant name="KEY_UDIAERESIS"></constant>
- <constant name="KEY_YACUTE"></constant>
- <constant name="KEY_THORN"></constant>
- <constant name="KEY_SSHARP"></constant>
-
- <constant name="KEY_DIVISION"></constant>
- <constant name="KEY_YDIAERESIS"></constant>
-
- <constant name="KEY_CODE_MASK"></constant>
- <constant name="KEY_MODIFIER_MASK"></constant>
-
- <constant name="KEY_MASK_SHIFT"></constant>
- <constant name="KEY_MASK_ALT"></constant>
- <constant name="KEY_MASK_META"></constant>
- <constant name="KEY_MASK_CTRL"></constant>
- <constant name="KEY_MASK_KPAD"></constant>
- <constant name="KEY_MASK_GROUP_SWITCH"></constant>
-
- </constants>
-</class>
-<class category="Core" name="PropertyHint">
- <brief_description>
- Property Hints.
- </brief_description>
- <description>
- PropertyHint hints editors on how to edit a property. In many cases, hint_string (in the PropertyInfo) will contain extra data. These constants are used globally ("PropertyHint" class doesn't exist").
- </description>
- <constants>
- <constant name="PROPERTY_HINT_NONE"></constant>
- <constant name="PROPERTY_HINT_RANGE">Hint_string defined as "min,max,step
- "</constant>
- <constant name="PROPERTY_HINT_ENUM">Values such as 0,1,2 are represented in hint_string as "A,B,C"</constant>
- <constant name="PROPERTY_HINT_LENGTH">hint_string is the length of an array type.</constant>
- <constant name="PROPERTY_HINT_FLAGS">Flags names are in hint_string from MSB to LSB as "flag8,fla7,flag6,,,,flag1"</constant>
- <constant name="PROPERTY_HINT_PATH">Property is a path.</constant>
- <constant name="PROPERTY_HINT_FILE">Property is a path to a file.</constant>
- <constant name="PROPERTY_HINT_DIR">Property is a path to a dir.</constant>
- <constant name="PROPERTY_HINT_RESOURCE_TYPE">hint_string contains the valid resource types the property accept (separated by ",").</constant>
- </constants>
-</class>
-<class category="Core" name="PropertyUsage">
- <brief_description>
- Usage for an object property.
- </brief_description>
- <description>
- PropertyUsage defines a list of (inclusive) usages that can be ORed together to specify how the property will be treated in different scenarios. These constants are used globally ("PropertyUsage" class doesn't exist").
- </description>
- <constants>
- <constant name="PROPERTY_USAGE_STORAGE"> Property is Saved/Loaded from disk.</constant>
- <constant name="PROPERTY_USAGE_EDITOR">Property is visible in editor (for editing).</constant>
- <constant name="PROPERTY_USAGE_NETWORK">Property can be syncronized on network.</constant>
- <constant name="PROPERTY_USAGE_DEFAULT">Default usage.</constant>
- </constants>
-</class>
-<class category="Core" name="Type">
- <brief_description>
- Valid Data Types.
- </brief_description>
- <description>
- Type consists of a list of valid types. It is usually used for property type hinting. These constants are used globally ("Type" class doesn't exist").
- </description>
- <constants>
- <constant name="TYPE_NIL"></constant>
- <constant name="TYPE_BOOL"></constant>
- <constant name="TYPE_INT"></constant>
- <constant name="TYPE_REAL"></constant>
- <constant name="TYPE_STRING"></constant>
- <constant name="TYPE_VECTOR2"></constant>
- <constant name="TYPE_RECT2"></constant>
- <constant name="TYPE_VECTOR3"></constant>
- <constant name="TYPE_PLANE"></constant>
- <constant name="TYPE_QUAT"></constant>
- <constant name="TYPE_AABB"></constant>
- <constant name="TYPE_MATRIX3"></constant>
- <constant name="TYPE_TRANSFORM"></constant>
- <constant name="TYPE_COLOR"></constant>
- <constant name="TYPE_IMAGE"></constant>
- <constant name="TYPE_NODE_PATH"></constant>
- <constant name="TYPE_RESOURCE"></constant>
- <constant name="TYPE_RID"></constant>
- <constant name="TYPE_OBJECT"></constant>
- <constant name="TYPE_INPUT_EVENT"></constant>
- <constant name="TYPE_DICTIONARY"></constant>
- <constant name="TYPE_ARRAY"></constant>
- <constant name="TYPE_RAW_ARRAY"></constant>
- <constant name="TYPE_INT_ARRAY"></constant>
- <constant name="TYPE_REAL_ARRAY"></constant>
- <constant name="TYPE_STRING_ARRAY"></constant>
- <constant name="TYPE_VECTOR3_ARRAY"></constant>
- <constant name="TYPE_COLOR_ARRAY"></constant>
- </constants>
-</class>
-
-
-<class category="Core" name="Error">
- <brief_description>
- List of generic errors.
- </brief_description>
- <description>
- Error is a list of generic errors
- </description>
- <constants>
- <constant name="OK"></constant>
- <constant name="FAILED"> Generic fail error</constant>
- <constant name="ERR_UNAVAILABLE"> What is requested is unsupported/unavailable</constant>
- <constant name="ERR_UNCONFIGURED"> The object being used hasnt been properly set up yet</constant>
- <constant name="ERR_UNAUTHORIZED"> Missing credentials for requested resource</constant>
- <constant name="ERR_PARAMETER_RANGE_ERROR"> Parameter given out of range</constant>
- <constant name="ERR_OUT_OF_MEMORY"> Out of memory</constant>
- <constant name="ERR_FILE_NOT_FOUND"></constant>
- <constant name="ERR_FILE_BAD_DRIVE"></constant>
- <constant name="ERR_FILE_BAD_PATH"></constant>
- <constant name="ERR_FILE_NO_PERMISSION"></constant>
- <constant name="ERR_FILE_ALREADY_IN_USE"></constant>
- <constant name="ERR_FILE_CANT_OPEN"></constant>
- <constant name="ERR_FILE_CANT_WRITE"></constant>
- <constant name="ERR_FILE_CANT_READ"></constant>
- <constant name="ERR_FILE_UNRECOGNIZED"></constant>
- <constant name="ERR_FILE_CORRUPT"></constant>
- <constant name="ERR_FILE_EOF"></constant>
- <constant name="ERR_CANT_OPEN"> Can't open a resource/socket/file</constant>
- <constant name="ERR_CANT_CREATE"></constant>
- <constant name="ERROR_QUERY_FAILED"></constant>
- <constant name="ERR_ALREADY_IN_USE"></constant>
- <constant name="ERR_LOCKED"> resource is locked</constant>
- <constant name="ERR_TIMEOUT"></constant>
- <constant name="ERR_CANT_AQUIRE_RESOURCE"></constant>
- <constant name="ERR_INVALID_DATA"> Data passed is invalid</constant>
- <constant name="ERR_INVALID_PARAMETER"> Parameter passed is invalid</constant>
- <constant name="ERR_ALREADY_EXISTS"> When adding"> item already exists</constant>
- <constant name="ERR_DOES_NOT_EXIST"> When retrieving/erasing"> it item does not exist</constant>
- <constant name="ERR_DATABASE_CANT_READ"> database is full</constant>
- <constant name="ERR_DATABASE_CANT_WRITE"> database is full</constant>
- <constant name="ERR_COMPILATION_FAILED"></constant>
- <constant name="ERR_METHOD_NOT_FOUND"></constant>
- <constant name="ERR_LINK_FAILED"></constant>
- <constant name="ERR_SCRIPT_FAILED"></constant>
- <constant name="ERR_CYCLIC_LINK"></constant>
- <constant name="ERR_BUSY"></constant>
- <constant name="ERR_HELP"> user requested help!!</constant>
- <constant name="ERR_BUG"> a bug in the software certainly happeneddue to a double check failing or unexpected behavior.</constant>
- <constant name="ERR_WTF "> an impossible to trigger check due to paranoid programmer was triggered</constant>
- </constants>
-</class>
-</doc>
-
-
diff --git a/doc/deferred_format.txt b/doc/deferred_format.txt
deleted file mode 100644
index 76a158a3ce..0000000000
--- a/doc/deferred_format.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-deferred:
-
-ar ag ab gl - accumulation RGB + glow
-
-nx ny mx my? - normal, motion
-dr dg db sm - diffuse, shademodel
-sr sg sb sp - specular OR shadeparams
-
-ar ag ab gl
-nx ny sp sp
-dr dg db se
-444 6
-se can be 6 bits, 2 for shade model
-
-shade models:
-
-0 - none
-1 - wrap
-2 - toon
-3 - fresne
-
-
-
-sp: 2 bits what - 6 bits param
-
-16
-
-
-
-
-
-
-
diff --git a/doc/demos.txt b/doc/demos.txt
deleted file mode 100644
index cf56a5cbc6..0000000000
--- a/doc/demos.txt
+++ /dev/null
@@ -1,40 +0,0 @@
--Oceano
--Portales
--Grilla
--Personaje
--Auto (?)
--Fisica
--Fisica Idle
--Low level APIS (Server)
--Sonido Posicional
--Custom Shaders
--HDR
--Trees Waving
--luces
--fixed material
--shader material
--synctoaudio speech and speex
--particulas con gif animados para mostrar que es cada parametro
--soporte de syntax hilight de gdscript para editores mas comunes
--instanciar enemigos usando duplicate
--simulated motion con animacion
--animation player controla otro animation player (tipo camina de lugar a otro y saluda)
--corutinas y loops con yield para animation, audio, etc
--CCD (bullets)
-
--custom gizmos, editor plugins en script
-
-Clases que necesitan tutorial.
-
-Animation/AnimationPlayer
-Area2D (space override, notifications)
-custom container demo
-custon drawing in a canvas item
-ignore mouse on top of button
-input in a game, with _unhandled_input
-demo containers
-Control, anchors e input event handling
-lots of 2D physics examples
-dictionary and array doc of passing by reference?
-
-
diff --git a/doc/engine_classes.xml b/doc/engine_classes.xml
deleted file mode 100644
index 43602e26e9..0000000000
--- a/doc/engine_classes.xml
+++ /dev/null
@@ -1,17940 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<doc version="0.99.2555-pre-beta" name="Engine Types">
-<class name="AcceptDialog" inherits="WindowDialog" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="get_ok">
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="get_label">
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="set_hide_on_ok">
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_hide_on_ok" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="add_button">
- <return type="Button">
- </return>
- <argument index="0" name="text" type="String" default="&quot;&quot;">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_cancel">
- <return type="Button">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="register_text_enter">
- <argument index="0" name="line_edit" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_text">
- <argument index="0" name="text" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_text" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="confirmed">
- <description>
- </description>
- </signal>
- <signal name="custom_action">
- <argument index="0" name="action" type="String">
- </argument>
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- </constants>
-</class>
-<class name="Animation" inherits="Resource" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="add_track">
- <return type="int">
- </return>
- <argument index="0" name="type" type="int">
- </argument>
- <argument index="1" name="at_pos" type="int" default="-1">
- </argument>
- <description>
- </description>
- </method>
- <method name="remove_track">
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_track_count" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="track_get_type" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="track_get_path" qualifiers="const">
- <return type="NodePath">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="track_set_path">
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="path" type="NodePath">
- </argument>
- <description>
- </description>
- </method>
- <method name="track_move_up">
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="track_move_down">
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="transform_track_insert_key">
- <return type="int">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="time" type="real">
- </argument>
- <argument index="2" name="loc" type="Vector3">
- </argument>
- <argument index="3" name="rot" type="Quat">
- </argument>
- <argument index="4" name="scale" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="track_insert_key">
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="time" type="real">
- </argument>
- <argument index="2" name="key" type="var">
- </argument>
- <argument index="3" name="transition" type="real" default="1">
- </argument>
- <description>
- </description>
- </method>
- <method name="track_remove_key">
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="key_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="track_remove_key_at_pos">
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="pos" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="track_set_key_value">
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="key" type="int">
- </argument>
- <argument index="2" name="value" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="track_set_key_transition">
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="key_idx" type="int">
- </argument>
- <argument index="2" name="transition" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="track_get_key_transition" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="key_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="track_get_key_count" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="track_get_key_value" qualifiers="const">
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="key_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="track_get_key_time" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="key_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="track_find_key" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="time" type="real">
- </argument>
- <argument index="2" name="exact" type="bool" default="false">
- </argument>
- <description>
- </description>
- </method>
- <method name="track_set_interpolation_type">
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="interpolation" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="track_get_interpolation_type" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="transform_track_interpolate" qualifiers="const">
- <return type="Array">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="time_sec" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="value_track_set_continuous">
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="continuous" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="value_track_is_continuous" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="value_track_get_key_indices" qualifiers="const">
- <return type="IntArray">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="time_sec" type="real">
- </argument>
- <argument index="2" name="delta" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="method_track_get_key_indices" qualifiers="const">
- <return type="IntArray">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="time_sec" type="real">
- </argument>
- <argument index="2" name="delta" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="method_track_get_name" qualifiers="const">
- <return type="String">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="key_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="method_track_get_params" qualifiers="const">
- <return type="Array">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="key_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_length">
- <argument index="0" name="time_sec" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_length" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_loop">
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_loop" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="clear">
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="TYPE_TRANSFORM" value="0">
- </constant>
- <constant name="TYPE_VALUE" value="1">
- </constant>
- <constant name="TYPE_METHOD" value="2">
- </constant>
- <constant name="INTERPOLATION_NEAREST" value="0">
- </constant>
- <constant name="INTERPOLATION_LINEAR" value="1">
- </constant>
- <constant name="INTERPOLATION_CUBIC" value="2">
- </constant>
- </constants>
-</class>
-<class name="AnimationPlayer" inherits="Node" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="add_animation">
- <return type="int">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="animation" type="Animation">
- </argument>
- <description>
- </description>
- </method>
- <method name="remove_animation">
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="rename_animation">
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="newname" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_animation" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_animation" qualifiers="const">
- <return type="Animation">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_animation_list" qualifiers="const">
- <return type="StringArray">
- </return>
- <description>
- </description>
- </method>
- <method name="set_blend_time">
- <argument index="0" name="anim_from" type="String">
- </argument>
- <argument index="1" name="anim_to" type="String">
- </argument>
- <argument index="2" name="sec" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_blend_time" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="anim_from" type="String">
- </argument>
- <argument index="1" name="anim_to" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="play">
- <argument index="0" name="name" type="String" default="&quot;&quot;">
- </argument>
- <description>
- </description>
- </method>
- <method name="stop">
- <description>
- </description>
- </method>
- <method name="stop_all">
- <description>
- </description>
- </method>
- <method name="is_playing" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_current_animation">
- <argument index="0" name="anim" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_current_animation" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="queue">
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_pause">
- <argument index="0" name="paused" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_paused" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_speed">
- <argument index="0" name="speed" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_speed" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_autoplay">
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_autoplay" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="seek">
- <argument index="0" name="pos_sec" type="real">
- </argument>
- <argument index="1" name="update" type="bool" default="false">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_pos" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="find_animation" qualifiers="const">
- <return type="String">
- </return>
- <argument index="0" name="animation" type="Animation">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear_caches">
- <description>
- </description>
- </method>
- <method name="set_animation_process_mode">
- <argument index="0" name="mode" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_animation_process_mode" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="finished">
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- <constant name="ANIMATION_PROCESS_FIXED" value="0">
- </constant>
- <constant name="ANIMATION_PROCESS_IDLE" value="1">
- </constant>
- </constants>
-</class>
-<class name="AnimationTreePlayer" inherits="Node" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="add_node">
- <argument index="0" name="type" type="int">
- </argument>
- <argument index="1" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_node_id" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="node_set_name">
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="node_get_name" qualifiers="const">
- <return type="String">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="node_get_type" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="node_get_input_count" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="animation_node_set_animation">
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="animation" type="Animation">
- </argument>
- <description>
- </description>
- </method>
- <method name="animation_node_get_animation" qualifiers="const">
- <return type="Animation">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="oneshot_node_set_fadein_time">
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="time_sec" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="oneshot_node_get_fadein_time" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="oneshot_node_set_fadeout_time">
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="time_sec" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="oneshot_node_get_fadeout_time" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="oneshot_node_set_autorestart">
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="oneshot_node_set_autorestart_delay">
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="delay_sec" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="oneshot_node_set_autorestart_random_delay">
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="rand_sec" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="oneshot_node_has_autorestart" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="oneshot_node_get_autorestart_delay" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="oneshot_node_get_autorestart_random_delay" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="oneshot_node_start">
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="oneshot_node_stop">
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="oneshot_node_is_active" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="mix_node_set_amount">
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="ratio" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="mix_node_get_amount" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="blend2_node_set_amount">
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="blend" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="blend2_node_get_amount" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="blend3_node_set_amount">
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="blend" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="blend3_node_get_amount" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="blend4_node_set_amount">
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="blend" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="blend4_node_get_amount" qualifiers="const">
- <return type="Vector2">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="timescale_node_set_scale">
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="scale" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="timescale_node_get_scale" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="timeseek_node_seek">
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="pos_sec" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="transition_node_set_input_count">
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="count" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="transition_node_get_input_count" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="transition_node_delete_input">
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="input_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="transition_node_set_input_auto_advance">
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="input_idx" type="int">
- </argument>
- <argument index="2" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="transition_node_has_input_auto_advance" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="input_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="transition_node_set_xfade_time">
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="time_sec" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="transition_node_get_xfade_time" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="transition_node_set_current">
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="input_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="transition_node_get_current" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="node_set_pos">
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="screen_pos" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="node_get_pos" qualifiers="const">
- <return type="Vector2">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="remove_node">
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="connect">
- <return type="int">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="dst_id" type="int">
- </argument>
- <argument index="2" name="dst_input_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_connected" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="dst_id" type="int">
- </argument>
- <argument index="2" name="dst_input_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="disconnect">
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="dst_input_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_active">
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_active" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_base_path">
- <argument index="0" name="path" type="NodePath">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_base_path" qualifiers="const">
- <return type="NodePath">
- </return>
- <description>
- </description>
- </method>
- <method name="get_node_list">
- <return type="IntArray">
- </return>
- <description>
- </description>
- </method>
- <method name="reset">
- <description>
- </description>
- </method>
- <method name="recompute_caches">
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="NODE_OUTPUT" value="0">
- </constant>
- <constant name="NODE_ANIMATION" value="1">
- </constant>
- <constant name="NODE_ONESHOT" value="2">
- </constant>
- <constant name="NODE_MIX" value="3">
- </constant>
- <constant name="NODE_BLEND2" value="4">
- </constant>
- <constant name="NODE_BLEND3" value="5">
- </constant>
- <constant name="NODE_BLEND4" value="6">
- </constant>
- <constant name="NODE_TIMESCALE" value="7">
- </constant>
- <constant name="NODE_TIMESEEK" value="8">
- </constant>
- <constant name="NODE_TRANSITION" value="9">
- </constant>
- </constants>
-</class>
-<class name="Area2D" inherits="CollisionObject2D" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_override_space_params">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_overriding_space_params" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_gravity_is_point">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_gravity_a_point" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_gravity_vector">
- <argument index="0" name="vector" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_gravity_vector" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="set_gravity">
- <argument index="0" name="gravity" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_gravity" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_density">
- <argument index="0" name="density" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_density" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_priority">
- <argument index="0" name="priority" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_priority" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_enable_monitoring">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_monitoring_enabled" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="body_enter">
- <argument index="0" name="body_id" type="int">
- </argument>
- <argument index="1" name="body" type="Object">
- </argument>
- <description>
- </description>
- </signal>
- <signal name="body_enter_shape">
- <argument index="0" name="body_id" type="int">
- </argument>
- <argument index="1" name="body" type="Object">
- </argument>
- <argument index="2" name="body_shape" type="int">
- </argument>
- <argument index="3" name="area_shape" type="int">
- </argument>
- <description>
- </description>
- </signal>
- <signal name="body_exit">
- <argument index="0" name="body_id" type="int">
- </argument>
- <argument index="1" name="body" type="Object">
- </argument>
- <description>
- </description>
- </signal>
- <signal name="body_exit_shape">
- <argument index="0" name="body_id" type="int">
- </argument>
- <argument index="1" name="body" type="Object">
- </argument>
- <argument index="2" name="body_shape" type="int">
- </argument>
- <argument index="3" name="area_shape" type="int">
- </argument>
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- </constants>
-</class>
-<class name="AudioServer" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="sample_create">
- <return type="RID">
- </return>
- <argument index="0" name="format" type="int">
- </argument>
- <argument index="1" name="stereo" type="bool">
- </argument>
- <argument index="2" name="length" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_set_description">
- <argument index="0" name="sample" type="RID">
- </argument>
- <argument index="1" name="description" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_get_description" qualifiers="const">
- <return type="String">
- </return>
- <argument index="0" name="sample" type="RID">
- </argument>
- <argument index="1" name="arg1" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_get_format" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="sample" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_is_stereo" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="sample" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_get_length" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="sample" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_set_signed_data">
- <argument index="0" name="sample" type="RID">
- </argument>
- <argument index="1" name="data" type="RealArray">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_set_data">
- <argument index="0" name="sample" type="RID">
- </argument>
- <argument index="1" name="arg1" type="RawArray">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_get_data" qualifiers="const">
- <return type="RawArray">
- </return>
- <argument index="0" name="sample" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_set_mix_rate">
- <argument index="0" name="sample" type="RID">
- </argument>
- <argument index="1" name="mix_rate" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_get_mix_rate" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="sample" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_set_loop_format">
- <argument index="0" name="sample" type="RID">
- </argument>
- <argument index="1" name="loop_format" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_get_loop_format" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="sample" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_set_loop_begin">
- <argument index="0" name="sample" type="RID">
- </argument>
- <argument index="1" name="pos" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_get_loop_begin" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="sample" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_set_loop_end">
- <argument index="0" name="sample" type="RID">
- </argument>
- <argument index="1" name="pos" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_get_loop_end" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="sample" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_create">
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="voice_play">
- <argument index="0" name="voice" type="RID">
- </argument>
- <argument index="1" name="sample" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_set_volume">
- <argument index="0" name="voice" type="RID">
- </argument>
- <argument index="1" name="volume" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_set_pan">
- <argument index="0" name="voice" type="RID">
- </argument>
- <argument index="1" name="pan" type="real">
- </argument>
- <argument index="2" name="depth" type="real" default="0">
- </argument>
- <argument index="3" name="height" type="real" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_set_filter">
- <argument index="0" name="voice" type="RID">
- </argument>
- <argument index="1" name="type" type="int">
- </argument>
- <argument index="2" name="cutoff" type="real">
- </argument>
- <argument index="3" name="resonance" type="real">
- </argument>
- <argument index="4" name="gain" type="real" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_set_chorus">
- <argument index="0" name="voice" type="RID">
- </argument>
- <argument index="1" name="chorus" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_set_reverb">
- <argument index="0" name="voice" type="RID">
- </argument>
- <argument index="1" name="room" type="int">
- </argument>
- <argument index="2" name="reverb" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_set_mix_rate">
- <argument index="0" name="voice" type="RID">
- </argument>
- <argument index="1" name="rate" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_set_positional">
- <argument index="0" name="voice" type="RID">
- </argument>
- <argument index="1" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_get_volume" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="voice" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_get_pan" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="voice" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_get_pan_height" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="voice" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_get_pan_depth" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="voice" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_get_filter_type" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="voice" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_get_filter_cutoff" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="voice" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_get_filter_resonance" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="voice" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_get_chorus" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="voice" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_get_reverb_type" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="voice" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_get_reverb" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="voice" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_get_mix_rate" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="voice" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_is_positional" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="voice" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_stop">
- <argument index="0" name="voice" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="free_rid">
- <argument index="0" name="rid" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_stream_global_volume_scale">
- <argument index="0" name="scale" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_stream_global_volume_scale" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_mixer_global_volume_scale">
- <argument index="0" name="scale" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_mixer_global_volume_scale" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="SAMPLE_FORMAT_PCM8" value="0">
- </constant>
- <constant name="SAMPLE_FORMAT_PCM16" value="1">
- </constant>
- <constant name="SAMPLE_FORMAT_IMA_ADPCM" value="2">
- </constant>
- <constant name="SAMPLE_LOOP_NONE" value="0">
- </constant>
- <constant name="SAMPLE_LOOP_FORWARD" value="1">
- </constant>
- <constant name="SAMPLE_LOOP_PING_PONG" value="2">
- </constant>
- <constant name="FILTER_NONE" value="0">
- </constant>
- <constant name="FILTER_LOWPASS" value="1">
- </constant>
- <constant name="FILTER_BANDPASS" value="2">
- </constant>
- <constant name="FILTER_HIPASS" value="3">
- </constant>
- <constant name="FILTER_NOTCH" value="4">
- </constant>
- <constant name="FILTER_BANDLIMIT" value="6">
- </constant>
- <constant name="REVERB_SMALL" value="0">
- </constant>
- <constant name="REVERB_MEDIUM" value="1">
- </constant>
- <constant name="REVERB_LARGE" value="2">
- </constant>
- <constant name="REVERB_HALL" value="3">
- </constant>
- </constants>
-</class>
-<class name="AudioServerSW" inherits="AudioServer" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="AudioStream" inherits="Resource" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="play">
- <description>
- </description>
- </method>
- <method name="stop">
- <description>
- </description>
- </method>
- <method name="is_playing" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_loop">
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_loop" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="get_stream_name" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="get_loop_count" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="seek_pos">
- <argument index="0" name="pos" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_pos" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_length" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_update_mode" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="update">
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="UPDATE_NONE" value="0">
- </constant>
- <constant name="UPDATE_IDLE" value="1">
- </constant>
- <constant name="UPDATE_THREAD" value="2">
- </constant>
- </constants>
-</class>
-<class name="AudioStreamGibberish" inherits="AudioStream" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_phonemes">
- <argument index="0" name="phonemes" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_phonemes" qualifiers="const">
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="set_pitch_scale">
- <argument index="0" name="pitch_scale" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_pitch_scale" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_pitch_random_scale">
- <argument index="0" name="pitch_random_scale" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_pitch_random_scale" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_xfade_time">
- <argument index="0" name="sec" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_xfade_time" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="AudioStreamMPC" inherits="AudioStreamResampled" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_file">
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_file" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="AudioStreamOGGVorbis" inherits="AudioStreamResampled" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="AudioStreamResampled" inherits="AudioStream" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="AudioStreamSpeex" inherits="AudioStreamResampled" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_file">
- <argument index="0" name="file" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_file" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="BCSFX" inherits="ScenarioFX" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="BGColorFX" inherits="ScenarioFX" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="BGImageFX" inherits="ScenarioFX" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="BaseButton" inherits="Control" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_pressed">
- <argument index="0" name="pressed" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_pressed" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_toggle_mode">
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_toggle_mode" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_disabled">
- <argument index="0" name="disabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_disabled" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_click_on_press">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_click_on_press" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="toggled">
- <argument index="0" name="pressed" type="bool">
- </argument>
- <description>
- </description>
- </signal>
- <signal name="pressed">
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- </constants>
-</class>
-<class name="BodyShape" inherits="Spatial" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="BoxContainer" inherits="Container" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="BoxShape" inherits="Shape" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_extents">
- <argument index="0" name="extents" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_extents" qualifiers="const">
- <return type="Vector3">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Button" inherits="BaseButton" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_text">
- <argument index="0" name="text" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_text" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="set_icon">
- <argument index="0" name="texture" type="Texture">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_icon" qualifiers="const">
- <return type="Texture">
- </return>
- <description>
- </description>
- </method>
- <method name="set_flat">
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_clip_text">
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_clip_text" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="is_flat" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="ButtonArray" inherits="Control" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="add_button">
- <argument index="0" name="text" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_icon_button">
- <argument index="0" name="icon" type="Object">
- </argument>
- <argument index="1" name="text" type="String" default="&quot;&quot;">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_button_text">
- <argument index="0" name="button" type="int">
- </argument>
- <argument index="1" name="text" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_button_icon">
- <argument index="0" name="button" type="int">
- </argument>
- <argument index="1" name="icon" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_button_text" qualifiers="const">
- <return type="String">
- </return>
- <argument index="0" name="button" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_button_icon" qualifiers="const">
- <return type="Object">
- </return>
- <argument index="0" name="button" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_button_count" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_selected" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_hovered" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_selected">
- <argument index="0" name="button" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="erase_button">
- <argument index="0" name="button" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear">
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="button_selected">
- <argument index="0" name="button" type="int">
- </argument>
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- <constant name="ALIGN_BEGIN" value="0">
- </constant>
- <constant name="ALIGN_CENTER" value="1">
- </constant>
- <constant name="ALIGN_END" value="2">
- </constant>
- <constant name="ALIGN_FILL" value="3">
- </constant>
- <constant name="ALIGN_EXPAND_FILL" value="4">
- </constant>
- </constants>
-</class>
-<class name="ButtonGroup" inherits="Control" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="get_pressed_button" qualifiers="const">
- <return type="BaseButton">
- </return>
- <description>
- </description>
- </method>
- <method name="get_pressed_button_index" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_focused_button" qualifiers="const">
- <return type="BaseButton">
- </return>
- <description>
- </description>
- </method>
- <method name="get_button_list" qualifiers="const">
- <return type="Array">
- </return>
- <description>
- </description>
- </method>
- <method name="set_pressed_button">
- <argument index="0" name="button" type="BaseButton">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Camera" inherits="Spatial" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="project_ray_normal" qualifiers="const">
- <return type="Vector3">
- </return>
- <argument index="0" name="screen_point" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="project_local_ray_normal" qualifiers="const">
- <return type="Vector3">
- </return>
- <argument index="0" name="screen_point" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="project_ray_origin" qualifiers="const">
- <return type="Vector3">
- </return>
- <argument index="0" name="screen_point" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="unproject_position" qualifiers="const">
- <return type="Vector2">
- </return>
- <argument index="0" name="world_point" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="project_position" qualifiers="const">
- <return type="Vector3">
- </return>
- <argument index="0" name="screen_point" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_perspective">
- <argument index="0" name="fov" type="real">
- </argument>
- <argument index="1" name="z_near" type="real">
- </argument>
- <argument index="2" name="z_far" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_orthogonal">
- <argument index="0" name="size" type="real">
- </argument>
- <argument index="1" name="z_near" type="real">
- </argument>
- <argument index="2" name="z_far" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="make_current">
- <description>
- </description>
- </method>
- <method name="clear_current">
- <description>
- </description>
- </method>
- <method name="is_current" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="get_camera_transform" qualifiers="const">
- <return type="Transform">
- </return>
- <description>
- </description>
- </method>
- <method name="get_fov" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_size" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_zfar" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_znear" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_projection" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="PROJECTION_PERSPECTIVE" value="0">
- </constant>
- <constant name="PROJECTION_ORTHOGONAL" value="1">
- </constant>
- </constants>
-</class>
-<class name="Camera2D" inherits="ScreenProximity2D" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_offset">
- <argument index="0" name="offset" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_offset" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="set_centered">
- <argument index="0" name="centered" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_centered" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="make_current">
- <description>
- </description>
- </method>
- <method name="is_current" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_limit">
- <argument index="0" name="margin" type="int">
- </argument>
- <argument index="1" name="limit" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_limit" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="margin" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_drag_margin">
- <argument index="0" name="margin" type="int">
- </argument>
- <argument index="1" name="drag_margin" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_drag_margin" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="margin" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_camera_pos" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="force_update_scroll">
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="CanvasItem" inherits="Node" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="edit_set_state">
- <argument index="0" name="state" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="edit_get" qualifiers="const">
- <description>
- </description>
- </method>
- <method name="edit_set_rect">
- <argument index="0" name="rect" type="Rect2">
- </argument>
- <description>
- </description>
- </method>
- <method name="edit_rotate">
- <argument index="0" name="degrees" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_item_rect" qualifiers="const">
- <return type="Rect2">
- </return>
- <description>
- </description>
- </method>
- <method name="get_canvas_item" qualifiers="const">
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="is_visible" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="is_hidden" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="show">
- <description>
- </description>
- </method>
- <method name="hide">
- <description>
- </description>
- </method>
- <method name="update">
- <description>
- </description>
- </method>
- <method name="set_as_toplevel">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_set_as_toplevel" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_blend_mode">
- <argument index="0" name="blend_mode" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_blend_mode" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_opacity">
- <argument index="0" name="opacity" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_opacity" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_self_opacity">
- <argument index="0" name="self_opacity" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_self_opacity" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="draw_line">
- <argument index="0" name="from" type="Vector2">
- </argument>
- <argument index="1" name="to" type="Vector2">
- </argument>
- <argument index="2" name="color" type="Color">
- </argument>
- <argument index="3" name="width" type="real" default="1">
- </argument>
- <description>
- </description>
- </method>
- <method name="draw_rect">
- <argument index="0" name="rect" type="Rect2">
- </argument>
- <argument index="1" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="draw_circle">
- <argument index="0" name="pos" type="Vector2">
- </argument>
- <argument index="1" name="radius" type="real">
- </argument>
- <argument index="2" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="draw_texture">
- <argument index="0" name="texture" type="Texture">
- </argument>
- <argument index="1" name="pos" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="draw_texture_rect">
- <argument index="0" name="texture" type="Texture">
- </argument>
- <argument index="1" name="rect" type="Rect2">
- </argument>
- <argument index="2" name="tile" type="bool" default="false">
- </argument>
- <argument index="3" name="modulate" type="Color" default="Color(1,1,1,1)">
- </argument>
- <argument index="4" name="transpose" type="bool" default="false">
- </argument>
- <description>
- </description>
- </method>
- <method name="draw_texture_rect_region">
- <argument index="0" name="texture" type="Texture">
- </argument>
- <argument index="1" name="rect" type="Rect2">
- </argument>
- <argument index="2" name="src_rect" type="Rect2">
- </argument>
- <argument index="3" name="modulate" type="Color" default="Color(1,1,1,1)">
- </argument>
- <argument index="4" name="transpose" type="bool" default="false">
- </argument>
- <description>
- </description>
- </method>
- <method name="draw_style_box">
- <argument index="0" name="style_box" type="StyleBox">
- </argument>
- <argument index="1" name="rect" type="Rect2">
- </argument>
- <description>
- </description>
- </method>
- <method name="draw_primitive">
- <argument index="0" name="points" type="Vector2Array">
- </argument>
- <argument index="1" name="colors" type="ColorArray">
- </argument>
- <argument index="2" name="uvs" type="Vector2Array" default="Array()">
- </argument>
- <argument index="3" name="texture" type="Texture" default="Object()">
- </argument>
- <argument index="4" name="width" type="real" default="1">
- </argument>
- <description>
- </description>
- </method>
- <method name="draw_polygon">
- <argument index="0" name="points" type="Vector2Array">
- </argument>
- <argument index="1" name="colors" type="ColorArray">
- </argument>
- <argument index="2" name="uvs" type="Vector2Array">
- </argument>
- <argument index="3" name="texture" type="Texture" default="Array()">
- </argument>
- <argument index="4" name="arg4" type="real" default="Object()">
- </argument>
- <description>
- </description>
- </method>
- <method name="draw_colored_polygon">
- <argument index="0" name="points" type="Vector2Array">
- </argument>
- <argument index="1" name="color" type="ColorArray">
- </argument>
- <argument index="2" name="uvs" type="Vector2Array">
- </argument>
- <argument index="3" name="texture" type="Texture" default="Array()">
- </argument>
- <argument index="4" name="arg4" type="real" default="Object()">
- </argument>
- <description>
- </description>
- </method>
- <method name="draw_string">
- <argument index="0" name="font" type="Font">
- </argument>
- <argument index="1" name="pos" type="Vector2">
- </argument>
- <argument index="2" name="text" type="String">
- </argument>
- <argument index="3" name="modulate" type="Color" default="Color(1,1,1,1)">
- </argument>
- <argument index="4" name="clip_w" type="int" default="-1">
- </argument>
- <description>
- </description>
- </method>
- <method name="draw_char">
- <return type="real">
- </return>
- <argument index="0" name="font" type="Font">
- </argument>
- <argument index="1" name="pos" type="Vector2">
- </argument>
- <argument index="2" name="char" type="String">
- </argument>
- <argument index="3" name="next" type="String">
- </argument>
- <argument index="4" name="modulate" type="Color" default="Color(1,1,1,1)">
- </argument>
- <description>
- </description>
- </method>
- <method name="draw_set_transform">
- <argument index="0" name="pos" type="Vector2">
- </argument>
- <argument index="1" name="rot" type="real">
- </argument>
- <argument index="2" name="scale" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_transform_notify">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_transform_notify_enabled" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="item_rect_changed">
- <description>
- </description>
- </signal>
- <signal name="draw">
- <description>
- </description>
- </signal>
- <signal name="visibility_changed">
- <description>
- </description>
- </signal>
- <signal name="hide">
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- <constant name="BLEND_MODE_MIX" value="0">
- </constant>
- <constant name="BLEND_MODE_ADD" value="1">
- </constant>
- <constant name="BLEND_MODE_SUB" value="2">
- </constant>
- <constant name="BLEND_MODE_MUL" value="3">
- </constant>
- <constant name="NOTIFICATION_DRAW" value="30">
- </constant>
- <constant name="NOTIFICATION_VISIBILITY_CHANGED" value="31">
- </constant>
- <constant name="NOTIFICATION_ENTER_CANVAS" value="32">
- </constant>
- <constant name="NOTIFICATION_EXIT_CANVAS" value="33">
- </constant>
- <constant name="NOTIFICATION_TRANSFORM_CHANGED" value="34">
- </constant>
- </constants>
-</class>
-<class name="CanvasLayer" inherits="Node" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_layer">
- <argument index="0" name="layer" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_layer" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_transform">
- <argument index="0" name="transform" type="Matrix32">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_transform" qualifiers="const">
- <return type="Matrix32">
- </return>
- <description>
- </description>
- </method>
- <method name="set_offset">
- <argument index="0" name="offset" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_offset" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="set_rotation">
- <argument index="0" name="rotation" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_rotation" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_scale">
- <argument index="0" name="scale" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_scale" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="get_canvas" qualifiers="const">
- <return type="Canvas">
- </return>
- <description>
- </description>
- </method>
- <method name="get_viewport" qualifiers="const">
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="CapsuleShape" inherits="Shape" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_radius">
- <argument index="0" name="radius" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_radius" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_height">
- <argument index="0" name="height" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_height" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="CapsuleShape2D" inherits="Shape2D" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_radius">
- <argument index="0" name="radius" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_radius" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_height">
- <argument index="0" name="height" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_height" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="CenterContainer" inherits="Container" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="CheckButton" inherits="BaseButton" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_text">
- <argument index="0" name="text" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_text" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="CircleShape2D" inherits="Shape2D" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_radius">
- <argument index="0" name="radius" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_radius" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="CollisionObject2D" inherits="Node2D" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="add_shape">
- <argument index="0" name="shape" type="Shape2D">
- </argument>
- <argument index="1" name="transform" type="Matrix32" default="1,0, 0,1, 0,0">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_shape_count" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_shape">
- <argument index="0" name="shape_idx" type="int">
- </argument>
- <argument index="1" name="shape" type="Shape">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_shape_transform">
- <argument index="0" name="shape_idx" type="int">
- </argument>
- <argument index="1" name="transform" type="Matrix32">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_shape" qualifiers="const">
- <return type="Shape2D">
- </return>
- <argument index="0" name="shape_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_shape_transform" qualifiers="const">
- <return type="Matrix32">
- </return>
- <argument index="0" name="shape_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="remove_shape">
- <argument index="0" name="shape_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear_shapes">
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="CollisionPolygon2D" inherits="Node2D" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="CollisionShape2D" inherits="Node2D" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="ColorPicker" inherits="Control" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_color">
- <argument index="0" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_color" qualifiers="const">
- <return type="Color">
- </return>
- <description>
- </description>
- </method>
- <method name="set_show_alpha">
- <argument index="0" name="show" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_showing_alpha" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="color_changed">
- <argument index="0" name="color" type="Color">
- </argument>
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- </constants>
-</class>
-<class name="ConcavePolygonShape" inherits="Shape" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_faces">
- <argument index="0" name="faces" type="Vector3Array">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_faces" qualifiers="const">
- <return type="Vector3Array">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="ConcavePolygonShape2D" inherits="Shape2D" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_segments">
- <argument index="0" name="segments" type="Vector2Array">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_segments" qualifiers="const">
- <return type="Vector2Array">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="ConfirmationDialog" inherits="AcceptDialog" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="get_cancel">
- <return type="Button">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Container" inherits="Control" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="queue_sort">
- <description>
- </description>
- </method>
- <method name="fit_child_in_rect">
- <argument index="0" name="child" type="Control">
- </argument>
- <argument index="1" name="rect" type="Rect2">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="sort_children">
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- <constant name="NOTIFICATION_SORT_CHILDREN" value="50">
- </constant>
- </constants>
-</class>
-<class name="Control" inherits="CanvasItem" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="accept_event">
- <description>
- </description>
- </method>
- <method name="get_minimum_size" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="is_window" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="get_window" qualifiers="const">
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="set_anchor">
- <argument index="0" name="margin" type="int">
- </argument>
- <argument index="1" name="anchor_mode" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_anchor" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="margin" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_margin">
- <argument index="0" name="margin" type="int">
- </argument>
- <argument index="1" name="offset" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_anchor_and_margin">
- <argument index="0" name="margin" type="int">
- </argument>
- <argument index="1" name="anchor_mode" type="int">
- </argument>
- <argument index="2" name="offset" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_begin">
- <argument index="0" name="pos" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_end">
- <argument index="0" name="pos" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_pos">
- <argument index="0" name="pos" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_size">
- <argument index="0" name="size" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_global_pos">
- <argument index="0" name="pos" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_margin" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="margin" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_begin" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="get_end" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="get_pos" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="get_size" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="get_parent_area_size" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="get_global_pos" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="get_rect" qualifiers="const">
- <return type="Rect2">
- </return>
- <description>
- </description>
- </method>
- <method name="get_global_rect" qualifiers="const">
- <return type="Rect2">
- </return>
- <description>
- </description>
- </method>
- <method name="set_area_as_parent_rect">
- <argument index="0" name="margin" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="show_modal">
- <argument index="0" name="exclusive" type="bool" default="false">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_focus_mode">
- <argument index="0" name="mode" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_focus" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="grab_focus">
- <description>
- </description>
- </method>
- <method name="release_focus">
- <description>
- </description>
- </method>
- <method name="get_focus_owner" qualifiers="const">
- <return type="Control">
- </return>
- <description>
- </description>
- </method>
- <method name="set_h_size_flags">
- <argument index="0" name="flags" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_h_size_flags" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_stretch_ratio">
- <argument index="0" name="ratio" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_stretch_ratio" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_v_size_flags">
- <argument index="0" name="flags" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_v_size_flags" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_theme">
- <argument index="0" name="theme" type="Theme">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_theme" qualifiers="const">
- <return type="Theme">
- </return>
- <description>
- </description>
- </method>
- <method name="add_icon_override">
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="texture" type="Texture">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_style_override">
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="stylebox" type="StyleBox">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_font_override">
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="font" type="Font">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_color_override">
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_constant_override">
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="constant" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_icon" qualifiers="const">
- <return type="Texture">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String" default="&quot;&quot;">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_stylebox" qualifiers="const">
- <return type="StyleBox">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String" default="&quot;&quot;">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_font" qualifiers="const">
- <return type="Font">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String" default="&quot;&quot;">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_color" qualifiers="const">
- <return type="Color">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String" default="&quot;&quot;">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_constant" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String" default="&quot;&quot;">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_parent_control" qualifiers="const">
- <return type="Control">
- </return>
- <description>
- </description>
- </method>
- <method name="set_tooltip">
- <argument index="0" name="tooltip" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_tooltip" qualifiers="const">
- <return type="String">
- </return>
- <argument index="0" name="atpos" type="Vector2" default="Vector2(0,0)">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_default_cursor_shape">
- <argument index="0" name="shape" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_default_cursor_shape" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_cursor_shape" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="pos" type="Vector2" default="Vector2(0,0)">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_focus_neighbour">
- <argument index="0" name="margin" type="int">
- </argument>
- <argument index="1" name="neighbour" type="NodePath">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_focus_neighbour" qualifiers="const">
- <return type="NodePath">
- </return>
- <argument index="0" name="margin" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_ignore_mouse">
- <argument index="0" name="ignore" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_ignoring_mouse" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="focus_enter">
- <description>
- </description>
- </signal>
- <signal name="mouse_enter">
- <description>
- </description>
- </signal>
- <signal name="resized">
- <description>
- </description>
- </signal>
- <signal name="minimum_size_changed">
- <description>
- </description>
- </signal>
- <signal name="size_flags_changed">
- <description>
- </description>
- </signal>
- <signal name="focus_exit">
- <description>
- </description>
- </signal>
- <signal name="input_event">
- <description>
- </description>
- </signal>
- <signal name="mouse_exit">
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- <constant name="ANCHOR_BEGIN" value="0">
- </constant>
- <constant name="ANCHOR_END" value="1">
- </constant>
- <constant name="ANCHOR_RATIO" value="2">
- </constant>
- <constant name="FOCUS_NONE" value="0">
- </constant>
- <constant name="FOCUS_CLICK" value="1">
- </constant>
- <constant name="FOCUS_ALL" value="2">
- </constant>
- <constant name="NOTIFICATION_RESIZED" value="34">
- </constant>
- <constant name="NOTIFICATION_MOUSE_ENTER" value="35">
- </constant>
- <constant name="NOTIFICATION_MOUSE_EXIT" value="36">
- </constant>
- <constant name="NOTIFICATION_FOCUS_ENTER" value="37">
- </constant>
- <constant name="NOTIFICATION_FOCUS_EXIT" value="38">
- </constant>
- <constant name="NOTIFICATION_THEME_CHANGED" value="39">
- </constant>
- <constant name="NOTIFICATION_MODAL_CLOSE" value="40">
- </constant>
- <constant name="CURSOR_ARROW" value="0">
- </constant>
- <constant name="CURSOR_IBEAM" value="1">
- </constant>
- <constant name="CURSOR_POINTING_HAND" value="2">
- </constant>
- <constant name="CURSOR_CROSS" value="3">
- </constant>
- <constant name="CURSOR_WAIT" value="4">
- </constant>
- <constant name="CURSOR_BUSY" value="5">
- </constant>
- <constant name="CURSOR_DRAG" value="6">
- </constant>
- <constant name="CURSOR_CAN_DROP" value="7">
- </constant>
- <constant name="CURSOR_FORBIDDEN" value="8">
- </constant>
- <constant name="CURSOR_VSIZE" value="9">
- </constant>
- <constant name="CURSOR_HSIZE" value="10">
- </constant>
- <constant name="CURSOR_BDIAGSIZE" value="11">
- </constant>
- <constant name="CURSOR_FDIAGSIZE" value="12">
- </constant>
- <constant name="CURSOR_MOVE" value="13">
- </constant>
- <constant name="CURSOR_VSPLIT" value="14">
- </constant>
- <constant name="CURSOR_HSPLIT" value="15">
- </constant>
- <constant name="CURSOR_HELP" value="16">
- </constant>
- </constants>
-</class>
-<class name="ConvexPolygonShape" inherits="Shape" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_planes">
- <argument index="0" name="planes" type="Array">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_planes" qualifiers="const">
- <return type="Array">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="ConvexPolygonShape2D" inherits="Shape2D" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_points">
- <argument index="0" name="points" type="Vector2Array">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_points" qualifiers="const">
- <return type="Vector2Array">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="DOFBlurFX" inherits="ScenarioFX" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="DampedSpringJoint2D" inherits="Joint2D" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_length">
- <argument index="0" name="length" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_length" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_rest_length">
- <argument index="0" name="rest_length" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_rest_length" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_stiffness">
- <argument index="0" name="stiffness" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_stiffness" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_damping">
- <argument index="0" name="damping" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_damping" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="DirectionalLight" inherits="Light" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="DynamicBody" inherits="PhysicsBody" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_mass">
- <argument index="0" name="mass" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_friction">
- <argument index="0" name="friction" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_bounce">
- <argument index="0" name="bounce" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_mass" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_friction" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_bounce" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_linear_velocity">
- <argument index="0" name="linear_velocity" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_linear_velocity" qualifiers="const">
- <return type="Vector3">
- </return>
- <description>
- </description>
- </method>
- <method name="set_angular_velocity">
- <argument index="0" name="angular_velocity" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_angular_velocity" qualifiers="const">
- <return type="Vector3">
- </return>
- <description>
- </description>
- </method>
- <method name="set_sleeping">
- <argument index="0" name="sleeping" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_sleeping" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_applied_force">
- <argument index="0" name="applied_force" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_applied_force" qualifiers="const">
- <return type="Vector3">
- </return>
- <description>
- </description>
- </method>
- <method name="set_applied_torque">
- <argument index="0" name="applied_torque" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_applied_torque" qualifiers="const">
- <return type="Vector3">
- </return>
- <description>
- </description>
- </method>
- <method name="apply_local_impulse">
- <argument index="0" name="pos" type="Vector3">
- </argument>
- <argument index="1" name="impulse" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_axis_velocity">
- <argument index="0" name="axis_velocity" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_direct_state_control">
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_direct_state_control_enabled" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_omit_force_integration">
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_omitting_force_integration" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="DynamicCharacterBody" inherits="DynamicBody" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="DynamicCustomBody" inherits="DynamicBody" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_mode">
- <argument index="0" name="mode" type="int">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="DynamicRigidBody" inherits="DynamicBody" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="EmptyControl" inherits="Control" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_minsize">
- <argument index="0" name="minsize" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_minsize" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="_File" inherits="Reference" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="open">
- <return type="int">
- </return>
- <argument index="0" name="path" type="String">
- </argument>
- <argument index="1" name="flags" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="close">
- <description>
- </description>
- </method>
- <method name="is_open" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="seek">
- <argument index="0" name="pos" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="seek_end">
- <argument index="0" name="pos" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_pos" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_len" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="eof_reached" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="get_8" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_16" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_32" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_64" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_float" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_double" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_real" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_buffer" qualifiers="const">
- <return type="RawArray">
- </return>
- <argument index="0" name="len" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_line" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="get_endian_swap">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_endian_swap">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_error" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_var" qualifiers="const">
- <description>
- </description>
- </method>
- <method name="store_8">
- <argument index="0" name="value" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="store_16">
- <argument index="0" name="value" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="store_32">
- <argument index="0" name="value" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="store_64">
- <argument index="0" name="value" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="store_float">
- <argument index="0" name="value" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="store_double">
- <argument index="0" name="value" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="store_real">
- <argument index="0" name="value" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="store_buffer">
- <argument index="0" name="buffer" type="RawArray">
- </argument>
- <description>
- </description>
- </method>
- <method name="store_line">
- <argument index="0" name="line" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="store_string">
- <argument index="0" name="string" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="store_var">
- <argument index="0" name="value" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="file_exists" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="path" type="String">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="READ" value="1">
- </constant>
- <constant name="WRITE" value="2">
- </constant>
- <constant name="READ_WRITE" value="3">
- </constant>
- </constants>
-</class>
-<class name="FileDialog" inherits="ConfirmationDialog" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="clear_filters">
- <description>
- </description>
- </method>
- <method name="add_filter">
- <argument index="0" name="filter" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_current_dir" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="get_current_file" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="get_current_path" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="set_current_dir">
- <argument index="0" name="dir" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_current_file">
- <argument index="0" name="file" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_current_path">
- <argument index="0" name="path" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_mode">
- <argument index="0" name="mode" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_mode" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_vbox">
- <return type="VBoxContainer">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="dir_selected">
- <argument index="0" name="dir" type="String">
- </argument>
- <description>
- </description>
- </signal>
- <signal name="file_selected">
- <argument index="0" name="path" type="String">
- </argument>
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- <constant name="MODE_OPEN_FILE" value="0">
- </constant>
- <constant name="MODE_OPEN_DIR" value="1">
- </constant>
- <constant name="MODE_SAVE_FILE" value="2">
- </constant>
- </constants>
-</class>
-<class name="FixedMaterial" inherits="Material" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_shader">
- <argument index="0" name="shader" type="Shader">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_shader" qualifiers="const">
- <return type="Shader">
- </return>
- <description>
- </description>
- </method>
- <method name="set_parameter">
- <argument index="0" name="param" type="int">
- </argument>
- <argument index="1" name="value" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_parameter" qualifiers="const">
- <argument index="0" name="param" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_texture">
- <argument index="0" name="param" type="int">
- </argument>
- <argument index="1" name="texture" type="Texture">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_texture" qualifiers="const">
- <return type="Texture">
- </return>
- <argument index="0" name="param" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_texgen_mode">
- <argument index="0" name="mode" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_texgen_mode" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_texcoord_mode">
- <argument index="0" name="param" type="int">
- </argument>
- <argument index="1" name="mode" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_texcoord_mode" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="param" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_uv_transform">
- <argument index="0" name="transform" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_uv_transform" qualifiers="const">
- <return type="Transform">
- </return>
- <description>
- </description>
- </method>
- <method name="set_detail_blend_mode">
- <argument index="0" name="mode" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_detail_blend_mode" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="PARAM_DIFFUSE" value="0">
- </constant>
- <constant name="PARAM_DETAIL" value="1">
- </constant>
- <constant name="PARAM_SPECULAR" value="2">
- </constant>
- <constant name="PARAM_EMISSION" value="3">
- </constant>
- <constant name="PARAM_SPECULAR_EXP" value="4">
- </constant>
- <constant name="PARAM_GLOW" value="5">
- </constant>
- <constant name="PARAM_NORMAL" value="6">
- </constant>
- <constant name="PARAM_SHADE_PARAM" value="7">
- </constant>
- <constant name="PARAM_MAX" value="8">
- </constant>
- <constant name="TEXGEN_SPHERE" value="1">
- </constant>
- <constant name="TEXGEN_SCREEN" value="2">
- </constant>
- <constant name="TEXGEN_SCREENZ" value="3">
- </constant>
- <constant name="TEXGEN_LOCAL_XY" value="0">
- </constant>
- <constant name="TEXCOORD_TEXGEN" value="3">
- </constant>
- <constant name="TEXCOORD_UV" value="0">
- </constant>
- <constant name="TEXCOORD_UV_TRANSFORM" value="1">
- </constant>
- <constant name="TEXCOORD_UV2" value="2">
- </constant>
- </constants>
-</class>
-<class name="FogFX" inherits="ScenarioFX" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="FollowCamera" inherits="Camera" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_orbit">
- <argument index="0" name="orbit" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_orbit" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="set_orbit_x">
- <argument index="0" name="x" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_orbit_y">
- <argument index="0" name="y" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_min_orbit_x">
- <argument index="0" name="x" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_min_orbit_x" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_max_orbit_x">
- <argument index="0" name="x" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_max_orbit_x" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_height">
- <argument index="0" name="height" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_height" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_inclination">
- <argument index="0" name="inclination" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_inclination" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="rotate_orbit">
- <argument index="0" name="arg0" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_distance">
- <argument index="0" name="distance" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_distance" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_max_distance">
- <argument index="0" name="max_distance" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_max_distance" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_min_distance">
- <argument index="0" name="min_distance" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_min_distance" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_clip">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_clip" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_autoturn">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_autoturn" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_autoturn_tolerance">
- <argument index="0" name="degrees" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_autoturn_tolerance" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_autoturn_speed">
- <argument index="0" name="speed" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_autoturn_speed" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_smoothing">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_smoothing" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_rotation_smoothing">
- <argument index="0" name="amount" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_rotation_smoothing" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_translation_smoothing">
- <argument index="0" name="amount" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_translation_smoothing" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_use_lookat_target">
- <argument index="0" name="use" type="bool">
- </argument>
- <argument index="1" name="lookat" type="Vector3" default="Vector3(0, 0, 0)">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Font" inherits="Resource" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_height">
- <argument index="0" name="px" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_height" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_ascent">
- <argument index="0" name="px" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_ascent" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_descent" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="add_kerning_pair">
- <argument index="0" name="char_a" type="int">
- </argument>
- <argument index="1" name="char_b" type="int">
- </argument>
- <argument index="2" name="kerning" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_kerning_pair" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="int">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_texture">
- <argument index="0" name="texture" type="Texture">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_char">
- <argument index="0" name="character" type="int">
- </argument>
- <argument index="1" name="texture" type="int">
- </argument>
- <argument index="2" name="rect" type="Rect2">
- </argument>
- <argument index="3" name="align" type="Vector2" default="Vector2(0,0)">
- </argument>
- <argument index="4" name="advance" type="real" default="-1">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_char_size" qualifiers="const">
- <return type="Vector2">
- </return>
- <argument index="0" name="char" type="int">
- </argument>
- <argument index="1" name="next" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_string_size" qualifiers="const">
- <return type="Vector2">
- </return>
- <argument index="0" name="string" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear">
- <description>
- </description>
- </method>
- <method name="draw" qualifiers="const">
- <argument index="0" name="canvas_item" type="RID">
- </argument>
- <argument index="1" name="pos" type="Vector2">
- </argument>
- <argument index="2" name="string" type="String">
- </argument>
- <argument index="3" name="modulate" type="Color" default="Color(1,1,1,1)">
- </argument>
- <argument index="4" name="clip_w" type="int" default="-1">
- </argument>
- <description>
- </description>
- </method>
- <method name="draw_char" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="canvas_item" type="RID">
- </argument>
- <argument index="1" name="pos" type="Vector2">
- </argument>
- <argument index="2" name="char" type="int">
- </argument>
- <argument index="3" name="next" type="int" default="-1">
- </argument>
- <argument index="4" name="modulate" type="Color" default="Color(1,1,1,1)">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="GDNativeClass" inherits="Reference" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="new">
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="GDScript" inherits="Script" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="new">
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="GammaFX" inherits="ScenarioFX" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="_Geometry" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="build_box_planes">
- <return type="Array">
- </return>
- <argument index="0" name="extents" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="build_cylinder_planes">
- <return type="Array">
- </return>
- <argument index="0" name="radius" type="real">
- </argument>
- <argument index="1" name="height" type="real">
- </argument>
- <argument index="2" name="sides" type="int">
- </argument>
- <argument index="3" name="axis" type="int" default="2">
- </argument>
- <description>
- </description>
- </method>
- <method name="build_capsule_planes">
- <return type="Array">
- </return>
- <argument index="0" name="radius" type="real">
- </argument>
- <argument index="1" name="height" type="real">
- </argument>
- <argument index="2" name="sides" type="int">
- </argument>
- <argument index="3" name="lats" type="int">
- </argument>
- <argument index="4" name="axis" type="int" default="2">
- </argument>
- <description>
- </description>
- </method>
- <method name="segment_intersects_circle">
- <return type="real">
- </return>
- <argument index="0" name="segment_from" type="Vector2">
- </argument>
- <argument index="1" name="segment_to" type="Vector2">
- </argument>
- <argument index="2" name="circle_pos" type="Vector2">
- </argument>
- <argument index="3" name="circle_radius" type="real">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="GeometryInstance" inherits="VisualInstance" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_visible">
- <argument index="0" name="visible" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_visible" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_material_override">
- <argument index="0" name="material" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_material_override" qualifiers="const">
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Globals" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="has" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_order">
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="pos" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_order" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_persisting">
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_persisting" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear">
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="localize_path" qualifiers="const">
- <return type="String">
- </return>
- <argument index="0" name="path" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="globalize_path" qualifiers="const">
- <return type="String">
- </return>
- <argument index="0" name="path" type="String">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="GlowFX" inherits="ScenarioFX" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="GridMap" inherits="Spatial" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_theme">
- <argument index="0" name="theme" type="MeshLibrary">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_theme" qualifiers="const">
- <return type="MeshLibrary">
- </return>
- <description>
- </description>
- </method>
- <method name="set_cell_size">
- <argument index="0" name="size" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_cell_size" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_octant_size">
- <argument index="0" name="size" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_octant_size" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_width">
- <argument index="0" name="width" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_width" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_height">
- <argument index="0" name="height" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_height" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_depth">
- <argument index="0" name="depth" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_depth" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_cell_item">
- <argument index="0" name="x" type="int">
- </argument>
- <argument index="1" name="y" type="int">
- </argument>
- <argument index="2" name="z" type="int">
- </argument>
- <argument index="3" name="item" type="int">
- </argument>
- <argument index="4" name="orientation" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_cell_item" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="x" type="int">
- </argument>
- <argument index="1" name="y" type="int">
- </argument>
- <argument index="2" name="z" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_cell_item_orientation" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="x" type="int">
- </argument>
- <argument index="1" name="y" type="int">
- </argument>
- <argument index="2" name="z" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="resource_changed">
- <argument index="0" name="arg0" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_center_x">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_center_x" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_center_y">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_center_y" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_center_z">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_center_z" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_clip">
- <argument index="0" name="enabled" type="bool">
- </argument>
- <argument index="1" name="clipabove" type="bool" default="true">
- </argument>
- <argument index="2" name="floor" type="int" default="0">
- </argument>
- <argument index="3" name="axis" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="crate_area">
- <return type="int">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="area" type="AABB">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_get_bounds" qualifiers="const">
- <return type="AABB">
- </return>
- <argument index="0" name="area" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_set_exterior_portal">
- <argument index="0" name="area" type="int">
- </argument>
- <argument index="1" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_set_name">
- <argument index="0" name="area" type="int">
- </argument>
- <argument index="1" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_get_name" qualifiers="const">
- <return type="String">
- </return>
- <argument index="0" name="area" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_is_exterior_portal" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="area" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_set_portal_disable_distance">
- <argument index="0" name="area" type="int">
- </argument>
- <argument index="1" name="distance" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_get_portal_disable_distance" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="area" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_set_portal_disable_color">
- <argument index="0" name="area" type="int">
- </argument>
- <argument index="1" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_get_portal_disable_color" qualifiers="const">
- <return type="Color">
- </return>
- <argument index="0" name="area" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="erase_area">
- <argument index="0" name="area" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_unused_area_id" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="INVALID_CELL_ITEM" value="-1">
- </constant>
- </constants>
-</class>
-<class name="GrooveJoint2D" inherits="Joint2D" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_length">
- <argument index="0" name="length" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_length" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_initial_offset">
- <argument index="0" name="offset" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_initial_offset" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="HBoxContainer" inherits="BoxContainer" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="HButtonArray" inherits="ButtonArray" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="HDRFX" inherits="ScenarioFX" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="HScrollBar" inherits="ScrollBar" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="HSeparator" inherits="Separator" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="HSlider" inherits="Slider" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="IP" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="resolve_hostname">
- <return type="String">
- </return>
- <argument index="0" name="host" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="resolve_hostname_queue_item">
- <return type="int">
- </return>
- <argument index="0" name="host" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_resolve_item_status" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_resolve_item_address" qualifiers="const">
- <return type="String">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="erase_resolve_item">
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="RESOLVER_STATUS_NONE" value="0">
- </constant>
- <constant name="RESOLVER_STATUS_WAITING" value="1">
- </constant>
- <constant name="RESOLVER_STATUS_DONE" value="2">
- </constant>
- <constant name="RESOLVER_STATUS_ERROR" value="3">
- </constant>
- <constant name="RESOLVER_MAX_QUERIES" value="32">
- </constant>
- <constant name="RESOLVER_INVALID_ID" value="-1">
- </constant>
- </constants>
-</class>
-<class name="IP_Unix" inherits="IP" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="InputMap" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="InterpolatedCamera" inherits="Camera" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_target_path">
- <argument index="0" name="target_path" type="NodePath">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_target_path" qualifiers="const">
- <return type="NodePath">
- </return>
- <description>
- </description>
- </method>
- <method name="set_target">
- <argument index="0" name="target" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_speed">
- <argument index="0" name="speed" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_speed" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_interpolation_enabled">
- <argument index="0" name="target_path" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_interpolation_enabled" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Joint2D" inherits="Node2D" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_node_a">
- <argument index="0" name="node" type="NodePath">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_node_a" qualifiers="const">
- <return type="NodePath">
- </return>
- <description>
- </description>
- </method>
- <method name="set_node_b">
- <argument index="0" name="node" type="NodePath">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_node_b" qualifiers="const">
- <return type="NodePath">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Label" inherits="Range" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_align">
- <argument index="0" name="align" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_align" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_valign">
- <argument index="0" name="valign" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_valign" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_text">
- <argument index="0" name="text" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_text" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="set_autowrap">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_autowrap" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="get_line_height" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_line_count" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="ALIGN_LEFT" value="0">
- </constant>
- <constant name="ALIGN_CENTER" value="1">
- </constant>
- <constant name="ALIGN_RIGHT" value="2">
- </constant>
- <constant name="ALIGN_FILL" value="3">
- </constant>
- <constant name="VALIGN_TOP" value="0">
- </constant>
- <constant name="VALIGN_CENTER" value="1">
- </constant>
- <constant name="VALIGN_BOTTOM" value="2">
- </constant>
- <constant name="VALIGN_FILL" value="3">
- </constant>
- </constants>
-</class>
-<class name="Light" inherits="VisualInstance" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_parameter">
- <argument index="0" name="variable" type="int">
- </argument>
- <argument index="1" name="value" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_parameter" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="arg0" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_color">
- <argument index="0" name="color" type="int">
- </argument>
- <argument index="1" name="value" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_color" qualifiers="const">
- <return type="Color">
- </return>
- <argument index="0" name="arg0" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_project_shadows">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_project_shadows" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_projector">
- <argument index="0" name="projector" type="Texture">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_projector" qualifiers="const">
- <return type="Texture">
- </return>
- <description>
- </description>
- </method>
- <method name="set_operator">
- <argument index="0" name="operator" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_operator" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="PARAM_RADIUS" value="2">
- </constant>
- <constant name="PARAM_ENERGY" value="3">
- </constant>
- <constant name="PARAM_ATTENUATION" value="4">
- </constant>
- <constant name="PARAM_SPOT_ANGLE" value="1">
- </constant>
- <constant name="PARAM_SPOT_ATTENUATION" value="4">
- </constant>
- <constant name="PARAM_SHADOW_DARKENING" value="5">
- </constant>
- <constant name="COLOR_AMBIENT" value="0">
- </constant>
- <constant name="COLOR_DIFFUSE" value="1">
- </constant>
- <constant name="COLOR_SPECULAR" value="2">
- </constant>
- </constants>
-</class>
-<class name="LineEdit" inherits="Control" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="clear">
- <description>
- </description>
- </method>
- <method name="select_all">
- <description>
- </description>
- </method>
- <method name="set_text">
- <argument index="0" name="text" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_text" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="set_cursor_pos">
- <argument index="0" name="pos" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_cursor_pos" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_max_length">
- <argument index="0" name="chars" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_max_length" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="append_at_cursor">
- <argument index="0" name="text" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_editable">
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_editable" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_secret">
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_secret" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="select" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="text_entered">
- <argument index="0" name="text" type="String">
- </argument>
- <description>
- </description>
- </signal>
- <signal name="text_changed">
- <argument index="0" name="text" type="String">
- </argument>
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- </constants>
-</class>
-<class name="LineShape2D" inherits="Shape2D" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_normal">
- <argument index="0" name="normal" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_normal" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="set_d">
- <argument index="0" name="d" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_d" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="MainLoop" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="input_event">
- <argument index="0" name="arg0" type="InputEvent">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="NOTIFICATION_WM_FOCUS_IN" value="5">
- </constant>
- <constant name="NOTIFICATION_WM_FOCUS_OUT" value="6">
- </constant>
- <constant name="NOTIFICATION_WM_QUIT_REQUEST" value="7">
- </constant>
- </constants>
-</class>
-<class name="MarginContainer" inherits="Container" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Material" inherits="Resource" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_flag">
- <argument index="0" name="flag" type="int">
- </argument>
- <argument index="1" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_flag" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="flag" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_hint">
- <argument index="0" name="hint" type="int">
- </argument>
- <argument index="1" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_hint" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="hint" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_blend_mode">
- <argument index="0" name="mode" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_blend_mode" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_shade_model">
- <argument index="0" name="model" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_shade_model" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_line_width">
- <argument index="0" name="width" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_line_width" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_shader_param">
- <argument index="0" name="param" type="String">
- </argument>
- <argument index="1" name="arg1" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_shader_param" qualifiers="const">
- <argument index="0" name="arg0" type="String">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="FLAG_VISIBLE" value="0">
- </constant>
- <constant name="FLAG_DOUBLE_SIDED" value="1">
- </constant>
- <constant name="FLAG_INVERT_FACES" value="2">
- </constant>
- <constant name="FLAG_UNSHADED" value="3">
- </constant>
- <constant name="FLAG_ONTOP" value="4">
- </constant>
- <constant name="FLAG_WIREFRAME" value="5">
- </constant>
- <constant name="FLAG_BILLBOARD_TOGGLE" value="6">
- </constant>
- <constant name="FLAG_MAX" value="7">
- </constant>
- <constant name="HINT_DECAL" value="0">
- </constant>
- <constant name="HINT_OPAQUE_PRE_PASS" value="1">
- </constant>
- <constant name="HINT_NO_SHADOW" value="2">
- </constant>
- <constant name="HINT_NO_DEPTH_DRAW" value="3">
- </constant>
- <constant name="HINT_MAX" value="4">
- </constant>
- <constant name="SHADE_MODEL_LAMBERT" value="0">
- </constant>
- <constant name="SHADE_MODEL_LAMBERT_WRAP" value="1">
- </constant>
- <constant name="SHADE_MODEL_FRESNEL" value="2">
- </constant>
- <constant name="SHADE_MODEL_TOON" value="3">
- </constant>
- <constant name="SHADE_MODEL_CUSTOM_0" value="4">
- </constant>
- <constant name="SHADE_MODEL_CUSTOM_1" value="5">
- </constant>
- <constant name="SHADE_MODEL_CUSTOM_2" value="6">
- </constant>
- <constant name="SHADE_MODEL_CUSTOM_3" value="7">
- </constant>
- <constant name="BLEND_MODE_MIX" value="0">
- </constant>
- <constant name="BLEND_MODE_ADD" value="1">
- </constant>
- <constant name="BLEND_MODE_SUB" value="2">
- </constant>
- </constants>
-</class>
-<class name="MenuButton" inherits="Button" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="get_popup">
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="about_to_show">
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- </constants>
-</class>
-<class name="Mesh" inherits="Resource" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="add_morph_target">
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_morph_target_count" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_morph_target_name" qualifiers="const">
- <return type="String">
- </return>
- <argument index="0" name="index" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear_morph_targets">
- <description>
- </description>
- </method>
- <method name="set_morph_target_mode">
- <argument index="0" name="mode" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_morph_target_mode" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="add_surface">
- <argument index="0" name="primitive" type="int">
- </argument>
- <argument index="1" name="format" type="int">
- </argument>
- <argument index="2" name="array_len" type="int">
- </argument>
- <argument index="3" name="index_array_len" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_surface_count" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="surface_remove">
- <argument index="0" name="surf_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="surface_set_array">
- <return type="int">
- </return>
- <argument index="0" name="surf_idx" type="int">
- </argument>
- <argument index="1" name="array" type="int">
- </argument>
- <argument index="2" name="data" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="surface_get_array" qualifiers="const">
- <argument index="0" name="surf_idx" type="int">
- </argument>
- <argument index="1" name="array" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="surface_get_array_len" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="surf_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="surface_get_array_index_len" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="surf_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="surface_get_format" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="surf_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="surface_get_primitive_type" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="surf_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="surface_set_material">
- <argument index="0" name="surf_idx:Material" type="int">
- </argument>
- <argument index="1" name="arg1" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="surface_get_material" qualifiers="const">
- <return type="Material">
- </return>
- <argument index="0" name="surf_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="NO_INDEX_ARRAY" value="-1">
- </constant>
- <constant name="ARRAY_WEIGHTS_SIZE" value="4">
- </constant>
- <constant name="ARRAY_VERTEX" value="0">
- </constant>
- <constant name="ARRAY_NORMAL" value="1">
- </constant>
- <constant name="ARRAY_TANGENT" value="2">
- </constant>
- <constant name="ARRAY_COLOR" value="3">
- </constant>
- <constant name="ARRAY_TEX_UV" value="4">
- </constant>
- <constant name="ARRAY_TEX_UV2" value="5">
- </constant>
- <constant name="ARRAY_BONES" value="6">
- </constant>
- <constant name="ARRAY_WEIGHTS" value="7">
- </constant>
- <constant name="ARRAY_INDEX" value="8">
- </constant>
- <constant name="ARRAY_FORMAT_VERTEX" value="1">
- </constant>
- <constant name="ARRAY_FORMAT_NORMAL" value="2">
- </constant>
- <constant name="ARRAY_FORMAT_TANGENT" value="4">
- </constant>
- <constant name="ARRAY_FORMAT_COLOR" value="8">
- </constant>
- <constant name="ARRAY_FORMAT_TEX_UV" value="16">
- </constant>
- <constant name="ARRAY_FORMAT_TEX_UV2" value="32">
- </constant>
- <constant name="ARRAY_FORMAT_BONES" value="64">
- </constant>
- <constant name="ARRAY_FORMAT_WEIGHTS" value="128">
- </constant>
- <constant name="ARRAY_FORMAT_INDEX" value="256">
- </constant>
- <constant name="PRIMITIVE_POINTS" value="0">
- </constant>
- <constant name="PRIMITIVE_LINES" value="1">
- </constant>
- <constant name="PRIMITIVE_LINE_STRIP" value="2">
- </constant>
- <constant name="PRIMITIVE_LINE_LOOP" value="3">
- </constant>
- <constant name="PRIMITIVE_TRIANGLES" value="4">
- </constant>
- <constant name="PRIMITIVE_TRIANGLE_STRIP" value="5">
- </constant>
- <constant name="PRIMITIVE_TRIANGLE_FAN" value="6">
- </constant>
- </constants>
-</class>
-<class name="MeshInstance" inherits="GeometryInstance" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_mesh">
- <argument index="0" name="mesh" type="Mesh">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_mesh" qualifiers="const">
- <return type="Mesh">
- </return>
- <description>
- </description>
- </method>
- <method name="get_aabb" qualifiers="const">
- <return type="AABB">
- </return>
- <description>
- </description>
- </method>
- <method name="create_trimesh_collision">
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="MeshLibrary" inherits="Resource" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="create_item">
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_item_name">
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_item_mesh">
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="mesh" type="Mesh">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_item_shape">
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="shape" type="Shape">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_item_name" qualifiers="const">
- <return type="String">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_item_mesh" qualifiers="const">
- <return type="Mesh">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_item_shape" qualifiers="const">
- <return type="Shape">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="remove_item">
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear">
- <description>
- </description>
- </method>
- <method name="get_item_list" qualifiers="const">
- <return type="IntArray">
- </return>
- <description>
- </description>
- </method>
- <method name="get_last_unused_item_id" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="MultiMesh" inherits="Resource" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_mesh">
- <argument index="0" name="mesh" type="Mesh">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_mesh" qualifiers="const">
- <return type="Mesh">
- </return>
- <description>
- </description>
- </method>
- <method name="set_instance_count">
- <argument index="0" name="arg0" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_instance_count" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_instance_transform">
- <argument index="0" name="arg0" type="int">
- </argument>
- <argument index="1" name="arg1" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_instance_transform" qualifiers="const">
- <return type="Transform">
- </return>
- <argument index="0" name="arg0" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_instance_color">
- <argument index="0" name="arg0" type="int">
- </argument>
- <argument index="1" name="arg1" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_instance_color" qualifiers="const">
- <return type="Color">
- </return>
- <argument index="0" name="arg0" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_aabb">
- <argument index="0" name="arg0" type="AABB">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_aabb" qualifiers="const">
- <return type="AABB">
- </return>
- <description>
- </description>
- </method>
- <method name="generate_aabb">
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="MultiMeshInstance" inherits="GeometryInstance" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_multimesh">
- <argument index="0" name="multimesh" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_multimesh" qualifiers="const">
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Node" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_name">
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_name" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="add_child">
- <argument index="0" name="node" type="Node">
- </argument>
- <description>
- </description>
- </method>
- <method name="remove_child">
- <argument index="0" name="node" type="Node">
- </argument>
- <description>
- </description>
- </method>
- <method name="remove_and_delete_child">
- <argument index="0" name="node" type="Node">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_child_count" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_child" qualifiers="const">
- <return type="Node">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_node" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="path" type="NodePath">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_node" qualifiers="const">
- <return type="Node">
- </return>
- <argument index="0" name="path" type="NodePath">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_parent" qualifiers="const">
- <return type="Parent">
- </return>
- <description>
- </description>
- </method>
- <method name="has_node_and_resource" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="path" type="NodePath">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_node_and_resource">
- <return type="Array">
- </return>
- <argument index="0" name="path" type="NodePath">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_inside_scene" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="is_a_parent_of" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="node" type="Node">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_greater_than" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="node" type="Node">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_path" qualifiers="const">
- <return type="NodePath">
- </return>
- <description>
- </description>
- </method>
- <method name="get_path_to" qualifiers="const">
- <return type="NodePath">
- </return>
- <argument index="0" name="node" type="Node">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_to_group">
- <argument index="0" name="group" type="String">
- </argument>
- <argument index="1" name="arg1" type="bool" default="false">
- </argument>
- <description>
- </description>
- </method>
- <method name="remove_from_group">
- <argument index="0" name="group" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_in_group" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="group" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="move_child">
- <argument index="0" name="child_node" type="Node">
- </argument>
- <argument index="1" name="to_pos" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="raise">
- <description>
- </description>
- </method>
- <method name="set_owner">
- <argument index="0" name="owner" type="Node">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_owner" qualifiers="const">
- <return type="Node">
- </return>
- <description>
- </description>
- </method>
- <method name="remove_and_skip">
- <description>
- </description>
- </method>
- <method name="get_index" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="print_tree">
- <description>
- </description>
- </method>
- <method name="set_filename">
- <argument index="0" name="filename" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_filename" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="propagate_notification">
- <argument index="0" name="what" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_process">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_process_time" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="is_processing" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_idle_process">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_idle_process_time" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="is_idle_processing" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_process_input">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_processing_input" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_process_unhandled_input">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_processing_unhandled_input" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_process_mode">
- <argument index="0" name="mode" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_process_mode" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="can_process" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="print_stray_nodes">
- <description>
- </description>
- </method>
- <method name="set_world">
- <argument index="0" name="world" type="World">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_world" qualifiers="const">
- <return type="World">
- </return>
- <description>
- </description>
- </method>
- <method name="get_current_world" qualifiers="const">
- <return type="World">
- </return>
- <description>
- </description>
- </method>
- <method name="get_scene" qualifiers="const">
- <return type="SceneMainLoop">
- </return>
- <description>
- </description>
- </method>
- <method name="duplicate" qualifiers="const">
- <return type="Node">
- </return>
- <description>
- </description>
- </method>
- <method name="replace_by">
- <argument index="0" name="node" type="Node">
- </argument>
- <argument index="1" name="keep_data" type="bool" default="false">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="enter_scene">
- <description>
- </description>
- </signal>
- <signal name="renamed">
- <description>
- </description>
- </signal>
- <signal name="exit_scene">
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- <constant name="NOTIFICATION_ENTER_SCENE" value="10">
- </constant>
- <constant name="NOTIFICATION_EXIT_SCENE" value="11">
- </constant>
- <constant name="NOTIFICATION_MOVED_IN_PARENT" value="12">
- </constant>
- <constant name="NOTIFICATION_CHILDREN_CONFIGURED" value="13">
- </constant>
- <constant name="NOTIFICATION_PROCESS" value="16">
- </constant>
- <constant name="NOTIFICATION_IDLE_PROCESS" value="17">
- </constant>
- <constant name="NOTIFICATION_PARENTED" value="18">
- </constant>
- <constant name="NOTIFICATION_UNPARENTED" value="19">
- </constant>
- <constant name="NOTIFICATION_ENTER_WORLD" value="20">
- </constant>
- <constant name="NOTIFICATION_EXIT_WORLD" value="21">
- </constant>
- <constant name="NOTIFICATION_PAUSED" value="14">
- </constant>
- <constant name="NOTIFICATION_UNPAUSED" value="15">
- </constant>
- <constant name="PROCESS_NORMAL" value="0">
- </constant>
- <constant name="PROCESS_PAUSE" value="1">
- </constant>
- <constant name="PROCESS_ALWAYS" value="2">
- </constant>
- </constants>
-</class>
-<class name="Node2D" inherits="CanvasItem" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_pos">
- <argument index="0" name="pos" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_rot">
- <argument index="0" name="rot" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_scale">
- <argument index="0" name="scale" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_pos" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="get_rot" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_scale" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="get_global_pos" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="_OS" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_mouse_show">
- <argument index="0" name="show" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_mouse_grab">
- <argument index="0" name="grab" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_mouse_grab_enabled" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="get_mouse_pos" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="set_clipboard">
- <argument index="0" name="clipboard" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_clipboard" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="set_video_mode">
- <argument index="0" name="size" type="Vector2">
- </argument>
- <argument index="1" name="fullscreen" type="bool">
- </argument>
- <argument index="2" name="resizable" type="bool">
- </argument>
- <argument index="3" name="screen" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_video_mode_size" qualifiers="const">
- <return type="Vector2">
- </return>
- <argument index="0" name="screen" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_video_mode_fullscreen" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="screen" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_video_mode_resizable" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="screen" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_fullscreen_mode_list" qualifiers="const">
- <return type="Array">
- </return>
- <argument index="0" name="screen" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_iterations_per_second">
- <argument index="0" name="iterations_per_second" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_iterations_per_second" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_low_processor_usage_mode">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_in_low_processor_usage_mode" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="get_executable_path" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="execute">
- <return type="int">
- </return>
- <argument index="0" name="path" type="String">
- </argument>
- <argument index="1" name="arguments" type="StringArray">
- </argument>
- <argument index="2" name="blocking" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="kill">
- <return type="int">
- </return>
- <argument index="0" name="pid" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_environment" qualifiers="const">
- <return type="String">
- </return>
- <argument index="0" name="environment" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_environment" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="environment" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_name" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="get_cmdline_args">
- <return type="StringArray">
- </return>
- <description>
- </description>
- </method>
- <method name="get_main_loop" qualifiers="const">
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="get_date" qualifiers="const">
- <return type="Dictionary">
- </return>
- <description>
- </description>
- </method>
- <method name="get_time" qualifiers="const">
- <return type="Dictionary">
- </return>
- <description>
- </description>
- </method>
- <method name="delay_usec" qualifiers="const">
- <argument index="0" name="usec" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_ticks_msec" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_locale" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="can_draw" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="get_frames_drawn">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="is_stdout_verbose" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="get_mouse_button_state" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="dump_memory_to_file">
- <argument index="0" name="file" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="dump_resources_to_file">
- <argument index="0" name="file" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="print_resources_in_use">
- <argument index="0" name="short" type="bool" default="false">
- </argument>
- <description>
- </description>
- </method>
- <method name="print_all_resources">
- <argument index="0" name="tofile" type="String" default="&quot;&quot;">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_static_memory_usage" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_static_memory_peak_usage" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_dynamic_memory_usage" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="DAY_SUNDAY" value="0">
- </constant>
- <constant name="DAY_MONDAY" value="1">
- </constant>
- <constant name="DAY_TUESDAY" value="2">
- </constant>
- <constant name="DAY_WEDNESDAY" value="3">
- </constant>
- <constant name="DAY_THURSDAY" value="4">
- </constant>
- <constant name="DAY_FRIDAY" value="5">
- </constant>
- <constant name="DAY_SATURDAY" value="6">
- </constant>
- <constant name="MONTH_JANUARY" value="0">
- </constant>
- <constant name="MONTH_FEBRUARY" value="1">
- </constant>
- <constant name="MONTH_MARCH" value="2">
- </constant>
- <constant name="MONTH_APRIL" value="3">
- </constant>
- <constant name="MONTH_MAY" value="4">
- </constant>
- <constant name="MONTH_JUNE" value="5">
- </constant>
- <constant name="MONTH_JULY" value="6">
- </constant>
- <constant name="MONTH_AUGUST" value="7">
- </constant>
- <constant name="MONTH_SEPTEMBER" value="8">
- </constant>
- <constant name="MONTH_OCTOBER" value="9">
- </constant>
- <constant name="MONTH_NOVEMBER" value="10">
- </constant>
- <constant name="MONTH_DECEMBER" value="11">
- </constant>
- </constants>
-</class>
-<class name="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="get_type" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="is_type" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set">
- <argument index="0" name="property" type="String">
- </argument>
- <argument index="1" name="value" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="get" qualifiers="const">
- <argument index="0" name="property" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_property_list" qualifiers="const">
- <return type="Array">
- </return>
- <description>
- </description>
- </method>
- <method name="notification">
- <argument index="0" name="what" type="int">
- </argument>
- <argument index="1" name="arg1" type="bool" default="false">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_instance_ID" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_script">
- <argument index="0" name="script" type="Script">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_script" qualifiers="const">
- <return type="Script">
- </return>
- <description>
- </description>
- </method>
- <method name="set_meta">
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="value" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_meta" qualifiers="const">
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_meta" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_meta_list" qualifiers="const">
- <return type="StringArray">
- </return>
- <description>
- </description>
- </method>
- <method name="call">
- <argument index="0" name="method" type="String">
- </argument>
- <argument index="1" name="arg1" type="var" default="NULL">
- </argument>
- <argument index="2" name="arg2" type="var" default="NULL">
- </argument>
- <argument index="3" name="arg3" type="var" default="NULL">
- </argument>
- <argument index="4" name="arg4" type="var" default="NULL">
- </argument>
- <description>
- </description>
- </method>
- <method name="call_deferred">
- <argument index="0" name="method" type="String">
- </argument>
- <argument index="1" name="arg1" type="var" default="NULL">
- </argument>
- <argument index="2" name="arg2" type="var" default="NULL">
- </argument>
- <argument index="3" name="arg3" type="var" default="NULL">
- </argument>
- <argument index="4" name="arg4" type="var" default="NULL">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_user_signal">
- <argument index="0" name="signal" type="String">
- </argument>
- <argument index="1" name="arguments" type="Array" default="Array()">
- </argument>
- <description>
- </description>
- </method>
- <method name="emit_signal">
- <argument index="0" name="signal" type="String">
- </argument>
- <argument index="1" name="arguments" type="Array" default="Array()">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_signal_list" qualifiers="const">
- <return type="Array">
- </return>
- <description>
- </description>
- </method>
- <method name="connect">
- <argument index="0" name="signal" type="String">
- </argument>
- <argument index="1" name="target" type="Object">
- </argument>
- <argument index="2" name="method" type="String">
- </argument>
- <argument index="3" name="binds" type="Array" default="Array()">
- </argument>
- <argument index="4" name="flags" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="disconnect">
- <argument index="0" name="signal" type="String">
- </argument>
- <argument index="1" name="target" type="Object">
- </argument>
- <argument index="2" name="method" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_connected" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="signal" type="String">
- </argument>
- <argument index="1" name="target" type="Object">
- </argument>
- <argument index="2" name="method" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_block_signals">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_blocking_signals" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_message_translation">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="can_translate_messages">
- <argument index="0" name="arg0" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="XL_MESSAGE" qualifiers="const">
- <return type="String">
- </return>
- <argument index="0" name="message" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="tr" qualifiers="const">
- <return type="String">
- </return>
- <argument index="0" name="message" type="String">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="NOTIFICATION_POSTINITIALIZE" value="0">
- </constant>
- <constant name="NOTIFICATION_PREDELETE" value="1">
- </constant>
- <constant name="CONNECT_DEFERRED" value="1">
- </constant>
- <constant name="CONNECT_PERSIST" value="2">
- </constant>
- <constant name="CONNECT_ONESHOT" value="4">
- </constant>
- </constants>
-</class>
-<class name="OmniLight" inherits="Light" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="OptimizedSaver" inherits="Reference" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_target_platform">
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_target_platform" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="set_target_name">
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_property">
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="value" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="optimize_object">
- <return type="bool">
- </return>
- <argument index="0" name="obj" type="Object">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="OptionButton" inherits="Button" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="add_item">
- <argument index="0" name="label" type="String">
- </argument>
- <argument index="1" name="id" type="int" default="-1">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_icon_item">
- <argument index="0" name="texture" type="Texture">
- </argument>
- <argument index="1" name="label" type="String">
- </argument>
- <argument index="2" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_item_text">
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="text" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_item_icon">
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="texture" type="Texture">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_item_disabled">
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="disabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_item_ID">
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_item_metadata">
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="metadata" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_item_text" qualifiers="const">
- <return type="String">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_item_icon" qualifiers="const">
- <return type="Texture">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_item_ID" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_item_metadata" qualifiers="const">
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_item_disabled" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_item_count" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="add_separator">
- <description>
- </description>
- </method>
- <method name="clear">
- <description>
- </description>
- </method>
- <method name="select">
- <argument index="0" name="arg0" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_selected" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_selected_ID" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_selected_metadata" qualifiers="const">
- <description>
- </description>
- </method>
- <method name="remove_item">
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="item_selected">
- <argument index="0" name="ID" type="int">
- </argument>
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- </constants>
-</class>
-<class name="PHashTranslation" inherits="Translation" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="PacketPeer" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="PacketPeerStream" inherits="PacketPeer" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_stream_peer">
- <argument index="0" name="peer" type="StreamPeer">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Panel" inherits="Control" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="ParallaxBackground" inherits="CanvasLayer" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_scroll_offset">
- <argument index="0" name="ofs" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_scroll_offset" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="set_scroll_base_offset">
- <argument index="0" name="ofs" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_scroll_base_offset" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="set_scroll_base_scale">
- <argument index="0" name="scale" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_scroll_base_scale" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="set_limit_begin">
- <argument index="0" name="ofs" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_limit_begin" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="set_limit_end">
- <argument index="0" name="ofs" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_limit_end" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="ParallaxLayer" inherits="Node2D" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_motion_scale">
- <argument index="0" name="scale" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_motion_scale" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="set_motion_wrap_begin">
- <argument index="0" name="wrap_begin" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_motion_wrap_begin" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="set_motion_wrap_end">
- <argument index="0" name="wrap_end" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_motion_wrap_end" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Particles" inherits="VisualInstance" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_amount">
- <argument index="0" name="amount" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_amount" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_emitting">
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_emitting" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_visibility_aabb">
- <argument index="0" name="aabb" type="AABB">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_visibility_aabb" qualifiers="const">
- <return type="AABB">
- </return>
- <description>
- </description>
- </method>
- <method name="set_emission_half_extents">
- <argument index="0" name="half_extents" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_emission_half_extents" qualifiers="const">
- <return type="Vector3">
- </return>
- <description>
- </description>
- </method>
- <method name="set_emission_base_velocity">
- <argument index="0" name="base_velocity" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_emission_base_velocity" qualifiers="const">
- <return type="Vector3">
- </return>
- <description>
- </description>
- </method>
- <method name="set_emission_points">
- <argument index="0" name="points" type="Vector3Array">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_emission_points" qualifiers="const">
- <return type="Vector3Array">
- </return>
- <description>
- </description>
- </method>
- <method name="set_gravity_normal">
- <argument index="0" name="normal" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_gravity_normal" qualifiers="const">
- <return type="Vector3">
- </return>
- <description>
- </description>
- </method>
- <method name="set_variable">
- <argument index="0" name="variable" type="int">
- </argument>
- <argument index="1" name="value" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_variable" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="variable" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_randomness">
- <argument index="0" name="variable" type="int">
- </argument>
- <argument index="1" name="randomness" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_randomness" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="arg0" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_color_phase_pos">
- <argument index="0" name="phase" type="int">
- </argument>
- <argument index="1" name="pos" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_color_phase_pos" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="phase" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_color_phase_color">
- <argument index="0" name="phase" type="int">
- </argument>
- <argument index="1" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_color_phase_color" qualifiers="const">
- <return type="Color">
- </return>
- <argument index="0" name="phase" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_material">
- <argument index="0" name="material" type="Material">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_material" qualifiers="const">
- <return type="Material">
- </return>
- <description>
- </description>
- </method>
- <method name="set_emit_timeout">
- <argument index="0" name="arg0" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_emit_timeout" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_height_from_velocity">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_height_from_velocity" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_color_phases">
- <argument index="0" name="count" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_color_phases" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="VAR_LIFETIME" value="0">
- </constant>
- <constant name="VAR_SPREAD" value="1">
- </constant>
- <constant name="VAR_GRAVITY" value="2">
- </constant>
- <constant name="VAR_LINEAR_VELOCITY" value="3">
- </constant>
- <constant name="VAR_ANGULAR_VELOCITY" value="4">
- </constant>
- <constant name="VAR_LINEAR_ACCELERATION" value="5">
- </constant>
- <constant name="VAR_DRAG" value="6">
- </constant>
- <constant name="VAR_TANGENTIAL_ACCELERATION" value="7">
- </constant>
- <constant name="VAR_INITIAL_SIZE" value="9">
- </constant>
- <constant name="VAR_FINAL_SIZE" value="10">
- </constant>
- <constant name="VAR_INITIAL_ANGLE" value="11">
- </constant>
- <constant name="VAR_HEIGHT" value="12">
- </constant>
- <constant name="VAR_HEIGHT_SPEED_SCALE" value="13">
- </constant>
- <constant name="VAR_MAX" value="14">
- </constant>
- </constants>
-</class>
-<class name="Particles2D" inherits="Node2D" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_emitting">
- <argument index="0" name="active" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_emitting" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_amount">
- <argument index="0" name="amount" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_amount" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_lifetime">
- <argument index="0" name="lifetime" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_lifetime" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_pre_process_time">
- <argument index="0" name="time" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_pre_process_time" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_emit_timeout">
- <argument index="0" name="value" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_emit_timeout" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_param">
- <argument index="0" name="param" type="int">
- </argument>
- <argument index="1" name="value" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_param" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="param" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_randomness">
- <argument index="0" name="param" type="int">
- </argument>
- <argument index="1" name="value" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_randomness" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="param" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_texture">
- <argument index="0" name="texture" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_texture" qualifiers="const">
- <return type="Texture">
- </return>
- <description>
- </description>
- </method>
- <method name="set_emissor_offset">
- <argument index="0" name="offset" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_emissor_offset" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="set_emission_half_extents">
- <argument index="0" name="extents" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_emission_half_extents" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="set_color_phases">
- <argument index="0" name="phases" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_color_phases" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_color_phase_color">
- <argument index="0" name="phase" type="int">
- </argument>
- <argument index="1" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_color_phase_color" qualifiers="const">
- <return type="Color">
- </return>
- <argument index="0" name="phase" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_color_phase_pos">
- <argument index="0" name="phase" type="int">
- </argument>
- <argument index="1" name="pos" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_color_phase_pos" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="phase" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="pre_process">
- <argument index="0" name="time" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_use_local_space">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_using_local_space" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_initial_velocity">
- <argument index="0" name="velocity" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_initial_velocity" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="testee">
- <argument index="0" name="arg0" type="int" default="0">
- </argument>
- <argument index="1" name="arg1" type="int" default="1">
- </argument>
- <argument index="2" name="arg2" type="int" default="2">
- </argument>
- <argument index="3" name="arg3" type="int" default="3">
- </argument>
- <argument index="4" name="arg4" type="int" default="4">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="PARAM_DIRECTION" value="0">
- </constant>
- <constant name="PARAM_SPREAD" value="1">
- </constant>
- <constant name="PARAM_LINEAR_VELOCITY" value="2">
- </constant>
- <constant name="PARAM_SPIN_VELOCITY" value="3">
- </constant>
- <constant name="PARAM_GRAVITY_DIRECTION" value="4">
- </constant>
- <constant name="PARAM_GRAVITY_STRENGTH" value="5">
- </constant>
- <constant name="PARAM_RADIAL_ACCEL" value="6">
- </constant>
- <constant name="PARAM_TANGENTIAL_ACCEL" value="7">
- </constant>
- <constant name="PARAM_INITIAL_SIZE" value="9">
- </constant>
- <constant name="PARAM_FINAL_SIZE" value="10">
- </constant>
- <constant name="PARAM_HUE_VARIATION" value="11">
- </constant>
- <constant name="PARAM_MAX" value="12">
- </constant>
- <constant name="MAX_COLOR_PHASES" value="4">
- </constant>
- </constants>
-</class>
-<class name="PathRemap" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="add_remap">
- <argument index="0" name="from" type="String">
- </argument>
- <argument index="1" name="to" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_remap">
- <argument index="0" name="path" type="String">
- </argument>
- <argument index="1" name="arg1" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_remap" qualifiers="const">
- <return type="String">
- </return>
- <argument index="0" name="path" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="erase_remap">
- <argument index="0" name="path" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear_remaps">
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Physics2DDirectBodyState" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="get_total_gravity" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="get_total_density" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_inverse_mass" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_inverse_inertia" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_linear_velocity">
- <argument index="0" name="velocity" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_linear_velocity" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="set_angular_velocity">
- <argument index="0" name="velocity" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_angular_velocity" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_transform">
- <argument index="0" name="transform" type="Matrix32">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_transform" qualifiers="const">
- <return type="Matrix32">
- </return>
- <description>
- </description>
- </method>
- <method name="set_sleep_state">
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_sleeping" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="get_contact_count" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_contact_local_pos" qualifiers="const">
- <return type="Vector2">
- </return>
- <argument index="0" name="contact_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_contact_local_normal" qualifiers="const">
- <return type="Vector2">
- </return>
- <argument index="0" name="contact_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_contact_local_shape" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="contact_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_contact_collider" qualifiers="const">
- <return type="RID">
- </return>
- <argument index="0" name="contact_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_contact_collider_pos" qualifiers="const">
- <return type="Vector2">
- </return>
- <argument index="0" name="contact_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_contact_collider_id" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="contact_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_contact_collider_object" qualifiers="const">
- <return type="Object">
- </return>
- <argument index="0" name="contact_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_contact_collider_shape" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="contact_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_contact_collider_velocity_at_pos" qualifiers="const">
- <return type="Vector2">
- </return>
- <argument index="0" name="contact_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_step" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="integrate_forces">
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Physics2DDirectBodyStateSW" inherits="Physics2DDirectBodyState" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Physics2DServer" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="shape_create">
- <return type="RID">
- </return>
- <argument index="0" name="type" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="shape_set_data">
- <argument index="0" name="shape" type="RID">
- </argument>
- <argument index="1" name="data" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="shape_get_type" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="shape" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="shape_get_data" qualifiers="const">
- <argument index="0" name="shape" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="space_create">
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="space_set_active">
- <argument index="0" name="space" type="RID">
- </argument>
- <argument index="1" name="active" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="space_is_active" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="space" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="space_set_param">
- <argument index="0" name="space" type="RID">
- </argument>
- <argument index="1" name="param" type="int">
- </argument>
- <argument index="2" name="value" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="space_get_param" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="space" type="RID">
- </argument>
- <argument index="1" name="param" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_create">
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="area_set_space">
- <argument index="0" name="area" type="RID">
- </argument>
- <argument index="1" name="space" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_get_space" qualifiers="const">
- <return type="RID">
- </return>
- <argument index="0" name="area" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_add_shape">
- <argument index="0" name="area" type="RID">
- </argument>
- <argument index="1" name="shape" type="int">
- </argument>
- <argument index="2" name="transform" type="RID" default="1,0, 0,1, 0,0">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_set_shape" qualifiers="const">
- <return type="RID">
- </return>
- <argument index="0" name="area" type="RID">
- </argument>
- <argument index="1" name="shape_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_set_shape_transform">
- <argument index="0" name="area" type="RID">
- </argument>
- <argument index="1" name="shape_idx" type="int">
- </argument>
- <argument index="2" name="transform" type="Matrix32">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_get_shape_count" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="area" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_get_shape" qualifiers="const">
- <return type="RID">
- </return>
- <argument index="0" name="area" type="RID">
- </argument>
- <argument index="1" name="shape_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_get_shape_transform" qualifiers="const">
- <return type="Matrix32">
- </return>
- <argument index="0" name="area" type="RID">
- </argument>
- <argument index="1" name="shape_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_remove_shape">
- <argument index="0" name="area" type="RID">
- </argument>
- <argument index="1" name="shape_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_clear_shapes">
- <argument index="0" name="area" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_set_param" qualifiers="const">
- <argument index="0" name="area" type="RID">
- </argument>
- <argument index="1" name="param" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_set_transform" qualifiers="const">
- <return type="Matrix32">
- </return>
- <argument index="0" name="area" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_get_param" qualifiers="const">
- <argument index="0" name="area" type="RID">
- </argument>
- <argument index="1" name="param" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_get_transform" qualifiers="const">
- <return type="Matrix32">
- </return>
- <argument index="0" name="area" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_attach_object_instance_ID">
- <argument index="0" name="area" type="RID">
- </argument>
- <argument index="1" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_get_object_instance_ID" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="area" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_create">
- <return type="RID">
- </return>
- <argument index="0" name="mode" type="int" default="1">
- </argument>
- <argument index="1" name="init_sleeping" type="bool" default="false">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_set_space">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="space" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_get_space" qualifiers="const">
- <return type="RID">
- </return>
- <argument index="0" name="body" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_set_mode">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="mode" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_get_mode" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_add_shape">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="shape" type="RID">
- </argument>
- <argument index="2" name="transform" type="Matrix32" default="1,0, 0,1, 0,0">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_set_shape">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="shape_idx" type="int">
- </argument>
- <argument index="2" name="shape" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_set_shape_transform">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="shape_idx" type="int">
- </argument>
- <argument index="2" name="transform" type="Matrix32">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_get_shape_count" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="body" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_get_shape" qualifiers="const">
- <return type="RID">
- </return>
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="shape_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_get_shape_transform" qualifiers="const">
- <return type="Matrix32">
- </return>
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="shape_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_remove_shape">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="shape_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_clear_shapes">
- <argument index="0" name="body" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_attach_object_instance_ID">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_get_object_instance_ID" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="body" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_set_enable_continuous_collision_detection">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_is_continuous_collision_detection_enabled" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="body" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_set_param">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="param" type="int">
- </argument>
- <argument index="2" name="value" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_get_param" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="param" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_static_simulate_motion">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="new_xform" type="Matrix32">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_set_state">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="state" type="int">
- </argument>
- <argument index="2" name="value" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_get_state" qualifiers="const">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="state" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_apply_impulse">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="pos" type="Vector2">
- </argument>
- <argument index="2" name="impulse" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_set_axis_velocity">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="axis_velocity" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_add_collision_exception">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="excepted_body" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_remove_collision_exception">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="excepted_body" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_set_max_contacts_reported">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="amount" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_get_max_contacts_reported" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="body" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_set_omit_force_integration">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_is_omitting_force_integration" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="body" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="pin_joint_create">
- <return type="RID">
- </return>
- <argument index="0" name="anchor" type="Vector2">
- </argument>
- <argument index="1" name="body_a" type="RID">
- </argument>
- <argument index="2" name="body_b" type="RID" default="RID()">
- </argument>
- <description>
- </description>
- </method>
- <method name="groove_joint_create">
- <return type="RID">
- </return>
- <argument index="0" name="groove1_a" type="Vector2">
- </argument>
- <argument index="1" name="groove2_a" type="Vector2">
- </argument>
- <argument index="2" name="anchor_b" type="Vector2">
- </argument>
- <argument index="3" name="body_a" type="RID" default="RID()">
- </argument>
- <argument index="4" name="body_b" type="RID" default="RID()">
- </argument>
- <description>
- </description>
- </method>
- <method name="damped_spring_joint_create">
- <return type="RID">
- </return>
- <argument index="0" name="anchor_a" type="Vector2">
- </argument>
- <argument index="1" name="anchor_b" type="Vector2">
- </argument>
- <argument index="2" name="body_a" type="RID">
- </argument>
- <argument index="3" name="body_b" type="RID" default="RID()">
- </argument>
- <description>
- </description>
- </method>
- <method name="damped_string_joint_set_param">
- <argument index="0" name="joint" type="RID">
- </argument>
- <argument index="1" name="param" type="int">
- </argument>
- <argument index="2" name="value" type="real" default="RID()">
- </argument>
- <description>
- </description>
- </method>
- <method name="damped_string_joint_get_param" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="joint" type="RID">
- </argument>
- <argument index="1" name="param" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="joint_get_type" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="joint" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_create">
- <return type="RID">
- </return>
- <argument index="0" name="receiver" type="Object">
- </argument>
- <argument index="1" name="callback" type="String">
- </argument>
- <argument index="2" name="userdata" type="var" default="NULL">
- </argument>
- <argument index="3" name="persist" type="bool" default="true">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_body_state">
- <argument index="0" name="query" type="RID">
- </argument>
- <argument index="1" name="body" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_body_direct_state">
- <argument index="0" name="query" type="RID">
- </argument>
- <argument index="1" name="body" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_area">
- <argument index="0" name="query" type="RID">
- </argument>
- <argument index="1" name="area" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_intersection">
- <argument index="0" name="query" type="RID">
- </argument>
- <argument index="1" name="space" type="RID">
- </argument>
- <argument index="2" name="notify_hint_only" type="bool" default="false">
- </argument>
- <argument index="3" name="exclude" type="Array" default="Array()">
- </argument>
- <argument index="4" name="usermask" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_intersection_ray">
- <argument index="0" name="query" type="RID">
- </argument>
- <argument index="1" name="from" type="Vector2">
- </argument>
- <argument index="2" name="dir" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_intersection_segment">
- <argument index="0" name="query" type="RID">
- </argument>
- <argument index="1" name="from" type="Vector2">
- </argument>
- <argument index="2" name="to" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_intersection_shape">
- <argument index="0" name="query" type="RID">
- </argument>
- <argument index="1" name="shape" type="RID">
- </argument>
- <argument index="2" name="transform" type="Matrix32">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_clear">
- <argument index="0" name="query" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_get_type" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="query" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_get_target" qualifiers="const">
- <return type="RID">
- </return>
- <argument index="0" name="query" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="free">
- <argument index="0" name="rid" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_active">
- <argument index="0" name="active" type="bool">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="SHAPE_LINE" value="0">
- </constant>
- <constant name="SHAPE_SEGMENT" value="1">
- </constant>
- <constant name="SHAPE_CIRCLE" value="2">
- </constant>
- <constant name="SHAPE_RECTANGLE" value="3">
- </constant>
- <constant name="SHAPE_CAPSULE" value="4">
- </constant>
- <constant name="SHAPE_CONVEX_POLYGON" value="5">
- </constant>
- <constant name="SHAPE_CONCAVE_POLYGON" value="6">
- </constant>
- <constant name="SHAPE_CUSTOM" value="7">
- </constant>
- <constant name="AREA_PARAM_OVERRIDE_PARAMS" value="0">
- </constant>
- <constant name="AREA_PARAM_GRAVITY" value="1">
- </constant>
- <constant name="AREA_PARAM_GRAVITY_VECTOR" value="2">
- </constant>
- <constant name="AREA_PARAM_GRAVITY_IS_POINT" value="3">
- </constant>
- <constant name="AREA_PARAM_GRAVITY_POINT_ATTENUATION" value="4">
- </constant>
- <constant name="AREA_PARAM_DENSITY" value="5">
- </constant>
- <constant name="AREA_PARAM_PRIORITY" value="6">
- </constant>
- <constant name="BODY_MODE_STATIC" value="0">
- </constant>
- <constant name="BODY_MODE_RIGID" value="1">
- </constant>
- <constant name="BODY_MODE_CHARACTER" value="2">
- </constant>
- <constant name="BODY_PARAM_BOUNCE" value="0">
- </constant>
- <constant name="BODY_PARAM_FRICTION" value="1">
- </constant>
- <constant name="BODY_PARAM_MASS" value="2">
- </constant>
- <constant name="BODY_PARAM_MAX" value="3">
- </constant>
- <constant name="BODY_STATE_TRANSFORM" value="0">
- </constant>
- <constant name="BODY_STATE_LINEAR_VELOCITY" value="1">
- </constant>
- <constant name="BODY_STATE_ANGULAR_VELOCITY" value="2">
- </constant>
- <constant name="BODY_STATE_SLEEPING" value="3">
- </constant>
- <constant name="JOINT_PIN" value="0">
- </constant>
- <constant name="JOINT_GROOVE" value="1">
- </constant>
- <constant name="JOINT_DAMPED_SPRING" value="2">
- </constant>
- <constant name="DAMPED_STRING_REST_LENGTH" value="0">
- </constant>
- <constant name="DAMPED_STRING_STIFFNESS" value="1">
- </constant>
- <constant name="DAMPED_STRING_DAMPING" value="2">
- </constant>
- <constant name="TYPE_BODY" value="0">
- </constant>
- <constant name="TYPE_AREA" value="1">
- </constant>
- <constant name="AREA_BODY_ADDED" value="0">
- </constant>
- <constant name="AREA_BODY_REMOVED" value="1">
- </constant>
- <constant name="QUERY_NONE" value="0">
- </constant>
- <constant name="QUERY_BODY_STATE" value="1">
- </constant>
- <constant name="QUERY_BODY_DIRECT_STATE" value="2">
- </constant>
- <constant name="QUERY_AREA_MONITOR" value="3">
- </constant>
- <constant name="QUERY_INTERSECTION" value="4">
- </constant>
- </constants>
-</class>
-<class name="Physics2DServerSW" inherits="Physics2DServer" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="PhysicsBody" inherits="Spatial" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="add_shape">
- <argument index="0" name="shape" type="Shape">
- </argument>
- <argument index="1" name="transform" type="Transform" default="Transform()">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_shape_count" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_shape">
- <argument index="0" name="shape_idx" type="int">
- </argument>
- <argument index="1" name="shape" type="Shape">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_shape_transform">
- <argument index="0" name="shape_idx" type="int">
- </argument>
- <argument index="1" name="transform" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_shape" qualifiers="const">
- <return type="Shape">
- </return>
- <argument index="0" name="shape_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_shape_transform" qualifiers="const">
- <return type="Transform">
- </return>
- <argument index="0" name="shape_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="remove_shape">
- <argument index="0" name="shape_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear_shapes">
- <description>
- </description>
- </method>
- <method name="get_body" qualifiers="const">
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="set_max_contacts_reported">
- <argument index="0" name="contacts" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_max_contacts_reported" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_contacts_reported_depth_treshold">
- <argument index="0" name="depth" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_contacts_reported_depth_treshold" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="PhysicsBody2D" inherits="CollisionObject2D" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="PhysicsDirectBodyState" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="get_total_gravity" qualifiers="const">
- <return type="Vector3">
- </return>
- <description>
- </description>
- </method>
- <method name="get_total_density" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_inverse_mass" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_inverse_inertia_tensor" qualifiers="const">
- <return type="Matrix3">
- </return>
- <description>
- </description>
- </method>
- <method name="set_linear_velocity">
- <argument index="0" name="velocity" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_linear_velocity" qualifiers="const">
- <return type="Vector3">
- </return>
- <description>
- </description>
- </method>
- <method name="set_angular_velocity">
- <argument index="0" name="velocity" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_angular_velocity" qualifiers="const">
- <return type="Vector3">
- </return>
- <description>
- </description>
- </method>
- <method name="set_transform">
- <argument index="0" name="transform" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_transform" qualifiers="const">
- <return type="Transform">
- </return>
- <description>
- </description>
- </method>
- <method name="set_sleep_state">
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_sleeping" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="get_contact_count" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_contact_local_pos" qualifiers="const">
- <return type="Vector3">
- </return>
- <argument index="0" name="contact_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_contact_local_normal" qualifiers="const">
- <return type="Vector3">
- </return>
- <argument index="0" name="contact_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_contact_local_shape" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="contact_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_contact_collider" qualifiers="const">
- <return type="RID">
- </return>
- <argument index="0" name="contact_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_contact_collider_pos" qualifiers="const">
- <return type="Vector3">
- </return>
- <argument index="0" name="contact_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_contact_collider_id" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="contact_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_contact_collider_shape" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="contact_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_contact_collider_velocity_at_pos" qualifiers="const">
- <return type="Vector3">
- </return>
- <argument index="0" name="contact_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="PhysicsDirectBodyStateSW" inherits="PhysicsDirectBodyState" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="PhysicsServer" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="shape_create">
- <return type="RID">
- </return>
- <argument index="0" name="shape_type" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="shape_set_data">
- <argument index="0" name="shape" type="RID">
- </argument>
- <argument index="1" name="data" type="var" default="-1">
- </argument>
- <description>
- </description>
- </method>
- <method name="shape_get_type" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="shape" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="shape_get_data" qualifiers="const">
- <argument index="0" name="shape" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="space_create">
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="area_create">
- <return type="RID">
- </return>
- <argument index="0" name="space" type="int">
- </argument>
- <argument index="1" name="arg1" type="bool" default="RID()">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_set_param">
- <argument index="0" name="area" type="RID">
- </argument>
- <argument index="1" name="param" type="int">
- </argument>
- <argument index="2" name="value" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_set_shape">
- <argument index="0" name="area" type="RID">
- </argument>
- <argument index="1" name="shape" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_set_bounds">
- <argument index="0" name="area" type="RID">
- </argument>
- <argument index="1" name="bounds" type="Dictionary">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_set_transform">
- <argument index="0" name="area" type="RID">
- </argument>
- <argument index="1" name="transform" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_get_param" qualifiers="const">
- <argument index="0" name="area" type="RID">
- </argument>
- <argument index="1" name="param" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_get_shape" qualifiers="const">
- <return type="RID">
- </return>
- <argument index="0" name="area" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_get_bounds" qualifiers="const">
- <return type="Dictionary">
- </return>
- <argument index="0" name="area" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_get_transform" qualifiers="const">
- <return type="Transform">
- </return>
- <argument index="0" name="area" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_create">
- <return type="RID">
- </return>
- <argument index="0" name="space" type="int">
- </argument>
- <argument index="1" name="arg1" type="bool" default="RID()">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_set_mode">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="mode" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_get_mode" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_add_shape">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="shape" type="RID">
- </argument>
- <argument index="2" name="transform" type="Transform" default="Transform()">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_set_shape">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="shape_idx" type="int">
- </argument>
- <argument index="2" name="shape" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_set_shape_transform">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="shape_idx" type="int">
- </argument>
- <argument index="2" name="transform" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_get_shape_count" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="body" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_get_shape" qualifiers="const">
- <return type="RID">
- </return>
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="shape_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_get_shape_transform" qualifiers="const">
- <return type="Transform">
- </return>
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="shape_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_attach_object_instance_ID">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="ID" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_get_object_instance_ID" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="body" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_set_user_flags">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="user_flags" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_get_user_flags" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_set_param">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="param" type="int">
- </argument>
- <argument index="2" name="value" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_get_param" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="param" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_static_simulate_motion">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="motion" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_set_state">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="state" type="int">
- </argument>
- <argument index="2" name="value" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_get_state" qualifiers="const">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="state" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_set_applied_force">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="applied_force" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_get_applied_force" qualifiers="const">
- <return type="Vector3">
- </return>
- <argument index="0" name="body" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_set_applied_torque">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="applied_torque" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_get_applied_torque" qualifiers="const">
- <return type="Vector3">
- </return>
- <argument index="0" name="body" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_set_axis_velocity">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="axis_velocity" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_apply_impulse">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="pos" type="Vector3">
- </argument>
- <argument index="2" name="impulse" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_add_collision_exception">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="against_body" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_remove_collision_exception">
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="against_body" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_create">
- <return type="RID">
- </return>
- <argument index="0" name="receiver" type="Object">
- </argument>
- <argument index="1" name="callback" type="String">
- </argument>
- <argument index="2" name="userdata" type="var">
- </argument>
- <argument index="3" name="persist" type="bool" default="true">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_body_state">
- <argument index="0" name="query" type="RID">
- </argument>
- <argument index="1" name="body" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_body_direct_state">
- <argument index="0" name="query" type="RID">
- </argument>
- <argument index="1" name="body" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_area">
- <argument index="0" name="query" type="RID">
- </argument>
- <argument index="1" name="area" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_intersection">
- <argument index="0" name="query" type="RID">
- </argument>
- <argument index="1" name="space" type="RID">
- </argument>
- <argument index="2" name="exclude" type="Array" default="Array()">
- </argument>
- <argument index="3" name="usermask" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_intersection_ray">
- <argument index="0" name="query" type="RID">
- </argument>
- <argument index="1" name="origin" type="Vector3">
- </argument>
- <argument index="2" name="dir" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_intersection_segment">
- <argument index="0" name="query" type="RID">
- </argument>
- <argument index="1" name="from" type="Vector3">
- </argument>
- <argument index="2" name="to" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_intersection_shape">
- <argument index="0" name="query" type="RID">
- </argument>
- <argument index="1" name="shape" type="RID">
- </argument>
- <argument index="2" name="arg2" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_intersection_bounds">
- <argument index="0" name="query" type="RID">
- </argument>
- <argument index="1" name="bounds" type="Dictionary">
- </argument>
- <argument index="2" name="arg2" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_clear">
- <argument index="0" name="query" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_get_type" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="query" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_get_target" qualifiers="const">
- <return type="RID">
- </return>
- <argument index="0" name="query" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="free">
- <argument index="0" name="rid" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_active">
- <argument index="0" name="active" type="bool">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="SHAPE_PLANE" value="0">
- </constant>
- <constant name="SHAPE_SPHERE" value="2">
- </constant>
- <constant name="SHAPE_BOX" value="3">
- </constant>
- <constant name="SHAPE_CAPSULE" value="4">
- </constant>
- <constant name="SHAPE_CONVEX_POLYGON" value="5">
- </constant>
- <constant name="SHAPE_CONCAVE_POLYGON" value="6">
- </constant>
- <constant name="SHAPE_HEIGHTMAP" value="7">
- </constant>
- <constant name="SHAPE_CUSTOM" value="8">
- </constant>
- <constant name="AREA_PARAM_OVERRIDE_PARAMS" value="0">
- </constant>
- <constant name="AREA_PARAM_GRAVITY" value="1">
- </constant>
- <constant name="AREA_PARAM_GRAVITY_VECTOR" value="2">
- </constant>
- <constant name="AREA_PARAM_GRAVITY_IS_POINT" value="3">
- </constant>
- <constant name="AREA_PARAM_GRAVITY_POINT_ATTENUATION" value="4">
- </constant>
- <constant name="AREA_PARAM_DENSITY" value="5">
- </constant>
- <constant name="AREA_PARAM_PRIORITY" value="6">
- </constant>
- <constant name="BODY_MODE_STATIC" value="0">
- </constant>
- <constant name="BODY_MODE_RIGID" value="1">
- </constant>
- <constant name="BODY_MODE_CHARACTER" value="2">
- </constant>
- <constant name="BODY_PARAM_BOUNCE" value="0">
- </constant>
- <constant name="BODY_PARAM_FRICTION" value="1">
- </constant>
- <constant name="BODY_PARAM_MASS" value="2">
- </constant>
- <constant name="BODY_STATE_TRANSFORM" value="0">
- </constant>
- <constant name="BODY_STATE_LINEAR_VELOCITY" value="1">
- </constant>
- <constant name="BODY_STATE_ANGULAR_VELOCITY" value="2">
- </constant>
- <constant name="BODY_STATE_SLEEPING" value="3">
- </constant>
- <constant name="HINGE_VAR_ANGULAR_ONLY" value="0">
- </constant>
- <constant name="HINGE_VAR_LOWER_LIMIT" value="1">
- </constant>
- <constant name="HINGE_VAR_HIGHER_LIMIT" value="2">
- </constant>
- <constant name="HINGE_VAR_LIMIT_SOFTNESS" value="3">
- </constant>
- <constant name="HINGE_VAR_RELAXATION" value="4">
- </constant>
- <constant name="HINGE_VAR_MOTOR_ENABLED" value="5">
- </constant>
- <constant name="HINGE_VAR_MOTOR_TARGET_VELOCITY" value="6">
- </constant>
- <constant name="HINGE_VAR_MOTOR_IMPULSE" value="7">
- </constant>
- <constant name="CONE_TWIST_VAR_SWING_SPAN_LIMIT_1" value="0">
- </constant>
- <constant name="CONE_TWIST_VAR_SWING_SPAN_LIMIT_2" value="1">
- </constant>
- <constant name="CONE_TWIST_VAR_TWIST_SPAN_LIMIT" value="2">
- </constant>
- <constant name="CONE_TWIST_VAR_BIAS" value="3">
- </constant>
- <constant name="CONE_TWIST_VAR_RELAXATION" value="4">
- </constant>
- <constant name="TYPE_BODY" value="0">
- </constant>
- <constant name="TYPE_AREA" value="1">
- </constant>
- <constant name="QUERY_NONE" value="0">
- </constant>
- <constant name="QUERY_BODY_STATE" value="1">
- </constant>
- <constant name="QUERY_BODY_DIRECT_STATE" value="2">
- </constant>
- <constant name="QUERY_AREA_MONITOR" value="3">
- </constant>
- <constant name="QUERY_INTERSECTION" value="4">
- </constant>
- </constants>
-</class>
-<class name="PhysicsServerSW" inherits="PhysicsServer" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="PinJoint2D" inherits="Joint2D" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="PlaneShape" inherits="Shape" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_plane">
- <argument index="0" name="plane" type="Plane">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_plane" qualifiers="const">
- <return type="Plane">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Popup" inherits="Control" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="popup_centered">
- <argument index="0" name="size" type="Vector2" default="Vector2(0,0)">
- </argument>
- <description>
- </description>
- </method>
- <method name="popup_centered_ratio">
- <argument index="0" name="ratio" type="real" default="0.75">
- </argument>
- <description>
- </description>
- </method>
- <method name="popup_centered_minsize">
- <argument index="0" name="minsize" type="Vector2" default="Vector2(0,0)">
- </argument>
- <description>
- </description>
- </method>
- <method name="popup">
- <description>
- </description>
- </method>
- <method name="set_exclusive">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_exclusive" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="about_to_show">
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- <constant name="NOTIFICATION_POST_POPUP" value="80">
- </constant>
- </constants>
-</class>
-<class name="PopupDialog" inherits="Popup" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="PopupMenu" inherits="Popup" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="add_icon_item">
- <argument index="0" name="texture" type="Object">
- </argument>
- <argument index="1" name="label" type="String">
- </argument>
- <argument index="2" name="id" type="int" default="-1">
- </argument>
- <argument index="3" name="accel" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_item">
- <argument index="0" name="label" type="String">
- </argument>
- <argument index="1" name="id" type="int" default="-1">
- </argument>
- <argument index="2" name="accel" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_icon_check_item">
- <argument index="0" name="texture" type="Object">
- </argument>
- <argument index="1" name="label" type="String">
- </argument>
- <argument index="2" name="id" type="int" default="-1">
- </argument>
- <argument index="3" name="accel" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_check_item">
- <argument index="0" name="label" type="String">
- </argument>
- <argument index="1" name="id" type="int" default="-1">
- </argument>
- <argument index="2" name="accel" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_submenu_item">
- <argument index="0" name="label" type="String">
- </argument>
- <argument index="1" name="submenu" type="int">
- </argument>
- <argument index="2" name="id" type="int" default="-1">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_item_text">
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="text" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_item_icon">
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="icon" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_item_accelerator">
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="accel" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_item_metadata">
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="metadata" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_item_checked">
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="arg1" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_item_disabled">
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="disabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_item_submenu">
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="submenu" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_item_as_separator">
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_item_as_checkable">
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_item_ID">
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_item_text" qualifiers="const">
- <return type="String">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_item_icon" qualifiers="const">
- <return type="Object">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_item_metadata" qualifiers="const">
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_item_accelerator" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_item_submenu" qualifiers="const">
- <return type="String">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_item_separator" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_item_checkable" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_item_checked" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_item_disabled" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_item_ID" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_item_index" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_item_count" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="add_separator">
- <description>
- </description>
- </method>
- <method name="remove_item">
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear">
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="item_pressed">
- <argument index="0" name="ID" type="int">
- </argument>
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- </constants>
-</class>
-<class name="PopupPanel" inherits="Popup" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Portal" inherits="VisualInstance" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_shape">
- <argument index="0" name="points" type="Vector2Array">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_shape" qualifiers="const">
- <return type="Vector2Array">
- </return>
- <description>
- </description>
- </method>
- <method name="set_enabled">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_enabled" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_disable_distance">
- <argument index="0" name="distance" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_disable_distance" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_disabled_color">
- <argument index="0" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_disabled_color" qualifiers="const">
- <return type="Color">
- </return>
- <description>
- </description>
- </method>
- <method name="set_connect_range">
- <argument index="0" name="range" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_connect_range" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Position2D" inherits="Node2D" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Position3D" inherits="Spatial" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="ProximityGroup" inherits="Spatial" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_group_name">
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="broadcast">
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="parameters" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_dispatch_mode">
- <argument index="0" name="mode" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_grid_radius">
- <argument index="0" name="radius" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_grid_radius" qualifiers="const">
- <return type="Vector3">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="broadcast">
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="parameters" type="Array">
- </argument>
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- </constants>
-</class>
-<class name="ProximityGroup2D" inherits="Node2D" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_group_size">
- <argument index="0" name="size" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_group_size" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_group_notifym">
- <argument index="0" name="notify" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_group_notify" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="grouped">
- <argument index="0" name="pgroup" type="Object">
- </argument>
- <description>
- </description>
- </signal>
- <signal name="ungrouped">
- <argument index="0" name="pgroup" type="Object">
- </argument>
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- </constants>
-</class>
-<class name="Range" inherits="Control" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="get_val" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_value" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_min" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_max" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_step" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_page" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_unit_value" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_rounded_values" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_val">
- <argument index="0" name="value" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_value">
- <argument index="0" name="value" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_min">
- <argument index="0" name="minimum" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_max">
- <argument index="0" name="maximum" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_step">
- <argument index="0" name="step" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_page">
- <argument index="0" name="pagesize" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_unit_value">
- <argument index="0" name="value" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_rounded_values">
- <argument index="0" name="arg0" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_exp_unit_value">
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_unit_value_exp" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="share">
- <argument index="0" name="with" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="unshare">
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="value_changed">
- <argument index="0" name="value" type="real">
- </argument>
- <description>
- </description>
- </signal>
- <signal name="changed">
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- </constants>
-</class>
-<class name="RayShape" inherits="Shape" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_length">
- <argument index="0" name="length" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_length" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="RectangleShape2D" inherits="Shape2D" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_extents">
- <argument index="0" name="extents" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_extents" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Reference" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="init_ref">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="reference">
- <description>
- </description>
- </method>
- <method name="unreference">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="ReferenceFrame" inherits="Control" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Resource" inherits="Reference" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_path">
- <argument index="0" name="path" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_path" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="set_name">
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_name" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="get_rid" qualifiers="const">
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="changed">
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- </constants>
-</class>
-<class name="_ResourceLoader" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="load">
- <return type="Resource">
- </return>
- <argument index="0" name="path" type="String">
- </argument>
- <argument index="1" name="type_hint" type="String" default="&quot;&quot;">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_recognized_extensions_for_type">
- <return type="StringArray">
- </return>
- <argument index="0" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="ResourcePreloader" inherits="Node" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="add_resource">
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="resource" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="remove_resource">
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="rename_resource">
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="newname" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_resource" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_resource" qualifiers="const">
- <return type="Object">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_resource_list" qualifiers="const">
- <return type="StringArray">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="_ResourceSaver" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="save">
- <return type="int">
- </return>
- <argument index="0" name="path" type="String">
- </argument>
- <argument index="1" name="resource" type="Resource">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_recognized_extensions">
- <return type="StringArray">
- </return>
- <argument index="0" name="type" type="Object">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="RichTextLabel" inherits="Control" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="add_text">
- <argument index="0" name="text" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_image">
- <argument index="0" name="image" type="Texture">
- </argument>
- <description>
- </description>
- </method>
- <method name="newline">
- <description>
- </description>
- </method>
- <method name="push_font">
- <argument index="0" name="font" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="push_color">
- <argument index="0" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="push_align">
- <argument index="0" name="align" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="push_indent">
- <argument index="0" name="level" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="push_list">
- <argument index="0" name="type" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="push_meta">
- <argument index="0" name="data" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="push_underline">
- <description>
- </description>
- </method>
- <method name="pop">
- <description>
- </description>
- </method>
- <method name="clear">
- <description>
- </description>
- </method>
- <method name="set_meta_underline">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_meta_underlined" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_scroll_active">
- <argument index="0" name="active" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_scroll_active" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_scroll_follow">
- <argument index="0" name="follow" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_scroll_following" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_tab_size">
- <argument index="0" name="spaces" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_tab_size" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="meta_clicked">
- <argument index="0" name="meta" type="Nil">
- </argument>
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- <constant name="ALIGN_LEFT" value="0">
- </constant>
- <constant name="ALIGN_CENTER" value="1">
- </constant>
- <constant name="ALIGN_RIGHT" value="2">
- </constant>
- <constant name="ALIGN_FILL" value="3">
- </constant>
- <constant name="LIST_NUMBERS" value="0">
- </constant>
- <constant name="LIST_LETTERS" value="1">
- </constant>
- <constant name="LIST_DOTS" value="2">
- </constant>
- <constant name="ITEM_MAIN" value="0">
- </constant>
- <constant name="ITEM_TEXT" value="1">
- </constant>
- <constant name="ITEM_IMAGE" value="2">
- </constant>
- <constant name="ITEM_NEWLINE" value="3">
- </constant>
- <constant name="ITEM_FONT" value="4">
- </constant>
- <constant name="ITEM_COLOR" value="5">
- </constant>
- <constant name="ITEM_UNDERLINE" value="6">
- </constant>
- <constant name="ITEM_ALIGN" value="7">
- </constant>
- <constant name="ITEM_INDENT" value="8">
- </constant>
- <constant name="ITEM_LIST" value="9">
- </constant>
- <constant name="ITEM_META" value="10">
- </constant>
- </constants>
-</class>
-<class name="RigidBody2D" inherits="PhysicsBody2D" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_mode">
- <argument index="0" name="mode" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_mode" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_mass">
- <argument index="0" name="mass" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_mass" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_weight">
- <argument index="0" name="weight" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_weight" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_friction">
- <argument index="0" name="friction" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_friction" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_bounce">
- <argument index="0" name="bounce" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_bounce" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_linear_velocity">
- <argument index="0" name="linear_velocity" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_linear_velocity" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="set_angular_velocity">
- <argument index="0" name="angular_velocity" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_angular_velocity" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_max_contacts_reported">
- <argument index="0" name="amount" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_max_contacts_reported" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_use_custom_integrator">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_using_custom_integrator">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_contact_monitor">
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_contact_monitor_enabled" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_use_continuous_collision_detection">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_using_continuous_collision_detection" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_axis_velocity">
- <argument index="0" name="axis_velocity" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="apply_impulse">
- <argument index="0" name="pos" type="Vector2">
- </argument>
- <argument index="1" name="impulse" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_active">
- <argument index="0" name="active" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_active" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="body_enter">
- <argument index="0" name="body_id" type="int">
- </argument>
- <argument index="1" name="body" type="Object">
- </argument>
- <description>
- </description>
- </signal>
- <signal name="body_enter_shape">
- <argument index="0" name="body_id" type="int">
- </argument>
- <argument index="1" name="body" type="Object">
- </argument>
- <argument index="2" name="body_shape" type="int">
- </argument>
- <argument index="3" name="local_shape" type="int">
- </argument>
- <description>
- </description>
- </signal>
- <signal name="body_exit">
- <argument index="0" name="body_id" type="int">
- </argument>
- <argument index="1" name="body" type="Object">
- </argument>
- <description>
- </description>
- </signal>
- <signal name="body_exit_shape">
- <argument index="0" name="body_id" type="int">
- </argument>
- <argument index="1" name="body" type="Object">
- </argument>
- <argument index="2" name="body_shape" type="int">
- </argument>
- <argument index="3" name="local_shape" type="int">
- </argument>
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- <constant name="MODE_STATIC" value="1">
- </constant>
- <constant name="MODE_RIGID" value="0">
- </constant>
- <constant name="MODE_CHARACTER" value="2">
- </constant>
- </constants>
-</class>
-<class name="Room" inherits="Resource" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_bounds">
- <argument index="0" name="bsp_tree" type="Dictionary">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_bounds" qualifiers="const">
- <return type="Dictionary">
- </return>
- <description>
- </description>
- </method>
- <method name="set_geometry_hint">
- <argument index="0" name="triangles" type="Vector3Array">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_geometry_hint" qualifiers="const">
- <return type="Vector3Array">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="RoomInstance" inherits="VisualInstance" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_room">
- <argument index="0" name="room" type="Room">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_room" qualifiers="const">
- <return type="Room">
- </return>
- <description>
- </description>
- </method>
- <method name="compute_room_from_subtree">
- <description>
- </description>
- </method>
- <method name="set_simulate_acoustics">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_simulating_acoustics" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="SSAOFX" inherits="ScenarioFX" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Sample" inherits="Resource" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="create">
- <argument index="0" name="format" type="int">
- </argument>
- <argument index="1" name="stereo" type="bool">
- </argument>
- <argument index="2" name="length" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_format" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="is_stereo" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="get_length" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_data">
- <argument index="0" name="data" type="RawArray">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_data" qualifiers="const">
- <return type="RawArray">
- </return>
- <description>
- </description>
- </method>
- <method name="set_mix_rate">
- <argument index="0" name="hz" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_mix_rate" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_loop_format">
- <argument index="0" name="format" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_loop_format" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_loop_begin">
- <argument index="0" name="pos" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_loop_begin" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_loop_end">
- <argument index="0" name="pos" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_loop_end" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="FORMAT_PCM8" value="0">
- </constant>
- <constant name="FORMAT_PCM16" value="1">
- </constant>
- <constant name="FORMAT_IMA_ADPCM" value="2">
- </constant>
- <constant name="LOOP_NONE" value="0">
- </constant>
- <constant name="LOOP_FORWARD" value="1">
- </constant>
- <constant name="LOOP_PING_PONG" value="2">
- </constant>
- </constants>
-</class>
-<class name="SampleLibrary" inherits="Resource" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="add_sample">
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="sample" type="Sample">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_sample" qualifiers="const">
- <return type="Sample">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_sample" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="remove_sample">
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="SamplePlayer" inherits="Node" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_sample_library">
- <argument index="0" name="library" type="SampleLibrary">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_sample_library" qualifiers="const">
- <return type="SampleLibrary">
- </return>
- <description>
- </description>
- </method>
- <method name="set_voice_count">
- <argument index="0" name="max_voices" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_voice_count" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="play">
- <return type="int">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="unique" type="bool" default="false">
- </argument>
- <description>
- </description>
- </method>
- <method name="stop">
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="stop_all">
- <description>
- </description>
- </method>
- <method name="set_mix_rate">
- <argument index="0" name="voice" type="int">
- </argument>
- <argument index="1" name="hz" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_pitch_scale">
- <argument index="0" name="voice" type="int">
- </argument>
- <argument index="1" name="ratio" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_volume">
- <argument index="0" name="voice" type="int">
- </argument>
- <argument index="1" name="nrg" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_volume_db">
- <argument index="0" name="voice" type="int">
- </argument>
- <argument index="1" name="nrg" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_pan">
- <argument index="0" name="voice" type="int">
- </argument>
- <argument index="1" name="pan" type="real">
- </argument>
- <argument index="2" name="depth" type="real" default="0">
- </argument>
- <argument index="3" name="height" type="real" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_filter">
- <argument index="0" name="voice" type="int">
- </argument>
- <argument index="1" name="type" type="int">
- </argument>
- <argument index="2" name="cutoff_hz" type="real">
- </argument>
- <argument index="3" name="resonance" type="real">
- </argument>
- <argument index="4" name="gain" type="real" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_chorus">
- <argument index="0" name="voice" type="int">
- </argument>
- <argument index="1" name="send" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_reverb">
- <argument index="0" name="voice" type="int">
- </argument>
- <argument index="1" name="room_type" type="int">
- </argument>
- <argument index="2" name="send" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_mix_rate" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_pitch_scale" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_volume" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_volume_db" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_pan" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_pan_depth" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_pan_height" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_filter_type" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_filter_cutoff" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_filter_resonance" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_filter_gain" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_chorus" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_reverb_room" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_reverb" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_default_pitch_scale">
- <argument index="0" name="ratio" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_default_volume">
- <argument index="0" name="nrg" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_default_volume_db">
- <argument index="0" name="db" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_default_pan">
- <argument index="0" name="pan" type="real">
- </argument>
- <argument index="1" name="depth" type="real" default="0">
- </argument>
- <argument index="2" name="height" type="real" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_default_filter">
- <argument index="0" name="type" type="int">
- </argument>
- <argument index="1" name="cutoff_hz" type="real">
- </argument>
- <argument index="2" name="resonance" type="real">
- </argument>
- <argument index="3" name="gain" type="real" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_default_chorus">
- <argument index="0" name="send" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_default_reverb">
- <argument index="0" name="room_type" type="int">
- </argument>
- <argument index="1" name="send" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_default_pitch_scale" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_default_volume" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_default_volume_db" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_default_pan" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_default_pan_depth" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_default_pan_height" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_default_filter_type" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_default_filter_cutoff" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_default_filter_resonance" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_default_filter_gain" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_default_chorus" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_default_reverb_room" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_default_reverb" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="is_active" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="is_voice_active" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="FILTER_NONE" value="0">
- </constant>
- <constant name="FILTER_LOWPASS" value="1">
- </constant>
- <constant name="FILTER_BANDPASS" value="2">
- </constant>
- <constant name="FILTER_HIPASS" value="3">
- </constant>
- <constant name="FILTER_NOTCH" value="4">
- </constant>
- <constant name="FILTER_PEAK" value="5">
- </constant>
- <constant name="FILTER_BANDLIMIT" value="6">
- </constant>
- <constant name="FILTER_LOW_SHELF" value="7">
- </constant>
- <constant name="FILTER_HIGH_SHELF" value="8">
- </constant>
- <constant name="REVERB_SMALL" value="0">
- </constant>
- <constant name="REVERB_MEDIUM" value="1">
- </constant>
- <constant name="REVERB_LARGE" value="2">
- </constant>
- <constant name="REVERB_HALL" value="3">
- </constant>
- </constants>
-</class>
-<class name="ScenarioFX" inherits="Node" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="SceneIO" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="load">
- <return type="Object">
- </return>
- <argument index="0" name="path" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="save">
- <return type="int">
- </return>
- <argument index="0" name="path" type="String">
- </argument>
- <argument index="1" name="scene" type="Object">
- </argument>
- <argument index="2" name="flags" type="int" default="0">
- </argument>
- <argument index="3" name="optimizer" type="Object" default="Object()">
- </argument>
- <description>
- </description>
- </method>
- <method name="load_interactive">
- <return type="SceneInteractiveLoader">
- </return>
- <argument index="0" name="path" type="String">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="SceneMainLoop" inherits="MainLoop" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="get_default_world" qualifiers="const">
- <return type="World">
- </return>
- <description>
- </description>
- </method>
- <method name="get_default_viewport" qualifiers="const">
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="get_default_viewport_size" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="get_default_canvas" qualifiers="const">
- <return type="Canvas">
- </return>
- <description>
- </description>
- </method>
- <method name="get_default_space_2d" qualifiers="const">
- <return type="Space2D">
- </return>
- <description>
- </description>
- </method>
- <method name="notify_group">
- <argument index="0" name="call_flags" type="int">
- </argument>
- <argument index="1" name="group" type="String">
- </argument>
- <argument index="2" name="notification" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_group">
- <argument index="0" name="call_flags" type="int">
- </argument>
- <argument index="1" name="group" type="String">
- </argument>
- <argument index="2" name="property" type="String">
- </argument>
- <argument index="3" name="value" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_root_node">
- <return type="Node">
- </return>
- <description>
- </description>
- </method>
- <method name="set_root_node">
- <argument index="0" name="node" type="Node">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_auto_accept_quit">
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_editor_hint">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_editor_hint" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_pause">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_paused" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_input_as_handled">
- <description>
- </description>
- </method>
- <method name="get_frame" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="quit">
- <description>
- </description>
- </method>
- <method name="call_group">
- <argument index="0" name="flags" type="int">
- </argument>
- <argument index="1" name="group" type="String">
- </argument>
- <argument index="2" name="method" type="String">
- </argument>
- <argument index="3" name="arg0" type="var" default="NULL">
- </argument>
- <argument index="4" name="arg1" type="var" default="NULL">
- </argument>
- <argument index="5" name="arg2" type="var" default="NULL">
- </argument>
- <argument index="6" name="arg3" type="var" default="NULL">
- </argument>
- <argument index="7" name="arg4" type="var" default="NULL">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="screen_resized">
- <description>
- </description>
- </signal>
- <signal name="node_removed">
- <argument index="0" name="node" type="Object">
- </argument>
- <description>
- </description>
- </signal>
- <signal name="tree_changed">
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- <constant name="GROUP_CALL_DEFAULT" value="0">
- </constant>
- <constant name="GROUP_CALL_REVERSE" value="1">
- </constant>
- <constant name="GROUP_CALL_REALTIME" value="2">
- </constant>
- <constant name="GROUP_CALL_UNIQUE" value="4">
- </constant>
- </constants>
-</class>
-<class name="ScenePreloader" inherits="Resource" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="load_scene">
- <return type="int">
- </return>
- <argument index="0" name="path" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_scene_path" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="instance" qualifiers="const">
- <return type="Node">
- </return>
- <description>
- </description>
- </method>
- <method name="can_instance" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="ScreenProximity2D" inherits="ProximityGroup2D" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="enter_screen">
- <description>
- </description>
- </method>
- <method name="exit_screen">
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="enter_screen">
- <description>
- </description>
- </signal>
- <signal name="exit_screen">
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- </constants>
-</class>
-<class name="Script" inherits="Resource" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="can_instance" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="instance_has" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="base_object" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_source_code" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="get_source_code" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="set_source_code">
- <argument index="0" name="source" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="reload">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="ScrollBar" inherits="Range" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_custom_step">
- <argument index="0" name="step" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_custom_step" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="SegmentShape2D" inherits="Shape2D" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_a">
- <argument index="0" name="a" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_a" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="set_b">
- <argument index="0" name="b" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_b" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Separator" inherits="Control" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Shader" inherits="Resource" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_mode">
- <argument index="0" name="mode" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_mode" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_vertex_code">
- <argument index="0" name="code" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_vertex_code" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="set_fragment_code">
- <argument index="0" name="code" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_fragment_code" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="set_use_world_transform">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_using_world_transform" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_param">
- <argument index="0" name="param" type="String">
- </argument>
- <argument index="1" name="value" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_param" qualifiers="const">
- <argument index="0" name="param" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_param_list" qualifiers="const">
- <return type="StringArray">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="MODE_MATERIAL" value="0">
- </constant>
- <constant name="MODE_POST_PROCESS" value="1">
- </constant>
- </constants>
-</class>
-<class name="ShaderMaterial" inherits="Material" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_shader">
- <argument index="0" name="shader" type="Shader">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_shader" qualifiers="const">
- <return type="Shader">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Shape" inherits="Resource" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Shape2D" inherits="Resource" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Skeleton" inherits="Spatial" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="add_bone">
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="find_bone" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_bone_name" qualifiers="const">
- <return type="String">
- </return>
- <argument index="0" name="bone_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_bone_parent" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="bone_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_bone_parent">
- <argument index="0" name="bone_idx" type="int">
- </argument>
- <argument index="1" name="parent_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_bone_count" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_bone_rest" qualifiers="const">
- <return type="Transform">
- </return>
- <argument index="0" name="bone_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_bone_rest">
- <argument index="0" name="bone_idx" type="int">
- </argument>
- <argument index="1" name="rest" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="bind_child_node_to_bone">
- <argument index="0" name="bone_idx" type="int">
- </argument>
- <argument index="1" name="node" type="Node">
- </argument>
- <description>
- </description>
- </method>
- <method name="unbind_child_node_from_bone">
- <argument index="0" name="bone_idx" type="int">
- </argument>
- <argument index="1" name="node" type="Node">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_bound_child_nodes_to_bone" qualifiers="const">
- <return type="Array">
- </return>
- <argument index="0" name="bone_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear_bones">
- <description>
- </description>
- </method>
- <method name="get_bone_pose" qualifiers="const">
- <return type="Transform">
- </return>
- <argument index="0" name="bone_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_bone_pose">
- <argument index="0" name="bone_idx" type="int">
- </argument>
- <argument index="1" name="pose" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_bone_custom_pose" qualifiers="const">
- <return type="Transform">
- </return>
- <argument index="0" name="bone_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_bone_custom_pose">
- <argument index="0" name="bone_idx" type="int">
- </argument>
- <argument index="1" name="custom_pose" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_bone_transform" qualifiers="const">
- <return type="Transform">
- </return>
- <argument index="0" name="bone_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="NOTIFICATION_UPDATE_SKELETON" value="50">
- </constant>
- </constants>
-</class>
-<class name="SkyBoxFX" inherits="ScenarioFX" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Slider" inherits="Range" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_ticks">
- <argument index="0" name="count" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_ticks" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_ticks_on_borders" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_ticks_on_borders">
- <argument index="0" name="ticks_on_border" type="bool">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="SoundRoomParams" inherits="Node" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_param">
- <argument index="0" name="param" type="int">
- </argument>
- <argument index="1" name="value" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_param" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="param" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_reverb_mode">
- <argument index="0" name="reverb_mode" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_reverb_mode" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_force_params_to_all_sources">
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_forcing_params_to_all_sources">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Spatial" inherits="Node" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_transform">
- <argument index="0" name="local" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_transform" qualifiers="const">
- <return type="Transform">
- </return>
- <description>
- </description>
- </method>
- <method name="set_global_transform">
- <argument index="0" name="global" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_global_transform" qualifiers="const">
- <return type="Transform">
- </return>
- <description>
- </description>
- </method>
- <method name="get_parent_spatial" qualifiers="const">
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="update_gizmo">
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="NOTIFICATION_UPDATE_GIZMO" value="43">
- </constant>
- <constant name="NOTIFICATION_TRANSFORM_CHANGED" value="40">
- </constant>
- <constant name="NOTIFICATION_SCENARIO_CHANGED" value="41">
- </constant>
- </constants>
-</class>
-<class name="SpatialPlayer" inherits="Spatial" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_param">
- <argument index="0" name="param" type="int">
- </argument>
- <argument index="1" name="value" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_param" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="param" type="int">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="PARAM_VOLUME_DB" value="0">
- </constant>
- <constant name="PARAM_PITCH_SCALE" value="1">
- </constant>
- <constant name="PARAM_ATTENUATION_MIN_DISTANCE" value="2">
- </constant>
- <constant name="PARAM_ATTENUATION_MAX_DISTANCE" value="3">
- </constant>
- <constant name="PARAM_ATTENUATION_DISTANCE_EXP" value="4">
- </constant>
- <constant name="PARAM_EMISSION_CONE_DEGREES" value="5">
- </constant>
- <constant name="PARAM_EMISSION_CONE_ATTENUATION_DB" value="6">
- </constant>
- <constant name="PARAM_MAX" value="7">
- </constant>
- </constants>
-</class>
-<class name="SpatialSamplePlayer" inherits="SpatialPlayer" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_sample_library">
- <argument index="0" name="library" type="SampleLibrary">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_sample_library" qualifiers="const">
- <return type="SampleLibrary">
- </return>
- <description>
- </description>
- </method>
- <method name="set_polyphony">
- <argument index="0" name="voices" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_polyphony" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="play">
- <return type="int">
- </return>
- <argument index="0" name="sample" type="String">
- </argument>
- <argument index="1" name="voice" type="int" default="-2">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_set_pitch_scale">
- <argument index="0" name="voice" type="int">
- </argument>
- <argument index="1" name="ratio" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_set_volume_scale_db">
- <argument index="0" name="voice" type="int">
- </argument>
- <argument index="1" name="db" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_voice_active" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="stop_voice">
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="stop_all">
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="INVALID_VOICE" value="-1">
- </constant>
- <constant name="NEXT_VOICE" value="-2">
- </constant>
- </constants>
-</class>
-<class name="SpatialSoundServer" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="SpatialSoundServerSW" inherits="SpatialSoundServer" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="SpatialStreamPlayer" inherits="SpatialPlayer" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_stream">
- <argument index="0" name="stream" type="Stream">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_stream" qualifiers="const">
- <return type="Stream">
- </return>
- <description>
- </description>
- </method>
- <method name="play">
- <description>
- </description>
- </method>
- <method name="stop">
- <description>
- </description>
- </method>
- <method name="is_playing" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_loop">
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_loop" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="get_stream_name" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="get_loop_count" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_pos" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="seek_pos">
- <argument index="0" name="time" type="real">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="SphereShape" inherits="Shape" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_radius">
- <argument index="0" name="radius" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_radius" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="SpinBox" inherits="Range" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_suffix">
- <argument index="0" name="suffix" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_suffix" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="set_prefix">
- <argument index="0" name="prefix" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_prefix" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="set_editable">
- <argument index="0" name="editable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_editable" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="SpotLight" inherits="Light" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Sprite" inherits="Node2D" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_texture">
- <argument index="0" name="texture" type="Texture">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_texture" qualifiers="const">
- <return type="Texture">
- </return>
- <description>
- </description>
- </method>
- <method name="set_centered">
- <argument index="0" name="centered" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_centered" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_flip_h">
- <argument index="0" name="flip_h" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_flipped_h" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_flip_v">
- <argument index="0" name="flip_v" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_flipped_v" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_region">
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_region" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_region_rect">
- <argument index="0" name="rect" type="Rect2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_region_rect" qualifiers="const">
- <return type="Rect2">
- </return>
- <description>
- </description>
- </method>
- <method name="set_frame">
- <argument index="0" name="frame" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_frame" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_vframes">
- <argument index="0" name="vframes" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_vframes" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_hframes">
- <argument index="0" name="hframes" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_hframes" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_modulate">
- <argument index="0" name="modulate" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_modulate" qualifiers="const">
- <return type="Color">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="SquirrelScript" inherits="Script" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="StaticBody" inherits="PhysicsBody" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_simulated_motion">
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_simulating_motion" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="simulate_motion">
- <argument index="0" name="new_transform" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="create_shapes_from_child_meshes">
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="StaticBody2D" inherits="PhysicsBody2D" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_simulate_motion">
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_simulating_motion" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_constant_linear_velocity">
- <argument index="0" name="vel" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_constant_angular_velocity">
- <argument index="0" name="vel" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_constant_linear_velocity" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="get_constant_angular_velocity" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="StreamPeer" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="put_data">
- <return type="int">
- </return>
- <argument index="0" name="data" type="RawArray">
- </argument>
- <description>
- </description>
- </method>
- <method name="put_partial_data">
- <return type="Array">
- </return>
- <argument index="0" name="data" type="RawArray">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_data">
- <return type="Array">
- </return>
- <argument index="0" name="bytes" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_partial_data">
- <return type="Array">
- </return>
- <argument index="0" name="bytes" type="int">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="StreamPeerTCP" inherits="StreamPeer" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="connect">
- <return type="int">
- </return>
- <argument index="0" name="host" type="String">
- </argument>
- <argument index="1" name="ip" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_connected" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="get_connected_host" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="get_connected_port" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="disconnect">
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="StreamPlayer" inherits="Node" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_stream">
- <argument index="0" name="stream" type="Stream">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_stream" qualifiers="const">
- <return type="Stream">
- </return>
- <description>
- </description>
- </method>
- <method name="play">
- <description>
- </description>
- </method>
- <method name="stop">
- <description>
- </description>
- </method>
- <method name="is_playing" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_paused">
- <argument index="0" name="paused" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_paused" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_loop">
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_loop" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_volume">
- <argument index="0" name="volume" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_volume" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_volume_db">
- <argument index="0" name="db" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_volume_db" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_stream_name" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="get_loop_count" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_pos" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="seek_pos">
- <argument index="0" name="time" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_autoplay">
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_autoplay" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="get_length" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="StyleBox" inherits="Resource" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="test_mask" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="point" type="Vector2">
- </argument>
- <argument index="1" name="rect" type="Rect2">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_default_margin">
- <argument index="0" name="margin" type="int">
- </argument>
- <argument index="1" name="offset" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_default_margin" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="margin" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_margin" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="margin" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_minimum_size" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="get_center_size" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="get_offset" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="draw" qualifiers="const">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Rect2">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="StyleBoxEmpty" inherits="StyleBox" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="StyleBoxFlat" inherits="StyleBox" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_bg_color">
- <argument index="0" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_bg_color" qualifiers="const">
- <return type="Color">
- </return>
- <description>
- </description>
- </method>
- <method name="set_light_color">
- <argument index="0" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_light_color" qualifiers="const">
- <return type="Color">
- </return>
- <description>
- </description>
- </method>
- <method name="set_dark_color">
- <argument index="0" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_dark_color" qualifiers="const">
- <return type="Color">
- </return>
- <description>
- </description>
- </method>
- <method name="set_border_size">
- <argument index="0" name="size" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_border_size" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_border_blend">
- <argument index="0" name="blend" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_border_blend" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_draw_center">
- <argument index="0" name="size" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_draw_center" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="StyleBoxImageMask" inherits="StyleBox" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_image">
- <argument index="0" name="image" type="Image">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_image" qualifiers="const">
- <return type="Image">
- </return>
- <description>
- </description>
- </method>
- <method name="set_expand">
- <argument index="0" name="expand" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_expand" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_expand_margin_size">
- <argument index="0" name="margin" type="int">
- </argument>
- <argument index="1" name="size" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_expand_margin_size" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="arg0" type="int">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="StyleBoxTexture" inherits="StyleBox" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_texture">
- <argument index="0" name="texture" type="Texture">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_texture" qualifiers="const">
- <return type="Texture">
- </return>
- <description>
- </description>
- </method>
- <method name="set_margin_size">
- <argument index="0" name="margin" type="int">
- </argument>
- <argument index="1" name="size" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_margin_size" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="arg0" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_expand_margin_size">
- <argument index="0" name="margin" type="int">
- </argument>
- <argument index="1" name="size" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_expand_margin_size" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="arg0" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_draw_center">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_draw_center" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="SurfaceTool" inherits="Reference" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="begin">
- <argument index="0" name="primitive" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_vertex">
- <argument index="0" name="vertex" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_color">
- <argument index="0" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_normal">
- <argument index="0" name="normal" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_tangent">
- <argument index="0" name="tangent" type="Plane">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_uv">
- <argument index="0" name="uv" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_uv2">
- <argument index="0" name="uv2" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_bones">
- <argument index="0" name="bones" type="IntArray">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_weights">
- <argument index="0" name="weights" type="RealArray">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_material">
- <argument index="0" name="material" type="Material">
- </argument>
- <description>
- </description>
- </method>
- <method name="index">
- <description>
- </description>
- </method>
- <method name="deindex">
- <description>
- </description>
- </method>
- <method name="generate_flat_normals">
- <description>
- </description>
- </method>
- <method name="generate_smooth_normals">
- <description>
- </description>
- </method>
- <method name="generate_tangents">
- <description>
- </description>
- </method>
- <method name="commit">
- <return type="Mesh">
- </return>
- <argument index="0" name="existing" type="Mesh" default="Object()">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear">
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="TCP_Server" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="listen">
- <return type="int">
- </return>
- <argument index="0" name="port" type="int">
- </argument>
- <argument index="1" name="accepted_hosts" type="StringArray" default="StringArray()">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_connection_available" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="take_connection">
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="stop">
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="TabContainer" inherits="Control" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="get_tab_count" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_current_tab">
- <argument index="0" name="tab_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_current_tab" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_tab_align">
- <argument index="0" name="align" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_tab_align" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_tabs_visible">
- <argument index="0" name="visible" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="are_tabs_visible" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_tab_title">
- <argument index="0" name="tab_idx" type="int">
- </argument>
- <argument index="1" name="title" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_tab_title" qualifiers="const">
- <return type="String">
- </return>
- <argument index="0" name="tab_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_tab_icon">
- <argument index="0" name="tab_idx" type="int">
- </argument>
- <argument index="1" name="icon" type="Texture">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_tab_icon" qualifiers="const">
- <return type="Texture">
- </return>
- <argument index="0" name="tab_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="tab_changed">
- <argument index="0" name="tab" type="int">
- </argument>
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- </constants>
-</class>
-<class name="TestCube" inherits="GeometryInstance" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="TextEdit" inherits="Control" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_text">
- <argument index="0" name="text" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="insert_text_at_cursor">
- <argument index="0" name="text" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_line_count" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_text">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="get_line">
- <return type="String">
- </return>
- <argument index="0" name="arg0" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="cursor_set_column">
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="cursor_set_line">
- <argument index="0" name="line" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="cursor_get_column" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="cursor_get_line" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_readonly">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_wrap">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_max_chars">
- <argument index="0" name="amount" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="cut">
- <description>
- </description>
- </method>
- <method name="copy">
- <description>
- </description>
- </method>
- <method name="paste">
- <description>
- </description>
- </method>
- <method name="select_all">
- <description>
- </description>
- </method>
- <method name="select">
- <argument index="0" name="from_line" type="int">
- </argument>
- <argument index="1" name="from_column" type="int">
- </argument>
- <argument index="2" name="to_line" type="int">
- </argument>
- <argument index="3" name="to_column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_selection_active" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="get_selection_from_line" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_selection_from_column" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_selection_to_line" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_selection_to_column" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_selection_text" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="search" qualifiers="const">
- <return type="IntArray">
- </return>
- <argument index="0" name="flags" type="String">
- </argument>
- <argument index="1" name="from_line" type="int">
- </argument>
- <argument index="2" name="from_column" type="int">
- </argument>
- <argument index="3" name="to_line" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="undo">
- <description>
- </description>
- </method>
- <method name="redo">
- <description>
- </description>
- </method>
- <method name="clear_undo_history">
- <description>
- </description>
- </method>
- <method name="set_syntax_coloring">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_syntax_coloring_enabled" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="add_keyword_color">
- <argument index="0" name="keyword" type="String">
- </argument>
- <argument index="1" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_color_region">
- <argument index="0" name="begin_key" type="String">
- </argument>
- <argument index="1" name="end_key" type="String">
- </argument>
- <argument index="2" name="color" type="Color">
- </argument>
- <argument index="3" name="line_only" type="bool" default="false">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_symbol_color">
- <argument index="0" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_custom_bg_color">
- <argument index="0" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear_colors">
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="text_changed">
- <description>
- </description>
- </signal>
- <signal name="cursor_changed">
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- <constant name="SEARCH_MATCH_CASE" value="1">
- </constant>
- <constant name="SEARCH_WHOLE_WORDS" value="2">
- </constant>
- <constant name="SEARCH_BACKWARDS" value="4">
- </constant>
- </constants>
-</class>
-<class name="Texture" inherits="Resource" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="create">
- <argument index="0" name="width" type="int">
- </argument>
- <argument index="1" name="height" type="int">
- </argument>
- <argument index="2" name="format" type="int">
- </argument>
- <argument index="3" name="flags" type="int">
- </argument>
- <argument index="4" name="arg4" type="int" default="7">
- </argument>
- <description>
- </description>
- </method>
- <method name="create_from_image">
- <argument index="0" name="image" type="Image">
- </argument>
- <argument index="1" name="flags" type="int" default="7">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_flags">
- <argument index="0" name="flags" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_flags" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_format" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="load">
- <argument index="0" name="path" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_data">
- <argument index="0" name="image" type="Image">
- </argument>
- <argument index="1" name="cube_side" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_data" qualifiers="const">
- <return type="Image">
- </return>
- <argument index="0" name="cube_side" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_width" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_height" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_size" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="get_rid" qualifiers="const">
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="has_alpha" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="draw" qualifiers="const">
- <argument index="0" name="canvas_item" type="RID">
- </argument>
- <argument index="1" name="pos" type="Vector2">
- </argument>
- <argument index="2" name="modulate" type="Color" default="Color(1,1,1,1)">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="FLAG_MIPMAPS" value="1">
- </constant>
- <constant name="FLAG_REPEAT" value="2">
- </constant>
- <constant name="FLAG_FILTER" value="4">
- </constant>
- <constant name="FLAG_CUBEMAP" value="8">
- </constant>
- <constant name="FLAG_VIDEO_SURFACE" value="16">
- </constant>
- <constant name="FLAGS_DEFAULT" value="7">
- </constant>
- <constant name="CUBEMAP_LEFT" value="0">
- </constant>
- <constant name="CUBEMAP_RIGHT" value="1">
- </constant>
- <constant name="CUBEMAP_BOTTOM" value="2">
- </constant>
- <constant name="CUBEMAP_TOP" value="3">
- </constant>
- <constant name="CUBEMAP_FRONT" value="4">
- </constant>
- <constant name="CUBEMAP_BACK" value="5">
- </constant>
- </constants>
-</class>
-<class name="TextureButton" inherits="BaseButton" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_normal_texture">
- <argument index="0" name="texture" type="Texture">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_pressed_texture">
- <argument index="0" name="texture" type="Texture">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_hover_texture">
- <argument index="0" name="texture" type="Texture">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_disabled_texture">
- <argument index="0" name="texture" type="Texture">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_focused_texture">
- <argument index="0" name="texture" type="Texture">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_click_mask">
- <argument index="0" name="texture:Image" type="Image">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_normal_texture" qualifiers="const">
- <return type="Texture">
- </return>
- <description>
- </description>
- </method>
- <method name="get_pressed_texture" qualifiers="const">
- <return type="Texture">
- </return>
- <description>
- </description>
- </method>
- <method name="get_hover_texture" qualifiers="const">
- <return type="Texture">
- </return>
- <description>
- </description>
- </method>
- <method name="get_disabled_texture" qualifiers="const">
- <return type="Texture">
- </return>
- <description>
- </description>
- </method>
- <method name="get_focused_texture" qualifiers="const">
- <return type="Texture">
- </return>
- <description>
- </description>
- </method>
- <method name="get_click_mask" qualifiers="const">
- <return type="Image">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="TextureFrame" inherits="Control" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_texture">
- <argument index="0" name="texture" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_texture" qualifiers="const">
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="set_expand">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_expand" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="TextureProgress" inherits="Range" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_under_texture">
- <argument index="0" name="tex" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_under_texture" qualifiers="const">
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="set_progress_texture">
- <argument index="0" name="tex" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_progress_texture" qualifiers="const">
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="set_over_texture">
- <argument index="0" name="tex" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_over_texture" qualifiers="const">
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Theme" inherits="Resource" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_icon">
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <argument index="2" name="texture" type="Texture">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_icon" qualifiers="const">
- <return type="Texture">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_icon" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear_icon">
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_icon_list" qualifiers="const">
- <return type="StringArray">
- </return>
- <argument index="0" name="arg0" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_stylebox">
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <argument index="2" name="texture" type="StyleBox">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_stylebox" qualifiers="const">
- <return type="StyleBox">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_stylebox" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear_stylebox">
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_stylebox_list" qualifiers="const">
- <return type="StringArray">
- </return>
- <argument index="0" name="arg0" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_font">
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <argument index="2" name="font" type="Font">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_font" qualifiers="const">
- <return type="Font">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_font" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear_font">
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_font_list" qualifiers="const">
- <return type="StringArray">
- </return>
- <argument index="0" name="arg0" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_color">
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <argument index="2" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_color" qualifiers="const">
- <return type="Color">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_color" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear_color">
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_color_list" qualifiers="const">
- <return type="StringArray">
- </return>
- <argument index="0" name="arg0" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_constant">
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <argument index="2" name="constant" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_constant" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_constant" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear_constant">
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_constant_list" qualifiers="const">
- <return type="StringArray">
- </return>
- <argument index="0" name="arg0" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_type_list" qualifiers="const">
- <return type="StringArray">
- </return>
- <argument index="0" name="arg0" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="copy_default_theme">
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="TileMap" inherits="Node2D" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_tileset">
- <argument index="0" name="tileset" type="TileSet">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_tileset" qualifiers="const">
- <return type="TileSet">
- </return>
- <description>
- </description>
- </method>
- <method name="set_cell_size">
- <argument index="0" name="size" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_cell_size" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_quadrant_size">
- <argument index="0" name="size" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_quadrant_size" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_center_x">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_center_x" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_center_y">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_center_y" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_cell">
- <argument index="0" name="x" type="int">
- </argument>
- <argument index="1" name="y" type="int">
- </argument>
- <argument index="2" name="tile" type="int">
- </argument>
- <argument index="3" name="flip_x" type="bool" default="false">
- </argument>
- <argument index="4" name="flip_y" type="bool" default="false">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_cell" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="x" type="int">
- </argument>
- <argument index="1" name="y" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_cell_x_flipped" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="x" type="int">
- </argument>
- <argument index="1" name="y" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_cell_y_flipped" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="x" type="int">
- </argument>
- <argument index="1" name="y" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear">
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="INVALID_CELL" value="-1">
- </constant>
- </constants>
-</class>
-<class name="TileSet" inherits="Resource" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="create_tile">
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="tile_set_name">
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="tile_get_name" qualifiers="const">
- <return type="String">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="tile_set_texture">
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="texture" type="Texture">
- </argument>
- <description>
- </description>
- </method>
- <method name="tile_get_texture" qualifiers="const">
- <return type="Texture">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="tile_set_offset">
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="offset" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="tile_get_offset" qualifiers="const">
- <return type="Vector2">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="tile_set_region">
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="region" type="Rect2">
- </argument>
- <description>
- </description>
- </method>
- <method name="tile_get_region" qualifiers="const">
- <return type="Rect2">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="tile_set_shape">
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="shape" type="Shape2D">
- </argument>
- <description>
- </description>
- </method>
- <method name="tile_get_shape" qualifiers="const">
- <return type="Shape2D">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="remove_tile">
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear">
- <description>
- </description>
- </method>
- <method name="get_last_unused_tile_id" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="find_tile_by_name" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_tiles_ids" qualifiers="const">
- <return type="Array">
- </return>
- <description>
-
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Timer" inherits="Node" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_wait_time">
- <argument index="0" name="time_sec" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_wait_time" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_one_shot">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_one_shot" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_autostart">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_autostart" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="start">
- <description>
- </description>
- </method>
- <method name="stop">
- <description>
- </description>
- </method>
- <method name="get_time_left" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="timeout">
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- </constants>
-</class>
-<class name="Translation" inherits="Resource" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_locale">
- <argument index="0" name="locale" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_locale" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="add_message">
- <argument index="0" name="src_message" type="String">
- </argument>
- <argument index="1" name="xlated_message" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_message" qualifiers="const">
- <return type="String">
- </return>
- <argument index="0" name="src_message" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="erase_message">
- <argument index="0" name="src_message" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_message_list" qualifiers="const">
- <return type="StringArray">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="TranslationServer" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Tree" inherits="Control" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="clear">
- <description>
- </description>
- </method>
- <method name="create_item">
- <return type="TreeItem">
- </return>
- <argument index="0" name="parent" type="TreeItem" default="Object()">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_root">
- <return type="TreeItem">
- </return>
- <description>
- </description>
- </method>
- <method name="set_column_min_width">
- <argument index="0" name="arg0" type="int">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_column_expand">
- <argument index="0" name="arg0" type="int">
- </argument>
- <argument index="1" name="arg1" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_column_width" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_hide_root">
- <argument index="0" name="arg0" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_next_selected">
- <return type="TreeItem">
- </return>
- <argument index="0" name="from" type="TreeItem">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_selected" qualifiers="const">
- <return type="TreeItem">
- </return>
- <description>
- </description>
- </method>
- <method name="get_selected_column" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_pressed_button" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_select_mode">
- <argument index="0" name="mode" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_columns">
- <argument index="0" name="amount" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_columns" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_edited" qualifiers="const">
- <return type="TreeItem">
- </return>
- <description>
- </description>
- </method>
- <method name="get_edited_column" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_custom_popup_rect" qualifiers="const">
- <return type="Rect2">
- </return>
- <description>
- </description>
- </method>
- <method name="get_item_area_rect" qualifiers="const">
- <return type="Rect2">
- </return>
- <argument index="0" name="item" type="TreeItem">
- </argument>
- <argument index="1" name="column" type="int" default="-1">
- </argument>
- <description>
- </description>
- </method>
- <method name="ensure_cursor_is_visible">
- <description>
- </description>
- </method>
- <method name="set_column_titles_visible">
- <argument index="0" name="visible" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="are_column_titles_visible" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_column_title">
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="title" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_column_title" qualifiers="const">
- <return type="String">
- </return>
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_scroll" qualifiers="const">
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="item_activated">
- <description>
- </description>
- </signal>
- <signal name="multi_selected">
- <argument index="0" name="item" type="Object">
- </argument>
- <argument index="1" name="column" type="int">
- </argument>
- <argument index="2" name="selected" type="bool">
- </argument>
- <description>
- </description>
- </signal>
- <signal name="custom_popup_edited">
- <argument index="0" name="arrow_clicked" type="bool">
- </argument>
- <description>
- </description>
- </signal>
- <signal name="item_edited">
- <description>
- </description>
- </signal>
- <signal name="item_selected">
- <description>
- </description>
- </signal>
- <signal name="cell_selected">
- <description>
- </description>
- </signal>
- <signal name="button_pressed">
- <argument index="0" name="item" type="Object">
- </argument>
- <argument index="1" name="column" type="int">
- </argument>
- <argument index="2" name="id" type="int">
- </argument>
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- <constant name="SELECT_SINGLE" value="0">
- </constant>
- <constant name="SELECT_ROW" value="1">
- </constant>
- <constant name="SELECT_MULTI" value="2">
- </constant>
- </constants>
-</class>
-<class name="TreeItem" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_cell_mode">
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="mode" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_cell_mode" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_checked">
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="checked" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_checked" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_text">
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="text" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_text" qualifiers="const">
- <return type="String">
- </return>
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_icon">
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="texture" type="Texture">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_icon" qualifiers="const">
- <return type="Texture">
- </return>
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_icon_region">
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="region" type="Rect2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_icon_region" qualifiers="const">
- <return type="Rect2">
- </return>
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_icon_max_width">
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="width" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_icon_max_width" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_range">
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="value" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_range" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_range_config">
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="min" type="real">
- </argument>
- <argument index="2" name="max" type="real">
- </argument>
- <argument index="3" name="step" type="real">
- </argument>
- <argument index="4" name="expr" type="bool" default="false">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_range_config">
- <return type="Dictionary">
- </return>
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_metadata">
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="meta" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_metadata" qualifiers="const">
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_collapsed">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_collapsed">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="get_next">
- <return type="TreeItem">
- </return>
- <description>
- </description>
- </method>
- <method name="get_prev">
- <return type="TreeItem">
- </return>
- <description>
- </description>
- </method>
- <method name="get_parent">
- <return type="TreeItem">
- </return>
- <description>
- </description>
- </method>
- <method name="get_children">
- <return type="TreeItem">
- </return>
- <description>
- </description>
- </method>
- <method name="get_next_visible">
- <return type="TreeItem">
- </return>
- <description>
- </description>
- </method>
- <method name="get_prev_visible">
- <return type="TreeItem">
- </return>
- <description>
- </description>
- </method>
- <method name="remove_child">
- <argument index="0" name="child" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_selectable">
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="selectable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_selectable" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_selected">
- <return type="bool">
- </return>
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="select">
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="deselect">
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_editable">
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_editable">
- <return type="bool">
- </return>
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_custom_color">
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear_custom_color">
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_custom_bg_color">
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear_custom_bg_color">
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_custom_bg_color" qualifiers="const">
- <return type="Color">
- </return>
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_button">
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="button" type="Texture">
- </argument>
- <argument index="2" name="arg2" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_button_count" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_button" qualifiers="const">
- <return type="Texture">
- </return>
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="button_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="erase_button">
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="button_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_tooltip">
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="tooltip" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_tooltip" qualifiers="const">
- <return type="String">
- </return>
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="CELL_MODE_STRING" value="0">
- </constant>
- <constant name="CELL_MODE_CHECK" value="1">
- </constant>
- <constant name="CELL_MODE_RANGE" value="2">
- </constant>
- <constant name="CELL_MODE_ICON" value="3">
- </constant>
- <constant name="CELL_MODE_CUSTOM" value="4">
- </constant>
- </constants>
-</class>
-<class name="VBoxContainer" inherits="BoxContainer" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="VButtonArray" inherits="ButtonArray" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="VScrollBar" inherits="ScrollBar" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="VSeparator" inherits="Separator" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="VSlider" inherits="Slider" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="VideoPlayer" inherits="Control" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_stream">
- <argument index="0" name="stream" type="Stream">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_stream" qualifiers="const">
- <return type="Stream">
- </return>
- <description>
- </description>
- </method>
- <method name="play">
- <description>
- </description>
- </method>
- <method name="stop">
- <description>
- </description>
- </method>
- <method name="is_playing" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_paused">
- <argument index="0" name="paused" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_paused" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_volume">
- <argument index="0" name="volume" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_volume" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_volume_db">
- <argument index="0" name="db" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_volume_db" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_stream_name" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="get_pos" qualifiers="const">
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_autoplay">
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_autoplay" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_expand">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_expand" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="VideoStream" inherits="AudioStreamResampled" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="get_pending_frame_count" qualifiers="const">
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="pop_frame">
- <return type="Image">
- </return>
- <description>
- </description>
- </method>
- <method name="peek_frame" qualifiers="const">
- <return type="Image">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="VideoStreamTheora" inherits="VideoStream" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Viewport" inherits="Node" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_rect">
- <argument index="0" name="rect" type="Rect2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_rect" qualifiers="const">
- <return type="Rect2">
- </return>
- <description>
- </description>
- </method>
- <method name="get_visible_rect" qualifiers="const">
- <return type="Rect2">
- </return>
- <description>
- </description>
- </method>
- <method name="set_transparent_background">
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_transparent_background" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="get_viewport" qualifiers="const">
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="VisualInstance" inherits="Spatial" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_base">
- <argument index="0" name="base" type="RID">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="VisualServer" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="texture_create">
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="texture_create_from_image">
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="Image">
- </argument>
- <argument index="1" name="arg1" type="int" default="7">
- </argument>
- <description>
- </description>
- </method>
- <method name="texture_set_flags">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="texture_get_flags" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="texture_get_width" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="texture_get_height" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="shader_create">
- <return type="RID">
- </return>
- <argument index="0" name="mode" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="shader_set_mode">
- <argument index="0" name="shader" type="RID">
- </argument>
- <argument index="1" name="mode" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="shader_get_mode" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="shader" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="shader_set_vertex_code">
- <argument index="0" name="shader" type="RID">
- </argument>
- <argument index="1" name="code" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="shader_get_vertex_code" qualifiers="const">
- <return type="String">
- </return>
- <argument index="0" name="shader" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="shader_set_fragment_code">
- <argument index="0" name="shader" type="RID">
- </argument>
- <argument index="1" name="code" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="shader_get_fragment_code" qualifiers="const">
- <return type="String">
- </return>
- <argument index="0" name="shader" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="shader_set_param">
- <argument index="0" name="shader" type="RID">
- </argument>
- <argument index="1" name="param" type="String">
- </argument>
- <argument index="2" name="value" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="shader_get_param" qualifiers="const">
- <argument index="0" name="shader" type="RID">
- </argument>
- <argument index="1" name="param" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="shader_get_param_list" qualifiers="const">
- <return type="StringArray">
- </return>
- <argument index="0" name="shader" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="shader_set_use_world_transform">
- <argument index="0" name="shader" type="RID">
- </argument>
- <argument index="1" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="shader_is_using_world_transform" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="shader" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="material_create">
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="material_set_shader">
- <argument index="0" name="shader" type="RID">
- </argument>
- <argument index="1" name="arg1" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="material_get_shader" qualifiers="const">
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="material_set_param">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="String">
- </argument>
- <argument index="2" name="arg2" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="material_get_param" qualifiers="const">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="material_set_flag">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="material_get_flag" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="material_set_blend_mode">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="material_get_blend_mode" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="material_set_line_width">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="material_get_line_width" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="fixed_material_set_parameter">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="fixed_material_get_parameter" qualifiers="const">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="fixed_material_set_texture">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="fixed_material_get_texture" qualifiers="const">
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="fixed_material_set_texgen_mode">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="fixed_material_get_texgen_mode" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="fixed_material_set_texcoord_mode">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="fixed_material_get_texcoord_mode" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="fixed_material_set_uv_transform">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="fixed_material_get_uv_transform" qualifiers="const">
- <return type="Transform">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="mesh_create">
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="mesh_add_surface">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="int">
- </argument>
- <argument index="3" name="arg3" type="int">
- </argument>
- <argument index="4" name="arg4" type="int" default="-1">
- </argument>
- <description>
- </description>
- </method>
- <method name="mesh_surface_set_array">
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="int">
- </argument>
- <argument index="3" name="arg3" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="mesh_surface_get_array" qualifiers="const">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="mesh_surface_set_material">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="RID">
- </argument>
- <argument index="3" name="arg3" type="bool" default="false">
- </argument>
- <description>
- </description>
- </method>
- <method name="mesh_surface_get_material" qualifiers="const">
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="mesh_surface_get_array_len" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="mesh_surface_get_array_index_len" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="mesh_surface_get_format" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="mesh_surface_get_primitive_type" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="mesh_erase_surface">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="mesh_get_surface_count" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="multimesh_create">
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="multimesh_set_mesh">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="multimesh_set_aabb">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="AABB">
- </argument>
- <description>
- </description>
- </method>
- <method name="multimesh_instance_set_transform">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="multimesh_instance_set_color">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="multimesh_get_mesh" qualifiers="const">
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="multimesh_get_aabb" qualifiers="const">
- <return type="AABB">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="AABB">
- </argument>
- <description>
- </description>
- </method>
- <method name="multimesh_instance_get_transform" qualifiers="const">
- <return type="Transform">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="multimesh_instance_get_color" qualifiers="const">
- <return type="Color">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="poly_create">
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="poly_set_material">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="RID">
- </argument>
- <argument index="2" name="arg2" type="bool" default="false">
- </argument>
- <description>
- </description>
- </method>
- <method name="poly_clear">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_create">
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="particles_set_amount">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_get_amount" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_set_emitting">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_is_emitting" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_set_visibility_aabb">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="AABB">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_get_visibility_aabb" qualifiers="const">
- <return type="AABB">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_set_variable">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_get_variable" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_set_randomness">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_get_randomness" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_set_color_phases">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_get_color_phases" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_set_color_phase_pos">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_get_color_phase_pos" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_set_color_phase_color">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_get_color_phase_color" qualifiers="const">
- <return type="Color">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_set_attractors">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_get_attractors" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_set_attractor_pos">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_get_attractor_pos" qualifiers="const">
- <return type="Vector3">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_set_attractor_strength">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_get_attractor_strength" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_set_material">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="RID">
- </argument>
- <argument index="2" name="arg2" type="bool" default="false">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_set_height_from_velocity">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_has_height_from_velocity" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="light_create">
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="light_get_type" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="light_set_color">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="light_get_color" qualifiers="const">
- <return type="Color">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="light_set_shadow">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="light_has_shadow" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="light_set_volumetric">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="light_is_volumetric" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="light_set_projector">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="light_get_projector" qualifiers="const">
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="light_set_var">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="light_get_var" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="skeleton_create">
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="skeleton_resize">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="skeleton_get_bone_count" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="skeleton_bone_set_transform">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="skeleton_bone_get_transform">
- <return type="Transform">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="room_create">
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="room_set_bounds">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Dictionary">
- </argument>
- <description>
- </description>
- </method>
- <method name="room_get_bounds" qualifiers="const">
- <return type="Dictionary">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="portal_create">
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="portal_set_shape">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Vector2Array">
- </argument>
- <description>
- </description>
- </method>
- <method name="portal_get_shape" qualifiers="const">
- <return type="Vector2Array">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="portal_set_enabled">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="portal_is_enabled" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="portal_set_disable_distance">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="portal_get_disable_distance" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="portal_set_disabled_color">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="portal_get_disabled_color" qualifiers="const">
- <return type="Color">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="camera_create">
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="camera_set_perspective">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="real">
- </argument>
- <argument index="2" name="arg2" type="real">
- </argument>
- <argument index="3" name="arg3" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="camera_set_orthogonal">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="real">
- </argument>
- <argument index="2" name="arg2" type="real">
- </argument>
- <argument index="3" name="arg3" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="camera_set_transform">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="viewport_create">
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="viewport_set_rect">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Rect2">
- </argument>
- <description>
- </description>
- </method>
- <method name="viewport_get_rect" qualifiers="const">
- <return type="Rect2">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="viewport_attach_camera">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="RID" default="RID()">
- </argument>
- <description>
- </description>
- </method>
- <method name="viewport_get_attached_camera" qualifiers="const">
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="viewport_get_scenario" qualifiers="const">
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="viewport_attach_canvas">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="viewport_remove_canvas">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="scenario_create">
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="scenario_set_debug">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="scenario_fx_get_effects" qualifiers="const">
- <return type="StringArray">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="scenario_fx_set_active">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="String">
- </argument>
- <argument index="2" name="arg2" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="scenario_fx_is_active" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="scenario_fx_get_effect_params" qualifiers="const">
- <return type="Array">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="scenario_fx_get_effect_param" qualifiers="const">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="String">
- </argument>
- <argument index="2" name="arg2" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="scenario_fx_set_effect_param">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="String">
- </argument>
- <argument index="2" name="arg2" type="String">
- </argument>
- <argument index="3" name="arg3" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_create">
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="instance_get_base" qualifiers="const">
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_get_base_aabb" qualifiers="const">
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_set_transform">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_get_transform" qualifiers="const">
- <return type="Transform">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_attach_object_instance_ID">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_get_object_instance_ID" qualifiers="const">
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_attach_skeleton">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_get_skeleton" qualifiers="const">
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_set_room">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_get_room" qualifiers="const">
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_set_exterior">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_is_exterior" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="instances_cull_aabb" qualifiers="const">
- <return type="Array">
- </return>
- <argument index="0" name="arg0" type="AABB">
- </argument>
- <argument index="1" name="arg1" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="instances_cull_ray" qualifiers="const">
- <return type="Array">
- </return>
- <argument index="0" name="arg0" type="Vector3">
- </argument>
- <argument index="1" name="arg1" type="Vector3">
- </argument>
- <argument index="2" name="arg2" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="instances_cull_convex" qualifiers="const">
- <return type="Array">
- </return>
- <argument index="0" name="arg0" type="Vector3">
- </argument>
- <argument index="1" name="arg1" type="Vector3">
- </argument>
- <argument index="2" name="arg2" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_geometry_set_visible">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_geometry_is_visible" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_geometry_override_material_param" qualifiers="const">
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_geometry_get_material_param" qualifiers="const">
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_create">
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="canvas_item_create">
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="canvas_item_set_parent">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_get_parent" qualifiers="const">
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_set_transform">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Matrix32">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_set_custom_rect">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="bool">
- </argument>
- <argument index="2" name="arg2" type="Rect2">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_set_clip">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_set_opacity">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_get_opacity" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_set_self_opacity">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_get_self_opacity" qualifiers="const">
- <return type="real">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_add_line">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Vector2">
- </argument>
- <argument index="2" name="arg2" type="Vector2">
- </argument>
- <argument index="3" name="arg3" type="Color">
- </argument>
- <argument index="4" name="arg4" type="real" default="1">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_add_rect">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Rect2">
- </argument>
- <argument index="2" name="arg2" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_add_texture_rect">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Rect2">
- </argument>
- <argument index="2" name="arg2" type="RID">
- </argument>
- <argument index="3" name="arg3" type="bool">
- </argument>
- <argument index="4" name="arg4" type="Color" default="Color(1,1,1,1)">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_add_texture_rect_region">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Rect2">
- </argument>
- <argument index="2" name="arg2" type="RID">
- </argument>
- <argument index="3" name="arg3" type="Rect2">
- </argument>
- <argument index="4" name="arg4" type="Color" default="Color(1,1,1,1)">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_add_style_box">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Rect2">
- </argument>
- <argument index="2" name="arg2" type="RID">
- </argument>
- <argument index="3" name="arg3" type="RealArray">
- </argument>
- <argument index="4" name="arg4" type="Color" default="Color(1,1,1,1)">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_add_circle">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Vector2">
- </argument>
- <argument index="2" name="arg2" type="real">
- </argument>
- <argument index="3" name="arg3" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="viewport_set_canvas_transform">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="RID">
- </argument>
- <argument index="2" name="arg2" type="Matrix32">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_clear">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_raise">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="cursor_set_rotation">
- <argument index="0" name="arg0" type="real">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="cursor_set_texture">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Vector2">
- </argument>
- <argument index="2" name="arg2" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="cursor_set_visible">
- <argument index="0" name="arg0" type="bool">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="cursor_set_pos">
- <argument index="0" name="arg0" type="Vector2">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="make_sphere_mesh">
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="int">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="mesh_add_surface_from_planes">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Array">
- </argument>
- <description>
- </description>
- </method>
- <method name="free">
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="NO_INDEX_ARRAY" value="-1">
- </constant>
- <constant name="CUSTOM_ARRAY_SIZE" value="8">
- </constant>
- <constant name="ARRAY_WEIGHTS_SIZE" value="4">
- </constant>
- <constant name="MAX_PARTICLE_COLOR_PHASES" value="4">
- </constant>
- <constant name="MAX_PARTICLE_ATTRACTORS" value="4">
- </constant>
- <constant name="MAX_CURSORS" value="8">
- </constant>
- <constant name="TEXTURE_FLAG_MIPMAPS" value="1">
- </constant>
- <constant name="TEXTURE_FLAG_REPEAT" value="2">
- </constant>
- <constant name="TEXTURE_FLAG_FILTER" value="4">
- </constant>
- <constant name="TEXTURE_FLAG_CUBEMAP" value="8">
- </constant>
- <constant name="TEXTURE_FLAGS_DEFAULT" value="7">
- </constant>
- <constant name="CUBEMAP_LEFT" value="0">
- </constant>
- <constant name="CUBEMAP_RIGHT" value="1">
- </constant>
- <constant name="CUBEMAP_BOTTOM" value="2">
- </constant>
- <constant name="CUBEMAP_TOP" value="3">
- </constant>
- <constant name="CUBEMAP_FRONT" value="4">
- </constant>
- <constant name="CUBEMAP_BACK" value="5">
- </constant>
- <constant name="SHADER_MATERIAL" value="0">
- </constant>
- <constant name="SHADER_POST_PROCESS" value="1">
- </constant>
- <constant name="MATERIAL_FLAG_VISIBLE" value="0">
- </constant>
- <constant name="MATERIAL_FLAG_DOUBLE_SIDED" value="1">
- </constant>
- <constant name="MATERIAL_FLAG_INVERT_FACES" value="2">
- </constant>
- <constant name="MATERIAL_FLAG_UNSHADED" value="3">
- </constant>
- <constant name="MATERIAL_FLAG_ONTOP" value="4">
- </constant>
- <constant name="MATERIAL_FLAG_WIREFRAME" value="5">
- </constant>
- <constant name="MATERIAL_FLAG_BILLBOARD" value="6">
- </constant>
- <constant name="MATERIAL_FLAG_MAX" value="7">
- </constant>
- <constant name="MATERIAL_BLEND_MODE_MIX" value="0">
- </constant>
- <constant name="MATERIAL_BLEND_MODE_ADD" value="1">
- </constant>
- <constant name="MATERIAL_BLEND_MODE_SUB" value="2">
- </constant>
- <constant name="MATERIAL_BLEND_MODE_MUL" value="3">
- </constant>
- <constant name="FIXED_MATERIAL_PARAM_DIFFUSE" value="0">
- </constant>
- <constant name="FIXED_MATERIAL_PARAM_DETAIL" value="1">
- </constant>
- <constant name="FIXED_MATERIAL_PARAM_SPECULAR" value="2">
- </constant>
- <constant name="FIXED_MATERIAL_PARAM_EMISSION" value="3">
- </constant>
- <constant name="FIXED_MATERIAL_PARAM_SPECULAR_EXP" value="4">
- </constant>
- <constant name="FIXED_MATERIAL_PARAM_GLOW" value="5">
- </constant>
- <constant name="FIXED_MATERIAL_PARAM_NORMAL" value="6">
- </constant>
- <constant name="FIXED_MATERIAL_PARAM_SHADE_PARAM" value="7">
- </constant>
- <constant name="FIXED_MATERIAL_PARAM_MAX" value="8">
- </constant>
- <constant name="FIXED_MATERIAL_TEXGEN_SPHERE" value="1">
- </constant>
- <constant name="FIXED_MATERIAL_TEXGEN_SCREEN" value="2">
- </constant>
- <constant name="FIXED_MATERIAL_TEXGEN_SCREENZ" value="3">
- </constant>
- <constant name="FIXED_MATERIAL_TEXGEN_LOCAL_XY" value="0">
- </constant>
- <constant name="FIXED_MATERIAL_TEXCOORD_TEXGEN" value="3">
- </constant>
- <constant name="FIXED_MATERIAL_TEXCOORD_UV" value="0">
- </constant>
- <constant name="FIXED_MATERIAL_TEXCOORD_UV_TRANSFORM" value="1">
- </constant>
- <constant name="FIXED_MATERIAL_TEXCOORD_UV2" value="2">
- </constant>
- <constant name="ARRAY_VERTEX" value="0">
- </constant>
- <constant name="ARRAY_NORMAL" value="1">
- </constant>
- <constant name="ARRAY_TANGENT" value="2">
- </constant>
- <constant name="ARRAY_COLOR" value="3">
- </constant>
- <constant name="ARRAY_TEX_UV" value="4">
- </constant>
- <constant name="ARRAY_BONES" value="6">
- </constant>
- <constant name="ARRAY_WEIGHTS" value="7">
- </constant>
- <constant name="ARRAY_INDEX" value="8">
- </constant>
- <constant name="ARRAY_MAX" value="9">
- </constant>
- <constant name="ARRAY_FORMAT_VERTEX" value="1">
- </constant>
- <constant name="ARRAY_FORMAT_NORMAL" value="2">
- </constant>
- <constant name="ARRAY_FORMAT_TANGENT" value="4">
- </constant>
- <constant name="ARRAY_FORMAT_COLOR" value="8">
- </constant>
- <constant name="ARRAY_FORMAT_TEX_UV" value="16">
- </constant>
- <constant name="ARRAY_FORMAT_BONES" value="64">
- </constant>
- <constant name="ARRAY_FORMAT_WEIGHTS" value="128">
- </constant>
- <constant name="ARRAY_FORMAT_INDEX" value="256">
- </constant>
- <constant name="PRIMITIVE_POINTS" value="0">
- </constant>
- <constant name="PRIMITIVE_LINES" value="1">
- </constant>
- <constant name="PRIMITIVE_LINE_STRIP" value="2">
- </constant>
- <constant name="PRIMITIVE_LINE_LOOP" value="3">
- </constant>
- <constant name="PRIMITIVE_TRIANGLES" value="4">
- </constant>
- <constant name="PRIMITIVE_TRIANGLE_STRIP" value="5">
- </constant>
- <constant name="PRIMITIVE_TRIANGLE_FAN" value="6">
- </constant>
- <constant name="PRIMITIVE_MAX" value="7">
- </constant>
- <constant name="PARTICLE_LIFETIME" value="0">
- </constant>
- <constant name="PARTICLE_SPREAD" value="1">
- </constant>
- <constant name="PARTICLE_GRAVITY" value="2">
- </constant>
- <constant name="PARTICLE_LINEAR_VELOCITY" value="3">
- </constant>
- <constant name="PARTICLE_ANGULAR_VELOCITY" value="4">
- </constant>
- <constant name="PARTICLE_LINEAR_ACCELERATION" value="5">
- </constant>
- <constant name="PARTICLE_RADIAL_ACCELERATION" value="6">
- </constant>
- <constant name="PARTICLE_TANGENTIAL_ACCELERATION" value="7">
- </constant>
- <constant name="PARTICLE_INITIAL_SIZE" value="9">
- </constant>
- <constant name="PARTICLE_FINAL_SIZE" value="10">
- </constant>
- <constant name="PARTICLE_INITIAL_ANGLE" value="11">
- </constant>
- <constant name="PARTICLE_HEIGHT" value="12">
- </constant>
- <constant name="PARTICLE_HEIGHT_SPEED_SCALE" value="13">
- </constant>
- <constant name="PARTICLE_VAR_MAX" value="14">
- </constant>
- <constant name="LIGHT_DIRECTIONAL" value="0">
- </constant>
- <constant name="LIGHT_OMNI" value="1">
- </constant>
- <constant name="LIGHT_SPOT" value="2">
- </constant>
- <constant name="LIGHT_COLOR_AMBIENT" value="0">
- </constant>
- <constant name="LIGHT_COLOR_DIFFUSE" value="1">
- </constant>
- <constant name="LIGHT_COLOR_SPECULAR" value="2">
- </constant>
- <constant name="LIGHT_VAR_SPOT_ATTENUATION" value="0">
- </constant>
- <constant name="LIGHT_VAR_SPOT_ANGLE" value="1">
- </constant>
- <constant name="LIGHT_VAR_RADIUS" value="2">
- </constant>
- <constant name="LIGHT_VAR_ENERGY" value="3">
- </constant>
- <constant name="LIGHT_VAR_ATTENUATION" value="4">
- </constant>
- <constant name="LIGHT_VAR_MAX" value="6">
- </constant>
- <constant name="SCENARIO_DEBUG_DISABLED" value="0">
- </constant>
- <constant name="SCENARIO_DEBUG_WIREFRAME" value="1">
- </constant>
- <constant name="SCENARIO_DEBUG_OVERDRAW" value="2">
- </constant>
- <constant name="INSTANCE_MESH" value="1">
- </constant>
- <constant name="INSTANCE_MULTIMESH" value="2">
- </constant>
- <constant name="INSTANCE_POLY" value="3">
- </constant>
- <constant name="INSTANCE_PARTICLES" value="4">
- </constant>
- <constant name="INSTANCE_LIGHT" value="5">
- </constant>
- <constant name="INSTANCE_ROOM" value="6">
- </constant>
- <constant name="INSTANCE_PORTAL" value="7">
- </constant>
- <constant name="INSTANCE_GEOMETRY_MASK" value="30">
- </constant>
- <constant name="INFO_OBJECTS_IN_FRAME" value="0">
- </constant>
- <constant name="INFO_MATERIAL_CHANGES_IN_FRAME" value="1">
- </constant>
- <constant name="INFO_USAGE_VIDEO_MEM_TOTAL" value="2">
- </constant>
- <constant name="INFO_VIDEO_MEM_USED" value="3">
- </constant>
- <constant name="INFO_TEXTURE_MEM_USED" value="4">
- </constant>
- <constant name="INFO_VERTEX_MEM_USED" value="5">
- </constant>
- </constants>
-</class>
-<class name="WindowDialog" inherits="Popup" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_title">
- <argument index="0" name="title" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_title" qualifiers="const">
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="get_close_button">
- <return type="TextureButton">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="World" inherits="Resource" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="get_space" qualifiers="const">
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="get_scenario" qualifiers="const">
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="get_sound_space" qualifiers="const">
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-</doc>
diff --git a/doc/examples/physics/script/test_base.sq b/doc/examples/physics/script/test_base.sq
deleted file mode 100644
index 9d5451728f..0000000000
--- a/doc/examples/physics/script/test_base.sq
+++ /dev/null
@@ -1,295 +0,0 @@
-
-class PhysicsTestBase extends MainLoopScripted {
-
-
- bodies=[]
- type_mesh_map={}
- type_shape_map={}
- cameratr=Transform()
-
-
- function body_changed_transform(p_transform, p_velocity, p_angular_velocity,p_sleeping, p_visual_instance) {
-
- VisualServer.instance_set_transform(p_visual_instance,p_transform);
- }
-
-
- function create_body(p_shape, p_body_mode, p_location, p_active=true) {
-
- local mesh_instance = VisualServer.instance_create( type_mesh_map[p_shape] )
- local body = PhysicsServer.body_create(RID(),p_body_mode,!p_active)
- PhysicsServer.body_add_shape(body,type_shape_map[p_shape])
-
- local query = PhysicsServer.query_create(this,"body_changed_transform",mesh_instance)
- PhysicsServer.query_body_state(query, body)
-
- PhysicsServer.body_set_state( body, PhysicsServer.BODY_STATE_TRANSFORM, p_location )
- bodies.append( body )
- return body
-
- }
-
-
- function create_static_plane(p_plane) {
-
- local plane_shape = PhysicsServer.shape_create(PhysicsServer.SHAPE_PLANE)
- PhysicsServer.shape_set_data( plane_shape, p_plane );
-
- local b = PhysicsServer.body_create(RID(), PhysicsServer.BODY_MODE_STATIC );
- PhysicsServer.body_add_shape(b, plane_shape);
- return b;
- }
-
- function configure_body( p_body, p_mass, p_friction, p_bounce) {
-
- PhysicsServer.body_set_param( p_body, PhysicsServer.BODY_PARAM_MASS, p_mass );
- PhysicsServer.body_set_param( p_body, PhysicsServer.BODY_PARAM_FRICTION, p_friction );
- PhysicsServer.body_set_param( p_body, PhysicsServer.BODY_PARAM_BOUNCE, p_bounce );
-
- }
-
- function init_shapes() {
-
-
- /* SPHERE SHAPE */
- local sphere_mesh = VisualServer.make_sphere_mesh(10,20,1.0);
- local sphere_material = VisualServer.fixed_material_create();
- //VisualServer.material_set_flag( sphere_material, VisualServer.MATERIAL_FLAG_WIREFRAME, true );
- VisualServer.fixed_material_set_parameter( sphere_material, VisualServer.FIXED_MATERIAL_PARAM_DIFFUSE, Color(0.7,0.8,3.0) );
- VisualServer.mesh_surface_set_material( sphere_mesh, 0, sphere_material );
- type_mesh_map[PhysicsServer.SHAPE_SPHERE] <- sphere_mesh;
-
- local sphere_shape=PhysicsServer.shape_create(PhysicsServer.SHAPE_SPHERE);
- PhysicsServer.shape_set_data( sphere_shape, 1.0 );
- type_shape_map[PhysicsServer.SHAPE_SPHERE] <- sphere_shape;
-
- /* BOX SHAPE */
-
- local box_planes = GeometryUtils.build_box_planes(Vector3(0.5,0.5,0.5));
- local box_material = VisualServer.fixed_material_create();
- VisualServer.fixed_material_set_parameter( box_material, VisualServer.FIXED_MATERIAL_PARAM_DIFFUSE, Color(1.0,0.2,0.2) );
- local box_mesh = VisualServer.mesh_create();
-
- VisualServer.mesh_add_surface_from_planes(box_mesh,box_planes);
- VisualServer.mesh_surface_set_material( box_mesh, 0, box_material );
- type_mesh_map[PhysicsServer.SHAPE_BOX]<- box_mesh;
-
- local box_shape=PhysicsServer.shape_create(PhysicsServer.SHAPE_BOX);
- PhysicsServer.shape_set_data( box_shape, Vector3(0.5,0.5,0.5) );
- type_shape_map[PhysicsServer.SHAPE_BOX]<- box_shape;
-
- /* CYLINDER SHAPE */
-
- local cylinder_planes = GeometryUtils.build_cylinder_planes(0.5,1,12
- ,Vector3.AXIS_Z);
- local cylinder_material = VisualServer.fixed_material_create();
- VisualServer.fixed_material_set_parameter( cylinder_material, VisualServer.FIXED_MATERIAL_PARAM_DIFFUSE, Color(0.3,0.4,1.0) );
- local cylinder_mesh = VisualServer.mesh_create();
-
- VisualServer.mesh_add_surface_from_planes(cylinder_mesh,cylinder_planes);
- VisualServer.mesh_surface_set_material( cylinder_mesh, 0, cylinder_material );
- type_mesh_map[PhysicsServer.SHAPE_CYLINDER]<- cylinder_mesh;
-
- local cylinder_shape=PhysicsServer.shape_create(PhysicsServer.SHAPE_CYLINDER);
- local cylinder_params={}
- cylinder_params["radius"]<- 0.5;
- cylinder_params["height"]<- 2;
- PhysicsServer.shape_set_data( cylinder_shape, cylinder_params );
- type_shape_map[PhysicsServer.SHAPE_CYLINDER]<- cylinder_shape;
-
- /* CAPSULE SHAPE */
-
- local capsule_planes = GeometryUtils.build_capsule_planes(0.5,0.7,12,Vector3.AXIS_Z);
- local capsule_material = VisualServer.fixed_material_create();
- VisualServer.fixed_material_set_parameter( capsule_material, VisualServer.FIXED_MATERIAL_PARAM_DIFFUSE, Color(0.3,0.4,1.0) );
-
- local capsule_mesh = VisualServer.mesh_create();
-
- VisualServer.mesh_add_surface_from_planes(capsule_mesh,capsule_planes);
- VisualServer.mesh_surface_set_material( capsule_mesh, 0, capsule_material );
- type_mesh_map[PhysicsServer.SHAPE_CAPSULE]<-capsule_mesh;
-
- local capsule_shape=PhysicsServer.shape_create(PhysicsServer.SHAPE_CAPSULE);
- local capsule_params={}
- capsule_params["radius"]<- 0.5;
- capsule_params["height"]<- 1.4;
- PhysicsServer.shape_set_data( capsule_shape, capsule_params );
- type_shape_map[PhysicsServer.SHAPE_CAPSULE]<- capsule_shape;
-
- /* CONVEX SHAPE */
-
- local convex_planes = GeometryUtils.build_cylinder_planes(0.5,0.7,5,Vector3.AXIS_Z);
- local convex_material = VisualServer.fixed_material_create();
- VisualServer.fixed_material_set_parameter( convex_material, VisualServer.FIXED_MATERIAL_PARAM_DIFFUSE, Color(0.8,0.2,0.9));
-
- local convex_mesh = VisualServer.mesh_create();
- VisualServer.mesh_add_surface_from_planes(convex_mesh,convex_planes);
- VisualServer.mesh_surface_set_material( convex_mesh, 0, convex_material );
- type_mesh_map[PhysicsServer.SHAPE_CONVEX_POLYGON]<- convex_mesh;
-
- local convex_shape=PhysicsServer.shape_create(PhysicsServer.SHAPE_CONVEX_POLYGON);
- PhysicsServer.shape_set_data( convex_shape, convex_planes );
- type_shape_map[PhysicsServer.SHAPE_CONVEX_POLYGON]<- convex_shape;
-
- }
-
- function make_trimesh(p_faces,p_xform=Transform()) {
-
- local trimesh_shape = PhysicsServer.shape_create(PhysicsServer.SHAPE_CONCAVE_POLYGON);
- PhysicsServer.shape_set_data(trimesh_shape, p_faces);
- p_faces=PhysicsServer.shape_get_data(trimesh_shape); // optimized one
- normals=[]
-
- for (i=0;i<p_faces.length()/3;i++) {
-
- p=Plane( p_faces[i*3+0],p_faces[i*3+1], p_faces[i*3+2] );
- normals.append(p.normal);
- normals.append(p.normal);
- normals.append(p.normal);
- }
-
- local trimesh_mesh = VisualServer.mesh_create();
- VisualServer.mesh_add_surface(trimesh_mesh, VS::PRIMITIVE_TRIANGLES, VS::ARRAY_FORMAT_VERTEX|VS::ARRAY_FORMAT_NORMAL, p_faces.length() );
- VisualServer.mesh_surface_set_array(trimesh_mesh,0,VS::ARRAY_VERTEX, p_faces );
- VisualServer.mesh_surface_set_array(trimesh_mesh,0,VS::ARRAY_NORMAL, normals );
- local trimesh_mat = VisualServer.fixed_material_create();
- VisualServer.fixed_material_set_parameter( trimesh_mat, VisualServer.FIXED_MATERIAL_PARAM_DIFFUSE, Color(1.0,0.5,0.8));
- //VisualServer.material_set_flag( trimesh_mat, VisualServer.MATERIAL_FLAG_UNSHADED,true);
- VisualServer.mesh_surface_set_material( trimesh_mesh, 0, trimesh_mat );
-
- local triins = VisualServer.instance_create(trimesh_mesh);
-
-
- local tribody = PhysicsServer.body_create(RID(), PhysicsServer.BODY_MODE_STATIC);
- PhysicsServer.body_add_shape(tribody, trimesh_shape);
- tritrans = p_xform;
- PhysicsServer.body_set_state( tribody, PhysicsServer.BODY_STATE_TRANSFORM, tritrans );
- VisualServer.instance_set_transform( triins, tritrans );
- //RID trimesh_material = VisualServer.fixed_material_create();
- //VisualServer.material_generate( trimesh_material, Color(0.2,0.4,0.6) );
- //VisualServer.mesh_surface_set_material( trimesh_mesh, 0, trimesh_material );
-
- }
-
- function make_grid(p_width,p_height,p_cellsize,p_cellheight,p_xform=Transform()) {
-
- local grid = []
-
- for (local i =0;i<p_width;i++) {
-
- local row = []
-
- for (local j=0;j<p_height;j++) {
-
- local val = 1.0+Math.random(-p_cellheight, p_cellheight );
- row.append(val)
- }
- grid.append(row)
- }
-
- local faces=[]
-
- for (local i =1;i<p_width;i++) {
-
- for (local j=1;j<p_height;j++) {
-
- function MAKE_VERTEX(m_x,m_z) {
- local v= Vector3( (m_x-p_width/2)*p_cellsize, grid[m_x][m_z], (m_z-p_height/2)*p_cellsize )
- faces.push_back(v)
- }
-
-
- MAKE_VERTEX(i,j-1)
- MAKE_VERTEX(i,j)
- MAKE_VERTEX(i-1,j)
-
- MAKE_VERTEX(i-1,j-1)
- MAKE_VERTEX(i,j-1)
- MAKE_VERTEX(i-1,j)
-
- }
- }
-
- make_trimesh(faces,p_xform);
- }
-
- quit=false
-
- transform = Transform()
- camera=RID()
-
- function init_internal() {}
- function iteration_internal(time) {}
-//public
-
-
- function input_event(p_event) {
-
-
- }
-
- function request_quit() {
-
- quit=true;
- }
-
- function init() {
-
- init_shapes();
-
-
- /* LIGHT */
- local lightaux = VisualServer.light_create( VisualServer.LIGHT_DIRECTIONAL );
- //VisualServer.light_set_color( lightaux, VisualServer.LIGHT_COLOR_AMBIENT, Color(0.0,0.0,0.0) );
- VisualServer.light_set_shadow(lightaux,true);
- local light = VisualServer.instance_create( lightaux );
- local t=Transform()
- t.rotate(Vector3(1.0,0,0),0.6);
- VisualServer.instance_set_transform(light,t);
-
-
- /* CAMERA */
-
- camera = VisualServer.camera_create();
- local viewport = VisualServer.viewport_create();
- VisualServer.viewport_attach_camera( viewport, camera );
- VisualServer.viewport_set_parent(viewport, RID() );
-
- VisualServer.camera_set_perspective(camera,60,0.1,20.0);
- cameratr=Transform( Matrix3(), Vector3(0,2,8))
- VisualServer.camera_set_transform(camera,cameratr);
-
- quit=false;
-
- init_internal()
-
- }
-
-
- function iteration(p_time) {
-
- // VisualServer.camera_set_transform(camera,cameratr);
- iteration_internal(p_time)
-
- return quit;
- }
-
- function idle(p_time) {
-
- return quit;
- }
-
-
- function finish() {
-
- }
-
-
- constructor() {
- MainLoopScripted.constructor();
- }
-
-}
-
-
-return PhysicsTestBase;
diff --git a/doc/examples/physics/script/test_fall.sq b/doc/examples/physics/script/test_fall.sq
deleted file mode 100644
index 79526da8b4..0000000000
--- a/doc/examples/physics/script/test_fall.sq
+++ /dev/null
@@ -1,42 +0,0 @@
-
-include("test_base.sq")
-
-class TestFall extends PhysicsTestBase {
-
-
- fall_elements=10
-
- function init_internal() {
-
- for (local i=0;i<10;i++) {
-
- local shape_idx=[
- PhysicsServer.SHAPE_SPHERE,
- PhysicsServer.SHAPE_BOX,
- PhysicsServer.SHAPE_CAPSULE,
- PhysicsServer.SHAPE_CYLINDER,
- PhysicsServer.SHAPE_CONVEX_POLYGON
- ];
-
- local stype=shape_idx[i%5];
-// stype=PhysicsServer.SHAPE_SPHERE;
-
- local t=Transform()
- t.set_origin(Vector3(-0.7+0.0*i,3.5+4.1*i,0))
- t.rotate_basis(Vector3(1,0,0),Math.PI/4*i)
-
- local b = create_body(stype,PhysicsServer.BODY_MODE_RIGID,t);
-
- }
-
- create_static_plane( Plane( Vector3(0,1,0), -1) );
-
- }
-
- constructor() {
- PhysicsTestBase.constructor()
- }
-}
-
-
-return TestFall
diff --git a/doc/gdscript.lyx b/doc/gdscript.lyx
deleted file mode 100644
index a4b2230121..0000000000
--- a/doc/gdscript.lyx
+++ /dev/null
@@ -1,2531 +0,0 @@
-#LyX 2.0 created this file. For more info see http://www.lyx.org/
-\lyxformat 413
-\begin_document
-\begin_header
-\textclass article
-\use_default_options true
-\maintain_unincluded_children false
-\language english
-\language_package default
-\inputencoding auto
-\fontencoding global
-\font_roman default
-\font_sans default
-\font_typewriter default
-\font_default_family default
-\use_non_tex_fonts false
-\font_sc false
-\font_osf false
-\font_sf_scale 100
-\font_tt_scale 100
-
-\graphics default
-\default_output_format default
-\output_sync 0
-\bibtex_command default
-\index_command default
-\paperfontsize default
-\use_hyperref false
-\papersize default
-\use_geometry false
-\use_amsmath 1
-\use_esint 1
-\use_mhchem 1
-\use_mathdots 1
-\cite_engine basic
-\use_bibtopic false
-\use_indices false
-\paperorientation portrait
-\suppress_date false
-\use_refstyle 0
-\index Index
-\shortcut idx
-\color #008000
-\end_index
-\secnumdepth 3
-\tocdepth 3
-\paragraph_separation indent
-\paragraph_indentation default
-\quotes_language english
-\papercolumns 1
-\papersides 1
-\paperpagestyle default
-\tracking_changes false
-\output_changes false
-\html_math_output 0
-\html_css_as_file 0
-\html_be_strict false
-\end_header
-
-\begin_body
-
-\begin_layout Title
-GD Scripting Language (GDScript)
-\end_layout
-
-\begin_layout Section
-Introduction
-\end_layout
-
-\begin_layout Standard
-GDScript is a high level, dynamically typed programming language used to
- create content.
- It uses a syntax that is very similar to the Python language (blocks are
- indent-based) and it's goal is to be very optimal and tigthly integrated
- with the engine, allowing great flexibility for content creation and integratio
-n.
-
-\end_layout
-
-\begin_layout Section
-Example
-\end_layout
-
-\begin_layout Standard
-Some people can learn better by just taking a look at the syntax, so here's
- a simple example of how it looks.
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset listings
-inline false
-status open
-
-\begin_layout Plain Layout
-
-#a file is a class!
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-#inheritance
-\end_layout
-
-\begin_layout Plain Layout
-
-extends BaseClass
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-#member variables
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-var a=5
-\end_layout
-
-\begin_layout Plain Layout
-
-var s="Hello"
-\end_layout
-
-\begin_layout Plain Layout
-
-var arr=[1,2,3]
-\end_layout
-
-\begin_layout Plain Layout
-
-var dict={"key":"value", 2:3}
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-#constants
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-const answer=42
-\end_layout
-
-\begin_layout Plain Layout
-
-const thename="Charly"
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-#built-in vector types
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-var v2 = Vector2(1,2)
-\end_layout
-
-\begin_layout Plain Layout
-
-var v3 = Vector3(1,2,3)
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-#function
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-func some_function(param1,param2):
-\end_layout
-
-\begin_layout Plain Layout
-
- var local_var=5
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
- if param1 < local_var:
-\end_layout
-
-\begin_layout Plain Layout
-
- print(param1)
-\end_layout
-
-\begin_layout Plain Layout
-
- elif param2 > 5:
-\end_layout
-
-\begin_layout Plain Layout
-
- print(param2)
-\end_layout
-
-\begin_layout Plain Layout
-
- else:
-\end_layout
-
-\begin_layout Plain Layout
-
- print("fail!")
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
- for i in range(20):
-\end_layout
-
-\begin_layout Plain Layout
-
- print(i)
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
- while(param2!=0):
-\end_layout
-
-\begin_layout Plain Layout
-
- param2-=1
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
- var local_var2 = param1+3
-\end_layout
-
-\begin_layout Plain Layout
-
- return local_var2
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-#subclass
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-class Something:
-\end_layout
-
-\begin_layout Plain Layout
-
- var a=10
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-#constructor
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-func _init():
-\end_layout
-
-\begin_layout Plain Layout
-
- print("constructed!")
-\end_layout
-
-\begin_layout Plain Layout
-
- var lv = Something.new()
-\end_layout
-
-\begin_layout Plain Layout
-
- print(lv.a)
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-Language
-\end_layout
-
-\begin_layout Subsection
-Identifiers
-\end_layout
-
-\begin_layout Standard
-Any string that restricts itself to alphabetic characters ('a' to 'z' and
- 'A' to 'Z'), digits ('0' to '9') and '_' qualifies as an identifier.
- As an extra restriction, identifiers must not begin with a digit.
- Identifiers are case-sensitive ('foo' is different to 'FOO').
-\end_layout
-
-\begin_layout Subsection
-Keywords
-\end_layout
-
-\begin_layout Standard
-The following is the list of keywords supported by the language.
- Since keywords are reserved words (tokens), they can't be used as identifiers.
-\end_layout
-
-\begin_layout Subsection
-Operators
-\end_layout
-
-\begin_layout Standard
-The following is the list of supported operators and their precedence (TODO,
- change since this was made to reflect python operators)
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="18" columns="2">
-<features tabularvalignment="middle">
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<row>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Operator
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Note
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-x[index]
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Subscription, Highest Priority
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-x.attribute
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Attribute Reference
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-extends
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Instance Type Checker
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-~
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Bitwise NOT
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
--x
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Negative
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-* / %
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Mult / Div / Remainder
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-+ -
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Addition / Substraction
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-<< >>
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Bit Shifting
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-&
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Bitwise AND
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-^
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Bitwise XOR
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-|
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Bitwise OR
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-< > == != >= <=
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Comparisons
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-in
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Content Test
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-! not
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Boolean NOT
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-and &&
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Boolean AND
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-or ||
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Boolean OR
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-= += -= *= /= ^= &= |=
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Assignment, Lowest Priority
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-Literals
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="6" columns="2">
-<features tabularvalignment="middle">
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<row>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Literal
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Name
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-45
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Base 10 Integer
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-0x8F51
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Base 16 (hex) Integer
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-3.14, 58.1e-10
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Floating Point Number (real)
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-'Hello',
-\begin_inset Quotes eld
-\end_inset
-
-Hi
-\begin_inset Quotes erd
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Strings
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-@'Hello', @'Hi'
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Internationalized Strings
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-Comments
-\end_layout
-
-\begin_layout Standard
-Anything from a '#' to the end of the line is ignored and is considered
- a comment.
-\end_layout
-
-\begin_layout Standard
-\begin_inset listings
-lstparams "language=Python"
-inline false
-status open
-
-\begin_layout Plain Layout
-
-# This is a comment
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-Built-in Types
-\end_layout
-
-\begin_layout Subsection
-Basic Bult-In Types
-\end_layout
-
-\begin_layout Standard
-A variable in GDScript can be assigned many of several built-in types.
-
-\end_layout
-
-\begin_layout Subsubsection
-null
-\end_layout
-
-\begin_layout Standard
-'null' is a data type that contains no information, nothing assigned, and
- it's just empy.
- It can only be set to one value: 'null'.
-\end_layout
-
-\begin_layout Subsubsection
-bool
-\end_layout
-
-\begin_layout Standard
-Boolean data type, can only contain 'true' or 'false'.
-\end_layout
-
-\begin_layout Subsubsection
-int
-\end_layout
-
-\begin_layout Standard
-Integer data type, can only contain integer numbers, negative and positive.
-\end_layout
-
-\begin_layout Subsubsection
-float
-\end_layout
-
-\begin_layout Standard
-contains a floating point value (real).
-\end_layout
-
-\begin_layout Subsubsection
-String
-\end_layout
-
-\begin_layout Standard
-Sequence of characters in unicode format.
- Strings can contain the standard C escape sequences.
-\end_layout
-
-\begin_layout Subsection
-Vector Built-In Types
-\end_layout
-
-\begin_layout Subsubsection
-Vector2/Size2
-\end_layout
-
-\begin_layout Standard
-2D vector type, containing x and y fields.
- Can alternatively access fields as width and height for readability.
- Can also be accessed as array.
-\end_layout
-
-\begin_layout Subsubsection
-Rect2
-\end_layout
-
-\begin_layout Standard
-2D Rectangle type.
- Contains 2 vectors fields,
-\begin_inset Quotes eld
-\end_inset
-
-pos
-\begin_inset Quotes erd
-\end_inset
-
- and size
-\begin_inset Quotes erd
-\end_inset
-
-.
- Alternatively contains an
-\begin_inset Quotes eld
-\end_inset
-
-end
-\begin_inset Quotes erd
-\end_inset
-
- field which is
-\begin_inset Quotes eld
-\end_inset
-
-pos+size
-\begin_inset Quotes erd
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Subsubsection
-Vector3
-\end_layout
-
-\begin_layout Standard
-3D vector type.
- Contains x, y and z fields.
- Can also be accessed as array.
-\end_layout
-
-\begin_layout Subsubsection
-Matrix32
-\end_layout
-
-\begin_layout Standard
-3x2 matrix used for 2D transforms.
-\end_layout
-
-\begin_layout Subsubsection
-Plane
-\end_layout
-
-\begin_layout Standard
-3D Plane type in normalized form.
- Contains a
-\begin_inset Quotes eld
-\end_inset
-
-normal
-\begin_inset Quotes erd
-\end_inset
-
- vector field and a
-\begin_inset Quotes eld
-\end_inset
-
-d
-\begin_inset Quotes erd
-\end_inset
-
- scalar distance.
-\end_layout
-
-\begin_layout Subsubsection
-Quat
-\end_layout
-
-\begin_layout Standard
-Quaternion, datatype used for representing a 3D rotation.
- It's useful for interpolating rotations.
-\end_layout
-
-\begin_layout Subsubsection
-AABB/Box3
-\end_layout
-
-\begin_layout Standard
-Axis Aligned bounding box (or alternatively, 3D box).
- Contains 2 vectors fields,
-\begin_inset Quotes eld
-\end_inset
-
-pos
-\begin_inset Quotes erd
-\end_inset
-
- and size
-\begin_inset Quotes erd
-\end_inset
-
-.
- Alternatively contains an
-\begin_inset Quotes eld
-\end_inset
-
-end
-\begin_inset Quotes erd
-\end_inset
-
- field which is
-\begin_inset Quotes eld
-\end_inset
-
-pos+size
-\begin_inset Quotes erd
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Subsubsection
-Matrix3
-\end_layout
-
-\begin_layout Standard
-3x3 matrix used for 3D rotation and scale.
- Contains 3 vector fields x,y and z.
- Can also be accessed as array of 3D vectors.
-\end_layout
-
-\begin_layout Subsubsection
-Transform
-\end_layout
-
-\begin_layout Standard
-3D Transform, contains a Matrix3 field
-\begin_inset Quotes eld
-\end_inset
-
-basis
-\begin_inset Quotes erd
-\end_inset
-
- and a Vector3 field
-\begin_inset Quotes eld
-\end_inset
-
-origin
-\begin_inset Quotes erd
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Subsection
-Engine Built-In Types
-\end_layout
-
-\begin_layout Subsubsection
-Color
-\end_layout
-
-\begin_layout Standard
-Color datatype, contains r,g,b,a fields.
- Can also be accessed as h,s,v for hue/saturation/value.
-\end_layout
-
-\begin_layout Subsubsection
-Image
-\end_layout
-
-\begin_layout Standard
-Contains a 2D Image of custom format and allows direct access to the pixels.
-\end_layout
-
-\begin_layout Subsubsection
-NodePath
-\end_layout
-
-\begin_layout Standard
-Compiled path to a node, used mainly in the scene system.
- Can be easily asigned from/to a String.
-\end_layout
-
-\begin_layout Subsubsection
-RID
-\end_layout
-
-\begin_layout Standard
-Resource ID (RID).
- Servers use generic RIDs to reference opaque data.
-\end_layout
-
-\begin_layout Subsubsection
-Object
-\end_layout
-
-\begin_layout Standard
-Base class for anything not a built-in type.
-
-\end_layout
-
-\begin_layout Subsubsection
-InputEvent
-\end_layout
-
-\begin_layout Standard
-Events from input devices are contained in very compact form in InputEvent
- objects.
- Due to fact they can be received in high amounts from frame to frame, they
- are optimized in their own datatype.
-
-\end_layout
-
-\begin_layout Subsection
-Container Built-In Types
-\end_layout
-
-\begin_layout Subsubsection
-Array
-\end_layout
-
-\begin_layout Standard
-Generic sequence of objects.
- It's size can be changed to anything and starts from index 0.
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset listings
-inline false
-status open
-
-\begin_layout Plain Layout
-
-var arr=[]
-\end_layout
-
-\begin_layout Plain Layout
-
-arr=[1,2,3]
-\end_layout
-
-\begin_layout Plain Layout
-
-arr[0]="Hi!"
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Arrays are allocated linearly in memory, so they are fast, but very large
- arrays (more than tens of thousands of elements) may cause fragmentation.
- There are specialized arrays for some built-in datatypes which do not suffer
- from this and use much less memory.
-\end_layout
-
-\begin_layout Subsubsection
-Dictionary
-\end_layout
-
-\begin_layout Standard
-Associative container which contains values referenced by unique keys.
-\end_layout
-
-\begin_layout Standard
-\begin_inset listings
-inline false
-status open
-
-\begin_layout Plain Layout
-
-var dict={4:5, "a key":"a value", 28:[1,2,3]}
-\end_layout
-
-\begin_layout Plain Layout
-
-dict["Hi!"]=0
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsubsection
-ByteArray
-\end_layout
-
-\begin_layout Standard
-Array of bytes.
- Can only contains bytes (integers from 0 to 255).
- Optimized for memory usage, can't fragment the memory.
-\end_layout
-
-\begin_layout Subsubsection
-IntArray
-\end_layout
-
-\begin_layout Standard
-Array of integers.
- Can only contain integers.
- Optimized for memory usage, can't fragment the memory.
-\end_layout
-
-\begin_layout Subsubsection
-FloatArray
-\end_layout
-
-\begin_layout Standard
-Array of floats, can only contain floats.
- Optimized for memory usage, can't fragment the memory.
-\end_layout
-
-\begin_layout Subsubsection
-StringArray
-\end_layout
-
-\begin_layout Standard
-Array of strings, can only contain strings.
- Optimized for memory usage, can't fragment the memory.
-\end_layout
-
-\begin_layout Subsubsection
-Vector2Array
-\end_layout
-
-\begin_layout Standard
-Array of Vector2, can only contain 2D Vectors.
- Optimized for memory usage, can't fragment the memory.
-\end_layout
-
-\begin_layout Subsubsection
-Vector3Array
-\end_layout
-
-\begin_layout Standard
-Array of Vector3, can only contain 3D Vectors.
- Optimized for memory usage, can't fragment the memory.
-\end_layout
-
-\begin_layout Subsubsection
-ColorArray
-\end_layout
-
-\begin_layout Standard
-Array of Color, can only contains colors.
- Optimized for memory usage, can't fragment the memory.
-\end_layout
-
-\begin_layout Section
-Data
-\end_layout
-
-\begin_layout Subsection
-Variables
-\end_layout
-
-\begin_layout Standard
-Variables can exist as class members or local to functions.
- They are created with the
-\begin_inset Quotes eld
-\end_inset
-
-var
-\begin_inset Quotes erd
-\end_inset
-
- keyword and may be, optionally, be assigned a value upon initialization.
-\end_layout
-
-\begin_layout Standard
-\begin_inset listings
-inline false
-status open
-
-\begin_layout Plain Layout
-
-var a # datatype is null by default
-\end_layout
-
-\begin_layout Plain Layout
-
-var b = 5
-\end_layout
-
-\begin_layout Plain Layout
-
-var c = 3.8
-\end_layout
-
-\begin_layout Plain Layout
-
-var d = b+c # variables are always initialized in order
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-Constants
-\end_layout
-
-\begin_layout Standard
-Constants are similar to variables, but must be constants or constant expression
-s and must be assigned on initialization.
-\end_layout
-
-\begin_layout Standard
-\begin_inset listings
-inline false
-status open
-
-\begin_layout Plain Layout
-
-const a = 5
-\end_layout
-
-\begin_layout Plain Layout
-
-const b = Vector2(20,20)
-\end_layout
-
-\begin_layout Plain Layout
-
-const c = 10+20 # constant expression
-\end_layout
-
-\begin_layout Plain Layout
-
-const d = Vector2(20,30).x # constant expression: 20
-\end_layout
-
-\begin_layout Plain Layout
-
-const e = [1,2,3,4][0] # constant expression: 1
-\end_layout
-
-\begin_layout Plain Layout
-
-const f = sin(20) # sin() can be used in constant expression
-\end_layout
-
-\begin_layout Plain Layout
-
-const g = x+20 # invalid, not a constant expression!
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-Functions
-\end_layout
-
-\begin_layout Standard
-Functions always belong to a class.
- The scope priority for variable look-up is: local -> class member -> global.
-
-\begin_inset Quotes eld
-\end_inset
-
-self
-\begin_inset Quotes erd
-\end_inset
-
- is provided as an option for accessing class members but is not required
- always (and must
-\emph on
-not
-\emph default
- be defined as first parameter, like in Python).
- For performance reasons, functions are not considered class members, so
- they can't be referenced directly.
- A function can return at any point.
- The default return value is null.
-\end_layout
-
-\begin_layout Standard
-\begin_inset listings
-inline false
-status open
-
-\begin_layout Plain Layout
-
-func myfunction(a,b):
-\end_layout
-
-\begin_layout Plain Layout
-
- print(a)
-\end_layout
-
-\begin_layout Plain Layout
-
- print(b)
-\end_layout
-
-\begin_layout Plain Layout
-
- return a+b # return is optional, otherwise null is returned
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsubsection
-Statements and Control Flow
-\end_layout
-
-\begin_layout Standard
-Statements are standard, and can be assignments, function calls, control
- flow structures, etc (see below).
-
-\begin_inset Quotes eld
-\end_inset
-
-;
-\begin_inset Quotes erd
-\end_inset
-
- as separator is entirely optional.
-\end_layout
-
-\begin_layout Subsubsection
-if/else/elif
-\end_layout
-
-\begin_layout Standard
-Simple conditions are created by using the
-\emph on
-if/else/elif
-\emph default
- syntax.
- Parenthesis around statements is allowed but not requiered.
- Given the nature of the tab-based indentation, elif can be used instead
- of else:/if: to mantain a level of indentation.
-\end_layout
-
-\begin_layout Standard
-\begin_inset listings
-inline false
-status open
-
-\begin_layout Plain Layout
-
-if [expression]:
-\end_layout
-
-\begin_layout Plain Layout
-
- statement(s)
-\end_layout
-
-\begin_layout Plain Layout
-
-elif [expression]:
-\end_layout
-
-\begin_layout Plain Layout
-
- statement(s)
-\end_layout
-
-\begin_layout Plain Layout
-
-else:
-\end_layout
-
-\begin_layout Plain Layout
-
- statement(s)
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsubsection
-while
-\end_layout
-
-\begin_layout Standard
-Simple loops are created by using
-\emph on
-while
-\emph default
- syntax.
- Loops can be broken using
-\emph on
-break
-\emph default
-, or continued using
-\emph on
-continue
-\emph default
-:
-\end_layout
-
-\begin_layout Standard
-\begin_inset listings
-inline false
-status open
-
-\begin_layout Plain Layout
-
-while [expression]:
-\end_layout
-
-\begin_layout Plain Layout
-
- statement(s)
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsubsection
-for
-\end_layout
-
-\begin_layout Standard
-To iterate a range, array or table a
-\emph on
-for
-\emph default
- loop is used.
- For loops store the index in the loop variable on each iteration.
-\end_layout
-
-\begin_layout Standard
-\begin_inset listings
-inline false
-status open
-
-\begin_layout Plain Layout
-
-for i in [0,1,2]:
-\end_layout
-
-\begin_layout Plain Layout
-
- statement # loop iterates 3 times, i being 0,1 and 2
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-var dict = {"a":0, "b":1, "c": 2}
-\end_layout
-
-\begin_layout Plain Layout
-
-for i in dict:
-\end_layout
-
-\begin_layout Plain Layout
-
- print(dict[i]) # loop iterates the keys, i being "a","b" and c".
- It prints 0, 1 and 2.
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-for i in range(3):
-\end_layout
-
-\begin_layout Plain Layout
-
- statement # similar to [0,1,2] but does not allocate an array
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-for i in range(1,3):
-\end_layout
-
-\begin_layout Plain Layout
-
- statement # similar to [1,2] but does not allocate an array
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-for i in range(2,8,2):
-\end_layout
-
-\begin_layout Plain Layout
-
- statement # similar to [2,4,6] but does not allocate an array
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-Classes
-\end_layout
-
-\begin_layout Standard
-By default, the body of a script file is an unnamed class, and it can only
- be referenced externally as a resource or file.
- Class syntax is meant to be very compact and can only contain member variables
- or functions.
- Static functions are allowed, but not static members (in the spirit of
- thread safety, since scripts can be initialized in separate threads without
- the user knowing).
- In the same way, member variables (including arrays and dictionaries) are
- initialized every time an instance is created.
-
-\end_layout
-
-\begin_layout Subsection
-Class File Example
-\end_layout
-
-\begin_layout Standard
-Example of a class file, imagine it being stored in a file like myclass.gd.
-\end_layout
-
-\begin_layout Standard
-\begin_inset listings
-inline false
-status open
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-var a=5
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-function print_value_of_a():
-\end_layout
-
-\begin_layout Plain Layout
-
- print(a)
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-Inheritance
-\end_layout
-
-\begin_layout Standard
-A class-file can inherit from a global class, another file or a subclass
- inside another file.
- Multiple inheritance is not allowed.
- The
-\begin_inset Quotes eld
-\end_inset
-
-extends
-\begin_inset Quotes erd
-\end_inset
-
- syntax is used:
-\end_layout
-
-\begin_layout Standard
-\begin_inset listings
-inline false
-status open
-
-\begin_layout Plain Layout
-
-# extend from some class (global)
-\end_layout
-
-\begin_layout Plain Layout
-
-extends SomeClass
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-# optionally, extend from another file
-\end_layout
-
-\begin_layout Plain Layout
-
-extends "somefile.gd"
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-# extend from a subclass in another file
-\end_layout
-
-\begin_layout Plain Layout
-
-extends "somefile.gd".Subclass
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-Inheritance Testing
-\end_layout
-
-\begin_layout Standard
-It is possible to check if an instance inherits from a given class.
- For this the
-\begin_inset Quotes eld
-\end_inset
-
-extends
-\begin_inset Quotes erd
-\end_inset
-
- keyword can be used as an operator instead:
-\end_layout
-
-\begin_layout Standard
-\begin_inset listings
-inline false
-status open
-
-\begin_layout Plain Layout
-
-static var enemy_class = preload("enemy.gd") # cache the enemy class
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-[..]
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-if ( entity extends enemy_class ):
-\end_layout
-
-\begin_layout Plain Layout
-
- entity.apply_damage()
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-Constructor
-\end_layout
-
-\begin_layout Standard
-A class can have an optional constructor, a function named
-\begin_inset Quotes eld
-\end_inset
-
-_init
-\begin_inset Quotes erd
-\end_inset
-
- that is called when the class is instanced.
-\end_layout
-
-\begin_layout Subsection
-Sub Classes
-\end_layout
-
-\begin_layout Standard
-A class file can have subclasses.
- Syntax should be straightforward:
-\end_layout
-
-\begin_layout Standard
-\begin_inset listings
-inline false
-status open
-
-\begin_layout Plain Layout
-
-class SomeSubClass:
-\end_layout
-
-\begin_layout Plain Layout
-
- var a=5
-\end_layout
-
-\begin_layout Plain Layout
-
- function print_value_of_a():
-\end_layout
-
-\begin_layout Plain Layout
-
- print(a)
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-function _init():
-\end_layout
-
-\begin_layout Plain Layout
-
- var sc = SomeSubClass.new() #instance by calling built-in new
-\end_layout
-
-\begin_layout Plain Layout
-
- sc.print_value_of_a()
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-Classes as Objects
-\end_layout
-
-\begin_layout Standard
-It may be desired at some point to load a class from a file and then instance
- it.
- Since the global scope does not exist, classes must be loaded as a resource.
- Instancing is done by calling the
-\begin_inset Quotes eld
-\end_inset
-
-new
-\begin_inset Quotes erd
-\end_inset
-
- function in a class object:
-\end_layout
-
-\begin_layout Standard
-\begin_inset listings
-inline false
-status open
-
-\begin_layout Plain Layout
-
-#load the class (loaded every time the script is instanced)
-\end_layout
-
-\begin_layout Plain Layout
-
-var MyClass = load("myclass.gd")
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-#alternatively, using the preload() function preloads the class at compile
- time
-\end_layout
-
-\begin_layout Plain Layout
-
-var MyClass2 = preload("myclass.gd")
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-function _init():
-\end_layout
-
-\begin_layout Plain Layout
-
- var a = MyClass.new()
-\end_layout
-
-\begin_layout Plain Layout
-
- a.somefunction()
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-Exports
-\end_layout
-
-\begin_layout Standard
-Class members can be exported.
- This means their value gets saved along with a scene.
- If class members have initializers to constant expressions, they will be
- available for editing in the property editor.
- Exporting is done by using the export keyword:
-\end_layout
-
-\begin_layout Standard
-\begin_inset listings
-inline false
-status open
-
-\begin_layout Plain Layout
-
-extends Button
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-export var data # value will be saved
-\end_layout
-
-\begin_layout Plain Layout
-
-export var number=5 # also available to the property editor
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-One of the fundamental benefits of exporting member variables is to have
- them visible in the property editor.
- This way artists and game designers can modify values that later influence
- how the program runs.
- For this, a special export syntax is provided for more detail in the exported
- variables:
-\end_layout
-
-\begin_layout Standard
-\begin_inset listings
-inline false
-status open
-
-\begin_layout Plain Layout
-
-#if the exported value assigns a constant or constant expression, the type
- will be infered and used in the editor
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-export var number=5
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-#export can take a basic datatype as argument, which will be used in the
- editor
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-export(int) var number
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-#export can also take a resource type as hint
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-export(Texture) var character_face
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-#integers and strings hint enumerated values
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-export(int,"Warrior","Magician","Thief") var character_class # (editor will
- set them as 0,1 and 2)
-\end_layout
-
-\begin_layout Plain Layout
-
-export(String,"Rebecca","Mary","Leah") var character_name
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-#strings as paths
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-export(String,FILE) var f # string is a path to a file
-\end_layout
-
-\begin_layout Plain Layout
-
-export(String,DIR) var f # string is a path to a directory
-\end_layout
-
-\begin_layout Plain Layout
-
-export(String,FILE,"*.txt") var f # string is a path to a file, custom filter
- provided as hint
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-#integers and floats hint ranges
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-export(int,20) var i # 0 to 20 allowed
-\end_layout
-
-\begin_layout Plain Layout
-
-export(int,-10,20) var j # -10 to 20 allowed
-\end_layout
-
-\begin_layout Plain Layout
-
-export(float,-10,20,0.2) var k # -10 to 20 allowed, with stepping of 0.2
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-#color can hint availability of alpha
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-export(Color,RGB) var col # Color is RGB
-\end_layout
-
-\begin_layout Plain Layout
-
-export(Color,RGBA) var col # Color is RGBA
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-It must be noted that even if the script is not being run while at the editor,
- the exported properties are still editable (see below for
-\begin_inset Quotes eld
-\end_inset
-
-tool
-\begin_inset Quotes erd
-\end_inset
-
-).
-\end_layout
-
-\begin_layout Subsection
-Static Functions
-\end_layout
-
-\begin_layout Standard
-A function can be declared static.
- When static, it has no access to the instance member variables or
-\begin_inset Quotes eld
-\end_inset
-
-self
-\begin_inset Quotes erd
-\end_inset
-
-.
- This is mainly useful to make libraries of helper functions:
-\end_layout
-
-\begin_layout Standard
-\begin_inset listings
-inline false
-status open
-
-\begin_layout Plain Layout
-
-static func sum2(a,b):
-\end_layout
-
-\begin_layout Plain Layout
-
- return a+b
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-Asserting
-\end_layout
-
-\begin_layout Standard
-It is possible to assert a condition, which will cause a debugger break
- if false.
- Just use the built-in 'assert' function.
-\end_layout
-
-\begin_layout Standard
-\begin_inset listings
-inline false
-status open
-
-\begin_layout Plain Layout
-
-assert(a==2)
-\end_layout
-
-\begin_layout Plain Layout
-
-# if a is not 2, it will generate a debugger break
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-Tool Mode
-\end_layout
-
-\begin_layout Standard
-Scripts by default don't run inside the editor, and only the exported properties
- can be changed.
- In some cases it is desired that they do (as long as they don't execute
- game code or manually avoid doing so).
- For this, the
-\begin_inset Quotes eld
-\end_inset
-
-tool
-\begin_inset Quotes erd
-\end_inset
-
- keyword exists, and must be placed at the top of the file:
-\end_layout
-
-\begin_layout Standard
-\begin_inset listings
-inline false
-status open
-
-\begin_layout Plain Layout
-
-tool
-\end_layout
-
-\begin_layout Plain Layout
-
-extends Button
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-func _init():
-\end_layout
-
-\begin_layout Plain Layout
-
- print("Hello")
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-Memory Management
-\end_layout
-
-\begin_layout Standard
-If a class inherits from
-\emph on
-Reference
-\emph default
-, then instances will be freed when no longer in use.
- No garbage collector exists, just simple reference counting.
- By default, all classes that don't define inheritance extend
-\emph on
-Reference
-\emph default
-.
- If this is not desired, then a class must inherit
-\emph on
-Object
-\emph default
- manually and must call instance.free().
- To avoid reference cycles that can't be freed, a weakref() function is
- provided for creating weak references.
-
-\end_layout
-
-\begin_layout Subsection
-Function References
-\end_layout
-
-\begin_layout Standard
-Functions can't be referenced because they are not treated as class members.
- There are two alternatives to this, though.
- The
-\begin_inset Quotes eld
-\end_inset
-
-call
-\begin_inset Quotes erd
-\end_inset
-
- function or the funcref() helper.
-\end_layout
-
-\begin_layout Standard
-\begin_inset listings
-inline false
-status open
-
-\begin_layout Plain Layout
-
-instance.call("funcname",args) # call a function by bane
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-var fr = funcref(instance,"funcname") #create a function ref
-\end_layout
-
-\begin_layout Plain Layout
-
-fr.exec(args)
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_body
-\end_document
diff --git a/doc/godot_splash.png b/doc/godot_splash.png
deleted file mode 100644
index da56fa15cc..0000000000
--- a/doc/godot_splash.png
+++ /dev/null
Binary files differ
diff --git a/doc/header.txt b/doc/header.txt
deleted file mode 100644
index 359949cc3b..0000000000
--- a/doc/header.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-/*************************************************/
-/* $filename */
-/*************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/*************************************************/
-/* Source code within this file is: */
-/* (c) 2007-2010 Juan Linietsky, Ariel Manzur */
-/* All Rights Reserved. */
-/*************************************************/
-
-
diff --git a/doc/html/@GDScript.html b/doc/html/@GDScript.html
deleted file mode 100644
index 5d5d77ffbf..0000000000
--- a/doc/html/@GDScript.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<html><link href="main.css" rel="stylesheet" type="text/css" /><body><table class="top_table"><tr><td class="top_table"><image src="images/logo.png" /></td><td class="top_table"><a href="index.html">Index</a></td><td class="top_table"><a href="alphabetical.html">Classes</a></td><td class="top_table"><a href="category.html">Categories</a></td><td><a href="inheritance.html">Inheritance</a></td></tr></table><hr /><div class="class"><a name="@GDScript"><h3 class="title class_title">@GDScript</h3></a><div class="description class_description">
- Built-in GDScript functions.
- </div><br /><div class="category"><span class="category">Category: </span><a class="category_ref" href="category.html#CATEGORY_Core">Core</a></div><h4>Public Methods:</h4><table class="method_list"><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_sin">sin</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_cos">cos</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_tan">tan</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_sinh">sinh</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_cosh">cosh</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_tanh">tanh</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_asin">asin</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_acos">acos</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_atan">atan</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_atan2">atan2</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>x</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>y</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_sqrt">sqrt</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_fmod">fmod</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>x</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>y</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_fposmod">fposmod</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>x</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>y</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_floor">floor</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_ceil">ceil</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_round">round</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_abs">abs</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_sign">sign</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_pow">pow</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>x</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>y</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_log">log</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_exp">exp</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_isnan">isnan</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_isinf">isinf</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_ease">ease</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>curve</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_decimals">decimals</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>step</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_stepify">stepify</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>step</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="int.html">int </a></td><td><span class="identifier funcdef"><a href="#@GDScript_rand">rand</a></span><span class="symbol"> (</span><span class="symbol">)</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_randf">randf</a></span><span class="symbol"> (</span><span class="symbol">)</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_rand_range">rand_range</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>from</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>to</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="Array.html">Array </a></td><td><span class="identifier funcdef"><a href="#@GDScript_rand_seed">rand_seed</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>seed</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_deg2rad">deg2rad</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>deg</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_rad2deg">rad2deg</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>rad</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_linear2db">linear2db</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>nrg</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_db2linear">db2linear</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>db</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_max">max</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>a</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>b</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_min">min</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>a</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>b</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="real.html">real </a></td><td><span class="identifier funcdef"><a href="#@GDScript_clamp">clamp</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>val</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>min</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>max</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="int.html">int </a></td><td><span class="identifier funcdef"><a href="#@GDScript_nearest_po2">nearest_po2</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="int.html">int </a><span>val</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="Object.html">Object </a></td><td><span class="identifier funcdef"><a href="#@GDScript_weakref">weakref</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="Object.html">Object </a><span>obj</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="Object.html">Object </a></td><td><span class="identifier funcdef"><a href="#@GDScript_convert">convert</a></span><span class="symbol"> (</span><span> </span><span class="datatype">var </span><span>what</span><span>, </span><a class="datatype_existing" href="int.html">int </a><span>type</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="String.html">String </a></td><td><span class="identifier funcdef"><a href="#@GDScript_str">str</a></span><span class="symbol"> (</span><span> </span><span class="datatype">var </span><span>what</span><span>, </span><span class="datatype">var </span><span>...</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="Nil.html">Nil </a></td><td><span class="identifier funcdef"><a href="#@GDScript_print">print</a></span><span class="symbol"> (</span><span> </span><span class="datatype">var </span><span>what</span><span>, </span><span class="datatype">var </span><span>...</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="Nil.html">Nil </a></td><td><span class="identifier funcdef"><a href="#@GDScript_printerr">printerr</a></span><span class="symbol"> (</span><span> </span><span class="datatype">var </span><span>what</span><span>, </span><span class="datatype">var </span><span>...</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="Nil.html">Nil </a></td><td><span class="identifier funcdef"><a href="#@GDScript_printraw">printraw</a></span><span class="symbol"> (</span><span> </span><span class="datatype">var </span><span>what</span><span>, </span><span class="datatype">var </span><span>...</span><span class="symbol"> )</span></td></tr><tr class="method"><td align="right"><a class="datatype_existing" href="Array.html">Array </a></td><td><span class="identifier funcdef"><a href="#@GDScript_range">range</a></span><span class="symbol"> (</span><span> </span><span class="datatype">var </span><span>...</span><span class="symbol"> )</span></td></tr></table><h4>Description:</h4><div class="description">
- This contains the list of built-in gdscript functions. Mostly math functions and other utilities. Everything else is expanded by objects.
- </div><h4>Method Documentation:</h4><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_sin">@GDScript::sin</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
- Standard sine function.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_cos">@GDScript::cos</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
- Standard cosine function.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_tan">@GDScript::tan</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
- Standard tangent function.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_sinh">@GDScript::sinh</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
- Hyperbolic sine.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_tanh">@GDScript::tanh</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
- Hyperbolic tangent.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_asin">@GDScript::asin</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
- Arc-sine.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_acos">@GDScript::acos</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
- Arc-cosine.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_atan">@GDScript::atan</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
- Arc-tangent.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_atan2">@GDScript::atan2</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>x</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>y</span><span class="symbol"> )</span></div><div class="description">
- Arc-tangent that takes a 2D vector as argument, retuns the full -pi to +pi range.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_sqrt">@GDScript::sqrt</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
- Square root.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_fmod">@GDScript::fmod</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>x</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>y</span><span class="symbol"> )</span></div><div class="description">
- Module (remainder of x/y).
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_fposmod">@GDScript::fposmod</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>x</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>y</span><span class="symbol"> )</span></div><div class="description">
- Module (remainder of x/y) that wraps equally in positive and negative.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_floor">@GDScript::floor</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
- Floor (rounds down to nearest integer).
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_ceil">@GDScript::ceil</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
- Ceiling (rounds up to nearest integer).
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_round">@GDScript::round</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
- Round to nearest integer.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_abs">@GDScript::abs</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
- Remove sign (works for integer and float).
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_sign">@GDScript::sign</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
- Return sign (-1 or +1).
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_pow">@GDScript::pow</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>x</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>y</span><span class="symbol"> )</span></div><div class="description">
- Power function, x elevate to y.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_log">@GDScript::log</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
- Natural logarithm.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_exp">@GDScript::exp</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
- Exponential logarithm.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_isnan">@GDScript::isnan</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
- Return true if the float is not a number.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_isinf">@GDScript::isinf</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span class="symbol"> )</span></div><div class="description">
- Return true if the float is infinite.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_ease">@GDScript::ease</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>curve</span><span class="symbol"> )</span></div><div class="description">
- Easing function, based on exponent. 0 is constant, 1 is linear, 0 to 1 is ease-in, 1+ is ease out. Negative values are in-out/out in.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_decimals">@GDScript::decimals</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>step</span><span class="symbol"> )</span></div><div class="description">
- Return the amount of decimals in the floating point value.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_stepify">@GDScript::stepify</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>s</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>step</span><span class="symbol"> )</span></div><div class="description">
- Snap float value to a given step.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="int.html">int </a><span class="funcdecl"><a name="@GDScript_rand">@GDScript::rand</a></span><span class="symbol"> (</span><span class="symbol">)</span></div><div class="description">
- Random value (integer).
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_randf">@GDScript::randf</a></span><span class="symbol"> (</span><span class="symbol">)</span></div><div class="description">
- Random value (0 to 1 float).
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_rand_range">@GDScript::rand_range</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>from</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>to</span><span class="symbol"> )</span></div><div class="description">
- Random range.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="Array.html">Array </a><span class="funcdecl"><a name="@GDScript_rand_seed">@GDScript::rand_seed</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>seed</span><span class="symbol"> )</span></div><div class="description">
- random from seed, pass a seed and an array with both number and new seed is returned.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_deg2rad">@GDScript::deg2rad</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>deg</span><span class="symbol"> )</span></div><div class="description">
- Convert from degrees to radians.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_rad2deg">@GDScript::rad2deg</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>rad</span><span class="symbol"> )</span></div><div class="description">
- Convert from radias to degrees.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_linear2db">@GDScript::linear2db</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>nrg</span><span class="symbol"> )</span></div><div class="description">
- Convert from linear energy to decibels (audio).
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_db2linear">@GDScript::db2linear</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>db</span><span class="symbol"> )</span></div><div class="description">
- Convert from decibels to linear energy (audio).
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_max">@GDScript::max</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>a</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>b</span><span class="symbol"> )</span></div><div class="description">
- Return the maximum of two values.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_min">@GDScript::min</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>a</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>b</span><span class="symbol"> )</span></div><div class="description">
- Return the minimum of two values.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="real.html">real </a><span class="funcdecl"><a name="@GDScript_clamp">@GDScript::clamp</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="real.html">real </a><span>val</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>min</span><span>, </span><a class="datatype_existing" href="real.html">real </a><span>max</span><span class="symbol"> )</span></div><div class="description">
- Clamp both values to a range.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="int.html">int </a><span class="funcdecl"><a name="@GDScript_nearest_po2">@GDScript::nearest_po2</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="int.html">int </a><span>val</span><span class="symbol"> )</span></div><div class="description">
- Return the nearest larger power of 2 for an integer.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="Object.html">Object </a><span class="funcdecl"><a name="@GDScript_weakref">@GDScript::weakref</a></span><span class="symbol"> (</span><span> </span><a class="datatype_existing" href="Object.html">Object </a><span>obj</span><span class="symbol"> )</span></div><div class="description">
- Return a weak reference to an object.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="Object.html">Object </a><span class="funcdecl"><a name="@GDScript_convert">@GDScript::convert</a></span><span class="symbol"> (</span><span> </span><span class="datatype">var </span><span>what</span><span>, </span><a class="datatype_existing" href="int.html">int </a><span>type</span><span class="symbol"> )</span></div><div class="description">
- Convert from a type to another in the best way possible. The "type" parameter uses the enum TYPE_* in Global Scope.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="String.html">String </a><span class="funcdecl"><a name="@GDScript_str">@GDScript::str</a></span><span class="symbol"> (</span><span> </span><span class="datatype">var </span><span>what</span><span>, </span><span class="datatype">var </span><span>...</span><span class="symbol"> )</span></div><div class="description">
- Convert one or more arguments to strings in the best way possible.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="Nil.html">Nil </a><span class="funcdecl"><a name="@GDScript_print">@GDScript::print</a></span><span class="symbol"> (</span><span> </span><span class="datatype">var </span><span>what</span><span>, </span><span class="datatype">var </span><span>...</span><span class="symbol"> )</span></div><div class="description">
- Print one or more arguments to strings in the best way possible to a console line.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="Nil.html">Nil </a><span class="funcdecl"><a name="@GDScript_printerr">@GDScript::printerr</a></span><span class="symbol"> (</span><span> </span><span class="datatype">var </span><span>what</span><span>, </span><span class="datatype">var </span><span>...</span><span class="symbol"> )</span></div><div class="description">
- Print one or more arguments to strings in the best way possible to standard error line.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="Nil.html">Nil </a><span class="funcdecl"><a name="@GDScript_printraw">@GDScript::printraw</a></span><span class="symbol"> (</span><span> </span><span class="datatype">var </span><span>what</span><span>, </span><span class="datatype">var </span><span>...</span><span class="symbol"> )</span></div><div class="description">
- Print one or more arguments to strings in the best way possible to console. No newline is added at the end.
- </div></div><div class="method_doc"><div class="method"><a class="datatype_existing" href="Array.html">Array </a><span class="funcdecl"><a name="@GDScript_range">@GDScript::range</a></span><span class="symbol"> (</span><span> </span><span class="datatype">var </span><span>...</span><span class="symbol"> )</span></div><div class="description">
- Return an array with the given range. Range can be 1 argument N (0 to N-1), two arguments (initial, final-1) or three arguments (initial,final-1,increment).
- </div></div></div><hr /><span>Copyright 2008-2010 Codenix SRL</span></body></html> \ No newline at end of file
diff --git a/doc/html/@Global Scope.html b/doc/html/@Global Scope.html
deleted file mode 100644
index 3324383c3d..0000000000
--- a/doc/html/@Global Scope.html
+++ /dev/null
@@ -1,459 +0,0 @@
-<html><link href="main.css" rel="stylesheet" type="text/css" /><body><table class="top_table"><tr><td class="top_table"><image src="images/logo.png" /></td><td class="top_table"><a href="index.html">Index</a></td><td class="top_table"><a href="alphabetical.html">Classes</a></td><td class="top_table"><a href="category.html">Categories</a></td><td><a href="inheritance.html">Inheritance</a></td></tr></table><hr /><div class="class"><a name="@Global Scope"><h3 class="title class_title">@Global Scope</h3></a><div class="description class_description">
- Global scope constants and variables.
- </div><br /><div class="category"><span class="category">Category: </span><a class="category_ref" href="category.html#CATEGORY_Core">Core</a></div><h4>Public Variables:</h4><div class="member_list"><li><div class="member"><a class="datatype_existing" href="Globals.html">Globals </a><span class="identifier member_name"> Globals </span><span class="member_description">
- </span></div></li><li><div class="member"><a class="datatype_existing" href="IP.html">IP </a><span class="identifier member_name"> IP </span><span class="member_description">
- </span></div></li><li><div class="member"><a class="datatype_existing" href="Geometry.html">Geometry </a><span class="identifier member_name"> Geometry </span><span class="member_description">
- </span></div></li><li><div class="member"><a class="datatype_existing" href="ResourceLoader.html">ResourceLoader </a><span class="identifier member_name"> ResourceLoader </span><span class="member_description">
- </span></div></li><li><div class="member"><a class="datatype_existing" href="ResourceSaver.html">ResourceSaver </a><span class="identifier member_name"> ResourceSaver </span><span class="member_description">
- </span></div></li><li><div class="member"><a class="datatype_existing" href="PathRemap.html">PathRemap </a><span class="identifier member_name"> PathRemap </span><span class="member_description">
- </span></div></li><li><div class="member"><a class="datatype_existing" href="OS.html">OS </a><span class="identifier member_name"> OS </span><span class="member_description">
- </span></div></li><li><div class="member"><a class="datatype_existing" href="TranslationServer.html">TranslationServer </a><span class="identifier member_name"> TranslationServer </span><span class="member_description">
- </span></div></li><li><div class="member"><a class="datatype_existing" href="TranslationServer.html">TranslationServer </a><span class="identifier member_name"> TS </span><span class="member_description">
- </span></div></li><li><div class="member"><a class="datatype_existing" href="SceneIO.html">SceneIO </a><span class="identifier member_name"> SceneIO </span><span class="member_description">
- </span></div></li><li><div class="member"><a class="datatype_existing" href="VisualServer.html">VisualServer </a><span class="identifier member_name"> VisualServer </span><span class="member_description">
- </span></div></li><li><div class="member"><a class="datatype_existing" href="VisualServer.html">VisualServer </a><span class="identifier member_name"> VS </span><span class="member_description">
- </span></div></li><li><div class="member"><a class="datatype_existing" href="AudioServer.html">AudioServer </a><span class="identifier member_name"> AudioServer </span><span class="member_description">
- </span></div></li><li><div class="member"><a class="datatype_existing" href="AudioServer.html">AudioServer </a><span class="identifier member_name"> AS </span><span class="member_description">
- </span></div></li><li><div class="member"><a class="datatype_existing" href="PhysicsServer.html">PhysicsServer </a><span class="identifier member_name"> PhysicsServer </span><span class="member_description">
- </span></div></li><li><div class="member"><a class="datatype_existing" href="PhysicsServer.html">PhysicsServer </a><span class="identifier member_name"> PS </span><span class="member_description">
- </span></div></li><li><div class="member"><a class="datatype_existing" href="Physics2DServer.html">Physics2DServer </a><span class="identifier member_name"> Physics2DServer </span><span class="member_description">
- </span></div></li><li><div class="member"><a class="datatype_existing" href="Physics2DServer.html">Physics2DServer </a><span class="identifier member_name"> PS2D </span><span class="member_description">
- </span></div></li><li><div class="member"><a class="datatype_existing" href="SpatialSound2DServer.html">SpatialSound2DServer </a><span class="identifier member_name"> SpatialSoundServer </span><span class="member_description">
- </span></div></li><li><div class="member"><a class="datatype_existing" href="SpatialSound2DServer.html">SpatialSound2DServer </a><span class="identifier member_name"> SS </span><span class="member_description">
- </span></div></li><li><div class="member"><a class="datatype_existing" href="SpatialSound2DServer.html">SpatialSound2DServer </a><span class="identifier member_name"> SpatialSound2DServer </span><span class="member_description">
- </span></div></li><li><div class="member"><a class="datatype_existing" href="SpatialSound2DServer.html">SpatialSound2DServer </a><span class="identifier member_name"> SS2D </span><span class="member_description">
- </span></div></li></div><h4>Constants:</h4><div class="constant_list"><li><div class="constant"><span class="identifier constant_name">MARGIN_LEFT </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">MARGIN_TOP </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">MARGIN_RIGHT </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">MARGIN_BOTTOM </span><span class="symbol">= </span><span class="constant_value">3 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">VERTICAL </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">HORIZONTAL </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">HALIGN_LEFT </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">HALIGN_CENTER </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">HALIGN_RIGHT </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">VALIGN_TOP </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">VALIGN_CENTER </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">VALIGN_BOTTOM </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">SPKEY </span><span class="symbol">= </span><span class="constant_value">16777216 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ESCAPE </span><span class="symbol">= </span><span class="constant_value">16777217 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_TAB </span><span class="symbol">= </span><span class="constant_value">16777218 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_BACKTAB </span><span class="symbol">= </span><span class="constant_value">16777219 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_BACKSPACE </span><span class="symbol">= </span><span class="constant_value">16777220 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_RETURN </span><span class="symbol">= </span><span class="constant_value">16777221 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ENTER </span><span class="symbol">= </span><span class="constant_value">16777222 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_INSERT </span><span class="symbol">= </span><span class="constant_value">16777223 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_DELETE </span><span class="symbol">= </span><span class="constant_value">16777224 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_PAUSE </span><span class="symbol">= </span><span class="constant_value">16777225 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_PRINT </span><span class="symbol">= </span><span class="constant_value">16777226 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_SYSREQ </span><span class="symbol">= </span><span class="constant_value">16777227 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_CLEAR </span><span class="symbol">= </span><span class="constant_value">16777228 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_HOME </span><span class="symbol">= </span><span class="constant_value">16777229 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_END </span><span class="symbol">= </span><span class="constant_value">16777230 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LEFT </span><span class="symbol">= </span><span class="constant_value">16777231 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_UP </span><span class="symbol">= </span><span class="constant_value">16777232 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_RIGHT </span><span class="symbol">= </span><span class="constant_value">16777233 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_DOWN </span><span class="symbol">= </span><span class="constant_value">16777234 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_PAGEUP </span><span class="symbol">= </span><span class="constant_value">16777235 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_PAGEDOWN </span><span class="symbol">= </span><span class="constant_value">16777236 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_SHIFT </span><span class="symbol">= </span><span class="constant_value">16777237 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_CONTROL </span><span class="symbol">= </span><span class="constant_value">16777238 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_META </span><span class="symbol">= </span><span class="constant_value">16777239 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ALT </span><span class="symbol">= </span><span class="constant_value">16777240 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_CAPSLOCK </span><span class="symbol">= </span><span class="constant_value">16777241 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_NUMLOCK </span><span class="symbol">= </span><span class="constant_value">16777242 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_SCROLLLOCK </span><span class="symbol">= </span><span class="constant_value">16777243 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F1 </span><span class="symbol">= </span><span class="constant_value">16777244 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F2 </span><span class="symbol">= </span><span class="constant_value">16777245 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F3 </span><span class="symbol">= </span><span class="constant_value">16777246 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F4 </span><span class="symbol">= </span><span class="constant_value">16777247 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F5 </span><span class="symbol">= </span><span class="constant_value">16777248 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F6 </span><span class="symbol">= </span><span class="constant_value">16777249 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F7 </span><span class="symbol">= </span><span class="constant_value">16777250 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F8 </span><span class="symbol">= </span><span class="constant_value">16777251 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F9 </span><span class="symbol">= </span><span class="constant_value">16777252 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F10 </span><span class="symbol">= </span><span class="constant_value">16777253 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F11 </span><span class="symbol">= </span><span class="constant_value">16777254 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F12 </span><span class="symbol">= </span><span class="constant_value">16777255 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F13 </span><span class="symbol">= </span><span class="constant_value">16777256 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F14 </span><span class="symbol">= </span><span class="constant_value">16777257 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F15 </span><span class="symbol">= </span><span class="constant_value">16777258 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F16 </span><span class="symbol">= </span><span class="constant_value">16777259 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_ENTER </span><span class="symbol">= </span><span class="constant_value">16777344 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_MULTIPLY </span><span class="symbol">= </span><span class="constant_value">16777345 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_DIVIDE </span><span class="symbol">= </span><span class="constant_value">16777346 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_SUBSTRACT </span><span class="symbol">= </span><span class="constant_value">16777347 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_PERIOD </span><span class="symbol">= </span><span class="constant_value">16777348 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_ADD </span><span class="symbol">= </span><span class="constant_value">16777349 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_0 </span><span class="symbol">= </span><span class="constant_value">16777350 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_1 </span><span class="symbol">= </span><span class="constant_value">16777351 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_2 </span><span class="symbol">= </span><span class="constant_value">16777352 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_3 </span><span class="symbol">= </span><span class="constant_value">16777353 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_4 </span><span class="symbol">= </span><span class="constant_value">16777354 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_5 </span><span class="symbol">= </span><span class="constant_value">16777355 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_6 </span><span class="symbol">= </span><span class="constant_value">16777356 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_7 </span><span class="symbol">= </span><span class="constant_value">16777357 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_8 </span><span class="symbol">= </span><span class="constant_value">16777358 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_KP_9 </span><span class="symbol">= </span><span class="constant_value">16777359 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_SUPER_L </span><span class="symbol">= </span><span class="constant_value">16777260 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_SUPER_R </span><span class="symbol">= </span><span class="constant_value">16777261 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MENU </span><span class="symbol">= </span><span class="constant_value">16777262 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_HYPER_L </span><span class="symbol">= </span><span class="constant_value">16777263 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_HYPER_R </span><span class="symbol">= </span><span class="constant_value">16777264 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_HELP </span><span class="symbol">= </span><span class="constant_value">16777265 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_DIRECTION_L </span><span class="symbol">= </span><span class="constant_value">16777266 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_DIRECTION_R </span><span class="symbol">= </span><span class="constant_value">16777267 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_BACK </span><span class="symbol">= </span><span class="constant_value">16777280 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_FORWARD </span><span class="symbol">= </span><span class="constant_value">16777281 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_STOP </span><span class="symbol">= </span><span class="constant_value">16777282 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_REFRESH </span><span class="symbol">= </span><span class="constant_value">16777283 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_VOLUMEDOWN </span><span class="symbol">= </span><span class="constant_value">16777284 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_VOLUMEMUTE </span><span class="symbol">= </span><span class="constant_value">16777285 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_VOLUMEUP </span><span class="symbol">= </span><span class="constant_value">16777286 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_BASSBOOST </span><span class="symbol">= </span><span class="constant_value">16777287 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_BASSUP </span><span class="symbol">= </span><span class="constant_value">16777288 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_BASSDOWN </span><span class="symbol">= </span><span class="constant_value">16777289 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_TREBLEUP </span><span class="symbol">= </span><span class="constant_value">16777290 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_TREBLEDOWN </span><span class="symbol">= </span><span class="constant_value">16777291 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MEDIAPLAY </span><span class="symbol">= </span><span class="constant_value">16777292 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MEDIASTOP </span><span class="symbol">= </span><span class="constant_value">16777293 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MEDIAPREVIOUS </span><span class="symbol">= </span><span class="constant_value">16777294 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MEDIANEXT </span><span class="symbol">= </span><span class="constant_value">16777295 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MEDIARECORD </span><span class="symbol">= </span><span class="constant_value">16777296 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_HOMEPAGE </span><span class="symbol">= </span><span class="constant_value">16777297 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_FAVORITES </span><span class="symbol">= </span><span class="constant_value">16777298 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_SEARCH </span><span class="symbol">= </span><span class="constant_value">16777299 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_STANDBY </span><span class="symbol">= </span><span class="constant_value">16777300 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_OPENURL </span><span class="symbol">= </span><span class="constant_value">16777301 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCHMAIL </span><span class="symbol">= </span><span class="constant_value">16777302 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCHMEDIA </span><span class="symbol">= </span><span class="constant_value">16777303 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCH0 </span><span class="symbol">= </span><span class="constant_value">16777304 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCH1 </span><span class="symbol">= </span><span class="constant_value">16777305 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCH2 </span><span class="symbol">= </span><span class="constant_value">16777306 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCH3 </span><span class="symbol">= </span><span class="constant_value">16777307 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCH4 </span><span class="symbol">= </span><span class="constant_value">16777308 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCH5 </span><span class="symbol">= </span><span class="constant_value">16777309 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCH6 </span><span class="symbol">= </span><span class="constant_value">16777310 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCH7 </span><span class="symbol">= </span><span class="constant_value">16777311 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCH8 </span><span class="symbol">= </span><span class="constant_value">16777312 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCH9 </span><span class="symbol">= </span><span class="constant_value">16777313 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCHA </span><span class="symbol">= </span><span class="constant_value">16777314 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCHB </span><span class="symbol">= </span><span class="constant_value">16777315 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCHC </span><span class="symbol">= </span><span class="constant_value">16777316 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCHD </span><span class="symbol">= </span><span class="constant_value">16777317 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCHE </span><span class="symbol">= </span><span class="constant_value">16777318 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LAUNCHF </span><span class="symbol">= </span><span class="constant_value">16777319 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_UNKNOWN </span><span class="symbol">= </span><span class="constant_value">33554431 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_SPACE </span><span class="symbol">= </span><span class="constant_value">32 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_EXCLAM </span><span class="symbol">= </span><span class="constant_value">33 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_QUOTEDBL </span><span class="symbol">= </span><span class="constant_value">34 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_NUMBERSIGN </span><span class="symbol">= </span><span class="constant_value">35 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_DOLLAR </span><span class="symbol">= </span><span class="constant_value">36 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_PERCENT </span><span class="symbol">= </span><span class="constant_value">37 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_AMPERSAND </span><span class="symbol">= </span><span class="constant_value">38 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_APOSTROPHE </span><span class="symbol">= </span><span class="constant_value">39 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_PARENLEFT </span><span class="symbol">= </span><span class="constant_value">40 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_PARENRIGHT </span><span class="symbol">= </span><span class="constant_value">41 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ASTERISK </span><span class="symbol">= </span><span class="constant_value">42 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_PLUS </span><span class="symbol">= </span><span class="constant_value">43 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_COMMA </span><span class="symbol">= </span><span class="constant_value">44 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MINUS </span><span class="symbol">= </span><span class="constant_value">45 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_PERIOD </span><span class="symbol">= </span><span class="constant_value">46 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_SLASH </span><span class="symbol">= </span><span class="constant_value">47 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_0 </span><span class="symbol">= </span><span class="constant_value">48 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_1 </span><span class="symbol">= </span><span class="constant_value">49 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_2 </span><span class="symbol">= </span><span class="constant_value">50 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_3 </span><span class="symbol">= </span><span class="constant_value">51 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_4 </span><span class="symbol">= </span><span class="constant_value">52 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_5 </span><span class="symbol">= </span><span class="constant_value">53 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_6 </span><span class="symbol">= </span><span class="constant_value">54 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_7 </span><span class="symbol">= </span><span class="constant_value">55 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_8 </span><span class="symbol">= </span><span class="constant_value">56 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_9 </span><span class="symbol">= </span><span class="constant_value">57 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_COLON </span><span class="symbol">= </span><span class="constant_value">58 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_SEMICOLON </span><span class="symbol">= </span><span class="constant_value">59 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_LESS </span><span class="symbol">= </span><span class="constant_value">60 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_EQUAL </span><span class="symbol">= </span><span class="constant_value">61 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_GREATER </span><span class="symbol">= </span><span class="constant_value">62 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_QUESTION </span><span class="symbol">= </span><span class="constant_value">63 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_AT </span><span class="symbol">= </span><span class="constant_value">64 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_A </span><span class="symbol">= </span><span class="constant_value">65 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_B </span><span class="symbol">= </span><span class="constant_value">66 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_C </span><span class="symbol">= </span><span class="constant_value">67 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_D </span><span class="symbol">= </span><span class="constant_value">68 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_E </span><span class="symbol">= </span><span class="constant_value">69 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_F </span><span class="symbol">= </span><span class="constant_value">70 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_G </span><span class="symbol">= </span><span class="constant_value">71 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_H </span><span class="symbol">= </span><span class="constant_value">72 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_I </span><span class="symbol">= </span><span class="constant_value">73 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_J </span><span class="symbol">= </span><span class="constant_value">74 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_K </span><span class="symbol">= </span><span class="constant_value">75 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_L </span><span class="symbol">= </span><span class="constant_value">76 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_M </span><span class="symbol">= </span><span class="constant_value">77 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_N </span><span class="symbol">= </span><span class="constant_value">78 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_O </span><span class="symbol">= </span><span class="constant_value">79 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_P </span><span class="symbol">= </span><span class="constant_value">80 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_Q </span><span class="symbol">= </span><span class="constant_value">81 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_R </span><span class="symbol">= </span><span class="constant_value">82 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_S </span><span class="symbol">= </span><span class="constant_value">83 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_T </span><span class="symbol">= </span><span class="constant_value">84 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_U </span><span class="symbol">= </span><span class="constant_value">85 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_V </span><span class="symbol">= </span><span class="constant_value">86 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_W </span><span class="symbol">= </span><span class="constant_value">87 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_X </span><span class="symbol">= </span><span class="constant_value">88 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_Y </span><span class="symbol">= </span><span class="constant_value">89 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_Z </span><span class="symbol">= </span><span class="constant_value">90 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_BRACKETLEFT </span><span class="symbol">= </span><span class="constant_value">91 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_BACKSLASH </span><span class="symbol">= </span><span class="constant_value">92 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_BRACKETRIGHT </span><span class="symbol">= </span><span class="constant_value">93 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ASCIICIRCUM </span><span class="symbol">= </span><span class="constant_value">94 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_UNDERSCORE </span><span class="symbol">= </span><span class="constant_value">95 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_QUOTELEFT </span><span class="symbol">= </span><span class="constant_value">96 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_BRACELEFT </span><span class="symbol">= </span><span class="constant_value">123 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_BAR </span><span class="symbol">= </span><span class="constant_value">124 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_BRACERIGHT </span><span class="symbol">= </span><span class="constant_value">125 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ASCIITILDE </span><span class="symbol">= </span><span class="constant_value">126 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_NOBREAKSPACE </span><span class="symbol">= </span><span class="constant_value">160 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_EXCLAMDOWN </span><span class="symbol">= </span><span class="constant_value">161 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_CENT </span><span class="symbol">= </span><span class="constant_value">162 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_STERLING </span><span class="symbol">= </span><span class="constant_value">163 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_CURRENCY </span><span class="symbol">= </span><span class="constant_value">164 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_YEN </span><span class="symbol">= </span><span class="constant_value">165 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_BROKENBAR </span><span class="symbol">= </span><span class="constant_value">166 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_SECTION </span><span class="symbol">= </span><span class="constant_value">167 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_DIAERESIS </span><span class="symbol">= </span><span class="constant_value">168 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_COPYRIGHT </span><span class="symbol">= </span><span class="constant_value">169 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ORDFEMININE </span><span class="symbol">= </span><span class="constant_value">170 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_GUILLEMOTLEFT </span><span class="symbol">= </span><span class="constant_value">171 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_NOTSIGN </span><span class="symbol">= </span><span class="constant_value">172 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_HYPHEN </span><span class="symbol">= </span><span class="constant_value">173 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_REGISTERED </span><span class="symbol">= </span><span class="constant_value">174 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MACRON </span><span class="symbol">= </span><span class="constant_value">175 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_DEGREE </span><span class="symbol">= </span><span class="constant_value">176 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_PLUSMINUS </span><span class="symbol">= </span><span class="constant_value">177 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_TWOSUPERIOR </span><span class="symbol">= </span><span class="constant_value">178 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_THREESUPERIOR </span><span class="symbol">= </span><span class="constant_value">179 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ACUTE </span><span class="symbol">= </span><span class="constant_value">180 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MU </span><span class="symbol">= </span><span class="constant_value">181 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_PARAGRAPH </span><span class="symbol">= </span><span class="constant_value">182 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_PERIODCENTERED </span><span class="symbol">= </span><span class="constant_value">183 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_CEDILLA </span><span class="symbol">= </span><span class="constant_value">184 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ONESUPERIOR </span><span class="symbol">= </span><span class="constant_value">185 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MASCULINE </span><span class="symbol">= </span><span class="constant_value">186 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_GUILLEMOTRIGHT </span><span class="symbol">= </span><span class="constant_value">187 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ONEQUARTER </span><span class="symbol">= </span><span class="constant_value">188 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ONEHALF </span><span class="symbol">= </span><span class="constant_value">189 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_THREEQUARTERS </span><span class="symbol">= </span><span class="constant_value">190 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_QUESTIONDOWN </span><span class="symbol">= </span><span class="constant_value">191 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_AGRAVE </span><span class="symbol">= </span><span class="constant_value">192 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_AACUTE </span><span class="symbol">= </span><span class="constant_value">193 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ACIRCUMFLEX </span><span class="symbol">= </span><span class="constant_value">194 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ATILDE </span><span class="symbol">= </span><span class="constant_value">195 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ADIAERESIS </span><span class="symbol">= </span><span class="constant_value">196 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ARING </span><span class="symbol">= </span><span class="constant_value">197 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_AE </span><span class="symbol">= </span><span class="constant_value">198 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_CCEDILLA </span><span class="symbol">= </span><span class="constant_value">199 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_EGRAVE </span><span class="symbol">= </span><span class="constant_value">200 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_EACUTE </span><span class="symbol">= </span><span class="constant_value">201 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ECIRCUMFLEX </span><span class="symbol">= </span><span class="constant_value">202 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_EDIAERESIS </span><span class="symbol">= </span><span class="constant_value">203 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_IGRAVE </span><span class="symbol">= </span><span class="constant_value">204 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_IACUTE </span><span class="symbol">= </span><span class="constant_value">205 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ICIRCUMFLEX </span><span class="symbol">= </span><span class="constant_value">206 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_IDIAERESIS </span><span class="symbol">= </span><span class="constant_value">207 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ETH </span><span class="symbol">= </span><span class="constant_value">208 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_NTILDE </span><span class="symbol">= </span><span class="constant_value">209 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_OGRAVE </span><span class="symbol">= </span><span class="constant_value">210 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_OACUTE </span><span class="symbol">= </span><span class="constant_value">211 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_OCIRCUMFLEX </span><span class="symbol">= </span><span class="constant_value">212 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_OTILDE </span><span class="symbol">= </span><span class="constant_value">213 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_ODIAERESIS </span><span class="symbol">= </span><span class="constant_value">214 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MULTIPLY </span><span class="symbol">= </span><span class="constant_value">215 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_OOBLIQUE </span><span class="symbol">= </span><span class="constant_value">216 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_UGRAVE </span><span class="symbol">= </span><span class="constant_value">217 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_UACUTE </span><span class="symbol">= </span><span class="constant_value">218 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_UCIRCUMFLEX </span><span class="symbol">= </span><span class="constant_value">219 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_UDIAERESIS </span><span class="symbol">= </span><span class="constant_value">220 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_YACUTE </span><span class="symbol">= </span><span class="constant_value">221 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_THORN </span><span class="symbol">= </span><span class="constant_value">222 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_SSHARP </span><span class="symbol">= </span><span class="constant_value">223 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_DIVISION </span><span class="symbol">= </span><span class="constant_value">247 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_YDIAERESIS </span><span class="symbol">= </span><span class="constant_value">255 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_CODE_MASK </span><span class="symbol">= </span><span class="constant_value">33554431 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MODIFIER_MASK </span><span class="symbol">= </span><span class="constant_value">-16777216 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MASK_SHIFT </span><span class="symbol">= </span><span class="constant_value">33554432 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MASK_ALT </span><span class="symbol">= </span><span class="constant_value">67108864 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MASK_META </span><span class="symbol">= </span><span class="constant_value">134217728 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MASK_CTRL </span><span class="symbol">= </span><span class="constant_value">268435456 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MASK_KPAD </span><span class="symbol">= </span><span class="constant_value">536870912 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">KEY_MASK_GROUP_SWITCH </span><span class="symbol">= </span><span class="constant_value">1073741824 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">BUTTON_LEFT </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">BUTTON_RIGHT </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">BUTTON_MIDDLE </span><span class="symbol">= </span><span class="constant_value">3 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">BUTTON_WHEEL_UP </span><span class="symbol">= </span><span class="constant_value">4 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">BUTTON_WHEEL_DOWN </span><span class="symbol">= </span><span class="constant_value">5 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">BUTTON_MASK_LEFT </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">BUTTON_MASK_RIGHT </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">BUTTON_MASK_MIDDLE </span><span class="symbol">= </span><span class="constant_value">4 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_0 </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_1 </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_2 </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_3 </span><span class="symbol">= </span><span class="constant_value">3 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_4 </span><span class="symbol">= </span><span class="constant_value">4 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_5 </span><span class="symbol">= </span><span class="constant_value">5 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_6 </span><span class="symbol">= </span><span class="constant_value">6 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_7 </span><span class="symbol">= </span><span class="constant_value">7 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_8 </span><span class="symbol">= </span><span class="constant_value">8 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_9 </span><span class="symbol">= </span><span class="constant_value">9 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_10 </span><span class="symbol">= </span><span class="constant_value">10 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_11 </span><span class="symbol">= </span><span class="constant_value">11 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_12 </span><span class="symbol">= </span><span class="constant_value">12 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_13 </span><span class="symbol">= </span><span class="constant_value">13 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_14 </span><span class="symbol">= </span><span class="constant_value">14 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_15 </span><span class="symbol">= </span><span class="constant_value">15 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_BUTTON_MAX </span><span class="symbol">= </span><span class="constant_value">16 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_SNES_A </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_SNES_B </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_SNES_X </span><span class="symbol">= </span><span class="constant_value">3 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_SNES_Y </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_SONY_CIRCLE </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_SONY_X </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_SONY_SQUARE </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_SONY_TRIANGLE </span><span class="symbol">= </span><span class="constant_value">3 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_SEGA_B </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_SEGA_A </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_SEGA_X </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_SEGA_Y </span><span class="symbol">= </span><span class="constant_value">3 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_XBOX_B </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_XBOX_A </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_XBOX_X </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_XBOX_Y </span><span class="symbol">= </span><span class="constant_value">3 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_DS_A </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_DS_B </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_DS_X </span><span class="symbol">= </span><span class="constant_value">3 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_DS_Y </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_SELECT </span><span class="symbol">= </span><span class="constant_value">10 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_START </span><span class="symbol">= </span><span class="constant_value">11 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_DPAD_UP </span><span class="symbol">= </span><span class="constant_value">12 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_DPAD_DOWN </span><span class="symbol">= </span><span class="constant_value">13 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_DPAD_LEFT </span><span class="symbol">= </span><span class="constant_value">14 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_DPAD_RIGHT </span><span class="symbol">= </span><span class="constant_value">15 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_L </span><span class="symbol">= </span><span class="constant_value">4 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_L2 </span><span class="symbol">= </span><span class="constant_value">6 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_L3 </span><span class="symbol">= </span><span class="constant_value">8 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_R </span><span class="symbol">= </span><span class="constant_value">5 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_R2 </span><span class="symbol">= </span><span class="constant_value">7 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_R3 </span><span class="symbol">= </span><span class="constant_value">9 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_AXIS_0 </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_AXIS_1 </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_AXIS_2 </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_AXIS_3 </span><span class="symbol">= </span><span class="constant_value">3 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_AXIS_4 </span><span class="symbol">= </span><span class="constant_value">4 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_AXIS_5 </span><span class="symbol">= </span><span class="constant_value">5 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_AXIS_6 </span><span class="symbol">= </span><span class="constant_value">6 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_AXIS_7 </span><span class="symbol">= </span><span class="constant_value">7 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_AXIS_MAX </span><span class="symbol">= </span><span class="constant_value">8 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_ANALOG_0_X </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_ANALOG_0_Y </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_ANALOG_1_X </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_ANALOG_1_Y </span><span class="symbol">= </span><span class="constant_value">3 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_ANALOG_2_X </span><span class="symbol">= </span><span class="constant_value">4 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">JOY_ANALOG_2_Y </span><span class="symbol">= </span><span class="constant_value">5 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">OK </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">FAILED </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_UNAVAILABLE </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_UNCONFIGURED </span><span class="symbol">= </span><span class="constant_value">3 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_UNAUTHORIZED </span><span class="symbol">= </span><span class="constant_value">4 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_PARAMETER_RANGE_ERROR </span><span class="symbol">= </span><span class="constant_value">5 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_OUT_OF_MEMORY </span><span class="symbol">= </span><span class="constant_value">6 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_FILE_NOT_FOUND </span><span class="symbol">= </span><span class="constant_value">7 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_FILE_BAD_DRIVE </span><span class="symbol">= </span><span class="constant_value">8 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_FILE_BAD_PATH </span><span class="symbol">= </span><span class="constant_value">9 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_FILE_NO_PERMISSION </span><span class="symbol">= </span><span class="constant_value">10 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_FILE_ALREADY_IN_USE </span><span class="symbol">= </span><span class="constant_value">11 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_FILE_CANT_OPEN </span><span class="symbol">= </span><span class="constant_value">12 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_FILE_CANT_WRITE </span><span class="symbol">= </span><span class="constant_value">13 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_FILE_CANT_READ </span><span class="symbol">= </span><span class="constant_value">14 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_FILE_UNRECOGNIZED </span><span class="symbol">= </span><span class="constant_value">15 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_FILE_CORRUPT </span><span class="symbol">= </span><span class="constant_value">16 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_FILE_EOF </span><span class="symbol">= </span><span class="constant_value">17 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_CANT_OPEN </span><span class="symbol">= </span><span class="constant_value">18 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_CANT_CREATE </span><span class="symbol">= </span><span class="constant_value">19 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERROR_QUERY_FAILED </span><span class="symbol">= </span><span class="constant_value">20 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_ALREADY_IN_USE </span><span class="symbol">= </span><span class="constant_value">21 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_LOCKED </span><span class="symbol">= </span><span class="constant_value">22 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_TIMEOUT </span><span class="symbol">= </span><span class="constant_value">23 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_CANT_AQUIRE_RESOURCE </span><span class="symbol">= </span><span class="constant_value">24 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_INVALID_DATA </span><span class="symbol">= </span><span class="constant_value">26 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_INVALID_PARAMETER </span><span class="symbol">= </span><span class="constant_value">27 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_ALREADY_EXISTS </span><span class="symbol">= </span><span class="constant_value">28 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_DOES_NOT_EXIST </span><span class="symbol">= </span><span class="constant_value">29 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_DATABASE_CANT_READ </span><span class="symbol">= </span><span class="constant_value">30 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_DATABASE_CANT_WRITE </span><span class="symbol">= </span><span class="constant_value">31 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_COMPILATION_FAILED </span><span class="symbol">= </span><span class="constant_value">32 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_METHOD_NOT_FOUND </span><span class="symbol">= </span><span class="constant_value">33 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_LINK_FAILED </span><span class="symbol">= </span><span class="constant_value">34 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_SCRIPT_FAILED </span><span class="symbol">= </span><span class="constant_value">35 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_CYCLIC_LINK </span><span class="symbol">= </span><span class="constant_value">36 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_BUSY </span><span class="symbol">= </span><span class="constant_value">40 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_HELP </span><span class="symbol">= </span><span class="constant_value">42 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_BUG </span><span class="symbol">= </span><span class="constant_value">43 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">ERR_WTF </span><span class="symbol">= </span><span class="constant_value">45 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">PROPERTY_HINT_NONE </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
- No hint for edited property.
- </span></div></li><li><div class="constant"><span class="identifier constant_name">PROPERTY_HINT_RANGE </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">PROPERTY_HINT_EXP_RANGE </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
- Hint string is an exponential range, defined as "min,max" or "min,max,step". This is valid for integers and floats.
- </span></div></li><li><div class="constant"><span class="identifier constant_name">PROPERTY_HINT_ENUM </span><span class="symbol">= </span><span class="constant_value">3 </span><span class="constant_description">
- Property hint is an enumerated value, like "Hello,Something,Else". This is valid for integers, floats and strings properties.
- </span></div></li><li><div class="constant"><span class="identifier constant_name">PROPERTY_HINT_LENGTH </span><span class="symbol">= </span><span class="constant_value">5 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">PROPERTY_HINT_FLAGS </span><span class="symbol">= </span><span class="constant_value">7 </span><span class="constant_description">
- Property hint is a bitmask description, for bits 0,1,2,3 abd 5 the hint would be like "Bit0,Bit1,Bit2,Bit3,,Bit5". Valid only for integers.
- </span></div></li><li><div class="constant"><span class="identifier constant_name">PROPERTY_HINT_FILE </span><span class="symbol">= </span><span class="constant_value">8 </span><span class="constant_description">
- String property is a file (so pop up a file dialog when edited). Hint string can be a set of wildcards like "*.doc".
- </span></div></li><li><div class="constant"><span class="identifier constant_name">PROPERTY_HINT_DIR </span><span class="symbol">= </span><span class="constant_value">9 </span><span class="constant_description">
- String property is a directory (so pop up a file dialog when edited).
- </span></div></li><li><div class="constant"><span class="identifier constant_name">PROPERTY_HINT_RESOURCE_TYPE </span><span class="symbol">= </span><span class="constant_value">10 </span><span class="constant_description">
- String property is a resource, so open the resource popup menu when edited.
- </span></div></li><li><div class="constant"><span class="identifier constant_name">PROPERTY_USAGE_STORAGE </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
- Property will be used as storage (default).
- </span></div></li><li><div class="constant"><span class="identifier constant_name">PROPERTY_USAGE_STORAGE </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
- Property will be used as storage (default).
- </span></div></li><li><div class="constant"><span class="identifier constant_name">PROPERTY_USAGE_EDITOR </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
- Property will be visible in editor (default).
- </span></div></li><li><div class="constant"><span class="identifier constant_name">PROPERTY_USAGE_NETWORK </span><span class="symbol">= </span><span class="constant_value">4 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">PROPERTY_USAGE_DEFAULT </span><span class="symbol">= </span><span class="constant_value">7 </span><span class="constant_description">
- Default usage (storage and editor).
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_NIL </span><span class="symbol">= </span><span class="constant_value">0 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_BOOL </span><span class="symbol">= </span><span class="constant_value">1 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_INT </span><span class="symbol">= </span><span class="constant_value">2 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_REAL </span><span class="symbol">= </span><span class="constant_value">3 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_STRING </span><span class="symbol">= </span><span class="constant_value">4 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_VECTOR2 </span><span class="symbol">= </span><span class="constant_value">5 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_RECT2 </span><span class="symbol">= </span><span class="constant_value">6 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_VECTOR3 </span><span class="symbol">= </span><span class="constant_value">7 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_MATRIX32 </span><span class="symbol">= </span><span class="constant_value">8 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_PLANE </span><span class="symbol">= </span><span class="constant_value">9 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_QUAT </span><span class="symbol">= </span><span class="constant_value">10 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_AABB </span><span class="symbol">= </span><span class="constant_value">11 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_MATRIX3 </span><span class="symbol">= </span><span class="constant_value">12 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_TRANSFORM </span><span class="symbol">= </span><span class="constant_value">13 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_COLOR </span><span class="symbol">= </span><span class="constant_value">14 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_IMAGE </span><span class="symbol">= </span><span class="constant_value">15 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_NODE_PATH </span><span class="symbol">= </span><span class="constant_value">16 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_RID </span><span class="symbol">= </span><span class="constant_value">17 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_OBJECT </span><span class="symbol">= </span><span class="constant_value">18 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_INPUT_EVENT </span><span class="symbol">= </span><span class="constant_value">19 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_DICTIONARY </span><span class="symbol">= </span><span class="constant_value">20 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_ARRAY </span><span class="symbol">= </span><span class="constant_value">21 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_RAW_ARRAY </span><span class="symbol">= </span><span class="constant_value">22 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_INT_ARRAY </span><span class="symbol">= </span><span class="constant_value">23 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_REAL_ARRAY </span><span class="symbol">= </span><span class="constant_value">24 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_STRING_ARRAY </span><span class="symbol">= </span><span class="constant_value">25 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_VECTOR2_ARRAY </span><span class="symbol">= </span><span class="constant_value">26 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_VECTOR3_ARRAY </span><span class="symbol">= </span><span class="constant_value">27 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_COLOR_ARRAY </span><span class="symbol">= </span><span class="constant_value">28 </span><span class="constant_description">
- </span></div></li><li><div class="constant"><span class="identifier constant_name">TYPE_MAX </span><span class="symbol">= </span><span class="constant_value">29 </span><span class="constant_description">
- </span></div></li></div><h4>Description:</h4><div class="description">
- Global scope constants and variables. This is all that resides in the globals, constants regarding error codes, scancodes, property hints, etc. It's not much.
- Singletons are also documented here, since they can be accessed from anywhere.
- </div><h4>Method Documentation:</h4></div><hr /><span>Copyright 2008-2010 Codenix SRL</span></body></html> \ No newline at end of file
diff --git a/doc/html/@Squirrel.html b/doc/html/@Squirrel.html
deleted file mode 100644
index ad4aaa49d8..0000000000
--- a/doc/html/@Squirrel.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<html><link href="main.css" rel="stylesheet" type="text/css" /><body><table class="top_table"><tr><td class="top_table"><image src="images/logo.png" /></td><td class="top_table"><a href="index.html">Index</a></td><td class="top_table"><a href="alphabetical.html">Classes</a></td><td class="top_table"><a href="category.html">Categories</a></td><td><a href="inheritance.html">Inheritance</a></td></tr></table><hr /><div class="class"><a name="@Squirrel"><h3 class="title class_title">@Squirrel</h3></a><div class="description class_description">
- </div><br /><div class="category"><span class="category">Category: </span><a class="category_ref" href="category.html#CATEGORY_Core">Core</a></div><h4>Method Documentation:</h4></div><hr /><span>Copyright 2008-2010 Codenix SRL</span></body></html> \ No newline at end of file
diff --git a/doc/html/tutorial01/0_home_red_coding_godot_doc_math_position.png b/doc/html/tutorial01/0_home_red_coding_godot_doc_math_position.png
deleted file mode 100644
index df52c05462..0000000000
--- a/doc/html/tutorial01/0_home_red_coding_godot_doc_math_position.png
+++ /dev/null
Binary files differ
diff --git a/doc/html/tutorial01/1_home_red_coding_godot_doc_math_direction.png b/doc/html/tutorial01/1_home_red_coding_godot_doc_math_direction.png
deleted file mode 100644
index 5b58274bcb..0000000000
--- a/doc/html/tutorial01/1_home_red_coding_godot_doc_math_direction.png
+++ /dev/null
Binary files differ
diff --git a/doc/html/tutorial01/2_home_red_coding_godot_doc_math_normals.png b/doc/html/tutorial01/2_home_red_coding_godot_doc_math_normals.png
deleted file mode 100644
index 73681a58ce..0000000000
--- a/doc/html/tutorial01/2_home_red_coding_godot_doc_math_normals.png
+++ /dev/null
Binary files differ
diff --git a/doc/html/tutorial01/tutorial.css b/doc/html/tutorial01/tutorial.css
deleted file mode 100644
index a518c6dff7..0000000000
--- a/doc/html/tutorial01/tutorial.css
+++ /dev/null
@@ -1,128 +0,0 @@
-
-/* start css.sty */
-.cmr-7{font-size:70%;}
-.cmmi-7{font-size:70%;font-style: italic;}
-.cmmi-10{font-style: italic;}
-.ectt-1000{ font-family: monospace;}
-.ectt-1000{ font-family: monospace;}
-.ectt-1000{ font-family: monospace;}
-.ectt-1000{ font-family: monospace;}
-.ectt-1000{ font-family: monospace;}
-.ecti-1000{ font-style: italic;}
-.ecti-1000{ font-style: italic;}
-.ecti-1000{ font-style: italic;}
-.ecti-1000{ font-style: italic;}
-.ecti-1000{ font-style: italic;}
-.ecti-0700{font-size:70%; font-style: italic;}
-.ecti-0700{ font-style: italic;}
-.ecti-0700{ font-style: italic;}
-.ecti-0700{ font-style: italic;}
-.ecti-0700{ font-style: italic;}
-.ecrm-0700{font-size:70%;}
-p.noindent { text-indent: 0em }
-td p.noindent { text-indent: 0em; margin-top:0em; }
-p.nopar { text-indent: 0em; }
-p.indent{ text-indent: 1.5em }
-@media print {div.crosslinks {visibility:hidden;}}
-a img { border-top: 0; border-left: 0; border-right: 0; }
-center { margin-top:1em; margin-bottom:1em; }
-td center { margin-top:0em; margin-bottom:0em; }
-.Canvas { position:relative; }
-img.math{vertical-align:middle;}
-li p.indent { text-indent: 0em }
-.enumerate1 {list-style-type:decimal;}
-.enumerate2 {list-style-type:lower-alpha;}
-.enumerate3 {list-style-type:lower-roman;}
-.enumerate4 {list-style-type:upper-alpha;}
-div.newtheorem { margin-bottom: 2em; margin-top: 2em;}
-.obeylines-h,.obeylines-v {white-space: nowrap; }
-div.obeylines-v p { margin-top:0; margin-bottom:0; }
-.overline{ text-decoration:overline; }
-.overline img{ border-top: 1px solid black; }
-td.displaylines {text-align:center; white-space:nowrap;}
-.centerline {text-align:center;}
-.rightline {text-align:right;}
-div.verbatim {font-family: monospace; white-space: nowrap; text-align:left; clear:both; }
-.fbox {padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; }
-div.fbox {display:table}
-div.center div.fbox {text-align:center; clear:both; padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; }
-table.minipage{width:100%;}
-div.center, div.center div.center {text-align: center; margin-left:1em; margin-right:1em;}
-div.center div {text-align: left;}
-div.flushright, div.flushright div.flushright {text-align: right;}
-div.flushright div {text-align: left;}
-div.flushleft {text-align: left;}
-.underline{ text-decoration:underline; }
-.underline img{ border-bottom: 1px solid black; margin-bottom:1pt; }
-.framebox-c, .framebox-l, .framebox-r { padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; }
-.framebox-c {text-align:center;}
-.framebox-l {text-align:left;}
-.framebox-r {text-align:right;}
-span.thank-mark{ vertical-align: super }
-span.footnote-mark sup.textsuperscript, span.footnote-mark a sup.textsuperscript{ font-size:80%; }
-div.tabular, div.center div.tabular {text-align: center; margin-top:0.5em; margin-bottom:0.5em; }
-table.tabular td p{margin-top:0em;}
-table.tabular {margin-left: auto; margin-right: auto;}
-div.td00{ margin-left:0pt; margin-right:0pt; }
-div.td01{ margin-left:0pt; margin-right:5pt; }
-div.td10{ margin-left:5pt; margin-right:0pt; }
-div.td11{ margin-left:5pt; margin-right:5pt; }
-table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; }
-td.td00{ padding-left:0pt; padding-right:0pt; }
-td.td01{ padding-left:0pt; padding-right:5pt; }
-td.td10{ padding-left:5pt; padding-right:0pt; }
-td.td11{ padding-left:5pt; padding-right:5pt; }
-table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; }
-.hline hr, .cline hr{ height : 1px; margin:0px; }
-.tabbing-right {text-align:right;}
-span.TEX {letter-spacing: -0.125em; }
-span.TEX span.E{ position:relative;top:0.5ex;left:-0.0417em;}
-a span.TEX span.E {text-decoration: none; }
-span.LATEX span.A{ position:relative; top:-0.5ex; left:-0.4em; font-size:85%;}
-span.LATEX span.TEX{ position:relative; left: -0.4em; }
-div.float img, div.float .caption {text-align:center;}
-div.figure img, div.figure .caption {text-align:center;}
-.marginpar {width:20%; float:right; text-align:left; margin-left:auto; margin-top:0.5em; font-size:85%; text-decoration:underline;}
-.marginpar p{margin-top:0.4em; margin-bottom:0.4em;}
-table.equation {width:100%;}
-.equation td{text-align:center; }
-td.equation { margin-top:1em; margin-bottom:1em; }
-td.equation-label { width:5%; text-align:center; }
-td.eqnarray4 { width:5%; white-space: normal; }
-td.eqnarray2 { width:5%; }
-table.eqnarray-star, table.eqnarray {width:100%;}
-div.eqnarray{text-align:center;}
-div.array {text-align:center;}
-div.pmatrix {text-align:center;}
-table.pmatrix {width:100%;}
-span.pmatrix img{vertical-align:middle;}
-div.pmatrix {text-align:center;}
-table.pmatrix {width:100%;}
-img.cdots{vertical-align:middle;}
-.partToc a, .partToc, .likepartToc a, .likepartToc {line-height: 200%; font-weight:bold; font-size:110%;}
-.index-item, .index-subitem, .index-subsubitem {display:block}
-.caption td.id{font-weight: bold; white-space: nowrap; }
-table.caption {text-align:center;}
-h1.partHead{text-align: center}
-p.bibitem { text-indent: -2em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; }
-p.bibitem-p { text-indent: 0em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; }
-.paragraphHead, .likeparagraphHead { margin-top:2em; font-weight: bold;}
-.subparagraphHead, .likesubparagraphHead { font-weight: bold;}
-.quote {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; margin-right:1em; text-align:justify;}
-.verse{white-space:nowrap; margin-left:2em}
-div.maketitle {text-align:center;}
-h2.titleHead{text-align:center;}
-div.maketitle{ margin-bottom: 2em; }
-div.author, div.date {text-align:center;}
-div.thanks{text-align:left; margin-left:10%; font-size:85%; font-style:italic; }
-div.author{white-space: nowrap;}
-.quotation {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; }
-.abstract p {margin-left:5%; margin-right:5%;}
-table.abstract {width:100%;}
-.lstlisting .label{margin-right:0.5em; }
-div.lstlisting{font-family: monospace; white-space: nowrap; margin-top:0.5em; margin-bottom:0.5em; }
-div.lstinputlisting{ font-family: monospace; white-space: nowrap; }
-.lstinputlisting .label{margin-right:0.5em;}
-.figure img.graphics {margin-left:10%;}
-/* end css.sty */
-
diff --git a/doc/html/tutorial01/tutorial.html b/doc/html/tutorial01/tutorial.html
deleted file mode 100644
index 45c0258709..0000000000
--- a/doc/html/tutorial01/tutorial.html
+++ /dev/null
@@ -1,902 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html >
-<head><title></title>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)">
-<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)">
-<!-- html -->
-<meta name="src" content="tutorial.tex">
-<meta name="date" content="2009-10-07 00:28:00">
-<link rel="stylesheet" type="text/css" href="tutorial.css">
-</head><body
->
- <h3 class="sectionHead"><span class="titlemark">1 </span> <a
- id="x1-10001"></a>Introduction to 3D Math</h3>
-<!--l. 27--><p class="noindent" >
- <h4 class="subsectionHead"><span class="titlemark">1.1 </span> <a
- id="x1-20001.1"></a>Introduction</h4>
-<!--l. 29--><p class="noindent" >There are many approaches to understanding the type of 3D math used in video
-games, modelling, ray-tracing, etc. The usual is through vector algebra, matrices, and
-linear transformations and, while they are not completely necesary to understand
-most of the aspects of 3D game programming (from the theorical point of view), they
-provide a common language to communicate with other programmers or
-engineers.
-<!--l. 36--><p class="indent" > This tutorial will focus on explaining all the basic concepts needed for a
-programmer to understand how to develop 3D games without getting too deep into
-algebra. Instead of a math-oriented language, code examples will be given instead
-when possible. The reason for this is that. while programmers may have
-different backgrounds or experience (be it scientific, engineering or self taught),
-code is the most familiar language and the lowest common denominator for
-understanding.
-<!--l. 45--><p class="noindent" >
- <h4 class="subsectionHead"><span class="titlemark">1.2 </span> <a
- id="x1-30001.2"></a>Vectors</h4>
-<!--l. 48--><p class="noindent" >
- <h5 class="subsubsectionHead"><span class="titlemark">1.2.1 </span> <a
- id="x1-40001.2.1"></a>Brief Introduction</h5>
-<!--l. 50--><p class="noindent" >When writing 2D games, interfaces and other applications, the typical convention is
-to define coordinates as an <span
-class="ecti-1000">x,y </span>pair, <span
-class="ecti-1000">x </span>representing the horizontal offset and <span
-class="ecti-1000">y </span>the
-vertical one. In most cases, the unit for both is <span
-class="ecti-1000">pixels</span>. This makes sense given the
-screen is just a rectangle in two dimensions.
-<!--l. 56--><p class="indent" > An <span
-class="ecti-1000">x,y </span>pair can be used for two purposes. It can be an absolute position (screen
-cordinate in the previous case), or a relative direction, if we trace an arrow from the
-origin (0,0 coordinates) to it&#8217;s position.
-<div class="center"
->
-<!--l. 60--><p class="noindent" >
-
-<div class="tabular">
- <table id="TBL-1" class="tabular"
-cellspacing="0" cellpadding="0"
-><colgroup id="TBL-1-1g"><col
-id="TBL-1-1"><col
-id="TBL-1-2"><col
-id="TBL-1-3"></colgroup><tr
- style="vertical-align:baseline;" id="TBL-1-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-1-1-1"
-class="td11"><img
-src="tutorial0x.png" alt="PIC" class="graphics" width="100.375pt" height="100.375pt" ><!--tex4ht:graphics
-name="tutorial0x.png" src="0_home_red_coding_godot_doc_math_position.eps"
---></td><td style="white-space:nowrap; text-align:center;" id="TBL-1-1-2"
-class="td11"></td><td style="white-space:nowrap; text-align:center;" id="TBL-1-1-3"
-class="td11"><img
-src="tutorial1x.png" alt="PIC" class="graphics" width="100.375pt" height="100.375pt" ><!--tex4ht:graphics
-name="tutorial1x.png" src="1_home_red_coding_godot_doc_math_direction.eps"
---></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-1-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-1-2-1"
-class="td11"> <span
-class="ecti-0700">Position </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-1-2-2"
-class="td11"></td><td style="white-space:nowrap; text-align:center;" id="TBL-1-2-3"
-class="td11"> <span
-class="ecti-0700">Direction </span></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-1-3-"><td style="white-space:nowrap; text-align:center;" id="TBL-1-3-1"
-class="td11"> </td>
-</tr></table></div>
-</div>
-<!--l. 67--><p class="indent" > When used as a direction, this pair is called a <span
-class="ecti-1000">vector</span>, and two properties can be
-observed: The first is the <span
-class="ecti-1000">magnitude </span>or <span
-class="ecti-1000">length </span>, and the second is the direction. In
-two dimensions, direction can be an angle. The <span
-class="ecti-1000">magnitude </span>or <span
-class="ecti-1000">length </span>can be computed
-by simply using Pithagoras theorem:
-<div class="center"
->
-<!--l. 73--><p class="noindent" >
-<div class="tabular"> <table id="TBL-2" class="tabular"
-cellspacing="0" cellpadding="0"
-><colgroup id="TBL-2-1g"><col
-id="TBL-2-1"><col
-id="TBL-2-2"></colgroup><tr
- style="vertical-align:baseline;" id="TBL-2-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-2-1-1"
-class="td11"><img
-src="tutorial2x.png" alt="&#x2218;x2-+-y2-" class="sqrt" ></td><td style="white-space:nowrap; text-align:center;" id="TBL-2-1-2"
-class="td11"><img
-src="tutorial3x.png" alt="&#x2218;x2-+-y2 +-z2" class="sqrt" ></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-2-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-2-2-1"
-class="td11"> <span
-class="ecti-0700">2D </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-2-2-2"
-class="td11"> <span
-class="ecti-0700">3D </span></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-2-3-"><td style="white-space:nowrap; text-align:center;" id="TBL-2-3-1"
-class="td11"> </td>
-</tr></table></div>
-</div>
-<!--l. 80--><p class="indent" > The direction can be an arbitrary angle from either the <span
-class="ecti-1000">x </span>or <span
-class="ecti-1000">y </span>axis, and could be
-computed by using trigonometry, or just using the usual <span
-class="ecti-1000">atan2 </span>function present in
-most math libraries. However, when dealing with 3D, the direction can&#8217;t be described
-as an angle. To separate magnitude and direction, 3D uses the concept of <span
-class="ecti-1000">normal</span>
-<span
-class="ecti-1000">vectors.</span>
-<!--l. 88--><p class="noindent" >
- <h5 class="subsubsectionHead"><span class="titlemark">1.2.2 </span> <a
- id="x1-50001.2.2"></a>Implementation</h5>
-<!--l. 90--><p class="noindent" >Vectors are implemented in Godot Engine as a class named <span
-class="ecti-1000">Vector3 </span>for 3D, and as
-both <span
-class="ecti-1000">Vector2</span>, <span
-class="ecti-1000">Point2 </span>or <span
-class="ecti-1000">Size2 </span>in 2D (they are all aliases). They are used for any
-purpose where a pair of 2D or 3D values (described as <span
-class="ecti-1000">x,y </span>or <span
-class="ecti-1000">x,y,z) </span>is needed. This is
-somewhat a standard in most libraries or engines. In the script API, they can be
-instanced like this:
- <!--l. 98-->
- <div class="lstlisting"><span class="label"><a
- id="x1-5001r1"></a></span>a&#x00A0;=&#x00A0;Vector3()&#x00A0;<br /><span class="label"><a
- id="x1-5002r2"></a></span>a&#x00A0;=&#x00A0;Vector2(&#x00A0;2.0,&#x00A0;3.4&#x00A0;)
- </div>
-
-<!--l. 104--><p class="indent" > Vectors also support the common operators <span
-class="ecti-1000">+, -, / and * </span>for addition,
-substraction, multiplication and division.
- <!--l. 108-->
- <div class="lstlisting"><span class="label"><a
- id="x1-5003r1"></a></span>a&#x00A0;=&#x00A0;Vector3(1,2,3)&#x00A0;<br /><span class="label"><a
- id="x1-5004r2"></a></span>b&#x00A0;=&#x00A0;Vector3(4,5,6)&#x00A0;<br /><span class="label"><a
- id="x1-5005r3"></a></span>c&#x00A0;=&#x00A0;Vector3()&#x00A0;<br /><span class="label"><a
- id="x1-5006r4"></a></span>&#x00A0;<br /><span class="label"><a
- id="x1-5007r5"></a></span>//&#x00A0;writing&#x00A0;<br /><span class="label"><a
- id="x1-5008r6"></a></span>&#x00A0;<br /><span class="label"><a
- id="x1-5009r7"></a></span>c&#x00A0;=&#x00A0;a&#x00A0;+&#x00A0;b&#x00A0;<br /><span class="label"><a
- id="x1-5010r8"></a></span>&#x00A0;<br /><span class="label"><a
- id="x1-5011r9"></a></span>//&#x00A0;is&#x00A0;the&#x00A0;same&#x00A0;as&#x00A0;writing&#x00A0;<br /><span class="label"><a
- id="x1-5012r10"></a></span>&#x00A0;<br /><span class="label"><a
- id="x1-5013r11"></a></span>c.x&#x00A0;=&#x00A0;a.x&#x00A0;+&#x00A0;b.x&#x00A0;<br /><span class="label"><a
- id="x1-5014r12"></a></span>c.y&#x00A0;=&#x00A0;a.y&#x00A0;+&#x00A0;b.y&#x00A0;<br /><span class="label"><a
- id="x1-5015r13"></a></span>c.z&#x00A0;=&#x00A0;a.z&#x00A0;+&#x00A0;b.z&#x00A0;<br /><span class="label"><a
- id="x1-5016r14"></a></span>&#x00A0;<br /><span class="label"><a
- id="x1-5017r15"></a></span>//&#x00A0;both&#x00A0;will&#x00A0;result&#x00A0;in&#x00A0;a&#x00A0;vector&#x00A0;containing&#x00A0;(5,7,9).&#x00A0;<br /><span class="label"><a
- id="x1-5018r16"></a></span>//&#x00A0;the&#x00A0;same&#x00A0;happens&#x00A0;for&#x00A0;the&#x00A0;rest&#x00A0;of&#x00A0;the&#x00A0;operators.
- </div>
-<!--l. 128--><p class="indent" > Vectors also can perform a wide variety of built-in functions, their most common
-usages will be explored next.
-<!--l. 132--><p class="noindent" >
- <h5 class="subsubsectionHead"><span class="titlemark">1.2.3 </span> <a
- id="x1-60001.2.3"></a>Normal Vectors</h5>
-<!--l. 134--><p class="noindent" >Two points ago, it was mentioned that 3D vectors can&#8217;t describe their direction as an
-agle (as 2D vectors can). Because of this, <span
-class="ecti-1000">normal vectors </span>become important for
-separating a vector between <span
-class="ecti-1000">direction </span>and <span
-class="ecti-1000">magnitude.</span>
-<!--l. 139--><p class="indent" > A <span
-class="ecti-1000">normal vector </span>is a vector with a <span
-class="ecti-1000">magnitude </span>of <span
-class="ecti-1000">1. </span>This means, no matter where
-the vector is pointing to, it&#8217;s length is always <span
-class="ecti-1000">1</span>.
- <div class="tabular">
- <table id="TBL-3" class="tabular"
-cellspacing="0" cellpadding="0"
-><colgroup id="TBL-3-1g"><col
-id="TBL-3-1"></colgroup><tr
- style="vertical-align:baseline;" id="TBL-3-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-3-1-1"
-class="td11"><img
-src="tutorial4x.png" alt="PIC" class="graphics" width="100.375pt" height="100.375pt" ><!--tex4ht:graphics
-name="tutorial4x.png" src="2_home_red_coding_godot_doc_math_normals.eps"
---></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-3-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-3-2-1"
-class="td11"> <span
-class="ecrm-0700">Normal vectors aroud the origin. </span></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-3-3-"><td style="white-space:nowrap; text-align:center;" id="TBL-3-3-1"
-class="td11"> </td> </tr></table>
-</div>
-<!--l. 148--><p class="indent" > Normal vectors have endless uses in 3D graphics programming, so it&#8217;s
-recommended to get familiar with them as much as possible.
-<!--l. 152--><p class="noindent" >
- <h5 class="subsubsectionHead"><span class="titlemark">1.2.4 </span> <a
- id="x1-70001.2.4"></a>Normalization</h5>
-<!--l. 154--><p class="noindent" >Normalization is the process through which normal vectors are obtained
-from regular vectors. In other words, normalization is used to reduce the
-<span
-class="ecti-1000">magnitude </span>of any vector to <span
-class="ecti-1000">1</span>. (except of course, unless the vector is (0,0,0)
-).
-<!--l. 159--><p class="indent" > To normalize a vector, it must be divided by its magnitude (which should be
-greater than zero):
- <!--l. 163-->
- <div class="lstlisting"><span class="label"><a
- id="x1-7001r1"></a></span><span
-class="ecti-1000">//</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">a</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">custom</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">vector</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">is</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">created</span>&#x00A0;<br /><span class="label"><a
- id="x1-7002r2"></a></span>a&#x00A0;=&#x00A0;Vector3(4,5,6)&#x00A0;<br /><span class="label"><a
- id="x1-7003r3"></a></span><span
-class="ecti-1000">//</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">&#8217;</span><span
-class="ecti-1000">l</span><span
-class="ecti-1000">&#8217;</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">is</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">a</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">single</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">real</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">number</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">(</span><span
-class="ecti-1000">or</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">scalar</span><span
-class="ecti-1000">)</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">containight</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">the</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">length</span>&#x00A0;<br /><span class="label"><a
- id="x1-7004r4"></a></span>l&#x00A0;=&#x00A0;Math.sqrt(&#x00A0;a.x<span
-class="cmsy-10">*</span>a.x&#x00A0;+&#x00A0;a.y<span
-class="cmsy-10">*</span>a.y&#x00A0;+&#x00A0;a.z<span
-class="cmsy-10">*</span>a.z&#x00A0;)&#x00A0;<br /><span class="label"><a
- id="x1-7005r5"></a></span><span
-class="ecti-1000">//</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">the</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">vector</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">&#8217;</span><span
-class="ecti-1000">a</span><span
-class="ecti-1000">&#8217;</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">is</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">divided</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">by</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">its</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">length</span><span
-class="ecti-1000">,</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">by</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">performing</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">scalar</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">divide</span>&#x00A0;<br /><span class="label"><a
- id="x1-7006r6"></a></span>a&#x00A0;=&#x00A0;a&#x00A0;/&#x00A0;l&#x00A0;<br /><span class="label"><a
- id="x1-7007r7"></a></span><span
-class="ecti-1000">//</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">which</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">is</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">the</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">same</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">as</span>&#x00A0;<br /><span class="label"><a
- id="x1-7008r8"></a></span>a.x&#x00A0;=&#x00A0;a.x&#x00A0;/&#x00A0;l&#x00A0;<br /><span class="label"><a
- id="x1-7009r9"></a></span>a.y&#x00A0;=&#x00A0;a.y&#x00A0;/&#x00A0;l&#x00A0;<br /><span class="label"><a
- id="x1-7010r10"></a></span>a.z&#x00A0;=&#x00A0;a.z&#x00A0;/&#x00A0;l
-
- </div>
-<!--l. 177--><p class="indent" > Vector3 contains two built in functions for normalization:
- <!--l. 180-->
- <div class="lstlisting"><span class="label"><a
- id="x1-7011r1"></a></span>a&#x00A0;=&#x00A0;Vector3(4,5,6)&#x00A0;<br /><span class="label"><a
- id="x1-7012r2"></a></span>a.normalize()&#x00A0;<span
-class="ecti-1000">//</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">in</span><span
-class="cmsy-10">-</span><span
-class="ecti-1000">place</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">normalization</span>&#x00A0;<br /><span class="label"><a
- id="x1-7013r3"></a></span>b&#x00A0;=&#x00A0;a.normalized()&#x00A0;<span
-class="ecti-1000">//</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">returns</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">a</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">copy</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">of</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">a</span><span
-class="ecti-1000">,</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">normalized</span>
- </div>
-<!--l. 188--><p class="noindent" >
- <h5 class="subsubsectionHead"><span class="titlemark">1.2.5 </span> <a
- id="x1-80001.2.5"></a>Dot Product</h5>
-<!--l. 190--><p class="noindent" >The dot product is, pheraps, the most useful operation that can be applied to 3D
-vectors. In the surface, it&#8217;s multiple usages are not very obvious, but in depth it can
-provide very useful information between two vectors (be it direction or just points in
-space).
-<!--l. 195--><p class="indent" > The dot product takes two vectors (<span
-class="ecti-1000">a </span>and <span
-class="ecti-1000">b </span>in the example) and returns a scalar
-(single real number):
-<div class="center"
->
-<!--l. 198--><p class="noindent" >
-<!--l. 199--><p class="noindent" ><span
-class="cmmi-10">a</span><sub><span
-class="cmmi-7">x</span></sub><span
-class="cmmi-10">b</span><sub><span
-class="cmmi-7">x</span></sub> <span
-class="cmr-10">+ </span><span
-class="cmmi-10">a</span><sub><span
-class="cmmi-7">y</span></sub><span
-class="cmmi-10">b</span><sub><span
-class="cmmi-7">y</span></sub> <span
-class="cmr-10">+ </span><span
-class="cmmi-10">a</span><sub><span
-class="cmmi-7">z</span></sub><span
-class="cmmi-10">b</span><sub><span
-class="cmmi-7">z</span></sub>
-</div>
-<!--l. 202--><p class="indent" > The same expressed in code:
- <!--l. 205-->
- <div class="lstlisting"><span class="label"><a
- id="x1-8001r1"></a></span>a&#x00A0;=&#x00A0;Vector3(...)&#x00A0;<br /><span class="label"><a
- id="x1-8002r2"></a></span>b&#x00A0;=&#x00A0;Vector3(...)&#x00A0;<br /><span class="label"><a
- id="x1-8003r3"></a></span>&#x00A0;<br /><span class="label"><a
- id="x1-8004r4"></a></span>c&#x00A0;=&#x00A0;a.x<span
-class="cmsy-10">*</span>b.x&#x00A0;+&#x00A0;a.y<span
-class="cmsy-10">*</span>b.y&#x00A0;+&#x00A0;a.z<span
-class="cmsy-10">*</span>b.z&#x00A0;<br /><span class="label"><a
- id="x1-8005r5"></a></span>&#x00A0;<br /><span class="label"><a
- id="x1-8006r6"></a></span><span
-class="ecti-1000">//</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">using</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">built</span><span
-class="cmsy-10">-</span><span
-class="ecti-1000">in</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">dot</span><span
-class="ecti-1000">()</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">function</span>&#x00A0;<br /><span class="label"><a
- id="x1-8007r7"></a></span>&#x00A0;<br /><span class="label"><a
- id="x1-8008r8"></a></span>c&#x00A0;=&#x00A0;a.dot(b)
- </div>
-<!--l. 218--><p class="indent" > The dot product presents several useful properties:
- <ul class="itemize1">
- <li class="itemize">If both <span
-class="ecti-1000">a </span>and <span
-class="ecti-1000">b </span>parameters to a <span
-class="ecti-1000">dot product </span>are direction vectors, dot
- product will return positive if both point towards the same direction,
- negative if both point towards opposite directions, and zero if they are
- orthogonal (one is perpendicular to the other).
- </li>
- <li class="itemize">If both <span
-class="ecti-1000">a </span>and <span
-class="ecti-1000">b </span>parameters to a <span
-class="ecti-1000">dot product </span>are <span
-class="ecti-1000">normalized </span>direction
- vectors, then the dot product will return the cosine of the angle between
- them (ranging from 1 if they are equal, 0 if they are orthogonal, and -1 if
- they are opposed (a == -b)).
- </li>
- <li class="itemize">If <span
-class="ecti-1000">a </span>is a <span
-class="ecti-1000">normalized </span>direction vector and <span
-class="ecti-1000">b </span>is a point, the dot product will
- return the distance from <span
-class="ecti-1000">b </span>to the plane passing through the origin, with
- normal <span
-class="ecti-1000">a (see item about planes)</span>
-
- </li>
- <li class="itemize">More uses will be presented later in this tutorial.</li></ul>
-<!--l. 236--><p class="noindent" >
- <h5 class="subsubsectionHead"><span class="titlemark">1.2.6 </span> <a
- id="x1-90001.2.6"></a>Cross Product</h5>
-<!--l. 238--><p class="noindent" >The <span
-class="ecti-1000">cross product </span>also takes two vectors <span
-class="ecti-1000">a </span>and <span
-class="ecti-1000">b</span>, but returns another vector <span
-class="ecti-1000">c </span>that is
-orthogonal to the two previous ones.
-<div class="center"
->
-<!--l. 242--><p class="noindent" >
-<!--l. 243--><p class="noindent" ><span
-class="cmmi-10">c</span><sub><span
-class="cmmi-7">x</span></sub> <span
-class="cmr-10">= </span><span
-class="cmmi-10">a</span><sub><span
-class="cmmi-7">x</span></sub><span
-class="cmmi-10">b</span><sub><span
-class="cmmi-7">z</span></sub> <span
-class="cmsy-10">- </span><span
-class="cmmi-10">a</span><sub><span
-class="cmmi-7">z</span></sub><span
-class="cmmi-10">b</span><sub><span
-class="cmmi-7">y</span></sub>
-</div>
-<div class="center"
->
-<!--l. 246--><p class="noindent" >
-<!--l. 247--><p class="noindent" ><span
-class="cmmi-10">c</span><sub><span
-class="cmmi-7">y</span></sub> <span
-class="cmr-10">= </span><span
-class="cmmi-10">a</span><sub><span
-class="cmmi-7">z</span></sub><span
-class="cmmi-10">b</span><sub><span
-class="cmmi-7">x</span></sub> <span
-class="cmsy-10">- </span><span
-class="cmmi-10">a</span><sub><span
-class="cmmi-7">x</span></sub><span
-class="cmmi-10">b</span><sub><span
-class="cmmi-7">z</span></sub>
-</div>
-<div class="center"
->
-<!--l. 250--><p class="noindent" >
-<!--l. 251--><p class="noindent" ><span
-class="cmmi-10">c</span><sub><span
-class="cmmi-7">z</span></sub> <span
-class="cmr-10">= </span><span
-class="cmmi-10">a</span><sub><span
-class="cmmi-7">x</span></sub><span
-class="cmmi-10">b</span><sub><span
-class="cmmi-7">y</span></sub> <span
-class="cmsy-10">- </span><span
-class="cmmi-10">a</span><sub><span
-class="cmmi-7">y</span></sub><span
-class="cmmi-10">b</span><sub><span
-class="cmmi-7">x</span></sub>
-</div>
-<!--l. 254--><p class="indent" > The same in code:
- <!--l. 257-->
- <div class="lstlisting"><span class="label"><a
- id="x1-9001r1"></a></span>a&#x00A0;=&#x00A0;Vector3(...)&#x00A0;<br /><span class="label"><a
- id="x1-9002r2"></a></span>b&#x00A0;=&#x00A0;Vector3(...)&#x00A0;<br /><span class="label"><a
- id="x1-9003r3"></a></span>c&#x00A0;=&#x00A0;Vector3(...)&#x00A0;<br /><span class="label"><a
- id="x1-9004r4"></a></span>&#x00A0;<br /><span class="label"><a
- id="x1-9005r5"></a></span>c.x&#x00A0;=&#x00A0;a.x<span
-class="cmsy-10">*</span>b.z&#x00A0;<span
-class="cmsy-10">-</span>&#x00A0;a.z<span
-class="cmsy-10">*</span>b.y&#x00A0;<br /><span class="label"><a
- id="x1-9006r6"></a></span>c.y&#x00A0;=&#x00A0;a.z<span
-class="cmsy-10">*</span>b.x&#x00A0;<span
-class="cmsy-10">-</span>&#x00A0;a.x<span
-class="cmsy-10">*</span>b.z&#x00A0;<br /><span class="label"><a
- id="x1-9007r7"></a></span>c.z&#x00A0;=&#x00A0;a.x<span
-class="cmsy-10">*</span>b.y&#x00A0;<span
-class="cmsy-10">-</span>&#x00A0;a.y<span
-class="cmsy-10">*</span>b.x&#x00A0;<br /><span class="label"><a
- id="x1-9008r8"></a></span>&#x00A0;<br /><span class="label"><a
- id="x1-9009r9"></a></span>//&#x00A0;or&#x00A0;using&#x00A0;the&#x00A0;built<span
-class="cmsy-10">-</span>in&#x00A0;function&#x00A0;<br /><span class="label"><a
- id="x1-9010r10"></a></span>&#x00A0;<br /><span class="label"><a
- id="x1-9011r11"></a></span>c&#x00A0;=&#x00A0;a.cross(b)
- </div>
-<!--l. 273--><p class="indent" > The <span
-class="ecti-1000">cross product </span>also presents several useful properties:
- <ul class="itemize1">
- <li class="itemize">As mentioned, the resulting vector <span
-class="ecti-1000">c </span>is orthogonal to the input vectors <span
-class="ecti-1000">a</span>
- and <span
-class="ecti-1000">b.</span>
- </li>
- <li class="itemize">Since the <span
-class="ecti-1000">cross product </span>is anticommutative, swapping <span
-class="ecti-1000">a </span>and <span
-class="ecti-1000">b </span>will result
- in a negated vector <span
-class="ecti-1000">c.</span>
-
- </li>
- <li class="itemize">if <span
-class="ecti-1000">a </span>and <span
-class="ecti-1000">b </span>are taken from two of the segmets <span
-class="ecti-1000">AB</span>, <span
-class="ecti-1000">BC </span>or <span
-class="ecti-1000">CA </span>that form a
- 3D triangle, the magnitude of the resulting vector divided by 2 is the area
- of that triangle.
- </li>
- <li class="itemize">The direction of the resulting vector <span
-class="ecti-1000">c </span>in the previous triangle example
- determines wether the points A,B and C are arranged in clocwise or
- counter-clockwise order.</li></ul>
-<!--l. 287--><p class="noindent" >
- <h4 class="subsectionHead"><span class="titlemark">1.3 </span> <a
- id="x1-100001.3"></a>Plane</h4>
-<!--l. 290--><p class="noindent" >
- <h5 class="subsubsectionHead"><span class="titlemark">1.3.1 </span> <a
- id="x1-110001.3.1"></a>Theory</h5>
-<!--l. 292--><p class="noindent" >A plane can be considered as an infinite, flat surface that splits space in two halves,
-usually one named positive and one named negative. In regular mathematics, a plane
-formula is described as:
-<div class="center"
->
-<!--l. 296--><p class="noindent" >
-<!--l. 297--><p class="noindent" ><span
-class="cmmi-10">ax </span><span
-class="cmr-10">+ </span><span
-class="cmmi-10">by </span><span
-class="cmr-10">+ </span><span
-class="cmmi-10">cz </span><span
-class="cmr-10">+ </span><span
-class="cmmi-10">d</span>
-</div>
-<!--l. 300--><p class="indent" > However, in 3D programming, this form alone is often of little use. For planes to
-become useful, they must be in normalized form.
-<!--l. 303--><p class="indent" > A normalized plane consists of a <span
-class="ecti-1000">normal vector n </span>and a <span
-class="ecti-1000">distance d. </span>To normalize
-a plane, a vector <span
-class="ecti-1000">n </span>and distance <span
-class="ecti-1000">d&#8217; </span>are created this way:
-<!--l. 307--><p class="indent" > <span
-class="cmmi-10">n</span><sub><span
-class="cmmi-7">x</span></sub> <span
-class="cmr-10">= </span><span
-class="cmmi-10">a</span>
-<!--l. 309--><p class="indent" > <span
-class="cmmi-10">n</span><sub><span
-class="cmmi-7">y</span></sub> <span
-class="cmr-10">= </span><span
-class="cmmi-10">b</span>
-<!--l. 311--><p class="indent" > <span
-class="cmmi-10">n</span><sub><span
-class="cmmi-7">z</span></sub> <span
-class="cmr-10">= </span><span
-class="cmmi-10">c</span>
-<!--l. 313--><p class="indent" > <span
-class="cmmi-10">d</span><span
-class="cmsy-10">&#x2032; </span><span
-class="cmr-10">= </span><span
-class="cmmi-10">d</span>
-<!--l. 315--><p class="indent" > Finally, both <span
-class="ecti-1000">n </span>and <span
-class="ecti-1000">d&#8217; </span>are both divided by the magnitude of n.
-<!--l. 318--><p class="indent" > In any case, normalizing planes is not often needed (this was mostly for
-explanation purposes), and normalized planes are useful because they can be created
-and used easily.
-<!--l. 322--><p class="indent" > A normalized plane could be visualized as a plane pointing towards normal <span
-class="ecti-1000">n,</span>
-offseted by <span
-class="ecti-1000">d </span>in the direction of <span
-class="ecti-1000">n</span>.
-<!--l. 325--><p class="indent" > In other words, take <span
-class="ecti-1000">n</span>, multiply it by scalar <span
-class="ecti-1000">d </span>and the resulting point will be part
-of the plane. This may need some thinking, so an example with a 2D normal vector
-(z is 0, so plane is orthogonal to it) is provided:
-<!--l. 330--><p class="indent" > Some operations can be done with normalized planes:
-
- <ul class="itemize1">
- <li class="itemize">Given any point <span
-class="ecti-1000">p</span>, the distance from it to a plane can be computed by
- doing: n.dot(p) - d
- </li>
- <li class="itemize">If the resulting distance in the previous point is negative, the point is
- below the plane.
- </li>
- <li class="itemize">Convex polygonal shapes can be defined by enclosing them in planes (the
- physics engine uses this property)</li></ul>
-<!--l. 340--><p class="noindent" >
- <h5 class="subsubsectionHead"><span class="titlemark">1.3.2 </span> <a
- id="x1-120001.3.2"></a>Implementation</h5>
-<!--l. 342--><p class="noindent" >Godot Engine implements normalized planes by using the <span
-class="ecti-1000">Plane </span>class.
- <!--l. 346-->
- <div class="lstlisting"><span class="label"><a
- id="x1-12001r1"></a></span>//creates&#x00A0;a&#x00A0;plane&#x00A0;with&#x00A0;normal&#x00A0;(0,1,0)&#x00A0;and&#x00A0;distance&#x00A0;5&#x00A0;<br /><span class="label"><a
- id="x1-12002r2"></a></span>p&#x00A0;=&#x00A0;Plane(&#x00A0;Vector3(0,1,0),&#x00A0;5&#x00A0;)&#x00A0;<br /><span class="label"><a
- id="x1-12003r3"></a></span>//&#x00A0;get&#x00A0;the&#x00A0;distance&#x00A0;to&#x00A0;a&#x00A0;point&#x00A0;<br /><span class="label"><a
- id="x1-12004r4"></a></span>d&#x00A0;=&#x00A0;p.distance(&#x00A0;Vector3(4,5,6)&#x00A0;)
- </div>
-<!--l. 355--><p class="noindent" >
- <h4 class="subsectionHead"><span class="titlemark">1.4 </span> <a
- id="x1-130001.4"></a>Matrices, Quaternions and Coordinate Systems</h4>
-<!--l. 357--><p class="noindent" >It is very often needed to store the location/rotation of something. In 2D, it is often
-enough to store an <span
-class="ecti-1000">x,y </span>location and maybe an angle as the rotation, as that should
-be enough to represent any posible position.
-<!--l. 362--><p class="indent" > In 3D this becomes a little more difficult, as there is nothing as simple as an angle
-to store a 3-axis rotation.
-<!--l. 365--><p class="indent" > The first think that may come to mind is to use 3 angles, one for x, one for y and
-one for z. However this suffers from the problem that it becomes very cumbersome to
-use, as the individual rotations in each axis need to be performed one after another
-(they can&#8217;t be performed at the same time), leading to a problem called &#8220;gimbal
-lock&#8221;. Also, it becomes impossible to accumulate rotations (add a rotation to an
-existing one).
-<!--l. 373--><p class="indent" > To solve this, there are two known diferent approaches that aid in solving
-rotation, <span
-class="ecti-1000">Quaternions </span>and <span
-class="ecti-1000">Oriented Coordinate Systems.</span>
-<!--l. 378--><p class="noindent" >
- <h5 class="subsubsectionHead"><span class="titlemark">1.4.1 </span> <a
- id="x1-140001.4.1"></a>Oriented Coordinate Systems</h5>
-<!--l. 380--><p class="noindent" ><span
-class="ecti-1000">Oriented Coordinate Systems </span>(<span
-class="ecti-1000">OCS</span>) are a way of representing a coordinate system
-inside the cartesian coordinate system. They are mainly composed of 3 Vectors, one
-for each axis. The first vector is the <span
-class="ecti-1000">x </span>axis, the second the <span
-class="ecti-1000">y </span>axis, and the third is the
-
-<span
-class="ecti-1000">z </span>axis. The OCS vectors can be rotated around freely as long as they are kept the
-same length (as changing the length of an axis changes its cale), and as long as they
-remain orthogonal to eachother (as in, the same as the default cartesian system,
-with <span
-class="ecti-1000">y </span>pointing up, <span
-class="ecti-1000">x </span>pointing left and <span
-class="ecti-1000">z </span>pointing front, but all rotated
-together).
-<!--l. 391--><p class="indent" > <span
-class="ecti-1000">Oriented Coordinate Systems </span>are represented in 3D programming as a 3x3 matrix,
-where each row (or column, depending on the implementation) contains one of the
-axis vectors. Transforming a Vector by a rotated OCS Matrix results in the rotation
-being applied to the resulting vector. OCS Matrices can also be multiplied to
-accumulate their transformations.
-<!--l. 397--><p class="indent" > Godot Engine implements OCS Matrices in the <span
-class="ecti-1000">Matrix3 </span>class:
- <!--l. 400-->
- <div class="lstlisting"><span class="label"><a
- id="x1-14001r1"></a></span><span
-class="ecti-1000">//</span><span
-class="ecti-1000">create</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">a</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">3</span><span
-class="ecti-1000">x3</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">matrix</span>&#x00A0;<br /><span class="label"><a
- id="x1-14002r2"></a></span>m&#x00A0;=&#x00A0;Matrix3()&#x00A0;<br /><span class="label"><a
- id="x1-14003r3"></a></span><span
-class="ecti-1000">//</span><span
-class="ecti-1000">rotate</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">the</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">matrix</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">in</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">the</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">y</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">axis</span><span
-class="ecti-1000">,</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">by</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">45</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">degrees</span>&#x00A0;<br /><span class="label"><a
- id="x1-14004r4"></a></span>m.rotate(&#x00A0;Vector3(0,1,0),&#x00A0;Math.deg2rad(45)&#x00A0;)&#x00A0;<br /><span class="label"><a
- id="x1-14005r5"></a></span><span
-class="ecti-1000">//</span><span
-class="ecti-1000">transform</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">a</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">vector</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">v</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">(</span><span
-class="ecti-1000">xform</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">method</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">is</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">used</span><span
-class="ecti-1000">)</span>&#x00A0;<br /><span class="label"><a
- id="x1-14006r6"></a></span>v&#x00A0;=&#x00A0;Vector3(...)&#x00A0;<br /><span class="label"><a
- id="x1-14007r7"></a></span>result&#x00A0;=&#x00A0;m.xform(&#x00A0;v&#x00A0;)
- </div>
-<!--l. 412--><p class="indent" > However, in most usage cases, one wants to store a translation together with the
-rotation. For this, an <span
-class="ecti-1000">origin </span>vector must be added to the OCS, thus transforming it
-into a 3x4 (or 4x3, depending on preference) matrix. Godot engine implements this
-functionality in the <span
-class="ecti-1000">Transform </span>class:
- <!--l. 419-->
- <div class="lstlisting"><span class="label"><a
- id="x1-14010r1"></a></span>t&#x00A0;=&#x00A0;Transform()&#x00A0;<br /><span class="label"><a
- id="x1-14011r2"></a></span>//rotate&#x00A0;the&#x00A0;transform&#x00A0;in&#x00A0;the&#x00A0;y&#x00A0;axis,&#x00A0;by&#x00A0;45&#x00A0;degrees&#x00A0;<br /><span class="label"><a
- id="x1-14012r3"></a></span>t.rotate(&#x00A0;Vector3(0,1,0),&#x00A0;Math.deg2rad(45)&#x00A0;)&#x00A0;<br /><span class="label"><a
- id="x1-14013r4"></a></span>//translate&#x00A0;the&#x00A0;transform&#x00A0;by&#x00A0;5&#x00A0;in&#x00A0;the&#x00A0;z&#x00A0;axis&#x00A0;<br /><span class="label"><a
- id="x1-14014r5"></a></span>t.translate(&#x00A0;Vector3(&#x00A0;0,0,5&#x00A0;)&#x00A0;)&#x00A0;<br /><span class="label"><a
- id="x1-14015r6"></a></span>//transform&#x00A0;a&#x00A0;vector&#x00A0;v&#x00A0;(xform&#x00A0;method&#x00A0;is&#x00A0;used)&#x00A0;<br /><span class="label"><a
- id="x1-14016r7"></a></span>v&#x00A0;=&#x00A0;Vector3(...)&#x00A0;<br /><span class="label"><a
- id="x1-14017r8"></a></span>result&#x00A0;=&#x00A0;t.xform(&#x00A0;v&#x00A0;)
- </div>
-<!--l. 431--><p class="indent" > Transform contains internally a Matrix3 &#8220;basis&#8221; and a Vector3 &#8220;origin&#8221; (which can
-be modified individually).
-<!--l. 435--><p class="noindent" >
- <h5 class="subsubsectionHead"><span class="titlemark">1.4.2 </span> <a
- id="x1-150001.4.2"></a>Transform Internals</h5>
-<!--l. 437--><p class="noindent" >Internally, the xform() process is quite simple, to apply a 3x3 transform to a vector,
-the transposed axis vectors are used (as using the regular axis vectors will result on
-an inverse of the desired transform):
- <!--l. 442-->
- <div class="lstlisting"><span class="label"><a
- id="x1-15001r1"></a></span>m&#x00A0;=&#x00A0;Matrix3(...)&#x00A0;<br /><span class="label"><a
- id="x1-15002r2"></a></span>v&#x00A0;=&#x00A0;Vector3(..)&#x00A0;<br /><span class="label"><a
- id="x1-15003r3"></a></span>result&#x00A0;=&#x00A0;Vector3(...)&#x00A0;<br /><span class="label"><a
- id="x1-15004r4"></a></span>&#x00A0;<br /><span class="label"><a
- id="x1-15005r5"></a></span>x_axis&#x00A0;=&#x00A0;m.get_axis(0)&#x00A0;<br /><span class="label"><a
- id="x1-15006r6"></a></span>y_axis&#x00A0;=&#x00A0;m.get_axis(1)&#x00A0;<br /><span class="label"><a
- id="x1-15007r7"></a></span>z_axis&#x00A0;=&#x00A0;m.get_axis(2)&#x00A0;<br /><span class="label"><a
- id="x1-15008r8"></a></span>&#x00A0;<br /><span class="label"><a
- id="x1-15009r9"></a></span>result.x&#x00A0;=&#x00A0;Vector3(x_axis.x,&#x00A0;y_axis.x,&#x00A0;z_axis.x).dot(v)&#x00A0;<br /><span class="label"><a
- id="x1-15010r10"></a></span>result.y&#x00A0;=&#x00A0;Vector3(x_axis.y,&#x00A0;y_axis.y,&#x00A0;z_axis.y).dot(v)&#x00A0;<br /><span class="label"><a
- id="x1-15011r11"></a></span>result.z&#x00A0;=&#x00A0;Vector3(x_axis.z,&#x00A0;y_axis.z,&#x00A0;z_axis.z).dot(v)&#x00A0;<br /><span class="label"><a
- id="x1-15012r12"></a></span>&#x00A0;<br /><span class="label"><a
- id="x1-15013r13"></a></span>//&#x00A0;is&#x00A0;the&#x00A0;same&#x00A0;as&#x00A0;doing&#x00A0;<br /><span class="label"><a
- id="x1-15014r14"></a></span>&#x00A0;<br /><span class="label"><a
- id="x1-15015r15"></a></span>result&#x00A0;=&#x00A0;m.xform(v)&#x00A0;<br /><span class="label"><a
- id="x1-15016r16"></a></span>&#x00A0;<br /><span class="label"><a
- id="x1-15017r17"></a></span>//&#x00A0;if&#x00A0;m&#x00A0;this&#x00A0;was&#x00A0;a&#x00A0;Transform(),&#x00A0;the&#x00A0;origin&#x00A0;would&#x00A0;be&#x00A0;added&#x00A0;<br /><span class="label"><a
- id="x1-15018r18"></a></span>//&#x00A0;like&#x00A0;this:&#x00A0;<br /><span class="label"><a
- id="x1-15019r19"></a></span>&#x00A0;<br /><span class="label"><a
- id="x1-15020r20"></a></span>result&#x00A0;=&#x00A0;result&#x00A0;+&#x00A0;t.get_origin()
- </div>
-<!--l. 468--><p class="noindent" >
- <h5 class="subsubsectionHead"><span class="titlemark">1.4.3 </span> <a
- id="x1-160001.4.3"></a>Using The Transform</h5>
-<!--l. 470--><p class="noindent" >So, it is often desired apply sucessive operations to a transformation. For example,
-let&#8217;s a assume that there is a turtle sitting at the origin (the turtle is a logo reference,
-
-for those familiar with it). The <span
-class="ecti-1000">y </span>axis is up, and the the turtle&#8217;s nose is pointing
-towards the <span
-class="ecti-1000">z </span>axis.
-<!--l. 476--><p class="indent" > The turtle (like many other animals, or vehicles!) can only walk towards the
-direction it&#8217;s looking at. So, moving the turtle around a little should be something
-like this:
- <!--l. 481-->
- <div class="lstlisting"><span class="label"><a
- id="x1-16001r1"></a></span><span
-class="ecti-1000">//</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">turtle</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">at</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">the</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">origin</span>&#x00A0;<br /><span class="label"><a
- id="x1-16002r2"></a></span>turtle&#x00A0;=&#x00A0;Transform()&#x00A0;<br /><span class="label"><a
- id="x1-16003r3"></a></span><span
-class="ecti-1000">//</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">turtle</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">will</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">walk</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">5</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">units</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">in</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">z</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">axis</span>&#x00A0;<br /><span class="label"><a
- id="x1-16004r4"></a></span>turtle.translate(&#x00A0;Vector3(0,0,5)&#x00A0;)&#x00A0;<br /><span class="label"><a
- id="x1-16005r5"></a></span><span
-class="ecti-1000">//</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">turtle</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">eyes</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">a</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">lettuce</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">3</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">units</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">away</span><span
-class="ecti-1000">,</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">will</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">rotate</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">45</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">degrees</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">right</span>&#x00A0;<br /><span class="label"><a
- id="x1-16006r6"></a></span>turtle.rotate(&#x00A0;Vector3(0,1,0),&#x00A0;Math.deg2rad(45)&#x00A0;)&#x00A0;<br /><span class="label"><a
- id="x1-16007r7"></a></span><span
-class="ecti-1000">//</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">turtle</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">approaches</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">the</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">lettuce</span>&#x00A0;<br /><span class="label"><a
- id="x1-16008r8"></a></span>turtle.translate(&#x00A0;Vector3(0,0,5)&#x00A0;)&#x00A0;<br /><span class="label"><a
- id="x1-16009r9"></a></span><span
-class="ecti-1000">//</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">happy</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">turtle</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">over</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">lettuce</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">is</span><span
-class="ecti-1000">&#x00A0;</span><span
-class="ecti-1000">at</span>&#x00A0;<br /><span class="label"><a
- id="x1-16010r10"></a></span>print(turtle.get_origin())
- </div>
-<!--l. 496--><p class="indent" > As can be seen, every new action the turtle takes is based on the previous one it
-took. Had the order of actions been different and the turtle would have never reached
-the lettuce.
-<!--l. 500--><p class="indent" > Transforms are just that, a mean of &#8220;accumulating&#8221; rotation, translation, scale,
-etc.
-<!--l. 504--><p class="noindent" >
- <h5 class="subsubsectionHead"><span class="titlemark">1.4.4 </span> <a
- id="x1-170001.4.4"></a>A Warning about Numerical Precision</h5>
-<!--l. 506--><p class="noindent" >Performing several actions over a transform will slowly and gradually lead to
-precision loss (objects that draw according to a transform may get jittery, bigger,
-smaller, skewed, etc). This happens due to the nature of floating point numbers. if
-transforms/matrices are created from other kind of values (like a position and
-some angular rotation) this is not needed, but if has been accumulating
-transformations and was never recreated, it can be normalized by calling the
-.orthonormalize() built-in function. This function has little cost and calling it every
-now and then will avoid the effects from precision loss to become visible.
-
-</body></html>
-
-
-
diff --git a/doc/html/tutorial01/tutorial0x.png b/doc/html/tutorial01/tutorial0x.png
deleted file mode 100644
index a0ed4f53ff..0000000000
--- a/doc/html/tutorial01/tutorial0x.png
+++ /dev/null
Binary files differ
diff --git a/doc/html/tutorial01/tutorial1x.png b/doc/html/tutorial01/tutorial1x.png
deleted file mode 100644
index 80f0d099f7..0000000000
--- a/doc/html/tutorial01/tutorial1x.png
+++ /dev/null
Binary files differ
diff --git a/doc/html/tutorial01/tutorial2x.png b/doc/html/tutorial01/tutorial2x.png
deleted file mode 100644
index 76c502b6da..0000000000
--- a/doc/html/tutorial01/tutorial2x.png
+++ /dev/null
Binary files differ
diff --git a/doc/html/tutorial01/tutorial3x.png b/doc/html/tutorial01/tutorial3x.png
deleted file mode 100644
index 8431e9d15c..0000000000
--- a/doc/html/tutorial01/tutorial3x.png
+++ /dev/null
Binary files differ
diff --git a/doc/html/tutorial01/tutorial4x.png b/doc/html/tutorial01/tutorial4x.png
deleted file mode 100644
index 1ce7a2bb45..0000000000
--- a/doc/html/tutorial01/tutorial4x.png
+++ /dev/null
Binary files differ
diff --git a/doc/make_doc.sh b/doc/make_doc.sh
deleted file mode 100644
index a76f568bfc..0000000000
--- a/doc/make_doc.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#! /bin/bash
-here="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-godotHome=$(dirname "$here")
-docTarget=${here}/html/class_list
-toolsRoot=${godotHome}/tools
-
-throw() {
- echo "$@" >&2
- exit 1
-}
-
-[ -d "$docTarget" ] || mkdir -p "$docTarget" || throw "Could not create doc target $docTarget"
-
-cd "$docTarget"
-python ${toolsRoot}/docdump/makehtml.py -multipage ${here}/base/classes.xml
-cd "$here"
-
diff --git a/doc/notes.txt b/doc/notes.txt
deleted file mode 100644
index 39c03ca4c5..0000000000
--- a/doc/notes.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-
-in FileDialog file_selected -> file_activated
-focus script/shader editor when gaining focus
-detect if errors in editor and don't allow play
-
-
--tree of files (all recognized extensions)
-
-*export: *keep|export|bundle
-*options: [make binary for xnl], then options for each filetype (texture compress method, etc)
-
-
-config.h deberia teber varias cosas de plataforma
-
-_FORCE_INLINE_
-copymem
-ftoi
-defines de funciones matematicas
-
-
diff --git a/doc/phys_engine.png b/doc/phys_engine.png
deleted file mode 100644
index 15539d47d7..0000000000
--- a/doc/phys_engine.png
+++ /dev/null
Binary files differ
diff --git a/doc/squirrel.lyx b/doc/squirrel.lyx
deleted file mode 100644
index 05270c1b8f..0000000000
--- a/doc/squirrel.lyx
+++ /dev/null
@@ -1,984 +0,0 @@
-#LyX 2.0 created this file. For more info see http://www.lyx.org/
-\lyxformat 413
-\begin_document
-\begin_header
-\textclass article
-\use_default_options true
-\maintain_unincluded_children false
-\language english
-\language_package default
-\inputencoding auto
-\fontencoding global
-\font_roman default
-\font_sans default
-\font_typewriter default
-\font_default_family default
-\use_non_tex_fonts false
-\font_sc false
-\font_osf false
-\font_sf_scale 100
-\font_tt_scale 100
-
-\graphics default
-\default_output_format default
-\output_sync 0
-\bibtex_command default
-\index_command default
-\paperfontsize default
-\use_hyperref false
-\papersize default
-\use_geometry false
-\use_amsmath 1
-\use_esint 1
-\use_mhchem 1
-\use_mathdots 1
-\cite_engine basic
-\use_bibtopic false
-\use_indices false
-\paperorientation portrait
-\suppress_date false
-\use_refstyle 1
-\index Index
-\shortcut idx
-\color #008000
-\end_index
-\secnumdepth 3
-\tocdepth 3
-\paragraph_separation indent
-\paragraph_indentation default
-\quotes_language english
-\papercolumns 1
-\papersides 1
-\paperpagestyle default
-\tracking_changes false
-\output_changes false
-\html_math_output 0
-\html_css_as_file 0
-\html_be_strict false
-\end_header
-
-\begin_body
-
-\begin_layout Title
-Squirrel Usage in Godot
-\end_layout
-
-\begin_layout Section
-Introduction
-\end_layout
-
-\begin_layout Standard
-Squirrel is a nice scripting language.
- It's sort of a mix between Lua, Java and JavaScript and ends up being easy
- to learn for most programmers.
- It has more language features than GDScript but it's also slower, more
- limited and not as well integrated.
- This guide will explain how Squirrel is integrated to Godot and all the
- quirks that are needed to know in order to use it properly.
-\end_layout
-
-\begin_layout Section
-Enabling Squirrel
-\end_layout
-
-\begin_layout Standard
-Squirrel may not be enabled by default in a Godot build.
- To enable it, execute SCons with the following parameters:
-\end_layout
-
-\begin_layout Standard
-\begin_inset listings
-inline false
-status open
-
-\begin_layout Plain Layout
-
-shell$ scons squirrel=yes <target_binary>
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-Documentation
-\end_layout
-
-\begin_layout Standard
-Godot utilizes Squirrel 2.2.
- Documentation can be found at:
-\begin_inset CommandInset href
-LatexCommand href
-target "http://squirrel-lang.org/#documentation"
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-Class Files
-\end_layout
-
-\begin_layout Standard
-Unless writing a library, Godot expects a class for scripting an object.
- Since a Squirrel source file can contain many classes, the main class must
- be returned.
- The following is an example of extending a button:
-\end_layout
-
-\begin_layout Standard
-\begin_inset listings
-inline false
-status open
-
-\begin_layout Plain Layout
-
-class MyButton extends Button {
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
- constructor() {
-\end_layout
-
-\begin_layout Plain Layout
-
- // ALWAYS call parent constructor
-\end_layout
-
-\begin_layout Plain Layout
-
- Button.constructor()
-\end_layout
-
-\begin_layout Plain Layout
-
- }
-\end_layout
-
-\begin_layout Plain Layout
-
-}
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-return MyButton // main class returned
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Additionally, classes are all copied to the root table, so all class names
- in scripts must be different if they are attempted to be loaded simultaneously.
- The same can be said for any other globals declared in the script.
-
-\end_layout
-
-\begin_layout Standard
-Finally, squirrel scripts must be saved with the .nut or .sq extensions (both
- are recognized).
-\end_layout
-
-\begin_layout Section
-Including Other Scripts
-\end_layout
-
-\begin_layout Standard
-Other scripts can be included with the include() directive.
- Full and relative paths are supported.
- When included, the classes and globals are moved to the root table, so
- they become immediately available.
- Constants, however, are only inlined in the current class on load, so Squirrel
- does not make them available.
- Example of including scripts:
-\end_layout
-
-\begin_layout Standard
-\begin_inset listings
-inline false
-status open
-
-\begin_layout Plain Layout
-
-include("my_button.nut") # // relative to current script, expected to be
- in the same path
-\end_layout
-
-\begin_layout Plain Layout
-
-include("res://buttons/my_button.nut") // using resource path
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-Built-In Types
-\end_layout
-
-\begin_layout Standard
-There are some small differences between the Built-In types in Godot and
- the ones in Squirrel, so the documentation will not match.
- The differences are documented here.
-\end_layout
-
-\begin_layout Standard
-An attempt will be made to document everything here,but if in doubt about
- bindings on built-in types, you can always take a loot at the bindings
- source file in script/squirrel/sq_bind_types.cpp.
-\end_layout
-
-\begin_layout Standard
-Built-In Types in Squirrel are passed by reference (unlike by value like
- in GD).
- They also don't need to be freed.
-\end_layout
-
-\begin_layout Subsection
-AABB
-\end_layout
-
-\begin_layout Standard
-\begin_inset Quotes eld
-\end_inset
-
-pos
-\begin_inset Quotes erd
-\end_inset
-
-,
-\begin_inset Quotes eld
-\end_inset
-
-size
-\begin_inset Quotes erd
-\end_inset
-
- and
-\begin_inset Quotes eld
-\end_inset
-
-end
-\begin_inset Quotes erd
-\end_inset
-
- are not available Use get_pos()/set_pos and get_size()/set_size().
-\end_layout
-
-\begin_layout Subsection
-InputEvent
-\end_layout
-
-\begin_layout Standard
-InputEvent is a single datatype and contains everything.
- Use only the fields meant for the event type:
-\end_layout
-
-\begin_layout Standard
-\begin_inset listings
-inline false
-status open
-
-\begin_layout Plain Layout
-
-//for mouse motion and button
-\end_layout
-
-\begin_layout Plain Layout
-
-int mouse_x
-\end_layout
-
-\begin_layout Plain Layout
-
-int mouse_y
-\end_layout
-
-\begin_layout Plain Layout
-
-int mouse_button_mask
-\end_layout
-
-\begin_layout Plain Layout
-
-int mouse_global_x
-\end_layout
-
-\begin_layout Plain Layout
-
-int mouse_global_y
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-//for mouse button
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-int mouse_button_index
-\end_layout
-
-\begin_layout Plain Layout
-
-bool mouse_button_pressed
-\end_layout
-
-\begin_layout Plain Layout
-
-bool mouse_button_doubleclick
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-//for mouse motion
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-int mouse_motion_x
-\end_layout
-
-\begin_layout Plain Layout
-
-int mouse_motion_y
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-//for keyboard
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-int key_scancode
-\end_layout
-
-\begin_layout Plain Layout
-
-int key_unicode
-\end_layout
-
-\begin_layout Plain Layout
-
-bool key_pressed
-\end_layout
-
-\begin_layout Plain Layout
-
-bool key_echo
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-//for keyboard and mouse
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-bool mod_alt
-\end_layout
-
-\begin_layout Plain Layout
-
-bool mod_shift
-\end_layout
-
-\begin_layout Plain Layout
-
-bool mod_meta
-\end_layout
-
-\begin_layout Plain Layout
-
-bool mod_control
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-//joy button
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-int joy_button_index
-\end_layout
-
-\begin_layout Plain Layout
-
-bool joy_button_pressed
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-//joy axis
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-int joy_axis
-\end_layout
-
-\begin_layout Plain Layout
-
-float joy_axis_value
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-//screen drag and touch
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-int screen_index
-\end_layout
-
-\begin_layout Plain Layout
-
-int screen_x
-\end_layout
-
-\begin_layout Plain Layout
-
-int screen_y
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-//screen touch
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-int screen_index
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-//action
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-int action_id
-\end_layout
-
-\begin_layout Plain Layout
-
-bool action_pressed
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-Matrix3
-\end_layout
-
-\begin_layout Standard
-x,y,z member vectors are not available.
- Use get_row() and set_row() instead.
- Individual float values of the matrix are available as swizzle masks such
- as xxy, xyz, zzx, etc.
-\end_layout
-
-\begin_layout Standard
-Additional in-place versions of some functions are available: transpose(),
- invert(), rotate(), scale(), orthonormalize().
-\end_layout
-
-\begin_layout Subsection
-Transform
-\end_layout
-
-\begin_layout Standard
-\begin_inset Quotes eld
-\end_inset
-
-basis
-\begin_inset Quotes erd
-\end_inset
-
- and
-\begin_inset Quotes eld
-\end_inset
-
-origin
-\begin_inset Quotes erd
-\end_inset
-
- members are not available.
- Use get_basis()/set_basis() and get_origin()/set_origin() instead.
- Additional in-place versions of some functions are available: invert(),
- affine_invert(), orthonormalize(), rotate(), translate(), scale().
-\end_layout
-
-\begin_layout Standard
-Vector2
-\end_layout
-
-\begin_layout Subsection
-Plane
-\end_layout
-
-\begin_layout Standard
-\begin_inset Quotes eld
-\end_inset
-
-normal
-\begin_inset Quotes erd
-\end_inset
-
- member vector is not available.
- Use get_normal(), set_normal() instead.
-\end_layout
-
-\begin_layout Subsection
-Rect2
-\end_layout
-
-\begin_layout Standard
-\begin_inset Quotes eld
-\end_inset
-
-pos
-\begin_inset Quotes erd
-\end_inset
-
-,
-\begin_inset Quotes eld
-\end_inset
-
-size
-\begin_inset Quotes erd
-\end_inset
-
- and
-\begin_inset Quotes eld
-\end_inset
-
-end
-\begin_inset Quotes erd
-\end_inset
-
- are not available Use get_pos()/set_pos and get_size()/set_size().
-\end_layout
-
-\begin_layout Subsection
-Native Arrays
-\end_layout
-
-\begin_layout Standard
-Native arrays such as RawArray, IntArray,StringArray, etc are not supported.
- Use regular squirrel arrays instead, since conversion to/from them will
- happen automatically.
-\end_layout
-
-\begin_layout Subsection
-Math Functions
-\end_layout
-
-\begin_layout Standard
-Math functions are inside the Math namespace in Squirrel.
- For example Math.sin , Math.PI, Math.atan2().
-\end_layout
-
-\begin_layout Subsection
-Native Types
-\end_layout
-
-\begin_layout Standard
-Array, Dictionary and NodePath are not available.
- Use a native array, table and string respectively.
-\end_layout
-
-\begin_layout Section
-_get , _set
-\end_layout
-
-\begin_layout Standard
-_get and _set are reserved in Squirrel, for overriding Godot Object property
- getter/setter, use _get_property and _set_property.
-\end_layout
-
-\begin_layout Section
-Member Export
-\end_layout
-
-\begin_layout Standard
-Simple exporting of members (so far only integer, floating point and string
- are supported) is supported by the @export extension.
- It is used like this:
-\end_layout
-
-\begin_layout Standard
-\begin_inset listings
-inline false
-status open
-
-\begin_layout Plain Layout
-
-class MyButton extends Button {
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
- aprop=1 // @export
-\end_layout
-
-\begin_layout Plain Layout
-
- bprop=2.0 // @export
-\end_layout
-
-\begin_layout Plain Layout
-
- cprop="3" // @export
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
- //these will be available to the property editor, and will be loaded/saved
- with the scene.
-\end_layout
-
-\begin_layout Plain Layout
-
-}
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-Always Enabled Scripts
-\end_layout
-
-\begin_layout Standard
-Scripts are not enabled in the editor by default.
- To enable a script always, add an @always_enabled comment.
- Example:
-\end_layout
-
-\begin_layout Standard
-\begin_inset listings
-inline false
-status open
-
-\begin_layout Plain Layout
-
-//@always_enabled
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-class MyButton extends Button {
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-...
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-Threads
-\end_layout
-
-\begin_layout Standard
-Thread support in Squirrel is very poor.
- This is because of the stack-based nature of the language implementation.
- Since godot can run in multiple threads, it will forcibily lock the whole
- VM when accessed from multiple threads, which will result in degraded performan
-ce.
- Creating user threads in Squirrel is definitely not recomended, as it may
- completely lock the main thread.
-\end_layout
-
-\begin_layout Section
-References
-\end_layout
-
-\begin_layout Standard
-Godot has a built-in reference counted type used in conjunction with a template
- (objects that inherit the
-\begin_inset Quotes eld
-\end_inset
-
-Reference
-\begin_inset Quotes erd
-\end_inset
-
- class).
- Since Squirrel also uses reference counting, it becomes impossible for
- such types in godot to contain a script, because it would result in an
- un-breakable reference cycle.
- To avoid this, a Ref() class was created in Squirrel.
-
-\end_layout
-
-\begin_layout Standard
-When calling Godot API functions, returned references are wrapped inside
- Ref() transparently, but the problem arises when creating a Reference-derived
- object from the code.
- In such cases, the reference must be wrapped manually like this:
-\end_layout
-
-\begin_layout Standard
-\begin_inset listings
-inline false
-status open
-
-\begin_layout Plain Layout
-
-local f = Ref( File() )
-\end_layout
-
-\begin_layout Plain Layout
-
-local err = f.open("hello.txt",File.READ)
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Anything not a reference that inherits from Object can be freed manually
- by calling .free(), just like in GDScript.
- Object classes are in itself weak references to engine objects, and their
- validity can be checked by calling the
-\begin_inset Quotes eld
-\end_inset
-
-has_instance()
-\begin_inset Quotes erd
-\end_inset
-
- built-in method.
-\end_layout
-
-\begin_layout Section
-Unicode
-\end_layout
-
-\begin_layout Standard
-Squirrel source code is supposed to support Unicode, but the implementation
- is very broken (Squirrel attempts to use 16 bit chars no matter what, making
- it incompatible when the host OS is 32 bit, like Linux).
- Squirrel source code is parsed as UTF-8, and strings also contain UTF-8.
- Wide char access in strings is not supported.
-\end_layout
-
-\begin_layout Section
-Debugging
-\end_layout
-
-\begin_layout Standard
-Squirrel is well integrated into the Godot debugger.
- To run the project in debug mode, execute the godot binary with the -debug
- argument.
- Godot will break on squirrel errors and allow the programmer to debug.
-\end_layout
-
-\begin_layout Section
-Utility Functions
-\end_layout
-
-\begin_layout Standard
-There are a few squirrel-only utility functions available:
-\end_layout
-
-\begin_layout Subsection
-print(value[,value])
-\end_layout
-
-\begin_layout Standard
-Print stuff to stdout.
-\end_layout
-
-\begin_layout Subsection
-dofile(path)
-\end_layout
-
-\begin_layout Standard
-Execute a squirrel script file and return whatever the file returns.
- Not recommended to use in production because it can't be optimized.
-\end_layout
-
-\begin_layout Subsection
-nativeref(var)
-\end_layout
-
-\begin_layout Standard
-Convert any squirrel type to an engine type.
- When this type returns to squirrel, it's converted back.
- This is useful to add to Godot callbacks to ensure that the datatype is
- not converted.
-\end_layout
-
-\begin_layout Subsection
-unicode_split(string)
-\end_layout
-
-\begin_layout Standard
-Split an unicode string (utf8) into an array of widechars.
- Useful since there is no wide char access from Squirrel.
-\end_layout
-
-\begin_layout Subsection
-breakpoint()
-\end_layout
-
-\begin_layout Standard
-Stop the debugger when reaches here (when run inside the debugger).
-\end_layout
-
-\begin_layout Subsection
-backtrace()
-\end_layout
-
-\begin_layout Standard
-Print a backtrace of the call stack.
-\end_layout
-
-\begin_layout Subsection
-tr(text)
-\end_layout
-
-\begin_layout Standard
-Translate text (use string lookup in Godot translation system).
-\end_layout
-
-\begin_layout Subsection
-printerr(text)
-\end_layout
-
-\begin_layout Standard
-Print a string to stderr.
-\end_layout
-
-\end_body
-\end_document
diff --git a/doc/todo.txt b/doc/todo.txt
deleted file mode 100644
index 511b5dbbe2..0000000000
--- a/doc/todo.txt
+++ /dev/null
@@ -1,39 +0,0 @@
--Fisica 2D
- *terminar constraints
- *terminar queries
- *desactivar on suspend
- -bugs supongo?
-
--Fisica 3D
- -portar engine 2D a 3D mayoritariamente (si puedo esperar, mejor)
- -hacer que skeletons se vuelvan ragdolls de alguna forma
- -hacer bien lo de enganchar cosas a huesos de esqueleto
-
--GUI
- - Tree necesita resizear desde los headers
-
--Escena 3D
- -Deshabilitar 3D (Opcional en compilacion)
- -Particulas 3D
- -Heightmaps
- -Arreglar fixed pipeline
- -arreglar glow y ssao
-
--Editor codigo
- -Editor de codigo (esta, pero esta lleno de bugs)
- -Debugger (esta, pero hay que integrar bien)
-
--UI General
- -Cambiar lugar el tema de resources porque es MUY poco intuitivo
- -Tal vez arreglar un poquito el theme y la estetica (para release, low priority)
- -Run deberia correr la escena main
- -new script deberia dar opcion de crear en disco
- -los scripts de deberian mantener abiertos al abrir otra escena
- -
-
--Settings
- -Hacer pantalla de optimizacion general del proyecto
-
--A futuro:
- -Scripting Propio
- -Portar a DX9/GL3 \ No newline at end of file
diff --git a/tools/docdump/doc_merge.py b/doc/tools/doc_merge.py
index 872f38ed87..6cc7019324 100644
--- a/tools/docdump/doc_merge.py
+++ b/doc/tools/doc_merge.py
@@ -1,3 +1,6 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
import sys
import xml.etree.ElementTree as ET
diff --git a/tools/docdump/locales/es/LC_MESSAGES/makedocs.mo b/doc/tools/locales/es/LC_MESSAGES/makedocs.mo
index 8d7ea2689e..8d7ea2689e 100644
--- a/tools/docdump/locales/es/LC_MESSAGES/makedocs.mo
+++ b/doc/tools/locales/es/LC_MESSAGES/makedocs.mo
Binary files differ
diff --git a/tools/docdump/locales/es/LC_MESSAGES/makedocs.po b/doc/tools/locales/es/LC_MESSAGES/makedocs.po
index 82115dd897..82115dd897 100644
--- a/tools/docdump/locales/es/LC_MESSAGES/makedocs.po
+++ b/doc/tools/locales/es/LC_MESSAGES/makedocs.po
diff --git a/doc/html/main.css b/doc/tools/main.css
index a76e6bbed8..a76e6bbed8 100644
--- a/doc/html/main.css
+++ b/doc/tools/main.css
diff --git a/tools/docdump/makedocs.pot b/doc/tools/makedocs.pot
index be3220f686..be3220f686 100644
--- a/tools/docdump/makedocs.pot
+++ b/doc/tools/makedocs.pot
diff --git a/tools/docdump/makedocs.py b/doc/tools/makedocs.py
index be57891abc..db9f04b091 100644
--- a/tools/docdump/makedocs.py
+++ b/doc/tools/makedocs.py
@@ -24,7 +24,7 @@
# TODO:
# * Refactor code.
# * Adapt this script for generating content in other markup formats like
-# DokuWiki, Markdown, etc.
+# reStructuredText, Markdown, DokuWiki, etc.
#
# Also check other TODO entries in this script for more information on what is
# left to do.
diff --git a/tools/docdump/makedoku.py b/doc/tools/makedoku.py
index e8207715fe..1ab16841b1 100644
--- a/tools/docdump/makedoku.py
+++ b/doc/tools/makedoku.py
@@ -1,3 +1,6 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
import sys
import xml.etree.ElementTree as ET
@@ -8,7 +11,7 @@ for arg in sys.argv[1:]:
input_list.append(arg)
if len(input_list) < 1:
- print("usage: makedoku.py <class_list.xml>")
+ print("usage: makedoku.py <classes.xml>")
sys.exit(0)
diff --git a/tools/docdump/makehtml.py b/doc/tools/makehtml.py
index 9b9c62f33b..34db47e424 100644
--- a/tools/docdump/makehtml.py
+++ b/doc/tools/makehtml.py
@@ -1,3 +1,6 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
import sys
import xml.etree.ElementTree as ET
from xml.sax.saxutils import escape, unescape
@@ -29,7 +32,7 @@ for arg in sys.argv[1:]:
input_list.append(arg)
if len(input_list) < 1:
- print("usage: makehtml.py <class_list.xml>")
+ print("usage: makehtml.py <classes.xml>")
sys.exit(0)
diff --git a/tools/docdump/makemd.py b/doc/tools/makemd.py
index f85d145d5e..e012287b0e 100644
--- a/tools/docdump/makemd.py
+++ b/doc/tools/makemd.py
@@ -1,5 +1,6 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
+
import sys
import xml.etree.ElementTree as ET
@@ -9,7 +10,7 @@ for arg in sys.argv[1:]:
input_list.append(arg)
if len(input_list) < 1:
- print 'usage: makedoku.py <class_list.xml>'
+ print 'usage: makemd.py <classes.xml>'
sys.exit(0)
diff --git a/doc/tutorial/01 Getting Started.lyx b/doc/tutorial/01 Getting Started.lyx
deleted file mode 100644
index bdb4c7706d..0000000000
--- a/doc/tutorial/01 Getting Started.lyx
+++ /dev/null
@@ -1,557 +0,0 @@
-#LyX 1.6.5 created this file. For more info see http://www.lyx.org/
-\lyxformat 345
-\begin_document
-\begin_header
-\textclass article
-\use_default_options true
-\language english
-\inputencoding auto
-\font_roman default
-\font_sans default
-\font_typewriter default
-\font_default_family default
-\font_sc false
-\font_osf false
-\font_sf_scale 100
-\font_tt_scale 100
-
-\graphics default
-\paperfontsize default
-\use_hyperref false
-\papersize default
-\use_geometry false
-\use_amsmath 1
-\use_esint 1
-\cite_engine basic
-\use_bibtopic false
-\paperorientation portrait
-\secnumdepth 3
-\tocdepth 3
-\paragraph_separation indent
-\defskip medskip
-\quotes_language english
-\papercolumns 1
-\papersides 1
-\paperpagestyle default
-\tracking_changes false
-\output_changes false
-\author ""
-\author ""
-\end_header
-
-\begin_body
-
-\begin_layout Title
-01.
- Getting Started with Godot Engine
-\end_layout
-
-\begin_layout Section*
-Introduction:
-\end_layout
-
-\begin_layout Standard
-Godot Engine is designed to be useful.
- This may sound rather vague and is difficult to explain without repeating
- the same claims that every other engine does, but, as we progress through
- this (and the next) tutorials, hopefully it will be made clear what
-\begin_inset Quotes eld
-\end_inset
-
-useful
-\begin_inset Quotes erd
-\end_inset
-
- means.
-\end_layout
-
-\begin_layout Standard
-Godot Engine has many components, both high and low level, and is usually
- more abstract and complex than most other engines.
- This is, however, to the advantage of the user as complexity is presented
- in a way that it only needs to be discovered when more power needs to be
- untapped.
- This helps to provide an easy learning curve.
-\end_layout
-
-\begin_layout Standard
-Design wise, the whole API and set of components were created with a clear
- goal in mind, which is to allow for smooth integration of design ideas,
- code and assets.
- This is achieved by defining the following rules:
-\end_layout
-
-\begin_layout Itemize
-Implementing a game feature should never be too many steps away from an
- existing component.
-\end_layout
-
-\begin_layout Itemize
-More complex features should be leveraged by combining or extending existing
- components.
-\end_layout
-
-\begin_layout Itemize
-If the above fails, creating custom components should be extremely simple.
-\end_layout
-
-\begin_layout Standard
-Ultimately, Godot Engine provides an editor and tools that allows everyone
- to work with it:
-\end_layout
-
-\begin_layout Itemize
-Programmers can script and extend any component of the project.
-\end_layout
-
-\begin_layout Itemize
-Designers can tweak and animate any parameter from a friendly user interface.
-\end_layout
-
-\begin_layout Itemize
-Artists can import their art and models and tweak the look of everything
- in realtime.
-\end_layout
-
-\begin_layout Section*
-Editor:
-\end_layout
-
-\begin_layout Standard
-As mentioned before, Godot Engine is very abstract so projects consist of
- just a
-\emph on
-path
-\emph default
- (ie: C:
-\backslash
-games
-\backslash
-mygame5).
- Projects don't have to be specifically created, and many can be placed
- inside the same path (useful for not wasting folders on tests and experiments).
-
-\end_layout
-
-\begin_layout Standard
-In any case, to ease the management of projects, a graphical util exists.
-\end_layout
-
-\begin_layout Subsection*
-Running From The Project Manager
-\end_layout
-
-\begin_layout Standard
-Godot Engine includes a built-in project manager.
- This is installed by default on Windows and OSX and it allows for the creation
- and removal projects that will be remembered at the next startup:
-\end_layout
-
-\begin_layout Standard
-\align center
-\begin_inset Graphics
- filename pm.png
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-To create a new project, the [Create] button must be pressed and a dialog
- will appear, prompting for a path and project name.
- Afterwards, the [Open] button will close the project manager and open the
- desired project.
-\end_layout
-
-\begin_layout Subsection*
-Running From the Command Line
-\end_layout
-
-\begin_layout Standard
-To create and manage projects, it is perfectly possible to use the command
- line.
- Many users prefer this way of working with project data.
-\end_layout
-
-\begin_layout Standard
-\align center
-\begin_inset Graphics
- filename pmc.png
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-For ease of use, it is recommended that the
-\begin_inset Quotes eld
-\end_inset
-
-godot
-\begin_inset Quotes erd
-\end_inset
-
- binary exists in the path, so any project can be opened easily aywhere
- just by changing location to the projec and executing the editor.
-\end_layout
-
-\begin_layout Subsection*
-Godot Editor
-\end_layout
-
-\begin_layout Standard
-Godot Editor should have been opened by now, if not please check the previous
- steps again.
-\end_layout
-
-\begin_layout Standard
-Godot has a powerful buit-in editor.
- It uses the graphics toolkint within itself to display the UI, so it runs
- identical on any platform (even consoles or phones!).
-\end_layout
-
-\begin_layout Standard
-\align center
-\begin_inset Graphics
- filename editor.png
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-In the above screenshots, a few regions are labelled to be explained as
- follows:
-\end_layout
-
-\begin_layout Subsubsection*
-Viewport
-\end_layout
-
-\begin_layout Standard
-The
-\emph on
-Viewport
-\emph default
- is the main space where the content is displayed.
- Content includes 3D Nodes or Graphical User Interface (GUI) controls.
- Other types of data spawn editors of their own when being edited.
- The default viewport is the 3D viewport, which can be panned, zoomed, etc.
-\end_layout
-
-\begin_layout Subsubsection*
-Scene Tree
-\end_layout
-
-\begin_layout Standard
-The
-\emph on
-Scene Tree
-\emph default
- is a small dock that displays the tree of the current scene being edited.
- A scene is a collection of nodes arranged in a tree-hierarchy (any node
- can have several owned children-nodes).
- The meaning of this ownership depends purely on the
-\emph on
-type
-\emph default
- of the node, but it will become clear after going through the examples.
- In a
-\emph on
-MVC
-\emph default
- pattern, the scene tree could be considered the
-\emph on
-View
-\emph default
-.
-\end_layout
-
-\begin_layout Subsubsection*
-Property Editor
-\end_layout
-
-\begin_layout Standard
-The
-\emph on
-Property Editor
-\emph default
- is another small dock.
- Every node contains a finite number of
-\emph on
-properties
-\emph default
-, which can be edited.
- Properties can be of several types, such as integers, strings, images,
- matrices, etc.
- Usually, changes to properties are reflected in the
-\emph on
-viewport
-\emph default
- in real time.
-\end_layout
-
-\begin_layout Section*
-Examples:
-\end_layout
-
-\begin_layout Standard
-From now, a few, simple examples will be presented that will help understand
- a little better how Godot Engine works.
-
-\end_layout
-
-\begin_layout Subsubsection*
-Hello, World!
-\end_layout
-
-\begin_layout Enumerate
-Open the editor
-\end_layout
-
-\begin_layout Enumerate
-Click on
-\begin_inset Quotes eld
-\end_inset
-
-Node
-\begin_inset Quotes erd
-\end_inset
-
- (Node Menu), then on
-\begin_inset Quotes eld
-\end_inset
-
-Create Root
-\begin_inset Quotes erd
-\end_inset
-
-
-\end_layout
-
-\begin_deeper
-\begin_layout Standard
-\align center
-\begin_inset Graphics
- filename tute1_1.png
-
-\end_inset
-
-
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-Create a node of type
-\emph on
-Label,
-\emph default
-then instruct the
-\emph on
-editor
-\emph default
-to switch to GUI editing mode.
- A few red squares will appear on the top left corner, don't mind them yet.
-\end_layout
-
-\begin_deeper
-\begin_layout Standard
-\align center
-\begin_inset Graphics
- filename tute1_2.png
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\align center
-\begin_inset Graphics
- filename tute1_2b.png
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\align center
-\begin_inset Graphics
- filename tute1_3c.png
-
-\end_inset
-
-
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-Select the
-\emph on
-Label
-\emph default
-node in the
-\emph on
-Scene Tree
-\emph default
- (if it's not selected yet), the properties of the selected node will appear
- in the
-\emph on
-Property Editor
-\end_layout
-
-\begin_deeper
-\begin_layout Standard
-\align center
-\begin_inset Graphics
- filename tute1_3a.png
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\align center
-\begin_inset Graphics
- filename tute1_3b.png
-
-\end_inset
-
-
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-Look for the
-\emph on
-Text
-\emph default
- property in the
-\emph on
-Property Editor
-\emph default
- and click the right column, so it becomes editable.
- Enter the text
-\begin_inset Quotes eld
-\end_inset
-
-Hello, World!
-\begin_inset Quotes erd
-\end_inset
-
-.
- A red square containing
-\begin_inset Quotes eld
-\end_inset
-
-Hello World!
-\begin_inset Quotes erd
-\end_inset
-
- will appear at the top left, move it to the center.
-\end_layout
-
-\begin_deeper
-\begin_layout Standard
-\align center
-\begin_inset Graphics
- filename tute1_4a.png
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\align center
-\begin_inset Graphics
- filename tute1_4b.png
-
-\end_inset
-
-
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-Save the scene.
-\end_layout
-
-\begin_deeper
-\begin_layout Standard
-\align center
-\begin_inset Graphics
- filename tute1_5a.png
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\align center
-\begin_inset Graphics
- filename tute1_5b.png
-
-\end_inset
-
-
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-Press PLAY.
- A new window will appear running the application.
-\end_layout
-
-\begin_deeper
-\begin_layout Standard
-\align center
-\begin_inset Graphics
- filename tute1_6.png
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\align center
-\begin_inset Graphics
- filename tute1_7.png
-
-\end_inset
-
-
-\end_layout
-
-\end_deeper
-\begin_layout Subsubsection*
-Hello World 2 (a little more complex)
-\end_layout
-
-\begin_layout Subsubsection*
-A 3D Cube in Space
-\end_layout
-
-\begin_layout Standard
-
-\end_layout
-
-\begin_layout Standard
-In many cases, nodes and other types of engine objects need to express changes
- in their state, such as a button being pressed, a scroll being dragged,
- or a projectile colliding against a tank.
- Godot Engine utilizes the concept of signals for this.
- Different types of nodes and objects can emit signals, and any other node
- or object can connect to them.
-
-\end_layout
-
-\end_body
-\end_document
diff --git a/doc/tutorial/editor.png b/doc/tutorial/editor.png
deleted file mode 100644
index 92255a6f17..0000000000
--- a/doc/tutorial/editor.png
+++ /dev/null
Binary files differ
diff --git a/doc/tutorial/pm.png b/doc/tutorial/pm.png
deleted file mode 100644
index 00d46d9a64..0000000000
--- a/doc/tutorial/pm.png
+++ /dev/null
Binary files differ
diff --git a/doc/tutorial/pmc.png b/doc/tutorial/pmc.png
deleted file mode 100644
index 847d32b3a2..0000000000
--- a/doc/tutorial/pmc.png
+++ /dev/null
Binary files differ
diff --git a/doc/tutorial/tute1_1.png b/doc/tutorial/tute1_1.png
deleted file mode 100644
index 82152c7255..0000000000
--- a/doc/tutorial/tute1_1.png
+++ /dev/null
Binary files differ
diff --git a/doc/tutorial/tute1_2.png b/doc/tutorial/tute1_2.png
deleted file mode 100644
index 852015894c..0000000000
--- a/doc/tutorial/tute1_2.png
+++ /dev/null
Binary files differ
diff --git a/doc/tutorial/tute1_2b.png b/doc/tutorial/tute1_2b.png
deleted file mode 100644
index e97a40b4c5..0000000000
--- a/doc/tutorial/tute1_2b.png
+++ /dev/null
Binary files differ
diff --git a/doc/tutorial/tute1_3a.png b/doc/tutorial/tute1_3a.png
deleted file mode 100644
index 5feef01e03..0000000000
--- a/doc/tutorial/tute1_3a.png
+++ /dev/null
Binary files differ
diff --git a/doc/tutorial/tute1_3b.png b/doc/tutorial/tute1_3b.png
deleted file mode 100644
index 1f2ded42bb..0000000000
--- a/doc/tutorial/tute1_3b.png
+++ /dev/null
Binary files differ
diff --git a/doc/tutorial/tute1_3c.png b/doc/tutorial/tute1_3c.png
deleted file mode 100644
index 2c52ccd780..0000000000
--- a/doc/tutorial/tute1_3c.png
+++ /dev/null
Binary files differ
diff --git a/doc/tutorial/tute1_4a.png b/doc/tutorial/tute1_4a.png
deleted file mode 100644
index 8d0d04ff6b..0000000000
--- a/doc/tutorial/tute1_4a.png
+++ /dev/null
Binary files differ
diff --git a/doc/tutorial/tute1_4b.png b/doc/tutorial/tute1_4b.png
deleted file mode 100644
index fff5f8d723..0000000000
--- a/doc/tutorial/tute1_4b.png
+++ /dev/null
Binary files differ
diff --git a/doc/tutorial/tute1_5a.png b/doc/tutorial/tute1_5a.png
deleted file mode 100644
index 37bea04570..0000000000
--- a/doc/tutorial/tute1_5a.png
+++ /dev/null
Binary files differ
diff --git a/doc/tutorial/tute1_5b.png b/doc/tutorial/tute1_5b.png
deleted file mode 100644
index df9a987ef3..0000000000
--- a/doc/tutorial/tute1_5b.png
+++ /dev/null
Binary files differ
diff --git a/doc/tutorial/tute1_6.png b/doc/tutorial/tute1_6.png
deleted file mode 100644
index bbe04c8547..0000000000
--- a/doc/tutorial/tute1_6.png
+++ /dev/null
Binary files differ
diff --git a/doc/tutorial/tute1_7.png b/doc/tutorial/tute1_7.png
deleted file mode 100644
index 7653a89064..0000000000
--- a/doc/tutorial/tute1_7.png
+++ /dev/null
Binary files differ
diff --git a/doc/undoredoapi.txt b/doc/undoredoapi.txt
deleted file mode 100644
index eb73b8ccff..0000000000
--- a/doc/undoredoapi.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-undo/redo api proposal
-
-
-
-o o o o o o o o
-
-
-undoredo.create_method();
-undoredo.add_do_method(node,"add_child",node_to_add);
-undoredo.add_undo_method(node,"remove_child",node_to_add);
-undoredo.add_add_data(node_to_add);
-undoredo.commit()
-
-undoredo.create_method();
-undoredo.add_do_method(node,"remove_node",node_to_remove);
-undoredo.add_undo_method(node,"add_node",node_to_remove);
-undoredo.add_remove_data(node_to_remove);
-undoredo.commit()
-
-
-undoredo.create_property();
-undoredo.add_do_set(node,"property",value);
-undoredo.add_undo_set(node,"property",previous_value);
-undoredo.add_remove_data(node_to_remove);
-undoredo.commit()
diff --git a/drivers/SCsub b/drivers/SCsub
index 8e241830f8..e52d6538e5 100644
--- a/drivers/SCsub
+++ b/drivers/SCsub
@@ -61,39 +61,42 @@ import string
if env['vsproj']=="yes":
env.AddToVSProject(env.drivers_sources)
-for f in env.drivers_sources:
- fname = ""
- if type(f) == type(""):
- fname = env.File(f).path
- else:
- fname = env.File(f)[0].path
- fname = fname.replace("\\", "/")
- base = string.join(fname.split("/")[:2], "/")
- if base != cur_base and len(list) > max_src:
- if num > 0:
- lib = env.Library("drivers"+str(num), list)
- lib_list.append(lib)
- list = []
- num = num+1
- cur_base = base
- list.append(f)
+if (False): #split drivers, this used to be needed for windows until separate builders for windows were created
-lib = env.Library("drivers"+str(num), list)
-lib_list.append(lib)
+ for f in env.drivers_sources:
+ fname = ""
+ if type(f) == type(""):
+ fname = env.File(f).path
+ else:
+ fname = env.File(f)[0].path
+ fname = fname.replace("\\", "/")
+ base = string.join(fname.split("/")[:2], "/")
+ if base != cur_base and len(list) > max_src:
+ if num > 0:
+ lib = env.Library("drivers"+str(num), list)
+ lib_list.append(lib)
+ list = []
+ num = num+1
+ cur_base = base
+ list.append(f)
-if len(lib_list) > 0:
- import os, sys
- if os.name=='posix' and sys.platform=='msys':
- env.Replace(ARFLAGS=['rcsT'])
+ lib = env.Library("drivers"+str(num), list)
+ lib_list.append(lib)
- lib = env.Library("drivers_collated", lib_list)
- lib_list = [lib]
+ if len(lib_list) > 0:
+ import os, sys
+ if os.name=='posix' and sys.platform=='msys':
+ env.Replace(ARFLAGS=['rcsT'])
-drivers_base=[]
-env.add_source_files(drivers_base,"*.cpp")
-lib_list.insert(0, env.Library("drivers", drivers_base))
+ lib = env.Library("drivers_collated", lib_list)
+ lib_list = [lib]
-env.Prepend(LIBS=lib_list)
+ drivers_base=[]
+ env.add_source_files(drivers_base,"*.cpp")
+ lib_list.insert(0, env.Library("drivers", drivers_base))
-#lib = env.Library("drivers",env.drivers_sources)
-#env.Prepend(LIBS=[lib])
+ env.Prepend(LIBS=lib_list)
+else:
+ env.add_source_files(env.drivers_sources,"*.cpp")
+ lib = env.Library("drivers",env.drivers_sources)
+ env.Prepend(LIBS=[lib])
diff --git a/drivers/gles2/rasterizer_gles2.cpp b/drivers/gles2/rasterizer_gles2.cpp
index c6d8d9e9bf..83b71fd5ff 100644
--- a/drivers/gles2/rasterizer_gles2.cpp
+++ b/drivers/gles2/rasterizer_gles2.cpp
@@ -9169,10 +9169,23 @@ void RasterizerGLES2::_canvas_item_render_commands(CanvasItem *p_item,CanvasItem
//glScissor(viewport.x+current_clip->final_clip_rect.pos.x,viewport.y+ (viewport.height-(current_clip->final_clip_rect.pos.y+current_clip->final_clip_rect.size.height)),
//current_clip->final_clip_rect.size.width,current_clip->final_clip_rect.size.height);
- int x = current_clip->final_clip_rect.pos.x;
- int y = window_size.height-(current_clip->final_clip_rect.pos.y+current_clip->final_clip_rect.size.y);
- int w = current_clip->final_clip_rect.size.x;
- int h = current_clip->final_clip_rect.size.y;
+ int x;
+ int y;
+ int w;
+ int h;
+
+ if (current_rt) {
+ x = current_clip->final_clip_rect.pos.x;
+ y = current_clip->final_clip_rect.pos.y;
+ w = current_clip->final_clip_rect.size.x;
+ h = current_clip->final_clip_rect.size.y;
+ }
+ else {
+ x = current_clip->final_clip_rect.pos.x;
+ y = window_size.height - (current_clip->final_clip_rect.pos.y + current_clip->final_clip_rect.size.y);
+ w = current_clip->final_clip_rect.size.x;
+ h = current_clip->final_clip_rect.size.y;
+ }
glScissor(x,y,w,h);
@@ -9362,10 +9375,23 @@ void RasterizerGLES2::canvas_render_items(CanvasItem *p_item_list,int p_z,const
int w = current_clip->final_clip_rect.size.x;
int h = current_clip->final_clip_rect.size.y;
*/
- int x = current_clip->final_clip_rect.pos.x;
- int y = window_size.height-(current_clip->final_clip_rect.pos.y+current_clip->final_clip_rect.size.y);
- int w = current_clip->final_clip_rect.size.x;
- int h = current_clip->final_clip_rect.size.y;
+ int x;
+ int y;
+ int w;
+ int h;
+
+ if (current_rt) {
+ x = current_clip->final_clip_rect.pos.x;
+ y = current_clip->final_clip_rect.pos.y;
+ w = current_clip->final_clip_rect.size.x;
+ h = current_clip->final_clip_rect.size.y;
+ }
+ else {
+ x = current_clip->final_clip_rect.pos.x;
+ y = window_size.height - (current_clip->final_clip_rect.pos.y + current_clip->final_clip_rect.size.y);
+ w = current_clip->final_clip_rect.size.x;
+ h = current_clip->final_clip_rect.size.y;
+ }
glScissor(x,y,w,h);
@@ -9514,7 +9540,7 @@ void RasterizerGLES2::canvas_render_items(CanvasItem *p_item_list,int p_z,const
canvas_opacity = ci->final_opacity;
- if (unshaded || (p_modulate.a>0.001 && (!material || material->shading_mode!=VS::CANVAS_ITEM_SHADING_ONLY_LIGHT)))
+ if (unshaded || (p_modulate.a>0.001 && (!material || material->shading_mode!=VS::CANVAS_ITEM_SHADING_ONLY_LIGHT) && !ci->light_masked ))
_canvas_item_render_commands<false>(ci,current_clip,reclip);
if (canvas_blend_mode==VS::MATERIAL_BLEND_MODE_MIX && p_light && !unshaded) {
@@ -9546,7 +9572,8 @@ void RasterizerGLES2::canvas_render_items(CanvasItem *p_item_list,int p_z,const
glBlendEquation(GL_FUNC_REVERSE_SUBTRACT);
glBlendFunc(GL_SRC_ALPHA,GL_ONE);
} break;
- case VS::CANVAS_LIGHT_MODE_MIX: {
+ case VS::CANVAS_LIGHT_MODE_MIX:
+ case VS::CANVAS_LIGHT_MODE_MASK: {
glBlendEquation(GL_FUNC_ADD);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
@@ -9594,6 +9621,7 @@ void RasterizerGLES2::canvas_render_items(CanvasItem *p_item_list,int p_z,const
canvas_shader.set_uniform(CanvasShaderGLES2::LIGHT_COLOR,Color(light->color.r*light->energy,light->color.g*light->energy,light->color.b*light->energy,light->color.a));
canvas_shader.set_uniform(CanvasShaderGLES2::LIGHT_HEIGHT,light->height);
canvas_shader.set_uniform(CanvasShaderGLES2::LIGHT_LOCAL_MATRIX,light->xform_cache.affine_inverse());
+ canvas_shader.set_uniform(CanvasShaderGLES2::LIGHT_OUTSIDE_ALPHA,light->mode==VS::CANVAS_LIGHT_MODE_MASK?1.0:0.0);
if (has_shadow) {
@@ -9667,10 +9695,23 @@ void RasterizerGLES2::canvas_render_items(CanvasItem *p_item_list,int p_z,const
//glScissor(viewport.x+current_clip->final_clip_rect.pos.x,viewport.y+ (viewport.height-(current_clip->final_clip_rect.pos.y+current_clip->final_clip_rect.size.height)),
//current_clip->final_clip_rect.size.width,current_clip->final_clip_rect.size.height);
- int x = current_clip->final_clip_rect.pos.x;
- int y = window_size.height-(current_clip->final_clip_rect.pos.y+current_clip->final_clip_rect.size.y);
- int w = current_clip->final_clip_rect.size.x;
- int h = current_clip->final_clip_rect.size.y;
+ int x;
+ int y;
+ int w;
+ int h;
+
+ if (current_rt) {
+ x = current_clip->final_clip_rect.pos.x;
+ y = current_clip->final_clip_rect.pos.y;
+ w = current_clip->final_clip_rect.size.x;
+ h = current_clip->final_clip_rect.size.y;
+ }
+ else {
+ x = current_clip->final_clip_rect.pos.x;
+ y = window_size.height - (current_clip->final_clip_rect.pos.y + current_clip->final_clip_rect.size.y);
+ w = current_clip->final_clip_rect.size.x;
+ h = current_clip->final_clip_rect.size.y;
+ }
glScissor(x,y,w,h);
diff --git a/drivers/gles2/shaders/canvas.glsl b/drivers/gles2/shaders/canvas.glsl
index e297b328cd..259e82d704 100644
--- a/drivers/gles2/shaders/canvas.glsl
+++ b/drivers/gles2/shaders/canvas.glsl
@@ -155,6 +155,7 @@ uniform vec4 light_color;
uniform vec4 light_shadow_color;
uniform float light_height;
varying vec4 light_uv_interp;
+uniform float light_outside_alpha;
#if defined(NORMAL_USED)
varying vec4 local_rot;
@@ -247,22 +248,27 @@ FRAGMENT_SHADER_CODE
vec4 shadow_color=vec4(0.0,0.0,0.0,0.0);
#endif
+ if (any(lessThan(light_uv_interp.xy,vec2(0.0,0.0))) || any(greaterThanEqual(light_uv_interp.xy,vec2(1.0,1.0)))) {
+ color.a*=light_outside_alpha; //invisible
+
+ } else {
+
#if defined(USE_LIGHT_SHADER_CODE)
//light is written by the light shader
-{
- vec4 light_out=light*color;
+ {
+ vec4 light_out=light*color;
LIGHT_SHADER_CODE
- color=light_out;
-}
+ color=light_out;
+ }
#else
#if defined(NORMAL_USED)
- vec3 light_normal = normalize(vec3(light_vec,-light_height));
- light*=max(dot(-light_normal,normal),0.0);
+ vec3 light_normal = normalize(vec3(light_vec,-light_height));
+ light*=max(dot(-light_normal,normal),0.0);
#endif
- color*=light;
+ color*=light;
/*
#ifdef USE_NORMAL
color.xy=local_rot.xy;//normal.xy;
@@ -273,9 +279,6 @@ LIGHT_SHADER_CODE
//light shader code
#endif
- if (any(lessThan(light_uv_interp.xy,vec2(0.0,0.0))) || any(greaterThanEqual(light_uv_interp.xy,vec2(1.0,1.0)))) {
- color.a=0.0; //invisible
- } else {
#ifdef USE_SHADOWS
diff --git a/drivers/nrex/README.md b/drivers/nrex/README.md
index 951b301c1e..9ff67992dc 100644
--- a/drivers/nrex/README.md
+++ b/drivers/nrex/README.md
@@ -1,5 +1,7 @@
# NREX: Node RegEx
+Version 0.1
+
Small node-based regular expression library. It only does text pattern
matchhing, not replacement. To use add the files `nrex.hpp`, `nrex.cpp`
and `nrex_config.h` to your project and follow the example:
@@ -32,7 +34,7 @@ Currently supported features:
* Unicode `\uFFFF` code points
* Positive `(?=)` and negative `(?!)` lookahead
* Positive `(?<=)` and negative `(?<!)` lookbehind (fixed length and no alternations)
- * Backreferences `\1` to `\9` (with option to expand to `\99`)
+ * Backreferences `\1` and `\g{1}` (limited by default to 9 - can be unlimited)
## License
diff --git a/drivers/nrex/nrex.cpp b/drivers/nrex/nrex.cpp
index 104e07f887..1eb9ec38c8 100644
--- a/drivers/nrex/nrex.cpp
+++ b/drivers/nrex/nrex.cpp
@@ -1,4 +1,5 @@
// NREX: Node RegEx
+// Version 0.1
//
// Copyright (c) 2015, Zher Huei Lee
// All rights reserved.
@@ -299,6 +300,10 @@ struct nrex_node_group : public nrex_node
{
length = 1;
}
+ if (mode == LookAhead || mode == LookBehind)
+ {
+ quantifiable = false;
+ }
}
virtual ~nrex_node_group()
@@ -322,6 +327,10 @@ struct nrex_node_group : public nrex_node
int offset = 0;
if (mode == LookBehind)
{
+ if (pos < length)
+ {
+ return -1;
+ }
offset = length;
}
int res = childset[i]->test(s, pos - offset);
@@ -450,7 +459,7 @@ struct nrex_node_char : public nrex_node
int test(nrex_search* s, int pos) const
{
- if (s->end == pos || s->at(pos) != ch)
+ if (s->end <= pos || 0 > pos || s->at(pos) != ch)
{
return -1;
}
@@ -473,7 +482,7 @@ struct nrex_node_range : public nrex_node
int test(nrex_search* s, int pos) const
{
- if (s->end == pos)
+ if (s->end <= pos || 0 > pos)
{
return -1;
}
@@ -555,7 +564,7 @@ struct nrex_node_class : public nrex_node
int test(nrex_search* s, int pos) const
{
- if (s->end == pos)
+ if (s->end <= pos || 0 > pos)
{
return -1;
}
@@ -727,7 +736,7 @@ struct nrex_node_shorthand : public nrex_node
int test(nrex_search* s, int pos) const
{
- if (s->end == pos)
+ if (s->end <= pos || 0 > pos)
{
return -1;
}
@@ -811,16 +820,12 @@ struct nrex_node_quantifier : public nrex_node
int test(nrex_search* s, int pos) const
{
- return test_step(s, pos, 1);
+ return test_step(s, pos, 0, pos);
}
- int test_step(nrex_search* s, int pos, int level) const
+ int test_step(nrex_search* s, int pos, int level, int start) const
{
- if (max == 0)
- {
- return pos;
- }
- if ((max >= 1 && level > max) || pos > s->end)
+ if (pos > s->end)
{
return -1;
}
@@ -840,14 +845,26 @@ struct nrex_node_quantifier : public nrex_node
return res;
}
}
- int res = child->test(s, pos);
- if (s->complete)
+ if (max >= 0 && level > max)
{
- return res;
+ return -1;
+ }
+ if (level > 1 && level > min + 1 && pos == start)
+ {
+ return -1;
+ }
+ int res = pos;
+ if (level >= 1)
+ {
+ res = child->test(s, pos);
+ if (s->complete)
+ {
+ return res;
+ }
}
if (res >= 0)
{
- int res_step = test_step(s, res, level + 1);
+ int res_step = test_step(s, res, level + 1, start);
if (res_step >= 0)
{
return res_step;
@@ -983,6 +1000,13 @@ nrex::nrex()
{
}
+nrex::nrex(const nrex_char* pattern, int captures)
+ : _capturing(0)
+ , _root(NULL)
+{
+ compile(pattern, captures);
+}
+
nrex::~nrex()
{
if (_root)
@@ -1008,10 +1032,14 @@ void nrex::reset()
int nrex::capture_size() const
{
- return _capturing + 1;
+ if (_root)
+ {
+ return _capturing + 1;
+ }
+ return 0;
}
-bool nrex::compile(const nrex_char* pattern, bool extended)
+bool nrex::compile(const nrex_char* pattern, int captures)
{
reset();
nrex_node_group* root = NREX_NEW(nrex_node_group(_capturing));
@@ -1053,7 +1081,7 @@ bool nrex::compile(const nrex_char* pattern, bool extended)
NREX_COMPILE_ERROR("unrecognised qualifier for group");
}
}
- else if ((!extended && _capturing < 9) || (extended && _capturing < 99))
+ else if (captures >= 0 && _capturing < captures)
{
nrex_node_group* group = NREX_NEW(nrex_node_group(++_capturing));
stack.top()->add_child(group);
@@ -1190,15 +1218,6 @@ bool nrex::compile(const nrex_char* pattern, bool extended)
}
else if (nrex_is_quantifier(c[0]))
{
- if (stack.top()->back == NULL || !stack.top()->back->quantifiable)
- {
- if (c[0] == '{')
- {
- stack.top()->add_child(NREX_NEW(nrex_node_char('{')));
- continue;
- }
- NREX_COMPILE_ERROR("element not quantifiable");
- }
int min = 0;
int max = -1;
bool valid_quantifier = true;
@@ -1270,6 +1289,10 @@ bool nrex::compile(const nrex_char* pattern, bool extended)
}
if (valid_quantifier)
{
+ if (stack.top()->back == NULL || !stack.top()->back->quantifiable)
+ {
+ NREX_COMPILE_ERROR("element not quantifiable");
+ }
nrex_node_quantifier* quant = NREX_NEW(nrex_node_quantifier(min, max));
if (min == max)
{
@@ -1323,20 +1346,26 @@ bool nrex::compile(const nrex_char* pattern, bool extended)
stack.top()->add_child(NREX_NEW(nrex_node_shorthand(c[1])));
++c;
}
- else if ('1' <= c[1] && c[1] <= '9')
+ else if (('1' <= c[1] && c[1] <= '9') || (c[1] == 'g' && c[2] == '{'))
{
int ref = 0;
- if (extended && '0' <= c[2] && c[2] <= '9')
+ bool unclosed = false;
+ if (c[1] == 'g')
{
- ref = int(c[1] - '0') * 10 + int(c[2] - '0');
+ unclosed = true;
c = &c[2];
}
- else
+ while ('0' <= c[1] && c[1] <= '9')
{
- ref = int(c[1] - '0');
+ ref = ref * 10 + int(c[1] - '0');
++c;
}
- if (ref > _capturing)
+ if (c[1] == '}')
+ {
+ unclosed = false;
+ ++c;
+ }
+ if (ref > _capturing || ref <= 0 || unclosed)
{
NREX_COMPILE_ERROR("backreference to non-existent capture");
}
@@ -1377,6 +1406,10 @@ bool nrex::compile(const nrex_char* pattern, bool extended)
bool nrex::match(const nrex_char* str, nrex_result* captures, int offset, int end) const
{
+ if (!_root)
+ {
+ return false;
+ }
nrex_search s(str, captures);
if (end >= offset)
{
@@ -1386,7 +1419,7 @@ bool nrex::match(const nrex_char* str, nrex_result* captures, int offset, int en
{
s.end = NREX_STRLEN(str);
}
- for (int i = offset; i < s.end; ++i)
+ for (int i = offset; i <= s.end; ++i)
{
for (int c = 0; c <= _capturing; ++c)
{
diff --git a/drivers/nrex/nrex.hpp b/drivers/nrex/nrex.hpp
index e26a61c39a..44e950c517 100644
--- a/drivers/nrex/nrex.hpp
+++ b/drivers/nrex/nrex.hpp
@@ -1,4 +1,5 @@
// NREX: Node RegEx
+// Version 0.1
//
// Copyright (c) 2015, Zher Huei Lee
// All rights reserved.
@@ -59,7 +60,32 @@ class nrex
int _capturing;
nrex_node* _root;
public:
+
+ /*!
+ * \brief Initialises an empty regex container
+ */
nrex();
+
+ /*!
+ * \brief Initialises and compiles the regex pattern
+ *
+ * This calls nrex::compile() with the same arguments. To check whether
+ * the compilation was successfull, use nrex::valid().
+ *
+ * If the NREX_THROW_ERROR was defined it would automatically throw a
+ * runtime error nrex_compile_error if it encounters a problem when
+ * parsing the pattern.
+ *
+ * \param pattern The regex pattern
+ * \param captures The maximum number of capture groups to allow. Any
+ * extra would be converted to non-capturing groups.
+ * If negative, no limit would be imposed. Defaults
+ * to 9.
+ *
+ * \see nrex::compile()
+ */
+ nrex(const nrex_char* pattern, int captures = 9);
+
~nrex();
/*!
@@ -78,9 +104,9 @@ class nrex
*
* This is used to provide the array size of the captures needed for
* nrex::match() to work. The size is actually the number of capture
- * groups + one for the matching of the entire pattern. The result is
- * always capped at 10 or 100, depending on the extend option given in
- * nrex::compile() (default 10).
+ * groups + one for the matching of the entire pattern. This can be
+ * capped using the extra argument given in nrex::compile()
+ * (default 10).
*
* \return The number of captures
*/
@@ -97,12 +123,13 @@ class nrex
* parsing the pattern.
*
* \param pattern The regex pattern
- * \param extended If true, raises the limit on number of capture
- * groups and back-references to 99. Otherwise limited
- * to 9. Defaults to false.
+ * \param captures The maximum number of capture groups to allow. Any
+ * extra would be converted to non-capturing groups.
+ * If negative, no limit would be imposed. Defaults
+ * to 9.
* \return True if the pattern was succesfully compiled
*/
- bool compile(const nrex_char* pattern, bool extended = false);
+ bool compile(const nrex_char* pattern, int captures = 9);
/*!
* \brief Uses the pattern to search through the provided string
diff --git a/drivers/nrex/regex.cpp b/drivers/nrex/regex.cpp
index 246384b10a..e8578221a9 100644
--- a/drivers/nrex/regex.cpp
+++ b/drivers/nrex/regex.cpp
@@ -15,7 +15,7 @@
void RegEx::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("compile","pattern", "expanded"),&RegEx::compile, DEFVAL(true));
+ ObjectTypeDB::bind_method(_MD("compile","pattern", "capture"),&RegEx::compile, DEFVAL(9));
ObjectTypeDB::bind_method(_MD("find","text","start","end"),&RegEx::find, DEFVAL(0), DEFVAL(-1));
ObjectTypeDB::bind_method(_MD("clear"),&RegEx::clear);
ObjectTypeDB::bind_method(_MD("is_valid"),&RegEx::is_valid);
@@ -68,11 +68,11 @@ String RegEx::get_capture(int capture) const {
}
-Error RegEx::compile(const String& p_pattern, bool expanded) {
+Error RegEx::compile(const String& p_pattern, int capture) {
clear();
- exp.compile(p_pattern.c_str(), expanded);
+ exp.compile(p_pattern.c_str(), capture);
ERR_FAIL_COND_V( !exp.valid(), FAILED );
diff --git a/drivers/nrex/regex.h b/drivers/nrex/regex.h
index be52da8149..76aab2aea6 100644
--- a/drivers/nrex/regex.h
+++ b/drivers/nrex/regex.h
@@ -36,7 +36,7 @@ public:
bool is_valid() const;
int get_capture_count() const;
String get_capture(int capture) const;
- Error compile(const String& p_pattern, bool expanded = false);
+ Error compile(const String& p_pattern, int capture = 9);
int find(const String& p_text, int p_start = 0, int p_end = -1) const;
RegEx();
diff --git a/drivers/openssl/stream_peer_openssl.cpp b/drivers/openssl/stream_peer_openssl.cpp
index ef07f11334..81795fdc60 100644
--- a/drivers/openssl/stream_peer_openssl.cpp
+++ b/drivers/openssl/stream_peer_openssl.cpp
@@ -479,6 +479,13 @@ Error StreamPeerOpenSSL::get_partial_data(uint8_t* p_buffer, int p_bytes,int &r_
return OK;
}
+int StreamPeerOpenSSL::get_available_bytes() const {
+
+ ERR_FAIL_COND_V(!connected,0);
+
+ return SSL_pending(ssl);
+
+}
StreamPeerOpenSSL::StreamPeerOpenSSL() {
ctx=NULL;
diff --git a/drivers/openssl/stream_peer_openssl.h b/drivers/openssl/stream_peer_openssl.h
index a66b641dd4..64f5a1d7ac 100644
--- a/drivers/openssl/stream_peer_openssl.h
+++ b/drivers/openssl/stream_peer_openssl.h
@@ -71,6 +71,8 @@ public:
virtual Error get_data(uint8_t* p_buffer, int p_bytes);
virtual Error get_partial_data(uint8_t* p_buffer, int p_bytes,int &r_received);
+ virtual int get_available_bytes() const;
+
static void initialize_ssl();
static void finalize_ssl();
diff --git a/drivers/theora/video_stream_theora.cpp b/drivers/theora/video_stream_theora.cpp
index f301bd7515..fe248bc911 100644
--- a/drivers/theora/video_stream_theora.cpp
+++ b/drivers/theora/video_stream_theora.cpp
@@ -7,11 +7,34 @@
int VideoStreamPlaybackTheora:: buffer_data() {
- char *buffer=ogg_sync_buffer(&oy,4096);
- int bytes=file->get_buffer((uint8_t*)buffer, 4096);
- ogg_sync_wrote(&oy,bytes);
- return(bytes);
+ char *buffer=ogg_sync_buffer(&oy,4096);
+
+#ifdef THEORA_USE_THREAD_STREAMING
+
+ int read;
+
+ do {
+ thread_sem->post();
+ read = MIN(ring_buffer.data_left(),4096);
+ if (read) {
+ ring_buffer.read((uint8_t*)buffer,read);
+ ogg_sync_wrote(&oy,read);
+ } else {
+ OS::get_singleton()->delay_usec(100);
+ }
+
+ } while(read==0);
+
+ return read;
+
+#else
+
+ int bytes=file->get_buffer((uint8_t*)buffer, 4096);
+ ogg_sync_wrote(&oy,bytes);
+ return(bytes);
+
+#endif
}
int VideoStreamPlaybackTheora::queue_page(ogg_page *page){
@@ -200,6 +223,14 @@ void VideoStreamPlaybackTheora::clear() {
}
ogg_sync_clear(&oy);
+#ifdef THEORA_USE_THREAD_STREAMING
+ thread_exit=true;
+ thread_sem->post(); //just in case
+ Thread::wait_to_finish(thread);
+ memdelete(thread);
+ thread=NULL;
+ ring_buffer.clear();
+#endif
//file_name = "";
theora_p = 0;
@@ -217,6 +248,7 @@ void VideoStreamPlaybackTheora::clear() {
void VideoStreamPlaybackTheora::set_file(const String& p_file) {
+ ERR_FAIL_COND(playing);
ogg_packet op;
th_setup_info *ts = NULL;
@@ -227,7 +259,17 @@ void VideoStreamPlaybackTheora::set_file(const String& p_file) {
file = FileAccess::open(p_file, FileAccess::READ);
ERR_FAIL_COND(!file);
+#ifdef THEORA_USE_THREAD_STREAMING
+ thread_exit=false;
+ thread_eof=false;
+ //pre-fill buffer
+ int to_read = ring_buffer.space_left();
+ int read = file->get_buffer(read_buffer.ptr(),to_read);
+ ring_buffer.write(read_buffer.ptr(),read);
+ thread=Thread::create(_streaming_thread,this);
+
+#endif
ogg_sync_init(&oy);
@@ -369,6 +411,7 @@ void VideoStreamPlaybackTheora::set_file(const String& p_file) {
th_decode_ctl(td,TH_DECCTL_GET_PPLEVEL_MAX,&pp_level_max,
sizeof(pp_level_max));
pp_level=pp_level_max;
+ pp_level=0;
th_decode_ctl(td,TH_DECCTL_SET_PPLEVEL,&pp_level,sizeof(pp_level));
pp_inc=0;
@@ -415,6 +458,8 @@ void VideoStreamPlaybackTheora::set_file(const String& p_file) {
buffering=true;
time=0;
audio_frames_wrote=0;
+
+
};
float VideoStreamPlaybackTheora::get_time() const {
@@ -436,13 +481,16 @@ void VideoStreamPlaybackTheora::update(float p_delta) {
return;
};
+#ifdef THEORA_USE_THREAD_STREAMING
+ thread_sem->post();
+#endif
+
//double ctime =AudioServer::get_singleton()->get_mix_time();
//print_line("play "+rtos(p_delta));
time+=p_delta;
if (videobuf_time>get_time()) {
-
return; //no new frames need to be produced
}
@@ -573,21 +621,22 @@ void VideoStreamPlaybackTheora::update(float p_delta) {
if(videobuf_time>=get_time()) {
frame_done=true;
- print_line("frame!");
} else{
/*If we are too slow, reduce the pp level.*/
pp_inc=pp_level>0?-1:0;
- print_line("skip!");
}
}
} else {
- print_line("no packet..");
+
break;
}
}
-
+#ifdef THEORA_USE_THREAD_STREAMING
+ if (file && thread_eof && ring_buffer.data_left()==0) {
+#else
if (file && /*!videobuf_ready && */ file->eof_reached()) {
+#endif
printf("video done, stopping\n");
stop();
return;
@@ -633,6 +682,7 @@ void VideoStreamPlaybackTheora::update(float p_delta) {
else if(tdiff<ti.fps_denominator*0.05/ti.fps_numerator){
pp_inc=pp_level>0?-1:0;
}
+
}
video_write();
@@ -644,15 +694,21 @@ void VideoStreamPlaybackTheora::play() {
if (!playing)
time=0;
+ else {
+ stop();
+ }
+
playing = true;
delay_compensation=Globals::get_singleton()->get("audio/video_delay_compensation_ms");
delay_compensation/=1000.0;
+
};
void VideoStreamPlaybackTheora::stop() {
if (playing) {
+
clear();
set_file(file_name); //reset
}
@@ -730,7 +786,33 @@ int VideoStreamPlaybackTheora::get_mix_rate() const{
return vi.rate;
}
+#ifdef THEORA_USE_THREAD_STREAMING
+
+
+void VideoStreamPlaybackTheora::_streaming_thread(void *ud) {
+
+ VideoStreamPlaybackTheora *vs=(VideoStreamPlaybackTheora*)ud;
+
+ while(!vs->thread_exit) {
+
+ //just fill back the buffer
+ if (!vs->thread_eof) {
+
+ int to_read = vs->ring_buffer.space_left();
+ if (to_read) {
+ int read = vs->file->get_buffer(vs->read_buffer.ptr(),to_read);
+ vs->ring_buffer.write(vs->read_buffer.ptr(),read);
+ vs->thread_eof=vs->file->eof_reached();
+ }
+
+
+ }
+
+ vs->thread_sem->wait();
+ }
+}
+#endif
VideoStreamPlaybackTheora::VideoStreamPlaybackTheora() {
@@ -749,14 +831,31 @@ VideoStreamPlaybackTheora::VideoStreamPlaybackTheora() {
audio_track=0;
delay_compensation=0;
audio_frames_wrote=0;
+
+#ifdef THEORA_USE_THREAD_STREAMING
+ int rb_power = nearest_shift(RB_SIZE_KB*1024);
+ ring_buffer.resize(rb_power);
+ read_buffer.resize(RB_SIZE_KB*1024);
+ thread_sem=Semaphore::create();
+ thread=NULL;
+ thread_exit=false;
+ thread_eof=false;
+
+#endif
};
VideoStreamPlaybackTheora::~VideoStreamPlaybackTheora() {
+#ifdef THEORA_USE_THREAD_STREAMING
+
+ memdelete(thread_sem);
+#endif
clear();
if (file)
memdelete(file);
+
+
};
diff --git a/drivers/theora/video_stream_theora.h b/drivers/theora/video_stream_theora.h
index 5540f050f9..c15ef31cfc 100644
--- a/drivers/theora/video_stream_theora.h
+++ b/drivers/theora/video_stream_theora.h
@@ -6,9 +6,13 @@
#include "theora/theoradec.h"
#include "vorbis/codec.h"
#include "os/file_access.h"
-
+#include "ring_buffer.h"
#include "io/resource_loader.h"
#include "scene/resources/video_stream.h"
+#include "os/thread.h"
+#include "os/semaphore.h"
+
+//#define THEORA_USE_THREAD_STREAMING
class VideoStreamPlaybackTheora : public VideoStreamPlayback {
@@ -66,7 +70,25 @@ class VideoStreamPlaybackTheora : public VideoStreamPlayback {
AudioMixCallback mix_callback;
void* mix_udata;
- int audio_track;
+#ifdef THEORA_USE_THREAD_STREAMING
+
+ enum {
+ RB_SIZE_KB=1024
+ };
+
+ RingBuffer<uint8_t> ring_buffer;
+ Vector<uint8_t> read_buffer;
+ bool thread_eof;
+ Semaphore *thread_sem;
+ Thread *thread;
+ volatile bool thread_exit;
+
+ static void _streaming_thread(void *ud);
+
+#endif
+
+
+ int audio_track;
protected:
@@ -116,20 +138,20 @@ class VideoStreamTheora : public VideoStream {
OBJ_TYPE(VideoStreamTheora,VideoStream);
String file;
- int audio_track;
+ int audio_track;
public:
Ref<VideoStreamPlayback> instance_playback() {
Ref<VideoStreamPlaybackTheora> pb = memnew( VideoStreamPlaybackTheora );
- pb->set_audio_track(audio_track);
+ pb->set_audio_track(audio_track);
pb->set_file(file);
return pb;
}
void set_file(const String& p_file) { file=p_file; }
- void set_audio_track(int p_track) { audio_track=p_track; }
+ void set_audio_track(int p_track) { audio_track=p_track; }
VideoStreamTheora() { audio_track=0; }
diff --git a/drivers/unix/SCsub b/drivers/unix/SCsub
index 9fbb467baa..3d46a85cdf 100644
--- a/drivers/unix/SCsub
+++ b/drivers/unix/SCsub
@@ -1,5 +1,15 @@
Import('env')
+g_set_p='#ifdef UNIX_ENABLED\n'
+g_set_p+='#include "os_unix.h"\n'
+g_set_p+='String OS_Unix::get_global_settings_path() const {\n'
+g_set_p+='\treturn "' + env["unix_global_settings_path"]+'";\n'
+g_set_p+='}\n'
+g_set_p+='#endif'
+f = open("os_unix_global_settings_path.cpp","wb")
+f.write(g_set_p)
+f.close()
+
env.add_source_files(env.drivers_sources,"*.cpp")
Export('env')
diff --git a/drivers/unix/os_unix.cpp b/drivers/unix/os_unix.cpp
index fd8c26f6d9..94a7b03f45 100644
--- a/drivers/unix/os_unix.cpp
+++ b/drivers/unix/os_unix.cpp
@@ -477,6 +477,14 @@ String OS_Unix::get_data_dir() const {
}
+String OS_Unix::get_installed_templates_path() const {
+ String p=get_global_settings_path();
+ if (p!="")
+ return p+"/templates/";
+ else
+ return "";
+}
+
String OS_Unix::get_executable_path() const {
#ifdef __linux__
diff --git a/drivers/unix/os_unix.h b/drivers/unix/os_unix.h
index 2ee6102164..9ac18c9055 100644
--- a/drivers/unix/os_unix.h
+++ b/drivers/unix/os_unix.h
@@ -64,6 +64,8 @@ protected:
String stdin_buf;
+ String get_global_settings_path() const;
+
public:
@@ -111,6 +113,7 @@ public:
virtual void debug_break();
+ virtual String get_installed_templates_path() const;
virtual String get_executable_path() const;
virtual String get_data_dir() const;
diff --git a/drivers/unix/stream_peer_tcp_posix.cpp b/drivers/unix/stream_peer_tcp_posix.cpp
index 5aa3915893..edf5e02971 100644
--- a/drivers/unix/stream_peer_tcp_posix.cpp
+++ b/drivers/unix/stream_peer_tcp_posix.cpp
@@ -38,6 +38,7 @@
#include <string.h>
#include <netdb.h>
#include <sys/types.h>
+#include <sys/ioctl.h>
#ifndef NO_FCNTL
#ifdef __HAIKU__
#include <fcntl.h>
@@ -367,6 +368,14 @@ Error StreamPeerTCPPosix::get_partial_data(uint8_t* p_buffer, int p_bytes,int &r
return read(p_buffer, p_bytes, r_received, false);
};
+int StreamPeerTCPPosix::get_available_bytes() const {
+
+ unsigned long len;
+ int ret = ioctl(sockfd,FIONREAD,&len);
+ ERR_FAIL_COND_V(ret==-1,0)
+ return len;
+
+}
IP_Address StreamPeerTCPPosix::get_connected_host() const {
return peer_host;
diff --git a/drivers/unix/stream_peer_tcp_posix.h b/drivers/unix/stream_peer_tcp_posix.h
index 9b1716ac42..817f24c91c 100644
--- a/drivers/unix/stream_peer_tcp_posix.h
+++ b/drivers/unix/stream_peer_tcp_posix.h
@@ -67,6 +67,8 @@ public:
virtual Error get_data(uint8_t* p_buffer, int p_bytes);
virtual Error get_partial_data(uint8_t* p_buffer, int p_bytes,int &r_received);
+ virtual int get_available_bytes() const;
+
void set_socket(int p_sockfd, IP_Address p_host, int p_port);
virtual IP_Address get_connected_host() const;
diff --git a/drivers/webp/dec/alpha.c b/drivers/webp/dec/alpha.c
index 52216fc4d6..1d029b0e6a 100644
--- a/drivers/webp/dec/alpha.c
+++ b/drivers/webp/dec/alpha.c
@@ -18,7 +18,7 @@
#include "../dsp/dsp.h"
#include "../utils/quant_levels_dec.h"
#include "../utils/utils.h"
-#include "../webp/format_constants.h"
+#include "webp/format_constants.h"
//------------------------------------------------------------------------------
// ALPHDecoder object.
diff --git a/drivers/webp/dec/decode_vp8.h b/drivers/webp/dec/decode_vp8.h
index b9337bbec0..2bf1bdbbf5 100644
--- a/drivers/webp/dec/decode_vp8.h
+++ b/drivers/webp/dec/decode_vp8.h
@@ -14,7 +14,7 @@
#ifndef WEBP_WEBP_DECODE_VP8_H_
#define WEBP_WEBP_DECODE_VP8_H_
-#include "../webp/decode.h"
+#include "webp/decode.h"
#ifdef __cplusplus
extern "C" {
diff --git a/drivers/webp/dec/webp.c b/drivers/webp/dec/webp.c
index 952178fa89..93a113a48d 100644
--- a/drivers/webp/dec/webp.c
+++ b/drivers/webp/dec/webp.c
@@ -17,7 +17,7 @@
#include "./vp8li.h"
#include "./webpi.h"
#include "../utils/utils.h"
-#include "../webp/mux_types.h" // ALPHA_FLAG
+#include "webp/mux_types.h" // ALPHA_FLAG
//------------------------------------------------------------------------------
// RIFF layout is:
diff --git a/drivers/webp/demux/anim_decode.c b/drivers/webp/demux/anim_decode.c
index adf84cd193..c81cedfba0 100644
--- a/drivers/webp/demux/anim_decode.c
+++ b/drivers/webp/demux/anim_decode.c
@@ -11,15 +11,15 @@
//
#ifdef HAVE_CONFIG_H
-#include "../webp/config.h"
+#include "webp/config.h"
#endif
#include <assert.h>
#include <string.h>
#include "../utils/utils.h"
-#include "../webp/decode.h"
-#include "../webp/demux.h"
+#include "webp/decode.h"
+#include "webp/demux.h"
#define NUM_CHANNELS 4
diff --git a/drivers/webp/demux/demux.c b/drivers/webp/demux/demux.c
index e8e5418efe..3717e21165 100644
--- a/drivers/webp/demux/demux.c
+++ b/drivers/webp/demux/demux.c
@@ -11,7 +11,7 @@
//
#ifdef HAVE_CONFIG_H
-#include "../webp/config.h"
+#include "webp/config.h"
#endif
#include <assert.h>
@@ -19,9 +19,9 @@
#include <string.h>
#include "../utils/utils.h"
-#include "../webp/decode.h" // WebPGetFeatures
-#include "../webp/demux.h"
-#include "../webp/format_constants.h"
+#include "webp/decode.h" // WebPGetFeatures
+#include "webp/demux.h"
+#include "webp/format_constants.h"
#define DMUX_MAJ_VERSION 0
#define DMUX_MIN_VERSION 2
diff --git a/drivers/webp/dsp/dsp.h b/drivers/webp/dsp/dsp.h
index 8395df40e4..4613d9c3ff 100644
--- a/drivers/webp/dsp/dsp.h
+++ b/drivers/webp/dsp/dsp.h
@@ -15,10 +15,10 @@
#define WEBP_DSP_DSP_H_
#ifdef HAVE_CONFIG_H
-#include "../webp/config.h"
+#include "webp/config.h"
#endif
-#include "../webp/types.h"
+#include "webp/types.h"
#ifdef __cplusplus
extern "C" {
diff --git a/drivers/webp/dsp/lossless.h b/drivers/webp/dsp/lossless.h
index ee6771333f..149c6a01d3 100644
--- a/drivers/webp/dsp/lossless.h
+++ b/drivers/webp/dsp/lossless.h
@@ -15,8 +15,8 @@
#ifndef WEBP_DSP_LOSSLESS_H_
#define WEBP_DSP_LOSSLESS_H_
-#include "../webp/types.h"
-#include "../webp/decode.h"
+#include "webp/types.h"
+#include "webp/decode.h"
#include "../enc/histogram.h"
#include "../utils/utils.h"
diff --git a/drivers/webp/enc/alpha.c b/drivers/webp/enc/alpha.c
index fad6346e43..1842b36401 100644
--- a/drivers/webp/enc/alpha.c
+++ b/drivers/webp/enc/alpha.c
@@ -19,7 +19,7 @@
#include "../utils/filters.h"
#include "../utils/quant_levels.h"
#include "../utils/utils.h"
-#include "../webp/format_constants.h"
+#include "webp/format_constants.h"
// -----------------------------------------------------------------------------
// Encodes the given alpha data via specified compression method 'method'.
diff --git a/drivers/webp/enc/backward_references.h b/drivers/webp/enc/backward_references.h
index daa084d846..e410b06f7d 100644
--- a/drivers/webp/enc/backward_references.h
+++ b/drivers/webp/enc/backward_references.h
@@ -15,8 +15,8 @@
#include <assert.h>
#include <stdlib.h>
-#include "../webp/types.h"
-#include "../webp/format_constants.h"
+#include "webp/types.h"
+#include "webp/format_constants.h"
#ifdef __cplusplus
extern "C" {
diff --git a/drivers/webp/enc/config.c b/drivers/webp/enc/config.c
index f9f7961d58..8fd2276cb5 100644
--- a/drivers/webp/enc/config.c
+++ b/drivers/webp/enc/config.c
@@ -11,7 +11,7 @@
//
// Author: Skal (pascal.massimino@gmail.com)
-#include "../webp/encode.h"
+#include "webp/encode.h"
//------------------------------------------------------------------------------
// WebPConfig
diff --git a/drivers/webp/enc/delta_palettization.c b/drivers/webp/enc/delta_palettization.c
index 062e588d79..8bd3a3d233 100644
--- a/drivers/webp/enc/delta_palettization.c
+++ b/drivers/webp/enc/delta_palettization.c
@@ -13,7 +13,7 @@
#include "./delta_palettization.h"
#ifdef WEBP_EXPERIMENTAL_FEATURES
-#include "../webp/types.h"
+#include "webp/types.h"
#include "../dsp/lossless.h"
#define MK_COL(r, g, b) (((r) << 16) + ((g) << 8) + (b))
diff --git a/drivers/webp/enc/delta_palettization.h b/drivers/webp/enc/delta_palettization.h
index e41c0c5ab5..54195d452c 100644
--- a/drivers/webp/enc/delta_palettization.h
+++ b/drivers/webp/enc/delta_palettization.h
@@ -13,7 +13,7 @@
#ifndef WEBP_ENC_DELTA_PALETTIZATION_H_
#define WEBP_ENC_DELTA_PALETTIZATION_H_
-#include "../webp/encode.h"
+#include "webp/encode.h"
#include "../enc/vp8li.h"
// Replaces enc->argb_[] input by a palettizable approximation of it,
diff --git a/drivers/webp/enc/frame.c b/drivers/webp/enc/frame.c
index 5b7a40b9ad..65a98ada4d 100644
--- a/drivers/webp/enc/frame.c
+++ b/drivers/webp/enc/frame.c
@@ -17,7 +17,7 @@
#include "./cost.h"
#include "./vp8enci.h"
#include "../dsp/dsp.h"
-#include "../webp/format_constants.h" // RIFF constants
+#include "webp/format_constants.h" // RIFF constants
#define SEGMENT_VISU 0
#define DEBUG_SEARCH 0 // useful to track search convergence
diff --git a/drivers/webp/enc/histogram.c b/drivers/webp/enc/histogram.c
index 62c320d809..68c27fb1db 100644
--- a/drivers/webp/enc/histogram.c
+++ b/drivers/webp/enc/histogram.c
@@ -10,7 +10,7 @@
// Author: Jyrki Alakuijala (jyrki@google.com)
//
#ifdef HAVE_CONFIG_H
-#include "../webp/config.h"
+#include "webp/config.h"
#endif
#include <math.h>
diff --git a/drivers/webp/enc/histogram.h b/drivers/webp/enc/histogram.h
index adb16c01ca..72f045793a 100644
--- a/drivers/webp/enc/histogram.h
+++ b/drivers/webp/enc/histogram.h
@@ -17,8 +17,8 @@
#include <string.h>
#include "./backward_references.h"
-#include "../webp/format_constants.h"
-#include "../webp/types.h"
+#include "webp/format_constants.h"
+#include "webp/types.h"
#ifdef __cplusplus
extern "C" {
diff --git a/drivers/webp/enc/syntax.c b/drivers/webp/enc/syntax.c
index a0e79ef404..2b65f15ca1 100644
--- a/drivers/webp/enc/syntax.c
+++ b/drivers/webp/enc/syntax.c
@@ -14,8 +14,8 @@
#include <assert.h>
#include "../utils/utils.h"
-#include "../webp/format_constants.h" // RIFF constants
-#include "../webp/mux_types.h" // ALPHA_FLAG
+#include "webp/format_constants.h" // RIFF constants
+#include "webp/mux_types.h" // ALPHA_FLAG
#include "./vp8enci.h"
//------------------------------------------------------------------------------
diff --git a/drivers/webp/enc/vp8enci.h b/drivers/webp/enc/vp8enci.h
index 1a7ebe5703..0cb2ccc353 100644
--- a/drivers/webp/enc/vp8enci.h
+++ b/drivers/webp/enc/vp8enci.h
@@ -20,7 +20,7 @@
#include "../utils/bit_writer.h"
#include "../utils/thread.h"
#include "../utils/utils.h"
-#include "../webp/encode.h"
+#include "webp/encode.h"
#ifdef WEBP_EXPERIMENTAL_FEATURES
#include "./vp8li.h"
diff --git a/drivers/webp/enc/vp8l.c b/drivers/webp/enc/vp8l.c
index 047c9032ac..284995e830 100644
--- a/drivers/webp/enc/vp8l.c
+++ b/drivers/webp/enc/vp8l.c
@@ -22,7 +22,7 @@
#include "../utils/bit_writer.h"
#include "../utils/huffman_encode.h"
#include "../utils/utils.h"
-#include "../webp/format_constants.h"
+#include "webp/format_constants.h"
#include "./delta_palettization.h"
diff --git a/drivers/webp/enc/vp8li.h b/drivers/webp/enc/vp8li.h
index 6b6db127db..4543c3b260 100644
--- a/drivers/webp/enc/vp8li.h
+++ b/drivers/webp/enc/vp8li.h
@@ -17,8 +17,8 @@
#include "./backward_references.h"
#include "./histogram.h"
#include "../utils/bit_writer.h"
-#include "../webp/encode.h"
-#include "../webp/format_constants.h"
+#include "webp/encode.h"
+#include "webp/format_constants.h"
#ifdef __cplusplus
extern "C" {
diff --git a/drivers/webp/mux/anim_encode.c b/drivers/webp/mux/anim_encode.c
index fa86eaac94..bb7c0f50b9 100644
--- a/drivers/webp/mux/anim_encode.c
+++ b/drivers/webp/mux/anim_encode.c
@@ -15,10 +15,10 @@
#include <stdio.h>
#include "../utils/utils.h"
-#include "../webp/decode.h"
-#include "../webp/encode.h"
-#include "../webp/format_constants.h"
-#include "../webp/mux.h"
+#include "webp/decode.h"
+#include "webp/encode.h"
+#include "webp/format_constants.h"
+#include "webp/mux.h"
#if defined(_MSC_VER) && _MSC_VER < 1900
#define snprintf _snprintf
diff --git a/drivers/webp/mux/muxi.h b/drivers/webp/mux/muxi.h
index 718b2f5d58..8bd5291661 100644
--- a/drivers/webp/mux/muxi.h
+++ b/drivers/webp/mux/muxi.h
@@ -17,7 +17,7 @@
#include <stdlib.h>
#include "../dec/vp8i.h"
#include "../dec/vp8li.h"
-#include "../webp/mux.h"
+#include "webp/mux.h"
#ifdef __cplusplus
extern "C" {
diff --git a/drivers/webp/utils/bit_reader.c b/drivers/webp/utils/bit_reader.c
index cd265321bb..5081d5cd4d 100644
--- a/drivers/webp/utils/bit_reader.c
+++ b/drivers/webp/utils/bit_reader.c
@@ -12,7 +12,7 @@
// Author: Skal (pascal.massimino@gmail.com)
#ifdef HAVE_CONFIG_H
-#include "../webp/config.h"
+#include "webp/config.h"
#endif
#include "./bit_reader_inl.h"
diff --git a/drivers/webp/utils/bit_reader.h b/drivers/webp/utils/bit_reader.h
index 0fc62d33b7..7e09653ebc 100644
--- a/drivers/webp/utils/bit_reader.h
+++ b/drivers/webp/utils/bit_reader.h
@@ -19,7 +19,7 @@
#ifdef _MSC_VER
#include <stdlib.h> // _byteswap_ulong
#endif
-#include "../webp/types.h"
+#include "webp/types.h"
#ifdef __cplusplus
extern "C" {
diff --git a/drivers/webp/utils/bit_reader_inl.h b/drivers/webp/utils/bit_reader_inl.h
index 37215702d4..20ce5f3cc7 100644
--- a/drivers/webp/utils/bit_reader_inl.h
+++ b/drivers/webp/utils/bit_reader_inl.h
@@ -17,7 +17,7 @@
#define WEBP_UTILS_BIT_READER_INL_H_
#ifdef HAVE_CONFIG_H
-#include "../webp/config.h"
+#include "webp/config.h"
#endif
#ifdef WEBP_FORCE_ALIGNED
diff --git a/drivers/webp/utils/bit_writer.h b/drivers/webp/utils/bit_writer.h
index ef360d1dc6..867a5ee055 100644
--- a/drivers/webp/utils/bit_writer.h
+++ b/drivers/webp/utils/bit_writer.h
@@ -14,7 +14,7 @@
#ifndef WEBP_UTILS_BIT_WRITER_H_
#define WEBP_UTILS_BIT_WRITER_H_
-#include "../webp/types.h"
+#include "webp/types.h"
#ifdef __cplusplus
extern "C" {
diff --git a/drivers/webp/utils/color_cache.h b/drivers/webp/utils/color_cache.h
index a9a9f64270..34299e4c4e 100644
--- a/drivers/webp/utils/color_cache.h
+++ b/drivers/webp/utils/color_cache.h
@@ -15,7 +15,7 @@
#ifndef WEBP_UTILS_COLOR_CACHE_H_
#define WEBP_UTILS_COLOR_CACHE_H_
-#include "../webp/types.h"
+#include "webp/types.h"
#ifdef __cplusplus
extern "C" {
diff --git a/drivers/webp/utils/endian_inl.h b/drivers/webp/utils/endian_inl.h
index e11260ff7d..253b7be8ee 100644
--- a/drivers/webp/utils/endian_inl.h
+++ b/drivers/webp/utils/endian_inl.h
@@ -13,11 +13,11 @@
#define WEBP_UTILS_ENDIAN_INL_H_
#ifdef HAVE_CONFIG_H
-#include "../webp/config.h"
+#include "webp/config.h"
#endif
#include "../dsp/dsp.h"
-#include "../webp/types.h"
+#include "webp/types.h"
// some endian fix (e.g.: mips-gcc doesn't define __BIG_ENDIAN__)
#if !defined(WORDS_BIGENDIAN) && \
diff --git a/drivers/webp/utils/filters.h b/drivers/webp/utils/filters.h
index 088b132fc5..4aba3fd3b7 100644
--- a/drivers/webp/utils/filters.h
+++ b/drivers/webp/utils/filters.h
@@ -14,7 +14,7 @@
#ifndef WEBP_UTILS_FILTERS_H_
#define WEBP_UTILS_FILTERS_H_
-#include "../webp/types.h"
+#include "webp/types.h"
#include "../dsp/dsp.h"
#ifdef __cplusplus
diff --git a/drivers/webp/utils/huffman.c b/drivers/webp/utils/huffman.c
index d57376aa6b..e6f482a6a8 100644
--- a/drivers/webp/utils/huffman.c
+++ b/drivers/webp/utils/huffman.c
@@ -16,7 +16,7 @@
#include <string.h>
#include "./huffman.h"
#include "../utils/utils.h"
-#include "../webp/format_constants.h"
+#include "webp/format_constants.h"
// Huffman data read via DecodeImageStream is represented in two (red and green)
// bytes.
diff --git a/drivers/webp/utils/huffman.h b/drivers/webp/utils/huffman.h
index c6dd6aaa45..a8cc0da1c3 100644
--- a/drivers/webp/utils/huffman.h
+++ b/drivers/webp/utils/huffman.h
@@ -15,8 +15,8 @@
#define WEBP_UTILS_HUFFMAN_H_
#include <assert.h>
-#include "../webp/format_constants.h"
-#include "../webp/types.h"
+#include "webp/format_constants.h"
+#include "webp/types.h"
#ifdef __cplusplus
extern "C" {
diff --git a/drivers/webp/utils/huffman_encode.c b/drivers/webp/utils/huffman_encode.c
index 6421c2beed..d7aad6f56d 100644
--- a/drivers/webp/utils/huffman_encode.c
+++ b/drivers/webp/utils/huffman_encode.c
@@ -16,7 +16,7 @@
#include <string.h>
#include "./huffman_encode.h"
#include "../utils/utils.h"
-#include "../webp/format_constants.h"
+#include "webp/format_constants.h"
// -----------------------------------------------------------------------------
// Util function to optimize the symbol map for RLE coding
diff --git a/drivers/webp/utils/huffman_encode.h b/drivers/webp/utils/huffman_encode.h
index a157165148..93610066f3 100644
--- a/drivers/webp/utils/huffman_encode.h
+++ b/drivers/webp/utils/huffman_encode.h
@@ -14,7 +14,7 @@
#ifndef WEBP_UTILS_HUFFMAN_ENCODE_H_
#define WEBP_UTILS_HUFFMAN_ENCODE_H_
-#include "../webp/types.h"
+#include "webp/types.h"
#ifdef __cplusplus
extern "C" {
diff --git a/drivers/webp/utils/quant_levels.h b/drivers/webp/utils/quant_levels.h
index 1cb5a32cae..3916b977ab 100644
--- a/drivers/webp/utils/quant_levels.h
+++ b/drivers/webp/utils/quant_levels.h
@@ -16,7 +16,7 @@
#include <stdlib.h>
-#include "../webp/types.h"
+#include "webp/types.h"
#ifdef __cplusplus
extern "C" {
diff --git a/drivers/webp/utils/quant_levels_dec.h b/drivers/webp/utils/quant_levels_dec.h
index 9aab068076..29c7e6e205 100644
--- a/drivers/webp/utils/quant_levels_dec.h
+++ b/drivers/webp/utils/quant_levels_dec.h
@@ -14,7 +14,7 @@
#ifndef WEBP_UTILS_QUANT_LEVELS_DEC_H_
#define WEBP_UTILS_QUANT_LEVELS_DEC_H_
-#include "../webp/types.h"
+#include "webp/types.h"
#ifdef __cplusplus
extern "C" {
diff --git a/drivers/webp/utils/random.h b/drivers/webp/utils/random.h
index c392a615ca..745f3e2e87 100644
--- a/drivers/webp/utils/random.h
+++ b/drivers/webp/utils/random.h
@@ -15,7 +15,7 @@
#define WEBP_UTILS_RANDOM_H_
#include <assert.h>
-#include "../webp/types.h"
+#include "webp/types.h"
#ifdef __cplusplus
extern "C" {
diff --git a/drivers/webp/utils/rescaler.h b/drivers/webp/utils/rescaler.h
index 98b01a76d0..868467b4d7 100644
--- a/drivers/webp/utils/rescaler.h
+++ b/drivers/webp/utils/rescaler.h
@@ -18,7 +18,7 @@
extern "C" {
#endif
-#include "../webp/types.h"
+#include "webp/types.h"
#define WEBP_RESCALER_RFIX 32 // fixed-point precision for multiplies
#define WEBP_RESCALER_ONE (1ull << WEBP_RESCALER_RFIX)
diff --git a/drivers/webp/utils/thread.h b/drivers/webp/utils/thread.h
index 8408311855..6008bb7c01 100644
--- a/drivers/webp/utils/thread.h
+++ b/drivers/webp/utils/thread.h
@@ -15,10 +15,10 @@
#define WEBP_UTILS_THREAD_H_
#ifdef HAVE_CONFIG_H
-#include "../webp/config.h"
+#include "webp/config.h"
#endif
-#include "../webp/types.h"
+#include "webp/types.h"
#ifdef __cplusplus
extern "C" {
diff --git a/drivers/webp/utils/utils.c b/drivers/webp/utils/utils.c
index d8e30930af..35aeae6ab8 100644
--- a/drivers/webp/utils/utils.c
+++ b/drivers/webp/utils/utils.c
@@ -13,8 +13,8 @@
#include <stdlib.h>
#include <string.h> // for memcpy()
-#include "../webp/decode.h"
-#include "../webp/encode.h"
+#include "webp/decode.h"
+#include "webp/encode.h"
#include "./utils.h"
// If PRINT_MEM_INFO is defined, extra info (like total memory used, number of
diff --git a/drivers/webp/utils/utils.h b/drivers/webp/utils/utils.h
index fcdb7e139b..d0e1cb250a 100644
--- a/drivers/webp/utils/utils.h
+++ b/drivers/webp/utils/utils.h
@@ -17,7 +17,7 @@
#include <assert.h>
-#include "../webp/types.h"
+#include "webp/types.h"
#ifdef __cplusplus
extern "C" {
diff --git a/logo_small.png b/logo_small.png
deleted file mode 100644
index 61e4cc95d6..0000000000
--- a/logo_small.png
+++ /dev/null
Binary files differ
diff --git a/main/main.cpp b/main/main.cpp
index a060dbd232..66391ffa7e 100644
--- a/main/main.cpp
+++ b/main/main.cpp
@@ -95,6 +95,7 @@ static TranslationServer *translation_server = NULL;
static OS::VideoMode video_mode;
static bool init_maximized=false;
+static bool init_windowed=false;
static bool init_fullscreen=false;
static bool init_use_custom_pos=false;
static bool debug_collisions=false;
@@ -146,6 +147,7 @@ void Main::print_help(const char* p_binary) {
OS::get_singleton()->print("\t-p XxY\t : Request Window Position\n");
OS::get_singleton()->print("\t-f\t\t : Request Fullscreen\n");
OS::get_singleton()->print("\t-mx\t\t Request Maximized\n");
+ OS::get_singleton()->print("\t-w\t\t Request Windowed\n");
OS::get_singleton()->print("\t-vd DRIVER\t : Video Driver (");
for (int i=0;i<OS::get_singleton()->get_video_driver_count();i++) {
@@ -354,6 +356,9 @@ Error Main::setup(const char *execpath,int argc, char *argv[],bool p_second_phas
} else if (I->get()=="-mx") { // video driver
init_maximized=true;
+ } else if (I->get()=="-w") { // video driver
+
+ init_windowed=true;
} else if (I->get()=="-vd") { // video driver
if (I->next()) {
@@ -841,11 +846,7 @@ Error Main::setup2() {
if (init_use_custom_pos) {
OS::get_singleton()->set_window_position(init_custom_pos);
}
- if (init_maximized) {
- OS::get_singleton()->set_window_maximized(true);
- } else if (init_fullscreen) {
- OS::get_singleton()->set_window_fullscreen(true);
- }
+
register_core_singletons();
@@ -859,8 +860,12 @@ Error Main::setup2() {
if (init_screen!=-1) {
OS::get_singleton()->set_current_screen(init_screen);
}
- if (init_maximized) {
+ if (init_windowed) {
+ //do none..
+ } else if (init_maximized) {
OS::get_singleton()->set_window_maximized(true);
+ } else if (init_fullscreen) {
+ OS::get_singleton()->set_window_fullscreen(true);
}
MAIN_PRINT("Main: Load Remaps");
diff --git a/makerel.bat b/makerel.bat
deleted file mode 100644
index 7db76e1dd7..0000000000
--- a/makerel.bat
+++ /dev/null
@@ -1 +0,0 @@
-"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" && c:\python27\scons p=windows target=debug_release tools=no
diff --git a/modules/gdscript/gd_functions.cpp b/modules/gdscript/gd_functions.cpp
index 6f51ac5312..fd92c8a9ec 100644
--- a/modules/gdscript/gd_functions.cpp
+++ b/modules/gdscript/gd_functions.cpp
@@ -1307,7 +1307,7 @@ MethodInfo GDFunctions::get_info(Function p_func) {
} break;
case STR_TO_VAR: {
- MethodInfo mi("str2var:var",PropertyInfo(Variant::STRING,"string"));
+ MethodInfo mi("str2var:Variant",PropertyInfo(Variant::STRING,"string"));
mi.return_val.type=Variant::NIL;
return mi;
} break;
@@ -1338,7 +1338,7 @@ MethodInfo GDFunctions::get_info(Function p_func) {
} break;
case HASH: {
- MethodInfo mi("hash",PropertyInfo(Variant::NIL,"var:var"));
+ MethodInfo mi("hash",PropertyInfo(Variant::NIL,"var:Variant"));
mi.return_val.type=Variant::INT;
return mi;
} break;
diff --git a/modules/gdscript/gd_script.cpp b/modules/gdscript/gd_script.cpp
index c3cc779bce..62006cf18b 100644
--- a/modules/gdscript/gd_script.cpp
+++ b/modules/gdscript/gd_script.cpp
@@ -1370,7 +1370,7 @@ Variant GDFunctionState::resume(const Variant& p_arg) {
void GDFunctionState::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("resume:var","arg"),&GDFunctionState::resume,DEFVAL(Variant()));
+ ObjectTypeDB::bind_method(_MD("resume:Variant","arg"),&GDFunctionState::resume,DEFVAL(Variant()));
ObjectTypeDB::bind_method(_MD("is_valid"),&GDFunctionState::is_valid);
ObjectTypeDB::bind_native_method(METHOD_FLAGS_DEFAULT,"_signal_callback",&GDFunctionState::_signal_callback,MethodInfo("_signal_callback"));
diff --git a/modules/gdscript/gd_tokenizer.cpp b/modules/gdscript/gd_tokenizer.cpp
index b591ed3b4b..e445701669 100644
--- a/modules/gdscript/gd_tokenizer.cpp
+++ b/modules/gdscript/gd_tokenizer.cpp
@@ -774,20 +774,15 @@ void GDTokenizerText::_advance() {
{Variant::INT,"int"},
{Variant::REAL,"float"},
{Variant::STRING,"String"},
- {Variant::VECTOR2,"vec2"},
{Variant::VECTOR2,"Vector2"},
{Variant::RECT2,"Rect2"},
{Variant::MATRIX32,"Matrix32"},
- {Variant::MATRIX32,"mat32"},
- {Variant::VECTOR3,"vec3"},
{Variant::VECTOR3,"Vector3"},
{Variant::_AABB,"AABB"},
{Variant::_AABB,"Rect3"},
{Variant::PLANE,"Plane"},
{Variant::QUAT,"Quat"},
- {Variant::MATRIX3,"mat3"},
{Variant::MATRIX3,"Matrix3"},
- {Variant::TRANSFORM,"trn"},
{Variant::TRANSFORM,"Transform"},
{Variant::COLOR,"Color"},
{Variant::IMAGE,"Image"},
@@ -795,7 +790,6 @@ void GDTokenizerText::_advance() {
{Variant::OBJECT,"Object"},
{Variant::INPUT_EVENT,"InputEvent"},
{Variant::NODE_PATH,"NodePath"},
- {Variant::DICTIONARY,"dict"},
{Variant::DICTIONARY,"Dictionary"},
{Variant::ARRAY,"Array"},
{Variant::RAW_ARRAY,"RawArray"},
diff --git a/platform/android/export/export.cpp b/platform/android/export/export.cpp
index 1deeb3457a..7d550f4fa0 100644
--- a/platform/android/export/export.cpp
+++ b/platform/android/export/export.cpp
@@ -1020,18 +1020,24 @@ Error EditorExportPlatformAndroid::export_project(const String& p_path, bool p_d
EditorProgress ep("export","Exporting for Android",104);
- String apk_path = EditorSettings::get_singleton()->get_settings_path()+"/templates/";
-
- if (p_debug) {
-
- src_apk=custom_debug_package!=""?custom_debug_package:apk_path+"android_debug.apk";
- } else {
-
- src_apk=custom_release_package!=""?custom_release_package:apk_path+"android_release.apk";
+ if (p_debug)
+ src_apk=custom_debug_package;
+ else
+ src_apk=custom_release_package;
+ if (src_apk=="") {
+ String err;
+ if (p_debug) {
+ src_apk=find_export_template("android_debug.apk", &err);
+ } else {
+ src_apk=find_export_template("android_release.apk", &err);
+ }
+ if (src_apk=="") {
+ EditorNode::add_io_error(err);
+ return ERR_FILE_NOT_FOUND;
+ }
}
-
FileAccess *src_f=NULL;
zlib_filefunc_def io = zipio_create_io_from_file(&src_f);
@@ -1659,10 +1665,7 @@ bool EditorExportPlatformAndroid::can_export(String *r_error) const {
err+="Debug Keystore not configured in editor settings.\n";
}
-
- String exe_path = EditorSettings::get_singleton()->get_settings_path()+"/templates/";
-
- if (!FileAccess::exists(exe_path+"android_debug.apk") || !FileAccess::exists(exe_path+"android_release.apk")) {
+ if (!exists_export_template("android_debug.apk") || !exists_export_template("android_release.apk")) {
valid=false;
err+="No export templates found.\nDownload and install export templates.\n";
}
diff --git a/platform/bb10/export/export.cpp b/platform/bb10/export/export.cpp
index 434aaff414..2acd920f31 100644
--- a/platform/bb10/export/export.cpp
+++ b/platform/bb10/export/export.cpp
@@ -275,10 +275,16 @@ Error EditorExportPlatformBB10::export_project(const String& p_path, bool p_debu
EditorProgress ep("export","Exporting for BlackBerry 10",104);
- String template_path = EditorSettings::get_singleton()->get_settings_path()+"/templates/";
-
- String src_template=custom_package!=""?custom_package:template_path.plus_file("bb10.zip");
-
+ String src_template=custom_package;
+
+ if (src_template=="") {
+ String err;
+ src_template = find_export_template("bb10.zip", &err);
+ if (src_template=="") {
+ EditorNode::add_io_error(err);
+ return ERR_FILE_NOT_FOUND;
+ }
+ }
FileAccess *src_f=NULL;
zlib_filefunc_def io = zipio_create_io_from_file(&src_f);
@@ -733,9 +739,7 @@ bool EditorExportPlatformBB10::can_export(String *r_error) const {
err+="Blackberry host tools not configured in editor settings.\n";
}
- String exe_path = EditorSettings::get_singleton()->get_settings_path()+"/templates/";
-
- if (!FileAccess::exists(exe_path+"bb10.zip")) {
+ if (!exists_export_template("bb10.zip")) {
valid=false;
err+="No export template found.\nDownload and install export templates.\n";
}
diff --git a/platform/iphone/os_iphone.cpp b/platform/iphone/os_iphone.cpp
index 93f4d00e05..0bc8378662 100644
--- a/platform/iphone/os_iphone.cpp
+++ b/platform/iphone/os_iphone.cpp
@@ -226,6 +226,8 @@ void OSIPhone::mouse_button(int p_idx, int p_x, int p_y, bool p_pressed, bool p_
queue_event(ev);
};
+ mouse_list.pressed[p_idx] = p_pressed;
+
if (p_use_as_mouse) {
InputEvent ev;
@@ -240,13 +242,13 @@ void OSIPhone::mouse_button(int p_idx, int p_x, int p_y, bool p_pressed, bool p_
ev.mouse_button.x = ev.mouse_button.global_x = p_x;
ev.mouse_button.y = ev.mouse_button.global_y = p_y;
+ //mouse_list.pressed[p_idx] = p_pressed;
+
input->set_mouse_pos(Point2(ev.mouse_motion.x,ev.mouse_motion.y));
ev.mouse_button.button_index = BUTTON_LEFT;
ev.mouse_button.doubleclick = p_doubleclick;
ev.mouse_button.pressed = p_pressed;
- mouse_list.pressed[p_idx] = p_pressed;
-
queue_event(ev);
};
};
diff --git a/platform/isim/detect.py b/platform/isim/detect.py
index bd0fd2fea3..0adbd9f413 100644
--- a/platform/isim/detect.py
+++ b/platform/isim/detect.py
@@ -21,8 +21,8 @@ def get_opts():
return [
('ISIMPLATFORM', 'name of the iphone platform', 'iPhoneSimulator'),
- ('ISIMPATH', 'the path to iphone toolchain', '/Applications/Xcode.app/Contents/Developer/Platforms/${ISIMPLATFORM}.platform'),
- ('ISIMSDK', 'path to the iphone SDK', '$ISIMPATH/Developer/SDKs/${ISIMPLATFORM}.sdk'),
+ ('ISIMPATH', 'the path to iphone toolchain', '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain'),
+ ('ISIMSDK', 'path to the iphone SDK', '/Applications/Xcode.app/Contents/Developer/Platforms/${ISIMPLATFORM}.platform/Developer/SDKs/${ISIMPLATFORM}.sdk'),
('game_center', 'Support for game center', 'yes'),
('store_kit', 'Support for in-app store', 'yes'),
('ios_gles22_override', 'Force GLES2.0 on iOS', 'yes'),
@@ -46,9 +46,10 @@ def configure(env):
env['ENV']['PATH'] = env['ISIMPATH']+"/Developer/usr/bin/:"+env['ENV']['PATH']
- env['CC'] = '$ISIMPATH/Developer/usr/bin/gcc'
- env['CXX'] = '$ISIMPATH/Developer/usr/bin/g++'
- env['AR'] = 'ar'
+ env['CC'] = '$ISIMPATH/usr/bin/${ios_triple}clang'
+ env['CXX'] = '$ISIMPATH/usr/bin/${ios_triple}clang++'
+ env['AR'] = '$ISIMPATH/usr/bin/${ios_triple}ar'
+ env['RANLIB'] = '$ISIMPATH/usr/bin/${ios_triple}ranlib'
import string
env['CCFLAGS'] = string.split('-arch i386 -fobjc-abi-version=2 -fobjc-legacy-dispatch -fmessage-length=0 -fpascal-strings -fasm-blocks -Wall -D__IPHONE_OS_VERSION_MIN_REQUIRED=40100 -isysroot $ISIMSDK -mios-simulator-version-min=4.3 -DCUSTOM_MATRIX_TRANSFORM_H=\\\"build/iphone/matrix4_iphone.h\\\" -DCUSTOM_VECTOR3_TRANSFORM_H=\\\"build/iphone/vector3_iphone.h\\\"')
@@ -97,4 +98,8 @@ def configure(env):
env['ENV']['CODESIGN_ALLOCATE'] = '/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate'
env.Append(CPPFLAGS=['-DIPHONE_ENABLED', '-DUNIX_ENABLED', '-DGLES2_ENABLED', '-fexceptions'])
+ import methods
+ env.Append( BUILDERS = { 'GLSL120' : env.Builder(action = methods.build_legacygl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
+ env.Append( BUILDERS = { 'GLSL' : env.Builder(action = methods.build_glsl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
+ env.Append( BUILDERS = { 'GLSL120GLES' : env.Builder(action = methods.build_gles2_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
diff --git a/platform/javascript/export/export.cpp b/platform/javascript/export/export.cpp
index 9e2595f4a1..acbcbb4652 100644
--- a/platform/javascript/export/export.cpp
+++ b/platform/javascript/export/export.cpp
@@ -205,18 +205,24 @@ Error EditorExportPlatformJavaScript::export_project(const String& p_path, bool
EditorProgress ep("export","Exporting for javascript",104);
- String template_path = EditorSettings::get_singleton()->get_settings_path()+"/templates/";
-
- if (p_debug) {
-
- src_template=custom_debug_package!=""?custom_debug_package:template_path+"javascript_debug.zip";
- } else {
-
- src_template=custom_release_package!=""?custom_release_package:template_path+"javascript_release.zip";
+ if (p_debug)
+ src_template=custom_debug_package;
+ else
+ src_template=custom_release_package;
+ if (src_template=="") {
+ String err;
+ if (p_debug) {
+ src_template=find_export_template("javascript_debug.zip", &err);
+ } else {
+ src_template=find_export_template("javascript_release.zip", &err);
+ }
+ if (src_template=="") {
+ EditorNode::add_io_error(err);
+ return ERR_FILE_NOT_FOUND;
+ }
}
-
FileAccess *src_f=NULL;
zlib_filefunc_def io = zipio_create_io_from_file(&src_f);
@@ -337,9 +343,8 @@ bool EditorExportPlatformJavaScript::can_export(String *r_error) const {
bool valid=true;
String err;
- String exe_path = EditorSettings::get_singleton()->get_settings_path()+"/templates/";
- if (!FileAccess::exists(exe_path+"javascript_debug.zip") || !FileAccess::exists(exe_path+"javascript_release.zip")) {
+ if (!exists_export_template("javascript_debug.zip") || !exists_export_template("javascript_release.zip")) {
valid=false;
err+="No export templates found.\nDownload and install export templates.\n";
}
diff --git a/platform/osx/SCsub b/platform/osx/SCsub
index 4904636afd..3785eb3fb3 100644
--- a/platform/osx/SCsub
+++ b/platform/osx/SCsub
@@ -6,6 +6,7 @@ files = [
'audio_driver_osx.cpp',
'sem_osx.cpp',
# 'context_gl_osx.cpp',
+ 'dir_access_osx.mm',
]
env.Program('#bin/godot',files)
diff --git a/platform/osx/dir_access_osx.h b/platform/osx/dir_access_osx.h
new file mode 100644
index 0000000000..abd66cbba8
--- /dev/null
+++ b/platform/osx/dir_access_osx.h
@@ -0,0 +1,92 @@
+/*************************************************************************/
+/* dir_access_unix.h */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* http://www.godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
+#ifndef DIR_ACCESS_OSX_H
+#define DIR_ACCESS_OSX_H
+
+#if defined(UNIX_ENABLED) || defined(LIBC_FILEIO_ENABLED)
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <dirent.h>
+
+#include "os/dir_access.h"
+
+
+/**
+ @author Juan Linietsky <reduzio@gmail.com>
+*/
+class DirAccessOSX : public DirAccess {
+
+ DIR *dir_stream;
+
+ static DirAccess *create_fs();
+
+ String current_dir;
+ bool _cisdir;
+ bool _cishidden;
+
+public:
+
+ virtual bool list_dir_begin(); ///< This starts dir listing
+ virtual String get_next();
+ virtual bool current_is_dir() const;
+ virtual bool current_is_hidden() const;
+
+ virtual void list_dir_end(); ///<
+
+ virtual int get_drive_count();
+ virtual String get_drive(int p_drive);
+
+ virtual Error change_dir(String p_dir); ///< can be relative or absolute, return false on success
+ virtual String get_current_dir(); ///< return current dir location
+ virtual Error make_dir(String p_dir);
+
+ virtual bool file_exists(String p_file);
+ virtual bool dir_exists(String p_dir);
+
+ virtual uint64_t get_modified_time(String p_file);
+
+
+
+ virtual Error rename(String p_from, String p_to);
+ virtual Error remove(String p_name);
+
+ virtual size_t get_space_left();
+
+
+ DirAccessOSX();
+ ~DirAccessOSX();
+
+};
+
+
+
+#endif //UNIX ENABLED
+#endif
diff --git a/platform/osx/dir_access_osx.mm b/platform/osx/dir_access_osx.mm
new file mode 100644
index 0000000000..cc7db44929
--- /dev/null
+++ b/platform/osx/dir_access_osx.mm
@@ -0,0 +1,350 @@
+/*************************************************************************/
+/* dir_access_unix.cpp */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* http://www.godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
+#include "dir_access_osx.h"
+
+#if defined(UNIX_ENABLED) || defined(LIBC_FILEIO_ENABLED)
+
+#ifndef ANDROID_ENABLED
+#include <sys/statvfs.h>
+#endif
+
+#include <stdio.h>
+#include "os/memory.h"
+#include "print_string.h"
+#include <errno.h>
+
+#include <Foundation/NSString.h>
+
+DirAccess *DirAccessOSX::create_fs() {
+
+ return memnew( DirAccessOSX );
+}
+
+bool DirAccessOSX::list_dir_begin() {
+
+ list_dir_end(); //close any previous dir opening!
+
+
+// char real_current_dir_name[2048]; //is this enough?!
+ //getcwd(real_current_dir_name,2048);
+ //chdir(curent_path.utf8().get_data());
+ dir_stream = opendir(current_dir.utf8().get_data());
+ //chdir(real_current_dir_name);
+ if (!dir_stream)
+ return true; //error!
+
+ return false;
+}
+
+bool DirAccessOSX::file_exists(String p_file) {
+
+ GLOBAL_LOCK_FUNCTION
+
+
+ if (p_file.is_rel_path())
+ p_file=current_dir+"/"+p_file;
+ else
+ p_file=fix_path(p_file);
+
+ struct stat flags;
+ bool success = (stat(p_file.utf8().get_data(),&flags)==0);
+
+ if (success && S_ISDIR(flags.st_mode)) {
+ success=false;
+ }
+
+ return success;
+
+}
+
+bool DirAccessOSX::dir_exists(String p_dir) {
+
+ GLOBAL_LOCK_FUNCTION
+
+
+ if (p_dir.is_rel_path())
+ p_dir=get_current_dir().plus_file(p_dir);
+ else
+ p_dir=fix_path(p_dir);
+
+ struct stat flags;
+ bool success = (stat(p_dir.utf8().get_data(),&flags)==0);
+
+ if (success && S_ISDIR(flags.st_mode))
+ return true;
+
+ return false;
+
+}
+
+uint64_t DirAccessOSX::get_modified_time(String p_file) {
+
+ if (p_file.is_rel_path())
+ p_file=current_dir+"/"+p_file;
+ else
+ p_file=fix_path(p_file);
+
+ struct stat flags;
+ bool success = (stat(p_file.utf8().get_data(),&flags)==0);
+
+ if (success) {
+ return flags.st_mtime;
+ } else {
+
+ ERR_FAIL_V(0);
+ };
+ return 0;
+};
+
+
+String DirAccessOSX::get_next() {
+
+ if (!dir_stream)
+ return "";
+ dirent *entry;
+
+ entry=readdir(dir_stream);
+
+ if (entry==NULL) {
+
+ list_dir_end();
+ return "";
+ }
+
+ //typedef struct stat Stat;
+ struct stat flags;
+
+ String fname;
+ NSString* nsstr = [[NSString stringWithUTF8String: entry->d_name] precomposedStringWithCanonicalMapping];
+
+ fname.parse_utf8([nsstr UTF8String]);
+
+ //[nsstr autorelease];
+
+ String f=current_dir+"/"+fname;
+
+ if (stat(f.utf8().get_data(),&flags)==0) {
+
+ if (S_ISDIR(flags.st_mode)) {
+
+ _cisdir=true;
+
+ } else {
+
+ _cisdir=false;
+ }
+
+ } else {
+
+ _cisdir=false;
+
+ }
+
+ _cishidden=(fname!="." && fname!=".." && fname.begins_with("."));
+
+
+
+ return fname;
+
+}
+
+bool DirAccessOSX::current_is_dir() const {
+
+ return _cisdir;
+}
+
+bool DirAccessOSX::current_is_hidden() const {
+
+ return _cishidden;
+}
+
+
+void DirAccessOSX::list_dir_end() {
+
+ if (dir_stream)
+ closedir(dir_stream);
+ dir_stream=0;
+ _cisdir=false;
+}
+
+int DirAccessOSX::get_drive_count() {
+
+ return 0;
+}
+String DirAccessOSX::get_drive(int p_drive) {
+
+ return "";
+}
+
+Error DirAccessOSX::make_dir(String p_dir) {
+
+ GLOBAL_LOCK_FUNCTION
+
+ p_dir=fix_path(p_dir);
+
+ char real_current_dir_name[2048];
+ getcwd(real_current_dir_name,2048);
+ chdir(current_dir.utf8().get_data()); //ascii since this may be unicode or wathever the host os wants
+
+ bool success=(mkdir(p_dir.utf8().get_data(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH)==0);
+ int err = errno;
+
+ chdir(real_current_dir_name);
+
+ if (success) {
+ return OK;
+ };
+
+ if (err == EEXIST) {
+ return ERR_ALREADY_EXISTS;
+ };
+
+ return ERR_CANT_CREATE;
+}
+
+
+Error DirAccessOSX::change_dir(String p_dir) {
+
+ GLOBAL_LOCK_FUNCTION
+ p_dir=fix_path(p_dir);
+
+
+ char real_current_dir_name[2048];
+ getcwd(real_current_dir_name,2048);
+ String prev_dir;
+ if (prev_dir.parse_utf8(real_current_dir_name))
+ prev_dir=real_current_dir_name; //no utf8, maybe latin?
+
+ chdir(current_dir.utf8().get_data()); //ascii since this may be unicode or wathever the host os wants
+ bool worked=(chdir(p_dir.utf8().get_data())==0); // we can only give this utf8
+#ifndef IPHONE_ENABLED
+ String base = _get_root_path();
+ if (base!="") {
+
+ getcwd(real_current_dir_name,2048);
+ String new_dir;
+ new_dir.parse_utf8(real_current_dir_name);
+ if (!new_dir.begins_with(base))
+ worked=false;
+ }
+#endif
+ if (worked) {
+
+ getcwd(real_current_dir_name,2048);
+ if (current_dir.parse_utf8(real_current_dir_name))
+ current_dir=real_current_dir_name; //no utf8, maybe latin?
+ }
+
+ chdir(prev_dir.utf8().get_data());
+ return worked?OK:ERR_INVALID_PARAMETER;
+
+}
+
+String DirAccessOSX::get_current_dir() {
+
+ String base = _get_root_path();
+ if (base!="") {
+
+ String bd = current_dir.replace_first(base,"");
+ if (bd.begins_with("/"))
+ return _get_root_string()+bd.substr(1,bd.length());
+ else
+ return _get_root_string()+bd;
+
+ }
+ return current_dir;
+}
+
+Error DirAccessOSX::rename(String p_path,String p_new_path) {
+
+ if (p_path.is_rel_path())
+ p_path=get_current_dir().plus_file(p_path);
+ else
+ p_path=fix_path(p_path);
+
+ if (p_new_path.is_rel_path())
+ p_new_path=get_current_dir().plus_file(p_new_path);
+ else
+ p_new_path=fix_path(p_new_path);
+
+ return ::rename(p_path.utf8().get_data(),p_new_path.utf8().get_data())==0?OK:FAILED;
+}
+Error DirAccessOSX::remove(String p_path) {
+
+ p_path=fix_path(p_path);
+
+ struct stat flags;
+ if ((stat(p_path.utf8().get_data(),&flags)!=0))
+ return FAILED;
+
+ if (S_ISDIR(flags.st_mode))
+ return ::rmdir(p_path.utf8().get_data())==0?OK:FAILED;
+ else
+ return ::unlink(p_path.utf8().get_data())==0?OK:FAILED;
+}
+
+
+size_t DirAccessOSX::get_space_left() {
+
+#ifndef NO_STATVFS
+ struct statvfs vfs;
+ if (statvfs(current_dir.utf8().get_data(), &vfs) != 0) {
+
+ return -1;
+ };
+
+ return vfs.f_bfree * vfs.f_bsize;
+#else
+#warning THIS IS BROKEN
+ return 0;
+#endif
+};
+
+
+
+DirAccessOSX::DirAccessOSX() {
+
+ dir_stream=0;
+ current_dir=".";
+ _cisdir=false;
+
+ /* determine drive count */
+
+ change_dir(current_dir);
+
+}
+
+
+DirAccessOSX::~DirAccessOSX() {
+
+ list_dir_end();
+}
+
+
+#endif //posix_enabled
diff --git a/platform/osx/export/export.cpp b/platform/osx/export/export.cpp
index 79ee91bc61..0bece6ec76 100644
--- a/platform/osx/export/export.cpp
+++ b/platform/osx/export/export.cpp
@@ -251,15 +251,19 @@ Error EditorExportPlatformOSX::export_project(const String& p_path, bool p_debug
EditorProgress ep("export","Exporting for OSX",104);
- String pkg_path = EditorSettings::get_singleton()->get_settings_path()+"/templates/osx.zip";
-
- if (p_debug) {
-
- src_pkg=custom_debug_package!=""?custom_debug_package:pkg_path;
- } else {
-
- src_pkg=custom_release_package!=""?custom_release_package:pkg_path;
+ if (p_debug)
+ src_pkg=custom_debug_package;
+ else
+ src_pkg=custom_release_package;
+
+ if (src_pkg=="") {
+ String err;
+ src_pkg=find_export_template("osx.zip", &err);
+ if (src_pkg=="") {
+ EditorNode::add_io_error(err);
+ return ERR_FILE_NOT_FOUND;
+ }
}
@@ -464,9 +468,8 @@ bool EditorExportPlatformOSX::can_export(String *r_error) const {
bool valid=true;
String err;
- String exe_path = EditorSettings::get_singleton()->get_settings_path()+"/templates/";
- if (!FileAccess::exists(exe_path+"osx.zip")) {
+ if (!exists_export_template("osx.zip")) {
valid=false;
err+="No export templates found.\nDownload and install export templates.\n";
}
diff --git a/platform/osx/os_osx.mm b/platform/osx/os_osx.mm
index 4990d04ab6..5a06d4b0e7 100644
--- a/platform/osx/os_osx.mm
+++ b/platform/osx/os_osx.mm
@@ -47,6 +47,7 @@
#include "servers/visual/visual_server_wrap_mt.h"
#include "main/main.h"
#include "os/keyboard.h"
+#include "dir_access_osx.h"
#include <sys/types.h>
#include <sys/stat.h>
@@ -849,6 +850,11 @@ OS::VideoMode OS_OSX::get_default_video_mode() const {
void OS_OSX::initialize_core() {
OS_Unix::initialize_core();
+
+ DirAccess::make_default<DirAccessOSX>(DirAccess::ACCESS_RESOURCES);
+ DirAccess::make_default<DirAccessOSX>(DirAccess::ACCESS_USERDATA);
+ DirAccess::make_default<DirAccessOSX>(DirAccess::ACCESS_FILESYSTEM);
+
SemaphoreOSX::make_default();
}
diff --git a/platform/windows/detect.py b/platform/windows/detect.py
index 4ec4b054db..3193a2acbb 100644
--- a/platform/windows/detect.py
+++ b/platform/windows/detect.py
@@ -170,7 +170,6 @@ def get_flags():
return [
('freetype','builtin'), #use builtin freetype
('openssl','builtin'), #use builtin openssl
- ('theora','no'),
]
def build_res_file( target, source, env ):
diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp
index 1fb8e6dbd0..49ce1d3b9a 100644
--- a/platform/windows/os_windows.cpp
+++ b/platform/windows/os_windows.cpp
@@ -148,7 +148,7 @@ const char * OS_Windows::get_video_driver_name(int p_driver) const {
OS::VideoMode OS_Windows::get_default_video_mode() const {
- return VideoMode(800,600,false);
+ return VideoMode(1280,720,false);
}
int OS_Windows::get_audio_driver_count() const {
diff --git a/platform/windows/stream_peer_winsock.cpp b/platform/windows/stream_peer_winsock.cpp
index e8245c92e5..5bc3e34107 100644
--- a/platform/windows/stream_peer_winsock.cpp
+++ b/platform/windows/stream_peer_winsock.cpp
@@ -342,6 +342,14 @@ void StreamPeerWinsock::set_nodelay(bool p_enabled) {
setsockopt(sockfd, IPPROTO_TCP, TCP_NODELAY, (char*)&flag, sizeof(int));
}
+int StreamPeerWinsock::get_available_bytes() const {
+
+ unsigned long len;
+ int ret = ioctlsocket(sockfd,FIONREAD,&len);
+ ERR_FAIL_COND_V(ret==-1,0)
+ return len;
+
+}
IP_Address StreamPeerWinsock::get_connected_host() const {
diff --git a/platform/windows/stream_peer_winsock.h b/platform/windows/stream_peer_winsock.h
index 373b502d2c..5dd836aa0c 100644
--- a/platform/windows/stream_peer_winsock.h
+++ b/platform/windows/stream_peer_winsock.h
@@ -66,6 +66,8 @@ public:
virtual Error get_data(uint8_t* p_buffer, int p_bytes);
virtual Error get_partial_data(uint8_t* p_buffer, int p_bytes,int &r_received);
+ virtual int get_available_bytes() const;
+
void set_socket(int p_sockfd, IP_Address p_host, int p_port);
virtual IP_Address get_connected_host() const;
diff --git a/platform/x11/detect.py b/platform/x11/detect.py
index d996587864..0f6e640b03 100644
--- a/platform/x11/detect.py
+++ b/platform/x11/detect.py
@@ -1,6 +1,7 @@
import os
import sys
+import platform
def is_active():
@@ -147,7 +148,9 @@ def configure(env):
env.Append(CPPFLAGS=['-DOPENGL_ENABLED','-DGLEW_ENABLED'])
- env.Append(CPPFLAGS=["-DALSA_ENABLED"])
+ if platform.system() == 'Linux':
+ env.Append(CPPFLAGS=["-DALSA_ENABLED"])
+ env.Append(LIBS=['asound'])
if (env["pulseaudio"]=="yes"):
if not os.system("pkg-config --exists libpulse-simple"):
@@ -158,7 +161,7 @@ def configure(env):
print("PulseAudio development libraries not found, disabling driver")
env.Append(CPPFLAGS=['-DX11_ENABLED','-DUNIX_ENABLED','-DGLES2_ENABLED','-DGLES_OVER_GL'])
- env.Append(LIBS=['GL', 'GLU', 'pthread','asound','z']) #TODO detect linux/BSD!
+ env.Append(LIBS=['GL', 'GLU', 'pthread', 'z'])
#env.Append(CPPFLAGS=['-DMPC_FIXED_POINT'])
#host compiler is default..
diff --git a/platform/x11/os_x11.cpp b/platform/x11/os_x11.cpp
index 74ebad748a..13dc1069a3 100644
--- a/platform/x11/os_x11.cpp
+++ b/platform/x11/os_x11.cpp
@@ -32,6 +32,7 @@
#include "key_mapping_x11.h"
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include "print_string.h"
#include "servers/physics/physics_server_sw.h"
#include "errno.h"
@@ -81,7 +82,7 @@ const char * OS_X11::get_video_driver_name(int p_driver) const {
}
OS::VideoMode OS_X11::get_default_video_mode() const {
- return OS::VideoMode(800,600,false);
+ return OS::VideoMode(1280,720,false);
}
int OS_X11::get_audio_driver_count() const {
@@ -1672,7 +1673,7 @@ void OS_X11::close_joystick(int p_id) {
};
void OS_X11::probe_joystick(int p_id) {
- #ifndef __FreeBSD__
+ #if !defined(__FreeBSD__) && !defined(__OpenBSD__)
if (p_id == -1) {
@@ -1727,7 +1728,7 @@ void OS_X11::move_window_to_foreground() {
}
void OS_X11::process_joysticks() {
- #ifndef __FreeBSD__
+ #if !defined(__FreeBSD__) && !defined(__OpenBSD__)
int bytes;
js_event events[32];
InputEvent ievent;
diff --git a/platform/x11/platform_config.h b/platform/x11/platform_config.h
index c01d0aa380..1556b56058 100644
--- a/platform/x11/platform_config.h
+++ b/platform/x11/platform_config.h
@@ -29,7 +29,7 @@
#ifdef __linux__
#include <alloca.h>
#endif
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__OpenBSD__)
#include <stdlib.h>
#endif
diff --git a/scene/2d/camera_2d.cpp b/scene/2d/camera_2d.cpp
index 52ae5d2954..b7b99f935a 100644
--- a/scene/2d/camera_2d.cpp
+++ b/scene/2d/camera_2d.cpp
@@ -118,10 +118,10 @@ Matrix32 Camera2D::get_camera_transform() {
- if (smoothing>0.0) {
+ if (smoothing_enabled) {
float c = smoothing*get_fixed_process_delta_time();
- smoothed_camera_pos = ((new_camera_pos-smoothed_camera_pos)*c)+smoothed_camera_pos;
+ smoothed_camera_pos = ((camera_pos-smoothed_camera_pos)*c)+smoothed_camera_pos;
ret_camera_pos=smoothed_camera_pos;
// camera_pos=camera_pos*(1.0-smoothing)+new_camera_pos*smoothing;
} else {
@@ -440,6 +440,27 @@ float Camera2D::get_h_offset() const{
}
+void Camera2D::_set_old_smoothing(float p_val) {
+ //compatibility
+ if (p_val>0) {
+ smoothing_enabled=true;
+ set_follow_smoothing(p_val);
+ }
+
+}
+
+void Camera2D::set_enable_follow_smoothing(bool p_enabled) {
+
+ smoothing_enabled=p_enabled;
+
+}
+
+bool Camera2D::is_follow_smoothing_enabled() const {
+
+ return smoothing_enabled;
+}
+
+
void Camera2D::_bind_methods() {
ObjectTypeDB::bind_method(_MD("set_offset","offset"),&Camera2D::set_offset);
@@ -489,14 +510,17 @@ void Camera2D::_bind_methods() {
ObjectTypeDB::bind_method(_MD("set_follow_smoothing","follow_smoothing"),&Camera2D::set_follow_smoothing);
ObjectTypeDB::bind_method(_MD("get_follow_smoothing"),&Camera2D::get_follow_smoothing);
+ ObjectTypeDB::bind_method(_MD("set_enable_follow_smoothing","follow_smoothing"),&Camera2D::set_enable_follow_smoothing);
+ ObjectTypeDB::bind_method(_MD("is_follow_smoothing_enabled"),&Camera2D::is_follow_smoothing_enabled);
+
ObjectTypeDB::bind_method(_MD("force_update_scroll"),&Camera2D::force_update_scroll);
+ ObjectTypeDB::bind_method(_MD("_set_old_smoothing","follow_smoothing"),&Camera2D::_set_old_smoothing);
ADD_PROPERTYNZ( PropertyInfo(Variant::VECTOR2,"offset"),_SCS("set_offset"),_SCS("get_offset"));
ADD_PROPERTY( PropertyInfo(Variant::INT,"anchor_mode",PROPERTY_HINT_ENUM,"Fixed TopLeft,Drag Center"),_SCS("set_anchor_mode"),_SCS("get_anchor_mode"));
ADD_PROPERTY( PropertyInfo(Variant::BOOL,"rotating"),_SCS("set_rotating"),_SCS("is_rotating"));
ADD_PROPERTY( PropertyInfo(Variant::BOOL,"current"),_SCS("_set_current"),_SCS("is_current"));
- ADD_PROPERTY( PropertyInfo(Variant::REAL,"smoothing"),_SCS("set_follow_smoothing"),_SCS("get_follow_smoothing") );
ADD_PROPERTY( PropertyInfo(Variant::VECTOR2,"zoom"),_SCS("set_zoom"),_SCS("get_zoom") );
ADD_PROPERTYI( PropertyInfo(Variant::INT,"limit/left"),_SCS("set_limit"),_SCS("get_limit"),MARGIN_LEFT);
@@ -507,6 +531,12 @@ void Camera2D::_bind_methods() {
ADD_PROPERTY( PropertyInfo(Variant::BOOL,"drag_margin/h_enabled"),_SCS("set_h_drag_enabled"),_SCS("is_h_drag_enabled") );
ADD_PROPERTY( PropertyInfo(Variant::BOOL,"drag_margin/v_enabled"),_SCS("set_v_drag_enabled"),_SCS("is_v_drag_enabled") );
+ ADD_PROPERTY( PropertyInfo(Variant::BOOL,"smoothing/enable"),_SCS("set_enable_follow_smoothing"),_SCS("is_follow_smoothing_enabled") );
+ ADD_PROPERTY( PropertyInfo(Variant::REAL,"smoothing/speed"),_SCS("set_follow_smoothing"),_SCS("get_follow_smoothing") );
+
+ //compatibility
+ ADD_PROPERTY( PropertyInfo(Variant::REAL,"smoothing",PROPERTY_HINT_NONE,"",0),_SCS("_set_old_smoothing"),_SCS("get_follow_smoothing") );
+
ADD_PROPERTYI( PropertyInfo(Variant::REAL,"drag_margin/left",PROPERTY_HINT_RANGE,"0,1,0.01"),_SCS("set_drag_margin"),_SCS("get_drag_margin"),MARGIN_LEFT);
ADD_PROPERTYI( PropertyInfo(Variant::REAL,"drag_margin/top",PROPERTY_HINT_RANGE,"0,1,0.01"),_SCS("set_drag_margin"),_SCS("get_drag_margin"),MARGIN_TOP);
ADD_PROPERTYI( PropertyInfo(Variant::REAL,"drag_margin/right",PROPERTY_HINT_RANGE,"0,1,0.01"),_SCS("set_drag_margin"),_SCS("get_drag_margin"),MARGIN_RIGHT);
@@ -535,8 +565,9 @@ Camera2D::Camera2D() {
drag_margin[MARGIN_BOTTOM]=0.2;
camera_pos=Vector2();
first=true;
+ smoothing_enabled=false;
- smoothing=0.0;
+ smoothing=5.0;
zoom = Vector2(1, 1);
h_drag_enabled=true;
diff --git a/scene/2d/camera_2d.h b/scene/2d/camera_2d.h
index 79d84f48d0..dcf98d4295 100644
--- a/scene/2d/camera_2d.h
+++ b/scene/2d/camera_2d.h
@@ -59,6 +59,7 @@ protected:
bool rotating;
bool current;
float smoothing;
+ bool smoothing_enabled;
int limit[4];
float drag_margin[4];
@@ -73,6 +74,8 @@ protected:
void _make_current(Object *p_which);
void _set_current(bool p_current);
+
+ void _set_old_smoothing(float p_enable);
protected:
virtual Matrix32 get_camera_transform();
@@ -108,6 +111,9 @@ public:
void set_h_offset(float p_offset);
float get_h_offset() const;
+ void set_enable_follow_smoothing(bool p_enabled);
+ bool is_follow_smoothing_enabled() const;
+
void set_follow_smoothing(float p_speed);
float get_follow_smoothing() const;
diff --git a/scene/2d/canvas_item.cpp b/scene/2d/canvas_item.cpp
index 357aaa225b..275e4d0304 100644
--- a/scene/2d/canvas_item.cpp
+++ b/scene/2d/canvas_item.cpp
@@ -309,6 +309,15 @@ void CanvasItem::hide() {
_change_notify("visibility/visible");
}
+void CanvasItem::set_hidden(bool p_hidden) {
+
+ if (hidden == p_hidden) {
+ return;
+ }
+
+ _set_visible_(!p_hidden);
+}
+
Variant CanvasItem::edit_get_state() const {
@@ -700,7 +709,7 @@ void CanvasItem::draw_circle(const Point2& p_pos, float p_radius, const Color& p
}
-void CanvasItem::draw_texture(const Ref<Texture>& p_texture,const Point2& p_pos) {
+void CanvasItem::draw_texture(const Ref<Texture>& p_texture,const Point2& p_pos,const Color& p_modulate) {
if (!drawing) {
ERR_EXPLAIN("Drawing is only allowed inside NOTIFICATION_DRAW, _draw() function or 'draw' signal.");
@@ -709,7 +718,7 @@ void CanvasItem::draw_texture(const Ref<Texture>& p_texture,const Point2& p_pos)
ERR_FAIL_COND(p_texture.is_null());
- p_texture->draw(canvas_item,p_pos);
+ p_texture->draw(canvas_item,p_pos,p_modulate);
}
void CanvasItem::draw_texture_rect(const Ref<Texture>& p_texture,const Rect2& p_rect, bool p_tile,const Color& p_modulate, bool p_transpose) {
@@ -1043,6 +1052,7 @@ void CanvasItem::_bind_methods() {
ObjectTypeDB::bind_method(_MD("is_hidden"),&CanvasItem::is_hidden);
ObjectTypeDB::bind_method(_MD("show"),&CanvasItem::show);
ObjectTypeDB::bind_method(_MD("hide"),&CanvasItem::hide);
+ ObjectTypeDB::bind_method(_MD("set_hidden","hidden"),&CanvasItem::set_hidden);
ObjectTypeDB::bind_method(_MD("update"),&CanvasItem::update);
@@ -1146,6 +1156,8 @@ Matrix32 CanvasItem::get_canvas_transform() const {
if (canvas_layer)
return canvas_layer->get_transform();
+ else if (get_parent()->cast_to<CanvasItem>())
+ return get_parent()->cast_to<CanvasItem>()->get_canvas_transform();
else
return get_viewport()->get_canvas_transform();
diff --git a/scene/2d/canvas_item.h b/scene/2d/canvas_item.h
index 4885256c64..4c0386b953 100644
--- a/scene/2d/canvas_item.h
+++ b/scene/2d/canvas_item.h
@@ -190,6 +190,7 @@ public:
bool is_hidden() const;
void show();
void hide();
+ void set_hidden(bool p_hidden);
void update();
@@ -210,7 +211,7 @@ public:
void draw_line(const Point2& p_from, const Point2& p_to,const Color& p_color,float p_width=1.0);
void draw_rect(const Rect2& p_rect, const Color& p_color);
void draw_circle(const Point2& p_pos, float p_radius, const Color& p_color);
- void draw_texture(const Ref<Texture>& p_texture,const Point2& p_pos);
+ void draw_texture(const Ref<Texture>& p_texture, const Point2& p_pos, const Color &p_modulate=Color(1,1,1,1));
void draw_texture_rect(const Ref<Texture>& p_texture, const Rect2& p_rect, bool p_tile=false,const Color& p_modulate=Color(1,1,1), bool p_transpose=false);
void draw_texture_rect_region(const Ref<Texture>& p_texture,const Rect2& p_rect, const Rect2& p_src_rect,const Color& p_modulate=Color(1,1,1), bool p_transpose=false);
void draw_style_box(const Ref<StyleBox>& p_style_box,const Rect2& p_rect);
diff --git a/scene/2d/collision_polygon_2d.cpp b/scene/2d/collision_polygon_2d.cpp
index 1479cb7881..616d3da7c9 100644
--- a/scene/2d/collision_polygon_2d.cpp
+++ b/scene/2d/collision_polygon_2d.cpp
@@ -113,6 +113,12 @@ void CollisionPolygon2D::_notification(int p_what) {
case NOTIFICATION_ENTER_TREE: {
unparenting=false;
can_update_body=get_tree()->is_editor_hint();
+ if (!get_tree()->is_editor_hint()) {
+ //display above all else
+ set_z_as_relative(false);
+ set_z(VS::CANVAS_ITEM_Z_MAX-1);
+ }
+
} break;
case NOTIFICATION_EXIT_TREE: {
can_update_body=false;
diff --git a/scene/2d/collision_shape_2d.cpp b/scene/2d/collision_shape_2d.cpp
index 85751fc735..56f68ae634 100644
--- a/scene/2d/collision_shape_2d.cpp
+++ b/scene/2d/collision_shape_2d.cpp
@@ -77,6 +77,11 @@ void CollisionShape2D::_notification(int p_what) {
case NOTIFICATION_ENTER_TREE: {
unparenting=false;
can_update_body=get_tree()->is_editor_hint();
+ if (!get_tree()->is_editor_hint()) {
+ //display above all else
+ set_z_as_relative(false);
+ set_z(VS::CANVAS_ITEM_Z_MAX-1);
+ }
} break;
case NOTIFICATION_LOCAL_TRANSFORM_CHANGED: {
@@ -120,6 +125,7 @@ void CollisionShape2D::_notification(int p_what) {
rect=Rect2();
+
Color draw_col=get_tree()->get_debug_collisions_color();
shape->draw(get_canvas_item(),draw_col);
diff --git a/scene/2d/joints_2d.cpp b/scene/2d/joints_2d.cpp
index 1df936535f..adb2904a0a 100644
--- a/scene/2d/joints_2d.cpp
+++ b/scene/2d/joints_2d.cpp
@@ -111,6 +111,19 @@ real_t Joint2D::get_bias() const{
return bias;
}
+void Joint2D::set_exclude_nodes_from_collision(bool p_enable) {
+
+ if (exclude_from_collision==p_enable)
+ return;
+ exclude_from_collision=p_enable;
+ _update_joint();
+}
+
+bool Joint2D::get_exclude_nodes_from_collision() const{
+
+ return exclude_from_collision;
+}
+
void Joint2D::_bind_methods() {
@@ -124,9 +137,14 @@ void Joint2D::_bind_methods() {
ObjectTypeDB::bind_method( _MD("set_bias","bias"), &Joint2D::set_bias );
ObjectTypeDB::bind_method( _MD("get_bias"), &Joint2D::get_bias );
+ ObjectTypeDB::bind_method( _MD("set_exclude_nodes_from_collision","enable"), &Joint2D::set_exclude_nodes_from_collision );
+ ObjectTypeDB::bind_method( _MD("get_exclude_nodes_from_collision"), &Joint2D::get_exclude_nodes_from_collision );
+
ADD_PROPERTY( PropertyInfo( Variant::NODE_PATH, "node_a"), _SCS("set_node_a"),_SCS("get_node_a") );
ADD_PROPERTY( PropertyInfo( Variant::NODE_PATH, "node_b"), _SCS("set_node_b"),_SCS("get_node_b") );
ADD_PROPERTY( PropertyInfo( Variant::REAL, "bias/bias",PROPERTY_HINT_RANGE,"0,0.9,0.001"), _SCS("set_bias"),_SCS("get_bias") );
+ ADD_PROPERTY( PropertyInfo( Variant::BOOL, "collision/exclude_nodes"), _SCS("set_exclude_nodes_from_collision"),_SCS("get_exclude_nodes_from_collision") );
+
}
@@ -135,6 +153,7 @@ void Joint2D::_bind_methods() {
Joint2D::Joint2D() {
bias=0;
+ exclude_from_collision=true;
}
///////////////////////////////////////////////////////////////////////////////
@@ -173,7 +192,10 @@ RID PinJoint2D::_configure_joint() {
SWAP(body_a,body_b);
} else if (body_b) {
//add a collision exception between both
- Physics2DServer::get_singleton()->body_add_collision_exception(body_a->get_rid(),body_b->get_rid());
+ if (get_exclude_nodes_from_collision())
+ Physics2DServer::get_singleton()->body_add_collision_exception(body_a->get_rid(),body_b->get_rid());
+ else
+ Physics2DServer::get_singleton()->body_remove_collision_exception(body_a->get_rid(),body_b->get_rid());
}
RID pj = Physics2DServer::get_singleton()->pin_joint_create(get_global_transform().get_origin(),body_a->get_rid(),body_b?body_b->get_rid():RID());
Physics2DServer::get_singleton()->pin_joint_set_param(pj, Physics2DServer::PIN_JOINT_SOFTNESS, softness);
@@ -245,7 +267,11 @@ RID GrooveJoint2D::_configure_joint(){
if (!body_a || !body_b)
return RID();
- Physics2DServer::get_singleton()->body_add_collision_exception(body_a->get_rid(),body_b->get_rid());
+
+ if (get_exclude_nodes_from_collision())
+ Physics2DServer::get_singleton()->body_add_collision_exception(body_a->get_rid(),body_b->get_rid());
+ else
+ Physics2DServer::get_singleton()->body_remove_collision_exception(body_a->get_rid(),body_b->get_rid());
Matrix32 gt = get_global_transform();
Vector2 groove_A1 = gt.get_origin();
@@ -338,7 +364,10 @@ RID DampedSpringJoint2D::_configure_joint(){
if (!body_a || !body_b)
return RID();
- Physics2DServer::get_singleton()->body_add_collision_exception(body_a->get_rid(),body_b->get_rid());
+ if (get_exclude_nodes_from_collision())
+ Physics2DServer::get_singleton()->body_add_collision_exception(body_a->get_rid(),body_b->get_rid());
+ else
+ Physics2DServer::get_singleton()->body_remove_collision_exception(body_a->get_rid(),body_b->get_rid());
Matrix32 gt = get_global_transform();
Vector2 anchor_A = gt.get_origin();
diff --git a/scene/2d/joints_2d.h b/scene/2d/joints_2d.h
index 908e3a158e..d468f3a6b5 100644
--- a/scene/2d/joints_2d.h
+++ b/scene/2d/joints_2d.h
@@ -42,6 +42,8 @@ class Joint2D : public Node2D {
NodePath b;
real_t bias;
+ bool exclude_from_collision;
+
protected:
@@ -62,6 +64,9 @@ public:
void set_bias(real_t p_bias);
real_t get_bias() const;
+ void set_exclude_nodes_from_collision(bool p_enable);
+ bool get_exclude_nodes_from_collision() const;
+
RID get_joint() const { return joint; }
Joint2D();
diff --git a/scene/2d/light_2d.cpp b/scene/2d/light_2d.cpp
index 852a6fb46b..a2112c7d37 100644
--- a/scene/2d/light_2d.cpp
+++ b/scene/2d/light_2d.cpp
@@ -333,7 +333,7 @@ void Light2D::_bind_methods() {
ADD_PROPERTY( PropertyInfo(Variant::REAL,"scale",PROPERTY_HINT_RANGE,"0.01,4096,0.01"),_SCS("set_texture_scale"),_SCS("get_texture_scale"));
ADD_PROPERTY( PropertyInfo(Variant::COLOR,"color"),_SCS("set_color"),_SCS("get_color"));
ADD_PROPERTY( PropertyInfo(Variant::REAL,"energy"),_SCS("set_energy"),_SCS("get_energy"));
- ADD_PROPERTY( PropertyInfo(Variant::INT,"mode",PROPERTY_HINT_ENUM,"Add,Sub,Mix"),_SCS("set_mode"),_SCS("get_mode"));
+ ADD_PROPERTY( PropertyInfo(Variant::INT,"mode",PROPERTY_HINT_ENUM,"Add,Sub,Mix,Mask"),_SCS("set_mode"),_SCS("get_mode"));
ADD_PROPERTY( PropertyInfo(Variant::REAL,"range/height"),_SCS("set_height"),_SCS("get_height"));
ADD_PROPERTY( PropertyInfo(Variant::INT,"range/z_min",PROPERTY_HINT_RANGE,itos(VS::CANVAS_ITEM_Z_MIN)+","+itos(VS::CANVAS_ITEM_Z_MAX)+",1"),_SCS("set_z_range_min"),_SCS("get_z_range_min"));
ADD_PROPERTY( PropertyInfo(Variant::INT,"range/z_max",PROPERTY_HINT_RANGE,itos(VS::CANVAS_ITEM_Z_MIN)+","+itos(VS::CANVAS_ITEM_Z_MAX)+",1"),_SCS("set_z_range_max"),_SCS("get_z_range_max"));
@@ -349,6 +349,7 @@ void Light2D::_bind_methods() {
BIND_CONSTANT( MODE_ADD );
BIND_CONSTANT( MODE_SUB );
BIND_CONSTANT( MODE_MIX );
+ BIND_CONSTANT( MODE_MASK );
}
diff --git a/scene/2d/light_2d.h b/scene/2d/light_2d.h
index bf61868bac..0828d9ac33 100644
--- a/scene/2d/light_2d.h
+++ b/scene/2d/light_2d.h
@@ -11,6 +11,7 @@ public:
MODE_ADD,
MODE_SUB,
MODE_MIX,
+ MODE_MASK,
};
private:
diff --git a/scene/2d/tile_map.cpp b/scene/2d/tile_map.cpp
index 167b637bdc..1d48a9c8a0 100644
--- a/scene/2d/tile_map.cpp
+++ b/scene/2d/tile_map.cpp
@@ -32,6 +32,8 @@
#include "method_bind_ext.inc"
#include "os/os.h"
+
+
int TileMap::_get_quadrant_size() const {
if (y_sort_mode)
@@ -299,6 +301,7 @@ void TileMap::_update_dirty_quadrants() {
q.occluder_instances.clear();
Ref<CanvasItemMaterial> prev_material;
RID prev_canvas_item;
+ RID prev_debug_canvas_item;
for(int i=0;i<q.cells.size();i++) {
@@ -319,6 +322,7 @@ void TileMap::_update_dirty_quadrants() {
Ref<CanvasItemMaterial> mat = tile_set->tile_get_material(c.id);
RID canvas_item;
+ RID debug_canvas_item;
if (prev_canvas_item==RID() || prev_material!=mat) {
@@ -331,11 +335,24 @@ void TileMap::_update_dirty_quadrants() {
vs->canvas_item_set_transform( canvas_item, xform );
q.canvas_items.push_back(canvas_item);
+ if (debug_shapes) {
+
+ debug_canvas_item=vs->canvas_item_create();
+ vs->canvas_item_set_parent( debug_canvas_item, canvas_item );
+ vs->canvas_item_set_z_as_relative_to_parent(debug_canvas_item,false);
+ vs->canvas_item_set_z(debug_canvas_item,VS::CANVAS_ITEM_Z_MAX-1);
+ q.canvas_items.push_back(debug_canvas_item);
+ prev_debug_canvas_item=debug_canvas_item;
+ }
+
prev_canvas_item=canvas_item;
prev_material=mat;
} else {
canvas_item=prev_canvas_item;
+ if (debug_shapes) {
+ debug_canvas_item=prev_debug_canvas_item;
+ }
}
@@ -407,9 +424,8 @@ void TileMap::_update_dirty_quadrants() {
_fix_cell_transform(xform,c,shape_ofs+center_ofs,s);
- if (debug_shapes) {
- vs->canvas_item_add_set_transform(canvas_item,xform);
- shape->draw(canvas_item,debug_collision_color);
+ if (debug_canvas_item) {
+ shape->draw(debug_canvas_item,debug_collision_color);
}
ps->body_add_shape(q.body,shape->get_rid(),xform);
@@ -417,9 +433,6 @@ void TileMap::_update_dirty_quadrants() {
}
}
- if (debug_shapes) {
- vs->canvas_item_add_set_transform(canvas_item,Matrix32());
- }
if (navigation) {
Ref<NavigationPolygon> navpoly = tile_set->tile_get_navigation_polygon(c.id);
@@ -452,6 +465,7 @@ void TileMap::_update_dirty_quadrants() {
VS::get_singleton()->canvas_light_occluder_set_transform(orid,get_global_transform() * xform);
VS::get_singleton()->canvas_light_occluder_set_polygon(orid,occluder->get_rid());
VS::get_singleton()->canvas_light_occluder_attach_to_canvas(orid,get_canvas());
+ VS::get_singleton()->canvas_light_occluder_set_light_mask(orid,occluder_light_mask);
Quadrant::Occluder oc;
oc.xform=xform;
oc.id=orid;
@@ -1075,6 +1089,24 @@ Array TileMap::get_used_cells() const {
return a;
}
+void TileMap::set_occluder_light_mask(int p_mask) {
+
+ occluder_light_mask=p_mask;
+ for (Map<PosKey,Quadrant>::Element *E=quadrant_map.front();E;E=E->next()) {
+
+ for (Map<PosKey,Quadrant::Occluder>::Element *F=E->get().occluder_instances.front();F;F=F->next()) {
+ VisualServer::get_singleton()->canvas_light_occluder_set_light_mask(F->get().id,occluder_light_mask);
+ }
+ }
+}
+
+int TileMap::get_occluder_light_mask() const{
+
+ return occluder_light_mask;
+}
+
+
+
void TileMap::_bind_methods() {
@@ -1126,6 +1158,9 @@ void TileMap::_bind_methods() {
ObjectTypeDB::bind_method(_MD("set_collision_bounce","value"),&TileMap::set_collision_bounce);
ObjectTypeDB::bind_method(_MD("get_collision_bounce"),&TileMap::get_collision_bounce);
+ ObjectTypeDB::bind_method(_MD("set_occluder_light_mask","mask"),&TileMap::set_occluder_light_mask);
+ ObjectTypeDB::bind_method(_MD("get_occluder_light_mask"),&TileMap::get_occluder_light_mask);
+
ObjectTypeDB::bind_method(_MD("set_cell","x","y","tile","flip_x","flip_y","transpose"),&TileMap::set_cell,DEFVAL(false),DEFVAL(false),DEFVAL(false));
ObjectTypeDB::bind_method(_MD("set_cellv","pos","tile","flip_x","flip_y","transpose"),&TileMap::set_cellv,DEFVAL(false),DEFVAL(false),DEFVAL(false));
ObjectTypeDB::bind_method(_MD("get_cell","x","y"),&TileMap::get_cell);
@@ -1160,6 +1195,7 @@ void TileMap::_bind_methods() {
ADD_PROPERTY( PropertyInfo(Variant::REAL,"collision/bounce",PROPERTY_HINT_RANGE,"0,1,0.01"),_SCS("set_collision_bounce"),_SCS("get_collision_bounce"));
ADD_PROPERTY( PropertyInfo(Variant::INT,"collision/layers",PROPERTY_HINT_ALL_FLAGS),_SCS("set_collision_layer"),_SCS("get_collision_layer"));
ADD_PROPERTY( PropertyInfo(Variant::INT,"collision/mask",PROPERTY_HINT_ALL_FLAGS),_SCS("set_collision_mask"),_SCS("get_collision_mask"));
+ ADD_PROPERTY( PropertyInfo(Variant::INT,"occluder/light_mask",PROPERTY_HINT_ALL_FLAGS),_SCS("set_occluder_light_mask"),_SCS("get_occluder_light_mask"));
ADD_PROPERTY( PropertyInfo(Variant::OBJECT,"tile_data",PROPERTY_HINT_NONE,"",PROPERTY_USAGE_NOEDITOR),_SCS("_set_tile_data"),_SCS("_get_tile_data"));
@@ -1197,6 +1233,7 @@ TileMap::TileMap() {
use_kinematic=false;
navigation=NULL;
y_sort_mode=false;
+ occluder_light_mask=1;
fp_adjust=0.00001;
tile_origin=TILE_ORIGIN_TOP_LEFT;
diff --git a/scene/2d/tile_map.h b/scene/2d/tile_map.h
index 60534cce15..4676d1ef7a 100644
--- a/scene/2d/tile_map.h
+++ b/scene/2d/tile_map.h
@@ -150,6 +150,8 @@ private:
TileOrigin tile_origin;
+ int occluder_light_mask;
+
void _fix_cell_transform(Matrix32& xform, const Cell& p_cell, const Vector2 &p_offset, const Size2 &p_sc);
Map<PosKey,Quadrant>::Element *_create_quadrant(const PosKey& p_qk);
@@ -187,6 +189,7 @@ public:
INVALID_CELL=-1
};
+
void set_tileset(const Ref<TileSet>& p_tileset);
Ref<TileSet> get_tileset() const;
@@ -247,6 +250,9 @@ public:
void set_y_sort_mode(bool p_enable);
bool is_y_sort_mode_enabled() const;
+ void set_occluder_light_mask(int p_mask);
+ int get_occluder_light_mask() const;
+
void clear();
TileMap();
diff --git a/scene/3d/physics_body.cpp b/scene/3d/physics_body.cpp
index d61859a3d0..de50484a1e 100644
--- a/scene/3d/physics_body.cpp
+++ b/scene/3d/physics_body.cpp
@@ -1073,7 +1073,7 @@ Vector3 KinematicBody::move_to(const Vector3& p_position) {
return move(p_position-get_global_transform().origin);
}
-bool KinematicBody::can_move_to(const Vector3& p_position, bool p_discrete) {
+bool KinematicBody::can_teleport_to(const Vector3& p_position) {
ERR_FAIL_COND_V(!is_inside_tree(),false);
PhysicsDirectSpaceState *dss = PhysicsServer::get_singleton()->space_get_direct_state(get_world()->get_space());
@@ -1089,25 +1089,18 @@ bool KinematicBody::can_move_to(const Vector3& p_position, bool p_discrete) {
if (collide_character)
mask|=PhysicsDirectSpaceState::TYPE_MASK_CHARACTER_BODY;
- Vector3 motion = p_position-get_global_transform().origin;
Transform xform=get_global_transform();
-
- if (true || p_discrete) {
-
- xform.origin+=motion;
- motion=Vector3();
- }
+ xform.origin=p_position;
Set<RID> exclude;
exclude.insert(get_rid());
- //fill exclude list..
for(int i=0;i<get_shape_count();i++) {
if (is_shape_set_as_trigger(i))
continue;
- bool col = dss->intersect_shape(get_shape(i)->get_rid(), xform * get_shape_transform(i),0,NULL,0,exclude,get_layer_mask(),mask);
+ bool col = dss->intersect_shape(get_shape(i)->get_rid(), xform * get_shape_transform(i),0,NULL,1,exclude,get_layer_mask(),mask);
if (col)
return false;
}
@@ -1205,7 +1198,7 @@ void KinematicBody::_bind_methods() {
ObjectTypeDB::bind_method(_MD("move","rel_vec"),&KinematicBody::move);
ObjectTypeDB::bind_method(_MD("move_to","position"),&KinematicBody::move_to);
- ObjectTypeDB::bind_method(_MD("can_move_to","position"),&KinematicBody::can_move_to);
+ ObjectTypeDB::bind_method(_MD("can_teleport_to","position"),&KinematicBody::can_teleport_to);
ObjectTypeDB::bind_method(_MD("is_colliding"),&KinematicBody::is_colliding);
diff --git a/scene/3d/physics_body.h b/scene/3d/physics_body.h
index 66490ba925..0e63b77118 100644
--- a/scene/3d/physics_body.h
+++ b/scene/3d/physics_body.h
@@ -304,7 +304,7 @@ public:
Vector3 move(const Vector3& p_motion);
Vector3 move_to(const Vector3& p_position);
- bool can_move_to(const Vector3& p_position,bool p_discrete=false);
+ bool can_teleport_to(const Vector3& p_position);
bool is_colliding() const;
Vector3 get_collision_pos() const;
Vector3 get_collision_normal() const;
diff --git a/scene/3d/physics_joint.cpp b/scene/3d/physics_joint.cpp
index 0cc72b28e5..f4facb7c3f 100644
--- a/scene/3d/physics_joint.cpp
+++ b/scene/3d/physics_joint.cpp
@@ -34,8 +34,15 @@ void Joint::_update_joint(bool p_only_free) {
if (joint.is_valid()) {
- if (ba.is_valid() && bb.is_valid())
- PhysicsServer::get_singleton()->body_remove_collision_exception(ba,bb);
+ if (ba.is_valid() && bb.is_valid()) {
+
+ if (exclude_from_collision)
+ PhysicsServer::get_singleton()->body_add_collision_exception(ba,bb);
+ else
+ PhysicsServer::get_singleton()->body_remove_collision_exception(ba,bb);
+
+ }
+
PhysicsServer::get_singleton()->free(joint);
joint=RID();
ba=RID();
@@ -144,6 +151,19 @@ void Joint::_notification(int p_what) {
}
+void Joint::set_exclude_nodes_from_collision(bool p_enable) {
+
+ if (exclude_from_collision==p_enable)
+ return;
+ exclude_from_collision=p_enable;
+ _update_joint();
+}
+
+bool Joint::get_exclude_nodes_from_collision() const{
+
+ return exclude_from_collision;
+}
+
void Joint::_bind_methods() {
@@ -156,10 +176,16 @@ void Joint::_bind_methods() {
ObjectTypeDB::bind_method( _MD("set_solver_priority","priority"), &Joint::set_solver_priority );
ObjectTypeDB::bind_method( _MD("get_solver_priority"), &Joint::get_solver_priority );
+ ObjectTypeDB::bind_method( _MD("set_exclude_nodes_from_collision","enable"), &Joint::set_exclude_nodes_from_collision );
+ ObjectTypeDB::bind_method( _MD("get_exclude_nodes_from_collision"), &Joint::get_exclude_nodes_from_collision );
+
ADD_PROPERTY( PropertyInfo( Variant::NODE_PATH, "nodes/node_a"), _SCS("set_node_a"),_SCS("get_node_a") );
ADD_PROPERTY( PropertyInfo( Variant::NODE_PATH, "nodes/node_b"), _SCS("set_node_b"),_SCS("get_node_b") );
ADD_PROPERTY( PropertyInfo( Variant::INT, "solver/priority",PROPERTY_HINT_RANGE,"1,8,1"), _SCS("set_solver_priority"),_SCS("get_solver_priority") );
+ ADD_PROPERTY( PropertyInfo( Variant::BOOL, "collision/exclude_nodes"), _SCS("set_exclude_nodes_from_collision"),_SCS("get_exclude_nodes_from_collision") );
+
+
}
@@ -167,6 +193,7 @@ void Joint::_bind_methods() {
Joint::Joint() {
+ exclude_from_collision=true;
solver_priority=1;
}
diff --git a/scene/3d/physics_joint.h b/scene/3d/physics_joint.h
index a5f4ea4bdb..3f5a0e91a6 100644
--- a/scene/3d/physics_joint.h
+++ b/scene/3d/physics_joint.h
@@ -45,6 +45,7 @@ class Joint : public Spatial {
NodePath b;
int solver_priority;
+ bool exclude_from_collision;
protected:
@@ -67,6 +68,9 @@ public:
void set_solver_priority(int p_priority);
int get_solver_priority() const;
+ void set_exclude_nodes_from_collision(bool p_enable);
+ bool get_exclude_nodes_from_collision() const;
+
RID get_joint() const { return joint; }
Joint();
diff --git a/scene/3d/spatial.cpp b/scene/3d/spatial.cpp
index a65f68ed2c..7d48420a83 100644
--- a/scene/3d/spatial.cpp
+++ b/scene/3d/spatial.cpp
@@ -594,6 +594,15 @@ bool Spatial::is_hidden() const{
return !data.visible;
}
+void Spatial::set_hidden(bool p_hidden) {
+
+ if (data.visible != p_hidden) {
+ return;
+ }
+
+ _set_visible_(!p_hidden);
+}
+
void Spatial::_set_visible_(bool p_visible) {
if (p_visible)
@@ -742,6 +751,7 @@ void Spatial::_bind_methods() {
ObjectTypeDB::bind_method(_MD("hide"), &Spatial::hide);
ObjectTypeDB::bind_method(_MD("is_visible"), &Spatial::is_visible);
ObjectTypeDB::bind_method(_MD("is_hidden"), &Spatial::is_hidden);
+ ObjectTypeDB::bind_method(_MD("set_hidden","hidden"), &Spatial::set_hidden);
ObjectTypeDB::bind_method(_MD("_set_visible_"), &Spatial::_set_visible_);
ObjectTypeDB::bind_method(_MD("_is_visible_"), &Spatial::_is_visible_);
diff --git a/scene/3d/spatial.h b/scene/3d/spatial.h
index 7fa6099d7a..b1e3a82868 100644
--- a/scene/3d/spatial.h
+++ b/scene/3d/spatial.h
@@ -191,6 +191,7 @@ public:
void hide();
bool is_visible() const;
bool is_hidden() const;
+ void set_hidden(bool p_hidden);
#ifdef TOOLS_ENABLED
void set_import_transform(const Transform& p_transform) ;
diff --git a/scene/gui/container.cpp b/scene/gui/container.cpp
index 8cdf4dd039..2ff51d22c4 100644
--- a/scene/gui/container.cpp
+++ b/scene/gui/container.cpp
@@ -105,6 +105,8 @@ void Container::fit_child_in_rect(Control *p_child,const Rect2& p_rect) {
p_child->set_pos(r.pos);
p_child->set_size(r.size);
+ p_child->set_rotation(0);
+ p_child->set_scale(Vector2(1,1));
}
void Container::queue_sort() {
diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp
index bd6b8078ff..ec4886a6ac 100644
--- a/scene/gui/control.cpp
+++ b/scene/gui/control.cpp
@@ -580,8 +580,8 @@ void Control::_notification(int p_notification) {
} break;
case NOTIFICATION_DRAW: {
- Matrix32 xform;
- xform.set_origin(get_pos());
+ Matrix32 xform=Matrix32(data.rotation,get_pos());
+ xform.scale_basis(data.scale);
VisualServer::get_singleton()->canvas_item_set_transform(get_canvas_item(),xform);
VisualServer::get_singleton()->canvas_item_set_custom_rect( get_canvas_item(),true, Rect2(Point2(),get_size()));
//emit_signal(SceneStringNames::get_singleton()->draw);
@@ -1927,6 +1927,7 @@ void Control::set_size(const Size2& p_size) {
data.margin[3] = _s2a( y+h, data.anchor[3], ph );
_size_changed();
+
}
@@ -2412,9 +2413,9 @@ Control::CursorShape Control::get_cursor_shape(const Point2& p_pos) const {
Matrix32 Control::get_transform() const {
- Matrix32 xf;
- xf.set_origin(get_pos());
- return xf;
+ Matrix32 xform=Matrix32(data.rotation,get_pos());
+ xform.scale_basis(data.scale);
+ return xform;
}
String Control::_get_tooltip() const {
@@ -2728,6 +2729,39 @@ bool Control::is_text_field() const {
return false;
}
+
+void Control::_set_rotation_deg(float p_rot) {
+ set_rotation(Math::deg2rad(p_rot));
+}
+
+float Control::_get_rotation_deg() const {
+ return Math::rad2deg(get_rotation());
+}
+
+void Control::set_rotation(float p_rotation) {
+
+ data.rotation=p_rotation;
+ update();
+ _notify_transform();
+}
+
+float Control::get_rotation() const{
+
+ return data.rotation;
+}
+
+void Control::set_scale(const Vector2& p_scale){
+
+ data.scale=p_scale;
+ update();
+ _notify_transform();
+}
+Vector2 Control::get_scale() const{
+
+ return data.scale;
+}
+
+
void Control::_bind_methods() {
ObjectTypeDB::bind_method(_MD("_window_input_event"),&Control::_window_input_event);
@@ -2756,15 +2790,21 @@ void Control::_bind_methods() {
ObjectTypeDB::bind_method(_MD("set_size","size"),&Control::set_size);
ObjectTypeDB::bind_method(_MD("set_custom_minimum_size","size"),&Control::set_custom_minimum_size);
ObjectTypeDB::bind_method(_MD("set_global_pos","pos"),&Control::set_global_pos);
+ ObjectTypeDB::bind_method(_MD("set_rotation","rotation"),&Control::set_rotation);
+ ObjectTypeDB::bind_method(_MD("_set_rotation_deg","rotation"),&Control::_set_rotation_deg);
+ ObjectTypeDB::bind_method(_MD("set_scale","scale"),&Control::set_scale);
ObjectTypeDB::bind_method(_MD("get_margin","margin"),&Control::get_margin);
ObjectTypeDB::bind_method(_MD("get_begin"),&Control::get_begin);
ObjectTypeDB::bind_method(_MD("get_end"),&Control::get_end);
ObjectTypeDB::bind_method(_MD("get_pos"),&Control::get_pos);
ObjectTypeDB::bind_method(_MD("get_size"),&Control::get_size);
+ ObjectTypeDB::bind_method(_MD("get_rotation"),&Control::get_rotation);
+ ObjectTypeDB::bind_method(_MD("get_scale"),&Control::get_scale);
ObjectTypeDB::bind_method(_MD("get_custom_minimum_size"),&Control::get_custom_minimum_size);
ObjectTypeDB::bind_method(_MD("get_parent_area_size"),&Control::get_size);
ObjectTypeDB::bind_method(_MD("get_global_pos"),&Control::get_global_pos);
ObjectTypeDB::bind_method(_MD("get_rect"),&Control::get_rect);
+ ObjectTypeDB::bind_method(_MD("_get_rotation_deg"),&Control::_get_rotation_deg);
ObjectTypeDB::bind_method(_MD("get_global_rect"),&Control::get_global_rect);
ObjectTypeDB::bind_method(_MD("set_area_as_parent_rect","margin"),&Control::set_area_as_parent_rect,DEFVAL(0));
ObjectTypeDB::bind_method(_MD("show_modal","exclusive"),&Control::show_modal,DEFVAL(false));
@@ -2846,6 +2886,8 @@ void Control::_bind_methods() {
ADD_PROPERTYNZ( PropertyInfo(Variant::VECTOR2,"rect/pos", PROPERTY_HINT_NONE, "",PROPERTY_USAGE_EDITOR), _SCS("set_pos"),_SCS("get_pos") );
ADD_PROPERTYNZ( PropertyInfo(Variant::VECTOR2,"rect/size", PROPERTY_HINT_NONE, "",PROPERTY_USAGE_EDITOR), _SCS("set_size"),_SCS("get_size") );
ADD_PROPERTYNZ( PropertyInfo(Variant::VECTOR2,"rect/min_size"), _SCS("set_custom_minimum_size"),_SCS("get_custom_minimum_size") );
+ ADD_PROPERTYNZ( PropertyInfo(Variant::REAL,"rect/rotation",PROPERTY_HINT_RANGE,"-1080,1080,0.01"), _SCS("_set_rotation_deg"),_SCS("_get_rotation_deg") );
+ ADD_PROPERTYNO( PropertyInfo(Variant::VECTOR2,"rect/scale"), _SCS("set_scale"),_SCS("get_scale") );
ADD_PROPERTYNZ( PropertyInfo(Variant::STRING,"hint/tooltip", PROPERTY_HINT_MULTILINE_TEXT), _SCS("set_tooltip"),_SCS("_get_tooltip") );
ADD_PROPERTYINZ( PropertyInfo(Variant::NODE_PATH,"focus_neighbour/left" ), _SCS("set_focus_neighbour"),_SCS("get_focus_neighbour"),MARGIN_LEFT );
ADD_PROPERTYINZ( PropertyInfo(Variant::NODE_PATH,"focus_neighbour/top" ), _SCS("set_focus_neighbour"),_SCS("get_focus_neighbour"),MARGIN_TOP );
@@ -2928,6 +2970,8 @@ Control::Control() {
data.v_size_flags=SIZE_FILL;
data.expand=1;
data.pending_min_size_update=false;
+ data.rotation=0;
+ data.scale=Vector2(1,1);
for (int i=0;i<4;i++) {
diff --git a/scene/gui/control.h b/scene/gui/control.h
index 4311b299c8..09a4b48e6b 100644
--- a/scene/gui/control.h
+++ b/scene/gui/control.h
@@ -107,7 +107,10 @@ private:
float margin[4];
AnchorType anchor[4];
- FocusMode focus_mode;
+ FocusMode focus_mode;
+
+ float rotation;
+ Vector2 scale;
bool pending_resize;
@@ -211,6 +214,8 @@ private:
void _size_changed();
String _get_tooltip() const;
+ void _set_rotation_deg(float p_rot);
+ float _get_rotation_deg() const;
protected:
bool window_has_modal_stack() const;
@@ -299,6 +304,13 @@ public:
Rect2 get_rect() const;
Rect2 get_global_rect() const;
Rect2 get_window_rect() const; ///< use with care, as it blocks waiting for the visual server
+
+ void set_rotation(float p_rotation);
+ float get_rotation() const;
+
+ void set_scale(const Vector2& p_scale);
+ Vector2 get_scale() const;
+
void set_area_as_parent_rect(int p_margin=0);
@@ -382,7 +394,7 @@ public:
void warp_mouse(const Point2& p_to_pos);
- virtual bool is_text_field() const;
+ virtual bool is_text_field() const;
Control();
~Control();
diff --git a/scene/gui/file_dialog.cpp b/scene/gui/file_dialog.cpp
index 75a1cb92ee..22e3a81e52 100644
--- a/scene/gui/file_dialog.cpp
+++ b/scene/gui/file_dialog.cpp
@@ -623,7 +623,7 @@ void FileDialog::_update_drives() {
}
}
-bool FileDialog::default_show_hidden_files=true;
+bool FileDialog::default_show_hidden_files=false;
void FileDialog::_bind_methods() {
diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp
index 18de8ed568..10ba20a833 100644
--- a/scene/gui/line_edit.cpp
+++ b/scene/gui/line_edit.cpp
@@ -568,7 +568,7 @@ void LineEdit::set_cursor_at_pixel_pos(int p_x) {
int char_w = 0;
if (font != NULL) {
- int char_w = font->get_char_size(text[ofs]).width;
+ char_w = font->get_char_size(text[ofs]).width;
}
pixel_ofs+=char_w;
diff --git a/scene/gui/option_button.cpp b/scene/gui/option_button.cpp
index ff94a37be0..3cc5acc1a6 100644
--- a/scene/gui/option_button.cpp
+++ b/scene/gui/option_button.cpp
@@ -77,9 +77,14 @@ void OptionButton::_selected(int p_which) {
}
}
- ERR_FAIL_COND(selid==-1);
+ if (selid==-1 && p_which>=0 && p_which<popup->get_item_count()) {
+ _select(p_which,true);
+ } else {
- _select(selid,true);
+ ERR_FAIL_COND(selid==-1);
+
+ _select(selid,true);
+ }
}
diff --git a/scene/gui/popup_menu.cpp b/scene/gui/popup_menu.cpp
index 20f28ecf10..9dc03272b2 100644
--- a/scene/gui/popup_menu.cpp
+++ b/scene/gui/popup_menu.cpp
@@ -370,7 +370,7 @@ void PopupMenu::_input_event(const InputEvent &p_event) {
}
int over=_get_mouse_over(Point2(m.x,m.y));
- int id = (over<0 || items[over].separator || items[over].disabled)?-1:items[over].ID;
+ int id = (over<0 || items[over].separator || items[over].disabled)?-1:(items[over].ID>=0?items[over].ID:over);
if (id<0) {
mouse_over=-1;
@@ -524,7 +524,7 @@ void PopupMenu::add_icon_item(const Ref<Texture>& p_icon,const String& p_label,i
item.icon=p_icon;
item.text=p_label;
item.accel=p_accel;
- item.ID=(p_ID<0)?idcount++:p_ID;
+ item.ID=p_ID;
items.push_back(item);
update();
}
@@ -533,7 +533,7 @@ void PopupMenu::add_item(const String& p_label,int p_ID,uint32_t p_accel) {
Item item;
item.text=XL_MESSAGE(p_label);
item.accel=p_accel;
- item.ID=(p_ID<0)?idcount++:p_ID;
+ item.ID=p_ID;
items.push_back(item);
update();
}
@@ -542,7 +542,7 @@ void PopupMenu::add_submenu_item(const String& p_label, const String& p_submenu,
Item item;
item.text=XL_MESSAGE(p_label);
- item.ID=(p_ID<0)?idcount++:p_ID;
+ item.ID=p_ID;
item.submenu=p_submenu;
items.push_back(item);
update();
@@ -554,7 +554,7 @@ void PopupMenu::add_icon_check_item(const Ref<Texture>& p_icon,const String& p_l
item.icon=p_icon;
item.text=XL_MESSAGE(p_label);
item.accel=p_accel;
- item.ID=(p_ID<0)?idcount++:p_ID;
+ item.ID=p_ID;
item.checkable=true;
items.push_back(item);
update();
@@ -564,7 +564,7 @@ void PopupMenu::add_check_item(const String& p_label,int p_ID,uint32_t p_accel)
Item item;
item.text=XL_MESSAGE(p_label);
item.accel=p_accel;
- item.ID=(p_ID<0)?idcount++:p_ID;
+ item.ID=p_ID;
item.checkable=true;
items.push_back(item);
update();
@@ -753,9 +753,11 @@ int PopupMenu::find_item_by_accelerator(uint32_t p_accel) const {
void PopupMenu::activate_item(int p_item) {
+
ERR_FAIL_INDEX(p_item,items.size());
ERR_FAIL_COND(items[p_item].separator);
- emit_signal("item_pressed",items[p_item].ID);
+ int id = items[p_item].ID>=0?items[p_item].ID:p_item;
+ emit_signal("item_pressed",id);
//hide all parent PopupMenue's
Node *next = get_parent();
@@ -789,7 +791,7 @@ void PopupMenu::clear() {
items.clear();
mouse_over=-1;
update();
- idcount=0;
+
}
@@ -937,7 +939,7 @@ void PopupMenu::set_invalidate_click_until_motion() {
PopupMenu::PopupMenu() {
- idcount=0;
+
mouse_over=-1;
set_focus_mode(FOCUS_ALL);
diff --git a/scene/gui/popup_menu.h b/scene/gui/popup_menu.h
index ed78fe6738..30223469a3 100644
--- a/scene/gui/popup_menu.h
+++ b/scene/gui/popup_menu.h
@@ -59,7 +59,6 @@ class PopupMenu : public Popup {
Timer *submenu_timer;
List<Rect2> autohide_areas;
Vector<Item> items;
- int idcount;
int mouse_over;
int submenu_over;
Rect2 parent_rect;
diff --git a/scene/gui/slider.cpp b/scene/gui/slider.cpp
index b6292c544b..78b5dabeb4 100644
--- a/scene/gui/slider.cpp
+++ b/scene/gui/slider.cpp
@@ -50,9 +50,9 @@ void Slider::_input_event(InputEvent p_event) {
grab.pos=orientation==VERTICAL?mb.y:mb.x;
double max = orientation==VERTICAL ? get_size().height : get_size().width ;
if (orientation==VERTICAL)
- set_val( ( ( -(double)grab.pos / max) * ( get_max() - get_min() ) ) + get_max() );
+ set_unit_value( 1 - ((double)grab.pos / max) );
else
- set_val( ( ( (double)grab.pos / max) * ( get_max() - get_min() ) ) + get_min() );
+ set_unit_value((double)grab.pos / max);
grab.active=true;
grab.uvalue=get_unit_value();
} else {
diff --git a/scene/gui/spin_box.cpp b/scene/gui/spin_box.cpp
index a48136f541..051a8dd018 100644
--- a/scene/gui/spin_box.cpp
+++ b/scene/gui/spin_box.cpp
@@ -68,6 +68,25 @@ void SpinBox::_line_edit_input(const InputEvent& p_event) {
}
+void SpinBox::_range_click_timeout() {
+
+ if (!drag.enabled && Input::get_singleton()->is_mouse_button_pressed(BUTTON_LEFT)) {
+
+ int pos_y = Input::get_singleton()->get_mouse_pos().y-get_global_pos().y;
+ bool up = pos_y < (get_size().height/2);
+ set_val( get_val() + (up?get_step():-get_step()));
+
+ if (range_click_timer->is_one_shot()) {
+ range_click_timer->set_wait_time(0.075);
+ range_click_timer->set_one_shot(false);
+ range_click_timer->start();
+ }
+
+ } else {
+ range_click_timer->stop();
+ }
+}
+
void SpinBox::_input_event(const InputEvent& p_event) {
@@ -85,6 +104,10 @@ void SpinBox::_input_event(const InputEvent& p_event) {
set_val( get_val() + (up?get_step():-get_step()));
+ range_click_timer->set_wait_time(0.6);
+ range_click_timer->set_one_shot(true);
+ range_click_timer->start();
+
} break;
case BUTTON_RIGHT: {
@@ -112,6 +135,8 @@ void SpinBox::_input_event(const InputEvent& p_event) {
if (p_event.type==InputEvent::MOUSE_BUTTON && !p_event.mouse_button.pressed && p_event.mouse_button.button_index==1) {
//set_default_cursor_shape(CURSOR_ARROW);
+ range_click_timer->stop();
+
if (drag.enabled) {
drag.enabled=false;
Input::get_singleton()->set_mouse_mode(Input::MOUSE_MODE_VISIBLE);
@@ -167,6 +192,7 @@ void SpinBox::_notification(int p_what) {
Size2i size = get_size();
updown->draw(ci,Point2i(size.width-updown->get_width(),(size.height-updown->get_height())/2));
+
} else if (p_what==NOTIFICATION_FOCUS_EXIT) {
@@ -227,6 +253,7 @@ void SpinBox::_bind_methods() {
ObjectTypeDB::bind_method(_MD("_line_edit_focus_exit"),&SpinBox::_line_edit_focus_exit);
ObjectTypeDB::bind_method(_MD("get_line_edit"),&SpinBox::get_line_edit);
ObjectTypeDB::bind_method(_MD("_line_edit_input"),&SpinBox::_line_edit_input);
+ ObjectTypeDB::bind_method(_MD("_range_click_timeout"),&SpinBox::_range_click_timeout);
ADD_PROPERTY(PropertyInfo(Variant::BOOL,"editable"),_SCS("set_editable"),_SCS("is_editable"));
@@ -248,4 +275,8 @@ SpinBox::SpinBox() {
line_edit->connect("focus_exit",this,"_line_edit_focus_exit",Vector<Variant>(),CONNECT_DEFERRED);
line_edit->connect("input_event",this,"_line_edit_input");
drag.enabled=false;
+
+ range_click_timer = memnew( Timer );
+ range_click_timer->connect("timeout",this,"_range_click_timeout");
+ add_child(range_click_timer);
}
diff --git a/scene/gui/spin_box.h b/scene/gui/spin_box.h
index 4c8cb8432a..1b3bc6d817 100644
--- a/scene/gui/spin_box.h
+++ b/scene/gui/spin_box.h
@@ -31,6 +31,7 @@
#include "scene/gui/line_edit.h"
#include "scene/gui/range.h"
+#include "scene/main/timer.h"
class SpinBox : public Range {
@@ -39,6 +40,9 @@ class SpinBox : public Range {
LineEdit *line_edit;
int last_w;
+ Timer *range_click_timer;
+ void _range_click_timeout();
+
void _text_entered(const String& p_string);
virtual void _value_changed(double);
String prefix;
diff --git a/scene/gui/tabs.cpp b/scene/gui/tabs.cpp
index 47a55e0716..5f4215a1d5 100644
--- a/scene/gui/tabs.cpp
+++ b/scene/gui/tabs.cpp
@@ -74,6 +74,7 @@ Size2 Tabs::get_minimum_size() const {
}
}
+ ms.width=0; //should make this optional
return ms;
}
@@ -85,6 +86,23 @@ void Tabs::_input_event(const InputEvent& p_event) {
Point2 pos( p_event.mouse_motion.x, p_event.mouse_motion.y );
+ hilite_arrow=-1;
+ if (buttons_visible) {
+
+ Ref<Texture> incr = get_icon("increment");
+ Ref<Texture> decr = get_icon("decrement");
+
+ int limit=get_size().width-incr->get_width()-decr->get_width();
+
+ if (pos.x>limit+decr->get_width()) {
+ hilite_arrow=1;
+ } else if (pos.x>limit) {
+ hilite_arrow=0;
+ }
+ }
+
+
+
int hover_buttons=-1;
hover=-1;
for(int i=0;i<tabs.size();i++) {
@@ -163,9 +181,34 @@ void Tabs::_input_event(const InputEvent& p_event) {
// clicks
Point2 pos( p_event.mouse_button.x, p_event.mouse_button.y );
+ if (buttons_visible) {
+
+ Ref<Texture> incr = get_icon("increment");
+ Ref<Texture> decr = get_icon("decrement");
+
+ int limit=get_size().width-incr->get_width()-decr->get_width();
+
+ if (pos.x>limit+decr->get_width()) {
+ if (missing_right) {
+ offset++;
+ update();
+ }
+ return;
+ } else if (pos.x>limit) {
+ if (offset>0) {
+ offset--;
+ update();
+ }
+ return;
+ }
+ }
+
+
int found=-1;
for(int i=0;i<tabs.size();i++) {
+ if (i<offset)
+ continue;
if (tabs[i].rb_rect.has_point(pos)) {
rb_pressing=true;
update();
@@ -225,7 +268,46 @@ void Tabs::_notification(int p_what) {
int w=0;
- int mw = get_minimum_size().width;
+ int mw = 0;
+
+ {
+
+
+ // h+=MIN( get_constant("label_valign_fg"), get_constant("label_valign_bg") );
+
+ for(int i=0;i<tabs.size();i++) {
+
+ Ref<Texture> tex = tabs[i].icon;
+ if (tex.is_valid()) {
+ if (tabs[i].text!="")
+ mw+=get_constant("hseparation");
+
+ }
+ mw+=font->get_string_size(tabs[i].text).width;
+ if (current==i)
+ mw+=tab_fg->get_minimum_size().width;
+ else
+ mw+=tab_bg->get_minimum_size().width;
+
+ if (tabs[i].right_button.is_valid()) {
+ Ref<Texture> rb=tabs[i].right_button;
+ Size2 bms = rb->get_size();//+get_stylebox("button")->get_minimum_size();
+ bms.width+=get_constant("hseparation");
+
+ mw+=bms.width;
+ }
+
+ if (tabs[i].close_button.is_valid()) {
+ Ref<Texture> cb=tabs[i].close_button;
+ Size2 bms = cb->get_size();//+get_stylebox("button")->get_minimum_size();
+ bms.width+=get_constant("hseparation");
+ mw+=bms.width;
+ }
+ }
+
+ }
+
+
if (tab_align==ALIGN_CENTER) {
w=(get_size().width-mw)/2;
@@ -238,8 +320,19 @@ void Tabs::_notification(int p_what) {
w=0;
}
+ Ref<Texture> incr = get_icon("increment");
+ Ref<Texture> decr = get_icon("decrement");
+ Ref<Texture> incr_hl = get_icon("increment_hilite");
+ Ref<Texture> decr_hl = get_icon("decrement_hilite");
+
+ int limit=get_size().width - incr->get_size().width - decr->get_size().width;
+
+ missing_right=false;
+
for(int i=0;i<tabs.size();i++) {
+ if (i<offset)
+ continue;
tabs[i].ofs_cache=w;
String s = tabs[i].text;
@@ -247,6 +340,8 @@ void Tabs::_notification(int p_what) {
int slen=font->get_string_size(s).width;
lsize+=slen;
+
+
Ref<Texture> icon;
if (tabs[i].icon.is_valid()) {
icon = tabs[i].icon;
@@ -319,6 +414,16 @@ void Tabs::_notification(int p_what) {
}
+ if (w+lsize > limit) {
+ max_drawn_tab=i-1;
+ missing_right=true;
+ break;
+ } else {
+ max_drawn_tab=i;
+ }
+
+
+
Ref<StyleBox> sb;
int va;
Color col;
@@ -484,6 +589,25 @@ void Tabs::_notification(int p_what) {
}
+ if (offset>0 || missing_right) {
+
+ int vofs = (get_size().height-incr->get_size().height)/2;
+
+ if (offset>0)
+ draw_texture(hilite_arrow==0?decr_hl:decr,Point2(limit,vofs));
+ else
+ draw_texture(decr,Point2(limit,vofs),Color(1,1,1,0.5));
+
+ if (missing_right)
+ draw_texture(hilite_arrow==1?incr_hl:incr,Point2(limit+decr->get_size().width,vofs));
+ else
+ draw_texture(incr,Point2(limit+decr->get_size().width,vofs),Color(1,1,1,0.5));
+
+ buttons_visible=true;
+ } else {
+ buttons_visible=false;
+ }
+
} break;
}
@@ -673,8 +797,11 @@ Tabs::Tabs() {
tab_align=ALIGN_CENTER;
rb_hover=-1;
rb_pressing=false;
+ hilite_arrow=-1;
cb_hover=-1;
cb_pressing=false;
cb_displaypolicy = SHOW_NEVER; // Default : no close button
+ offset=0;
+ max_drawn_tab=0;
}
diff --git a/scene/gui/tabs.h b/scene/gui/tabs.h
index 1a8352bc93..48fbed1f76 100644
--- a/scene/gui/tabs.h
+++ b/scene/gui/tabs.h
@@ -65,6 +65,12 @@ private:
Rect2 cb_rect;
};
+
+ int offset;
+ int max_drawn_tab;
+ int hilite_arrow;
+ bool buttons_visible;
+ bool missing_right;
Vector<Tab> tabs;
int current;
Control *_get_tab(int idx) const;
diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp
index 78792dc785..29969b65e6 100644
--- a/scene/gui/text_edit.cpp
+++ b/scene/gui/text_edit.cpp
@@ -29,6 +29,7 @@
#include "text_edit.h"
#include "os/keyboard.h"
+#include "os/input.h"
#include "os/os.h"
#include "globals.h"
@@ -349,6 +350,29 @@ void TextEdit::_update_scrollbars() {
updating_scrolls=false;
}
+void TextEdit::_click_selection_held() {
+
+ if (Input::get_singleton()->is_mouse_button_pressed(BUTTON_LEFT) && selection.selecting_mode!=Selection::MODE_NONE) {
+
+ Point2 mp = Input::get_singleton()->get_mouse_pos()-get_global_pos();
+
+ int row,col;
+ _get_mouse_pos(Point2i(mp.x,mp.y), row,col);
+
+ select(selection.selecting_line,selection.selecting_column,row,col);
+
+ cursor_set_line( row );
+ cursor_set_column( col );
+ update();
+
+ click_select_held->start();
+
+ } else {
+
+ click_select_held->stop();
+ }
+}
+
void TextEdit::_notification(int p_what) {
@@ -1292,6 +1316,9 @@ void TextEdit::_input_event(const InputEvent& p_input_event) {
update();
}
} else {
+
+ if (mb.button_index==BUTTON_LEFT)
+ click_select_held->stop();
// notify to show soft keyboard
notification(NOTIFICATION_FOCUS_ENTER);
@@ -1304,16 +1331,18 @@ void TextEdit::_input_event(const InputEvent& p_input_event) {
if (mm.button_mask&BUTTON_MASK_LEFT) {
- int row,col;
- _get_mouse_pos(Point2i(mm.x,mm.y), row,col);
-
if (selection.selecting_mode!=Selection::MODE_NONE) {
+
+ int row,col;
+ _get_mouse_pos(Point2i(mm.x,mm.y), row,col);
select(selection.selecting_line,selection.selecting_column,row,col);
cursor_set_line( row );
cursor_set_column( col );
update();
+
+ click_select_held->start();
}
@@ -3697,6 +3726,7 @@ void TextEdit::_bind_methods() {
ObjectTypeDB::bind_method(_MD("_cursor_changed_emit"),&TextEdit::_cursor_changed_emit);
ObjectTypeDB::bind_method(_MD("_text_changed_emit"),&TextEdit::_text_changed_emit);
ObjectTypeDB::bind_method(_MD("_push_current_op"),&TextEdit::_push_current_op);
+ ObjectTypeDB::bind_method(_MD("_click_selection_held"),&TextEdit::_click_selection_held);
BIND_CONSTANT( SEARCH_MATCH_CASE );
BIND_CONSTANT( SEARCH_WHOLE_WORDS );
@@ -3811,6 +3841,11 @@ TextEdit::TextEdit() {
idle_detect->set_one_shot(true);
idle_detect->set_wait_time(GLOBAL_DEF("display/text_edit_idle_detect_sec",3));
idle_detect->connect("timeout", this,"_push_current_op");
+
+ click_select_held = memnew( Timer );
+ add_child(click_select_held);
+ click_select_held->set_wait_time(0.05);
+ click_select_held->connect("timeout", this,"_click_selection_held");
#if 0
syntax_coloring=true;
diff --git a/scene/gui/text_edit.h b/scene/gui/text_edit.h
index 91369309cf..f8e8ef3b9a 100644
--- a/scene/gui/text_edit.h
+++ b/scene/gui/text_edit.h
@@ -219,6 +219,7 @@ class TextEdit : public Control {
uint64_t last_dblclk;
Timer *idle_detect;
+ Timer *click_select_held;
HScrollBar *h_scroll;
VScrollBar *v_scroll;
bool updating_scrolls;
@@ -240,6 +241,7 @@ class TextEdit : public Control {
void adjust_viewport_to_cursor();
void _scroll_moved(double);
void _update_scrollbars();
+ void _click_selection_held();
void _pre_shift_selection();
void _post_shift_selection();
diff --git a/scene/gui/texture_button.cpp b/scene/gui/texture_button.cpp
index 5b2caecb5b..7e6bf2cbdf 100644
--- a/scene/gui/texture_button.cpp
+++ b/scene/gui/texture_button.cpp
@@ -145,7 +145,7 @@ void TextureButton::_bind_methods() {
ObjectTypeDB::bind_method(_MD("set_disabled_texture","texture:Texture"),&TextureButton::set_disabled_texture);
ObjectTypeDB::bind_method(_MD("set_focused_texture","texture:Texture"),&TextureButton::set_focused_texture);
ObjectTypeDB::bind_method(_MD("set_click_mask","mask:BitMap"),&TextureButton::set_click_mask);
- ObjectTypeDB::bind_method(_MD("set_scale","scale"),&TextureButton::set_scale);
+ ObjectTypeDB::bind_method(_MD("set_texture_scale","scale"),&TextureButton::set_texture_scale);
ObjectTypeDB::bind_method(_MD("set_modulate","color"),&TextureButton::set_modulate);
ObjectTypeDB::bind_method(_MD("get_normal_texture:Texture"),&TextureButton::get_normal_texture);
@@ -154,7 +154,7 @@ void TextureButton::_bind_methods() {
ObjectTypeDB::bind_method(_MD("get_disabled_texture:Texture"),&TextureButton::get_disabled_texture);
ObjectTypeDB::bind_method(_MD("get_focused_texture:Texture"),&TextureButton::get_focused_texture);
ObjectTypeDB::bind_method(_MD("get_click_mask:BitMap"),&TextureButton::get_click_mask);
- ObjectTypeDB::bind_method(_MD("get_scale"),&TextureButton::get_scale);
+ ObjectTypeDB::bind_method(_MD("get_texture_scale"),&TextureButton::get_texture_scale);
ObjectTypeDB::bind_method(_MD("get_modulate"),&TextureButton::get_modulate);
ADD_PROPERTYNZ(PropertyInfo(Variant::OBJECT,"textures/normal",PROPERTY_HINT_RESOURCE_TYPE,"Texture"), _SCS("set_normal_texture"), _SCS("get_normal_texture"));
@@ -163,7 +163,7 @@ void TextureButton::_bind_methods() {
ADD_PROPERTYNZ(PropertyInfo(Variant::OBJECT,"textures/disabled",PROPERTY_HINT_RESOURCE_TYPE,"Texture"), _SCS("set_disabled_texture"), _SCS("get_disabled_texture"));
ADD_PROPERTYNZ(PropertyInfo(Variant::OBJECT,"textures/focused",PROPERTY_HINT_RESOURCE_TYPE,"Texture"), _SCS("set_focused_texture"), _SCS("get_focused_texture"));
ADD_PROPERTYNZ(PropertyInfo(Variant::OBJECT,"textures/click_mask",PROPERTY_HINT_RESOURCE_TYPE,"BitMap"), _SCS("set_click_mask"), _SCS("get_click_mask")) ;
- ADD_PROPERTYNO(PropertyInfo(Variant::VECTOR2,"params/scale",PROPERTY_HINT_RANGE,"0.01,1024,0.01"), _SCS("set_scale"), _SCS("get_scale"));
+ ADD_PROPERTYNO(PropertyInfo(Variant::VECTOR2,"params/scale",PROPERTY_HINT_RANGE,"0.01,1024,0.01"), _SCS("set_texture_scale"), _SCS("get_texture_scale"));
ADD_PROPERTYNO(PropertyInfo(Variant::COLOR,"params/modulate"), _SCS("set_modulate"), _SCS("get_modulate"));
}
@@ -232,14 +232,14 @@ void TextureButton::set_focused_texture(const Ref<Texture>& p_focused) {
focused = p_focused;
};
-void TextureButton::set_scale(Size2 p_scale) {
+void TextureButton::set_texture_scale(Size2 p_scale) {
scale=p_scale;
minimum_size_changed();
update();
}
-Size2 TextureButton::get_scale() const{
+Size2 TextureButton::get_texture_scale() const{
return scale;
}
diff --git a/scene/gui/texture_button.h b/scene/gui/texture_button.h
index 01924c1c15..49687986c4 100644
--- a/scene/gui/texture_button.h
+++ b/scene/gui/texture_button.h
@@ -68,8 +68,8 @@ public:
Ref<Texture> get_focused_texture() const;
Ref<BitMap> get_click_mask() const;
- void set_scale(Size2 p_scale);
- Size2 get_scale() const;
+ void set_texture_scale(Size2 p_scale);
+ Size2 get_texture_scale() const;
void set_modulate(const Color& p_modulate);
Color get_modulate() const;
diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp
index 16a12fe407..1b204cff65 100644
--- a/scene/gui/tree.cpp
+++ b/scene/gui/tree.cpp
@@ -1369,7 +1369,40 @@ Rect2 Tree::search_item_rect(TreeItem *p_from, TreeItem *p_item) {
}
+void Tree::_range_click_timeout() {
+ if (range_item_last && !range_drag_enabled && Input::get_singleton()->is_mouse_button_pressed(BUTTON_LEFT)) {
+
+ Point2 pos = (Input::get_singleton()->get_mouse_pos()-get_global_pos())-cache.bg->get_offset();
+ if (show_column_titles) {
+ pos.y-=_get_title_button_height();
+
+ if (pos.y<0) {
+ range_click_timer->stop();
+ return;
+ }
+ }
+
+ click_handled=false;
+ InputModifierState mod = {}; // should be irrelevant..
+
+ blocked++;
+ propagate_mouse_event(pos+cache.offset, 0, 0, false, root, BUTTON_LEFT, mod);
+ blocked--;
+
+ if (range_click_timer->is_one_shot()) {
+ range_click_timer->set_wait_time(0.05);
+ range_click_timer->set_one_shot(false);
+ range_click_timer->start();
+ }
+
+ if (!click_handled)
+ range_click_timer->stop();
+
+ } else {
+ range_click_timer->stop();
+ }
+}
int Tree::propagate_mouse_event(const Point2i &p_pos,int x_ofs,int y_ofs,bool p_doubleclick,TreeItem *p_item,int p_button,const InputModifierState& p_mod) {
@@ -1564,9 +1597,25 @@ int Tree::propagate_mouse_event(const Point2i &p_pos,int x_ofs,int y_ofs,bool p_
bool up=p_pos.y < (item_h /2);
if (p_button==BUTTON_LEFT) {
+
+ if (range_click_timer->get_time_left() == 0) {
+
+ range_item_last=p_item;
+ range_up_last=up;
+
+ range_click_timer->set_wait_time(0.6);
+ range_click_timer->set_one_shot(true);
+ range_click_timer->start();
+
+ } else if (up != range_up_last) {
+
+ return -1; // break. avoid changing direction on mouse held
+ }
+
p_item->set_range( col, c.val + (up?1.0:-1.0) * c.step );
item_edited(col,p_item);
+
} else if (p_button==BUTTON_RIGHT) {
p_item->set_range( col, (up?c.max:c.min) );
@@ -1672,6 +1721,7 @@ void Tree::text_editor_enter(String p_text) {
text_editor->hide();
+ value_editor->hide();
if (!popup_edited_item)
return;
@@ -2024,6 +2074,8 @@ void Tree::_input_event(InputEvent p_event) {
update_cache();
const InputEventMouseMotion& b=p_event.mouse_motion;
+ range_click_timer->stop();
+
Ref<StyleBox> bg = cache.bg;
Point2 pos = Point2(b.x,b.y) - bg->get_offset();
@@ -2031,7 +2083,6 @@ void Tree::_input_event(InputEvent p_event) {
Cache::ClickType old_hover = cache.hover_type;
int old_index = cache.hover_index;
-
cache.hover_type=Cache::CLICK_NONE;
cache.hover_index=0;
if (show_column_titles) {
@@ -2108,6 +2159,8 @@ void Tree::_input_event(InputEvent p_event) {
if (b.button_index==BUTTON_LEFT) {
+ range_click_timer->stop();
+
if (pressing_for_editor) {
if (range_drag_enabled) {
@@ -2115,18 +2168,9 @@ void Tree::_input_event(InputEvent p_event) {
range_drag_enabled=false;
Input::get_singleton()->set_mouse_mode(Input::MOUSE_MODE_VISIBLE);
warp_mouse(range_drag_capture_pos);
- } else {
- text_editor->set_pos(pressing_item_rect.pos);
- text_editor->set_size(pressing_item_rect.size);
-
- text_editor->clear();
- text_editor->set_text( pressing_for_editor_text );
- text_editor->select_all();
+ } else
+ edit_selected();
- text_editor->show_modal();
- text_editor->grab_focus();
-
- }
pressing_for_editor=false;
}
@@ -2228,10 +2272,13 @@ void Tree::_input_event(InputEvent p_event) {
} break;
case BUTTON_WHEEL_UP: {
+
+ range_click_timer->stop();
v_scroll->set_val( v_scroll->get_val()-v_scroll->get_page()/8 );
} break;
case BUTTON_WHEEL_DOWN: {
+ range_click_timer->stop();
v_scroll->set_val( v_scroll->get_val()+v_scroll->get_page()/8 );
} break;
}
@@ -3135,6 +3182,7 @@ bool Tree::is_folding_hidden() const {
void Tree::_bind_methods() {
+ ObjectTypeDB::bind_method(_MD("_range_click_timeout"),&Tree::_range_click_timeout);
ObjectTypeDB::bind_method(_MD("_input_event"),&Tree::_input_event);
ObjectTypeDB::bind_method(_MD("_popup_select"),&Tree::popup_select);
ObjectTypeDB::bind_method(_MD("_text_editor_enter"),&Tree::text_editor_enter);
@@ -3229,6 +3277,10 @@ Tree::Tree() {
add_child(h_scroll);
add_child(v_scroll);
+ range_click_timer = memnew( Timer );
+ range_click_timer->connect("timeout",this,"_range_click_timeout");
+ add_child(range_click_timer);
+
h_scroll->connect("value_changed", this,"_scroll_moved");
v_scroll->connect("value_changed", this,"_scroll_moved");
text_editor->connect("text_entered", this,"_text_editor_enter");
diff --git a/scene/gui/tree.h b/scene/gui/tree.h
index 8fb9b802a1..55ccc16d01 100644
--- a/scene/gui/tree.h
+++ b/scene/gui/tree.h
@@ -127,7 +127,7 @@ friend class Tree;
- TreeItem(Tree *p_tree);
+ TreeItem(Tree *p_tree);
void _changed_notify(int p_cell);
@@ -301,6 +301,11 @@ friend class TreeItem;
Vector<ColumnInfo> columns;
+ Timer *range_click_timer;
+ TreeItem *range_item_last;
+ bool range_up_last;
+ void _range_click_timeout();
+
int compute_item_height(TreeItem *p_item) const;
int get_item_height(TreeItem *p_item) const;
// void draw_item_text(String p_text,const Ref<Texture>& p_icon,int p_icon_max_w,bool p_tool,Rect2i p_rect,const Color& p_color);
diff --git a/scene/gui/video_player.cpp b/scene/gui/video_player.cpp
index d99da5e906..22b19f50b2 100644
--- a/scene/gui/video_player.cpp
+++ b/scene/gui/video_player.cpp
@@ -338,6 +338,13 @@ float VideoPlayer::get_stream_pos() const {
return playback->get_pos();
};
+Ref<Texture> VideoPlayer::get_video_texture() {
+
+ if (playback.is_valid())
+ return playback->get_texture();
+
+ return Ref<Texture> ();
+}
void VideoPlayer::set_autoplay(bool p_enable) {
@@ -384,6 +391,8 @@ void VideoPlayer::_bind_methods() {
ObjectTypeDB::bind_method(_MD("set_buffering_msec","msec"),&VideoPlayer::set_buffering_msec);
ObjectTypeDB::bind_method(_MD("get_buffering_msec"),&VideoPlayer::get_buffering_msec);
+ ObjectTypeDB::bind_method(_MD("get_video_texutre:Texture"), &VideoPlayer::get_video_texture );
+
ADD_PROPERTY( PropertyInfo(Variant::INT, "stream/audio_track",PROPERTY_HINT_RANGE,"0,128,1"), _SCS("set_audio_track"), _SCS("get_audio_track") );
ADD_PROPERTY( PropertyInfo(Variant::OBJECT, "stream/stream", PROPERTY_HINT_RESOURCE_TYPE,"VideoStream"), _SCS("set_stream"), _SCS("get_stream") );
// ADD_PROPERTY( PropertyInfo(Variant::BOOL, "stream/loop"), _SCS("set_loop"), _SCS("has_loop") );
diff --git a/scene/gui/video_player.h b/scene/gui/video_player.h
index c485e3d6b6..b14d3936b9 100644
--- a/scene/gui/video_player.h
+++ b/scene/gui/video_player.h
@@ -88,6 +88,8 @@ public:
bool has_expand() const;
+ Ref<Texture> get_video_texture();
+
void set_stream(const Ref<VideoStream> &p_stream);
Ref<VideoStream> get_stream() const;
@@ -110,8 +112,8 @@ public:
void set_autoplay(bool p_vol);
bool has_autoplay() const;
- void set_audio_track(int p_track);
- int get_audio_track() const;
+ void set_audio_track(int p_track);
+ int get_audio_track() const;
void set_buffering_msec(int p_msec);
int get_buffering_msec() const;
diff --git a/scene/main/node.cpp b/scene/main/node.cpp
index 97c36ff71b..a832162994 100644
--- a/scene/main/node.cpp
+++ b/scene/main/node.cpp
@@ -628,11 +628,11 @@ String Node::validate_child_name(const String& p_name) const {
}
-void Node::_validate_child_name(Node *p_child) {
+void Node::_validate_child_name(Node *p_child, bool p_force_human_readable) {
/* Make sure the name is unique */
- if (node_hrcr) {
+ if (node_hrcr || p_force_human_readable) {
//this approach to autoset node names is human readable but very slow
//it's turned on while running in the editor
@@ -700,11 +700,7 @@ void Node::_validate_child_name(Node *p_child) {
if (!unique) {
node_hrcr_count.ref();
-#ifdef DEBUG_ENABLED
- String name = "@"+String(p_child->get_type_name())+itos(node_hrcr_count.get());
-#else
- String name = "@"+itos(node_hrcr_count.get());
-#endif
+ String name = "@"+String(p_child->get_name())+"@"+itos(node_hrcr_count.get());
p_child->data.name=name;
}
}
@@ -732,24 +728,27 @@ void Node::_add_child_nocheck(Node* p_child,const StringName& p_name) {
}
-void Node::add_child(Node *p_child) {
+void Node::add_child(Node *p_child, bool p_legible_unique_name) {
ERR_FAIL_NULL(p_child);
/* Fail if node has a parent */
- ERR_EXPLAIN("Can't add child "+p_child->get_name()+" to itself.")
- ERR_FAIL_COND( p_child==this ); // adding to itself!
+ if (p_child==this) {
+ ERR_EXPLAIN("Can't add child "+p_child->get_name()+" to itself.")
+ ERR_FAIL_COND( p_child==this ); // adding to itself!
+ }
ERR_EXPLAIN("Can't add child, already has a parent");
ERR_FAIL_COND( p_child->data.parent );
ERR_EXPLAIN("Can't add child while a notification is happening");
ERR_FAIL_COND( data.blocked > 0 );
/* Validate name */
- _validate_child_name(p_child);
+ _validate_child_name(p_child,p_legible_unique_name);
_add_child_nocheck(p_child,p_child->data.name);
}
+
void Node::_propagate_validate_owner() {
if (data.owner) {
@@ -1984,7 +1983,7 @@ void Node::_bind_methods() {
ObjectTypeDB::bind_method(_MD("set_name","name"),&Node::set_name);
ObjectTypeDB::bind_method(_MD("get_name"),&Node::get_name);
- ObjectTypeDB::bind_method(_MD("add_child","node:Node"),&Node::add_child);
+ ObjectTypeDB::bind_method(_MD("add_child","node:Node","legible_unique_name"),&Node::add_child,DEFVAL(false));
ObjectTypeDB::bind_method(_MD("remove_child","node:Node"),&Node::remove_child);
//ObjectTypeDB::bind_method(_MD("remove_and_delete_child","node:Node"),&Node::remove_and_delete_child);
ObjectTypeDB::bind_method(_MD("get_child_count"),&Node::get_child_count);
diff --git a/scene/main/node.h b/scene/main/node.h
index 87fa4dd6ca..196c4a06eb 100644
--- a/scene/main/node.h
+++ b/scene/main/node.h
@@ -122,7 +122,7 @@ private:
- void _validate_child_name(Node *p_name);
+ void _validate_child_name(Node *p_name, bool p_force_human_readable=false);
void _propagate_reverse_notification(int p_notification);
void _propagate_deferred_notification(int p_notification, bool p_reverse);
@@ -187,7 +187,7 @@ public:
StringName get_name() const;
void set_name(const String& p_name);
- void add_child(Node *p_child);
+ void add_child(Node *p_child,bool p_legible_unique_name=false);
void remove_child(Node *p_child);
int get_child_count() const;
diff --git a/scene/resources/color_ramp.cpp b/scene/resources/color_ramp.cpp
index 97d3fafd58..bf1f298e7a 100644
--- a/scene/resources/color_ramp.cpp
+++ b/scene/resources/color_ramp.cpp
@@ -26,6 +26,23 @@ ColorRamp::~ColorRamp() {
void ColorRamp::_bind_methods() {
+
+
+
+
+ ObjectTypeDB::bind_method(_MD("add_point","offset","color"),&ColorRamp::add_point);
+ ObjectTypeDB::bind_method(_MD("remove_point","offset","color"),&ColorRamp::remove_point);
+
+ ObjectTypeDB::bind_method(_MD("set_offset","point","offset"),&ColorRamp::set_offset);
+ ObjectTypeDB::bind_method(_MD("get_offset","point"),&ColorRamp::get_offset);
+
+ ObjectTypeDB::bind_method(_MD("set_color","point","color"),&ColorRamp::set_color);
+ ObjectTypeDB::bind_method(_MD("get_color","point"),&ColorRamp::get_color);
+
+ ObjectTypeDB::bind_method(_MD("interpolate","offset"),&ColorRamp::get_color_at_offset);
+
+ ObjectTypeDB::bind_method(_MD("get_point_count"),&ColorRamp::get_points_count);
+
ObjectTypeDB::bind_method(_MD(COLOR_RAMP_SET_OFFSETS,"offsets"),&ColorRamp::set_offsets);
ObjectTypeDB::bind_method(_MD(COLOR_RAMP_GET_OFFSETS),&ColorRamp::get_offsets);
@@ -79,6 +96,23 @@ Vector<ColorRamp::Point>& ColorRamp::get_points() {
return points;
}
+void ColorRamp::add_point(float p_offset, const Color& p_color) {
+
+ Point p;
+ p.offset=p_offset;
+ p.color=p_color;
+ is_sorted=false;
+ points.push_back(p);
+
+}
+
+void ColorRamp::remove_point(int p_index) {
+
+ ERR_FAIL_INDEX(p_index,points.size());
+ ERR_FAIL_COND(points.size()<=2);
+ points.remove(p_index);
+}
+
void ColorRamp::set_points(Vector<ColorRamp::Point>& p_points) {
points = p_points;
is_sorted = false;
diff --git a/scene/resources/color_ramp.h b/scene/resources/color_ramp.h
index 8f6ba2c3e5..aab5698c2b 100644
--- a/scene/resources/color_ramp.h
+++ b/scene/resources/color_ramp.h
@@ -32,6 +32,9 @@ public:
ColorRamp();
virtual ~ColorRamp();
+ void add_point(float p_offset, const Color& p_color);
+ void remove_point(int p_index);
+
void set_points(Vector<Point>& points);
Vector<Point>& get_points();
diff --git a/scene/resources/convex_polygon_shape_2d.cpp b/scene/resources/convex_polygon_shape_2d.cpp
index a1137ba614..86cf818ac3 100644
--- a/scene/resources/convex_polygon_shape_2d.cpp
+++ b/scene/resources/convex_polygon_shape_2d.cpp
@@ -30,6 +30,8 @@
#include "servers/physics_2d_server.h"
#include "servers/visual_server.h"
+#include "geometry.h"
+
void ConvexPolygonShape2D::_update_shape() {
Physics2DServer::get_singleton()->shape_set_data(get_rid(),points);
@@ -40,7 +42,9 @@ void ConvexPolygonShape2D::_update_shape() {
void ConvexPolygonShape2D::set_point_cloud(const Vector<Vector2>& p_points) {
-
+ Vector<Point2> hull=Geometry::convex_hull_2d(p_points);
+ ERR_FAIL_COND(hull.size()<3);
+ set_points(hull);
}
void ConvexPolygonShape2D::set_points(const Vector<Vector2>& p_points) {
diff --git a/scene/resources/default_theme/default_theme.cpp b/scene/resources/default_theme/default_theme.cpp
index 25407a5b84..33e1eb338e 100644
--- a/scene/resources/default_theme/default_theme.cpp
+++ b/scene/resources/default_theme/default_theme.cpp
@@ -709,6 +709,10 @@ void make_default_theme() {
t->set_stylebox("button_pressed","Tabs", make_stylebox( button_pressed_png,4,4,4,4) );
t->set_stylebox("button","Tabs", make_stylebox( button_normal_png,4,4,4,4) );
+ t->set_icon("increment","Tabs",make_icon( scroll_button_right_png));
+ t->set_icon("increment_hilite","Tabs",make_icon( scroll_button_right_hl_png));
+ t->set_icon("decrement","Tabs",make_icon( scroll_button_left_png));
+ t->set_icon("decrement_hilite","Tabs",make_icon( scroll_button_left_hl_png));
t->set_font("font","Tabs", default_font );
diff --git a/scene/resources/font.cpp b/scene/resources/font.cpp
index 2d93113b40..aad5e7cfdd 100644
--- a/scene/resources/font.cpp
+++ b/scene/resources/font.cpp
@@ -462,31 +462,16 @@ void Font::draw_halign(RID p_canvas_item, const Point2& p_pos, HAlign p_align,fl
void Font::draw(RID p_canvas_item, const Point2& p_pos, const String& p_text, const Color& p_modulate,int p_clip_w) const {
- Point2 pos=p_pos;
- float ofs=0;
- VisualServer *vs = VisualServer::get_singleton();
+ Vector2 ofs;
for (int i=0;i<p_text.length();i++) {
- const Character * c = char_map.getptr(p_text[i]);
+ int width = get_char_size(p_text[i]).width;
- if (!c)
- continue;
-
-// if (p_clip_w>=0 && (ofs+c->rect.size.width)>(p_clip_w))
-// break; //width exceeded
-
- if (p_clip_w>=0 && (ofs+c->rect.size.width)>p_clip_w)
+ if (p_clip_w>=0 && (ofs.x+width)>p_clip_w)
break; //clip
- Point2 cpos=pos;
- cpos.x+=ofs+c->h_align;
- cpos.y-=ascent;
- cpos.y+=c->v_align;
- ERR_CONTINUE( c->texture_idx<-1 || c->texture_idx>=textures.size());
- if (c->texture_idx!=-1)
- textures[c->texture_idx]->draw_rect_region( p_canvas_item, Rect2( cpos, c->rect.size ), c->rect, p_modulate );
-
- ofs+=get_char_size(p_text[i],p_text[i+1]).width;
+
+ ofs.x+=draw_char(p_canvas_item,p_pos+ofs,p_text[i],p_text[i+1],p_modulate);
}
}
@@ -494,8 +479,11 @@ float Font::draw_char(RID p_canvas_item, const Point2& p_pos, const CharType& p_
const Character * c = char_map.getptr(p_char);
- if (!c)
+ if (!c) {
+ if (fallback.is_valid())
+ return fallback->draw_char(p_canvas_item,p_pos,p_char,p_next,p_modulate);
return 0;
+ }
Point2 cpos=p_pos;
cpos.x+=c->h_align;
@@ -508,6 +496,16 @@ float Font::draw_char(RID p_canvas_item, const Point2& p_pos, const CharType& p_
return get_char_size(p_char,p_next).width;
}
+void Font::set_fallback(const Ref<Font> &p_fallback) {
+
+ fallback=p_fallback;
+}
+
+Ref<Font> Font::get_fallback() const{
+
+ return fallback;
+}
+
void Font::_bind_methods() {
ObjectTypeDB::bind_method(_MD("create_from_fnt","path"),&Font::create_from_fnt);
@@ -548,6 +546,8 @@ void Font::_bind_methods() {
ObjectTypeDB::bind_method(_MD("_set_textures"),&Font::_set_textures);
ObjectTypeDB::bind_method(_MD("_get_textures"),&Font::_get_textures);
+ ObjectTypeDB::bind_method(_MD("set_fallback","fallback"),&Font::set_fallback);
+ ObjectTypeDB::bind_method(_MD("get_fallback"),&Font::get_fallback);
ADD_PROPERTY( PropertyInfo( Variant::ARRAY, "textures", PROPERTY_HINT_NONE,"", PROPERTY_USAGE_NOEDITOR ), _SCS("_set_textures"), _SCS("_get_textures") );
ADD_PROPERTY( PropertyInfo( Variant::INT_ARRAY, "chars", PROPERTY_HINT_NONE,"", PROPERTY_USAGE_NOEDITOR ), _SCS("_set_chars"), _SCS("_get_chars") );
@@ -556,6 +556,7 @@ void Font::_bind_methods() {
ADD_PROPERTY( PropertyInfo( Variant::REAL, "height", PROPERTY_HINT_RANGE,"-1024,1024,1" ), _SCS("set_height"), _SCS("get_height") );
ADD_PROPERTY( PropertyInfo( Variant::REAL, "ascent", PROPERTY_HINT_RANGE,"-1024,1024,1" ), _SCS("set_ascent"), _SCS("get_ascent") );
ADD_PROPERTY( PropertyInfo( Variant::BOOL, "distance_field" ), _SCS("set_distance_field_hint"), _SCS("is_distance_field_hint") );
+ ADD_PROPERTY( PropertyInfo( Variant::OBJECT, "fallback", PROPERTY_HINT_RESOURCE_TYPE,"Font" ), _SCS("set_fallback"), _SCS("get_fallback") );
}
diff --git a/scene/resources/font.h b/scene/resources/font.h
index 6728b59f8e..27e3045eaa 100644
--- a/scene/resources/font.h
+++ b/scene/resources/font.h
@@ -84,6 +84,7 @@ private:
void _set_textures(const Vector<Variant> & p_textures);
Vector<Variant> _get_textures() const;
+ Ref<Font> fallback;
protected:
static void _bind_methods();
@@ -113,9 +114,13 @@ public:
int get_kerning_pair(CharType p_A,CharType p_B) const;
Vector<KerningPairKey> get_kerning_pair_keys() const;
- _FORCE_INLINE_ Size2 get_char_size(CharType p_char,CharType p_next=0) const;
+ inline Size2 get_char_size(CharType p_char,CharType p_next=0) const;
Size2 get_string_size(const String& p_string) const;
+
+ void set_fallback(const Ref<Font> &p_fallback);
+ Ref<Font> get_fallback() const;
+
void clear();
void set_distance_field_hint(bool p_distance_field);
@@ -134,8 +139,11 @@ Size2 Font::get_char_size(CharType p_char,CharType p_next) const {
const Character * c = char_map.getptr(p_char);
- if (!c)
+ if (!c) {
+ if (fallback.is_valid())
+ return fallback->get_char_size(p_char,p_next);
return Size2();
+ }
Size2 ret(c->advance,c->rect.size.y);
diff --git a/scene/resources/material.cpp b/scene/resources/material.cpp
index 55bb4e9073..51d8be3294 100644
--- a/scene/resources/material.cpp
+++ b/scene/resources/material.cpp
@@ -535,6 +535,8 @@ void ShaderMaterial::_shader_changed() {
void ShaderMaterial::set_shader(const Ref<Shader>& p_shader) {
+ ERR_FAIL_COND(p_shader.is_valid() && p_shader->get_mode()!=Shader::MODE_MATERIAL);
+
if (shader.is_valid())
shader->disconnect(SceneStringNames::get_singleton()->changed,this,SceneStringNames::get_singleton()->_shader_changed);
shader=p_shader;
@@ -570,8 +572,8 @@ void ShaderMaterial::_bind_methods() {
ObjectTypeDB::bind_method(_MD("set_shader","shader:Shader"), &ShaderMaterial::set_shader );
ObjectTypeDB::bind_method(_MD("get_shader:Shader"), &ShaderMaterial::get_shader );
- ObjectTypeDB::bind_method(_MD("set_shader_param","param","value:var"), &ShaderMaterial::set_shader_param);
- ObjectTypeDB::bind_method(_MD("get_shader_param:var","param"), &ShaderMaterial::get_shader_param);
+ ObjectTypeDB::bind_method(_MD("set_shader_param","param","value:Variant"), &ShaderMaterial::set_shader_param);
+ ObjectTypeDB::bind_method(_MD("get_shader_param:Variant","param"), &ShaderMaterial::get_shader_param);
ObjectTypeDB::bind_method(_MD("_shader_changed"), &ShaderMaterial::_shader_changed );
}
diff --git a/scene/resources/packed_scene.cpp b/scene/resources/packed_scene.cpp
index 863f2be699..443d1630a7 100644
--- a/scene/resources/packed_scene.cpp
+++ b/scene/resources/packed_scene.cpp
@@ -509,6 +509,19 @@ Error SceneState::_parse_node(Node *p_owner,Node *p_node,int p_parent_idx, Map<S
}
}
+ if (exists && p_node->get_script_instance()) {
+ //if this is an overriden value by another script, save it anyway
+ //as the script change will erase it
+ //https://github.com/godotengine/godot/issues/2958
+
+ bool valid=false;
+ p_node->get_script_instance()->get_property_type(name,&valid);
+ if (valid) {
+ exists=false;
+ isdefault=false;
+ }
+ }
+
if (exists && bool(Variant::evaluate(Variant::OP_EQUAL,value,original))) {
//exists and did not change
@@ -1524,6 +1537,7 @@ void SceneState::add_editable_instance(const NodePath& p_path){
SceneState::SceneState() {
base_scene_idx=-1;
+ last_modified_time=0;
}
@@ -1583,6 +1597,15 @@ Node *PackedScene::instance(bool p_gen_edit_state) const {
return s;
}
+void PackedScene::recreate_state() {
+
+ state = Ref<SceneState>( memnew( SceneState ));
+ state->set_path(get_path());
+#ifdef TOOLS_ENABLED
+ state->set_last_modified_time(get_last_modified_time());
+#endif
+}
+
Ref<SceneState> PackedScene::get_state() {
return state;
@@ -1594,6 +1617,7 @@ void PackedScene::set_path(const String& p_path,bool p_take_over) {
Resource::set_path(p_path,p_take_over);
}
+
void PackedScene::_bind_methods() {
ObjectTypeDB::bind_method(_MD("pack","path:Node"),&PackedScene::pack);
diff --git a/scene/resources/packed_scene.h b/scene/resources/packed_scene.h
index f3ec0afb6d..67d0f4ba01 100644
--- a/scene/resources/packed_scene.h
+++ b/scene/resources/packed_scene.h
@@ -99,6 +99,8 @@ class SceneState : public Reference {
String path;
+ uint64_t last_modified_time;
+
_FORCE_INLINE_ Ref<SceneState> _get_base_scene_state() const;
static bool disable_placeholders;
@@ -162,6 +164,9 @@ public:
void add_connection(int p_from,int p_to, int p_signal, int p_method, int p_flags,const Vector<int>& p_binds);
void add_editable_instance(const NodePath& p_path);
+ virtual void set_last_modified_time(uint64_t p_time) { last_modified_time=p_time; }
+ uint64_t get_last_modified_time() const { return last_modified_time; }
+
SceneState();
};
@@ -189,8 +194,13 @@ public:
bool can_instance() const;
Node *instance(bool p_gen_edit_state=false) const;
+ void recreate_state();
+
virtual void set_path(const String& p_path,bool p_take_over=false);
+#ifdef TOOLS_ENABLED
+ virtual void set_last_modified_time(uint64_t p_time) { state->set_last_modified_time(p_time); }
+#endif
Ref<SceneState> get_state();
PackedScene();
diff --git a/scene/resources/scene_format_text.cpp b/scene/resources/scene_format_text.cpp
index 5f41dc2ce8..851083aecf 100644
--- a/scene/resources/scene_format_text.cpp
+++ b/scene/resources/scene_format_text.cpp
@@ -932,6 +932,10 @@ Ref<ResourceInteractiveLoader> ResourceFormatLoaderText::load_interactive(const
void ResourceFormatLoaderText::get_recognized_extensions_for_type(const String& p_type,List<String> *p_extensions) const {
+ if (p_type=="") {
+ get_recognized_extensions(p_extensions);
+ return;
+ }
if (p_type=="PackedScene")
p_extensions->push_back("tscn");
diff --git a/scene/resources/shader.cpp b/scene/resources/shader.cpp
index a9376faf62..f0a2721016 100644
--- a/scene/resources/shader.cpp
+++ b/scene/resources/shader.cpp
@@ -448,31 +448,19 @@ RES ResourceFormatLoaderShader::load(const String &p_path, const String& p_origi
void ResourceFormatLoaderShader::get_recognized_extensions(List<String> *p_extensions) const {
- p_extensions->push_back("shader");
+ ObjectTypeDB::get_extensions_for_type("Shader", p_extensions);
}
+
bool ResourceFormatLoaderShader::handles_type(const String& p_type) const {
- return p_type=="Shader";
+ return ObjectTypeDB::is_type(p_type, "Shader");
}
String ResourceFormatLoaderShader::get_resource_type(const String &p_path) const {
- if (p_path.extension().to_lower()=="shader")
+ if (p_path.extension().to_lower()=="shd")
return "Shader";
return "";
}
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/scene/resources/shader_graph.cpp b/scene/resources/shader_graph.cpp
index 7b67eaeda8..f8a14e58a0 100644
--- a/scene/resources/shader_graph.cpp
+++ b/scene/resources/shader_graph.cpp
@@ -260,7 +260,7 @@ void ShaderGraph::_bind_methods() {
ObjectTypeDB::bind_method(_MD("clear","shader_type"),&ShaderGraph::clear);
ObjectTypeDB::bind_method(_MD("node_set_state","shader_type","id","state"),&ShaderGraph::node_set_state);
- ObjectTypeDB::bind_method(_MD("node_get_state:var","shader_type","id"),&ShaderGraph::node_get_state);
+ ObjectTypeDB::bind_method(_MD("node_get_state:Variant","shader_type","id"),&ShaderGraph::node_get_state);
ObjectTypeDB::bind_method(_MD("_set_data"),&ShaderGraph::_set_data);
ObjectTypeDB::bind_method(_MD("_get_data"),&ShaderGraph::_get_data);
diff --git a/scene/resources/shape_2d.cpp b/scene/resources/shape_2d.cpp
index 31b28ee892..56fd8e212e 100644
--- a/scene/resources/shape_2d.cpp
+++ b/scene/resources/shape_2d.cpp
@@ -108,8 +108,8 @@ void Shape2D::_bind_methods() {
ObjectTypeDB::bind_method(_MD("get_custom_solver_bias"),&Shape2D::get_custom_solver_bias);
ObjectTypeDB::bind_method(_MD("collide","local_xform","with_shape:Shape2D","shape_xform"),&Shape2D::collide);
ObjectTypeDB::bind_method(_MD("collide_with_motion","local_xform","local_motion","with_shape:Shape2D","shape_xform","shape_motion"),&Shape2D::collide_with_motion);
- ObjectTypeDB::bind_method(_MD("collide_and_get_contacts:var","local_xform","with_shape:Shape2D","shape_xform"),&Shape2D::collide_and_get_contacts);
- ObjectTypeDB::bind_method(_MD("collide_with_motion_and_get_contacts:var","local_xform","local_motion","with_shape:Shape2D","shape_xform","shape_motion"),&Shape2D::collide_with_motion_and_get_contacts);
+ ObjectTypeDB::bind_method(_MD("collide_and_get_contacts:Variant","local_xform","with_shape:Shape2D","shape_xform"),&Shape2D::collide_and_get_contacts);
+ ObjectTypeDB::bind_method(_MD("collide_with_motion_and_get_contacts:Variant","local_xform","local_motion","with_shape:Shape2D","shape_xform","shape_motion"),&Shape2D::collide_with_motion_and_get_contacts);
ADD_PROPERTY( PropertyInfo(Variant::REAL,"custom_solver_bias",PROPERTY_HINT_RANGE,"0,1,0.001"),_SCS("set_custom_solver_bias"),_SCS("get_custom_solver_bias"));
}
diff --git a/servers/physics/body_sw.cpp b/servers/physics/body_sw.cpp
index 8edbaf0b89..c66e73b430 100644
--- a/servers/physics/body_sw.cpp
+++ b/servers/physics/body_sw.cpp
@@ -382,7 +382,7 @@ void BodySW::set_space(SpaceSW *p_space){
}
-void BodySW::_compute_area_gravity(const AreaSW *p_area) {
+void BodySW::_compute_area_gravity_and_dampenings(const AreaSW *p_area) {
if (p_area->is_gravity_point()) {
if(p_area->get_gravity_distance_scale() > 0) {
@@ -394,6 +394,9 @@ void BodySW::_compute_area_gravity(const AreaSW *p_area) {
} else {
gravity += p_area->get_gravity_vector() * p_area->get_gravity();
}
+
+ area_linear_damp += p_area->get_linear_damp();
+ area_angular_damp += p_area->get_angular_damp();
}
void BodySW::integrate_forces(real_t p_step) {
@@ -409,13 +412,15 @@ void BodySW::integrate_forces(real_t p_step) {
int ac = areas.size();
bool replace = false;
- gravity=Vector3(0,0,0);
+ gravity = Vector3(0,0,0);
+ area_linear_damp = 0;
+ area_angular_damp = 0;
if (ac) {
areas.sort();
const AreaCMP *aa = &areas[0];
damp_area = aa[ac-1].area;
for(int i=ac-1;i>=0;i--) {
- _compute_area_gravity(aa[i].area);
+ _compute_area_gravity_and_dampenings(aa[i].area);
if (aa[i].area->get_space_override_mode() == PhysicsServer::AREA_SPACE_OVERRIDE_REPLACE) {
replace = true;
break;
@@ -424,20 +429,21 @@ void BodySW::integrate_forces(real_t p_step) {
}
if( !replace ) {
- _compute_area_gravity(def_area);
+ _compute_area_gravity_and_dampenings(def_area);
}
gravity*=gravity_scale;
+ // If less than 0, override dampenings with that of the Body
if (angular_damp>=0)
area_angular_damp=angular_damp;
- else
- area_angular_damp=damp_area->get_angular_damp();
+ //else
+ // area_angular_damp=damp_area->get_angular_damp();
if (linear_damp>=0)
area_linear_damp=linear_damp;
- else
- area_linear_damp=damp_area->get_linear_damp();
+ //else
+ // area_linear_damp=damp_area->get_linear_damp();
Vector3 motion;
diff --git a/servers/physics/body_sw.h b/servers/physics/body_sw.h
index 66d814bfd1..4c4c7818c5 100644
--- a/servers/physics/body_sw.h
+++ b/servers/physics/body_sw.h
@@ -130,7 +130,7 @@ class BodySW : public CollisionObjectSW {
BodySW *island_next;
BodySW *island_list_next;
- _FORCE_INLINE_ void _compute_area_gravity(const AreaSW *p_area);
+ _FORCE_INLINE_ void _compute_area_gravity_and_dampenings(const AreaSW *p_area);
_FORCE_INLINE_ void _update_inertia_tensor();
diff --git a/servers/physics/space_sw.cpp b/servers/physics/space_sw.cpp
index ba1c737530..778d20d3f1 100644
--- a/servers/physics/space_sw.cpp
+++ b/servers/physics/space_sw.cpp
@@ -175,13 +175,15 @@ int PhysicsDirectSpaceStateSW::intersect_shape(const RID& p_shape, const Transfo
if (!CollisionSolverSW::solve_static(shape,p_xform,col_obj->get_shape(shape_idx),col_obj->get_transform() * col_obj->get_shape_transform(shape_idx), NULL,NULL,NULL,p_margin,0))
continue;
- r_results[cc].collider_id=col_obj->get_instance_id();
- if (r_results[cc].collider_id!=0)
- r_results[cc].collider=ObjectDB::get_instance(r_results[cc].collider_id);
- else
- r_results[cc].collider=NULL;
- r_results[cc].rid=col_obj->get_self();
- r_results[cc].shape=shape_idx;
+ if (r_results) {
+ r_results[cc].collider_id=col_obj->get_instance_id();
+ if (r_results[cc].collider_id!=0)
+ r_results[cc].collider=ObjectDB::get_instance(r_results[cc].collider_id);
+ else
+ r_results[cc].collider=NULL;
+ r_results[cc].rid=col_obj->get_self();
+ r_results[cc].shape=shape_idx;
+ }
cc++;
diff --git a/servers/physics_2d/body_2d_sw.cpp b/servers/physics_2d/body_2d_sw.cpp
index 3afbbe5455..d0c5cbc77b 100644
--- a/servers/physics_2d/body_2d_sw.cpp
+++ b/servers/physics_2d/body_2d_sw.cpp
@@ -380,7 +380,7 @@ void Body2DSW::set_space(Space2DSW *p_space){
}
-void Body2DSW::_compute_area_gravity(const Area2DSW *p_area) {
+void Body2DSW::_compute_area_gravity_and_dampenings(const Area2DSW *p_area) {
if (p_area->is_gravity_point()) {
if(p_area->get_gravity_distance_scale() > 0) {
@@ -393,6 +393,8 @@ void Body2DSW::_compute_area_gravity(const Area2DSW *p_area) {
gravity += p_area->get_gravity_vector() * p_area->get_gravity();
}
+ area_linear_damp += p_area->get_linear_damp();
+ area_angular_damp += p_area->get_angular_damp();
}
void Body2DSW::integrate_forces(real_t p_step) {
@@ -406,13 +408,15 @@ void Body2DSW::integrate_forces(real_t p_step) {
int ac = areas.size();
bool replace = false;
- gravity=Vector2(0,0);
+ gravity = Vector2(0,0);
+ area_angular_damp = 0;
+ area_linear_damp = 0;
if (ac) {
areas.sort();
const AreaCMP *aa = &areas[0];
damp_area = aa[ac-1].area;
for(int i=ac-1;i>=0;i--) {
- _compute_area_gravity(aa[i].area);
+ _compute_area_gravity_and_dampenings(aa[i].area);
if (aa[i].area->get_space_override_mode() == Physics2DServer::AREA_SPACE_OVERRIDE_REPLACE) {
replace = true;
break;
@@ -420,19 +424,20 @@ void Body2DSW::integrate_forces(real_t p_step) {
}
}
if( !replace ) {
- _compute_area_gravity(def_area);
+ _compute_area_gravity_and_dampenings(def_area);
}
gravity*=gravity_scale;
+ // If less than 0, override dampenings with that of the Body2D
if (angular_damp>=0)
- area_angular_damp=angular_damp;
- else
- area_angular_damp=damp_area->get_angular_damp();
+ area_angular_damp = angular_damp;
+ //else
+ // area_angular_damp=damp_area->get_angular_damp();
if (linear_damp>=0)
- area_linear_damp=linear_damp;
- else
- area_linear_damp=damp_area->get_linear_damp();
+ area_linear_damp = linear_damp;
+ //else
+ // area_linear_damp=damp_area->get_linear_damp();
Vector2 motion;
bool do_motion=false;
diff --git a/servers/physics_2d/body_2d_sw.h b/servers/physics_2d/body_2d_sw.h
index 2fbfcaca60..8418c5dcd7 100644
--- a/servers/physics_2d/body_2d_sw.h
+++ b/servers/physics_2d/body_2d_sw.h
@@ -132,7 +132,7 @@ class Body2DSW : public CollisionObject2DSW {
Body2DSW *island_next;
Body2DSW *island_list_next;
- _FORCE_INLINE_ void _compute_area_gravity(const Area2DSW *p_area);
+ _FORCE_INLINE_ void _compute_area_gravity_and_dampenings(const Area2DSW *p_area);
friend class Physics2DDirectBodyStateSW; // i give up, too many functions to expose
diff --git a/servers/physics_2d_server.cpp b/servers/physics_2d_server.cpp
index b9d15d6e35..5d8446ed38 100644
--- a/servers/physics_2d_server.cpp
+++ b/servers/physics_2d_server.cpp
@@ -102,7 +102,7 @@ void Physics2DDirectBodyState::_bind_methods() {
ObjectTypeDB::bind_method(_MD("get_contact_collider_id","contact_idx"),&Physics2DDirectBodyState::get_contact_collider_id);
ObjectTypeDB::bind_method(_MD("get_contact_collider_object","contact_idx"),&Physics2DDirectBodyState::get_contact_collider_object);
ObjectTypeDB::bind_method(_MD("get_contact_collider_shape","contact_idx"),&Physics2DDirectBodyState::get_contact_collider_shape);
- ObjectTypeDB::bind_method(_MD("get_contact_collider_shape_metadata:var","contact_idx"),&Physics2DDirectBodyState::get_contact_collider_shape_metadata);
+ ObjectTypeDB::bind_method(_MD("get_contact_collider_shape_metadata:Variant","contact_idx"),&Physics2DDirectBodyState::get_contact_collider_shape_metadata);
ObjectTypeDB::bind_method(_MD("get_contact_collider_velocity_at_pos","contact_idx"),&Physics2DDirectBodyState::get_contact_collider_velocity_at_pos);
ObjectTypeDB::bind_method(_MD("get_step"),&Physics2DDirectBodyState::get_step);
ObjectTypeDB::bind_method(_MD("integrate_forces"),&Physics2DDirectBodyState::integrate_forces);
diff --git a/servers/visual/rasterizer.h b/servers/visual/rasterizer.h
index 50407f1b0f..d94067961f 100644
--- a/servers/visual/rasterizer.h
+++ b/servers/visual/rasterizer.h
@@ -610,6 +610,7 @@ public:
CanvasLight *shadows_next_ptr;
CanvasLight *filter_next_ptr;
CanvasLight *next_ptr;
+ CanvasLight *mask_next_ptr;
CanvasLight() {
enabled=true;
@@ -627,6 +628,7 @@ public:
mode=VS::CANVAS_LIGHT_MODE_ADD;
texture_cache=NULL;
next_ptr=NULL;
+ mask_next_ptr=NULL;
filter_next_ptr=NULL;
shadow_buffer_size=2048;
shadow_esm_mult=80;
@@ -792,6 +794,7 @@ public:
CanvasItem* material_owner;
ViewportRender *vp_render;
bool distance_field;
+ bool light_masked;
Rect2 global_rect_cache;
@@ -918,8 +921,8 @@ public:
return rect;
}
- void clear() { for (int i=0;i<commands.size();i++) memdelete( commands[i] ); commands.clear(); clip=false; rect_dirty=true; final_clip_owner=NULL; material_owner=NULL;}
- CanvasItem() { light_mask=1; vp_render=NULL; next=NULL; final_clip_owner=NULL; clip=false; final_opacity=1; blend_mode=VS::MATERIAL_BLEND_MODE_MIX; visible=true; rect_dirty=true; custom_rect=false; ontop=true; material_owner=NULL; material=NULL; copy_back_buffer=NULL; distance_field=false; }
+ void clear() { for (int i=0;i<commands.size();i++) memdelete( commands[i] ); commands.clear(); clip=false; rect_dirty=true; final_clip_owner=NULL; material_owner=NULL; light_masked=false; }
+ CanvasItem() { light_mask=1; vp_render=NULL; next=NULL; final_clip_owner=NULL; clip=false; final_opacity=1; blend_mode=VS::MATERIAL_BLEND_MODE_MIX; visible=true; rect_dirty=true; custom_rect=false; ontop=true; material_owner=NULL; material=NULL; copy_back_buffer=NULL; distance_field=false; light_masked=false; }
virtual ~CanvasItem() { clear(); if (copy_back_buffer) memdelete(copy_back_buffer); }
};
diff --git a/servers/visual/shader_language.cpp b/servers/visual/shader_language.cpp
index 68a60e26f5..0e10c7dfe4 100644
--- a/servers/visual/shader_language.cpp
+++ b/servers/visual/shader_language.cpp
@@ -2341,19 +2341,27 @@ Error ShaderLanguage::parse_flow_if(Parser& parser,Node *p_parent,Node **r_state
parser.advance();
+ if (parser.get_token_type()!=TK_CURLY_BRACKET_OPEN) {
+ parser.set_error("Expected statement block after 'if()'");
+ return ERR_PARSE_ERROR;
+ }
+
Node *substatement=NULL;
err = parse_statement(parser,cf,&substatement);
if (err)
return err;
-
cf->statements.push_back(substatement);
-
-
if (parser.get_token_type()==TK_CF_ELSE) {
parser.advance();
+
+ if (parser.get_token_type()!=TK_CURLY_BRACKET_OPEN) {
+ parser.set_error("Expected statement block after 'else'");
+ return ERR_PARSE_ERROR;
+ }
+
substatement=NULL;
err = parse_statement(parser,cf,&substatement);
if (err)
diff --git a/servers/visual/visual_server_raster.cpp b/servers/visual/visual_server_raster.cpp
index a94d4f64c7..79911121f5 100644
--- a/servers/visual/visual_server_raster.cpp
+++ b/servers/visual/visual_server_raster.cpp
@@ -6777,6 +6777,7 @@ void VisualServerRaster::_render_canvas_item_viewport(VisualServer* p_self,void
}
+
void VisualServerRaster::_render_canvas_item(CanvasItem *p_canvas_item,const Matrix32& p_transform,const Rect2& p_clip_rect, float p_opacity,int p_z,Rasterizer::CanvasItem **z_list,Rasterizer::CanvasItem **z_last_list,CanvasItem *p_canvas_clip,CanvasItem *p_material_owner) {
CanvasItem *ci = p_canvas_item;
@@ -6878,6 +6879,7 @@ void VisualServerRaster::_render_canvas_item(CanvasItem *p_canvas_item,const Mat
ci->final_opacity=opacity * ci->self_opacity;
ci->global_rect_cache=global_rect;
ci->global_rect_cache.pos-=p_clip_rect.pos;
+ ci->light_masked=false;
int zidx = p_z-CANVAS_ITEM_Z_MIN;
@@ -6905,7 +6907,34 @@ void VisualServerRaster::_render_canvas_item(CanvasItem *p_canvas_item,const Mat
}
-void VisualServerRaster::_render_canvas(Canvas *p_canvas,const Matrix32 &p_transform,Rasterizer::CanvasLight *p_lights) {
+void VisualServerRaster::_light_mask_canvas_items(int p_z,Rasterizer::CanvasItem *p_canvas_item,Rasterizer::CanvasLight *p_masked_lights) {
+
+ if (!p_masked_lights)
+ return;
+
+ Rasterizer::CanvasItem *ci=p_canvas_item;
+
+ while(ci) {
+
+ Rasterizer::CanvasLight *light=p_masked_lights;
+ while(light) {
+
+ if (ci->light_mask&light->item_mask && p_z>=light->z_min && p_z<=light->z_max && ci->global_rect_cache.intersects_transformed(light->xform_cache,light->rect_cache)) {
+ ci->light_masked=true;
+ }
+
+ light=light->mask_next_ptr;
+ }
+
+ ci=ci->next;
+ }
+
+
+
+
+}
+
+void VisualServerRaster::_render_canvas(Canvas *p_canvas,const Matrix32 &p_transform,Rasterizer::CanvasLight *p_lights,Rasterizer::CanvasLight *p_masked_lights) {
rasterizer->canvas_begin();
@@ -6938,6 +6967,11 @@ void VisualServerRaster::_render_canvas(Canvas *p_canvas,const Matrix32 &p_trans
for(int i=0;i<z_range;i++) {
if (!z_list[i])
continue;
+
+ if (p_masked_lights) {
+ _light_mask_canvas_items(CANVAS_ITEM_Z_MIN+i,z_list[i],p_masked_lights);
+ }
+
rasterizer->canvas_render_items(z_list[i],CANVAS_ITEM_Z_MIN+i,p_canvas->modulate,p_lights);
}
} else {
@@ -7072,6 +7106,7 @@ void VisualServerRaster::_draw_viewport(Viewport *p_viewport,int p_ofs_x, int p_
Rect2 clip_rect(0,0,viewport_rect.width,viewport_rect.height);
Rasterizer::CanvasLight *lights=NULL;
Rasterizer::CanvasLight *lights_with_shadow=NULL;
+ Rasterizer::CanvasLight *lights_with_mask=NULL;
Rect2 shadow_rect;
int light_count=0;
@@ -7119,9 +7154,14 @@ void VisualServerRaster::_draw_viewport(Viewport *p_viewport,int p_ofs_x, int p_
cl->radius_cache=cl->rect_cache.size.length();
}
+ if (cl->mode==CANVAS_LIGHT_MODE_MASK) {
+ cl->mask_next_ptr=lights_with_mask;
+ lights_with_mask=cl;
+ }
light_count++;
}
+
}
}
@@ -7190,7 +7230,7 @@ void VisualServerRaster::_draw_viewport(Viewport *p_viewport,int p_ofs_x, int p_
ptr=ptr->filter_next_ptr;
}
- _render_canvas( E->get()->canvas,xform,canvas_lights );
+ _render_canvas( E->get()->canvas,xform,canvas_lights,lights_with_mask );
i++;
if (scenario_draw_canvas_bg && E->key().layer>=scenario_canvas_max_layer) {
diff --git a/servers/visual/visual_server_raster.h b/servers/visual/visual_server_raster.h
index b6a5ca6308..e0127faf41 100644
--- a/servers/visual/visual_server_raster.h
+++ b/servers/visual/visual_server_raster.h
@@ -633,7 +633,9 @@ class VisualServerRaster : public VisualServer {
static void _render_canvas_item_viewport(VisualServer* p_self,void *p_vp,const Rect2& p_rect);
void _render_canvas_item_tree(CanvasItem *p_canvas_item, const Matrix32& p_transform, const Rect2& p_clip_rect, const Color &p_modulate, Rasterizer::CanvasLight *p_lights);
void _render_canvas_item(CanvasItem *p_canvas_item, const Matrix32& p_transform, const Rect2& p_clip_rect, float p_opacity, int p_z, Rasterizer::CanvasItem **z_list, Rasterizer::CanvasItem **z_last_list, CanvasItem *p_canvas_clip, CanvasItem *p_material_owner);
- void _render_canvas(Canvas *p_canvas, const Matrix32 &p_transform, Rasterizer::CanvasLight *p_lights);
+ void _render_canvas(Canvas *p_canvas, const Matrix32 &p_transform, Rasterizer::CanvasLight *p_lights, Rasterizer::CanvasLight *p_masked_lights);
+ void _light_mask_canvas_items(int p_z,Rasterizer::CanvasItem *p_canvas_item,Rasterizer::CanvasLight *p_masked_lights);
+
Vector<Vector3> _camera_generate_endpoints(Instance *p_light,Camera *p_camera,float p_range_min, float p_range_max);
Vector<Plane> _camera_generate_orthogonal_planes(Instance *p_light,Camera *p_camera,float p_range_min, float p_range_max);
diff --git a/servers/visual_server.h b/servers/visual_server.h
index 96c3e15cde..c5100b8d30 100644
--- a/servers/visual_server.h
+++ b/servers/visual_server.h
@@ -1041,6 +1041,7 @@ public:
CANVAS_LIGHT_MODE_ADD,
CANVAS_LIGHT_MODE_SUB,
CANVAS_LIGHT_MODE_MIX,
+ CANVAS_LIGHT_MODE_MASK,
};
virtual void canvas_light_set_mode(RID p_light, CanvasLightMode p_mode)=0;
diff --git a/tools/collada/collada.cpp b/tools/collada/collada.cpp
index deec5f60c7..107ffac626 100644
--- a/tools/collada/collada.cpp
+++ b/tools/collada/collada.cpp
@@ -1683,8 +1683,12 @@ Collada::Node* Collada::_parse_visual_scene_node(XMLParser& parser) {
if ( parser.has_attribute("sid") ) { //bones may not have sid
joint->sid=parser.get_attribute_value("sid");
// state.bone_map[joint->sid]=joint;
- } else if (state.idref_joints.has(name))
+ } else if (state.idref_joints.has(name)) {
joint->sid=name; //kind of a cheat but..
+ } else if (parser.has_attribute("name")) {
+ joint->sid=parser.get_attribute_value_safe("name");
+ }
+
if (joint->sid!="") {
state.sid_to_node_map[joint->sid]=id;
diff --git a/tools/doc/doc_data.cpp b/tools/doc/doc_data.cpp
index c1d3e5e314..3161e380b9 100644
--- a/tools/doc/doc_data.cpp
+++ b/tools/doc/doc_data.cpp
@@ -187,14 +187,13 @@ void DocData::generate(bool p_basic_types) {
arginfo=E->get().return_val;
- if (arginfo.type==Variant::NIL)
- continue;
#ifdef DEBUG_METHODS_ENABLED
if (m && m->get_return_type()!=StringName())
method.return_type=m->get_return_type();
- else
+ else if (arginfo.type!=Variant::NIL) {
#endif
method.return_type=(arginfo.hint==PROPERTY_HINT_RESOURCE_TYPE)?arginfo.hint_string:Variant::get_type_name(arginfo.type);
+ }
} else {
diff --git a/tools/docdump/class_list.xml b/tools/docdump/class_list.xml
deleted file mode 100644
index 3d07f84177..0000000000
--- a/tools/docdump/class_list.xml
+++ /dev/null
@@ -1,13625 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<doc version="0.99.1384-pre-beta" name="Engine Types">
-<class name="Animation" inherits="Resource" category="Resources">
- <brief_description>
- Contains data used to animate everything in the engine.
- </brief_description>
- <description>
- An Animation resource contains data used to animate everything in the engine. Animations are divided into tracks, and each track must be linked to a node. The state of that node can be changed through time, by adding timed keys (signals) to the track. [html br/] Animations are just data containers, and must be added to odes such as an [AnimationPlayer] or [AnimationTreePlayer] to be played back.
- </description>
- <methods>
- <method name="add_track" >
- <argument index="0" name="type" type="int">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- Add a track to the Animation. The track type must be specified as any of the values in te TYPE_* enumeration.
- </description>
- </method>
- <method name="remove_track" >
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- Remove a track by specifying the track index.
- </description>
- </method>
- <method name="get_track_count" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- Return the amount of tracks in the animation.
- </description>
- </method>
- <method name="track_get_type" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- Get the type of a track.
- </description>
- </method>
- <method name="track_get_path" qualifiers="const" >
- <return type="NodePath">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- Get the path of a track. for more information on the path format, see [method track_set_path]
- </description>
- </method>
- <method name="track_set_path" >
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="path" type="NodePath">
- </argument>
- <description>
- Set the path of a track. Paths must be valid scene-tree paths to a node, and must be specified starting from the parent node of the node that will reproduce the animation. Tracks that control properties or bones must append their name after the path, separated by &quot;:&quot;. Example: &quot;character/skeleton:ankle&quot; or &quot;character/mesh:transform/local:&quot;
- </description>
- </method>
- <method name="track_move_up" >
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="track_move_down" >
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="transform_track_insert_key" >
- <return type="int">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="time" type="real">
- </argument>
- <argument index="2" name="loc" type="Vector3">
- </argument>
- <argument index="3" name="rot" type="Quat">
- </argument>
- <argument index="4" name="scale" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="track_insert_key" >
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="key" type="real">
- </argument>
- <argument index="2" name="arg2" type="var">
- </argument>
- <argument index="3" name="arg3" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="track_remove_key" >
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="key_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="track_get_key_count" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- Return the amount of keys in a given track.
- </description>
- </method>
- <method name="track_get_key_value" qualifiers="const" >
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="track_get_key_time" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- Return the time at which the key is located.
- </description>
- </method>
- <method name="track_find_key" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="time" type="real">
- </argument>
- <argument index="2" name="exact" type="bool" default="false">
- </argument>
- <description>
- </description>
- </method>
- <method name="track_set_interpolation_type" >
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="interpolation" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="track_get_interpolation_type" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="transform_track_interpolate" qualifiers="const" >
- <return type="Array">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="time_sec" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="value_track_interpolate" qualifiers="const" >
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="time_sec" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="blend_track_interpolate" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="time_sec" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="property_track_get_key_indices" qualifiers="const" >
- <return type="IntArray">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="time_sec" type="real">
- </argument>
- <argument index="2" name="delta" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="property_track_get_key_value" qualifiers="const" >
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="key_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="property_track_get_name" qualifiers="const" >
- <return type="String">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="key_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="method_track_get_key_indices" qualifiers="const" >
- <return type="IntArray">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="time_sec" type="real">
- </argument>
- <argument index="2" name="delta" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="method_track_get_name" qualifiers="const" >
- <return type="String">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="key_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="method_track_get_params" qualifiers="const" >
- <return type="Array">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="key_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_length" >
- <argument index="0" name="time_sec" type="real">
- </argument>
- <description>
- Set the total length of the animation (in seconds). Note that length is not delimited by the last key, as this one may be before or after the end to ensure correct interpolation and looping.
- </description>
- </method>
- <method name="get_length" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- Return the total length of the animation (in seconds).
- </description>
- </method>
- <method name="set_loop" >
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- Set a flag indicating that the animation must loop. This is uses for correct interpolation of animation cycles, and for hinting the player that it must restart the animation once it&apos;s over.
- </description>
- </method>
- <method name="has_loop" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- Return wether the animation has the loop flag set.
- </description>
- </method>
- </methods>
- <constants>
- <constant name="INTERPOLATION_CUBIC" value="2">
- </constant>
- <constant name="TYPE_TRANSFORM" value="0">
- Transform tracks are used to change node local transforms or skeleton pose bones. Transitions are Interpolated.
- </constant>
- <constant name="TYPE_BLEND" value="4">
- </constant>
- <constant name="TYPE_PROPERTY" value="2">
- TODO will be changed and bleh
- </constant>
- <constant name="TYPE_VALUE" value="1">
- Value tracks set values in node properties, but only those which can be Interpolated.
- </constant>
- <constant name="INTERPOLATION_NEAREST" value="0">
- </constant>
- <constant name="INTERPOLATION_LINEAR" value="1">
- </constant>
- <constant name="TYPE_METHOD" value="3">
- </constant>
- </constants>
-</class>
-<class name="AnimationPlayer" inherits="Misc" category="Nodes/Animation Nodes">
- <brief_description>
- Container and player of [Animaton] resources.
- </brief_description>
- <description>
- An animation player is used for general purpose playback of [Animation] resources. It contains a dictionary of animations (referenced by name) and custom blend times between their transitions. Additionally, animations can be played and blended in diferent channels.
- </description>
- <methods>
- <method name="add_animation" >
- <return type="int">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="animation" type="Object">
- </argument>
- <description>
- Add an animation resource to the player, which will be later referenced by the &quot;name&quot; argument.
- </description>
- </method>
- <method name="remove_animation" >
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- Remove an animation from the player (by supplying the same name used to add it).
- </description>
- </method>
- <method name="rename_animation" >
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="newname" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_animation" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- Request wether an [Animation] name exist within the player.
- </description>
- </method>
- <method name="get_animation" qualifiers="const" >
- <return type="Object">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- Get an [Animation] resource by requesting a name.
- </description>
- </method>
- <method name="get_animation_list" qualifiers="const" >
- <return type="StringArray">
- </return>
- <description>
- Get the list of names of the animations stored in the player.
- </description>
- </method>
- <method name="set_blend_time" >
- <argument index="0" name="anim_from" type="String">
- </argument>
- <argument index="1" name="anim_to" type="String">
- </argument>
- <argument index="2" name="sec" type="real">
- </argument>
- <description>
- Specify a blend time (in seconds) between two animations, referemced by their names.
- </description>
- </method>
- <method name="get_blend_time" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="anim_from" type="String">
- </argument>
- <argument index="1" name="anim_to" type="String">
- </argument>
- <description>
- Get the blend time between two animations, referemced by their names.
- </description>
- </method>
- <method name="play" >
- <argument index="0" name="name" type="String" default="&quot;&quot;">
- </argument>
- <argument index="1" name="channel" type="int" default="0">
- </argument>
- <description>
- Start playback of an animation (referenced by &quot;name&quot;). Optionally a channel can be specified.
- </description>
- </method>
- <method name="stop" >
- <argument index="0" name="channel" type="int" default="0">
- </argument>
- <description>
- Start playback of an animation channel. (or channel 0 if none is provided).
- </description>
- </method>
- <method name="stop_all" >
- <description>
- Stop playback on all animation channels.
- </description>
- </method>
- <method name="is_playing" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="channel" type="int" default="0">
- </argument>
- <description>
- Return wether an animation chanel is playing (or channel 0 if none is provided).
- </description>
- </method>
- <method name="get_current_animation" qualifiers="const" >
- <return type="String">
- </return>
- <argument index="0" name="channel" type="int" default="0">
- </argument>
- <description>
- Return the name of the animation being played in a channel (or channel 0 if none is provided).
- </description>
- </method>
- <method name="set_pause" >
- <argument index="0" name="paused" type="bool">
- </argument>
- <description>
- Pause the playback in all animation channels.
- </description>
- </method>
- <method name="is_paused" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- Return [html i]true[html /i] if all playback is paused.
- </description>
- </method>
- <method name="set_speed" >
- <argument index="0" name="speed" type="real">
- </argument>
- <argument index="1" name="channel" type="int" default="0">
- </argument>
- <description>
- Set a speed scaling ratio in a given animation channel (or channel 0 if none is provided). Default ratio is [html i]1[html /i] (no scaling).
- </description>
- </method>
- <method name="get_speed" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="channel" type="int" default="0">
- </argument>
- <description>
- Get the speed scaling ratio in a given animation channel (or channel 0 if none is provided). Default ratio is [html i]1[html /i] (no scaling).
- </description>
- </method>
- <method name="seek" >
- <argument index="0" name="pos_sec" type="real">
- </argument>
- <argument index="1" name="channel" type="int" default="0">
- </argument>
- <description>
- Seek the animation in an animation channel (or channel 0 if none is provided) to a specific position (in seconds).
- </description>
- </method>
- <method name="get_pos" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="channel" type="int" default="0">
- </argument>
- <description>
- Return the playback position (in seconds) in an animation channel (or channel 0 if none is provided)
- </description>
- </method>
- <method name="find_animation" qualifiers="const" >
- <return type="String">
- </return>
- <argument index="0" name="animation" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear_caches" >
- <description>
- The animation player creates caches for faster access to the nodes it will animate. However, if a specific node is removed, it may not notice it, so clear_caches will force the player to search for the nodes again.
- </description>
- </method>
- </methods>
- <constants>
- <constant name="MAX_CHANNELS" value="8">
- Maximum amount of animation channels.
- </constant>
- </constants>
-</class>
-<class name="AnimationTreePlayer" inherits="Node" category="Nodes/Animation Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="add_node" >
- <argument index="0" name="type" type="int">
- </argument>
- <argument index="1" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_node_id" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="node_set_name" >
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="node_get_name" qualifiers="const" >
- <return type="String">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="node_get_input_count" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="animation_node_set_animation" >
- <argument index="0" name="arg0" type="int">
- </argument>
- <argument index="1" name="arg1" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="animation_node_get_animation" qualifiers="const" >
- <return type="Object">
- </return>
- <argument index="0" name="arg0" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="oneshot_node_set_fadein_time" >
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="time_sec" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="oneshot_node_get_fadein_time" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="oneshot_node_set_fadeout_time" >
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="time_sec" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="oneshot_node_get_fadeout_time" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="oneshot_node_set_autorestart" >
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="oneshot_node_set_autorestart_delay" >
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="delay_sec" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="oneshot_node_set_autorestart_random_delay" >
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="rand_sec" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="oneshot_node_has_autorestart" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="oneshot_node_get_autorestart_delay" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="oneshot_node_get_autorestart_random_delay" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="oneshot_node_start" >
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="oneshot_node_stop" >
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="oneshot_node_is_active" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="mix_node_set_amount" >
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="ratio" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="mix_node_get_amount" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="blend2_node_set_amount" >
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="blend" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="blend2_node_get_amount" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="blend3_node_set_amount" >
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="blend" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="blend3_node_get_amount" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="blend4_node_set_amount" >
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="blend" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="blend4_node_get_amount" qualifiers="const" >
- <return type="Vector2">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="timescale_node_set_scale" >
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="scale" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="timescale_node_get_scale" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="timeseek_node_seek" >
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="pos_sec" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="transition_node_set_input_count" >
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="count" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="transition_node_get_input_count" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="transition_node_delete_input" >
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="input_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="transition_node_set_input_auto_advance" >
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="input_idx" type="int">
- </argument>
- <argument index="2" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="transition_node_has_input_auto_advance" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="input_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="transition_node_set_xfade_time" >
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="time_sec" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="transition_node_get_xfade_time" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="transition_node_set_current" >
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="input_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="transition_node_get_current" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="node_set_pos" >
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="screen_pos" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="node_get_pos" qualifiers="const" >
- <return type="Vector2">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="remove_node" >
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="connect" >
- <return type="int">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="dst_id" type="int">
- </argument>
- <argument index="2" name="dst_input_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_connected" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="dst_id" type="int">
- </argument>
- <argument index="2" name="dst_input_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="disconnect" >
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="dst_input_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_active" >
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_active" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_base_path" >
- <argument index="0" name="path" type="NodePath">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_base_path" qualifiers="const" >
- <return type="NodePath">
- </return>
- <description>
- </description>
- </method>
- <method name="reset" >
- <description>
- </description>
- </method>
- <method name="recompute_caches" >
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="AudioServer" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="sample_create" >
- <return type="RID">
- </return>
- <argument index="0" name="format" type="int">
- </argument>
- <argument index="1" name="stereo" type="bool">
- </argument>
- <argument index="2" name="length" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_set_description" >
- <argument index="0" name="sample" type="RID">
- </argument>
- <argument index="1" name="description" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_get_description" qualifiers="const" >
- <return type="String">
- </return>
- <argument index="0" name="sample" type="RID">
- </argument>
- <argument index="1" name="arg1" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_get_format" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="sample" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_is_stereo" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="sample" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_get_length" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="sample" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_set_signed_data" >
- <argument index="0" name="sample" type="RID">
- </argument>
- <argument index="1" name="data" type="RealArray">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_set_data" >
- <argument index="0" name="sample" type="RID">
- </argument>
- <argument index="1" name="arg1" type="RawArray">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_get_data" qualifiers="const" >
- <return type="RawArray">
- </return>
- <argument index="0" name="sample" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_set_mix_rate" >
- <argument index="0" name="sample" type="RID">
- </argument>
- <argument index="1" name="mix_rate" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_get_mix_rate" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="sample" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_set_loop_format" >
- <argument index="0" name="sample" type="RID">
- </argument>
- <argument index="1" name="loop_format" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_get_loop_format" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="sample" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_set_loop_begin" >
- <argument index="0" name="sample" type="RID">
- </argument>
- <argument index="1" name="pos" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_get_loop_begin" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="sample" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_set_loop_end" >
- <argument index="0" name="sample" type="RID">
- </argument>
- <argument index="1" name="pos" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="sample_get_loop_end" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="sample" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_create" >
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="voice_play" >
- <argument index="0" name="voice" type="RID">
- </argument>
- <argument index="1" name="sample" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_set_volume" >
- <argument index="0" name="voice" type="RID">
- </argument>
- <argument index="1" name="volume" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_set_pan" >
- <argument index="0" name="voice" type="RID">
- </argument>
- <argument index="1" name="pan" type="real">
- </argument>
- <argument index="2" name="depth" type="real" default="0">
- </argument>
- <argument index="3" name="height" type="real" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_set_filter" >
- <argument index="0" name="voice" type="RID">
- </argument>
- <argument index="1" name="type" type="int">
- </argument>
- <argument index="2" name="cutoff" type="real">
- </argument>
- <argument index="3" name="resonance" type="real">
- </argument>
- <argument index="4" name="gain" type="real" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_set_chorus" >
- <argument index="0" name="voice" type="RID">
- </argument>
- <argument index="1" name="chorus" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_set_reverb" >
- <argument index="0" name="voice" type="RID">
- </argument>
- <argument index="1" name="room" type="int">
- </argument>
- <argument index="2" name="reverb" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_set_mix_rate" >
- <argument index="0" name="voice" type="RID">
- </argument>
- <argument index="1" name="rate" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_set_positional" >
- <argument index="0" name="voice" type="RID">
- </argument>
- <argument index="1" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_get_volume" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="voice" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_get_pan" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="voice" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_get_pan_height" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="voice" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_get_pan_depth" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="voice" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_get_filter_type" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="voice" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_get_filter_cutoff" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="voice" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_get_filter_resonance" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="voice" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_get_chorus" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="voice" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_get_reverb_type" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="voice" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_get_reverb" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="voice" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_get_mix_rate" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="voice" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_is_positional" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="voice" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_stop" >
- <argument index="0" name="voice" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="free" >
- <argument index="0" name="rid" type="RID">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="SAMPLE_LOOP_PING_PONG" value="2">
- </constant>
- <constant name="SAMPLE_FORMAT_IMA_ADPCM" value="2">
- </constant>
- <constant name="FILTER_HIPASS" value="3">
- </constant>
- <constant name="FILTER_NONE" value="0">
- </constant>
- <constant name="REVERB_HALL" value="3">
- </constant>
- <constant name="REVERB_MEDIUM" value="1">
- </constant>
- <constant name="REVERB_SMALL" value="0">
- </constant>
- <constant name="FILTER_LOWPASS" value="1">
- </constant>
- <constant name="SAMPLE_LOOP_FORWARD" value="1">
- </constant>
- <constant name="REVERB_LARGE" value="2">
- </constant>
- <constant name="SAMPLE_FORMAT_PCM16" value="1">
- </constant>
- <constant name="FILTER_BANDLIMIT" value="6">
- </constant>
- <constant name="FILTER_NOTCH" value="4">
- </constant>
- <constant name="FILTER_BANDPASS" value="2">
- </constant>
- <constant name="SAMPLE_FORMAT_PCM8" value="0">
- </constant>
- <constant name="SAMPLE_LOOP_NONE" value="0">
- </constant>
- </constants>
-</class>
-<class name="AudioServerSW" inherits="AudioServer" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="AudioStream" inherits="Resource" category="Resources">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="play" >
- <description>
- </description>
- </method>
- <method name="stop" >
- <description>
- </description>
- </method>
- <method name="is_playing" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_loop" >
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_loop" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="get_stream_name" qualifiers="const" >
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="get_loop_count" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="seek_pos" >
- <argument index="0" name="pos" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_pos" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_update_mode" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="update" >
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="UPDATE_IDLE" value="1">
- </constant>
- <constant name="UPDATE_THREAD" value="2">
- </constant>
- <constant name="UPDATE_NONE" value="0">
- </constant>
- </constants>
-</class>
-<class name="AudioStreamOGG" inherits="AudioStream" category="Resources">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="BCSFX" inherits="ScenarioFX" category="Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="BGColorFX" inherits="ScenarioFX" category="Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="BGImageFX" inherits="ScenarioFX" category="Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="BaseButton" inherits="Control" category="Nodes/GUI Nodes">
- <brief_description>
- Provides a base class for different kinds of buttons.
- </brief_description>
- <description>
- BaseButton is the abstract base class for buttons, so it shouldn&apos;t be used directly (It doesnt display anything). Other types of buttons inherit from it.
- </description>
- <methods>
- <method name="set_pressed" >
- <argument index="0" name="pressed" type="bool">
- </argument>
- <description>
- Set the button to pressed state (only if toggle_mode is active).
- </description>
- </method>
- <method name="is_pressed" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- Return when the button is pressed (only if toggle_mode is active).
- </description>
- </method>
- <method name="set_toggle_mode" >
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- Set the button toggle_mode property. Toggle mode makes the button flip state between pressed and unpressed each time its area is clicked.
- </description>
- </method>
- <method name="is_toggle_mode" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- Return the toggle_mode property (see [method set_toggle_mode]).
- </description>
- </method>
- <method name="set_disabled" >
- <argument index="0" name="disabled" type="bool">
- </argument>
- <description>
- Set the button into disabled state. When a button is disabled, it can&apos;t be clicked or toggled.
- </description>
- </method>
- <method name="is_disabled" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- Return wether the button is in disabled state (see [method set_disabled]).
- </description>
- </method>
- <method name="set_click_on_press" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- Set the button click_on_press mode. This mode generates click signals when a mousebutton or key is just pressed (by default signals are generated when the button/keys are released and both press and release occur in the visual area of the Button).
- </description>
- </method>
- <method name="get_click_on_press" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- Return the state of the click_on_press property (see [method set_click_on_press]).
- </description>
- </method>
- </methods>
- <signals>
- <signal name="toggled">
- <argument index="0" name="pressed" type="bool">
- </argument>
- <description>
- This signal is emitted when the button was just toggled between pressed and normal states (only if toggle_mode is active). The new state is contained in the [html i]pressed[html /i] argument.
- </description>
- </signal>
- <signal name="pressed">
- <description>
- This signal is emitted every time the button is pressed or toggled.
- </description>
- </signal>
- </signals>
- <constants>
- </constants>
-</class>
-<class name="BodyShape" inherits="Spatial" category="Nodes/3D/3D Physics Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="BoxShape" inherits="Shape" category="Resources">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_extents" >
- <argument index="0" name="extents" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_extents" qualifiers="const" >
- <return type="Vector3">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Button" inherits="BaseButton" category="Nodes/GUI Nodes">
- <brief_description>
- Standard themed Button.
- </brief_description>
- <description>
- Button is just the standard themed button: [html image src=&quot;images/button_example.png&quot;/] It can contain a text and an icon, and will display them according to the current theme.
- </description>
- <methods>
- <method name="set_text" >
- <argument index="0" name="text" type="String">
- </argument>
- <description>
- Set the button text, which will be displayed inside the button area.
- </description>
- </method>
- <method name="get_text" qualifiers="const" >
- <return type="String">
- </return>
- <description>
- Return the button text.
- </description>
- </method>
- <method name="set_icon" >
- <argument index="0" name="texture" type="Object">
- </argument>
- <description>
- Set the button icon, which will be displayed to the left of the text.
- </description>
- </method>
- <method name="get_icon" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- Return the button icon.
- </description>
- </method>
- <method name="set_flat" >
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- Set the [html i]flat[html /i] property of a Button. Flat buttons don&apos;t display decoration unless hoevered or pressed.
- </description>
- </method>
- <method name="set_clip_text" >
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- Set the [html i]clip_text[html /i] property of a Button. When this property is enabled, text that is too large to fit the button is clipped, when disabled (default) the Button will always be wide enough to hold the text.
- </description>
- </method>
- <method name="get_clip_text" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- Return the state of the [html i]clip_text[html /i] property (see [method set_clip_text])
- </description>
- </method>
- <method name="is_flat" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- Return the state of the [html i]flat[html /i] property (see [method set_flat])
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Camera" inherits="Spatial" category="Nodes/3D">
- <brief_description>
- Camera node, displays from a point of view.
- </brief_description>
- <description>
- Camera is a special node that displays what is visible from its current location. Cameras register themselves in the nearest [Viewport] node (when ascending the tree). Only one camera can be active per viewport. If no viewport is available ascending the tree, the Camera will register in the global viewport. In other words, a Camera just provides [html i]3D[html /i] display capabilities to a [Viewport], and, without one, a [Scene] registered in that [Viewport] (or higher viewports) can&apos;t be displayed.
- </description>
- <methods>
- <method name="project_ray_normal" qualifiers="const" >
- <return type="Vector3">
- </return>
- <argument index="0" name="screen_point" type="Vector2">
- </argument>
- <description>
- Return a normal vector in worldspace, that is the result of projecting a point on the [Viewport] rectangle by the camera proyection. This is useful for casting rays in the form of (origin,normal) for object intersection or picking.
- </description>
- </method>
- <method name="project_ray_origin" qualifiers="const" >
- <return type="Vector3">
- </return>
- <argument index="0" name="screen_point" type="Vector2">
- </argument>
- <description>
- Return a 3D position in worldspace, that is the result of projecting a point on the [Viewport] rectangle by the camera proyection. This is useful for casting rays in the form of (origin,normal) for object intersection or picking.
- </description>
- </method>
- <method name="unproject_position" qualifiers="const" >
- <return type="Vector2">
- </return>
- <argument index="0" name="world_point" type="Vector3">
- </argument>
- <description>
- Return how a 3D point in worldpsace maps to a 2D coordinate in the [Viewport] rectangle.
- </description>
- </method>
- <method name="set_perspective" >
- <argument index="0" name="fov" type="real">
- </argument>
- <argument index="1" name="z_near" type="real">
- </argument>
- <argument index="2" name="z_far" type="real">
- </argument>
- <description>
- Set the camera projection to perspective mode, by specifying a [html i]FOV[html /i] angle in degrees (FOV means Field of View), and the [html i]near[html /i] and [html i]far[html /i] clip planes in worldspace units.
- </description>
- </method>
- <method name="set_orthogonal" >
- <argument index="0" name="size" type="real">
- </argument>
- <argument index="1" name="z_near" type="real">
- </argument>
- <argument index="2" name="z_far" type="real">
- </argument>
- <description>
- Set the camera projection to orthogonal mode, by specifying a rectangle and the [html i]near[html /i] and [html i]far[html /i] clip planes in worldspace units. (As a hint, 2D games often use this projection, with values specified in pixels)
- </description>
- </method>
- <method name="make_current" >
- <description>
- Make this camera the current Camera for the [Viewport] (see class description). If the Camera Node is outside the scene tree, it will attempt to become current once it&apos;s added.
- </description>
- </method>
- <method name="clear_current" >
- <description>
- </description>
- </method>
- <method name="is_current" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- Return wether the Camera is the current one in the [Viewport], or plans to become current (if outside the scene tree).
- </description>
- </method>
- <method name="get_camera_transform" qualifiers="const" >
- <return type="Transform">
- </return>
- <description>
- Get the camera transform. Subclassed cameras (such as CharacterCamera) may provide different transforms than the [Node] transform.
- </description>
- </method>
- <method name="get_fov" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="PROJECTION_PERSPECTIVE" value="0">
- Perspective Projection (object&apos;s size on the screen becomes smaller when far away).
- </constant>
- <constant name="PROJECTION_ORTHOGONAL" value="1">
- Orthogonal Projection (objects remain the same size on the screen no matter how far away they are).
- </constant>
- </constants>
-</class>
-<class name="CanvasItem" inherits="Node" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="edit_set_state" >
- <argument index="0" name="state" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="edit_get" qualifiers="const" >
- <description>
- </description>
- </method>
- <method name="edit_set_rect" >
- <argument index="0" name="rect" type="Rect2">
- </argument>
- <description>
- </description>
- </method>
- <method name="edit_rotate" >
- <argument index="0" name="degrees" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_item_rect" qualifiers="const" >
- <return type="Rect2">
- </return>
- <description>
- </description>
- </method>
- <method name="get_canvas_item" qualifiers="const" >
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="is_visible" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="is_hidden" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="show" >
- <description>
- </description>
- </method>
- <method name="hide" >
- <description>
- </description>
- </method>
- <method name="update" >
- <description>
- </description>
- </method>
- <method name="set_as_toplevel" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_set_as_toplevel" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_blend_mode" >
- <argument index="0" name="blend_mode" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_blend_mode" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_opacity" >
- <argument index="0" name="opacity" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_opacity" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_self_opacity" >
- <argument index="0" name="self_opacity" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_self_opacity" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="item_rect_changed">
- <description>
- </description>
- </signal>
- <signal name="draw">
- <description>
- </description>
- </signal>
- <signal name="visibility_changed">
- <description>
- </description>
- </signal>
- <signal name="hide">
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- <constant name="NOTIFICATION_EXIT_CANVAS" value="33">
- </constant>
- <constant name="NOTIFICATION_DRAW" value="30">
- </constant>
- <constant name="BLEND_MODE_MUL" value="3">
- </constant>
- <constant name="BLEND_MODE_MIX" value="0">
- </constant>
- <constant name="NOTIFICATION_ENTER_CANVAS" value="32">
- </constant>
- <constant name="NOTIFICATION_VISIBILITY_CHANGED" value="31">
- </constant>
- <constant name="BLEND_MODE_ADD" value="1">
- </constant>
- <constant name="BLEND_MODE_SUB" value="2">
- </constant>
- </constants>
-</class>
-<class name="CapsuleShape" inherits="Shape" category="Resources">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_radius" >
- <argument index="0" name="radius" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_radius" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_height" >
- <argument index="0" name="height" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_height" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="CheckButton" inherits="BaseButton" category="Nodes/GUI Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_text" >
- <argument index="0" name="text" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_text" qualifiers="const" >
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="ColorPicker" inherits="Control" category="Nodes/GUI Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_color" >
- <argument index="0" name="arg0" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_color" qualifiers="const" >
- <return type="Color">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="color_changed">
- <argument index="0" name="color" type="Color">
- </argument>
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- </constants>
-</class>
-<class name="ConcavePolygonShape" inherits="Shape" category="Resources">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_faces" >
- <argument index="0" name="faces" type="Vector3Array">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_faces" qualifiers="const" >
- <return type="Vector3Array">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="ConfirmationDialog" inherits="Popup" category="Nodes/GUI Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="get_ok" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="get_cancel" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="set_text" >
- <argument index="0" name="text" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_hide_on_ok" >
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_hide_on_ok" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="register_text_enter" >
- <argument index="0" name="line_edit" type="Object">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="confirmed">
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- </constants>
-</class>
-<class name="Control" inherits="CanvasItem" category="Core">
- <brief_description>
- Control is the base class Node for all the GUI components.
- </brief_description>
- <description>
- Control is the base class Node for all the GUI components. Every GUI component inherits from it, directly or indirectly. Control Nodes contain positions relative to their parent control nodes. In this way, sections of the scene tree made of contiguous Control Nodes, become user interfaces.[html br/]&#10;&#9;Controls contain a [html i]canvas item[html /i] RID from the visual server, and can draw to it when receiving a NOTIFICATION_DRAW.[html br/]&#10;&#9;TODO: Explain margins and anchors[html br/]&#10;&#9;TODO: explain focus[html br/]
- </description>
- <methods>
- <method name="accept_event" >
- <description>
- </description>
- </method>
- <method name="get_minimum_size" qualifiers="const" >
- <return type="Vector2">
- </return>
- <description>
- Return the minimum size this Control can shrink to. A control will never be displayed or resized smaller than its minimum size.
- </description>
- </method>
- <method name="is_window" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- Return wether this control is a [html i]window[html /i]. Controls are considered windows when their parent [Node] is not a Control.
- </description>
- </method>
- <method name="get_window" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- Return the [html i]window[html /i] for this control, ascending the scene tree (see [method is_window]).
- </description>
- </method>
- <method name="set_anchor" >
- <argument index="0" name="margin" type="int">
- </argument>
- <argument index="1" name="anchor_mode" type="int">
- </argument>
- <description>
- Change the anchor (ANCHOR_BEGIN, ANCHOR_END, ANCHOR_RATIO) type for a margin (MARGIN_LEFT, MARGIN_TOP, MARGIN_RIGHT, MARGIN_BOTTOM). Changing the anchor mode converts the current margin offset from the previos anchor mode to the new one, so margin offsets ([method set_margin]) must be done after setting anchors, or at the same time ([method set_anchor_and_margin]).
- </description>
- </method>
- <method name="get_anchor" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="margin" type="int">
- </argument>
- <description>
- Return the anchor type (ANCHOR_BEGIN, ANCHOR_END, ANCHOR_RATIO) for a given margin (MARGIN_LEFT, MARGIN_TOP, MARGIN_RIGHT, MARGIN_BOTTOM).
- </description>
- </method>
- <method name="set_margin" >
- <argument index="0" name="margin" type="int">
- </argument>
- <argument index="1" name="offset" type="real">
- </argument>
- <description>
- Set a margin offset. Margin can be one of (MARGIN_LEFT, MARGIN_TOP, MARGIN_RIGHT, MARGIN_BOTTOM). Offset value being set depends on the anchor mode.
- </description>
- </method>
- <method name="set_anchor_and_margin" >
- <argument index="0" name="margin" type="int">
- </argument>
- <argument index="1" name="anchor_mode" type="int">
- </argument>
- <argument index="2" name="offset" type="real">
- </argument>
- <description>
- Change the anchor (ANCHOR_BEGIN, ANCHOR_END, ANCHOR_RATIO) type for a margin (MARGIN_LEFT, MARGIN_TOP, MARGIN_RIGHT, MARGIN_BOTTOM), and also set its offset. This is a helper (see [method set_anchor] and [method set_margin]).
- </description>
- </method>
- <method name="set_begin" >
- <argument index="0" name="pos" type="Vector2">
- </argument>
- <description>
- Sets MARGIN_LEFT and MARGIN_TOP at the same time. This is a helper (see [method set_margin]).
- </description>
- </method>
- <method name="set_end" >
- <argument index="0" name="pos" type="Vector2">
- </argument>
- <description>
- Sets MARGIN_RIGHT and MARGIN_BOTTOM at the same time. This is a helper (see [method set_margin]).
- </description>
- </method>
- <method name="set_pos" >
- <argument index="0" name="pos" type="Vector2">
- </argument>
- <description>
- Move the Control to a new position, relative to the top-left corner of the parent Control, changing all margins if needed and without changing current anchor mode. This is a helper (see [method set_margin]).
- </description>
- </method>
- <method name="set_size" >
- <argument index="0" name="size" type="Vector2">
- </argument>
- <description>
- Changes MARGIN_RIGHT and MARGIN_BOTTOM to fit a given size. This is a helper (see [method set_margin]).
- </description>
- </method>
- <method name="set_global_pos" >
- <argument index="0" name="pos" type="Vector2">
- </argument>
- <description>
- Move the Control to a new position, relative to the top-left corner of the [html i]window[html /i] Control, and without changing current anchor mode. (see [method set_margin]).
- </description>
- </method>
- <method name="get_margin" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="margin" type="int">
- </argument>
- <description>
- Return a margin offset. Margin can be one of (MARGIN_LEFT, MARGIN_TOP, MARGIN_RIGHT, MARGIN_BOTTOM). Offset value being returned depends on the anchor mode.
- </description>
- </method>
- <method name="get_begin" qualifiers="const" >
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="get_end" qualifiers="const" >
- <return type="Vector2">
- </return>
- <description>
- Returns MARGIN_LEFT and MARGIN_TOP at the same time. This is a helper (see [method set_margin]).
- </description>
- </method>
- <method name="get_pos" qualifiers="const" >
- <return type="Vector2">
- </return>
- <description>
- Returns the Control position, relative to the top-left corner of the parent Control and independly of the anchor mode.
- </description>
- </method>
- <method name="get_size" qualifiers="const" >
- <return type="Vector2">
- </return>
- <description>
- Returns the size of the Control, computed from all margins, however the size returned will [html b]never be smaller than the minimum size reported by [method get_minimum_size][html /b]. This means that even if end position of the Control rectangle is smaller than the begin position, the Control will still display and interact correctly. (see description, [method get_minimum_size], [method set_margin], [method set_anchor]).
- </description>
- </method>
- <method name="get_global_pos" qualifiers="const" >
- <return type="Vector2">
- </return>
- <description>
- Returns the Control position, relative to the top-left corner of the parent Control and independent of the anchor mode.
- </description>
- </method>
- <method name="get_rect" qualifiers="const" >
- <return type="Rect2">
- </return>
- <description>
- Return position and size of the Control, relative to the top-left corner of the parent Control. This is a helper (see [method get_pos],[method get_size]).
- </description>
- </method>
- <method name="get_global_rect" qualifiers="const" >
- <return type="Rect2">
- </return>
- <description>
- Return position and size of the Control, relative to the top-left corner of the [html i]window[html /i] Control. This is a helper (see [method get_global_pos],[method get_size]).
- </description>
- </method>
- <method name="set_area_as_parent_rect" >
- <description>
- Change all margins and anchors, so this Control always takes up the same area as the parent Control. This is a helper (see [method set_anchor],[method set_margin]).
- </description>
- </method>
- <method name="show_modal" >
- <argument index="0" name="exclusive" type="bool" default="false">
- </argument>
- <description>
- Display a Control as modal. Control must be a subwindow (see [method set_as_subwindow]). Modal controls capture the input signals until closed or the area outside them is accessed. When a modal control loses focus, or the ESC key is pressed, they automatically hide. Modal controls are used extensively for popup dialogs and menus.
- </description>
- </method>
- <method name="set_focus_mode" >
- <argument index="0" name="mode" type="int">
- </argument>
- <description>
- Set the focus access mode for the control (FOCUS_NONE, FOCUS_CLICK, FOCUS_ALL). Only one Control can be focused at the same time, and it will receive keyboard signals.
- </description>
- </method>
- <method name="has_focus" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- Return wether the Control is the current focused control (see [method set_focus_mode]).
- </description>
- </method>
- <method name="grab_focus" >
- <description>
- Steal the focus from another control and become the focused control (see [method set_focus_mode]).
- </description>
- </method>
- <method name="set_theme" >
- <argument index="0" name="theme" type="Object">
- </argument>
- <description>
- Override whole the [Theme] for this Control and all its children controls.
- </description>
- </method>
- <method name="get_theme" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- Return a [Theme] override, if one exists (see [method set_theme]).
- </description>
- </method>
- <method name="add_icon_override" >
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="texture" type="Object">
- </argument>
- <description>
- Override a single icon ([Texture]) in the theme of this Control. If texture is empty, override is cleared.
- </description>
- </method>
- <method name="add_style_override" >
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="stylebox" type="Object">
- </argument>
- <description>
- Override a single stylebox ([Stylebox]) in the theme of this Control. If stylebox is empty, override is cleared.
- </description>
- </method>
- <method name="add_font_override" >
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="font" type="Object">
- </argument>
- <description>
- Override a single font (font) in the theme of this Control. If font is empty, override is cleared.
- </description>
- </method>
- <method name="add_color_override" >
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_constant_override" >
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="constant" type="int">
- </argument>
- <description>
- Override a single constant (integer) in the theme of this Control. If constant equals Theme.INVALID_CONSTANT, override is cleared.
- </description>
- </method>
- <method name="get_parent_control" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- Return the parent Control. Unlike get_parent() in [Node], only returns a valid object if the parent is a Control.
- </description>
- </method>
- <method name="set_tooltip" >
- <argument index="0" name="tooltip" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_tooltip" qualifiers="const" >
- <return type="String">
- </return>
- <argument index="0" name="atpos" type="Vector2" default="Vector2(0,0)">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_default_cursor_shape" >
- <argument index="0" name="shape" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_default_cursor_shape" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_cursor_shape" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="pos" type="Vector2" default="Vector2(0,0)">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_focus_neighbour" >
- <argument index="0" name="margin" type="int">
- </argument>
- <argument index="1" name="neighbour" type="NodePath">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_focus_neighbour" qualifiers="const" >
- <return type="NodePath">
- </return>
- <argument index="0" name="margin" type="int">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="focus_enter">
- <description>
- </description>
- </signal>
- <signal name="mouse_enter">
- <description>
- </description>
- </signal>
- <signal name="resized">
- <description>
- </description>
- </signal>
- <signal name="focus_exit">
- <description>
- </description>
- </signal>
- <signal name="input_event">
- <description>
- </description>
- </signal>
- <signal name="mouse_exit">
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- <constant name="CURSOR_FDIAGSIZE" value="12">
- </constant>
- <constant name="CURSOR_CAN_DROP" value="7">
- </constant>
- <constant name="CURSOR_DRAG" value="6">
- </constant>
- <constant name="CURSOR_IBEAM" value="1">
- </constant>
- <constant name="NOTIFICATION_FOCUS_ENTER" value="37">
- Control gained focus.
- </constant>
- <constant name="CURSOR_MOVE" value="13">
- </constant>
- <constant name="NOTIFICATION_MOUSE_ENTER" value="35">
- Mouse pointer entered the area of the Control.
- </constant>
- <constant name="NOTIFICATION_RESIZED" value="34">
- Control changed size (get_size() reports the new size).
- </constant>
- <constant name="FOCUS_CLICK" value="1">
- Control can acquire focus only if clicked.
- </constant>
- <constant name="CURSOR_HELP" value="16">
- </constant>
- <constant name="CURSOR_VSIZE" value="9">
- </constant>
- <constant name="CURSOR_VSPLIT" value="14">
- </constant>
- <constant name="CURSOR_BDIAGSIZE" value="11">
- </constant>
- <constant name="CURSOR_CROSS" value="3">
- </constant>
- <constant name="CURSOR_POINTING_HAND" value="2">
- </constant>
- <constant name="NOTIFICATION_FOCUS_EXIT" value="38">
- Control lost focus.
- </constant>
- <constant name="FOCUS_NONE" value="0">
- Control can&apos;t acquire focus.
- </constant>
- <constant name="ANCHOR_BEGIN" value="0">
- X is relative to MARGIN_LEFT, Y is relative to MARGIN_TOP,
- </constant>
- <constant name="CURSOR_HSIZE" value="10">
- </constant>
- <constant name="CURSOR_BUSY" value="5">
- </constant>
- <constant name="CURSOR_ARROW" value="0">
- </constant>
- <constant name="NOTIFICATION_MODAL_CLOSE" value="40">
- </constant>
- <constant name="NOTIFICATION_MOUSE_EXIT" value="36">
- Mouse pointer exited the area of the Control.
- </constant>
- <constant name="FOCUS_ALL" value="2">
- Control can acquire focus if clicked, or by pressing TAB/Directionals in the keyboard from another Control.
- </constant>
- <constant name="CURSOR_HSPLIT" value="15">
- </constant>
- <constant name="ANCHOR_RATIO" value="2">
- X and Y are a ratio (0 to 1) relative to the parent size 0 is left/top, 1 is right/bottom.
- </constant>
- <constant name="ANCHOR_END" value="1">
- X is relative to -MARGIN_RIGHT, Y is relative to -MARGIN_BOTTOM,
- </constant>
- <constant name="CURSOR_FORBIDDEN" value="8">
- </constant>
- <constant name="CURSOR_WAIT" value="4">
- </constant>
- <constant name="NOTIFICATION_THEME_CHANGED" value="39">
- </constant>
- </constants>
-</class>
-<class name="ConvexPolygonShape" inherits="Shape" category="Resources">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_planes" >
- <argument index="0" name="planes" type="Array">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_planes" qualifiers="const" >
- <return type="Array">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="GridMap" inherits="Spatial" category="Nodes/3D">
- <brief_description>
- GridMap is like a tile map, but in 3D.
- </brief_description>
- <description>
- GridMap is a 3D Tile map, using [html i]3D Cells[html /i] instead of tiles. On each cell, a mesh and a collision volume can be placed from a [MeshLibrary]. GridMap is used for designing worlds quickly. Despite that GridMaps can contain up to hundreds millions of cells, they are very optimized, and only use resources for the cells that contain items.
- </description>
- <methods>
- <method name="set_theme" >
- <argument index="0" name="theme" type="Object">
- </argument>
- <description>
- Set a MeshLibrary. Cell indices refer to items in the theme.
- </description>
- </method>
- <method name="get_theme" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- Get the current MeshLibrary (if exists).
- </description>
- </method>
- <method name="set_cell_size" >
- <argument index="0" name="size" type="real">
- </argument>
- <description>
- Set the size of a cell, in worldpsace units. All cells in a GridMap are the same size.
- </description>
- </method>
- <method name="get_cell_size" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- Return the current cell size.
- </description>
- </method>
- <method name="set_octant_size" >
- <argument index="0" name="size" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_octant_size" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_width" >
- <argument index="0" name="width" type="int">
- </argument>
- <description>
- Set the width of the GridMap. Width is the amount of cells i the direction of the X coordinate.
- </description>
- </method>
- <method name="get_width" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- Get the width of the GridMap. Width is the amount of cells i the direction of the X coordinate.
- </description>
- </method>
- <method name="set_height" >
- <argument index="0" name="height" type="int">
- </argument>
- <description>
- Set the height of the GridMap. Height is the amount of cells i the direction of the Y coordinate.
- </description>
- </method>
- <method name="get_height" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- Get the height of the GridMap. Height is the amount of cells i the direction of the Y coordinate.
- </description>
- </method>
- <method name="set_depth" >
- <argument index="0" name="depth" type="int">
- </argument>
- <description>
- Set the depth of the GridMap. Depth is the amount of cells i the direction of the Z coordinate.
- </description>
- </method>
- <method name="get_depth" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- Get the depth of the GridMap. Depth is the amount of cells i the direction of the Z coordinate.
- </description>
- </method>
- <method name="set_cell_item" >
- <argument index="0" name="x" type="int">
- </argument>
- <argument index="1" name="y" type="int">
- </argument>
- <argument index="2" name="z" type="int">
- </argument>
- <argument index="3" name="item" type="int">
- </argument>
- <argument index="4" name="orientation" type="int" default="0">
- </argument>
- <description>
- Set a cell item (x,y,z pos). Cell items are indices to items in the [MeshLibrary].
- </description>
- </method>
- <method name="get_cell_item" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="x" type="int">
- </argument>
- <argument index="1" name="y" type="int">
- </argument>
- <argument index="2" name="z" type="int">
- </argument>
- <description>
- Get a cell item (x,y,z pos). Cell items are indices to items in the [MeshLibrary].
- </description>
- </method>
- <method name="get_cell_item_orientation" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="x" type="int">
- </argument>
- <argument index="1" name="y" type="int">
- </argument>
- <argument index="2" name="z" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="resource_changed" >
- <argument index="0" name="arg0" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_center_x" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_center_x" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_center_y" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_center_y" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_center_z" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_center_z" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_clip" >
- <argument index="0" name="enabled" type="bool">
- </argument>
- <argument index="1" name="clipabove" type="bool" default="true">
- </argument>
- <argument index="2" name="floor" type="int" default="0">
- </argument>
- <argument index="3" name="axis" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="crate_area" >
- <return type="int">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="area" type="AABB">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_get_bounds" qualifiers="const" >
- <return type="AABB">
- </return>
- <argument index="0" name="area" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_set_exterior_portal" >
- <argument index="0" name="area" type="int">
- </argument>
- <argument index="1" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_set_name" >
- <argument index="0" name="area" type="int">
- </argument>
- <argument index="1" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_get_name" qualifiers="const" >
- <return type="String">
- </return>
- <argument index="0" name="area" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_is_exterior_portal" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="area" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_set_portal_disable_distance" >
- <argument index="0" name="area" type="int">
- </argument>
- <argument index="1" name="distance" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_get_portal_disable_distance" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="area" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_set_portal_disable_color" >
- <argument index="0" name="area" type="int">
- </argument>
- <argument index="1" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_get_portal_disable_color" qualifiers="const" >
- <return type="Color">
- </return>
- <argument index="0" name="area" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="erase_area" >
- <argument index="0" name="area" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_unused_area_id" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="INVALID_CELL_ITEM" value="-1">
- Value indicating that a cell item is not used or invalid.
- </constant>
- </constants>
-</class>
-<class name="MeshLibrary" inherits="Resource" category="Resources">
- <brief_description>
- Theme for a [GridMap].
- </brief_description>
- <description>
- MeshLibrary is [Resource] containing the data used in a [GridMap]. It&apos;s filled with items, each containing a mesh and a collision shape.
- </description>
- <methods>
- <method name="create_item" >
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- Create a new item, and assign it a given id.
- </description>
- </method>
- <method name="set_item_name" >
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="name" type="String">
- </argument>
- <description>
- Set the name of an item, referenced by id.
- </description>
- </method>
- <method name="set_item_mesh" >
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="mesh" type="Object">
- </argument>
- <description>
- Set the [Mesh] of an item, referenced by id.
- </description>
- </method>
- <method name="set_item_shape" >
- <argument index="0" name="id" type="int">
- </argument>
- <argument index="1" name="shape" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_item_name" qualifiers="const" >
- <return type="String">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- Get the name of an item, referenced by id.
- </description>
- </method>
- <method name="get_item_mesh" qualifiers="const" >
- <return type="Object">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- Get the [Mesh] of an item, referenced by id.
- </description>
- </method>
- <method name="get_item_shape" qualifiers="const" >
- <return type="Object">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="remove_item" >
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- Remove an item, referenced by id.
- </description>
- </method>
- <method name="clear" >
- <description>
- Clear all items contained in this resource.
- </description>
- </method>
- <method name="get_item_list" qualifiers="const" >
- <return type="IntArray">
- </return>
- <description>
- Get the list of item IDs contained in this theme.
- </description>
- </method>
- <method name="get_last_unused_item_id" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- Get the last unused item id. This is useful for creating new item IDs.
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="CylinderShape" inherits="Shape" category="Resources">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_radius" >
- <argument index="0" name="radius" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_radius" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_height" >
- <argument index="0" name="height" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_height" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="DOFBlurFX" inherits="ScenarioFX" category="Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="DirectionalLight" inherits="Light" category="Nodes/3D/3D Visual Nodes/3D Light Nodes">
- <brief_description>
- Directional Light, such as the Sun or the Moon.
- </brief_description>
- <description>
- A DirectionalLight is a type of [Light] node that emits light constantly in one direction (the negative z axis of the node). It is used lights with strong intensity that are located far away from the scene to model sunlight or moonlight. The worldpace location of the DirectionalLight transform (origin) is ignored, only the basis is used do determine light direction.
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="DynamicBody" inherits="PhysicsBody" category="Nodes/3D">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_mass" >
- <argument index="0" name="mass" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_friction" >
- <argument index="0" name="friction" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_bounce" >
- <argument index="0" name="bounce" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_mass" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_friction" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_bounce" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_linear_velocity" >
- <argument index="0" name="linear_velocity" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_linear_velocity" qualifiers="const" >
- <return type="Vector3">
- </return>
- <description>
- </description>
- </method>
- <method name="set_angular_velocity" >
- <argument index="0" name="angular_velocity" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_angular_velocity" qualifiers="const" >
- <return type="Vector3">
- </return>
- <description>
- </description>
- </method>
- <method name="set_sleeping" >
- <argument index="0" name="sleeping" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_sleeping" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_applied_force" >
- <argument index="0" name="applied_force" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_applied_force" qualifiers="const" >
- <return type="Vector3">
- </return>
- <description>
- </description>
- </method>
- <method name="set_applied_torque" >
- <argument index="0" name="applied_torque" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_applied_torque" qualifiers="const" >
- <return type="Vector3">
- </return>
- <description>
- </description>
- </method>
- <method name="apply_local_impulse" >
- <argument index="0" name="pos" type="Vector3">
- </argument>
- <argument index="1" name="impulse" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_axis_velocity" >
- <argument index="0" name="axis_velocity" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_direct_state_control" >
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_direct_state_control_enabled" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_omit_force_integration" >
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_omitting_force_integration" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="DynamicCharacterBody" inherits="DynamicBody" category="Nodes/3D">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="DynamicCustomBody" inherits="DynamicBody" category="Nodes/3D">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_mode" >
- <argument index="0" name="mode" type="int">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="DynamicRigidBody" inherits="DynamicBody" category="Nodes/3D">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="FileDialog" inherits="Popup" category="Nodes/GUI Nodes">
- <brief_description>
- Dialog for selecting files or directories in the filesystem.
- </brief_description>
- <description>
- FileDialog is a preset dialog used to choose files and directories in the filesystem. It supports filter masks.
- </description>
- <methods>
- <method name="clear_filters" >
- <description>
- Clear all the added filters in the dialog.
- </description>
- </method>
- <method name="add_filter" >
- <argument index="0" name="filter" type="String">
- </argument>
- <description>
- Add a custom filter. Filter format is: &quot;mask ; description.
- </description>
- </method>
- <method name="get_current_dir" qualifiers="const" >
- <return type="String">
- </return>
- <description>
- Get the current working directory of the file dialog.
- </description>
- </method>
- <method name="get_current_file" qualifiers="const" >
- <return type="String">
- </return>
- <description>
- Get the current selected file of the file dialog (empty if none).
- </description>
- </method>
- <method name="get_current_path" qualifiers="const" >
- <return type="String">
- </return>
- <description>
- Get the current selected path (directory and file) of the file dialog (empty if none).
- </description>
- </method>
- <method name="set_current_dir" >
- <argument index="0" name="dir" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_current_file" >
- <argument index="0" name="file" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_current_path" >
- <argument index="0" name="path" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_mode" >
- <argument index="0" name="mode" type="int">
- </argument>
- <description>
- Set the file dialog mode from the MODE_* enum.
- </description>
- </method>
- <method name="get_mode" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- Get the file dialog mode from the MODE_* enum.
- </description>
- </method>
- </methods>
- <signals>
- <signal name="dir_selected">
- <argument index="0" name="dir" type="String">
- </argument>
- <description>
- </description>
- </signal>
- <signal name="file_selected">
- <argument index="0" name="path" type="String">
- </argument>
- <description>
- Event emitted when the user selects a file (double clicks it or presses the OK button).
- </description>
- </signal>
- </signals>
- <constants>
- <constant name="MODE_OPEN_DIR" value="1">
- </constant>
- <constant name="MODE_OPEN_FILE" value="0">
- Editor will not allow to select nonexistent files.
- </constant>
- <constant name="MODE_SAVE_FILE" value="2">
- Editor will warn when a file exists.
- </constant>
- </constants>
-</class>
-<class name="FixedMaterial" inherits="Material" category="Resources">
- <brief_description>
- Simple Material with a fixed parameter set.
- </brief_description>
- <description>
- FixedMaterial is a simple type of material [Resource], which contains a fixed amount of paramters. It is the only type of material supported in fixed-pipeline devices and APIs. It is also an often a better alternative to [ShaderMaterial] for most simple use cases.
- </description>
- <methods>
- <method name="set_shader" >
- <argument index="0" name="shader" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_shader" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="set_parameter" >
- <argument index="0" name="param" type="int">
- </argument>
- <argument index="1" name="value" type="var">
- </argument>
- <description>
- Set a parameter, parameters are defined in the PARAM_* enum. The type of each parameter may change, so it&apos;s best to check the enum.
- </description>
- </method>
- <method name="get_parameter" qualifiers="const" >
- <argument index="0" name="param" type="int">
- </argument>
- <description>
- Return a parameter, parameters are defined in the PARAM_* enum. The type of each parameter may change, so it&apos;s best to check the enum.
- </description>
- </method>
- <method name="set_texture" >
- <argument index="0" name="param" type="int">
- </argument>
- <argument index="1" name="texture" type="Object">
- </argument>
- <description>
- Set a texture. Textures change parameters per texel and are mapped to the model depending on the texcoord mode (see [method set_texcoord_mode]).
- </description>
- </method>
- <method name="get_texture" qualifiers="const" >
- <return type="Object">
- </return>
- <argument index="0" name="param" type="int">
- </argument>
- <description>
- Return a texture. Textures change parameters per texel and are mapped to the model depending on the texcoord mode (see [method set_texcoord_mode]).
- </description>
- </method>
- <method name="set_texgen_mode" >
- <argument index="0" name="mode" type="int">
- </argument>
- <description>
- Set the texture coordinate generation mode. Materials have a unique, texgen mode which can generate texture coordinates on the fly. Texgen mode must be one of the values from the TEXGEN_* enum. TEXGEN can be selected as a texture coordinate mode (see [method set_texcoord_mode]).
- </description>
- </method>
- <method name="get_texgen_mode" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- Return the texture coordinate generation mode. Materials have a unique, texgen mode which can generate texture coordinates on the fly. Texgen mode must be one of the values from the TEXGEN_* enum. TEXGEN can be selected as a texture coordinate mode (see [method set_texcoord_mode]).
- </description>
- </method>
- <method name="set_texcoord_mode" >
- <argument index="0" name="param" type="int">
- </argument>
- <argument index="1" name="mode" type="int">
- </argument>
- <description>
- Set the texture coordinate mode. Each texture param (from the PARAM_* enum) has one. It defines how the textures are mapped to the object.
- </description>
- </method>
- <method name="get_texcoord_mode" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="param" type="int">
- </argument>
- <description>
- Return the texture coordinate mode. Each texture param (from the PARAM_* enum) has one. It defines how the textures are mapped to the object.
- </description>
- </method>
- <method name="set_uv_transform" >
- <argument index="0" name="transform" type="Transform">
- </argument>
- <description>
- Sets a special transform used to post-transform UV coordinates of the uv_xfrom tecoord mode: TEXCOORD_UV_TRANSFORM
- </description>
- </method>
- <method name="get_uv_transform" qualifiers="const" >
- <return type="Transform">
- </return>
- <description>
- Returns the special transform used to post-transform UV coordinates of the uv_xfrom tecoord mode: TEXCOORD_UV_TRANSFORM
- </description>
- </method>
- </methods>
- <constants>
- <constant name="PARAM_SPECULAR_EXP" value="4">
- Specular Exponent (size of the specular dot)
- </constant>
- <constant name="PARAM_DETAIL" value="1">
- Detail Layer for diffuse lighting.
- </constant>
- <constant name="TEXCOORD_UV2" value="2">
- Read texture coordinates from the UV2 array.
- </constant>
- <constant name="TEXGEN_SCREENZ" value="3">
- Use the screen coordinates as UV, scaled by depth and the screenz coefficient.
- </constant>
- <constant name="TEXCOORD_UV_TRANSFORM" value="1">
- Read texture coordinates from the UV array and transform them by uv_xform.
- </constant>
- <constant name="TEXGEN_LOCAL_XY" value="0">
- Use object local X and Y coordinates as UV.
- </constant>
- <constant name="PARAM_SHADE_PARAM" value="8">
- </constant>
- <constant name="PARAM_MAX" value="9">
- Maximum amount of parameters
- </constant>
- <constant name="PARAM_DIFFUSE" value="0">
- Diffuse Lighting (light scattered from surface).
- </constant>
- <constant name="PARAM_EMISSION" value="3">
- Emission Lighting (light emitted from the surface)
- </constant>
- <constant name="PARAM_SPECULAR" value="2">
- Specular Lighting (light reflected from the surface).
- </constant>
- <constant name="PARAM_DETAIL_MIX" value="6">
- Mix coefficient for the detail layer.
- </constant>
- <constant name="TEXGEN_SPHERE" value="1">
- Use view normal reflected by object normal as UV.
- </constant>
- <constant name="PARAM_NORMAL" value="7">
- Normal Map (irregularity map).
- </constant>
- <constant name="PARAM_GLOW" value="5">
- Glow (Visible emitted scattered light).
- </constant>
- <constant name="TEXCOORD_UV" value="0">
- Read texture coordinates from the UV array.
- </constant>
- <constant name="TEXCOORD_TEXGEN" value="3">
- Use texture coordinates from the texgen.
- </constant>
- <constant name="TEXGEN_SCREEN" value="2">
- Use the screen coordinates as UV.
- </constant>
- </constants>
-</class>
-<class name="FogFX" inherits="ScenarioFX" category="Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="FollowCamera" inherits="Camera" category="Nodes/3D">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_orbit" >
- <argument index="0" name="orbit" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_orbit" qualifiers="const" >
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="set_orbit_x" >
- <argument index="0" name="x" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_orbit_y" >
- <argument index="0" name="y" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_min_orbit_x" >
- <argument index="0" name="x" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_min_orbit_x" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_max_orbit_x" >
- <argument index="0" name="x" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_max_orbit_x" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_height" >
- <argument index="0" name="height" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_height" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_inclination" >
- <argument index="0" name="inclination" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_inclination" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="rotate_orbit" >
- <argument index="0" name="arg0" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_distance" >
- <argument index="0" name="distance" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_distance" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_max_distance" >
- <argument index="0" name="max_distance" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_max_distance" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_min_distance" >
- <argument index="0" name="min_distance" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_min_distance" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_clip" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_clip" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_autoturn" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_autoturn" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_autoturn_tolerance" >
- <argument index="0" name="degrees" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_autoturn_tolerance" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_autoturn_speed" >
- <argument index="0" name="speed" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_autoturn_speed" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_smoothing" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_smoothing" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_rotation_smoothing" >
- <argument index="0" name="amount" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_rotation_smoothing" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_translation_smoothing" >
- <argument index="0" name="amount" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_translation_smoothing" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_use_lookat_target" >
- <argument index="0" name="use" type="bool">
- </argument>
- <argument index="1" name="lookat" type="Vector3" default="Vector3(0, 0, 0)">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Font" inherits="Resource" category="Resources">
- <brief_description>
- Internationalized font and text drawing support.
- </brief_description>
- <description>
- Font contains an unicode compatible character set, as well as the ability to draw it with variable width, ascent, descent and kerning. For creating fonts from TTF files (or other font formats), see the editor support for fonts. TODO check wikipedia for graph of ascent/baseline/descent/height/etc.
- </description>
- <methods>
- <method name="set_height" >
- <argument index="0" name="px" type="real">
- </argument>
- <description>
- Set the total font height (ascent plus descent) in pixels.
- </description>
- </method>
- <method name="get_height" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- Return the total font height (ascent plus descent) in pixels.
- </description>
- </method>
- <method name="set_ascent" >
- <argument index="0" name="px" type="real">
- </argument>
- <description>
- Set the font ascent (number of pixels above the baseline).
- </description>
- </method>
- <method name="get_ascent" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- Return the font ascent (number of pixels above the baseline).
- </description>
- </method>
- <method name="get_descent" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- Return the font descent (number of pixels below the baseline).
- </description>
- </method>
- <method name="add_kerning_pair" >
- <argument index="0" name="char_a" type="int">
- </argument>
- <argument index="1" name="char_b" type="int">
- </argument>
- <argument index="2" name="kerning" type="int">
- </argument>
- <description>
- Add a kerning pair to the [Font] as a difference. Kerning pairs are special cases where a typeface advance is determined by the next character.
- </description>
- </method>
- <method name="get_kerning_pair" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="int">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- Return a kerning pair as a difference. Kerning pairs are special cases where a typeface advance is determined by the next character.
- </description>
- </method>
- <method name="add_texture" >
- <argument index="0" name="texture" type="Object">
- </argument>
- <description>
- Add a texture to the [Font].
- </description>
- </method>
- <method name="add_char" >
- <argument index="0" name="character" type="int">
- </argument>
- <argument index="1" name="texture" type="int">
- </argument>
- <argument index="2" name="rect" type="Rect2">
- </argument>
- <argument index="3" name="align" type="Vector2" default="Vector2(0,0)">
- </argument>
- <argument index="4" name="advance" type="real" default="-1">
- </argument>
- <description>
- Add a character to the font, where &quot;character&quot; is the unicode value, &quot;texture&quot; is the texture index, &quot;rect&quot; is the region in the texture (in pixels!), &quot;align&quot; is the (optional) alignment for the character and &quot;advance&quot; is the (optional) advance.
- </description>
- </method>
- <method name="get_char_size" qualifiers="const" >
- <return type="Vector2">
- </return>
- <argument index="0" name="char" type="int">
- </argument>
- <argument index="1" name="next" type="int" default="0">
- </argument>
- <description>
- Return the size of a character, optionally taking kerning into account if the next character is provided.
- </description>
- </method>
- <method name="get_string_size" qualifiers="const" >
- <return type="Vector2">
- </return>
- <argument index="0" name="string" type="String">
- </argument>
- <description>
- Return the size of a string, taking kerning and advance into account.
- </description>
- </method>
- <method name="clear" >
- <description>
- Clear all the font data.
- </description>
- </method>
- <method name="draw" qualifiers="const" >
- <argument index="0" name="canvas_item" type="RID">
- </argument>
- <argument index="1" name="pos" type="Vector2">
- </argument>
- <argument index="2" name="string" type="String">
- </argument>
- <argument index="3" name="modulate" type="Color" default="Color(1,1,1,1)">
- </argument>
- <argument index="4" name="clip_w" type="int" default="-1">
- </argument>
- <description>
- Draw &quot;string&quot; into a canvas item using the font at a given &quot;pos&quot; position, with &quot;modulate&quot; color, and optionally clipping the width. &quot;pos&quot; specifies te baseline, not the top. To draw from the top, [html i]ascent[html /i] must be added to the Y axis.
- </description>
- </method>
- <method name="draw_char" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="canvas_item" type="RID">
- </argument>
- <argument index="1" name="pos" type="Vector2">
- </argument>
- <argument index="2" name="char" type="int">
- </argument>
- <argument index="3" name="next" type="int" default="-1">
- </argument>
- <argument index="4" name="modulate" type="Color" default="Color(1,1,1,1)">
- </argument>
- <description>
- Draw character &quot;char&quot; into a canvas item using the font at a given &quot;pos&quot; position, with &quot;modulate&quot; color, and optionally kerning if &quot;next&quot; is apassed. clipping the width. &quot;pos&quot; specifies te baseline, not the top. To draw from the top, [html i]ascent[html /i] must be added to the Y axis. The width used by the character is returned, making this function useful for drawing strings character by character.
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="GammaFX" inherits="ScenarioFX" category="Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="_Geometry" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="build_box_planes" >
- <return type="Array">
- </return>
- <argument index="0" name="extents" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="build_cylinder_planes" >
- <return type="Array">
- </return>
- <argument index="0" name="radius" type="real">
- </argument>
- <argument index="1" name="height" type="real">
- </argument>
- <argument index="2" name="sides" type="int">
- </argument>
- <argument index="3" name="axis" type="int" default="2">
- </argument>
- <description>
- </description>
- </method>
- <method name="build_capsule_planes" >
- <return type="Array">
- </return>
- <argument index="0" name="radius" type="real">
- </argument>
- <argument index="1" name="height" type="real">
- </argument>
- <argument index="2" name="sides" type="int">
- </argument>
- <argument index="3" name="lats" type="int">
- </argument>
- <argument index="4" name="axis" type="int" default="2">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Globals" inherits="Object" category="Core">
- <brief_description>
- Contains global variables accessible from everywhere.
- </brief_description>
- <description>
- Contains global variables accessible from everywhere. Use the normal [Object] API, such as &quot;Globals.get(variable)&quot;, &quot;Globals.set(variable,value)&quot; or &quot;Globals.has(variable)&quot; to access them. Variables stored in engine.cfg are also loaded into globals, making this object very useful for reading custom game configuration options.
- </description>
- <methods>
- <method name="has" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_order" >
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="pos" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_order" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_persisting" >
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_persisting" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear" >
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="localize_path" qualifiers="const" >
- <return type="String">
- </return>
- <argument index="0" name="path" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="globalize_path" qualifiers="const" >
- <return type="String">
- </return>
- <argument index="0" name="path" type="String">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="GlowFX" inherits="ScenarioFX" category="Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="HDRFX" inherits="ScenarioFX" category="Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="HScrollBar" inherits="ScrollBar" category="Nodes/GUI Nodes">
- <brief_description>
- Horizontal version of [ScrollBar], which goes from top (min) to bottom (max).
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="HSeparator" inherits="Separator" category="Nodes/GUI Nodes">
- <brief_description>
- Horizontal version of [Separator].
- </brief_description>
- <description>
- Horizontal version of [Separator]. It is used to separate objects vertiacally, though (but it looks horizontal!).
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="HSlider" inherits="Slider" category="Nodes/GUI Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="IP" inherits="Object" category="Networking">
- <brief_description>
- IP Protocol support functions.
- </brief_description>
- <description>
- IP contains some support functions for the IPv4 protocol. TCP/IP support is in different classes (see [TCP_Client], [TCP_Server]). IP provides hostname resolution support, both blocking and threaded.
- </description>
- <methods>
- <method name="resolve_hostname" >
- <return type="String">
- </return>
- <argument index="0" name="host" type="String">
- </argument>
- <description>
- Resolve a given hostname, blocking. Resolved hostname is returned as an IP.
- </description>
- </method>
- <method name="resolve_hostname_queue_item" >
- <return type="int">
- </return>
- <argument index="0" name="host" type="String">
- </argument>
- <description>
- Create a queue item for resolving a given hostname. The queue ID is returned, or RESOLVER_INVALID_ID on error.
- </description>
- </method>
- <method name="get_resolve_item_status" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- Return the status of hostname queued for resolving, given it&apos;s queue ID. Returned status can be any of the RESOLVER_STATUS_* enumeration.
- </description>
- </method>
- <method name="get_resolve_item_address" qualifiers="const" >
- <return type="String">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- Return a resolved item address, or an empty string if an error happened or resolution didn&apos;t happen yet (see [method get_resolve_item_status]).
- </description>
- </method>
- <method name="erase_resolve_item" >
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- Erase a queue ID, removing it from the queue if needed. This should be used after a queue is completed to free it and enable more queries to happen.
- </description>
- </method>
- </methods>
- <constants>
- <constant name="RESOLVER_INVALID_ID" value="-1">
- </constant>
- <constant name="RESOLVER_MAX_QUERIES" value="32">
- </constant>
- <constant name="RESOLVER_STATUS_NONE" value="0">
- </constant>
- <constant name="RESOLVER_STATUS_ERROR" value="3">
- </constant>
- <constant name="RESOLVER_STATUS_WAITING" value="1">
- </constant>
- <constant name="RESOLVER_STATUS_DONE" value="2">
- </constant>
- </constants>
-</class>
-<class name="IP_Unix" inherits="IP" category="Networking">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="InputMap" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Label" inherits="Range" category="Nodes/GUI Nodes">
- <brief_description>
- Control that displays formatted text.
- </brief_description>
- <description>
- Label is a control that displays formatted text, optionally autowrapping it to the [Control] area. It inherits from range to be able to scroll wrapped text vertically.
- </description>
- <methods>
- <method name="set_align" >
- <argument index="0" name="align" type="int">
- </argument>
- <description>
- Set the alignmend mode to any of the ALIGN_* enumeration values.
- </description>
- </method>
- <method name="get_align" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- Return the alignmend mode (any of the ALIGN_* enumeration values).
- </description>
- </method>
- <method name="set_text" >
- <argument index="0" name="text" type="String">
- </argument>
- <description>
- Set the label text. Text can contain newlines.
- </description>
- </method>
- <method name="get_text" qualifiers="const" >
- <return type="String">
- </return>
- <description>
- Return the label text. Text can contain newlines.
- </description>
- </method>
- <method name="set_autowrap" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- Set [html i]autowrap[html /i] mode. When enabled, autowrap will fit text to the control width, breaking sentences when they exceed the available horizontal space. When disabled, the label minimum width becomes the width of the longest row, and the minimum height large enough to fit all rows.
- </description>
- </method>
- <method name="has_autowrap" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- Return the state of the [html i]autowrap[html /i] mode (see [method set_autowrap]).
- </description>
- </method>
- </methods>
- <constants>
- <constant name="ALIGN_CENTER" value="1">
- Align rows centered.
- </constant>
- <constant name="ALIGN_LEFT" value="0">
- Align rows to the left (default).
- </constant>
- <constant name="ALIGN_RIGHT" value="2">
- Align rows to the right (default).
- </constant>
- <constant name="ALIGN_FILL" value="3">
- Expand row whitespaces to fit the width.
- </constant>
- </constants>
-</class>
-<class name="Light" inherits="VisualInstance" category="Nodes/3D/3D Visual Nodes/3D Light Nodes">
- <brief_description>
- Provides a base class for different kinds of light nodes.
- </brief_description>
- <description>
- Light is the abstract base class for light nodes, so it shouldn&apos;t be used directly (It can&apos;t be instanced). Other types of light nodes inherit from it. Light contains the common variables and parameters used for lighting.
- </description>
- <methods>
- <method name="set_parameter" >
- <argument index="0" name="variable" type="int">
- </argument>
- <argument index="1" name="value" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_parameter" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="arg0" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_color" >
- <argument index="0" name="color" type="int">
- </argument>
- <argument index="1" name="value" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_color" qualifiers="const" >
- <return type="Color">
- </return>
- <argument index="0" name="arg0" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_project_shadows" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_project_shadows" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_projector" >
- <argument index="0" name="projector" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_projector" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="set_operator" >
- <argument index="0" name="operator" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_operator" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="COLOR_DIFFUSE" value="1">
- </constant>
- <constant name="PARAM_SPOT_ANGLE" value="1">
- </constant>
- <constant name="PARAM_ATTENUATION" value="4">
- </constant>
- <constant name="COLOR_SPECULAR" value="2">
- </constant>
- <constant name="COLOR_AMBIENT" value="0">
- </constant>
- <constant name="PARAM_SHADOW_DARKENING" value="5">
- </constant>
- <constant name="PARAM_RADIUS" value="2">
- </constant>
- <constant name="PARAM_SPOT_ATTENUATION" value="4">
- </constant>
- <constant name="PARAM_ENERGY" value="3">
- </constant>
- </constants>
-</class>
-<class name="LineEdit" inherits="Control" category="Nodes/GUI Nodes">
- <brief_description>
- Control that provides single line string editing.
- </brief_description>
- <description>
- LineEdit provides a single line string editor, used for text fields.
- </description>
- <methods>
- <method name="clear" >
- <description>
- Clear the [LineEdit] text.
- </description>
- </method>
- <method name="select_all" >
- <description>
- Select the whole string.
- </description>
- </method>
- <method name="set_text" >
- <argument index="0" name="text" type="String">
- </argument>
- <description>
- Set the text in the [LineEdit], clearing the existing one and the selection.
- </description>
- </method>
- <method name="get_text" qualifiers="const" >
- <return type="String">
- </return>
- <description>
- Return the text in the [LineEdit].
- </description>
- </method>
- <method name="set_cursor_pos" >
- <argument index="0" name="pos" type="int">
- </argument>
- <description>
- Set the cursor position inside the [LineEdit], causing it to scroll if needed.
- </description>
- </method>
- <method name="get_cursor_pos" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- Return the cursor position inside the [LineEdit].
- </description>
- </method>
- <method name="set_max_length" >
- <argument index="0" name="chars" type="int">
- </argument>
- <description>
- Set the maximum amount of characters the [LineEdit] can edit, and cropping existing text in case it exceeds that limit. Setting 0 removes the limit.
- </description>
- </method>
- <method name="get_max_length" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- Return the maximum amount of characters the [LineEdit] can edit. If 0 is returned, no limit exists.
- </description>
- </method>
- <method name="append_at_cursor" >
- <argument index="0" name="text" type="String">
- </argument>
- <description>
- Append text at cursor, scrolling the [LineEdit] when needed.
- </description>
- </method>
- <method name="set_editable" >
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- Set the [html i]editable[html /i] status of the [LineEdit]. When disabled, existing text can&apos;t be modified and new text can&apos;t be added.
- </description>
- </method>
- <method name="is_editable" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- Return the [html i]editable[html /i] status of the [LineEdit] (see [method set_editable]).
- </description>
- </method>
- <method name="set_secret" >
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- Set the [html i]secret[html /i] status of the [LineEdit]. When enabled, every character is displayed as &quot;*&quot;.
- </description>
- </method>
- <method name="is_secret" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- Return the [html i]secret[html /i] status of the [LineEdit] (see [method set_secret]).
- </description>
- </method>
- <method name="select" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="text_entered">
- <argument index="0" name="text" type="String">
- </argument>
- <description>
- This signal is emitted when the user presses KEY_ENTER on the [LineEdit]. This signal is often used as an alternate confirmation mechanism in dialogs.
- </description>
- </signal>
- <signal name="text_changed">
- <argument index="0" name="text" type="String">
- </argument>
- <description>
- When the text changes, this signal is emitted.
- </description>
- </signal>
- </signals>
- <constants>
- </constants>
-</class>
-<class name="MainLoop" inherits="Object" category="Main Loop">
- <brief_description>
- Main loop is the abstract main loop base class.
- </brief_description>
- <description>
- Main loop is the abstract main loop base class. All other main loop classes are derived from it. Upon application start, a [MainLoop] has to be provided to OS, else the application will exit. This happens automatically (and a [SceneMainLoop] is created), unless a main [Script] is supplied, which may or not create and return a [MainLoop].
- </description>
- <methods>
- </methods>
- <constants>
- <constant name="NOTIFICATION_WM_QUIT_REQUEST" value="7">
- </constant>
- <constant name="NOTIFICATION_WM_FOCUS_IN" value="5">
- </constant>
- <constant name="NOTIFICATION_WM_FOCUS_OUT" value="6">
- </constant>
- </constants>
-</class>
-<class name="Material" inherits="Resource" category="Resources">
- <brief_description>
- Abstract base [Resource] for coloring and shading geometry.
- </brief_description>
- <description>
- Material is a base [Resource] used for coloring and shading geometry. All materials inherit from it and almost all [VisualInstance] derived nodes carry a Material. A few flags and parameters are shared between all material types and are configured here.
- </description>
- <methods>
- <method name="set_flag" >
- <argument index="0" name="flag" type="int">
- </argument>
- <argument index="1" name="enable" type="bool">
- </argument>
- <description>
- Set a [Material] flag, which toggles on or off a behavior when rendering. See enumeration FLAG_* for a list.
- </description>
- </method>
- <method name="get_flag" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="flag" type="int">
- </argument>
- <description>
- Return a [Material] flag, which toggles on or off a behavior when rendering. See enumeration FLAG_* for a list.
- </description>
- </method>
- <method name="set_hint" >
- <argument index="0" name="hint" type="int">
- </argument>
- <argument index="1" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_hint" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="hint" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_blend_mode" >
- <argument index="0" name="mode" type="int">
- </argument>
- <description>
- Set blend mode for the material, which can be one of BLEND_MODE_MIX (default), BLEND_MODE_ADD, BLEND_MODE_SUB. Keep in mind that only BLEND_MODE_MIX ensures that the material [html i]may[html /i] be opaque, any other blend mode will render with alpha blending enabled in raster-based [VisualServer] implementations.
- </description>
- </method>
- <method name="get_blend_mode" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- Return blend mode for the material, which can be one of BLEND_MODE_MIX (default), BLEND_MODE_ADD, BLEND_MODE_SUB. Keep in mind that only BLEND_MODE_MIX ensures that the material [html i]may[html /i] be opaque, any other blend mode will render with alpha blending enabled in raster-based [VisualServer] implementations.
- </description>
- </method>
- <method name="set_shade_model" >
- <argument index="0" name="model" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_shade_model" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_line_width" >
- <argument index="0" name="width" type="real">
- </argument>
- <description>
- Set the line width for geometry drawn with FLAG_WIREFRAME enabled, or LINE primitives. Note that not all hardware or VisualServer backends support this (like DirectX).
- </description>
- </method>
- <method name="get_line_width" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- Return the line width for geometry drawn with FLAG_WIREFRAME enabled, or LINE primitives. Note that not all hardware or VisualServer backends support this (like DirectX).
- </description>
- </method>
- <method name="set_shader_param" >
- <argument index="0" name="param" type="String">
- </argument>
- <argument index="1" name="arg1" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_shader_param" qualifiers="const" >
- <argument index="0" name="arg0" type="String">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="SHADE_MODEL_FRESNEL" value="2">
- </constant>
- <constant name="SHADE_MODEL_LAMBERT" value="0">
- </constant>
- <constant name="HINT_DECAL" value="0">
- </constant>
- <constant name="FLAG_WIREFRAME" value="5">
- Triangle geometry is drawn as lines if this flag is enabled.
- </constant>
- <constant name="SHADE_MODEL_TOON" value="3">
- </constant>
- <constant name="SHADE_MODEL_LAMBERT_WRAP" value="1">
- </constant>
- <constant name="HINT_NO_SHADOW" value="2">
- </constant>
- <constant name="FLAG_DOUBLE_SIDED" value="1">
- Both front facing and back facing triangles are rendered when this flag is enabled.
- </constant>
- <constant name="FLAG_BILLBOARD_TOGGLE" value="6">
- Geometry world transform is computed as billboard if this flag is enabled, often used for impostors.
- </constant>
- <constant name="FLAG_UNSHADED" value="3">
- Shading (lighting) is disabled when this flag is enabled.
- </constant>
- <constant name="BLEND_MODE_MIX" value="0">
- Use the regular alpha blending equation (source and dest colors are faded) (default).
- </constant>
- <constant name="SHADE_MODEL_CUSTOM_0" value="4">
- </constant>
- <constant name="SHADE_MODEL_CUSTOM_1" value="5">
- </constant>
- <constant name="FLAG_MAX" value="7">
- Maximum amount of flags
- </constant>
- <constant name="FLAG_VISIBLE" value="0">
- Geometry is visible when this flag is enabled (default).
- </constant>
- <constant name="SHADE_MODEL_CUSTOM_2" value="6">
- </constant>
- <constant name="HINT_MAX" value="4">
- </constant>
- <constant name="HINT_NO_DEPTH_DRAW" value="3">
- </constant>
- <constant name="BLEND_MODE_ADD" value="1">
- Use additive blending equation, often used for particle effects such as fire or light decals.
- </constant>
- <constant name="SHADE_MODEL_CUSTOM_3" value="7">
- </constant>
- <constant name="HINT_OPAQUE_PRE_PASS" value="1">
- </constant>
- <constant name="FLAG_ONTOP" value="4">
- </constant>
- <constant name="BLEND_MODE_SUB" value="2">
- Use substractive blending equation, often used for some smoke effects or types of glass.
- </constant>
- <constant name="FLAG_INVERT_FACES" value="2">
- Front facing and back facing order is swapped when this flag is enabled.
- </constant>
- </constants>
-</class>
-<class name="MenuButton" inherits="Button" category="Nodes/GUI Nodes">
- <brief_description>
- Special button that brings up a [PopupMenu] when clicked.
- </brief_description>
- <description>
- Special button that brings up a [PopupMenu] when clicked. That&apos;s pretty much all it does, as it&apos;s just a helper class when bulding GUIs.
- </description>
- <methods>
- <method name="get_popup" >
- <return type="Object">
- </return>
- <description>
- Return the [PopupMenu] contained in this button.
- </description>
- </method>
- </methods>
- <signals>
- <signal name="about_to_show">
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- </constants>
-</class>
-<class name="Mesh" inherits="Resource" category="Resources">
- <brief_description>
- A [Resource] that contains vertex-array based geometry.
- </brief_description>
- <description>
- Mesh is a type of [Resource] that contains vertex-array based geometry, divided in [html i]surfaces[html /i]. Each surface contains a completely separate array and a material used to draw it. Design wise, a mesh with multiple surfaces is prefered to a single surface, because objects created in 3D editing software commonly contain multiple materials.
- </description>
- <methods>
- <method name="add_morph_target" >
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_morph_target_count" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_morph_target" qualifiers="const" >
- <return type="String">
- </return>
- <argument index="0" name="index" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear_morph_targets" >
- <description>
- </description>
- </method>
- <method name="add_surface" >
- <argument index="0" name="primitive" type="int">
- </argument>
- <argument index="1" name="format" type="int">
- </argument>
- <argument index="2" name="array_len" type="int">
- </argument>
- <argument index="3" name="index_array_len" type="int">
- </argument>
- <description>
- Create a new surface ([method get_surface_count] will become surf_idx for this.[html br/]&#10;&#9;&#9;&#9;Surfaces are created to be rendered using a &quot;primitive&quot;, which may be PRIMITIVE_POINTS, PRIMITIVE_LINES, PRIMITIVE_LINE_STRIP, PRIMITIVE_LINE_LOOP, PRIMITIVE_TRIANGLES, PRIMITIVE_TRIANGLE_STRIP, PRIMITIVE_TRIANGLE_FAN. (As a note, when using indices, it is recommended to only use just points, lines or triangles).[html br/]&#10;&#9;&#9;&#9;The format of a surface determines which arrays it will allocate and hold, so &quot;format&quot; is a combination of ARRAY_FORMAT_* mask constants ORed together. ARRAY_FORMAT_VERTEX must be always present. &quot;array_len&quot; determines the amount of vertices in the array (not primitives!). if ARRAY_FORMAT_INDEX is in the format mask, then it means that an index array will be allocated and &quot;index_array_len&quot; must be passed.
- </description>
- </method>
- <method name="get_surface_count" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- Return the amount of surfaces that the [Mesh] holds.
- </description>
- </method>
- <method name="surface_remove" >
- <argument index="0" name="surf_idx" type="int">
- </argument>
- <description>
- Remove a surface at position surf_idx, shifting greater surfaces one surf_idx slot down.
- </description>
- </method>
- <method name="surface_set_array" >
- <return type="int">
- </return>
- <argument index="0" name="surf_idx" type="int">
- </argument>
- <argument index="1" name="array" type="int">
- </argument>
- <argument index="2" name="data" type="var">
- </argument>
- <description>
- Set a surface array, array must be defined in the format (see [method add_surface]), and which array being set in &quot;data&quot; must be indicated passing a value from the ARRAY_* enum (NOT THE ARRAY_FORMAT_ enum!!). A Mesh can&apos;t be displayed (error will be reported) if an array that is present in the format was not set.
- </description>
- </method>
- <method name="surface_get_array" qualifiers="const" >
- <argument index="0" name="surf_idx" type="int">
- </argument>
- <argument index="1" name="array" type="int">
- </argument>
- <description>
- Return a surface array, array must be defined in the format (see [method add_surface]), and which array being returned must be indicated passing a value from the ARRAY_* enum (NOT THE ARRAY_FORMAT_ enum!!) (see [method add_surface]).
- </description>
- </method>
- <method name="surface_get_array_len" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="surf_idx" type="int">
- </argument>
- <description>
- Return the length in vertices of the vertex array in the requested surface (see [method add_surface]).
- </description>
- </method>
- <method name="surface_get_array_index_len" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="surf_idx" type="int">
- </argument>
- <description>
- Return the length in indices of the index array in the requested surface (see [method add_surface]).
- </description>
- </method>
- <method name="surface_get_format" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="surf_idx" type="int">
- </argument>
- <description>
- Return the format mask of the requested surface (see [method add_surface]).
- </description>
- </method>
- <method name="surface_get_primitive_type" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="surf_idx" type="int">
- </argument>
- <description>
- Return the primitive type of the requested surface (see [method add_surface]).
- </description>
- </method>
- <method name="surface_set_material" >
- <argument index="0" name="surf_idx" type="int">
- </argument>
- <argument index="1" name="arg1" type="Object">
- </argument>
- <description>
- Set a [Material] for a given surface. Surface will be rendered using this material.
- </description>
- </method>
- <method name="surface_get_material" qualifiers="const" >
- <return type="Object">
- </return>
- <argument index="0" name="surf_idx" type="int">
- </argument>
- <description>
- Return a [Material] in a given surface. Surface is rendered using this material.
- </description>
- </method>
- </methods>
- <constants>
- <constant name="PRIMITIVE_LINES" value="1">
- Render array as lines (every two vertices a line is created).
- </constant>
- <constant name="ARRAY_FORMAT_TEX_UV2" value="32">
- </constant>
- <constant name="ARRAY_TEX_UV2" value="5">
- </constant>
- <constant name="ARRAY_WEIGHTS_SIZE" value="4">
- Amount of weights/bone indices per vertex (always 4).
- </constant>
- <constant name="ARRAY_FORMAT_VERTEX" value="1">
- Array format will include vertices (mandatory).
- </constant>
- <constant name="ARRAY_VERTEX" value="0">
- Vertex array (array of [Vector3]() vertices).
- </constant>
- <constant name="PRIMITIVE_POINTS" value="0">
- Render array as points (one vertex equals one point).
- </constant>
- <constant name="ARRAY_FORMAT_BONES" value="64">
- Array format will include bone indices.
- </constant>
- <constant name="ARRAY_FORMAT_COLOR" value="8">
- Array format will include a color array.
- </constant>
- <constant name="ARRAY_BONES" value="6">
- Array of bone indices, as a float array. Each element in groups of 4 floats.
- </constant>
- <constant name="ARRAY_COLOR" value="3">
- Vertex array (array of [Color]() colors).
- </constant>
- <constant name="ARRAY_FORMAT_INDEX" value="256">
- Index array will be used.
- </constant>
- <constant name="ARRAY_INDEX" value="8">
- Array of integers, used as indices referencing vertices. No index can be beyond the vertex array size.
- </constant>
- <constant name="PRIMITIVE_TRIANGLE_STRIP" value="5">
- Render array as triangle strips.
- </constant>
- <constant name="ARRAY_FORMAT_TANGENT" value="4">
- Array format will include tangents
- </constant>
- <constant name="ARRAY_FORMAT_NORMAL" value="2">
- Array format will include normals
- </constant>
- <constant name="ARRAY_TANGENT" value="2">
- Tangent array, array of groups of 4 floats. first 3 floats determine the tangent, and the last the binormal direction as -1 or 1.
- </constant>
- <constant name="ARRAY_NORMAL" value="1">
- Normal array (array of [Vector3]() normals).
- </constant>
- <constant name="PRIMITIVE_TRIANGLES" value="4">
- Render array as triangles (every three vertices a triangle is created).
- </constant>
- <constant name="PRIMITIVE_LINE_LOOP" value="3">
- Render array as line loop (like line strip, but closed).
- </constant>
- <constant name="PRIMITIVE_LINE_STRIP" value="2">
- Render array as line strip.
- </constant>
- <constant name="ARRAY_FORMAT_WEIGHTS" value="128">
- Array format will include bone weights.
- </constant>
- <constant name="ARRAY_FORMAT_TEX_UV" value="16">
- Array format will include UVs.
- </constant>
- <constant name="ARRAY_WEIGHTS" value="7">
- Array of bone weights, as a float array. Each element in groups of 4 floats.
- </constant>
- <constant name="ARRAY_TEX_UV" value="4">
- UV array (array of [Vector3]() UVs or float array of groups of 2 floats (u,v)).
- </constant>
- <constant name="PRIMITIVE_TRIANGLE_FAN" value="6">
- Render array as triangle fans.
- </constant>
- <constant name="NO_INDEX_ARRAY" value="-1">
- Default value used for index_array_len when no indices are present.
- </constant>
- </constants>
-</class>
-<class name="MeshInstance" inherits="VisualInstance" category="Nodes/3D/3D Visual Nodes">
- <brief_description>
- Node that instances meshes into a [Scenario].
- </brief_description>
- <description>
- MeshInstance is a [Node] that takes a [Mesh] resource and adds it to the current [Scenario] by creating an instance of it. This is the class most often used to get 3D geometry rendered and can be used to instance a sigle [Mesh] in many places. This allows to reuse geometry and save on resources. When a [Mesh] has to be instanced more than thousands of times at close proximity, consider using a [MultiMesh] in a [MultiMeshInstance] instead.
- </description>
- <methods>
- <method name="set_mesh" >
- <argument index="0" name="mesh" type="Object">
- </argument>
- <description>
- Set the [Mesh] resource for the instance.
- </description>
- </method>
- <method name="get_mesh" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- Return the current [Mesh] resource for the instance.
- </description>
- </method>
- <method name="get_aabb" qualifiers="const" >
- <return type="AABB">
- </return>
- <description>
- Return the AABB of the mesh, in local coordinates.
- </description>
- </method>
- <method name="create_trimesh_collision" >
- <description>
- This helper creates a [StaticBody] child [Node] using the mesh geometry as collision. It&apos;s mainly used for testing.
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Misc" inherits="Node" category="Core">
- <brief_description>
- Soon to be removed, bye bye.
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="MultiMesh" inherits="Resource" category="Resources">
- <brief_description>
- Provides high perfomance mesh instancing.
- </brief_description>
- <description>
- MultiMesh provides low level mesh instancing. If the amount of [Mesh] instances needed goes from hundreds to thousands (and most need to be visible at close proximity) creating such a large amount of [MeshInstance] nodes may affect performance by using too much CPU or video memory. [html br/]For this case a MultiMesh becomes very useful, as it can draw thousands of instances with little API overhead.[html br/] As a drawback, if the instances are too far away of each other, performance may be reduced as every sigle instance will always rendered (they are spatially indexed as one, for the whole object).[html br/] Since instances may have any behavior, the AABB used for visibility must be provided by the user, or generated with [method generate_aabb].
- </description>
- <methods>
- <method name="set_mesh" >
- <argument index="0" name="arg0" type="Object">
- </argument>
- <description>
- Set the [Mesh] resource to be drawn in multiple instances.
- </description>
- </method>
- <method name="get_mesh" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- Return the [Mesh] resource drawn as multiple instances.
- </description>
- </method>
- <method name="set_instance_count" >
- <argument index="0" name="arg0" type="int">
- </argument>
- <description>
- Set the amount of instnces that is going to be drawn. Changing this number will erase all the existing instance transform and color data.
- </description>
- </method>
- <method name="get_instance_count" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- Return the amount of instnces that is going to be drawn.
- </description>
- </method>
- <method name="set_instance_transform" >
- <argument index="0" name="arg0" type="int">
- </argument>
- <argument index="1" name="arg1" type="Transform">
- </argument>
- <description>
- Set the transform for a specific instance.
- </description>
- </method>
- <method name="get_instance_transform" qualifiers="const" >
- <return type="Transform">
- </return>
- <argument index="0" name="arg0" type="int">
- </argument>
- <description>
- Return the transform of a specific instance.
- </description>
- </method>
- <method name="set_instance_color" >
- <argument index="0" name="arg0" type="int">
- </argument>
- <argument index="1" name="arg1" type="Color">
- </argument>
- <description>
- Set the color of a specific instance.
- </description>
- </method>
- <method name="get_instance_color" qualifiers="const" >
- <return type="Color">
- </return>
- <argument index="0" name="arg0" type="int">
- </argument>
- <description>
- Get the color of a specific instance.
- </description>
- </method>
- <method name="set_aabb" >
- <argument index="0" name="arg0" type="AABB">
- </argument>
- <description>
- Set the visibility AABB. If not provided, MultiMesh will not be visible.
- </description>
- </method>
- <method name="get_aabb" qualifiers="const" >
- <return type="AABB">
- </return>
- <description>
- Return the visibility AABB.
- </description>
- </method>
- <method name="generate_aabb" >
- <description>
- Generate a new visibility AABB, using mesh AABB and instance transforms. Since instance information is stored in the [VisualServer], this function is VERY SLOW and must NOT be used often.
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="MultiMeshInstance" inherits="VisualInstance" category="Nodes/3D/3D Visual Nodes">
- <brief_description>
- Node that instances a [MultiMesh].
- </brief_description>
- <description>
- MultiMeshInstance is a [Node] that takes a [MultiMesh] resource and adds it to the current [Scenario] by creating an instance of it (yes, this is an instance of instances).
- </description>
- <methods>
- <method name="set_multimesh" >
- <argument index="0" name="multimesh" type="Object">
- </argument>
- <description>
- Set the [MultiMesh] to be instance.
- </description>
- </method>
- <method name="get_multimesh" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- Return the [MultiMesh] that is used for instancing.
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Node" inherits="Object" category="Nodes">
- <brief_description>
- Base class for all the &quot;Scene&quot; elements.
- </brief_description>
- <description>
- Nodes can be set as children of other nodes, resulting in a tree arrangement. Any tree of nodes is called a &quot;Scene&quot;.[html br/] Scenes can be saved to disk, and then instanced into other scenes. This allows for very high flexibility in the architecture and data model of the projects. Scenes become &quot;active&quot; and part of the &quot;Scene Tree&quot; once they are added as children of a [RootNode].[html br/][html br/]&#10;&#9;As an illustrative example, a Scene (tree of nodes):&#10;&#9;[html div align=&quot;center&quot;][html img src=&quot;images/scene.png&quot;/][html /div]&#10;&#9;This scene will was edited separatedly, then is added as part of a game (by instancing it), becoming part of a &quot;Scene Tree&quot;:&#10;&#9;[html div align=&quot;center&quot;][html img src=&quot;images/scene_tree.png&quot;/][html /div]&#10;&#9;In short, nodes are an effective all-in-one way to create and organize assets, gameplay and game data.&#10;&#9;When a Node is freed (deleted), it will delete all its children&#10;&#9;nodes.&#10;&#9;TODO: explain better process/signal/group call ordering
- </description>
- <methods>
- <method name="set_name" >
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- Set the name of the [Node]. Name must be unique within parent, and setting an already existing name will cause for the node to be automatically renamed.
- </description>
- </method>
- <method name="get_name" qualifiers="const" >
- <return type="String">
- </return>
- <description>
- Return the name of the [Node]. Name is be unique within parent.
- </description>
- </method>
- <method name="add_child" >
- <argument index="0" name="node" type="Node">
- </argument>
- <description>
- Add a child [Node]. Nodes can have as many children as they want, but every child must have a unique name. Children nodes are automatically deleted when the parent node is deleted, so deleting a whole scene is performed by deleting its topmost node.
- </description>
- </method>
- <method name="remove_child" >
- <argument index="0" name="node" type="Node">
- </argument>
- <description>
- Remove a child [Node]. Node is NOT deleted and will have to be deleted manually.
- </description>
- </method>
- <method name="get_child_count" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- Return the amount of children nodes.
- </description>
- </method>
- <method name="get_child" qualifiers="const" >
- <return type="Object">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- Return a children node by it&apos;s index (see [method get_child_count]). This method is often used for iterating all children of a node.
- </description>
- </method>
- <method name="has_node" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="path" type="NodePath">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_node" qualifiers="const" >
- <return type="Object">
- </return>
- <argument index="0" name="path" type="NodePath">
- </argument>
- <description>
- Fetch a node. &quot;path&quot; must be valid (or else error will occur) and can be either the name of a child node, a relative path (from the current node to another node), or an absolute path to a node.[html br/] Examples ofa paths are: get_node(&quot;Sword&quot;) , get_node(&quot;../Swamp/Alligator&quot;) , get_node(&quot;/MyGame&quot;). [html br/]Note: fetching absolute paths only works when the node is inside the scene tree (see [method is_inside_tree]).
- </description>
- </method>
- <method name="get_parent" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- Return the parent [Node] of the current [Node], or an empty Object if the node lacks a parent.
- </description>
- </method>
- <method name="is_inside_scene" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="is_a_parent_of" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="node" type="Node">
- </argument>
- <description>
- Return [html i]true[html /i] if the &quot;node&quot; argument is a direct or indirect child of the current node, otherwise return [html i]false[html /i].
- </description>
- </method>
- <method name="is_greater_than" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="node" type="Node">
- </argument>
- <description>
- Return [html i]true[html /i] if &quot;node&quot; occurs later in the scene hierarchy than the current node, otherwise return [html i]false[html /i].
- </description>
- </method>
- <method name="get_path" qualifiers="const" >
- <return type="NodePath">
- </return>
- <description>
- Return the absolute path of the current node. This only works if the curent node is inside the scene tree (see [method is_inside_tree]).
- </description>
- </method>
- <method name="get_path_to" qualifiers="const" >
- <return type="NodePath">
- </return>
- <argument index="0" name="node" type="Node">
- </argument>
- <description>
- Return the relative path from the current node to the specified node in &quot;node&quot; argument. Both nodes must be in the same scene, or else the function will fail.
- </description>
- </method>
- <method name="add_to_group" >
- <argument index="0" name="group" type="String">
- </argument>
- <argument index="1" name="arg1" type="bool">
- </argument>
- <description>
- Add a node to a group. Groups are helpers to name and organize group of nodes, like for example: &quot;Enemies&quot; &quot;Collectables&quot;, etc. A [Node] can be in any number of groups. Nodes can be assigned a group at any time, but will not be added to it until they are inside the scene tree (see [method is_inside_tree]).
- </description>
- </method>
- <method name="remove_from_group" >
- <argument index="0" name="group" type="String">
- </argument>
- <description>
- Remove a node from a group.
- </description>
- </method>
- <method name="move_child" >
- <argument index="0" name="child_node" type="Node">
- </argument>
- <argument index="1" name="to_pos" type="int">
- </argument>
- <description>
- Move a child node to a different position (order) amongst the other children. Since calls, signals, etc are performed by tree order, changing the order of chilren nodes may be useful.
- </description>
- </method>
- <method name="raise" >
- <description>
- Move this node to the top of the array of nodes of the parent node. This is often useful on GUIs ([Control]), because their order of drawing fully depends on their order in the tree.
- </description>
- </method>
- <method name="set_owner" >
- <argument index="0" name="arg0" type="Object">
- </argument>
- <description>
- Set the node owner. A node can have any other node as owner (as long as a valid parent, grandparent, etc ascending in the tree). When saving a node (using SceneSaver) all the nodes it owns will be saved with it. This allows to create complex SceneTrees, with instancing and subinstancing.
- </description>
- </method>
- <method name="get_owner" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- Get the node owner (see [method set_node_owner]).
- </description>
- </method>
- <method name="remove_and_skip" >
- <description>
- Remove a node and set all its children as childrens of the parent node (if exists). All even subscriptions that pass by the removed node will be unsubscribed.
- </description>
- </method>
- <method name="get_index" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- Get the node index in the parent (assuming it has a parent).
- </description>
- </method>
- <method name="print_tree" >
- <description>
- Print the screne to stdout. Used mainly for debugging purposes.
- </description>
- </method>
- <method name="set_filename" >
- <argument index="0" name="filename" type="String">
- </argument>
- <description>
- A node can contain a filename. This filename should not be changed by the user, unless writing editors and tools. When a scene is instanced from a file, it topmost node contains the filename from where it was loaded.
- </description>
- </method>
- <method name="get_filename" qualifiers="const" >
- <return type="String">
- </return>
- <description>
- Return a filename that may be containedA node can contained by the node. When a scene is instanced from a file, it topmost node contains the filename from where it was loaded (see [method set_filename]).
- </description>
- </method>
- <method name="propagate_notification" >
- <argument index="0" name="what" type="int">
- </argument>
- <description>
- Notify the current node and all its chldren recursively by calling notification() in all of them.
- </description>
- </method>
- <method name="set_process" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- Enables or disables node processing. When a node is being processed, it will receive a NOTIFICATION_PROCESS on every frame. It is common to check how much time was elapsed since the previous frame by calling [method get_process_time]. If the application is set to run at 60 fps, NOTIFICATION_PROCESS will be received 60 times per second (even if the visuals are running at faster or lower fps). Because of this, nodes that wish to do processing are recommended to use [method set_idle_process] instead, unless strong syncronization is requiered (for example, to modify the behavior of physics objects).
- </description>
- </method>
- <method name="get_process_time" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- Return the amount of time elapsed (in seconds) between two succesive NOTIFICATION_PROCESS notifications.
- </description>
- </method>
- <method name="is_processing" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- Return wether processing is enabled in the current node.
- </description>
- </method>
- <method name="set_idle_process" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- Enables or disables node idle processing. When a node is being idle-processed, it will receive a NOTIFICATION_IDLE_PROCESS when idle. It is common to check how much time was elapsed since the previous idle time by calling [method get_idle_process_time]. Idle processing is commonly syncronized to [VisualServer] being done rendering a frame, so this type of processing is syncronized to the visible frames per second. To syncronize with the desired frames per second, see [method set_process] instead.
- </description>
- </method>
- <method name="get_idle_process_time" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- Return the amount of time elapsed (in seconds) between two succesive NOTIFICATION_IDLE_PROCESS notifications.
- </description>
- </method>
- <method name="is_idle_processing" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- Return wether idle processing is enabled in the current node.
- </description>
- </method>
- <method name="set_process_input" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_processing_input" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_process_unhandled_input" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_processing_unhandled_input" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_process_mode" >
- <argument index="0" name="mode" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_process_mode" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_world" >
- <argument index="0" name="world" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_world" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="get_current_world" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="get_scene" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="duplicate" qualifiers="const" >
- <return type="Object">
- </return>
- <argument index="0" name="arg0" type="Object">
- </argument>
- <argument index="1" name="arg1" type="bool" default="NULL">
- </argument>
- <description>
- Return a duplicate of the scene, with all nodes and parameters copied. Subscriptions will not be duplicated.
- </description>
- </method>
- <method name="replace_by" >
- <argument index="0" name="node" type="Node">
- </argument>
- <argument index="1" name="keep_data" type="bool" default="false">
- </argument>
- <description>
- Replace a node in a scene by a given one. Subscriptions that pass through this node will be lost.
- </description>
- </method>
- </methods>
- <signals>
- <signal name="enter_scene">
- <description>
- </description>
- </signal>
- <signal name="renamed">
- <description>
- </description>
- </signal>
- <signal name="exit_scene">
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- <constant name="NOTIFICATION_ENTER_WORLD" value="20">
- </constant>
- <constant name="PROCESS_PAUSE" value="1">
- </constant>
- <constant name="NOTIFICATION_UNPARENTED" value="19">
- Notification received when a node is unparented (parent removed it from the list of children).
- </constant>
- <constant name="NOTIFICATION_CHILDREN_CONFIGURED" value="14">
- </constant>
- <constant name="NOTIFICATION_PROCESS" value="16">
- Notification received every frame when the process flag is set (see [method set_process]).
- </constant>
- <constant name="NOTIFICATION_EXIT_SCENE" value="11">
- </constant>
- <constant name="PROCESS_ALWAYS" value="2">
- </constant>
- <constant name="PROCESS_NORMAL" value="0">
- </constant>
- <constant name="NOTIFICATION_EXIT_WORLD" value="21">
- </constant>
- <constant name="NOTIFICATION_MOVED_IN_PARENT" value="12">
- </constant>
- <constant name="NOTIFICATION_PARENTED" value="18">
- Notification received when a node is set as a child of another node. Note that this doesn&apos;t mean that a node entered the Scene Tree.
- </constant>
- <constant name="NOTIFICATION_ENTER_SCENE" value="10">
- </constant>
- <constant name="NOTIFICATION_IDLE_PROCESS" value="17">
- Notification received every time the application enters idle when the idle process flag is set (see [method set_process]).
- </constant>
- </constants>
-</class>
-<class name="Node2D" inherits="CanvasItem" category="Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_pos" >
- <argument index="0" name="pos" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_rot" >
- <argument index="0" name="rot" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_scale" >
- <argument index="0" name="scale" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_pos" qualifiers="const" >
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="get_rot" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_scale" qualifiers="const" >
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="NOTIFICATION_DRAW" value="30">
- </constant>
- </constants>
-</class>
-<class name="_OS" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_mouse_show" >
- <argument index="0" name="show" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_mouse_grab" >
- <argument index="0" name="grab" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_mouse_grab_enabled" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="get_mouse_pos" qualifiers="const" >
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="set_clipboard" >
- <argument index="0" name="clipboard" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_clipboard" qualifiers="const" >
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="set_video_mode" >
- <argument index="0" name="size" type="Vector2">
- </argument>
- <argument index="1" name="fullscreen" type="bool">
- </argument>
- <argument index="2" name="resizable" type="bool">
- </argument>
- <argument index="3" name="screen" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_video_mode_size" qualifiers="const" >
- <return type="Vector2">
- </return>
- <argument index="0" name="screen" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_video_mode_fullscreen" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="screen" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_video_mode_resizable" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="screen" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_fullscreen_mode_list" qualifiers="const" >
- <return type="Array">
- </return>
- <argument index="0" name="screen" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_iterations_per_second" >
- <argument index="0" name="iterations_per_second" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_iterations_per_second" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_low_processor_usage_mode" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_in_low_processor_usage_mode" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="get_executable_path" qualifiers="const" >
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="execute" >
- <return type="int">
- </return>
- <argument index="0" name="path" type="String">
- </argument>
- <argument index="1" name="arguments" type="StringArray">
- </argument>
- <argument index="2" name="blocking" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="kill" >
- <return type="int">
- </return>
- <argument index="0" name="pid" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_environment" qualifiers="const" >
- <return type="String">
- </return>
- <argument index="0" name="environment" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_environment" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="environment" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_name" qualifiers="const" >
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="get_cmdline_args" >
- <return type="StringArray">
- </return>
- <description>
- </description>
- </method>
- <method name="get_main_loop" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="get_date" qualifiers="const" >
- <return type="Dictionary">
- </return>
- <description>
- </description>
- </method>
- <method name="get_time" qualifiers="const" >
- <return type="Dictionary">
- </return>
- <description>
- </description>
- </method>
- <method name="delay_usec" qualifiers="const" >
- <argument index="0" name="usec" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_ticks_msec" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="can_draw" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="get_frames_drawn" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="is_stdout_verbose" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="MONTH_NOVEMBER" value="10">
- </constant>
- <constant name="MONTH_OCTOBER" value="9">
- </constant>
- <constant name="MONTH_DECEMBER" value="11">
- </constant>
- <constant name="MONTH_SEPTEMBER" value="8">
- </constant>
- <constant name="MONTH_MAY" value="4">
- </constant>
- <constant name="DAY_FRIDAY" value="5">
- </constant>
- <constant name="DAY_TUESDAY" value="2">
- </constant>
- <constant name="MONTH_APRIL" value="3">
- </constant>
- <constant name="MONTH_FEBRUARY" value="1">
- </constant>
- <constant name="DAY_MONDAY" value="1">
- </constant>
- <constant name="MONTH_AUGUST" value="7">
- </constant>
- <constant name="MONTH_JUNE" value="5">
- </constant>
- <constant name="MONTH_JANUARY" value="0">
- </constant>
- <constant name="MONTH_MARCH" value="2">
- </constant>
- <constant name="MONTH_JULY" value="6">
- </constant>
- <constant name="DAY_THURSDAY" value="4">
- </constant>
- <constant name="DAY_WEDNESDAY" value="3">
- </constant>
- <constant name="DAY_SUNDAY" value="0">
- </constant>
- <constant name="DAY_SATURDAY" value="6">
- </constant>
- </constants>
-</class>
-<class name="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="get_type" qualifiers="const" >
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="is_type" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set" >
- <argument index="0" name="property" type="String">
- </argument>
- <argument index="1" name="value" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="get" qualifiers="const" >
- <argument index="0" name="property" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_property_list" qualifiers="const" >
- <return type="Array">
- </return>
- <description>
- </description>
- </method>
- <method name="notification" >
- <argument index="0" name="what" type="int">
- </argument>
- <argument index="1" name="arg1" type="bool" default="false">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_instance_ID" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_script" >
- <argument index="0" name="script" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_script" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="set_meta" >
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="value" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_meta" qualifiers="const" >
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_meta" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_meta_list" qualifiers="const" >
- <return type="StringArray">
- </return>
- <description>
- </description>
- </method>
- <method name="call" >
- <argument index="0" name="method" type="String">
- </argument>
- <argument index="1" name="arg1" type="var" default="NULL">
- </argument>
- <argument index="2" name="arg2" type="var" default="NULL">
- </argument>
- <argument index="3" name="arg3" type="var" default="NULL">
- </argument>
- <argument index="4" name="arg4" type="var" default="NULL">
- </argument>
- <description>
- </description>
- </method>
- <method name="call_deferred" >
- <argument index="0" name="method" type="String">
- </argument>
- <argument index="1" name="arg1" type="var" default="NULL">
- </argument>
- <argument index="2" name="arg2" type="var" default="NULL">
- </argument>
- <argument index="3" name="arg3" type="var" default="NULL">
- </argument>
- <argument index="4" name="arg4" type="var" default="NULL">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_user_signal" >
- <argument index="0" name="signal" type="String">
- </argument>
- <argument index="1" name="arguments" type="Array" default="Array()">
- </argument>
- <description>
- </description>
- </method>
- <method name="emit_signal" >
- <argument index="0" name="signal" type="String">
- </argument>
- <argument index="1" name="arguments" type="Array" default="Array()">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_signal_list" qualifiers="const" >
- <return type="Array">
- </return>
- <description>
- </description>
- </method>
- <method name="connect" >
- <argument index="0" name="signal" type="String">
- </argument>
- <argument index="1" name="target" type="Object">
- </argument>
- <argument index="2" name="method" type="String">
- </argument>
- <argument index="3" name="binds" type="Array" default="Array()">
- </argument>
- <argument index="4" name="flags" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="disconnect" >
- <argument index="0" name="signal" type="String">
- </argument>
- <argument index="1" name="target" type="Object">
- </argument>
- <argument index="2" name="method" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_block_signals" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_blocking_signals" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="NOTIFICATION_POSTINITIALIZE" value="0">
- </constant>
- <constant name="NOTIFICATION_PREDELETE" value="1">
- </constant>
- </constants>
-</class>
-<class name="OmniLight" inherits="Light" category="Nodes/3D/3D Visual Nodes/3D Light Nodes">
- <brief_description>
- OmniDirectional Light, such as a lightbulb or a candle.
- </brief_description>
- <description>
- An OmniDirectional light is a type of [Light] node that emits lights in all directions. The light is attenuated through the distance and this attenuation can be configured by changing the energy, radius and attenuation parameters of [Light]. TODO: Image of an omnilight.
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="OptionButton" inherits="Button" category="Nodes/GUI Nodes">
- <brief_description>
- Button control that provides selectable options when pressed.
- </brief_description>
- <description>
- OptionButton is a type button that provides a selectable list of items when pressed. The item selected becomes the &quot;current&quot; item and is displayed as the button text.
- </description>
- <methods>
- <method name="add_item" >
- <argument index="0" name="label" type="String">
- </argument>
- <argument index="1" name="id" type="int" default="-1">
- </argument>
- <description>
- Add an item, with text &quot;label&quot; and (optionally) id. If no &quot;id&quot; is passed, &quot;id&quot; becomes the item index. New items are appended at the end.
- </description>
- </method>
- <method name="add_icon_item" >
- <argument index="0" name="texture" type="Object">
- </argument>
- <argument index="1" name="label" type="String">
- </argument>
- <argument index="2" name="id" type="int">
- </argument>
- <description>
- Add an item, with a &quot;texture&quot; icon, text &quot;label&quot; and (optionally) id. If no &quot;id&quot; is passed, &quot;id&quot; becomes the item index. New items are appended at the end.
- </description>
- </method>
- <method name="set_item_text" >
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="text" type="String">
- </argument>
- <description>
- Set the text of an item at index &quot;idx&quot;.
- </description>
- </method>
- <method name="set_item_icon" >
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="texture" type="Object">
- </argument>
- <description>
- Set the icon of an item at index &quot;idx&quot;.
- </description>
- </method>
- <method name="set_item_disabled" >
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="disabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_item_ID" >
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="id" type="int">
- </argument>
- <description>
- Set the ID of an item at index &quot;idx&quot;.
- </description>
- </method>
- <method name="set_item_metadata" >
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="metadata" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_item_text" qualifiers="const" >
- <return type="String">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- Return the text of the item at index &quot;idx&quot;.
- </description>
- </method>
- <method name="get_item_icon" qualifiers="const" >
- <return type="Object">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- Return the icon of the item at index &quot;idx&quot;.
- </description>
- </method>
- <method name="get_item_ID" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- Return the ID of the item at index &quot;idx&quot;.
- </description>
- </method>
- <method name="get_item_metadata" qualifiers="const" >
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_item_disabled" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_item_count" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- Return the amount of items in the OptionButton.
- </description>
- </method>
- <method name="add_separator" >
- <description>
- Add a separator to the list of items. Separators help to group items. Separator also takes up an index and is appended at the end.
- </description>
- </method>
- <method name="clear" >
- <description>
- Clear all the items in the [OptionButton].
- </description>
- </method>
- <method name="select" >
- <argument index="0" name="arg0" type="int">
- </argument>
- <description>
- Select an item by index and make it the current item.
- </description>
- </method>
- <method name="get_selected" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- Return the current item index
- </description>
- </method>
- <method name="get_selected_ID" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_selected_metadata" qualifiers="const" >
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="item_selected">
- <argument index="0" name="ID" type="int">
- </argument>
- <description>
- This signal is emitted when the current item was changed by the user. ID of the item selected is passed as argument (if no IDs were added, ID will be just the item index).
- </description>
- </signal>
- </signals>
- <constants>
- </constants>
-</class>
-<class name="PacketPeer" inherits="Object" category="Core">
- <brief_description>
- Abstraction and base class for packet-based protocols.
- </brief_description>
- <description>
- PacketPeer is an abstration and base class for packet-based protocols (such as UDP). It provides an API for sending and receiving packets both as raw data or variables. This makes it easy to transfer data over a protocol, without having to encode data as low level bytes or having to worry about network ordering.
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="PacketPeerStream" inherits="PacketPeer" category="Core">
- <brief_description>
- Wrapper to use a PacketPeer over a StreamPeer.
- </brief_description>
- <description>
- PacketStreamPeer provides a wrapper for working using packets over a stream. This allows for using packet based code with StreamPeers. PacketPeerStream implements a custom protocol over the StreamPeer, so the user should not read or write to the wrapped StreamPeer directly.
- </description>
- <methods>
- <method name="set_stream_peer" >
- <argument index="0" name="peer" type="Object">
- </argument>
- <description>
- Set the StreamPeer object to be wrapped
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Panel" inherits="Control" category="Nodes/GUI Nodes">
- <brief_description>
- Provides an opaque background for [Control] children.
- </brief_description>
- <description>
- Panel is a [Control] that displays an opaque background. It&apos;s commoly used as a parent and container for other types of [Control] nodes.&#10;&#9;[html div align=&quot;center&quot;][html img src=&quot;images/panel_example.png&quot;/][html /div]
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Particles" inherits="VisualInstance" category="Nodes/3D/3D Visual Nodes">
- <brief_description>
- Particle system 3D Node
- </brief_description>
- <description>
- Particles is a particle system 3D [Node] that is used to simulate several types of particle effects, such as explosions, rain, snow, fireflies, or other magical-like shinny sparkles. Particles are drawn using impostors, and given their dynamic behavior, the user must provide a visibility AABB (although helpers to create one automatically exist).
- </description>
- <methods>
- <method name="set_amount" >
- <argument index="0" name="amount" type="int">
- </argument>
- <description>
- Set total amount of particles in the system.
- </description>
- </method>
- <method name="get_amount" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- Return the total amount of particles in the system.
- </description>
- </method>
- <method name="set_emitting" >
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- Set the &quot;emitting&quot; property state. When emitting, the particle system generates new particles at constant rate.
- </description>
- </method>
- <method name="is_emitting" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- Return the &quot;emitting&quot; property state (see [method set_emitting]).
- </description>
- </method>
- <method name="set_visibility_aabb" >
- <argument index="0" name="aabb" type="AABB">
- </argument>
- <description>
- Set the visibility AABB for the particle system, since the default one will not work properly most of the time.
- </description>
- </method>
- <method name="get_visibility_aabb" qualifiers="const" >
- <return type="AABB">
- </return>
- <description>
- Return the current visibility AABB.
- </description>
- </method>
- <method name="set_emission_half_extents" >
- <argument index="0" name="half_extents" type="Vector3">
- </argument>
- <description>
- Set the half extents for the emission box.
- </description>
- </method>
- <method name="get_emission_half_extents" qualifiers="const" >
- <return type="Vector3">
- </return>
- <description>
- Return the half extents for the emission box.
- </description>
- </method>
- <method name="set_emission_points" >
- <argument index="0" name="points" type="Vector3Array">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_emission_points" qualifiers="const" >
- <return type="Vector3Array">
- </return>
- <description>
- </description>
- </method>
- <method name="set_gravity_normal" >
- <argument index="0" name="normal" type="Vector3">
- </argument>
- <description>
- Set the normal vector towards where gravity is pulling (by default, negative Y).
- </description>
- </method>
- <method name="get_gravity_normal" qualifiers="const" >
- <return type="Vector3">
- </return>
- <description>
- Return the normal vector towards where gravity is pulling (by default, negative Y).
- </description>
- </method>
- <method name="set_variable" >
- <argument index="0" name="variable" type="int">
- </argument>
- <argument index="1" name="value" type="real">
- </argument>
- <description>
- Set a specific variable for the particle system (see VAR_* enum).
- </description>
- </method>
- <method name="get_variable" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="variable" type="int">
- </argument>
- <description>
- Return a specific variable for the particle system (see VAR_* enum).
- </description>
- </method>
- <method name="set_randomness" >
- <argument index="0" name="variable" type="int">
- </argument>
- <argument index="1" name="randomness" type="real">
- </argument>
- <description>
- Set the randomness for a specific variable of the particle system. Randomness produces small changes from the default each time a particle is emitted.
- </description>
- </method>
- <method name="get_randomness" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="arg0" type="int">
- </argument>
- <description>
- Return the randomness for a specific variable of the particle system. Randomness produces small changes from the default each time a particle is emitted.
- </description>
- </method>
- <method name="set_color_phase_pos" >
- <argument index="0" name="phase" type="int">
- </argument>
- <argument index="1" name="pos" type="real">
- </argument>
- <description>
- Set the position of a color phase (0 to 1)
- </description>
- </method>
- <method name="get_color_phase_pos" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="phase" type="int">
- </argument>
- <description>
- Return the position of a color phase (0 to 1)
- </description>
- </method>
- <method name="set_color_phase_color" >
- <argument index="0" name="phase" type="int">
- </argument>
- <argument index="1" name="color" type="Color">
- </argument>
- <description>
- Set the color of a color phase.
- </description>
- </method>
- <method name="get_color_phase_color" qualifiers="const" >
- <return type="Color">
- </return>
- <argument index="0" name="phase" type="int">
- </argument>
- <description>
- Return the color of a color phase.
- </description>
- </method>
- <method name="set_material" >
- <argument index="0" name="material" type="Object">
- </argument>
- <description>
- Set the material used to draw particles
- </description>
- </method>
- <method name="get_material" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- Return the material used to draw particles
- </description>
- </method>
- <method name="set_emit_timeout" >
- <argument index="0" name="arg0" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_emit_timeout" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_height_from_velocity" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_height_from_velocity" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_color_phases" >
- <argument index="0" name="count" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_color_phases" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="VAR_FINAL_SIZE" value="9">
- </constant>
- <constant name="VAR_INITIAL_SIZE" value="8">
- </constant>
- <constant name="VAR_LINEAR_ACCELERATION" value="5">
- </constant>
- <constant name="VAR_MAX" value="13">
- </constant>
- <constant name="VAR_DRAG" value="6">
- </constant>
- <constant name="VAR_GRAVITY" value="2">
- </constant>
- <constant name="VAR_SPREAD" value="1">
- </constant>
- <constant name="VAR_LIFETIME" value="0">
- </constant>
- <constant name="VAR_HEIGHT_SPEED_SCALE" value="12">
- </constant>
- <constant name="VAR_INITIAL_ANGLE" value="10">
- </constant>
- <constant name="VAR_TANGENTIAL_ACCELERATION" value="7">
- </constant>
- <constant name="VAR_ANGULAR_VELOCITY" value="4">
- </constant>
- <constant name="VAR_HEIGHT" value="11">
- </constant>
- <constant name="VAR_LINEAR_VELOCITY" value="3">
- </constant>
- </constants>
-</class>
-<class name="Particles2D" inherits="Node2D" category="Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_emitting" >
- <argument index="0" name="active" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_emitting" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_amount" >
- <argument index="0" name="amount" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_amount" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_lifetime" >
- <argument index="0" name="lifetime" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_lifetime" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_param" >
- <argument index="0" name="param" type="int">
- </argument>
- <argument index="1" name="value" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_param" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="param" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_randomness" >
- <argument index="0" name="param" type="int">
- </argument>
- <argument index="1" name="value" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_randomness" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="param" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_texture" >
- <argument index="0" name="texture" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_texture" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="set_emissor_offset" >
- <argument index="0" name="offset" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_emissor_offset" qualifiers="const" >
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="set_initial_color" >
- <argument index="0" name="initial_color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_initial_color" qualifiers="const" >
- <return type="Color">
- </return>
- <description>
- </description>
- </method>
- <method name="set_final_color" >
- <argument index="0" name="final_color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_final_color" qualifiers="const" >
- <return type="Color">
- </return>
- <description>
- </description>
- </method>
- <method name="set_use_parent_space" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_using_parent_space" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="PARAM_FINAL_SIZE" value="9">
- </constant>
- <constant name="PARAM_INITIAL_SIZE" value="8">
- </constant>
- <constant name="PARAM_RADIAL_ACCEL" value="6">
- </constant>
- <constant name="PARAM_GRAVITY_STRENGTH" value="5">
- </constant>
- <constant name="PARAM_MAX" value="11">
- </constant>
- <constant name="PARAM_HUE_VARIATION" value="10">
- </constant>
- <constant name="PARAM_TANGENTIAL_ACCEL" value="7">
- </constant>
- <constant name="PARAM_GRAVITY_DIRECTION" value="4">
- </constant>
- <constant name="PARAM_SPREAD" value="1">
- </constant>
- <constant name="PARAM_SPIN_VELOCITY" value="3">
- </constant>
- <constant name="PARAM_LINEAR_VELOCITY" value="2">
- </constant>
- <constant name="PARAM_DIRECTION" value="0">
- </constant>
- </constants>
-</class>
-<class name="PhysicsBody" inherits="Spatial" category="Nodes/3D">
- <brief_description>
- Base class for differnt types of Physics bodies.
- </brief_description>
- <description>
- PhysicsBody is an abstract base class for implementing a physics body. All PhysicsBody types inherit from it.
- </description>
- <methods>
- <method name="add_shape" >
- <argument index="0" name="shape" type="Object">
- </argument>
- <argument index="1" name="transform" type="Transform" default="Transform()">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_shape_count" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_shape" >
- <argument index="0" name="shape_idx" type="int">
- </argument>
- <argument index="1" name="shape" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_shape_transform" >
- <argument index="0" name="shape_idx" type="int">
- </argument>
- <argument index="1" name="transform" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_shape" qualifiers="const" >
- <return type="Object">
- </return>
- <argument index="0" name="shape_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_shape_transform" qualifiers="const" >
- <return type="Transform">
- </return>
- <argument index="0" name="shape_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="remove_shape" >
- <argument index="0" name="shape_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear_shapes" >
- <description>
- </description>
- </method>
- <method name="get_body" qualifiers="const" >
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="set_max_contacts_reported" >
- <argument index="0" name="contacts" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_max_contacts_reported" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_contacts_reported_depth_treshold" >
- <argument index="0" name="depth" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_contacts_reported_depth_treshold" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="PhysicsDirectBodyState" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="get_total_gravity" qualifiers="const" >
- <return type="Vector3">
- </return>
- <description>
- </description>
- </method>
- <method name="get_total_density" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_inverse_mass" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_inverse_inertia_tensor" qualifiers="const" >
- <return type="Matrix3">
- </return>
- <description>
- </description>
- </method>
- <method name="set_linear_velocity" >
- <argument index="0" name="velocity" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_linear_velocity" qualifiers="const" >
- <return type="Vector3">
- </return>
- <description>
- </description>
- </method>
- <method name="set_angular_velocity" >
- <argument index="0" name="velocity" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_angular_velocity" qualifiers="const" >
- <return type="Vector3">
- </return>
- <description>
- </description>
- </method>
- <method name="set_transform" >
- <argument index="0" name="transform" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_transform" qualifiers="const" >
- <return type="Transform">
- </return>
- <description>
- </description>
- </method>
- <method name="set_sleep_state" >
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_sleeping" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="get_contact_count" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_contact_local_pos" qualifiers="const" >
- <return type="Vector3">
- </return>
- <argument index="0" name="contact_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_contact_local_normal" qualifiers="const" >
- <return type="Vector3">
- </return>
- <argument index="0" name="contact_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_contact_local_shape" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="contact_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_contact_collider" qualifiers="const" >
- <return type="RID">
- </return>
- <argument index="0" name="contact_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_contact_collider_pos" qualifiers="const" >
- <return type="Vector3">
- </return>
- <argument index="0" name="contact_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_contact_collider_id" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="contact_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_contact_collider_shape" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="contact_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_contact_collider_velocity_at_pos" qualifiers="const" >
- <return type="Vector3">
- </return>
- <argument index="0" name="contact_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="PhysicsDirectBodyStateSW" inherits="PhysicsDirectBodyState" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="PhysicsServer" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="shape_create" >
- <return type="RID">
- </return>
- <argument index="0" name="shape_type" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="shape_set_data" >
- <argument index="0" name="shape" type="RID">
- </argument>
- <argument index="1" name="data" type="var">
- </argument>
- <argument index="2" name="margin" type="real" default="-1">
- </argument>
- <description>
- </description>
- </method>
- <method name="shape_get_type" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="shape" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="shape_get_data" qualifiers="const" >
- <argument index="0" name="shape" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="space_create" >
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="area_create" >
- <return type="RID">
- </return>
- <argument index="0" name="space" type="int">
- </argument>
- <argument index="1" name="arg1" type="bool" default="RID()">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_set_param" >
- <argument index="0" name="area" type="RID">
- </argument>
- <argument index="1" name="param" type="int">
- </argument>
- <argument index="2" name="value" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_set_shape" >
- <argument index="0" name="area" type="RID">
- </argument>
- <argument index="1" name="shape" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_set_bounds" >
- <argument index="0" name="area" type="RID">
- </argument>
- <argument index="1" name="bounds" type="Dictionary">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_set_transform" >
- <argument index="0" name="area" type="RID">
- </argument>
- <argument index="1" name="transform" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_get_param" qualifiers="const" >
- <argument index="0" name="area" type="RID">
- </argument>
- <argument index="1" name="param" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_get_shape" qualifiers="const" >
- <return type="RID">
- </return>
- <argument index="0" name="area" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_get_bounds" qualifiers="const" >
- <return type="Dictionary">
- </return>
- <argument index="0" name="area" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="area_get_transform" qualifiers="const" >
- <return type="Transform">
- </return>
- <argument index="0" name="area" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_create" >
- <return type="RID">
- </return>
- <argument index="0" name="space" type="int">
- </argument>
- <argument index="1" name="arg1" type="bool" default="RID()">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_set_mode" >
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="mode" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_get_mode" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_add_shape" >
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="shape" type="RID">
- </argument>
- <argument index="2" name="transform" type="Transform" default="Transform()">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_set_shape" >
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="shape_idx" type="int">
- </argument>
- <argument index="2" name="shape" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_set_shape_transform" >
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="shape_idx" type="int">
- </argument>
- <argument index="2" name="transform" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_get_shape_count" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="body" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_get_shape" qualifiers="const" >
- <return type="RID">
- </return>
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="shape_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_get_shape_transform" qualifiers="const" >
- <return type="Transform">
- </return>
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="shape_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_attach_object_instance_ID" >
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="ID" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_get_object_instance_ID" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="body" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_set_user_flags" >
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="user_flags" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_get_user_flags" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_set_param" >
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="param" type="int">
- </argument>
- <argument index="2" name="value" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_get_param" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="param" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_static_simulate_motion" >
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="motion" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_set_state" >
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="state" type="int">
- </argument>
- <argument index="2" name="value" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_get_state" qualifiers="const" >
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="state" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_set_applied_force" >
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="applied_force" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_get_applied_force" qualifiers="const" >
- <return type="Vector3">
- </return>
- <argument index="0" name="body" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_set_applied_torque" >
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="applied_torque" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_get_applied_torque" qualifiers="const" >
- <return type="Vector3">
- </return>
- <argument index="0" name="body" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_set_axis_velocity" >
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="axis_velocity" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_apply_impulse" >
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="pos" type="Vector3">
- </argument>
- <argument index="2" name="impulse" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_add_collision_exception" >
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="against_body" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="body_remove_collision_exception" >
- <argument index="0" name="body" type="RID">
- </argument>
- <argument index="1" name="against_body" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_create" >
- <return type="RID">
- </return>
- <argument index="0" name="receiver" type="Object">
- </argument>
- <argument index="1" name="callback" type="String">
- </argument>
- <argument index="2" name="userdata" type="var">
- </argument>
- <argument index="3" name="persist" type="bool" default="true">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_body_state" >
- <argument index="0" name="query" type="RID">
- </argument>
- <argument index="1" name="body" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_body_direct_state" >
- <argument index="0" name="query" type="RID">
- </argument>
- <argument index="1" name="body" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_area" >
- <argument index="0" name="query" type="RID">
- </argument>
- <argument index="1" name="area" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_intersection" >
- <argument index="0" name="query" type="RID">
- </argument>
- <argument index="1" name="space" type="RID">
- </argument>
- <argument index="2" name="exclude" type="Array" default="Array()">
- </argument>
- <argument index="3" name="usermask" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_intersection_ray" >
- <argument index="0" name="query" type="RID">
- </argument>
- <argument index="1" name="origin" type="Vector3">
- </argument>
- <argument index="2" name="dir" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_intersection_segment" >
- <argument index="0" name="query" type="RID">
- </argument>
- <argument index="1" name="from" type="Vector3">
- </argument>
- <argument index="2" name="to" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_intersection_shape" >
- <argument index="0" name="query" type="RID">
- </argument>
- <argument index="1" name="shape" type="RID">
- </argument>
- <argument index="2" name="arg2" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_intersection_bounds" >
- <argument index="0" name="query" type="RID">
- </argument>
- <argument index="1" name="bounds" type="Dictionary">
- </argument>
- <argument index="2" name="arg2" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_clear" >
- <argument index="0" name="query" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_get_type" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="query" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="query_get_target" qualifiers="const" >
- <return type="RID">
- </return>
- <argument index="0" name="query" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="free" >
- <argument index="0" name="rid" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_active" >
- <argument index="0" name="active" type="bool">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="QUERY_BODY_STATE" value="1">
- </constant>
- <constant name="BODY_PARAM_FRICTION" value="1">
- </constant>
- <constant name="AREA_PARAM_OVERRIDE_PARAMS" value="0">
- </constant>
- <constant name="SHAPE_CUSTOM" value="9">
- </constant>
- <constant name="QUERY_INTERSECTION" value="4">
- </constant>
- <constant name="BODY_STATE_SLEEPING" value="3">
- </constant>
- <constant name="QUERY_AREA_MONITOR" value="3">
- </constant>
- <constant name="QUERY_BODY_DIRECT_STATE" value="2">
- </constant>
- <constant name="QUERY_NONE" value="0">
- </constant>
- <constant name="CONE_TWIST_VAR_RELAXATION" value="4">
- </constant>
- <constant name="CONE_TWIST_VAR_BIAS" value="3">
- </constant>
- <constant name="CONE_TWIST_VAR_SWING_SPAN_LIMIT_1" value="0">
- </constant>
- <constant name="HINGE_VAR_MOTOR_ENABLED" value="5">
- </constant>
- <constant name="HINGE_VAR_LIMIT_SOFTNESS" value="3">
- </constant>
- <constant name="HINGE_VAR_ANGULAR_ONLY" value="0">
- </constant>
- <constant name="BODY_STATE_ANGULAR_VELOCITY" value="2">
- </constant>
- <constant name="SHAPE_CAPSULE" value="5">
- </constant>
- <constant name="CONE_TWIST_VAR_SWING_SPAN_LIMIT_2" value="1">
- </constant>
- <constant name="BODY_STATE_LINEAR_VELOCITY" value="1">
- </constant>
- <constant name="BODY_MODE_CHARACTER" value="2">
- </constant>
- <constant name="AREA_PARAM_GRAVITY" value="1">
- </constant>
- <constant name="SHAPE_CONCAVE_POLYGON" value="7">
- </constant>
- <constant name="TYPE_BODY" value="0">
- </constant>
- <constant name="HINGE_VAR_MOTOR_TARGET_VELOCITY" value="6">
- </constant>
- <constant name="HINGE_VAR_HIGHER_LIMIT" value="2">
- </constant>
- <constant name="SHAPE_HEIGHTMAP" value="8">
- </constant>
- <constant name="SHAPE_SPHERE" value="2">
- </constant>
- <constant name="CONE_TWIST_VAR_TWIST_SPAN_LIMIT" value="2">
- </constant>
- <constant name="BODY_MODE_RIGID" value="1">
- </constant>
- <constant name="AREA_PARAM_DENSITY" value="5">
- </constant>
- <constant name="AREA_PARAM_GRAVITY_VECTOR" value="2">
- </constant>
- <constant name="SHAPE_PLANE" value="0">
- </constant>
- <constant name="HINGE_VAR_MOTOR_IMPULSE" value="7">
- </constant>
- <constant name="HINGE_VAR_RELAXATION" value="4">
- </constant>
- <constant name="HINGE_VAR_LOWER_LIMIT" value="1">
- </constant>
- <constant name="BODY_STATE_TRANSFORM" value="0">
- </constant>
- <constant name="BODY_PARAM_MASS" value="2">
- </constant>
- <constant name="BODY_PARAM_BOUNCE" value="0">
- </constant>
- <constant name="BODY_MODE_STATIC" value="0">
- </constant>
- <constant name="SHAPE_BOX" value="3">
- </constant>
- <constant name="TYPE_AREA" value="1">
- </constant>
- <constant name="AREA_PARAM_PRIORITY" value="6">
- </constant>
- <constant name="AREA_PARAM_GRAVITY_POINT_ATTENUATION" value="4">
- </constant>
- <constant name="AREA_PARAM_GRAVITY_IS_POINT" value="3">
- </constant>
- <constant name="SHAPE_CONVEX_POLYGON" value="6">
- </constant>
- <constant name="SHAPE_CYLINDER" value="4">
- </constant>
- </constants>
-</class>
-<class name="PhysicsServerSW" inherits="PhysicsServer" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="PlaneShape" inherits="Shape" category="Resources">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_plane" >
- <argument index="0" name="plane" type="Plane">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_plane" qualifiers="const" >
- <return type="Plane">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Popup" inherits="Control" category="Core">
- <brief_description>
- Base container control for popups and dialogs.
- </brief_description>
- <description>
- PopUp is a base [Control] used to show dialogs and popups. It&apos;s a subwindow and modal by default (see [Control]) and has helpers for custom popup behavior.
- </description>
- <methods>
- <method name="popup_centered" >
- <argument index="0" name="size" type="Vector2" default="Vector2(0,0)">
- </argument>
- <description>
- Popup (show the control in modal form) in the center of the screen, at the curent size, or at a size determined by &quot;size&quot;.
- </description>
- </method>
- <method name="popup_centered_ratio" >
- <argument index="0" name="ratio" type="real" default="0.75">
- </argument>
- <description>
- Popup (show the control in modal form) in the center of the screen, scalled at a ratio of size of the screen.
- </description>
- </method>
- <method name="popup" >
- <description>
- Popup (show the control in modal form).
- </description>
- </method>
- <method name="set_exclusive" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_exclusive" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="about_to_show">
- <description>
- This signal is emitted when a popup is about to be shown. (often used in [PopupMenu] for clearing the list of options and creating a new one according to the current context).
- </description>
- </signal>
- </signals>
- <constants>
- </constants>
-</class>
-<class name="PopupDialog" inherits="Popup" category="Nodes/GUI Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="PopupMenu" inherits="Popup" category="Nodes/GUI Nodes">
- <brief_description>
- PopupMenu displays a list of options.
- </brief_description>
- <description>
- PopupMenu is the typical Control that displays a list of options. They are popular in toolbars or context menus.
- </description>
- <methods>
- <method name="add_icon_item" >
- <argument index="0" name="texture" type="Object">
- </argument>
- <argument index="1" name="label" type="String">
- </argument>
- <argument index="2" name="id" type="int" default="-1">
- </argument>
- <argument index="3" name="accel" type="int" default="0">
- </argument>
- <description>
- Add a new item with text &quot;label&quot; and icon &quot;texture. An id can optonally be provided, as well as an accelerator. If no id is provided, one will be created from the index.
- </description>
- </method>
- <method name="add_item" >
- <argument index="0" name="label" type="String">
- </argument>
- <argument index="1" name="id" type="int" default="-1">
- </argument>
- <argument index="2" name="accel" type="int" default="0">
- </argument>
- <description>
- Add a new item with text &quot;label&quot;. An id can optonally be provided, as well as an accelerator. If no id is provided, one will be created from the index.
- </description>
- </method>
- <method name="add_icon_check_item" >
- <argument index="0" name="texture" type="Object">
- </argument>
- <argument index="1" name="label" type="String">
- </argument>
- <argument index="2" name="id" type="int" default="-1">
- </argument>
- <argument index="3" name="accel" type="int" default="0">
- </argument>
- <description>
- Add a new checkable item with text &quot;label&quot; and icon &quot;texture. An id can optonally be provided, as well as an accelerator. If no id is provided, one will be created from the index. Note that checkable items just display a checkmark, but don&apos;t have any built-in checking behavior and must be checked/unchecked manually.
- </description>
- </method>
- <method name="add_check_item" >
- <argument index="0" name="label" type="String">
- </argument>
- <argument index="1" name="id" type="int" default="-1">
- </argument>
- <argument index="2" name="accel" type="int" default="0">
- </argument>
- <description>
- Add a new checkable item with text &quot;label&quot;. An id can optonally be provided, as well as an accelerator. If no id is provided, one will be created from the index. Note that checkable items just display a checkmark, but don&apos;t have any built-in checking behavior and must be checked/unchecked manually.
- </description>
- </method>
- <method name="set_item_text" >
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="text" type="String">
- </argument>
- <description>
- Set the text of the item at index &quot;idx&quot;.
- </description>
- </method>
- <method name="set_item_icon" >
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="icon" type="Object">
- </argument>
- <description>
- Set the icon of the item at index &quot;idx&quot;.
- </description>
- </method>
- <method name="set_item_accelerator" >
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="accel" type="int">
- </argument>
- <description>
- Set the accelerator of the item at index &quot;idx&quot;. Accelerators are special combinations of keys that activate the item, no matter which control is fucused.
- </description>
- </method>
- <method name="set_item_metadata" >
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="metadata" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_item_checked" >
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="arg1" type="bool">
- </argument>
- <description>
- Set the checkstate status of the item at index &quot;idx&quot;.
- </description>
- </method>
- <method name="set_item_disabled" >
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="arg1" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_item_ID" >
- <argument index="0" name="idx" type="int">
- </argument>
- <argument index="1" name="id" type="int">
- </argument>
- <description>
- Set the id of the item at index &quot;idx&quot;.
- </description>
- </method>
- <method name="get_item_text" qualifiers="const" >
- <return type="String">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- Return the text of the item at index &quot;idx&quot;.
- </description>
- </method>
- <method name="get_item_icon" qualifiers="const" >
- <return type="Object">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- Return the icon of the item at index &quot;idx&quot;.
- </description>
- </method>
- <method name="get_item_metadata" qualifiers="const" >
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_item_accelerator" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- Return the accelerator of the item at index &quot;idx&quot;. Accelerators are special combinations of keys that activate the item, no matter which control is fucused.
- </description>
- </method>
- <method name="is_item_checked" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- Return the checkstate status of the item at index &quot;idx&quot;.
- </description>
- </method>
- <method name="is_item_disabled" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_item_ID" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="idx" type="int">
- </argument>
- <description>
- Return the id of the item at index &quot;idx&quot;.
- </description>
- </method>
- <method name="get_item_index" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="id" type="int">
- </argument>
- <description>
- Find and return the index of the item containing a given id.
- </description>
- </method>
- <method name="get_item_count" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- Return the amount of items.
- </description>
- </method>
- <method name="add_separator" >
- <description>
- Add a separator between items. Separators also occupy an index.
- </description>
- </method>
- <method name="clear" >
- <description>
- Clear the popup menu.
- </description>
- </method>
- </methods>
- <signals>
- <signal name="item_pressed">
- <argument index="0" name="ID" type="int">
- </argument>
- <description>
- This even is emitted when an item is pressed or its accelerator is activated. The id of the item is returned if it exists, else the index.
- </description>
- </signal>
- </signals>
- <constants>
- </constants>
-</class>
-<class name="PopupPanel" inherits="Popup" category="Nodes/GUI Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Portal" inherits="VisualInstance" category="Nodes/3D/3D Visual Nodes">
- <brief_description>
- Portals provide virtual openings to rooms.
- </brief_description>
- <description>
- Portals provide virtual openings to [RoomInstance] nodes, so cameras can look at them from the outside. Note that portals are a visibility optimization technique, and are in no way related to the game of the same name (as in, they are not used for teleportation). For more information on how rooms and portals work, see [RoomInstance]. Portals are represented as 2D convex polygon shapes (in the X,Y local plane), and are placed on the surface of the areas occupied by a [RoomInstance], to indicate that the room can be accessed or looked-at through them. If two rooms are next to each other, and two similar portals in each of them share the same world position (and are parallel and opposed to each other), they will automatically &quot;connect&quot; and form &quot;doors&quot; (for example, the portals that connect a kitchen to a living room are placed in the door they share). Portals must always have a [RoomInstance] node as a parent, grandparent or far parent, or else they will not be active.
- </description>
- <methods>
- <method name="set_shape" >
- <argument index="0" name="points" type="Array">
- </argument>
- <description>
- Set the portal shape. The shape is an array of [Point2] points, representing a convex polygon in the X,Y plane.
- </description>
- </method>
- <method name="get_shape" qualifiers="const" >
- <return type="Array">
- </return>
- <description>
- Return the portal shape. The shape is an array of [Point2] points, representing a convex polygon in the X,Y plane.
- </description>
- </method>
- <method name="set_enabled" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- Enable the portal (it is enabled by defaul though), disabling it will cause the parent [RoomInstance] to not be visible any longer when looking through the portal.
- </description>
- </method>
- <method name="is_enabled" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- Return wether the portal is active. When disabled it causes the parent [RoomInstance] to not be visible any longer when looking through the portal.
- </description>
- </method>
- <method name="set_disable_distance" >
- <argument index="0" name="distance" type="real">
- </argument>
- <description>
- Set the distance threshold for disabling the portal. Every time that the portal goes beyond &quot;distance&quot;, it disables itself, becoming the opaque color (see [method set_disabled_color]).
- </description>
- </method>
- <method name="get_disable_distance" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- Return the distance threshold for disabling the portal. Every time that the portal goes beyond &quot;distance&quot;, it disables itself, becoming the opaque color (see [method set_disabled_color]).
- </description>
- </method>
- <method name="set_disabled_color" >
- <argument index="0" name="color" type="Color">
- </argument>
- <description>
- When the portal goes beyond the disable distance (see [method set_disable_distance]), it becomes opaque and displayed with color &quot;color&quot;.
- </description>
- </method>
- <method name="get_disabled_color" qualifiers="const" >
- <return type="Color">
- </return>
- <description>
- Return the color for when the portal goes beyond the disable distance (see [method set_disable_distance]) and becomes disabled.
- </description>
- </method>
- <method name="set_connect_range" >
- <argument index="0" name="range" type="real">
- </argument>
- <description>
- Set the range for auto-connecting two portals from different rooms sharing the same space.
- </description>
- </method>
- <method name="get_connect_range" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- Return the range for auto-connecting two portals from different rooms sharing the same space.
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Range" inherits="Control" category="Core">
- <brief_description>
- Abstract base class for range-based controls.
- </brief_description>
- <description>
- Range is a base class for [Control] nodes that change a floating point [html i]value[html /i] between a need a [html i]minimum[html /i], [html i]maximum[html /i], using [html i]step[html /i] and [html i]page[html /i], for example a [ScrollBar].
- </description>
- <methods>
- <method name="get_val" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- Return the current value.
- </description>
- </method>
- <method name="get_min" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- Return the minimum value.
- </description>
- </method>
- <method name="get_max" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- Return the maximum value.
- </description>
- </method>
- <method name="get_step" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- Return the stepping, if step is 0, stepping is disabled.
- </description>
- </method>
- <method name="get_page" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- Return the page size, if page is 0, paging is disabled.
- </description>
- </method>
- <method name="get_unit_value" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- Return value mapped to 0 to 1 (unit) range.
- </description>
- </method>
- <method name="set_val" >
- <argument index="0" name="value" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_min" >
- <argument index="0" name="minimum" type="real">
- </argument>
- <description>
- Set minimum value, clamped range value to it if it&apos;s less.
- </description>
- </method>
- <method name="set_max" >
- <argument index="0" name="maximum" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_step" >
- <argument index="0" name="step" type="real">
- </argument>
- <description>
- Set step value. If step is 0, stepping will be disabled.
- </description>
- </method>
- <method name="set_page" >
- <argument index="0" name="pagesize" type="real">
- </argument>
- <description>
- Set page size. Page is mainly used for scrollbars or anything that controls text scrolling.
- </description>
- </method>
- <method name="set_unit_value" >
- <argument index="0" name="value" type="real">
- </argument>
- <description>
- Set value mapped to 0 to 1 (unit) range, it will then be converted to the actual value within min and max.
- </description>
- </method>
- <method name="share" >
- <argument index="0" name="with" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="unshare" >
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="value_changed">
- <argument index="0" name="value" type="real">
- </argument>
- <description>
- This signal is emitted when value changes.
- </description>
- </signal>
- <signal name="changed">
- <description>
- This signal is emitted when min, max, range or step change.
- </description>
- </signal>
- </signals>
- <constants>
- </constants>
-</class>
-<class name="RayShape" inherits="Shape" category="Resources">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_length" >
- <argument index="0" name="length" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_length" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Reference" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Resource" inherits="Reference" category="Resources">
- <brief_description>
- Base class for all resources.
- </brief_description>
- <description>
- Resource is the base class for all resource types. Resources are primarily data containers. They are reference counted and freed when no longer in use. They are also loaded only once from disk, and further attempts to load the resource will return the same reference (all this in contrast to a [Node], which is not reference counted and can be instanced from disk as many times as desred). Resources can be saved externally on disk or bundled into another object, such as a [Node] or another resource.
- </description>
- <methods>
- <method name="set_path" >
- <argument index="0" name="path" type="String">
- </argument>
- <description>
- Set the path of the resource. This is useful mainly for editors when saving/loading, and shouldn&apos;t be changed by anything else.
- </description>
- </method>
- <method name="get_path" qualifiers="const" >
- <return type="String">
- </return>
- <description>
- Return the path of the resource. This is useful mainly for editors when saving/loading, and shouldn&apos;t be changed by anything else.
- </description>
- </method>
- <method name="set_name" >
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- Set the name of the resources, any name is ok (it doesn&apos;t have to be unique). Name is for descriptive purposes only.
- </description>
- </method>
- <method name="get_name" qualifiers="const" >
- <return type="String">
- </return>
- <description>
- Return the name of the resources, any name is ok (it doesn&apos;t have to be unique). Name is for descriptive purposes only.
- </description>
- </method>
- <method name="get_rid" qualifiers="const" >
- <return type="RID">
- </return>
- <description>
- Return the RID of the resource (or an empty RID). Many resources (such as [Texture], [Mesh], etc) are high level abstractions of resources stored in a server, so this function will return the original RID.
- </description>
- </method>
- </methods>
- <signals>
- <signal name="changed">
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- </constants>
-</class>
-<class name="_ResourceLoader" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="load" >
- <return type="Object">
- </return>
- <argument index="0" name="path" type="String">
- </argument>
- <argument index="1" name="type_hint" type="String" default="&quot;&quot;">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_recognized_extensions_for_type" >
- <return type="StringArray">
- </return>
- <argument index="0" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="_ResourceSaver" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="save" >
- <return type="int">
- </return>
- <argument index="0" name="path" type="String">
- </argument>
- <argument index="1" name="resource" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_recognized_extensions" >
- <return type="StringArray">
- </return>
- <argument index="0" name="type" type="Object">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="RichTextLabel" inherits="Control" category="Nodes/GUI Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="add_text" >
- <argument index="0" name="text" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_image" >
- <argument index="0" name="image" type="Texture">
- </argument>
- <description>
- </description>
- </method>
- <method name="newline" >
- <description>
- </description>
- </method>
- <method name="push_font" >
- <argument index="0" name="font" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="push_color" >
- <argument index="0" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="push_align" >
- <argument index="0" name="align" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="push_indent" >
- <argument index="0" name="level" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="push_list" >
- <argument index="0" name="type" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="push_meta" >
- <argument index="0" name="data" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="push_underline" >
- <description>
- </description>
- </method>
- <method name="pop" >
- <description>
- </description>
- </method>
- <method name="clear" >
- <description>
- </description>
- </method>
- <method name="set_meta_underline" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_meta_underlined" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_scroll_active" >
- <argument index="0" name="active" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_scroll_active" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_scroll_follow" >
- <argument index="0" name="follow" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_scroll_following" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_tab_size" >
- <argument index="0" name="spaces" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_tab_size" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="meta_clicked">
- <argument index="0" name="meta" type="Nil">
- </argument>
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- <constant name="ITEM_TEXT" value="1">
- </constant>
- <constant name="ITEM_MAIN" value="0">
- </constant>
- <constant name="ALIGN_CENTER" value="1">
- </constant>
- <constant name="ITEM_UNDERLINE" value="6">
- </constant>
- <constant name="ITEM_META" value="10">
- </constant>
- <constant name="ITEM_COLOR" value="5">
- </constant>
- <constant name="ITEM_FONT" value="4">
- </constant>
- <constant name="LIST_DOTS" value="2">
- </constant>
- <constant name="ALIGN_LEFT" value="0">
- </constant>
- <constant name="LIST_LETTERS" value="1">
- </constant>
- <constant name="LIST_NUMBERS" value="0">
- </constant>
- <constant name="ITEM_INDENT" value="8">
- </constant>
- <constant name="ITEM_NEWLINE" value="3">
- </constant>
- <constant name="ALIGN_RIGHT" value="2">
- </constant>
- <constant name="ITEM_ALIGN" value="7">
- </constant>
- <constant name="ITEM_IMAGE" value="2">
- </constant>
- <constant name="ALIGN_FILL" value="3">
- </constant>
- <constant name="ITEM_LIST" value="9">
- </constant>
- </constants>
-</class>
-<class name="Room" inherits="Resource" category="Resources">
- <brief_description>
- Room data resource.
- </brief_description>
- <description>
- Room contains the data to define the bounds of a scene (using a BSP Tree). It is instanced by a [RoomInstance] node to create rooms. See that class documentation for more information about rooms.
- </description>
- <methods>
- <method name="set_bounds" >
- <argument index="0" name="bsp_tree" type="Dictionary">
- </argument>
- <description>
- Set the bounds of the room as a BSP tree. a BSP Tree is defined a Dictionary: (TODO - see source code on how to create a BSP tree from a dictionary).
- </description>
- </method>
- <method name="get_bounds" qualifiers="const" >
- <return type="Dictionary">
- </return>
- <description>
- Return the bounds of the room as a BSP tree. a BSP Tree is defined a Dictionary: (TODO - see source code on how to create a BSP tree from a dictionary).
- </description>
- </method>
- <method name="set_geometry_hint" >
- <argument index="0" name="triangles" type="Vector3Array">
- </argument>
- <description>
- Set the &quot;geometry&quot; hint of the room. This means, how the room actually looks (an array of [Vector3]s, forming triangles).
- </description>
- </method>
- <method name="get_geometry_hint" qualifiers="const" >
- <return type="Vector3Array">
- </return>
- <description>
- Return the &quot;geometry&quot; hint of the room. This means, how the room actually looks (an array of [Vector3]s, forming triangles).
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="RoomInstance" inherits="VisualInstance" category="Nodes/3D/3D Visual Nodes">
- <brief_description>
- Node that instances a Room.
- </brief_description>
- <description>
- RoomInstance is a [Node] that instances a [Room] resource and places it on the world. Rooms are used for defining the areas taken up by [html i]interiors[html /i]. An [html i]interior[html /i] is any closed space that has an entrance/exit (or not) to the outside world, for example the inside of a house, a room in a house, a cave.[html br/]So why is this used? Rooms and Portals ([Portal]) are a common visualization optimization technique, it is used to make interiors invisible (not rendered) when the camera is at the exterior (such as an open field), and also the exterior invisible when inside an interior (such as a house). It is also used to make interior rooms invisible from other interior rooms.&#10;[html div align=&quot;center&quot;][html img src=&quot;images/portals_example.png&quot;/][html /div]
- </description>
- <methods>
- <method name="set_room" >
- <argument index="0" name="room" type="Object">
- </argument>
- <description>
- Set the [Room] resource, containing the room bounds.
- </description>
- </method>
- <method name="get_room" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- Return the [Room] resource, containing the room bounds.
- </description>
- </method>
- <method name="compute_room_from_subtree" >
- <description>
- This helper function computes a [Room] from the shapes of all the children [VisualInstance] nodes, and sets it to the node.
- </description>
- </method>
- <method name="set_simulate_acoustics" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_simulating_acoustics" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="SSAOFX" inherits="ScenarioFX" category="Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Sample" inherits="Resource" category="Resources">
- <brief_description>
- Audio Sample (sound) class.
- </brief_description>
- <description>
- Sample provides an audio sample class, containing audio data, together with some information for playback, such as format, mix rate and loop. It is used by sound playback routines.
- </description>
- <methods>
- <method name="create" >
- <argument index="0" name="format" type="int">
- </argument>
- <argument index="1" name="stereo" type="bool">
- </argument>
- <argument index="2" name="length" type="int">
- </argument>
- <description>
- Create new data for the sample, with format &quot;format&quot; (see FORMAT_* enum), stereo hint, and length in frames (not samples or bytes!) &quot;frame&quot;. Calling create overrides previous existing data if it exists. Stereo samples are interleaved pairs of left and right (in that order) points
- </description>
- </method>
- <method name="get_format" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- Return the sample format (see FORMAT_* enum).
- </description>
- </method>
- <method name="is_stereo" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- Return true if the sample was created stereo.
- </description>
- </method>
- <method name="get_length" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- Return the sample length in frames.
- </description>
- </method>
- <method name="set_data" >
- <argument index="0" name="data" type="RawArray">
- </argument>
- <description>
- Set sample data. Data must be little endian, no matter the host platform, and exactly as long to fit all frames. Example, if data is Stereo, 16 bits, 256 frames, it will be 1024 bytes long.
- </description>
- </method>
- <method name="get_data" qualifiers="const" >
- <return type="RawArray">
- </return>
- <description>
- Return sample data. Data will be endian, no matter with the host platform, and exactly as long to fit all frames. Example, if data is Stereo, 16 bits, 256 frames, it will be 1024 bytes long.
- </description>
- </method>
- <method name="set_mix_rate" >
- <argument index="0" name="hz" type="int">
- </argument>
- <description>
- Set the mix rate for the sample (expected playback frequency).
- </description>
- </method>
- <method name="get_mix_rate" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- Return the mix rate for the sample (expected playback frequency).
- </description>
- </method>
- <method name="set_loop_format" >
- <argument index="0" name="format" type="int">
- </argument>
- <description>
- Set the loop format, see LOOP_* enum
- </description>
- </method>
- <method name="get_loop_format" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- Return the loop format, see LOOP_* enum.
- </description>
- </method>
- <method name="set_loop_begin" >
- <argument index="0" name="pos" type="int">
- </argument>
- <description>
- Set the loop begin position, it must be a valid frame and less than the loop end position.
- </description>
- </method>
- <method name="get_loop_begin" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- Return the loop begin position.
- </description>
- </method>
- <method name="set_loop_end" >
- <argument index="0" name="pos" type="int">
- </argument>
- <description>
- Set the loop end position, it must be a valid frame and greater than the loop begin position.
- </description>
- </method>
- <method name="get_loop_end" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- Return the loop begin position.
- </description>
- </method>
- </methods>
- <constants>
- <constant name="FORMAT_IMA_ADPCM" value="2">
- Ima-ADPCM Audio.
- </constant>
- <constant name="LOOP_FORWARD" value="1">
- Forward looping (when playback reaches loop end, goes back to loop begin)
- </constant>
- <constant name="FORMAT_PCM16" value="1">
- 16-Bits signed little endian PCM audio.
- </constant>
- <constant name="FORMAT_PCM8" value="0">
- 8-Bits signed little endian PCM audio.
- </constant>
- <constant name="LOOP_NONE" value="0">
- No loop enabled.
- </constant>
- <constant name="LOOP_PING_PONG" value="2">
- Ping-Pong looping (when playback reaches loop end, plays backward untilloop begin). Not available in all platforms.
- </constant>
- </constants>
-</class>
-<class name="SampleLibrary" inherits="Resource" category="Resources">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="add_sample" >
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="sample" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_sample" qualifiers="const" >
- <return type="Object">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_sample" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="remove_sample" >
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="SamplePlayer" inherits="Node" category="Nodes/Audio Nodes">
- <brief_description>
- Sample Player node.
- </brief_description>
- <description>
- SamplePlayer is a [Node] meant for simple sample playback. A library of samples is loaded and played back &quot;as is&quot;, without positioning or anything.
- </description>
- <methods>
- <method name="set_sample_library" >
- <argument index="0" name="library" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_sample_library" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="set_voice_count" >
- <argument index="0" name="max_voices" type="int">
- </argument>
- <description>
- Set the amount of simultaneous voices that will be used for playback.
- </description>
- </method>
- <method name="get_voice_count" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- Return the amount of simultaneous voices that will be used for playback.
- </description>
- </method>
- <method name="play" >
- <return type="int">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="unique" type="bool" default="false">
- </argument>
- <description>
- Play back sample, given it&apos;s identifier &quot;name&quot;. if &quot;unique&quot; is true, all othere previous samples will be stopped. The voice allocated for playback will be returned.
- </description>
- </method>
- <method name="stop" >
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- Stop a voice &quot;voice&quot;. (see [method play]).
- </description>
- </method>
- <method name="stop_all" >
- <description>
- </description>
- </method>
- <method name="set_mix_rate" >
- <argument index="0" name="voice" type="int">
- </argument>
- <argument index="1" name="hz" type="int">
- </argument>
- <description>
- Change the mix rate of a voice &quot;voice&quot; to given &quot;hz&quot;.
- </description>
- </method>
- <method name="set_pitch_scale" >
- <argument index="0" name="voice" type="int">
- </argument>
- <argument index="1" name="ratio" type="real">
- </argument>
- <description>
- Scale the pitch (mix rate) of a voice by a ratio value &quot;ratio&quot;. A ratio of 1.0 means the voice is unscaled.
- </description>
- </method>
- <method name="set_volume" >
- <argument index="0" name="voice" type="int">
- </argument>
- <argument index="1" name="nrg" type="real">
- </argument>
- <description>
- Set the volume of a voice, 0db is maximum volume (every about -6db, volume is reduced in half). &quot;db&quot; does in fact go from zero to negative.
- </description>
- </method>
- <method name="set_volume_db" >
- <argument index="0" name="voice" type="int">
- </argument>
- <argument index="1" name="nrg" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_pan" >
- <argument index="0" name="voice" type="int">
- </argument>
- <argument index="1" name="pan" type="real">
- </argument>
- <argument index="2" name="depth" type="real" default="0">
- </argument>
- <argument index="3" name="height" type="real" default="0">
- </argument>
- <description>
- Set the panning of a voice. Panning goes from -1 (left) to +1 (right). Optionally, if the hardware supports 3D sound, also set depth and height (also in range -1 to +1).
- </description>
- </method>
- <method name="set_filter" >
- <argument index="0" name="voice" type="int">
- </argument>
- <argument index="1" name="type" type="int">
- </argument>
- <argument index="2" name="cutoff_hz" type="real">
- </argument>
- <argument index="3" name="resonance" type="real">
- </argument>
- <argument index="4" name="gain" type="real" default="0">
- </argument>
- <description>
- Set and enable a filter of a voice, with type &quot;type&quot; (see FILTER_* enum), cutoff (0 to 22khz) frequency and resonance (0+).
- </description>
- </method>
- <method name="set_chorus" >
- <argument index="0" name="voice" type="int">
- </argument>
- <argument index="1" name="send" type="real">
- </argument>
- <description>
- Set the chorus send level of a voice (0 to 1). For setting chorus parameters, see [AudioServer].
- </description>
- </method>
- <method name="set_reverb" >
- <argument index="0" name="voice" type="int">
- </argument>
- <argument index="1" name="room_type" type="int">
- </argument>
- <argument index="2" name="send" type="real">
- </argument>
- <description>
- Set the reverb send level and type of a voice (0 to 1). (see REVERB_* enum for type).
- </description>
- </method>
- <method name="get_mix_rate" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- Return the current mix rate for a given voice.
- </description>
- </method>
- <method name="get_pitch_scale" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- Return the current pitch scale for a given voice.
- </description>
- </method>
- <method name="get_volume" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- Return the current volume (in db) for a given voice. 0db is maximum volume (every about -6db, volume is reduced in half). &quot;db&quot; does in fact go from zero to negative.
- </description>
- </method>
- <method name="get_volume_db" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_pan" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- Return the current panning for a given voice. Panning goes from -1 (left) to +1 (right).
- </description>
- </method>
- <method name="get_pan_depth" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- Return the current pan depth for a given voice (not used unless the hardware supports 3D sound)
- </description>
- </method>
- <method name="get_pan_height" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- Return the current pan height for a given voice (not used unless the hardware supports 3D sound)
- </description>
- </method>
- <method name="get_filter_type" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- Return the current filter type in use (see FILTER_* enum) for a given voice.
- </description>
- </method>
- <method name="get_filter_cutoff" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- Return the current filter cutoff for a given voice. Cutoff goes from 0 to 22khz.
- </description>
- </method>
- <method name="get_filter_resonance" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- Return the current filter resonance for a given voice. Resonance goes from 0 up.
- </description>
- </method>
- <method name="get_filter_gain" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_chorus" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- Return the current chorus send level for a given voice. (0 to 1).
- </description>
- </method>
- <method name="get_reverb_room" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- Return the current reverb room type for a given voice (see REVERB_* enum).
- </description>
- </method>
- <method name="get_reverb" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- Return the current reverb send level for a given voice. (0 to 1).
- </description>
- </method>
- <method name="set_default_pitch_scale" >
- <argument index="0" name="ratio" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_default_volume" >
- <argument index="0" name="nrg" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_default_volume_db" >
- <argument index="0" name="db" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_default_pan" >
- <argument index="0" name="pan" type="real">
- </argument>
- <argument index="1" name="depth" type="real" default="0">
- </argument>
- <argument index="2" name="height" type="real" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_default_filter" >
- <argument index="0" name="type" type="int">
- </argument>
- <argument index="1" name="cutoff_hz" type="real">
- </argument>
- <argument index="2" name="resonance" type="real">
- </argument>
- <argument index="3" name="gain" type="real" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_default_chorus" >
- <argument index="0" name="send" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_default_reverb" >
- <argument index="0" name="room_type" type="int">
- </argument>
- <argument index="1" name="send" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_default_pitch_scale" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_default_volume" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_default_volume_db" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_default_pan" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_default_pan_depth" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_default_pan_height" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_default_filter_type" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_default_filter_cutoff" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_default_filter_resonance" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_default_filter_gain" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_default_chorus" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_default_reverb_room" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_default_reverb" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="FILTER_HIPASS" value="3">
- HighPass filter is used for voice.
- </constant>
- <constant name="FILTER_NONE" value="0">
- Filter is disabled for voice.
- </constant>
- <constant name="REVERB_HALL" value="3">
- Huge reverb room (cathedral, warehouse).
- </constant>
- <constant name="REVERB_MEDIUM" value="1">
- Medium reverb room (street)
- </constant>
- <constant name="REVERB_SMALL" value="0">
- Small reverb room (house room).
- </constant>
- <constant name="FILTER_HIGH_SHELF" value="8">
- </constant>
- <constant name="FILTER_PEAK" value="5">
- </constant>
- <constant name="FILTER_LOWPASS" value="1">
- Lowpass filter is used for voice.
- </constant>
- <constant name="REVERB_LARGE" value="2">
- Large reverb room (Theather)
- </constant>
- <constant name="FILTER_LOW_SHELF" value="7">
- </constant>
- <constant name="FILTER_BANDLIMIT" value="6">
- Band-Limit filter is used for voice, in this case resonance is the highpass cutoff.
- </constant>
- <constant name="FILTER_NOTCH" value="4">
- Notch filter is used for voice.
- </constant>
- <constant name="FILTER_BANDPASS" value="2">
- Bandpass filter is used for voice.
- </constant>
- </constants>
-</class>
-<class name="ScenarioFX" inherits="Node" category="Nodes">
- <brief_description>
- </brief_description>
- <description>
- Deprecated, will go away.
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="SceneMainLoop" inherits="MainLoop" category="Main Loop">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_editor_hint" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_editor_hint" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_pause" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_paused" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="quit" >
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="screen_resized">
- <description>
- </description>
- </signal>
- <signal name="node_removed">
- <argument index="0" name="node" type="Object">
- </argument>
- <description>
- </description>
- </signal>
- <signal name="tree_changed">
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- </constants>
-</class>
-<class name="Script" inherits="Resource" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="ScrollBar" inherits="Range" category="Core">
- <brief_description>
- Base class for scroll bars.
- </brief_description>
- <description>
- Scrollbars are a [Range] based [Control], that display a draggable area (the size of the page). Horizontal ([HScrollBar]) and Vertical ([VScrollBar]) versions are available.
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Separator" inherits="Control" category="Nodes/GUI Nodes">
- <brief_description>
- Base class for separators.
- </brief_description>
- <description>
- Separator is a [Control] used for sepataring other controls. It&apos;s purely a visual decoration. Horizontal ([HSeparator]) and Vertical ([VSeparator]) versions are available.
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Shader" inherits="Resource" category="Resources">
- <brief_description>
- To be changed, ignore.
- </brief_description>
- <description>
- To be changed, ignore.
- </description>
- <methods>
- <method name="set_mode" >
- <argument index="0" name="mode" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_mode" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_vertex_code" >
- <argument index="0" name="code" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_vertex_code" qualifiers="const" >
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="set_fragment_code" >
- <argument index="0" name="code" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_fragment_code" qualifiers="const" >
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="set_use_world_transform" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_using_world_transform" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_param" >
- <argument index="0" name="param" type="String">
- </argument>
- <argument index="1" name="value" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_param" qualifiers="const" >
- <argument index="0" name="param" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_param_list" qualifiers="const" >
- <return type="StringArray">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="MODE_MATERIAL" value="0">
- </constant>
- <constant name="MODE_POST_PROCESS" value="1">
- </constant>
- </constants>
-</class>
-<class name="ShaderMaterial" inherits="Material" category="Resources">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_shader" >
- <argument index="0" name="shader" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_shader" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Shape" inherits="Resource" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Skeleton" inherits="Spatial" category="Nodes/3D">
- <brief_description>
- Skeleton for characters and animated objects.
- </brief_description>
- <description>
- Skeleton provides a hierachial interface for managing bones, including pose, rest and animation (see [Animation]). Skeleton will support rag doll dynamics in the future.
- </description>
- <methods>
- <method name="add_bone" >
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- Add a bone, with name &quot;name&quot;. [method get_bone_count] will become the bone index.
- </description>
- </method>
- <method name="find_bone" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <description>
- Return the bone index that matches &quot;name&quot; as its name.
- </description>
- </method>
- <method name="get_bone_name" qualifiers="const" >
- <return type="String">
- </return>
- <argument index="0" name="bone_idx" type="int">
- </argument>
- <description>
- Return the name of the bone at index &quot;index&quot;
- </description>
- </method>
- <method name="get_bone_parent" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="bone_idx" type="int">
- </argument>
- <description>
- Return the bone index which is the parent of the bone at &quot;bone_idx&quot;. If -1, then bone has no parent. Note that the parent bone returned will always be less than &quot;bone_idx&quot;.
- </description>
- </method>
- <method name="set_bone_parent" >
- <argument index="0" name="bone_idx" type="int">
- </argument>
- <argument index="1" name="parent_idx" type="int">
- </argument>
- <description>
- Set the bone index &quot;parent_idx&quot; as the parent of the bone at &quot;bone_idx&quot;. If -1, then bone has no parent. Note: &quot;parent_idx&quot; must be less than &quot;bone_idx&quot;.
- </description>
- </method>
- <method name="get_bone_count" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- Return the amount of bones in the skeleton.
- </description>
- </method>
- <method name="get_bone_rest" qualifiers="const" >
- <return type="Transform">
- </return>
- <argument index="0" name="bone_idx" type="int">
- </argument>
- <description>
- Return the rest transform for a bone &quot;bone_idx&quot;.
- </description>
- </method>
- <method name="set_bone_rest" >
- <argument index="0" name="bone_idx" type="int">
- </argument>
- <argument index="1" name="rest" type="Transform">
- </argument>
- <description>
- Set the rest transform for bone &quot;bone_idx&quot;
- </description>
- </method>
- <method name="bind_child_node_to_bone" >
- <argument index="0" name="bone_idx" type="int">
- </argument>
- <argument index="1" name="node" type="Object">
- </argument>
- <description>
- Deprecated soon
- </description>
- </method>
- <method name="unbind_child_node_from_bone" >
- <argument index="0" name="bone_idx" type="int">
- </argument>
- <argument index="1" name="node" type="Object">
- </argument>
- <description>
- Deprecated soon
- </description>
- </method>
- <method name="get_bound_child_nodes_to_bone" qualifiers="const" >
- <return type="Array">
- </return>
- <argument index="0" name="bone_idx" type="int">
- </argument>
- <description>
- Deprecated Soon
- </description>
- </method>
- <method name="clear_bones" >
- <description>
- Clear all the bones in this skeleton.
- </description>
- </method>
- <method name="get_bone_pose" qualifiers="const" >
- <return type="Transform">
- </return>
- <argument index="0" name="bone_idx" type="int">
- </argument>
- <description>
- Return the pose transform for bone &quot;bone_idx&quot;.
- </description>
- </method>
- <method name="set_bone_pose" >
- <argument index="0" name="bone_idx" type="int">
- </argument>
- <argument index="1" name="pose" type="Transform">
- </argument>
- <description>
- Return the pose transform for bone &quot;bone_idx&quot;.
- </description>
- </method>
- <method name="get_bone_custom_pose" qualifiers="const" >
- <return type="Transform">
- </return>
- <argument index="0" name="bone_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_bone_custom_pose" >
- <argument index="0" name="bone_idx" type="int">
- </argument>
- <argument index="1" name="custom_pose" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_bone_transform" qualifiers="const" >
- <return type="Transform">
- </return>
- <argument index="0" name="bone_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="NOTIFICATION_UPDATE_SKELETON" value="50">
- </constant>
- </constants>
-</class>
-<class name="SkyBoxFX" inherits="ScenarioFX" category="Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Slider" inherits="Range" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="SoundRoomParams" inherits="Node" category="Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_param" >
- <argument index="0" name="param" type="int">
- </argument>
- <argument index="1" name="value" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_param" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="param" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_reverb_mode" >
- <argument index="0" name="reverb_mode" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_reverb_mode" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_force_params_to_all_sources" >
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_forcing_params_to_all_sources" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Spatial" inherits="Node" category="Nodes/3D">
- <brief_description>
- Base class for all 3D nodes.
- </brief_description>
- <description>
- Spatial is the base for every type of 3D [Node]. It contains a 3D [Transform] which can be set or get as local or global. If a Spatial [Node] has Spatial children, their transforms will be relative to the parent.
- </description>
- <methods>
- <method name="set_transform" >
- <argument index="0" name="local" type="Transform">
- </argument>
- <description>
- Set the transform locally, relative to the parent spatial node.
- </description>
- </method>
- <method name="get_transform" qualifiers="const" >
- <return type="Transform">
- </return>
- <description>
- Return the local transform, relative to the bone parent.
- </description>
- </method>
- <method name="set_global_transform" >
- <argument index="0" name="global" type="Transform">
- </argument>
- <description>
- Set the transform globally, relative to worldspace.
- </description>
- </method>
- <method name="get_global_transform" qualifiers="const" >
- <return type="Transform">
- </return>
- <description>
- Return the gloal transform, relative to worldspace.
- </description>
- </method>
- <method name="get_parent_spatial" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- Return the parent [Spatial], or an empty [Object] if no parent exists or parent is not of type [Spatial.
- </description>
- </method>
- <method name="update_gizmo" >
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="NOTIFICATION_SCENARIO_CHANGED" value="41">
- Spatial nodes receive this notification when the viewport next to it in ascending hierarchy changed the [Scenario].
- </constant>
- <constant name="NOTIFICATION_TRANSFORM_CHANGED" value="40">
- Spatial nodes receive this notifacation with their global transform changes. This means that either the current or a parent node changed it&apos;s transform.
- </constant>
- </constants>
-</class>
-<class name="SpatialPlayer" inherits="Spatial" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="SpatialSamplePlayer" inherits="SpatialPlayer" category="Nodes/3D">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_sample_library" >
- <argument index="0" name="library" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_sample_library" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="set_polyphony" >
- <argument index="0" name="voices" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_polyphony" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="play" >
- <return type="int">
- </return>
- <argument index="0" name="sample" type="String">
- </argument>
- <argument index="1" name="voice" type="int" default="-2">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_set_pitch_scale" >
- <argument index="0" name="voice" type="int">
- </argument>
- <argument index="1" name="ratio" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="voice_set_volume_scale_db" >
- <argument index="0" name="voice" type="int">
- </argument>
- <argument index="1" name="db" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_voice_active" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="stop_voice" >
- <argument index="0" name="voice" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="stop_all" >
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="NEXT_VOICE" value="-2">
- </constant>
- <constant name="INVALID_VOICE" value="-1">
- </constant>
- </constants>
-</class>
-<class name="SpatialSoundServer" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="SpatialSoundServerSW" inherits="SpatialSoundServer" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="SpatialStreamPlayer" inherits="SpatialPlayer" category="Nodes/3D">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_stream" >
- <argument index="0" name="stream" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_stream" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="play" >
- <description>
- </description>
- </method>
- <method name="stop" >
- <description>
- </description>
- </method>
- <method name="is_playing" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_loop" >
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_loop" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="get_stream_name" qualifiers="const" >
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="get_loop_count" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_pos" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="seek_pos" >
- <argument index="0" name="time" type="real">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="SphereShape" inherits="Shape" category="Resources">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_radius" >
- <argument index="0" name="radius" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_radius" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="SpinBox" inherits="Range" category="Nodes/GUI Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_suffix" >
- <argument index="0" name="suffix" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_suffix" qualifiers="const" >
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="set_prefix" >
- <argument index="0" name="prefix" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_prefix" qualifiers="const" >
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="set_editable" >
- <argument index="0" name="editable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_editable" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="SpotLight" inherits="Light" category="Nodes/3D/3D Visual Nodes/3D Light Nodes">
- <brief_description>
- Spotlight Light, such as a reflector spotlight or a latern.
- </brief_description>
- <description>
- A SpotLight light is a type of [Light] node that emits lights in a specific direction, in the shape of a cone. The light is attenuated through the distance and this attenuation can be configured by changing the energy, radius and attenuation parameters of [Light]. TODO: Image of a spotlight.
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Sprite" inherits="Node2D" category="Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_texture" >
- <argument index="0" name="texture" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_texture" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="set_centered" >
- <argument index="0" name="centered" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_centered" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_flip_h" >
- <argument index="0" name="flip_h" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_flipped_h" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_flip_v" >
- <argument index="0" name="flip_v" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_flipped_v" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_frame" >
- <argument index="0" name="frame" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_frame" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_vframes" >
- <argument index="0" name="vframes" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_vframes" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_hframes" >
- <argument index="0" name="hframes" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_hframes" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_modulate" >
- <argument index="0" name="modulate" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_modulate" qualifiers="const" >
- <return type="Color">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="SquirrelScript" inherits="Script" category="Resources">
- <brief_description>
- Squirrel script language support.
- </brief_description>
- <description>
- [html a href=&quot;http://squirrel-lang.org/&quot;]Squirrel Language[html /a] support for the engine. Allows to load a [Script] from a .sq or .nut source or compiled file, or bundled it into scenes.
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="StaticBody" inherits="PhysicsBody" category="Nodes/3D">
- <brief_description>
- PhysicsBody for static collision objects.
- </brief_description>
- <description>
- StaticBody implements a static collision [Node], by utilizing a rigid body in the [PhysicsServer]. Static bodies are used for static collision. For more information on physics body nodes, see [PhysicsBody].
- </description>
- <methods>
- <method name="set_simulated_motion" >
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_simulating_motion" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="simulate_motion" >
- <argument index="0" name="new_transform" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="create_shapes_from_child_meshes" >
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="StreamPeer" inherits="Object" category="Networking">
- <brief_description>
- Abstraction and base class for stream-based protocols.
- </brief_description>
- <description>
- StreamPeer is an abstration and base class for stream-based protocols (such as TCP or Unix Sockets). It provides an API for sending and receiving data through streams as raw data or strings.
- </description>
- <methods>
- <method name="put_data" >
- <return type="int">
- </return>
- <argument index="0" name="data" type="RawArray">
- </argument>
- <description>
- Send a chunk of data through the connection, blocking if necesary until the data is done sending. This function returns an [Error] code.
- </description>
- </method>
- <method name="put_partial_data" >
- <return type="Array">
- </return>
- <argument index="0" name="data" type="RawArray">
- </argument>
- <description>
- Send a chunk of data through the connection, if all the data could not be sent at once, only part of it will. This function returns two values, an [Error] code and an integer, describing how much data was actually sent.
- </description>
- </method>
- <method name="get_data" >
- <return type="Array">
- </return>
- <argument index="0" name="bytes" type="int">
- </argument>
- <description>
- Return a chunk data with the received bytes. The amount of bytes to be received can be requested in the &quot;bytes&quot; argument. If not enough bytes are available, the function will block until the desired amount is received. This function returns two values, an [Error] code and a data array.
- </description>
- </method>
- <method name="get_partial_data" >
- <return type="Array">
- </return>
- <argument index="0" name="bytes" type="int">
- </argument>
- <description>
- Return a chunk data with the received bytes. The amount of bytes to be received can be requested in the &quot;bytes&quot; argument. If not enough bytes are available, the function will return how many were actually received. This function returns two values, an [Error] code, and a data array.
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="StreamPeerTCP" inherits="StreamPeer" category="Networking/Networking">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="connect" >
- <return type="int">
- </return>
- <argument index="0" name="host" type="String">
- </argument>
- <argument index="1" name="ip" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_connected" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="get_connected_host" qualifiers="const" >
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="get_connected_port" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="disconnect" >
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="StreamPlayer" inherits="Node" category="Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_stream" >
- <argument index="0" name="stream" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_stream" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="play" >
- <description>
- </description>
- </method>
- <method name="stop" >
- <description>
- </description>
- </method>
- <method name="is_playing" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_loop" >
- <argument index="0" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_loop" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_volume" >
- <argument index="0" name="volume" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_volume" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_volume_db" >
- <argument index="0" name="db" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_volume_db" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="get_stream_name" qualifiers="const" >
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="get_loop_count" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_pos" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="seek_pos" >
- <argument index="0" name="time" type="real">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="StyleBox" inherits="Resource" category="Core">
- <brief_description>
- Base class for dawing stylized boxes for the UI.
- </brief_description>
- <description>
- StyleBox is [Resource] that provides an abstract base class for dawing stylized boxes for the UI. StyleBoxes are used for dawing the styles of buttons, line edit backgrounds, tree backgrounds, etc. and also for testing a transparency mask for pointer signals. If mask test fails on a StyleBox assigned as mask to a control, clicks and motion signals will go through it to the one below.
- </description>
- <methods>
- <method name="test_mask" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="point" type="Vector2">
- </argument>
- <argument index="1" name="rect" type="Rect2">
- </argument>
- <description>
- Test a position in a rectangle, return wether it pases the mask test.
- </description>
- </method>
- <method name="set_default_margin" >
- <argument index="0" name="margin" type="int">
- </argument>
- <argument index="1" name="offset" type="real">
- </argument>
- <description>
- Set the default offset &quot;offset&quot; of the margin &quot;margin&quot; (see MARGIN_* enum) for a StyleBox, Controls that draw styleboxes with context inside need to know the margin, so the border of the stylebox is not occluded.
- </description>
- </method>
- <method name="get_default_margin" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="margin" type="int">
- </argument>
- <description>
- Return the default offset of the margin &quot;margin&quot; (see MARGIN_* enum) of a StyleBox, Controls that draw styleboxes with context inside need to know the margin, so the border of the stylebox is not occluded.
- </description>
- </method>
- <method name="get_margin" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="margin" type="int">
- </argument>
- <description>
- Return the offset of margin &quot;margin&quot; (see MARGIN_* enum).
- </description>
- </method>
- <method name="get_minimum_size" qualifiers="const" >
- <return type="Vector2">
- </return>
- <description>
- Return the minimum size that this stylebox can be shrunk to.
- </description>
- </method>
- <method name="get_offset" qualifiers="const" >
- <return type="Vector2">
- </return>
- <description>
- Return the &quot;offset&quot; of a stylebox, this is a helper function, like writing Point2( style.get_margin(MARGIN_LEFT), style.get_margin(MARGIN_TOP) )
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="StyleBoxEmpty" inherits="StyleBox" category="Resources">
- <brief_description>
- Empty stylebox (does not display anything).
- </brief_description>
- <description>
- Empty stylebox (really does not display anything).
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="StyleBoxFlat" inherits="StyleBox" category="Resources">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_bg_color" >
- <argument index="0" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_bg_color" qualifiers="const" >
- <return type="Color">
- </return>
- <description>
- </description>
- </method>
- <method name="set_light_color" >
- <argument index="0" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_light_color" qualifiers="const" >
- <return type="Color">
- </return>
- <description>
- </description>
- </method>
- <method name="set_dark_color" >
- <argument index="0" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_dark_color" qualifiers="const" >
- <return type="Color">
- </return>
- <description>
- </description>
- </method>
- <method name="set_border_size" >
- <argument index="0" name="size" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_border_size" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_border_blend" >
- <argument index="0" name="blend" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_border_blend" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_draw_center" >
- <argument index="0" name="size" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_draw_center" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="StyleBoxImageMask" inherits="StyleBox" category="Resources">
- <brief_description>
- Image mask based StyleBox, for mask test.
- </brief_description>
- <description>
- This StyleBox is similar to [StyleBoxTexture], but only meant to be used for mask testing. It takes an image and applies stretch rules to determine if the poit clicked is masked or not.
- </description>
- <methods>
- <method name="set_image" >
- <argument index="0" name="image" type="Image">
- </argument>
- <description>
- Set the image used for mask testing. Pixels (converted to grey) that have a value, less than 0.5 will fail the test.
- </description>
- </method>
- <method name="get_image" qualifiers="const" >
- <return type="Image">
- </return>
- <description>
- Return the image used for mask testing. (see [method set_imag]).
- </description>
- </method>
- <method name="set_expand" >
- <argument index="0" name="expand" type="bool">
- </argument>
- <description>
- Set the expand property (default). When expanding, the image will use the same rules as [StyleBoxTexture] for expand. If not expanding, the image will always be tested at its original size.
- </description>
- </method>
- <method name="get_expand" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- Return wether the expand property is set(default). When expanding, the image will use the same rules as [StyleBoxTexture] for expand. If not expanding, the image will always be tested at its original size.
- </description>
- </method>
- <method name="set_expand_margin_size" >
- <argument index="0" name="margin" type="int">
- </argument>
- <argument index="1" name="size" type="real">
- </argument>
- <description>
- Set an expand margin size (from enum MARGIN_*). Parts of the image below the size of the margin (and in the direction of the margin) will not expand.
- </description>
- </method>
- <method name="get_expand_margin_size" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="arg0" type="int">
- </argument>
- <description>
- Return the expand margin size (from enum MARGIN_*). Parts of the image below the size of the margin (and in the direction of the margin) will not expand.
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="StyleBoxTexture" inherits="StyleBox" category="Resources">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_texture" >
- <argument index="0" name="texture" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_texture" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="set_margin_size" >
- <argument index="0" name="margin" type="int">
- </argument>
- <argument index="1" name="size" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_margin_size" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="arg0" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_expand_margin_size" >
- <argument index="0" name="margin" type="int">
- </argument>
- <argument index="1" name="size" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_expand_margin_size" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="arg0" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_draw_center" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_draw_center" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="get_center_size" qualifiers="const" >
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="draw" qualifiers="const" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Rect2">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="SurfaceTool" inherits="Reference" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="begin" >
- <argument index="0" name="primitive" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_vertex" >
- <argument index="0" name="vertex" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_color" >
- <argument index="0" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_normal" >
- <argument index="0" name="normal" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_tangent" >
- <argument index="0" name="tangent" type="Plane">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_uv" >
- <argument index="0" name="uv" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_uv2" >
- <argument index="0" name="uv2" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_bones" >
- <argument index="0" name="bones" type="IntArray">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_weights" >
- <argument index="0" name="weights" type="RealArray">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_material" >
- <argument index="0" name="material" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="index" >
- <description>
- </description>
- </method>
- <method name="deindex" >
- <description>
- </description>
- </method>
- <method name="generate_flat_normals" >
- <description>
- </description>
- </method>
- <method name="generate_smooth_normals" >
- <description>
- </description>
- </method>
- <method name="generate_tangents" >
- <description>
- </description>
- </method>
- <method name="commit" >
- <return type="Object">
- </return>
- <argument index="0" name="existing" type="Object" default="Object()">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear" >
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="TCP_Server" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="listen" >
- <return type="int">
- </return>
- <argument index="0" name="port" type="int">
- </argument>
- <argument index="1" name="accepted_hosts" type="StringArray" default="StringArray()">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_connection_available" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="take_connection" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="stop" >
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="TabContainer" inherits="Control" category="Nodes/GUI Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="get_tab_count" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_current_tab" >
- <argument index="0" name="tab_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_current_tab" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_tab_align" >
- <argument index="0" name="align" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_tab_align" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_tabs_visible" >
- <argument index="0" name="visible" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="are_tabs_visible" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_tab_title" >
- <argument index="0" name="tab_idx" type="int">
- </argument>
- <argument index="1" name="title" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_tab_title" qualifiers="const" >
- <return type="String">
- </return>
- <argument index="0" name="tab_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_tab_icon" >
- <argument index="0" name="tab_idx" type="int">
- </argument>
- <argument index="1" name="icon" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_tab_icon" qualifiers="const" >
- <return type="Object">
- </return>
- <argument index="0" name="tab_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="tab_changed">
- <argument index="0" name="tab" type="int">
- </argument>
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- </constants>
-</class>
-<class name="TestCube" inherits="VisualInstance" category="Nodes/3D/3D Visual Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="TextEdit" inherits="Control" category="Nodes/GUI Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_text" >
- <argument index="0" name="text" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="insert_text_at_cursor" >
- <argument index="0" name="text" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_line_count" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_text" >
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="get_line" >
- <return type="String">
- </return>
- <argument index="0" name="arg0" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="cursor_set_column" >
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="cursor_set_line" >
- <argument index="0" name="line" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="cursor_get_column" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="cursor_get_line" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_readonly" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_wrap" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_max_chars" >
- <argument index="0" name="amount" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="cut" >
- <description>
- </description>
- </method>
- <method name="copy" >
- <description>
- </description>
- </method>
- <method name="paste" >
- <description>
- </description>
- </method>
- <method name="select_all" >
- <description>
- </description>
- </method>
- <method name="select" >
- <argument index="0" name="from_line" type="int">
- </argument>
- <argument index="1" name="from_column" type="int">
- </argument>
- <argument index="2" name="to_line" type="int">
- </argument>
- <argument index="3" name="to_column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_selection_active" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="get_selection_from_line" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_selection_from_column" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_selection_to_line" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_selection_to_column" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_selection_text" qualifiers="const" >
- <return type="String">
- </return>
- <description>
- </description>
- </method>
- <method name="search" qualifiers="const" >
- <return type="IntArray">
- </return>
- <argument index="0" name="flags" type="String">
- </argument>
- <argument index="1" name="from_line" type="int">
- </argument>
- <argument index="2" name="from_column" type="int">
- </argument>
- <argument index="3" name="to_line" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="undo" >
- <description>
- </description>
- </method>
- <method name="redo" >
- <description>
- </description>
- </method>
- <method name="clear_undo_history" >
- <description>
- </description>
- </method>
- <method name="set_syntax_coloring" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_syntax_coloring_enabled" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="add_keyword_color" >
- <argument index="0" name="keyword" type="String">
- </argument>
- <argument index="1" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_color_region" >
- <argument index="0" name="begin_key" type="String">
- </argument>
- <argument index="1" name="end_key" type="String">
- </argument>
- <argument index="2" name="color" type="Color">
- </argument>
- <argument index="3" name="line_only" type="bool" default="false">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_symbol_color" >
- <argument index="0" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_custom_bg_color" >
- <argument index="0" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear_colors" >
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="text_changed">
- <description>
- </description>
- </signal>
- <signal name="cursor_changed">
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- <constant name="SEARCH_MATCH_CASE" value="1">
- </constant>
- <constant name="SEARCH_BACKWARDS" value="4">
- </constant>
- <constant name="SEARCH_WHOLE_WORDS" value="2">
- </constant>
- </constants>
-</class>
-<class name="Texture" inherits="Resource" category="Resources">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="create" >
- <argument index="0" name="width" type="int">
- </argument>
- <argument index="1" name="height" type="int">
- </argument>
- <argument index="2" name="format" type="int">
- </argument>
- <argument index="3" name="flags" type="int" default="7">
- </argument>
- <description>
- </description>
- </method>
- <method name="create_from_image" >
- <argument index="0" name="image" type="Image">
- </argument>
- <argument index="1" name="flags" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_flags" >
- <argument index="0" name="flags" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_flags" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_format" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="load" >
- <argument index="0" name="path" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="blit_rect" >
- <argument index="0" name="x" type="int">
- </argument>
- <argument index="1" name="y" type="int">
- </argument>
- <argument index="2" name="image" type="Image">
- </argument>
- <argument index="3" name="cube_side" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_rect" qualifiers="const" >
- <return type="Image">
- </return>
- <argument index="0" name="x" type="int">
- </argument>
- <argument index="1" name="y" type="int">
- </argument>
- <argument index="2" name="width" type="int">
- </argument>
- <argument index="3" name="height" type="int">
- </argument>
- <argument index="4" name="cube_side" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_width" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_height" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_size" qualifiers="const" >
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- <method name="get_rid" qualifiers="const" >
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="has_alpha" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="draw" qualifiers="const" >
- <argument index="0" name="canvas_item" type="RID">
- </argument>
- <argument index="1" name="pos" type="Vector2">
- </argument>
- <argument index="2" name="modulate" type="Color" default="Color(1,1,1,1)">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="CUBEMAP_BACK" value="5">
- </constant>
- <constant name="CUBEMAP_FRONT" value="4">
- </constant>
- <constant name="FLAG_CUBEMAP" value="8">
- </constant>
- <constant name="CUBEMAP_TOP" value="3">
- </constant>
- <constant name="CUBEMAP_LEFT" value="0">
- </constant>
- <constant name="FLAG_FILTER" value="4">
- </constant>
- <constant name="FLAG_MIPMAPS" value="1">
- </constant>
- <constant name="CUBEMAP_BOTTOM" value="2">
- </constant>
- <constant name="FLAGS_DEFAULT" value="7">
- </constant>
- <constant name="CUBEMAP_RIGHT" value="1">
- </constant>
- <constant name="FLAG_REPEAT" value="2">
- </constant>
- </constants>
-</class>
-<class name="TextureButton" inherits="BaseButton" category="Nodes/GUI Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_normal_texture" >
- <argument index="0" name="texture" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_pressed_texture" >
- <argument index="0" name="texture" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_hover_texture" >
- <argument index="0" name="texture" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_disabled_texture" >
- <argument index="0" name="texture" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_focused_texture" >
- <argument index="0" name="texture" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_click_mask" >
- <argument index="0" name="texture" type="Image">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_normal_texture" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="get_pressed_texture" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="get_hover_texture" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="get_disabled_texture" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="get_focused_texture" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="get_click_mask" qualifiers="const" >
- <return type="Image">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="TextureFrame" inherits="Control" category="Nodes/GUI Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_texture" >
- <argument index="0" name="texture" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_texture" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="set_expand" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_expand" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Theme" inherits="Resource" category="Resources">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_icon" >
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <argument index="2" name="texture" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_icon" qualifiers="const" >
- <return type="Object">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_icon" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear_icon" >
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_icon_list" qualifiers="const" >
- <return type="StringArray">
- </return>
- <argument index="0" name="arg0" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_stylebox" >
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <argument index="2" name="texture" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_stylebox" qualifiers="const" >
- <return type="Object">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_stylebox" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear_stylebox" >
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_stylebox_list" qualifiers="const" >
- <return type="StringArray">
- </return>
- <argument index="0" name="arg0" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_font" >
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <argument index="2" name="font" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_font" qualifiers="const" >
- <return type="Object">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_font" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear_font" >
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_font_list" qualifiers="const" >
- <return type="StringArray">
- </return>
- <argument index="0" name="arg0" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_color" >
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <argument index="2" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_color" qualifiers="const" >
- <return type="Color">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_color" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear_color" >
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_color_list" qualifiers="const" >
- <return type="StringArray">
- </return>
- <argument index="0" name="arg0" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_constant" >
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <argument index="2" name="constant" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_constant" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_constant" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear_constant" >
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="type" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_constant_list" qualifiers="const" >
- <return type="StringArray">
- </return>
- <argument index="0" name="arg0" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_type_list" qualifiers="const" >
- <return type="StringArray">
- </return>
- <argument index="0" name="arg0" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="copy_default_theme" >
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Timer" inherits="Node" category="Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_wait_time" >
- <argument index="0" name="time_sec" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_wait_time" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- <method name="set_one_shot" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_one_shot" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_autostart" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="has_autostart" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="start" >
- <description>
- </description>
- </method>
- <method name="stop" >
- <description>
- </description>
- </method>
- <method name="get_time_left" qualifiers="const" >
- <return type="real">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="timeout">
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- </constants>
-</class>
-<class name="Tree" inherits="Control" category="Nodes/GUI Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="clear" >
- <description>
- </description>
- </method>
- <method name="create_item" >
- <return type="Object">
- </return>
- <argument index="0" name="arg0" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_root" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="set_column_min_width" >
- <argument index="0" name="arg0" type="int">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_column_expand" >
- <argument index="0" name="arg0" type="int">
- </argument>
- <argument index="1" name="arg1" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_column_width" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_hide_root" >
- <argument index="0" name="arg0" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_next_selected" >
- <return type="Object">
- </return>
- <argument index="0" name="arg0" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_selected" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="get_selected_column" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_pressed_button" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="set_select_mode" >
- <argument index="0" name="arg0" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_columns" >
- <argument index="0" name="amount" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_columns" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_edited" qualifiers="const" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="get_edited_column" qualifiers="const" >
- <return type="int">
- </return>
- <description>
- </description>
- </method>
- <method name="get_custom_popup_rect" qualifiers="const" >
- <return type="Rect2">
- </return>
- <description>
- </description>
- </method>
- <method name="get_item_rect" qualifiers="const" >
- <return type="Rect2">
- </return>
- <argument index="0" name="item" type="Object">
- </argument>
- <argument index="1" name="column" type="int" default="-1">
- </argument>
- <description>
- </description>
- </method>
- <method name="ensure_cursor_is_visible" >
- <description>
- </description>
- </method>
- <method name="set_column_titles_visible" >
- <argument index="0" name="visible" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="are_column_titles_visible" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_column_title" >
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="title" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_column_title" qualifiers="const" >
- <return type="String">
- </return>
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_scroll" qualifiers="const" >
- <return type="Vector2">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <signals>
- <signal name="multi_selected">
- <description>
- </description>
- </signal>
- <signal name="custom_popup_edited">
- <argument index="0" name="arrow_clicked" type="bool">
- </argument>
- <description>
- </description>
- </signal>
- <signal name="item_edited">
- <description>
- </description>
- </signal>
- <signal name="item_selected">
- <description>
- </description>
- </signal>
- <signal name="item_doubleclicked">
- <description>
- </description>
- </signal>
- <signal name="cell_selected">
- <description>
- </description>
- </signal>
- <signal name="button_pressed">
- <argument index="0" name="item" type="Object">
- </argument>
- <argument index="1" name="column" type="int">
- </argument>
- <argument index="2" name="id" type="int">
- </argument>
- <description>
- </description>
- </signal>
- </signals>
- <constants>
- <constant name="SELECT_ROW" value="1">
- </constant>
- <constant name="SELECT_SINGLE" value="0">
- </constant>
- <constant name="SELECT_MULTI" value="2">
- </constant>
- </constants>
-</class>
-<class name="TreeItem" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_cell_mode" >
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="mode" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_cell_mode" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_checked" >
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="checked" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_checked" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_text" >
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="text" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_text" qualifiers="const" >
- <return type="String">
- </return>
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_icon" >
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="texture" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_icon" qualifiers="const" >
- <return type="Object">
- </return>
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_range" >
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="value" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_range" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_range_config" >
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="min" type="real">
- </argument>
- <argument index="2" name="max" type="real">
- </argument>
- <argument index="3" name="step" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_range_config" >
- <return type="Dictionary">
- </return>
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_metadata" >
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="meta" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_metadata" qualifiers="const" >
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_collapsed" >
- <argument index="0" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_collapsed" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="get_next" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="get_prev" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="get_parent" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="get_children" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="get_next_visible" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="get_prev_visible" >
- <return type="Object">
- </return>
- <description>
- </description>
- </method>
- <method name="remove_child" >
- <argument index="0" name="child" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_selectable" >
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="selectable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_selected" >
- <return type="bool">
- </return>
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="select" >
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="deselect" >
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_editable" >
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="enabled" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_editable" >
- <return type="bool">
- </return>
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_custom_color" >
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear_custom_color" >
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_custom_bg_color" >
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="color" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="clear_custom_bg_color" >
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="add_button" >
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="button" type="Object">
- </argument>
- <argument index="2" name="arg2" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_button_count" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="column" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_button" qualifiers="const" >
- <return type="Object">
- </return>
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="button_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="erase_button" >
- <argument index="0" name="column" type="int">
- </argument>
- <argument index="1" name="button_idx" type="int">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="CELL_MODE_ICON" value="3">
- </constant>
- <constant name="CELL_MODE_CUSTOM" value="4">
- </constant>
- <constant name="CELL_MODE_RANGE" value="2">
- </constant>
- <constant name="CELL_MODE_CHECK" value="1">
- </constant>
- <constant name="CELL_MODE_STRING" value="0">
- </constant>
- </constants>
-</class>
-<class name="VScrollBar" inherits="ScrollBar" category="Nodes/GUI Nodes">
- <brief_description>
- Vertical version of [ScrollBar], which goes from left (min) to right (max).
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="VSeparator" inherits="Separator" category="Nodes/GUI Nodes">
- <brief_description>
- Vertical version of [Separator].
- </brief_description>
- <description>
- Vertical version of [Separator]. It is used to separate objects horizontally, though (but it looks vertical!).
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="VSlider" inherits="Slider" category="Nodes/GUI Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="Viewport" inherits="Node" category="Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="set_rect" >
- <argument index="0" name="rect" type="Rect2">
- </argument>
- <description>
- </description>
- </method>
- <method name="get_rect" qualifiers="const" >
- <return type="Rect2">
- </return>
- <description>
- </description>
- </method>
- <method name="get_visible_rect" qualifiers="const" >
- <return type="Rect2">
- </return>
- <description>
- </description>
- </method>
- <method name="get_viewport" qualifiers="const" >
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="VisualInstance" inherits="Spatial" category="Nodes/3D/3D Visual Nodes">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="override_material_param" >
- <argument index="0" name="param" type="String">
- </argument>
- <argument index="1" name="value" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="set_visible" >
- <argument index="0" name="visible" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_visible" qualifiers="const" >
- <return type="bool">
- </return>
- <description>
- </description>
- </method>
- <method name="set_base" >
- <argument index="0" name="base" type="RID">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
-<class name="VisualServer" inherits="Object" category="Core">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- <method name="texture_create" >
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="texture_create_from_image" >
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="Image">
- </argument>
- <argument index="1" name="arg1" type="int" default="7">
- </argument>
- <description>
- </description>
- </method>
- <method name="texture_allocate" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="int">
- </argument>
- <argument index="3" name="arg3" type="int">
- </argument>
- <argument index="4" name="arg4" type="int" default="7">
- </argument>
- <description>
- </description>
- </method>
- <method name="texture_blit_rect" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="int">
- </argument>
- <argument index="3" name="arg3" type="Image">
- </argument>
- <argument index="4" name="arg4" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="texture_set_flags" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="texture_get_flags" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="texture_get_width" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="texture_get_height" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="shader_create" >
- <return type="RID">
- </return>
- <argument index="0" name="mode" type="int" default="0">
- </argument>
- <description>
- </description>
- </method>
- <method name="shader_set_mode" >
- <argument index="0" name="shader" type="RID">
- </argument>
- <argument index="1" name="mode" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="shader_get_mode" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="shader" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="shader_set_vertex_code" >
- <argument index="0" name="shader" type="RID">
- </argument>
- <argument index="1" name="code" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="shader_get_vertex_code" qualifiers="const" >
- <return type="String">
- </return>
- <argument index="0" name="shader" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="shader_set_fragment_code" >
- <argument index="0" name="shader" type="RID">
- </argument>
- <argument index="1" name="code" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="shader_get_fragment_code" qualifiers="const" >
- <return type="String">
- </return>
- <argument index="0" name="shader" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="shader_set_param" >
- <argument index="0" name="shader" type="RID">
- </argument>
- <argument index="1" name="param" type="String">
- </argument>
- <argument index="2" name="value" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="shader_get_param" qualifiers="const" >
- <argument index="0" name="shader" type="RID">
- </argument>
- <argument index="1" name="param" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="shader_get_param_list" qualifiers="const" >
- <return type="StringArray">
- </return>
- <argument index="0" name="shader" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="shader_set_use_world_transform" >
- <argument index="0" name="shader" type="RID">
- </argument>
- <argument index="1" name="enable" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="shader_is_using_world_transform" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="shader" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="material_create" >
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="material_set_shader" >
- <argument index="0" name="shader" type="RID">
- </argument>
- <argument index="1" name="arg1" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="material_get_shader" qualifiers="const" >
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="material_set_param" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="String">
- </argument>
- <argument index="2" name="arg2" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="material_get_param" qualifiers="const" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="material_set_flag" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="material_get_flag" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="material_set_blend_mode" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="material_get_blend_mode" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="material_set_line_width" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="material_get_line_width" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="fixed_material_set_parameter" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="fixed_material_get_parameter" qualifiers="const" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="fixed_material_set_texture" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="fixed_material_get_texture" qualifiers="const" >
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="fixed_material_set_texgen_mode" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="fixed_material_get_texgen_mode" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="fixed_material_set_texcoord_mode" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="fixed_material_get_texcoord_mode" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="fixed_material_set_uv_transform" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="fixed_material_get_uv_transform" qualifiers="const" >
- <return type="Transform">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="mesh_create" >
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="mesh_surface_set_array" >
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="int">
- </argument>
- <argument index="3" name="arg3" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="mesh_surface_get_array" qualifiers="const" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="mesh_surface_set_material" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="RID">
- </argument>
- <argument index="3" name="arg3" type="bool" default="false">
- </argument>
- <description>
- </description>
- </method>
- <method name="mesh_surface_get_material" qualifiers="const" >
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="mesh_surface_get_array_len" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="mesh_surface_get_array_index_len" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="mesh_surface_get_format" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="mesh_surface_get_primitive_type" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="mesh_erase_surface" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="mesh_get_surface_count" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="multimesh_create" >
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="multimesh_set_mesh" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="multimesh_set_aabb" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="AABB">
- </argument>
- <description>
- </description>
- </method>
- <method name="multimesh_instance_set_transform" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="multimesh_instance_set_color" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="multimesh_get_mesh" qualifiers="const" >
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="multimesh_get_aabb" qualifiers="const" >
- <return type="AABB">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="AABB">
- </argument>
- <description>
- </description>
- </method>
- <method name="multimesh_instance_get_transform" qualifiers="const" >
- <return type="Transform">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="multimesh_instance_get_color" qualifiers="const" >
- <return type="Color">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="poly_create" >
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="poly_set_material" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="RID">
- </argument>
- <argument index="2" name="arg2" type="bool" default="false">
- </argument>
- <description>
- </description>
- </method>
- <method name="poly_add_primitive" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Vector3Array">
- </argument>
- <argument index="2" name="arg2" type="Vector3Array">
- </argument>
- <argument index="3" name="arg3" type="ColorArray">
- </argument>
- <argument index="4" name="arg4" type="Vector3Array">
- </argument>
- <description>
- </description>
- </method>
- <method name="poly_clear" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_create" >
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="particles_set_amount" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_get_amount" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_set_emitting" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_is_emitting" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_set_visibility_aabb" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="AABB">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_get_visibility_aabb" qualifiers="const" >
- <return type="AABB">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_set_variable" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_get_variable" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_set_randomness" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_get_randomness" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_set_color_phases" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_get_color_phases" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_set_color_phase_pos" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_get_color_phase_pos" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_set_color_phase_color" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_get_color_phase_color" qualifiers="const" >
- <return type="Color">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_set_attractors" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_get_attractors" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_set_attractor_pos" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_get_attractor_pos" qualifiers="const" >
- <return type="Vector3">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_set_attractor_strength" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_get_attractor_strength" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_set_material" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="RID">
- </argument>
- <argument index="2" name="arg2" type="bool" default="false">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_set_height_from_velocity" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="particles_has_height_from_velocity" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="light_create" >
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="light_get_type" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="light_set_color" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="light_get_color" qualifiers="const" >
- <return type="Color">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="light_set_shadow" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="light_has_shadow" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="light_set_volumetric" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="light_is_volumetric" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="light_set_projector" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="light_get_projector" qualifiers="const" >
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="light_set_var" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="light_get_var" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="skeleton_create" >
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="skeleton_resize" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="skeleton_get_bone_count" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="skeleton_bone_set_transform" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="skeleton_bone_get_transform" >
- <return type="Transform">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="room_create" >
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="room_set_bounds" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Dictionary">
- </argument>
- <description>
- </description>
- </method>
- <method name="room_get_bounds" qualifiers="const" >
- <return type="Dictionary">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="portal_create" >
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="portal_set_shape" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Array">
- </argument>
- <description>
- </description>
- </method>
- <method name="portal_get_shape" qualifiers="const" >
- <return type="Array">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="portal_set_enabled" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="portal_is_enabled" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="portal_set_disable_distance" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="portal_get_disable_distance" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="portal_set_disabled_color" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="portal_get_disabled_color" qualifiers="const" >
- <return type="Color">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="camera_create" >
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="camera_set_perspective" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="real">
- </argument>
- <argument index="2" name="arg2" type="real">
- </argument>
- <argument index="3" name="arg3" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="camera_set_orthogonal" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="real">
- </argument>
- <argument index="2" name="arg2" type="real">
- </argument>
- <argument index="3" name="arg3" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="camera_set_transform" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="viewport_create" >
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="viewport_set_rect" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Rect2">
- </argument>
- <description>
- </description>
- </method>
- <method name="viewport_get_rect" qualifiers="const" >
- <return type="Rect2">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="viewport_attach_camera" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="RID" default="RID()">
- </argument>
- <description>
- </description>
- </method>
- <method name="viewport_get_attached_camera" qualifiers="const" >
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="viewport_get_scenario" qualifiers="const" >
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="viewport_attach_canvas" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="viewport_remove_canvas" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="viewport_move_canvas_to_top" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="viewport_move_canvas_to_bottom" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="scenario_create" >
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="scenario_set_debug" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="scenario_fx_get_effects" qualifiers="const" >
- <return type="StringArray">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="scenario_fx_set_active" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="String">
- </argument>
- <argument index="2" name="arg2" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="scenario_fx_is_active" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="scenario_fx_get_effect_params" qualifiers="const" >
- <return type="Array">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="scenario_fx_get_effect_param" qualifiers="const" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="String">
- </argument>
- <argument index="2" name="arg2" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="scenario_fx_set_effect_param" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="String">
- </argument>
- <argument index="2" name="arg2" type="String">
- </argument>
- <argument index="3" name="arg3" type="var">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_create" >
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="instance_get_base" qualifiers="const" >
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_get_base_aabb" qualifiers="const" >
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_set_transform" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_get_transform" qualifiers="const" >
- <return type="Transform">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_attach_object_instance_ID" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_get_object_instance_ID" qualifiers="const" >
- <return type="int">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_attach_skeleton" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_get_skeleton" qualifiers="const" >
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_set_room" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_get_room" qualifiers="const" >
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_set_exterior" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_is_exterior" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="instances_cull_aabb" qualifiers="const" >
- <return type="Array">
- </return>
- <argument index="0" name="arg0" type="AABB">
- </argument>
- <argument index="1" name="arg1" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="instances_cull_ray" qualifiers="const" >
- <return type="Array">
- </return>
- <argument index="0" name="arg0" type="Vector3">
- </argument>
- <argument index="1" name="arg1" type="Vector3">
- </argument>
- <argument index="2" name="arg2" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="instances_cull_convex" qualifiers="const" >
- <return type="Array">
- </return>
- <argument index="0" name="arg0" type="Vector3">
- </argument>
- <argument index="1" name="arg1" type="Vector3">
- </argument>
- <argument index="2" name="arg2" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_geometry_set_visible" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_geometry_is_visible" qualifiers="const" >
- <return type="bool">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_geometry_override_material_param" qualifiers="const" >
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="instance_geometry_get_material_param" qualifiers="const" >
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_create" >
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="canvas_item_create" >
- <return type="RID">
- </return>
- <description>
- </description>
- </method>
- <method name="canvas_item_set_parent" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_get_parent" qualifiers="const" >
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_set_custom_rect" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="bool">
- </argument>
- <argument index="2" name="arg2" type="Rect2">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_set_clip" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="bool">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_set_opacity" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_get_opacity" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_set_self_opacity" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_get_self_opacity" qualifiers="const" >
- <return type="real">
- </return>
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_add_line" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Vector2">
- </argument>
- <argument index="2" name="arg2" type="Vector2">
- </argument>
- <argument index="3" name="arg3" type="Color">
- </argument>
- <argument index="4" name="arg4" type="real" default="1">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_add_rect" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Rect2">
- </argument>
- <argument index="2" name="arg2" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_add_texture_rect" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Rect2">
- </argument>
- <argument index="2" name="arg2" type="RID">
- </argument>
- <argument index="3" name="arg3" type="bool">
- </argument>
- <argument index="4" name="arg4" type="Color" default="Color(1,1,1,1)">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_add_texture_rect_region" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Rect2">
- </argument>
- <argument index="2" name="arg2" type="RID">
- </argument>
- <argument index="3" name="arg3" type="Rect2">
- </argument>
- <argument index="4" name="arg4" type="Color" default="Color(1,1,1,1)">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_add_style_box" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Rect2">
- </argument>
- <argument index="2" name="arg2" type="RID">
- </argument>
- <argument index="3" name="arg3" type="RealArray">
- </argument>
- <argument index="4" name="arg4" type="Color" default="Color(1,1,1,1)">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_add_primitive" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Array">
- </argument>
- <argument index="2" name="arg2" type="ColorArray">
- </argument>
- <argument index="3" name="arg3" type="Array" default="Array()">
- </argument>
- <argument index="4" name="arg4" type="RID" default="RID()">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_clear" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="canvas_item_raise" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="cursor_set_rotation" >
- <argument index="0" name="arg0" type="real">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="cursor_set_texture" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Vector2">
- </argument>
- <argument index="2" name="arg2" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="cursor_set_visible" >
- <argument index="0" name="arg0" type="bool">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="cursor_set_pos" >
- <argument index="0" name="arg0" type="Vector2">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="make_sphere_mesh" >
- <return type="RID">
- </return>
- <argument index="0" name="arg0" type="int">
- </argument>
- <argument index="1" name="arg1" type="int">
- </argument>
- <argument index="2" name="arg2" type="real">
- </argument>
- <description>
- </description>
- </method>
- <method name="mesh_add_surface_from_planes" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <argument index="1" name="arg1" type="Array">
- </argument>
- <description>
- </description>
- </method>
- <method name="free" >
- <argument index="0" name="arg0" type="RID">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- <constant name="INSTANCE_GEOMETRY_MASK" value="30">
- </constant>
- <constant name="INSTANCE_PARTICLES" value="4">
- </constant>
- <constant name="SCENARIO_DEBUG_WIREFRAME" value="1">
- </constant>
- <constant name="LIGHT_VAR_ATTENUATION" value="4">
- </constant>
- <constant name="LIGHT_VAR_SPOT_ANGLE" value="1">
- </constant>
- <constant name="LIGHT_COLOR_DIFFUSE" value="1">
- </constant>
- <constant name="PARTICLE_ANGULAR_VELOCITY" value="4">
- </constant>
- <constant name="INSTANCE_LIGHT" value="5">
- </constant>
- <constant name="INSTANCE_MULTIMESH" value="2">
- </constant>
- <constant name="PARTICLE_HEIGHT" value="11">
- </constant>
- <constant name="PARTICLE_LINEAR_VELOCITY" value="3">
- </constant>
- <constant name="FIXED_MATERIAL_PARAM_SPECULAR" value="2">
- </constant>
- <constant name="ARRAY_VERTEX" value="0">
- </constant>
- <constant name="LIGHT_SPOT" value="2">
- </constant>
- <constant name="CUBEMAP_BACK" value="5">
- </constant>
- <constant name="MATERIAL_FLAG_MAX" value="7">
- </constant>
- <constant name="FIXED_MATERIAL_PARAM_DETAIL_MIX" value="6">
- </constant>
- <constant name="ARRAY_COLOR" value="3">
- </constant>
- <constant name="ARRAY_FORMAT_BONES" value="64">
- </constant>
- <constant name="PRIMITIVE_MAX" value="7">
- </constant>
- <constant name="FIXED_MATERIAL_TEXGEN_SPHERE" value="1">
- </constant>
- <constant name="ARRAY_FORMAT_INDEX" value="256">
- </constant>
- <constant name="PRIMITIVE_TRIANGLE_STRIP" value="5">
- </constant>
- <constant name="MAX_PARTICLE_ATTRACTORS" value="4">
- </constant>
- <constant name="TEXTURE_FLAG_FILTER" value="4">
- </constant>
- <constant name="CUBEMAP_TOP" value="3">
- </constant>
- <constant name="MATERIAL_BLEND_MODE_ADD" value="1">
- </constant>
- <constant name="FIXED_MATERIAL_TEXCOORD_TEXGEN" value="3">
- </constant>
- <constant name="FIXED_MATERIAL_TEXCOORD_UV" value="0">
- </constant>
- <constant name="ARRAY_TANGENT" value="2">
- </constant>
- <constant name="ARRAY_FORMAT_NORMAL" value="2">
- </constant>
- <constant name="INFO_VIDEO_MEM_USED" value="3">
- </constant>
- <constant name="LIGHT_VAR_SPOT_ATTENUATION" value="0">
- </constant>
- <constant name="TEXTURE_FLAG_MIPMAPS" value="1">
- </constant>
- <constant name="MATERIAL_FLAG_INVERT_FACES" value="2">
- </constant>
- <constant name="MATERIAL_BLEND_MODE_SUB" value="2">
- </constant>
- <constant name="FIXED_MATERIAL_PARAM_DETAIL" value="1">
- </constant>
- <constant name="INSTANCE_ROOM" value="6">
- </constant>
- <constant name="INSTANCE_MESH" value="1">
- </constant>
- <constant name="SCENARIO_DEBUG_DISABLED" value="0">
- </constant>
- <constant name="PARTICLE_VAR_MAX" value="13">
- </constant>
- <constant name="PRIMITIVE_TRIANGLES" value="4">
- </constant>
- <constant name="PRIMITIVE_LINE_STRIP" value="2">
- </constant>
- <constant name="TEXTURE_FLAGS_DEFAULT" value="7">
- </constant>
- <constant name="CUBEMAP_BOTTOM" value="2">
- </constant>
- <constant name="FIXED_MATERIAL_TEXGEN_SCREENZ" value="3">
- </constant>
- <constant name="FIXED_MATERIAL_TEXCOORD_UV2" value="2">
- </constant>
- <constant name="ARRAY_FORMAT_TEX_UV" value="16">
- </constant>
- <constant name="ARRAY_FORMAT_WEIGHTS" value="128">
- </constant>
- <constant name="INFO_MATERIAL_CHANGES_IN_FRAME" value="1">
- </constant>
- <constant name="PARTICLE_SPREAD" value="1">
- </constant>
- <constant name="PARTICLE_LIFETIME" value="0">
- </constant>
- <constant name="PRIMITIVE_TRIANGLE_FAN" value="6">
- </constant>
- <constant name="NO_INDEX_ARRAY" value="-1">
- </constant>
- <constant name="MATERIAL_FLAG_BILLBOARD" value="6">
- </constant>
- <constant name="FIXED_MATERIAL_TEXGEN_LOCAL_XY" value="0">
- </constant>
- <constant name="SCENARIO_DEBUG_OVERDRAW" value="2">
- </constant>
- <constant name="PARTICLE_HEIGHT_SPEED_SCALE" value="12">
- </constant>
- <constant name="PARTICLE_INITIAL_ANGLE" value="10">
- </constant>
- <constant name="PARTICLE_TANGENTIAL_ACCELERATION" value="7">
- </constant>
- <constant name="PRIMITIVE_LINES" value="1">
- </constant>
- <constant name="CUSTOM_ARRAY_SIZE" value="8">
- </constant>
- <constant name="ARRAY_WEIGHTS_SIZE" value="4">
- </constant>
- <constant name="MATERIAL_FLAG_UNSHADED" value="3">
- </constant>
- <constant name="FIXED_MATERIAL_PARAM_DIFFUSE" value="0">
- </constant>
- <constant name="FIXED_MATERIAL_PARAM_MAX" value="9">
- </constant>
- <constant name="LIGHT_COLOR_SPECULAR" value="2">
- </constant>
- <constant name="MATERIAL_BLEND_MODE_MIX" value="0">
- </constant>
- <constant name="MATERIAL_BLEND_MODE_MUL" value="3">
- </constant>
- <constant name="FIXED_MATERIAL_PARAM_EMISSION" value="3">
- </constant>
- <constant name="ARRAY_MAX" value="9">
- </constant>
- <constant name="ARRAY_FORMAT_VERTEX" value="1">
- </constant>
- <constant name="INFO_OBJECTS_IN_FRAME" value="0">
- </constant>
- <constant name="LIGHT_VAR_MAX" value="6">
- </constant>
- <constant name="LIGHT_COLOR_AMBIENT" value="0">
- </constant>
- <constant name="LIGHT_DIRECTIONAL" value="0">
- </constant>
- <constant name="PRIMITIVE_POINTS" value="0">
- </constant>
- <constant name="CUBEMAP_FRONT" value="4">
- </constant>
- <constant name="SHADER_MATERIAL" value="0">
- </constant>
- <constant name="MATERIAL_FLAG_VISIBLE" value="0">
- </constant>
- <constant name="ARRAY_BONES" value="6">
- </constant>
- <constant name="ARRAY_FORMAT_COLOR" value="8">
- </constant>
- <constant name="INSTANCE_PORTAL" value="7">
- </constant>
- <constant name="MAX_CURSORS" value="8">
- </constant>
- <constant name="TEXTURE_FLAG_CUBEMAP" value="8">
- </constant>
- <constant name="FIXED_MATERIAL_PARAM_GLOW" value="5">
- </constant>
- <constant name="FIXED_MATERIAL_PARAM_NORMAL" value="7">
- </constant>
- <constant name="ARRAY_INDEX" value="8">
- </constant>
- <constant name="INFO_VERTEX_MEM_USED" value="5">
- </constant>
- <constant name="INFO_USAGE_VIDEO_MEM_TOTAL" value="2">
- </constant>
- <constant name="LIGHT_VAR_RADIUS" value="2">
- </constant>
- <constant name="PARTICLE_FINAL_SIZE" value="9">
- </constant>
- <constant name="PARTICLE_INITIAL_SIZE" value="8">
- </constant>
- <constant name="PARTICLE_LINEAR_ACCELERATION" value="5">
- </constant>
- <constant name="CUBEMAP_LEFT" value="0">
- </constant>
- <constant name="MATERIAL_FLAG_ONTOP" value="4">
- </constant>
- <constant name="FIXED_MATERIAL_TEXGEN_SCREEN" value="2">
- </constant>
- <constant name="ARRAY_NORMAL" value="1">
- </constant>
- <constant name="ARRAY_FORMAT_TANGENT" value="4">
- </constant>
- <constant name="INSTANCE_POLY" value="3">
- </constant>
- <constant name="FIXED_MATERIAL_PARAM_SPECULAR_EXP" value="4">
- </constant>
- <constant name="LIGHT_VAR_ENERGY" value="3">
- </constant>
- <constant name="PARTICLE_RADIAL_ACCELERATION" value="6">
- </constant>
- <constant name="PARTICLE_GRAVITY" value="2">
- </constant>
- <constant name="PRIMITIVE_LINE_LOOP" value="3">
- </constant>
- <constant name="MATERIAL_FLAG_WIREFRAME" value="5">
- </constant>
- <constant name="ARRAY_TEX_UV" value="4">
- </constant>
- <constant name="ARRAY_WEIGHTS" value="7">
- </constant>
- <constant name="INFO_TEXTURE_MEM_USED" value="4">
- </constant>
- <constant name="LIGHT_OMNI" value="1">
- </constant>
- <constant name="MAX_PARTICLE_COLOR_PHASES" value="4">
- </constant>
- <constant name="TEXTURE_FLAG_REPEAT" value="2">
- </constant>
- <constant name="CUBEMAP_RIGHT" value="1">
- </constant>
- <constant name="SHADER_POST_PROCESS" value="1">
- </constant>
- <constant name="MATERIAL_FLAG_DOUBLE_SIDED" value="1">
- </constant>
- <constant name="FIXED_MATERIAL_TEXCOORD_UV_TRANSFORM" value="1">
- </constant>
- </constants>
-</class>
-<class name="World" inherits="Resource" category="Resources">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
-</doc>
diff --git a/tools/docdump/main.css b/tools/docdump/main.css
deleted file mode 100644
index a76e6bbed8..0000000000
--- a/tools/docdump/main.css
+++ /dev/null
@@ -1,146 +0,0 @@
-BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV, SPAN {
- font-family: Arial, Geneva, Helvetica, sans-serif;
-}
-
-a {
-
- text-decoration: none;
-
-}
-
-a:hover {
-
- text-decoration: underline;
-}
-
-td.top_table {
-
- padding: 5px;
-}
-
-div.method_doc {
-
- padding-bottom: 30px;
-}
-
-div.method_description {
- margin-left: 30px;
-}
-
-list.inh_class_list {
- margin-left: 30px;
-
-}
-
-div.inh_class_list {
- margin-left: 30px;
-
-}
-
-div.method_doc div.method {
-
- font-size: 12pt;
- font-weight: bold;
-}
-
-span.funcdecl {
-
- color: #202060;
-}
-
-span.funcdef {
-
- color: #202060;
-}
-
-
-span.qualifier {
-
- font-weight: bold;
-}
-
-
-span.symbol {
-
- /*font-weight: bold;*/
- color: #471870;
-}
-
-
-span.datatype {
-
- color: #6a1533;
-}
-
-tr.category_title {
-
- background-color: #333333;
-}
-a.category_title {
- font-weight: bold;
- color: #FFFFFF;
-}
-
-div.method_list {
-
- margin-left: 30px;
-}
-
-div.constant_list {
-
- margin-left: 30px;
-}
-
-div.member_list {
-
- margin-left: 30px;
-}
-
-div.description {
-
- margin-left: 30px;
-}
-
-div.class_description {
-
- margin-left: 30px;
-}
-
-div.method_list li div {
-
- display: inline;
-}
-
-div.member_list li div.member {
-
- display: inline;
-}
-
-div.constant_list li div.constant {
-
- display: inline;
-}
-
-span.member_description {
-
- font-style: italic;
- color: grey;
-}
-
-span.constant_description {
-
- font-style: italic;
- color: grey;
-}
-
-span.identifier {
-
- font-weight: bold;
-}
-
-
-table.class_table td {
-
- vertical-align: top;
-}
-
diff --git a/tools/editor/animation_editor.cpp b/tools/editor/animation_editor.cpp
index 4ccb612a39..b8aa5874d1 100644
--- a/tools/editor/animation_editor.cpp
+++ b/tools/editor/animation_editor.cpp
@@ -961,7 +961,7 @@ void AnimationKeyEditor::_cleanup_animation(Ref<Animation> p_animation) {
Object *obj=NULL;
RES res;
- Node *node = root->get_node_and_resource(animation->track_get_path(i),res);
+ Node *node = root->get_node_and_resource(p_animation->track_get_path(i),res);
if (res.is_valid()) {
obj=res.ptr();
@@ -969,32 +969,32 @@ void AnimationKeyEditor::_cleanup_animation(Ref<Animation> p_animation) {
obj=node;
}
- if (obj && animation->track_get_type(i)==Animation::TYPE_VALUE) {
- valid_type=obj->get_static_property_type(animation->track_get_path(i).get_property(),&prop_exists);
+ if (obj && p_animation->track_get_type(i)==Animation::TYPE_VALUE) {
+ valid_type=obj->get_static_property_type(p_animation->track_get_path(i).get_property(),&prop_exists);
}
if (!obj && cleanup_tracks->is_pressed()) {
- animation->remove_track(i);
+ p_animation->remove_track(i);
i--;
continue;
}
- if (!prop_exists || animation->track_get_type(i)!=Animation::TYPE_VALUE || cleanup_keys->is_pressed()==false)
+ if (!prop_exists || p_animation->track_get_type(i)!=Animation::TYPE_VALUE || cleanup_keys->is_pressed()==false)
continue;
- for(int j=0;j<animation->track_get_key_count(i);j++) {
+ for(int j=0;j<p_animation->track_get_key_count(i);j++) {
- Variant v = animation->track_get_key_value(i,j);
+ Variant v = p_animation->track_get_key_value(i,j);
if (!Variant::can_convert(v.get_type(),valid_type)) {
- animation->track_remove_key(i,j);
+ p_animation->track_remove_key(i,j);
j--;
}
}
- if (animation->track_get_key_count(i)==0 && cleanup_tracks->is_pressed()) {
- animation->remove_track(i);
+ if (p_animation->track_get_key_count(i)==0 && cleanup_tracks->is_pressed()) {
+ p_animation->remove_track(i);
i--;
}
}
diff --git a/tools/editor/array_property_edit.cpp b/tools/editor/array_property_edit.cpp
index 9cd443270b..64a2762095 100644
--- a/tools/editor/array_property_edit.cpp
+++ b/tools/editor/array_property_edit.cpp
@@ -209,6 +209,15 @@ void ArrayPropertyEdit::edit(Object* p_obj,const StringName& p_prop,Variant::Typ
}
+Node *ArrayPropertyEdit::get_node() {
+
+ Object *o = ObjectDB::get_instance(obj);
+ if (!o)
+ return NULL;
+
+ return o->cast_to<Node>();
+}
+
void ArrayPropertyEdit::_bind_methods() {
ObjectTypeDB::bind_method(_MD("_set_size"),&ArrayPropertyEdit::_set_size);
diff --git a/tools/editor/array_property_edit.h b/tools/editor/array_property_edit.h
index acfb8e68ed..948b2a71a3 100644
--- a/tools/editor/array_property_edit.h
+++ b/tools/editor/array_property_edit.h
@@ -30,6 +30,8 @@ public:
void edit(Object* p_obj, const StringName& p_prop, Variant::Type p_deftype);
+ Node *get_node();
+
ArrayPropertyEdit();
};
diff --git a/tools/editor/editor_data.cpp b/tools/editor/editor_data.cpp
index 673ee30adb..e9f9e09acd 100644
--- a/tools/editor/editor_data.cpp
+++ b/tools/editor/editor_data.cpp
@@ -31,6 +31,9 @@
#include "editor_settings.h"
#include "os/dir_access.h"
#include "io/resource_loader.h"
+#include "scene/resources/packed_scene.h"
+#include "os/file_access.h"
+#include "editor_node.h"
void EditorHistory::_cleanup_history() {
@@ -338,6 +341,14 @@ void EditorData::set_editor_states(const Dictionary& p_states) {
}
+void EditorData::notify_edited_scene_changed() {
+
+ for(int i=0;i<editor_plugins.size();i++) {
+
+ editor_plugins[i]->edited_scene_changed();
+ }
+}
+
void EditorData::clear_editor_states() {
for(int i=0;i<editor_plugins.size();i++) {
@@ -485,6 +496,93 @@ void EditorData::remove_scene(int p_idx){
edited_scene.remove(p_idx);
}
+
+bool EditorData::_find_updated_instances(Node* p_root,Node *p_node,Set<String> &checked_paths) {
+
+ if (p_root!=p_node && p_node->get_owner()!=p_root && !p_root->is_editable_instance(p_node->get_owner()))
+ return false;
+
+ Ref<SceneState> ss;
+
+ if (p_node==p_root) {
+ ss=p_node->get_scene_inherited_state();
+ } else if (p_node->get_filename()!=String()){
+ ss=p_node->get_scene_instance_state();
+ }
+
+ if (ss.is_valid()) {
+ String path = ss->get_path();
+
+ if (!checked_paths.has(path)) {
+
+ uint64_t modified_time = FileAccess::get_modified_time(path);
+ if (modified_time!=ss->get_last_modified_time()) {
+ return true; //external scene changed
+ }
+
+ checked_paths.insert(path);
+ }
+
+ }
+
+ for(int i=0;i<p_node->get_child_count();i++) {
+
+ bool found = _find_updated_instances(p_root,p_node->get_child(i),checked_paths);
+ if (found)
+ return true;
+ }
+
+ return false;
+}
+
+
+bool EditorData::check_and_update_scene(int p_idx) {
+
+ ERR_FAIL_INDEX_V(p_idx,edited_scene.size(),false);
+ if (!edited_scene[p_idx].root)
+ return false;
+
+ Set<String> checked_scenes;
+
+
+ bool must_reload = _find_updated_instances(edited_scene[p_idx].root,edited_scene[p_idx].root,checked_scenes);
+
+ if (must_reload) {
+ Ref<PackedScene> pscene;
+ pscene.instance();
+
+ EditorProgress ep("update_scene","Updating Scene",2);
+ ep.step("Storing local changes..",0);
+ //pack first, so it stores diffs to previous version of saved scene
+ Error err = pscene->pack(edited_scene[p_idx].root);
+ ERR_FAIL_COND_V(err!=OK,false);
+ ep.step("Updating scene..",1);
+ Node *new_scene = pscene->instance(true);
+ ERR_FAIL_COND_V(!new_scene,false);
+
+ //transfer selection
+ List<Node*> new_selection;
+ for (List<Node*>::Element *E=edited_scene[p_idx].selection.front();E;E=E->next()) {
+ NodePath p = edited_scene[p_idx].root->get_path_to(E->get());
+ Node *new_node = new_scene->get_node(p);
+ if (new_node)
+ new_selection.push_back(new_node);
+ }
+
+ new_scene->set_filename( edited_scene[p_idx].root->get_filename() );
+
+ memdelete(edited_scene[p_idx].root);
+ edited_scene[p_idx].root=new_scene;
+ edited_scene[p_idx].selection=new_selection;
+
+ return true;
+
+ }
+
+ return false;
+
+}
+
int EditorData::get_edited_scene() const {
return current_edited_scene;
diff --git a/tools/editor/editor_data.h b/tools/editor/editor_data.h
index c5ee83ae63..51af7d41bd 100644
--- a/tools/editor/editor_data.h
+++ b/tools/editor/editor_data.h
@@ -144,6 +144,8 @@ private:
Vector<EditedScene> edited_scene;
int current_edited_scene;
+ bool _find_updated_instances(Node* p_root,Node *p_node,Set<String> &checked_paths);
+
public:
EditorPlugin* get_editor(Object *p_object);
@@ -193,6 +195,7 @@ public:
void clear_edited_scenes();
void set_edited_scene_live_edit_root(const NodePath& p_root);
NodePath get_edited_scene_live_edit_root();
+ bool check_and_update_scene(int p_idx);
void set_plugin_window_layout(Ref<ConfigFile> p_layout);
@@ -200,6 +203,7 @@ public:
void save_edited_scene_state(EditorSelection *p_selection,EditorHistory *p_history,const Dictionary& p_custom);
Dictionary restore_edited_scene_state(EditorSelection *p_selection, EditorHistory *p_history);
+ void notify_edited_scene_changed();
EditorData();
diff --git a/tools/editor/editor_dir_dialog.cpp b/tools/editor/editor_dir_dialog.cpp
index a8421acff8..1f3b5eed65 100644
--- a/tools/editor/editor_dir_dialog.cpp
+++ b/tools/editor/editor_dir_dialog.cpp
@@ -205,31 +205,36 @@ void EditorDirDialog::_bind_methods() {
EditorDirDialog::EditorDirDialog() {
+ updating=false;
+
set_title("Choose a Directory");
+ set_hide_on_ok(false);
+
tree = memnew( Tree );
add_child(tree);
set_child_rect(tree);
- updating=false;
- get_ok()->set_text("Choose");
- set_hide_on_ok(false);
-
-
+ tree->connect("item_activated",this,"_ok");
makedir = add_button("Create Folder",OS::get_singleton()->get_swap_ok_cancel()?true:false,"makedir");
makedir->connect("pressed",this,"_make_dir");
makedialog = memnew( ConfirmationDialog );
makedialog->set_title("Create Folder");
+ add_child(makedialog);
+
VBoxContainer *makevb= memnew( VBoxContainer );
makedialog->add_child(makevb);
makedialog->set_child_rect(makevb);
+
makedirname = memnew( LineEdit );
makevb->add_margin_child("Name:",makedirname);
- add_child(makedialog);
makedialog->register_text_enter(makedirname);
makedialog->connect("confirmed",this,"_make_dir_confirm");
+
mkdirerr = memnew( AcceptDialog );
mkdirerr->set_text("Could not create folder.");
add_child(mkdirerr);
+ get_ok()->set_text("Choose");
+
}
diff --git a/tools/editor/editor_file_dialog.cpp b/tools/editor/editor_file_dialog.cpp
index 66b38e2f0c..61ad7b6cbb 100644
--- a/tools/editor/editor_file_dialog.cpp
+++ b/tools/editor/editor_file_dialog.cpp
@@ -6,6 +6,8 @@
#include "editor_resource_preview.h"
#include "editor_settings.h"
#include "scene/gui/margin_container.h"
+#include "os/file_access.h"
+
EditorFileDialog::GetIconFunc EditorFileDialog::get_icon_func=NULL;
EditorFileDialog::GetIconFunc EditorFileDialog::get_large_icon_func=NULL;
@@ -34,8 +36,7 @@ void EditorFileDialog::_notification(int p_what) {
fav_down->set_icon(get_icon("MoveDown","EditorIcons"));
fav_rm->set_icon(get_icon("RemoveSmall","EditorIcons"));
- }
- if (p_what==NOTIFICATION_PROCESS) {
+ } else if (p_what==NOTIFICATION_PROCESS) {
if (preview_waiting) {
preview_wheel_timeout-=get_process_delta_time();
@@ -48,12 +49,17 @@ void EditorFileDialog::_notification(int p_what) {
preview_wheel_timeout=0.1;
}
}
- }
-
- if (p_what==NOTIFICATION_DRAW) {
+ } else if (p_what==NOTIFICATION_DRAW) {
//RID ci = get_canvas_item();
//get_stylebox("panel","PopupMenu")->draw(ci,Rect2(Point2(),get_size()));
+ } else if (p_what==EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED) {
+
+ bool show_hidden = EditorSettings::get_singleton()->get("file_dialog/show_hidden_files");
+
+ if (show_hidden != show_hidden_files) {
+ set_show_hidden_files(show_hidden);
+ }
}
}
@@ -190,6 +196,9 @@ void EditorFileDialog::_thumbnail_done(const String& p_path,const Ref<Texture>&
void EditorFileDialog::_request_single_thumbnail(const String& p_path) {
+ if (!FileAccess::exists(p_path))
+ return;
+
EditorResourcePreview::get_singleton()->queue_resource_preview(p_path,this,"_thumbnail_done",p_path);
//print_line("want file "+p_path);
set_process(true);
@@ -431,6 +440,8 @@ void EditorFileDialog::update_file_list() {
}
+ String cdir = dir_access->get_current_dir();
+ bool skip_pp = access==ACCESS_RESOURCES && cdir=="res://";
dir_access->list_dir_begin();
@@ -451,7 +462,7 @@ void EditorFileDialog::update_file_list() {
if (show_hidden || !ishidden) {
if (!isdir)
files.push_back(item);
- else
+ else if (item!=".." || !skip_pp)
dirs.push_back(item);
}
}
@@ -1013,7 +1024,7 @@ void EditorFileDialog::_go_forward(){
}
-bool EditorFileDialog::default_show_hidden_files=true;
+bool EditorFileDialog::default_show_hidden_files=false;
void EditorFileDialog::set_display_mode(DisplayMode p_mode) {
@@ -1142,7 +1153,7 @@ void EditorFileDialog::_save_to_recent() {
EditorFileDialog::EditorFileDialog() {
- show_hidden_files=true;
+ show_hidden_files=default_show_hidden_files;
display_mode=DISPLAY_THUMBNAILS;
local_history_pos=0;
diff --git a/tools/editor/editor_import_export.cpp b/tools/editor/editor_import_export.cpp
index a4906c1b3a..b6c68d05be 100644
--- a/tools/editor/editor_import_export.cpp
+++ b/tools/editor/editor_import_export.cpp
@@ -41,6 +41,8 @@
#include "io/md5.h"
#include "io_plugins/editor_texture_import_plugin.h"
#include "tools/editor/plugins/script_editor_plugin.h"
+#include "io/zip_io.h"
+
String EditorImportPlugin::validate_source_path(const String& p_path) {
@@ -399,6 +401,40 @@ Vector<StringName> EditorExportPlatform::get_dependencies(bool p_bundles) const
}
+String EditorExportPlatform::find_export_template(String template_file_name, String *err) const {
+ String user_file = EditorSettings::get_singleton()->get_settings_path()
+ +"/templates/"+template_file_name;
+ String system_file=OS::get_singleton()->get_installed_templates_path();
+ bool has_system_path=(system_file!="");
+ system_file+=template_file_name;
+
+ // Prefer user file
+ if (FileAccess::exists(user_file)) {
+ return user_file;
+ }
+
+ // Now check system file
+ if (has_system_path) {
+ if (FileAccess::exists(system_file)) {
+ return system_file;
+ }
+ }
+
+ // Not found
+ if (err) {
+ *err+="No export template found at \""+user_file+"\"";
+ if (has_system_path)
+ *err+="\n or \""+system_file+"\".";
+ else
+ *err+=".";
+ }
+ return "";
+}
+
+bool EditorExportPlatform::exists_export_template(String template_file_name, String *err) const {
+ return find_export_template(template_file_name,err)!="";
+}
+
///////////////////////////////////////
@@ -1043,6 +1079,61 @@ Error EditorExportPlatform::save_pack_file(void *p_userdata,const String& p_path
}
+Error EditorExportPlatform::save_zip_file(void *p_userdata,const String& p_path, const Vector<uint8_t>& p_data,int p_file,int p_total) {
+
+
+ String path=p_path.replace_first("res://","");
+
+ ZipData *zd = (ZipData*)p_userdata;
+
+ zipFile zip=(zipFile)zd->zip;
+
+ zipOpenNewFileInZip(zip,
+ path.utf8().get_data(),
+ NULL,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ NULL,
+ Z_DEFLATED,
+ Z_DEFAULT_COMPRESSION);
+
+ zipWriteInFileInZip(zip,p_data.ptr(),p_data.size());
+ zipCloseFileInZip(zip);
+
+ zd->ep->step("Storing File: "+p_path,2+p_file*100/p_total);
+ zd->count++;
+ return OK;
+
+}
+
+Error EditorExportPlatform::save_zip(const String& p_path, bool p_make_bundles) {
+
+ EditorProgress ep("savezip","Packing",102);
+
+ //FileAccess *tmp = FileAccess::open(tmppath,FileAccess::WRITE);
+
+ FileAccess *src_f;
+ zlib_filefunc_def io = zipio_create_io_from_file(&src_f);
+ zipFile zip=zipOpen2(p_path.utf8().get_data(),APPEND_STATUS_CREATE,NULL,&io);
+
+ ZipData zd;
+ zd.count=0;
+ zd.ep=&ep;
+ zd.zip=zip;
+
+
+ Error err = export_project_files(save_zip_file,&zd,p_make_bundles);
+
+ zipClose(zip,NULL);
+
+ if (err)
+ return err;
+
+
+}
+
Error EditorExportPlatform::save_pack(FileAccess *dst,bool p_make_bundles, int p_alignment) {
EditorProgress ep("savepack","Packing",102);
@@ -1131,19 +1222,32 @@ Error EditorExportPlatformPC::export_project(const String& p_path, bool p_debug,
ep.step("Setting Up..",0);
- String exe_path = EditorSettings::get_singleton()->get_settings_path()+"/templates/";
- if (use64) {
- if (p_debug)
- exe_path=custom_debug_binary!=""?custom_debug_binary:exe_path+debug_binary64;
- else
- exe_path=custom_release_binary!=""?custom_release_binary:exe_path+release_binary64;
- } else {
+ String exe_path="";
- if (p_debug)
- exe_path=custom_debug_binary!=""?custom_debug_binary:exe_path+debug_binary32;
- else
- exe_path=custom_release_binary!=""?custom_release_binary:exe_path+release_binary32;
+ if (p_debug)
+ exe_path=custom_debug_binary;
+ else
+ exe_path=custom_release_binary;
+ if (exe_path=="") {
+ String fname;
+ if (use64) {
+ if (p_debug)
+ fname=debug_binary64;
+ else
+ fname=release_binary64;
+ } else {
+ if (p_debug)
+ fname=debug_binary32;
+ else
+ fname=release_binary32;
+ }
+ String err="";
+ exe_path=find_export_template(fname,&err);
+ if (exe_path=="") {
+ EditorNode::add_io_error(err);
+ return ERR_FILE_CANT_READ;
+ }
}
FileAccess *src_exe=FileAccess::open(exe_path,FileAccess::READ);
@@ -1207,14 +1311,12 @@ bool EditorExportPlatformPC::can_export(String *r_error) const {
String err;
bool valid=true;
- String exe_path = EditorSettings::get_singleton()->get_settings_path()+"/templates/";
-
- if (use64 && (!FileAccess::exists(exe_path+debug_binary64) || !FileAccess::exists(exe_path+release_binary64))) {
+ if (use64 && (!exists_export_template(debug_binary64)) || !exists_export_template(release_binary64)) {
valid=false;
err="No 64 bits export templates found.\nDownload and install export templates.\n";
}
- if (!use64 && (!FileAccess::exists(exe_path+debug_binary32) || !FileAccess::exists(exe_path+release_binary32))) {
+ if (!use64 && (!exists_export_template(debug_binary32) || !exists_export_template(release_binary32))) {
valid=false;
err="No 32 bits export templates found.\nDownload and install export templates.\n";
}
diff --git a/tools/editor/editor_import_export.h b/tools/editor/editor_import_export.h
index e3ef3a592c..940a41bafd 100644
--- a/tools/editor/editor_import_export.h
+++ b/tools/editor/editor_import_export.h
@@ -33,6 +33,7 @@
#include "scene/main/node.h"
#include "scene/resources/texture.h"
+
class EditorExportPlatform;
class FileAccess;
class EditorProgress;
@@ -86,6 +87,8 @@ protected:
Vector<uint8_t> get_exported_file_default(String& p_fname) const;
virtual Vector<uint8_t> get_exported_file(String& p_fname) const;
virtual Vector<StringName> get_dependencies(bool p_bundles) const;
+ virtual String find_export_template(String template_file_name, String *err=NULL) const;
+ virtual bool exists_export_template(String template_file_name, String *err=NULL) const;
struct TempData {
@@ -105,8 +108,17 @@ protected:
};
+ struct ZipData {
+
+ void* zip;
+ EditorProgress *ep;
+ int count;
+
+ };
+
void gen_export_flags(Vector<String> &r_flags, int p_flags);
static Error save_pack_file(void *p_userdata,const String& p_path, const Vector<uint8_t>& p_data,int p_file,int p_total);
+ static Error save_zip_file(void *p_userdata,const String& p_path, const Vector<uint8_t>& p_data,int p_file,int p_total);
public:
@@ -132,6 +144,8 @@ public:
Error export_project_files(EditorExportSaveFunction p_func, void* p_udata,bool p_make_bundles);
Error save_pack(FileAccess *p_where, bool p_make_bundles=false, int p_alignment = 1);
+ Error save_zip(const String& p_path, bool p_make_bundles=false);
+
virtual String get_name() const =0;
virtual ImageCompression get_image_compression() const=0;
virtual Ref<Texture> get_logo() const =0;
diff --git a/tools/editor/editor_layout_dialog.cpp b/tools/editor/editor_layout_dialog.cpp
new file mode 100644
index 0000000000..d3a60f90dd
--- /dev/null
+++ b/tools/editor/editor_layout_dialog.cpp
@@ -0,0 +1,65 @@
+/*************************************************************************/
+/* editor_layout_dialog.cpp */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* http://www.godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
+
+#include "editor_layout_dialog.h"
+#include "object_type_db.h"
+
+void EditorLayoutDialog::clear_layout_name() {
+
+ layout_name->clear();
+}
+
+void EditorLayoutDialog::_post_popup() {
+
+ ConfirmationDialog::_post_popup();
+ layout_name->grab_focus();
+}
+
+void EditorLayoutDialog::ok_pressed() {
+
+ if (layout_name->get_text()!="") {
+ emit_signal("layout_selected", layout_name->get_text());
+ }
+}
+
+void EditorLayoutDialog::_bind_methods() {
+
+ ADD_SIGNAL(MethodInfo("layout_selected",PropertyInfo( Variant::STRING,"layout_name")));
+}
+
+EditorLayoutDialog::EditorLayoutDialog()
+{
+
+ layout_name = memnew( LineEdit );
+ layout_name->set_margin(MARGIN_TOP,5);
+ layout_name->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_BEGIN,5);
+ layout_name->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_END,5);
+ add_child(layout_name);
+ move_child(layout_name, get_label()->get_index()+1);
+}
diff --git a/tools/editor/editor_layout_dialog.h b/tools/editor/editor_layout_dialog.h
new file mode 100644
index 0000000000..be9644f8ae
--- /dev/null
+++ b/tools/editor/editor_layout_dialog.h
@@ -0,0 +1,54 @@
+/*************************************************************************/
+/* editor_layout_dialog.h */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* http://www.godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
+
+#ifndef EDITOR_LAYOUT_DIALOG_H
+#define EDITOR_LAYOUT_DIALOG_H
+
+#include "scene/gui/dialogs.h"
+#include "scene/gui/line_edit.h"
+
+class EditorLayoutDialog : public ConfirmationDialog {
+
+ OBJ_TYPE( EditorLayoutDialog, ConfirmationDialog );
+
+ LineEdit *layout_name;
+
+protected:
+
+ static void _bind_methods();
+ virtual void ok_pressed();
+ virtual void _post_popup();
+
+public:
+ void clear_layout_name();
+
+ EditorLayoutDialog();
+};
+
+#endif // EDITOR_LAYOUT_DIALOG_H
diff --git a/tools/editor/editor_node.cpp b/tools/editor/editor_node.cpp
index 8b04e4f77e..f7ad05d05a 100644
--- a/tools/editor/editor_node.cpp
+++ b/tools/editor/editor_node.cpp
@@ -543,7 +543,6 @@ void EditorNode::save_resource_as(const Ref<Resource>& p_resource) {
}
-
void EditorNode::_menu_option(int p_option) {
_menu_option_confirm(p_option,false);
@@ -956,7 +955,23 @@ void EditorNode::_save_scene(String p_file) {
_set_scene_metadata();
- Ref<PackedScene> sdata = memnew( PackedScene );
+
+
+ Ref<PackedScene> sdata;
+
+ if (ResourceCache::has(p_file)) {
+ // something may be referencing this resource and we are good with that.
+ // we must update it, but also let the previous scene state go, as
+ // old version still work for referencing changes in instanced or inherited scenes
+
+ sdata = Ref<PackedScene>( ResourceCache::get(p_file)->cast_to<PackedScene>() );
+ if (sdata.is_valid())
+ sdata->recreate_state();
+ else
+ sdata.instance();
+ } else {
+ sdata.instance();
+ }
Error err = sdata->pack(scene);
@@ -1410,6 +1425,69 @@ void EditorNode::_dialog_action(String p_file) {
save_resource_in_path(current_res,p_file);
} break;
+ case SETTINGS_LAYOUT_SAVE: {
+
+ if (p_file.empty())
+ return;
+
+ if (p_file=="Default") {
+ confirm_error->set_text("Cannot overwrite default layout!");
+ confirm_error->popup_centered_minsize();
+ return;
+ }
+
+ Ref<ConfigFile> config;
+ config.instance();
+ Error err = config->load(EditorSettings::get_singleton()->get_settings_path().plus_file("editor_layouts.cfg"));
+ if (err!=OK && err!=ERR_FILE_NOT_FOUND) {
+ return; //no config
+ }
+
+ _save_docks_to_config(config, p_file);
+
+ config->save(EditorSettings::get_singleton()->get_settings_path().plus_file("editor_layouts.cfg"));
+
+ layout_dialog->hide();
+ _update_layouts_menu();
+
+ } break;
+ case SETTINGS_LAYOUT_DELETE: {
+
+ if (p_file.empty())
+ return;
+
+ if (p_file=="Default") {
+ confirm_error->set_text("Cannot delete default layout!");
+ confirm_error->popup_centered_minsize();
+ return;
+ }
+
+ Ref<ConfigFile> config;
+ config.instance();
+ Error err = config->load(EditorSettings::get_singleton()->get_settings_path().plus_file("editor_layouts.cfg"));
+ if (err!=OK) {
+ return; //no config
+ }
+
+ if (!config->has_section(p_file)) {
+ confirm_error->set_text("Layout name not found!");
+ confirm_error->popup_centered_minsize();
+ return;
+ }
+
+ // erase
+ List<String> keys;
+ config->get_section_keys(p_file, &keys);
+ for (List<String>::Element *E=keys.front();E;E=E->next()) {
+ config->set_value(p_file, E->get(), Variant());
+ }
+
+ config->save(EditorSettings::get_singleton()->get_settings_path().plus_file("editor_layouts.cfg"));
+
+ layout_dialog->hide();
+ _update_layouts_menu();
+
+ } break;
default: { //save scene?
if (file->get_mode()==FileDialog::MODE_SAVE_FILE) {
@@ -1754,7 +1832,7 @@ void EditorNode::_run(bool p_current,const String& p_custom) {
}
play_button->set_pressed(false);
- play_button->set_icon(gui_base->get_icon("Play","EditorIcons"));
+ play_button->set_icon(gui_base->get_icon("MainPlay","EditorIcons"));
//pause_button->set_pressed(false);
play_scene_button->set_pressed(false);
play_scene_button->set_icon(gui_base->get_icon("PlayScene","EditorIcons"));
@@ -2626,7 +2704,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
editor_run.stop();
play_button->set_pressed(false);
- play_button->set_icon(gui_base->get_icon("Play","EditorIcons"));
+ play_button->set_icon(gui_base->get_icon("MainPlay","EditorIcons"));
play_scene_button->set_pressed(false);
play_scene_button->set_icon(gui_base->get_icon("PlayScene","EditorIcons"));
//pause_button->set_pressed(false);
@@ -3337,6 +3415,8 @@ void EditorNode::_set_main_scene_state(Dictionary p_state) {
//changing_scene=true; //avoid script change from opening editor
ScriptEditor::get_singleton()->get_debugger()->update_live_edit_root();
ScriptEditor::get_singleton()->set_scene_root_script( editor_data.get_scene_root_script(editor_data.get_edited_scene()) );
+ editor_data.notify_edited_scene_changed();
+
//changing_scene=false;
}
@@ -3350,8 +3430,18 @@ void EditorNode::set_current_version(uint64_t p_version) {
bool EditorNode::is_changing_scene() const {
return changing_scene;
}
+
+void EditorNode::_clear_undo_history() {
+
+ get_undo_redo()->clear_history();
+}
+
void EditorNode::set_current_scene(int p_idx) {
+ if (editor_data.check_and_update_scene(p_idx)) {
+ call_deferred("_clear_undo_history");
+ }
+
changing_scene=true;
editor_data.save_edited_scene_state(editor_selection,&editor_history,_get_main_scene_state());
@@ -4033,6 +4123,9 @@ void EditorNode::_bind_methods() {
ObjectTypeDB::bind_method("_dock_move_left",&EditorNode::_dock_move_left);
ObjectTypeDB::bind_method("_dock_move_right",&EditorNode::_dock_move_right);
+ ObjectTypeDB::bind_method("_layout_menu_option",&EditorNode::_layout_menu_option);
+ ObjectTypeDB::bind_method("_layout_dialog_action",&EditorNode::_dialog_action);
+
ObjectTypeDB::bind_method("set_current_scene",&EditorNode::set_current_scene);
ObjectTypeDB::bind_method("set_current_version",&EditorNode::set_current_version);
ObjectTypeDB::bind_method("_scene_tab_changed",&EditorNode::_scene_tab_changed);
@@ -4046,6 +4139,7 @@ void EditorNode::_bind_methods() {
ObjectTypeDB::bind_method("_toggle_search_bar",&EditorNode::_toggle_search_bar);
ObjectTypeDB::bind_method("_clear_search_box",&EditorNode::_clear_search_box);
+ ObjectTypeDB::bind_method("_clear_undo_history",&EditorNode::_clear_undo_history);
ObjectTypeDB::bind_method(_MD("add_editor_import_plugin", "plugin"), &EditorNode::add_editor_import_plugin);
ObjectTypeDB::bind_method(_MD("remove_editor_import_plugin", "plugin"), &EditorNode::remove_editor_import_plugin);
@@ -4327,6 +4421,15 @@ void EditorNode::_save_docks() {
Ref<ConfigFile> config;
config.instance();
+ _save_docks_to_config(config, "docks");
+ editor_data.get_plugin_window_layout(config);
+
+ config->save(EditorSettings::get_singleton()->get_project_settings_path().plus_file("editor_layout.cfg"));
+
+}
+
+void EditorNode::_save_docks_to_config(Ref<ConfigFile> p_layout, const String& p_section) {
+
for(int i=0;i<DOCK_SLOT_MAX;i++) {
String names;
for(int j=0;j<dock_slot[i]->get_tab_count();j++) {
@@ -4337,7 +4440,7 @@ void EditorNode::_save_docks() {
}
if (names!="") {
- config->set_value("docks","dock_"+itos(i+1),names);
+ p_layout->set_value(p_section,"dock_"+itos(i+1),names);
}
}
@@ -4351,7 +4454,7 @@ void EditorNode::_save_docks() {
for(int i=0;i<DOCK_SLOT_MAX/2;i++) {
if (splits[i]->is_visible()) {
- config->set_value("docks","dock_split_"+itos(i+1),splits[i]->get_split_offset());
+ p_layout->set_value(p_section,"dock_split_"+itos(i+1),splits[i]->get_split_offset());
}
}
@@ -4365,13 +4468,9 @@ void EditorNode::_save_docks() {
for(int i=0;i<4;i++) {
- config->set_value("docks","dock_hsplit_"+itos(i+1),h_splits[i]->get_split_offset());
+ p_layout->set_value(p_section,"dock_hsplit_"+itos(i+1),h_splits[i]->get_split_offset());
}
- editor_data.get_plugin_window_layout(config);
-
- config->save(EditorSettings::get_singleton()->get_project_settings_path().plus_file("editor_layout.cfg"));
-
}
void EditorNode::save_layout() {
@@ -4393,12 +4492,19 @@ void EditorNode::_load_docks() {
return; //no config
}
+ _load_docks_from_config(config, "docks");
+ editor_data.set_plugin_window_layout(config);
+
+}
+
+void EditorNode::_load_docks_from_config(Ref<ConfigFile> p_layout, const String& p_section) {
+
for(int i=0;i<DOCK_SLOT_MAX;i++) {
- if (!config->has_section_key("docks","dock_"+itos(i+1)))
+ if (!p_layout->has_section_key(p_section,"dock_"+itos(i+1)))
continue;
- Vector<String> names = String(config->get_value("docks","dock_"+itos(i+1))).split(",");
+ Vector<String> names = String(p_layout->get_value(p_section,"dock_"+itos(i+1))).split(",");
for(int j=0;j<names.size();j++) {
@@ -4418,7 +4524,7 @@ void EditorNode::_load_docks() {
if (atidx==-1) //well, it's not anywhere
continue;
- if (atidx==j) {
+ if (atidx==i) {
node->raise();
continue;
}
@@ -4433,7 +4539,6 @@ void EditorNode::_load_docks() {
dock_slot[i]->add_child(node);
dock_slot[i]->show();
}
-
}
VSplitContainer*splits[DOCK_SLOT_MAX/2]={
@@ -4445,14 +4550,14 @@ void EditorNode::_load_docks() {
for(int i=0;i<DOCK_SLOT_MAX/2;i++) {
- if (!config->has_section_key("docks","dock_split_"+itos(i+1)))
+ if (!p_layout->has_section_key(p_section,"dock_split_"+itos(i+1)))
continue;
- int ofs = config->get_value("docks","dock_split_"+itos(i+1));
+ int ofs = p_layout->get_value(p_section,"dock_split_"+itos(i+1));
splits[i]->set_split_offset(ofs);
}
- HSplitContainer *h_splits[4]={
+ HSplitContainer*h_splits[4]={
left_l_hsplit,
left_r_hsplit,
main_hsplit,
@@ -4460,9 +4565,9 @@ void EditorNode::_load_docks() {
};
for(int i=0;i<4;i++) {
- if (!config->has_section_key("docks","dock_hsplit_"+itos(i+1)))
+ if (!p_layout->has_section_key(p_section,"dock_hsplit_"+itos(i+1)))
continue;
- int ofs = config->get_value("docks","dock_hsplit_"+itos(i+1));
+ int ofs = p_layout->get_value(p_section,"dock_hsplit_"+itos(i+1));
h_splits[i]->set_split_offset(ofs);
}
@@ -4480,8 +4585,77 @@ void EditorNode::_load_docks() {
dock_slot[i]->set_current_tab(0);
}
}
+}
+
+
+void EditorNode::_update_layouts_menu() {
+
+ editor_layouts->clear();
+ editor_layouts->set_size(Vector2());
+ editor_layouts->add_item("Save Layout", SETTINGS_LAYOUT_SAVE);
+ editor_layouts->add_item("Delete Layout", SETTINGS_LAYOUT_DELETE);
+ editor_layouts->add_separator();
+ editor_layouts->add_item("Default", SETTINGS_LAYOUT_DEFAULT);
+
+ Ref<ConfigFile> config;
+ config.instance();
+ Error err = config->load(EditorSettings::get_singleton()->get_settings_path().plus_file("editor_layouts.cfg"));
+ if (err!=OK) {
+ return; //no config
+ }
- editor_data.set_plugin_window_layout(config);
+ List<String> layouts;
+ config.ptr()->get_sections(&layouts);
+
+ for (List<String>::Element *E=layouts.front();E;E=E->next()) {
+
+ String layout=E->get();
+
+ if (layout!="Default")
+ editor_layouts->add_item(layout);
+ }
+
+}
+
+void EditorNode::_layout_menu_option(int p_id) {
+
+ switch (p_id) {
+
+ case SETTINGS_LAYOUT_SAVE: {
+
+ current_option=p_id;
+ layout_dialog->clear_layout_name();
+ layout_dialog->set_title("Save Layout");
+ layout_dialog->get_ok()->set_text("Save");
+ layout_dialog->popup_centered();
+ } break;
+ case SETTINGS_LAYOUT_DELETE: {
+
+ current_option=p_id;
+ layout_dialog->clear_layout_name();
+ layout_dialog->set_title("Delete Layout");
+ layout_dialog->get_ok()->set_text("Delete");
+ layout_dialog->popup_centered();
+ } break;
+ case SETTINGS_LAYOUT_DEFAULT: {
+
+ _load_docks_from_config(default_theme, "docks");
+ _save_docks();
+ } break;
+ default: {
+
+ Ref<ConfigFile> config;
+ config.instance();
+ Error err = config->load(EditorSettings::get_singleton()->get_settings_path().plus_file("editor_layouts.cfg"));
+ if (err!=OK) {
+ return; //no config
+ }
+
+ _load_docks_from_config(config, editor_layouts->get_item_text(p_id));
+ _save_docks();
+
+ }
+ }
}
@@ -4594,6 +4768,7 @@ EditorNode::EditorNode() {
ResourceLoader::set_abort_on_missing_resources(false);
FileDialog::set_default_show_hidden_files(EditorSettings::get_singleton()->get("file_dialog/show_hidden_files"));
+ EditorFileDialog::set_default_show_hidden_files(EditorSettings::get_singleton()->get("file_dialog/show_hidden_files"));
ResourceLoader::set_error_notify_func(this,_load_error_notify);
ResourceLoader::set_dependency_error_notify_func(this,_dependency_error_report);
@@ -5236,17 +5411,29 @@ EditorNode::EditorNode() {
right_menu_hb->add_child( settings_menu );
p=settings_menu->get_popup();
-
//p->add_item("Export Settings",SETTINGS_EXPORT_PREFERENCES);
p->add_item("Editor Settings",SETTINGS_PREFERENCES);
//p->add_item("Optimization Presets",SETTINGS_OPTIMIZED_PRESETS);
p->add_separator();
+ editor_layouts = memnew( PopupMenu );
+ editor_layouts->set_name("Layouts");
+ p->add_child(editor_layouts);
+ editor_layouts->connect("item_pressed",this,"_layout_menu_option");
+ p->add_submenu_item("Editor Layout", "Layouts");
+ p->add_separator();
p->add_check_item("Show Animation",SETTINGS_SHOW_ANIMATION,KEY_MASK_CMD+KEY_N);
p->add_separator();
p->add_item("Install Export Templates",SETTINGS_LOAD_EXPORT_TEMPLATES);
p->add_separator();
p->add_item("About",SETTINGS_ABOUT);
+ layout_dialog = memnew( EditorLayoutDialog );
+ gui_base->add_child(layout_dialog);
+ layout_dialog->set_hide_on_ok(false);
+ layout_dialog->set_size(Size2(175, 70));
+ confirm_error = memnew( AcceptDialog );
+ layout_dialog->add_child(confirm_error);
+ layout_dialog->connect("layout_selected", this,"_layout_dialog_action");
sources_button = memnew( ToolButton );
right_menu_hb->add_child(sources_button);
@@ -5433,7 +5620,19 @@ EditorNode::EditorNode() {
scenes_dock->connect("open",this,"open_request");
scenes_dock->connect("instance",this,"_instance_request");
+ const String docks_section = "docks";
+
+ default_theme.instance();
+ default_theme->set_value(docks_section, "dock_3", "Scene");
+ default_theme->set_value(docks_section, "dock_4", "FileSystem");
+ default_theme->set_value(docks_section, "dock_5", "Inspector");
+
+ for(int i=0;i<DOCK_SLOT_MAX/2;i++)
+ default_theme->set_value(docks_section, "dock_hsplit_"+itos(i+1), 0);
+ for(int i=0;i<DOCK_SLOT_MAX/2;i++)
+ default_theme->set_value(docks_section, "dock_split_"+itos(i+1), 0);
+ _update_layouts_menu();
log = memnew( EditorLog );
center_split->add_child(log);
@@ -5742,7 +5941,7 @@ EditorNode::EditorNode() {
resource_preview->add_preview_generator( Ref<EditorMeshPreviewPlugin>( memnew(EditorMeshPreviewPlugin )));
circle_step_msec=OS::get_singleton()->get_ticks_msec();
- circle_step_frame=OS::get_singleton()->get_frames_drawn();;
+ circle_step_frame=OS::get_singleton()->get_frames_drawn();
circle_step=0;
_rebuild_import_menu();
diff --git a/tools/editor/editor_node.h b/tools/editor/editor_node.h
index 5cc9d9eaa2..c4429f943b 100644
--- a/tools/editor/editor_node.h
+++ b/tools/editor/editor_node.h
@@ -76,6 +76,7 @@
#include "editor_reimport_dialog.h"
#include "import_settings.h"
#include "tools/editor/editor_plugin.h"
+#include "tools/editor/editor_layout_dialog.h"
#include "fileserver/editor_file_server.h"
#include "editor_resource_preview.h"
@@ -167,6 +168,9 @@ class EditorNode : public Node {
SETTINGS_EXPORT_PREFERENCES,
SETTINGS_PREFERENCES,
SETTINGS_OPTIMIZED_PRESETS,
+ SETTINGS_LAYOUT_SAVE,
+ SETTINGS_LAYOUT_DELETE,
+ SETTINGS_LAYOUT_DEFAULT,
SETTINGS_SHOW_ANIMATION,
SETTINGS_LOAD_EXPORT_TEMPLATES,
SETTINGS_HELP,
@@ -284,6 +288,11 @@ class EditorNode : public Node {
AcceptDialog *about;
AcceptDialog *warning;
+ Ref<ConfigFile> default_theme;
+ PopupMenu *editor_layouts;
+ EditorLayoutDialog *layout_dialog;
+ AcceptDialog *confirm_error;
+
//OptimizedPresetsDialog *optimized_presets;
EditorSettingsDialog *settings_config_dialog;
RunSettingsDialog *run_settings_dialog;
@@ -523,13 +532,19 @@ class EditorNode : public Node {
void _save_docks();
void _load_docks();
+ void _save_docks_to_config(Ref<ConfigFile> p_layout, const String& p_section);
+ void _load_docks_from_config(Ref<ConfigFile> p_layout, const String& p_section);
+
+ void _update_layouts_menu();
+ void _layout_menu_option(int p_idx);
void _toggle_search_bar(bool p_pressed);
void _clear_search_box();
+ void _clear_undo_history();
protected:
void _notification(int p_what);
- static void _bind_methods();
+ static void _bind_methods();
public:
enum EditorTable {
diff --git a/tools/editor/editor_plugin.h b/tools/editor/editor_plugin.h
index 0f3a1e2e3c..6850be2eaa 100644
--- a/tools/editor/editor_plugin.h
+++ b/tools/editor/editor_plugin.h
@@ -92,6 +92,7 @@ public:
virtual bool get_remove_list(List<Node*> *p_list);
virtual void set_window_layout(Ref<ConfigFile> p_layout);
virtual void get_window_layout(Ref<ConfigFile> p_layout);
+ virtual void edited_scene_changed(){}; // if changes are pending in editor, apply them
virtual void restore_global_state();
virtual void save_global_state();
diff --git a/tools/editor/editor_settings.h b/tools/editor/editor_settings.h
index 4ba940cd1c..bdfa5160d6 100644
--- a/tools/editor/editor_settings.h
+++ b/tools/editor/editor_settings.h
@@ -107,6 +107,7 @@ public:
static EditorSettings *get_singleton();
void erase(String p_var);
String get_settings_path() const;
+ String get_global_settings_path() const;
String get_project_settings_path() const;
const Map<String,Plugin>& get_plugins() const { return plugins; }
diff --git a/tools/editor/editor_sub_scene.cpp b/tools/editor/editor_sub_scene.cpp
index 2a6eba2554..d7d79e5cc7 100644
--- a/tools/editor/editor_sub_scene.cpp
+++ b/tools/editor/editor_sub_scene.cpp
@@ -196,7 +196,11 @@ void EditorSubScene::_bind_methods() {
EditorSubScene::EditorSubScene() {
+ scene=NULL;
+
set_title("Select Sub-Scene..");
+ set_hide_on_ok(false);
+
VBoxContainer *vb = memnew( VBoxContainer );
add_child(vb);
set_child_rect(vb);
@@ -211,9 +215,11 @@ EditorSubScene::EditorSubScene() {
hb->add_child(b);
b->connect("pressed",this,"_path_browse");
vb->add_margin_child("Scene Path:",hb);
+
tree = memnew( Tree );
tree->set_v_size_flags(SIZE_EXPAND_FILL);
- vb->add_margin_child("Import From Node:",tree)->set_v_size_flags(SIZE_EXPAND_FILL);
+ vb->add_margin_child("Import From Node:",tree,true);
+ tree->connect("item_activated",this,"_ok");
file_dialog = memnew( EditorFileDialog );
List<String> extensions;
@@ -228,8 +234,4 @@ EditorSubScene::EditorSubScene() {
add_child(file_dialog);
file_dialog->connect("file_selected",this,"_path_selected");
- scene=NULL;
-
- set_hide_on_ok(false);
-
}
diff --git a/tools/editor/groups_editor.cpp b/tools/editor/groups_editor.cpp
index 2e82854014..bb5e93da34 100644
--- a/tools/editor/groups_editor.cpp
+++ b/tools/editor/groups_editor.cpp
@@ -27,151 +27,130 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "groups_editor.h"
-#include "scene/gui/box_container.h"
+#include "scene/gui/box_container.h"
#include "scene/gui/label.h"
+void GroupsEditor::_add_group(const String& p_group) {
-#include "print_string.h"
+ if (!node)
+ return;
-void GroupsEditor::_notification(int p_what) {
-
- if (p_what==NOTIFICATION_ENTER_TREE) {
- connect("confirmed", this,"_close");
- }
- if (p_what==NOTIFICATION_EXIT_TREE) {
- disconnect("confirmed", this,"_close");
- }
-}
+ String name = group_name->get_text();
+ if (name.strip_edges()=="")
+ return;
-void GroupsEditor::_close() {
-
- hide();
-
-}
-void GroupsEditor::_add() {
-
- if (!node)
+ if (node->is_in_group(name))
return;
-
- undo_redo->create_action("Add To Group");
- undo_redo->add_do_method(node,"add_to_group",group_name->get_text(),true);
- undo_redo->add_undo_method(node,"remove_from_group",group_name->get_text());
+ undo_redo->create_action("Add to Group");
+
+ undo_redo->add_do_method(node,"add_to_group",name,true);
undo_redo->add_do_method(this,"update_tree");
+ undo_redo->add_undo_method(node,"remove_from_group",name,get_text());
undo_redo->add_undo_method(this,"update_tree");
undo_redo->commit_action();
}
+void GroupsEditor::_remove_group(Object *p_item, int p_column, int p_id) {
-void GroupsEditor::_remove() {
-
- if (!tree->get_selected())
- return;
if (!node)
return;
- TreeItem *sel = tree->get_selected();
- if (!sel)
+ TreeItem *ti = p_item->cast_to<TreeItem>();
+ if (!ti)
return;
-
- node->remove_from_group( sel->get_text(0) );
- update_tree();
+
+ String name = ti->get_text(0);
+
+ undo_redo->create_action("Remove from Group");
+
+ undo_redo->add_do_method(node,"remove_from_group",name);
+ undo_redo->add_do_method(this,"update_tree");
+ undo_redo->add_undo_method(node,"add_to_group",name,true);
+ undo_redo->add_undo_method(this,"update_tree");
+
+ undo_redo->commit_action();
}
+struct _GroupInfoComparator {
+
+ bool operator()(const Node::GroupInfo& p_a, const Node::GroupInfo& p_b) const {
+ return p_a.name.operator String() < p_b.name.operator String();
+ }
+};
+
void GroupsEditor::update_tree() {
-
tree->clear();
-
+
if (!node)
return;
-
- List<GroupInfo> groups;
+
+ List<Node::GroupInfo> groups;
node->get_groups(&groups);
-
+ groups.sort_custom<_GroupInfoComparator>();
+
TreeItem *root=tree->create_item();
-
+
for(List<GroupInfo>::Element *E=groups.front();E;E=E->next()) {
-
- if (!E->get().persistent)
+
+ Node::GroupInfo gi = E->get();
+ if (!gi.persistent)
continue;
+
TreeItem *item=tree->create_item(root);
- item->set_text(0, E->get().name);
-
+ item->set_text(0, gi.name);
+ item->add_button(0, get_icon("Remove", "EditorIcons"), 0);
}
-
}
void GroupsEditor::set_current(Node* p_node) {
-
+
node=p_node;
update_tree();
-
}
void GroupsEditor::_bind_methods() {
-
- ObjectTypeDB::bind_method("_add",&GroupsEditor::_add);
- ObjectTypeDB::bind_method("_close",&GroupsEditor::_close);
- ObjectTypeDB::bind_method("_remove",&GroupsEditor::_remove);
+
+ ObjectTypeDB::bind_method("_add_group",&GroupsEditor::_add_group);
+ ObjectTypeDB::bind_method("_remove_group",&GroupsEditor::_remove_group);
ObjectTypeDB::bind_method("update_tree",&GroupsEditor::update_tree);
}
GroupsEditor::GroupsEditor() {
+ node=NULL;
+
set_title("Group Editor");
-
- Label * label = memnew( Label );
- label->set_pos( Point2( 8,11) );
- label->set_text("Groups:");
-
- add_child(label);
-
- group_name = memnew(LineEdit);
- group_name->set_anchor( MARGIN_RIGHT, ANCHOR_END );
- group_name->set_begin( Point2( 15,28) );
- group_name->set_end( Point2( 94,48 ) );
-
- add_child(group_name);
-
- tree = memnew( Tree );
- tree->set_anchor( MARGIN_RIGHT, ANCHOR_END );
- tree->set_anchor( MARGIN_BOTTOM, ANCHOR_END );
- tree->set_begin( Point2( 15,52) );
- tree->set_end( Point2( 94,42 ) );
- tree->set_hide_root(true);
- add_child(tree);
-
+
+ VBoxContainer *vbc = memnew( VBoxContainer );
+ add_child(vbc);
+ set_child_rect(vbc);
+
+ HBoxContainer *hbc = memnew( HBoxContainer );
+ vbc->add_margin_child("Group", hbc);
+
+ group_name = memnew( LineEdit );
+ group_name->set_h_size_flags(SIZE_EXPAND_FILL);
+ hbc->add_child(group_name);
+ group_name->connect("text_entered",this,"_add_group");
+
add = memnew( Button );
- add->set_anchor( MARGIN_LEFT, ANCHOR_END );
- add->set_anchor( MARGIN_RIGHT, ANCHOR_END );
- add->set_begin( Point2( 90, 28 ) );
- add->set_end( Point2( 15, 48 ) );
add->set_text("Add");
-
- add_child(add);
-
- remove = memnew( Button );
- remove->set_anchor( MARGIN_LEFT, ANCHOR_END );
- remove->set_anchor( MARGIN_RIGHT, ANCHOR_END );
- remove->set_begin( Point2( 90, 52 ) );
- remove->set_end( Point2( 15, 72 ) );
- remove->set_text("Remove");
-
- add_child(remove);
+ hbc->add_child(add);
+ add->connect("pressed", this,"_add_group", varray(String()));
- get_ok()->set_text("Close");
-
- add->connect("pressed", this,"_add");
- remove->connect("pressed", this,"_remove");
+ tree = memnew( Tree );
+ tree->set_hide_root(true);
+ tree->set_v_size_flags(SIZE_EXPAND_FILL);
+ vbc->add_margin_child("Node Group(s)", tree, true);
+ tree->connect("button_pressed",this,"_remove_group");
-
- node=NULL;
+ get_ok()->set_text("Close");
}
-
GroupsEditor::~GroupsEditor()
{
}
diff --git a/tools/editor/groups_editor.h b/tools/editor/groups_editor.h
index 09883a150f..3a9cc77727 100644
--- a/tools/editor/groups_editor.h
+++ b/tools/editor/groups_editor.h
@@ -29,42 +29,42 @@
#ifndef GROUPS_EDITOR_H
#define GROUPS_EDITOR_H
-
#include "scene/gui/dialogs.h"
#include "scene/gui/button.h"
#include "scene/gui/tree.h"
#include "scene/gui/line_edit.h"
#include "undo_redo.h"
+
/**
@author Juan Linietsky <reduzio@gmail.com>
*/
-class GroupsEditor : public ConfirmationDialog {
-
- OBJ_TYPE( GroupsEditor, ConfirmationDialog );
-
+
+class GroupsEditor : public AcceptDialog {
+
+ OBJ_TYPE(GroupsEditor,AcceptDialog);
+
+ Node *node;
+
LineEdit *group_name;
- Tree *tree;
Button *add;
- Button *remove;
- Node *node;
+ Tree *tree;
+
UndoRedo *undo_redo;
-
+
void update_tree();
- void _add();
- void _remove();
+ void _add_group(const String& p_group="");
+ void _remove_group(Object *p_item, int p_column, int p_id);
void _close();
-
protected:
-
- void _notification(int p_what);
- static void _bind_methods();
+
+ static void _bind_methods();
public:
-
+
void set_undo_redo(UndoRedo *p_undoredo) { undo_redo=p_undoredo; }
void set_current(Node* p_node);
-
+
GroupsEditor();
~GroupsEditor();
-
};
+
#endif
diff --git a/tools/editor/icons/icon_list_select.png b/tools/editor/icons/icon_list_select.png
new file mode 100644
index 0000000000..cbe81d4328
--- /dev/null
+++ b/tools/editor/icons/icon_list_select.png
Binary files differ
diff --git a/tools/editor/io_plugins/editor_export_scene.cpp b/tools/editor/io_plugins/editor_export_scene.cpp
index cd5c34e53b..dff41a59ed 100644
--- a/tools/editor/io_plugins/editor_export_scene.cpp
+++ b/tools/editor/io_plugins/editor_export_scene.cpp
@@ -100,7 +100,7 @@ Vector<uint8_t> EditorSceneExportPlugin::custom_export(String& p_path,const Ref<
Vector<uint8_t> ret = FileAccess::get_file_as_array(tmp_path+"scnexp-"+md5+".scn");
- p_path+=".optimized.scn";
+ p_path+=".converted.scn";
return ret;
diff --git a/tools/editor/io_plugins/editor_sample_import_plugin.cpp b/tools/editor/io_plugins/editor_sample_import_plugin.cpp
index 7888246956..28eeb56b4b 100644
--- a/tools/editor/io_plugins/editor_sample_import_plugin.cpp
+++ b/tools/editor/io_plugins/editor_sample_import_plugin.cpp
@@ -859,7 +859,7 @@ Vector<uint8_t> EditorSampleExportPlugin::custom_export(String& p_path,const Ref
ERR_FAIL_COND_V(err!=OK,Vector<uint8_t>());
- p_path=p_path.basename()+".smp";
+ p_path=p_path.basename()+".converted.smp";
return FileAccess::get_file_as_array(savepath);
}
diff --git a/tools/editor/io_plugins/editor_texture_import_plugin.cpp b/tools/editor/io_plugins/editor_texture_import_plugin.cpp
index 8d5a4f1dcf..92ef57a69e 100644
--- a/tools/editor/io_plugins/editor_texture_import_plugin.cpp
+++ b/tools/editor/io_plugins/editor_texture_import_plugin.cpp
@@ -1666,7 +1666,7 @@ EditorTextureImportPlugin::EditorTextureImportPlugin(EditorNode *p_editor, Mode
if (pl.is_valid()) {
Vector<uint8_t> ce = pl->custom_export(p_path,p_platform);
if (ce.size()) {
- p_path=p_path.basename()+".tex";
+ p_path=p_path.basename()+".converted.tex";
return ce;
}
}
@@ -1680,7 +1680,7 @@ EditorTextureImportPlugin::EditorTextureImportPlugin(EditorNode *p_editor, Mode
if (pl.is_valid()) {
Vector<uint8_t> ce = pl->custom_export(p_path,p_platform);
if (ce.size()) {
- p_path=p_path.basename()+".tex";
+ p_path=p_path.basename()+".converted.tex";
return ce;
}
}
diff --git a/tools/editor/plugins/canvas_item_editor_plugin.cpp b/tools/editor/plugins/canvas_item_editor_plugin.cpp
index a3164fc524..0946383c8d 100644
--- a/tools/editor/plugins/canvas_item_editor_plugin.cpp
+++ b/tools/editor/plugins/canvas_item_editor_plugin.cpp
@@ -221,7 +221,7 @@ void CanvasItemEditor::_unhandled_key_input(const InputEvent& p_ev) {
void CanvasItemEditor::_tool_select(int p_index) {
- ToolButton *tb[TOOL_MAX]={select_button,move_button,rotate_button,pan_button};
+ ToolButton *tb[TOOL_MAX]={select_button,list_select_button,move_button,rotate_button,pan_button};
for(int i=0;i<TOOL_MAX;i++) {
tb[i]->set_pressed(i==p_index);
@@ -938,6 +938,75 @@ bool CanvasItemEditor::get_remove_list(List<Node*> *p_list) {
}
+void CanvasItemEditor::_list_select(const InputEventMouseButton& b) {
+
+ Point2 click=Point2(b.x,b.y);
+
+ Node* scene = editor->get_edited_scene();
+ if (!scene)
+ return;
+
+ _find_canvas_items_at_pos(click, scene,transform,Matrix32(), selection_results);
+
+ for(int i=0;i<selection_results.size();i++) {
+ CanvasItem *item=selection_results[i].item;
+ if (item!=scene && item->get_owner()!=scene && !scene->is_editable_instance(item->get_owner())) {
+ //invalid result
+ selection_results.remove(i);
+ i--;
+ }
+
+ }
+
+ if (selection_results.size() == 1) {
+
+ CanvasItem *item = selection_results[0].item;
+ selection_results.clear();
+
+ additive_selection=b.mod.shift;
+ if (!_select(item, click, additive_selection, false))
+ return;
+
+ } else if (!selection_results.empty()) {
+
+ selection_results.sort();
+
+ NodePath root_path = get_tree()->get_edited_scene_root()->get_path();
+ StringName root_name = root_path.get_name(root_path.get_name_count()-1);
+
+ for (int i = 0; i < selection_results.size(); i++) {
+
+ CanvasItem *item=selection_results[i].item;
+
+
+ Ref<Texture> icon;
+ if (item->has_meta("_editor_icon"))
+ icon=item->get_meta("_editor_icon");
+ else
+ icon=get_icon( has_icon(item->get_type(),"EditorIcons")?item->get_type():String("Object"),"EditorIcons");
+
+ String node_path="/"+root_name+"/"+root_path.rel_path_to(item->get_path());
+
+ selection_menu->add_item(item->get_name());
+ selection_menu->set_item_icon(i, icon );
+ selection_menu->set_item_metadata(i, node_path);
+ selection_menu->set_item_tooltip(i,String(item->get_name())+
+ "\nType: "+item->get_type()+"\nPath: "+node_path);
+ }
+
+ additive_selection=b.mod.shift;
+
+ selection_menu->set_global_pos(Vector2( b.global_x, b.global_y ));
+ selection_menu->popup();
+ selection_menu->call_deferred("grab_click_focus");
+ selection_menu->set_invalidate_click_until_motion();
+
+
+ return;
+ }
+
+}
+
void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
{
@@ -993,59 +1062,11 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
if (b.button_index==BUTTON_RIGHT) {
- if (b.pressed && tool==TOOL_SELECT && b.mod.alt) {
-
- Point2 click=Point2(b.x,b.y);
-
- Node* scene = editor->get_edited_scene();
- if (!scene)
- return;
-
- _find_canvas_items_at_pos(click, scene,transform,Matrix32(), selection_results);
-
- if (selection_results.size() == 1) {
-
- CanvasItem *item = selection_results[0].item;
- selection_results.clear();
-
- additive_selection=b.mod.shift;
- if (!_select(item, click, additive_selection, false))
- return;
-
- } else if (!selection_results.empty()) {
-
- selection_results.sort();
-
- NodePath root_path = get_tree()->get_edited_scene_root()->get_path();
- StringName root_name = root_path.get_name(root_path.get_name_count()-1);
- for (int i = 0; i < selection_results.size(); i++) {
+ if (b.pressed && (tool==TOOL_SELECT && b.mod.alt)) {
- CanvasItem *item=selection_results[i].item;
-
- Ref<Texture> icon;
- if (item->has_meta("_editor_icon"))
- icon=item->get_meta("_editor_icon");
- else
- icon=get_icon( has_icon(item->get_type(),"EditorIcons")?item->get_type():String("Object"),"EditorIcons");
-
- String node_path="/"+root_name+"/"+root_path.rel_path_to(item->get_path());
-
- selection_menu->add_item(item->get_name());
- selection_menu->set_item_icon(i, icon );
- selection_menu->set_item_metadata(i, node_path);
- selection_menu->set_item_tooltip(i,String(item->get_name())+
- "\nType: "+item->get_type()+"\nPath: "+node_path);
- }
-
- additive_selection=b.mod.shift;
-
- selection_menu->set_global_pos(Vector2( b.global_x, b.global_y ));
- selection_menu->popup();
- selection_menu->call_deferred("grab_click_focus");
-
- return;
- }
+ _list_select(b);
+ return;
}
if (get_item_count() > 0 && drag!=DRAG_NONE) {
@@ -1103,6 +1124,12 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
//if (!canvas_items.size())
// return;
+ if (b.button_index==BUTTON_LEFT && tool==TOOL_LIST_SELECT) {
+ if (b.pressed)
+ _list_select(b);
+ return;
+ }
+
if (tool==TOOL_PAN || b.button_index!=BUTTON_LEFT || Input::get_singleton()->is_key_pressed(KEY_SPACE))
return;
@@ -2118,6 +2145,7 @@ void CanvasItemEditor::_notification(int p_what) {
}
select_button->set_icon( get_icon("ToolSelect","EditorIcons"));
+ list_select_button->set_icon( get_icon("ListSelect","EditorIcons"));
move_button->set_icon( get_icon("ToolMove","EditorIcons"));
rotate_button->set_icon( get_icon("ToolRotate","EditorIcons"));
pan_button->set_icon( get_icon("ToolPan", "EditorIcons"));
@@ -3155,7 +3183,8 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
hb->add_child(select_button);
select_button->connect("pressed",this,"_tool_select",make_binds(TOOL_SELECT));
select_button->set_pressed(true);
- select_button->set_tooltip("Select Mode (Q)\n"+keycode_get_string(KEY_MASK_CMD)+"Drag: Rotate\nAlt+Drag: Move\nPress 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving).");
+ select_button->set_tooltip("Select Mode (Q)\n"+keycode_get_string(KEY_MASK_CMD)+"Drag: Rotate\nAlt+Drag: Move\nPress 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving).\nAlt+RMB: Depth list selection");
+
move_button = memnew( ToolButton );
move_button->set_toggle_mode(true);
@@ -3171,6 +3200,12 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
hb->add_child(memnew(VSeparator));
+ list_select_button = memnew( ToolButton );
+ list_select_button->set_toggle_mode(true);
+ hb->add_child(list_select_button);
+ list_select_button->connect("pressed",this,"_tool_select",make_binds(TOOL_LIST_SELECT));
+ list_select_button->set_tooltip("Show a list of all objects at the position clicked\n(same as Alt+RMB in selet mode).");
+
pan_button = memnew( ToolButton );
pan_button->set_toggle_mode(true);
hb->add_child(pan_button);
diff --git a/tools/editor/plugins/canvas_item_editor_plugin.h b/tools/editor/plugins/canvas_item_editor_plugin.h
index b96d36f7dc..2376e9f842 100644
--- a/tools/editor/plugins/canvas_item_editor_plugin.h
+++ b/tools/editor/plugins/canvas_item_editor_plugin.h
@@ -67,6 +67,7 @@ class CanvasItemEditor : public VBoxContainer {
enum Tool {
TOOL_SELECT,
+ TOOL_LIST_SELECT,
TOOL_MOVE,
TOOL_ROTATE,
TOOL_PAN,
@@ -240,6 +241,7 @@ class CanvasItemEditor : public VBoxContainer {
List<PoseClipboard> pose_clipboard;
ToolButton *select_button;
+ ToolButton *list_select_button;
ToolButton *move_button;
ToolButton *rotate_button;
@@ -309,6 +311,7 @@ class CanvasItemEditor : public VBoxContainer {
void _clear_canvas_items();
void _visibility_changed(ObjectID p_canvas_item);
void _key_move(const Vector2& p_dir, bool p_snap, KeyMoveMODE p_move_mode);
+ void _list_select(const InputEventMouseButton& b);
DragType _find_drag_type(const Matrix32& p_xform, const Rect2& p_local_rect, const Point2& p_click, Vector2& r_point);
diff --git a/tools/editor/plugins/item_list_editor_plugin.cpp b/tools/editor/plugins/item_list_editor_plugin.cpp
index fa261edea3..9c53c73afd 100644
--- a/tools/editor/plugins/item_list_editor_plugin.cpp
+++ b/tools/editor/plugins/item_list_editor_plugin.cpp
@@ -30,7 +30,6 @@
#include "io/resource_loader.h"
-
bool ItemListPlugin::_set(const StringName& p_name, const Variant& p_value) {
String name = p_name;
@@ -45,12 +44,10 @@ bool ItemListPlugin::_set(const StringName& p_name, const Variant& p_value) {
set_item_checkable(idx,p_value);
else if (what=="checked")
set_item_checked(idx,p_value);
- else if (what=="enabled")
- set_item_enabled(idx,p_value);
- else if (what=="accel")
- set_item_accel(idx,p_value);
else if (what=="id")
set_item_id(idx,p_value);
+ else if (what=="enabled")
+ set_item_enabled(idx,p_value);
else if (what=="separator")
set_item_separator(idx,p_value);
else
@@ -60,6 +57,7 @@ bool ItemListPlugin::_set(const StringName& p_name, const Variant& p_value) {
}
bool ItemListPlugin::_get(const StringName& p_name,Variant &r_ret) const {
+
String name = p_name;
int idx = name.get_slice("/",0).to_int();
String what=name.get_slice("/",1);
@@ -72,12 +70,10 @@ bool ItemListPlugin::_get(const StringName& p_name,Variant &r_ret) const {
r_ret=is_item_checkable(idx);
else if (what=="checked")
r_ret=is_item_checked(idx);
- else if (what=="enabled")
- r_ret=is_item_enabled(idx);
- else if (what=="accel")
- r_ret=get_item_accel(idx);
else if (what=="id")
r_ret=get_item_id(idx);
+ else if (what=="enabled")
+ r_ret=is_item_enabled(idx);
else if (what=="separator")
r_ret=is_item_separator(idx);
else
@@ -93,66 +89,119 @@ void ItemListPlugin::_get_property_list( List<PropertyInfo> *p_list) const {
p_list->push_back( PropertyInfo(Variant::STRING,base+"text") );
p_list->push_back( PropertyInfo(Variant::OBJECT,base+"icon",PROPERTY_HINT_RESOURCE_TYPE,"Texture") );
- if (get_flags()&FLAG_CHECKABLE) {
+ int flags = get_flags();
+
+ if (flags&FLAG_CHECKABLE) {
p_list->push_back( PropertyInfo(Variant::BOOL,base+"checkable") );
p_list->push_back( PropertyInfo(Variant::BOOL,base+"checked") );
-
}
- if (get_flags()&FLAG_ENABLE) {
+ if (flags&FLAG_ID)
+ p_list->push_back( PropertyInfo(Variant::INT,base+"id",PROPERTY_HINT_RANGE,"-1,4096") );
+
+ if (flags&FLAG_ENABLE)
p_list->push_back( PropertyInfo(Variant::BOOL,base+"enabled") );
- }
- if (get_flags()&FLAG_ACCEL) {
+ if (flags&FLAG_SEPARATOR)
+ p_list->push_back( PropertyInfo(Variant::BOOL,base+"separator") );
+ }
+}
- p_list->push_back( PropertyInfo(Variant::INT,base+"accel",PROPERTY_HINT_KEY_ACCEL) );
+///////////////////////////////////////////////////////////////
+///////////////////////// PLUGINS /////////////////////////////
+///////////////////////////////////////////////////////////////
- }
- if (get_flags()&FLAG_ID) {
+void ItemListOptionButtonPlugin::set_object(Object *p_object) {
- p_list->push_back( PropertyInfo(Variant::INT,base+"id",PROPERTY_HINT_RANGE,"-1,4096") );
+ ob = p_object->cast_to<OptionButton>();
+}
- }
- if (get_flags()&FLAG_SEPARATOR) {
+bool ItemListOptionButtonPlugin::handles(Object *p_object) const {
- p_list->push_back( PropertyInfo(Variant::BOOL,base+"separator") );
+ return p_object->is_type("OptionButton");
+}
- }
- }
+int ItemListOptionButtonPlugin::get_flags() const {
+
+ return FLAG_ICON|FLAG_ID|FLAG_ENABLE;
}
-void ItemListEditor::_node_removed(Node *p_node) {
+void ItemListOptionButtonPlugin::add_item() {
- if(p_node==item_list) {
- item_list=NULL;
- hide();
- dialog->hide();
- }
+ ob->add_item( "Item "+itos(ob->get_item_count()));
+ _change_notify();
+}
+int ItemListOptionButtonPlugin::get_item_count() const {
+ return ob->get_item_count();
}
-void ItemListEditor::_delete_pressed() {
+void ItemListOptionButtonPlugin::erase(int p_idx) {
- String p = prop_editor->get_selected_path();
+ ob->remove_item(p_idx);
+ _change_notify();
+}
- if (p.find("/")!=-1) {
+ItemListOptionButtonPlugin::ItemListOptionButtonPlugin() {
- if (selected_idx<0 || selected_idx>=item_plugins.size())
- return;
+ ob=NULL;
+}
- item_plugins[selected_idx]->erase(p.get_slice("/",0).to_int());;
- }
+///////////////////////////////////////////////////////////////
+
+void ItemListPopupMenuPlugin::set_object(Object *p_object) {
+ if (p_object->is_type("MenuButton"))
+ pp = p_object->cast_to<MenuButton>()->get_popup();
+ else
+ pp = p_object->cast_to<PopupMenu>();
}
-void ItemListEditor::_add_pressed() {
+bool ItemListPopupMenuPlugin::handles(Object *p_object) const {
- if (selected_idx<0 || selected_idx>=item_plugins.size())
- return;
+ return p_object->is_type("PopupMenu") || p_object->is_type("MenuButton");
+}
- item_plugins[selected_idx]->add_item();
+int ItemListPopupMenuPlugin::get_flags() const {
+
+ return FLAG_ICON|FLAG_CHECKABLE|FLAG_ID|FLAG_ENABLE|FLAG_SEPARATOR;
+}
+
+void ItemListPopupMenuPlugin::add_item() {
+
+ pp->add_item( "Item "+itos(pp->get_item_count()));
+ _change_notify();
+}
+
+int ItemListPopupMenuPlugin::get_item_count() const {
+
+ return pp->get_item_count();
+}
+
+void ItemListPopupMenuPlugin::erase(int p_idx) {
+
+ pp->remove_item(p_idx);
+ _change_notify();
+}
+
+ItemListPopupMenuPlugin::ItemListPopupMenuPlugin() {
+
+ pp=NULL;
+}
+
+///////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////
+
+void ItemListEditor::_node_removed(Node *p_node) {
+
+ if(p_node==item_list) {
+ item_list=NULL;
+ hide();
+ dialog->hide();
+ }
}
void ItemListEditor::_notification(int p_notification) {
@@ -160,57 +209,73 @@ void ItemListEditor::_notification(int p_notification) {
if (p_notification==NOTIFICATION_ENTER_TREE) {
add_button->set_icon(get_icon("Add","EditorIcons"));
- del_button->set_icon(get_icon("Del","EditorIcons"));
+ del_button->set_icon(get_icon("Remove","EditorIcons"));
}
}
+void ItemListEditor::_add_pressed() {
-void ItemListEditor::_menu_option(int p_option) {
+ if (selected_idx==-1)
+ return;
+ item_plugins[selected_idx]->add_item();
+}
- switch(p_option) {
+void ItemListEditor::_delete_pressed() {
- case MENU_EDIT_ITEMS: {
+ TreeItem *ti = tree->get_selected();
- dialog->popup_centered_ratio();
- } break;
- }
+ if (!ti)
+ return;
+
+ if (ti->get_parent()!=tree->get_root())
+ return;
+
+ int idx = ti->get_text(0).to_int();
+
+ if (selected_idx==-1)
+ return;
+
+ item_plugins[selected_idx]->erase(idx);
}
+void ItemListEditor::_edit_items() {
+
+ dialog->popup_centered(Vector2(300, 400));
+}
void ItemListEditor::edit(Node *p_item_list) {
item_list=p_item_list;
+ if (!item_list) {
+ selected_idx=-1;
+ property_editor->edit(NULL);
+ return;
+ }
+
for(int i=0;i<item_plugins.size();i++) {
if (item_plugins[i]->handles(p_item_list)) {
item_plugins[i]->set_object(p_item_list);
- prop_editor->edit(item_plugins[i]);
+ property_editor->edit(item_plugins[i]);
+
+ if (has_icon(item_list->get_type(), "EditorIcons"))
+ toolbar_button->set_icon(get_icon(item_list->get_type(), "EditorIcons"));
+ else
+ toolbar_button->set_icon(Ref<Texture>());
+
selected_idx=i;
return;
}
}
selected_idx=-1;
-
- prop_editor->edit(NULL);
-
-}
-
-
-void ItemListEditor::_bind_methods() {
-
- ObjectTypeDB::bind_method("_menu_option",&ItemListEditor::_menu_option);
- ObjectTypeDB::bind_method("_add_button",&ItemListEditor::_add_pressed);
- ObjectTypeDB::bind_method("_delete_button",&ItemListEditor::_delete_pressed);
-
- //ObjectTypeDB::bind_method("_populate",&ItemListEditor::_populate);
-
+ property_editor->edit(NULL);
}
bool ItemListEditor::handles(Object *p_object) const {
- return false;
+
for(int i=0;i<item_plugins.size();i++) {
if (item_plugins[i]->handles(p_object)) {
return true;
@@ -218,57 +283,65 @@ bool ItemListEditor::handles(Object *p_object) const {
}
return false;
+}
+void ItemListEditor::_bind_methods() {
+
+ ObjectTypeDB::bind_method("_edit_items",&ItemListEditor::_edit_items);
+ ObjectTypeDB::bind_method("_add_button",&ItemListEditor::_add_pressed);
+ ObjectTypeDB::bind_method("_delete_button",&ItemListEditor::_delete_pressed);
}
+
ItemListEditor::ItemListEditor() {
selected_idx=-1;
- options = memnew( MenuButton );
- add_child(options);
- options->set_area_as_parent_rect();
- options->set_text("Items");
- options->get_popup()->add_item("Edit Items",MENU_EDIT_ITEMS);
- //options->get_popup()->add_item("Clear",MENU_CLEAR);
+ add_child( memnew( VSeparator ) );
- options->get_popup()->connect("item_pressed", this,"_menu_option");
+ toolbar_button = memnew( ToolButton );
+ toolbar_button->set_text("Items");
+ add_child(toolbar_button);
+ toolbar_button->connect("pressed",this,"_edit_items");
dialog = memnew( AcceptDialog );
+ dialog->set_title("Item List Editor");
add_child( dialog );
-
+ VBoxContainer *vbc = memnew( VBoxContainer );
+ dialog->add_child(vbc);
+ dialog->set_child_rect(vbc);
HBoxContainer *hbc = memnew( HBoxContainer );
-
- dialog->add_child(hbc);
- dialog->set_child_rect(hbc);
-
- prop_editor = memnew( PropertyEditor );
-
- hbc->add_child(prop_editor);
- prop_editor->set_h_size_flags(SIZE_EXPAND_FILL);
-
- VBoxContainer *vbc = memnew( VBoxContainer );
- hbc->add_child(vbc);
+ hbc->set_h_size_flags(SIZE_EXPAND_FILL);
+ vbc->add_child(hbc);
add_button = memnew( Button );
- //add_button->set_text("Add");
+ add_button->set_text("Add");
+ hbc->add_child(add_button);
add_button->connect("pressed",this,"_add_button");
- vbc->add_child(add_button);
+
+ hbc->add_spacer();
del_button = memnew( Button );
- //del_button->set_text("Del");
+ del_button->set_text("Delete");
+ hbc->add_child(del_button);
del_button->connect("pressed",this,"_delete_button");
- vbc->add_child(del_button);
- dialog->set_title("Item List");
- prop_editor->hide_top_label();
+ property_editor = memnew( PropertyEditor );
+ property_editor->hide_top_label();
+ property_editor->set_subsection_selectable(true);
+ vbc->add_child(property_editor);
+ property_editor->set_v_size_flags(SIZE_EXPAND_FILL);
+ tree = property_editor->get_scene_tree();
+}
+ItemListEditor::~ItemListEditor() {
+ for(int i=0;i<item_plugins.size();i++)
+ memdelete( item_plugins[i] );
}
-
void ItemListEditorPlugin::edit(Object *p_object) {
item_list_editor->edit(p_object->cast_to<Node>());
@@ -288,127 +361,19 @@ void ItemListEditorPlugin::make_visible(bool p_visible) {
item_list_editor->hide();
item_list_editor->edit(NULL);
}
-
-}
-
-
-ItemListEditor::~ItemListEditor() {
-
- for(int i=0;i<item_plugins.size();i++)
- memdelete( item_plugins[i] );
}
-///////////////////////// PLUGINS /////////////////////////////
-///////////////////////// PLUGINS /////////////////////////////
-///////////////////////// PLUGINS /////////////////////////////
-///////////////////////// PLUGINS /////////////////////////////
-///////////////////////// PLUGINS /////////////////////////////
-
-
-class ItemListOptionButtonPlugin : public ItemListPlugin {
-
- OBJ_TYPE(ItemListOptionButtonPlugin,ItemListPlugin);
-
- OptionButton *ob;
-public:
-
- virtual void set_object(Object *p_object) { ob = p_object->cast_to<OptionButton>(); }
-
- virtual bool handles(Object *p_object) const { return p_object->cast_to<OptionButton>()!=NULL; }
-
- virtual int get_flags() const { return FLAG_ICON|FLAG_ID|FLAG_ENABLE; }
-
- virtual void set_item_text(int p_idx,const String& p_text){ ob->set_item_text(p_idx,p_text);}
- virtual void set_item_icon(int p_idx,const Ref<Texture>& p_tex){ ob->set_item_icon(p_idx,p_tex);}
- virtual void set_item_enabled(int p_idx,int p_enabled){ ob->set_item_disabled(p_idx,!p_enabled);}
- virtual void set_item_id(int p_idx,int p_id){ ob->set_item_ID(p_idx,p_id);}
-
-
- virtual String get_item_text(int p_idx) const{ return ob->get_item_text(p_idx); };
- virtual Ref<Texture> get_item_icon(int p_idx) const{ return ob->get_item_icon(p_idx); };
- virtual bool is_item_enabled(int p_idx) const{ return !ob->is_item_disabled(p_idx); };
- virtual int get_item_id(int p_idx) const{ return ob->get_item_ID(p_idx); };
-
- virtual void add_item() { ob->add_item( "New Item "+itos(ob->get_item_count())); _change_notify();}
- virtual int get_item_count() const { return ob->get_item_count(); }
- virtual void erase(int p_idx) { ob->remove_item(p_idx); _change_notify();}
-
-
- ItemListOptionButtonPlugin() { ob=NULL; }
-};
-
-class ItemListPopupMenuPlugin : public ItemListPlugin {
-
- OBJ_TYPE(ItemListPopupMenuPlugin,ItemListPlugin);
-
- PopupMenu *pp;
-public:
-
- virtual void set_object(Object *p_object) {
- if (p_object->cast_to<MenuButton>())
- pp = p_object->cast_to<MenuButton>()->get_popup();
- else
- pp = p_object->cast_to<PopupMenu>();
- }
-
- virtual bool handles(Object *p_object) const { return p_object->cast_to<PopupMenu>()!=NULL || p_object->cast_to<MenuButton>()!=NULL; }
-
- virtual int get_flags() const { return FLAG_ICON|FLAG_ID|FLAG_ENABLE|FLAG_CHECKABLE|FLAG_SEPARATOR|FLAG_ACCEL; }
-
- virtual void set_item_text(int p_idx,const String& p_text){ pp->set_item_text(p_idx,p_text); }
- virtual void set_item_icon(int p_idx,const Ref<Texture>& p_tex){ pp->set_item_icon(p_idx,p_tex);}
- virtual void set_item_checkable(int p_idx,bool p_check){ pp->set_item_as_checkable(p_idx,p_check);}
- virtual void set_item_checked(int p_idx,bool p_checked){ pp->set_item_checked(p_idx,p_checked);}
- virtual void set_item_accel(int p_idx,int p_accel){ pp->set_item_accelerator(p_idx,p_accel);}
- virtual void set_item_enabled(int p_idx,int p_enabled){ pp->set_item_disabled(p_idx,!p_enabled);}
- virtual void set_item_id(int p_idx,int p_id){ pp->set_item_ID(p_idx,p_idx);}
- virtual void set_item_separator(int p_idx,bool p_separator){ pp->set_item_as_separator(p_idx,p_separator);}
-
-
- virtual String get_item_text(int p_idx) const{ return pp->get_item_text(p_idx); };
- virtual Ref<Texture> get_item_icon(int p_idx) const{ return pp->get_item_icon(p_idx); };
- virtual bool is_item_checkable(int p_idx) const{ return pp->is_item_checkable(p_idx); };
- virtual bool is_item_checked(int p_idx) const{ return pp->is_item_checked(p_idx); };
- virtual int get_item_accel(int p_idx) const{ return pp->get_item_accelerator(p_idx); };
- virtual bool is_item_enabled(int p_idx) const{ return !pp->is_item_disabled(p_idx); };
- virtual int get_item_id(int p_idx) const{ return pp->get_item_ID(p_idx); };
- virtual bool is_item_separator(int p_idx) const{ return pp->is_item_separator(p_idx); };
-
-
-
- virtual void add_item() { pp->add_item( "New Item "+itos(pp->get_item_count())); _change_notify();}
- virtual int get_item_count() const { return pp->get_item_count(); }
- virtual void erase(int p_idx) { pp->remove_item(p_idx); _change_notify();}
-
-
- ItemListPopupMenuPlugin() { pp=NULL; }
-};
-
-
-
-
-
-
ItemListEditorPlugin::ItemListEditorPlugin(EditorNode *p_node) {
editor=p_node;
item_list_editor = memnew( ItemListEditor );
- editor->get_viewport()->add_child(item_list_editor);
-
-// item_list_editor->set_anchor(MARGIN_LEFT,Control::ANCHOR_END);
-// item_list_editor->set_anchor(MARGIN_RIGHT,Control::ANCHOR_END);
- item_list_editor->set_margin(MARGIN_LEFT,180);
- item_list_editor->set_margin(MARGIN_RIGHT,230);
- item_list_editor->set_margin(MARGIN_TOP,0);
- item_list_editor->set_margin(MARGIN_BOTTOM,10);
-
+ CanvasItemEditor::get_singleton()->add_control_to_menu_panel(item_list_editor);
item_list_editor->hide();
- item_list_editor->add_plugin( memnew( ItemListOptionButtonPlugin) );
- item_list_editor->add_plugin( memnew( ItemListPopupMenuPlugin) );
+ item_list_editor->add_plugin( memnew( ItemListOptionButtonPlugin ) );
+ item_list_editor->add_plugin( memnew( ItemListPopupMenuPlugin ) );
}
-
ItemListEditorPlugin::~ItemListEditorPlugin()
{
}
diff --git a/tools/editor/plugins/item_list_editor_plugin.h b/tools/editor/plugins/item_list_editor_plugin.h
index 351dbb800d..b40a2c22f8 100644
--- a/tools/editor/plugins/item_list_editor_plugin.h
+++ b/tools/editor/plugins/item_list_editor_plugin.h
@@ -31,10 +31,11 @@
#include "tools/editor/editor_plugin.h"
#include "tools/editor/editor_node.h"
+#include "canvas_item_editor_plugin.h"
+
#include "scene/gui/option_button.h"
#include "scene/gui/menu_button.h"
#include "scene/gui/popup_menu.h"
-#include "scene/gui/spin_box.h"
/**
@author Juan Linietsky <reduzio@gmail.com>
@@ -51,43 +52,42 @@ protected:
bool _get(const StringName& p_name,Variant &r_ret) const;
void _get_property_list( List<PropertyInfo> *p_list) const;
-
public:
enum Flags {
FLAG_ICON=1,
FLAG_CHECKABLE=2,
- FLAG_ACCEL=4,
- FLAG_ID=8,
- FLAG_ENABLE=16,
- FLAG_SEPARATOR=32
+ FLAG_ID=4,
+ FLAG_ENABLE=8,
+ FLAG_SEPARATOR=16
};
virtual void set_object(Object *p_object)=0;
-
virtual bool handles(Object *p_object) const=0;
virtual int get_flags() const=0;
- virtual void set_item_text(int p_idx,const String& p_text){}
- virtual void set_item_icon(int p_idx,const Ref<Texture>& p_tex){}
- virtual void set_item_checkable(int p_idx,bool p_check){}
- virtual void set_item_checked(int p_idx,bool p_checked){}
- virtual void set_item_accel(int p_idx,int p_accel){}
- virtual void set_item_enabled(int p_idx,int p_enabled){}
- virtual void set_item_id(int p_idx,int p_id){}
- virtual void set_item_separator(int p_idx,bool p_separator){}
-
-
+ virtual void set_item_text(int p_idx, const String& p_text) {}
virtual String get_item_text(int p_idx) const{ return ""; };
+
+ virtual void set_item_icon(int p_idx, const Ref<Texture>& p_tex) {}
virtual Ref<Texture> get_item_icon(int p_idx) const{ return Ref<Texture>(); };
+
+ virtual void set_item_checkable(int p_idx, bool p_check) {}
virtual bool is_item_checkable(int p_idx) const{ return false; };
+
+ virtual void set_item_checked(int p_idx, bool p_checked) {}
virtual bool is_item_checked(int p_idx) const{ return false; };
- virtual int get_item_accel(int p_idx) const{ return 0; };
+
+ virtual void set_item_enabled(int p_idx, int p_enabled) {}
virtual bool is_item_enabled(int p_idx) const{ return false; };
+
+ virtual void set_item_id(int p_idx, int p_id) {}
virtual int get_item_id(int p_idx) const{ return -1; };
- virtual bool is_item_separator(int p_idx) const{ return false; };
+
+ virtual void set_item_separator(int p_idx, bool p_separator) {}
+ virtual bool is_item_separator(int p_idx) const { return false; };
virtual void add_item()=0;
virtual int get_item_count() const=0;
@@ -96,41 +96,107 @@ public:
ItemListPlugin() {}
};
-class ItemListEditor : public Control {
+///////////////////////////////////////////////////////////////
- OBJ_TYPE(ItemListEditor, Control );
+class ItemListOptionButtonPlugin : public ItemListPlugin {
- Node *item_list;
+ OBJ_TYPE(ItemListOptionButtonPlugin,ItemListPlugin);
- enum {
+ OptionButton *ob;
+public:
- MENU_EDIT_ITEMS,
- MENU_CLEAR
- };
+ virtual void set_object(Object *p_object);
+ virtual bool handles(Object *p_object) const;
+ virtual int get_flags() const;
- AcceptDialog *dialog;
+ virtual void set_item_text(int p_idx, const String& p_text) { ob->set_item_text(p_idx,p_text); }
+ virtual String get_item_text(int p_idx) const { return ob->get_item_text(p_idx); }
- PropertyEditor *prop_editor;
+ virtual void set_item_icon(int p_idx, const Ref<Texture>& p_tex) { ob->set_item_icon(p_idx, p_tex); }
+ virtual Ref<Texture> get_item_icon(int p_idx) const { return ob->get_item_icon(p_idx); }
- MenuButton * options;
- int selected_idx;
+ virtual void set_item_enabled(int p_idx, int p_enabled) { ob->set_item_disabled(p_idx, !p_enabled); }
+ virtual bool is_item_enabled(int p_idx) const { return !ob->is_item_disabled(p_idx); }
+
+ virtual void set_item_id(int p_idx, int p_id) { ob->set_item_ID(p_idx,p_id); }
+ virtual int get_item_id(int p_idx) const { return ob->get_item_ID(p_idx); }
+
+ virtual void add_item();
+ virtual int get_item_count() const;
+ virtual void erase(int p_idx);
+
+ ItemListOptionButtonPlugin();
+};
+
+class ItemListPopupMenuPlugin : public ItemListPlugin {
+
+ OBJ_TYPE(ItemListPopupMenuPlugin,ItemListPlugin);
+
+ PopupMenu *pp;
+public:
+
+ virtual void set_object(Object *p_object);
+ virtual bool handles(Object *p_object) const;
+ virtual int get_flags() const;
+ virtual void set_item_text(int p_idx, const String& p_text) { pp->set_item_text(p_idx,p_text); }
+ virtual String get_item_text(int p_idx) const { return pp->get_item_text(p_idx); }
+
+ virtual void set_item_icon(int p_idx, const Ref<Texture>& p_tex) { pp->set_item_icon(p_idx,p_tex); }
+ virtual Ref<Texture> get_item_icon(int p_idx) const { return pp->get_item_icon(p_idx); }
+
+ virtual void set_item_checkable(int p_idx, bool p_check) { pp->set_item_as_checkable(p_idx,p_check); }
+ virtual bool is_item_checkable(int p_idx) const { return pp->is_item_checkable(p_idx); }
+
+ virtual void set_item_checked(int p_idx, bool p_checked) { pp->set_item_checked(p_idx,p_checked); }
+ virtual bool is_item_checked(int p_idx) const { return pp->is_item_checked(p_idx); }
+
+ virtual void set_item_enabled(int p_idx, int p_enabled) { pp->set_item_disabled(p_idx,!p_enabled); }
+ virtual bool is_item_enabled(int p_idx) const { return !pp->is_item_disabled(p_idx); }
+
+ virtual void set_item_id(int p_idx, int p_id) { pp->set_item_ID(p_idx,p_idx); }
+ virtual int get_item_id(int p_idx) const { return pp->get_item_ID(p_idx); }
+
+ virtual void set_item_separator(int p_idx, bool p_separator) { pp->set_item_as_separator(p_idx,p_separator); }
+ virtual bool is_item_separator(int p_idx) const { return pp->is_item_separator(p_idx); }
+
+ virtual void add_item();
+ virtual int get_item_count() const;
+ virtual void erase(int p_idx);
+
+ ItemListPopupMenuPlugin();
+};
+
+///////////////////////////////////////////////////////////////
+
+class ItemListEditor : public HBoxContainer {
+
+ OBJ_TYPE(ItemListEditor,HBoxContainer);
+
+ Node *item_list;
+
+ ToolButton *toolbar_button;
+
+ AcceptDialog *dialog;
+ PropertyEditor *property_editor;
+ Tree *tree;
Button *add_button;
Button *del_button;
-
-// FileDialog *emission_file_dialog;
- void _menu_option(int);
+ int selected_idx;
Vector<ItemListPlugin*> item_plugins;
- void _node_removed(Node *p_node);
+ void _edit_items();
+
void _add_pressed();
void _delete_pressed();
+
+ void _node_removed(Node *p_node);
+
protected:
void _notification(int p_notification);
-
static void _bind_methods();
public:
@@ -143,7 +209,7 @@ public:
class ItemListEditorPlugin : public EditorPlugin {
- OBJ_TYPE( ItemListEditorPlugin, EditorPlugin );
+ OBJ_TYPE(ItemListEditorPlugin,EditorPlugin);
ItemListEditor *item_list_editor;
EditorNode *editor;
diff --git a/tools/editor/plugins/mesh_editor_plugin.cpp b/tools/editor/plugins/mesh_editor_plugin.cpp
index cea774f94b..5314529a23 100644
--- a/tools/editor/plugins/mesh_editor_plugin.cpp
+++ b/tools/editor/plugins/mesh_editor_plugin.cpp
@@ -1,13 +1,8 @@
#include "mesh_editor_plugin.h"
-#include "tools/editor/editor_plugin.h"
-#include "tools/editor/editor_node.h"
-#include "scene/3d/mesh_instance.h"
#include "scene/3d/physics_body.h"
#include "scene/3d/body_shape.h"
-#include "scene/gui/spin_box.h"
#include "scene/gui/box_container.h"
-#include "scene/3d/mesh_instance.h"
#include "scene/3d/navigation_mesh.h"
#include "spatial_editor_plugin.h"
@@ -38,92 +33,106 @@ void MeshInstanceEditor::_menu_option(int p_option) {
}
switch(p_option) {
- case MENU_OPTION_CREATE_STATIC_TRIMESH_BODY: {
+ case MENU_OPTION_CREATE_STATIC_TRIMESH_BODY:
+ case MENU_OPTION_CREATE_STATIC_CONVEX_BODY: {
- Ref<Shape> shape = mesh->create_trimesh_shape();
- if (shape.is_null())
- return;
- StaticBody *body = memnew( StaticBody );
- CollisionShape *cshape = memnew( CollisionShape );
- cshape->set_shape(shape);
- body->add_child(cshape);
- Node *owner = node==get_tree()->get_edited_scene_root() ? node : node->get_owner();
+ bool trimesh_shape = (p_option==MENU_OPTION_CREATE_STATIC_TRIMESH_BODY);
+ EditorSelection *editor_selection = EditorNode::get_singleton()->get_editor_selection();
UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
- ur->create_action("Create Static Trimesh");
- ur->add_do_method(node,"add_child",body);
- ur->add_do_method(body,"set_owner",owner);
- ur->add_do_method(cshape,"set_owner",owner);
- ur->add_do_reference(body);
- ur->add_undo_method(node,"remove_child",body);
- ur->commit_action();
- } break;
- case MENU_OPTION_CREATE_STATIC_CONVEX_BODY: {
+ List<Node*> selection = editor_selection->get_selected_node_list();
- Ref<Shape> shape = mesh->create_convex_shape();
- if (shape.is_null())
- return;
- StaticBody *body = memnew( StaticBody );
- CollisionShape *cshape = memnew( CollisionShape );
- cshape->set_shape(shape);
- body->add_child(cshape);
- Node *owner = node==get_tree()->get_edited_scene_root() ? node : node->get_owner();
+ if (selection.empty()) {
+ Ref<Shape> shape = trimesh_shape ? mesh->create_trimesh_shape() : mesh->create_convex_shape();
+ if (shape.is_null())
+ return;
- UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
- ur->create_action("Create Static Trimesh");
- ur->add_do_method(node,"add_child",body);
- ur->add_do_method(body,"set_owner",owner);
- ur->add_do_method(cshape,"set_owner",owner);
- ur->add_do_reference(body);
- ur->add_undo_method(node,"remove_child",body);
- ur->commit_action();
+ CollisionShape *cshape = memnew( CollisionShape );
+ cshape->set_shape(shape);
+ StaticBody *body = memnew( StaticBody );
+ body->add_child(cshape);
- } break;
- case MENU_OPTION_CREATE_TRIMESH_COLLISION_SHAPE: {
+ Node *owner = node==get_tree()->get_edited_scene_root() ? node : node->get_owner();
+ if (trimesh_shape)
+ ur->create_action("Create Static Trimesh Body");
+ else
+ ur->create_action("Create Static Convex Body");
- if (node==get_tree()->get_edited_scene_root()) {
- err_dialog->set_text("This doesn't work on scene root!");
- err_dialog->popup_centered_minsize();
+ ur->add_do_method(node,"add_child",body);
+ ur->add_do_method(body,"set_owner",owner);
+ ur->add_do_method(cshape,"set_owner",owner);
+ ur->add_do_reference(body);
+ ur->add_undo_method(node,"remove_child",body);
+ ur->commit_action();
return;
}
- Ref<Shape> shape = mesh->create_trimesh_shape();
- if (shape.is_null())
- return;
- CollisionShape *cshape = memnew( CollisionShape );
- cshape->set_shape(shape);
- Node *owner = node->get_owner();
+ if (trimesh_shape)
+ ur->create_action("Create Static Trimesh Body");
+ else
+ ur->create_action("Create Static Convex Body");
+
+ for (List<Node*>::Element *E=selection.front();E;E=E->next()) {
+
+ MeshInstance *instance = E->get()->cast_to<MeshInstance>();
+ if (!instance)
+ continue;
+
+ Ref<Mesh> m = instance->get_mesh();
+ if (m.is_null())
+ continue;
+
+ Ref<Shape> shape = trimesh_shape ? m->create_trimesh_shape() : m->create_convex_shape();
+ if (shape.is_null())
+ continue;
+
+ CollisionShape *cshape = memnew( CollisionShape );
+ cshape->set_shape(shape);
+ StaticBody *body = memnew( StaticBody );
+ body->add_child(cshape);
+
+ Node *owner = instance==get_tree()->get_edited_scene_root() ? instance : instance->get_owner();
+
+ ur->add_do_method(instance,"add_child",body);
+ ur->add_do_method(body,"set_owner",owner);
+ ur->add_do_method(cshape,"set_owner",owner);
+ ur->add_do_reference(body);
+ ur->add_undo_method(instance,"remove_child",body);
+ }
- UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
- ur->create_action("Create Static Trimesh");
- ur->add_do_method(node->get_parent(),"add_child",cshape);
- ur->add_do_method(node->get_parent(),"move_child",cshape,node->get_index()+1);
- ur->add_do_method(cshape,"set_owner",owner);
- ur->add_do_reference(cshape);
- ur->add_undo_method(node->get_parent(),"remove_child",cshape);
ur->commit_action();
} break;
- case MENU_OPTION_CREATE_CONVEX_COLLISION_SHAPE: {
+ case MENU_OPTION_CREATE_TRIMESH_COLLISION_SHAPE:
+ case MENU_OPTION_CREATE_CONVEX_COLLISION_SHAPE: {
if (node==get_tree()->get_edited_scene_root()) {
err_dialog->set_text("This doesn't work on scene root!");
err_dialog->popup_centered_minsize();
return;
}
- Ref<Shape> shape = mesh->create_convex_shape();
+
+ bool trimesh_shape = (p_option==MENU_OPTION_CREATE_TRIMESH_COLLISION_SHAPE);
+
+ Ref<Shape> shape = trimesh_shape ? mesh->create_trimesh_shape() : mesh->create_convex_shape();
if (shape.is_null())
return;
+
CollisionShape *cshape = memnew( CollisionShape );
cshape->set_shape(shape);
Node *owner = node->get_owner();
UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
- ur->create_action("Create Static Trimesh");
+
+ if (trimesh_shape)
+ ur->create_action("Create Trimesh Shape");
+ else
+ ur->create_action("Create Convex Shape");
+
ur->add_do_method(node->get_parent(),"add_child",cshape);
ur->add_do_method(node->get_parent(),"move_child",cshape,node->get_index()+1);
ur->add_do_method(cshape,"set_owner",owner);
@@ -132,10 +141,8 @@ void MeshInstanceEditor::_menu_option(int p_option) {
ur->commit_action();
} break;
- case MENU_OPTION_CREATE_NAVMESH: {
-
-
+ case MENU_OPTION_CREATE_NAVMESH: {
Ref<NavigationMesh> nmesh = memnew( NavigationMesh );
@@ -158,6 +165,7 @@ void MeshInstanceEditor::_menu_option(int p_option) {
ur->add_undo_method(node,"remove_child",nmi);
ur->commit_action();
} break;
+
case MENU_OPTION_CREATE_OUTLINE_MESH: {
outline_dialog->popup_centered(Vector2(200, 90));
diff --git a/tools/editor/plugins/mesh_editor_plugin.h b/tools/editor/plugins/mesh_editor_plugin.h
index e502b5dc2b..6b3e23f31f 100644
--- a/tools/editor/plugins/mesh_editor_plugin.h
+++ b/tools/editor/plugins/mesh_editor_plugin.h
@@ -23,24 +23,19 @@ class MeshInstanceEditor : public Node {
MENU_OPTION_CREATE_OUTLINE_MESH,
};
+ MeshInstance *node;
+
+ MenuButton *options;
+
ConfirmationDialog *outline_dialog;
SpinBox *outline_size;
AcceptDialog *err_dialog;
-
- Panel *panel;
- MeshInstance *node;
-
- LineEdit *surface_source;
- LineEdit *mesh_source;
-
-
void _menu_option(int p_option);
void _create_outline_mesh();
friend class MeshInstanceEditorPlugin;
- MenuButton * options;
protected:
void _node_removed(Node *p_node);
diff --git a/tools/editor/plugins/script_editor_plugin.cpp b/tools/editor/plugins/script_editor_plugin.cpp
index 956e7a98a2..178871ea75 100644
--- a/tools/editor/plugins/script_editor_plugin.cpp
+++ b/tools/editor/plugins/script_editor_plugin.cpp
@@ -379,6 +379,8 @@ void ScriptTextEditor::reload_text() {
te->set_h_scroll(h);
te->set_v_scroll(v);
+ te->tag_saved_version();
+
_line_col_changed();
}
@@ -391,6 +393,12 @@ void ScriptTextEditor::_notification(int p_what) {
}
}
+
+bool ScriptTextEditor::is_unsaved() {
+
+ return get_text_edit()->get_version()!=get_text_edit()->get_saved_version();
+}
+
String ScriptTextEditor::get_name() {
String name;
@@ -492,6 +500,59 @@ static Node* _find_node_for_script(Node* p_base, Node*p_current, const Ref<Scrip
return NULL;
}
+static void _find_changed_scripts_for_external_editor(Node* p_base, Node*p_current, Set<Ref<Script> > &r_scripts) {
+
+ if (p_current->get_owner()!=p_base && p_base!=p_current)
+ return;
+ Ref<Script> c = p_current->get_script();
+
+ if (c.is_valid())
+ r_scripts.insert(c);
+
+ for(int i=0;i<p_current->get_child_count();i++) {
+ _find_changed_scripts_for_external_editor(p_base,p_current->get_child(i),r_scripts);
+ }
+
+}
+
+void ScriptEditor::_update_modified_scripts_for_external_editor() {
+
+ if (!bool(EditorSettings::get_singleton()->get("external_editor/use_external_editor")))
+ return;
+
+ Set<Ref<Script> > scripts;
+
+ Node *base = get_tree()->get_edited_scene_root();
+ if (base) {
+ _find_changed_scripts_for_external_editor(base,base,scripts);
+ }
+
+ for (Set<Ref<Script> >::Element *E=scripts.front();E;E=E->next()) {
+
+ Ref<Script> script = E->get();
+
+ if (script->get_path()=="" || script->get_path().find("local://")!=-1 || script->get_path().find("::")!=-1) {
+
+ continue; //internal script, who cares, though weird
+ }
+
+ uint64_t last_date = script->get_last_modified_time();
+ uint64_t date = FileAccess::get_modified_time(script->get_path());
+
+ if (last_date!=date) {
+
+ Ref<Script> rel_script = ResourceLoader::load(script->get_path(),script->get_type(),true);
+ ERR_CONTINUE(!rel_script.is_valid());
+ script->set_source_code( rel_script->get_source_code() );
+ script->set_last_modified_time( rel_script->get_last_modified_time() );
+ script->update_exports();
+ }
+
+ }
+}
+
+
+
void ScriptTextEditor::_code_complete_script(const String& p_code, List<String>* r_options) {
Node *base = get_tree()->get_edited_scene_root();
@@ -543,7 +604,6 @@ void ScriptEditor::_breaked(bool p_breaked,bool p_can_debug) {
void ScriptEditor::_show_debugger(bool p_show) {
debug_menu->get_popup()->set_item_checked( debug_menu->get_popup()->get_item_index(DEBUG_SHOW), p_show);
-
}
void ScriptEditor::_script_created(Ref<Script> p_script) {
@@ -749,6 +809,7 @@ void ScriptEditor::_reload_scripts(){
}
disk_changed->hide();
+ _update_script_names();
}
@@ -791,46 +852,53 @@ bool ScriptEditor::_test_script_times_on_disk() {
TreeItem *r = disk_changed_list->create_item();
disk_changed_list->set_hide_root(true);
- bool all_ok=true;
+ bool need_ask=false;
+ bool need_reload=false;
+ bool use_autoreload=bool(EDITOR_DEF("text_editor/auto_reload_scripts_on_external_change",false));
+
for(int i=0;i<tab_container->get_child_count();i++) {
ScriptTextEditor *ste = tab_container->get_child(i)->cast_to<ScriptTextEditor>();
- if (!ste)
- continue;
+ if (ste) {
+ Ref<Script> script = ste->get_edited_script();
- Ref<Script> script = ste->get_edited_script();
+ if (script->get_path()=="" || script->get_path().find("local://")!=-1 || script->get_path().find("::")!=-1)
+ continue; //internal script, who cares
- if (script->get_path()=="" || script->get_path().find("local://")!=-1 || script->get_path().find("::")!=-1)
- continue; //internal script, who cares
+ uint64_t last_date = script->get_last_modified_time();
+ uint64_t date = FileAccess::get_modified_time(script->get_path());
- uint64_t last_date = script->get_last_modified_time();
- uint64_t date = FileAccess::get_modified_time(script->get_path());
+ //printf("last date: %lli vs date: %lli\n",last_date,date);
+ if (last_date!=date) {
- //printf("last date: %lli vs date: %lli\n",last_date,date);
- if (last_date!=date) {
+ TreeItem *ti = disk_changed_list->create_item(r);
+ ti->set_text(0,script->get_path().get_file());
- TreeItem *ti = disk_changed_list->create_item(r);
- ti->set_text(0,script->get_path().get_file());
- all_ok=false;
- //r->set_metadata(0,);
+ if (!use_autoreload || ste->is_unsaved()) {
+ need_ask=true;
+ }
+ need_reload=true;
+ //r->set_metadata(0,);
+ }
}
}
- if (!all_ok) {
- if (bool(EDITOR_DEF("text_editor/auto_reload_changed_scripts",false))) {
+ if (need_reload) {
+ if (!need_ask) {
script_editor->_reload_scripts();
+ need_reload=false;
} else {
disk_changed->call_deferred("popup_centered_ratio",0.5);
}
}
- return all_ok;
+ return need_reload;
}
void ScriptEditor::swap_lines(TextEdit *tx, int line1, int line2)
@@ -912,7 +980,22 @@ void ScriptEditor::_menu_option(int p_option) {
case WINDOW_PREV: {
_history_back();
} break;
-
+ case DEBUG_SHOW: {
+ if (debugger) {
+ bool visible = debug_menu->get_popup()->is_item_checked( debug_menu->get_popup()->get_item_index(DEBUG_SHOW) );
+ debug_menu->get_popup()->set_item_checked( debug_menu->get_popup()->get_item_index(DEBUG_SHOW), !visible);
+ if (visible)
+ debugger->hide();
+ else
+ debugger->show();
+ }
+ } break;
+ case DEBUG_SHOW_KEEP_OPEN: {
+ bool visible = debug_menu->get_popup()->is_item_checked( debug_menu->get_popup()->get_item_index(DEBUG_SHOW_KEEP_OPEN) );
+ if (debugger)
+ debugger->set_hide_on_stop(visible);
+ debug_menu->get_popup()->set_item_checked( debug_menu->get_popup()->get_item_index(DEBUG_SHOW_KEEP_OPEN), !visible);
+ } break;
}
@@ -1137,12 +1220,14 @@ void ScriptEditor::_menu_option(int p_option) {
return;
int line = tx->cursor_get_line();
int next_line = line + 1;
+ int column = tx->cursor_get_column();
- if (line == tx->get_line_count() - 1 || next_line >= tx->get_line_count())
+ if (line >= tx->get_line_count() - 1)
tx->set_line(line, tx->get_line(line) + "\n");
String line_clone = tx->get_line(line);
tx->insert_at(line_clone, next_line);
+ tx->cursor_set_column(column);
tx->update();
} break;
@@ -1264,16 +1349,6 @@ void ScriptEditor::_menu_option(int p_option) {
debugger->debug_continue();
} break;
- case DEBUG_SHOW: {
- if (debugger) {
- bool visible = debug_menu->get_popup()->is_item_checked( debug_menu->get_popup()->get_item_index(DEBUG_SHOW) );
- debug_menu->get_popup()->set_item_checked( debug_menu->get_popup()->get_item_index(DEBUG_SHOW), !visible);
- if (visible)
- debugger->hide();
- else
- debugger->show();
- }
- } break;
case HELP_CONTEXTUAL: {
String text = current->get_text_edit()->get_selection_text();
if (text == "")
@@ -1401,6 +1476,7 @@ void ScriptEditor::_notification(int p_what) {
if (p_what==MainLoop::NOTIFICATION_WM_FOCUS_IN) {
_test_script_times_on_disk();
+ _update_modified_scripts_for_external_editor();
}
if (p_what==NOTIFICATION_PROCESS) {
@@ -1409,6 +1485,11 @@ void ScriptEditor::_notification(int p_what) {
}
+void ScriptEditor::edited_scene_changed() {
+
+ _update_modified_scripts_for_external_editor();
+
+}
static const Node * _find_node_with_script(const Node* p_node, const RefPtr & p_script) {
@@ -2175,6 +2256,10 @@ void ScriptEditor::_history_back(){
void ScriptEditor::set_scene_root_script( Ref<Script> p_script ) {
bool open_dominant = EditorSettings::get_singleton()->get("text_editor/open_dominant_script_on_scene_change");
+
+ if (bool(EditorSettings::get_singleton()->get("external_editor/use_external_editor")))
+ return;
+
if (open_dominant && p_script.is_valid()) {
edit(p_script);
}
@@ -2317,6 +2402,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
debug_menu->get_popup()->add_item("Continue",DEBUG_CONTINUE);
debug_menu->get_popup()->add_separator();
debug_menu->get_popup()->add_check_item("Show Debugger",DEBUG_SHOW);
+ debug_menu->get_popup()->add_check_item("Keep Debuger Open",DEBUG_SHOW_KEEP_OPEN);
debug_menu->get_popup()->connect("item_pressed", this,"_menu_option");
debug_menu->get_popup()->set_item_disabled( debug_menu->get_popup()->get_item_index(DEBUG_NEXT), true);
@@ -2558,6 +2644,11 @@ void ScriptEditorPlugin::get_breakpoints(List<String> *p_breakpoints) {
return script_editor->get_breakpoints(p_breakpoints);
}
+void ScriptEditorPlugin::edited_scene_changed() {
+
+ script_editor->edited_scene_changed();
+}
+
ScriptEditorPlugin::ScriptEditorPlugin(EditorNode *p_node) {
editor=p_node;
@@ -2567,7 +2658,7 @@ ScriptEditorPlugin::ScriptEditorPlugin(EditorNode *p_node) {
script_editor->hide();
- EDITOR_DEF("text_editor/auto_reload_changed_scripts",false);
+ EDITOR_DEF("text_editor/auto_reload_scripts_on_external_change",true);
EDITOR_DEF("text_editor/open_dominant_script_on_scene_change",true);
EDITOR_DEF("external_editor/use_external_editor",false);
EDITOR_DEF("external_editor/exec_path","");
diff --git a/tools/editor/plugins/script_editor_plugin.h b/tools/editor/plugins/script_editor_plugin.h
index e755f570ef..32c1e7e1c8 100644
--- a/tools/editor/plugins/script_editor_plugin.h
+++ b/tools/editor/plugins/script_editor_plugin.h
@@ -103,7 +103,7 @@ public:
void reload_text();
String get_name() ;
Ref<Texture> get_icon() ;
-
+ bool is_unsaved();
ScriptTextEditor();
};
@@ -151,7 +151,8 @@ class ScriptEditor : public VBoxContainer {
DEBUG_BREAK,
DEBUG_CONTINUE,
DEBUG_SHOW,
- HELP_CONTEXTUAL,
+ DEBUG_SHOW_KEEP_OPEN,
+ HELP_CONTEXTUAL,
WINDOW_MOVE_LEFT,
WINDOW_MOVE_RIGHT,
WINDOW_NEXT,
@@ -271,6 +272,7 @@ class ScriptEditor : public VBoxContainer {
void _go_to_tab(int p_idx);
void _update_history_pos(int p_new_pos);
void _update_script_colors();
+ void _update_modified_scripts_for_external_editor();
static ScriptEditor *script_editor;
@@ -302,6 +304,8 @@ public:
void set_scene_root_script( Ref<Script> p_script );
+ virtual void edited_scene_changed();
+
ScriptEditorDebugger *get_debugger() { return debugger; }
ScriptEditor(EditorNode *p_editor);
@@ -338,6 +342,7 @@ public:
virtual void get_breakpoints(List<String> *p_breakpoints);
+ virtual void edited_scene_changed();
ScriptEditorPlugin(EditorNode *p_node);
~ScriptEditorPlugin();
diff --git a/tools/editor/plugins/shader_editor_plugin.cpp b/tools/editor/plugins/shader_editor_plugin.cpp
index a182d57742..848073af3e 100644
--- a/tools/editor/plugins/shader_editor_plugin.cpp
+++ b/tools/editor/plugins/shader_editor_plugin.cpp
@@ -235,6 +235,11 @@ void ShaderEditor::_menu_option(int p_option) {
void ShaderEditor::_tab_changed(int p_which) {
+ ShaderTextEditor *shader_editor = tab_container->get_child(p_which)->cast_to<ShaderTextEditor>();
+
+ if (shader_editor)
+ shader_editor->get_text_edit()->grab_focus();
+
ensure_select_current();
}
diff --git a/tools/editor/plugins/spatial_editor_plugin.cpp b/tools/editor/plugins/spatial_editor_plugin.cpp
index 7816efe89f..92ad991d96 100644
--- a/tools/editor/plugins/spatial_editor_plugin.cpp
+++ b/tools/editor/plugins/spatial_editor_plugin.cpp
@@ -736,6 +736,68 @@ void SpatialEditorViewport::_smouseenter() {
surface->grab_focus();
}
+void SpatialEditorViewport::_list_select(InputEventMouseButton b) {
+
+ _find_items_at_pos(Vector2( b.x, b.y ),clicked_includes_current,selection_results,b.mod.shift);
+
+ Node *scene=editor->get_edited_scene();
+
+ for(int i=0;i<selection_results.size();i++) {
+ Spatial *item=selection_results[i].item;
+ if (item!=scene && item->get_owner()!=scene && !scene->is_editable_instance(item->get_owner())) {
+ //invalid result
+ selection_results.remove(i);
+ i--;
+ }
+
+ }
+
+
+ clicked_wants_append=b.mod.shift;
+
+ if (selection_results.size() == 1) {
+
+ clicked=selection_results[0].item->get_instance_ID();
+ selection_results.clear();
+
+ if (clicked) {
+ _select_clicked(clicked_wants_append,true);
+ clicked=0;
+ }
+
+ } else if (!selection_results.empty()) {
+
+ NodePath root_path = get_tree()->get_edited_scene_root()->get_path();
+ StringName root_name = root_path.get_name(root_path.get_name_count()-1);
+
+ for (int i = 0; i < selection_results.size(); i++) {
+
+ Spatial *spat=selection_results[i].item;
+
+ Ref<Texture> icon;
+ if (spat->has_meta("_editor_icon"))
+ icon=spat->get_meta("_editor_icon");
+ else
+ icon=get_icon( has_icon(spat->get_type(),"EditorIcons")?spat->get_type():String("Object"),"EditorIcons");
+
+ String node_path="/"+root_name+"/"+root_path.rel_path_to(spat->get_path());
+
+ selection_menu->add_item(spat->get_name());
+ selection_menu->set_item_icon(i, icon );
+ selection_menu->set_item_metadata(i, node_path);
+ selection_menu->set_item_tooltip(i,String(spat->get_name())+
+ "\nType: "+spat->get_type()+"\nPath: "+node_path);
+ }
+
+ selection_menu->set_global_pos(Vector2( b.global_x, b.global_y ));
+ selection_menu->popup();
+ selection_menu->call_deferred("grab_click_focus");
+ selection_menu->set_invalidate_click_until_motion();
+
+
+
+ }
+}
void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
if (previewing)
@@ -868,50 +930,9 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
if (nav_scheme == NAVIGATION_MAYA)
break;
- _find_items_at_pos(Vector2( b.x, b.y ),clicked_includes_current,selection_results,b.mod.shift);
-
- clicked_wants_append=b.mod.shift;
-
- if (selection_results.size() == 1) {
-
- clicked=selection_results[0].item->get_instance_ID();
- selection_results.clear();
-
- if (clicked) {
- _select_clicked(clicked_wants_append,true);
- clicked=0;
- }
-
- } else if (!selection_results.empty()) {
-
- NodePath root_path = get_tree()->get_edited_scene_root()->get_path();
- StringName root_name = root_path.get_name(root_path.get_name_count()-1);
-
- for (int i = 0; i < selection_results.size(); i++) {
-
- Spatial *spat=selection_results[i].item;
-
- Ref<Texture> icon;
- if (spat->has_meta("_editor_icon"))
- icon=spat->get_meta("_editor_icon");
- else
- icon=get_icon( has_icon(spat->get_type(),"EditorIcons")?spat->get_type():String("Object"),"EditorIcons");
+ _list_select(b);
+ return;
- String node_path="/"+root_name+"/"+root_path.rel_path_to(spat->get_path());
-
- selection_menu->add_item(spat->get_name());
- selection_menu->set_item_icon(i, icon );
- selection_menu->set_item_metadata(i, node_path);
- selection_menu->set_item_tooltip(i,String(spat->get_name())+
- "\nType: "+spat->get_type()+"\nPath: "+node_path);
- }
-
- selection_menu->set_global_pos(Vector2( b.global_x, b.global_y ));
- selection_menu->popup();
- selection_menu->call_deferred("grab_click_focus");
-
- break;
- }
}
}
@@ -984,6 +1005,11 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
break;
}
+ if (spatial_editor->get_tool_mode()==SpatialEditor::TOOL_MODE_LIST_SELECT) {
+ _list_select(b);
+ break;
+ }
+
_edit.mouse_pos=Point2(b.x,b.y);
_edit.snap=false;
_edit.mode=TRANSFORM_NONE;
@@ -2841,13 +2867,14 @@ void SpatialEditor::_menu_item_pressed(int p_option) {
case MENU_TOOL_SELECT:
case MENU_TOOL_MOVE:
case MENU_TOOL_ROTATE:
- case MENU_TOOL_SCALE: {
+ case MENU_TOOL_SCALE:
+ case MENU_TOOL_LIST_SELECT: {
- for(int i=0;i<4;i++)
+ for(int i=0;i<TOOL_MAX;i++)
tool_button[i]->set_pressed(i==p_option);
tool_mode=(ToolMode)p_option;
- static const char *_mode[]={"Selection Mode.","Translation Mode.","Rotation Mode.","Scale Mode."};
+ static const char *_mode[]={"Selection Mode.","Translation Mode.","Rotation Mode.","Scale Mode.","List Selection Mode."};
// set_message(_mode[p_option],3);
update_transform_gizmo();
@@ -3530,6 +3557,7 @@ void SpatialEditor::_notification(int p_what) {
tool_button[SpatialEditor::TOOL_MODE_MOVE]->set_icon( get_icon("ToolMove","EditorIcons") );
tool_button[SpatialEditor::TOOL_MODE_ROTATE]->set_icon( get_icon("ToolRotate","EditorIcons") );
tool_button[SpatialEditor::TOOL_MODE_SCALE]->set_icon( get_icon("ToolScale","EditorIcons") );
+ tool_button[SpatialEditor::TOOL_MODE_LIST_SELECT]->set_icon( get_icon("ListSelect","EditorIcons") );
instance_button->set_icon( get_icon("SpatialAdd","EditorIcons") );
instance_button->hide();
@@ -3807,7 +3835,7 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) {
tool_button[TOOL_MODE_SELECT]->set_pressed(true);
button_binds[0]=MENU_TOOL_SELECT;
tool_button[TOOL_MODE_SELECT]->connect("pressed", this,"_menu_item_pressed",button_binds);
- tool_button[TOOL_MODE_SELECT]->set_tooltip("Select Mode (Q)");
+ tool_button[TOOL_MODE_SELECT]->set_tooltip("Select Mode (Q)\n"+keycode_get_string(KEY_MASK_CMD)+"Drag: Rotate\nAlt+Drag: Move\nAlt+RMB: Depth list selection");
tool_button[TOOL_MODE_MOVE] = memnew( ToolButton );
@@ -3839,10 +3867,22 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) {
hbc_menu->add_child( instance_button );
instance_button->set_flat(true);
instance_button->connect("pressed",this,"_instance_scene");
+ instance_button->hide();
VSeparator *vs = memnew( VSeparator );
hbc_menu->add_child(vs);
+ tool_button[TOOL_MODE_LIST_SELECT] = memnew( ToolButton );
+ hbc_menu->add_child( tool_button[TOOL_MODE_LIST_SELECT] );
+ tool_button[TOOL_MODE_LIST_SELECT]->set_toggle_mode(true);
+ tool_button[TOOL_MODE_LIST_SELECT]->set_flat(true);
+ button_binds[0]=MENU_TOOL_LIST_SELECT;
+ tool_button[TOOL_MODE_LIST_SELECT]->connect("pressed", this,"_menu_item_pressed",button_binds);
+ tool_button[TOOL_MODE_LIST_SELECT]->set_tooltip("Show a list of all objects at the position clicked\n(same as Alt+RMB in selet mode).");
+
+ vs = memnew( VSeparator );
+ hbc_menu->add_child(vs);
+
PopupMenu *p;
diff --git a/tools/editor/plugins/spatial_editor_plugin.h b/tools/editor/plugins/spatial_editor_plugin.h
index ebd3f77fe7..e7ea14ba6a 100644
--- a/tools/editor/plugins/spatial_editor_plugin.h
+++ b/tools/editor/plugins/spatial_editor_plugin.h
@@ -239,6 +239,7 @@ private:
void _finish_gizmo_instances();
void _selection_result_pressed(int);
void _selection_menu_hide();
+ void _list_select(InputEventMouseButton b);
protected:
@@ -287,7 +288,9 @@ public:
TOOL_MODE_SELECT,
TOOL_MODE_MOVE,
TOOL_MODE_ROTATE,
- TOOL_MODE_SCALE
+ TOOL_MODE_SCALE,
+ TOOL_MODE_LIST_SELECT,
+ TOOL_MAX
};
@@ -369,6 +372,7 @@ private:
MENU_TOOL_MOVE,
MENU_TOOL_ROTATE,
MENU_TOOL_SCALE,
+ MENU_TOOL_LIST_SELECT,
MENU_TRANSFORM_USE_SNAP,
MENU_TRANSFORM_CONFIGURE_SNAP,
MENU_TRANSFORM_LOCAL_COORDS,
@@ -392,7 +396,7 @@ private:
};
- Button *tool_button[4];
+ Button *tool_button[TOOL_MAX];
Button *instance_button;
diff --git a/tools/editor/project_export.cpp b/tools/editor/project_export.cpp
index b288439b74..29f9918e26 100644
--- a/tools/editor/project_export.cpp
+++ b/tools/editor/project_export.cpp
@@ -471,20 +471,32 @@ void ProjectExportDialog::_export_action_pck(const String& p_file) {
ERR_PRINT("Invalid platform for export of PCK");
return;
}
- FileAccess *f = FileAccess::open(p_file,FileAccess::WRITE);
- if (!f) {
- error->set_text("Error exporting project PCK! Can't write");
- error->popup_centered_minsize();
- }
- ERR_FAIL_COND(!f);
- Error err = exporter->save_pack(f,false);
- memdelete(f);
+ if (p_file.ends_with(".pck")) {
+ FileAccess *f = FileAccess::open(p_file,FileAccess::WRITE);
+ if (!f) {
+ error->set_text("Error exporting project PCK! Can't write");
+ error->popup_centered_minsize();
+ }
+ ERR_FAIL_COND(!f);
- if (err!=OK) {
- error->set_text("Error exporting project!");
- error->popup_centered_minsize();
- return;
+ Error err = exporter->save_pack(f,false);
+ memdelete(f);
+
+ if (err!=OK) {
+ error->set_text("Error exporting project!");
+ error->popup_centered_minsize();
+ return;
+ }
+ } else if (p_file.ends_with(".zip")) {
+
+ Error err = exporter->save_zip(p_file,false);
+
+ if (err!=OK) {
+ error->set_text("Error exporting project!");
+ error->popup_centered_minsize();
+ return;
+ }
}
}
@@ -1395,7 +1407,7 @@ ProjectExportDialog::ProjectExportDialog(EditorNode *p_editor) {
add_child(confirm);
confirm->connect("confirmed",this,"_confirmed");
- get_ok()->set_text("Export PCK");
+ get_ok()->set_text("Export PCK/Zip");
expopt="--,Export,Bundle";
@@ -1425,6 +1437,7 @@ ProjectExportDialog::ProjectExportDialog(EditorNode *p_editor) {
pck_export->set_title("Export Project PCK");
pck_export->connect("file_selected", this,"_export_action_pck");
pck_export->add_filter("*.pck ; Data Pack");
+ pck_export->add_filter("*.zip ; Zip");
add_child(pck_export);
button_export = add_button("Export..",!OS::get_singleton()->get_swap_ok_cancel(),"export_pck");
diff --git a/tools/editor/project_manager.cpp b/tools/editor/project_manager.cpp
index 04705017d2..4db56ea2f9 100644
--- a/tools/editor/project_manager.cpp
+++ b/tools/editor/project_manager.cpp
@@ -825,6 +825,19 @@ ProjectManager::ProjectManager() {
FileDialog::set_default_show_hidden_files(EditorSettings::get_singleton()->get("file_dialog/show_hidden_files"));
set_area_as_parent_rect();
+
+ Ref<Theme> theme = Ref<Theme>( memnew( Theme ) );
+ set_theme(theme);
+ editor_register_icons(theme);
+
+ String global_font = EditorSettings::get_singleton()->get("global/font");
+ if (global_font!="") {
+ Ref<Font> fnt = ResourceLoader::load(global_font);
+ if (fnt.is_valid()) {
+ theme->set_default_theme_font(fnt);
+ }
+ }
+
Panel *panel = memnew( Panel );
add_child(panel);
panel->set_area_as_parent_rect();
@@ -972,10 +985,6 @@ ProjectManager::ProjectManager() {
npdialog = memnew( NewProjectDialog );
add_child(npdialog);
- Ref<Theme> theme = memnew( Theme );
- editor_register_icons(theme);
- set_theme(theme);
-
npdialog->connect("project_created", this,"_load_recent_projects");
_load_recent_projects();
diff --git a/tools/editor/project_settings.cpp b/tools/editor/project_settings.cpp
index 2fd8b37753..a2419895eb 100644
--- a/tools/editor/project_settings.cpp
+++ b/tools/editor/project_settings.cpp
@@ -722,6 +722,10 @@ void ProjectSettings::_translation_file_open() {
void ProjectSettings::_autoload_file_callback(const String& p_path) {
autoload_add_path->set_text(p_path);
+ if (autoload_add_name->get_text().strip_edges()==String()) {
+
+ autoload_add_name->set_text( p_path.get_file().basename() );
+ }
//_translation_add(p_translation);
}
@@ -769,6 +773,9 @@ void ProjectSettings::_autoload_add() {
undo_redo->add_undo_method(this,"_settings_changed");
undo_redo->commit_action();
+ autoload_add_path->set_text("");
+ autoload_add_name->set_text("");
+
//autoload_file_open->popup_centered_ratio();
}
@@ -1589,11 +1596,6 @@ ProjectSettings::ProjectSettings(EditorData *p_data) {
HBoxContainer *ahb = memnew( HBoxContainer);
avb->add_child(ahb);
- VBoxContainer *avb_name = memnew( VBoxContainer );
- avb_name->set_h_size_flags(SIZE_EXPAND_FILL);
- autoload_add_name = memnew(LineEdit);
- avb_name->add_margin_child("Node Name:",autoload_add_name);
- ahb->add_child(avb_name);
VBoxContainer *avb_path = memnew( VBoxContainer );
avb_path->set_h_size_flags(SIZE_EXPAND_FILL);
@@ -1604,13 +1606,24 @@ ProjectSettings::ProjectSettings(EditorData *p_data) {
Button *browseaa = memnew( Button("..") );
ahb_path->add_child(browseaa);
browseaa->connect("pressed",this,"_autoload_file_open");
- Button *addaa = memnew( Button("Add") );
- ahb_path->add_child(addaa);
- addaa->connect("pressed",this,"_autoload_add");
avb_path->add_margin_child("Path:",ahb_path);
ahb->add_child(avb_path);
+ VBoxContainer *avb_name = memnew( VBoxContainer );
+ avb_name->set_h_size_flags(SIZE_EXPAND_FILL);
+
+ HBoxContainer *ahb_name = memnew( HBoxContainer );
+ autoload_add_name = memnew(LineEdit);
+ autoload_add_name->set_h_size_flags(SIZE_EXPAND_FILL);
+ ahb_name->add_child(autoload_add_name);
+ avb_name->add_margin_child("Node Name:",ahb_name);
+ Button *addaa = memnew( Button("Add") );
+ ahb_name->add_child(addaa);
+ addaa->connect("pressed",this,"_autoload_add");
+
+ ahb->add_child(avb_name);
+
autoload_list = memnew( Tree );
autoload_list->set_v_size_flags(SIZE_EXPAND_FILL);
avb->add_margin_child("List:",autoload_list,true);
diff --git a/tools/editor/property_editor.cpp b/tools/editor/property_editor.cpp
index 0fe3dee2ea..c44cfa3d6e 100644
--- a/tools/editor/property_editor.cpp
+++ b/tools/editor/property_editor.cpp
@@ -89,13 +89,23 @@ void CustomPropertyEditor::_menu_option(int p_which) {
case OBJ_MENU_LOAD: {
file->set_mode(EditorFileDialog::MODE_OPEN_FILE);
- List<String> extensions;
String type=(hint==PROPERTY_HINT_RESOURCE_TYPE)?hint_text:String();
- ResourceLoader::get_recognized_extensions_for_type(type,&extensions);
- file->clear_filters();
+ List<String> extensions;
+ for (int i=0;i<type.get_slice_count(",");i++) {
+
+ ResourceLoader::get_recognized_extensions_for_type(type.get_slice(",",i),&extensions);
+ }
+
+ Set<String> valid_extensions;
for (List<String>::Element *E=extensions.front();E;E=E->next()) {
+ valid_extensions.insert(E->get());
+ }
+
+ file->clear_filters();
+ for (Set<String>::Element *E=valid_extensions.front();E;E=E->next()) {
+
file->add_filter("*."+E->get()+" ; "+E->get().to_upper() );
}
@@ -905,15 +915,25 @@ void CustomPropertyEditor::_color_changed(const Color& p_color) {
void CustomPropertyEditor::_node_path_selected(NodePath p_path) {
- if (owner && owner->is_type("Node")) {
+ if (owner) {
+
+ Node *node=NULL;
+
+ if (owner->is_type("Node"))
+ node = owner->cast_to<Node>();
+ else if (owner->is_type("ArrayPropertyEdit"))
+ node = owner->cast_to<ArrayPropertyEdit>()->get_node();
+
+ if (!node) {
+ v=p_path;
+ emit_signal("variant_changed");
+ return;
+ }
- Node *node = owner->cast_to<Node>();
Node *tonode=node->get_node(p_path);
if (tonode) {
-
p_path=node->get_path_to(tonode);
}
-
}
v=p_path;
@@ -2207,9 +2227,9 @@ TreeItem *PropertyEditor::get_parent_node(String p_path,HashMap<String,TreeItem*
}
item->set_editable(0,false);
- item->set_selectable(0,false);
+ item->set_selectable(0,subsection_selectable);
item->set_editable(1,false);
- item->set_selectable(1,false);
+ item->set_selectable(1,subsection_selectable);
if (item->get_parent()==root) {
@@ -2549,7 +2569,8 @@ void PropertyEditor::update_tree() {
item->set_cell_mode( 1, TreeItem::CELL_MODE_CHECK );
item->set_text(1,"On");
item->set_checked( 1, obj->get( p.name ) );
- item->set_icon( 0, get_icon("Bool","EditorIcons") );
+ if (show_type_icons)
+ item->set_icon( 0, get_icon("Bool","EditorIcons") );
item->set_editable(1,!read_only);
} break;
@@ -2561,7 +2582,8 @@ void PropertyEditor::update_tree() {
item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM );
item->set_text(1, String::num(obj->get( p.name ),2) );
item->set_editable(1,!read_only);
- item->set_icon( 0, get_icon("Curve","EditorIcons"));
+ if (show_type_icons)
+ item->set_icon( 0, get_icon("Curve","EditorIcons"));
break;
@@ -2631,7 +2653,8 @@ void PropertyEditor::update_tree() {
// int c = p.hint_string.get_slice_count(",");
item->set_text(1,p.hint_string);
- item->set_icon( 0,get_icon("Enum","EditorIcons") );
+ if (show_type_icons)
+ item->set_icon( 0,get_icon("Enum","EditorIcons") );
item->set_range(1, obj->get( p.name ) );
item->set_editable(1,!read_only);
break;
@@ -2647,11 +2670,13 @@ void PropertyEditor::update_tree() {
};
if (p.type==Variant::REAL) {
- item->set_icon( 0, get_icon("Real","EditorIcons"));
+ if (show_type_icons)
+ item->set_icon( 0, get_icon("Real","EditorIcons"));
item->set_range(1, obj->get( p.name ) );
} else {
- item->set_icon( 0,get_icon("Integer","EditorIcons") );
+ if (show_type_icons)
+ item->set_icon( 0,get_icon("Integer","EditorIcons") );
item->set_range(1, obj->get( p.name ) );
}
@@ -2671,7 +2696,8 @@ void PropertyEditor::update_tree() {
item->set_cell_mode( 1, TreeItem::CELL_MODE_STRING );
item->set_editable(1,!read_only);
- item->set_icon( 0, get_icon("File","EditorIcons") );
+ if (show_type_icons)
+ item->set_icon( 0, get_icon("File","EditorIcons") );
item->set_text(1,obj->get(p.name));
item->add_button(1,get_icon("Folder","EditorIcons"));
@@ -2691,7 +2717,8 @@ void PropertyEditor::update_tree() {
item->set_text(1, p.hint_string);
item->set_range(1,idx);
item->set_editable( 1, !read_only );
- item->set_icon( 0,get_icon("Enum","EditorIcons") );
+ if (show_type_icons)
+ item->set_icon( 0,get_icon("Enum","EditorIcons") );
} break;
@@ -2699,7 +2726,8 @@ void PropertyEditor::update_tree() {
item->set_cell_mode( 1, TreeItem::CELL_MODE_STRING );
item->set_editable(1,!read_only);
- item->set_icon( 0, get_icon("String","EditorIcons") );
+ if (show_type_icons)
+ item->set_icon( 0, get_icon("String","EditorIcons") );
item->set_text(1,obj->get(p.name));
if (p.hint==PROPERTY_HINT_MULTILINE_TEXT)
item->add_button(1,get_icon("MultiLine","EditorIcons") );
@@ -2719,7 +2747,8 @@ void PropertyEditor::update_tree() {
item->set_text(1,"Array["+itos(v.call("size"))+"]");
else
item->set_text(1,"Array[]");
- item->set_icon( 0, get_icon("ArrayData","EditorIcons") );
+ if (show_type_icons)
+ item->set_icon( 0, get_icon("ArrayData","EditorIcons") );
} break;
@@ -2734,7 +2763,8 @@ void PropertyEditor::update_tree() {
item->set_text(1,"IntArray["+itos(v.call("size"))+"]");
else
item->set_text(1,"IntArray[]");
- item->set_icon( 0, get_icon("ArrayInt","EditorIcons") );
+ if (show_type_icons)
+ item->set_icon( 0, get_icon("ArrayInt","EditorIcons") );
} break;
@@ -2748,7 +2778,8 @@ void PropertyEditor::update_tree() {
item->set_text(1,"FloatArray["+itos(v.call("size"))+"]");
else
item->set_text(1,"FloatArray[]");
- item->set_icon( 0, get_icon("ArrayReal","EditorIcons") );
+ if (show_type_icons)
+ item->set_icon( 0, get_icon("ArrayReal","EditorIcons") );
} break;
@@ -2762,7 +2793,8 @@ void PropertyEditor::update_tree() {
item->set_text(1,"String["+itos(v.call("size"))+"]");
else
item->set_text(1,"String[]");
- item->set_icon( 0, get_icon("ArrayString","EditorIcons") );
+ if (show_type_icons)
+ item->set_icon( 0, get_icon("ArrayString","EditorIcons") );
} break;
@@ -2776,7 +2808,8 @@ void PropertyEditor::update_tree() {
item->set_text(1,"Byte["+itos(v.call("size"))+"]");
else
item->set_text(1,"Byte[]");
- item->set_icon( 0, get_icon("ArrayData","EditorIcons") );
+ if (show_type_icons)
+ item->set_icon( 0, get_icon("ArrayData","EditorIcons") );
} break;
@@ -2790,7 +2823,8 @@ void PropertyEditor::update_tree() {
item->set_text(1,"Vector2["+itos(v.call("size"))+"]");
else
item->set_text(1,"Vector2[]");
- item->set_icon( 0, get_icon("Vector2","EditorIcons") );
+ if (show_type_icons)
+ item->set_icon( 0, get_icon("Vector2","EditorIcons") );
} break;
@@ -2804,7 +2838,8 @@ void PropertyEditor::update_tree() {
item->set_text(1,"Vector3["+itos(v.call("size"))+"]");
else
item->set_text(1,"Vector3[]");
- item->set_icon( 0, get_icon("Vector","EditorIcons") );
+ if (show_type_icons)
+ item->set_icon( 0, get_icon("Vector","EditorIcons") );
} break;
@@ -2818,7 +2853,8 @@ void PropertyEditor::update_tree() {
item->set_text(1,"Color["+itos(v.call("size"))+"]");
else
item->set_text(1,"Color[]");
- item->set_icon( 0, get_icon("Color","EditorIcons") );
+ if (show_type_icons)
+ item->set_icon( 0, get_icon("Color","EditorIcons") );
} break;
@@ -2827,7 +2863,8 @@ void PropertyEditor::update_tree() {
item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM );
item->set_editable( 1, true );
item->set_text(1,obj->get(p.name));
- item->set_icon( 0,get_icon("Vector2","EditorIcons") );
+ if (show_type_icons)
+ item->set_icon( 0,get_icon("Vector2","EditorIcons") );
} break;
case Variant::RECT2: {
@@ -2835,7 +2872,8 @@ void PropertyEditor::update_tree() {
item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM );
item->set_editable( 1, true );
item->set_text(1,obj->get(p.name));
- item->set_icon( 0,get_icon("Rect2","EditorIcons") );
+ if (show_type_icons)
+ item->set_icon( 0,get_icon("Rect2","EditorIcons") );
} break;
case Variant::VECTOR3: {
@@ -2843,7 +2881,8 @@ void PropertyEditor::update_tree() {
item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM );
item->set_editable( 1, true );
item->set_text(1,obj->get(p.name));
- item->set_icon( 0,get_icon("Vector","EditorIcons") );
+ if (show_type_icons)
+ item->set_icon( 0,get_icon("Vector","EditorIcons") );
} break;
case Variant::MATRIX32:
@@ -2858,7 +2897,8 @@ void PropertyEditor::update_tree() {
item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM );
item->set_editable( 1, true );
item->set_text(1,obj->get(p.name));
- item->set_icon( 0,get_icon("Matrix","EditorIcons") );
+ if (show_type_icons)
+ item->set_icon( 0,get_icon("Matrix","EditorIcons") );
} break;
case Variant::PLANE: {
@@ -2866,7 +2906,8 @@ void PropertyEditor::update_tree() {
item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM );
item->set_editable( 1, true );
item->set_text(1,obj->get(p.name));
- item->set_icon( 0,get_icon("Plane","EditorIcons") );
+ if (show_type_icons)
+ item->set_icon( 0,get_icon("Plane","EditorIcons") );
} break;
case Variant::_AABB: {
@@ -2874,7 +2915,8 @@ void PropertyEditor::update_tree() {
item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM );
item->set_editable( 1, true );
item->set_text(1,"AABB");
- item->set_icon( 0,get_icon("Rect3","EditorIcons") );
+ if (show_type_icons)
+ item->set_icon( 0,get_icon("Rect3","EditorIcons") );
} break;
case Variant::QUAT: {
@@ -2882,7 +2924,8 @@ void PropertyEditor::update_tree() {
item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM );
item->set_editable( 1, true );
item->set_text(1,obj->get(p.name));
- item->set_icon( 0,get_icon("Quat","EditorIcons") );
+ if (show_type_icons)
+ item->set_icon( 0,get_icon("Quat","EditorIcons") );
} break;
case Variant::COLOR: {
@@ -2891,7 +2934,8 @@ void PropertyEditor::update_tree() {
item->set_editable( 1, !read_only );
// item->set_text(1,obj->get(p.name));
item->set_custom_bg_color(1,obj->get(p.name));
- item->set_icon( 0,get_icon("Color","EditorIcons") );
+ if (show_type_icons)
+ item->set_icon( 0,get_icon("Color","EditorIcons") );
} break;
case Variant::IMAGE: {
@@ -2903,7 +2947,8 @@ void PropertyEditor::update_tree() {
item->set_text(1,"[Image (empty)]");
else
item->set_text(1,"[Image "+itos(img.get_width())+"x"+itos(img.get_height())+"]");
- item->set_icon( 0,get_icon("Image","EditorIcons") );
+ if (show_type_icons)
+ item->set_icon( 0,get_icon("Image","EditorIcons") );
} break;
case Variant::NODE_PATH: {
@@ -3511,7 +3556,15 @@ void PropertyEditor::register_text_enter(Node* p_line_edit) {
if (search_box)
search_box->connect("text_changed",this,"_filter_changed");
+}
+
+void PropertyEditor::set_subsection_selectable(bool p_selectable) {
+
+ if (p_selectable==subsection_selectable)
+ return;
+ subsection_selectable=p_selectable;
+ update_tree();
}
PropertyEditor::PropertyEditor() {
@@ -3573,8 +3626,9 @@ PropertyEditor::PropertyEditor() {
show_categories=false;
refresh_countdown=0;
use_doc_hints=false;
-
use_filter=false;
+ subsection_selectable=false;
+ show_type_icons=EDITOR_DEF("inspector/show_type_icons",false);
}
diff --git a/tools/editor/property_editor.h b/tools/editor/property_editor.h
index 5fb8386b1b..e933d7ab3b 100644
--- a/tools/editor/property_editor.h
+++ b/tools/editor/property_editor.h
@@ -161,10 +161,11 @@ class PropertyEditor : public Control {
bool keying;
bool read_only;
bool show_categories;
+ bool show_type_icons;
float refresh_countdown;
bool use_doc_hints;
-
bool use_filter;
+ bool subsection_selectable;
HashMap<String,String> pending;
String selected_property;
@@ -239,6 +240,8 @@ public:
void set_use_filter(bool p_use);
void register_text_enter(Node *p_line_edit);
+ void set_subsection_selectable(bool p_selectable);
+
PropertyEditor();
~PropertyEditor();
diff --git a/tools/editor/reparent_dialog.cpp b/tools/editor/reparent_dialog.cpp
index 78ba47d54b..f024844731 100644
--- a/tools/editor/reparent_dialog.cpp
+++ b/tools/editor/reparent_dialog.cpp
@@ -36,12 +36,12 @@
void ReparentDialog::_notification(int p_what) {
- if (p_what==NOTIFICATION_ENTER_TREE) {
+ if (p_what==NOTIFICATION_ENTER_TREE) {
connect("confirmed", this,"_reparent");
}
- if (p_what==NOTIFICATION_EXIT_TREE) {
+ if (p_what==NOTIFICATION_EXIT_TREE) {
disconnect("confirmed", this,"_reparent");
}
@@ -83,29 +83,29 @@ void ReparentDialog::_bind_methods() {
ReparentDialog::ReparentDialog() {
-
set_title("Reparent Node");
+
VBoxContainer *vbc = memnew( VBoxContainer );
add_child(vbc);
set_child_rect(vbc);
tree = memnew( SceneTreeEditor(false) );
-
+ tree->set_show_enabled_subscene(true);
vbc->add_margin_child("Reparent Location (Select new Parent):",tree,true);
-
+
+ tree->get_scene_tree()->connect("item_activated",this,"_reparent");
+
//Label *label = memnew( Label );
//label->set_pos( Point2( 15,8) );
//label->set_text("Reparent Location (Select new Parent):");
-
+
node_only = memnew( CheckButton );
add_child(node_only);
node_only->hide();
- tree->set_show_enabled_subscene(true);
//vbc->add_margin_child("Options:",node_only);;
-
//cancel->connect("pressed", this,"_cancel");
diff --git a/tools/editor/scene_tree_editor.cpp b/tools/editor/scene_tree_editor.cpp
index 6575603073..a164703e31 100644
--- a/tools/editor/scene_tree_editor.cpp
+++ b/tools/editor/scene_tree_editor.cpp
@@ -928,7 +928,7 @@ void SceneTreeDialog::_cancel() {
void SceneTreeDialog::_select() {
if (tree->get_selected()) {
- emit_signal("selected",tree->get_selected()->get_path());
+ emit_signal("selected",tree->get_selected()->get_path());
hide();
}
}
@@ -939,7 +939,6 @@ void SceneTreeDialog::_bind_methods() {
ObjectTypeDB::bind_method("_cancel",&SceneTreeDialog::_cancel);
ADD_SIGNAL( MethodInfo("selected",PropertyInfo(Variant::NODE_PATH,"path")));
-
}
@@ -951,7 +950,7 @@ SceneTreeDialog::SceneTreeDialog() {
add_child(tree);
set_child_rect(tree);
-
+ tree->get_scene_tree()->connect("item_activated",this,"_select");
}
diff --git a/tools/editor/script_editor_debugger.cpp b/tools/editor/script_editor_debugger.cpp
index 60f2afa2c2..d0bf4faf02 100644
--- a/tools/editor/script_editor_debugger.cpp
+++ b/tools/editor/script_editor_debugger.cpp
@@ -571,10 +571,10 @@ void ScriptEditorDebugger::_notification(int p_what) {
show();
+
dobreak->set_disabled(false);
tabs->set_current_tab(0);
- emit_signal("show_debugger",true);
reason->set_text("Child Process Connected");
reason->set_tooltip("Child Process Connected");
scene_tree->clear();
@@ -737,8 +737,10 @@ void ScriptEditorDebugger::stop(){
le_set->set_disabled(true);
- hide();
- emit_signal("show_debugger",false);
+ if (hide_on_stop) {
+ hide();
+ emit_signal("show_debugger",false);
+ }
}
@@ -768,9 +770,7 @@ void ScriptEditorDebugger::_stack_dump_frame_selected() {
void ScriptEditorDebugger::_hide_request() {
- hide();
emit_signal("show_debugger",false);
-
}
void ScriptEditorDebugger::_output_clear() {
@@ -1160,6 +1160,10 @@ void ScriptEditorDebugger:: _error_stack_selected(int p_idx){
}
+void ScriptEditorDebugger::set_hide_on_stop(bool p_hide) {
+
+ hide_on_stop=p_hide;
+}
void ScriptEditorDebugger::_bind_methods() {
@@ -1462,6 +1466,7 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor){
live_debug=false;
last_path_id=false;
error_count=0;
+ hide_on_stop=true;
last_error_count=0;
diff --git a/tools/editor/script_editor_debugger.h b/tools/editor/script_editor_debugger.h
index 6b66a62dd5..43666b37d5 100644
--- a/tools/editor/script_editor_debugger.h
+++ b/tools/editor/script_editor_debugger.h
@@ -71,6 +71,8 @@ class ScriptEditorDebugger : public Control {
int error_count;
int last_error_count;
+ bool hide_on_stop;
+
TextureButton *tb;
@@ -182,6 +184,7 @@ public:
void update_live_edit_root();
+ void set_hide_on_stop(bool p_hide);
virtual Size2 get_minimum_size() const;
ScriptEditorDebugger(EditorNode *p_editor=NULL);
diff --git a/tools/editor/spatial_editor_gizmos.cpp b/tools/editor/spatial_editor_gizmos.cpp
index 5efca44c7d..04a6b1b437 100644
--- a/tools/editor/spatial_editor_gizmos.cpp
+++ b/tools/editor/spatial_editor_gizmos.cpp
@@ -2283,6 +2283,8 @@ void NavigationMeshSpatialGizmo::redraw() {
}
}
+ if (faces.empty())
+ return;
Map<_EdgeKey,bool> edge_map;
DVector<Vector3> tmeshfaces;
@@ -2330,7 +2332,7 @@ void NavigationMeshSpatialGizmo::redraw() {
}
}
- Ref<TriangleMesh> tmesh = memnew( TriangleMesh);
+ Ref<TriangleMesh> tmesh = memnew( TriangleMesh );
tmesh->create(tmeshfaces);
if (lines.size())