├── bin
├── .gdignore
├── Before Android export.md
└── after_export.cmd
├── android
├── .build_version
└── plugins
│ ├── GodotFilePicker.gdap
│ ├── GodotFilePicker.release.aar
│ ├── GodotFileSharing.release.aar
│ └── GodotFileSharing.gdap
├── version.gd
├── assets
├── icon-source.txt
├── themes
│ ├── dark
│ │ ├── import_icons.cmd
│ │ ├── column_tear.png
│ │ ├── add.svg
│ │ ├── delete.svg
│ │ ├── open_folder.svg
│ │ ├── open_file.svg
│ │ ├── radio_uncheck.svg
│ │ ├── radio_check.svg
│ │ ├── download.svg
│ │ ├── unchecked_box.svg
│ │ ├── link.svg
│ │ ├── checked_box.svg
│ │ ├── more.svg
│ │ ├── delte.png.import
│ │ ├── add.svg.import
│ │ ├── link.svg.import
│ │ ├── more.svg.import
│ │ ├── share.svg.import
│ │ ├── delete.svg.import
│ │ ├── download.svg.import
│ │ ├── open_file.svg.import
│ │ ├── checked_box.svg.import
│ │ ├── column_tear.png.import
│ │ ├── open_folder.svg.import
│ │ ├── radio_check.svg.import
│ │ ├── radio_uncheck.svg.import
│ │ ├── unchecked_box.svg.import
│ │ └── share.svg
│ ├── white
│ │ ├── import_icons.cmd
│ │ ├── column_tear.png
│ │ ├── add.svg
│ │ ├── delete.svg
│ │ ├── open_folder.svg
│ │ ├── open_file.svg
│ │ ├── radio_uncheck.svg
│ │ ├── radio_check.svg
│ │ ├── download.svg
│ │ ├── unchecked_box.svg
│ │ ├── link.svg
│ │ ├── checked_box.svg
│ │ ├── more.svg
│ │ ├── add.svg.import
│ │ ├── link.svg.import
│ │ ├── more.svg.import
│ │ ├── delete.svg.import
│ │ ├── share.svg.import
│ │ ├── download.svg.import
│ │ ├── open_file.svg.import
│ │ ├── checked_box.svg.import
│ │ ├── column_tear.png.import
│ │ ├── open_folder.svg.import
│ │ ├── radio_check.svg.import
│ │ ├── radio_uncheck.svg.import
│ │ ├── unchecked_box.svg.import
│ │ └── share.svg
│ └── svg_import.py
├── drum.png
├── mask.png
├── piano.png
├── guitar.png
├── trumpet.png
├── icon
│ ├── icon.ico
│ ├── icon.png
│ ├── android
│ │ ├── background.png
│ │ ├── foreground.png
│ │ ├── background.png.import
│ │ └── foreground.png.import
│ ├── musicdj itch image.psd
│ └── icon.png.import
├── tutorial
│ ├── follow.jpg
│ ├── column-btn.webm
│ ├── drag-file.webm
│ ├── hold-tile.webm
│ ├── right-click-tile.webm
│ └── follow.jpg.import
├── fonts
│ └── GidoleFont
│ │ ├── Gidole-Regular.ttf
│ │ ├── Gidolinya-Regular.otf
│ │ └── Readme+Characters.pdf
├── mask.png.import
├── drum.png.import
├── piano.png.import
├── guitar.png.import
└── trumpet.png.import
├── icon.png
├── sounds
├── 0
│ ├── 1.ogg
│ ├── 2.ogg
│ ├── 3.ogg
│ ├── 4.ogg
│ ├── 5.ogg
│ ├── 6.ogg
│ ├── 7.ogg
│ ├── 8.ogg
│ ├── 9.ogg
│ ├── 10.ogg
│ ├── 11.ogg
│ ├── 12.ogg
│ ├── 13.ogg
│ ├── 14.ogg
│ ├── 15.ogg
│ ├── 16.ogg
│ ├── 17.ogg
│ ├── 18.ogg
│ ├── 19.ogg
│ ├── 20.ogg
│ ├── 21.ogg
│ ├── 22.ogg
│ ├── 23.ogg
│ ├── 24.ogg
│ ├── 25.ogg
│ ├── 26.ogg
│ ├── 27.ogg
│ ├── 28.ogg
│ ├── 29.ogg
│ ├── 30.ogg
│ ├── 31.ogg
│ ├── 32.ogg
│ ├── 1.ogg.import
│ ├── 2.ogg.import
│ ├── 3.ogg.import
│ ├── 4.ogg.import
│ ├── 5.ogg.import
│ ├── 6.ogg.import
│ ├── 7.ogg.import
│ ├── 8.ogg.import
│ ├── 9.ogg.import
│ ├── 10.ogg.import
│ ├── 11.ogg.import
│ ├── 12.ogg.import
│ ├── 13.ogg.import
│ ├── 14.ogg.import
│ ├── 15.ogg.import
│ ├── 16.ogg.import
│ ├── 17.ogg.import
│ ├── 18.ogg.import
│ ├── 19.ogg.import
│ ├── 20.ogg.import
│ ├── 21.ogg.import
│ ├── 22.ogg.import
│ ├── 23.ogg.import
│ ├── 24.ogg.import
│ ├── 25.ogg.import
│ ├── 26.ogg.import
│ ├── 27.ogg.import
│ ├── 28.ogg.import
│ ├── 29.ogg.import
│ ├── 30.ogg.import
│ ├── 31.ogg.import
│ └── 32.ogg.import
├── 1
│ ├── 1.ogg
│ ├── 2.ogg
│ ├── 3.ogg
│ ├── 4.ogg
│ ├── 5.ogg
│ ├── 6.ogg
│ ├── 7.ogg
│ ├── 8.ogg
│ ├── 9.ogg
│ ├── 10.ogg
│ ├── 11.ogg
│ ├── 12.ogg
│ ├── 13.ogg
│ ├── 14.ogg
│ ├── 15.ogg
│ ├── 16.ogg
│ ├── 17.ogg
│ ├── 18.ogg
│ ├── 19.ogg
│ ├── 20.ogg
│ ├── 21.ogg
│ ├── 22.ogg
│ ├── 23.ogg
│ ├── 24.ogg
│ ├── 25.ogg
│ ├── 26.ogg
│ ├── 27.ogg
│ ├── 28.ogg
│ ├── 29.ogg
│ ├── 30.ogg
│ ├── 31.ogg
│ ├── 32.ogg
│ ├── 1.ogg.import
│ ├── 2.ogg.import
│ ├── 3.ogg.import
│ ├── 4.ogg.import
│ ├── 5.ogg.import
│ ├── 6.ogg.import
│ ├── 7.ogg.import
│ ├── 8.ogg.import
│ ├── 9.ogg.import
│ ├── 10.ogg.import
│ ├── 11.ogg.import
│ ├── 12.ogg.import
│ ├── 13.ogg.import
│ ├── 14.ogg.import
│ ├── 15.ogg.import
│ ├── 16.ogg.import
│ ├── 17.ogg.import
│ ├── 18.ogg.import
│ ├── 19.ogg.import
│ ├── 20.ogg.import
│ ├── 21.ogg.import
│ ├── 22.ogg.import
│ ├── 23.ogg.import
│ ├── 24.ogg.import
│ ├── 25.ogg.import
│ ├── 26.ogg.import
│ ├── 27.ogg.import
│ ├── 28.ogg.import
│ ├── 29.ogg.import
│ ├── 30.ogg.import
│ ├── 31.ogg.import
│ └── 32.ogg.import
├── 2
│ ├── 1.ogg
│ ├── 2.ogg
│ ├── 3.ogg
│ ├── 4.ogg
│ ├── 5.ogg
│ ├── 6.ogg
│ ├── 7.ogg
│ ├── 8.ogg
│ ├── 9.ogg
│ ├── 10.ogg
│ ├── 11.ogg
│ ├── 12.ogg
│ ├── 13.ogg
│ ├── 14.ogg
│ ├── 15.ogg
│ ├── 16.ogg
│ ├── 17.ogg
│ ├── 18.ogg
│ ├── 19.ogg
│ ├── 20.ogg
│ ├── 21.ogg
│ ├── 22.ogg
│ ├── 23.ogg
│ ├── 24.ogg
│ ├── 25.ogg
│ ├── 26.ogg
│ ├── 27.ogg
│ ├── 28.ogg
│ ├── 29.ogg
│ ├── 30.ogg
│ ├── 31.ogg
│ ├── 32.ogg
│ ├── 1.ogg.import
│ ├── 2.ogg.import
│ ├── 3.ogg.import
│ ├── 4.ogg.import
│ ├── 5.ogg.import
│ ├── 6.ogg.import
│ ├── 7.ogg.import
│ ├── 8.ogg.import
│ ├── 9.ogg.import
│ ├── 10.ogg.import
│ ├── 11.ogg.import
│ ├── 12.ogg.import
│ ├── 13.ogg.import
│ ├── 14.ogg.import
│ ├── 15.ogg.import
│ ├── 16.ogg.import
│ ├── 17.ogg.import
│ ├── 18.ogg.import
│ ├── 19.ogg.import
│ ├── 20.ogg.import
│ ├── 21.ogg.import
│ ├── 22.ogg.import
│ ├── 23.ogg.import
│ ├── 24.ogg.import
│ ├── 25.ogg.import
│ ├── 26.ogg.import
│ ├── 27.ogg.import
│ ├── 28.ogg.import
│ ├── 29.ogg.import
│ ├── 30.ogg.import
│ ├── 31.ogg.import
│ └── 32.ogg.import
└── 3
│ ├── 1.ogg
│ ├── 2.ogg
│ ├── 3.ogg
│ ├── 4.ogg
│ ├── 5.ogg
│ ├── 6.ogg
│ ├── 7.ogg
│ ├── 8.ogg
│ ├── 9.ogg
│ ├── 10.ogg
│ ├── 11.ogg
│ ├── 12.ogg
│ ├── 13.ogg
│ ├── 14.ogg
│ ├── 15.ogg
│ ├── 16.ogg
│ ├── 17.ogg
│ ├── 18.ogg
│ ├── 19.ogg
│ ├── 20.ogg
│ ├── 21.ogg
│ ├── 22.ogg
│ ├── 23.ogg
│ ├── 24.ogg
│ ├── 25.ogg
│ ├── 26.ogg
│ ├── 27.ogg
│ ├── 28.ogg
│ ├── 29.ogg
│ ├── 30.ogg
│ ├── 31.ogg
│ ├── 32.ogg
│ ├── 1.ogg.import
│ ├── 2.ogg.import
│ ├── 3.ogg.import
│ ├── 4.ogg.import
│ ├── 5.ogg.import
│ ├── 6.ogg.import
│ ├── 7.ogg.import
│ ├── 8.ogg.import
│ ├── 9.ogg.import
│ ├── 10.ogg.import
│ ├── 11.ogg.import
│ ├── 12.ogg.import
│ ├── 13.ogg.import
│ ├── 14.ogg.import
│ ├── 15.ogg.import
│ ├── 16.ogg.import
│ ├── 17.ogg.import
│ ├── 18.ogg.import
│ ├── 19.ogg.import
│ ├── 20.ogg.import
│ ├── 21.ogg.import
│ ├── 22.ogg.import
│ ├── 23.ogg.import
│ ├── 24.ogg.import
│ ├── 25.ogg.import
│ ├── 26.ogg.import
│ ├── 27.ogg.import
│ ├── 28.ogg.import
│ ├── 29.ogg.import
│ ├── 30.ogg.import
│ ├── 31.ogg.import
│ └── 32.ogg.import
├── addons
├── Todo_Manager
│ ├── plugin.cfg
│ ├── todo_class.gd
│ ├── todoItem_class.gd
│ ├── ColourPicker.gd
│ ├── Pattern.gd
│ ├── todo.cfg
│ ├── UI
│ │ ├── ColourPicker.tscn
│ │ └── Pattern.tscn
│ ├── Current.gd
│ └── Project.gd
├── AutoExportVersion
│ ├── plugin.cfg
│ └── AutoExportVersion.gd
└── metadata_inspector
│ ├── plugin.cfg
│ ├── RealtimeUpdater.gd
│ └── CustomInspectorPlugin.gd
├── demo.mdj
├── .gitattributes
├── .gitignore
├── default_bus_layout.tres
├── scenes
├── FloatButton.tscn
├── Toast.gd
├── FloatButton.gd
├── dialogs
│ ├── custom_dialog
│ │ ├── anim_fade_out.tres
│ │ ├── anim_fade_in.tres
│ │ ├── CustomDialog.tscn
│ │ ├── anim_reset.tres
│ │ └── DialogScript.gd
│ ├── ConfirmationDialog.gd
│ ├── AboutDialog.gd
│ ├── load_dialog
│ │ └── LoadItem.gd
│ ├── UpdateDialog.gd
│ ├── UpdateDialog.tscn
│ ├── ColumnDialog.gd
│ ├── ColumnDialog.tscn
│ ├── ConfirmationDialog.tscn
│ ├── SettingsDialog.gd
│ ├── ProgressDialog.gd
│ ├── SoundDialog.tscn
│ └── SaveDialog.tscn
├── Toast.tscn
├── Song.gd
└── Column.tscn
├── languages
└── text.csv.import
├── icon.png.import
├── .github
├── ISSUE_TEMPLATE
│ ├── feature_request.yaml
│ └── bug_report.yaml
└── workflows
│ └── itch-release.yml
├── LICENSE
├── README.md
└── CONTRIBUTING.md
/bin/.gdignore:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/android/.build_version:
--------------------------------------------------------------------------------
1 | 3.5.1.stable
2 |
--------------------------------------------------------------------------------
/version.gd:
--------------------------------------------------------------------------------
1 | extends Reference
2 | const VERSION = "v1.5-beta"
3 |
--------------------------------------------------------------------------------
/assets/icon-source.txt:
--------------------------------------------------------------------------------
1 | https://www.flaticon.com/packs/music-instruments-59
--------------------------------------------------------------------------------
/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/icon.png
--------------------------------------------------------------------------------
/assets/themes/dark/import_icons.cmd:
--------------------------------------------------------------------------------
1 | python -u "..\svg_import.py" --fill "#FFFFFF"
--------------------------------------------------------------------------------
/assets/themes/white/import_icons.cmd:
--------------------------------------------------------------------------------
1 | python -u "..\svg_import.py" --fill "#000000DE"
--------------------------------------------------------------------------------
/sounds/0/1.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/1.ogg
--------------------------------------------------------------------------------
/sounds/0/2.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/2.ogg
--------------------------------------------------------------------------------
/sounds/0/3.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/3.ogg
--------------------------------------------------------------------------------
/sounds/0/4.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/4.ogg
--------------------------------------------------------------------------------
/sounds/0/5.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/5.ogg
--------------------------------------------------------------------------------
/sounds/0/6.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/6.ogg
--------------------------------------------------------------------------------
/sounds/0/7.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/7.ogg
--------------------------------------------------------------------------------
/sounds/0/8.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/8.ogg
--------------------------------------------------------------------------------
/sounds/0/9.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/9.ogg
--------------------------------------------------------------------------------
/sounds/1/1.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/1.ogg
--------------------------------------------------------------------------------
/sounds/1/2.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/2.ogg
--------------------------------------------------------------------------------
/sounds/1/3.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/3.ogg
--------------------------------------------------------------------------------
/sounds/1/4.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/4.ogg
--------------------------------------------------------------------------------
/sounds/1/5.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/5.ogg
--------------------------------------------------------------------------------
/sounds/1/6.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/6.ogg
--------------------------------------------------------------------------------
/sounds/1/7.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/7.ogg
--------------------------------------------------------------------------------
/sounds/1/8.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/8.ogg
--------------------------------------------------------------------------------
/sounds/1/9.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/9.ogg
--------------------------------------------------------------------------------
/sounds/2/1.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/1.ogg
--------------------------------------------------------------------------------
/sounds/2/2.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/2.ogg
--------------------------------------------------------------------------------
/sounds/2/3.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/3.ogg
--------------------------------------------------------------------------------
/sounds/2/4.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/4.ogg
--------------------------------------------------------------------------------
/sounds/2/5.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/5.ogg
--------------------------------------------------------------------------------
/sounds/2/6.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/6.ogg
--------------------------------------------------------------------------------
/sounds/2/7.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/7.ogg
--------------------------------------------------------------------------------
/sounds/2/8.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/8.ogg
--------------------------------------------------------------------------------
/sounds/2/9.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/9.ogg
--------------------------------------------------------------------------------
/sounds/3/1.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/1.ogg
--------------------------------------------------------------------------------
/sounds/3/2.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/2.ogg
--------------------------------------------------------------------------------
/sounds/3/3.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/3.ogg
--------------------------------------------------------------------------------
/sounds/3/4.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/4.ogg
--------------------------------------------------------------------------------
/sounds/3/5.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/5.ogg
--------------------------------------------------------------------------------
/sounds/3/6.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/6.ogg
--------------------------------------------------------------------------------
/sounds/3/7.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/7.ogg
--------------------------------------------------------------------------------
/sounds/3/8.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/8.ogg
--------------------------------------------------------------------------------
/sounds/3/9.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/9.ogg
--------------------------------------------------------------------------------
/assets/drum.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/assets/drum.png
--------------------------------------------------------------------------------
/assets/mask.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/assets/mask.png
--------------------------------------------------------------------------------
/assets/piano.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/assets/piano.png
--------------------------------------------------------------------------------
/sounds/0/10.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/10.ogg
--------------------------------------------------------------------------------
/sounds/0/11.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/11.ogg
--------------------------------------------------------------------------------
/sounds/0/12.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/12.ogg
--------------------------------------------------------------------------------
/sounds/0/13.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/13.ogg
--------------------------------------------------------------------------------
/sounds/0/14.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/14.ogg
--------------------------------------------------------------------------------
/sounds/0/15.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/15.ogg
--------------------------------------------------------------------------------
/sounds/0/16.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/16.ogg
--------------------------------------------------------------------------------
/sounds/0/17.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/17.ogg
--------------------------------------------------------------------------------
/sounds/0/18.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/18.ogg
--------------------------------------------------------------------------------
/sounds/0/19.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/19.ogg
--------------------------------------------------------------------------------
/sounds/0/20.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/20.ogg
--------------------------------------------------------------------------------
/sounds/0/21.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/21.ogg
--------------------------------------------------------------------------------
/sounds/0/22.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/22.ogg
--------------------------------------------------------------------------------
/sounds/0/23.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/23.ogg
--------------------------------------------------------------------------------
/sounds/0/24.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/24.ogg
--------------------------------------------------------------------------------
/sounds/0/25.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/25.ogg
--------------------------------------------------------------------------------
/sounds/0/26.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/26.ogg
--------------------------------------------------------------------------------
/sounds/0/27.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/27.ogg
--------------------------------------------------------------------------------
/sounds/0/28.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/28.ogg
--------------------------------------------------------------------------------
/sounds/0/29.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/29.ogg
--------------------------------------------------------------------------------
/sounds/0/30.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/30.ogg
--------------------------------------------------------------------------------
/sounds/0/31.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/31.ogg
--------------------------------------------------------------------------------
/sounds/0/32.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/0/32.ogg
--------------------------------------------------------------------------------
/sounds/1/10.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/10.ogg
--------------------------------------------------------------------------------
/sounds/1/11.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/11.ogg
--------------------------------------------------------------------------------
/sounds/1/12.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/12.ogg
--------------------------------------------------------------------------------
/sounds/1/13.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/13.ogg
--------------------------------------------------------------------------------
/sounds/1/14.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/14.ogg
--------------------------------------------------------------------------------
/sounds/1/15.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/15.ogg
--------------------------------------------------------------------------------
/sounds/1/16.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/16.ogg
--------------------------------------------------------------------------------
/sounds/1/17.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/17.ogg
--------------------------------------------------------------------------------
/sounds/1/18.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/18.ogg
--------------------------------------------------------------------------------
/sounds/1/19.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/19.ogg
--------------------------------------------------------------------------------
/sounds/1/20.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/20.ogg
--------------------------------------------------------------------------------
/sounds/1/21.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/21.ogg
--------------------------------------------------------------------------------
/sounds/1/22.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/22.ogg
--------------------------------------------------------------------------------
/sounds/1/23.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/23.ogg
--------------------------------------------------------------------------------
/sounds/1/24.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/24.ogg
--------------------------------------------------------------------------------
/sounds/1/25.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/25.ogg
--------------------------------------------------------------------------------
/sounds/1/26.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/26.ogg
--------------------------------------------------------------------------------
/sounds/1/27.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/27.ogg
--------------------------------------------------------------------------------
/sounds/1/28.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/28.ogg
--------------------------------------------------------------------------------
/sounds/1/29.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/29.ogg
--------------------------------------------------------------------------------
/sounds/1/30.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/30.ogg
--------------------------------------------------------------------------------
/sounds/1/31.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/31.ogg
--------------------------------------------------------------------------------
/sounds/1/32.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/1/32.ogg
--------------------------------------------------------------------------------
/sounds/2/10.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/10.ogg
--------------------------------------------------------------------------------
/sounds/2/11.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/11.ogg
--------------------------------------------------------------------------------
/sounds/2/12.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/12.ogg
--------------------------------------------------------------------------------
/sounds/2/13.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/13.ogg
--------------------------------------------------------------------------------
/sounds/2/14.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/14.ogg
--------------------------------------------------------------------------------
/sounds/2/15.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/15.ogg
--------------------------------------------------------------------------------
/sounds/2/16.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/16.ogg
--------------------------------------------------------------------------------
/sounds/2/17.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/17.ogg
--------------------------------------------------------------------------------
/sounds/2/18.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/18.ogg
--------------------------------------------------------------------------------
/sounds/2/19.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/19.ogg
--------------------------------------------------------------------------------
/sounds/2/20.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/20.ogg
--------------------------------------------------------------------------------
/sounds/2/21.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/21.ogg
--------------------------------------------------------------------------------
/sounds/2/22.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/22.ogg
--------------------------------------------------------------------------------
/sounds/2/23.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/23.ogg
--------------------------------------------------------------------------------
/sounds/2/24.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/24.ogg
--------------------------------------------------------------------------------
/sounds/2/25.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/25.ogg
--------------------------------------------------------------------------------
/sounds/2/26.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/26.ogg
--------------------------------------------------------------------------------
/sounds/2/27.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/27.ogg
--------------------------------------------------------------------------------
/sounds/2/28.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/28.ogg
--------------------------------------------------------------------------------
/sounds/2/29.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/29.ogg
--------------------------------------------------------------------------------
/sounds/2/30.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/30.ogg
--------------------------------------------------------------------------------
/sounds/2/31.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/31.ogg
--------------------------------------------------------------------------------
/sounds/2/32.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/2/32.ogg
--------------------------------------------------------------------------------
/sounds/3/10.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/10.ogg
--------------------------------------------------------------------------------
/sounds/3/11.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/11.ogg
--------------------------------------------------------------------------------
/sounds/3/12.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/12.ogg
--------------------------------------------------------------------------------
/sounds/3/13.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/13.ogg
--------------------------------------------------------------------------------
/sounds/3/14.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/14.ogg
--------------------------------------------------------------------------------
/sounds/3/15.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/15.ogg
--------------------------------------------------------------------------------
/sounds/3/16.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/16.ogg
--------------------------------------------------------------------------------
/sounds/3/17.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/17.ogg
--------------------------------------------------------------------------------
/sounds/3/18.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/18.ogg
--------------------------------------------------------------------------------
/sounds/3/19.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/19.ogg
--------------------------------------------------------------------------------
/sounds/3/20.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/20.ogg
--------------------------------------------------------------------------------
/sounds/3/21.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/21.ogg
--------------------------------------------------------------------------------
/sounds/3/22.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/22.ogg
--------------------------------------------------------------------------------
/sounds/3/23.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/23.ogg
--------------------------------------------------------------------------------
/sounds/3/24.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/24.ogg
--------------------------------------------------------------------------------
/sounds/3/25.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/25.ogg
--------------------------------------------------------------------------------
/sounds/3/26.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/26.ogg
--------------------------------------------------------------------------------
/sounds/3/27.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/27.ogg
--------------------------------------------------------------------------------
/sounds/3/28.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/28.ogg
--------------------------------------------------------------------------------
/sounds/3/29.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/29.ogg
--------------------------------------------------------------------------------
/sounds/3/30.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/30.ogg
--------------------------------------------------------------------------------
/sounds/3/31.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/31.ogg
--------------------------------------------------------------------------------
/sounds/3/32.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/sounds/3/32.ogg
--------------------------------------------------------------------------------
/assets/guitar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/assets/guitar.png
--------------------------------------------------------------------------------
/assets/trumpet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/assets/trumpet.png
--------------------------------------------------------------------------------
/assets/icon/icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/assets/icon/icon.ico
--------------------------------------------------------------------------------
/assets/icon/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/assets/icon/icon.png
--------------------------------------------------------------------------------
/assets/tutorial/follow.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/assets/tutorial/follow.jpg
--------------------------------------------------------------------------------
/assets/tutorial/column-btn.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/assets/tutorial/column-btn.webm
--------------------------------------------------------------------------------
/assets/tutorial/drag-file.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/assets/tutorial/drag-file.webm
--------------------------------------------------------------------------------
/assets/tutorial/hold-tile.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/assets/tutorial/hold-tile.webm
--------------------------------------------------------------------------------
/assets/icon/android/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/assets/icon/android/background.png
--------------------------------------------------------------------------------
/assets/icon/android/foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/assets/icon/android/foreground.png
--------------------------------------------------------------------------------
/assets/icon/musicdj itch image.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/assets/icon/musicdj itch image.psd
--------------------------------------------------------------------------------
/assets/themes/dark/column_tear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/assets/themes/dark/column_tear.png
--------------------------------------------------------------------------------
/assets/themes/white/column_tear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/assets/themes/white/column_tear.png
--------------------------------------------------------------------------------
/assets/tutorial/right-click-tile.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/assets/tutorial/right-click-tile.webm
--------------------------------------------------------------------------------
/android/plugins/GodotFilePicker.gdap:
--------------------------------------------------------------------------------
1 | [config]
2 |
3 | name="GodotFilePicker"
4 | binary_type="local"
5 | binary="GodotFilePicker.release.aar"
--------------------------------------------------------------------------------
/android/plugins/GodotFilePicker.release.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/android/plugins/GodotFilePicker.release.aar
--------------------------------------------------------------------------------
/android/plugins/GodotFileSharing.release.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/android/plugins/GodotFileSharing.release.aar
--------------------------------------------------------------------------------
/assets/fonts/GidoleFont/Gidole-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/assets/fonts/GidoleFont/Gidole-Regular.ttf
--------------------------------------------------------------------------------
/android/plugins/GodotFileSharing.gdap:
--------------------------------------------------------------------------------
1 | [config]
2 |
3 | name="GodotFileSharing"
4 | binary_type="local"
5 | binary="GodotFileSharing.release.aar"
--------------------------------------------------------------------------------
/assets/fonts/GidoleFont/Gidolinya-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/assets/fonts/GidoleFont/Gidolinya-Regular.otf
--------------------------------------------------------------------------------
/assets/fonts/GidoleFont/Readme+Characters.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pattlebass/Music-DJ/HEAD/assets/fonts/GidoleFont/Readme+Characters.pdf
--------------------------------------------------------------------------------
/assets/themes/dark/add.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/themes/white/add.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/addons/Todo_Manager/plugin.cfg:
--------------------------------------------------------------------------------
1 | [plugin]
2 |
3 | name="Todo Manager"
4 | description="Dock for housing TODO messages."
5 | author="Peter de Vroom"
6 | version="1.2.2"
7 | script="plugin.gd"
8 |
--------------------------------------------------------------------------------
/addons/Todo_Manager/todo_class.gd:
--------------------------------------------------------------------------------
1 | tool
2 | extends Reference
3 |
4 | var pattern : String
5 | var title : String
6 | var content : String
7 | var script_path : String
8 | var line_number : int
9 |
--------------------------------------------------------------------------------
/demo.mdj:
--------------------------------------------------------------------------------
1 | {"data":[[4,11,11,11,11,11,11,19,20,27,28,0,0,0,0],[0,0,0,11,12,11,12,19,20,27,28,0,0,0,0],[0,0,0,0,0,11,12,19,20,27,28,0,0,0,0],[0,3,0,3,0,0,0,19,20,27,28,0,0,0,0]],"format":1,"bpm":80}
--------------------------------------------------------------------------------
/addons/AutoExportVersion/plugin.cfg:
--------------------------------------------------------------------------------
1 | [plugin]
2 |
3 | name="Auto Export Version"
4 | description="Create and automatically update a version script for your project."
5 | author="KoBeWi"
6 | version="1.0"
7 | script="AutoExportVersion.gd"
8 |
--------------------------------------------------------------------------------
/addons/metadata_inspector/plugin.cfg:
--------------------------------------------------------------------------------
1 | [plugin]
2 |
3 | name="Metadata Inspector"
4 | description="From the nodes tab, you can now view metadata and set custom variables."
5 | author="Ballerburg9005"
6 | version="0.2.1"
7 | script="metadata_inspector.gd"
8 |
--------------------------------------------------------------------------------
/bin/Before Android export.md:
--------------------------------------------------------------------------------
1 | Before exporting to Android add this to AndroidManifest.xml > permissions, after read external storage
2 |
5 |
--------------------------------------------------------------------------------
/assets/themes/dark/delete.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/themes/white/delete.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/themes/dark/open_folder.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/themes/white/open_folder.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/themes/dark/open_file.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/themes/dark/radio_uncheck.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/themes/white/open_file.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/themes/white/radio_uncheck.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/mask.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="image"
4 | type="Image"
5 | path="res://.import/mask.png-9f44758278b9ba6cd146ee809a9389e4.image"
6 |
7 | [deps]
8 |
9 | source_file="res://assets/mask.png"
10 | dest_files=[ "res://.import/mask.png-9f44758278b9ba6cd146ee809a9389e4.image" ]
11 |
12 | [params]
13 |
14 |
--------------------------------------------------------------------------------
/assets/themes/dark/radio_check.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/themes/white/radio_check.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/themes/dark/download.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/themes/dark/unchecked_box.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/themes/white/download.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/bin/after_export.cmd:
--------------------------------------------------------------------------------
1 | rmdir /s /q fin\
2 | mkdir fin
3 |
4 | :: Android
5 | move android\MusicDJ_32bit.apk fin\MusicDJ_32bit.apk
6 | move android\MusicDJ_64bit.apk fin\MusicDJ_64bit.apk
7 | :: Windows
8 | 7z a fin/MusicDJ.Windows.zip ./win/*
9 | :: Linux
10 | 7z a fin/MusicDJ.Linux.zip ./linux/*
11 | :: HTML5
12 | 7z a fin/MusicDJ.HTML5.zip ./html5/*
--------------------------------------------------------------------------------
/assets/themes/white/unchecked_box.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/sounds/0/1.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/1.ogg-e57f08b7ad8b17a1c503f3bc48e1eb59.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/1.ogg"
10 | dest_files=[ "res://.import/1.ogg-e57f08b7ad8b17a1c503f3bc48e1eb59.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/2.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/2.ogg-e29e1b178faa22ad26664fc470f8d423.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/2.ogg"
10 | dest_files=[ "res://.import/2.ogg-e29e1b178faa22ad26664fc470f8d423.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/3.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/3.ogg-487c8e657e749203c7458ffe6e347bdc.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/3.ogg"
10 | dest_files=[ "res://.import/3.ogg-487c8e657e749203c7458ffe6e347bdc.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/4.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/4.ogg-915a76999fad1086b007f95ddc543368.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/4.ogg"
10 | dest_files=[ "res://.import/4.ogg-915a76999fad1086b007f95ddc543368.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/5.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/5.ogg-d9bf2802f554a5d6e8d43eaef986b471.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/5.ogg"
10 | dest_files=[ "res://.import/5.ogg-d9bf2802f554a5d6e8d43eaef986b471.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/6.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/6.ogg-8dba1608c7d82870f3843f3894a16b2b.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/6.ogg"
10 | dest_files=[ "res://.import/6.ogg-8dba1608c7d82870f3843f3894a16b2b.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/7.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/7.ogg-c2273c51480eded9267a931bf980ce98.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/7.ogg"
10 | dest_files=[ "res://.import/7.ogg-c2273c51480eded9267a931bf980ce98.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/8.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/8.ogg-d44b2d6c04884ad5cc363a3a415462b5.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/8.ogg"
10 | dest_files=[ "res://.import/8.ogg-d44b2d6c04884ad5cc363a3a415462b5.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/9.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/9.ogg-3f304a94658566e9cd48691d0d616c1e.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/9.ogg"
10 | dest_files=[ "res://.import/9.ogg-3f304a94658566e9cd48691d0d616c1e.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/1.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/1.ogg-3646e0d93277b2394fb74979106f0e46.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/1.ogg"
10 | dest_files=[ "res://.import/1.ogg-3646e0d93277b2394fb74979106f0e46.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/2.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/2.ogg-cfd12ca018cec3137e31b755baf0c110.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/2.ogg"
10 | dest_files=[ "res://.import/2.ogg-cfd12ca018cec3137e31b755baf0c110.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/3.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/3.ogg-0c6e2b8c954a2adcbbf2e7abf7721135.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/3.ogg"
10 | dest_files=[ "res://.import/3.ogg-0c6e2b8c954a2adcbbf2e7abf7721135.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/4.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/4.ogg-b0eebe5e71392a89dd3a54dda95c4431.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/4.ogg"
10 | dest_files=[ "res://.import/4.ogg-b0eebe5e71392a89dd3a54dda95c4431.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/5.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/5.ogg-fdd29f1c6b81a7a9c68ebd0179d68e97.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/5.ogg"
10 | dest_files=[ "res://.import/5.ogg-fdd29f1c6b81a7a9c68ebd0179d68e97.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/6.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/6.ogg-a7e249edb687a2f06e1d75db050570c4.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/6.ogg"
10 | dest_files=[ "res://.import/6.ogg-a7e249edb687a2f06e1d75db050570c4.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/7.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/7.ogg-59c072006e9ef0c5bfc4bb002e048945.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/7.ogg"
10 | dest_files=[ "res://.import/7.ogg-59c072006e9ef0c5bfc4bb002e048945.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/8.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/8.ogg-4ae95d46afce052783c0d9d8e2dbe7ea.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/8.ogg"
10 | dest_files=[ "res://.import/8.ogg-4ae95d46afce052783c0d9d8e2dbe7ea.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/9.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/9.ogg-91fcccaf20dce0294a3b1b54c7104696.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/9.ogg"
10 | dest_files=[ "res://.import/9.ogg-91fcccaf20dce0294a3b1b54c7104696.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/1.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/1.ogg-7c5b053ef9f0195c4552592d3850f218.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/1.ogg"
10 | dest_files=[ "res://.import/1.ogg-7c5b053ef9f0195c4552592d3850f218.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/2.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/2.ogg-ff0a36f0958f20ef7474df028eb1b4f6.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/2.ogg"
10 | dest_files=[ "res://.import/2.ogg-ff0a36f0958f20ef7474df028eb1b4f6.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/3.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/3.ogg-ab9ba269d7eea4bf6ee147f3ca2dda17.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/3.ogg"
10 | dest_files=[ "res://.import/3.ogg-ab9ba269d7eea4bf6ee147f3ca2dda17.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/4.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/4.ogg-6d066658acd2da85bc9f7c69a11ad829.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/4.ogg"
10 | dest_files=[ "res://.import/4.ogg-6d066658acd2da85bc9f7c69a11ad829.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/5.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/5.ogg-66ce607e36c26cd84f7e3924dacac65d.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/5.ogg"
10 | dest_files=[ "res://.import/5.ogg-66ce607e36c26cd84f7e3924dacac65d.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/6.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/6.ogg-8df29502907c8f85ac342d021a621d57.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/6.ogg"
10 | dest_files=[ "res://.import/6.ogg-8df29502907c8f85ac342d021a621d57.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/7.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/7.ogg-b1063b898e4637b8581b57cde9715a26.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/7.ogg"
10 | dest_files=[ "res://.import/7.ogg-b1063b898e4637b8581b57cde9715a26.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/8.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/8.ogg-e551ae8fc34b8c6ef19b1e9afb0b96ac.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/8.ogg"
10 | dest_files=[ "res://.import/8.ogg-e551ae8fc34b8c6ef19b1e9afb0b96ac.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/9.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/9.ogg-5402c620b3476f7938079f8c8d9b3901.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/9.ogg"
10 | dest_files=[ "res://.import/9.ogg-5402c620b3476f7938079f8c8d9b3901.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/1.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/1.ogg-a384a96a40f170231a8c176000fcd49e.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/1.ogg"
10 | dest_files=[ "res://.import/1.ogg-a384a96a40f170231a8c176000fcd49e.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/2.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/2.ogg-9fa1a9dfdcd7302e9195ad5c461ab178.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/2.ogg"
10 | dest_files=[ "res://.import/2.ogg-9fa1a9dfdcd7302e9195ad5c461ab178.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/3.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/3.ogg-10bc508f5e4f83a241a6072b00fa9c31.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/3.ogg"
10 | dest_files=[ "res://.import/3.ogg-10bc508f5e4f83a241a6072b00fa9c31.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/4.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/4.ogg-cc369c6e0c626750d205bbd2b55cce4f.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/4.ogg"
10 | dest_files=[ "res://.import/4.ogg-cc369c6e0c626750d205bbd2b55cce4f.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/5.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/5.ogg-f45cb2ba1f0591d6845229d8a0b3daba.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/5.ogg"
10 | dest_files=[ "res://.import/5.ogg-f45cb2ba1f0591d6845229d8a0b3daba.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/6.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/6.ogg-23abaeb8e5cc9d4d56242dba7bfbc809.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/6.ogg"
10 | dest_files=[ "res://.import/6.ogg-23abaeb8e5cc9d4d56242dba7bfbc809.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/7.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/7.ogg-e205efd464d9a3773f0867f8cc952074.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/7.ogg"
10 | dest_files=[ "res://.import/7.ogg-e205efd464d9a3773f0867f8cc952074.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/8.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/8.ogg-8450eec59bc92a80d44cd70de9e17e76.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/8.ogg"
10 | dest_files=[ "res://.import/8.ogg-8450eec59bc92a80d44cd70de9e17e76.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/9.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/9.ogg-595f5d9e93f4d204339539995a63b3f4.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/9.ogg"
10 | dest_files=[ "res://.import/9.ogg-595f5d9e93f4d204339539995a63b3f4.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/10.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/10.ogg-22482a64f0c18e9cd65dedfaefe33ebc.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/10.ogg"
10 | dest_files=[ "res://.import/10.ogg-22482a64f0c18e9cd65dedfaefe33ebc.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/11.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/11.ogg-594a25da8bf0f3f20e83bc8d6316a540.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/11.ogg"
10 | dest_files=[ "res://.import/11.ogg-594a25da8bf0f3f20e83bc8d6316a540.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/12.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/12.ogg-e4dba2a556a1cefb5b79e8e1e2e0da44.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/12.ogg"
10 | dest_files=[ "res://.import/12.ogg-e4dba2a556a1cefb5b79e8e1e2e0da44.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/13.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/13.ogg-8ff55449f0f8d571884202ba316e376d.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/13.ogg"
10 | dest_files=[ "res://.import/13.ogg-8ff55449f0f8d571884202ba316e376d.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/14.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/14.ogg-733e055ac918063c2d27115b33860901.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/14.ogg"
10 | dest_files=[ "res://.import/14.ogg-733e055ac918063c2d27115b33860901.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/15.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/15.ogg-18fa592ba36bae30e5c3f9f2a44d7252.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/15.ogg"
10 | dest_files=[ "res://.import/15.ogg-18fa592ba36bae30e5c3f9f2a44d7252.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/16.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/16.ogg-b8c540f720c8cb3c8ddaf4c4fbc5eb13.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/16.ogg"
10 | dest_files=[ "res://.import/16.ogg-b8c540f720c8cb3c8ddaf4c4fbc5eb13.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/17.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/17.ogg-1c1f2279db3322d98671cdccd8a81d6f.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/17.ogg"
10 | dest_files=[ "res://.import/17.ogg-1c1f2279db3322d98671cdccd8a81d6f.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/18.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/18.ogg-2b33c7c613b199de47358199d0ee1cf6.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/18.ogg"
10 | dest_files=[ "res://.import/18.ogg-2b33c7c613b199de47358199d0ee1cf6.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/19.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/19.ogg-2e101f9f34b7f46b07acbd24666ce905.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/19.ogg"
10 | dest_files=[ "res://.import/19.ogg-2e101f9f34b7f46b07acbd24666ce905.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/20.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/20.ogg-9945db1263eeff9a45c8fd241b291bec.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/20.ogg"
10 | dest_files=[ "res://.import/20.ogg-9945db1263eeff9a45c8fd241b291bec.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/21.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/21.ogg-4b3d37b0db1aa03e46f70a93730953d8.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/21.ogg"
10 | dest_files=[ "res://.import/21.ogg-4b3d37b0db1aa03e46f70a93730953d8.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/22.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/22.ogg-f0b37329e89309a3198457d4900be528.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/22.ogg"
10 | dest_files=[ "res://.import/22.ogg-f0b37329e89309a3198457d4900be528.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/23.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/23.ogg-058a1d9fb0396fba0050494ea25df8f0.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/23.ogg"
10 | dest_files=[ "res://.import/23.ogg-058a1d9fb0396fba0050494ea25df8f0.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/24.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/24.ogg-74353c612f7b5bca1680d8e04e683453.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/24.ogg"
10 | dest_files=[ "res://.import/24.ogg-74353c612f7b5bca1680d8e04e683453.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/25.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/25.ogg-eeb2424c6258195767b0cb595a8a646a.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/25.ogg"
10 | dest_files=[ "res://.import/25.ogg-eeb2424c6258195767b0cb595a8a646a.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/26.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/26.ogg-88020d935405b96ef385b7b66486c893.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/26.ogg"
10 | dest_files=[ "res://.import/26.ogg-88020d935405b96ef385b7b66486c893.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/27.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/27.ogg-137aed40406cd39d9590b609f41b1f01.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/27.ogg"
10 | dest_files=[ "res://.import/27.ogg-137aed40406cd39d9590b609f41b1f01.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/28.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/28.ogg-d0fff63e40d26ac90c639772d3954711.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/28.ogg"
10 | dest_files=[ "res://.import/28.ogg-d0fff63e40d26ac90c639772d3954711.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/29.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/29.ogg-fb4d898af0827478ed82ea8ca677b6c4.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/29.ogg"
10 | dest_files=[ "res://.import/29.ogg-fb4d898af0827478ed82ea8ca677b6c4.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/30.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/30.ogg-3590f00d2c87081748b755313a2f44c4.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/30.ogg"
10 | dest_files=[ "res://.import/30.ogg-3590f00d2c87081748b755313a2f44c4.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/31.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/31.ogg-a613cc27abd5c75c7d4e9f6687712a3c.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/31.ogg"
10 | dest_files=[ "res://.import/31.ogg-a613cc27abd5c75c7d4e9f6687712a3c.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/0/32.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/32.ogg-b51171694f423d2cc64f72fac81a8d2b.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/0/32.ogg"
10 | dest_files=[ "res://.import/32.ogg-b51171694f423d2cc64f72fac81a8d2b.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/10.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/10.ogg-9c900239fe9ed7398f13715b9d9f96fe.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/10.ogg"
10 | dest_files=[ "res://.import/10.ogg-9c900239fe9ed7398f13715b9d9f96fe.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/11.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/11.ogg-a4aa4b36064181e97e1445483bec24be.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/11.ogg"
10 | dest_files=[ "res://.import/11.ogg-a4aa4b36064181e97e1445483bec24be.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/12.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/12.ogg-681bf95c414eb299a83600f1bc931b2f.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/12.ogg"
10 | dest_files=[ "res://.import/12.ogg-681bf95c414eb299a83600f1bc931b2f.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/13.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/13.ogg-8af3c7c85587bade6f409999d2295fad.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/13.ogg"
10 | dest_files=[ "res://.import/13.ogg-8af3c7c85587bade6f409999d2295fad.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/14.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/14.ogg-7f7c9776f1ca711fcb5e3a2f4d06a91a.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/14.ogg"
10 | dest_files=[ "res://.import/14.ogg-7f7c9776f1ca711fcb5e3a2f4d06a91a.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/15.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/15.ogg-bb20590979ad73b2db6bad67d21d2c07.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/15.ogg"
10 | dest_files=[ "res://.import/15.ogg-bb20590979ad73b2db6bad67d21d2c07.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/16.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/16.ogg-6ed796e1dd608f9de590acab0c14a8bf.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/16.ogg"
10 | dest_files=[ "res://.import/16.ogg-6ed796e1dd608f9de590acab0c14a8bf.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/17.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/17.ogg-496cfe12541be29c1f4d990b58dc1c38.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/17.ogg"
10 | dest_files=[ "res://.import/17.ogg-496cfe12541be29c1f4d990b58dc1c38.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/18.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/18.ogg-97eabc9075b52d8faf4505af28b98b67.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/18.ogg"
10 | dest_files=[ "res://.import/18.ogg-97eabc9075b52d8faf4505af28b98b67.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/19.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/19.ogg-b726392e3f206ab494e29b76e26b0b4e.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/19.ogg"
10 | dest_files=[ "res://.import/19.ogg-b726392e3f206ab494e29b76e26b0b4e.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/20.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/20.ogg-0e504ceabbca1da5f6dc3cda7d902478.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/20.ogg"
10 | dest_files=[ "res://.import/20.ogg-0e504ceabbca1da5f6dc3cda7d902478.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/21.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/21.ogg-42d3935a975346c8e9364dd3f9e8390b.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/21.ogg"
10 | dest_files=[ "res://.import/21.ogg-42d3935a975346c8e9364dd3f9e8390b.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/22.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/22.ogg-dd60b1c012812a3b59bcc433f0ca7a77.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/22.ogg"
10 | dest_files=[ "res://.import/22.ogg-dd60b1c012812a3b59bcc433f0ca7a77.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/23.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/23.ogg-70bde21414b15bf0fa1f0beb911d62c7.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/23.ogg"
10 | dest_files=[ "res://.import/23.ogg-70bde21414b15bf0fa1f0beb911d62c7.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/24.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/24.ogg-41bc3cacd8bd03c3a32522a194a8ff57.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/24.ogg"
10 | dest_files=[ "res://.import/24.ogg-41bc3cacd8bd03c3a32522a194a8ff57.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/25.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/25.ogg-7f7db8fd831e5da65d761e0f8b39b4b6.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/25.ogg"
10 | dest_files=[ "res://.import/25.ogg-7f7db8fd831e5da65d761e0f8b39b4b6.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/26.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/26.ogg-5829ce963de016dad84ec14ad79a9916.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/26.ogg"
10 | dest_files=[ "res://.import/26.ogg-5829ce963de016dad84ec14ad79a9916.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/27.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/27.ogg-26cb1d8a8a00a907d52a6fa1b74f2c10.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/27.ogg"
10 | dest_files=[ "res://.import/27.ogg-26cb1d8a8a00a907d52a6fa1b74f2c10.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/28.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/28.ogg-f33e2fc52635b3e7bd401fe09254e462.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/28.ogg"
10 | dest_files=[ "res://.import/28.ogg-f33e2fc52635b3e7bd401fe09254e462.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/29.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/29.ogg-a0294498c1a44a86496d61577cd8d5ba.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/29.ogg"
10 | dest_files=[ "res://.import/29.ogg-a0294498c1a44a86496d61577cd8d5ba.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/30.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/30.ogg-b82fcf41a8f5c10707efc2df17337468.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/30.ogg"
10 | dest_files=[ "res://.import/30.ogg-b82fcf41a8f5c10707efc2df17337468.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/31.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/31.ogg-dc11e9ebc68d62b56e9d31431118ed6d.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/31.ogg"
10 | dest_files=[ "res://.import/31.ogg-dc11e9ebc68d62b56e9d31431118ed6d.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/1/32.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/32.ogg-121874e0e9b5553ce6e54c3b09e72ddf.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/1/32.ogg"
10 | dest_files=[ "res://.import/32.ogg-121874e0e9b5553ce6e54c3b09e72ddf.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/10.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/10.ogg-c534957369347117efae66764ed26d9f.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/10.ogg"
10 | dest_files=[ "res://.import/10.ogg-c534957369347117efae66764ed26d9f.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/11.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/11.ogg-1061b7fb5337067a1e6ea096d2998495.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/11.ogg"
10 | dest_files=[ "res://.import/11.ogg-1061b7fb5337067a1e6ea096d2998495.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/12.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/12.ogg-d40cb5ad92c8dbf1ab77c84c6da0f46b.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/12.ogg"
10 | dest_files=[ "res://.import/12.ogg-d40cb5ad92c8dbf1ab77c84c6da0f46b.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/13.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/13.ogg-5f3f0446a35a7a4e2337b8c689769171.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/13.ogg"
10 | dest_files=[ "res://.import/13.ogg-5f3f0446a35a7a4e2337b8c689769171.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/14.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/14.ogg-1e21407693efb1c1c36c58cee54d00e6.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/14.ogg"
10 | dest_files=[ "res://.import/14.ogg-1e21407693efb1c1c36c58cee54d00e6.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/15.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/15.ogg-2fda0d94633e6cf747118c577e59aabc.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/15.ogg"
10 | dest_files=[ "res://.import/15.ogg-2fda0d94633e6cf747118c577e59aabc.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/16.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/16.ogg-00caac2051c9935e533d704cdd5c5624.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/16.ogg"
10 | dest_files=[ "res://.import/16.ogg-00caac2051c9935e533d704cdd5c5624.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/17.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/17.ogg-ccd10093e898dc9b78575933ccb3057d.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/17.ogg"
10 | dest_files=[ "res://.import/17.ogg-ccd10093e898dc9b78575933ccb3057d.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/18.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/18.ogg-bc5f72b82e85aaffa78d5bf353bb13e4.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/18.ogg"
10 | dest_files=[ "res://.import/18.ogg-bc5f72b82e85aaffa78d5bf353bb13e4.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/19.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/19.ogg-ff8626300f90296b3c3779d3f022ec68.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/19.ogg"
10 | dest_files=[ "res://.import/19.ogg-ff8626300f90296b3c3779d3f022ec68.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/20.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/20.ogg-49f8de3746acbcfed9ae2980cb71d6ab.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/20.ogg"
10 | dest_files=[ "res://.import/20.ogg-49f8de3746acbcfed9ae2980cb71d6ab.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/21.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/21.ogg-5fea3e26582e5f21f9acfd61978d6638.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/21.ogg"
10 | dest_files=[ "res://.import/21.ogg-5fea3e26582e5f21f9acfd61978d6638.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/22.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/22.ogg-dd4e380280b454b8553122674f20e03d.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/22.ogg"
10 | dest_files=[ "res://.import/22.ogg-dd4e380280b454b8553122674f20e03d.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/23.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/23.ogg-95583b9f239081a946c92f4d29388b83.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/23.ogg"
10 | dest_files=[ "res://.import/23.ogg-95583b9f239081a946c92f4d29388b83.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/24.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/24.ogg-f98d5cfee040eabba61762db2c345608.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/24.ogg"
10 | dest_files=[ "res://.import/24.ogg-f98d5cfee040eabba61762db2c345608.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/25.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/25.ogg-19a938d4aa214e364c7f3c8cccedd3f8.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/25.ogg"
10 | dest_files=[ "res://.import/25.ogg-19a938d4aa214e364c7f3c8cccedd3f8.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/26.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/26.ogg-30a5c96b562e215aa6490302040378ef.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/26.ogg"
10 | dest_files=[ "res://.import/26.ogg-30a5c96b562e215aa6490302040378ef.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/27.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/27.ogg-bf6af64fa4ea7be908474d3787641e4a.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/27.ogg"
10 | dest_files=[ "res://.import/27.ogg-bf6af64fa4ea7be908474d3787641e4a.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/28.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/28.ogg-0f48bc140c18a265cfc09267ca256a24.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/28.ogg"
10 | dest_files=[ "res://.import/28.ogg-0f48bc140c18a265cfc09267ca256a24.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/29.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/29.ogg-a9b30a3d73655c4c58cf45e40585e49c.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/29.ogg"
10 | dest_files=[ "res://.import/29.ogg-a9b30a3d73655c4c58cf45e40585e49c.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/30.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/30.ogg-bf7e8b640518a83f73b3edd2e6e54125.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/30.ogg"
10 | dest_files=[ "res://.import/30.ogg-bf7e8b640518a83f73b3edd2e6e54125.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/31.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/31.ogg-c1439d0ef8497383110c103eebd6a66e.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/31.ogg"
10 | dest_files=[ "res://.import/31.ogg-c1439d0ef8497383110c103eebd6a66e.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/2/32.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/32.ogg-86b3ccc12864d6f44a7542aeb16241a1.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/2/32.ogg"
10 | dest_files=[ "res://.import/32.ogg-86b3ccc12864d6f44a7542aeb16241a1.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/10.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/10.ogg-984300c600b243948279869b0720fda1.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/10.ogg"
10 | dest_files=[ "res://.import/10.ogg-984300c600b243948279869b0720fda1.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/11.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/11.ogg-6342e99f91b38a93d39b61664bb7ba78.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/11.ogg"
10 | dest_files=[ "res://.import/11.ogg-6342e99f91b38a93d39b61664bb7ba78.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/12.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/12.ogg-4afc768de5af03582084868f202939d2.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/12.ogg"
10 | dest_files=[ "res://.import/12.ogg-4afc768de5af03582084868f202939d2.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/13.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/13.ogg-aa22b2d9ac4f9e25c533a62c3abb8d23.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/13.ogg"
10 | dest_files=[ "res://.import/13.ogg-aa22b2d9ac4f9e25c533a62c3abb8d23.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/14.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/14.ogg-31c0683c2ded8117100ff335283077e0.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/14.ogg"
10 | dest_files=[ "res://.import/14.ogg-31c0683c2ded8117100ff335283077e0.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/15.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/15.ogg-84933fef05546da5267e28cb15743f2a.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/15.ogg"
10 | dest_files=[ "res://.import/15.ogg-84933fef05546da5267e28cb15743f2a.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/16.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/16.ogg-391a39c0b36740ba8b3a2dc49195f56c.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/16.ogg"
10 | dest_files=[ "res://.import/16.ogg-391a39c0b36740ba8b3a2dc49195f56c.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/17.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/17.ogg-47f19bcca592de9e0ed5750863b93c4c.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/17.ogg"
10 | dest_files=[ "res://.import/17.ogg-47f19bcca592de9e0ed5750863b93c4c.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/18.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/18.ogg-dc4a8217187975a5816ff722b7e0471b.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/18.ogg"
10 | dest_files=[ "res://.import/18.ogg-dc4a8217187975a5816ff722b7e0471b.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/19.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/19.ogg-b928744f1deccd64d2ce59807ade8631.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/19.ogg"
10 | dest_files=[ "res://.import/19.ogg-b928744f1deccd64d2ce59807ade8631.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/20.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/20.ogg-b1a768dfd7e8125ce59b62fd63a2d45a.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/20.ogg"
10 | dest_files=[ "res://.import/20.ogg-b1a768dfd7e8125ce59b62fd63a2d45a.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/21.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/21.ogg-7bd3190de5d66ed028b87283aff5ce7b.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/21.ogg"
10 | dest_files=[ "res://.import/21.ogg-7bd3190de5d66ed028b87283aff5ce7b.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/22.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/22.ogg-56abec00b1b78e5c4f96748458d8e9de.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/22.ogg"
10 | dest_files=[ "res://.import/22.ogg-56abec00b1b78e5c4f96748458d8e9de.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/23.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/23.ogg-a9c067e7af526394abbd32a4caa6ed7e.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/23.ogg"
10 | dest_files=[ "res://.import/23.ogg-a9c067e7af526394abbd32a4caa6ed7e.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/24.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/24.ogg-30224bf160fdd05c00e71e8242d5b278.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/24.ogg"
10 | dest_files=[ "res://.import/24.ogg-30224bf160fdd05c00e71e8242d5b278.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/25.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/25.ogg-ef9548bc2fe67634f71635fb599ad048.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/25.ogg"
10 | dest_files=[ "res://.import/25.ogg-ef9548bc2fe67634f71635fb599ad048.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/26.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/26.ogg-301a9214c861994a3b94931eaf2d057c.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/26.ogg"
10 | dest_files=[ "res://.import/26.ogg-301a9214c861994a3b94931eaf2d057c.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/27.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/27.ogg-ae79eb1a35dc4398869296322de621c5.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/27.ogg"
10 | dest_files=[ "res://.import/27.ogg-ae79eb1a35dc4398869296322de621c5.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/28.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/28.ogg-48e9b3f3c20e4ea979767aee6b35168d.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/28.ogg"
10 | dest_files=[ "res://.import/28.ogg-48e9b3f3c20e4ea979767aee6b35168d.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/29.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/29.ogg-7378e0e67aa9fa5c3c35fc26483d8ce9.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/29.ogg"
10 | dest_files=[ "res://.import/29.ogg-7378e0e67aa9fa5c3c35fc26483d8ce9.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/30.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/30.ogg-c03535143ede76dac08db794b4e9e1be.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/30.ogg"
10 | dest_files=[ "res://.import/30.ogg-c03535143ede76dac08db794b4e9e1be.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/31.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/31.ogg-6574a5f2c88c352118751567586e636f.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/31.ogg"
10 | dest_files=[ "res://.import/31.ogg-6574a5f2c88c352118751567586e636f.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/sounds/3/32.ogg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="ogg_vorbis"
4 | type="AudioStreamOGGVorbis"
5 | path="res://.import/32.ogg-5f12895b9213ffa625c2d0183c1aa268.oggstr"
6 |
7 | [deps]
8 |
9 | source_file="res://sounds/3/32.ogg"
10 | dest_files=[ "res://.import/32.ogg-5f12895b9213ffa625c2d0183c1aa268.oggstr" ]
11 |
12 | [params]
13 |
14 | loop=false
15 | loop_offset=0
16 |
--------------------------------------------------------------------------------
/addons/Todo_Manager/todoItem_class.gd:
--------------------------------------------------------------------------------
1 | tool
2 | extends Reference
3 |
4 | var script_path : String
5 | var todos : Array
6 |
7 | func get_short_path() -> String:
8 | var temp_array := script_path.rsplit('/', false, 1)
9 | var short_path : String
10 | if !temp_array[1]:
11 | short_path = "(!)" + temp_array[0]
12 | else:
13 | short_path = temp_array[1]
14 | return short_path
15 |
--------------------------------------------------------------------------------
/assets/themes/dark/link.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/themes/white/link.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/addons/Todo_Manager/ColourPicker.gd:
--------------------------------------------------------------------------------
1 | tool
2 | extends HBoxContainer
3 |
4 | var colour : Color
5 | var title : String setget set_title
6 | var index : int
7 |
8 | onready var colour_picker := $TODOColourPickerButton
9 |
10 | func _ready() -> void:
11 | $TODOColourPickerButton.color = colour
12 | $Label.text = title
13 |
14 | func set_title(value: String) -> void:
15 | title = value
16 | $Label.text = value
17 |
--------------------------------------------------------------------------------
/addons/metadata_inspector/RealtimeUpdater.gd:
--------------------------------------------------------------------------------
1 | extends Node
2 |
3 | var counter = 0
4 |
5 | func _ready():
6 | print("REDY")
7 |
8 | func _process(delta):
9 | if counter == 30:
10 | #print(Engine.is_editor_hint())
11 | if( self.get_tree().has_method("is_editor_hint") and not self.get_tree().is_editor_hint()
12 | or( not Engine.is_editor_hint())
13 | ):
14 | print("UPDATE")
15 | counter = (counter+1)%120
16 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Normalize EOL for all files that Git considers text files
2 | * text=auto eol=lf
3 | # Except for bat files, which are Windows only files
4 | *.bat eol=crlf
5 |
6 | # The above only works properly for Git 2.10+, so for older versions
7 | # we need to manually list the binary files we don't want modified.
8 | *.icns binary
9 | *.ico binary
10 | *.jar binary
11 | *.png binary
12 | *.ttf binary
13 | *.tza binary
14 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Godot-specific ignores
2 | .import/
3 | export.cfg
4 | export_presets.cfg
5 |
6 | # Imported translations (automatically generated from CSV files)
7 | *.translation
8 |
9 | # Mono-specific ignores
10 | .mono/
11 | data_*/
12 |
13 | # Android-specific ignores
14 | *.apk
15 | *.TMP
16 | android/build/
17 |
18 | # Other
19 | bin/*
20 | !bin/.gdignore
21 | !bin/after_export.cmd
22 | !bin/Before Android export.md
23 |
24 | *.zip
--------------------------------------------------------------------------------
/default_bus_layout.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="AudioBusLayout" load_steps=3 format=2]
2 |
3 | [sub_resource type="AudioEffectRecord" id=1]
4 | resource_name = "Record"
5 |
6 | [sub_resource type="AudioEffectPitchShift" id=2]
7 | resource_name = "PitchShift"
8 |
9 | [resource]
10 | bus/0/effect/0/effect = SubResource( 1 )
11 | bus/0/effect/0/enabled = true
12 | bus/0/effect/1/effect = SubResource( 2 )
13 | bus/0/effect/1/enabled = true
14 |
--------------------------------------------------------------------------------
/assets/themes/dark/checked_box.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/themes/white/checked_box.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/addons/Todo_Manager/Pattern.gd:
--------------------------------------------------------------------------------
1 | tool
2 | extends HBoxContainer
3 |
4 | var text : String setget set_text
5 | var disabled : bool
6 | var index : int
7 |
8 | onready var line_edit := $LineEdit as LineEdit
9 | onready var remove_button := $RemoveButton as Button
10 |
11 | func _ready() -> void:
12 | line_edit.text = text
13 | remove_button.disabled = disabled
14 |
15 |
16 | func set_text(value: String) -> void:
17 | text = value
18 | if line_edit:
19 | line_edit.text = value
20 |
--------------------------------------------------------------------------------
/scenes/FloatButton.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=3 format=2]
2 |
3 | [ext_resource path="res://scenes/FloatButton.gd" type="Script" id=1]
4 |
5 | [sub_resource type="RectangleShape2D" id=1]
6 | extents = Vector2( 1, 1 )
7 |
8 | [node name="FloatButton" type="Node2D"]
9 | modulate = Color( 1, 1, 1, 0.784314 )
10 | script = ExtResource( 1 )
11 |
12 | [node name="Area2D" type="Area2D" parent="."]
13 |
14 | [node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
15 | shape = SubResource( 1 )
16 |
--------------------------------------------------------------------------------
/addons/Todo_Manager/todo.cfg:
--------------------------------------------------------------------------------
1 | [scripts]
2 |
3 | full_path=false
4 | sort_alphabetical=true
5 | script_colour=Color( 0.8, 0.807843, 0.827451, 1 )
6 | ignore_paths=[ "addons/" ]
7 |
8 | [patterns]
9 |
10 | patterns=[ [ "\\bTODO\\b", Color( 0.588235, 0.945098, 0.678431, 1 ) ], [ "\\bHACK\\b", Color( 0.835294, 0.737255, 0.439216, 1 ) ], [ "\\bFIXME\\b", Color( 0.835294, 0.439216, 0.439216, 1 ) ], [ "\\bDEPRECATED\\b", Color( 0.2, 0.615686, 0.988235, 1 ) ] ]
11 |
12 | [config]
13 |
14 | auto_refresh=true
15 | builtin_enabled=false
16 |
--------------------------------------------------------------------------------
/languages/text.csv.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="csv_translation"
4 | type="Translation"
5 |
6 | [deps]
7 |
8 | files=[ "res://languages/text.en.translation", "res://languages/text.ro.translation", "res://languages/text.id.translation", "res://languages/text.pl.translation" ]
9 |
10 | source_file="res://languages/text.csv"
11 | dest_files=[ "res://languages/text.en.translation", "res://languages/text.ro.translation", "res://languages/text.id.translation", "res://languages/text.pl.translation" ]
12 |
13 | [params]
14 |
15 | compress=true
16 | delimiter=0
17 |
--------------------------------------------------------------------------------
/scenes/Toast.gd:
--------------------------------------------------------------------------------
1 | extends Popup
2 |
3 | class_name Toast
4 |
5 | enum {
6 | LENGTH_SHORT,
7 | LENGTH_LONG
8 | }
9 | const scene_path := "res://scenes/Toast.tscn"
10 | var duration: int
11 | var text: String
12 |
13 |
14 | func popup(bounds := Rect2(0, 0, 0, 0)) -> void:
15 | $"%Label".text = text
16 | .popup(bounds)
17 |
18 | modulate.a = 0
19 | create_tween().tween_property(self, "modulate:a", 1.0, 0.1)
20 |
21 | match duration:
22 | LENGTH_SHORT:
23 | yield(get_tree().create_timer(2), "timeout")
24 | LENGTH_LONG:
25 | yield(get_tree().create_timer(4), "timeout")
26 |
27 | yield(create_tween().tween_property(self, "modulate:a", 0.0, 0.1), "finished")
28 | queue_free()
29 |
--------------------------------------------------------------------------------
/assets/themes/dark/more.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/themes/white/more.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/addons/Todo_Manager/UI/ColourPicker.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=2 format=2]
2 |
3 | [ext_resource path="res://addons/Todo_Manager/ColourPicker.gd" type="Script" id=1]
4 |
5 | [node name="TODOColour" type="HBoxContainer"]
6 | margin_right = 156.0
7 | margin_bottom = 20.0
8 | script = ExtResource( 1 )
9 | __meta__ = {
10 | "_edit_use_anchors_": false
11 | }
12 |
13 | [node name="Label" type="Label" parent="."]
14 | margin_top = 3.0
15 | margin_right = 52.0
16 | margin_bottom = 17.0
17 | text = "#TODO:"
18 |
19 | [node name="TODOColourPickerButton" type="ColorPickerButton" parent="."]
20 | margin_left = 56.0
21 | margin_right = 156.0
22 | margin_bottom = 20.0
23 | rect_min_size = Vector2( 100, 0 )
24 | color = Color( 1, 1, 1, 1 )
25 |
--------------------------------------------------------------------------------
/addons/Todo_Manager/UI/Pattern.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=2 format=2]
2 |
3 | [ext_resource path="res://addons/Todo_Manager/Pattern.gd" type="Script" id=1]
4 |
5 | [node name="Pattern" type="HBoxContainer"]
6 | margin_right = 228.0
7 | margin_bottom = 24.0
8 | script = ExtResource( 1 )
9 | __meta__ = {
10 | "_edit_use_anchors_": false
11 | }
12 |
13 | [node name="LineEdit" type="LineEdit" parent="."]
14 | margin_right = 200.0
15 | margin_bottom = 24.0
16 | rect_min_size = Vector2( 200, 0 )
17 | size_flags_horizontal = 0
18 | text = "\\bTODO\\b.*"
19 |
20 | [node name="RemoveButton" type="Button" parent="."]
21 | margin_left = 204.0
22 | margin_right = 228.0
23 | margin_bottom = 24.0
24 | rect_min_size = Vector2( 24, 24 )
25 | text = "-"
26 |
--------------------------------------------------------------------------------
/scenes/FloatButton.gd:
--------------------------------------------------------------------------------
1 | extends Node2D
2 |
3 | var instrument
4 | var sample
5 |
6 | signal released
7 |
8 | func _input(event: InputEvent) -> void:
9 | if event is InputEventScreenDrag or event is InputEventPanGesture or event is InputEventMouseMotion:
10 | global_position = get_global_mouse_position()
11 | else:
12 | if $Area2D.get_overlapping_areas():
13 | var collided_tile = $Area2D.get_overlapping_areas()[0].get_parent()
14 | var collided_column = collided_tile.get_parent()
15 |
16 | if collided_tile.get_meta("instrument") != instrument:
17 | emit_signal("released")
18 | queue_free()
19 | return
20 | collided_column.set_tile(instrument, sample)
21 | BoomBox.song.set_tile(instrument, collided_column.column_no, sample)
22 |
23 | emit_signal("released")
24 | queue_free()
25 |
--------------------------------------------------------------------------------
/assets/themes/dark/delte.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/delte.png-64074d71b2659c916983b6750af77925.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/themes/dark/delte.png"
13 | dest_files=[ "res://.import/delte.png-64074d71b2659c916983b6750af77925.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | stream=false
32 | size_limit=0
33 | detect_3d=true
34 | svg/scale=1.0
35 |
--------------------------------------------------------------------------------
/icon.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://icon.png"
13 | dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/drum.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/drum.png-e641c621d676c74c27d6604439414f99.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/drum.png"
13 | dest_files=[ "res://.import/drum.png-e641c621d676c74c27d6604439414f99.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/piano.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/piano.png-636ea56561dc65334248f1afebd5337c.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/piano.png"
13 | dest_files=[ "res://.import/piano.png-636ea56561dc65334248f1afebd5337c.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/guitar.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/guitar.png-c66c400b7fc051574e0c1fcc53f7e159.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/guitar.png"
13 | dest_files=[ "res://.import/guitar.png-c66c400b7fc051574e0c1fcc53f7e159.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/icon/icon.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/icon.png-a4526fa92b2aba1f7632c2adbeba4a08.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/icon/icon.png"
13 | dest_files=[ "res://.import/icon.png-a4526fa92b2aba1f7632c2adbeba4a08.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/trumpet.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/trumpet.png-bc945c4c6933f92645fcfb4c678d1da0.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/trumpet.png"
13 | dest_files=[ "res://.import/trumpet.png-bc945c4c6933f92645fcfb4c678d1da0.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/themes/dark/add.svg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/add.svg-2ac0c6ccb56c16d22b40ca44e7d7f33a.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/themes/dark/add.svg"
13 | dest_files=[ "res://.import/add.svg-2ac0c6ccb56c16d22b40ca44e7d7f33a.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/themes/dark/link.svg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/link.svg-d0c43a62c520a87ff01fb342a9973d7e.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/themes/dark/link.svg"
13 | dest_files=[ "res://.import/link.svg-d0c43a62c520a87ff01fb342a9973d7e.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/themes/dark/more.svg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/more.svg-7e4872da474e7dab18f492cee28b8ab1.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/themes/dark/more.svg"
13 | dest_files=[ "res://.import/more.svg-7e4872da474e7dab18f492cee28b8ab1.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/themes/white/add.svg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/add.svg-d43e551e3d173b8279ab6f2daf92d147.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/themes/white/add.svg"
13 | dest_files=[ "res://.import/add.svg-d43e551e3d173b8279ab6f2daf92d147.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/themes/dark/share.svg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/share.svg-eadb0508d2726cc9790568fe981b50a1.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/themes/dark/share.svg"
13 | dest_files=[ "res://.import/share.svg-eadb0508d2726cc9790568fe981b50a1.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/themes/white/link.svg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/link.svg-e2637457e77a051dd300b9c5cc0b57ec.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/themes/white/link.svg"
13 | dest_files=[ "res://.import/link.svg-e2637457e77a051dd300b9c5cc0b57ec.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/themes/white/more.svg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/more.svg-3e9ca08bb44b8a8738d2e12ce08bea07.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/themes/white/more.svg"
13 | dest_files=[ "res://.import/more.svg-3e9ca08bb44b8a8738d2e12ce08bea07.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/tutorial/follow.jpg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/follow.jpg-0ac1d9219a5e421bda585b923f970b31.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/tutorial/follow.jpg"
13 | dest_files=[ "res://.import/follow.jpg-0ac1d9219a5e421bda585b923f970b31.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/themes/dark/delete.svg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/delete.svg-2f0aa2e26078a4af8101383f1f7728fd.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/themes/dark/delete.svg"
13 | dest_files=[ "res://.import/delete.svg-2f0aa2e26078a4af8101383f1f7728fd.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/themes/white/delete.svg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/delete.svg-3064e3332ad43af86d2e218d61f90aa6.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/themes/white/delete.svg"
13 | dest_files=[ "res://.import/delete.svg-3064e3332ad43af86d2e218d61f90aa6.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/themes/white/share.svg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/share.svg-28711fb84fba672122fb1d0b5c0a1c82.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/themes/white/share.svg"
13 | dest_files=[ "res://.import/share.svg-28711fb84fba672122fb1d0b5c0a1c82.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/scenes/dialogs/custom_dialog/anim_fade_out.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Animation" format=2]
2 |
3 | [resource]
4 | resource_name = "fade_out"
5 | length = 0.07
6 | step = 0.01
7 | tracks/0/type = "value"
8 | tracks/0/path = NodePath(".:modulate")
9 | tracks/0/interp = 1
10 | tracks/0/loop_wrap = true
11 | tracks/0/imported = false
12 | tracks/0/enabled = true
13 | tracks/0/keys = {
14 | "times": PoolRealArray( 0, 0.07 ),
15 | "transitions": PoolRealArray( 1, 1 ),
16 | "update": 0,
17 | "values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ]
18 | }
19 | tracks/1/type = "value"
20 | tracks/1/path = NodePath(".:visible")
21 | tracks/1/interp = 1
22 | tracks/1/loop_wrap = true
23 | tracks/1/imported = false
24 | tracks/1/enabled = true
25 | tracks/1/keys = {
26 | "times": PoolRealArray( 0, 0.07 ),
27 | "transitions": PoolRealArray( 1, 1 ),
28 | "update": 1,
29 | "values": [ true, false ]
30 | }
31 |
--------------------------------------------------------------------------------
/assets/themes/dark/download.svg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/download.svg-39507200d987df2bade24614145deff7.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/themes/dark/download.svg"
13 | dest_files=[ "res://.import/download.svg-39507200d987df2bade24614145deff7.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/themes/dark/open_file.svg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/open_file.svg-544df966ef43a8e0afd6ff82dbcfaf4a.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/themes/dark/open_file.svg"
13 | dest_files=[ "res://.import/open_file.svg-544df966ef43a8e0afd6ff82dbcfaf4a.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/themes/white/download.svg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/download.svg-f29e96ced56f0e9f1324fd74a96bf1e4.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/themes/white/download.svg"
13 | dest_files=[ "res://.import/download.svg-f29e96ced56f0e9f1324fd74a96bf1e4.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/themes/white/open_file.svg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/open_file.svg-1406787a09f3dc1560eded5093a47b0e.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/themes/white/open_file.svg"
13 | dest_files=[ "res://.import/open_file.svg-1406787a09f3dc1560eded5093a47b0e.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/icon/android/background.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/background.png-0caf66e27e9068788817690c9a7ab081.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/icon/android/background.png"
13 | dest_files=[ "res://.import/background.png-0caf66e27e9068788817690c9a7ab081.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/icon/android/foreground.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/foreground.png-aaf4f5820df38e7cadc6c40a35d332ea.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/icon/android/foreground.png"
13 | dest_files=[ "res://.import/foreground.png-aaf4f5820df38e7cadc6c40a35d332ea.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/themes/dark/checked_box.svg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/checked_box.svg-89434749fb09c0cff05171bf6176858e.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/themes/dark/checked_box.svg"
13 | dest_files=[ "res://.import/checked_box.svg-89434749fb09c0cff05171bf6176858e.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/themes/dark/column_tear.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/column_tear.png-3cc1c85ee61cdca4219bea3443a855d5.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/themes/dark/column_tear.png"
13 | dest_files=[ "res://.import/column_tear.png-3cc1c85ee61cdca4219bea3443a855d5.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/themes/dark/open_folder.svg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/open_folder.svg-caec39e6ae49291cf0ebea9af1a396e1.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/themes/dark/open_folder.svg"
13 | dest_files=[ "res://.import/open_folder.svg-caec39e6ae49291cf0ebea9af1a396e1.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/themes/dark/radio_check.svg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/radio_check.svg-c475af8fdc6bff904e520305114fed7d.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/themes/dark/radio_check.svg"
13 | dest_files=[ "res://.import/radio_check.svg-c475af8fdc6bff904e520305114fed7d.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/themes/white/checked_box.svg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/checked_box.svg-2a411612a2befafa690be257fd44b520.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/themes/white/checked_box.svg"
13 | dest_files=[ "res://.import/checked_box.svg-2a411612a2befafa690be257fd44b520.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/themes/white/column_tear.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/column_tear.png-4d412fddd07354793ad92fab050ca8c7.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/themes/white/column_tear.png"
13 | dest_files=[ "res://.import/column_tear.png-4d412fddd07354793ad92fab050ca8c7.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/themes/white/open_folder.svg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/open_folder.svg-f9bc5db9ec149becb6aae35006b64e7e.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/themes/white/open_folder.svg"
13 | dest_files=[ "res://.import/open_folder.svg-f9bc5db9ec149becb6aae35006b64e7e.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/themes/white/radio_check.svg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/radio_check.svg-259c0c77f35e22cfbffbfef952ccb3b1.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/themes/white/radio_check.svg"
13 | dest_files=[ "res://.import/radio_check.svg-259c0c77f35e22cfbffbfef952ccb3b1.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/themes/dark/radio_uncheck.svg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/radio_uncheck.svg-8d06067269edf0c24372142a08c20c8d.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/themes/dark/radio_uncheck.svg"
13 | dest_files=[ "res://.import/radio_uncheck.svg-8d06067269edf0c24372142a08c20c8d.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/themes/dark/unchecked_box.svg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/unchecked_box.svg-b54008225742a77990ff472efe79b0ec.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/themes/dark/unchecked_box.svg"
13 | dest_files=[ "res://.import/unchecked_box.svg-b54008225742a77990ff472efe79b0ec.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/themes/white/radio_uncheck.svg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/radio_uncheck.svg-51a110b01c6fb039b713ca09c98f67de.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/themes/white/radio_uncheck.svg"
13 | dest_files=[ "res://.import/radio_uncheck.svg-51a110b01c6fb039b713ca09c98f67de.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/assets/themes/white/unchecked_box.svg.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="StreamTexture"
5 | path="res://.import/unchecked_box.svg-6421880513eed4c57226c5ae2de89ec1.stex"
6 | metadata={
7 | "vram_texture": false
8 | }
9 |
10 | [deps]
11 |
12 | source_file="res://assets/themes/white/unchecked_box.svg"
13 | dest_files=[ "res://.import/unchecked_box.svg-6421880513eed4c57226c5ae2de89ec1.stex" ]
14 |
15 | [params]
16 |
17 | compress/mode=0
18 | compress/lossy_quality=0.7
19 | compress/hdr_mode=0
20 | compress/bptc_ldr=0
21 | compress/normal_map=0
22 | flags/repeat=0
23 | flags/filter=true
24 | flags/mipmaps=false
25 | flags/anisotropic=false
26 | flags/srgb=2
27 | process/fix_alpha_border=true
28 | process/premult_alpha=false
29 | process/HDR_as_SRGB=false
30 | process/invert_color=false
31 | process/normal_map_invert_y=false
32 | stream=false
33 | size_limit=0
34 | detect_3d=true
35 | svg/scale=1.0
36 |
--------------------------------------------------------------------------------
/scenes/dialogs/custom_dialog/anim_fade_in.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Animation" format=2]
2 |
3 | [resource]
4 | resource_name = "fade_in"
5 | length = 0.15
6 | step = 0.01
7 | tracks/0/type = "value"
8 | tracks/0/path = NodePath(".:modulate")
9 | tracks/0/interp = 1
10 | tracks/0/loop_wrap = true
11 | tracks/0/imported = false
12 | tracks/0/enabled = true
13 | tracks/0/keys = {
14 | "times": PoolRealArray( 0, 0.05 ),
15 | "transitions": PoolRealArray( 1, 1 ),
16 | "update": 0,
17 | "values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ]
18 | }
19 | tracks/1/type = "value"
20 | tracks/1/path = NodePath(".:rect_scale")
21 | tracks/1/interp = 1
22 | tracks/1/loop_wrap = true
23 | tracks/1/imported = false
24 | tracks/1/enabled = true
25 | tracks/1/keys = {
26 | "times": PoolRealArray( 0, 0.15 ),
27 | "transitions": PoolRealArray( 0.5, 0.5 ),
28 | "update": 0,
29 | "values": [ Vector2( 0.8, 0.8 ), Vector2( 1, 1 ) ]
30 | }
31 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.yaml:
--------------------------------------------------------------------------------
1 | name: Feature Request
2 | description: Propose a feature
3 | title: ""
4 | labels: [enhancement]
5 |
6 | body:
7 | - type: textarea
8 | id: problem
9 | attributes:
10 | label: Describe the problem you're having
11 | description: Is your feature request related to a problem? Please describe.
12 | placeholder: E.g. I'm always frustrated when [...]
13 | validations:
14 | required: true
15 | - type: textarea
16 | id: solution
17 | attributes:
18 | label: Describe the solution you'd like
19 | description: A clear and concise description of what you want to happen.
20 | validations:
21 | required: true
22 | - type: textarea
23 | id: media
24 | attributes:
25 | label: Screenshots
26 | description: Add any other context or screenshots about the feature request here.
27 | validations:
28 | required: false
29 |
--------------------------------------------------------------------------------
/addons/metadata_inspector/CustomInspectorPlugin.gd:
--------------------------------------------------------------------------------
1 | tool
2 | extends EditorInspectorPlugin
3 |
4 |
5 | # this faux EditorInspectorPlugin is necessary to update the real EditorPlugin at the right time
6 | func can_handle(object):
7 | if object.is_class("Node"):
8 | var metadata_inspector
9 | for n0 in object.get_tree().get_root().get_children():
10 | for n1 in n0.get_children():
11 | if n1.is_class("EditorPlugin"):
12 | if "is_metadata_inspector" in n1:
13 | metadata_inspector = n1
14 | if object.get_filename().length() > 0 and object.get_filename() != object.get_tree().edited_scene_root.filename:
15 | metadata_inspector.set_nonodelabel("Please edit the metadata from inside the scene of this instance.")
16 | else:
17 | metadata_inspector.update_node(object, ["load"], {}, [[], "new"])
18 | #else:
19 | # metadata_inspector.set_nonodelabel("Select a single node to edit and view its metadata.")
20 | return false
21 |
--------------------------------------------------------------------------------
/assets/themes/dark/share.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/themes/white/share.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/scenes/dialogs/ConfirmationDialog.gd:
--------------------------------------------------------------------------------
1 | extends CustomDialog
2 |
3 | signal chose
4 |
5 | func _ready() -> void:
6 | if !OS.is_ok_left_and_cancel_right():
7 | $VBoxContainer/HBoxContainer.move_child(
8 | $VBoxContainer/HBoxContainer/CancelButton,
9 | 0
10 | )
11 | dim = false
12 |
13 | func alert(_title, _subtitle):
14 | $VBoxContainer/Title.text = _title
15 | $VBoxContainer/Subtitle.bbcode_text = _subtitle
16 | popup_centered()
17 |
18 |
19 | func _on_OKButton_pressed():
20 | emit_signal("chose", true)
21 | hide()
22 |
23 |
24 | func _on_CancelButton_pressed():
25 | emit_signal("chose", false)
26 | hide()
27 |
28 |
29 | func _on_ConfirmationDialog_about_to_show():
30 | about_to_show()
31 | $BackPanel.modulate = Color(1, 1, 1, 1)
32 | yield(get_tree(), "idle_frame")
33 | rect_min_size.x = $VBoxContainer.rect_size.x
34 |
35 |
36 | func _on_ConfirmationDialog_popup_hide():
37 | popup_hide()
38 | yield(get_tree().create_timer(0.1), "timeout")
39 | queue_free()
40 |
--------------------------------------------------------------------------------
/scenes/dialogs/custom_dialog/CustomDialog.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=5 format=2]
2 |
3 | [ext_resource path="res://scenes/dialogs/custom_dialog/DialogScript.gd" type="Script" id=1]
4 | [ext_resource path="res://scenes/dialogs/custom_dialog/anim_fade_in.tres" type="Animation" id=2]
5 | [ext_resource path="res://scenes/dialogs/custom_dialog/anim_reset.tres" type="Animation" id=3]
6 | [ext_resource path="res://scenes/dialogs/custom_dialog/anim_fade_out.tres" type="Animation" id=4]
7 |
8 | [node name="CustomDialog" type="PopupDialog"]
9 | margin_right = 40.0
10 | margin_bottom = 40.0
11 | input_pass_on_modal_close_click = false
12 | script = ExtResource( 1 )
13 |
14 | [node name="AnimationPlayer" type="AnimationPlayer" parent="."]
15 | anims/RESET = ExtResource( 3 )
16 | anims/anim_fade_in = ExtResource( 2 )
17 | anims/anim_fade_out = ExtResource( 4 )
18 |
19 | [connection signal="about_to_show" from="." to="." method="about_to_show"]
20 | [connection signal="popup_hide" from="." to="." method="popup_hide"]
21 |
--------------------------------------------------------------------------------
/scenes/Toast.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=2 format=2]
2 |
3 | [ext_resource path="res://scenes/Toast.gd" type="Script" id=1]
4 |
5 | [node name="Toast" type="Popup"]
6 | anchor_left = 0.5
7 | anchor_top = 1.0
8 | anchor_right = 0.5
9 | anchor_bottom = 1.0
10 | margin_left = -512.0
11 | margin_top = -120.0
12 | margin_right = 512.0
13 | margin_bottom = -49.0
14 | theme_type_variation = "Toast"
15 | script = ExtResource( 1 )
16 | __meta__ = {
17 | "_edit_group_": true
18 | }
19 |
20 | [node name="HBoxContainer" type="HBoxContainer" parent="."]
21 | anchor_right = 1.0
22 | anchor_bottom = 1.0
23 | alignment = 1
24 |
25 | [node name="Panel" type="PanelContainer" parent="HBoxContainer"]
26 | margin_left = 458.0
27 | margin_right = 566.0
28 | margin_bottom = 40.0
29 | size_flags_vertical = 0
30 | theme_type_variation = "Toast"
31 |
32 | [node name="Label" type="Label" parent="HBoxContainer/Panel"]
33 | unique_name_in_owner = true
34 | margin_left = 8.0
35 | margin_top = 8.0
36 | margin_right = 100.0
37 | margin_bottom = 32.0
38 | theme_type_variation = "Text"
39 | text = "Lorem ipsum"
40 | align = 1
41 | valign = 1
42 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 pattlebass
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/scenes/dialogs/custom_dialog/anim_reset.tres:
--------------------------------------------------------------------------------
1 | [gd_resource type="Animation" format=2]
2 |
3 | [resource]
4 | resource_name = "RESET"
5 | length = 0.001
6 | tracks/0/type = "value"
7 | tracks/0/path = NodePath(".:modulate")
8 | tracks/0/interp = 1
9 | tracks/0/loop_wrap = true
10 | tracks/0/imported = false
11 | tracks/0/enabled = true
12 | tracks/0/keys = {
13 | "times": PoolRealArray( 0 ),
14 | "transitions": PoolRealArray( 1 ),
15 | "update": 0,
16 | "values": [ Color( 1, 1, 1, 1 ) ]
17 | }
18 | tracks/1/type = "value"
19 | tracks/1/path = NodePath(".:rect_scale")
20 | tracks/1/interp = 1
21 | tracks/1/loop_wrap = true
22 | tracks/1/imported = false
23 | tracks/1/enabled = true
24 | tracks/1/keys = {
25 | "times": PoolRealArray( 0 ),
26 | "transitions": PoolRealArray( 1 ),
27 | "update": 0,
28 | "values": [ Vector2( 1, 1 ) ]
29 | }
30 | tracks/2/type = "value"
31 | tracks/2/path = NodePath(".:visible")
32 | tracks/2/interp = 1
33 | tracks/2/loop_wrap = true
34 | tracks/2/imported = false
35 | tracks/2/enabled = true
36 | tracks/2/keys = {
37 | "times": PoolRealArray( 0 ),
38 | "transitions": PoolRealArray( 1 ),
39 | "update": 1,
40 | "values": [ false ]
41 | }
42 |
--------------------------------------------------------------------------------
/scenes/dialogs/custom_dialog/DialogScript.gd:
--------------------------------------------------------------------------------
1 | extends Popup
2 | class_name CustomDialog
3 |
4 | onready var main = get_parent()
5 | onready var anim_player
6 | var dim := true
7 | var pivot_manual := false
8 |
9 |
10 | func _init():
11 | # Classes cannot have children so I have to add them in code.
12 | # The animation player in the scene is there to make animation easier
13 |
14 | anim_player = AnimationPlayer.new()
15 | anim_player.add_animation("fade_in", preload("res://scenes/dialogs/custom_dialog/anim_fade_in.tres"))
16 | anim_player.add_animation("fade_out", preload("res://scenes/dialogs/custom_dialog/anim_fade_out.tres"))
17 | anim_player.add_animation("reset", preload("res://scenes/dialogs/custom_dialog/anim_reset.tres"))
18 | add_child(anim_player)
19 |
20 | connect("about_to_show", self, "about_to_show")
21 | connect("popup_hide", self, "popup_hide")
22 |
23 |
24 | func about_to_show():
25 | if not pivot_manual:
26 | rect_pivot_offset = rect_size / 2
27 |
28 | if dim:
29 | main.show_shadow()
30 |
31 | anim_player.play("fade_in")
32 |
33 |
34 | func popup_hide():
35 | anim_player.play("fade_out")
36 |
37 | if dim:
38 | main.hide_shadow()
39 |
--------------------------------------------------------------------------------
/assets/themes/svg_import.py:
--------------------------------------------------------------------------------
1 | from os import listdir
2 | from os.path import isfile, join
3 | from os import getcwd
4 | from bs4 import BeautifulSoup
5 | import argparse
6 |
7 | parser = argparse.ArgumentParser(description='Provide all the SVG attributes needed for MusicDJ.')
8 | parser.add_argument('--fill', type=str, default="#000000", metavar="COLOR", help='adds the fill attribute with the specified color (in HEX, with #)')
9 |
10 | args = parser.parse_args()
11 |
12 |
13 | for path in listdir(getcwd()):
14 | if isfile(join(getcwd(), path)) and path.endswith(".svg"):
15 | file = open(path, "r")
16 | svg_string = file.read()
17 | file.close()
18 |
19 | soup = BeautifulSoup(svg_string, "xml")
20 | svg = soup.find("svg")
21 |
22 | svg["fill"] = args.fill
23 |
24 | if not "viewBox" in svg.attrs:
25 | svg["viewBox"] = "0 0 24 24"
26 | print(path + ": added viewbox")
27 |
28 | if svg["height"] != "36" or svg["width"] != "36":
29 | svg["height"] = "36"
30 | svg["width"] = "36"
31 | print(path + ": set dimentions")
32 |
33 | file = open(path, "w")
34 | file.write(str(svg))
35 | file.close()
36 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.yaml:
--------------------------------------------------------------------------------
1 | name: Bug Report
2 | description: File a bug report
3 | title: ""
4 | labels: [bug]
5 |
6 | body:
7 | - type: markdown
8 | attributes:
9 | value: |
10 | Thanks for taking the time to fill out this bug report!
11 | - type: textarea
12 | id: what-happened
13 | attributes:
14 | label: What happened?
15 | description: Also tell us, what did you expect to happen?
16 | placeholder: Tell us what you see!
17 | validations:
18 | required: true
19 | - type: input
20 | id: version
21 | attributes:
22 | label: Version
23 | description: What version of MusicDJ are you running?
24 | placeholder: Eg. v1.2.2-beta
25 | validations:
26 | required: true
27 | - type: input
28 | id: os-version
29 | attributes:
30 | label: OS/Browser version
31 | placeholder: Eg. Chrome 92 on Windows 10 19043
32 | validations:
33 | required: true
34 | - type: input
35 | id: device
36 | attributes:
37 | label: Device information (phone model or PC specs)
38 | placeholder: Eg. Pixel 4
39 | validations:
40 | required: false
41 | - type: textarea
42 | id: media
43 | attributes:
44 | label: Screenshots / Videos
45 | description: You can upload screenshots or videos showing the issue.
46 |
--------------------------------------------------------------------------------
/scenes/dialogs/AboutDialog.gd:
--------------------------------------------------------------------------------
1 | extends CustomDialog
2 |
3 |
4 | onready var rich_text = $VBoxContainer/ScrollContainer/RichTextLabel
5 | onready var scroll_container = $VBoxContainer/ScrollContainer
6 |
7 | var open_meta := true
8 |
9 |
10 | func _ready() -> void:
11 | # RichTextLabel.append_bbcode() doesn't work
12 | # See https://github.com/godotengine/godot/issues/18413
13 | rich_text.bbcode_text = "Version: %s\n\n" % Variables.VERSION + rich_text.bbcode_text
14 |
15 |
16 | func _on_RichTextLabel_meta_clicked(meta) -> void:
17 | if open_meta:
18 | OS.shell_open(meta)
19 |
20 |
21 | func about_to_show() -> void:
22 | scroll_container.scroll_vertical = 0
23 | .about_to_show()
24 |
25 |
26 | func _on_CloseButton_pressed() -> void:
27 | hide()
28 |
29 |
30 | func _on_ScrollContainer_scroll_started() -> void:
31 | open_meta = false
32 |
33 |
34 | func _on_ScrollContainer_scroll_ended() -> void:
35 | open_meta = true
36 |
37 |
38 | func _on_ScrollContainer_gui_input(event: InputEvent) -> void:
39 | if event.is_action_pressed("ui_down", true) or event.is_action_pressed("ui_page_down", true):
40 | scroll_container.scroll_vertical += 2000 * get_process_delta_time()
41 | elif event.is_action_pressed("ui_up", true) or event.is_action_pressed("ui_page_up", true):
42 | scroll_container.scroll_vertical -= 2000 * get_process_delta_time()
43 |
--------------------------------------------------------------------------------
/scenes/Song.gd:
--------------------------------------------------------------------------------
1 | class_name Song
2 |
3 | var format := 1
4 | var bpm := 80
5 | var data := [[], [], [], []]
6 | var used_columns := [-1]
7 |
8 |
9 | func convert_to_json() -> String:
10 | return to_json(
11 | {
12 | "format": format,
13 | "bpm": bpm,
14 | "data": data
15 | }
16 | )
17 |
18 |
19 | func from(song: Dictionary):
20 | if song.has("format"):
21 | format = song.format
22 | if song.has("bpm"):
23 | bpm = song.bpm
24 | if song.has("data"):
25 | data = song.data
26 |
27 | return self
28 |
29 |
30 | func set_tile(instrument: int, column_no:int, sample_index: int) -> void:
31 | data[instrument][column_no] = sample_index
32 |
33 | if sample_index == 0:
34 | # If all buttons in a column are clear remove that column from the play list
35 | var uses = 0
36 | for i in 4:
37 | if data[i][column_no]:
38 | uses += 1
39 | break
40 | if uses == 0:
41 | used_columns.erase(column_no)
42 | else:
43 | if not used_columns.has(column_no):
44 | used_columns.append(column_no)
45 |
46 |
47 | func add_column() -> void:
48 | for i in data:
49 | i.append(0)
50 |
51 |
52 | func remove_column(column_no: int) -> void:
53 | for i in 4:
54 | data[i].pop_back()
55 | used_columns.erase(column_no)
56 |
57 |
58 | func clear_column(column_no: int) -> void:
59 | used_columns.erase(column_no)
60 | for i in 4:
61 | data[i][column_no] = 0
62 |
--------------------------------------------------------------------------------
/addons/Todo_Manager/Current.gd:
--------------------------------------------------------------------------------
1 | tool
2 | extends Panel
3 |
4 | signal tree_built # used for debugging
5 |
6 | const Todo := preload("res://addons/Todo_Manager/todo_class.gd")
7 | const TodoItem := preload("res://addons/Todo_Manager/todoItem_class.gd")
8 |
9 | var sort_alphabetical := true
10 |
11 | onready var tree := $Tree as Tree
12 |
13 | func build_tree(todo_item : TodoItem, patterns : Array) -> void:
14 | tree.clear()
15 | var root := tree.create_item()
16 | root.set_text(0, "Scripts")
17 | var script := tree.create_item(root)
18 | script.set_text(0, todo_item.get_short_path() + " -------")
19 | script.set_metadata(0, todo_item)
20 | for todo in todo_item.todos:
21 | var item := tree.create_item(script)
22 | var content_header : String = todo.content
23 | if "\n" in todo.content:
24 | content_header = content_header.split("\n")[0] + "..."
25 | item.set_text(0, "(%0) - %1".format([todo.line_number, content_header], "%_"))
26 | item.set_tooltip(0, todo.content)
27 | item.set_metadata(0, todo)
28 | for pattern in patterns:
29 | if pattern[0] == todo.pattern:
30 | item.set_custom_color(0, pattern[1])
31 | emit_signal("tree_built")
32 |
33 |
34 | func sort_alphabetical(a, b) -> bool:
35 | if a.script_path > b.script_path:
36 | return true
37 | else:
38 | return false
39 |
40 | func sort_backwards(a, b) -> bool:
41 | if a.script_path < b.script_path:
42 | return true
43 | else:
44 | return false
45 |
46 |
--------------------------------------------------------------------------------
/scenes/dialogs/load_dialog/LoadItem.gd:
--------------------------------------------------------------------------------
1 | extends VBoxContainer
2 |
3 |
4 | onready var button = $Button
5 | onready var open_button = $ActionsContainer/OpenButton
6 | onready var download_button = $ActionsContainer/DownloadButton
7 | onready var share_button = $ActionsContainer/ShareButton
8 | onready var link_button = $ActionsContainer/LinkButton
9 | onready var delete_button = $ActionsContainer/DeleteButton
10 |
11 | signal expanded
12 |
13 |
14 | func _ready() -> void:
15 | var theme_path = "res://assets/themes/%s/" % Variables.options.theme
16 |
17 | open_button.get_node("VBox/Icon").texture = load(theme_path + "open_file.svg")
18 | download_button.get_node("VBox/Icon").texture = load(theme_path + "download.svg")
19 | share_button.get_node("VBox/Icon").texture = load(theme_path + "share.svg")
20 | link_button.get_node("VBox/Icon").texture = load(theme_path + "link.svg")
21 | delete_button.get_node("VBox/Icon").texture = load(theme_path + "delete.svg")
22 |
23 | $ActionsContainer.hide()
24 |
25 | func _on_Button_toggled(button_pressed: bool) -> void:
26 | if button_pressed:
27 | $ActionsContainer.modulate = Color.transparent
28 | var tween = create_tween()
29 | tween.tween_property(
30 | self,
31 | "rect_min_size:y",
32 | button.rect_size.y + get("custom_constants/separation") + $ActionsContainer.rect_size.y,
33 | 0.1
34 | )
35 | tween.tween_callback($ActionsContainer, "show")
36 | tween.tween_callback(self, "emit_signal", ["expanded"])
37 | tween.tween_property($ActionsContainer, "modulate", Color.white, 0.1)
38 |
39 | open_button.call_deferred("grab_focus")
40 | else:
41 | var tween = create_tween()
42 | tween.tween_property($ActionsContainer, "modulate", Color.transparent, 0.1)
43 | tween.tween_callback($ActionsContainer, "hide")
44 | tween.tween_property(self, "rect_min_size:y", 0.0, 0.1)
45 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # MusicDJ recreated
2 |
3 | This is a recreation of the app with the same name found on Sony Ericsson devices of the 2000s.
4 |
5 | 
6 |
7 |
8 | ## Features
9 | * Create songs using the original samples
10 | * Open original MusicDJ MIDI files
11 | * Export the songs to the .wav format
12 | * Both a Dark and a White theme are available, more in the future
13 |
14 | ## To be added
15 | * Higher quality samples
16 | * Custom tempo
17 |
18 | ## Download
19 |
20 | * [Android (64bit)](https://github.com/pattlebass/Music-Dj/releases/latest/download/MusicDJ_64bit.apk) - Recommended
21 | * [Android (32bit)](https://github.com/pattlebass/Music-Dj/releases/latest/download/MusicDJ_32bit.apk)
22 | * [Windows](https://github.com/pattlebass/Music-Dj/releases/latest/download/MusicDJ.Windows.zip)
23 | * [Linux](https://github.com/pattlebass/Music-Dj/releases/latest/download/MusicDJ.Linux.zip) (You may have to give it executable permissions)
24 | * [HTML5 (Browser)](https://pattlebass.itch.io/musicdj) (Can be buggy on mobile devices)
25 |
26 | You might get warnings about this app not being safe. That's because I'm not a verified publisher and there is nothing I can do at the moment.
27 |
28 | On Android, you'll need to allow apps from unknown sources. If you don't know how to do that, search a tutorial for your specific Android version.
29 |
30 | ## Contributing
31 | See [contributing.md](https://github.com/pattlebass/Music-DJ/blob/main/CONTRIBUTING.md) for instructions.
32 |
33 | ## Donate
34 | If you appreciate the work that has been put into making this app, consider donating.
35 | [Donate](https://www.paypal.me/pattlebass)
36 |
37 | ## Credit for icons and fonts
38 | Icons made by [Freepik](https://www.flaticon.com/authors/freepik) from [www.flaticon.com](https://www.flaticon.com/).
39 |
40 | Gidole Font by [Andreas Larsen](https://twitter.com/larsenwork). [License](/assets/fonts/GidoleFont/License.txt)
41 |
42 | ## Social media
43 | * Twitter [@pattlebass_dev](https://twitter.com/pattlebass_dev).
44 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing
2 | Here are the rules if you want to contribute to this repository.
3 |
4 | 1. You should first open an issue describing the changes you want. You should also mention that you want to open a pull request.
5 | 2. One feature per issue/PR. It makes reviewing and merging easier.
6 | 3. When writing code, make sure to follow the [style guide](#gdscript-style-guide).
7 |
8 | ## GDScript style guide
9 | It's basically [this](https://docs.godotengine.org/en/3.6/tutorials/scripting/gdscript/gdscript_styleguide.html) but with a few changes.
10 |
11 | ### Summary
12 | 1. Use snake_case for variable names, functions and signals.
13 | 2. Signals should be in the past tense.
14 | 3. Nodes, classes and file names should use PascalCase.
15 | 4. Use 2 newlines between functions, unless they are short.
16 | 5. Use static typing as much as you can.
17 |
18 | ## Adding a new language
19 | 1. Open an issue with the `localization` label.
20 | 3. Download [this spreadsheet](https://docs.google.com/spreadsheets/d/1VEE4aROwNFXsZTRbMOShlv2E8XcYVBYYEVsRbFYKBog/edit?usp=sharing) and add your translations.
21 | 4. Export to CSV. I recommend Google Sheets or LibreOffice. Microsoft Excel doesn't support UTF-8 encoding.
22 | 5. Fork this repository and then clone your fork. If you don't want to clone it or download Godot, you can skip steps 7 and 8 and modify these files manually: `languages/text.csv`, `languages/text.csv.import` and `project.godot`. See [this commit](https://github.com/pattlebass/Music-DJ/commit/0f731ceb8ef40bb3e9e6b50cb445cd1630486db5) and [this one](https://github.com/pattlebass/Music-DJ/commit/1951c9809aba8a980f3357f04870d24ce758394e) (ignore line 87).
23 | 6. Replace `languages/text.csv` with the file you exported.
24 | 7. Open the project with the Godot version mentioned in [this file](https://github.com/pattlebass/Music-DJ/blob/main/android/.build_version).
25 | 8. In the top left, Project > Project Settings > Localization > Add > Select the language you added.
26 | 9. Commit and push the changes to your fork.
27 | 10. That's it. Now all you have to do is open a Pull Request which mentions that it fixes the issue you opened (e.g. Fixes #10).
28 | 11. Optional: If you want to update the translation whenever there are changes, I suggest subscribing to [this discussion](https://github.com/pattlebass/Music-DJ/discussions/9).
29 |
--------------------------------------------------------------------------------
/scenes/dialogs/UpdateDialog.gd:
--------------------------------------------------------------------------------
1 | extends CustomDialog
2 |
3 | var asking_permission := true
4 |
5 | func _ready() -> void:
6 | if not OS.has_feature("standalone") or OS.get_name() == "HTML5":
7 | return
8 |
9 | if !OS.is_ok_left_and_cancel_right():
10 | $VBoxContainer/HBoxContainer.move_child(
11 | $VBoxContainer/HBoxContainer/CloseButton,
12 | 0
13 | )
14 |
15 | if Variables.options.check_updates == null:
16 | $VBoxContainer/Title.text = "DIALOG_UPDATE_TITLE_ASK"
17 | $VBoxContainer/Body.bbcode_text = tr("DIALOG_UPDATE_BODY_ASK") % "https://docs.github.com/en/site-policy/privacy-policies/github-privacy-statement"
18 | $VBoxContainer/HBoxContainer/OkButton.text = "DIALOG_UPDATE_BTN_ACCEPT"
19 | $VBoxContainer/HBoxContainer/CloseButton.text = "DIALOG_UPDATE_BTN_DENY"
20 | call_deferred("popup_centered")
21 | elif OS.get_name() != "HTML5" and Variables.options.check_updates:
22 | asking_permission = false
23 | $HTTPRequest.request("https://api.github.com/repos/pattlebass/Music-DJ/releases/latest")
24 |
25 |
26 | func _on_HTTPRequest_request_completed(_result: int, response_code: int, _headers: PoolStringArray, body: PoolByteArray) -> void:
27 | print("Received response code %s from Github" % response_code)
28 |
29 | var json_result = JSON.parse(body.get_string_from_utf8()).result
30 |
31 | if Variables.VERSION != json_result.tag_name:
32 | $VBoxContainer/Body.text = tr("DIALOG_UPDATE_BODY") % json_result.tag_name
33 | popup_centered()
34 |
35 |
36 | func _on_OkButton_pressed() -> void:
37 | if asking_permission:
38 | Variables.options.check_updates = true
39 | Variables.save_options()
40 | else:
41 | OS.shell_open("https://www.github.com/pattlebass/Music-DJ/releases/latest")
42 | hide()
43 |
44 |
45 | func _on_CloseButton_pressed():
46 | if asking_permission:
47 | Variables.options.check_updates = false
48 | Variables.save_options()
49 | hide()
50 |
51 |
52 | func _on_Body_meta_clicked(meta) -> void:
53 | OS.shell_open(meta)
54 |
55 |
56 | func about_to_show() -> void:
57 | yield(get_tree(), "idle_frame")
58 | rect_size.y = $VBoxContainer.rect_size.y
59 | .about_to_show()
60 |
61 |
62 | func popup_hide() -> void:
63 | if asking_permission and Variables.options.check_updates == null:
64 | Variables.options.check_updates = false
65 | Variables.save_options()
66 | .popup_hide()
67 |
--------------------------------------------------------------------------------
/addons/Todo_Manager/Project.gd:
--------------------------------------------------------------------------------
1 | tool
2 | extends Panel
3 |
4 | signal tree_built # used for debugging
5 |
6 | const Todo := preload("res://addons/Todo_Manager/todo_class.gd")
7 |
8 | var _sort_alphabetical := true
9 | var _full_path := false
10 |
11 | onready var tree := $Tree as Tree
12 |
13 | func build_tree(todo_items : Array, ignore_paths : Array, patterns : Array, sort_alphabetical : bool, full_path : bool) -> void:
14 | _full_path = full_path
15 | tree.clear()
16 | if sort_alphabetical:
17 | todo_items.sort_custom(self, "sort_alphabetical")
18 | else:
19 | todo_items.sort_custom(self, "sort_backwards")
20 | var root := tree.create_item()
21 | root.set_text(0, "Scripts")
22 | for todo_item in todo_items:
23 | var ignore := false
24 | for ignore_path in ignore_paths:
25 | var script_path : String = todo_item.script_path
26 | if script_path.begins_with(ignore_path) or script_path.begins_with("res://" + ignore_path) or script_path.begins_with("res:///" + ignore_path):
27 | ignore = true
28 | break
29 | if ignore:
30 | continue
31 | var script := tree.create_item(root)
32 | if full_path:
33 | script.set_text(0, todo_item.script_path + " -------")
34 | else:
35 | script.set_text(0, todo_item.get_short_path() + " -------")
36 | script.set_metadata(0, todo_item)
37 | for todo in todo_item.todos:
38 | var item := tree.create_item(script)
39 | var content_header : String = todo.content
40 | if "\n" in todo.content:
41 | content_header = content_header.split("\n")[0] + "..."
42 | item.set_text(0, "(%0) - %1".format([todo.line_number, content_header], "%_"))
43 | item.set_tooltip(0, todo.content)
44 | item.set_metadata(0, todo)
45 | for pattern in patterns:
46 | if pattern[0] == todo.pattern:
47 | item.set_custom_color(0, pattern[1])
48 | emit_signal("tree_built")
49 |
50 |
51 | func sort_alphabetical(a, b) -> bool:
52 | if _full_path:
53 | if a.script_path < b.script_path:
54 | return true
55 | else:
56 | return false
57 | else:
58 | if a.get_short_path() < b.get_short_path():
59 | return true
60 | else:
61 | return false
62 |
63 | func sort_backwards(a, b) -> bool:
64 | if _full_path:
65 | if a.script_path > b.script_path:
66 | return true
67 | else:
68 | return false
69 | else:
70 | if a.get_short_path() > b.get_short_path():
71 | return true
72 | else:
73 | return false
74 |
--------------------------------------------------------------------------------
/scenes/dialogs/UpdateDialog.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=2 format=2]
2 |
3 | [ext_resource path="res://scenes/dialogs/UpdateDialog.gd" type="Script" id=1]
4 |
5 | [node name="UpdateDialog" type="PopupDialog"]
6 | margin_right = 395.0
7 | margin_bottom = 209.0
8 | input_pass_on_modal_close_click = false
9 | script = ExtResource( 1 )
10 |
11 | [node name="VBoxContainer" type="VBoxContainer" parent="."]
12 | anchor_right = 1.0
13 | anchor_bottom = 1.0
14 |
15 | [node name="Title" type="Label" parent="VBoxContainer"]
16 | margin_right = 473.0
17 | margin_bottom = 55.0
18 | text = "DIALOG_UPDATE_TITLE"
19 |
20 | [node name="HSeparator" type="HSeparator" parent="VBoxContainer"]
21 | margin_top = 59.0
22 | margin_right = 473.0
23 | margin_bottom = 79.0
24 | custom_constants/separation = 20
25 |
26 | [node name="Body" type="RichTextLabel" parent="VBoxContainer"]
27 | margin_top = 83.0
28 | margin_right = 473.0
29 | margin_bottom = 141.0
30 | size_flags_vertical = 3
31 | theme_type_variation = "Text"
32 | bbcode_enabled = true
33 | fit_content_height = true
34 |
35 | [node name="Control" type="Control" parent="VBoxContainer"]
36 | margin_top = 145.0
37 | margin_right = 473.0
38 | margin_bottom = 155.0
39 | rect_min_size = Vector2( 0, 10 )
40 |
41 | [node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
42 | margin_top = 159.0
43 | margin_right = 473.0
44 | margin_bottom = 209.0
45 | rect_pivot_offset = Vector2( -258, 63 )
46 | custom_constants/separation = 20
47 | alignment = 1
48 |
49 | [node name="OkButton" type="Button" parent="VBoxContainer/HBoxContainer"]
50 | margin_right = 309.0
51 | margin_bottom = 50.0
52 | rect_min_size = Vector2( 100, 50 )
53 | text = "DIALOG_UPDATE_BTN_OK"
54 |
55 | [node name="CloseButton" type="Button" parent="VBoxContainer/HBoxContainer"]
56 | margin_left = 329.0
57 | margin_right = 473.0
58 | margin_bottom = 50.0
59 | rect_min_size = Vector2( 80, 50 )
60 | text = "BTN_CLOSE"
61 |
62 | [node name="HTTPRequest" type="HTTPRequest" parent="."]
63 | body_size_limit = 20000
64 | timeout = 10.0
65 |
66 | [connection signal="meta_clicked" from="VBoxContainer/Body" to="." method="_on_Body_meta_clicked"]
67 | [connection signal="pressed" from="VBoxContainer/HBoxContainer/OkButton" to="." method="_on_OkButton_pressed"]
68 | [connection signal="pressed" from="VBoxContainer/HBoxContainer/CloseButton" to="." method="_on_CloseButton_pressed"]
69 | [connection signal="request_completed" from="HTTPRequest" to="." method="_on_HTTPRequest_request_completed"]
70 |
--------------------------------------------------------------------------------
/scenes/dialogs/ColumnDialog.gd:
--------------------------------------------------------------------------------
1 | extends CustomDialog
2 |
3 | onready var play_button: Button = $"%PlayButton"
4 | onready var play_column_button: Button = $"%PlayColumnButton"
5 | onready var clear_button: Button = $"%ClearButton"
6 | onready var remove_button: Button = $"%RemoveButton"
7 |
8 | var column
9 | var column_no
10 |
11 |
12 | func _ready() -> void:
13 | Variables.connect("theme_changed", self, "on_theme_changed")
14 |
15 |
16 | func on_theme_changed(new_theme):
17 | var path = "res://assets/themes/%s/" % new_theme
18 | $Tear.texture = load(path.plus_file("column_tear.png"))
19 |
20 |
21 | func on_Column_Button_pressed(_column_no, _column):
22 | column = _column
23 | column_no = _column_no
24 |
25 | # var tear = get_node("Tear")
26 | # var tear_pos_x = _column.column_button.rect_global_position.x + \
27 | # _column.column_button.rect_size.x/2
28 | # tear.global_position.x = tear_pos_x
29 |
30 | popup()
31 |
32 |
33 | func about_to_show():
34 | var has_tiles_set := false
35 | for i in 4:
36 | if BoomBox.song.data[i][column.column_no]:
37 | has_tiles_set = true
38 | break
39 |
40 | remove_button.disabled = column_no != main.available_columns - 1 or main.available_columns == 15
41 | play_button.disabled = !has_tiles_set || BoomBox.is_playing
42 | play_column_button.disabled = !has_tiles_set || BoomBox.is_playing
43 | clear_button.disabled = !has_tiles_set
44 |
45 | set_as_minsize()
46 |
47 | # TODO: Clean-up
48 | var pos = column.column_button.rect_global_position
49 | pos.x -= rect_size.x/2 - column.column_button.rect_size.x/2
50 | pos.y += column.column_button.rect_size.x
51 | var viewport_size = get_viewport().get_visible_rect().size
52 | var pos_plus_size = pos+rect_size+Vector2(16,16)
53 | if pos_plus_size.x > viewport_size.x:
54 | pos.x -= pos_plus_size.x - viewport_size.x
55 | elif pos.x < 0:
56 | pos.x = 0 + 16
57 |
58 | rect_global_position = pos
59 |
60 | var tear_pos_x = column.column_button.rect_global_position.x + \
61 | column.column_button.rect_size.x/2
62 | $Tear.global_position.x = tear_pos_x
63 |
64 | .about_to_show()
65 |
66 | rect_pivot_offset = Vector2(tear_pos_x - pos.x, 0)
67 |
68 |
69 | func _on_ClearButton_pressed():
70 | column.clear()
71 | BoomBox.song.remove_column(column.column_no)
72 |
73 | hide()
74 |
75 |
76 | func _on_RemoveButton_pressed():
77 | column.remove()
78 | main.remove_column(column.column_no)
79 |
80 | hide()
81 |
82 |
83 | func _on_PlayButton_pressed():
84 | BoomBox.play_from_column(column_no)
85 | hide()
86 |
87 |
88 | func _on_PlayColumnButton_pressed():
89 | BoomBox.play_column(column_no)
90 | hide()
91 |
--------------------------------------------------------------------------------
/scenes/dialogs/ColumnDialog.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=3 format=2]
2 |
3 | [ext_resource path="res://scenes/dialogs/ColumnDialog.gd" type="Script" id=1]
4 | [ext_resource path="res://assets/themes/white/column_tear.png" type="Texture" id=2]
5 |
6 | [node name="ColumnDialog" type="PopupDialog"]
7 | anchor_top = -0.001
8 | anchor_bottom = -0.001
9 | margin_top = 0.6
10 | margin_right = 466.0
11 | margin_bottom = 50.6
12 | input_pass_on_modal_close_click = false
13 | size_flags_horizontal = 3
14 | size_flags_vertical = 3
15 | script = ExtResource( 1 )
16 | __meta__ = {
17 | "_editor_description_": ""
18 | }
19 |
20 | [node name="VBoxContainer" type="VBoxContainer" parent="."]
21 | anchor_right = 1.0
22 | anchor_bottom = 1.0
23 | size_flags_horizontal = 13
24 |
25 | [node name="VBoxContainer2" type="VBoxContainer" parent="VBoxContainer"]
26 | margin_right = 466.0
27 | margin_bottom = 230.0
28 | custom_constants/separation = 10
29 | alignment = 1
30 |
31 | [node name="PlayButton" type="Button" parent="VBoxContainer/VBoxContainer2"]
32 | unique_name_in_owner = true
33 | margin_right = 466.0
34 | margin_bottom = 50.0
35 | rect_min_size = Vector2( 80, 50 )
36 | disabled = true
37 | text = "BTN_PLAY"
38 |
39 | [node name="PlayColumnButton" type="Button" parent="VBoxContainer/VBoxContainer2"]
40 | unique_name_in_owner = true
41 | margin_top = 60.0
42 | margin_right = 466.0
43 | margin_bottom = 110.0
44 | rect_min_size = Vector2( 80, 50 )
45 | disabled = true
46 | text = "BTN_PLAY_COLUMN"
47 |
48 | [node name="ClearButton" type="Button" parent="VBoxContainer/VBoxContainer2"]
49 | unique_name_in_owner = true
50 | margin_top = 120.0
51 | margin_right = 466.0
52 | margin_bottom = 170.0
53 | rect_min_size = Vector2( 80, 50 )
54 | disabled = true
55 | text = "BTN_CLEAR"
56 |
57 | [node name="RemoveButton" type="Button" parent="VBoxContainer/VBoxContainer2"]
58 | unique_name_in_owner = true
59 | margin_top = 180.0
60 | margin_right = 466.0
61 | margin_bottom = 230.0
62 | rect_min_size = Vector2( 80, 50 )
63 | disabled = true
64 | text = "BTN_REMOVE"
65 |
66 | [node name="Tear" type="Sprite" parent="."]
67 | position = Vector2( 25, -16.3455 )
68 | texture = ExtResource( 2 )
69 |
70 | [connection signal="pressed" from="VBoxContainer/VBoxContainer2/PlayButton" to="." method="_on_PlayButton_pressed"]
71 | [connection signal="pressed" from="VBoxContainer/VBoxContainer2/PlayColumnButton" to="." method="_on_PlayColumnButton_pressed"]
72 | [connection signal="pressed" from="VBoxContainer/VBoxContainer2/ClearButton" to="." method="_on_ClearButton_pressed"]
73 | [connection signal="pressed" from="VBoxContainer/VBoxContainer2/RemoveButton" to="." method="_on_RemoveButton_pressed"]
74 |
--------------------------------------------------------------------------------
/scenes/dialogs/ConfirmationDialog.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=3 format=2]
2 |
3 | [ext_resource path="res://scenes/dialogs/ConfirmationDialog.gd" type="Script" id=1]
4 |
5 | [sub_resource type="StyleBoxEmpty" id=1]
6 |
7 | [node name="ConfirmationDialog" type="PopupDialog"]
8 | margin_left = 316.0
9 | margin_top = 201.0
10 | margin_right = 752.0
11 | margin_bottom = 402.0
12 | popup_exclusive = true
13 | script = ExtResource( 1 )
14 |
15 | [node name="BackPanel" type="Panel" parent="."]
16 | modulate = Color( 1, 1, 1, 0 )
17 | show_behind_parent = true
18 | margin_right = 40.0
19 | margin_bottom = 40.0
20 | theme_type_variation = "ShadowPanel"
21 |
22 | [node name="VBoxContainer" type="VBoxContainer" parent="."]
23 | anchor_right = 1.0
24 | anchor_bottom = 1.0
25 | __meta__ = {
26 | "_edit_use_anchors_": false
27 | }
28 |
29 | [node name="Title" type="Label" parent="VBoxContainer"]
30 | margin_right = 436.0
31 | margin_bottom = 55.0
32 | text = "Are you sure?"
33 |
34 | [node name="HSeparator2" type="HSeparator" parent="VBoxContainer"]
35 | margin_top = 59.0
36 | margin_right = 436.0
37 | margin_bottom = 79.0
38 | size_flags_vertical = 3
39 | custom_styles/separator = SubResource( 1 )
40 |
41 | [node name="Subtitle" type="RichTextLabel" parent="VBoxContainer"]
42 | margin_top = 83.0
43 | margin_right = 436.0
44 | margin_bottom = 123.0
45 | rect_min_size = Vector2( 0, 40 )
46 | bbcode_enabled = true
47 | text = "This file will be deleted."
48 | fit_content_height = true
49 | scroll_active = false
50 |
51 | [node name="HSeparator" type="HSeparator" parent="VBoxContainer"]
52 | margin_top = 127.0
53 | margin_right = 436.0
54 | margin_bottom = 147.0
55 | size_flags_vertical = 3
56 | custom_styles/separator = SubResource( 1 )
57 |
58 | [node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
59 | margin_top = 151.0
60 | margin_right = 436.0
61 | margin_bottom = 201.0
62 | size_flags_vertical = 3
63 | custom_constants/separation = 20
64 | alignment = 2
65 |
66 | [node name="OKButton" type="Button" parent="VBoxContainer/HBoxContainer"]
67 | margin_left = 216.0
68 | margin_right = 316.0
69 | margin_bottom = 50.0
70 | rect_min_size = Vector2( 100, 50 )
71 | text = "OK"
72 |
73 | [node name="CancelButton" type="Button" parent="VBoxContainer/HBoxContainer"]
74 | margin_left = 336.0
75 | margin_right = 436.0
76 | margin_bottom = 50.0
77 | rect_min_size = Vector2( 100, 50 )
78 | text = "Cancel"
79 |
80 | [connection signal="about_to_show" from="." to="." method="_on_ConfirmationDialog_about_to_show"]
81 | [connection signal="popup_hide" from="." to="." method="_on_ConfirmationDialog_popup_hide"]
82 | [connection signal="pressed" from="VBoxContainer/HBoxContainer/OKButton" to="." method="_on_OKButton_pressed"]
83 | [connection signal="pressed" from="VBoxContainer/HBoxContainer/CancelButton" to="." method="_on_CancelButton_pressed"]
84 |
--------------------------------------------------------------------------------
/.github/workflows/itch-release.yml:
--------------------------------------------------------------------------------
1 | name: Itch.io release
2 |
3 | on:
4 | release:
5 | types: [published]
6 | workflow_dispatch:
7 |
8 | jobs:
9 | itch-release:
10 | runs-on: ubuntu-latest
11 | steps:
12 | - name: Fetch Github Release Asset
13 | id: fetch-release
14 | uses: dsaltares/fetch-gh-release-asset@1.0.0
15 | with:
16 | repo: "pattlebass/Music-DJ"
17 | regex: true
18 | file: "MusicDJ.*"
19 | target: "./"
20 | token: ${{ secrets.GITHUB_TOKEN }}
21 |
22 | - name: Echo files
23 | run: |
24 | echo "Files:"
25 | ls
26 | echo "Version name: ${{ steps.fetch-release.outputs.version }}"
27 | echo "Release name: ${{ steps.fetch-release.outputs.name }}"
28 | echo "Body: ${{ steps.fetch-release.outputs.body }}"
29 |
30 | - name: Butler Push Linux
31 | uses: manleydev/butler-publish-itchio-action@v1.0.3
32 | env:
33 | BUTLER_CREDENTIALS: ${{ secrets.BUTLER_API_KEY }}
34 | CHANNEL: linux
35 | VERSION: ${{ steps.fetch-release.outputs.version }}
36 | ITCH_GAME: musicdj
37 | ITCH_USER: pattlebass
38 | PACKAGE: MusicDJ.Linux.zip
39 |
40 | - name: Butler Push Windows
41 | uses: manleydev/butler-publish-itchio-action@v1.0.3
42 | env:
43 | BUTLER_CREDENTIALS: ${{ secrets.BUTLER_API_KEY }}
44 | CHANNEL: windows
45 | VERSION: ${{ steps.fetch-release.outputs.version }}
46 | ITCH_GAME: musicdj
47 | ITCH_USER: pattlebass
48 | PACKAGE: MusicDJ.Windows.zip
49 |
50 | - name: Butler Push Android 32bit
51 | uses: manleydev/butler-publish-itchio-action@v1.0.3
52 | env:
53 | BUTLER_CREDENTIALS: ${{ secrets.BUTLER_API_KEY }}
54 | CHANNEL: android-32bit
55 | VERSION: ${{ steps.fetch-release.outputs.version }}
56 | ITCH_GAME: musicdj
57 | ITCH_USER: pattlebass
58 | PACKAGE: MusicDJ_32bit.apk
59 |
60 | - name: Butler Push Android 64bit
61 | uses: manleydev/butler-publish-itchio-action@v1.0.3
62 | env:
63 | BUTLER_CREDENTIALS: ${{ secrets.BUTLER_API_KEY }}
64 | CHANNEL: android-64bit
65 | VERSION: ${{ steps.fetch-release.outputs.version }}
66 | ITCH_GAME: musicdj
67 | ITCH_USER: pattlebass
68 | PACKAGE: MusicDJ_64bit.apk
69 |
70 | - name: Butler Push HTML5
71 | uses: manleydev/butler-publish-itchio-action@v1.0.3
72 | env:
73 | BUTLER_CREDENTIALS: ${{ secrets.BUTLER_API_KEY }}
74 | CHANNEL: html5
75 | VERSION: ${{ steps.fetch-release.outputs.version }}
76 | ITCH_GAME: musicdj
77 | ITCH_USER: pattlebass
78 | PACKAGE: MusicDJ.HTML5.zip
79 |
--------------------------------------------------------------------------------
/scenes/dialogs/SettingsDialog.gd:
--------------------------------------------------------------------------------
1 | extends CustomDialog
2 |
3 | onready var lang_container = $"%LangContainer"
4 |
5 |
6 | func _ready() -> void:
7 | for i in $"%ThemeContainer".get_children():
8 | if i.has_meta("theme_name"):
9 | if i.get_meta("theme_name") == Variables.options.theme:
10 | i.set_pressed_no_signal(true)
11 | break
12 |
13 | $"%LabelVersion".text = Variables.VERSION
14 |
15 | if Variables.options.check_updates != null:
16 | $"%CheckUpdates".set_pressed_no_signal(Variables.options.check_updates)
17 |
18 |
19 | # Languages
20 | var lang_btn_group = ButtonGroup.new()
21 |
22 | # Work-around for https://github.com/godotengine/godot-proposals/issues/2378
23 | var locale_names = {
24 | "en": "English",
25 | "ro": "Română",
26 | "id": "Bahasa Indonesia",
27 | "pl": "Polski",
28 | }
29 |
30 | var lang_auto_btn = lang_container.get_node("Auto")
31 | lang_auto_btn.text = tr("SETTING_LANG_AUTO") % locale_names[OS.get_locale_language()]
32 | lang_auto_btn.group = lang_btn_group
33 | lang_auto_btn.connect("pressed", self, "on_lang_chosen", [""])
34 |
35 | if Variables.options.language == "":
36 | lang_auto_btn.set_pressed_no_signal(true)
37 |
38 | for i in TranslationServer.get_loaded_locales():
39 | var check_box = CheckBox.new()
40 | check_box.text = locale_names[i]
41 | check_box.group = lang_btn_group
42 | check_box.mouse_filter = Control.MOUSE_FILTER_PASS
43 | check_box.connect("pressed", self, "on_lang_chosen", [i])
44 |
45 | if Variables.options.language == i:
46 | check_box.set_pressed_no_signal(true)
47 |
48 | lang_container.add_child(check_box)
49 |
50 | if OS.get_name() == "HTML5":
51 | # Hide Check for update
52 | $"%CheckUpdates".hide()
53 |
54 | # Warning for HTML5
55 | var label_web_disable = Label.new()
56 | label_web_disable.text = "SETTING_WEB_WARNING"
57 | label_web_disable.autowrap = true
58 | label_web_disable.theme_type_variation = "LabelSubtitle"
59 | $"%SettingsContainer".add_child_below_node(
60 | $VBoxContainer/ScrollContainer/SettingsContainer/HSeparator2,
61 | label_web_disable
62 | )
63 |
64 |
65 | func _on_CloseButton_pressed():
66 | hide()
67 |
68 |
69 | func about_to_show():
70 | $VBoxContainer/ScrollContainer.scroll_vertical = 0
71 | .about_to_show()
72 |
73 |
74 | func _on_theme_chosen(button_pressed, theme_name):
75 | if button_pressed:
76 | Variables.change_theme(theme_name)
77 | Variables.options.theme = theme_name
78 | Variables.save_options()
79 |
80 |
81 | func on_lang_chosen(lang):
82 | Variables.options.language = lang
83 | Variables.save_options()
84 |
85 | if lang:
86 | TranslationServer.set_locale(lang)
87 | else:
88 | TranslationServer.set_locale(OS.get_locale_language())
89 |
90 |
91 | func _on_CheckUpdates_toggled(button_pressed: bool) -> void:
92 | Variables.options.check_updates = button_pressed
93 | Variables.save_options()
94 |
--------------------------------------------------------------------------------
/scenes/dialogs/ProgressDialog.gd:
--------------------------------------------------------------------------------
1 | extends CustomDialog
2 |
3 | onready var progress_bar = get_node("VBoxContainer/HBoxContainer2/VBoxContainer/ProgressBar")
4 | onready var title: Label = $VBoxContainer/Title
5 | onready var body: Label = $VBoxContainer/Body
6 | onready var open_button: Button = $VBoxContainer/HBoxContainer/OpenButton
7 | onready var cancel_button: Button = $VBoxContainer/HBoxContainer/CancelButton
8 | onready var download_button: Button = $VBoxContainer/HBoxContainer/DownloadButton
9 | onready var share_button: Button = $VBoxContainer/HBoxContainer/ShareButton
10 |
11 | var path = ""
12 | var after_saving = "stay"
13 | var type_of_save := ""
14 |
15 | signal cancelled
16 |
17 | # TODO: Refactor
18 |
19 | func about_to_show() -> void:
20 | progress_bar.value = 0
21 | progress_bar.show()
22 |
23 | open_button.disabled = true
24 | share_button.disabled = true
25 | title.text = "DIALOG_PROGRESS_TITLE"
26 | body.text = ""
27 | cancel_button.text = "BTN_CANCEL"
28 |
29 | set_process(true)
30 |
31 | if OS.get_name() == "Android":
32 | # share_button.show()
33 | open_button.hide()
34 | download_button.hide()
35 | elif OS.get_name() == "HTML5":
36 | share_button.hide()
37 | open_button.hide()
38 | download_button.show()
39 | after_saving = "stay"
40 |
41 | if type_of_save == "project":
42 | body.text = "DIALOG_PROGRESS_AFTER_PROJECT"
43 | else:
44 | body.text = "DIALOG_PROGRESS_KEEP_FOCUSED"
45 |
46 | $VBoxContainer.rect_size = rect_size
47 |
48 | .about_to_show()
49 |
50 |
51 | func error(code: int) -> void:
52 | body.text = tr("DIALOG_PROGRESS_ERROR") % code
53 | progress_bar.hide()
54 |
55 | share_button.hide()
56 | open_button.hide()
57 | download_button.hide()
58 |
59 | set_process(false)
60 |
61 |
62 | func _on_CancelButton_pressed() -> void:
63 | emit_signal("cancelled")
64 | hide()
65 |
66 |
67 | func _process(delta) -> void:
68 | if progress_bar.value >= progress_bar.max_value:
69 | # share_button.disabled = false
70 | open_button.disabled = false
71 | download_button.disabled = false
72 | title.text = "DIALOG_PROGRESS_TITLE_DONE"
73 | cancel_button.text = "BTN_CLOSE"
74 |
75 | progress_bar.hide()
76 |
77 | if after_saving == "close":
78 | hide()
79 |
80 | if type_of_save == "export":
81 | if OS.get_name() != "HTML5":
82 | body.text = tr("DIALOG_PROGRESS_AFTER_EXPORT") % ProjectSettings.globalize_path(path)
83 |
84 | set_process(false)
85 | else:
86 | progress_bar.value += delta
87 |
88 |
89 | func _on_OpenButton_pressed() -> void:
90 | OS.shell_open(ProjectSettings.globalize_path(Variables.saves_dir))
91 |
92 |
93 | func _on_DownloadButton_pressed() -> void:
94 | var file_name = path.get_file()
95 | Variables.download_file(path, file_name)
96 |
97 |
98 | func _on_ShareButton_pressed() -> void:
99 | Variables.share_file(path, "", "", "", "audio/wav")
100 |
--------------------------------------------------------------------------------
/scenes/dialogs/SoundDialog.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=2 format=2]
2 |
3 | [ext_resource path="res://scenes/dialogs/SoundDialog.gd" type="Script" id=1]
4 |
5 | [node name="SoundDialog" type="PopupDialog"]
6 | margin_right = 447.0
7 | margin_bottom = 519.0
8 | input_pass_on_modal_close_click = false
9 | script = ExtResource( 1 )
10 | __meta__ = {
11 | "_editor_description_": ""
12 | }
13 |
14 | [node name="VBoxContainer" type="VBoxContainer" parent="."]
15 | anchor_right = 1.0
16 | anchor_bottom = 1.0
17 | size_flags_horizontal = 3
18 | size_flags_vertical = 3
19 | alignment = 1
20 | __meta__ = {
21 | "_edit_use_anchors_": false
22 | }
23 |
24 | [node name="Label" type="Label" parent="VBoxContainer"]
25 | margin_right = 447.0
26 | margin_bottom = 55.0
27 | text = "Bass, column 0"
28 |
29 | [node name="HSeparator" type="HSeparator" parent="VBoxContainer"]
30 | margin_top = 59.0
31 | margin_right = 447.0
32 | margin_bottom = 61.0
33 |
34 | [node name="ScrollContainer" type="ScrollContainer" parent="VBoxContainer"]
35 | margin_top = 65.0
36 | margin_right = 447.0
37 | margin_bottom = 445.0
38 | size_flags_horizontal = 3
39 | size_flags_vertical = 3
40 | follow_focus = true
41 | scroll_horizontal_enabled = false
42 | __meta__ = {
43 | "_edit_use_anchors_": false
44 | }
45 |
46 | [node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/ScrollContainer"]
47 | margin_right = 447.0
48 | size_flags_horizontal = 3
49 |
50 | [node name="HSeparator2" type="HSeparator" parent="VBoxContainer"]
51 | modulate = Color( 1, 1, 1, 0 )
52 | margin_top = 449.0
53 | margin_right = 447.0
54 | margin_bottom = 455.0
55 | custom_constants/separation = 6
56 |
57 | [node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
58 | margin_top = 459.0
59 | margin_right = 447.0
60 | margin_bottom = 519.0
61 | rect_min_size = Vector2( 0, 25 )
62 | size_flags_horizontal = 3
63 | custom_constants/separation = 20
64 | alignment = 1
65 |
66 | [node name="OkButton" type="Button" parent="VBoxContainer/HBoxContainer"]
67 | margin_right = 100.0
68 | margin_bottom = 60.0
69 | rect_min_size = Vector2( 100, 60 )
70 | text = "OK"
71 |
72 | [node name="ClearButton" type="Button" parent="VBoxContainer/HBoxContainer"]
73 | margin_left = 120.0
74 | margin_right = 265.0
75 | margin_bottom = 60.0
76 | rect_min_size = Vector2( 100, 60 )
77 | text = "BTN_CLEAR"
78 |
79 | [node name="CancelButton" type="Button" parent="VBoxContainer/HBoxContainer"]
80 | margin_left = 285.0
81 | margin_right = 447.0
82 | margin_bottom = 60.0
83 | rect_min_size = Vector2( 100, 60 )
84 | text = "BTN_CANCEL"
85 |
86 | [node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
87 |
88 | [connection signal="pressed" from="VBoxContainer/HBoxContainer/OkButton" to="." method="_on_OkButton_pressed"]
89 | [connection signal="pressed" from="VBoxContainer/HBoxContainer/ClearButton" to="." method="_on_ClearButton_pressed"]
90 | [connection signal="pressed" from="VBoxContainer/HBoxContainer/CancelButton" to="." method="_on_CancelButton_pressed"]
91 |
--------------------------------------------------------------------------------
/scenes/dialogs/SaveDialog.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=2 format=2]
2 |
3 | [ext_resource path="res://scenes/dialogs/SaveDialog.gd" type="Script" id=1]
4 |
5 | [node name="SaveDialog" type="PopupDialog"]
6 | margin_left = 300.0
7 | margin_top = 100.0
8 | margin_right = 739.0
9 | margin_bottom = 365.0
10 | input_pass_on_modal_close_click = false
11 | script = ExtResource( 1 )
12 | __meta__ = {
13 | "_editor_description_": ""
14 | }
15 |
16 | [node name="VBoxContainer" type="VBoxContainer" parent="."]
17 | anchor_right = 1.0
18 | anchor_bottom = 1.0
19 | size_flags_horizontal = 5
20 |
21 | [node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer"]
22 | margin_right = 439.0
23 | margin_bottom = 211.0
24 | size_flags_vertical = 3
25 |
26 | [node name="Label" type="Label" parent="VBoxContainer/VBoxContainer"]
27 | margin_right = 439.0
28 | margin_bottom = 55.0
29 | text = "Save as"
30 |
31 | [node name="Control" type="Control" parent="VBoxContainer/VBoxContainer"]
32 | margin_top = 59.0
33 | margin_right = 439.0
34 | margin_bottom = 89.0
35 | rect_min_size = Vector2( 0, 30 )
36 |
37 | [node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/VBoxContainer"]
38 | margin_top = 93.0
39 | margin_right = 439.0
40 | margin_bottom = 143.0
41 | alignment = 1
42 |
43 | [node name="LineEdit" type="LineEdit" parent="VBoxContainer/VBoxContainer/HBoxContainer"]
44 | margin_left = 19.0
45 | margin_right = 419.0
46 | margin_bottom = 50.0
47 | rect_min_size = Vector2( 400, 50 )
48 | custom_colors/cursor_color = Color( 0, 0, 0, 0.5 )
49 | max_length = 100
50 | placeholder_text = "File name here"
51 | placeholder_alpha = 0.2
52 | caret_blink = true
53 |
54 | [node name="LabelError" type="Label" parent="VBoxContainer/VBoxContainer"]
55 | margin_top = 147.0
56 | margin_right = 439.0
57 | margin_bottom = 185.0
58 | theme_type_variation = "LabelSubtitle"
59 | custom_colors/font_color = Color( 1, 0.2, 0.290196, 1 )
60 | text = "Error"
61 |
62 | [node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
63 | margin_top = 215.0
64 | margin_right = 439.0
65 | margin_bottom = 265.0
66 | custom_constants/separation = 20
67 | alignment = 2
68 |
69 | [node name="OkButton" type="Button" parent="VBoxContainer/HBoxContainer"]
70 | margin_left = 26.0
71 | margin_right = 257.0
72 | margin_bottom = 50.0
73 | rect_min_size = Vector2( 100, 50 )
74 | text = "DIALOG_SAVE_BTN"
75 |
76 | [node name="CancelButton" type="Button" parent="VBoxContainer/HBoxContainer"]
77 | margin_left = 277.0
78 | margin_right = 439.0
79 | margin_bottom = 50.0
80 | rect_min_size = Vector2( 100, 50 )
81 | text = "BTN_CANCEL"
82 |
83 | [connection signal="text_changed" from="VBoxContainer/VBoxContainer/HBoxContainer/LineEdit" to="." method="_on_LineEdit_text_changed"]
84 | [connection signal="text_entered" from="VBoxContainer/VBoxContainer/HBoxContainer/LineEdit" to="." method="_on_LineEdit_text_entered"]
85 | [connection signal="pressed" from="VBoxContainer/HBoxContainer/OkButton" to="." method="_on_OkButton_pressed"]
86 | [connection signal="pressed" from="VBoxContainer/HBoxContainer/CancelButton" to="." method="_on_CancelButton_pressed"]
87 |
--------------------------------------------------------------------------------
/scenes/Column.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=4 format=2]
2 |
3 | [ext_resource path="res://scenes/Column.gd" type="Script" id=1]
4 |
5 | [sub_resource type="RectangleShape2D" id=1]
6 | extents = Vector2( 40, 40 )
7 |
8 | [sub_resource type="Animation" id=2]
9 | resource_name = "fade_in"
10 | length = 0.1
11 | tracks/0/type = "value"
12 | tracks/0/path = NodePath(".:modulate")
13 | tracks/0/interp = 1
14 | tracks/0/loop_wrap = true
15 | tracks/0/imported = false
16 | tracks/0/enabled = true
17 | tracks/0/keys = {
18 | "times": PoolRealArray( 0, 0.1 ),
19 | "transitions": PoolRealArray( 1, 1 ),
20 | "update": 0,
21 | "values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ]
22 | }
23 |
24 | [node name="Column" type="VBoxContainer"]
25 | margin_right = 40.0
26 | margin_bottom = 40.0
27 | theme_type_variation = "ColumnContainer"
28 | script = ExtResource( 1 )
29 |
30 | [node name="ColumnButton" type="Button" parent="."]
31 | margin_right = 80.0
32 | margin_bottom = 59.0
33 | rect_min_size = Vector2( 40, 59 )
34 | mouse_filter = 1
35 | theme_type_variation = "ListItem"
36 | text = "0"
37 |
38 | [node name="Button1" type="Button" parent="."]
39 | margin_top = 69.0
40 | margin_right = 80.0
41 | margin_bottom = 149.0
42 | rect_min_size = Vector2( 80, 80 )
43 | mouse_filter = 1
44 | custom_colors/font_color = Color( 0, 0, 0, 1 )
45 | shortcut_in_tooltip = false
46 |
47 | [node name="Area2D" type="Area2D" parent="Button1"]
48 | position = Vector2( 40, 40 )
49 | monitoring = false
50 |
51 | [node name="CollisionShape2D" type="CollisionShape2D" parent="Button1/Area2D"]
52 | shape = SubResource( 1 )
53 |
54 | [node name="Button2" type="Button" parent="."]
55 | margin_top = 159.0
56 | margin_right = 80.0
57 | margin_bottom = 239.0
58 | rect_min_size = Vector2( 80, 80 )
59 | mouse_filter = 1
60 | custom_colors/font_color = Color( 0, 0, 0, 1 )
61 | shortcut_in_tooltip = false
62 |
63 | [node name="Area2D" type="Area2D" parent="Button2"]
64 | position = Vector2( 40, 40 )
65 | monitoring = false
66 |
67 | [node name="CollisionShape2D" type="CollisionShape2D" parent="Button2/Area2D"]
68 | shape = SubResource( 1 )
69 |
70 | [node name="Button3" type="Button" parent="."]
71 | margin_top = 249.0
72 | margin_right = 80.0
73 | margin_bottom = 329.0
74 | rect_min_size = Vector2( 80, 80 )
75 | mouse_filter = 1
76 | custom_colors/font_color = Color( 0, 0, 0, 1 )
77 | shortcut_in_tooltip = false
78 |
79 | [node name="Area2D" type="Area2D" parent="Button3"]
80 | position = Vector2( 40, 40 )
81 | monitoring = false
82 |
83 | [node name="CollisionShape2D" type="CollisionShape2D" parent="Button3/Area2D"]
84 | shape = SubResource( 1 )
85 |
86 | [node name="Button4" type="Button" parent="."]
87 | margin_top = 339.0
88 | margin_right = 80.0
89 | margin_bottom = 419.0
90 | rect_min_size = Vector2( 80, 80 )
91 | mouse_filter = 1
92 | custom_colors/font_color = Color( 0, 0, 0, 1 )
93 | shortcut_in_tooltip = false
94 |
95 | [node name="Area2D" type="Area2D" parent="Button4"]
96 | position = Vector2( 40, 40 )
97 | monitoring = false
98 |
99 | [node name="CollisionShape2D" type="CollisionShape2D" parent="Button4/Area2D"]
100 | shape = SubResource( 1 )
101 |
102 | [node name="AnimationPlayer" type="AnimationPlayer" parent="."]
103 | anims/fade_in = SubResource( 2 )
104 |
--------------------------------------------------------------------------------
/addons/AutoExportVersion/AutoExportVersion.gd:
--------------------------------------------------------------------------------
1 | tool
2 | extends EditorPlugin
3 |
4 | ## Path to the version script file (bruh).
5 | const VERSION_SCRIPT_PATH = "res://version.gd"
6 |
7 | ## Change the code of this method to return a String that will identify your version.
8 | ## Two example ways of doing so are provided, just uncomment one of them.
9 | ## You can use the arguments to customize your version based on selected platform or something.
10 | func _fetch_version(features: PoolStringArray, is_debug: bool, path: String, flags: int) -> String:
11 | ### Git version
12 | # Version is number of commits. Requires git installed
13 | # and project inside git repository with at least 1 commit.
14 |
15 | # var output := []
16 | # OS.execute("git", PoolStringArray(["rev-list", "--count", "HEAD"]), true, output)
17 | # if output.empty() or output[0].empty():
18 | # push_error("Failed to fetch version. Make sure you have git installed and project is inside valid git directory.")
19 | # else:
20 | # return output[0].trim_suffix("\n")
21 |
22 | ### Profile version
23 | # Extracts version from an export profile. Requires export_presets.cfg to exist.
24 | # The version will be taken from the first profile that contains non-empty value
25 | # in one of the version_keys.
26 |
27 | var version_keys := ["file_version", "product_version", "version/name"]
28 |
29 | var config := ConfigFile.new()
30 | if config.load("res://export_presets.cfg") == OK:
31 | var version := ""
32 | for section in config.get_sections():
33 | if section.ends_with(".options"):
34 | for key in config.get_section_keys(section):
35 | for check_key in version_keys:
36 | if key.ends_with(check_key):
37 | version = str(config.get_value(section, key))
38 |
39 | if not version.empty():
40 | break
41 | if not version.empty():
42 | break
43 | if not version.empty():
44 | break
45 |
46 | if version.empty():
47 | push_error("Failed to fetch version. No valid version key found in export profiles.")
48 | else:
49 | return version
50 | else:
51 | push_error("Failed to fetch version. export_presets.cfg does not exist.")
52 |
53 | return ""
54 |
55 | ### Unimportant stuff here.
56 |
57 | var exporter: AEVExporter
58 |
59 | func _enter_tree() -> void:
60 | exporter = AEVExporter.new()
61 | exporter.plugin = self
62 | add_export_plugin(exporter)
63 |
64 | if not File.new().file_exists(VERSION_SCRIPT_PATH):
65 | exporter.store_version(_fetch_version(PoolStringArray(), true, "", 0))
66 |
67 | func _exit_tree() -> void:
68 | remove_export_plugin(exporter)
69 |
70 | class AEVExporter extends EditorExportPlugin:
71 | var plugin
72 |
73 | func _export_begin(features: PoolStringArray, is_debug: bool, path: String, flags: int):
74 | var version: String = plugin._fetch_version(features, is_debug, path, flags)
75 | if version.empty():
76 | push_error("Version string is empty. Make sure your _fetch_version() is configured properly.")
77 |
78 | store_version(version)
79 |
80 | func store_version(version: String):
81 | var script = GDScript.new()
82 | script.source_code = str("extends Reference\nconst VERSION = \"", version, "\"\n")
83 | if ResourceSaver.save(VERSION_SCRIPT_PATH, script) != OK:
84 | push_error("Failed to save version file. Make sure the path is valid.")
85 |
--------------------------------------------------------------------------------