[
  {
    "path": ".gitignore",
    "content": "# Godot-specific ignores\n.import/\nexport.cfg\nexport_presets.cfg\n\n# Mono-specific ignores\n.mono/\n\n# System/tool-specific ignores\n.directory\n*~\n\n# Project ignores\ndist\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2018 Nathan Lovato\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "# Godot Power Pitch\n\nGodot Power Pitch is a Free and Open-Source presentation of the [Godot game engine](https://godotengine.org/) running in the game engine. As it's a Godot game, you can:\n\n- Run **games inside your slides**\n- **Translate your presentations** into many languages with only a spreadsheet editor\n- **Animate anything** with the animation editor or tweens, add particles and sounds\n- Or even be creative and display the slides inside of a game!\n\nIt'll save you hours of work if you want to introduce Godot at meetups and other gamedev events. And you can customize it to better suit your needs!\n\nPower Pitch was made also a slideshow system made in Godot, that now became its own project: [Godot presentations](https://github.com/GDQuest/godot-presentations).\n\n## Videos and articles\n\n1. [Discover Godot: the Free 2D and 3D game engine](https://youtu.be/qVl3BYY6zaQ) (Power Pitch)\n1. [How to Use Translations and Contribute New Languages](https://youtu.be/txCSyNgzvzw)\n1. [Godot slides 2.0: open source presentation tool in Godot](https://youtu.be/JO2TvlLGf8Q) (Project overview)\n\nYou can also find a video recording of the original 40 minutes [Intro to Godot 3](https://www.youtube.com/watch?v=4v3qge-3CqQ) (*Thanks to Gabriel Marais for the English translation*).\n\n## Controls\n\nYou can change the slide with a swipe of your finger on a touchscreen, or by hovering and clicking on the arrows on the edges of the screen. You can also navigate the slides with left and right mouse clicks: <kbd>LMB</kbd> and <kbd>RMB</kbd>.\n\nOn a keyboard, press <kbd>n</kbd> and <kbd>p</kbd> to jump to the **next** and the **previous** slide respectively. You may also use <kbd>,</kbd> and <kbd>.</kbd>, the <kbd><</kbd> and <kbd>></kbd> keys on QWERTY keyboards. You can use the angle brackets to avoid colliding with the demos' input actions inside your slides. To toggle fullscreen, press <kbd>f</kbd>.\n\n## Help us translate the slides!\n\nThe Power Pitch currently ships with these languages in version 2.0:\n\n- English\n- French\n- Japanese\n- Spanish\n- Portuguese (BR)\n- German\n- Indonesian\n- Italian\n- Chinese\n- Korean\n- Ukrainian\n- Slovak\n- Polish\n\nLet's translate it in as many languages as possible! This way people can pitch Godot all around the world, in local game creator meetups.\n\n## How to contribute translations\n\nFirst, open the translations file located at `godot-3-presentation/content/power-pitch/PowerPitch.csv` with your preferred text or spreadsheets editor.\n\nThen, you will see various language codes in the first row. Add to the next available column your language code according to [this list](https://godot.readthedocs.io/en/stable/tutorials/i18n/locales.html).\n\nIn the followings rows, add your translation for each text, in the column you used to add your language. Remember to respect the BBCode!\n\nAfter that, open up the project in Godot. A `*.translation` file with your language code will be generated at `godot-3-presentation/content/power-pitch`. We will add this file to translations by going into `Project > Project Settings > Localization` and clicking the `Add` button.\n\nFinally, open the `godot-3-presentation/presentation/Presentation.gd` file. In the first lines, you will see an exported enumeration with different language codes. Add yours (the same that you added before).\n\n```\nexport(String, 'en', 'ja', 'fr', 'es', 'pt_BR', 'de', 'it') var LANGUAGE_MAIN = 'en'\nexport(String, 'en', 'ja', 'fr', 'es', 'pt_BR', 'de', 'it') var LANGUAGE_SECOND = 'ja'\n```\n\nThen you can set up your language in the `godot-3-presentation/presentation/Presentation.tscn` scene and run the presentation with your language.\nThank you for your translation!\n\n## Licenses\n\n**The code is under the MIT license terms**. The pictures and video files are under CC-By 4.0 (see below for the full credits).\n\n### Credits\n\n- Furry Defenders by [Kivano](http://www.kivano.games/)\n- [Slyway](https://play.google.com/store/apps/details?id=fr.guaranapps.games.get_teddy) by Guaranapps\n- [Jotsway Canyon](https://jaggygames.itch.io/jotswaycanyon) by JaggyGames\n- [RPG in a Box](http://www.rpginabox.com/) by Justin\n- [Andreas Esau](https://www.youtube.com/user/ndee85)\n- Wallrider by [Zylann Productions](https://www.youtube.com/user/ZylannMP3/videos)\n- HTC Vive/Virtual Reality demo modelled by Clelio Rossi, Davide Romboli and Andrea Laghi, developed by Lamberto Tedaldi\n"
  },
  {
    "path": "godot-3-presentation/assets/theme/fonts/code_source_pro_18.tres",
    "content": "[gd_resource type=\"DynamicFont\" load_steps=2 format=2]\n\n[ext_resource path=\"res://content/demos/attacks/characters/debug/source-code-pro-bold.otf\" type=\"DynamicFontData\" id=1]\n\n[resource]\nsize = 18\nuse_filter = true\nfont_data = ExtResource( 1 )\n"
  },
  {
    "path": "godot-3-presentation/assets/theme/fonts/default_noto_30.tres",
    "content": "[gd_resource type=\"DynamicFont\" load_steps=4 format=2]\n\n[ext_resource path=\"res://assets/theme/fonts/CJK/NotoSans-SemiBold.ttf\" type=\"DynamicFontData\" id=1]\n[ext_resource path=\"res://assets/theme/fonts/CJK/NotoSansCJKjp-Medium.otf\" type=\"DynamicFontData\" id=2]\n[ext_resource path=\"res://assets/theme/fonts/arabic/NotoSansArabicUI-Medium.ttf\" type=\"DynamicFontData\" id=3]\n\n[resource]\nsize = 30\nuse_filter = true\nfont_data = ExtResource( 1 )\nfallback/0 = ExtResource( 2 )\nfallback/1 = ExtResource( 3 )\n"
  },
  {
    "path": "godot-3-presentation/assets/theme/fonts/subtitle_montserrat.tres",
    "content": "[gd_resource type=\"DynamicFont\" load_steps=2 format=2]\n\n[ext_resource path=\"res://assets/fonts/montserrat/montserrat-extrabold.ttf\" type=\"DynamicFontData\" id=1]\n\n[resource]\nsize = 40\nuse_filter = true\nfont_data = ExtResource( 1 )\n"
  },
  {
    "path": "godot-3-presentation/assets/theme/fonts/subtitle_noto.tres",
    "content": "[gd_resource type=\"DynamicFont\" load_steps=3 format=2]\n\n[ext_resource path=\"res://assets/theme/fonts/CJK/NotoSansCJKjp-Medium.otf\" type=\"DynamicFontData\" id=1]\n[ext_resource path=\"res://assets/theme/fonts/arabic/NotoSansArabicUI-Medium.ttf\" type=\"DynamicFontData\" id=2]\n\n[resource]\nsize = 40\nuse_filter = true\nextra_spacing_bottom = 12\nfont_data = ExtResource( 1 )\nfallback/0 = ExtResource( 2 )\n"
  },
  {
    "path": "godot-3-presentation/assets/theme/fonts/title_montserrat.tres",
    "content": "[gd_resource type=\"DynamicFont\" load_steps=4 format=2]\n\n[ext_resource path=\"res://assets/theme/fonts/CJK/NotoSansCJKjp-Medium.otf\" type=\"DynamicFontData\" id=1]\n[ext_resource path=\"res://assets/theme/fonts/arabic/NotoSansArabicUI-ExtraBold.ttf\" type=\"DynamicFontData\" id=2]\n[ext_resource path=\"res://assets/fonts/montserrat/montserrat-black.ttf\" type=\"DynamicFontData\" id=3]\n\n[resource]\nsize = 88\nuse_filter = true\nextra_spacing_bottom = -14\nfont_data = ExtResource( 3 )\nfallback/0 = ExtResource( 1 )\nfallback/1 = ExtResource( 2 )\n"
  },
  {
    "path": "godot-3-presentation/assets/theme/fonts/title_noto.tres",
    "content": "[gd_resource type=\"DynamicFont\" load_steps=3 format=2]\n\n[ext_resource path=\"res://assets/theme/fonts/CJK/NotoSansCJKjp-Medium.otf\" type=\"DynamicFontData\" id=1]\n[ext_resource path=\"res://assets/theme/fonts/arabic/NotoSansArabicUI-ExtraBold.ttf\" type=\"DynamicFontData\" id=2]\n\n[resource]\nsize = 92\nuse_filter = true\nextra_spacing_bottom = -12\nfont_data = ExtResource( 1 )\nfallback/0 = ExtResource( 2 )\n"
  },
  {
    "path": "godot-3-presentation/assets/theme/sprites/footer_dusk.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/footer_dusk.png-ff5389c8682739255fc1c0ef941953da.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/theme/sprites/footer_dusk.png\"\ndest_files=[ \"res://.import/footer_dusk.png-ff5389c8682739255fc1c0ef941953da.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/assets/theme/sprites/header_dusk.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/header_dusk.png-2ceaa44ede42e00169008f135a46608a.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://assets/theme/sprites/header_dusk.png\"\ndest_files=[ \"res://.import/header_dusk.png-2ceaa44ede42e00169008f135a46608a.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/demos/attacks/AttackDummies.tscn",
    "content": "[gd_scene load_steps=5 format=2]\n\n[ext_resource path=\"res://content/demos/attacks/characters/player/Player.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://content/demos/attacks/characters/monster/Dummy.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://assets/theme/godot.theme\" type=\"Theme\" id=3]\n[ext_resource path=\"res://src/slide/widgets/text_edit/TextEdit.gd\" type=\"Script\" id=4]\n\n\n\n[node name=\"AttackDummies\" type=\"Control\"]\n\nanchor_left = 0.0\nanchor_top = 0.0\nanchor_right = 1.0\nanchor_bottom = 1.0\nrect_pivot_offset = Vector2( 0, 0 )\nrect_clip_content = false\nmouse_filter = 0\nmouse_default_cursor_shape = 0\nsize_flags_horizontal = 1\nsize_flags_vertical = 1\n\n[node name=\"Player\" parent=\".\" index=\"0\" instance=ExtResource( 1 )]\n\nposition = Vector2( 1398.68, 397.075 )\n\n[node name=\"Dummy\" parent=\".\" index=\"1\" instance=ExtResource( 2 )]\n\nposition = Vector2( 1596, 394 )\n\n[node name=\"Dummy2\" parent=\".\" index=\"2\" instance=ExtResource( 2 )]\n\nposition = Vector2( 1548, 250 )\n\n[node name=\"Dummy3\" parent=\".\" index=\"3\" instance=ExtResource( 2 )]\n\nposition = Vector2( 1404, 202 )\n\n[node name=\"Dummy4\" parent=\".\" index=\"4\" instance=ExtResource( 2 )]\n\nposition = Vector2( 1260, 250 )\n\n[node name=\"Dummy5\" parent=\".\" index=\"5\" instance=ExtResource( 2 )]\n\nposition = Vector2( 1212, 394 )\n\n[node name=\"Dummy6\" parent=\".\" index=\"6\" instance=ExtResource( 2 )]\n\nposition = Vector2( 1260, 538 )\n\n[node name=\"Dummy7\" parent=\".\" index=\"7\" instance=ExtResource( 2 )]\n\nposition = Vector2( 1404, 586 )\n\n[node name=\"Dummy8\" parent=\".\" index=\"8\" instance=ExtResource( 2 )]\n\nposition = Vector2( 1548, 538 )\n\n[node name=\"TextEdit\" type=\"TextEdit\" parent=\".\" index=\"9\"]\n\nanchor_left = 0.0\nanchor_top = 0.0\nanchor_right = 0.0\nanchor_bottom = 1.0\nmargin_right = 900.0\nrect_min_size = Vector2( 900, 0 )\nrect_pivot_offset = Vector2( 0, 0 )\nrect_clip_content = false\nfocus_mode = 2\nmouse_filter = 0\nmouse_default_cursor_shape = 0\nsize_flags_horizontal = 1\nsize_flags_vertical = 3\ntheme = ExtResource( 3 )\ntext = \"func _change_state(new_state):\n\tmatch state:\n\t\tATTACK:\n\t\t\thit_objects = []\n\t\t\tattack_input_state = IDLE\n\t\t\tready_for_next_attack = false\n\n\tmatch new_state:\n\t\tIDLE:\n\t\t\tcombo_count = 0\n\t\t\t$AnimationPlayer.play('idle')\n\t\t\tmonitoring = false\n\t\tATTACK:\n\t\t\tattack_current = combo[combo_count -1]\n\t\t\t$AnimationPlayer.play(attack_current['animation'])\n\t\t\tmonitoring = true\n\tstate = new_state\n\nfunc _input(event):\n\tif not state == ATTACK:\n\t\treturn\n\tif attack_input_state != LISTENING:\n\t\treturn\n\tif event.is_action_pressed('attack'):\n\t\tattack_input_state = REGISTERED\n\nfunc _physics_process(delta):\n\tif attack_input_state == REGISTERED and ready_for_next_attack:\n\t\tattack()\n\nfunc attack():\n\tcombo_count += 1\n\t_change_state(ATTACK)\"\nreadonly = false\nhighlight_current_line = true\nsyntax_highlighting = true\nshow_line_numbers = true\nhighlight_all_occurrences = true\noverride_selected_font_color = false\ncontext_menu_enabled = true\nsmooth_scrolling = false\nv_scroll_speed = 80.0\nhiding_enabled = 0\nwrap_lines = false\ncaret_block_mode = false\ncaret_blink = false\ncaret_blink_speed = 0.65\ncaret_moving_by_right_click = true\nscript = ExtResource( 4 )\nclass_color = Color( 0.6, 0.6, 1, 1 )\nmember_color = Color( 0.6, 1, 0.6, 1 )\nkeyword_color = Color( 1, 0.6, 0.6, 1 )\nquotes_color = Color( 1, 1, 0.6, 1 )\nkeyword_data_path = \"res://slide/widgets/text_edit/keywords.json\"\n\n\n"
  },
  {
    "path": "godot-3-presentation/content/demos/attacks/characters/Character.tscn",
    "content": "[gd_scene load_steps=12 format=2]\n\n[ext_resource path=\"res://content/demos/attacks/characters/character.gd\" type=\"Script\" id=1]\n[ext_resource path=\"res://content/demos/attacks/characters/health.gd\" type=\"Script\" id=2]\n[ext_resource path=\"res://content/demos/attacks/characters/body.png\" type=\"Texture\" id=3]\n[ext_resource path=\"res://content/demos/attacks/vfx/PoisonBubbles.tscn\" type=\"PackedScene\" id=4]\n[ext_resource path=\"res://content/demos/attacks/characters/weapon/weapon-pivot.gd\" type=\"Script\" id=5]\n[ext_resource path=\"res://content/demos/attacks/characters/shadow.png\" type=\"Texture\" id=6]\n\n[sub_resource type=\"Animation\" id=1]\n\nresource_name = \"SETUP\"\nlength = 0.01\nloop = false\nstep = 0.1\ntracks/0/type = \"value\"\ntracks/0/path = NodePath(\"BodyPivot/Body:position\")\ntracks/0/interp = 1\ntracks/0/loop_wrap = true\ntracks/0/imported = false\ntracks/0/enabled = true\ntracks/0/keys = {\n\"times\": PoolRealArray( 0 ),\n\"transitions\": PoolRealArray( 1 ),\n\"update\": 0,\n\"values\": [ Vector2( 0, 0 ) ]\n}\ntracks/1/type = \"value\"\ntracks/1/path = NodePath(\"BodyPivot/Body:rotation_degrees\")\ntracks/1/interp = 1\ntracks/1/loop_wrap = true\ntracks/1/imported = false\ntracks/1/enabled = true\ntracks/1/keys = {\n\"times\": PoolRealArray( 0 ),\n\"transitions\": PoolRealArray( 1 ),\n\"update\": 0,\n\"values\": [ 0.0 ]\n}\ntracks/2/type = \"value\"\ntracks/2/path = NodePath(\"BodyPivot/Body:scale\")\ntracks/2/interp = 1\ntracks/2/loop_wrap = true\ntracks/2/imported = false\ntracks/2/enabled = true\ntracks/2/keys = {\n\"times\": PoolRealArray( 0 ),\n\"transitions\": PoolRealArray( 1 ),\n\"update\": 0,\n\"values\": [ Vector2( 1, 1 ) ]\n}\ntracks/3/type = \"value\"\ntracks/3/path = NodePath(\"Shadow:position\")\ntracks/3/interp = 1\ntracks/3/loop_wrap = true\ntracks/3/imported = false\ntracks/3/enabled = true\ntracks/3/keys = {\n\"times\": PoolRealArray( 0 ),\n\"transitions\": PoolRealArray( 1 ),\n\"update\": 0,\n\"values\": [ Vector2( -0.32052, -4.20115 ) ]\n}\ntracks/4/type = \"value\"\ntracks/4/path = NodePath(\"Shadow:scale\")\ntracks/4/interp = 1\ntracks/4/loop_wrap = true\ntracks/4/imported = false\ntracks/4/enabled = true\ntracks/4/keys = {\n\"times\": PoolRealArray( 0 ),\n\"transitions\": PoolRealArray( 1 ),\n\"update\": 0,\n\"values\": [ Vector2( 1, 1 ) ]\n}\ntracks/5/type = \"value\"\ntracks/5/path = NodePath(\"BodyPivot/Body:modulate\")\ntracks/5/interp = 1\ntracks/5/loop_wrap = true\ntracks/5/imported = false\ntracks/5/enabled = true\ntracks/5/keys = {\n\"times\": PoolRealArray( 0 ),\n\"transitions\": PoolRealArray( 1 ),\n\"update\": 0,\n\"values\": [ Color( 1, 1, 1, 1 ) ]\n}\ntracks/6/type = \"value\"\ntracks/6/path = NodePath(\"Shadow:modulate\")\ntracks/6/interp = 1\ntracks/6/loop_wrap = true\ntracks/6/imported = false\ntracks/6/enabled = true\ntracks/6/keys = {\n\"times\": PoolRealArray( 0 ),\n\"transitions\": PoolRealArray( 1 ),\n\"update\": 0,\n\"values\": [ Color( 1, 1, 1, 1 ) ]\n}\ntracks/7/type = \"value\"\ntracks/7/path = NodePath(\"BodyPivot/Body:modulate\")\ntracks/7/interp = 1\ntracks/7/loop_wrap = true\ntracks/7/imported = false\ntracks/7/enabled = true\ntracks/7/keys = {\n\"times\": PoolRealArray( 0 ),\n\"transitions\": PoolRealArray( 1 ),\n\"update\": 0,\n\"values\": [ Color( 1, 1, 1, 1 ) ]\n}\n\n[sub_resource type=\"Animation\" id=2]\n\nresource_name = \"die\"\nlength = 0.7\nloop = false\nstep = 0.05\ntracks/0/type = \"value\"\ntracks/0/path = NodePath(\"BodyPivot/Body:modulate\")\ntracks/0/interp = 1\ntracks/0/loop_wrap = true\ntracks/0/imported = false\ntracks/0/enabled = true\ntracks/0/keys = {\n\"times\": PoolRealArray( 0, 0.05, 0.1, 0.15, 0.2, 0.35, 0.5, 0.7 ),\n\"transitions\": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1 ),\n\"update\": 0,\n\"values\": [ Color( 1, 0.296875, 0.296875, 1 ), Color( 1, 1, 1, 1 ), Color( 1, 0.296875, 0.296875, 1 ), Color( 1, 1, 1, 1 ), Color( 1, 0.296875, 0.296875, 1 ), Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ]\n}\ntracks/1/type = \"value\"\ntracks/1/path = NodePath(\"Shadow:modulate\")\ntracks/1/interp = 1\ntracks/1/loop_wrap = true\ntracks/1/imported = false\ntracks/1/enabled = true\ntracks/1/keys = {\n\"times\": PoolRealArray( 0, 0.5, 0.7 ),\n\"transitions\": PoolRealArray( 1, 1, 1 ),\n\"update\": 0,\n\"values\": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ]\n}\ntracks/2/type = \"value\"\ntracks/2/path = NodePath(\"BodyPivot/Body:scale\")\ntracks/2/interp = 1\ntracks/2/loop_wrap = true\ntracks/2/imported = false\ntracks/2/enabled = true\ntracks/2/keys = {\n\"times\": PoolRealArray( 0, 0.35, 0.45, 0.65 ),\n\"transitions\": PoolRealArray( 1, 0.356926, 5.78413, 1 ),\n\"update\": 0,\n\"values\": [ Vector2( 1, 1 ), Vector2( 1, 1 ), Vector2( 0.812022, 1.23284 ), Vector2( 2.7717, 0.0452506 ) ]\n}\n\n[sub_resource type=\"Animation\" id=3]\n\nlength = 1.0\nloop = false\nstep = 0.1\ntracks/0/type = \"value\"\ntracks/0/path = NodePath(\"BodyPivot/Body:position\")\ntracks/0/interp = 1\ntracks/0/loop_wrap = true\ntracks/0/imported = false\ntracks/0/enabled = true\ntracks/0/keys = {\n\"times\": PoolRealArray( 0 ),\n\"transitions\": PoolRealArray( 1 ),\n\"update\": 0,\n\"values\": [ Vector2( 0, 0 ) ]\n}\n\n[sub_resource type=\"Animation\" id=4]\n\nlength = 0.3\nloop = false\nstep = 0.05\ntracks/0/type = \"value\"\ntracks/0/path = NodePath(\"BodyPivot/Body:modulate\")\ntracks/0/interp = 1\ntracks/0/loop_wrap = true\ntracks/0/imported = false\ntracks/0/enabled = true\ntracks/0/keys = {\n\"times\": PoolRealArray( 0, 0.05, 0.1, 0.15, 0.2, 0.3 ),\n\"transitions\": PoolRealArray( 1, 1, 1, 1, 1, 1 ),\n\"update\": 0,\n\"values\": [ Color( 1, 0.296875, 0.296875, 1 ), Color( 1, 1, 1, 1 ), Color( 1, 0.296875, 0.296875, 1 ), Color( 1, 1, 1, 1 ), Color( 1, 0.296875, 0.296875, 1 ), Color( 1, 1, 1, 1 ) ]\n}\n\n[sub_resource type=\"RectangleShape2D\" id=5]\n\ncustom_solver_bias = 0.0\nextents = Vector2( 30.5911, 26.3305 )\n\n[node name=\"Character\" type=\"KinematicBody2D\" index=\"0\" groups=[\n\"character\",\n]]\n\ninput_pickable = false\ncollision_layer = 1\ncollision_mask = 0\ncollision/safe_margin = 0.08\nscript = ExtResource( 1 )\n_sections_unfolded = [ \"Collision\", \"Z Index\" ]\nstagger_knockback = 15\n\n[node name=\"AnimationPlayer\" type=\"AnimationPlayer\" parent=\".\" index=\"0\"]\n\nroot_node = NodePath(\"..\")\nautoplay = \"\"\nplayback_process_mode = 1\nplayback_default_blend_time = 0.0\nplayback_speed = 1.0\nanims/SETUP = SubResource( 1 )\nanims/die = SubResource( 2 )\nanims/idle = SubResource( 3 )\nanims/stagger = SubResource( 4 )\nblend_times = [  ]\n\n[node name=\"Tween\" type=\"Tween\" parent=\".\" index=\"1\"]\n\nrepeat = false\nplayback_process_mode = 1\nplayback_speed = 1.0\nplayback/active = false\nplayback/repeat = false\nplayback/speed = 1.0\n\n[node name=\"Health\" type=\"Node\" parent=\".\" index=\"2\"]\n\nscript = ExtResource( 2 )\nmax_health = 9\n\n[node name=\"PoisonTimer\" type=\"Timer\" parent=\"Health\" index=\"0\"]\n\nprocess_mode = 1\nwait_time = 1.4\none_shot = false\nautostart = false\n\n[node name=\"CollisionShape2D\" type=\"CollisionShape2D\" parent=\".\" index=\"3\"]\n\nposition = Vector2( -1, -7.69296 )\nshape = SubResource( 5 )\n\n[node name=\"BodyPivot\" type=\"Position2D\" parent=\".\" index=\"4\"]\n\nz_index = 2\n_sections_unfolded = [ \"Transform\", \"Visibility\", \"Z Index\" ]\n\n[node name=\"Body\" type=\"Sprite\" parent=\"BodyPivot\" index=\"0\"]\n\nmodulate = Color( 1, 0.296875, 0.296875, 1 )\ntexture = ExtResource( 3 )\noffset = Vector2( 0.335912, -58.7778 )\n_sections_unfolded = [ \"Visibility\" ]\n\n[node name=\"PoisonBubbles\" parent=\"BodyPivot\" index=\"1\" instance=ExtResource( 4 )]\n\nposition = Vector2( 38, -142 )\nrotation = -1.29258\nemitting = false\n\n[node name=\"WeaponPivot\" type=\"Position2D\" parent=\".\" index=\"5\"]\n\nposition = Vector2( 0, -40 )\nz_index = 2\nscript = ExtResource( 5 )\n_sections_unfolded = [ \"Transform\", \"Visibility\", \"Z Index\" ]\n\n[node name=\"WeaponSpawn\" type=\"Position2D\" parent=\"WeaponPivot\" index=\"0\"]\n\nposition = Vector2( 80, 0 )\n_sections_unfolded = [ \"Transform\", \"Visibility\", \"Z Index\" ]\n\n[node name=\"Shadow\" type=\"Sprite\" parent=\".\" index=\"6\"]\n\nself_modulate = Color( 1, 1, 1, 0.313726 )\nshow_behind_parent = true\nposition = Vector2( -0.32052, -4.20115 )\ntexture = ExtResource( 6 )\n_sections_unfolded = [ \"Visibility\" ]\n\n\n"
  },
  {
    "path": "godot-3-presentation/content/demos/attacks/characters/body.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/body.png-6fe0d127b5ad9012998813263670adbe.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/demos/attacks/characters/body.png\"\ndest_files=[ \"res://.import/body.png-6fe0d127b5ad9012998813263670adbe.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/demos/attacks/characters/character.gd",
    "content": "extends KinematicBody2D\n\nsignal state_changed\nsignal direction_changed\n\nenum States { IDLE, ATTACK, STAGGER, DIE, DEAD }\nvar state = null\n\n# MOTION\nvar input_direction = Vector2()\nvar look_direction = Vector2(1, 0)\nvar last_move_direction = Vector2(1, 0)\n\n# STAGGER\nvar knockback_direction = Vector2(0.0, 0.0)\nexport(float) var stagger_knockback = 15\nconst STAGGER_DURATION = 0.4\n\n# WEAPON\nvar weapon_path = \"res://content/demos/attacks/characters/weapon/Sword.tscn\"\nvar weapon = null\n\n\nfunc _ready():\n\t_change_state(States.IDLE)\n\t$AnimationPlayer.connect('animation_finished', self, '_on_AnimationPlayer_animation_finished')\n\t$Health.connect('health_changed', self, '_on_Health_health_changed')\n\t$Health.connect('status_changed', self, '_on_Health_status_changed')\n\n\tif not weapon_path:\n\t\treturn\n\tvar weapon_instance = load(weapon_path).instance()\n\t$WeaponPivot/WeaponSpawn.add_child(weapon_instance)\n\tweapon = $WeaponPivot/WeaponSpawn.get_child(0)\n\tweapon.connect(\"attack_finished\", self, \"_on_Weapon_attack_finished\")\n\n\nfunc _change_state(new_state):\n\tmatch state:\n\t\tStates.DIE:\n\t\t\tqueue_free()\n\t\tStates.ATTACK:\n\t\t\tset_physics_process(true)\n\n\t# Initialize the new state\n\tmatch new_state:\n\t\tStates.IDLE:\n\t\t\t$AnimationPlayer.play('idle')\n\t\tStates.ATTACK:\n\t\t\tset_physics_process(false)\n\t\t\tif not weapon:\n\t\t\t\tprint(\"%s tries to attack but has no weapon\" % get_name())\n\t\t\t\t_change_state(States.IDLE)\n\t\t\t\treturn\n\n\t\t\tweapon.attack()\n\t\t\t$AnimationPlayer.play('idle')\n\t\tStates.STAGGER:\n\t\t\t$Tween.interpolate_property(self, 'position', position, position + stagger_knockback * -knockback_direction, STAGGER_DURATION, Tween.TRANS_QUAD, Tween.EASE_OUT)\n\t\t\t$Tween.start()\n\n\t\t\t$AnimationPlayer.play('stagger')\n\t\tStates.DIE:\n\t\t\tset_process_input(false)\n\t\t\tset_physics_process(false)\n\t\t\t$CollisionShape2D.disabled = true\n\t\t\t$Tween.stop(self, '')\n\t\t\t$AnimationPlayer.play('die')\n\tstate = new_state\n\temit_signal('state_changed', new_state)\n\n\nfunc _physics_process(delta):\n\tif not input_direction:\n\t\treturn\n\n\tlast_move_direction = input_direction\n\tif input_direction.x in [-1, 1]:\n\t\tlook_direction.x = input_direction.x\n\t\t$BodyPivot.set_scale(Vector2(look_direction.x, 1))\n\n\nfunc take_damage(attacker_weapon, amount, effect):\n\tif self.is_a_parent_of(attacker_weapon):\n\t\treturn\n\tknockback_direction = (attacker_weapon.global_position - global_position).normalized()\n\t$Health.take_damage(amount, effect)\n\n\nfunc _on_Weapon_attack_finished():\n\t_change_state(States.IDLE)\n\n\nfunc _on_AnimationPlayer_animation_finished(name):\n\tif name == 'die':\n\t\t_change_state(States.DEAD)\n\n\nfunc _on_Health_health_changed(new_health):\n\tif new_health == 0:\n\t\t_change_state(States.DIE)\n\telse:\n\t\t_change_state(States.STAGGER)\n\n\nfunc _on_Health_status_changed(new_status):\n\tmatch new_status:\n\t\tGlobalConstants.STATUS_POISONED:\n\t\t\t$BodyPivot/PoisonBubbles.emitting = true\n\t\t_:\n\t\t\t$BodyPivot/PoisonBubbles.emitting = false"
  },
  {
    "path": "godot-3-presentation/content/demos/attacks/characters/debug/direction/DirectionVisualizer.tscn",
    "content": "[gd_scene load_steps=3 format=2]\n\n[ext_resource path=\"res://content/demos/attacks/characters/debug/direction/direction-visualizer.gd\" type=\"Script\" id=1]\n[ext_resource path=\"res://content/demos/attacks/characters/debug/direction/arrow.png\" type=\"Texture\" id=2]\n\n\n\n[node name=\"DirectionVisualizer\" type=\"Position2D\"]\n\nscript = ExtResource( 1 )\nscale_range = Vector2( 0.5, 1 )\n\n[node name=\"Arrow\" type=\"Sprite\" parent=\".\" index=\"0\"]\n\nposition = Vector2( 56.0362, -0.163977 )\ntexture = ExtResource( 2 )\noffset = Vector2( 33.8244, -0.589883 )\n\n[node name=\"Tween\" type=\"Tween\" parent=\".\" index=\"1\"]\n\nrepeat = false\nplayback_process_mode = 1\nplayback_speed = 1.0\nplayback/active = false\nplayback/repeat = false\nplayback/speed = 1.0\n\n\n"
  },
  {
    "path": "godot-3-presentation/content/demos/attacks/characters/debug/direction/arrow.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/arrow.png-6c0c1ba6b6c968e541ca3604eaa6b89c.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/demos/attacks/characters/debug/direction/arrow.png\"\ndest_files=[ \"res://.import/arrow.png-6c0c1ba6b6c968e541ca3604eaa6b89c.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/demos/attacks/characters/debug/direction/direction-visualizer.gd",
    "content": "extends Position2D\n\nfunc _ready():\n\tvar player_node = $'..'\n\tplayer_node.connect(\"direction_changed\", self, '_on_Player_direction_changed')\n\tset_process(false)\n\n\nfunc _on_Player_direction_changed(direction):\n\trotation = direction.angle()\n\tif direction == Vector2(0, -1):\n\t\tvisible = false\n\telse:\n\t\tvisible = true\n"
  },
  {
    "path": "godot-3-presentation/content/demos/attacks/characters/debug/state-visualizer.gd",
    "content": "extends Label\n\nconst STATE_STRINGS = [\n  \"spawn\",\n  \"idle\",\n  \"move\",\n  \"jump\",\n  \"bump\",\n  \"fall\"\n]\n\n\nfunc _ready():\n\t$'..'.connect('state_changed', self, '_on_Player_state_changed')\n\n\nfunc _on_Player_state_changed(new_state):\n\ttext = STATE_STRINGS[new_state]"
  },
  {
    "path": "godot-3-presentation/content/demos/attacks/characters/health.gd",
    "content": "extends Node\n\nsignal health_changed\nsignal health_depleted\nsignal status_changed\n\nvar health = 0\nexport(int) var max_health = 9\n\nvar status = null\nconst POISON_DAMAGE = 1\nvar poison_cycles = 0\n\n\nfunc _ready():\n\thealth = max_health\n\t$PoisonTimer.connect('timeout', self, '_on_PoisonTimer_timeout')\n\n\nfunc _change_status(new_status):\n\tmatch status:\n\t\tGlobalConstants.Statuses.POISONED:\n\t\t\t$PoisonTimer.stop()\n\n\tmatch new_status:\n\t\tGlobalConstants.Statuses.POISONED:\n\t\t\tpoison_cycles = 0\n\t\t\t$PoisonTimer.start()\n\tstatus = new_status\n\temit_signal('status_changed', new_status)\n\n\nfunc take_damage(amount, effect=null):\n\tif status == GlobalConstants.Statuses.INVINCIBLE:\n\t\treturn\n\thealth -= amount\n\thealth = max(0, health)\n\temit_signal(\"health_changed\", health)\n\n\tif not effect:\n\t\treturn\n\tmatch effect[0]:\n\t\tGlobalConstants.Statuses.POISONED:\n\t\t\t_change_status(GlobalConstants.Statuses.POISONED)\n\t\t\tpoison_cycles = effect[1]\n#\tprint(\"%s got hit and took %s damage. Health: %s/%s\" % [get_name(), amount, health, max_health])\n\n\nfunc heal(amount):\n\thealth += amount\n\thealth = max(health, max_health)\n\temit_signal(\"health_changed\", health)\n#\tprint(\"%s got healed by %s points. Health: %s/%s\" % [get_name(), amount, health, max_health])\n\n\nfunc _on_PoisonTimer_timeout():\n\ttake_damage(POISON_DAMAGE)\n\tpoison_cycles -= 1\n\tif poison_cycles == 0:\n\t\t_change_status(GlobalConstants.Statuses.NONE)\n\t\treturn\n\t$PoisonTimer.start()\n"
  },
  {
    "path": "godot-3-presentation/content/demos/attacks/characters/monster/Dummy.tscn",
    "content": "[gd_scene load_steps=3 format=2]\n\n[ext_resource path=\"res://content/demos/attacks/characters/Character.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://content/demos/attacks/characters/monster/dummy.png\" type=\"Texture\" id=2]\n\n[node name=\"Dummy\" index=\"0\" instance=ExtResource( 1 )]\n\n[node name=\"Health\" parent=\".\" index=\"2\"]\n\nmax_health = 5\n\n[node name=\"CollisionShape2D\" parent=\".\" index=\"3\"]\n\nposition = Vector2( -1, -51.8946 )\n\n[node name=\"Body\" parent=\"BodyPivot\" index=\"0\"]\n\nmodulate = Color( 1, 1, 1, 1 )\ntexture = ExtResource( 2 )\n\n\n"
  },
  {
    "path": "godot-3-presentation/content/demos/attacks/characters/monster/dummy.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/dummy.png-27b6bfb1cb6a2da883b1b246f9f91c25.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/demos/attacks/characters/monster/dummy.png\"\ndest_files=[ \"res://.import/dummy.png-27b6bfb1cb6a2da883b1b246f9f91c25.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/demos/attacks/characters/player/Player.tscn",
    "content": "[gd_scene load_steps=5 format=2]\n\n[ext_resource path=\"res://content/demos/attacks/characters/Character.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://content/demos/attacks/characters/player/player.gd\" type=\"Script\" id=2]\n[ext_resource path=\"res://content/demos/attacks/characters/player/body.png\" type=\"Texture\" id=3]\n[ext_resource path=\"res://content/demos/attacks/characters/debug/direction/DirectionVisualizer.tscn\" type=\"PackedScene\" id=4]\n\n[node name=\"Player\" index=\"0\" instance=ExtResource( 1 )]\n\nscript = ExtResource( 2 )\n\n[node name=\"Body\" parent=\"BodyPivot\" index=\"0\"]\n\nmodulate = Color( 1, 1, 1, 1 )\ntexture = ExtResource( 3 )\n\n[node name=\"DirectionVisualizer\" parent=\".\" index=\"7\" instance=ExtResource( 4 )]\n\nshow_behind_parent = true\n_sections_unfolded = [ \"Transform\", \"Visibility\" ]\n\n\n"
  },
  {
    "path": "godot-3-presentation/content/demos/attacks/characters/player/body.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/body.png-19a8f6bd62bb671d4911723601bbe096.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/demos/attacks/characters/player/body.png\"\ndest_files=[ \"res://.import/body.png-19a8f6bd62bb671d4911723601bbe096.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/demos/attacks/characters/player/player.gd",
    "content": "extends \"../character.gd\"\n\nfunc _input(event):\n\tif event.is_action_pressed(\"attack\") and state != States.ATTACK:\n\t\t_change_state(States.ATTACK)\n\nfunc _physics_process(delta):\n\tinput_direction = Vector2()\n\tinput_direction.x = int(Input.is_action_pressed(\"move_right\")) - int(Input.is_action_pressed(\"move_left\"))\n\tinput_direction.y = int(Input.is_action_pressed(\"move_down\")) - int(Input.is_action_pressed(\"move_up\"))\n\n\tif input_direction and input_direction != last_move_direction:\n\t\temit_signal('direction_changed', input_direction)\n"
  },
  {
    "path": "godot-3-presentation/content/demos/attacks/characters/shadow.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/shadow.png-56a9a0de2b8662d8cdc5a8527eeb2a48.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/demos/attacks/characters/shadow.png\"\ndest_files=[ \"res://.import/shadow.png-56a9a0de2b8662d8cdc5a8527eeb2a48.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/demos/attacks/characters/weapon/Sword.tscn",
    "content": "[gd_scene load_steps=8 format=2]\n\n[ext_resource path=\"res://content/demos/attacks/characters/weapon/sword.gd\" type=\"Script\" id=1]\n[ext_resource path=\"res://content/demos/attacks/characters/weapon/sword.png\" type=\"Texture\" id=2]\n\n\n[sub_resource type=\"Animation\" id=1]\n\nresource_name = \"SETUP\"\nlength = 1.0\nloop = false\nstep = 0.1\ntracks/0/type = \"value\"\ntracks/0/path = NodePath(\".:rotation_degrees\")\ntracks/0/interp = 1\ntracks/0/loop_wrap = true\ntracks/0/imported = false\ntracks/0/enabled = true\ntracks/0/keys = {\n\"times\": PoolRealArray( 0 ),\n\"transitions\": PoolRealArray( 1 ),\n\"update\": 0,\n\"values\": [ 0.0 ]\n}\ntracks/1/type = \"value\"\ntracks/1/path = NodePath(\".:scale\")\ntracks/1/interp = 1\ntracks/1/loop_wrap = true\ntracks/1/imported = false\ntracks/1/enabled = true\ntracks/1/keys = {\n\"times\": PoolRealArray( 0 ),\n\"transitions\": PoolRealArray( 1 ),\n\"update\": 0,\n\"values\": [ Vector2( 1, 1 ) ]\n}\ntracks/2/type = \"value\"\ntracks/2/path = NodePath(\".:visible\")\ntracks/2/interp = 1\ntracks/2/loop_wrap = true\ntracks/2/imported = false\ntracks/2/enabled = true\ntracks/2/keys = {\n\"times\": PoolRealArray( 0 ),\n\"transitions\": PoolRealArray( 1 ),\n\"update\": 1,\n\"values\": [ true ]\n}\ntracks/3/type = \"value\"\ntracks/3/path = NodePath(\".:monitoring\")\ntracks/3/interp = 1\ntracks/3/loop_wrap = true\ntracks/3/imported = false\ntracks/3/enabled = true\ntracks/3/keys = {\n\"times\": PoolRealArray( 0 ),\n\"transitions\": PoolRealArray( 1 ),\n\"update\": 1,\n\"values\": [ true ]\n}\ntracks/4/type = \"value\"\ntracks/4/path = NodePath(\".:monitorable\")\ntracks/4/interp = 1\ntracks/4/loop_wrap = true\ntracks/4/imported = false\ntracks/4/enabled = true\ntracks/4/keys = {\n\"times\": PoolRealArray( 0 ),\n\"transitions\": PoolRealArray( 1 ),\n\"update\": 1,\n\"values\": [ false ]\n}\n\n[sub_resource type=\"Animation\" id=2]\n\nresource_name = \"attack_circular\"\nlength = 0.3\nloop = false\nstep = 0.05\ntracks/0/type = \"value\"\ntracks/0/path = NodePath(\".:rotation_degrees\")\ntracks/0/interp = 1\ntracks/0/loop_wrap = true\ntracks/0/imported = false\ntracks/0/enabled = true\ntracks/0/keys = {\n\"times\": PoolRealArray( 0, 0.15, 0.2 ),\n\"transitions\": PoolRealArray( 0.439427, 1, 1 ),\n\"update\": 0,\n\"values\": [ -100.0, 100.0, 90.0 ]\n}\ntracks/1/type = \"value\"\ntracks/1/path = NodePath(\".:scale\")\ntracks/1/interp = 1\ntracks/1/loop_wrap = true\ntracks/1/imported = false\ntracks/1/enabled = true\ntracks/1/keys = {\n\"times\": PoolRealArray( 0, 0.05, 0.15, 0.2 ),\n\"transitions\": PoolRealArray( 1, 2.50795, 1, 1 ),\n\"update\": 0,\n\"values\": [ Vector2( 1, 1 ), Vector2( 1, 1.3 ), Vector2( 1, 1 ), Vector2( 1, 1 ) ]\n}\ntracks/2/type = \"value\"\ntracks/2/path = NodePath(\".:visible\")\ntracks/2/interp = 1\ntracks/2/loop_wrap = true\ntracks/2/imported = false\ntracks/2/enabled = true\ntracks/2/keys = {\n\"times\": PoolRealArray( 0 ),\n\"transitions\": PoolRealArray( 1 ),\n\"update\": 1,\n\"values\": [ true ]\n}\n\n[sub_resource type=\"Animation\" id=3]\n\nlength = 0.45\nloop = false\nstep = 0.05\ntracks/0/type = \"value\"\ntracks/0/path = NodePath(\".:rotation_degrees\")\ntracks/0/interp = 1\ntracks/0/loop_wrap = true\ntracks/0/imported = false\ntracks/0/enabled = true\ntracks/0/keys = {\n\"times\": PoolRealArray( 0, 0.15, 0.2 ),\n\"transitions\": PoolRealArray( 0.439427, 1, 1 ),\n\"update\": 0,\n\"values\": [ -80.0, 85.0, 75.0 ]\n}\ntracks/1/type = \"value\"\ntracks/1/path = NodePath(\".:scale\")\ntracks/1/interp = 1\ntracks/1/loop_wrap = true\ntracks/1/imported = false\ntracks/1/enabled = true\ntracks/1/keys = {\n\"times\": PoolRealArray( 0, 0.05, 0.15, 0.2 ),\n\"transitions\": PoolRealArray( 1, 2.50795, 1, 1 ),\n\"update\": 0,\n\"values\": [ Vector2( 1, 1 ), Vector2( 1, 1.3 ), Vector2( 1, 1 ), Vector2( 1, 1 ) ]\n}\ntracks/2/type = \"value\"\ntracks/2/path = NodePath(\".:visible\")\ntracks/2/interp = 1\ntracks/2/loop_wrap = true\ntracks/2/imported = false\ntracks/2/enabled = true\ntracks/2/keys = {\n\"times\": PoolRealArray( 0 ),\n\"transitions\": PoolRealArray( 1 ),\n\"update\": 1,\n\"values\": [ true ]\n}\ntracks/3/type = \"method\"\ntracks/3/path = NodePath(\".\")\ntracks/3/interp = 1\ntracks/3/loop_wrap = true\ntracks/3/imported = false\ntracks/3/enabled = true\ntracks/3/keys = {\n\"times\": PoolRealArray( 0.1, 0.25 ),\n\"transitions\": PoolRealArray( 1, 1 ),\n\"values\": [ {\n\"args\": [  ],\n\"method\": \"set_attack_input_listening\"\n}, {\n\"args\": [  ],\n\"method\": \"set_ready_for_next_attack\"\n} ]\n}\n\n[sub_resource type=\"Animation\" id=4]\n\nresource_name = \"attack_medium\"\nlength = 0.5\nloop = false\nstep = 0.05\ntracks/0/type = \"value\"\ntracks/0/path = NodePath(\".:rotation_degrees\")\ntracks/0/interp = 1\ntracks/0/loop_wrap = true\ntracks/0/imported = false\ntracks/0/enabled = true\ntracks/0/keys = {\n\"times\": PoolRealArray( 0.05, 0.25, 0.35 ),\n\"transitions\": PoolRealArray( 0.439427, 1, 1 ),\n\"update\": 0,\n\"values\": [ 95.0, -95.0, -90.0 ]\n}\ntracks/1/type = \"value\"\ntracks/1/path = NodePath(\".:scale\")\ntracks/1/interp = 1\ntracks/1/loop_wrap = true\ntracks/1/imported = false\ntracks/1/enabled = true\ntracks/1/keys = {\n\"times\": PoolRealArray( 0, 0.1, 0.2, 0.25 ),\n\"transitions\": PoolRealArray( 1, 2.50795, 1, 1 ),\n\"update\": 0,\n\"values\": [ Vector2( 1, 1 ), Vector2( 1, 1.3 ), Vector2( 1, 1 ), Vector2( 1, 1 ) ]\n}\ntracks/2/type = \"value\"\ntracks/2/path = NodePath(\".:visible\")\ntracks/2/interp = 1\ntracks/2/loop_wrap = true\ntracks/2/imported = false\ntracks/2/enabled = true\ntracks/2/keys = {\n\"times\": PoolRealArray( 0 ),\n\"transitions\": PoolRealArray( 1 ),\n\"update\": 1,\n\"values\": [ true ]\n}\n\n[sub_resource type=\"Animation\" id=5]\n\nlength = 0.01\nloop = false\nstep = 0.1\ntracks/0/type = \"value\"\ntracks/0/path = NodePath(\".:visible\")\ntracks/0/interp = 1\ntracks/0/loop_wrap = true\ntracks/0/imported = false\ntracks/0/enabled = true\ntracks/0/keys = {\n\"times\": PoolRealArray( 0 ),\n\"transitions\": PoolRealArray( 1 ),\n\"update\": 1,\n\"values\": [ false ]\n}\n\n[node name=\"Sword\" type=\"Area2D\" index=\"0\"]\n\nrotation = -1.5708\ninput_pickable = false\ngravity_vec = Vector2( 0, 1 )\ngravity = 98.0\nlinear_damp = 0.1\nangular_damp = 1.0\nmonitorable = false\ncollision_layer = 16\ncollision_mask = 3\naudio_bus_override = false\naudio_bus_name = \"Master\"\nscript = ExtResource( 1 )\n_sections_unfolded = [ \"Transform\" ]\n\n[node name=\"AnimationPlayer\" type=\"AnimationPlayer\" parent=\".\" index=\"0\"]\n\nroot_node = NodePath(\"..\")\nautoplay = \"\"\nplayback_process_mode = 1\nplayback_default_blend_time = 0.0\nplayback_speed = 1.0\nanims/SETUP = SubResource( 1 )\nanims/attack_circular = SubResource( 2 )\nanims/attack_fast = SubResource( 3 )\nanims/attack_medium = SubResource( 4 )\nanims/idle = SubResource( 5 )\nblend_times = [  ]\n_sections_unfolded = [ \"Playback Options\" ]\n\n[node name=\"sword\" type=\"Sprite\" parent=\".\" index=\"1\"]\n\nposition = Vector2( 4, 0 )\ntexture = ExtResource( 2 )\noffset = Vector2( 67, 0 )\n_sections_unfolded = [ \"Offset\", \"Transform\" ]\n\n[node name=\"CollisionPolygon2D\" type=\"CollisionPolygon2D\" parent=\".\" index=\"2\"]\n\nbuild_mode = 0\npolygon = PoolVector2Array( 28.0001, -15.9999, 136, -15.9995, 160, 0, 136, 16.0005, 27.9999, 16.0001 )\n\n\n"
  },
  {
    "path": "godot-3-presentation/content/demos/attacks/characters/weapon/sword-stick.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/sword-stick.png-1553647327943eeb56475d47abb451b9.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/demos/attacks/characters/weapon/sword-stick.png\"\ndest_files=[ \"res://.import/sword-stick.png-1553647327943eeb56475d47abb451b9.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/demos/attacks/characters/weapon/sword.gd",
    "content": "extends Area2D\n\nsignal attack_finished\n\nenum States { IDLE, ATTACK }\nvar state : int = States.IDLE\n\nenum InputStates { WAITING, LISTENING, REGISTERED }\nvar attack_input_state = InputStates.WAITING\nvar ready_for_next_attack = false\n# The combo is hard-coded in each weapon\n# Unless the weapon has more than 2 or 3,\n# or if you're working with a designer who needs\n# to create dozens of weapons, this works well\nconst MAX_COMBO_COUNT = 3\nvar combo_count = 0\n\nvar attack_current = {}\n# Using a dict for each attack, we can add new, per-attack property\n# E.g. ignore_armor: true, inflicts: POISON, element: FIRE...\n# You can convert this to and from JSON so it's easy\n# to move it outside the code without breaking it\nvar combo = [{\n\t\t'damage': 1,\n\t\t'animation': 'attack_fast',\n\t\t'effect': null\n\t},\n\t{\n\t\t'damage': 1,\n\t\t'animation': 'attack_fast',\n\t\t'effect': [GlobalConstants.Statuses.POISONED, 2]\n\t},\n\t{\n\t\t'damage': 3,\n\t\t'animation': 'attack_medium',\n\t\t'effect': null\n\t}]\n\nvar hit_objects = []\n\n\nfunc _ready():\n\t$AnimationPlayer.connect('animation_finished', self, \"_on_animation_finished\")\n\tself.connect(\"body_entered\", self, \"_on_body_entered\")\n\t_change_state(States.IDLE)\n\n\nfunc _change_state(new_state):\n\tmatch state:\n\t\tStates.ATTACK:\n\t\t\thit_objects = []\n\t\t\tattack_input_state = InputStates.WAITING\n\t\t\tready_for_next_attack = false\n\n\tmatch new_state:\n\t\tStates.IDLE:\n\t\t\tcombo_count = 0\n\t\t\t$AnimationPlayer.play('idle')\n\t\t\tmonitoring = false\n\t\tStates.ATTACK:\n\t\t\tattack_current = combo[combo_count -1]\n\t\t\t$AnimationPlayer.play(attack_current['animation'])\n\t\t\tmonitoring = true\n\tstate = new_state\n\nfunc _input(event):\n\tif not state == States.ATTACK:\n\t\treturn\n\tif attack_input_state != InputStates.LISTENING:\n\t\treturn\n\tif event.is_action_pressed('attack'):\n\t\tattack_input_state = InputStates.REGISTERED\n\nfunc _physics_process(delta):\n\tif attack_input_state == InputStates.REGISTERED and ready_for_next_attack:\n\t\tattack()\n\nfunc attack():\n\tcombo_count += 1\n\t_change_state(States.ATTACK)\n\n\n# use with AnimationPlayer func track\nfunc set_attack_input_listening():\n\tattack_input_state = InputStates.LISTENING\n\n\n# use with AnimationPlayer func track\nfunc set_ready_for_next_attack():\n\tready_for_next_attack = true\n\n\nfunc _on_body_entered(body):\n\tif body.get_rid().get_id() in hit_objects:\n\t\treturn\n\thit_objects.append(body.get_rid().get_id())\n\tbody.take_damage(self, attack_current['damage'], attack_current['effect'])\n\n\nfunc _on_animation_finished(name):\n\tif not attack_current:\n\t\treturn\n\n\tif attack_input_state == InputStates.REGISTERED and combo_count < MAX_COMBO_COUNT:\n\t\tattack()\n\telse:\n\t\t_change_state(States.IDLE)\n\t\temit_signal(\"attack_finished\")\n"
  },
  {
    "path": "godot-3-presentation/content/demos/attacks/characters/weapon/sword.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/sword.png-b9b9a4fcc88c274638f7155be5455e49.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/demos/attacks/characters/weapon/sword.png\"\ndest_files=[ \"res://.import/sword.png-b9b9a4fcc88c274638f7155be5455e49.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/demos/attacks/characters/weapon/weapon-pivot.gd",
    "content": "extends Position2D\n\nvar z_index_start = 0\n\nfunc _ready():\n\t$\"..\".connect(\"direction_changed\", self, '_on_Parent_direction_changed')\n\tz_index_start = z_index\n\n\nfunc _on_Parent_direction_changed(direction):\n\trotation = direction.angle()\n\tmatch direction:\n\t\tVector2(0, -1):\n\t\t\tz_index = z_index_start - 1\n\t\t_:\n\t\t\tz_index = z_index_start\n"
  },
  {
    "path": "godot-3-presentation/content/demos/attacks/default_env.tres",
    "content": "[gd_resource type=\"Environment\" load_steps=2 format=2]\n\n[sub_resource type=\"ProceduralSky\" id=1]\n\nradiance_size = 4\nsky_top_color = Color( 0.0470588, 0.454902, 0.976471, 1 )\nsky_horizon_color = Color( 0.556863, 0.823529, 0.909804, 1 )\nsky_curve = 0.25\nsky_energy = 1.0\nground_bottom_color = Color( 0.101961, 0.145098, 0.188235, 1 )\nground_horizon_color = Color( 0.482353, 0.788235, 0.952941, 1 )\nground_curve = 0.01\nground_energy = 1.0\nsun_color = Color( 1, 1, 1, 1 )\nsun_latitude = 35.0\nsun_longitude = 0.0\nsun_angle_min = 1.0\nsun_angle_max = 100.0\nsun_curve = 0.05\nsun_energy = 16.0\ntexture_size = 2\n\n[resource]\n\nbackground_mode = 2\nbackground_sky = SubResource( 1 )\nbackground_sky_custom_fov = 0.0\nbackground_color = Color( 0, 0, 0, 1 )\nbackground_energy = 1.0\nbackground_canvas_max_layer = 0\nambient_light_color = Color( 0, 0, 0, 1 )\nambient_light_energy = 1.0\nambient_light_sky_contribution = 1.0\nfog_enabled = false\nfog_color = Color( 0.5, 0.6, 0.7, 1 )\nfog_sun_color = Color( 1, 0.9, 0.7, 1 )\nfog_sun_amount = 0.0\nfog_depth_enabled = true\nfog_depth_begin = 10.0\nfog_depth_curve = 1.0\nfog_transmit_enabled = false\nfog_transmit_curve = 1.0\nfog_height_enabled = false\nfog_height_min = 0.0\nfog_height_max = 100.0\nfog_height_curve = 1.0\ntonemap_mode = 0\ntonemap_exposure = 1.0\ntonemap_white = 1.0\nauto_exposure_enabled = false\nauto_exposure_scale = 0.4\nauto_exposure_min_luma = 0.05\nauto_exposure_max_luma = 8.0\nauto_exposure_speed = 0.5\nss_reflections_enabled = false\nss_reflections_max_steps = 64\nss_reflections_fade_in = 0.15\nss_reflections_fade_out = 2.0\nss_reflections_depth_tolerance = 0.2\nss_reflections_roughness = true\nssao_enabled = false\nssao_radius = 1.0\nssao_intensity = 1.0\nssao_radius2 = 0.0\nssao_intensity2 = 1.0\nssao_bias = 0.01\nssao_light_affect = 0.0\nssao_color = Color( 0, 0, 0, 1 )\nssao_quality = 0\nssao_blur = 3\nssao_edge_sharpness = 4.0\ndof_blur_far_enabled = false\ndof_blur_far_distance = 10.0\ndof_blur_far_transition = 5.0\ndof_blur_far_amount = 0.1\ndof_blur_far_quality = 1\ndof_blur_near_enabled = false\ndof_blur_near_distance = 2.0\ndof_blur_near_transition = 1.0\ndof_blur_near_amount = 0.1\ndof_blur_near_quality = 1\nglow_enabled = false\nglow_levels/1 = false\nglow_levels/2 = false\nglow_levels/3 = true\nglow_levels/4 = false\nglow_levels/5 = true\nglow_levels/6 = false\nglow_levels/7 = false\nglow_intensity = 0.8\nglow_strength = 1.0\nglow_bloom = 0.0\nglow_blend_mode = 2\nglow_hdr_threshold = 1.0\nglow_hdr_scale = 2.0\nglow_bicubic_upscale = false\nadjustment_enabled = false\nadjustment_brightness = 1.0\nadjustment_contrast = 1.0\nadjustment_saturation = 1.0\n\n"
  },
  {
    "path": "godot-3-presentation/content/demos/attacks/global-constants.gd",
    "content": "extends Node\n\nenum Statuses { NONE, INVINCIBLE, POISONED, STUNNED }"
  },
  {
    "path": "godot-3-presentation/content/demos/attacks/icon.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/icon.png-92420cbdeb4111ce5c8be2749bb4edae.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/demos/attacks/icon.png\"\ndest_files=[ \"res://.import/icon.png-92420cbdeb4111ce5c8be2749bb4edae.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/demos/attacks/vfx/PoisonBubbles.tscn",
    "content": "[gd_scene load_steps=8 format=2]\n\n[ext_resource path=\"res://content/demos/attacks/vfx/poison-bubble.png\" type=\"Texture\" id=1]\n\n\n[sub_resource type=\"Shader\" id=1]\n\ncode = \"shader_type particles;\nuniform float spread;\nuniform float flatness;\nuniform float initial_linear_velocity;\nuniform float initial_angle;\nuniform float angular_velocity;\nuniform float orbit_velocity;\nuniform float linear_accel;\nuniform float radial_accel;\nuniform float tangent_accel;\nuniform float damping;\nuniform float scale;\nuniform float hue_variation;\nuniform float anim_speed;\nuniform float anim_offset;\nuniform float initial_linear_velocity_random;\nuniform float initial_angle_random;\nuniform float angular_velocity_random;\nuniform float orbit_velocity_random;\nuniform float linear_accel_random;\nuniform float radial_accel_random;\nuniform float tangent_accel_random;\nuniform float damping_random;\nuniform float scale_random;\nuniform float hue_variation_random;\nuniform float anim_speed_random;\nuniform float anim_offset_random;\nuniform float emission_sphere_radius;\nuniform vec4 color_value : hint_color;\nuniform int trail_divisor;\nuniform vec3 gravity;\nuniform sampler2D color_ramp;\nuniform sampler2D scale_texture;\n\n\nfloat rand_from_seed(inout uint seed) {\n\tint k;\n\tint s = int(seed);\n\tif (s == 0)\n\ts = 305420679;\n\tk = s / 127773;\n\ts = 16807 * (s - k * 127773) - 2836 * k;\n\tif (s < 0)\n\t\ts += 2147483647;\n\tseed = uint(s);\n\treturn float(seed % uint(65536))/65535.0;\n}\n\nfloat rand_from_seed_m1_p1(inout uint seed) {\n\treturn rand_from_seed(seed)*2.0-1.0;\n}\n\nuint hash(uint x) {\n\tx = ((x >> uint(16)) ^ x) * uint(73244475);\n\tx = ((x >> uint(16)) ^ x) * uint(73244475);\n\tx = (x >> uint(16)) ^ x;\n\treturn x;\n}\n\nvoid vertex() {\n\tuint base_number = NUMBER/uint(trail_divisor);\n\tuint alt_seed = hash(base_number+uint(1)+RANDOM_SEED);\n\tfloat angle_rand = rand_from_seed(alt_seed);\n\tfloat scale_rand = rand_from_seed(alt_seed);\n\tfloat hue_rot_rand = rand_from_seed(alt_seed);\n\tfloat anim_offset_rand = rand_from_seed(alt_seed);\n\tfloat pi = 3.14159;\n\tfloat degree_to_rad = pi / 180.0;\n\n\tif (RESTART) {\n\t\tfloat tex_linear_velocity = 0.0;\n\t\tfloat tex_angle = 0.0;\n\t\tfloat tex_anim_offset = 0.0;\n\t\tfloat spread_rad = spread*degree_to_rad;\n\t\tfloat angle1_rad = rand_from_seed_m1_p1(alt_seed)*spread_rad;\n\t\tvec3 rot = vec3( cos(angle1_rad), sin(angle1_rad),0.0 );\n\t\tVELOCITY = rot*initial_linear_velocity*mix(1.0, rand_from_seed(alt_seed), initial_linear_velocity_random);\n\t\tfloat base_angle = (initial_angle+tex_angle)*mix(1.0,angle_rand,initial_angle_random);\n\t\tCUSTOM.x = base_angle*degree_to_rad;\n\t\tCUSTOM.y = 0.0;\n\t\tCUSTOM.z = (anim_offset+tex_anim_offset)*mix(1.0,anim_offset_rand,anim_offset_random);\n\t\tTRANSFORM[3].xyz = normalize(vec3(rand_from_seed(alt_seed) * 2.0 - 1.0, rand_from_seed(alt_seed) * 2.0-1.0, rand_from_seed(alt_seed) * 2.0-1.0 ))*emission_sphere_radius;\n\t\tVELOCITY = (EMISSION_TRANSFORM * vec4(VELOCITY,0.0)).xyz;\n\t\tTRANSFORM = EMISSION_TRANSFORM * TRANSFORM;\n\t\tVELOCITY.z = 0.0;\n\t\tTRANSFORM[3].z = 0.0;\n\t} else {\n\t\tCUSTOM.y += DELTA/LIFETIME;\n\t\tfloat tex_linear_velocity = 0.0;\n\t\tfloat tex_orbit_velocity = 0.0;\n\t\tfloat tex_angular_velocity = 0.0;\n\t\tfloat tex_linear_accel = 0.0;\n\t\tfloat tex_radial_accel = 0.0;\n\t\tfloat tex_tangent_accel = 0.0;\n\t\tfloat tex_damping = 0.0;\n\t\tfloat tex_angle = 0.0;\n\t\tfloat tex_anim_speed = 0.0;\n\t\tfloat tex_anim_offset = 0.0;\n\t\tvec3 force = gravity; \n\t\tvec3 pos = TRANSFORM[3].xyz; \n\t\tpos.z = 0.0; \n\t\t//apply linear acceleration\n\t\tforce += length(VELOCITY) > 0.0 ? normalize(VELOCITY) * (linear_accel+tex_linear_accel)*mix(1.0,rand_from_seed(alt_seed),linear_accel_random) : vec3(0.0);\n\t\t//apply radial acceleration\n\t\tvec3 org = EMISSION_TRANSFORM[3].xyz;\n\t\tvec3 diff = pos-org;\n\t\tforce += length(diff) > 0.0 ? normalize(diff) * (radial_accel+tex_radial_accel)*mix(1.0,rand_from_seed(alt_seed),radial_accel_random) : vec3(0.0);\n\t\t//apply tangential acceleration;\n\t\tforce += length(diff.yx) > 0.0 ? vec3(normalize(diff.yx * vec2(-1.0,1.0)),0.0) * ((tangent_accel+tex_tangent_accel)*mix(1.0,rand_from_seed(alt_seed),tangent_accel_random)) : vec3(0.0);\n\t\t//apply attractor forces\n\t\tVELOCITY += force * DELTA;\n\t\tfloat base_angle = (initial_angle+tex_angle)*mix(1.0,angle_rand,initial_angle_random);\n\t\tbase_angle += CUSTOM.y*LIFETIME*(angular_velocity+tex_angular_velocity)*mix(1.0,rand_from_seed(alt_seed)*2.0-1.0,angular_velocity_random);\n\t\tCUSTOM.x = base_angle*degree_to_rad;\n\t\tCUSTOM.z = (anim_offset+tex_anim_offset)*mix(1.0,anim_offset_rand,anim_offset_random)+CUSTOM.y*(anim_speed+tex_anim_speed)*mix(1.0,rand_from_seed(alt_seed),anim_speed_random);\n\t\tCUSTOM.z = clamp(CUSTOM.z,0.0,1.0);\n\t}\n\tfloat tex_scale = textureLod(scale_texture,vec2(CUSTOM.y,0.0),0.0).r;\n\tfloat tex_hue_variation = 0.0;\n\tfloat hue_rot_angle = (hue_variation+tex_hue_variation)*pi*2.0*mix(1.0,hue_rot_rand*2.0-1.0,hue_variation_random);\n\tfloat hue_rot_c = cos(hue_rot_angle);\n\tfloat hue_rot_s = sin(hue_rot_angle);\n\tmat4 hue_rot_mat = mat4( vec4(0.299,  0.587,  0.114, 0.0),\n\t\t\tvec4(0.299,  0.587,  0.114, 0.0),\n\t\t\tvec4(0.299,  0.587,  0.114, 0.0),\n\t\t\tvec4(0.000,  0.000,  0.000, 1.0)) +\n\t\tmat4( vec4(0.701, -0.587, -0.114, 0.0),\n\t\t\tvec4(-0.299,  0.413, -0.114, 0.0),\n\t\t\tvec4(-0.300, -0.588,  0.886, 0.0),\n\t\t\tvec4(0.000,  0.000,  0.000, 0.0)) * hue_rot_c +\n\t\tmat4( vec4(0.168,  0.330, -0.497, 0.0),\n\t\t\tvec4(-0.328,  0.035,  0.292, 0.0),\n\t\t\tvec4(1.250, -1.050, -0.203, 0.0),\n\t\t\tvec4(0.000,  0.000,  0.000, 0.0)) * hue_rot_s;\n\tCOLOR = textureLod(color_ramp,vec2(CUSTOM.y,0.0),0.0) * hue_rot_mat;\n\n\tTRANSFORM[0] = vec4(cos(CUSTOM.x),-sin(CUSTOM.x),0.0,0.0);\n\tTRANSFORM[1] = vec4(sin(CUSTOM.x),cos(CUSTOM.x),0.0,0.0);\n\tTRANSFORM[2] = vec4(0.0,0.0,1.0,0.0);\n\tfloat base_scale = mix(scale*tex_scale,1.0,scale_random*scale_rand);\n\tif (base_scale==0.0) base_scale=0.000001;\n\tTRANSFORM[0].xyz *= base_scale;\n\tTRANSFORM[1].xyz *= base_scale;\n\tTRANSFORM[2].xyz *= base_scale;\n\tVELOCITY.z = 0.0;\n\tTRANSFORM[3].z = 0.0;\n}\n\n\"\n\n[sub_resource type=\"Gradient\" id=2]\n\noffsets = PoolRealArray( 0, 0.0710059, 0.863905, 1 )\ncolors = PoolColorArray( 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 )\n\n[sub_resource type=\"GradientTexture\" id=3]\n\nflags = 4\ngradient = SubResource( 2 )\nwidth = 2048\n\n[sub_resource type=\"Curve\" id=4]\n\nmin_value = 0.0\nmax_value = 1.0\nbake_resolution = 100\n_data = [ Vector2( 0, 1 ), 0.0, 0.0, 0, 0, Vector2( 1, 0.166992 ), 0.0, 0.0, 0, 0 ]\n\n[sub_resource type=\"CurveTexture\" id=5]\n\nflags = 4\nwidth = 2048\ncurve = SubResource( 4 )\n\n[sub_resource type=\"ShaderMaterial\" id=6]\n\nrender_priority = 0\nshader = SubResource( 1 )\nshader_param/spread = 45.0\nshader_param/flatness = 0.0\nshader_param/initial_linear_velocity = 60.0\nshader_param/initial_angle = 0.0\nshader_param/angular_velocity = null\nshader_param/orbit_velocity = 0.0\nshader_param/linear_accel = 0.0\nshader_param/radial_accel = 0.0\nshader_param/tangent_accel = 0.0\nshader_param/damping = 0.0\nshader_param/scale = 0.8\nshader_param/hue_variation = 0.0\nshader_param/anim_speed = 0.0\nshader_param/anim_offset = 0.0\nshader_param/initial_linear_velocity_random = 0.4\nshader_param/initial_angle_random = 0.0\nshader_param/angular_velocity_random = 0.0\nshader_param/orbit_velocity_random = 0.0\nshader_param/linear_accel_random = 0.0\nshader_param/radial_accel_random = 0.0\nshader_param/tangent_accel_random = 0.0\nshader_param/damping_random = 0.0\nshader_param/scale_random = 0.8\nshader_param/hue_variation_random = 0.0\nshader_param/anim_speed_random = 0.0\nshader_param/anim_offset_random = 0.0\nshader_param/emission_sphere_radius = 10.0\nshader_param/color_value = Color( 1, 1, 1, 1 )\nshader_param/trail_divisor = 1\nshader_param/gravity = Vector3( 0, -1e-06, 0 )\nshader_param/color_ramp = SubResource( 3 )\nshader_param/scale_texture = SubResource( 5 )\n\n[node name=\"PoisonBubbles\" type=\"Particles2D\"]\n\nrotation = -1.5708\nemitting = true\namount = 3\nlifetime = 1.0\none_shot = false\npreprocess = 0.0\nspeed_scale = 1.0\nexplosiveness = 0.0\nrandomness = 0.0\nfixed_fps = 0\nfract_delta = true\nvisibility_rect = Rect2( -100, -100, 200, 200 )\nlocal_coords = false\ndraw_order = 0\nprocess_material = SubResource( 6 )\ntexture = ExtResource( 1 )\nnormal_map = null\nh_frames = 1\nv_frames = 1\n_sections_unfolded = [ \"Process Material\", \"Textures\", \"Transform\" ]\n\n\n"
  },
  {
    "path": "godot-3-presentation/content/demos/attacks/vfx/poison-bubble.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/poison-bubble.png-2816a517038566ad1b765120ff0c8513.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/demos/attacks/vfx/poison-bubble.png\"\ndest_files=[ \"res://.import/poison-bubble.png-2816a517038566ad1b765120ff0c8513.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/open_source_games/MakingOpenSourceGames.csv",
    "content": "id,en,ja\nHalfFreeContent_Column_Header_title,A lot of free content,無料のコンテンツをたくさん作ってあげます\nHalfFreeContent_Column_Body_Row_TextBox_text,\"More than 50% of the work we do is available for free:\n\n- Hundreds of [color=#26BFE3]tutorials[/color]\n- Contributions to [color=#26BFE3]Free Software[/color]\n- Open source [color=#26BFE3]tools[/color] for game developers\n\nSounds crazy? It is!\nBut we get to work [color=#F2971A]full-time[/color] on projects we love, and share everything we create from the start.\n\",\"自分たちのコンテンツの五割以上を無料でもらえます：\n\n１．数百チュートリアル\n２．フリーソフトに貢献します\n３．ゲーム開発者のオープンソース道具\n\nクレージーでしょうか！\nでももう給料をもらえて好きなプロジェクトに毎日働けますよ。それで自由になんでも最初から交換できます。\"\nMakingGamesTogether_Column_Header_title,Making games together,ゲームを世界の人たちと作ること\nMakingGamesTogether_Column_Body_Row_TextBox_text,\"Since October 2018 we started [color=#E3266F]Open Source projects[/color] with our community.\n\n- Our Zelda-like ARPG demo has 5 contributors.\n- Open RPG, our RPG gameplay engine, has 12 contributors already.\n\nAnd we are just getting started!\",\"２０１８年１０月からオープンソースゲームプロジェクトを開発しはじめました。\n\n１．ZeldaみたいなARPGのゲームは５人の貢献者です\n２．オープンRPG、自分たちのRPGゲームプレイエンジンはもう１２人の貢献者で作っています\n\nプロジェクトが若い割にもう数人の貢献者が手伝ってくれました。\"\nWhySharingKnowledge_Column_Header_title,Why? Everyone shares,どうして？みんなが技術を交換します\nWhySharingKnowledge_Column_Body_Row_TextBox_text,\"We all share what we know.\nWe are all [color=#26BFE3]mentors and students[/color] at the same time.\n\nIn the community people are kind to one another. Sometimes we even become friends!\n\nThe contributors get Free training and professional experience working in a team.\",\"貢献者の皆さんが両方教員と学生になります。\n\nコミュニティの方たちは他のだれに優しく新しい技術を教えてたまに親しくなってしまいます。\n\n参加する人たちがゲームの仕方を勉強できてプロの経験を無料でもらえます。\"\nWhySharingKnowledge_Column_Footer_text,Together we can create something greater than we could individually.,一人でより一緒に大きいプロジェクトを作れますね。\nWhyCodebase_Column_Header_title,Why? Better code,コードの書き方がうまくいっています\nWhyCodebase_Column_Body_Row_TextBox_text,\"Working together forces us to write code that is easy to read and to maintain. \nWe're working on [color=#E3266F]code guidelines[/color] that the entire community can use to that end.\n\nPeople find and fix bugs we didn't know about. Contributors add features we wouldn't have the time or resources to code ourselves.\",\"世界の人たちが貢献するようにコードを読まなくてはいけませんから読みやすくて維持しやすいコードを書かなければなりません。\nそのためにコードガイドラインをだんだん作っています。\n\n貢献者がバッグをよくに見つけて直してくれます。時間がかかる新しい機能も書いてくれます。\"\nWhyCodebase_Column_Footer_text,\"Also, we're building up reusable tools and scripts to get new projects started faster.\",皆のおかげで道具と将来のプロジェクトのためにまとめています\nHowCrowdfunding_Column_Header_title,How? Crowdfunding,クラウドファンディング\nHowCrowdfunding_Column_Header_subtitle,Half of our revenue comes from Kickstarter,会社のお金の半分がKickstarterでもらいます\nHowCrowdfunding_Column_Body_Row_TextBox_text,\"Crowdfunding works well for GDquest as the project is community-driven.\n\nSome tips after 3 campaigns:\n\n1. Do a [color=#26BFE3]market study[/color]! You should secure sponsors and know how many persons will support you before you launch.\n2. Offer a [color=#E3266F]unique product[/color] or service.\n3. Nurture your community. Keep great [color=#26BFE3]relationships[/color] with people.\n4. Prepare communication and content in advance.\",\"クラウドファンディングのコツ：\n\n１．マケットを勉強しないといけません！スポンサーを開始する前に見つけたほうがいいでしょう\n２．ユニックサビスか商品を作らないと興味が少なくなります\n３．コミュニティと親しくコミュニケーションしたほうがいいでしょう\n４．宣伝とコンテンツをキャンペーンの前にじゅんびしたほうがいいです\"\nHowCrowdfunding_Column_Footer_text,We got all three of our projects funded in 1 to 4 days doing this,GDquestの３つのKickstarterは四日間以下で必要とするお金を受けれました。\nHowEmpoweringCommunity_Column_Header_title,How? Empower people,貢献者に力をあたえます\nHowEmpoweringCommunity_Column_Body_Row_TextBox_text,\"You want to:\n\n1. Let people contribute ideas\n2. Delegate work to contributors\n3. Listen to the community\n\nPeople may code or design differently from you. Don't try to control everything: take their contributions as opportunities to learn new workflows and techniques!\n\nAlso, review proposals and let people fix their work themselves.\",\"１．皆さんのアイデアを聞いて\n２．仕事をいにんして\n３．コミュニティと相談したほうがいい\n\n他のだれの開発かデザインの仕方が違うでしょう。その貢献を新しい技術を勉強できる機会になりますよ！\n\n貢献者が成長できるようにコードを見直して失敗を教えたほうがいいです。\"\nHowEmpoweringCommunity_Column_Footer_text,Did I mention our community is awesome?,コミュニティが素晴らしいですよ！\nHowKrita_Column_Body_Header_title,Game art: made with Krita,ゲームアート：Kritaで絵を書きます\nOpenGameProjects_Column_Header_title,Gdquest’s future,GDquestの将来\nOpenGameProjects_Column_Header_subtitle,Open Game projects,オープンゲームプロジェクト\nOpenGameProjects_Column_Body_Row_TextBox_text,\"Our ambition is to make Open Game projects like Blender's Open Movies:\n\n1. Create great little games\n2. Improve our favorite Free Software\n3. Offer Free education to everyone\n\nEveryone's welcome to work together on this journey!\nWe're already building the foundations.\",\"Blender３Dのオープン動画というプロジェクトのようにオープンゲームを作ってみたいです。\n\nゲームをつくって好きなフリーソフトに貢献してフリー教育を作ってみたいです。\nそのためにGodotエンジンのチームと一緒に共同作業しています。\n\n貢献したいなら皆を喜んでかんげいします！\n今はもうゆっくり準備しています。\"\nThankYou_Column_Header_title,Thank you!,ありがとうございました！\nThankYou_Column_Body_Row_TextBox_text,\"This presentation and our game projects are Free and Open Source!\nFind them on [url=https://github.com/GDquest/godot-3-presentation]GDquest's GitHub page[/url].\n\nWe are on:\n\nTwitter: [color=#26BFE3]@NathanGDquest[/color]\nYouTube: [color=#F2971A]youtube.com/c/gdquest[/color]\",\"このプレゼンとゲームプロジェクトは全てオプンソースです。\nGDquestの[url=https://github.com/GDquest/godot-3-presentation]GitHubページ[/url]でダウンロードできます。\n\nSNS:\n\nTwitter: [color=#26BFE3]@NathanGDquest[/color]\nYouTube: [color=#F2971A]youtube.com/c/gdquest[/color]\"\nThankYou_Column_Footer_text,Any questions? Message me anytime or let's talk after the presentations!,質問があればいつでも連絡してください！日本語は大丈夫です。\n"
  },
  {
    "path": "godot-3-presentation/content/open_source_games/MakingOpenSourceGames.csv.import",
    "content": "[remap]\n\nimporter=\"csv_translation\"\ntype=\"Translation\"\n\n[deps]\n\nfiles=[ \"res://content/open_source_games/MakingOpenSourceGames.en.translation\", \"res://content/open_source_games/MakingOpenSourceGames.ja.translation\" ]\n\nsource_file=\"res://content/open_source_games/MakingOpenSourceGames.csv\"\ndest_files=[ \"res://content/open_source_games/MakingOpenSourceGames.en.translation\", \"res://content/open_source_games/MakingOpenSourceGames.ja.translation\" ]\n\n[params]\n\ncompress=true\ndelimiter=0\n"
  },
  {
    "path": "godot-3-presentation/content/open_source_games/MakingOpenSourceGames.tscn",
    "content": "[gd_scene load_steps=17 format=2]\n\n[ext_resource path=\"res://src/presentation/Presentation.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://content/open_source_games/slides/OpenSourceGamesTitle.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://content/tokyo_indies_pitch/slides/Intro_Nathan.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://content/open_source_games/slides/WeMakeFreeContent.tscn\" type=\"PackedScene\" id=4]\n[ext_resource path=\"res://content/open_source_games/slides/MakingGamesTogether.tscn\" type=\"PackedScene\" id=5]\n[ext_resource path=\"res://content/open_source_games/slides/WhySharingKnowledge.tscn\" type=\"PackedScene\" id=6]\n[ext_resource path=\"res://content/open_source_games/slides/WhyCodebase.tscn\" type=\"PackedScene\" id=7]\n[ext_resource path=\"res://content/open_source_games/slides/HowCrowdfunding.tscn\" type=\"PackedScene\" id=8]\n[ext_resource path=\"res://content/open_source_games/slides/HowEmpoweringCommunity.tscn\" type=\"PackedScene\" id=9]\n[ext_resource path=\"res://content/tokyo_indies_pitch/slides/TokyoIndiesTitle.tscn\" type=\"PackedScene\" id=10]\n[ext_resource path=\"res://content/power_pitch/slides/A_free_modern_engine.tscn\" type=\"PackedScene\" id=11]\n[ext_resource path=\"res://content/open_source_games/slides/HowKrita.tscn\" type=\"PackedScene\" id=12]\n[ext_resource path=\"res://content/open_source_games/slides/OpenGameProjects.tscn\" type=\"PackedScene\" id=13]\n[ext_resource path=\"res://content/open_source_games/ThankYou.tscn\" type=\"PackedScene\" id=14]\n[ext_resource path=\"res://assets/theme/godot.theme\" type=\"Theme\" id=15]\n\n\n\n[sub_resource type=\"GDScript\" id=1]\n\nscript/source = \"extends Label\n\nfunc _ready():\n\thide()\n\"\n\n[node name=\"MakingOpenSourceGames\" index=\"0\" instance=ExtResource( 1 )]\n\n[node name=\"OpenSourceGamesTitle\" parent=\"Slides\" index=\"0\" instance=ExtResource( 2 )]\n\n[node name=\"Intro_GDquest\" parent=\"Slides\" index=\"1\" instance=ExtResource( 3 )]\nvisible = false\n\n[node name=\"HalfFreeContent\" parent=\"Slides\" index=\"2\" instance=ExtResource( 4 )]\n\n[node name=\"MakingGamesTogether\" parent=\"Slides\" index=\"3\" instance=ExtResource( 5 )]\nvisible = false\n\n[node name=\"WhySharingKnowledge\" parent=\"Slides\" index=\"4\" instance=ExtResource( 6 )]\nvisible = false\n\n[node name=\"WhyCodebase\" parent=\"Slides\" index=\"5\" instance=ExtResource( 7 )]\nvisible = false\n\n[node name=\"HowCrowdfunding\" parent=\"Slides\" index=\"6\" instance=ExtResource( 8 )]\nvisible = false\n\n[node name=\"HowEmpoweringCommunity\" parent=\"Slides\" index=\"7\" instance=ExtResource( 9 )]\nvisible = false\n\n[node name=\"GodotTitle\" parent=\"Slides\" index=\"8\" instance=ExtResource( 10 )]\nvisible = false\n\n[node name=\"A_free_modern_engine\" parent=\"Slides\" index=\"9\" instance=ExtResource( 11 )]\nvisible = false\n\n[node name=\"HowKrita\" parent=\"Slides\" index=\"10\" instance=ExtResource( 12 )]\nvisible = false\n\n[node name=\"OpenGameProjects\" parent=\"Slides\" index=\"11\" instance=ExtResource( 13 )]\nvisible = false\nmargin_top = 1.0\nmargin_bottom = 1.0\n\n[node name=\"ThankYou\" parent=\"Slides\" index=\"12\" instance=ExtResource( 14 )]\nvisible = false\n\n[node name=\"TouchControls\" parent=\".\" index=\"2\"]\nvisible = false\n\n[node name=\"Label\" type=\"Label\" parent=\".\" index=\"3\"]\nanchor_right = 1.0\nmargin_top = -101.5\nmargin_bottom = -14.5\ntheme = ExtResource( 15 )\ntext = \"Short presentation about bringing people together to make Free and Open Source Games\nThe goal is to poke people's interest in collaborative work, and hopefully Free Software like Godot, Krita...\"\nscript = SubResource( 1 )\n\n"
  },
  {
    "path": "godot-3-presentation/content/open_source_games/ThankYou.tscn",
    "content": "[gd_scene load_steps=12 format=2]\n\n[ext_resource path=\"res://src/slide/Slide.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://src/slide/widgets/Column.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://src/slide/widgets/Header.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://src/slide/widgets/Body.tscn\" type=\"PackedScene\" id=4]\n[ext_resource path=\"res://src/slide/layout/Row.tscn\" type=\"PackedScene\" id=5]\n[ext_resource path=\"res://src/slide/widgets/TextBox.tscn\" type=\"PackedScene\" id=6]\n[ext_resource path=\"res://src/slide/widgets/Picture.tscn\" type=\"PackedScene\" id=7]\n[ext_resource path=\"res://content/power_pitch/img/gdquest-business-card.png\" type=\"Texture\" id=8]\n[ext_resource path=\"res://src/slide/widgets/Footer.tscn\" type=\"PackedScene\" id=10]\n\n[sub_resource type=\"GDScript\" id=1]\nscript/source = \"tool\nextends Control\n\nexport(String) var title = \\\"\\\" setget set_title\nexport(String) var subtitle = \\\"\\\" setget set_subtitle\n\nvar FONTS_DEFAULT = {\n\t'title': preload(\\\"res://theme/fonts/title_montserrat.tres\\\"),\n\t'subtitle': preload(\\\"res://theme/fonts/subtitle_montserrat.tres\\\"),\n}\nvar FONTS_CJK = {\n\t'title': preload(\\\"res://theme/fonts/title_noto.tres\\\"),\n\t'subtitle': preload(\\\"res://theme/fonts/subtitle_noto.tres\\\"),\n}\n\nonready var title_node = $Column/Title\nonready var title_shadow_node = $Column/Title/Shadow\nonready var subtitle_node = $Column/Subtitle\nonready var subtitle_shadow_node = $Column/Subtitle/Shadow\n\nfunc _ready():\n\tself.title = title\n\tself.subtitle = subtitle\n\nfunc set_title(string):\n\ttitle = string\n\tif not title_node:\n\t\treturn\n\ttitle_node.display(string)\n\nfunc set_subtitle(string):\n\tsubtitle = string\n\tif not subtitle_node:\n\t\treturn\n\tsubtitle_node.display(string)\n\nfunc translate():\n\tvar locale = TranslationServer.get_locale()\n\tvar fonts = FONTS_DEFAULT\n\tif locale in ['ja', 'ko', 'zh']:\n\t\t\tfonts = FONTS_CJK\n\n\ttitle_node.set('custom_fonts/font', fonts['title'])\n\ttitle_shadow_node.set('custom_fonts/font', fonts['title'])\n\tsubtitle_node.set('custom_fonts/font', fonts['subtitle'])\n\tsubtitle_shadow_node.set('custom_fonts/font', fonts['subtitle'])\n\nfunc get_translation_data():\n\tvar data = { 'title': title }\n\tif subtitle:\n\t\tdata['subtitle'] = subtitle\n\treturn data\n\"\n\n[sub_resource type=\"GDScript\" id=2]\nscript/source = \"tool\nextends Control\n\nexport(String, MULTILINE) var text = \\\"\\\" setget set_text\nexport(bool) var center = false setget set_center\n\nonready var _text = $Text\nvar _text_processed = \\\"\\\"\n\nfunc _ready():\n\tupdate_text()\n\nfunc set_text(string):\n\ttext = string\n\tif not _text:\n\t\treturn\n\tupdate_text()\n\nfunc set_center(value):\n\tcenter = value\n\tif not _text:\n\t\treturn\n\tupdate_text()\n\nfunc update_text():\n\tif center:\n\t\t_text_processed = center_text(text)\n\telse:\n\t\t_text_processed = text\n\t$Text.bbcode_text = _text_processed\n\nfunc center_text(string):\n\tvar bbcode = \\\"\\\"\n\tfor line in string.split(\\\"\\\\n\\\"):\n\t\tline = \\\"%s%s%s\\\" % [\\\"[center]\\\", line, \\\"[/center]\\\"]\n\t\tbbcode += line + \\\"\\\\n\\\"\n\treturn bbcode\n\nfunc get_translation_data():\n\treturn { 'text': text }\n\"\n\n[node name=\"ThankYou\" instance=ExtResource( 1 )]\n\n[node name=\"Column\" parent=\".\" index=\"1\" instance=ExtResource( 2 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Header\" parent=\"Column\" index=\"0\" instance=ExtResource( 3 )]\nanchor_right = 0.0\nmargin_right = 1921.0\nmargin_bottom = 210.0\nscript = SubResource( 1 )\ntitle = \"Thank you!\"\nsubtitle = \"\"\nfont_override = null\n\n[node name=\"Body\" parent=\"Column\" index=\"1\" instance=ExtResource( 4 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 210.0\nmargin_right = 1921.0\nmargin_bottom = 940.0\n\n[node name=\"Row\" parent=\"Column/Body\" index=\"0\" instance=ExtResource( 5 )]\n\n[node name=\"TextBox\" parent=\"Column/Body/Row\" index=\"0\" instance=ExtResource( 6 )]\nmargin_right = 639.0\nmargin_bottom = 730.0\nscript = SubResource( 2 )\ntext = \"This presentation and our game projects are Free and Open Source!\nFind them on [url=https://github.com/GDquest/godot-3-presentation]GDquest's GitHub page[/url].\n\nWe are on:\n\nTwitter: [color=#26BFE3]@NathanGDquest[/color]\nYouTube: [color=#F2971A]youtube.com/c/gdquest[/color]\"\ncenter = false\n\n[node name=\"Picture\" parent=\"Column/Body/Row\" index=\"1\" instance=ExtResource( 7 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_left = 643.0\nmargin_right = 1921.0\nmargin_bottom = 730.0\ntexture = ExtResource( 8 )\n\n[node name=\"Footer\" parent=\"Column\" index=\"2\" instance=ExtResource( 10 )]\nvisible = true\nanchor_top = 0.0\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 940.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\ntext = \"Any questions? Message me anytime or let's talk after the presentations!\"\n"
  },
  {
    "path": "godot-3-presentation/content/open_source_games/img/blender-open-movie.jpg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/blender-open-movie.jpg-19469444d10a87edaeaea32b539c555a.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/open_source_games/img/blender-open-movie.jpg\"\ndest_files=[ \"res://.import/blender-open-movie.jpg-19469444d10a87edaeaea32b539c555a.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/open_source_games/img/code-guidelines-1.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/code-guidelines-1.png-831f86e6effa0c047ed175a4ca772149.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/open_source_games/img/code-guidelines-1.png\"\ndest_files=[ \"res://.import/code-guidelines-1.png-831f86e6effa0c047ed175a4ca772149.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/open_source_games/img/code-guidelines-2.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/code-guidelines-2.png-04f29e623f2d41ccc55a24b597f47a8e.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/open_source_games/img/code-guidelines-2.png\"\ndest_files=[ \"res://.import/code-guidelines-2.png-04f29e623f2d41ccc55a24b597f47a8e.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/open_source_games/img/contributor-review-2.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/contributor-review-2.png-8103f5ebe726a42a14923f5207eb2a0a.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/open_source_games/img/contributor-review-2.png\"\ndest_files=[ \"res://.import/contributor-review-2.png-8103f5ebe726a42a14923f5207eb2a0a.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/open_source_games/img/contributor-review.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/contributor-review.png-bb26aa1f8ec9e83a370aeea73200e26f.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/open_source_games/img/contributor-review.png\"\ndest_files=[ \"res://.import/contributor-review.png-bb26aa1f8ec9e83a370aeea73200e26f.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/open_source_games/img/discord-openrpg.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/discord-openrpg.png-624a396524ab22307715da7c6d39b44b.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/open_source_games/img/discord-openrpg.png\"\ndest_files=[ \"res://.import/discord-openrpg.png-624a396524ab22307715da7c6d39b44b.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/open_source_games/img/gdquest-github-profile.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/gdquest-github-profile.png-257111e1931a1bd3ca5ecaf002ae5768.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/open_source_games/img/gdquest-github-profile.png\"\ndest_files=[ \"res://.import/gdquest-github-profile.png-257111e1931a1bd3ca5ecaf002ae5768.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/open_source_games/img/krita.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/krita.png-81ea0ed1170a232300dfedb5ba8677cd.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/open_source_games/img/krita.png\"\ndest_files=[ \"res://.import/krita.png-81ea0ed1170a232300dfedb5ba8677cd.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/open_source_games/img/ks-campaign.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/ks-campaign.png-0f87b63f9ee5d0f5672d8fe990eaf0ff.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/open_source_games/img/ks-campaign.png\"\ndest_files=[ \"res://.import/ks-campaign.png-0f87b63f9ee5d0f5672d8fe990eaf0ff.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/open_source_games/img/open-arpg-demo.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/open-arpg-demo.png-3adc1bbdcf42e94702fd1be28bdcb42a.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/open_source_games/img/open-arpg-demo.png\"\ndest_files=[ \"res://.import/open-arpg-demo.png-3adc1bbdcf42e94702fd1be28bdcb42a.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/open_source_games/img/openrpg-0.3-combat.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/openrpg-0.3-combat.png-251554ce364e5b25c197e827dee8ed89.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/open_source_games/img/openrpg-0.3-combat.png\"\ndest_files=[ \"res://.import/openrpg-0.3-combat.png-251554ce364e5b25c197e827dee8ed89.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/open_source_games/img/openrpg-contributions-community.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/openrpg-contributions-community.png-d39363fa5d7463a12e28590b7eedee90.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/open_source_games/img/openrpg-contributions-community.png\"\ndest_files=[ \"res://.import/openrpg-contributions-community.png-d39363fa5d7463a12e28590b7eedee90.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/open_source_games/img/thumbnail.jpg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/thumbnail.jpg-ff6cfef315d07ab27b6c2336050abe28.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/open_source_games/img/thumbnail.jpg\"\ndest_files=[ \"res://.import/thumbnail.jpg-ff6cfef315d07ab27b6c2336050abe28.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/open_source_games/img/yt-videos.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/yt-videos.png-f7e1053faea100ace19c180a19f21261.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/open_source_games/img/yt-videos.png\"\ndest_files=[ \"res://.import/yt-videos.png-f7e1053faea100ace19c180a19f21261.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/open_source_games/slides/HowCrowdfunding.tscn",
    "content": "[gd_scene load_steps=12 format=2]\n\n[ext_resource path=\"res://src/slide/Slide.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://src/slide/widgets/Column.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://src/slide/widgets/Header.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://src/slide/widgets/Body.tscn\" type=\"PackedScene\" id=4]\n[ext_resource path=\"res://src/slide/layout/Row.tscn\" type=\"PackedScene\" id=5]\n[ext_resource path=\"res://src/slide/widgets/TextBox.tscn\" type=\"PackedScene\" id=6]\n[ext_resource path=\"res://src/slide/widgets/PictureSlideshow.tscn\" type=\"PackedScene\" id=7]\n[ext_resource path=\"res://content/open_source_games/img/ks-campaign.png\" type=\"Texture\" id=8]\n[ext_resource path=\"res://src/slide/widgets/Footer.tscn\" type=\"PackedScene\" id=9]\n\n\n[sub_resource type=\"GDScript\" id=1]\n\nscript/source = \"tool\nextends Control\n\nexport(String) var title = \\\"\\\" setget set_title\nexport(String) var subtitle = \\\"\\\" setget set_subtitle\nexport(Resource) var font_override = null\n\nvar FONTS_DEFAULT = {\n\t'title': preload(\\\"res://theme/fonts/title_montserrat.tres\\\"),\n\t'subtitle': preload(\\\"res://theme/fonts/subtitle_montserrat.tres\\\"),\n}\nvar FONTS_CJK = {\n\t'title': preload(\\\"res://theme/fonts/title_noto.tres\\\"),\n\t'subtitle': preload(\\\"res://theme/fonts/subtitle_noto.tres\\\"),\n}\n\nonready var title_node = $Column/Title\nonready var title_shadow_node = $Column/Title/Shadow\nonready var subtitle_node = $Column/Subtitle\nonready var subtitle_shadow_node = $Column/Subtitle/Shadow\n\nfunc _ready():\n\tself.title = title\n\tself.subtitle = subtitle\n\nfunc set_title(string):\n\ttitle = string\n\tif not title_node:\n\t\treturn\n\ttitle_node.display(string)\n\nfunc set_subtitle(string):\n\tsubtitle = string\n\tif not subtitle_node:\n\t\treturn\n\tsubtitle_node.display(string)\n\nfunc translate():\n\tvar locale = TranslationServer.get_locale()\n\tvar fonts = FONTS_DEFAULT\n\tif font_override:\n\t\ttitle_node.set('custom_fonts/font', font_override)\n\t\ttitle_shadow_node.set('custom_fonts/font', font_override)\n\t\treturn\n\t\t\n\tif locale in ['ja', 'ko', 'zh']:\n\t\t\tfonts = FONTS_CJK\n\ttitle_node.set('custom_fonts/font', fonts['title'])\n\ttitle_shadow_node.set('custom_fonts/font', fonts['title'])\n\tsubtitle_node.set('custom_fonts/font', fonts['subtitle'])\n\tsubtitle_shadow_node.set('custom_fonts/font', fonts['subtitle'])\n\nfunc get_translation_data():\n\tvar data = { 'title': title }\n\tif subtitle:\n\t\tdata['subtitle'] = subtitle\n\treturn data\n\"\n\n[sub_resource type=\"GDScript\" id=2]\n\nscript/source = \"tool\nextends Control\n\nexport(String, MULTILINE) var text = \\\"\\\" setget set_text\nexport(bool) var center = false setget set_center\n\nonready var _text = $Text\nvar _text_processed = \\\"\\\"\n\nfunc _ready():\n\tupdate_text()\n\nfunc set_text(string):\n\ttext = string\n\tif not _text:\n\t\treturn\n\tupdate_text()\n\nfunc set_center(value):\n\tcenter = value\n\tif not _text:\n\t\treturn\n\tupdate_text()\n\nfunc update_text():\n\tif center:\n\t\t_text_processed = center_text(text)\n\telse:\n\t\t_text_processed = text\n\t$Text.bbcode_text = _text_processed\n\nfunc center_text(string):\n\tvar bbcode = \\\"\\\"\n\tfor line in string.split(\\\"\\\\n\\\"):\n\t\tline = \\\"%s%s%s\\\" % [\\\"[center]\\\", line, \\\"[/center]\\\"]\n\t\tbbcode += line + \\\"\\\\n\\\"\n\treturn bbcode\n\nfunc get_translation_data():\n\treturn { 'text': text }\n\"\n\n[node name=\"HowCrowdfunding\" instance=ExtResource( 1 )]\n\n[node name=\"Column\" parent=\".\" index=\"1\" instance=ExtResource( 2 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Header\" parent=\"Column\" index=\"0\" instance=ExtResource( 3 )]\nanchor_right = 0.0\nmargin_right = 1921.0\nmargin_bottom = 210.0\nscript = SubResource( 1 )\ntitle = \"How? Crowdfunding\"\nsubtitle = \"Half of our revenue comes from Kickstarter\"\n\n[node name=\"Body\" parent=\"Column\" index=\"1\" instance=ExtResource( 4 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 210.0\nmargin_right = 1921.0\nmargin_bottom = 940.0\n\n[node name=\"Row\" parent=\"Column/Body\" index=\"0\" instance=ExtResource( 5 )]\n\n[node name=\"TextBox\" parent=\"Column/Body/Row\" index=\"0\" instance=ExtResource( 6 )]\nmargin_right = 710.0\nmargin_bottom = 730.0\nscript = SubResource( 2 )\ntext = \"Crowdfunding tips:\n\n1. Do a market study! You should secure sponsors and know how many persons will support you before you launch.\n2. Offer a unique product or service.\n3. Nurture your community. Keep great relationships with people.\n4. Prepare communication and content in advance.\n\"\n\n[node name=\"PictureSlideshow\" parent=\"Column/Body/Row\" index=\"1\" instance=ExtResource( 7 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_left = 714.0\nmargin_right = 1921.0\nmargin_bottom = 730.0\nsize_flags_stretch_ratio = 1.7\n\n[node name=\"picture1\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"2\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\nrect_min_size = Vector2( 720, 300 )\nsize_flags_vertical = 3\ntexture = ExtResource( 8 )\nexpand = true\nstretch_mode = 6\n\n[node name=\"Footer\" parent=\"Column\" index=\"2\" instance=ExtResource( 9 )]\nvisible = true\nanchor_top = 0.0\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 940.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\ntext = \"This way, we got all three of our projects funded in 1 to 4 days\"\n\n"
  },
  {
    "path": "godot-3-presentation/content/open_source_games/slides/HowEmpoweringCommunity.tscn",
    "content": "[gd_scene load_steps=14 format=2]\n\n[ext_resource path=\"res://src/slide/Slide.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://src/slide/widgets/Column.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://src/slide/widgets/Header.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://assets/theme/fonts/title_montserrat.tres\" type=\"DynamicFont\" id=4]\n[ext_resource path=\"res://src/slide/widgets/Body.tscn\" type=\"PackedScene\" id=5]\n[ext_resource path=\"res://src/slide/layout/Row.tscn\" type=\"PackedScene\" id=6]\n[ext_resource path=\"res://src/slide/widgets/TextBox.tscn\" type=\"PackedScene\" id=7]\n[ext_resource path=\"res://src/slide/widgets/PictureSlideshow.tscn\" type=\"PackedScene\" id=8]\n[ext_resource path=\"res://content/open_source_games/img/contributor-review.png\" type=\"Texture\" id=9]\n[ext_resource path=\"res://content/open_source_games/img/contributor-review-2.png\" type=\"Texture\" id=10]\n[ext_resource path=\"res://src/slide/widgets/Footer.tscn\" type=\"PackedScene\" id=11]\n\n\n\n[sub_resource type=\"GDScript\" id=1]\n\nscript/source = \"tool\nextends Control\n\nexport(String) var title = \\\"\\\" setget set_title\nexport(String) var subtitle = \\\"\\\" setget set_subtitle\nexport(Resource) var font_override = null\n\nvar FONTS_DEFAULT = {\n\t'title': preload(\\\"res://theme/fonts/title_montserrat.tres\\\"),\n\t'subtitle': preload(\\\"res://theme/fonts/subtitle_montserrat.tres\\\"),\n}\nvar FONTS_CJK = {\n\t'title': preload(\\\"res://theme/fonts/title_noto.tres\\\"),\n\t'subtitle': preload(\\\"res://theme/fonts/subtitle_noto.tres\\\"),\n}\n\nonready var title_node = $Column/Title\nonready var title_shadow_node = $Column/Title/Shadow\nonready var subtitle_node = $Column/Subtitle\nonready var subtitle_shadow_node = $Column/Subtitle/Shadow\n\nfunc _ready():\n\tself.title = title\n\tself.subtitle = subtitle\n\nfunc set_title(string):\n\ttitle = string\n\tif not title_node:\n\t\treturn\n\ttitle_node.display(string)\n\nfunc set_subtitle(string):\n\tsubtitle = string\n\tif not subtitle_node:\n\t\treturn\n\tsubtitle_node.display(string)\n\nfunc translate():\n\tvar locale = TranslationServer.get_locale()\n\tvar fonts = FONTS_DEFAULT\n\tif font_override:\n\t\ttitle_node.set('custom_fonts/font', font_override)\n\t\ttitle_shadow_node.set('custom_fonts/font', font_override)\n\t\treturn\n\t\t\n\tif locale in ['ja', 'ko', 'zh']:\n\t\t\tfonts = FONTS_CJK\n\ttitle_node.set('custom_fonts/font', fonts['title'])\n\ttitle_shadow_node.set('custom_fonts/font', fonts['title'])\n\tsubtitle_node.set('custom_fonts/font', fonts['subtitle'])\n\tsubtitle_shadow_node.set('custom_fonts/font', fonts['subtitle'])\n\nfunc get_translation_data():\n\tvar data = { 'title': title }\n\tif subtitle:\n\t\tdata['subtitle'] = subtitle\n\treturn data\n\"\n\n[sub_resource type=\"GDScript\" id=2]\n\nscript/source = \"tool\nextends Control\n\nexport(String, MULTILINE) var text = \\\"\\\" setget set_text\nexport(bool) var center = false setget set_center\n\nonready var _text = $Text\nvar _text_processed = \\\"\\\"\n\nfunc _ready():\n\tupdate_text()\n\nfunc set_text(string):\n\ttext = string\n\tif not _text:\n\t\treturn\n\tupdate_text()\n\nfunc set_center(value):\n\tcenter = value\n\tif not _text:\n\t\treturn\n\tupdate_text()\n\nfunc update_text():\n\tif center:\n\t\t_text_processed = center_text(text)\n\telse:\n\t\t_text_processed = text\n\t$Text.bbcode_text = _text_processed\n\nfunc center_text(string):\n\tvar bbcode = \\\"\\\"\n\tfor line in string.split(\\\"\\\\n\\\"):\n\t\tline = \\\"%s%s%s\\\" % [\\\"[center]\\\", line, \\\"[/center]\\\"]\n\t\tbbcode += line + \\\"\\\\n\\\"\n\treturn bbcode\n\nfunc get_translation_data():\n\treturn { 'text': text }\n\"\n\n[node name=\"HowEmpoweringCommunity\" instance=ExtResource( 1 )]\n\n[node name=\"Column\" parent=\".\" index=\"1\" instance=ExtResource( 2 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Header\" parent=\"Column\" index=\"0\" instance=ExtResource( 3 )]\nanchor_right = 0.0\nmargin_right = 1921.0\nmargin_bottom = 210.0\nscript = SubResource( 1 )\ntitle = \"How? Empower people\"\nfont_override = ExtResource( 4 )\n\n[node name=\"Body\" parent=\"Column\" index=\"1\" instance=ExtResource( 5 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 210.0\nmargin_right = 1921.0\nmargin_bottom = 940.0\n\n[node name=\"Row\" parent=\"Column/Body\" index=\"0\" instance=ExtResource( 6 )]\n\n[node name=\"TextBox\" parent=\"Column/Body/Row\" index=\"0\" instance=ExtResource( 7 )]\nmargin_right = 710.0\nmargin_bottom = 730.0\nscript = SubResource( 2 )\ntext = \"You want to:\n\n1. Let people contribute ideas \n2. Delegate work to contributors\n3. Listen to the community\n\nPeople may code or design differently from you. Don't try to control everything: take their contributions as opportunities to learn new workflows and techniques!\n\nAlso, review proposals and let people fix their work themselves.\"\n\n[node name=\"PictureSlideshow\" parent=\"Column/Body/Row\" index=\"1\" instance=ExtResource( 8 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_left = 714.0\nmargin_right = 1921.0\nmargin_bottom = 730.0\nsize_flags_stretch_ratio = 1.7\nDISPLAY_DURATION = 8.0\n\n[node name=\"picture1\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"2\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\nrect_min_size = Vector2( 720, 300 )\nsize_flags_vertical = 3\ntexture = ExtResource( 9 )\nexpand = true\nstretch_mode = 6\n\n[node name=\"picture2\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"3\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\nrect_min_size = Vector2( 720, 300 )\nsize_flags_vertical = 3\ntexture = ExtResource( 10 )\nexpand = true\nstretch_mode = 6\n\n[node name=\"Footer\" parent=\"Column\" index=\"2\" instance=ExtResource( 11 )]\nvisible = true\nanchor_top = 0.0\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 940.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\ntext = \"Did I mention our community is great?\"\n\n"
  },
  {
    "path": "godot-3-presentation/content/open_source_games/slides/HowKrita.tscn",
    "content": "[gd_scene load_steps=12 format=2]\n\n[ext_resource path=\"res://src/slide/Slide.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://src/slide/widgets/Column.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://src/slide/widgets/Body.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://src/slide/layout/Row.tscn\" type=\"PackedScene\" id=4]\n[ext_resource path=\"res://src/slide/widgets/PictureSlideshow.tscn\" type=\"PackedScene\" id=5]\n[ext_resource path=\"res://content/open_source_games/img/krita.png\" type=\"Texture\" id=6]\n[ext_resource path=\"res://assets/theme/godot.theme\" type=\"Theme\" id=7]\n[ext_resource path=\"res://assets/theme/sprites/header_dusk.png\" type=\"Texture\" id=8]\n[ext_resource path=\"res://assets/theme/fonts/title_montserrat.tres\" type=\"DynamicFont\" id=9]\n\n\n\n[sub_resource type=\"GDScript\" id=1]\n\nscript/source = \"tool\nextends Control\n\nexport(String) var title = \\\"\\\" setget set_title\nexport(String) var subtitle = \\\"\\\" setget set_subtitle\n\nvar FONTS_DEFAULT = {\n\t'title': preload(\\\"res://theme/fonts/title_montserrat.tres\\\"),\n\t'subtitle': preload(\\\"res://theme/fonts/subtitle_montserrat.tres\\\"),\n}\nvar FONTS_CJK = {\n\t'title': preload(\\\"res://theme/fonts/title_noto.tres\\\"),\n\t'subtitle': preload(\\\"res://theme/fonts/subtitle_noto.tres\\\"),\n}\n\nonready var title_node = $Column/Title\nonready var title_shadow_node = $Column/Title/Shadow\nonready var subtitle_node = $Column/Subtitle\nonready var subtitle_shadow_node = $Column/Subtitle/Shadow\n\nfunc _ready():\n\tself.title = title\n\tself.subtitle = subtitle\n\nfunc set_title(string):\n\ttitle = string\n\tif not title_node:\n\t\treturn\n\ttitle_node.display(string)\n\nfunc set_subtitle(string):\n\tsubtitle = string\n\tif not subtitle_node:\n\t\treturn\n\tsubtitle_node.display(string)\n\nfunc translate():\n\tif not title_node:\n\t\treturn\n\tvar locale = TranslationServer.get_locale()\n\tvar fonts = FONTS_DEFAULT\n\tif locale in ['ja', 'ko', 'zh']:\n\t\t\tfonts = FONTS_CJK\n\n\ttitle_node.set('custom_fonts/font', fonts['title'])\n\ttitle_shadow_node.set('custom_fonts/font', fonts['title'])\n\tsubtitle_node.set('custom_fonts/font', fonts['subtitle'])\n\tsubtitle_shadow_node.set('custom_fonts/font', fonts['subtitle'])\n\nfunc get_translation_data():\n\tvar data = { 'title': title }\n\tif subtitle:\n\t\tdata['subtitle'] = subtitle\n\treturn data\n\"\n\n[sub_resource type=\"GDScript\" id=2]\n\nscript/source = \"tool\nextends Label\n\nonready var shadow_node = $Shadow\n\nfunc display(string):\n\ttext = string\n\tshadow_node.text = string\n\nfunc _on_Subtitle_visibility_updated(visible):\n\tif visible:\n\t\tvalign = Label.VALIGN_BOTTOM\n\t\tshadow_node.valign = Label.VALIGN_BOTTOM\n\telse:\n\t\tvalign = Label.VALIGN_CENTER\n\t\tshadow_node.valign = Label.VALIGN_CENTER\n\"\n\n[node name=\"HowKrita\" index=\"0\" instance=ExtResource( 1 )]\n\n[node name=\"Column\" parent=\".\" index=\"1\" instance=ExtResource( 2 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Body\" parent=\"Column\" index=\"0\" instance=ExtResource( 3 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Row\" parent=\"Column/Body\" index=\"0\" instance=ExtResource( 4 )]\n\n[node name=\"PictureSlideshow\" parent=\"Column/Body/Row\" index=\"0\" instance=ExtResource( 5 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"godot_editor_2d\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"2\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\ntexture = ExtResource( 6 )\nexpand = true\nstretch_mode = 6\n\n[node name=\"Header\" type=\"TextureRect\" parent=\"Column/Body\" index=\"1\" groups=[\n\"translate\",\n]]\nanchor_top = 1.0\nanchor_right = 1.0\nanchor_bottom = 1.0\nmargin_top = -252.0\nmargin_bottom = -4.0\nrect_min_size = Vector2( 0, 210 )\nsize_flags_horizontal = 3\ntheme = ExtResource( 7 )\ntexture = ExtResource( 8 )\nexpand = true\nscript = SubResource( 1 )\ntitle = \"Game art: made with Krita\"\n\n[node name=\"Title\" type=\"Label\" parent=\"Column/Body/Header\" index=\"0\"]\nanchor_left = 0.5\nanchor_top = 0.5\nanchor_right = 0.5\nanchor_bottom = 0.5\nmargin_left = -800.5\nmargin_top = -116.0\nmargin_right = 800.5\nmargin_bottom = 117.0\nrect_min_size = Vector2( 800, 0 )\nmouse_filter = 0\nsize_flags_vertical = 3\nsize_flags_stretch_ratio = 2.2\ncustom_fonts/font = ExtResource( 9 )\ntext = \"Game art: made with Krita\"\nalign = 1\nvalign = 1\nclip_text = true\nuppercase = true\nscript = SubResource( 2 )\n\n[node name=\"Shadow\" type=\"Label\" parent=\"Column/Body/Header/Title\" index=\"0\"]\nmodulate = Color( 0.351563, 0, 0.703125, 0.487922 )\nshow_behind_parent = true\nanchor_right = 1.0\nanchor_bottom = 1.0\nmargin_top = 57.7501\nmargin_bottom = 57.7501\nmouse_filter = 0\nsize_flags_vertical = 3\nsize_flags_stretch_ratio = 2.2\ncustom_fonts/font = ExtResource( 9 )\ntext = \"Game art: made with Krita\n\"\nalign = 1\nvalign = 1\nclip_text = true\nuppercase = true\n\n"
  },
  {
    "path": "godot-3-presentation/content/open_source_games/slides/HowSupportiveCommunity.tscn",
    "content": "[gd_scene load_steps=13 format=2]\n\n[ext_resource path=\"res://src/slide/Slide.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://src/slide/widgets/Column.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://src/slide/widgets/Header.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://assets/theme/fonts/title_montserrat.tres\" type=\"DynamicFont\" id=4]\n[ext_resource path=\"res://src/slide/widgets/Body.tscn\" type=\"PackedScene\" id=5]\n[ext_resource path=\"res://src/slide/layout/Row.tscn\" type=\"PackedScene\" id=6]\n[ext_resource path=\"res://src/slide/widgets/TextBox.tscn\" type=\"PackedScene\" id=7]\n[ext_resource path=\"res://src/slide/widgets/PictureSlideshow.tscn\" type=\"PackedScene\" id=8]\n[ext_resource path=\"res://content/open_source_games/img/ks-campaign.png\" type=\"Texture\" id=9]\n[ext_resource path=\"res://src/slide/widgets/Footer.tscn\" type=\"PackedScene\" id=10]\n\n\n\n[sub_resource type=\"GDScript\" id=1]\n\nscript/source = \"tool\nextends Control\n\nexport(String) var title = \\\"\\\" setget set_title\nexport(String) var subtitle = \\\"\\\" setget set_subtitle\nexport(Resource) var font_override = null\n\nvar FONTS_DEFAULT = {\n\t'title': preload(\\\"res://theme/fonts/title_montserrat.tres\\\"),\n\t'subtitle': preload(\\\"res://theme/fonts/subtitle_montserrat.tres\\\"),\n}\nvar FONTS_CJK = {\n\t'title': preload(\\\"res://theme/fonts/title_noto.tres\\\"),\n\t'subtitle': preload(\\\"res://theme/fonts/subtitle_noto.tres\\\"),\n}\n\nonready var title_node = $Column/Title\nonready var title_shadow_node = $Column/Title/Shadow\nonready var subtitle_node = $Column/Subtitle\nonready var subtitle_shadow_node = $Column/Subtitle/Shadow\n\nfunc _ready():\n\tself.title = title\n\tself.subtitle = subtitle\n\nfunc set_title(string):\n\ttitle = string\n\tif not title_node:\n\t\treturn\n\ttitle_node.display(string)\n\nfunc set_subtitle(string):\n\tsubtitle = string\n\tif not subtitle_node:\n\t\treturn\n\tsubtitle_node.display(string)\n\nfunc translate():\n\tvar locale = TranslationServer.get_locale()\n\tvar fonts = FONTS_DEFAULT\n\tif font_override:\n\t\ttitle_node.set('custom_fonts/font', font_override)\n\t\ttitle_shadow_node.set('custom_fonts/font', font_override)\n\t\treturn\n\t\t\n\tif locale in ['ja', 'ko', 'zh']:\n\t\t\tfonts = FONTS_CJK\n\ttitle_node.set('custom_fonts/font', fonts['title'])\n\ttitle_shadow_node.set('custom_fonts/font', fonts['title'])\n\tsubtitle_node.set('custom_fonts/font', fonts['subtitle'])\n\tsubtitle_shadow_node.set('custom_fonts/font', fonts['subtitle'])\n\nfunc get_translation_data():\n\tvar data = { 'title': title }\n\tif subtitle:\n\t\tdata['subtitle'] = subtitle\n\treturn data\n\"\n\n[sub_resource type=\"GDScript\" id=2]\n\nscript/source = \"tool\nextends Control\n\nexport(String, MULTILINE) var text = \\\"\\\" setget set_text\nexport(bool) var center = false setget set_center\n\nonready var _text = $Text\nvar _text_processed = \\\"\\\"\n\nfunc _ready():\n\tupdate_text()\n\nfunc set_text(string):\n\ttext = string\n\tif not _text:\n\t\treturn\n\tupdate_text()\n\nfunc set_center(value):\n\tcenter = value\n\tif not _text:\n\t\treturn\n\tupdate_text()\n\nfunc update_text():\n\tif center:\n\t\t_text_processed = center_text(text)\n\telse:\n\t\t_text_processed = text\n\t$Text.bbcode_text = _text_processed\n\nfunc center_text(string):\n\tvar bbcode = \\\"\\\"\n\tfor line in string.split(\\\"\\\\n\\\"):\n\t\tline = \\\"%s%s%s\\\" % [\\\"[center]\\\", line, \\\"[/center]\\\"]\n\t\tbbcode += line + \\\"\\\\n\\\"\n\treturn bbcode\n\nfunc get_translation_data():\n\treturn { 'text': text }\n\"\n\n[node name=\"HowSupportiveCommunity\" index=\"0\" instance=ExtResource( 1 )]\n\n[node name=\"Column\" parent=\".\" index=\"1\" instance=ExtResource( 2 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Header\" parent=\"Column\" index=\"0\" instance=ExtResource( 3 )]\nanchor_right = 0.0\nmargin_right = 1921.0\nmargin_bottom = 210.0\nscript = SubResource( 1 )\ntitle = \"Our community is great!\"\nsubtitle = \"Hundreds of developers trust and support us\"\nfont_override = ExtResource( 4 )\n\n[node name=\"Body\" parent=\"Column\" index=\"1\" instance=ExtResource( 5 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 210.0\nmargin_right = 1921.0\nmargin_bottom = 940.0\n\n[node name=\"Row\" parent=\"Column/Body\" index=\"0\" instance=ExtResource( 6 )]\n\n[node name=\"TextBox\" parent=\"Column/Body/Row\" index=\"0\" instance=ExtResource( 7 )]\nvisible = false\nmargin_right = 710.0\nmargin_bottom = 730.0\nscript = SubResource( 2 )\ntext = \"Crowdfunding tips:\n\n1. Do a market study! You should secure sponsors and know how many persons will support you before you launch.\n2. Offer a unique product or service.\n3. Nurture your community. Keep great relationships with people.\n4. Prepare communication and content in advance.\n\"\n\n[node name=\"PictureSlideshow\" parent=\"Column/Body/Row\" index=\"1\" instance=ExtResource( 8 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_right = 1921.0\nmargin_bottom = 730.0\nsize_flags_stretch_ratio = 1.7\nDISPLAY_DURATION = 8.0\n\n[node name=\"picture1\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"2\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\nrect_min_size = Vector2( 720, 300 )\nsize_flags_vertical = 3\ntexture = ExtResource( 9 )\nexpand = true\nstretch_mode = 6\n\n[node name=\"Footer\" parent=\"Column\" index=\"2\" instance=ExtResource( 10 )]\nvisible = true\nanchor_top = 0.0\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 940.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\ntext = \"This way, we got all three of our projects funded in 1 to 4 days\"\n\n"
  },
  {
    "path": "godot-3-presentation/content/open_source_games/slides/MakingGamesTogether.tscn",
    "content": "[gd_scene load_steps=13 format=2]\n\n[ext_resource path=\"res://src/slide/Slide.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://src/slide/widgets/Column.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://src/slide/widgets/Header.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://assets/theme/fonts/title_montserrat.tres\" type=\"DynamicFont\" id=4]\n[ext_resource path=\"res://src/slide/widgets/Body.tscn\" type=\"PackedScene\" id=5]\n[ext_resource path=\"res://src/slide/layout/Row.tscn\" type=\"PackedScene\" id=6]\n[ext_resource path=\"res://src/slide/widgets/TextBox.tscn\" type=\"PackedScene\" id=7]\n[ext_resource path=\"res://src/slide/widgets/PictureSlideshow.tscn\" type=\"PackedScene\" id=8]\n[ext_resource path=\"res://content/open_source_games/img/open-arpg-demo.png\" type=\"Texture\" id=9]\n[ext_resource path=\"res://content/open_source_games/img/openrpg-0.3-combat.png\" type=\"Texture\" id=10]\n\n\n\n[sub_resource type=\"GDScript\" id=1]\n\nscript/source = \"tool\nextends Control\n\nexport(String) var title = \\\"\\\" setget set_title\nexport(String) var subtitle = \\\"\\\" setget set_subtitle\nexport(Resource) var font_override = null\n\nvar FONTS_DEFAULT = {\n\t'title': preload(\\\"res://theme/fonts/title_montserrat.tres\\\"),\n\t'subtitle': preload(\\\"res://theme/fonts/subtitle_montserrat.tres\\\"),\n}\nvar FONTS_CJK = {\n\t'title': preload(\\\"res://theme/fonts/title_noto.tres\\\"),\n\t'subtitle': preload(\\\"res://theme/fonts/subtitle_noto.tres\\\"),\n}\n\nonready var title_node = $Column/Title\nonready var title_shadow_node = $Column/Title/Shadow\nonready var subtitle_node = $Column/Subtitle\nonready var subtitle_shadow_node = $Column/Subtitle/Shadow\n\nfunc _ready():\n\tself.title = title\n\tself.subtitle = subtitle\n\nfunc set_title(string):\n\ttitle = string\n\tif not title_node:\n\t\treturn\n\ttitle_node.display(string)\n\nfunc set_subtitle(string):\n\tsubtitle = string\n\tif not subtitle_node:\n\t\treturn\n\tsubtitle_node.display(string)\n\nfunc translate():\n\tvar locale = TranslationServer.get_locale()\n\tvar fonts = FONTS_DEFAULT\n\tif font_override:\n\t\ttitle_node.set('custom_fonts/font', font_override)\n\t\ttitle_shadow_node.set('custom_fonts/font', font_override)\n\t\treturn\n\t\t\n\tif locale in ['ja', 'ko', 'zh']:\n\t\t\tfonts = FONTS_CJK\n\ttitle_node.set('custom_fonts/font', fonts['title'])\n\ttitle_shadow_node.set('custom_fonts/font', fonts['title'])\n\tsubtitle_node.set('custom_fonts/font', fonts['subtitle'])\n\tsubtitle_shadow_node.set('custom_fonts/font', fonts['subtitle'])\n\nfunc get_translation_data():\n\tvar data = { 'title': title }\n\tif subtitle:\n\t\tdata['subtitle'] = subtitle\n\treturn data\n\"\n\n[sub_resource type=\"GDScript\" id=2]\n\nscript/source = \"tool\nextends Control\n\nexport(String, MULTILINE) var text = \\\"\\\" setget set_text\nexport(bool) var center = false setget set_center\n\nonready var _text = $Text\nvar _text_processed = \\\"\\\"\n\nfunc _ready():\n\tupdate_text()\n\nfunc set_text(string):\n\ttext = string\n\tif not _text:\n\t\treturn\n\tupdate_text()\n\nfunc set_center(value):\n\tcenter = value\n\tif not _text:\n\t\treturn\n\tupdate_text()\n\nfunc update_text():\n\tif center:\n\t\t_text_processed = center_text(text)\n\telse:\n\t\t_text_processed = text\n\t$Text.bbcode_text = _text_processed\n\nfunc center_text(string):\n\tvar bbcode = \\\"\\\"\n\tfor line in string.split(\\\"\\\\n\\\"):\n\t\tline = \\\"%s%s%s\\\" % [\\\"[center]\\\", line, \\\"[/center]\\\"]\n\t\tbbcode += line + \\\"\\\\n\\\"\n\treturn bbcode\n\nfunc get_translation_data():\n\treturn { 'text': text }\n\"\n\n[node name=\"MakingGamesTogether\" index=\"0\" instance=ExtResource( 1 )]\n\n[node name=\"Column\" parent=\".\" index=\"1\" instance=ExtResource( 2 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Header\" parent=\"Column\" index=\"0\" instance=ExtResource( 3 )]\nanchor_right = 0.0\nmargin_right = 1921.0\nmargin_bottom = 210.0\nscript = SubResource( 1 )\ntitle = \"Making games together\"\nfont_override = ExtResource( 4 )\n\n[node name=\"Body\" parent=\"Column\" index=\"1\" instance=ExtResource( 5 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 210.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Row\" parent=\"Column/Body\" index=\"0\" instance=ExtResource( 6 )]\n\n[node name=\"TextBox\" parent=\"Column/Body/Row\" index=\"0\" instance=ExtResource( 7 )]\nmargin_right = 766.0\nmargin_bottom = 870.0\nscript = SubResource( 2 )\ntext = \"Since October 2018 we started Open Source projects with our community.\n\n- Our Zelda-like ARPG demo has 5 contributors.\n- Open RPG, our RPG gameplay engine, has 12 contributors already.\n\nAnd we are just getting started!\"\n\n[node name=\"PictureSlideshow\" parent=\"Column/Body/Row\" index=\"1\" instance=ExtResource( 8 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_left = 770.0\nmargin_right = 1921.0\nmargin_bottom = 870.0\nsize_flags_stretch_ratio = 1.5\nDISPLAY_DURATION = 8.0\n\n[node name=\"picture1\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"2\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\nrect_min_size = Vector2( 720, 300 )\nsize_flags_vertical = 3\ntexture = ExtResource( 9 )\nexpand = true\nstretch_mode = 6\n\n[node name=\"picture2\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"3\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\nrect_min_size = Vector2( 720, 300 )\nsize_flags_vertical = 3\ntexture = ExtResource( 10 )\nexpand = true\nstretch_mode = 6\n\n"
  },
  {
    "path": "godot-3-presentation/content/open_source_games/slides/OpenGameProjects.tscn",
    "content": "[gd_scene load_steps=11 format=2]\n\n[ext_resource path=\"res://src/slide/Slide.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://src/slide/widgets/Column.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://src/slide/widgets/Header.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://src/slide/widgets/Body.tscn\" type=\"PackedScene\" id=4]\n[ext_resource path=\"res://src/slide/layout/Row.tscn\" type=\"PackedScene\" id=5]\n[ext_resource path=\"res://src/slide/widgets/TextBox.tscn\" type=\"PackedScene\" id=6]\n[ext_resource path=\"res://src/slide/widgets/PictureSlideshow.tscn\" type=\"PackedScene\" id=7]\n[ext_resource path=\"res://content/open_source_games/img/blender-open-movie.jpg\" type=\"Texture\" id=8]\n\n\n[sub_resource type=\"GDScript\" id=1]\n\nscript/source = \"tool\nextends Control\n\nexport(String) var title = \\\"\\\" setget set_title\nexport(String) var subtitle = \\\"\\\" setget set_subtitle\n\nvar FONTS_DEFAULT = {\n\t'title': preload(\\\"res://theme/fonts/title_montserrat.tres\\\"),\n\t'subtitle': preload(\\\"res://theme/fonts/subtitle_montserrat.tres\\\"),\n}\nvar FONTS_CJK = {\n\t'title': preload(\\\"res://theme/fonts/title_noto.tres\\\"),\n\t'subtitle': preload(\\\"res://theme/fonts/subtitle_noto.tres\\\"),\n}\n\nonready var title_node = $Column/Title\nonready var title_shadow_node = $Column/Title/Shadow\nonready var subtitle_node = $Column/Subtitle\nonready var subtitle_shadow_node = $Column/Subtitle/Shadow\n\nfunc _ready():\n\tself.title = title\n\tself.subtitle = subtitle\n\nfunc set_title(string):\n\ttitle = string\n\tif not title_node:\n\t\treturn\n\ttitle_node.display(string)\n\nfunc set_subtitle(string):\n\tsubtitle = string\n\tif not subtitle_node:\n\t\treturn\n\tsubtitle_node.display(string)\n\nfunc translate():\n\tvar locale = TranslationServer.get_locale()\n\tvar fonts = FONTS_DEFAULT\n\tif locale in ['ja', 'ko', 'zh']:\n\t\t\tfonts = FONTS_CJK\n\n\ttitle_node.set('custom_fonts/font', fonts['title'])\n\ttitle_shadow_node.set('custom_fonts/font', fonts['title'])\n\tsubtitle_node.set('custom_fonts/font', fonts['subtitle'])\n\tsubtitle_shadow_node.set('custom_fonts/font', fonts['subtitle'])\n\nfunc get_translation_data():\n\tvar data = { 'title': title }\n\tif subtitle:\n\t\tdata['subtitle'] = subtitle\n\treturn data\n\"\n\n[sub_resource type=\"GDScript\" id=2]\n\nscript/source = \"tool\nextends Control\n\nexport(String, MULTILINE) var text = \\\"\\\" setget set_text\nexport(bool) var center = false setget set_center\n\nonready var _text = $Text\nvar _text_processed = \\\"\\\"\n\nfunc _ready():\n\tupdate_text()\n\nfunc set_text(string):\n\ttext = string\n\tif not _text:\n\t\treturn\n\tupdate_text()\n\nfunc set_center(value):\n\tcenter = value\n\tif not _text:\n\t\treturn\n\tupdate_text()\n\nfunc update_text():\n\tif center:\n\t\t_text_processed = center_text(text)\n\telse:\n\t\t_text_processed = text\n\t$Text.bbcode_text = _text_processed\n\nfunc center_text(string):\n\tvar bbcode = \\\"\\\"\n\tfor line in string.split(\\\"\\\\n\\\"):\n\t\tline = \\\"%s%s%s\\\" % [\\\"[center]\\\", line, \\\"[/center]\\\"]\n\t\tbbcode += line + \\\"\\\\n\\\"\n\treturn bbcode\n\nfunc get_translation_data():\n\treturn { 'text': text }\n\"\n\n[node name=\"OpenGameProjects\" index=\"0\" instance=ExtResource( 1 )]\n\n[node name=\"Column\" parent=\".\" index=\"1\" instance=ExtResource( 2 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Header\" parent=\"Column\" index=\"0\" instance=ExtResource( 3 )]\nanchor_right = 0.0\nmargin_right = 1921.0\nmargin_bottom = 210.0\nscript = SubResource( 1 )\ntitle = \"Going further\"\nsubtitle = \"Open Game projects\"\n\n[node name=\"Body\" parent=\"Column\" index=\"1\" instance=ExtResource( 4 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 210.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Row\" parent=\"Column/Body\" index=\"0\" instance=ExtResource( 5 )]\n\n[node name=\"TextBox\" parent=\"Column/Body/Row\" index=\"0\" instance=ExtResource( 6 )]\nmargin_right = 639.0\nmargin_bottom = 870.0\nscript = SubResource( 2 )\ntext = \"Our ambition is to make Open Game projects like Blender's Open Movies:\n\n1. Create great little games\n2. Improve our favorite Free Software\n3. Offer Free education to everyone\n\nEveryone's welcome to work together on this journey!\nWe're already building the foundations.\"\n\n[node name=\"PictureSlideshow\" parent=\"Column/Body/Row\" index=\"1\" instance=ExtResource( 7 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_left = 643.0\nmargin_right = 1921.0\nmargin_bottom = 870.0\nDISPLAY_DURATION = 6.0\n\n[node name=\"godot_editor_2d\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"2\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\ntexture = ExtResource( 8 )\nexpand = true\nstretch_mode = 6\n\n"
  },
  {
    "path": "godot-3-presentation/content/open_source_games/slides/OpenSourceGamesTitle.tscn",
    "content": "[gd_scene load_steps=4 format=2]\n\n[ext_resource path=\"res://src/slide/Slide.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://src/slide/widgets/Picture.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://content/open_source_games/img/thumbnail.jpg\" type=\"Texture\" id=3]\n\n\n[node name=\"OpenSourceGamesTitle\" index=\"0\" instance=ExtResource( 1 )]\n\n[node name=\"Picture\" parent=\".\" index=\"1\" instance=ExtResource( 2 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\ntexture = ExtResource( 3 )\n"
  },
  {
    "path": "godot-3-presentation/content/open_source_games/slides/WeMakeFreeContent.tscn",
    "content": "[gd_scene load_steps=14 format=2]\n\n[ext_resource path=\"res://src/slide/Slide.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://src/slide/widgets/Column.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://src/slide/widgets/Header.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://assets/theme/fonts/title_montserrat.tres\" type=\"DynamicFont\" id=4]\n[ext_resource path=\"res://src/slide/widgets/Body.tscn\" type=\"PackedScene\" id=5]\n[ext_resource path=\"res://src/slide/layout/Row.tscn\" type=\"PackedScene\" id=6]\n[ext_resource path=\"res://src/slide/widgets/TextBox.tscn\" type=\"PackedScene\" id=7]\n[ext_resource path=\"res://src/slide/widgets/PictureSlideshow.tscn\" type=\"PackedScene\" id=8]\n[ext_resource path=\"res://content/tokyo_indies_pitch/img/godot-slides-2-logo.jpg\" type=\"Texture\" id=9]\n[ext_resource path=\"res://content/tokyo_indies_pitch/img/open-rpg-banner.png\" type=\"Texture\" id=10]\n[ext_resource path=\"res://content/open_source_games/img/gdquest-github-profile.png\" type=\"Texture\" id=11]\n\n\n\n[sub_resource type=\"GDScript\" id=1]\n\nscript/source = \"tool\nextends Control\n\nexport(String) var title = \\\"\\\" setget set_title\nexport(String) var subtitle = \\\"\\\" setget set_subtitle\nexport(Resource) var font_override = null\n\nvar FONTS_DEFAULT = {\n\t'title': preload(\\\"res://theme/fonts/title_montserrat.tres\\\"),\n\t'subtitle': preload(\\\"res://theme/fonts/subtitle_montserrat.tres\\\"),\n}\nvar FONTS_CJK = {\n\t'title': preload(\\\"res://theme/fonts/title_noto.tres\\\"),\n\t'subtitle': preload(\\\"res://theme/fonts/subtitle_noto.tres\\\"),\n}\n\nonready var title_node = $Column/Title\nonready var title_shadow_node = $Column/Title/Shadow\nonready var subtitle_node = $Column/Subtitle\nonready var subtitle_shadow_node = $Column/Subtitle/Shadow\n\nfunc _ready():\n\tself.title = title\n\tself.subtitle = subtitle\n\nfunc set_title(string):\n\ttitle = string\n\tif not title_node:\n\t\treturn\n\ttitle_node.display(string)\n\nfunc set_subtitle(string):\n\tsubtitle = string\n\tif not subtitle_node:\n\t\treturn\n\tsubtitle_node.display(string)\n\nfunc translate():\n\tvar locale = TranslationServer.get_locale()\n\tvar fonts = FONTS_DEFAULT\n\tif font_override:\n\t\ttitle_node.set('custom_fonts/font', font_override)\n\t\ttitle_shadow_node.set('custom_fonts/font', font_override)\n\t\treturn\n\t\t\n\tif locale in ['ja', 'ko', 'zh']:\n\t\t\tfonts = FONTS_CJK\n\ttitle_node.set('custom_fonts/font', fonts['title'])\n\ttitle_shadow_node.set('custom_fonts/font', fonts['title'])\n\tsubtitle_node.set('custom_fonts/font', fonts['subtitle'])\n\tsubtitle_shadow_node.set('custom_fonts/font', fonts['subtitle'])\n\nfunc get_translation_data():\n\tvar data = { 'title': title }\n\tif subtitle:\n\t\tdata['subtitle'] = subtitle\n\treturn data\n\"\n\n[sub_resource type=\"GDScript\" id=2]\n\nscript/source = \"tool\nextends Control\n\nexport(String, MULTILINE) var text = \\\"\\\" setget set_text\nexport(bool) var center = false setget set_center\n\nonready var _text = $Text\nvar _text_processed = \\\"\\\"\n\nfunc _ready():\n\tupdate_text()\n\nfunc set_text(string):\n\ttext = string\n\tif not _text:\n\t\treturn\n\tupdate_text()\n\nfunc set_center(value):\n\tcenter = value\n\tif not _text:\n\t\treturn\n\tupdate_text()\n\nfunc update_text():\n\tif center:\n\t\t_text_processed = center_text(text)\n\telse:\n\t\t_text_processed = text\n\t$Text.bbcode_text = _text_processed\n\nfunc center_text(string):\n\tvar bbcode = \\\"\\\"\n\tfor line in string.split(\\\"\\\\n\\\"):\n\t\tline = \\\"%s%s%s\\\" % [\\\"[center]\\\", line, \\\"[/center]\\\"]\n\t\tbbcode += line + \\\"\\\\n\\\"\n\treturn bbcode\n\nfunc get_translation_data():\n\treturn { 'text': text }\n\"\n\n[node name=\"HalfFreeContent\" index=\"0\" instance=ExtResource( 1 )]\n\n[node name=\"Column\" parent=\".\" index=\"1\" instance=ExtResource( 2 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Header\" parent=\"Column\" index=\"0\" instance=ExtResource( 3 )]\nanchor_right = 0.0\nmargin_right = 1921.0\nmargin_bottom = 210.0\nscript = SubResource( 1 )\ntitle = \"Game Design Quest\"\nfont_override = ExtResource( 4 )\n\n[node name=\"Body\" parent=\"Column\" index=\"1\" instance=ExtResource( 5 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 210.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Row\" parent=\"Column/Body\" index=\"0\" instance=ExtResource( 6 )]\n\n[node name=\"TextBox\" parent=\"Column/Body/Row\" index=\"0\" instance=ExtResource( 7 )]\nmargin_right = 766.0\nmargin_bottom = 870.0\nscript = SubResource( 2 )\ntext = \" More than 50% of the work we do is available for free:\n\n - Hundreds of tutorials\n - Contributions to Free Software\n - Open source tools for game developers\n\n Sounds crazy? It is!\nBut we get to work full-time on projects we love, and share everything we create from the start.\n\"\n\n[node name=\"PictureSlideshow\" parent=\"Column/Body/Row\" index=\"1\" instance=ExtResource( 8 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_left = 770.0\nmargin_right = 1921.0\nmargin_bottom = 870.0\nsize_flags_stretch_ratio = 1.5\nDISPLAY_DURATION = 8.0\n\n[node name=\"Column\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"2\" instance=ExtResource( 2 )]\nsize_flags_stretch_ratio = 1.4\n\n[node name=\"godot-slides-2-logo\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow/Column\" index=\"0\"]\nmargin_right = 1151.0\nmargin_bottom = 435.0\nrect_min_size = Vector2( 720, 300 )\nsize_flags_vertical = 3\ntexture = ExtResource( 9 )\nexpand = true\nstretch_mode = 5\n\n[node name=\"banner-power-sequencer-1.1\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow/Column\" index=\"1\"]\nmargin_top = 435.0\nmargin_right = 1151.0\nmargin_bottom = 870.0\nrect_min_size = Vector2( 720, 300 )\nsize_flags_vertical = 3\ntexture = ExtResource( 10 )\nexpand = true\nstretch_mode = 5\n\n[node name=\"picture1\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"3\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\nrect_min_size = Vector2( 720, 300 )\nsize_flags_vertical = 3\ntexture = ExtResource( 11 )\nexpand = true\nstretch_mode = 6\n\n"
  },
  {
    "path": "godot-3-presentation/content/open_source_games/slides/WhyCodebase.tscn",
    "content": "[gd_scene load_steps=14 format=2]\n\n[ext_resource path=\"res://src/slide/Slide.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://src/slide/widgets/Column.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://src/slide/widgets/Header.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://assets/theme/fonts/title_montserrat.tres\" type=\"DynamicFont\" id=4]\n[ext_resource path=\"res://src/slide/widgets/Body.tscn\" type=\"PackedScene\" id=5]\n[ext_resource path=\"res://src/slide/layout/Row.tscn\" type=\"PackedScene\" id=6]\n[ext_resource path=\"res://src/slide/widgets/TextBox.tscn\" type=\"PackedScene\" id=7]\n[ext_resource path=\"res://src/slide/widgets/PictureSlideshow.tscn\" type=\"PackedScene\" id=8]\n[ext_resource path=\"res://content/open_source_games/img/code-guidelines-1.png\" type=\"Texture\" id=9]\n[ext_resource path=\"res://content/open_source_games/img/code-guidelines-2.png\" type=\"Texture\" id=10]\n[ext_resource path=\"res://src/slide/widgets/Footer.tscn\" type=\"PackedScene\" id=11]\n\n\n\n[sub_resource type=\"GDScript\" id=1]\n\nscript/source = \"tool\nextends Control\n\nexport(String) var title = \\\"\\\" setget set_title\nexport(String) var subtitle = \\\"\\\" setget set_subtitle\nexport(Resource) var font_override = null\n\nvar FONTS_DEFAULT = {\n\t'title': preload(\\\"res://theme/fonts/title_montserrat.tres\\\"),\n\t'subtitle': preload(\\\"res://theme/fonts/subtitle_montserrat.tres\\\"),\n}\nvar FONTS_CJK = {\n\t'title': preload(\\\"res://theme/fonts/title_noto.tres\\\"),\n\t'subtitle': preload(\\\"res://theme/fonts/subtitle_noto.tres\\\"),\n}\n\nonready var title_node = $Column/Title\nonready var title_shadow_node = $Column/Title/Shadow\nonready var subtitle_node = $Column/Subtitle\nonready var subtitle_shadow_node = $Column/Subtitle/Shadow\n\nfunc _ready():\n\tself.title = title\n\tself.subtitle = subtitle\n\nfunc set_title(string):\n\ttitle = string\n\tif not title_node:\n\t\treturn\n\ttitle_node.display(string)\n\nfunc set_subtitle(string):\n\tsubtitle = string\n\tif not subtitle_node:\n\t\treturn\n\tsubtitle_node.display(string)\n\nfunc translate():\n\tvar locale = TranslationServer.get_locale()\n\tvar fonts = FONTS_DEFAULT\n\tif font_override:\n\t\ttitle_node.set('custom_fonts/font', font_override)\n\t\ttitle_shadow_node.set('custom_fonts/font', font_override)\n\t\treturn\n\t\t\n\tif locale in ['ja', 'ko', 'zh']:\n\t\t\tfonts = FONTS_CJK\n\ttitle_node.set('custom_fonts/font', fonts['title'])\n\ttitle_shadow_node.set('custom_fonts/font', fonts['title'])\n\tsubtitle_node.set('custom_fonts/font', fonts['subtitle'])\n\tsubtitle_shadow_node.set('custom_fonts/font', fonts['subtitle'])\n\nfunc get_translation_data():\n\tvar data = { 'title': title }\n\tif subtitle:\n\t\tdata['subtitle'] = subtitle\n\treturn data\n\"\n\n[sub_resource type=\"GDScript\" id=2]\n\nscript/source = \"tool\nextends Control\n\nexport(String, MULTILINE) var text = \\\"\\\" setget set_text\nexport(bool) var center = false setget set_center\n\nonready var _text = $Text\nvar _text_processed = \\\"\\\"\n\nfunc _ready():\n\tupdate_text()\n\nfunc set_text(string):\n\ttext = string\n\tif not _text:\n\t\treturn\n\tupdate_text()\n\nfunc set_center(value):\n\tcenter = value\n\tif not _text:\n\t\treturn\n\tupdate_text()\n\nfunc update_text():\n\tif center:\n\t\t_text_processed = center_text(text)\n\telse:\n\t\t_text_processed = text\n\t$Text.bbcode_text = _text_processed\n\nfunc center_text(string):\n\tvar bbcode = \\\"\\\"\n\tfor line in string.split(\\\"\\\\n\\\"):\n\t\tline = \\\"%s%s%s\\\" % [\\\"[center]\\\", line, \\\"[/center]\\\"]\n\t\tbbcode += line + \\\"\\\\n\\\"\n\treturn bbcode\n\nfunc get_translation_data():\n\treturn { 'text': text }\n\"\n\n[node name=\"WhyCodebase\" index=\"0\" instance=ExtResource( 1 )]\n\n[node name=\"Column\" parent=\".\" index=\"1\" instance=ExtResource( 2 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Header\" parent=\"Column\" index=\"0\" instance=ExtResource( 3 )]\nanchor_right = 0.0\nmargin_right = 1921.0\nmargin_bottom = 210.0\nscript = SubResource( 1 )\ntitle = \"Why? Better code\"\nfont_override = ExtResource( 4 )\n\n[node name=\"Body\" parent=\"Column\" index=\"1\" instance=ExtResource( 5 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 210.0\nmargin_right = 1921.0\nmargin_bottom = 940.0\n\n[node name=\"Row\" parent=\"Column/Body\" index=\"0\" instance=ExtResource( 6 )]\n\n[node name=\"TextBox\" parent=\"Column/Body/Row\" index=\"0\" instance=ExtResource( 7 )]\nmargin_right = 710.0\nmargin_bottom = 730.0\nscript = SubResource( 2 )\ntext = \"Working together forces us to write code that is easy to read and to maintain. \nWe're working on code guidelines that the entire community can use to that end.\n\nPeople find and fix bugs we didn't know about. Contributors add features we wouldn't have the time or resources to code ourselves.\"\n\n[node name=\"PictureSlideshow\" parent=\"Column/Body/Row\" index=\"1\" instance=ExtResource( 8 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_left = 714.0\nmargin_right = 1921.0\nmargin_bottom = 730.0\nsize_flags_stretch_ratio = 1.7\nDISPLAY_DURATION = 8.0\n\n[node name=\"picture1\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"2\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\nrect_min_size = Vector2( 720, 300 )\nsize_flags_vertical = 3\ntexture = ExtResource( 9 )\nexpand = true\nstretch_mode = 6\n\n[node name=\"picture2\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"3\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\nrect_min_size = Vector2( 720, 300 )\nsize_flags_vertical = 3\ntexture = ExtResource( 10 )\nexpand = true\nstretch_mode = 6\n\n[node name=\"Footer\" parent=\"Column\" index=\"2\" instance=ExtResource( 11 )]\nvisible = true\nanchor_top = 0.0\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 940.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\ntext = \"Also, we're building up reusable tools and scripts to get new projects started faster.\"\n\n"
  },
  {
    "path": "godot-3-presentation/content/open_source_games/slides/WhySharingKnowledge.tscn",
    "content": "[gd_scene load_steps=14 format=2]\n\n[ext_resource path=\"res://src/slide/Slide.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://src/slide/widgets/Column.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://src/slide/widgets/Header.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://assets/theme/fonts/title_montserrat.tres\" type=\"DynamicFont\" id=4]\n[ext_resource path=\"res://src/slide/widgets/Body.tscn\" type=\"PackedScene\" id=5]\n[ext_resource path=\"res://src/slide/layout/Row.tscn\" type=\"PackedScene\" id=6]\n[ext_resource path=\"res://src/slide/widgets/TextBox.tscn\" type=\"PackedScene\" id=7]\n[ext_resource path=\"res://src/slide/widgets/PictureSlideshow.tscn\" type=\"PackedScene\" id=8]\n[ext_resource path=\"res://content/open_source_games/img/discord-openrpg.png\" type=\"Texture\" id=9]\n[ext_resource path=\"res://content/open_source_games/img/openrpg-contributions-community.png\" type=\"Texture\" id=10]\n[ext_resource path=\"res://src/slide/widgets/Footer.tscn\" type=\"PackedScene\" id=11]\n\n\n\n[sub_resource type=\"GDScript\" id=1]\n\nscript/source = \"tool\nextends Control\n\nexport(String) var title = \\\"\\\" setget set_title\nexport(String) var subtitle = \\\"\\\" setget set_subtitle\nexport(Resource) var font_override = null\n\nvar FONTS_DEFAULT = {\n\t'title': preload(\\\"res://theme/fonts/title_montserrat.tres\\\"),\n\t'subtitle': preload(\\\"res://theme/fonts/subtitle_montserrat.tres\\\"),\n}\nvar FONTS_CJK = {\n\t'title': preload(\\\"res://theme/fonts/title_noto.tres\\\"),\n\t'subtitle': preload(\\\"res://theme/fonts/subtitle_noto.tres\\\"),\n}\n\nonready var title_node = $Column/Title\nonready var title_shadow_node = $Column/Title/Shadow\nonready var subtitle_node = $Column/Subtitle\nonready var subtitle_shadow_node = $Column/Subtitle/Shadow\n\nfunc _ready():\n\tself.title = title\n\tself.subtitle = subtitle\n\nfunc set_title(string):\n\ttitle = string\n\tif not title_node:\n\t\treturn\n\ttitle_node.display(string)\n\nfunc set_subtitle(string):\n\tsubtitle = string\n\tif not subtitle_node:\n\t\treturn\n\tsubtitle_node.display(string)\n\nfunc translate():\n\tvar locale = TranslationServer.get_locale()\n\tvar fonts = FONTS_DEFAULT\n\tif font_override:\n\t\ttitle_node.set('custom_fonts/font', font_override)\n\t\ttitle_shadow_node.set('custom_fonts/font', font_override)\n\t\treturn\n\t\t\n\tif locale in ['ja', 'ko', 'zh']:\n\t\t\tfonts = FONTS_CJK\n\ttitle_node.set('custom_fonts/font', fonts['title'])\n\ttitle_shadow_node.set('custom_fonts/font', fonts['title'])\n\tsubtitle_node.set('custom_fonts/font', fonts['subtitle'])\n\tsubtitle_shadow_node.set('custom_fonts/font', fonts['subtitle'])\n\nfunc get_translation_data():\n\tvar data = { 'title': title }\n\tif subtitle:\n\t\tdata['subtitle'] = subtitle\n\treturn data\n\"\n\n[sub_resource type=\"GDScript\" id=2]\n\nscript/source = \"tool\nextends Control\n\nexport(String, MULTILINE) var text = \\\"\\\" setget set_text\nexport(bool) var center = false setget set_center\n\nonready var _text = $Text\nvar _text_processed = \\\"\\\"\n\nfunc _ready():\n\tupdate_text()\n\nfunc set_text(string):\n\ttext = string\n\tif not _text:\n\t\treturn\n\tupdate_text()\n\nfunc set_center(value):\n\tcenter = value\n\tif not _text:\n\t\treturn\n\tupdate_text()\n\nfunc update_text():\n\tif center:\n\t\t_text_processed = center_text(text)\n\telse:\n\t\t_text_processed = text\n\t$Text.bbcode_text = _text_processed\n\nfunc center_text(string):\n\tvar bbcode = \\\"\\\"\n\tfor line in string.split(\\\"\\\\n\\\"):\n\t\tline = \\\"%s%s%s\\\" % [\\\"[center]\\\", line, \\\"[/center]\\\"]\n\t\tbbcode += line + \\\"\\\\n\\\"\n\treturn bbcode\n\nfunc get_translation_data():\n\treturn { 'text': text }\n\"\n\n[node name=\"WhySharingKnowledge\" index=\"0\" instance=ExtResource( 1 )]\n\n[node name=\"Column\" parent=\".\" index=\"1\" instance=ExtResource( 2 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Header\" parent=\"Column\" index=\"0\" instance=ExtResource( 3 )]\nanchor_right = 0.0\nmargin_right = 1921.0\nmargin_bottom = 210.0\nscript = SubResource( 1 )\ntitle = \"Why? Everyone shares\"\nfont_override = ExtResource( 4 )\n\n[node name=\"Body\" parent=\"Column\" index=\"1\" instance=ExtResource( 5 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 210.0\nmargin_right = 1921.0\nmargin_bottom = 940.0\n\n[node name=\"Row\" parent=\"Column/Body\" index=\"0\" instance=ExtResource( 6 )]\n\n[node name=\"TextBox\" parent=\"Column/Body/Row\" index=\"0\" instance=ExtResource( 7 )]\nmargin_right = 766.0\nmargin_bottom = 730.0\nscript = SubResource( 2 )\ntext = \"We all share what we know.\nWe are all mentors and students at the same time.\n\nIn the community people are kind to one another. Sometimes we even become friends!\n\nThe contributors get Free training and professional experience working in a team.\"\n\n[node name=\"PictureSlideshow\" parent=\"Column/Body/Row\" index=\"1\" instance=ExtResource( 8 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_left = 770.0\nmargin_right = 1921.0\nmargin_bottom = 730.0\nsize_flags_stretch_ratio = 1.5\nDISPLAY_DURATION = 8.0\n\n[node name=\"picture1\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"2\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\nrect_min_size = Vector2( 720, 300 )\nsize_flags_vertical = 3\ntexture = ExtResource( 9 )\nexpand = true\nstretch_mode = 6\n\n[node name=\"picture2\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"3\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\nrect_min_size = Vector2( 720, 300 )\nsize_flags_vertical = 3\ntexture = ExtResource( 10 )\nexpand = true\nstretch_mode = 6\n\n[node name=\"Footer\" parent=\"Column\" index=\"2\" instance=ExtResource( 11 )]\nvisible = true\nanchor_top = 0.0\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 940.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\ntext = \"Together we can create something greater than we could individually.\"\n\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/PowerPitch.csv",
    "content": "id,en,fr,ja,es,pt_BR,de,it,zh,uk_UA,ko,sk,pl,id\nA_free_modern_engine_Column_Header_title,A Free modern engine,Un moteur moderne et gratuit,最新のオープンソースゲームエンジン,Un motor libre y moderno,Livre e Moderno,Eine freie moderne Spiele-Engine,Un motore di gioco libero,一个现代化的免费引擎,Вілний та сучасний двигун,자유로운 현대적인 엔진,Moderný herný engine zadarmo,Darmowy współczesny silnik,Sebuah Engine mutakhir yang bebas\nA_free_modern_engine_Column_Body_Row_TextBox_text,\"Separate [color=#26BFE3]2d[/color] and [color=#E3266F]3d[/color] renderers\nComplete [color=#F2971A]game editor[/color]\n\nCreate projects with Windows, Mac, Linux\nBuild games for PC, mobile, web*\n\n4 years after being open sourced, Godot is becoming a serious alternative to engines like Unity or Unreal.\",\"Moteurs de rendu [color=#26BFE3]2d[/color] et [color=#E3266F]3d[/color] séparés\n[color=#F2971A] Éditeur de jeu[/color] complet\n\nCréez vos projets sur Windows, Mac, ou Linux\nExportez vos jeux sur PC, mobile, web*\",\"[color=#26BFE3]２D[/color]と[color=#E3266F]３D[/color] 両方のレンダリングエンジン\n全面的な[color=#F2971A]ゲームエディタ[/color]\n\nプロジェクトは、WindowsかMacかLinuxで作ることができます。\nゲームを[color=#02E180]コンピューター[/color]や[color=#02E180]モバイル[/color]、[color=#02E180]インターネット[/color]などにエクスポートできます＊\n\n４年前にオプンソースになりましたが最初ゲーム会社のエンジンで10年まえからずっと開発されました。\n\nGodotは若い割に段々UnityやUnrealなどのように大きくなっています。\",\"Renderers [color=#26BFE3]2D[/color] y [color=#E3266F]3D[/color] independientes\n[color=#F2971A]Editor de juegos[/color] completo\n\nCrea proyectos en Windows, Mac y Linux\nExportalos a PC, móvil, web*\",\"[color=#26BFE3]2d[/color] e [color=#E3266F]3d[/color] independentes\nUm [color=#F2971A]editor de jogos[/color] completo\n\nCrie projetos com Windows, Mac e Linux\nCrie jogos para PC, mobile e Web*\",\"Getrennte [color=#26BFE3]2d[/color] und [color=#E3266F]3d[/color] Render-Engines\nKompletter [color=#F2971A]Spiele Editor[/color]\n\nBearbeite deine Projekte mit: Windows, Mac, Linux\n\nErstelle Spiele für PC, Handy, Web*\",\"Renderer [color=#26BFE3]2d[/color] e [color=#E3266F]3d[/color] moderni\n[color=#F2971A]Game editor[/color] completo\n\nCrea progetti con Windows, Mac, Linux\nCrea giochi per PC, mobile, web*\",\"独立分开的 [color=#26BFE3]2d[/color] 和 [color=#E3266F]3d[/color] 渲染引擎\n全能的[color=#F2971A]游戏编辑器[/color]\n\n支持在 Windows, Mac, Linux 操作系统上创建项目\n最终发布到电脑,手机,网页平台上*\",\"Окремі [color=#26BFE3]2d[/color] та [color=#E3266F]3d[/color] рендерери\nДовершений [color=#F2971A]ігровий редактор[/color]\n\nСтворюйте свої проекти на Windows, Mac, Linux\nЕкспортуйте для PC, mobile, web*\",\"[color=#26BFE3]2d[/color] 와 [color=#E3266F]3d[/color] 렌더러를 분리\n통합된 [color=#F2971A]게임 에디터[/color]\n\n윈도우, 맥, 리눅스에서 프로젝트를 제작합니다\nPC, 모바일, 웹*으로 게임을 출시할 수 있습니다\",\"Oddelené [color=#26BFE3]2D[/color] a [color=#E3266F]3D[/color] renderery\nKompletný [color=#F2971A]herný editor[/color]\n\nTvorba projektov na Windows, Mac, Linux\nZostavenie hier pre PC, mobily, web*\",\"Osobne silniki renderujące [color=#26BFE3]2D[/color] i [color=#E3266F]3D[/color]\nKompletny [color=#F2971A]edytor gier[/color]\n\nTwórz projekty na Windowsie, Macu, Linuksie\nBuduj gry na PC, urządzenia mobilne, przeglądarki*\",\"Perender berbeda untuk [color=#26BFE3]2d[/color] dan [color=#E3266F]3d[/color]\n[color=#F2971A]Editor game[/color] yang lengkap\n\nBuat proyek dengan Windows, Mac, Linux\nBangun game untuk PC, mobile, web*\"\nA_free_modern_engine_Column_Footer_text,\"*And PS4, XboxOne, Switch, PS Vita...\",\"*Et sur PS4, XboxOne, Switch, PS Vita ...\",＊コンソールのためにも出力できます,\"*Y PS4, Xbox One, Switch, PS Vita...\",\"*E também PS4, XboxOne, Switch, PS Vita...\",\"*Und PS4, XboxOne, Switch, PS Vita...\",\"*e per PS4, XboxOne, Switch, PS Vita...\",\"*包括 PS4, XboxOne, Switch, PS Vita 等平台...\",\"*Та PS4, XboxOne, Switch, PS Vita...\",\"*그리고 PS4, XboxOne, Switch, PS Vita 등\",\"*a PS4, XboxOne, Switch, PS Vita...\",\"*A także PS4, XboxOne, Switch, PS Vita...\",\"*Dan PS4, XboxOne, Switch, PS Vita...\"\nState_of_the_art_3d_engine_Column_Header_title,State of the art 3d engine,Moteur 3d dernier-cri,最先端の３Dエンジン,Motor 3D a la última,Um moderno motor 3D,Aktuelle 3d Engine,3D engine allo stato dell’arte,先进的3d引擎技术,Сучасний 3d двигун,3D 엔진의 기술 수준,3d engine na úrovni doby,Nowoczesny silnik 3d,Engine 3D yang revolusioner\nState_of_the_art_3d_engine_Column_Body_Row_TextBox_text,\"[color=#E3266F]Physically-based rendering[/color] with full MSAA support\n[color=#02E180]Full principled BSDF[/color] with Subsurface Scattering, reflection, refraction, clearcoat...\n[color=#26BFE3]Global illumination[/color] for gorgeous real-time graphics\n[color=#F2971A]Mid and Post processing effects[/color] including curves and auto exposure, screen-space reflections, fog, bloom, depth of field...\",\"[color=#E3266F]Rendu PBR (Physically-based rendering)[/color] avec anti-aliasing MSAA\n[color=#02E180]Matériau BSDF[/color] de Pixar avec support du Subsurface Scattering, réflexion, réfraction, clearcoat...\n[color=#26BFE3]Illumination globale[/color] en temps réel\n[color=#F2971A]Effets d'image mid et post-rendu[/color]: courbes et exposition automatique, reflets en espace-écran, brouillard, bloom, profondeur de champ...\",\"MSAAをサポートする[color=#E3266F]物理ベースレンダリング[/color]\n[color=#02E180]BSDFマテリアル[/color]：皮下拡散（Subsurface Scattering）や反射率, 空間屈折（Refraction）などに使用可能です\n[color=#26BFE3]間接光・放射[/color]（Global Illumination)\n[color=#F2971A]後処理[/color]：自動露光しSSRし被写界深度などがあります\",\"[color=#E3266F]Renderizado basado en físicas[/color] con soporte para MSAA\n[color=#02E180]Soporta BSDF[/color] con Subsurface Scattering, reflejos, refracción, clearcoat...\n[color=#26BFE3]Iluminación global[/color] para preciosos gráficos en tiempo real\n[color=#F2971A]Efectos de mid/pos-procesado[/color], incluyendo curvas y auto exposición, reflejos en screen-space, niebla, resplandores, profundidad de campo…\",\"[color=#E3266F]Renderização Baseada em Física(PBR)[/color] com suporte completo para MSAA\n[color=#02E180]Materiais BSDF[/color] com Subsurface Scattering, reflexos, refração, clearcoat...\n[color=#26BFE3]Iluminação Global[/color] para lindos gráficos em tempo real\n[color=#F2971A]Efeitos de Mid e Pós processamento[/color] incluindo curvas e exposição automática, reflexos em screen-space, névoa, brilho (bloom), profundidade de campo…\",\"[color=#E3266F]Physically-based rendering[/color] mit voller MSAA Unterstützung\n[color=#02E180]Full principled BSDF[/color] mit Subsurface Scattering, Reflektion, Lichtbrechung, Klarlack...\n[color=#26BFE3]Global Illumination[/color] für großartige Echtzeitgrafik\n[color=#F2971A]Mid und Post processing Effekte[/color] mit Kurven, automatische Belichtung, Screen-Space Reflektionen, Nebel, Bloom, Tiefenschärfe…\",\"[color=#E3266F]Physically-based rendering[/color] con pieno supporto a MSAA\n[color=#02E180]Full principled BSDF[/color] con Subsurface Scattering, riflessi, rifrazioni, clearcoat...\n[color=#26BFE3]Global illumination[/color] per una stupenda grafica real-time\n[color=#F2971A]Effetti Mid and Post processing[/color] con curve e auto esposizione, riflessi screen-space, fog, bloom, depth of field...\",\"[color=#E3266F]基于物理引擎渲染[/color]并且全面支持多重采样抗锯齿（MSAA）功能\n[color=#02E180]完全遵循双向散射分布函数（BSDF）规则[/color]以及细分表面散射, 反射, 折射, 透明涂层等等...\n[color=#26BFE3]支持全局光照功能[/color]以实现华丽而又真实的画面特效\n[color=#F2971A]支持中后期特效处理技术[/color]包括曲线式和自动式曝光, 屏幕空间反射, 雾气, 亮光, 以及景深设置等等…\",\"[color=#E3266F]PBR рендерер[/color] з повною підтримкою MSAA\n[color=#02E180]Повна реалізація принципів BSDF[/color] із Підповерхневим розсіюванням, відбиттям, рефракцією, прозорістю тощо…\n[color=#26BFE3]Глобальне освітлення[/color] для отримання неперевершеної графіки в реальному часі\n[color=#F2971A]Mid та Post processing ефекти[/color] в тому числі криві, авто експозиція, screen-space відбиття, імла, світіння, глибина різкості тощо…\",\"완전한 MSAA를 지원하는 [color=#E3266F]물리 기반 렌더링[/color]\nSubsurface Scattering, 반사, 굴절, Clearcoat 등으로 [color=#02E180]완전한 principled BSDF[/color]\n멋진 실시간 그래픽을 위한 [color=#26BFE3]글로벌 일루미네이션[/color]\n곡선 및 자동 노출, 스크린 영역 반사(SSR), 안개, 눈부심, 피사계심도 등이 포함된 [color=#F2971A]중간 및 포스트 프로세싱 효과[/color]\",\"[color=#E3266F]Fyzikálne-založený rendering[/color] s plnou podporou MSAA\n[color=#02E180]Úplný 'Principled BSDF'[/color] s podpovrchovým rozptylom, odrazom, lomom svetla, bezfarebným lakom...\n[color=#26BFE3]Globálne osvetlenie[/color] pre úžasnú grafiku v reálnom čase\n[color=#F2971A]Mid a Post processing efekty[/color] vrátane kriviek a automatickej expozície, screen-space odrazov, hmly, presvetlenia, hĺbky ostrosti...\",\"[color=#E3266F]Rendering bazujący na fizyce (PBR)[/color] z pełnym wsparciem dla MSAA\n[color=#02E180]Pełen „Principled BSDF”[/color] z rozpraszaniem powierzchniowym, odbiciami, załamaniem światła, clearcoat...\n[color=#26BFE3]Globalne oświetlenie[/color] dla pięknej grafiki w czasie rzeczywistym\n[color=#F2971A]Efekty mid- i post-processing[/color], w tym krzywe, auto-naświetlenie, technika SSR, mgła, efekt bloom, głębia ostrości (DOF)...\",\"[color=#E3266F]Physically-based rendering[/color] dengan dukungan penuh MSAA\n[color=#02E180]Full principled BSDF[/color] dengan Subsurface Scattering, refleksi, refraksi, clearcoat...\n[color=#26BFE3]Global illumination[/color] untuk grafik yang cantik secara real time\n[color=#F2971A]Efek Mid and Post processing[/color] termasuk kurva dan auto exposure, pemantulan layar-ruang, kabut, bloom, depth of field...\"\nState_of_the_art_3d_engine_Column_Footer_text,Designed to work well with Blender 2.8's Eevee realtime engine,Compatible avec le moteur en temps réel Eevee de Blender 2.8,Blender3d 2.8のEeveeリアルタイムレンダリングエンジンと互換します,Diseñado para funcionar perfectamente junto al motor en tiempo real Eeevee de Blender 2.8,\"Desenhado para uma excelente integração com o motor gráfico Eevee, disponível no Blender 2.8+\",\"Entwickelt, um mit Eevee, Echtzeit-Engine von Blender 2.8, gut zu funktionieren\",Progettato per integrarsi con Eevee il motore realtime di Blender 2.8,深度配合Blender 2.8版本中的Eevee实时渲染引擎,Призначений для роботи з Blender 2.8's Eevee realtime engine,Blender 2.8의 Eevee 실시간 엔진과도 잘 작동되도록 설계되었습니다,Navrhnutý pre dobrú spoluprácu s Eevee realtime engine z Blendera 2.8,Zaprojektowany dla dobrej współpracy z silnikiem Eevee Blendera 2.8,\"Didesain untuk bekerja secara baik dengan engine real time milik Blender 2.8, Eevee\"\nAll_in_one_package_Column_Header_title,All-in-one package,Un outil tout-en-un,必要とするツールは全て含まれています,Todo en uno,Tudo em um!,All-in-one Paket,Tutto in uno,一体化配置,Все в одному,일체형 패키지,Balík všetko v jednom,Wszystko w jednym,Semua dalam satu paket\nAll_in_one_package_Column_Body_Row_TextBox_text,\"- [color=#E3266F]Code editor[/color] with embedded docs and autocompletion\n- [color=#26BFE3]Animation[/color] editor with 2d rigging\n- [color=#F2971A]Tilemap editor[/color] with autotiles\n- [color=#02E180]Shader[/color] editor, visual and code\n- [color=#02E180]UI theme editor[/color]\n\nNew tools get in with each version!\",\"- [color=#E3266F]Éditeur de code[/color] avec référence intégrée et autocomplétion\n- [color=#26BFE3]Éditeur d'animations[/color] avec skinning et rigging 2D\n- [color=#F2971A]Éditeur de tilesets et de tilemaps[/color], autotiles inclus\n- [color=#02E180]Éditeur de shader[/color]: sous forme de briques visuelles ou via un langage simplifié\n- [color=#02E180]Éditeur de thème de l'interface utilisateur[/color]\n\nDe nouveaux outils sont ajoutés avec chaque version!\",\"- 便覧が含まれている[color=#E3266F]開発環境[/color]\n- IKとリギングできる[color=#26BFE3]アニメーションエディタ[/color]\n- [color=#F2971A]タイルセットとタイルマップエディタ[/color]\n- [color=#02E180]シェーダーエディタ[/color]、表か書かれたコードでプログラミングできます\n- [color=#02E180]ジーユーアイテーマエディタ[/color]\n\n開発者たちはいつも新しいツールを作っています\",\"- [color=#E3266F]Editor de texto[/color] con autocompletado y documentación\n- Editor de [color=#26BFE3]animaciones[/color] con rigging 2D\n- [color=#F2971A]Editor de tilemaps[/color] con autotiles\n- Editor de [color=#02E180]shaders[/color], visual y en código\n- [color=#02E180]Editor de temas para UIs[/color]\n\n¡Nuevas herramientas en cada versión!\",\"- [color=#E3266F]Editor de Texto[/color] com documentação e autocompletar embutidos\n- [color=#26BFE3]Editor de Animações[/color] com rigging 2D\n- [color=#F2971A]Editor de Tilemaps[/color] com autotiles\n- [color=#02E180]Editor de Shaders[/color] com programação visual e textual\n- [color=#02E180]Editor de Interface de Usuário[/color] para criar temas incríveis\n\nNovas ferramentas a cada versão!\",\"- [color=#E3266F]Code Editor[/color] mit integrierter Dokumentation und Autovervollständigung\n- [color=#26BFE3]Animation[/color] Editor mit 2d Rigging\n- [color=#F2971A]Tilemap Editor[/color] mit Auto-Tiles\n- [color=#02E180]Shader[/color] Editor, Visuell- und Codebasiert\n- [color=#02E180]UI Theme-Editor[/color]\n\nMit jeder Version kommen neue Tools hinzu!\",\"- [color=#E3266F]Code editor[/color] con documentazione integrata ed autocompletamento\n- [color=#26BFE3]Animation[/color] editor con 2d rigging\n- [color=#F2971A]Tilemap editor[/color] con autotiles\n- [color=#02E180]Shader[/color] editor, visuale e testuale\n- [color=#02E180]Editor di temi UI[/color]\n\nNuovi tool in ogni nuova versione!\",\"- 内嵌文档和自动补全功能的[color=#E3266F]代码编辑器[/color]\n- 支持2D骨骼绑定的[color=#26BFE3]动画[/color]编辑工具\n- 自动瓦片设定的[color=#F2971A]瓦片地图编辑器[/color]\n- 可视化代码编写功能的[color=#02E180]着色[/color]编辑器\n- 以及[color=#02E180]UI主题编辑器[/color]\n\n每个版本都有新的工具发布!\",\"- [color=#E3266F]Редактор коду[/color] з вубдованою документацією та автодоповнюванням\n- [color=#26BFE3]Редактор анімацій[/color] із 2d ріґінґом\n- [color=#F2971A]Редактор тайлів[/color] з автотайлінгом\n- [color=#02E180]Редагування шейдерів[/color] як візуальне, так і за допомоги коду\n- [color=#02E180]Редактор тем інтерфейсу[/color]\n\nІз кожною версією додаються нові інструменти!\",\"- 사전이 내장되어있고 자동완성을 지원하는 [color=#E3266F]코드 에디터[/color]\n- 2d 리깅을 지원하는 [color=#26BFE3]애니메이션[/color] 에디터\n- 오토타일을 지원하는 [color=#F2971A]타일맵 에디터[/color] \n- [color=#02E180]셰이터[/color] 에디터, 시각적 코드 또는 문자 코드\n- [color=#02E180]UI 테마 에디터[/color]\n\n새로운 도구가 각 버전마다 도입됩니다!\",\"- [color=#E3266F]Code editor[/color] so vstavanou dokumentáciou a autodopĺňaním\n- [color=#26BFE3]Animation[/color] editor s 2D riggingom\n- [color=#F2971A]Tilemap editor[/color] s autotiles\n- [color=#02E180]Shader[/color] editor, vizuálny a cez kód\n- [color=#02E180]UI theme editor[/color]\n\nKaždá ďalšia verzia prináša nové nástroje!\",\"- [color=#E3266F]Edytor kodu[/color] z wbudowaną dokumentacją i autouzupełnianiem\n- [color=#26BFE3]Edytor animacji[/color] z riggingiem 2d\n- [color=#F2971A]Edytor tilemap[/color] z autotile'ami\n- [color=#02E180]Edytor shaderów[/color] wizualny i kodowy\n- [color=#02E180]Edytor motywów UI[/color]\n\nZ nowymi narzędziami dodawanymi w każdej wersji!\",\"- [color=#E3266F]Editor kode[/color] dengan dokumentasi dan pelengkapan otomatis\n- Editor [color=#26BFE3]Animasi[/color] dengan rigging 2d\n- [color=#F2971A]Editor Tilemap[/color] dengan pembuatan tile otomatis\n- Editor [color=#02E180]Shader[/color], secara visual dan kode\n- [color=#02E180]Editor tema UI[/color]\n\nFitur baru akan masuk disetiap versinya!\"\nAll_in_one_package_Column_Footer_text,For instance Godot 3.1 ships with a new animation editor that supports cut-scenes,\"La version 3.1 apporte un éditeur de cinématiques avec le séquençage d'animations, par exemple\",２D　IKとメッシュスッキニングはもう入手可能,\"Por ejemplo, Godot 3.1 trae un nuevo editor de animaciones con soporte para cinemáticas\",\"Por exemplo, Godot 3.1 traz um editor de animações novo que facilita a criação de cut-scenes\",Zum Beispiel Godot 3.1 kommt mit einem neuen Animation-Editor der Cut-Szenen unterstützt,Ad esempio Godot 3.1 è rilasciato con un nuovo editor di animazioni con supporto alle cut-scene,例如Godot 3.1版本中搭载了一个全新的支持场景剪裁功能的动画编辑器,\"Наприклад, Godot 3.1 йде в комплекті з новим редактором анімацій, що підтримує катсцени\",예를들어 Godot 3.1에서는 컷 씬을 지원하는 새로운 애니메이션 에디터가 도입됩니다,Napr. Godot 3.1 príde s novým editorom animácií s podporou cut-scenes,\"Godot 3.1, na przykład, wydany został z nowym edytorem animacji wspierającym cutscenki\",\"Sebagai contoh, Godot 3.1 akan hadir dengan editor animasi yang mendukung pembuatan cut-scenes\"\nCreateAnything_Column_Header_title,Create Anything,Créez toutes sortes d'applications,何でも作られます,Creación sin límites,Crie qualquer coisa,Erstelle alles Mögliche,Crea qualsiasi cosa,创造任何你所想,Створюй Будь-що,무엇이든 만드십시오,Vytvorte čokoľvek,Twórz co zechcesz,Buat apa saja\nCreateAnything_Column_Header_subtitle,\"2d and 3d Games, tools, or applications\",\"Jeux 2d et 3d, outils ou programmes\",２Dと３Dゲームしツールしソフトウェアもできます,\"Juegos en 2D y 3D,  herramientas, aplicaciones…\",\"Jogos 2D e 3D, ferramentas, aplicativos…\",\"2d und 3d Spiele, Tools, oder Anwendungen\",\"Giochi 2d e 3d, strumenti o applicazioni\",\"2D和3D游戏,工具,应用软件等\",\"2d чи 3d Ігри, інструменти чи додатки\",\"2d 및 3d 게임, 도구, 혹은 응용 프로그램\",\"2D a 3D hry, nástroje alebo aplikácie\",\"Gry 2D i 3D, narzędzia, aplikacje...\",\"Games 2d dan 3d, perkakas, atau aplikasi\"\nCreateAnything_Column_Body_Row_TextBox_text,\"Projects:\n\n- [color=#F2971A]Ex Zodiac[/color], by Ben Hickling\n- [color=#02E180]RPG in a Box[/color], by Justin Arnold\n- [color=#26BFE3]Procedural Mesh Generator[/color], by Bastiaan Olij\",\"Projets:\n\n- [color=#F2971A]Ex Zodiac[/color], par Ben Hickling\n- [color=#02E180]RPG dans une boîte[/color], par Justin Arnold\n- [color=#26BFE3]Procedural mesh graph*[/color], outil de modélisation procédurale via un langage visuel, par Bastiaan Olij\",\"プロジェクト:\n\n- ベン・ヒックリングの[color=#F2971A]Ex Zodiac[/color]\n- ジャスティン・アーノルドの[color=#02E180]RPG in a Box[/color]\n- バスティアン・オリェの[color=#26BFE3]Procedural Mesh Generator[/color]*\",\"Proyectos:\n\n- [color=#F2971A]Ex Zodiac[/color], por Ben Hickling\n- [color=#02E180]RPG in a Box[/color], por Justin Arnold\n- [color=#26BFE3]Procedural Mesh Generator[/color], por Bastiaan Olij\",\"Projetos:\n\n- [color=#F2971A]Ex Zodiac[/color], por Ben Hickling\n- [color=#02E180]RPG in a Box[/color], por Justin Arnold\n- [color=#26BFE3]Procedural Mesh Generator[/color], por Bastiaan Olij\",\"Projekte*:\n\n- [color=#F2971A]Ex Zodiac[/color], von Ben Hickling\n- [color=#02E180]RPG in a Box[/color], von Justin Arnold\n- [color=#26BFE3]Procedural Mesh Generator[/color], von Bastiaan Olij\",\"Progetti:\n\n- [color=#F2971A]Ex Zodiac[/color], di Ben Hickling\n- [color=#02E180]RPG in a Box[/color], di Justin Arnold\n- [color=#26BFE3]Procedural Mesh Generator[/color], di Bastiaan Olij\",\"项目列表:\n\n- [color=#F2971A]Ex Zodiac[/color], 作者 Ben Hickling\n- [color=#02E180]RPG in a Box[/color], 作者 Justin Arnold\n- [color=#26BFE3]Procedural Mesh Generator[/color], 作者 Bastiaan Olij\",\"Проекти:\n\n- [color=#F2971A]Ex Zodiac[/color], від Ben Hickling\n- [color=#02E180]RPG in a Box[/color], від Justin Arnold\n- [color=#26BFE3]Procedural Mesh Generator[/color], від Bastiaan Olij\",\"프로젝트:\n\n- Ben Hickling이 만든 [color=#F2971A]Ex Zodiac[/color]\n- Justin Arnold가 만든 [color=#02E180]RPG in a Box[/color]\n- Bastiaan Olij가 만든 [color=#26BFE3]Procedural Mesh Generator[/color]\",\"Projekty*:\n\n- [color=#F2971A]Ex Zodiac[/color], autor Ben Hickling\n- [color=#02E180]RPG in a Box[/color], autor Justin Arnold\n- [color=#26BFE3]Procedural Mesh Generator[/color], autor Bastiaan Olij\",\"Projekty*:\n\n- [color=#F2971A]Ex Zodiac[/color], autor: Ben Hickling\n- [color=#02E180]RPG in a Box[/color], autor: Justin Arnold\n- [color=#26BFE3]Procedural Mesh Generator[/color], autor: Bastiaan Olij\",\"Proyek:\n\n- [color=#F2971A]Ex Zodiac[/color], oleh Ben Hickling\n- [color=#02E180]RPG in a Box[/color], oleh Justin Arnold\n- [color=#26BFE3]Procedural Mesh Generator[/color], oleh Bastiaan Olij\"\nCreateAnything_Column_Footer_text,\"*Open source, available on GitHub\",\"*Open Source, disponible sur GitHub\",＊GitHubでダウンロードできるオプンソースパラグイン,\"*Open source, disponible en GitHub\",\"*Código aberto, disponível no GitHub\",\"*Open source, verfügbar auf GitHub\",\"*Open source, disponibile su GitHub\",*开源在GitHub上,\"*Відкритий код, доступний на GitHub\",\"*오픈소스로, GitHub에서 사용하실 수 있습니다\",\"*Open source, dostupné na GitHub-e\",\"*Open source, dostępne na GitHubie\",\"*Sumber terbuka, tersedia di GitHub\"\nCodeFreely_Header_title,Code freely,\"Programmez librement\n\",自由にプログラミングできます,Programa a tu manera,Programe livremente,Freies Coden,Programma liberamente,自由代码编写,Програмуй вільно,자유로운 코딩,Slobodné kódovanie,Swobodne kodowanie,Bebas mengkode\nCodeFreely_Body_Row_TextBox_text,\"Godot lets you use many programming languages:\n\n[color=#02E180]GDScript[/color] Python-like scripting language, designed for gameplay developers\n[color=#F2971A]C# 7.0[/color] support using Mono\nFull [color=#E3266F]C[/color] and [color=#E3266F]C++[/color] support without having to recompile the engine\n[color=#26BFE3]Visual scripting[/color] using a graph of blocks\",\"Godot vous donne le choix entre de nombreux langages de programmation:\n\n[color=#02E180]GDScript[/color], langage de scripting ressemblant à Python, conçu pour les programmeurs gameplay\n[color=#F2971A]C# 7.0[/color] avec le compileur Mono\nSupport de [color=#E3266F]C[/color] et de [color=#E3266F]C ++[/color] sans avoir à recompiler le moteur\n[color=#26BFE3]VisualScript[/color], langage de programmation visuel\",\"Godotでいろんなコンピューター言語で書けます：\n\nPythonのような[color=#02E180]GDScript[/color]と言うゲーム開発者用言語\nMicrosoftのMonoコンパイラで[color=#F2971A]C# 7.0[/color]サポート\nエンジンをコンパイル無しで全体の[color=#E3266F]C[/color]と[color=#E3266F]C++[/color]サポート\n表の[color=#26BFE3]VisualScript[/color]というのデザイナーのための言語\",\"Godot te deja usar muchos lenguajes de programación:\n\n[color=#02E180]GDScript[/color] lenguaje similar a Python, diseñado para desarrolladores de gameplay\n[color=#F2971A]C# 7.0[/color] usando Mono\nFull [color=#E3266F]C[/color] y [color=#E3266F]C++[/color] sin necesidad de recompilar el motor\n[color=#26BFE3]Scripting visual[/color] usando grafos de bloques\",\"Godot lhe permite usar várias linguagens de programação:\n\n[color=#02E180]GDScript[/color] uma linguagem de scripts muito parecida com Python, desenhada para desenvolvimento de gameplay\n\n[color=#F2971A]C# 7.0[/color] usando o compilador Mono\n\nSuporte completo para [color=#E3266F]C[/color] e [color=#E3266F]C++[/color] sem ter de recompilar\n\n[color=#26BFE3]Visual scripting[/color] usando editor gráfico e blocos de lógica\",\"Godot kann man mit vielen Programmiersprachen nutzen:\n\n[color=#02E180]GDScript[/color] Python-ähnliche Skriptsprache, Entwickelt für Spieleentwickler\n[color=#F2971A]C# 7.0[/color] Unterstützung mit Mono\nFull [color=#E3266F]C[/color] und [color=#E3266F]C++[/color] Unterstützung, ohne die Engine neu kompilieren zu müssen\n[color=#26BFE3]Visuelles Skripting[/color] mit einem Graph von Blöcken\",\"Godot ti permette di usare vari linguaggi di programmazione:\n\n[color=#02E180]GDScript[/color] un linguaggio di scripting Python-like, progettato per gameplay developer\n[color=#F2971A]C# 7.0[/color] supportato utilizzando Mono\nPieno supporto [color=#E3266F]C[/color] and [color=#E3266F]C++[/color] senza bisogno di ricompilare l’engine\n[color=#26BFE3]Visual scripting[/color] utilizzando grafi e blocchi\",\"Godot支持很多门编程语言:\n\n[color=#02E180]GDScript[/color]是一门类似Python的脚本语言, 为游戏开发者量身打造\n支持在Mono平台上使用[color=#F2971A]C# 7.0[/color]语言进行开发\n完全支持 [color=#E3266F]C[/color] 和 [color=#E3266F]C++[/color] 编程语言,无需重新编译\n使用图形化代码块的[color=#26BFE3]可视化脚本语言[/color]\",\"Godot дозволяє користатися багатьма мовами програмування:\n\n[color=#02E180]GDScript[/color] Python-подібна скриптова мова, спроектована для розробників ігор\n[color=#F2971A]C# 7.0[/color] підтримується за дпомоги Mono\nПовна підтримка [color=#E3266F]C[/color] та [color=#E3266F]C++[/color] без необхідності рекомпіляції двигуна\n[color=#26BFE3]Візуальне програмування[/color] за допомги блочних графів\",\"Godot에서는 많은 프로그래밍 언어를 사용하실 수 있습니다:\n\nPython과 유사한 스크립트 언어로, 게임플레이 개발자를 위해 설계된 [color=#02E180]GDScript[/color]\nMono를 사용하여 지원하는 [color=#F2971A]C# 7.0[/color] \n엔진을 리컴파일 할 필요 없이 완전한 [color=#E3266F]C[/color] 와 [color=#E3266F]C++[/color] 을 지원\n블록의 그래프로 이루어지는 [color=#26BFE3]Visual scripting[/color]\",\"Godot umožňuje používať viacero programovacích jazykov:\n\n[color=#02E180]GDScript[/color] je skriptovací jazyk podobný Pythonu, navrhnutý pre vývojárov hier\nPodpora [color=#F2971A]C# 7.0[/color] cez Mono\nÚplná podpora [color=#E3266F]C[/color] a [color=#E3266F]C++[/color] bez nutnosti prekompilovať engine\n[color=#26BFE3]Visual scripting[/color] prostredníctvom grafu blokov\",\"Godot umożliwia używanie różnych języków programowania:\n\n[color=#02E180]GDScript[/color] język skryptowy podobny do Pythona, zaprojektowany dla gameplay designerów\nWsparcie dla [color=#F2971A]C# 7.0[/color] przy użyciu Mono\nPełne wsparcie dla [color=#E3266F]C[/color] i [color=#E3266F]C++[/color] bez konieczności rekompilowania silnika\n[color=#26BFE3]Skrypt wizualny[/color] używający diagram z blokami\",\"Godot mengizinkanmu untuk menggunakan banyak bahasa pemrograman:\n\n[color=#02E180]GDScript[/color] Bahasa scripting yang mirip Python, didesain untuk pengembang game\nDukungan [color=#F2971A]C# 7.0[/color] dengan Mono\nDukungan penuh [color=#E3266F]C[/color] dan [color=#E3266F]C++[/color] tanpa harus mengkompilasi ulang Engine\nMengkode secara [color=#26BFE3]Visual[/color] dengan blok \"\nCodeFreely_Footer_text,\"Community-supported languages: Python, Nim, D, Rust...\",\"D'autres langages sont pris en charge grâce à la communauté: Python, Nim, D, Rust...\",コミュニティのおかげでPythonとかNimとかDなども使えます,\"Lenguajes con soporte comunitario: Python, Nim, D, Rust…\",\"Linguagens com suporte da comunidade: Python, Nim, D, Rust...\",\"Sprachen von der Community unterstützt: Python, Nim, D, Rust...\",\"Linguaggi supportati grazie alla community: Python, Nim, D, Rust...\",\"由社区推动支持的编程语言: Python, Nim, D, Rust等...\",\"Мови програмування, що підтримуються спільнотою: Python, Nim, D, Rust...\",\"커뮤니티가 지원하는 언어: Python, Nim, D, Rust 등\",\"Komunitou podporované jazyky: Python, Nim, D, Rust...\",\"Wsparcie dla języków rozwijane przez społeczność: Python, Nim, D, Rust...\",\"Bahasa yang didukung komunitas: Python, Nim, D, Rust…\"\nVirtual_and_augmented_reality_Column_Header2_title,Virtual and Augmented Reality,Réalité Virtuelle et Augmentée,仮想現実（VR）と拡張現実（AR),Realidad Virtual y Aumentada,Realidade Virtual e Aumentada,Virtual and Augmented Reality,Virtual e Augmented Reality,虚拟现实和增强现实,Віртуальна та Розширена реальність,가상현실(VR)과 증강현실(AR),Virtuálna a Rozšírená realita,VR i rzeczywistość rozszerzona,Virtual dan Augmented Reality\nVirtual_and_augmented_reality_Column_Body_Row_TextBox_text,\"Powered by [color=#E3266F]OpenVR[/color]\nSupports all common hardware: Occulus Rift, Gear VR, Leap Motion...\n\nAugmented Reality powered by the [color=#26BFE3]ARKit[/color]\",\"Grâce à [color=#E3266F] OpenVR[/color]\nSupport du matériel commun: Occulus Rift, Gear VR, Leap Motion...\n\nSupport de la réalité augmentée via [color=#26BFE3]Arkit[/color]\",\"[color=#E3266F]OpenVR[/color]\n通常のハードウェアをサポートします：Occulus Rift, Gear VR, Leap Motion...\n\n拡張現実は[color=#26BFE3]ARKit[/color]を使って開発できます\",\"Usando [color=#E3266F]OpenVR[/color]\nSoporte para: Occulus Rift, Gear VR, Leap Motion...\n\nRealidad Aumentada usando [color=#26BFE3]ARKit[/color]\",\"Realidade Virtual usando [color=#E3266F]OpenVR[/color]\n\nSuporta os hardware mais conhecidos do mercado: Occulus Rift, Gear VR, Leap Motion...\n\nRealidade Aumentada usando [color=#26BFE3]ARKit[/color]\",\"Basiert auf [color=#E3266F]OpenVR[/color]\nGängige Hardware wird unterstützt: Occulus Rift, Gear VR, Leap Motion...\n\nAugmented Reality basiert auf [color=#26BFE3]ARKit[/color]\",\"Powered by [color=#E3266F]OpenVR[/color]\nSupporta tutti i dispositivi comuni: Oculus Rift, Gear VR, Leap Motion...\n\nAugmented Reality grazie a [color=#26BFE3]ARKit[/color]\",\"由 [color=#E3266F]OpenVR[/color] 提供技术支持\n支持所有常见硬件设备: Occulus Rift, Gear VR, Leap Motion等...\n\n增强现实由 [color=#26BFE3]ARKit[/color] 提供技术支持\",\"На базі [color=#E3266F]OpenVR[/color]\nПідтримка усіх видів поширених пристроїв: Occulus Rift, Gear VR, Leap Motion...\n\nРозширена реальність на базі [color=#26BFE3]ARKit[/color]\",\"[color=#E3266F]OpenVR[/color] 기반\n모든 일반적인 하드웨어를 지원합니다: Occulus Rift, Gear VR, Leap Motion...\n\n[color=#26BFE3]ARKit[/color] 기반 증강현실\",\"Založená na [color=#E3266F]OpenVR[/color]\nPodporuje všetok bežný hardware: Occulus Rift, Gear VR, Leap Motion...\n\nRozšírená realita založená na [color=#26BFE3]ARKit[/color]\",\"Wirtualna rzeczywistość napędzana przez [color=#E3266F]OpenVR[/color]\nWspiera wszystkie typy osprzętu: Occulus Rift, Gear VR, Leap Motion...\n\nAR wspierane przez [color=#26BFE3]ARKit[/color]\",\"Disokong oleh [color=#E3266F]OpenVR[/color]\nMendukung semua perangkat umum: Occulus Rift, Gear VR, Leap Motion...\n\nAugmented Reality didukung oleh [color=#26BFE3]ARKit[/color]\"\nProfessionals_use_godot_Column_Header_title,Professionals use Godot,Les pros utilisent Godot,Godotを使うプロがいます,Usado en el entorno profesional,Profissionais usando Godot,Profis nutzen Godot,I professionisti usano Godot,专业人员使用Godot,Професіонали користуються Godot,Godot를 사용하는 전문가들,Godot používajú profesionáli,Godot używany profesjonalnie,Profesional juga pakai Godot\nProfessionals_use_godot_Column_Body_Row_TextBox_text,\"[color=#E3266F]Game studios[/color] like Gamblify, GuaranApps, Kivano...\n[color=#26BFE3]Schools[/color] including School4Games Berlin, KidsCanCode...\n[color=#02E180]Content creators[/color] like Heartbeast, GamesFromScratch, [i]GDQuest[/i]...\",\"Des [color=#E3266F]studios de jeux[/color] comme Gamblify, GuaranApps, Kivano...\nDes [color=#26BFE3]écoles[/color] telles que School4Games Berlin, KidsCanCode...\nDes [color=#02E180]vidéastes[/color] comme Heartbeast, GamesFromScratch, [i]GDQuest[/i]...\",\"[color=#E3266F]ゲームスタジオ[/color]：Gamblify, GuaranApps, Kivano...\n[color=#26BFE3]大学[/color]：School4Games ベルリン, KidsCanCode...\n[color=#02E180]学習用の製作者[/color]：Heartbeast, GamesFromScratch, [i]GDQuest[/i]...今はまだ日本語の動画は少ないでしょう\",\"[color=#E3266F]Estudios de videojuegos[/color] como Gamblify, GuaranApps, Kivano...\n[color=#26BFE3]Escuelas[/color] como School4Games Berlin, KidsCanCode...\n[color=#02E180]Creadores de contenido[/color] como Heartbeast, GamesFromScratch, [i]GDQuest[/i]...\",\"[color=#E3266F]Estúdios de Jogos[/color] como Gamblify, GuaranApps, Kivano...\n\n[color=#26BFE3]Escolas[/color] incluindo School4Games Berlin, KidsCanCode...\n\n[color=#02E180]Criadores de conteúdo[/color] como Heartbeast, GamesFromScratch, [i]GDQuest[/i]...\",\"[color=#E3266F]Spielestudios[/color] wie z.B. Gamblify, GuaranApps, Kivano...\n[color=#26BFE3]Schulen[/color], unter anderem School4Games Berlin, KidsCanCode...\n[color=#02E180]Inhaltsentwickler[/color] wie z.B. Heartbeast, GamesFromScratch, [i]GDQuest[/i]...\",\"[color=#E3266F]Game studios[/color] come Gamblify, GuaranApps, Kivano...\n[color=#26BFE3]Scuole[/color] come School4Games Berlin, KidsCanCode...\n[color=#02E180]Content creator[/color] come Heartbeast, GamesFromScratch, [i]GDQuest[/i]...\",\"[color=#E3266F]游戏开发工作室[/color]比如Gamblify, GuaranApps, Kivano等...\n[color=#26BFE3]学校[/color]包括School4Games Berlin, KidsCanCode等...\n[color=#02E180]内容创作者[/color]像Heartbeast, GamesFromScratch, [i]GDQuest[/i]等...\",\"[color=#E3266F]Геймстудії[/color] такі, як Gamblify, GuaranApps, Kivano...\n[color=#26BFE3]Школи[/color] серед яких School4Games Berlin, KidsCanCode...\n[color=#02E180]Творці контенту[/color] серед яких Heartbeast, GamesFromScratch, [i]GDQuest[/i]...\",\"[color=#E3266F]게임 스튜디오[/color] : Gamblify, GuaranApps, Kivano 등\n[color=#26BFE3]교육[/color] : School4Games Berlin, KidsCanCode 등\n[color=#02E180]콘텐츠 크리에이터[/color] : Heartbeast, GamesFromScratch, [i]GDQuest[/i] 등\",\"[color=#E3266F]Herné štúdiá[/color] ako Gamblify, GuaranApps, Kivano...\n[color=#26BFE3]Školy[/color] ako School4Games Berlin, KidsCanCode...\n[color=#02E180]Tvorcovia obsahu[/color] ako Heartbeast, GamesFromScratch, [i]GDQuest[/i]...\",\"[color=#E3266F]Producenci gier[/color] jak Gamblify, GuaranApps, Kivano...\n[color=#26BFE3]Szkoły[/color], w tym School4Games Berlin, KidsCanCode...\n[color=#02E180]Twórcy contentu w sieci[/color] jak Heartbeast, GamesFromScratch, [i]GDQuest[/i]...\",\"[color=#E3266F]Studio Game[/color] seperti Gamblify, GuaranApps, Kivano...\n[color=#26BFE3]Sekolah[/color] termasuk School4Games Berlin, KidsCanCode...\n[color=#02E180]Pembuat konten[/color] seperti Heartbeast, GamesFromScratch, [i]GDQuest[/i]...\"\nMade_with_godot_Column_Header2_title,Made with Godot,Un jeu conçu avec Godot,Godotで作ったゲーム,Made with Godot,Feito com Godot,Made with Godot,Sviluppati con Godot,Godot制作开发,Створено за допомоги Godot,Godot로 만들었습니다,Made with Godot,Stworzone przy użyciu Godot,Dibuat dengan Godot\nMade_with_godot_Column_Footer2_text,\"Galactic Bulwark Strike, by Josep G. Camarasa\",\"Galactic Bulwark Strike, par Josep G. Camarasa\",Josep G. CamarasaのGalactic Bulwark Strike,\"Galactic Bulwark Strike, por Josep G. Camarasa\",\"Galactic Bulwark Strike, por Josep G. Camarasa\",\"Galactic Bulwark Strike, von Josep G. Camarasa\",\"Galactic Bulwark Strike, di Josep G. Camarasa\",\"Galactic Bulwark Strike, 由 Josep G. Camarasa 开发制作\",\"Galactic Bulwark Strike, від Josep G. Camarasa\",Josep G. Camarasa가 만든 Galactic Bulwark Strike ,\"Galactic Bulwark Strike, autor Josep G. Camarasa\",\"Galactic Bulwark Strike, autor: Josep G. Camarasa\",\"Galactic Bulwark Strike, oleh Josep G. Camarasa\"\nGodot_is_in_great_shape_Column_Header2_title,Godot is in great shape,Un projet en grande forme,Godotはうまくいっています,Desarrollo muy activo,Godot está em ótima forma,Godot ist in super Zustand,Godot è in ottima forma,Godot发展已经成型,Godot є в чудовій формі,Godot는 좋은 환경입니다,Godot je vo výbornej kondícii,Godot ma się świetnie,Godot dalam kondisi luar biasa\nGodot_is_in_great_shape_Column_Body_Row_TextBox2_text,\"Godot is [color=#26BFE3]Free Software[/color] built by [color=#26BFE3]hundreds of people[/color]. It's the fastest-growing game technology on GitHub:\n\n- [color=#02E180]700+[/color] contributors\n- 18 000+ commits\n- 18 000+ stars\n\nIt’s not only free to use: contrary to other engines, you will never have to pay royalties.\nIt also brings sane competition to proprietary engines, pushing innovation.\",\"Godot est un [color=#26BFE3]Logiciel Libre[/color] développé par [color=#26BFE3]des centaines de personnes[/color]. Son évolution accélère au fil du temps:\n\n- [color=#02E180]Plus de 700[/color] contributeurs\n- 18 000+ commits\n- 18 000+ étoiles sur GitHub\n- Le projet est bien organisé\n\nGodot génère plus de [color=#02E180]$8000[/color] de donations par mois sur Patreon.\",\"Godot は[color=#26BFE3]数百[/color]の人が開発しました[color=#26BFE3]フリーソフトウェア[/color]  \n段々早く成長しています:  \n  \n- [color=#02E180]700[/color]人以上の開発者  \n- 18 000+ commits  \n- 18 000+ stars  \n- 完全なコードベース  \n \nGodotで作ったプロジェクトとフォークはさすがいつまでも無料です。\nGodotの成長は、Unityのようなエンジンとの健全な競争をもたらし、革新を持続させる\",\"Godot es [color=#26BFE3]software libre[/color] hecho por [color=#26BFE3]cientos de personas[/color]. No para de crecer:\n\n- [color=#02E180]700+[/color] contribuidores\n- 18 000+ commits\n- 18 000+ estrellas\n- Proyecto bien organizado\n\nEl proyecto obtiene [color=#02E180]$8000+[/color] al mes en Patreon.\",\"Godot é um [color=#26BFE3]Software Livre[/color] criado por [color=#26BFE3]centenas de pessoas[/color]. E não para de crescer:\n\n- [color=#02E180]700+[/color] contribuidores\n- 18 000+ commits\n- 18 000+ estrelas\n- Tudo muito bem organizado\n\nO projeto arrecada mais de [color=#02E180]$8000+[/color] mensalmente pelo Patreon.\",\"Godot ist [color=#26BFE3]Freie Software[/color], erstellt von [color=#26BFE3]hunderten von Leuten[/color]. Es wächst im laufe der Zeit immer schneller:\n\n- [color=#02E180]700+[/color] Mitwirkende\n- 18 000+ Commits\n- 18 000+ Sterne\n- Gut organisiertes Projekt\n\nAuf Patreon wird das Projekt mit [color=#02E180]mehr als $8000[/color] im Monat unterstützt.\",\"Godot è un progetto [color=#26BFE3]Free Software[/color] sviluppato da [color=#26BFE3]centinaia di persone[/color] ed in continua crescita:\n\n- [color=#02E180]700+[/color] contributor\n- 18 000+ commit\n- 18 000+ star\n- Progetto ben organizzato\n\nIl progetto ottiene più di [color=#02E180]$8000[/color] al mese su Patreon.\",\"Godot是一款由[color=#26BFE3]成千上万群众[/color]共同打造的[color=#26BFE3]免费软件[/color].它随着时间的发展而飞速发展:\n\n- [color=#02E180]超过700个[/color]贡献者参与\n- 18 000多次的提交\n- 18 000多个星星\n- 一个组织健全的项目\n\nGodot项目每个月能从老顾主那里得到高达[color=#02E180]9000多美元[/color]的赞助费.\",\"Godot є [color=#26BFE3]Свобдним ПЗ[/color], що його будують [color=#26BFE3]сотні людей[/color]. Він зростає чим швидше із кожною хвилиною:\n\n- [color=#02E180]700+[/color] вкладників\n- 18 000+ комітів\n- 18 000+ зірочок\n- Добре організований проект \n\nПроект отримує [color=#02E180]$8000+[/color] кожного місяця на Patreon.\",\"Godot는 [color=#26BFE3]무료 소프트웨어로[/color] [color=#26BFE3]수백명의 사람들로[/color] 만들어졌습니다. 시간이 갈수록 빠른 성장을 보이고 있습니다:\n\n- [color=#02E180]700+[/color] 기여자들\n- 18 000+ commits\n- 18 000+ stars\n- 잘 조직화된 프로젝트\n\n프로젝트는 매달 Patreon으로 [color=#02E180]$8000+[/color] 을 받습니다.\",\"Godot je [color=#26BFE3]Free Software[/color], ktorý tvoria [color=#26BFE3]stovky ľudí[/color]. A rastie s časom:\n\n- [color=#02E180]700+[/color] prispievateľov\n- 18 000+ príspevkov\n- 18 000+ hviezd\n- dobre zorganizovaný projekt\n\nProjekt dostáva mesačne viac ako [color=#02E180]$8000[/color] cez Patreon.\",\"Godot to [color=#26BFE3]darmowe oprogramowanie[/color] tworzone przez [color=#26BFE3]setki ludzi[/color]. Z czasem rośnie coraz szybciej:\n\n- [color=#02E180]700+[/color] współautorów\n- 18 000+ commitów\n- 18 000+ gwiazdek\n- Dobrze zorganizowany projekt\n\nProjekt zbiera [color=#02E180]ponad $8000[/color] miesięcznie na Patreonie.\",\"Godot adalah [color=#26BFE3]Software Bebas[/color] yang dibangun oleh [color=#26BFE3]ratusan orang[/color] dan tumbuh cepat dari waktu ke waktu:\n\n- [color=#02E180]700+[/color] penyumbang\n- 18 000+ commits\n- 18 000+ bintang\n- Proyek yang terorganisir\n\nProyek ini mendapatkan [color=#02E180]$8000+[/color] setiap bulannya dari Patreon.\"\nGodot_is_in_great_shape_Column_Footer2_text,\"Godot is lead by full-time, experienced engineers: it gets [color=#02E180]$8000+[/color] a month on Patreon and is sponsored by organizations like Mozilla and Microsoft.\",\"Certaines fonctionnalités sont parrainées par des entreprises: l'export WebGL par Mozilla, le support de C# par Microsoft ...\",老練の技術者の常勤さんから主導していろんな機能は大きい組織主催です：WebGL（Mozilla)、C#（Microsoft),\"Algunas características están patrocinadas por compañías: exportar a WebGL por Mozilla, soporte de C# por Microsoft...\",\"Algumas funcionalidades foram patrocinadas por grandes companhias: WebGL export pela Mozilla, suporte C# pela Microsoft…\",\"Einige Features werden von namhaften Firmen gesponsort: WebGL Export von Mozilla, C# Unterstützung von Microsoft...\",\"Alcune funzionalità sono sponsorizzate dalle compagnie: WebGL export da Mozilla, supporto C# da Microsoft...\",\"一些功能由大型公司赞助: WebGL export 由Mozilla提供, C# 由Microsoft支持等...\",\"Деякі функції профінансовані сторонніми компаніями: експорт до WebGL - Mozilla, підтримка C# - Microsoft...\",\"일부 기능은 회사로부터 후원을 받았습니다: Mozilla의 WebGL, Microsoft의 C# 등\",\"Niektoré funkcie sú sponzorované spoločnosťami: WebGL export od Mozilly, C# podpora od Microsoftu...\",\"Niektóre funkcje są sponsorowane przez korporacje: eksport WebGL przez Mozillę, wsparcie dla C# przez Microsoft...\",\"Beberapa fitur disponsori oleh perusahaan: ekspor WebGL oleh Mozilla, dukungan C# oleh Microsoft...\"\nHow_to_get_started_Header_title,How to get started,Comment bien débuter,どうやって始められますか？ ,Cómo empezar,Como começar,Wie fange ich an?,Come cominciare,如何迈开第一步？,З чого почати,시작하는 법,Ako začať?,Jak zacząć?,Cara memulai\nHow_to_get_started_Body_Row_TextBox_text,\"The [color=#26BFE3]community[/color] is [b]very[/b] active. Social networks, forum, IRC, Discord…\nThere's a [color=#26BFE3]Questions/Answers[/color] website\nYou'll find plenty of official [color=#02E180]tutorials[/color] in the [color=#02E180]online manual[/color]\nThere's [color=#E3266F]built-in code reference[/color] inside the game editor\nUse the [color=#F2971A]open source demos[/color]\",\"La [color=#26BFE3]communauté[/color] est [b]très[/b] active. Vous trouverez du monde sur les réseaux sociaux, le forum, IRC, Discord...\nIl y a un site de [color=#26BFE3]Questions/Réponses[/color]\nVous trouverez beaucoup de [color=#02E180]tutoriels officiels[/color] dans le [color=#02E180]manuel en ligne[/color]\nLa [color=#E3266F]référence de code[/color] est intégrée dans l'éditeur\nVous trouverez de nombreuses [color=#F2971A]démos open source[/color]!\",\"[color=#26BFE3]コミュニティ[/color]は[b]とても[/b]にぎやかです。\nSNSしIRCしDiscordしでGodotのユーザーと会えます\n[color=#26BFE3]質問と答え[/color]のウェブサイトもあります\n\n[color=#02E180]リファレンス[/color]に公式の[color=#02E180]学習用[/color]が多いです\n\n開発環境に[color=#E3266F]コードのドキュメント[/color]が含まれます\n\n[color=#F2971A]オープンソースのデモ[/color]も多いです\",\"La [color=#26BFE3]comunidad[/color] es [b]muy[/b] activa. Redes sociales, foro, IRC, Discord…\nHay una página de [color=#26BFE3]Preguntas/Respuestas[/color]\nEncontrarás muchos [color=#02E180]tutorialess[/color] oficiales en el [color=#02E180]manual online[/color]\nHay [color=#E3266F]documentación[/color] dentro del propio editor\nUsa [color=#F2971A]demos open source[/color]\",\"A [color=#26BFE3]comunidade[/color] é [b]muito[/b] ativa. Redes sociais, fórum, IRC, Discord…\n\nPágina de [color=#26BFE3]Perguntas&Respostas[/color]\n\nVocê vai encontrar vários [color=#02E180]tutoriais[/color] oficiais no [color=#02E180]manual online[/color]\n\nO editor de textos possui[color=#E3266F]documentação integrada[/color]\n\nUse as [color=#F2971A]demos com código aberto[/color]\",\"Die [color=#26BFE3]Community[/color] ist [b]sehr[/b] aktiv. Soziale Netzwerke, Forum, IRC, Discord…\nEs gibt eine [color=#26BFE3]Frage und Antwort[/color] Webseite\nDu findest viele offizielle [color=#02E180]Tutorials[/color] im [color=#02E180]online Handbuch[/color]\nEs gibt eine [color=#E3266F]eingebaute Code-Referenz[/color] im Spiele-Editor\nErforsche die [color=#F2971A]Open Source Demos[/color]\",\"La [color=#26BFE3]community[/color] è [b]molto[/b] attiva. Social network, forum, IRC, Discord…\nC’è un sito web con [color=#26BFE3]Questions/Answers[/color]\nTroverai tanti [color=#02E180]tutorial[/color] ufficiali nel [color=#02E180]manuale online[/color]\nC’è una [color=#E3266F]documentazione API integrata[/color] all’interno dell’editor di gioco\nUsa [color=#F2971A]le demo open source[/color]\",\"我们的[color=#26BFE3]社区[/color][b]非常[/b]活跃. 包括社交网络, 论坛, 即时聊天平台, 在线聊天工具等…\n我们有一个在线的[color=#26BFE3]问/答[/color]网站\n你可以在[color=#02E180]在线手册[/color]里发现许多官方[color=#02E180]教程[/color]\nGodot游戏编辑器有一个[color=#E3266F]内置的代码参考工具[/color]可供使用\n可以使用[color=#F2971A]开源示例[/color]\",\"[b]Дуже[/b] активна [color=#26BFE3]спільнота[/color]. Соціальні мережі, форум, IRC, Discord…\nСайт у форматі [color=#26BFE3]Питання/Відповідь[/color]\nВ [color=#02E180]онлайн мануалі[/color] можна знайти достатньо офіційних [color=#02E180]навчальних матеріалів[/color]\nТакож існує [color=#E3266F]вбудована довідка до коду[/color] просто в ігровому редакторі\nСкористайтеся [color=#F2971A]демо проектами із відкритим кодом[/color]\",\"[color=#26BFE3]커뮤니티[/color] 는 [b]매우[/b] 활발합니다. 소셜 네트워크, 포럼, IRC, Discord 등\n[color=#26BFE3]질의응답[/color] 웹사이트가 있습니다\n[color=#02E180]온라인 설명서[/color] 에서 많은 공식 [color=#02E180]튜토리얼[/color] 을 찾으실 수 있습니다\n게임 에디터 내에 [color=#E3266F]내장 코드 참조[/color] 가 있습니다\n[color=#F2971A]오픈 소스 데모[/color] 를 사용하십시오\",\"[color=#26BFE3]Komunita[/color] je [b]veľmi[/b] aktívna. Sociálne siete, fórum, IRC, Discord…\nK dispozícii je webstránka [color=#26BFE3]otázok a odpovedí[/color]\nV [color=#02E180]online manuáli[/color] nájdete viacero oficiálnych [color=#02E180]tutoriálov[/color]\nHerný editor obsahuje [color=#E3266F]zabudované referencie kódu[/color]\nVyužite [color=#F2971A]open source demá[/color]\",\"[color=#26BFE3]Społeczność[/color] jest [b]bardzo[/b] aktywna. Serwisy społecznościowe, forum, IRC, Discord…\nJest również dostępna strona [color=#26BFE3]Q&A[/color]\nZnajdziesz mnóstwo oficjalnych [color=#02E180]tutoriali[/color] w [color=#02E180]internetowym podręczniku[/color]\nW edytorze jest [color=#E3266F]wbudowana dokumentacja kodu[/color]\nUżyj [color=#F2971A]otwartoźródłowych dem[/color]\",\"[color=#26BFE3]Komunitas[/color] yang [b]sangat[/b] aktif. Jaringan sosial, forum, IRC, Discord…\nAda juga situs web [color=#26BFE3]Questions/Answers[/color]\nAda beberapa [color=#02E180]tutorial[/color] resmi di [color=#02E180]manual daring[/color]\nAda [color=#E3266F]referensi kode bawaan[/color] didalam game editor\nPelajari [color=#F2971A]demo sumber terbuka[/color]\"\nHow_to_get_started_Footer_text,Most of the resources are in English though... a good way to practice?,\"L'éditeur est déjà traduit en français, ainsi qu'une part croissante des tutoriels officiels\",大体情報は英語ですが、良い練習になるでしょうね？,),La mayoría de los recursos están en inglés… ¿hora de aprender?,Porém boa parte das coisas estão em inglês...é até uma boa chance para praticar!,Ma molte risorse sono in Inglese... è una buona scusa per fare pratica?,Viele der Quellen sind in Englisch... eine gute Möglichkeit zu üben!,\"Проте більшість ресурсів на англійській...тож гарна нагода попркатикуватися, чи не так?\",비록 대부분의 자원은 영어입니다... 하지만 연습하기에 좋은 방식이지 않을까요?,Väčšina zdrojov je však v angličtine... dobrý spôsob na zdokonalenie sa?,Większość zasobów jest jednak po angielsku... dobra okazja na trening?,Sumber pembelajaran lebih banyak menggunakan bahasa Inggris… mungkin bisa jadi alasan belajar bahasa Inggris juga?\nLearn_from_simple_free_demos_Column_Header2_title,Learn from simple Free demos,Démos libres,読みやすいデモで勉強できます,Aprende de demos simples y libres,Aprenda através de demos simples e livres,\"Einfache, freie Demos zum lernen\",Impara dalle demo libere,从简单免费的示例开始入手学习,Навчайтеся за допомги простих та безкоштовних демопроектів,간단한 무료 데모를 통해 배워보기,Na učenie využite free demá,\"Ucz się z prostych, darmowych dem\",Belajar dari demo yang gratis\nLearn_from_simple_free_demos_Column_Footer2_text,Both official and 3rd-party,\"Il y en a beaucoup, officielles ou mises à disposition par la communauté\",公式プロジェクトもコミュニティのもあります,Tanto oficiales como de terceros,Tanto oficiais quanto de terceiros,Sowohl Offizielle als auch Dirttanbieter,Sia ufficiali che 3rd party,官方的和第三方的都有,\"Як офііцних, так і від третіх сторін\",공식 프로젝트와 커뮤니티의 프로젝트가 있습니다,Či už oficiálne alebo od tretích strán,Zarówno oficjalnych jak i tworzonych przez społeczność,Resmi atau pun pihak ketiga\nThank_you_Column_Header2_title,Thank you!,Merci beaucoup!,ありがとうございました！,¡Muchas gracias!,Muito obrigado!,Vielen Dank!,Grazie!,非常感谢!,Щіро дякую!,감사합니다!,Ďakujem za pozornosť!,Dzięki!,Terima Kasih!\nThank_you_Column_Header2_subtitle,Any question?,Des questions?,質問がありますか？,¿Alguna pregunta?,Dúvidas ou perguntas?,Noch Fragen?,Domande?,还有疑问吗?,Маєте запитання?,질문 있으신가요?,Otázky?,Masz pytania?,Ada pertanyaan?\nThank_you_Column_Body_Row_TextBox2_text,\"SNS:\n[color=#26BFE3]@NathanGDquest[/color]\n[color=#F2971A]youtube.com/c/gdquest[/color]\n\nCredits:\n- [url=https://play.google.com/store/apps/details?id=fr.guaranapps.games.get_teddy]Get Teddy[/url] by GuaranApps\n- [url=http://www.rpginabox.com/]RPG in a Box[/url] by Justin\n\nThis presentation is an Open Source Godot project!\nFind it on [url=https://github.com/GDquest/godot-slides]GitHub[/url]. It's available in multiple languages.\",\"Réseaux sociaux:[color=#26BFE3] @NathanGDquest[/color]\n[color=#F2971A] youtube.com/c/gdquest[/color]\n\nCrédits:\n- [url=https://play.google.com/store/apps/detailsid=fr.guaranapps.games.get_teddy?]Get Teddy[/url] par GuaranApps\n- [url=http://www.rpginabox.com/]RPG in a Box[/url] par Justin\n\nCette présentation est un projet Godot Libre!\nTéléchargez-la et contribuez-y sur [url=https://github.com/GDquest/godot-slides]GitHub[/url]. Elle est traduite dans plusieurs langues.\",\"ツイタ：[color=#26BFE3]@NathanGDquest[/color]\nYoutube：[color=#F2971A]youtube.com/c/gdquest[/color]\n\nCredits:\n- [url=https://play.google.com/store/apps/details?id=fr.guaranapps.games.get_teddy]Get Teddy[/url] by GuaranApps\n- [url=http://www.rpginabox.com/]RPG in a Box[/url] by Justin\n\nこの発表はオープンソースのGodotのプロジェクトです：[url=https://github.com/GDquest/godot-slides]GitHub[/url]でダウンロードできます. 色々な言語で利用可能です。\",\"SNS:\n[color=#26BFE3]@NathanGDquest[/color]\n[color=#F2971A]youtube.com/c/gdquest[/color]\n\nCréditos:\n- [url=https://play.google.com/store/apps/details?id=fr.guaranapps.games.get_teddy]Get Teddy[/url] por GuaranApps\n- [url=http://www.rpginabox.com/]RPG in a Box[/url] por Justin\n\n¡Esta presentación es un proyecto open-source hecho en Godot!\nEstá en [url=https://github.com/GDquest/godot-slides]GitHub[/url]. Disponible en varios idiomas.\",\"SNS:\n[color=#26BFE3]@NathanGDquest[/color]\n[color=#F2971A]youtube.com/c/gdquest[/color]\n\nCréditos:\n- [url=https://play.google.com/store/apps/details?id=fr.guaranapps.games.get_teddy]Get Teddy[/url] por GuaranApps\n- [url=http://www.rpginabox.com/]RPG in a Box[/url] por Justin\n\nEssa apresentação é um projeto livre e de código aberto feito e rodando no Godot!\nDisponível em [url=https://github.com/GDquest/godot-slides]GitHub[/url] em vários idiomas.\",\"SNS:\n[color=#26BFE3]@NathanGDquest[/color]\n[color=#F2971A]youtube.com/c/gdquest[/color]\n\nCredits:\n- [url=https://play.google.com/store/apps/details?id=fr.guaranapps.games.get_teddy]Get Teddy[/url] von GuaranApps\n- [url=http://www.rpginabox.com/]RPG in a Box[/url] von Justin\n\nDiese Päsentation ist ein Open Source Godot Projekt!\nEs befindet sich auf [url=https://github.com/GDquest/godot-3-presentation]GitHub[/url] und ist in mehreren Sprachen verfügbar.\",\"SNS:\n[color=#26BFE3]@NathanGDquest[/color]\n[color=#F2971A]youtube.com/c/gdquest[/color]\n\nCredits:\n- [url=https://play.google.com/store/apps/details?id=fr.guaranapps.games.get_teddy]Get Teddy[/url] di GuaranApps\n- [url=http://www.rpginabox.com/]RPG in a Box[/url] di Justin\n\nQuesta presentazione è un progetto Godot Open Source!\nLa puoi trovare su [url=https://github.com/Gdquest/godot-slides]GitHub[/url], disponibile in molti linguaggi.\",\"社交网络:\n[color=#26BFE3]@NathanGDquest[/color]\n[color=#F2971A]youtube.com/c/gdquest[/color]\n\n荣誉:\n- [url=https://play.google.com/store/apps/details?id=fr.guaranapps.games.get_teddy]Get Teddy[/url] 作者 GuaranApps\n- [url=http://www.rpginabox.com/]RPG in a Box[/url] 作者 Justin\n\n本演示文稿是一个开源的Godot项目!\n可以在[url=https://github.com/GDquest/godot-slides]GitHub[/url]上找到它. 并且提供了多个语言版本.\",\"SNS:\n[color=#26BFE3]@NathanGDquest[/color]\n[color=#F2971A]youtube.com/c/gdquest[/color]\n\nПодяки матеріали:\n- [url=https://play.google.com/store/apps/details?id=fr.guaranapps.games.get_teddy]Get Teddy[/url] від GuaranApps\n- [url=http://www.rpginabox.com/]RPG in a Box[/url] від Justin\n\nЦя презентація є проектом Godot із відритим кодом!\nЙого можна знайти на [url=https://github.com/GDquest/godot-slides]GitHub[/url]. Він доступний на багатьох мовах.\",\"SNS:\n[color=#26BFE3]@NathanGDquest[/color]\n[color=#F2971A]youtube.com/c/gdquest[/color]\n\nCredits:\n- GuaranApps에서 만든[url=https://play.google.com/store/apps/details?id=fr.guaranapps.games.get_teddy]Get Teddy[/url]\n- Justin이 만든 [url=http://www.rpginabox.com/]RPG in a Box[/url]\n\n이 프레젠테이션은 오픈 소스 Godot 프로젝트입니다!\n[url=https://github.com/GDquest/godot-slides]GitHub[/url] 에서 찾으실 수 있습니다. 다양한 언어로 이용하실 수 있습니다.\",\"SNS:\n[color=#26BFE3]@NathanGDquest[/color]\n[color=#F2971A]youtube.com/c/gdquest[/color]\n\nCredits:\n- [url=https://play.google.com/store/apps/details?id=fr.guaranapps.games.get_teddy]Get Teddy[/url] od GuaranApps\n- [url=http://www.rpginabox.com/]RPG in a Box[/url] autor Justin\n\nTáto prezentácia je Open Source Godot projekt!\nNájdete ju na [url=https://github.com/GDquest/godot-slides]GitHub[/url]. Dostupná vo viacerých jazykoch\",\"Media społecznościowe:\n[color=#26BFE3]@NathanGDquest[/color]\n[color=#F2971A]youtube.com/c/gdquest[/color]\n\nŹródła:\n- [url=https://play.google.com/store/apps/details?id=fr.guaranapps.games.get_teddy]Get Teddy[/url] od GuaranApps\n- [url=http://www.rpginabox.com/]RPG in a Box[/url], autor: Justin\n\nTa prezentacja jest otwartoźródłowym projektem Godot!\nLink: [url=https://github.com/GDquest/godot-slides]GitHub[/url]. Jest dostępna w wielu językach.\",\"Situs jejaring sosial:\n[color=#26BFE3]@NathanGDquest[/color]\n[color=#F2971A]youtube.com/c/gdquest[/color]\n\nPenghargaan:\n- [url=https://play.google.com/store/apps/details?id=fr.guaranapps.games.get_teddy]Get Teddy[/url] oleh GuaranApps\n- [url=http://www.rpginabox.com/]RPG in a Box[/url] oleh Justin\n\nPresentasi ini adalah proyek sumber terbuka Godot!\nTemukan di [url=https://github.com/GDquest/godot-slides]GitHub[/url]. Tersedia dalam beberapa bahasa.\"\nBuildUponGodot_Column_Header_title,Extend the editor with ease,,プラグインを簡単に開発できます,Extiende el editor con facilidad,,,,,,,,,\nBuildUponGodot_Column_Header_subtitle,,,,,,,,,,,,,\nBuildUponGodot_Column_Body_Row_TextBox_text,\"The Godot editor is a Godot game! It relies on the same tools you'll use to make your game.\n\nThanks to that, you can [color=#02E180]code add-ons and games the same way[/color].\n\nThe [color=#26BFE3]open source Assets Library[/color] lets you download add-ons from GitHub into your projects.\",,\"Godotのエヂターは[color=#02E180]Godotゲーム[/color]なのでエンジンのAPIで開発されました。\n\nそれで自分のゲームと開発環境のパラグインは両方[color=#02E180]同じツール[/color]で作られます。\n\n[color=#26BFE3]オーブンソースアセットライブラリー[/color]で無料でパラグインをGitHubからダウンロードできます。\",\"El editor de Godot es un juego de Godot! Se basa en las mismas herramientas que usarás para crear tu juego.\n\nGracias a eso, puedes [color=#02E180]programar add-ons y juegos de la misma manera[/color].\n\nLa [color=#26BFE3]open source Assets Library[/color] te deja descargar add-ons desde GitHub a tus proyectos.\",,,,,,,,,\nBuildUponGodot_Column_Footer_text,Projects: RPG in a Box by Justin Arnold and Procedural Mesh Generator by Bastiaan Olij,,プロジェクト： ジャスティン・アーノルドのRPG in a Box、 バスティアン・オリェのProcedural Mesh Generator,Proyectos: RPG in a Box de Justin Arnold y Procedural Mesh Generator de Bastiaan Olij,,,,,,,,,\nThank_you_tokyo_indies_Column_Header_title,Thank you!,,ありがとうございました,¡Gracias!,,,,,,,,,\nThank_you_tokyo_indies_Column_Header_subtitle,,,,,,,,,,,,,\nThank_you_tokyo_indies_Column_Body_Row_TextBox_text,\"All our game demos and tools are Free and Open Source!\nFind them on [url=https://github.com/GDquest/godot-3-presentation]GDquest's GitHub page[/url].\n\nGdquest’s mission is to bring game developers together to become better creators.\n\nYou can find us on:\n\nTwitter: [color=#26BFE3]@NathanGDquest[/color]\nYouTube: [color=#F2971A]youtube.com/c/gdquest[/color]\",,\"GDquestのゲームプロジェクトは全てオプンソース。\nGDquestの[url=https://github.com/GDquest/godot-3-presentation]GitHubページ[/url]でダウンロードできます。\n\nSNS:\n\nTwitter: [color=#26BFE3]@NathanGDquest[/color]\nYouTube: [color=#F2971A]youtube.com/c/gdquest[/color]\",\"¡Todas nuestras demos de juegos y herramientas son gratis y libres!\nEncuéntralas en [url=https://github.com/GDquest/godot-3-presentation]el GitHub de GDquest[/url].\n\nLa misión de Gdquest es reunir a los desarrolladores de juegos para que se conviertan en mejores creadores.\n\nNos puedes encontrar en:\n\nTwitter: [color=#26BFE3]@NathanGDquest[/color]\nYouTube: [color=#F2971A]youtube.com/c/gdquest[/color]\",,,,,,,,,\nThank_you_tokyo_indies_Column_Footer_text,\"If you have any questions, please get in touch anytime!\",,質問があればいつでも連絡してください！,\"¡Si tiene alguna pregunta, por favor ponte en contacto en cualquier momento!\",,,,,,,,,\nIntro_GDquest_Column_Header_title,Game Design Quest,,,Game Design Quest,,,,,,,,,\nIntro_GDquest_Column_Body_Row_TextBox_text,\"GDquest's mission is to [color=#26BFE3]bring people together[/color] to become better game developers.\n\nWe do that creating Free and Open Source [color=#E3266F]game demos[/color], [color=#26BFE3]tutorials[/color], and [color=#F2971A]tools[/color] to help you learn professional game creation techniques.\",,\"GDquestのミッションは、ゲームを作りたい方達と[color=#26BFE3]一緒になってすばらしいゲームデザイナーになること[/color]です。\n\n世界のゲームプランナー達がプロの方法を勉強できるためにフリーソフトを使ってオープンソース[color=#E3266F]ゲームデモ[/color]を開発したり[color=#26BFE3]チュートリアルを作ったり[/color]ゲーム開発者の[color=#F2971A]道具[/color]をシェアしたりします\",\"La misión de GDquest es [color=#26BFE3]reunir a la gente[/color] para que se conviertan en mejores desarrolladores de videojuegos.\n\nHacemos eso creando [color=#E3266F]demos de juegos[/color] gratis y libres, [color=#26BFE3]tutoriales[/color], y [color=#F2971A]herramientas[/color] para ayudarte a aprender técnicas profesionales de creación de videojuegos.\",,,,,,,,,\nIntro_GDquest_Column_Footer_text,\"It's become my full-time job, and I can even pay people to work together with!\",,自分の仕事になってしまったが毎日オープンソースの分野に働えてフリランサを雇えますよ！,\"¡Se ha convertido en mi trabajo a jornada completa, e incluso puedo pagar a gente con la que trabajar!\",,,,,,,,,\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/PowerPitch.csv.import",
    "content": "[remap]\n\nimporter=\"csv_translation\"\ntype=\"Translation\"\n\n[deps]\n\nfiles=[ \"res://content/power_pitch/PowerPitch.en.translation\", \"res://content/power_pitch/PowerPitch.fr.translation\", \"res://content/power_pitch/PowerPitch.ja.translation\", \"res://content/power_pitch/PowerPitch.es.translation\", \"res://content/power_pitch/PowerPitch.pt_BR.translation\", \"res://content/power_pitch/PowerPitch.de.translation\", \"res://content/power_pitch/PowerPitch.it.translation\", \"res://content/power_pitch/PowerPitch.zh.translation\", \"res://content/power_pitch/PowerPitch.uk_UA.translation\", \"res://content/power_pitch/PowerPitch.ko.translation\", \"res://content/power_pitch/PowerPitch.sk.translation\", \"res://content/power_pitch/PowerPitch.pl.translation\", \"res://content/power_pitch/PowerPitch.id.translation\" ]\n\nsource_file=\"res://content/power_pitch/PowerPitch.csv\"\ndest_files=[ \"res://content/power_pitch/PowerPitch.en.translation\", \"res://content/power_pitch/PowerPitch.fr.translation\", \"res://content/power_pitch/PowerPitch.ja.translation\", \"res://content/power_pitch/PowerPitch.es.translation\", \"res://content/power_pitch/PowerPitch.pt_BR.translation\", \"res://content/power_pitch/PowerPitch.de.translation\", \"res://content/power_pitch/PowerPitch.it.translation\", \"res://content/power_pitch/PowerPitch.zh.translation\", \"res://content/power_pitch/PowerPitch.uk_UA.translation\", \"res://content/power_pitch/PowerPitch.ko.translation\", \"res://content/power_pitch/PowerPitch.sk.translation\", \"res://content/power_pitch/PowerPitch.pl.translation\", \"res://content/power_pitch/PowerPitch.id.translation\" ]\n\n[params]\n\ncompress=true\ndelimiter=0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/PowerPitch.tscn",
    "content": "[gd_scene load_steps=15 format=2]\n\n[ext_resource path=\"res://content/power_pitch/slides/Godot_is_in_great_shape.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://content/power_pitch/slides/Learn_from_simple_free_demos.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://content/power_pitch/slides/A_free_modern_engine.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://content/power_pitch/slides/Professionals_use_godot.tscn\" type=\"PackedScene\" id=4]\n[ext_resource path=\"res://content/power_pitch/slides/Title.tscn\" type=\"PackedScene\" id=5]\n[ext_resource path=\"res://src/presentation/Presentation.tscn\" type=\"PackedScene\" id=6]\n[ext_resource path=\"res://content/power_pitch/slides/CreateAnything.tscn\" type=\"PackedScene\" id=7]\n[ext_resource path=\"res://content/power_pitch/slides/CodeFreely.tscn\" type=\"PackedScene\" id=8]\n[ext_resource path=\"res://content/power_pitch/slides/State_of_the_art_3d_engine.tscn\" type=\"PackedScene\" id=9]\n[ext_resource path=\"res://content/power_pitch/slides/All-in-one_package.tscn\" type=\"PackedScene\" id=10]\n[ext_resource path=\"res://content/power_pitch/slides/Thank_you.tscn\" type=\"PackedScene\" id=11]\n[ext_resource path=\"res://content/power_pitch/slides/How_to_get_started.tscn\" type=\"PackedScene\" id=12]\n[ext_resource path=\"res://content/power_pitch/slides/Made_with_godot.tscn\" type=\"PackedScene\" id=13]\n[ext_resource path=\"res://content/power_pitch/slides/Virtual_and_augmented_reality.tscn\" type=\"PackedScene\" id=14]\n\n[node name=\"PowerPitch\" instance=ExtResource( 6 )]\n\n[node name=\"Title\" parent=\"Slides\" index=\"0\" instance=ExtResource( 5 )]\n\n[node name=\"A_free_modern_engine\" parent=\"Slides\" index=\"1\" instance=ExtResource( 3 )]\nvisible = false\n\n[node name=\"State_of_the_art_3d_engine\" parent=\"Slides\" index=\"2\" instance=ExtResource( 9 )]\nvisible = false\n\n[node name=\"All_in_one_package\" parent=\"Slides\" index=\"3\" instance=ExtResource( 10 )]\nvisible = false\n\n[node name=\"CreateAnything\" parent=\"Slides\" index=\"4\" instance=ExtResource( 7 )]\nvisible = false\n\n[node name=\"CodeFreely\" parent=\"Slides\" index=\"5\" instance=ExtResource( 8 )]\nvisible = false\n\n[node name=\"Virtual_and_augmented_reality\" parent=\"Slides\" index=\"6\" instance=ExtResource( 14 )]\nvisible = false\n\n[node name=\"Professionals_use_godot\" parent=\"Slides\" index=\"7\" instance=ExtResource( 4 )]\n\n[node name=\"Made_with_godot\" parent=\"Slides\" index=\"8\" instance=ExtResource( 13 )]\nvisible = false\n\n[node name=\"Godot_is_in_great_shape\" parent=\"Slides\" index=\"9\" instance=ExtResource( 1 )]\nvisible = false\n\n[node name=\"Learn_from_simple_free_demos\" parent=\"Slides\" index=\"10\" instance=ExtResource( 2 )]\nvisible = false\n\n[node name=\"How_to_get_started\" parent=\"Slides\" index=\"11\" instance=ExtResource( 12 )]\nvisible = false\n\n[node name=\"Thank_you\" parent=\"Slides\" index=\"12\" instance=ExtResource( 11 )]\nvisible = false\n\n[node name=\"TouchControls\" parent=\".\" index=\"2\"]\nvisible = false\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/animation/anim-editor-01.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/anim-editor-01.png-f324b26239bbba025747cb255eff8e6f.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/animation/anim-editor-01.png\"\ndest_files=[ \"res://.import/anim-editor-01.png-f324b26239bbba025747cb255eff8e6f.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/animation/anim-editor-02.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/anim-editor-02.png-6dd9e82aee59b18bf4464bff20b3d6bb.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/animation/anim-editor-02.png\"\ndest_files=[ \"res://.import/anim-editor-02.png-6dd9e82aee59b18bf4464bff20b3d6bb.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/animation/anim-editor-03.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/anim-editor-03.png-26a353b60c6ca34098ce8ab2bd4e68ea.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/animation/anim-editor-03.png\"\ndest_files=[ \"res://.import/anim-editor-03.png-26a353b60c6ca34098ce8ab2bd4e68ea.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/animation/animation-editor-1.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/animation-editor-1.png-69cc77f75b62c6ae4838255ad49ce3a2.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/animation/animation-editor-1.png\"\ndest_files=[ \"res://.import/animation-editor-1.png-69cc77f75b62c6ae4838255ad49ce3a2.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/animation/animation-editor-3.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/animation-editor-3.png-5e2b0812f086d4189ed260c339bd91ce.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/animation/animation-editor-3.png\"\ndest_files=[ \"res://.import/animation-editor-3.png-5e2b0812f086d4189ed260c339bd91ce.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/animation/animation-state-machine-2.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/animation-state-machine-2.png-baf70ff4067eaba0e5bf32462ebb8be4.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/animation/animation-state-machine-2.png\"\ndest_files=[ \"res://.import/animation-state-machine-2.png-baf70ff4067eaba0e5bf32462ebb8be4.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/car-3d.jpg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/car-3d.jpg-3be9f19ad924f19b54ac70feb60ff5f2.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/car-3d.jpg\"\ndest_files=[ \"res://.import/car-3d.jpg-3be9f19ad924f19b54ac70feb60ff5f2.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/code-gdscript-visualscript.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/code-gdscript-visualscript.png-0184f2a18b466ab6eb7deb34823a55d2.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/code-gdscript-visualscript.png\"\ndest_files=[ \"res://.import/code-gdscript-visualscript.png-0184f2a18b466ab6eb7deb34823a55d2.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/conversation-editor.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/conversation-editor.png-a5816911c1d72d69843943fc0b200b77.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/conversation-editor.png\"\ndest_files=[ \"res://.import/conversation-editor.png-a5816911c1d72d69843943fc0b200b77.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/create-anything/Ex-Zodiac.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/Ex-Zodiac.png-ca98e6f1a19d9eadd302422ca1bb1f0e.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/create-anything/Ex-Zodiac.png\"\ndest_files=[ \"res://.import/Ex-Zodiac.png-ca98e6f1a19d9eadd302422ca1bb1f0e.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/create-anything/procedural-mesh-tool-bastiaan-.jpg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/procedural-mesh-tool-bastiaan-.jpg-565f1081001db008186bfb4144d216cf.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/create-anything/procedural-mesh-tool-bastiaan-.jpg\"\ndest_files=[ \"res://.import/procedural-mesh-tool-bastiaan-.jpg-565f1081001db008186bfb4144d216cf.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/create-anything/procedural-mesh-tool-bastiaan-2-1280x720.jpg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/procedural-mesh-tool-bastiaan-2-1280x720.jpg-83279391d20f78a3ece2d7d7f6282ee4.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/create-anything/procedural-mesh-tool-bastiaan-2-1280x720.jpg\"\ndest_files=[ \"res://.import/procedural-mesh-tool-bastiaan-2-1280x720.jpg-83279391d20f78a3ece2d7d7f6282ee4.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/create-anything/rpg-in-a-box-02-small.jpg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/rpg-in-a-box-02-small.jpg-b6cc59665479d040fd259e6cee1f6e5e.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/create-anything/rpg-in-a-box-02-small.jpg\"\ndest_files=[ \"res://.import/rpg-in-a-box-02-small.jpg-b6cc59665479d040fd259e6cee1f6e5e.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/csharp.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/csharp.png-3a7febcc136094ce064fc4aac6471ac5.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/csharp.png\"\ndest_files=[ \"res://.import/csharp.png-3a7febcc136094ce064fc4aac6471ac5.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/daisy-dangerous-game-securas-1280x720.jpg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/daisy-dangerous-game-securas-1280x720.jpg-228ed46eb6ee1b8dd8a892d2da860e85.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/daisy-dangerous-game-securas-1280x720.jpg\"\ndest_files=[ \"res://.import/daisy-dangerous-game-securas-1280x720.jpg-228ed46eb6ee1b8dd8a892d2da860e85.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/docs-community-websites.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/docs-community-websites.png-89b79ed6fea330442f46d6e311c014aa.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/docs-community-websites.png\"\ndest_files=[ \"res://.import/docs-community-websites.png-89b79ed6fea330442f46d6e311c014aa.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/docs-integrated-help.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/docs-integrated-help.png-ff8a1d66002ce0153ff520c1dfa36859.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/docs-integrated-help.png\"\ndest_files=[ \"res://.import/docs-integrated-help.png-ff8a1d66002ce0153ff520c1dfa36859.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/gdquest-business-card.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/gdquest-business-card.png-9916bfa6e7ebdf8f67cfcf2102cdde21.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/gdquest-business-card.png\"\ndest_files=[ \"res://.import/gdquest-business-card.png-9916bfa6e7ebdf8f67cfcf2102cdde21.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/gdscript-editor-3.1.jpg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/gdscript-editor-3.1.jpg-ed3a3b71868da54bb140d5c399a4d25d.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/gdscript-editor-3.1.jpg\"\ndest_files=[ \"res://.import/gdscript-editor-3.1.jpg-ed3a3b71868da54bb140d5c399a4d25d.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/godot-3.1-editor-2d-720p.jpg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/godot-3.1-editor-2d-720p.jpg-95abfb489060c0006506779f8e3a5206.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/godot-3.1-editor-2d-720p.jpg\"\ndest_files=[ \"res://.import/godot-3.1-editor-2d-720p.jpg-95abfb489060c0006506779f8e3a5206.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/godot-3.1-editor-tps-demo-720p.jpg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/godot-3.1-editor-tps-demo-720p.jpg-89e6d471e280a558dce30dd38a587367.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/godot-3.1-editor-tps-demo-720p.jpg\"\ndest_files=[ \"res://.import/godot-3.1-editor-tps-demo-720p.jpg-89e6d471e280a558dce30dd38a587367.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/godot-editor.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/godot-editor.png-d59f876a32a019479c907cd6c456c1f4.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/godot-editor.png\"\ndest_files=[ \"res://.import/godot-editor.png-d59f876a32a019479c907cd6c456c1f4.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/godot-pres-intro.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/godot-pres-intro.png-c6a49997b2d174063c90c4c316d69d9b.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/godot-pres-intro.png\"\ndest_files=[ \"res://.import/godot-pres-intro.png-c6a49997b2d174063c90c4c316d69d9b.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/made-with-godot.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/made-with-godot.png-3ff5e168031d8dc88817dfe3e3fa5610.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/made-with-godot.png\"\ndest_files=[ \"res://.import/made-with-godot.png-3ff5e168031d8dc88817dfe3e3fa5610.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/mesh2d_bones.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/mesh2d_bones.png-78124bee4dfa413fe933c169cf67f087.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/mesh2d_bones.png\"\ndest_files=[ \"res://.import/mesh2d_bones.png-78124bee4dfa413fe933c169cf67f087.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/modern-engine.jpg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/modern-engine.jpg-c40bf1c043f94f0a305441c24aee96a5.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/modern-engine.jpg\"\ndest_files=[ \"res://.import/modern-engine.jpg-c40bf1c043f94f0a305441c24aee96a5.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/new_3d_renderer-1264x720.jpg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/new_3d_renderer-1264x720.jpg-aa0aea50ee32ed80f04f081393d17e13.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/new_3d_renderer-1264x720.jpg\"\ndest_files=[ \"res://.import/new_3d_renderer-1264x720.jpg-aa0aea50ee32ed80f04f081393d17e13.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/new_material_params.jpg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/new_material_params.jpg-1a76ab2db9023191be460773ca7f5c13.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/new_material_params.jpg\"\ndest_files=[ \"res://.import/new_material_params.jpg-1a76ab2db9023191be460773ca7f5c13.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/repo-health.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/repo-health.png-fad49303eda23c70659ec97dc0a97773.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/repo-health.png\"\ndest_files=[ \"res://.import/repo-health.png-fad49303eda23c70659ec97dc0a97773.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/robi-open-tps.jpg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/robi-open-tps.jpg-996f253226a5fdcd0bb7bb931c8ba4d0.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/robi-open-tps.jpg\"\ndest_files=[ \"res://.import/robi-open-tps.jpg-996f253226a5fdcd0bb7bb931c8ba4d0.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/teddy-game.jpg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/teddy-game.jpg-62264f0ee0bcfcc46c4a95aaa9137524.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/teddy-game.jpg\"\ndest_files=[ \"res://.import/teddy-game.jpg-62264f0ee0bcfcc46c4a95aaa9137524.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/user-interface/ui-result.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/ui-result.png-94c4aa7564ec296397cce7b3b8197e89.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/user-interface/ui-result.png\"\ndest_files=[ \"res://.import/ui-result.png-94c4aa7564ec296397cce7b3b8197e89.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/img/user-interface/ui-theme-editor.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/ui-theme-editor.png-bb428ab959522e7873ea542a744be5a6.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/power_pitch/img/user-interface/ui-theme-editor.png\"\ndest_files=[ \"res://.import/ui-theme-editor.png-bb428ab959522e7873ea542a744be5a6.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/slides/A_free_modern_engine.tscn",
    "content": "[gd_scene load_steps=12 format=2]\n\n[ext_resource path=\"res://src/slide/Slide.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://src/slide/widgets/Column.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://src/slide/widgets/Header.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://src/slide/widgets/Body.tscn\" type=\"PackedScene\" id=4]\n[ext_resource path=\"res://src/slide/layout/Row.tscn\" type=\"PackedScene\" id=5]\n[ext_resource path=\"res://src/slide/widgets/TextBox.tscn\" type=\"PackedScene\" id=6]\n[ext_resource path=\"res://src/slide/widgets/PictureSlideshow.tscn\" type=\"PackedScene\" id=7]\n[ext_resource path=\"res://content/power_pitch/img/godot-3.1-editor-2d-720p.jpg\" type=\"Texture\" id=8]\n[ext_resource path=\"res://src/slide/widgets/Picture.tscn\" type=\"PackedScene\" id=9]\n[ext_resource path=\"res://content/power_pitch/img/godot-3.1-editor-tps-demo-720p.jpg\" type=\"Texture\" id=10]\n[ext_resource path=\"res://src/slide/widgets/Footer.tscn\" type=\"PackedScene\" id=11]\n\n\n[node name=\"A_free_modern_engine\" index=\"0\" instance=ExtResource( 1 )]\n\n[node name=\"Column\" parent=\".\" index=\"1\" instance=ExtResource( 2 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Header\" parent=\"Column\" index=\"0\" instance=ExtResource( 3 )]\nanchor_right = 0.0\nmargin_right = 1921.0\nmargin_bottom = 210.0\ntitle = \"\"\n\n[node name=\"Body\" parent=\"Column\" index=\"1\" instance=ExtResource( 4 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 210.0\nmargin_right = 1921.0\nmargin_bottom = 940.0\n\n[node name=\"Row\" parent=\"Column/Body\" index=\"0\" instance=ExtResource( 5 )]\n\n[node name=\"TextBox\" parent=\"Column/Body/Row\" index=\"0\" instance=ExtResource( 6 )]\nmargin_right = 639.0\nmargin_bottom = 730.0\n\n[node name=\"PictureSlideshow\" parent=\"Column/Body/Row\" index=\"1\" instance=ExtResource( 7 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_left = 643.0\nmargin_right = 1921.0\nmargin_bottom = 730.0\n\n[node name=\"godot_editor_2d\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"2\"]\nvisible = false\nanchor_right = 1.0\nanchor_bottom = 1.0\ntexture = ExtResource( 8 )\nexpand = true\nstretch_mode = 6\n\n[node name=\"godot_editor_3d\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"3\" instance=ExtResource( 9 )]\ntexture = ExtResource( 10 )\n\n[node name=\"Footer\" parent=\"Column\" index=\"2\" instance=ExtResource( 11 )]\nvisible = true\nanchor_top = 0.0\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 940.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\ntext = \"*And PS4, XboxOne, Switch, PS Vita...\"\n\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/slides/All-in-one_package.tscn",
    "content": "[gd_scene load_steps=19 format=2]\n\n[ext_resource path=\"res://src/slide/Slide.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://src/slide/widgets/Column.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://src/slide/widgets/Header.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://src/slide/widgets/Body.tscn\" type=\"PackedScene\" id=4]\n[ext_resource path=\"res://src/slide/layout/Row.tscn\" type=\"PackedScene\" id=5]\n[ext_resource path=\"res://src/slide/widgets/TextBox.tscn\" type=\"PackedScene\" id=6]\n[ext_resource path=\"res://src/slide/widgets/PictureSlideshow.tscn\" type=\"PackedScene\" id=7]\n[ext_resource path=\"res://content/power_pitch/img/gdscript-editor-3.1.jpg\" type=\"Texture\" id=8]\n[ext_resource path=\"res://content/power_pitch/img/animation/animation-editor-3.png\" type=\"Texture\" id=9]\n[ext_resource path=\"res://content/power_pitch/img/animation/animation-state-machine-2.png\" type=\"Texture\" id=10]\n[ext_resource path=\"res://content/power_pitch/img/animation/anim-editor-03.png\" type=\"Texture\" id=11]\n[ext_resource path=\"res://src/slide/widgets/Picture.tscn\" type=\"PackedScene\" id=12]\n[ext_resource path=\"res://content/power_pitch/img/mesh2d_bones.png\" type=\"Texture\" id=13]\n[ext_resource path=\"res://content/tokyo_indies_pitch/img/crackshot-tileset-editor.png\" type=\"Texture\" id=14]\n[ext_resource path=\"res://content/tokyo_indies_pitch/img/tilemap-editor-crackshot-securas.png\" type=\"Texture\" id=15]\n[ext_resource path=\"res://content/power_pitch/img/user-interface/ui-theme-editor.png\" type=\"Texture\" id=16]\n[ext_resource path=\"res://content/power_pitch/img/user-interface/ui-result.png\" type=\"Texture\" id=17]\n[ext_resource path=\"res://src/slide/widgets/Footer.tscn\" type=\"PackedScene\" id=18]\n\n\n[node name=\"AllInOnePackage\" index=\"0\" instance=ExtResource( 1 )]\n\n[node name=\"Column\" parent=\".\" index=\"1\" instance=ExtResource( 2 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Header\" parent=\"Column\" index=\"0\" instance=ExtResource( 3 )]\nanchor_right = 0.0\nmargin_right = 1921.0\nmargin_bottom = 210.0\ntitle = \"\"\n\n[node name=\"Body\" parent=\"Column\" index=\"1\" instance=ExtResource( 4 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 210.0\nmargin_right = 1921.0\nmargin_bottom = 940.0\n\n[node name=\"Row\" parent=\"Column/Body\" index=\"0\" instance=ExtResource( 5 )]\n\n[node name=\"TextBox\" parent=\"Column/Body/Row\" index=\"0\" instance=ExtResource( 6 )]\nmargin_right = 639.0\nmargin_bottom = 730.0\n\n[node name=\"PictureSlideshow\" parent=\"Column/Body/Row\" index=\"1\" instance=ExtResource( 7 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_left = 643.0\nmargin_right = 1921.0\nmargin_bottom = 730.0\n\n[node name=\"gdscript-editor-3.1\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"2\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\ntexture = ExtResource( 8 )\nexpand = true\nstretch_mode = 6\n\n[node name=\"animation-editor-1\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"3\"]\nvisible = false\nanchor_right = 1.0\nanchor_bottom = 1.0\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\ntexture = ExtResource( 9 )\nexpand = true\nstretch_mode = 6\n\n[node name=\"Column\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"4\" instance=ExtResource( 2 )]\neditor/display_folded = true\nvisible = false\n\n[node name=\"animation-state-machine-2\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow/Column\" index=\"0\"]\nmargin_right = 1278.0\nmargin_bottom = 365.0\nsize_flags_vertical = 3\ntexture = ExtResource( 10 )\nexpand = true\nstretch_mode = 7\n\n[node name=\"anim-editor-03\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow/Column\" index=\"1\"]\nmargin_top = 365.0\nmargin_right = 1278.0\nmargin_bottom = 730.0\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\ntexture = ExtResource( 11 )\nexpand = true\nstretch_mode = 7\n\n[node name=\"skinning-editor\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"5\" instance=ExtResource( 12 )]\ntexture = ExtResource( 13 )\n\n[node name=\"crackshot-tileset-editor\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"6\"]\nvisible = false\nanchor_right = 1.0\nanchor_bottom = 1.0\ntexture = ExtResource( 14 )\nexpand = true\nstretch_mode = 6\n\n[node name=\"tilemap-editor-crackshot-securas\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"7\"]\nvisible = false\nanchor_right = 1.0\nanchor_bottom = 1.0\ntexture = ExtResource( 15 )\nexpand = true\nstretch_mode = 6\n\n[node name=\"ui-theme-editor\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"8\"]\nvisible = false\nanchor_right = 1.0\nanchor_bottom = 1.0\ntexture = ExtResource( 16 )\nexpand = true\nstretch_mode = 6\n\n[node name=\"ui-result\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"9\"]\nvisible = false\nanchor_right = 1.0\nanchor_bottom = 1.0\ntexture = ExtResource( 17 )\nexpand = true\nstretch_mode = 6\n\n[node name=\"Footer\" parent=\"Column\" index=\"2\" instance=ExtResource( 18 )]\nvisible = true\nanchor_top = 0.0\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 940.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/slides/CodeFreely.tscn",
    "content": "[gd_scene load_steps=11 format=2]\n\n[ext_resource path=\"res://src/slide/Slide.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://src/slide/widgets/Header.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://src/slide/widgets/Body.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://src/slide/layout/Row.tscn\" type=\"PackedScene\" id=4]\n[ext_resource path=\"res://src/slide/widgets/TextBox.tscn\" type=\"PackedScene\" id=5]\n[ext_resource path=\"res://src/slide/widgets/PictureSlideshow.tscn\" type=\"PackedScene\" id=6]\n[ext_resource path=\"res://content/power_pitch/img/code-gdscript-visualscript.png\" type=\"Texture\" id=7]\n[ext_resource path=\"res://content/power_pitch/img/gdscript-editor-3.1.jpg\" type=\"Texture\" id=8]\n[ext_resource path=\"res://content/power_pitch/img/csharp.png\" type=\"Texture\" id=9]\n[ext_resource path=\"res://src/slide/widgets/Footer.tscn\" type=\"PackedScene\" id=10]\n\n\n[node name=\"CodeFreely\" index=\"0\" instance=ExtResource( 1 )]\n\n[node name=\"Header\" parent=\".\" index=\"1\" instance=ExtResource( 2 )]\nanchor_right = 0.0\nmargin_right = 1921.0\nmargin_bottom = 210.0\ntitle = \"Code freely\"\n\n[node name=\"Body\" parent=\".\" index=\"2\" instance=ExtResource( 3 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 210.0\nmargin_right = 1921.0\nmargin_bottom = 940.0\n\n[node name=\"Row\" parent=\"Body\" index=\"0\" instance=ExtResource( 4 )]\n\n[node name=\"TextBox\" parent=\"Body/Row\" index=\"0\" instance=ExtResource( 5 )]\nmargin_right = 639.0\nmargin_bottom = 730.0\ncustom_constants/margin_right = 20\ntext = \"Godot lets you use many programming languages:\n\n[color=#02E180]GDScript[/color] Python-like scripting language, designed for gameplay developers\n[color=#F2971A]C# 7.0[/color] support using Mono\nFull [color=#E3266F]C[/color] and [color=#E3266F]C++[/color] support without having to recompile the engine\n[color=#26BFE3]Visual scripting[/color] using a graph of blocks\"\n\n[node name=\"PictureSlideshow\" parent=\"Body/Row\" index=\"1\" instance=ExtResource( 6 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_left = 643.0\nmargin_right = 1921.0\nmargin_bottom = 730.0\n\n[node name=\"code-gdscript-visualscript\" type=\"TextureRect\" parent=\"Body/Row/PictureSlideshow\" index=\"2\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\ntexture = ExtResource( 7 )\nexpand = true\nstretch_mode = 6\n\n[node name=\"gdscript-editor-3.1\" type=\"TextureRect\" parent=\"Body/Row/PictureSlideshow\" index=\"3\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\nsize_flags_horizontal = 11\nsize_flags_vertical = 11\ntexture = ExtResource( 8 )\nexpand = true\nstretch_mode = 6\n\n[node name=\"csharp\" type=\"TextureRect\" parent=\"Body/Row/PictureSlideshow\" index=\"4\"]\nvisible = false\nanchor_right = 1.0\nanchor_bottom = 1.0\ntexture = ExtResource( 9 )\nexpand = true\nstretch_mode = 6\n\n[node name=\"Footer\" parent=\".\" index=\"3\" instance=ExtResource( 10 )]\nvisible = true\nanchor_top = 0.0\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 940.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\ntext = \"Community-supported languages: Python, Nim, D, Rust...\"\n\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/slides/CreateAnything.tscn",
    "content": "[gd_scene load_steps=12 format=2]\n\n[ext_resource path=\"res://src/slide/Slide.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://src/slide/widgets/Column.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://src/slide/widgets/Header.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://src/slide/widgets/Body.tscn\" type=\"PackedScene\" id=4]\n[ext_resource path=\"res://src/slide/layout/Row.tscn\" type=\"PackedScene\" id=5]\n[ext_resource path=\"res://src/slide/widgets/TextBox.tscn\" type=\"PackedScene\" id=6]\n[ext_resource path=\"res://src/slide/widgets/PictureSlideshow.tscn\" type=\"PackedScene\" id=7]\n[ext_resource path=\"res://content/power_pitch/img/create-anything/Ex-Zodiac.png\" type=\"Texture\" id=8]\n[ext_resource path=\"res://content/power_pitch/img/create-anything/rpg-in-a-box-02-small.jpg\" type=\"Texture\" id=9]\n[ext_resource path=\"res://content/power_pitch/img/create-anything/procedural-mesh-tool-bastiaan-2-1280x720.jpg\" type=\"Texture\" id=10]\n[ext_resource path=\"res://src/slide/widgets/Footer.tscn\" type=\"PackedScene\" id=11]\n\n\n[node name=\"CreateAnything\" index=\"0\" instance=ExtResource( 1 )]\n\n[node name=\"Column\" parent=\".\" index=\"1\" instance=ExtResource( 2 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Header\" parent=\"Column\" index=\"0\" instance=ExtResource( 3 )]\nanchor_right = 0.0\nmargin_right = 1921.0\nmargin_bottom = 210.0\ntitle = \"\"\n\n[node name=\"Body\" parent=\"Column\" index=\"1\" instance=ExtResource( 4 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 210.0\nmargin_right = 1921.0\nmargin_bottom = 940.0\n\n[node name=\"Row\" parent=\"Column/Body\" index=\"0\" instance=ExtResource( 5 )]\n\n[node name=\"TextBox\" parent=\"Column/Body/Row\" index=\"0\" instance=ExtResource( 6 )]\nmargin_right = 639.0\nmargin_bottom = 730.0\n\n[node name=\"PictureSlideshow\" parent=\"Column/Body/Row\" index=\"1\" instance=ExtResource( 7 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_left = 643.0\nmargin_right = 1921.0\nmargin_bottom = 730.0\n\n[node name=\"Ex-Zodiac\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"2\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\ntexture = ExtResource( 8 )\nexpand = true\nstretch_mode = 6\n\n[node name=\"rpg-in-a-box-02-small\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"3\"]\nvisible = false\nanchor_right = 1.0\nanchor_bottom = 1.0\ntexture = ExtResource( 9 )\nexpand = true\nstretch_mode = 6\n\n[node name=\"procedural-mesh-tool-bastiaan-\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"4\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\ntexture = ExtResource( 10 )\nexpand = true\nstretch_mode = 6\n\n[node name=\"Footer\" parent=\"Column\" index=\"2\" instance=ExtResource( 11 )]\nvisible = true\nanchor_top = 0.0\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 940.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/slides/Godot_is_in_great_shape.tscn",
    "content": "[gd_scene load_steps=10 format=2]\n\n[ext_resource path=\"res://src/slide/Slide.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://src/slide/widgets/Column.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://src/slide/widgets/Header.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://src/slide/widgets/Body.tscn\" type=\"PackedScene\" id=4]\n[ext_resource path=\"res://src/slide/layout/Row.tscn\" type=\"PackedScene\" id=5]\n[ext_resource path=\"res://src/slide/widgets/TextBox.tscn\" type=\"PackedScene\" id=6]\n[ext_resource path=\"res://src/slide/widgets/Picture.tscn\" type=\"PackedScene\" id=7]\n[ext_resource path=\"res://content/power_pitch/img/repo-health.png\" type=\"Texture\" id=8]\n[ext_resource path=\"res://src/slide/widgets/Footer.tscn\" type=\"PackedScene\" id=9]\n\n\n[node name=\"Godot_is_in_great_shape\" index=\"0\" instance=ExtResource( 1 )]\n\n[node name=\"Column\" parent=\".\" index=\"1\" instance=ExtResource( 2 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Header2\" parent=\"Column\" index=\"0\" instance=ExtResource( 3 )]\nanchor_right = 0.0\nmargin_right = 1921.0\nmargin_bottom = 210.0\ntitle = \"\"\n\n[node name=\"Body\" parent=\"Column\" index=\"1\" instance=ExtResource( 4 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 210.0\nmargin_right = 1921.0\nmargin_bottom = 940.0\n\n[node name=\"Row\" parent=\"Column/Body\" index=\"0\" instance=ExtResource( 5 )]\n\n[node name=\"TextBox2\" parent=\"Column/Body/Row\" index=\"0\" instance=ExtResource( 6 )]\nmargin_right = 639.0\nmargin_bottom = 730.0\n\n[node name=\"Picture\" parent=\"Column/Body/Row\" index=\"1\" instance=ExtResource( 7 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_left = 643.0\nmargin_right = 1921.0\nmargin_bottom = 730.0\ntexture = ExtResource( 8 )\n\n[node name=\"Footer2\" parent=\"Column\" index=\"2\" instance=ExtResource( 9 )]\nvisible = true\nanchor_top = 0.0\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 940.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/slides/How_to_get_started.tscn",
    "content": "[gd_scene load_steps=10 format=2]\n\n[ext_resource path=\"res://src/slide/Slide.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://src/slide/widgets/Header.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://src/slide/widgets/Body.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://src/slide/layout/Row.tscn\" type=\"PackedScene\" id=4]\n[ext_resource path=\"res://src/slide/widgets/TextBox.tscn\" type=\"PackedScene\" id=5]\n[ext_resource path=\"res://src/slide/widgets/PictureSlideshow.tscn\" type=\"PackedScene\" id=6]\n[ext_resource path=\"res://content/power_pitch/img/docs-community-websites.png\" type=\"Texture\" id=7]\n[ext_resource path=\"res://content/power_pitch/img/docs-integrated-help.png\" type=\"Texture\" id=8]\n[ext_resource path=\"res://src/slide/widgets/Footer.tscn\" type=\"PackedScene\" id=9]\n\n\n[node name=\"How_to_get_started\" index=\"0\" instance=ExtResource( 1 )]\n\n[node name=\"Header\" parent=\".\" index=\"1\" instance=ExtResource( 2 )]\nanchor_right = 0.0\nmargin_right = 1921.0\nmargin_bottom = 210.0\ntitle = \"How to get started\"\n\n[node name=\"Body\" parent=\".\" index=\"2\" instance=ExtResource( 3 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 210.0\nmargin_right = 1921.0\nmargin_bottom = 940.0\n\n[node name=\"Row\" parent=\"Body\" index=\"0\" instance=ExtResource( 4 )]\n\n[node name=\"TextBox\" parent=\"Body/Row\" index=\"0\" instance=ExtResource( 5 )]\nmargin_right = 871.0\nmargin_bottom = 730.0\ntext = \"The [color=#26BFE3]community[/color] is [b]very[/b] active. Social networks, forum, IRC, Discord...\nThere's a [color=#26BFE3]Questions/Answers[/color] website\nYou'll find plenty of official [color=#02E180]tutorials[/color] in the [color=#02E180]online manual[/color]\nThere's [color=#E3266F]built-in code reference[/color] inside the game editor\nUse the [color=#F2971A]open source demos[/color]\"\n\n[node name=\"PictureSlideshow\" parent=\"Body/Row\" index=\"1\" instance=ExtResource( 6 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_left = 875.0\nmargin_right = 1921.0\nmargin_bottom = 730.0\nsize_flags_stretch_ratio = 1.2\n\n[node name=\"docs-community-websites\" type=\"TextureRect\" parent=\"Body/Row/PictureSlideshow\" index=\"2\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\ntexture = ExtResource( 7 )\nexpand = true\nstretch_mode = 6\n\n[node name=\"docs-integrated-help\" type=\"TextureRect\" parent=\"Body/Row/PictureSlideshow\" index=\"3\"]\nvisible = false\nanchor_right = 1.0\nanchor_bottom = 1.0\ntexture = ExtResource( 8 )\nexpand = true\nstretch_mode = 6\n\n[node name=\"Footer\" parent=\".\" index=\"3\" instance=ExtResource( 9 )]\nanchor_top = 0.0\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 940.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\ntext = \"Most of the resources are in English though... a good way to practice?\"\n\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/slides/Learn_from_simple_free_demos.tscn",
    "content": "[gd_scene load_steps=7 format=2]\n\n[ext_resource path=\"res://src/slide/Slide.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://src/slide/widgets/Column.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://src/slide/widgets/Header.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://src/slide/widgets/Body.tscn\" type=\"PackedScene\" id=4]\n[ext_resource path=\"res://content/demos/attacks/AttackDummies.tscn\" type=\"PackedScene\" id=5]\n[ext_resource path=\"res://src/slide/widgets/Footer.tscn\" type=\"PackedScene\" id=6]\n\n\n[node name=\"Learn_from_simple_free_demos\" index=\"0\" instance=ExtResource( 1 )]\n\n[node name=\"Column\" parent=\".\" index=\"1\" instance=ExtResource( 2 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Header2\" parent=\"Column\" index=\"0\" instance=ExtResource( 3 )]\nanchor_right = 0.0\nmargin_right = 1921.0\nmargin_bottom = 210.0\ntitle = \"Learn from simple Free demos\"\n\n[node name=\"Body\" parent=\"Column\" index=\"1\" instance=ExtResource( 4 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 210.0\nmargin_right = 1921.0\nmargin_bottom = 940.0\n\n[node name=\"AttackDummies\" parent=\"Column/Body\" index=\"0\" instance=ExtResource( 5 )]\n\n[node name=\"Footer2\" parent=\"Column\" index=\"2\" instance=ExtResource( 6 )]\nanchor_top = 0.0\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 940.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\ntext = \"Both official and 3rd-party\"\n\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/slides/Made_with_godot.tscn",
    "content": "[gd_scene load_steps=9 format=2]\n\n[ext_resource path=\"res://src/slide/Slide.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://src/slide/widgets/Column.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://src/slide/widgets/Header.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://src/slide/widgets/Body.tscn\" type=\"PackedScene\" id=4]\n[ext_resource path=\"res://src/slide/layout/Row.tscn\" type=\"PackedScene\" id=5]\n[ext_resource path=\"res://src/slide/widgets/Video.tscn\" type=\"PackedScene\" id=6]\n[ext_resource path=\"res://content/video/shooter-game.ogv\" type=\"VideoStream\" id=7]\n[ext_resource path=\"res://src/slide/widgets/Footer.tscn\" type=\"PackedScene\" id=8]\n\n\n[node name=\"Made_with_godot\" index=\"0\" instance=ExtResource( 1 )]\n\n[node name=\"Column\" parent=\".\" index=\"1\" instance=ExtResource( 2 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Header2\" parent=\"Column\" index=\"0\" instance=ExtResource( 3 )]\nanchor_right = 0.0\nmargin_right = 1921.0\nmargin_bottom = 210.0\ntitle = \"Made with Godot\"\n\n[node name=\"Body\" parent=\"Column\" index=\"1\" instance=ExtResource( 4 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 210.0\nmargin_right = 1921.0\nmargin_bottom = 940.0\n\n[node name=\"Row\" parent=\"Column/Body\" index=\"0\" instance=ExtResource( 5 )]\n\n[node name=\"Video\" parent=\"Column/Body/Row\" index=\"0\" instance=ExtResource( 6 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_left = 320.0\nmargin_top = 5.0\nmargin_right = 1600.0\nmargin_bottom = 725.0\nrect_min_size = Vector2( 1280, 720 )\nstream = ExtResource( 7 )\nautoplay = true\n\n[node name=\"Footer2\" parent=\"Column\" index=\"2\" instance=ExtResource( 8 )]\nvisible = true\nanchor_top = 0.0\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 940.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\ntext = \"Galactic Bulwark Strike, by Josep G. Camarasa\"\n\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/slides/Professionals_use_godot.tscn",
    "content": "[gd_scene load_steps=9 format=2]\n\n[ext_resource path=\"res://src/slide/Slide.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://src/slide/widgets/Column.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://src/slide/widgets/Header.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://src/slide/widgets/Body.tscn\" type=\"PackedScene\" id=4]\n[ext_resource path=\"res://src/slide/layout/Row.tscn\" type=\"PackedScene\" id=5]\n[ext_resource path=\"res://src/slide/widgets/TextBox.tscn\" type=\"PackedScene\" id=6]\n[ext_resource path=\"res://src/slide/widgets/Picture.tscn\" type=\"PackedScene\" id=7]\n[ext_resource path=\"res://content/power_pitch/img/teddy-game.jpg\" type=\"Texture\" id=8]\n\n\n[node name=\"Professionals_use_godot\" index=\"0\" instance=ExtResource( 1 )]\n\n[node name=\"Column\" parent=\".\" index=\"1\" instance=ExtResource( 2 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Header\" parent=\"Column\" index=\"0\" instance=ExtResource( 3 )]\nanchor_right = 0.0\nmargin_right = 1921.0\nmargin_bottom = 210.0\ntitle = \"Professionals use Godot\"\n\n[node name=\"Body\" parent=\"Column\" index=\"1\" instance=ExtResource( 4 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 210.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Row\" parent=\"Column/Body\" index=\"0\" instance=ExtResource( 5 )]\n\n[node name=\"TextBox\" parent=\"Column/Body/Row\" index=\"0\" instance=ExtResource( 6 )]\nmargin_right = 639.0\nmargin_bottom = 870.0\ntext = \"[color=#E3266F]Game studios[/color] like Gamblify, GuaranApps, Kivano...\n[color=#26BFE3]Schools[/color] including School4Games Berlin, KidsCanCode...\n[color=#02E180]Content creators[/color] like Heartbeast, GamesFromScratch, [i]GDQuest[/i]...\n\"\n\n[node name=\"Picture\" parent=\"Column/Body/Row\" index=\"1\" instance=ExtResource( 7 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_left = 643.0\nmargin_right = 1921.0\nmargin_bottom = 870.0\ntexture = ExtResource( 8 )\n\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/slides/State_of_the_art_3d_engine.tscn",
    "content": "[gd_scene load_steps=11 format=2]\n\n[ext_resource path=\"res://src/slide/Slide.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://src/slide/widgets/Column.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://src/slide/widgets/Header.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://src/slide/widgets/Body.tscn\" type=\"PackedScene\" id=4]\n[ext_resource path=\"res://src/slide/layout/Row.tscn\" type=\"PackedScene\" id=5]\n[ext_resource path=\"res://src/slide/widgets/TextBox.tscn\" type=\"PackedScene\" id=6]\n[ext_resource path=\"res://src/slide/widgets/PictureSlideshow.tscn\" type=\"PackedScene\" id=7]\n[ext_resource path=\"res://content/power_pitch/img/robi-open-tps.jpg\" type=\"Texture\" id=8]\n[ext_resource path=\"res://content/power_pitch/img/new_material_params.jpg\" type=\"Texture\" id=9]\n[ext_resource path=\"res://src/slide/widgets/Footer.tscn\" type=\"PackedScene\" id=10]\n\n\n[node name=\"State_of_the_art_3d_engine\" index=\"0\" instance=ExtResource( 1 )]\n\n[node name=\"Column\" parent=\".\" index=\"1\" instance=ExtResource( 2 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Header\" parent=\"Column\" index=\"0\" instance=ExtResource( 3 )]\nanchor_right = 0.0\nmargin_right = 1921.0\nmargin_bottom = 210.0\ntitle = \"State of the art 3d engine\"\n\n[node name=\"Body\" parent=\"Column\" index=\"1\" instance=ExtResource( 4 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 210.0\nmargin_right = 1921.0\nmargin_bottom = 940.0\n\n[node name=\"Row\" parent=\"Column/Body\" index=\"0\" instance=ExtResource( 5 )]\n\n[node name=\"TextBox\" parent=\"Column/Body/Row\" index=\"0\" instance=ExtResource( 6 )]\nmargin_right = 684.0\nmargin_bottom = 730.0\ntext = \"[color=#E3266F]Physically-based rendering[/color] with full MSAA support\n[color=#02E180]Full principled BSDF[/color] with Subsurface Scattering, reflection, refraction, clearcoat...\n[color=#26BFE3]Global illumination[/color] for gorgeous real-time graphics\n[color=#F2971A]Mid and Post processing effects[/color] including curves and auto exposure, screen-space reflections, fog, bloom, depth of field...\"\n\n[node name=\"PictureSlideshow\" parent=\"Column/Body/Row\" index=\"1\" instance=ExtResource( 7 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_left = 688.0\nmargin_right = 1921.0\nmargin_bottom = 730.0\nsize_flags_stretch_ratio = 1.8\n\n[node name=\"new_3d_renderer-1264x720\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"2\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\ntexture = ExtResource( 8 )\nexpand = true\n\n[node name=\"new_material_params\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"3\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\ntexture = ExtResource( 9 )\nexpand = true\nstretch_mode = 6\n\n[node name=\"Footer\" parent=\"Column\" index=\"2\" instance=ExtResource( 10 )]\nanchor_top = 0.0\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 940.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\ntext = \"Designed to work well with Blender 2.8's Eevee realtime engine\"\n\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/slides/Thank_you.tscn",
    "content": "[gd_scene load_steps=9 format=2]\n\n[ext_resource path=\"res://src/slide/Slide.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://src/slide/widgets/Column.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://src/slide/widgets/Header.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://src/slide/widgets/Body.tscn\" type=\"PackedScene\" id=4]\n[ext_resource path=\"res://src/slide/layout/Row.tscn\" type=\"PackedScene\" id=5]\n[ext_resource path=\"res://src/slide/widgets/TextBox.tscn\" type=\"PackedScene\" id=6]\n[ext_resource path=\"res://src/slide/widgets/Picture.tscn\" type=\"PackedScene\" id=7]\n[ext_resource path=\"res://content/power_pitch/img/gdquest-business-card.png\" type=\"Texture\" id=8]\n\n\n[node name=\"Thank_you\" index=\"0\" instance=ExtResource( 1 )]\n\n[node name=\"Column\" parent=\".\" index=\"1\" instance=ExtResource( 2 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Header2\" parent=\"Column\" index=\"0\" instance=ExtResource( 3 )]\nanchor_right = 0.0\nmargin_right = 1921.0\nmargin_bottom = 210.0\ntitle = \"\"\n\n[node name=\"Body\" parent=\"Column\" index=\"1\" instance=ExtResource( 4 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 210.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Row\" parent=\"Column/Body\" index=\"0\" instance=ExtResource( 5 )]\n\n[node name=\"TextBox2\" parent=\"Column/Body/Row\" index=\"0\" instance=ExtResource( 6 )]\nmargin_right = 639.0\nmargin_bottom = 870.0\n\n[node name=\"Picture\" parent=\"Column/Body/Row\" index=\"1\" instance=ExtResource( 7 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_left = 643.0\nmargin_right = 1921.0\nmargin_bottom = 870.0\ntexture = ExtResource( 8 )\n\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/slides/Title.tscn",
    "content": "[gd_scene load_steps=4 format=2]\n\n[ext_resource path=\"res://src/slide/Slide.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://src/slide/widgets/Picture.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://content/power_pitch/img/godot-pres-intro.png\" type=\"Texture\" id=3]\n\n\n[node name=\"Title\" index=\"0\" instance=ExtResource( 1 )]\n\n[node name=\"Picture\" parent=\".\" index=\"1\" instance=ExtResource( 2 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\ntexture = ExtResource( 3 )\n"
  },
  {
    "path": "godot-3-presentation/content/power_pitch/slides/Virtual_and_augmented_reality.tscn",
    "content": "[gd_scene load_steps=9 format=2]\n\n[ext_resource path=\"res://src/slide/Slide.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://src/slide/widgets/Column.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://src/slide/widgets/Header.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://src/slide/widgets/Body.tscn\" type=\"PackedScene\" id=4]\n[ext_resource path=\"res://src/slide/layout/Row.tscn\" type=\"PackedScene\" id=5]\n[ext_resource path=\"res://src/slide/widgets/TextBox.tscn\" type=\"PackedScene\" id=6]\n[ext_resource path=\"res://src/slide/widgets/Video.tscn\" type=\"PackedScene\" id=7]\n[ext_resource path=\"res://content/video/vr-capture.ogv\" type=\"VideoStream\" id=8]\n\n\n[node name=\"Virtual_and_augmented_reality\" index=\"0\" instance=ExtResource( 1 )]\n\n[node name=\"Column\" parent=\".\" index=\"1\" instance=ExtResource( 2 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Header2\" parent=\"Column\" index=\"0\" instance=ExtResource( 3 )]\nanchor_right = 0.0\nmargin_right = 1921.0\nmargin_bottom = 210.0\ntitle = \"\"\n\n[node name=\"Body\" parent=\"Column\" index=\"1\" instance=ExtResource( 4 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 210.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Row\" parent=\"Column/Body\" index=\"0\" instance=ExtResource( 5 )]\n\n[node name=\"TextBox\" parent=\"Column/Body/Row\" index=\"0\" instance=ExtResource( 6 )]\nmargin_right = 639.0\nmargin_bottom = 870.0\n\n[node name=\"Video\" parent=\"Column/Body/Row\" index=\"1\" instance=ExtResource( 7 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_left = 898.0\nmargin_right = 1666.0\nmargin_bottom = 870.0\nrect_min_size = Vector2( 720, 0 )\nsize_flags_vertical = 7\nstream = ExtResource( 8 )\nautoplay = true\nexpand = false\n\n"
  },
  {
    "path": "godot-3-presentation/content/tokyo_indies_pitch/TokyoIndies.tscn",
    "content": "[gd_scene load_steps=14 format=2]\n\n[ext_resource path=\"res://content/power_pitch/slides/Godot_is_in_great_shape.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://content/power_pitch/slides/A_free_modern_engine.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://src/presentation/Presentation.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://content/power_pitch/slides/CodeFreely.tscn\" type=\"PackedScene\" id=4]\n[ext_resource path=\"res://content/power_pitch/slides/State_of_the_art_3d_engine.tscn\" type=\"PackedScene\" id=5]\n[ext_resource path=\"res://content/power_pitch/slides/All-in-one_package.tscn\" type=\"PackedScene\" id=6]\n[ext_resource path=\"res://content/tokyo_indies_pitch/slides/Intro_Nathan.tscn\" type=\"PackedScene\" id=7]\n[ext_resource path=\"res://content/power_pitch/slides/How_to_get_started.tscn\" type=\"PackedScene\" id=8]\n[ext_resource path=\"res://content/tokyo_indies_pitch/slides/Thank_you_tokyo_indies.tscn\" type=\"PackedScene\" id=9]\n[ext_resource path=\"res://content/tokyo_indies_pitch/slides/ModularAndExtensible.tscn\" type=\"PackedScene\" id=10]\n[ext_resource path=\"res://content/tokyo_indies_pitch/slides/TokyoIndiesTitle.tscn\" type=\"PackedScene\" id=11]\n[ext_resource path=\"res://assets/theme/godot.theme\" type=\"Theme\" id=12]\n\n[sub_resource type=\"GDScript\" id=1]\nscript/source = \"extends Label\n\nfunc _ready():\n\thide()\n\"\n\n[node name=\"TokyoIndies\" instance=ExtResource( 3 )]\n\n[node name=\"TokyoIndiesTitle\" parent=\"Slides\" index=\"0\" instance=ExtResource( 11 )]\n\n[node name=\"Intro_GDquest\" parent=\"Slides\" index=\"1\" instance=ExtResource( 7 )]\n\n[node name=\"A_free_modern_engine\" parent=\"Slides\" index=\"2\" instance=ExtResource( 2 )]\n\n[node name=\"All_in_one_package\" parent=\"Slides\" index=\"3\" instance=ExtResource( 6 )]\n\n[node name=\"State_of_the_art_3d_engine\" parent=\"Slides\" index=\"4\" instance=ExtResource( 5 )]\n\n[node name=\"BuildUponGodot\" parent=\"Slides\" index=\"5\" instance=ExtResource( 10 )]\n\n[node name=\"CodeFreely\" parent=\"Slides\" index=\"6\" instance=ExtResource( 4 )]\n\n[node name=\"Godot_is_in_great_shape\" parent=\"Slides\" index=\"7\" instance=ExtResource( 1 )]\n\n[node name=\"How_to_get_started\" parent=\"Slides\" index=\"8\" instance=ExtResource( 8 )]\n\n[node name=\"Thank_you_tokyo_indies\" parent=\"Slides\" index=\"9\" instance=ExtResource( 9 )]\nvisible = false\n\n[node name=\"TouchControls\" parent=\".\" index=\"2\"]\nvisible = false\n\n[node name=\"Label\" type=\"Label\" parent=\".\" index=\"3\"]\nanchor_right = 1.0\nmargin_top = -82.0\nmargin_bottom = -68.0\ntheme = ExtResource( 12 )\ntext = \"A 5 minutes intro to Godot [3.1] and the open projects on GDquest, for the Tokyo Indies meetup in Tokyo, Japan.\"\nscript = SubResource( 1 )\n"
  },
  {
    "path": "godot-3-presentation/content/tokyo_indies_pitch/img/banner-power-sequencer-1.1.jpg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/banner-power-sequencer-1.1.jpg-826565a5e7573ce32093b2858070e987.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/tokyo_indies_pitch/img/banner-power-sequencer-1.1.jpg\"\ndest_files=[ \"res://.import/banner-power-sequencer-1.1.jpg-826565a5e7573ce32093b2858070e987.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/tokyo_indies_pitch/img/crackshot-tileset-editor.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/crackshot-tileset-editor.png-da739bb2e69c6788e7b73b23e534710f.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/tokyo_indies_pitch/img/crackshot-tileset-editor.png\"\ndest_files=[ \"res://.import/crackshot-tileset-editor.png-da739bb2e69c6788e7b73b23e534710f.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/tokyo_indies_pitch/img/godot-slides-2-logo.jpg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/godot-slides-2-logo.jpg-32da7ebce7236ff1090698a632ddc674.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/tokyo_indies_pitch/img/godot-slides-2-logo.jpg\"\ndest_files=[ \"res://.import/godot-slides-2-logo.jpg-32da7ebce7236ff1090698a632ddc674.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/tokyo_indies_pitch/img/intro-godot-game-engine.jpg.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/intro-godot-game-engine.jpg-402ae5c01032e0656dfbf13d47487577.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/tokyo_indies_pitch/img/intro-godot-game-engine.jpg\"\ndest_files=[ \"res://.import/intro-godot-game-engine.jpg-402ae5c01032e0656dfbf13d47487577.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/tokyo_indies_pitch/img/open-rpg-banner.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/open-rpg-banner.png-236586eb376f7e0af2d756f4c6428f6f.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/tokyo_indies_pitch/img/open-rpg-banner.png\"\ndest_files=[ \"res://.import/open-rpg-banner.png-236586eb376f7e0af2d756f4c6428f6f.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/tokyo_indies_pitch/img/tilemap-editor-crackshot-securas.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/tilemap-editor-crackshot-securas.png-1b567b5fb92b5c72c1c7ef736a362880.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/tokyo_indies_pitch/img/tilemap-editor-crackshot-securas.png\"\ndest_files=[ \"res://.import/tilemap-editor-crackshot-securas.png-1b567b5fb92b5c72c1c7ef736a362880.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/tokyo_indies_pitch/img/youtube-1.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/youtube-1.png-a4bc72fe3a532d156512db92e3826281.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/tokyo_indies_pitch/img/youtube-1.png\"\ndest_files=[ \"res://.import/youtube-1.png-a4bc72fe3a532d156512db92e3826281.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/tokyo_indies_pitch/img/youtube-2.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/youtube-2.png-4040b3a69df7b242027e9acaabf4cd11.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://content/tokyo_indies_pitch/img/youtube-2.png\"\ndest_files=[ \"res://.import/youtube-2.png-4040b3a69df7b242027e9acaabf4cd11.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/content/tokyo_indies_pitch/slides/Intro_Nathan.tscn",
    "content": "[gd_scene load_steps=13 format=2]\n\n[ext_resource path=\"res://src/slide/Slide.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://src/slide/widgets/Column.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://src/slide/widgets/Header.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://assets/theme/fonts/title_montserrat.tres\" type=\"DynamicFont\" id=4]\n[ext_resource path=\"res://src/slide/widgets/Body.tscn\" type=\"PackedScene\" id=5]\n[ext_resource path=\"res://src/slide/layout/Row.tscn\" type=\"PackedScene\" id=6]\n[ext_resource path=\"res://src/slide/widgets/TextBox.tscn\" type=\"PackedScene\" id=7]\n[ext_resource path=\"res://src/slide/widgets/PictureSlideshow.tscn\" type=\"PackedScene\" id=8]\n[ext_resource path=\"res://content/open_source_games/img/yt-videos.png\" type=\"Texture\" id=9]\n[ext_resource path=\"res://src/slide/widgets/Footer.tscn\" type=\"PackedScene\" id=10]\n\n\n\n[sub_resource type=\"GDScript\" id=1]\n\nscript/source = \"tool\nextends Control\n\nexport(String) var title = \\\"\\\" setget set_title\nexport(String) var subtitle = \\\"\\\" setget set_subtitle\nexport(Resource) var font_override = null\n\nvar FONTS_DEFAULT = {\n\t'title': preload(\\\"res://theme/fonts/title_montserrat.tres\\\"),\n\t'subtitle': preload(\\\"res://theme/fonts/subtitle_montserrat.tres\\\"),\n}\nvar FONTS_CJK = {\n\t'title': preload(\\\"res://theme/fonts/title_noto.tres\\\"),\n\t'subtitle': preload(\\\"res://theme/fonts/subtitle_noto.tres\\\"),\n}\n\nonready var title_node = $Column/Title\nonready var title_shadow_node = $Column/Title/Shadow\nonready var subtitle_node = $Column/Subtitle\nonready var subtitle_shadow_node = $Column/Subtitle/Shadow\n\nfunc _ready():\n\tself.title = title\n\tself.subtitle = subtitle\n\nfunc set_title(string):\n\ttitle = string\n\tif not title_node:\n\t\treturn\n\ttitle_node.display(string)\n\nfunc set_subtitle(string):\n\tsubtitle = string\n\tif not subtitle_node:\n\t\treturn\n\tsubtitle_node.display(string)\n\nfunc translate():\n\tvar locale = TranslationServer.get_locale()\n\tvar fonts = FONTS_DEFAULT\n\tif font_override:\n\t\ttitle_node.set('custom_fonts/font', font_override)\n\t\ttitle_shadow_node.set('custom_fonts/font', font_override)\n\t\treturn\n\t\t\n\tif locale in ['ja', 'ko', 'zh']:\n\t\t\tfonts = FONTS_CJK\n\ttitle_node.set('custom_fonts/font', fonts['title'])\n\ttitle_shadow_node.set('custom_fonts/font', fonts['title'])\n\tsubtitle_node.set('custom_fonts/font', fonts['subtitle'])\n\tsubtitle_shadow_node.set('custom_fonts/font', fonts['subtitle'])\n\nfunc get_translation_data():\n\tvar data = { 'title': title }\n\tif subtitle:\n\t\tdata['subtitle'] = subtitle\n\treturn data\n\"\n\n[sub_resource type=\"GDScript\" id=2]\n\nscript/source = \"tool\nextends Control\n\nexport(String, MULTILINE) var text = \\\"\\\" setget set_text\nexport(bool) var center = false setget set_center\n\nonready var _text = $Text\nvar _text_processed = \\\"\\\"\n\nfunc _ready():\n\tupdate_text()\n\nfunc set_text(string):\n\ttext = string\n\tif not _text:\n\t\treturn\n\tupdate_text()\n\nfunc set_center(value):\n\tcenter = value\n\tif not _text:\n\t\treturn\n\tupdate_text()\n\nfunc update_text():\n\tif center:\n\t\t_text_processed = center_text(text)\n\telse:\n\t\t_text_processed = text\n\t$Text.bbcode_text = _text_processed\n\nfunc center_text(string):\n\tvar bbcode = \\\"\\\"\n\tfor line in string.split(\\\"\\\\n\\\"):\n\t\tline = \\\"%s%s%s\\\" % [\\\"[center]\\\", line, \\\"[/center]\\\"]\n\t\tbbcode += line + \\\"\\\\n\\\"\n\treturn bbcode\n\nfunc get_translation_data():\n\treturn { 'text': text }\n\"\n\n[node name=\"Intro_GDquest\" index=\"0\" instance=ExtResource( 1 )]\n\n[node name=\"Column\" parent=\".\" index=\"1\" instance=ExtResource( 2 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Header\" parent=\"Column\" index=\"0\" instance=ExtResource( 3 )]\nanchor_right = 0.0\nmargin_right = 1921.0\nmargin_bottom = 210.0\nscript = SubResource( 1 )\ntitle = \"Game Design Quest\"\nfont_override = ExtResource( 4 )\n\n[node name=\"Body\" parent=\"Column\" index=\"1\" instance=ExtResource( 5 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 210.0\nmargin_right = 1921.0\nmargin_bottom = 940.0\n\n[node name=\"Row\" parent=\"Column/Body\" index=\"0\" instance=ExtResource( 6 )]\n\n[node name=\"TextBox\" parent=\"Column/Body/Row\" index=\"0\" instance=ExtResource( 7 )]\nmargin_right = 766.0\nmargin_bottom = 730.0\nscript = SubResource( 2 )\ntext = \"GDquest's mission is to [color=#26BFE3]bring people together[/color] to become better game developers.\n\nWe do that creating Free and Open Source [color=#E3266F]game demos[/color], [color=#26BFE3]tutorials[/color], and [color=#F2971A]tools[/color] to help you learn professional game creation techniques.\"\n\n[node name=\"PictureSlideshow\" parent=\"Column/Body/Row\" index=\"1\" instance=ExtResource( 8 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_left = 770.0\nmargin_right = 1921.0\nmargin_bottom = 730.0\nsize_flags_stretch_ratio = 1.5\nDISPLAY_DURATION = 8.0\n\n[node name=\"godot-slides-2-logo2\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"2\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\nrect_min_size = Vector2( 720, 300 )\nsize_flags_vertical = 3\ntexture = ExtResource( 9 )\nexpand = true\nstretch_mode = 6\n\n[node name=\"Footer\" parent=\"Column\" index=\"2\" instance=ExtResource( 10 )]\nvisible = true\nanchor_top = 0.0\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 940.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\ntext = \"It's my full-time job, and I can even pay people to work together with!\"\n\n"
  },
  {
    "path": "godot-3-presentation/content/tokyo_indies_pitch/slides/ModularAndExtensible.tscn",
    "content": "[gd_scene load_steps=13 format=2]\n\n[ext_resource path=\"res://src/slide/Slide.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://src/slide/widgets/Column.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://src/slide/widgets/Header.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://src/slide/widgets/Body.tscn\" type=\"PackedScene\" id=4]\n[ext_resource path=\"res://src/slide/layout/Row.tscn\" type=\"PackedScene\" id=5]\n[ext_resource path=\"res://src/slide/widgets/TextBox.tscn\" type=\"PackedScene\" id=6]\n[ext_resource path=\"res://src/slide/widgets/PictureSlideshow.tscn\" type=\"PackedScene\" id=7]\n[ext_resource path=\"res://content/power_pitch/img/create-anything/rpg-in-a-box-02-small.jpg\" type=\"Texture\" id=8]\n[ext_resource path=\"res://content/power_pitch/img/create-anything/procedural-mesh-tool-bastiaan-2-1280x720.jpg\" type=\"Texture\" id=9]\n[ext_resource path=\"res://src/slide/widgets/Footer.tscn\" type=\"PackedScene\" id=10]\n\n\n[sub_resource type=\"GDScript\" id=1]\n\nscript/source = \"tool\nextends Control\n\nexport(String) var title = \\\"\\\" setget set_title\nexport(String) var subtitle = \\\"\\\" setget set_subtitle\n\nvar FONTS_DEFAULT = {\n\t'title': preload(\\\"res://theme/fonts/title_montserrat.tres\\\"),\n\t'subtitle': preload(\\\"res://theme/fonts/subtitle_montserrat.tres\\\"),\n}\nvar FONTS_CJK = {\n\t'title': preload(\\\"res://theme/fonts/title_noto.tres\\\"),\n\t'subtitle': preload(\\\"res://theme/fonts/subtitle_noto.tres\\\"),\n}\n\nonready var title_node = $Column/Title\nonready var title_shadow_node = $Column/Title/Shadow\nonready var subtitle_node = $Column/Subtitle\nonready var subtitle_shadow_node = $Column/Subtitle/Shadow\n\nfunc _ready():\n\tself.title = title\n\tself.subtitle = subtitle\n\nfunc set_title(string):\n\ttitle = string\n\tif not title_node:\n\t\treturn\n\ttitle_node.display(string)\n\nfunc set_subtitle(string):\n\tsubtitle = string\n\tif not subtitle_node:\n\t\treturn\n\tsubtitle_node.display(string)\n\nfunc translate():\n\tvar locale = TranslationServer.get_locale()\n\tvar fonts = FONTS_DEFAULT\n\tif locale in ['ja', 'ko', 'zh']:\n\t\t\tfonts = FONTS_CJK\n\n\ttitle_node.set('custom_fonts/font', fonts['title'])\n\ttitle_shadow_node.set('custom_fonts/font', fonts['title'])\n\tsubtitle_node.set('custom_fonts/font', fonts['subtitle'])\n\tsubtitle_shadow_node.set('custom_fonts/font', fonts['subtitle'])\n\nfunc get_translation_data():\n\tvar data = { 'title': title }\n\tif subtitle:\n\t\tdata['subtitle'] = subtitle\n\treturn data\n\"\n\n[sub_resource type=\"GDScript\" id=2]\n\nscript/source = \"tool\nextends Control\n\nexport(String, MULTILINE) var text = \\\"\\\" setget set_text\nexport(bool) var center = false setget set_center\n\nonready var _text = $Text\nvar _text_processed = \\\"\\\"\n\nfunc _ready():\n\tupdate_text()\n\nfunc set_text(string):\n\ttext = string\n\tif not _text:\n\t\treturn\n\tupdate_text()\n\nfunc set_center(value):\n\tcenter = value\n\tif not _text:\n\t\treturn\n\tupdate_text()\n\nfunc update_text():\n\tif center:\n\t\t_text_processed = center_text(text)\n\telse:\n\t\t_text_processed = text\n\t$Text.bbcode_text = _text_processed\n\nfunc center_text(string):\n\tvar bbcode = \\\"\\\"\n\tfor line in string.split(\\\"\\\\n\\\"):\n\t\tline = \\\"%s%s%s\\\" % [\\\"[center]\\\", line, \\\"[/center]\\\"]\n\t\tbbcode += line + \\\"\\\\n\\\"\n\treturn bbcode\n\nfunc get_translation_data():\n\treturn { 'text': text }\n\"\n\n[node name=\"BuildUponGodot\" instance=ExtResource( 1 )]\n\n[node name=\"Column\" parent=\".\" index=\"1\" instance=ExtResource( 2 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Header\" parent=\"Column\" index=\"0\" instance=ExtResource( 3 )]\nanchor_right = 0.0\nmargin_right = 1921.0\nmargin_bottom = 210.0\nscript = SubResource( 1 )\ntitle = \"Build upon Godot\"\n\n[node name=\"Body\" parent=\"Column\" index=\"1\" instance=ExtResource( 4 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 210.0\nmargin_right = 1921.0\nmargin_bottom = 940.0\n\n[node name=\"Row\" parent=\"Column/Body\" index=\"0\" instance=ExtResource( 5 )]\n\n[node name=\"TextBox\" parent=\"Column/Body/Row\" index=\"0\" instance=ExtResource( 6 )]\nmargin_right = 639.0\nmargin_bottom = 730.0\nscript = SubResource( 2 )\ntext = \"The Godot editor is a Godot game! It relies on the same tools you'll use to make your game.\n\nThanks to that, you can [color=#02E180]code add-ons and games the same way[/color].\n\nThe [color=#26BFE3]open source Assets Library[/color] lets you download add-ons from GitHub into your projects.\"\n\n[node name=\"PictureSlideshow\" parent=\"Column/Body/Row\" index=\"1\" instance=ExtResource( 7 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_left = 643.0\nmargin_right = 1921.0\nmargin_bottom = 730.0\n\n[node name=\"rpg-in-a-box-02-small\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"2\"]\nvisible = false\nanchor_right = 1.0\nanchor_bottom = 1.0\ntexture = ExtResource( 8 )\nexpand = true\nstretch_mode = 6\n\n[node name=\"procedural-mesh-tool-bastiaan-\" type=\"TextureRect\" parent=\"Column/Body/Row/PictureSlideshow\" index=\"3\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\ntexture = ExtResource( 9 )\nexpand = true\nstretch_mode = 6\n\n[node name=\"Footer\" parent=\"Column\" index=\"2\" instance=ExtResource( 10 )]\nvisible = true\nanchor_top = 0.0\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 940.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n"
  },
  {
    "path": "godot-3-presentation/content/tokyo_indies_pitch/slides/Thank_you_tokyo_indies.tscn",
    "content": "[gd_scene load_steps=12 format=2]\n\n[ext_resource path=\"res://src/slide/Slide.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://src/slide/widgets/Column.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://src/slide/widgets/Header.tscn\" type=\"PackedScene\" id=3]\n[ext_resource path=\"res://src/slide/widgets/Body.tscn\" type=\"PackedScene\" id=4]\n[ext_resource path=\"res://src/slide/layout/Row.tscn\" type=\"PackedScene\" id=5]\n[ext_resource path=\"res://src/slide/widgets/TextBox.tscn\" type=\"PackedScene\" id=6]\n[ext_resource path=\"res://src/slide/widgets/Picture.tscn\" type=\"PackedScene\" id=7]\n[ext_resource path=\"res://content/power_pitch/img/gdquest-business-card.png\" type=\"Texture\" id=8]\n[ext_resource path=\"res://src/slide/widgets/Footer.tscn\" type=\"PackedScene\" id=10]\n\n[sub_resource type=\"GDScript\" id=1]\nscript/source = \"tool\nextends Control\n\nexport(String) var title = \\\"\\\" setget set_title\nexport(String) var subtitle = \\\"\\\" setget set_subtitle\n\nvar FONTS_DEFAULT = {\n\t'title': preload(\\\"res://theme/fonts/title_montserrat.tres\\\"),\n\t'subtitle': preload(\\\"res://theme/fonts/subtitle_montserrat.tres\\\"),\n}\nvar FONTS_CJK = {\n\t'title': preload(\\\"res://theme/fonts/title_noto.tres\\\"),\n\t'subtitle': preload(\\\"res://theme/fonts/subtitle_noto.tres\\\"),\n}\n\nonready var title_node = $Column/Title\nonready var title_shadow_node = $Column/Title/Shadow\nonready var subtitle_node = $Column/Subtitle\nonready var subtitle_shadow_node = $Column/Subtitle/Shadow\n\nfunc _ready():\n\tself.title = title\n\tself.subtitle = subtitle\n\nfunc set_title(string):\n\ttitle = string\n\tif not title_node:\n\t\treturn\n\ttitle_node.display(string)\n\nfunc set_subtitle(string):\n\tsubtitle = string\n\tif not subtitle_node:\n\t\treturn\n\tsubtitle_node.display(string)\n\nfunc translate():\n\tvar locale = TranslationServer.get_locale()\n\tvar fonts = FONTS_DEFAULT\n\tif locale in ['ja', 'ko', 'zh']:\n\t\t\tfonts = FONTS_CJK\n\n\ttitle_node.set('custom_fonts/font', fonts['title'])\n\ttitle_shadow_node.set('custom_fonts/font', fonts['title'])\n\tsubtitle_node.set('custom_fonts/font', fonts['subtitle'])\n\tsubtitle_shadow_node.set('custom_fonts/font', fonts['subtitle'])\n\nfunc get_translation_data():\n\tvar data = { 'title': title }\n\tif subtitle:\n\t\tdata['subtitle'] = subtitle\n\treturn data\n\"\n\n[sub_resource type=\"GDScript\" id=2]\nscript/source = \"tool\nextends Control\n\nexport(String, MULTILINE) var text = \\\"\\\" setget set_text\nexport(bool) var center = false setget set_center\n\nonready var _text = $Text\nvar _text_processed = \\\"\\\"\n\nfunc _ready():\n\tupdate_text()\n\nfunc set_text(string):\n\ttext = string\n\tif not _text:\n\t\treturn\n\tupdate_text()\n\nfunc set_center(value):\n\tcenter = value\n\tif not _text:\n\t\treturn\n\tupdate_text()\n\nfunc update_text():\n\tif center:\n\t\t_text_processed = center_text(text)\n\telse:\n\t\t_text_processed = text\n\t$Text.bbcode_text = _text_processed\n\nfunc center_text(string):\n\tvar bbcode = \\\"\\\"\n\tfor line in string.split(\\\"\\\\n\\\"):\n\t\tline = \\\"%s%s%s\\\" % [\\\"[center]\\\", line, \\\"[/center]\\\"]\n\t\tbbcode += line + \\\"\\\\n\\\"\n\treturn bbcode\n\nfunc get_translation_data():\n\treturn { 'text': text }\n\"\n\n[node name=\"Thank_you_tokyo_indies\" instance=ExtResource( 1 )]\n\n[node name=\"Column\" parent=\".\" index=\"1\" instance=ExtResource( 2 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\n\n[node name=\"Header\" parent=\"Column\" index=\"0\" instance=ExtResource( 3 )]\nanchor_right = 0.0\nmargin_right = 1921.0\nmargin_bottom = 210.0\nscript = SubResource( 1 )\ntitle = \"Thank you!\"\nsubtitle = \"\"\nfont_override = null\n\n[node name=\"Body\" parent=\"Column\" index=\"1\" instance=ExtResource( 4 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 210.0\nmargin_right = 1921.0\nmargin_bottom = 940.0\n\n[node name=\"Row\" parent=\"Column/Body\" index=\"0\" instance=ExtResource( 5 )]\n\n[node name=\"TextBox\" parent=\"Column/Body/Row\" index=\"0\" instance=ExtResource( 6 )]\nmargin_right = 639.0\nmargin_bottom = 730.0\nscript = SubResource( 2 )\ntext = \"This presentation and our game projects are Free and Open Source!\nFind them on [url=https://github.com/GDquest/godot-3-presentation]GDquest's GitHub page[/url].\n\nWe are on:\n\nTwitter: [color=#26BFE3]@NathanGDquest[/color]\nYouTube: [color=#F2971A]youtube.com/c/gdquest[/color]\"\ncenter = false\n\n[node name=\"Picture\" parent=\"Column/Body/Row\" index=\"1\" instance=ExtResource( 7 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_left = 643.0\nmargin_right = 1921.0\nmargin_bottom = 730.0\ntexture = ExtResource( 8 )\n\n[node name=\"Footer\" parent=\"Column\" index=\"2\" instance=ExtResource( 10 )]\nvisible = true\nanchor_top = 0.0\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_top = 940.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\ntext = \"Any questions? Message me anytime or let's talk after the presentations!\"\n"
  },
  {
    "path": "godot-3-presentation/content/tokyo_indies_pitch/slides/TokyoIndiesTitle.tscn",
    "content": "[gd_scene load_steps=4 format=2]\n\n[ext_resource path=\"res://src/slide/Slide.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://src/slide/widgets/Picture.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://content/tokyo_indies_pitch/img/intro-godot-game-engine.jpg\" type=\"Texture\" id=3]\n\n\n[node name=\"TokyoIndiesTitle\" index=\"0\" instance=ExtResource( 1 )]\n\n[node name=\"Picture\" parent=\".\" index=\"1\" instance=ExtResource( 2 )]\nanchor_right = 0.0\nanchor_bottom = 0.0\nmargin_right = 1921.0\nmargin_bottom = 1080.0\ntexture = ExtResource( 3 )\n"
  },
  {
    "path": "godot-3-presentation/content/video/shooter-game.ogv.import",
    "content": "[remap]\n\nimporter=\"Theora\"\ntype=\"VideoStreamTheora\"\npath=\"res://.import/shooter-game.ogv-d7a7b548019a03d1448a73951c1b31df.ogvstr\"\n\n[deps]\n\nsource_file=\"res://content/video/shooter-game.ogv\"\ndest_files=[ \"res://.import/shooter-game.ogv-d7a7b548019a03d1448a73951c1b31df.ogvstr\" ]\n\n[params]\n\nloop=true\n"
  },
  {
    "path": "godot-3-presentation/content/video/vr-capture.ogv.import",
    "content": "[remap]\n\nimporter=\"Theora\"\ntype=\"VideoStreamTheora\"\npath=\"res://.import/vr-capture.ogv-f1047781f2fecc19135f744d38a1bc87.ogvstr\"\n\n[deps]\n\nsource_file=\"res://content/video/vr-capture.ogv\"\ndest_files=[ \"res://.import/vr-capture.ogv-f1047781f2fecc19135f744d38a1bc87.ogvstr\" ]\n\n[params]\n\nloop=true\n"
  },
  {
    "path": "godot-3-presentation/default_env.tres",
    "content": "[gd_resource type=\"Environment\" load_steps=2 format=2]\n\n[sub_resource type=\"ProceduralSky\" id=1]\nsky_top_color = Color( 0.0470588, 0.454902, 0.976471, 1 )\nsky_horizon_color = Color( 0.556863, 0.823529, 0.909804, 1 )\nsky_curve = 0.25\nground_bottom_color = Color( 0.101961, 0.145098, 0.188235, 1 )\nground_horizon_color = Color( 0.482353, 0.788235, 0.952941, 1 )\nground_curve = 0.01\n\n[resource]\nbackground_mode = 2\nbackground_sky = SubResource( 1 )\nssao_blur = 1\n"
  },
  {
    "path": "godot-3-presentation/icon.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://icon.png\"\ndest_files=[ \"res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/project.godot",
    "content": "; Engine configuration file.\n; It's best edited using the editor UI and not directly,\n; since the parameters that go here are not all obvious.\n;\n; Format:\n;   [section] ; section goes between []\n;   param=value ; assign values to parameters\n\nconfig_version=4\n\n_global_script_classes=[ {\n\"base\": \"InputEvent\",\n\"class\": \"InputEventSwipe\",\n\"language\": \"GDScript\",\n\"path\": \"res://src/touch_controls/InputEventSwipe.gd\"\n} ]\n_global_script_class_icons={\n\"InputEventSwipe\": \"\"\n}\n\n[application]\n\nconfig/name=\"Godot Slides 2.0\"\nrun/main_scene=\"res://content/power_pitch/PowerPitch.tscn\"\nconfig/icon=\"res://icon.png\"\nconfig/version=\"2.0.0\"\n\n[autoload]\n\nGlobalConstants=\"*res://content/demos/attacks/global-constants.gd\"\n\n[display]\n\nwindow/size/width=1920\nwindow/size/height=1080\nwindow/size/test_width=1280\nwindow/size/test_height=720\nwindow/energy_saving/keep_screen_on=false\nwindow/stretch/mode=\"2d\"\nwindow/stretch/aspect=\"keep\"\n\n[gdnative]\n\nsingletons=[  ]\n\n[input]\n\nui_next={\n\"deadzone\": 0.5,\n\"events\": [ Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"alt\":false,\"shift\":false,\"control\":false,\"meta\":false,\"command\":false,\"pressed\":false,\"scancode\":46,\"unicode\":0,\"echo\":false,\"script\":null)\n, Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"alt\":false,\"shift\":true,\"control\":false,\"meta\":false,\"command\":false,\"pressed\":false,\"scancode\":46,\"unicode\":0,\"echo\":false,\"script\":null)\n, Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"alt\":false,\"shift\":false,\"control\":false,\"meta\":false,\"command\":false,\"pressed\":false,\"scancode\":78,\"unicode\":0,\"echo\":false,\"script\":null)\n ]\n}\nui_previous={\n\"deadzone\": 0.5,\n\"events\": [ Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"alt\":false,\"shift\":false,\"control\":false,\"meta\":false,\"command\":false,\"pressed\":false,\"scancode\":58,\"unicode\":0,\"echo\":false,\"script\":null)\n, Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"alt\":false,\"shift\":true,\"control\":false,\"meta\":false,\"command\":false,\"pressed\":false,\"scancode\":58,\"unicode\":0,\"echo\":false,\"script\":null)\n, Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"alt\":false,\"shift\":false,\"control\":false,\"meta\":false,\"command\":false,\"pressed\":false,\"scancode\":80,\"unicode\":0,\"echo\":false,\"script\":null)\n ]\n}\nmove_left={\n\"deadzone\": 0.5,\n\"events\": [ Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"alt\":false,\"shift\":false,\"control\":false,\"meta\":false,\"command\":false,\"pressed\":false,\"scancode\":16777231,\"unicode\":0,\"echo\":false,\"script\":null)\n, Object(InputEventJoypadMotion,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"axis\":0,\"axis_value\":-1.0,\"script\":null)\n ]\n}\nmove_right={\n\"deadzone\": 0.5,\n\"events\": [ Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"alt\":false,\"shift\":false,\"control\":false,\"meta\":false,\"command\":false,\"pressed\":false,\"scancode\":16777233,\"unicode\":0,\"echo\":false,\"script\":null)\n, Object(InputEventJoypadMotion,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"axis\":0,\"axis_value\":1.0,\"script\":null)\n ]\n}\nmove_up={\n\"deadzone\": 0.5,\n\"events\": [ Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"alt\":false,\"shift\":false,\"control\":false,\"meta\":false,\"command\":false,\"pressed\":false,\"scancode\":16777232,\"unicode\":0,\"echo\":false,\"script\":null)\n, Object(InputEventJoypadMotion,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"axis\":1,\"axis_value\":-1.0,\"script\":null)\n ]\n}\nmove_down={\n\"deadzone\": 0.5,\n\"events\": [ Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"alt\":false,\"shift\":false,\"control\":false,\"meta\":false,\"command\":false,\"pressed\":false,\"scancode\":16777234,\"unicode\":0,\"echo\":false,\"script\":null)\n, Object(InputEventJoypadMotion,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"axis\":3,\"axis_value\":1.0,\"script\":null)\n ]\n}\nattack={\n\"deadzone\": 0.5,\n\"events\": [ Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"alt\":false,\"shift\":false,\"control\":false,\"meta\":false,\"command\":false,\"pressed\":false,\"scancode\":32,\"unicode\":0,\"echo\":false,\"script\":null)\n, Object(InputEventJoypadButton,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"button_index\":0,\"pressure\":0.0,\"pressed\":false,\"script\":null)\n ]\n}\ntoggle_pause={\n\"deadzone\": 0.5,\n\"events\": [ Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"alt\":false,\"shift\":false,\"control\":false,\"meta\":false,\"command\":false,\"pressed\":false,\"scancode\":32,\"unicode\":0,\"echo\":false,\"script\":null)\n ]\n}\njump={\n\"deadzone\": 0.5,\n\"events\": [ Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"alt\":false,\"shift\":false,\"control\":false,\"meta\":false,\"command\":false,\"pressed\":false,\"scancode\":32,\"unicode\":0,\"echo\":false,\"script\":null)\n ]\n}\nrun={\n\"deadzone\": 0.5,\n\"events\": [ Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"alt\":false,\"shift\":false,\"control\":false,\"meta\":false,\"command\":false,\"pressed\":false,\"scancode\":16777237,\"unicode\":0,\"echo\":false,\"script\":null)\n ]\n}\nchange_language={\n\"deadzone\": 0.5,\n\"events\": [ Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"alt\":false,\"shift\":false,\"control\":false,\"meta\":false,\"command\":false,\"pressed\":false,\"scancode\":76,\"unicode\":0,\"echo\":false,\"script\":null)\n ]\n}\ntoggle_fullscreen={\n\"deadzone\": 0.5,\n\"events\": [ Object(InputEventKey,\"resource_local_to_scene\":false,\"resource_name\":\"\",\"device\":0,\"alt\":false,\"shift\":false,\"control\":false,\"meta\":false,\"command\":false,\"pressed\":false,\"scancode\":70,\"unicode\":0,\"echo\":false,\"script\":null)\n ]\n}\n\n[locale]\n\nlocale_filter=[ 0, [ \"de\", \"en\", \"es\", \"fr\", \"hi\", \"it\", \"ja\", \"pt\", \"ru\", \"zh\" ] ]\ntranslations=PoolStringArray( \"res://content/power_pitch/PowerPitch.en.translation\", \"res://content/power_pitch/PowerPitch.ja.translation\", \"res://content/power_pitch/PowerPitch.fr.translation\", \"res://content/power_pitch/PowerPitch.es.translation\", \"res://content/power_pitch/PowerPitch.pt_BR.translation\", \"res://content/power_pitch/PowerPitch.de.translation\", \"res://content/power_pitch/PowerPitch.it.translation\", \"res://content/power_pitch/PowerPitch.zh.translation\", \"res://content/power_pitch/PowerPitch.uk_UA.translation\", \"res://content/power_pitch/PowerPitch.ko.translation\", \"res://content/power_pitch/PowerPitch.sk.translation\", \"res://content/power_pitch/PowerPitch.id.translation\", \"res://content/open_source_games/MakingOpenSourceGames.en.translation\", \"res://content/open_source_games/MakingOpenSourceGames.ja.translation\" )\n\n[rendering]\n\nenvironment/default_environment=\"res://default_env.tres\"\n"
  },
  {
    "path": "godot-3-presentation/src/presentation/Presentation.gd",
    "content": "extends Node\n\n\nsignal language_changed()\n\nonready var slides: = $Slides\n\nexport(String, 'en', 'ja', 'fr', 'es', 'pt_BR', 'de', 'id', 'it', 'zh', 'uk_UA', 'ko', 'sk', 'pl') var language_main: = 'en' setget set_language_main\nexport(String, 'en', 'ja', 'fr', 'es', 'pt_BR', 'de', 'id', 'it', 'zh', 'uk_UA', 'ko', 'sk', 'pl') var language_second: = 'ja'\n\nvar language_active: = '' setget set_language_active\n\n\nfunc _ready() -> void:\n#\tsave_as_csv(get_translatable_strings()) # Use this to save the presentation as CSV\n#\treturn\n#\tslides.save_as_png(\"res://out\")\n\tset_language_active(language_main)\n\tslides.initialize()\n\n\nfunc _unhandled_input(event: InputEvent) -> void:\n\tif event.is_action_pressed('toggle_fullscreen'):\n\t\tOS.window_fullscreen = not OS.window_fullscreen\n\t\tget_tree().set_input_as_handled()\n\t\treturn\n\tif event.is_action_pressed('change_language') and language_main != language_second:\n\t\tif TranslationServer.get_locale() == language_main:\n\t\t\tset_language_active(language_second)\n\t\telse:\n\t\t\tset_language_active(language_main)\n\t\tget_tree().set_input_as_handled()\n\n\nfunc set_language_main(locale: String) -> void:\n\tlanguage_main = locale\n\tTranslationServer.set_locale(language_main)\n\n\nfunc set_language_active(locale: String) -> void:\n\tif locale == '':\n\t\treturn\n\tlanguage_active = locale\n\tTranslationServer.set_locale(locale)\n\tslides.update_translations()\n\n\nfunc _on_TouchControls_slide_change_requested(direction: int) -> void:\n\tslides.index_active += direction\n\n\n# Returns a dictionary with a list of { translatable_string_uid: string }\n# and the version of the project in which the data was generated\nfunc get_translatable_strings() -> Dictionary:\n\tvar data: = []\n\tfor node in get_tree().get_nodes_in_group(\"translate\"):\n\t\tvar src_data: Dictionary = node.get_translation_data()\n\t\tvar node_uid: String = slides.get_translation_uid(node)\n\t\tfor key in src_data:\n\t\t\tvar string_uid: String = node_uid + \"_\" + key\n\t\t\tdata.append({ string_uid: src_data[key] })\n\treturn {\n\t\t\t'data': data,\n\t\t\t'version': ProjectSettings.get_setting(\"application/config/version\"),\n\t\t}\n\n\n# TODO: Move to a PresentationSaver class\n# Saves translation data from get_translatable_strings() to\n# this scene's folder, as scene_name.csv\nfunc save_as_csv(translation_data) -> void:\n\tvar folder_path: = filename.left(filename.rfind(\"/\") + 1)\n\tvar save_path: = folder_path + name + \".csv\"\n\tvar file: = File.new()\n\n\tfile.open(save_path, File.WRITE)\n\tif not file.is_open():\n\t\tprint(\"Error saving translation data: could not open file %s\" % save_path)\n\t\treturn\n\n\tfile.store_line(\"id,en\")\n\tvar data_list: Array = translation_data['data']\n\tvar csv_list: = []\n\tfor dict in data_list:\n\t\tfor key in dict:\n\t\t\tvar as_csv: String = key + \",\" +  \"\\\"\" + dict[key] + \"\\\"\"\n\t\t\tcsv_list.append(as_csv)\n\tfor line in csv_list:\n\t\tfile.store_line(line)\n\tfile.close()\n"
  },
  {
    "path": "godot-3-presentation/src/presentation/Presentation.tscn",
    "content": "[gd_scene load_steps=6 format=2]\n\n[ext_resource path=\"res://src/presentation/Presentation.gd\" type=\"Script\" id=1]\n[ext_resource path=\"res://assets/theme/godot.theme\" type=\"Theme\" id=2]\n[ext_resource path=\"res://src/presentation/Slides.gd\" type=\"Script\" id=3]\n[ext_resource path=\"res://src/touch_controls/swipe_detector/SwipeDetector.tscn\" type=\"PackedScene\" id=4]\n[ext_resource path=\"res://src/touch_controls/TouchControls.tscn\" type=\"PackedScene\" id=5]\n\n[node name=\"Presentation\" type=\"Node\"]\nscript = ExtResource( 1 )\n\n[node name=\"Slides\" type=\"Control\" parent=\".\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\ntheme = ExtResource( 2 )\nscript = ExtResource( 3 )\n\n[node name=\"SwipeDetector\" parent=\".\" instance=ExtResource( 4 )]\nmax_diagonal_slope = null\n\n[node name=\"TouchControls\" parent=\".\" instance=ExtResource( 5 )]\n[connection signal=\"slide_change_requested\" from=\"TouchControls\" to=\".\" method=\"_on_TouchControls_slide_change_requested\"]\n"
  },
  {
    "path": "godot-3-presentation/src/presentation/Slides.gd",
    "content": "tool\nextends Node\n# Container for presentation Slide Nodes.\n# Controls the currently displayed Slide.\n\n\nenum Directions {PREVIOUS = -1, CURRENT = 0, NEXT = 1}\n\nexport var skip_animation: = false\nvar index_active: = 0 setget set_index_active\n\nvar slide_current\nvar slide_nodes: = []\n\n\nfunc _unhandled_input(event: InputEvent) -> void:\n\tvar valid_event: bool = (\n\t\tevent is InputEventSwipe or\n\t\tevent is InputEventMouseButton or\n\t\tevent.is_action('ui_next') or\n\t\tevent.is_action('ui_previous')\n\t)\n\tif not valid_event:\n\t\treturn\n\n\tif event.is_action_pressed('ui_next'):\n\t\tself.index_active += 1\n\telif event.is_action_pressed('ui_previous'):\n\t\tself.index_active -= 1\n\telif event is InputEventSwipe:\n\t\tif sign(event.direction.x) == 1:\n\t\t\tself.index_active += 1\n\t\telse:\n\t\t\tself.index_active -= 1\n\telif event is InputEventMouseButton:\n\t\tmatch event.button_index:\n\t\t\tBUTTON_LEFT:\n\t\t\t\tself.index_active += 1\n\t\t\tBUTTON_RIGHT:\n\t\t\t\tself.index_active -= 1\n\tget_tree().set_input_as_handled()\n\n\nfunc initialize() -> void:\n\tfor slide in get_children():\n\t\tslide.hide()\n\t\tslide_nodes.append(slide)\n\t\tremove_child(slide)\n\tslide_current = slide_nodes[0]\n\tadd_child(slide_current)\n\tslide_current.show()\n\n\nfunc set_index_active(value : int) -> void:\n\tvar index_previous: = index_active\n\tindex_active = clamp(value, 0, slide_nodes.size() - 1)\n\tif index_active == index_previous:\n\t\tset_process_input(true)\n\telse:\n\t\t_display(index_active)\n\n\nfunc _display(slide_index : int) -> void:\n\tset_process_input(false)\n\tvar previous_slide = slide_current\n\tvar new_slide = slide_nodes[slide_index]\n\tadd_child(new_slide)\n\tnew_slide.show()\n\tupdate_translations()\n\n\tif not skip_animation:\n\t\tvar animation: = \"fade_in\"\n\t\tyield(new_slide.play(animation), \"completed\")\n\n\tprevious_slide.hide()\n\tremove_child(previous_slide)\n\tslide_current = new_slide\n\n\tset_process_input(true)\n\n\nfunc update_translations() -> void:\n\tvar translations: PoolStringArray = ProjectSettings.get_setting(\"locale/translations\")\n\tif not translations or translations.size() == 0:\n\t\treturn\n\n\tfor node in get_tree().get_nodes_in_group(\"translate\"):\n\t\tvar node_uid: = get_translation_uid(node)\n\t\tvar translatable_properties: Dictionary = node.get_translation_data()\n\t\tfor key in translatable_properties:\n\t\t\tvar string_uid: String = node_uid + \"_\" + key\n\t\t\tnode.set(key, tr(string_uid))\n\t\tif node.has_method('translate'):\n\t\t\tnode.translate()\n\n\nfunc get_translation_uid(node: Node) -> String:\n\treturn node.owner.name + \"_\" + str(node.owner.get_path_to(node)).replace(\"/\", \"_\")\n\n\nfunc save_as_png(output_folder: String) -> void:\n\tskip_animation = true\n\tget_tree().paused = true\n\tget_viewport().set_clear_mode(Viewport.CLEAR_MODE_ONLY_NEXT_FRAME)\n\tvar id: = 0\n\tfor slide in slide_nodes:\n\t\t# Need to wait two frames to ensure the screen capture works\n\t\tyield(get_tree(), \"idle_frame\")\n\t\tyield(get_tree(), \"idle_frame\")\n\n\t\tvar img: = get_viewport().get_texture().get_data()\n\t\timg.flip_y()\n\t\tvar path: = output_folder.plus_file(str(id).pad_zeros(2) + '-' + slide.name + '.png')\n\t\timg.save_png(path)\n\t\tself.index_active += 1\n\t\tid += 1\n\tget_viewport().set_clear_mode(Viewport.CLEAR_MODE_ALWAYS)\n\tget_tree().paused = false\n\tskip_animation = false\n"
  },
  {
    "path": "godot-3-presentation/src/shaders/TransitionColor.tscn",
    "content": "[gd_scene load_steps=5 format=2]\n\n[ext_resource path=\"res://src/shaders/transition.material\" type=\"Material\" id=1]\n\n\n[sub_resource type=\"Animation\" id=3]\n\nresource_name = \"_SETUP\"\nlength = 0.01\nloop = false\nstep = 0.1\ntracks/0/type = \"value\"\ntracks/0/path = NodePath(\".:material:shader_param/cutoff\")\ntracks/0/interp = 1\ntracks/0/loop_wrap = true\ntracks/0/imported = false\ntracks/0/enabled = true\ntracks/0/keys = {\n\"times\": PoolRealArray( 0 ),\n\"transitions\": PoolRealArray( 1 ),\n\"update\": 0,\n\"values\": [ 0.0 ]\n}\n\n[sub_resource type=\"Animation\" id=1]\n\nresource_name = \"transition_in\"\nlength = 1.2\nloop = false\nstep = 0.1\ntracks/0/type = \"value\"\ntracks/0/path = NodePath(\".:material:shader_param/cutoff\")\ntracks/0/interp = 1\ntracks/0/loop_wrap = true\ntracks/0/imported = false\ntracks/0/enabled = true\ntracks/0/keys = {\n\"times\": PoolRealArray( 0, 1.2 ),\n\"transitions\": PoolRealArray( 0.505427, 1 ),\n\"update\": 0,\n\"values\": [ 0.0, 1.0 ]\n}\n\n[sub_resource type=\"Animation\" id=2]\n\nresource_name = \"transition_out\"\nlength = 1.2\nloop = false\nstep = 0.1\ntracks/0/type = \"value\"\ntracks/0/path = NodePath(\".:material:shader_param/cutoff\")\ntracks/0/interp = 1\ntracks/0/loop_wrap = true\ntracks/0/imported = false\ntracks/0/enabled = true\ntracks/0/keys = {\n\"times\": PoolRealArray( 0, 1.2 ),\n\"transitions\": PoolRealArray( 0.457186, 0.505427 ),\n\"update\": 0,\n\"values\": [ 1.0, 0.0 ]\n}\n\n[node name=\"TransitionColor\" type=\"ColorRect\" index=\"0\"]\n\nmaterial = ExtResource( 1 )\nanchor_left = 0.0\nanchor_top = 0.0\nanchor_right = 1.0\nanchor_bottom = 1.0\nrect_pivot_offset = Vector2( 0, 0 )\nrect_clip_content = false\nmouse_filter = 0\nmouse_default_cursor_shape = 0\nsize_flags_horizontal = 1\nsize_flags_vertical = 1\ncolor = Color( 1, 1, 1, 1 )\n_sections_unfolded = [ \"Material\" ]\n\n[node name=\"AnimationPlayer\" type=\"AnimationPlayer\" parent=\".\" index=\"0\"]\n\nroot_node = NodePath(\"..\")\nautoplay = \"\"\nplayback_process_mode = 1\nplayback_default_blend_time = 0.0\nplayback_speed = -1.0\nanims/_SETUP = SubResource( 3 )\nanims/transition_in = SubResource( 1 )\nanims/transition_out = SubResource( 2 )\nblend_times = [  ]\n_sections_unfolded = [ \"Playback Options\" ]\n\n\n"
  },
  {
    "path": "godot-3-presentation/src/shaders/masks/curtain.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/curtain.png-cdd48f3ff2ca96d61388d10108f12c53.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://src/shaders/masks/curtain.png\"\ndest_files=[ \"res://.import/curtain.png-cdd48f3ff2ca96d61388d10108f12c53.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/src/shaders/masks/from_center.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/from_center.png-ede10c88c3bf75995745997b35a7e435.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://src/shaders/masks/from_center.png\"\ndest_files=[ \"res://.import/from_center.png-ede10c88c3bf75995745997b35a7e435.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/src/shaders/masks/shards.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/shards.png-1567e6c939bcd7437e68f850fb0520b5.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://src/shaders/masks/shards.png\"\ndest_files=[ \"res://.import/shards.png-1567e6c939bcd7437e68f850fb0520b5.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/src/shaders/outline.shader",
    "content": "shader_type canvas_item;\nrender_mode unshaded;\n\nuniform float width : hint_range(0.0, 0.1);\nuniform vec4 outline_color : hint_color;\n\nvoid fragment()\n{\n\tvec4 sprite_color = texture(TEXTURE, UV);\n\tfloat alpha = -8.0 * sprite_color.a;\n\talpha += texture(TEXTURE, UV + vec2(0.0, -width)).a;\n\talpha += texture(TEXTURE, UV + vec2(width, -width)).a;\n\talpha += texture(TEXTURE, UV + vec2(width, 0.0)).a;\n\talpha += texture(TEXTURE, UV + vec2(width, width)).a;\n\talpha += texture(TEXTURE, UV + vec2(0.0, width)).a;\n\talpha += texture(TEXTURE, UV + vec2(-width, width)).a;\n\talpha += texture(TEXTURE, UV + vec2(-width, 0.0)).a;\n\talpha += texture(TEXTURE, UV + vec2(-width, -width)).a;\n\t\n\tvec4 final_color = mix(sprite_color, outline_color, smoothstep(0.0, 1.0, alpha));\n\tCOLOR = vec4(final_color.rgb, max(alpha, sprite_color.a));\n}\n"
  },
  {
    "path": "godot-3-presentation/src/shaders/transition.shader",
    "content": "shader_type canvas_item;\nrender_mode unshaded;\n\nuniform float cutoff : hint_range(0.0, 1.0);\nuniform float smooth_size : hint_range(0.0, 1.0);\nuniform sampler2D mask : hint_albedo;\n\nuniform vec4 color : hint_color;\n\nvoid fragment()\n{\n\tfloat value = texture(mask, UV).r;\n\tfloat alpha = smoothstep(cutoff, cutoff + smooth_size, value * (1.0 - smooth_size) + smooth_size);\n\tCOLOR = vec4(color.rgb, alpha);\n}\n\n//\talpha = step(value, cutoff);\n//\tif (value < cutoff) { \n//\t\tCOLOR = vec4(0.0, 0.0, 0.0, 1.0);\n//\t} \n//\telse if (value < cutoff + 0.1) { \n//\t\tCOLOR = vec4(0.0, 0.0, 0.0, (cutoff + 0.1 - value) / 0.1);\n//\t}\n//\telse {\n//\t\tCOLOR = vec4(0.0, 0.0, 0.0, 0.0);\n//\t}"
  },
  {
    "path": "godot-3-presentation/src/slide/Margin.gd",
    "content": "extends MarginContainer\n\n\nonready var margins: = {\n\t'right' : get('custom_constants/margin_right'),\n\t'top' : get('custom_constants/margin_top'),\n\t'left' : get('custom_constants/margin_left'),\n\t'bottom' : get('custom_constants/margin_bottom'),\n}\n\n\nfunc use_margins(value: float) -> void:\n\tif value:\n\t\tset('custom_constants/margin_right', margins['right'])\n\t\tset('custom_constants/margin_top', margins['top'])\n\t\tset('custom_constants/margin_left', margins['left'])\n\t\tset('custom_constants/margin_bottom', margins['bottom'])\n\telse:\n\t\tset('custom_constants/margin_right', 0)\n\t\tset('custom_constants/margin_top', 0)\n\t\tset('custom_constants/margin_left', 0)\n\t\tset('custom_constants/margin_bottom', 0)\n"
  },
  {
    "path": "godot-3-presentation/src/slide/Slide.gd",
    "content": "extends Control\n\n\nonready var player: = $AnimationPlayer\n\n\nfunc play(anim_name: String) -> void:\n\tplayer.play(anim_name)\n\tyield(player, \"animation_finished\")\n"
  },
  {
    "path": "godot-3-presentation/src/slide/Slide.tscn",
    "content": "[gd_scene load_steps=8 format=2]\n\n[ext_resource path=\"res://src/slide/Slide.gd\" type=\"Script\" id=1]\n[ext_resource path=\"res://assets/theme/godot.theme\" type=\"Theme\" id=2]\n\n[sub_resource type=\"Animation\" id=1]\nresource_name = \"SETUP\"\nlength = 0.01\ntracks/0/type = \"value\"\ntracks/0/path = NodePath(\".:modulate\")\ntracks/0/interp = 1\ntracks/0/loop_wrap = true\ntracks/0/imported = false\ntracks/0/enabled = true\ntracks/0/keys = {\n\"times\": PoolRealArray( 0 ),\n\"transitions\": PoolRealArray( 1 ),\n\"update\": 0,\n\"values\": [ Color( 1, 1, 1, 1 ) ]\n}\n\n[sub_resource type=\"Animation\" id=2]\nresource_name = \"enter_from_left\"\nlength = 0.2\nstep = 0.05\ntracks/0/type = \"value\"\ntracks/0/path = NodePath(\".:rect_position\")\ntracks/0/interp = 1\ntracks/0/loop_wrap = true\ntracks/0/imported = false\ntracks/0/enabled = true\ntracks/0/keys = {\n\"times\": PoolRealArray( 0, 0.2 ),\n\"transitions\": PoolRealArray( 1, 0.57848 ),\n\"update\": 0,\n\"values\": [ Vector2( -1920, 0 ), Vector2( 0, 0 ) ]\n}\n\n[sub_resource type=\"Animation\" id=3]\nresource_name = \"enter_from_right\"\nlength = 0.2\nstep = 0.05\ntracks/0/type = \"value\"\ntracks/0/path = NodePath(\".:rect_position\")\ntracks/0/interp = 1\ntracks/0/loop_wrap = true\ntracks/0/imported = false\ntracks/0/enabled = true\ntracks/0/keys = {\n\"times\": PoolRealArray( 0, 0.2 ),\n\"transitions\": PoolRealArray( 0.57848, 1 ),\n\"update\": 0,\n\"values\": [ Vector2( 1920, 0 ), Vector2( 0, 0 ) ]\n}\n\n[sub_resource type=\"Animation\" id=4]\nlength = 0.2\ntracks/0/type = \"value\"\ntracks/0/path = NodePath(\".:modulate\")\ntracks/0/interp = 1\ntracks/0/loop_wrap = true\ntracks/0/imported = false\ntracks/0/enabled = true\ntracks/0/keys = {\n\"times\": PoolRealArray( 0, 0.2 ),\n\"transitions\": PoolRealArray( 0.482298, 1 ),\n\"update\": 0,\n\"values\": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ]\n}\n\n[sub_resource type=\"Animation\" id=5]\nlength = 0.2\ntracks/0/type = \"value\"\ntracks/0/path = NodePath(\".:modulate\")\ntracks/0/interp = 1\ntracks/0/loop_wrap = true\ntracks/0/imported = false\ntracks/0/enabled = true\ntracks/0/keys = {\n\"times\": PoolRealArray( 0, 0.2 ),\n\"transitions\": PoolRealArray( 1, 0.482298 ),\n\"update\": 0,\n\"values\": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ]\n}\n\n[node name=\"Slide\" type=\"VBoxContainer\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\nmargin_right = 1.0\ntheme = ExtResource( 2 )\nscript = ExtResource( 1 )\n\n[node name=\"AnimationPlayer\" type=\"AnimationPlayer\" parent=\".\"]\nautoplay = \"SETUP\"\nanims/SETUP = SubResource( 1 )\nanims/enter_from_left = SubResource( 2 )\nanims/enter_from_right = SubResource( 3 )\nanims/fade_in = SubResource( 4 )\nanims/fade_out = SubResource( 5 )\n"
  },
  {
    "path": "godot-3-presentation/src/slide/layout/Grid.tscn",
    "content": "[gd_scene format=2]\n\n[node name=\"Grid\" type=\"GridContainer\" index=\"0\"]\n\nanchor_left = 0.0\nanchor_top = 0.0\nanchor_right = 1.0\nanchor_bottom = 1.0\nrect_pivot_offset = Vector2( 0, 0 )\nrect_clip_content = false\nmouse_filter = 1\nmouse_default_cursor_shape = 0\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\nsize_flags_stretch_ratio = 2.0\ncolumns = 2\n_sections_unfolded = [ \"Size Flags\" ]\n\n\n"
  },
  {
    "path": "godot-3-presentation/src/slide/layout/Row.tscn",
    "content": "[gd_scene format=2]\n\n[node name=\"Row\" type=\"HBoxContainer\" index=\"0\"]\nanchor_left = 0.0\nanchor_top = 0.0\nanchor_right = 1.0\nanchor_bottom = 1.0\nrect_pivot_offset = Vector2( 0, 0 )\nrect_clip_content = false\nmouse_filter = 1\nmouse_default_cursor_shape = 0\nsize_flags_horizontal = 1\nsize_flags_vertical = 1\nalignment = 0\n"
  },
  {
    "path": "godot-3-presentation/src/slide/subtitle_font.tres",
    "content": "[gd_resource type=\"DynamicFont\" load_steps=2 format=2]\n\n[ext_resource path=\"res://assets/fonts/montserrat/montserrat-extrabold.ttf\" type=\"DynamicFontData\" id=1]\n\n[resource]\n\nsize = 40\nuse_mipmaps = false\nuse_filter = true\nfont_data = ExtResource( 1 )\n_sections_unfolded = [ \"Extra Spacing\", \"Font\", \"Settings\" ]\n\n"
  },
  {
    "path": "godot-3-presentation/src/slide/widgets/Body.tscn",
    "content": "[gd_scene load_steps=2 format=2]\n\n[ext_resource path=\"res://assets/theme/godot.theme\" type=\"Theme\" id=1]\n\n[node name=\"Body\" type=\"ColorRect\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\nrect_min_size = Vector2( 1920, 210 )\nrect_clip_content = true\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\ntheme = ExtResource( 1 )\ncolor = Color( 0.937255, 0.945098, 0.960784, 1 )\n"
  },
  {
    "path": "godot-3-presentation/src/slide/widgets/Column.tscn",
    "content": "[gd_scene format=2]\n\n[node name=\"Column\" type=\"VBoxContainer\" index=\"0\"]\nanchor_left = 0.0\nanchor_top = 0.0\nanchor_right = 1.0\nanchor_bottom = 1.0\nrect_pivot_offset = Vector2( 0, 0 )\nrect_clip_content = false\nmouse_filter = 1\nmouse_default_cursor_shape = 0\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\nalignment = 0\n_sections_unfolded = [ \"Size Flags\" ]\n"
  },
  {
    "path": "godot-3-presentation/src/slide/widgets/Demo.tscn",
    "content": "[gd_scene load_steps=2 format=2]\n\n[sub_resource type=\"GDScript\" id=1]\n\nscript/source = \"extends Control\n\nexport(String, FILE, \\\"*.tscn, *.scn\\\") var demo_path: = \\\"\\\"\nconst DEMOS_FOLDER = \\\"res://content/demos/\\\"\n\nfunc play() -> void:\n\tif not demo_path.begins_with(\\\"res://\\\"):\n\t\tdemo_path = DEMOS_FOLDER + demo_path\n\tadd_child(load(demo_path).instance())\n\tshow()\n\nfunc unload() -> void:\n\tfor node in get_children():\n\t\tnode.queue_free()\n\nfunc _on_LegacySlide_shown() -> void:\n\tif demo_path:\n\t\tplay()\n\nfunc _on_LegacySlide_hidden() -> void:\n\tunload()\n\"\n_sections_unfolded = [ \"Resource\" ]\n\n[node name=\"Demo\" type=\"Control\"]\n\nanchor_left = 0.0\nanchor_top = 0.0\nanchor_right = 1.0\nanchor_bottom = 1.0\nrect_pivot_offset = Vector2( 0, 0 )\nrect_clip_content = false\nmouse_filter = 0\nmouse_default_cursor_shape = 0\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\nscript = SubResource( 1 )\n_sections_unfolded = [ \"Size Flags\" ]\ndemo_path = \"\"\n\n\n"
  },
  {
    "path": "godot-3-presentation/src/slide/widgets/Footer.gd",
    "content": "tool\nextends Control\n\n\nexport(String, MULTILINE) var text: = \"\" setget set_text\n\nonready var label: Label = $Text\nonready var label_shadow: Label = $Text/Shadow\n\n\nfunc set_text(string: String) -> void:\n\ttext = string\n\tvisible = text != \"\"\n\tif not label:\n\t\tlabel = $Text\n\t\tlabel_shadow = $Text/Shadow\n\t\tif not label:\n\t\t\treturn\n\tlabel.text = string\n\tlabel_shadow.text = string\n\n\nfunc get_translation_data() -> Dictionary:\n\treturn {'text': text}\n"
  },
  {
    "path": "godot-3-presentation/src/slide/widgets/Footer.tscn",
    "content": "[gd_scene load_steps=4 format=2]\n\n[ext_resource path=\"res://assets/theme/sprites/footer_dusk.png\" type=\"Texture\" id=1]\n[ext_resource path=\"res://assets/theme/godot.theme\" type=\"Theme\" id=2]\n[ext_resource path=\"res://src/slide/widgets/Footer.gd\" type=\"Script\" id=3]\n\n[node name=\"Footer\" type=\"TextureRect\" groups=[\n\"translate\",\n]]\nvisible = false\nshow_behind_parent = true\nanchor_top = 1.0\nanchor_right = 1.0\nanchor_bottom = 1.0\nmargin_top = -140.0\nrect_min_size = Vector2( 0, 140 )\nsize_flags_horizontal = 3\ntheme = ExtResource( 2 )\ntexture = ExtResource( 1 )\nexpand = true\nscript = ExtResource( 3 )\n\n[node name=\"Text\" type=\"Label\" parent=\".\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\nmouse_filter = 0\nsize_flags_vertical = 1\ntext = \"Test\"\nalign = 1\nvalign = 1\nautowrap = true\nclip_text = true\n\n[node name=\"Shadow\" type=\"Label\" parent=\"Text\"]\nmodulate = Color( 0.34902, 0, 0.701961, 0.486275 )\nshow_behind_parent = true\nanchor_right = 1.0\nanchor_bottom = 1.0\nmargin_top = 3.0\nmargin_bottom = 3.0\nmouse_filter = 0\nsize_flags_vertical = 1\ntext = \"Test\"\nalign = 1\nvalign = 1\nautowrap = true\nclip_text = true\n"
  },
  {
    "path": "godot-3-presentation/src/slide/widgets/Header/Subtitle.gd",
    "content": "tool\nextends Label\n\n\nsignal visibility_updated(visible)\n\n\nfunc display(string: String) -> void:\n\tvisible = string != \"\"\n\tif not visible:\n\t\treturn\n\ttext = string\n\t$Shadow.text = string\n\nfunc _on_visibility_changed() -> void:\n\temit_signal(\"visibility_updated\", visible)\n"
  },
  {
    "path": "godot-3-presentation/src/slide/widgets/Header/Title.gd",
    "content": "tool\nextends Label\n\n\nonready var shadow_node: = $Shadow\n\n\nfunc display(string: String) -> void:\n\ttext = string\n\tshadow_node.text = string\n\n\nfunc _on_Subtitle_visibility_updated(visible: bool) -> void:\n\tif visible:\n\t\tvalign = Label.VALIGN_BOTTOM\n\t\tshadow_node.valign = Label.VALIGN_BOTTOM\n\telse:\n\t\tvalign = Label.VALIGN_CENTER\n\t\tshadow_node.valign = Label.VALIGN_CENTER\n"
  },
  {
    "path": "godot-3-presentation/src/slide/widgets/Header.gd",
    "content": "tool\nextends Control\n\n\nonready var title_node: = $Column/Title\nonready var title_shadow_node: = $Column/Title/Shadow\nonready var subtitle_node: = $Column/Subtitle\nonready var subtitle_shadow_node: = $Column/Subtitle/Shadow\n\n\nexport var title: = \"\" setget set_title\nexport var subtitle: = \"\" setget set_subtitle\nexport var font_override: Resource\n\nvar font_title_default: Resource = preload(\"res://assets/theme/fonts/title_montserrat.tres\")\nvar font_subtitle_default: Resource = preload(\"res://assets/theme/fonts/subtitle_montserrat.tres\")\nvar font_title_cjk: Resource = preload(\"res://assets/theme/fonts/title_noto.tres\")\nvar font_subtitle_cjk: Resource = preload(\"res://assets/theme/fonts/subtitle_noto.tres\")\n\n\nvar FONTS_DEFAULT: = {\n\ttitle=font_title_default,\n\tsubtitle=font_subtitle_default,\n}\nvar FONTS_CJK: = {\n\ttitle=font_title_cjk,\n\tsubtitle=font_subtitle_cjk,\n}\n\n\nfunc _ready() -> void:\n\tself.title = title\n\tself.subtitle = subtitle\n\n\nfunc set_title(string: String) -> void:\n\ttitle = string\n\tif not title_node:\n\t\treturn\n\ttitle_node.display(string)\n\n\nfunc set_subtitle(string: String) -> void:\n\tsubtitle = string\n\tif not subtitle_node:\n\t\treturn\n\tsubtitle_node.display(string)\n\n\nfunc translate() -> void:\n\tif font_override:\n\t\ttitle_node.set('custom_fonts/font', font_override)\n\t\ttitle_shadow_node.set('custom_fonts/font', font_override)\n\t\treturn\n\n\tvar locale: = TranslationServer.get_locale()\n\tvar fonts: = FONTS_DEFAULT\n\tif locale in ['ja', 'ko', 'zh', 'ar']:\n\t\tfonts = FONTS_CJK\n\n\ttitle_node.set('custom_fonts/font', fonts['title'])\n\ttitle_shadow_node.set('custom_fonts/font', fonts['title'])\n\tsubtitle_node.set('custom_fonts/font', fonts['subtitle'])\n\tsubtitle_shadow_node.set('custom_fonts/font', fonts['subtitle'])\n\n\nfunc get_translation_data() -> Dictionary:\n\tvar data: = { 'title': title }\n\tif subtitle:\n\t\tdata['subtitle'] = subtitle\n\treturn data\n"
  },
  {
    "path": "godot-3-presentation/src/slide/widgets/Header.tscn",
    "content": "[gd_scene load_steps=8 format=2]\n\n[ext_resource path=\"res://assets/theme/fonts/subtitle_montserrat.tres\" type=\"DynamicFont\" id=1]\n[ext_resource path=\"res://src/slide/widgets/Header/Title.gd\" type=\"Script\" id=2]\n[ext_resource path=\"res://src/slide/widgets/Header.gd\" type=\"Script\" id=3]\n[ext_resource path=\"res://assets/theme/fonts/title_montserrat.tres\" type=\"DynamicFont\" id=4]\n[ext_resource path=\"res://assets/theme/sprites/header_dusk.png\" type=\"Texture\" id=5]\n[ext_resource path=\"res://assets/theme/godot.theme\" type=\"Theme\" id=6]\n[ext_resource path=\"res://src/slide/widgets/Header/Subtitle.gd\" type=\"Script\" id=7]\n\n[node name=\"Header\" type=\"TextureRect\" groups=[\n\"translate\",\n]]\nanchor_right = 1.0\nrect_min_size = Vector2( 1920, 210 )\nsize_flags_horizontal = 3\ntheme = ExtResource( 6 )\ntexture = ExtResource( 5 )\nexpand = true\nscript = ExtResource( 3 )\ntitle = \"Title\"\n\n[node name=\"Column\" type=\"VBoxContainer\" parent=\".\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\n\n[node name=\"Title\" type=\"Label\" parent=\"Column\"]\nmargin_right = 1920.0\nmargin_bottom = 210.0\nmouse_filter = 0\nsize_flags_vertical = 3\nsize_flags_stretch_ratio = 2.2\ncustom_fonts/font = ExtResource( 4 )\ntext = \"Title\"\nalign = 1\nvalign = 1\nclip_text = true\nuppercase = true\nscript = ExtResource( 2 )\n\n[node name=\"Shadow\" type=\"Label\" parent=\"Column/Title\"]\nmodulate = Color( 0.351563, 0, 0.703125, 0.487922 )\nshow_behind_parent = true\nanchor_right = 1.0\nanchor_bottom = 1.0\nmargin_top = 6.0\nmargin_bottom = 6.0\nmouse_filter = 0\nsize_flags_vertical = 3\nsize_flags_stretch_ratio = 2.2\ncustom_fonts/font = ExtResource( 4 )\ntext = \"Title\"\nalign = 1\nvalign = 1\nclip_text = true\nuppercase = true\n\n[node name=\"Subtitle\" type=\"Label\" parent=\"Column\"]\nvisible = false\nmargin_top = 144.0\nmargin_right = 1920.0\nmargin_bottom = 210.0\nmouse_filter = 0\nsize_flags_vertical = 3\ncustom_fonts/font = ExtResource( 1 )\ntext = \"Test\"\nalign = 1\nclip_text = true\nscript = ExtResource( 7 )\n\n[node name=\"Shadow\" type=\"Label\" parent=\"Column/Subtitle\"]\nmodulate = Color( 0.34902, 0, 0.701961, 0.486275 )\nshow_behind_parent = true\nanchor_right = 1.0\nanchor_bottom = 1.0\nmargin_top = 4.0\nmargin_bottom = 4.0\nmouse_filter = 0\nsize_flags_vertical = 3\ncustom_fonts/font = ExtResource( 1 )\ntext = \"Test\"\nalign = 1\nclip_text = true\nscript = ExtResource( 7 )\n[connection signal=\"visibility_changed\" from=\"Column/Subtitle\" to=\"Column/Subtitle\" method=\"_on_visibility_changed\"]\n[connection signal=\"visibility_updated\" from=\"Column/Subtitle\" to=\"Column/Title\" method=\"_on_Subtitle_visibility_updated\"]\n"
  },
  {
    "path": "godot-3-presentation/src/slide/widgets/Picture.tscn",
    "content": "[gd_scene format=2]\n\n[node name=\"Picture\" type=\"TextureRect\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\nsize_flags_stretch_ratio = 2.0\nexpand = true\nstretch_mode = 6\n"
  },
  {
    "path": "godot-3-presentation/src/slide/widgets/PictureSlideshow.gd",
    "content": "extends Control\n# Slideshow. Displays one child Control at a time and fades between them\n# at constant time intervals.\n\n\nonready var tween: = $Tween\nonready var timer: = $Timer\n\nexport(float, 0.0, 10.0) var display_duration: = 4.0\nexport(float, 0.0, 1.0) var transition_duration: = 0.4\nexport(Color) var color_pause: = Color('#d9e2e5')\n\nenum Directions {PREVIOUS = -1, CURRENT = 0, NEXT = 1}\n\nconst COLOR_OPAQUE : = Color(\"#ffffffff\")\nconst COLOR_TRANSPARENT : = Color(\"#00ffffff\")\n\nvar paused: = false setget set_paused\n\nvar slides: = []\nvar index_active: = 0 setget set_index_active\n\nvar picture_active: Control\nvar picture_previous: Control\n\n\n\nfunc _ready() -> void:\n\tfor node in get_children():\n\t\tif not node is Control:\n\t\t\tcontinue\n\t\tslides.append(node)\n\n\tfor widget in slides:\n\t\twidget.modulate = COLOR_TRANSPARENT\n\t\twidget.hide()\n\n\ttween.connect(\"tween_completed\", self, \"_on_tween_completed\")\n\tstart()\n\n\nfunc start() -> void:\n\tif not slides:\n\t\treturn\n\tpicture_active = slides[index_active]\n\tpicture_active.modulate = COLOR_OPAQUE\n\tpicture_active.show()\n\ttimer.wait_time = display_duration\n\ttimer.start()\n\n\n# Pause and navigation\nfunc _unhandled_input(event: InputEvent) -> void:\n\tif event.is_action_pressed('ui_accept'):\n\t\tself.paused = not paused\n\t\taccept_event()\n\telif event.is_action_pressed('ui_left'):\n\t\tself.index_active += Directions.PREVIOUS\n\t\taccept_event()\n\telif event.is_action_pressed('ui_right'):\n\t\tself.index_active -= Directions.PREVIOUS\n\t\taccept_event()\n\n\nfunc set_paused(value) -> void:\n\tpaused = value\n\ttimer.paused = value\n\tif paused:\n\t\ttween.stop_all()\n\t\tmodulate = color_pause\n\telse:\n\t\ttween.resume_all()\n\t\tmodulate = COLOR_OPAQUE\n\n\nfunc set_index_active(value: int) -> void:\n\tvar index_previous: = index_active\n\tvar slides_count: = slides.size()\n\tindex_active = (value + slides_count) % slides_count\n\tif index_active != index_previous:\n\t\t_display(index_active, true)\n\n\nfunc _display(index: int, animate: =false) -> void:\n\tpicture_previous = picture_active\n\tpicture_active = slides[index]\n\tif picture_previous == picture_active:\n\t\treturn\n\n\tpicture_previous.modulate = COLOR_OPAQUE\n\tpicture_active.modulate = COLOR_TRANSPARENT\n\tpicture_active.show()\n\n\tif animate:\n\t\ttween.interpolate_property(picture_previous, 'modulate', COLOR_OPAQUE, COLOR_TRANSPARENT, transition_duration, Tween.TRANS_LINEAR, Tween.EASE_IN)\n\t\ttween.interpolate_property(picture_active, 'modulate', COLOR_TRANSPARENT, COLOR_OPAQUE, transition_duration, Tween.TRANS_LINEAR, Tween.EASE_IN)\n\t\ttween.start()\n\n\nfunc _on_tween_completed(object:Object, key:String) -> void:\n\tpicture_previous.hide()\n\ttimer.start()\n\n\nfunc _on_tree_entered() -> void:\n\tstart()\n\n\nfunc _on_Timer_timeout() -> void:\n\tself.index_active += Directions.NEXT\n"
  },
  {
    "path": "godot-3-presentation/src/slide/widgets/PictureSlideshow.tscn",
    "content": "[gd_scene load_steps=2 format=2]\n\n[ext_resource path=\"res://src/slide/widgets/PictureSlideshow.gd\" type=\"Script\" id=1]\n\n[node name=\"PictureSlideshow\" type=\"Control\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\nsize_flags_stretch_ratio = 2.0\nscript = ExtResource( 1 )\n\n[node name=\"Tween\" type=\"Tween\" parent=\".\"]\n\n[node name=\"Timer\" type=\"Timer\" parent=\".\"]\n[connection signal=\"tree_entered\" from=\".\" to=\".\" method=\"_on_tree_entered\"]\n[connection signal=\"timeout\" from=\"Timer\" to=\".\" method=\"_on_Timer_timeout\"]\n"
  },
  {
    "path": "godot-3-presentation/src/slide/widgets/TextBox.gd",
    "content": "tool\nextends Control\n\n\nexport(String, MULTILINE) var text: = \"\" setget set_text\nexport var center: = false setget set_center\n\nonready var _text: = $Text\nvar _text_processed: = \"\"\n\n\nfunc _ready() -> void:\n\tupdate_text()\n\n\nfunc set_text(string: String) -> void:\n\ttext = string\n\tif not _text:\n\t\treturn\n\tupdate_text()\n\n\nfunc set_center(value: bool) -> void:\n\tcenter = value\n\tif not _text:\n\t\treturn\n\tupdate_text()\n\n\nfunc update_text() -> void:\n\tif center:\n\t\t_text_processed = center_text(text)\n\telse:\n\t\t_text_processed = text\n\t$Text.bbcode_text = _text_processed\n\n\nfunc center_text(string: String) -> String:\n\tvar bbcode: = \"\"\n\tfor line in string.split(\"\\n\"):\n\t\tline = \"%s%s%s\" % [\"[center]\", line, \"[/center]\"]\n\t\tbbcode += line + \"\\n\"\n\treturn bbcode\n\n\nfunc get_translation_data() -> Dictionary:\n\treturn { 'text': text }\n"
  },
  {
    "path": "godot-3-presentation/src/slide/widgets/TextBox.tscn",
    "content": "[gd_scene load_steps=3 format=2]\n\n[ext_resource path=\"res://src/slide/widgets/TextBox.gd\" type=\"Script\" id=1]\n[ext_resource path=\"res://assets/theme/godot.theme\" type=\"Theme\" id=2]\n\n[node name=\"TextBox\" type=\"MarginContainer\" groups=[\n\"translate\",\n]]\nmargin_right = 638.0\nmargin_bottom = 1080.0\nsize_flags_horizontal = 3\nsize_flags_vertical = 3\ntheme = ExtResource( 2 )\ncustom_constants/margin_top = 32\ncustom_constants/margin_bottom = 32\nscript = ExtResource( 1 )\n\n[node name=\"Text\" type=\"RichTextLabel\" parent=\".\"]\nmargin_left = 32.0\nmargin_top = 32.0\nmargin_right = 606.0\nmargin_bottom = 1048.0\nbbcode_enabled = true\nscroll_active = false\n\n[node name=\"Shadow\" type=\"RichTextLabel\" parent=\"Text\"]\nvisible = false\nshow_behind_parent = true\nmargin_top = 2.0\nmargin_right = 566.0\nmargin_bottom = 676.0\nsize_flags_horizontal = 3\nbbcode_enabled = true\nbbcode_text = \"Un seul exécutable de [color=#26BFE3]20mo[/color]:\n\n- Téléchargez le [color=#26BFE3]en quelques secondes[/color]\n- [color=#26BFE3]Pas d'installation[/color]\n\nTout ce qui ajoute du poids est en option: templates d'export mobile, mono et C#...\n\"\ntext = \"Un seul exécutable de 20mo:\n\n- Téléchargez le en quelques secondes\n- Pas d'installation\n\nTout ce qui ajoute du poids est en option: templates d'export mobile, mono et C#...\n\"\nscroll_active = false\n"
  },
  {
    "path": "godot-3-presentation/src/slide/widgets/Video.gd",
    "content": "extends VideoPlayer\n# Displays a video and forces its minimum size.\n# Add pause support to VideoPlayer\n\n\nexport(String) var base_path: = 'res://content/video/'\n\n\nfunc _unhandled_input(event: InputEvent) -> void:\n\tif event.is_action_pressed(\"toggle_pause\"):\n\t\tpaused = not paused\n\n\nfunc display(file_name: String, config: = {}) -> void:\n\trect_min_size = Vector2(1280, 720)\n\tif 'video_size' in config.keys():\n\t\tvar video_size: Vector2 = config['video_size']\n\t\trect_min_size = Vector2(video_size['x'], video_size['y'])\n\n\tvisible = not file_name == \"\"\n\tif file_name == \"\":\n\t\tstream = null\n\t\treturn\n\tvar video_path: String = base_path + file_name\n\tstream = load(video_path)\n\tplay()\n\tpaused = false\n"
  },
  {
    "path": "godot-3-presentation/src/slide/widgets/Video.tscn",
    "content": "[gd_scene load_steps=2 format=2]\n\n[ext_resource path=\"res://src/slide/widgets/Video.gd\" type=\"Script\" id=1]\n\n[node name=\"Video\" type=\"VideoPlayer\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\nsize_flags_horizontal = 6\nsize_flags_vertical = 6\nsize_flags_stretch_ratio = 2.0\nscript = ExtResource( 1 )\n"
  },
  {
    "path": "godot-3-presentation/src/slide/widgets/text_edit/TextEdit.gd",
    "content": "tool\nextends TextEdit\n\n\nexport var class_color: = Color(0.6, 0.6, 1.0)\nexport var member_color: = Color(0.6, 1.0, 0.6)\nexport var keyword_color: = Color(1.0, 0.6, 0.6)\nexport var quotes_color: = Color(1.0, 1.0, 0.6)\nexport(String, FILE, \"*.json\") var keyword_data_path: = \"res://slide/widgets/text_edit/keywords.json\"\n\n\nfunc _ready() -> void:\n\tadd_color_region('\"', '\"', quotes_color)\n\tadd_color_region(\"'\", \"'\", quotes_color)\n\tfor c in ClassDB.get_class_list():\n\t\tadd_keyword_color(c, class_color)\n\t\tfor m in ClassDB.class_get_property_list(c):\n\t\t\tfor key in m:\n\t\t\t\tadd_keyword_color(key, member_color)\n\n\tvar file: = File.new()\n\tfile.open(\"res://src/slide/widgets/text_edit/keywords.json\", file.READ)\n\tvar keywords: Dictionary = parse_json(file.get_as_text())\n\tfile.close()\n\tfor k in keywords[\"list\"]:\n\t\tadd_keyword_color(k, keyword_color)\n\n\nfunc _gui_input(event: InputEvent) -> void:\n\tget_tree().set_input_as_handled()\n"
  },
  {
    "path": "godot-3-presentation/src/slide/widgets/text_edit/TextEdit.tscn",
    "content": "[gd_scene load_steps=2 format=2]\n\n[ext_resource path=\"res://src/slide/widgets/text_edit/TextEdit.gd\" type=\"Script\" id=1]\n\n\n[node name=\"TextEdit\" type=\"TextEdit\" index=\"0\"]\n\nanchor_left = 0.0\nanchor_top = 0.0\nanchor_right = 1.0\nanchor_bottom = 1.0\nrect_pivot_offset = Vector2( 0, 0 )\nrect_clip_content = false\nfocus_mode = 2\nmouse_filter = 0\nmouse_default_cursor_shape = 0\nsize_flags_horizontal = 1\nsize_flags_vertical = 1\ntext = \"tool\nextends TextEdit\n\nexport (Color) var class_color: = Color(0.6, 0.6, 1.0)\nexport (Color) var member_color: = Color(0.6, 1.0, 0.6)\nexport (Color) var keyword_color: = Color(1.0, 0.6, 0.6)\nexport (Color) var quotes_color: = Color(1.0, 1.0, 0.6)\nexport (String, FILE, \\\"*.csv\\\") var keyword_data_path\n\nfunc _ready() -> void:\n\tadd_color_region('\\\"', '\\\"', quotes_color)\n\tadd_color_region(\\\"'\\\", \\\"'\\\", quotes_color)\n\tfor c in ClassDB.get_class_list():\n\t\tadd_keyword_color(c, class_color)\n\t\tfor m in ClassDB.class_get_property_list(c):\n\t\t\tfor key in m:\n\t\t\t\tadd_keyword_color(key, member_color)\n\t\n\tvar file: = File.new()\n\tfile.open(keyword_data_path, file.READ)\n\tvar keywords: = file.get_csv_line()\n\tfile.close()\n\tfor k in keywords:\n\t\tadd_keyword_color(k, keyword_color)\"\nreadonly = false\nhighlight_current_line = false\nsyntax_highlighting = true\nshow_line_numbers = false\nhighlight_all_occurrences = false\noverride_selected_font_color = false\ncontext_menu_enabled = true\nsmooth_scrolling = false\nv_scroll_speed = 80.0\nhiding_enabled = 0\nwrap_lines = false\ncaret_block_mode = false\ncaret_blink = false\ncaret_blink_speed = 0.65\ncaret_moving_by_right_click = true\nscript = ExtResource( 1 )\nclass_color = Color( 0.6, 0.6, 1, 1 )\nmember_color = Color( 0.6, 1, 0.6, 1 )\nkeyword_color = Color( 1, 0.6, 0.6, 1 )\nquotes_color = Color( 1, 1, 0.6, 1 )\nkeyword_data_path = \"res://slide/widgets/text_highlight/keywords.csv\"\n\n\n"
  },
  {
    "path": "godot-3-presentation/src/slide/widgets/text_edit/keywords.json",
    "content": "{\n    \"list\": [\n        \"onready\",\n        \"var\",\n        \"export\",\n        \"if\",\n        \"elif\",\n        \"else\",\n        \"for\",\n        \"do\",\n        \"while\",\n        \"match\",\n        \"switch\",\n        \"case\",\n        \"break\",\n        \"continue\",\n        \"pass\",\n        \"return\",\n        \"class\",\n        \"extends\",\n        \"is\",\n        \"self\",\n        \"tool\",\n        \"signal\",\n        \"func\",\n        \"static\",\n        \"const\",\n        \"enum\",\n        \"setget\",\n        \"breakpoint\",\n        \"preload\",\n        \"yield\",\n        \"assert\",\n        \"remote\",\n        \"master\",\n        \"slave\",\n        \"sync\",\n        \"Color8\",\n        \"ColorN\",\n        \"abs\",\n        \"acos\",\n        \"asin\",\n        \"assert\",\n        \"atan\",\n        \"atan2\",\n        \"bytes2var\",\n        \"cartesian2polar\",\n        \"ceil\",\n        \"char\",\n        \"clamp\",\n        \"convert\",\n        \"cos\",\n        \"cosh\",\n        \"db2linear\",\n        \"decials\",\n        \"dectime\",\n        \"def2rad\",\n        \"dict2inst\",\n        \"ease\",\n        \"expo\",\n        \"floor\",\n        \"fmod\",\n        \"fposmod\",\n        \"funcref\",\n        \"hash\",\n        \"inst2dict\",\n        \"instance_from_id\",\n        \"inverse_lerp\",\n        \"is_inf\",\n        \"is_nan\",\n        \"len\",\n        \"lerp\",\n        \"linear2db\",\n        \"load\",\n        \"log\",\n        \"max\",\n        \"min\",\n        \"nearest_po2\",\n        \"parse_json\",\n        \"polar2cartesian\",\n        \"pow\",\n        \"preload\",\n        \"print\",\n        \"print_stack\",\n        \"printerr\",\n        \"printraw\",\n        \"prints\",\n        \"printt\",\n        \"rad2def\",\n        \"rand_range\",\n        \"rand_seed\",\n        \"randf\",\n        \"randi\",\n        \"randomize\",\n        \"range\",\n        \"range_lerp\",\n        \"round\",\n        \"seed\",\n        \"sign\",\n        \"sin\",\n        \"sinh\",\n        \"sqrt\",\n        \"stepify\",\n        \"str\",\n        \"str2var\",\n        \"tan\",\n        \"tanh\",\n        \"to_json\",\n        \"type_exists\",\n        \"typeof\",\n        \"validate_json\",\n        \"var2bytes\",\n        \"var2str\",\n        \"weakref\",\n        \"wrapf\",\n        \"wrapi\",\n        \"yield\"\n    ]\n\n}\n"
  },
  {
    "path": "godot-3-presentation/src/touch_controls/InputEventSwipe.gd",
    "content": "extends InputEvent\nclass_name InputEventSwipe\n\nvar direction := Vector2.ZERO\n"
  },
  {
    "path": "godot-3-presentation/src/touch_controls/TouchControls.gd",
    "content": "extends Control\n\n\nsignal slide_change_requested(direction)\n\nenum Directions {PREVIOUS = -1, NEXT = 1}\n\n\nfunc _ready() -> void:\n\tfor child in get_children():\n\t\tchild.connect(\"touched\", self, \"_on_touch_button_touched\")\n\n\nfunc _on_touch_button_touched(button) -> void:\n\tif button == $TouchButtonLeft:\n\t\temit_signal(\"slide_change_requested\", Directions.PREVIOUS)\n\tif button == $TouchButtonRight:\n\t\temit_signal(\"slide_change_requested\", Directions.NEXT)\n"
  },
  {
    "path": "godot-3-presentation/src/touch_controls/TouchControls.tscn",
    "content": "[gd_scene load_steps=4 format=2]\n\n[ext_resource path=\"res://src/touch_controls/touch_button/TouchButtonRight.tscn\" type=\"PackedScene\" id=1]\n[ext_resource path=\"res://src/touch_controls/touch_button/TouchButtonLeft.tscn\" type=\"PackedScene\" id=2]\n[ext_resource path=\"res://src/touch_controls/TouchControls.gd\" type=\"Script\" id=3]\n\n[node name=\"TouchControls\" type=\"Control\"]\nanchor_right = 1.0\nanchor_bottom = 1.0\nscript = ExtResource( 3 )\n__meta__ = {\n\"_edit_use_anchors_\": false\n}\n\n[node name=\"TouchButtonLeft\" parent=\".\" instance=ExtResource( 2 )]\nrect_min_size = Vector2( 0, 0 )\nfocus_mode = 0\n\n[node name=\"TouchButtonRight\" parent=\".\" instance=ExtResource( 1 )]\nrect_min_size = Vector2( 0, 0 )\nfocus_mode = 0\n"
  },
  {
    "path": "godot-3-presentation/src/touch_controls/swipe_detector/SwipeDetector.gd",
    "content": "extends Node\n# Detects swipe gestures and generates InputEventSwipe events\n# that are fed back into the engine.\n\n\nsignal swipe_canceled(start_position)\n\nexport(float, 1.0, 1.5) var max_diagonal_slope: = 1.3\n\nonready var timer: Timer = $SwipeTimeout\nvar swipe_start_position: = Vector2()\n\n\nfunc _unhandled_input(event: InputEvent) -> void:\n\tif not event is InputEventScreenTouch:\n\t\treturn\n\tif event.pressed:\n\t\t_start_detection(event.position)\n\telif not timer.is_stopped():\n\t\t_end_detection(event.position)\n\n\nfunc _start_detection(position: Vector2) -> void:\n\tswipe_start_position = position\n\ttimer.start()\n\n\nfunc _end_detection(position: Vector2) -> void:\n\ttimer.stop()\n\tvar direction: Vector2 = (position - swipe_start_position).normalized()\n\t# Swipe angle is too steep\n\tif abs(direction.x) + abs(direction.y) >= max_diagonal_slope:\n\t\treturn\n\n\tvar swipe: = InputEventSwipe.new()\n\tif abs(direction.x) > abs(direction.y):\n\t\tswipe.direction = Vector2(-sign(direction.x), 0.0)\n\telse:\n\t\tswipe.direction = Vector2(0.0, -sign(direction.y))\n\tInput.parse_input_event(swipe)\n\n\nfunc _on_Timer_timeout() -> void:\n\temit_signal('swipe_canceled', swipe_start_position)\n"
  },
  {
    "path": "godot-3-presentation/src/touch_controls/swipe_detector/SwipeDetector.tscn",
    "content": "[gd_scene load_steps=2 format=2]\n\n[ext_resource path=\"res://src/touch_controls/swipe_detector/SwipeDetector.gd\" type=\"Script\" id=1]\n\n[node name=\"SwipeDetector\" type=\"Node\"]\nscript = ExtResource( 1 )\n\n[node name=\"SwipeTimeout\" type=\"Timer\" parent=\".\"]\nwait_time = 0.5\none_shot = true\n[connection signal=\"timeout\" from=\"SwipeTimeout\" to=\".\" method=\"_on_Timer_timeout\"]\n"
  },
  {
    "path": "godot-3-presentation/src/touch_controls/touch_button/TouchButton.gd",
    "content": "extends Button\n\n\nsignal touched(button)\n\nonready var tween: = $Tween\n\nconst COLOR_TRANSPARENT: = Color(\"#00ffffff\")\nconst COLOR_OPAQUE: = Color(\"#ffffffff\")\n\nexport var transition_duration: = 0.2\n\n\nfunc _ready() -> void:\n\tmodulate = COLOR_TRANSPARENT\n\n\nfunc _on_mouse_entered() -> void:\n\ttween.interpolate_property(self, 'modulate', modulate, COLOR_OPAQUE, transition_duration, Tween.TRANS_LINEAR, Tween.EASE_IN)\n\ttween.start()\n\n\nfunc _on_mouse_exited() -> void:\n\ttween.interpolate_property(self, 'modulate', modulate, COLOR_TRANSPARENT, transition_duration, Tween.TRANS_LINEAR, Tween.EASE_IN)\n\ttween.start()\n\n\nfunc _on_pressed() -> void:\n\temit_signal(\"touched\", self)\n\tget_tree().set_input_as_handled()\n"
  },
  {
    "path": "godot-3-presentation/src/touch_controls/touch_button/TouchButton.tscn",
    "content": "[gd_scene load_steps=3 format=2]\n\n[ext_resource path=\"res://src/touch_controls/touch_button/TouchButton.gd\" type=\"Script\" id=1]\n[ext_resource path=\"res://src/touch_controls/touch_button/arrow_left.png\" type=\"Texture\" id=2]\n\n[node name=\"TouchButton\" type=\"Button\" index=\"0\"]\nanchor_left = 0.0\nanchor_top = 0.0\nanchor_right = 0.0\nanchor_bottom = 1.0\nmargin_right = 229.0\nrect_min_size = Vector2( 229, 1080 )\nrect_pivot_offset = Vector2( 0, 0 )\nrect_clip_content = false\nmouse_filter = 0\nmouse_default_cursor_shape = 2\nsize_flags_horizontal = 1\nsize_flags_vertical = 1\ntoggle_mode = false\nenabled_focus_mode = 0\nshortcut = null\ngroup = null\nicon = ExtResource( 2 )\nflat = true\nalign = 1\nscript = ExtResource( 1 )\n_sections_unfolded = [ \"Margin\", \"Mouse\", \"Rect\" ]\n\n[node name=\"Tween\" type=\"Tween\" parent=\".\" index=\"0\"]\nrepeat = false\nplayback_process_mode = 1\nplayback_speed = 1.0\nplayback/active = false\nplayback/repeat = false\nplayback/speed = 1.0\n[connection signal=\"mouse_entered\" from=\".\" to=\".\" method=\"_on_mouse_entered\"]\n[connection signal=\"mouse_exited\" from=\".\" to=\".\" method=\"_on_mouse_exited\"]\n[connection signal=\"pressed\" from=\".\" to=\".\" method=\"_on_pressed\"]\n"
  },
  {
    "path": "godot-3-presentation/src/touch_controls/touch_button/TouchButtonLeft.tscn",
    "content": "[gd_scene load_steps=2 format=2]\n\n[ext_resource path=\"res://src/touch_controls/touch_button/TouchButton.tscn\" type=\"PackedScene\" id=1]\n\n[node name=\"TouchButtonLeft\" index=\"0\" instance=ExtResource( 1 )]\n"
  },
  {
    "path": "godot-3-presentation/src/touch_controls/touch_button/TouchButtonRight.tscn",
    "content": "[gd_scene load_steps=3 format=2]\n\n[ext_resource path=\"res://src/touch_controls/touch_button/arrow_right.png\" type=\"Texture\" id=1]\n[ext_resource path=\"res://src/touch_controls/touch_button/TouchButton.tscn\" type=\"PackedScene\" id=2]\n\n[node name=\"TouchButtonRight\" index=\"0\" instance=ExtResource( 2 )]\nanchor_left = 1.0\nanchor_right = 1.0\nmargin_left = -229.0\nmargin_right = 0.0\nicon = ExtResource( 1 )\n"
  },
  {
    "path": "godot-3-presentation/src/touch_controls/touch_button/arrow_left.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/arrow_left.png-d1793ee7cdd1d515b853c051ea2a0381.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://src/touch_controls/touch_button/arrow_left.png\"\ndest_files=[ \"res://.import/arrow_left.png-d1793ee7cdd1d515b853c051ea2a0381.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  },
  {
    "path": "godot-3-presentation/src/touch_controls/touch_button/arrow_right.png.import",
    "content": "[remap]\n\nimporter=\"texture\"\ntype=\"StreamTexture\"\npath=\"res://.import/arrow_right.png-7520efba58a9d03958e79652845d288e.stex\"\nmetadata={\n\"vram_texture\": false\n}\n\n[deps]\n\nsource_file=\"res://src/touch_controls/touch_button/arrow_right.png\"\ndest_files=[ \"res://.import/arrow_right.png-7520efba58a9d03958e79652845d288e.stex\" ]\n\n[params]\n\ncompress/mode=0\ncompress/lossy_quality=0.7\ncompress/hdr_mode=0\ncompress/bptc_ldr=0\ncompress/normal_map=0\nflags/repeat=0\nflags/filter=true\nflags/mipmaps=false\nflags/anisotropic=false\nflags/srgb=2\nprocess/fix_alpha_border=true\nprocess/premult_alpha=false\nprocess/HDR_as_SRGB=false\nprocess/invert_color=false\nstream=false\nsize_limit=0\ndetect_3d=true\nsvg/scale=1.0\n"
  }
]