diff --git a/Cargo.toml b/Cargo.toml index be7ae76c1d..ed2b369f5f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1781,17 +1781,6 @@ description = "Demonstrates various methods to load assets" category = "Assets" wasm = false -[[example]] -name = "folder_filter" -path = "examples/asset/folder_filter.rs" -doc-scrape-examples = true - -[package.metadata.example.folder_filter] -name = "Folder Filter" -description = "Load Folder With Filter" -category = "Assets" -wasm = false - [[example]] name = "asset_settings" path = "examples/asset/asset_settings.rs" diff --git a/assets/textures/rpg_with_waste/chars/gabe/gabe-idle-run.png b/assets/textures/rpg_with_waste/chars/gabe/gabe-idle-run.png deleted file mode 100644 index c8f57e34cf..0000000000 Binary files a/assets/textures/rpg_with_waste/chars/gabe/gabe-idle-run.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/chars/hat-guy/hat-guy.png b/assets/textures/rpg_with_waste/chars/hat-guy/hat-guy.png deleted file mode 100644 index 8ccaee928e..0000000000 Binary files a/assets/textures/rpg_with_waste/chars/hat-guy/hat-guy.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/chars/mani/mani-idle-run.png b/assets/textures/rpg_with_waste/chars/mani/mani-idle-run.png deleted file mode 100644 index 30f45f0525..0000000000 Binary files a/assets/textures/rpg_with_waste/chars/mani/mani-idle-run.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/chars/sensei/sensei.png b/assets/textures/rpg_with_waste/chars/sensei/sensei.png deleted file mode 100644 index 18ac1809f0..0000000000 Binary files a/assets/textures/rpg_with_waste/chars/sensei/sensei.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/chars/vendor/generic-rpg-vendor.png b/assets/textures/rpg_with_waste/chars/vendor/generic-rpg-vendor.png deleted file mode 100644 index 8953346538..0000000000 Binary files a/assets/textures/rpg_with_waste/chars/vendor/generic-rpg-vendor.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/chars/waste.txt b/assets/textures/rpg_with_waste/chars/waste.txt deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/assets/textures/rpg_with_waste/mobs/boss_bee.png b/assets/textures/rpg_with_waste/mobs/boss_bee.png deleted file mode 100644 index 1971387a2a..0000000000 Binary files a/assets/textures/rpg_with_waste/mobs/boss_bee.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/mobs/fox-run.png b/assets/textures/rpg_with_waste/mobs/fox-run.png deleted file mode 100644 index 822f0c73dd..0000000000 Binary files a/assets/textures/rpg_with_waste/mobs/fox-run.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/mobs/kobold-idle.png b/assets/textures/rpg_with_waste/mobs/kobold-idle.png deleted file mode 100644 index 516018d9e0..0000000000 Binary files a/assets/textures/rpg_with_waste/mobs/kobold-idle.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/mobs/slime-blue.png b/assets/textures/rpg_with_waste/mobs/slime-blue.png deleted file mode 100644 index f2d3d4423f..0000000000 Binary files a/assets/textures/rpg_with_waste/mobs/slime-blue.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/mobs/slime-green.png b/assets/textures/rpg_with_waste/mobs/slime-green.png deleted file mode 100644 index 919af57148..0000000000 Binary files a/assets/textures/rpg_with_waste/mobs/slime-green.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/mobs/slime-orange.png b/assets/textures/rpg_with_waste/mobs/slime-orange.png deleted file mode 100644 index a897ba1a85..0000000000 Binary files a/assets/textures/rpg_with_waste/mobs/slime-orange.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/mobs/worm-run-idle.png b/assets/textures/rpg_with_waste/mobs/worm-run-idle.png deleted file mode 100644 index 37783159d6..0000000000 Binary files a/assets/textures/rpg_with_waste/mobs/worm-run-idle.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-barrel01.png b/assets/textures/rpg_with_waste/props/generic-rpg-barrel01.png deleted file mode 100644 index 6a56a788c3..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-barrel01.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-barrel02.png b/assets/textures/rpg_with_waste/props/generic-rpg-barrel02.png deleted file mode 100644 index 8d7317cd53..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-barrel02.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-barrel03.png b/assets/textures/rpg_with_waste/props/generic-rpg-barrel03.png deleted file mode 100644 index 0d25801629..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-barrel03.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-board01.png b/assets/textures/rpg_with_waste/props/generic-rpg-board01.png deleted file mode 100644 index 2abb8fb338..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-board01.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-board02.png b/assets/textures/rpg_with_waste/props/generic-rpg-board02.png deleted file mode 100644 index aaf1cfa9ed..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-board02.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-board03.png b/assets/textures/rpg_with_waste/props/generic-rpg-board03.png deleted file mode 100644 index 6a46853702..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-board03.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-board04.png b/assets/textures/rpg_with_waste/props/generic-rpg-board04.png deleted file mode 100644 index 1edbc13d2d..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-board04.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-bridge.png b/assets/textures/rpg_with_waste/props/generic-rpg-bridge.png deleted file mode 100644 index a9756774b8..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-bridge.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-crate01.png b/assets/textures/rpg_with_waste/props/generic-rpg-crate01.png deleted file mode 100644 index 9980613d04..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-crate01.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-crate02.png b/assets/textures/rpg_with_waste/props/generic-rpg-crate02.png deleted file mode 100644 index af1ca4cf8f..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-crate02.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-crate03.png b/assets/textures/rpg_with_waste/props/generic-rpg-crate03.png deleted file mode 100644 index 1670c61166..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-crate03.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence-complete.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence-complete.png deleted file mode 100644 index b51f50a7c8..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence-complete.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw01.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw01.png deleted file mode 100644 index df77e2e7c8..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw01.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw02.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw02.png deleted file mode 100644 index 23e1e584e0..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw02.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw03.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw03.png deleted file mode 100644 index b8bb8d37ec..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw03.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw04.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw04.png deleted file mode 100644 index 40067176ea..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw04.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw05.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw05.png deleted file mode 100644 index 464e659bf6..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw05.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw06.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw06.png deleted file mode 100644 index f6e9deb7b7..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw06.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw07.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw07.png deleted file mode 100644 index 524ac91b78..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw07.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw08.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw08.png deleted file mode 100644 index 5521d89e6c..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw08.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw09.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw09.png deleted file mode 100644 index 444353ee27..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw09.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw10.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw10.png deleted file mode 100644 index 4c7d37ef4e..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw10.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw11.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw11.png deleted file mode 100644 index f66d54c0b7..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw11.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw12.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw12.png deleted file mode 100644 index dbf962e9df..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw12.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw13.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw13.png deleted file mode 100644 index ed53feeda8..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw13.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw14.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw14.png deleted file mode 100644 index ef14b1cf64..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw14.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw15.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw15.png deleted file mode 100644 index 48306b30f8..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw15.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw16.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw16.png deleted file mode 100644 index f039c9877e..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw16.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw17.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw17.png deleted file mode 100644 index 21b2079e89..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw17.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw18.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw18.png deleted file mode 100644 index 434ccb7e12..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw18.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw19.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw19.png deleted file mode 100644 index 2bb913e39c..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw19.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw20.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw20.png deleted file mode 100644 index 2205296b85..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw20.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw21.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw21.png deleted file mode 100644 index 223f358a48..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw21.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw22.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw22.png deleted file mode 100644 index c137ab8042..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw22.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw23.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw23.png deleted file mode 100644 index 8f69161186..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw23.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw24.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw24.png deleted file mode 100644 index 8f2286f0e6..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw24.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw25.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw25.png deleted file mode 100644 index 32b1813fa5..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw25.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence01.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence01.png deleted file mode 100644 index 34e11a6b45..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence01.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence02.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence02.png deleted file mode 100644 index 66e1c204ca..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence02.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence03.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence03.png deleted file mode 100644 index d41b816abc..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence03.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence04.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence04.png deleted file mode 100644 index d1374f8ecb..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence04.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence05.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence05.png deleted file mode 100644 index 8baa1857da..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence05.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence06.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence06.png deleted file mode 100644 index c70a71b1e7..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence06.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence07.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence07.png deleted file mode 100644 index 4c5fe0f1d7..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence07.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence08.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence08.png deleted file mode 100644 index 0e46720a14..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence08.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence09.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence09.png deleted file mode 100644 index 189e4a52c6..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence09.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence10.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence10.png deleted file mode 100644 index 2645e20cdc..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence10.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence11.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence11.png deleted file mode 100644 index 57f7e9a003..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence11.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence12.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence12.png deleted file mode 100644 index 38c1a6505e..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence12.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence13.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence13.png deleted file mode 100644 index 78890e5914..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence13.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fence14.png b/assets/textures/rpg_with_waste/props/generic-rpg-fence14.png deleted file mode 100644 index 0dfed6aac0..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fence14.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fish01.png b/assets/textures/rpg_with_waste/props/generic-rpg-fish01.png deleted file mode 100644 index 313b7aff52..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fish01.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fish02.png b/assets/textures/rpg_with_waste/props/generic-rpg-fish02.png deleted file mode 100644 index 7ce035d59c..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fish02.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fish03.png b/assets/textures/rpg_with_waste/props/generic-rpg-fish03.png deleted file mode 100644 index 17693a6c14..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fish03.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-fish04.png b/assets/textures/rpg_with_waste/props/generic-rpg-fish04.png deleted file mode 100644 index 610dce6fd6..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-fish04.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-flower01.png b/assets/textures/rpg_with_waste/props/generic-rpg-flower01.png deleted file mode 100644 index 464523232f..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-flower01.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-flower02.png b/assets/textures/rpg_with_waste/props/generic-rpg-flower02.png deleted file mode 100644 index cd30eca5a3..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-flower02.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-flower03.png b/assets/textures/rpg_with_waste/props/generic-rpg-flower03.png deleted file mode 100644 index 4d1373bbb3..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-flower03.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-flowers.png b/assets/textures/rpg_with_waste/props/generic-rpg-flowers.png deleted file mode 100644 index 2820f5eb96..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-flowers.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-grass01.png b/assets/textures/rpg_with_waste/props/generic-rpg-grass01.png deleted file mode 100644 index f7718c95fb..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-grass01.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-grass02.png b/assets/textures/rpg_with_waste/props/generic-rpg-grass02.png deleted file mode 100644 index a5e38a8ba9..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-grass02.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-house-inn.png b/assets/textures/rpg_with_waste/props/generic-rpg-house-inn.png deleted file mode 100644 index 007f3b7318..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-house-inn.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-loot01.png b/assets/textures/rpg_with_waste/props/generic-rpg-loot01.png deleted file mode 100644 index 5f158afab5..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-loot01.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-loot02.png b/assets/textures/rpg_with_waste/props/generic-rpg-loot02.png deleted file mode 100644 index 57732b9358..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-loot02.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-loot03.png b/assets/textures/rpg_with_waste/props/generic-rpg-loot03.png deleted file mode 100644 index b0c154a1b2..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-loot03.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-loot04.png b/assets/textures/rpg_with_waste/props/generic-rpg-loot04.png deleted file mode 100644 index 83c2852320..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-loot04.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-loot05.png b/assets/textures/rpg_with_waste/props/generic-rpg-loot05.png deleted file mode 100644 index 3eaf8173e4..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-loot05.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-mini-lake.png b/assets/textures/rpg_with_waste/props/generic-rpg-mini-lake.png deleted file mode 100644 index 8a2d5770d2..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-mini-lake.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-rock01.png b/assets/textures/rpg_with_waste/props/generic-rpg-rock01.png deleted file mode 100644 index 150a645baa..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-rock01.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-rock02.png b/assets/textures/rpg_with_waste/props/generic-rpg-rock02.png deleted file mode 100644 index 4803105cef..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-rock02.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-rock03.png b/assets/textures/rpg_with_waste/props/generic-rpg-rock03.png deleted file mode 100644 index ed8db5184b..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-rock03.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-rock04.png b/assets/textures/rpg_with_waste/props/generic-rpg-rock04.png deleted file mode 100644 index 8a1c3a01c7..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-rock04.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-rock05.png b/assets/textures/rpg_with_waste/props/generic-rpg-rock05.png deleted file mode 100644 index 1b5c5d1444..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-rock05.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-rock06.png b/assets/textures/rpg_with_waste/props/generic-rpg-rock06.png deleted file mode 100644 index 79d8a58a82..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-rock06.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-rod.png b/assets/textures/rpg_with_waste/props/generic-rpg-rod.png deleted file mode 100644 index f0e7e170a7..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-rod.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-trasure-open.png b/assets/textures/rpg_with_waste/props/generic-rpg-trasure-open.png deleted file mode 100644 index 2bea8b4075..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-trasure-open.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-treasure-closed.png b/assets/textures/rpg_with_waste/props/generic-rpg-treasure-closed.png deleted file mode 100644 index dbf5bf81a8..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-treasure-closed.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-tree01.png b/assets/textures/rpg_with_waste/props/generic-rpg-tree01.png deleted file mode 100644 index 6ddb47c45f..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-tree01.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/props/generic-rpg-tree02.png b/assets/textures/rpg_with_waste/props/generic-rpg-tree02.png deleted file mode 100644 index ef3976b66b..0000000000 Binary files a/assets/textures/rpg_with_waste/props/generic-rpg-tree02.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-Slice.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-Slice.png deleted file mode 100644 index 07bab3c2a7..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-Slice.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile-waterfall01.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile-waterfall01.png deleted file mode 100644 index 3cdcd66c6f..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile-waterfall01.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile-waterfall02.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile-waterfall02.png deleted file mode 100644 index dcfe37f634..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile-waterfall02.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile-waterfall03.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile-waterfall03.png deleted file mode 100644 index 293a6b58dc..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile-waterfall03.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile-waterfall04.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile-waterfall04.png deleted file mode 100644 index 32f1053a7a..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile-waterfall04.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile-waterfall05.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile-waterfall05.png deleted file mode 100644 index f72d7ead1f..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile-waterfall05.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile-waterfall06.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile-waterfall06.png deleted file mode 100644 index b61f16d2e3..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile-waterfall06.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile-waterfall07.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile-waterfall07.png deleted file mode 100644 index 8d0259e0d9..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile-waterfall07.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile01.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile01.png deleted file mode 100644 index 5c6c3fc136..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile01.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile02.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile02.png deleted file mode 100644 index 0fbf90abb8..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile02.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile03.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile03.png deleted file mode 100644 index 3dacf2f659..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile03.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile04.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile04.png deleted file mode 100644 index dfb9977a33..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile04.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile05.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile05.png deleted file mode 100644 index b02478171e..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile05.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile06.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile06.png deleted file mode 100644 index dbc12c8b89..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile06.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile07.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile07.png deleted file mode 100644 index 1bf5aa69bc..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile07.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile08.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile08.png deleted file mode 100644 index c6a715cce5..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile08.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile09.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile09.png deleted file mode 100644 index d73be99417..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile09.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile10.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile10.png deleted file mode 100644 index dedf2095b0..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile10.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile11.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile11.png deleted file mode 100644 index d0f43fc290..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile11.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile12.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile12.png deleted file mode 100644 index fbde8a9cc5..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile12.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile13.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile13.png deleted file mode 100644 index 546b7fe321..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile13.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile14.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile14.png deleted file mode 100644 index 7476a1df2d..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile14.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile15.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile15.png deleted file mode 100644 index b825171009..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile15.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile16.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile16.png deleted file mode 100644 index d0eab48e51..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile16.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile17.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile17.png deleted file mode 100644 index c108608bd6..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile17.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile18.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile18.png deleted file mode 100644 index 7e8c31c9b8..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile18.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile19.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile19.png deleted file mode 100644 index 798bd1f599..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile19.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile20.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile20.png deleted file mode 100644 index 570419757b..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile20.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile21.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile21.png deleted file mode 100644 index 53e54e39f5..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile21.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile22.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile22.png deleted file mode 100644 index bd8226a40a..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile22.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile23.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile23.png deleted file mode 100644 index c9ca882522..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile23.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile24.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile24.png deleted file mode 100644 index b4cc644973..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile24.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile25.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile25.png deleted file mode 100644 index 40af80f1cf..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile25.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile26.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile26.png deleted file mode 100644 index d751b823a8..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile26.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile27.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile27.png deleted file mode 100644 index 8a02dc2745..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile27.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile28.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile28.png deleted file mode 100644 index 37fe95b73b..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile28.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile29.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile29.png deleted file mode 100644 index 578299ee36..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile29.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile30.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile30.png deleted file mode 100644 index 3a57cbf646..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile30.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile31.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile31.png deleted file mode 100644 index a87b16d7f8..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile31.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile32.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile32.png deleted file mode 100644 index c051b75f6d..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile32.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile33.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile33.png deleted file mode 100644 index ad559527ed..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile33.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile34.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile34.png deleted file mode 100644 index a2f9c1420d..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile34.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile35.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile35.png deleted file mode 100644 index 527e7dd791..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile35.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile37.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile37.png deleted file mode 100644 index efcb8c0cbe..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile37.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile38.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile38.png deleted file mode 100644 index 07bab3c2a7..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile38.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile39.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile39.png deleted file mode 100644 index 0b13fb6628..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile39.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile40.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile40.png deleted file mode 100644 index 191bdf0a71..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile40.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile41.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile41.png deleted file mode 100644 index cc70b01883..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile41.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile42.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile42.png deleted file mode 100644 index 8b01739cde..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile42.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile43.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile43.png deleted file mode 100644 index 35babee8b0..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile43.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile44.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile44.png deleted file mode 100644 index b6271ed7c7..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile44.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile45.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile45.png deleted file mode 100644 index d37df80a65..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile45.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile46.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile46.png deleted file mode 100644 index 243933f772..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile46.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile47.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile47.png deleted file mode 100644 index 2d568b4d59..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile47.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile48.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile48.png deleted file mode 100644 index d7827d52ba..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile48.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile49.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile49.png deleted file mode 100644 index f2d0f65546..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile49.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile50.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile50.png deleted file mode 100644 index c3dccca8c2..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile50.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile51.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile51.png deleted file mode 100644 index ca94b8c398..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile51.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile52.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile52.png deleted file mode 100644 index 44bd6653ec..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile52.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile53.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile53.png deleted file mode 100644 index 5ca24fa27f..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile53.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile54.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile54.png deleted file mode 100644 index 0808a563b3..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile54.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile55.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile55.png deleted file mode 100644 index 413224486e..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile55.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile56.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile56.png deleted file mode 100644 index 5a37f17250..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile56.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile57.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile57.png deleted file mode 100644 index 4e98383113..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile57.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile58.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile58.png deleted file mode 100644 index c250464a87..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile58.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile59.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile59.png deleted file mode 100644 index a0cde78a93..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile59.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile60.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile60.png deleted file mode 100644 index 6e67cbb19d..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile60.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile61.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile61.png deleted file mode 100644 index bc5c8aad64..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile61.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile62.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile62.png deleted file mode 100644 index f5f4e07ada..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile62.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile63.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile63.png deleted file mode 100644 index 2805264711..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile63.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile64.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile64.png deleted file mode 100644 index 9aa272da9c..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile64.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile65.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile65.png deleted file mode 100644 index a60a2d4c96..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile65.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile66.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile66.png deleted file mode 100644 index 1de9294ace..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile66.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile67.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile67.png deleted file mode 100644 index b53c74e306..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile67.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile68.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile68.png deleted file mode 100644 index 3eb1031859..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile68.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile69.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile69.png deleted file mode 100644 index 51a490cc33..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile69.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile70.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile70.png deleted file mode 100644 index 07bab3c2a7..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile70.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile71.png b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile71.png deleted file mode 100644 index e82a487c35..0000000000 Binary files a/assets/textures/rpg_with_waste/tiles/generic-rpg-tile71.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/ui/generic-rpg-ui-inventario.png b/assets/textures/rpg_with_waste/ui/generic-rpg-ui-inventario.png deleted file mode 100644 index e7b2fd085a..0000000000 Binary files a/assets/textures/rpg_with_waste/ui/generic-rpg-ui-inventario.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/ui/generic-rpg-ui-inventario01.png b/assets/textures/rpg_with_waste/ui/generic-rpg-ui-inventario01.png deleted file mode 100644 index fab304a230..0000000000 Binary files a/assets/textures/rpg_with_waste/ui/generic-rpg-ui-inventario01.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/ui/generic-rpg-ui-inventario02.png b/assets/textures/rpg_with_waste/ui/generic-rpg-ui-inventario02.png deleted file mode 100644 index 7b1a1d8976..0000000000 Binary files a/assets/textures/rpg_with_waste/ui/generic-rpg-ui-inventario02.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/ui/generic-rpg-ui-inventario03.png b/assets/textures/rpg_with_waste/ui/generic-rpg-ui-inventario03.png deleted file mode 100644 index b2c9c7001d..0000000000 Binary files a/assets/textures/rpg_with_waste/ui/generic-rpg-ui-inventario03.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/ui/generic-rpg-ui-inventario04.png b/assets/textures/rpg_with_waste/ui/generic-rpg-ui-inventario04.png deleted file mode 100644 index 27fe22397c..0000000000 Binary files a/assets/textures/rpg_with_waste/ui/generic-rpg-ui-inventario04.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/ui/generic-rpg-ui-text-box.png b/assets/textures/rpg_with_waste/ui/generic-rpg-ui-text-box.png deleted file mode 100644 index 0842f8510a..0000000000 Binary files a/assets/textures/rpg_with_waste/ui/generic-rpg-ui-text-box.png and /dev/null differ diff --git a/assets/textures/rpg_with_waste/waste.txt b/assets/textures/rpg_with_waste/waste.txt deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/crates/bevy_asset/src/batch.rs b/crates/bevy_asset/src/batch.rs new file mode 100644 index 0000000000..70781b9aac --- /dev/null +++ b/crates/bevy_asset/src/batch.rs @@ -0,0 +1,25 @@ +use alloc::vec::Vec; + +use crate::{Asset, AssetPath, UntypedHandle}; +use bevy_reflect::TypePath; + +pub struct LoadBatchRequest { + pub requests: Vec<&'static str>, +} + +impl LoadBatchRequest { + pub fn new(requests: Vec<&'static str>) -> Self { + Self { requests } + } +} +/// A "loaded batch" containing handles for all assets stored in a given [`AssetPath`]. +/// +/// This is produced by [`AssetServer::load_batch`](crate::prelude::AssetServer::load_batch). +/// +/// [`AssetPath`]: crate::AssetPath +#[derive(Asset, TypePath)] +pub struct LoadedBatch { + /// The handles of all assets stored in the batch. + #[dependency] + pub handles: Vec, +} diff --git a/crates/bevy_asset/src/folder.rs b/crates/bevy_asset/src/folder.rs deleted file mode 100644 index 6ffc955e34..0000000000 --- a/crates/bevy_asset/src/folder.rs +++ /dev/null @@ -1,74 +0,0 @@ -use alloc::{sync::Arc, vec::Vec}; - -use crate::{Asset, UntypedHandle}; -use bevy_reflect::TypePath; - -/// This is use for [`AssetServer::load_folder_with_filter`](crate::prelude::AssetServer::load_folder_with_filter). -#[derive(Debug, Clone, Copy, Default)] -pub enum LoadFilterKind { - #[default] - White, //Allow loading - Black, //Disallow loading -} - -impl LoadFilterKind { - pub fn apply(&self, expr: bool) -> bool { - match self { - LoadFilterKind::White => expr, - LoadFilterKind::Black => !expr, - } - } -} - -#[derive(Debug, Clone, Default)] -pub struct LoadFilter { - pub paths: Option>>, - pub paths_kind: LoadFilterKind, - pub extensions: Option>>, - pub extensions_kind: LoadFilterKind, -} - -impl LoadFilter { - pub fn new( - paths: Vec<&'static str>, - paths_kind: LoadFilterKind, - extensions: Vec<&'static str>, - extensions_kind: LoadFilterKind, - ) -> Self { - Self { - paths: Some(Arc::new(paths)), - paths_kind, - extensions: Some(Arc::new(extensions)), - extensions_kind, - } - } - pub fn paths(paths: Vec<&'static str>, paths_kind: LoadFilterKind) -> Self { - Self { - paths: Some(Arc::new(paths)), - paths_kind, - extensions: None, - ..Default::default() - } - } - pub fn extensions(extensions: Vec<&'static str>, extensions_kind: LoadFilterKind) -> Self { - Self { - paths: None, - extensions: Some(Arc::new(extensions)), - extensions_kind, - ..Default::default() - } - } -} -/// A "loaded folder" containing handles for all assets stored in a given [`AssetPath`]. -/// -/// This is produced by [`AssetServer::load_folder`](crate::prelude::AssetServer::load_folder). -/// -/// [`AssetPath`]: crate::AssetPath -#[derive(Asset, TypePath)] -pub struct LoadedFolder { - /// The handles of all assets stored in the folder. - #[dependency] - pub handles: Vec, - /// For filtering files that are required or not required. - pub load_filter: Option, -} diff --git a/crates/bevy_asset/src/lib.rs b/crates/bevy_asset/src/lib.rs index 4b29beae79..ea51991899 100644 --- a/crates/bevy_asset/src/lib.rs +++ b/crates/bevy_asset/src/lib.rs @@ -174,9 +174,9 @@ pub mod prelude { mod asset_changed; mod assets; +mod batch; mod direct_access_ext; mod event; -mod folder; mod handle; mod id; mod loader; @@ -187,10 +187,10 @@ mod render_asset; mod server; pub use assets::*; +pub use batch::*; pub use bevy_asset_macros::Asset; pub use direct_access_ext::DirectAssetAccessExt; pub use event::*; -pub use folder::*; pub use futures_lite::{AsyncReadExt, AsyncWriteExt}; pub use handle::*; pub use id::*; @@ -410,7 +410,7 @@ impl Plugin for AssetPlugin { } } app.insert_resource(embedded) - .init_asset::() + .init_asset::() .init_asset::() .init_asset::<()>() .add_event::() @@ -668,7 +668,7 @@ pub type AssetEvents = AssetEventSystems; #[cfg(test)] mod tests { use crate::{ - folder::LoadedFolder, + batch::LoadedBatch, handle::Handle, io::{ gated::{GateOpener, GatedReader}, @@ -677,7 +677,7 @@ mod tests { }, loader::{AssetLoader, LoadContext}, Asset, AssetApp, AssetEvent, AssetId, AssetLoadError, AssetLoadFailedEvent, AssetPath, - AssetPlugin, AssetServer, Assets, LoadState, UnapprovedPathMode, + AssetPlugin, AssetServer, Assets, LoadBatchRequest, LoadState, UnapprovedPathMode, }; use alloc::{ boxed::Box, @@ -1618,21 +1618,22 @@ mod tests { .init_asset::() .register_asset_loader(CoolTextLoader); let asset_server = app.world().resource::().clone(); - let handle: Handle = asset_server.load_folder("text"); + let handle: Handle = + asset_server.load_batch(LoadBatchRequest::new(vec!["text"])); gate_opener.open(a_path); gate_opener.open(b_path); gate_opener.open(c_path); let mut reader = EventCursor::default(); run_app_until(&mut app, |world| { - let events = world.resource::>>(); + let events = world.resource::>>(); let asset_server = world.resource::(); - let loaded_folders = world.resource::>(); + let loaded_batchs = world.resource::>(); let cool_texts = world.resource::>(); for event in reader.read(events) { if let AssetEvent::LoadedWithDependencies { id } = event { if *id == handle.id() { - let loaded_folder = loaded_folders.get(&handle).unwrap(); + let loaded_batch = loaded_batchs.get(&handle).unwrap(); let a_handle: Handle = asset_server.get_handle("text/a.cool.ron").unwrap(); let c_handle: Handle = @@ -1640,7 +1641,7 @@ mod tests { let mut found_a = false; let mut found_c = false; - for asset_handle in &loaded_folder.handles { + for asset_handle in &loaded_batch.handles { if asset_handle.id() == a_handle.id().untyped() { found_a = true; } else if asset_handle.id() == c_handle.id().untyped() { @@ -1649,7 +1650,7 @@ mod tests { } assert!(found_a); assert!(found_c); - assert_eq!(loaded_folder.handles.len(), 2); + assert_eq!(loaded_batch.handles.len(), 2); let a_text = cool_texts.get(&a_handle).unwrap(); let b_text = cool_texts.get(&a_text.dependencies[0]).unwrap(); diff --git a/crates/bevy_asset/src/server/mod.rs b/crates/bevy_asset/src/server/mod.rs index 8922870c21..4f22a141bc 100644 --- a/crates/bevy_asset/src/server/mod.rs +++ b/crates/bevy_asset/src/server/mod.rs @@ -2,10 +2,9 @@ mod info; mod loaders; use crate::{ - folder::{LoadFilter, LoadedFolder}, io::{ AssetReaderError, AssetSource, AssetSourceEvent, AssetSourceId, AssetSources, - AssetWriterError, ErasedAssetReader, MissingAssetSourceError, MissingAssetWriterError, + AssetWriterError, MissingAssetSourceError, MissingAssetWriterError, MissingProcessedAssetReaderError, Reader, }, loader::{AssetLoader, ErasedAssetLoader, LoadContext, LoadedAsset}, @@ -15,8 +14,9 @@ use crate::{ }, path::AssetPath, Asset, AssetEvent, AssetHandleProvider, AssetId, AssetLoadFailedEvent, AssetMetaCheck, Assets, - DeserializeMetaError, ErasedLoadedAsset, Handle, LoadFilterKind, LoadedUntypedAsset, - UnapprovedPathMode, UntypedAssetId, UntypedAssetLoadFailedEvent, UntypedHandle, + DeserializeMetaError, ErasedLoadedAsset, Handle, LoadBatchRequest, LoadedBatch, + LoadedUntypedAsset, UnapprovedPathMode, UntypedAssetId, UntypedAssetLoadFailedEvent, + UntypedHandle, }; use alloc::{borrow::ToOwned, boxed::Box, vec, vec::Vec}; use alloc::{ @@ -26,17 +26,16 @@ use alloc::{ }; use atomicow::CowArc; use bevy_ecs::prelude::*; -use bevy_platform::collections::{HashMap, HashSet}; +use bevy_platform::collections::HashSet; use bevy_tasks::IoTaskPool; use core::{any::TypeId, future::Future, panic::AssertUnwindSafe, task::Poll}; use crossbeam_channel::{Receiver, Sender}; use either::Either; -use futures_lite::{FutureExt, StreamExt}; -use glob::Pattern; +use futures_lite::FutureExt; use info::*; use loaders::*; use parking_lot::{RwLock, RwLockWriteGuard}; -use std::path::{Path, PathBuf}; +use std::path::{self, Path, PathBuf}; use thiserror::Error; use tracing::{error, info}; @@ -936,34 +935,6 @@ impl AssetServer { handle.typed_debug_checked() } - /// Loads all assets from the specified folder recursively. The [`LoadedFolder`] asset (when it loads) will - /// contain handles to all assets in the folder. You can wait for all assets to load by checking the [`LoadedFolder`]'s - /// [`RecursiveDependencyLoadState`]. - /// - /// Loading the same folder multiple times will return the same handle. If the `file_watcher` - /// feature is enabled, [`LoadedFolder`] handles will reload when a file in the folder is - /// removed, added or moved. This includes files in subdirectories and moving, adding, - /// or removing complete subdirectories. - #[must_use = "not using the returned strong handle may result in the unexpected release of the assets"] - pub fn load_folder<'a>(&self, path: impl Into>) -> Handle { - let path = path.into().into_owned(); - let (handle, should_load) = self - .data - .infos - .write() - .get_or_create_path_handle::( - path.clone(), - HandleLoadingMode::Request, - None, - ); - if !should_load { - return handle; - } - let id = handle.id().untyped(); - self.load_folder_internal(id, path, None); - - handle - } /// Loads all assets from the specified folder recursively with batch. The [`LoadedFolder`] asset (when it loads) will /// contain handles to all assets in the folder. You can wait for all assets to load by checking the [`LoadedFolder`]'s /// [`RecursiveDependencyLoadState`]. @@ -973,166 +944,103 @@ impl AssetServer { /// removed, added or moved. This includes files in subdirectories and moving, adding, /// or removing complete subdirectories. #[must_use = "not using the returned strong handle may result in the unexpected release of the assets"] - pub fn load_folder_with_filter<'a>( - &self, - path: impl Into>, - load_filter: LoadFilter, - ) -> Handle { - let path = path.into().into_owned(); - let (handle, should_load) = self - .data - .infos - .write() - .get_or_create_path_handle::( - path.clone(), - HandleLoadingMode::Request, - None, - ); - if !should_load { - return handle; - } - let id = handle.id().untyped(); - self.load_folder_internal(id, path, Some(load_filter)); - handle + pub fn load_batch<'a>(&self, load_batch_request: LoadBatchRequest) -> Handle { + let handle = self.data.infos.write().create_loading_handle_untyped( + TypeId::of::(), + core::any::type_name::(), + ); + + self.load_batch_internal(handle.id(), load_batch_request); + handle.typed_debug_checked() } - pub(crate) fn load_folder_internal( + pub(crate) fn load_batch_internal( &self, id: UntypedAssetId, - path: AssetPath, - load_filter: Option, + load_batch_request: LoadBatchRequest, ) { - async fn load_folder<'a>( + async fn load_file<'a>( source: AssetSourceId<'static>, path: &'a Path, - reader: &'a dyn ErasedAssetReader, server: &'a AssetServer, handles: &'a mut Vec, - patterns: &'a Vec, - patterns_kind: LoadFilterKind, - extensions: &'a Option>>, - extensions_kind: LoadFilterKind, ) -> Result<(), AssetLoadError> { - let is_dir = reader.is_directory(path).await?; - if is_dir { - let mut path_stream = reader.read_directory(path.as_ref()).await?; - while let Some(child_path) = path_stream.next().await { - if reader.is_directory(&child_path).await? { - Box::pin(load_folder( - source.clone(), - &child_path, - reader, - server, - handles, - patterns, - patterns_kind, - extensions, - extensions_kind, - )) - .await?; - } else { - let path = child_path.to_str().expect("Path should be a valid string."); + let path = path + .strip_prefix("assets\\") + .unwrap() + .to_str() + .expect("Path should be a valid string."); + let asset_path = AssetPath::parse(path).with_source(source.clone()); - if !patterns_kind - .apply(patterns.iter().any(|pattern| pattern.matches(path))) - { - continue; - } - - if let Some(extensions) = extensions { - match child_path.extension() { - Some(ext) => { - if !extensions_kind.apply(extensions.contains( - &ext.to_str().expect("Path should be a valid string."), - )) { - continue; - } - } - None => break, - }; - } - let asset_path = AssetPath::parse(path).with_source(source.clone()); - - match server.load_untyped_async(asset_path).await { - Ok(handle) => handles.push(handle), - // skip assets that cannot be loaded - Err( - AssetLoadError::MissingAssetLoaderForTypeName(_) - | AssetLoadError::MissingAssetLoaderForExtension(_), - ) => {} - Err(err) => return Err(err), - } - } - } + match server.load_untyped_async(asset_path).await { + Ok(handle) => handles.push(handle), + // skip assets that cannot be loaded + Err( + AssetLoadError::MissingAssetLoaderForTypeName(_) + | AssetLoadError::MissingAssetLoaderForExtension(_), + ) => {} + Err(err) => return Err(err), } Ok(()) } - let path = path.into_owned(); - let patterns: Vec = load_filter - .as_ref() - .map(|batch| { - batch - .paths - .clone() - .unwrap_or(Arc::new(vec!["*/*"])) - .iter() - .map(|path| Pattern::new(path).expect("Failed to create pattern from path")) - .collect() - }) - .unwrap_or(vec![Pattern::new("*/*").unwrap()]); - let patterns_kind = load_filter - .as_ref() - .map(|batch| batch.paths_kind) - .unwrap_or_default(); - - let extensions = load_filter - .as_ref() - .map(|batch| batch.extensions.clone()) - .unwrap_or_default(); - let extensions_kind = load_filter - .as_ref() - .map(|batch| batch.extensions_kind) - .unwrap_or_default(); - let server = self.clone(); IoTaskPool::get() .spawn(async move { - let Ok(source) = server.get_source(path.source()) else { - error!( - "Failed to load {path}. AssetSource {} does not exist", - path.source() - ); - return; - }; - - let asset_reader = match server.data.mode { - AssetServerMode::Unprocessed => source.reader(), - AssetServerMode::Processed => match source.processed_reader() { - Ok(reader) => reader, - Err(_) => { - error!( - "Failed to load {path}. AssetSource {} does not have a processed AssetReader", - path.source() - ); + let mut handles = Vec::new(); + for request_path in load_batch_request.requests.iter() { + let glob_pattern = format!("assets/{}", request_path); + let glob_result = match glob::glob(&glob_pattern) { + Ok(g) => g, + Err(e) => { + error!("Invalid glob pattern {}: {}", request_path, e); return; } - }, - }; + }; - let mut handles = Vec::new(); - match load_folder(source.id(), path.path(), asset_reader, &server, &mut handles,&patterns,patterns_kind,&extensions,extensions_kind).await { - Ok(_) => server.send_asset_event(InternalAssetEvent::Loaded { - id, - loaded_asset: LoadedAsset::new_with_dependencies( - LoadedFolder { handles,load_filter }, - ) - .into(), - }), - Err(err) => { - error!("Failed to load folder. {err}"); - server.send_asset_event(InternalAssetEvent::Failed { id, error: err, path }); - }, + for entry in glob_result { + let path = match entry { + Ok(path) => path, + Err(e) => { + error!("Failed to read path matching {}: {}", request_path, e); + return; + } + }; + + if path.is_dir() { + continue; + } + + let path = AssetPath::from_path_buf(path); + + let source = match server.get_source(path.source()) { + Ok(s) => s, + Err(_) => { + error!( + "Failed to load {}. AssetSource {} does not exist", + path, + path.source() + ); + continue; + } + }; + + if let Err(err) = + load_file(source.id(), path.path(), &server, &mut handles).await + { + error!("Failed to load {}: {}", path, err); + server.send_asset_event(InternalAssetEvent::Failed { + id, + error: err, + path: path.clone(), + }); + } + } } + server.send_asset_event(InternalAssetEvent::Loaded { + id, + loaded_asset: LoadedAsset::new_with_dependencies(LoadedBatch { handles }) + .into(), + }) }) .detach(); } @@ -1710,17 +1618,6 @@ impl AssetServer { /// A system that manages internal [`AssetServer`] events, such as finalizing asset loads. pub fn handle_internal_asset_events(world: &mut World) { world.resource_scope(|world, server: Mut| { - let mut load_filters: HashMap, Option> = HashMap::new(); - for (id, loaded_folder) in world - .get_resource::>() - .expect("Could not get LoadedFolder Assets") - .iter() - { - load_filters.insert( - server.get_path(id).expect("Path should be a valid string."), - loaded_folder.load_filter.clone(), - ); - } let mut infos = server.data.infos.write(); let var_name = vec![]; let mut untyped_failures = var_name; @@ -1783,24 +1680,8 @@ pub fn handle_internal_asset_events(world: &mut World) { } } - let reload_parent_folders = |path: PathBuf, source: &AssetSourceId<'static>| { - let mut current_folder = path; - while let Some(parent) = current_folder.parent() { - current_folder = parent.to_path_buf(); - let parent_asset_path = - AssetPath::from(current_folder.clone()).with_source(source.clone()); - for folder_handle in infos.get_path_handles(&parent_asset_path) { - info!("Reloading folder {parent_asset_path} because the content has changed"); - server.load_folder_internal( - folder_handle.id(), - parent_asset_path.clone(), - load_filters - .get(&parent_asset_path) - .expect("parent folder is doesn't loaded") - .clone(), - ); - } - } + let reload_parent_folders = |_path: PathBuf, _source: &AssetSourceId<'static>| { + info!("reload_parent_folders"); }; let mut paths_to_reload = >::default(); diff --git a/examples/2d/texture_atlas.rs b/examples/2d/texture_atlas.rs index 25106adcfb..75a0861b63 100644 --- a/examples/2d/texture_atlas.rs +++ b/examples/2d/texture_atlas.rs @@ -7,7 +7,8 @@ //! Only one padded and one unpadded texture atlas are rendered to the screen. //! An upscaled sprite from each of the four atlases are rendered to the screen. -use bevy::{asset::LoadedFolder, image::ImageSampler, prelude::*}; +use bevy::{image::ImageSampler, prelude::*}; +use bevy_asset::{LoadBatchRequest, LoadedBatch}; fn main() { App::new() @@ -27,17 +28,19 @@ enum AppState { } #[derive(Resource, Default)] -struct RpgSpriteFolder(Handle); +struct RpgSpriteFolder(Handle); fn load_textures(mut commands: Commands, asset_server: Res) { // Load multiple, individual sprites from a folder - commands.insert_resource(RpgSpriteFolder(asset_server.load_folder("textures/rpg"))); + commands.insert_resource(RpgSpriteFolder(asset_server.load_batch( + LoadBatchRequest::new(vec!["textures/rpg/**/*", "textures/rpg/chars/**/*"]), + ))); } fn check_textures( mut next_state: ResMut>, rpg_sprite_folder: Res, - mut events: EventReader>, + mut events: EventReader>, ) { // Advance the `AppState` once all sprite handles have been loaded by the `AssetServer` for event in events.read() { @@ -52,7 +55,7 @@ fn setup( rpg_sprite_handles: Res, asset_server: Res, mut texture_atlases: ResMut>, - loaded_folders: Res>, + loaded_folders: Res>, mut textures: ResMut>, ) { let loaded_folder = loaded_folders.get(&rpg_sprite_handles.0).unwrap(); @@ -215,7 +218,7 @@ fn setup( /// Create a texture atlas with the given padding and sampling settings /// from the individual sprites in the given folder. fn create_texture_atlas( - folder: &LoadedFolder, + folder: &LoadedBatch, padding: Option, sampling: Option, textures: &mut ResMut>, diff --git a/examples/asset/folder_filter.rs b/examples/asset/folder_filter.rs deleted file mode 100644 index 0fad41ed70..0000000000 --- a/examples/asset/folder_filter.rs +++ /dev/null @@ -1,301 +0,0 @@ -//! In this example we generate four texture atlases (sprite sheets) from a folder containing -//! individual sprites.But the folder containing waste files called "waste.txt" -//! So we use `load_folder_with_filter` to ingrone the waste files and `textures/rpg_with_waste/tiles`/* -//! -//! The texture atlases are generated with different padding and sampling to demonstrate the -//! effect of these settings, and how bleeding issues can be resolved by padding the sprites. -//! -//! Only one padded and one unpadded texture atlas are rendered to the screen. -//! An upscaled sprite from each of the four atlases are rendered to the screen. - -use bevy::{ - asset::{LoadFilter, LoadFilterKind, LoadedFolder}, - image::ImageSampler, - prelude::*, -}; - -fn main() { - App::new() - .add_plugins(DefaultPlugins.set(ImagePlugin::default_nearest())) // fallback to nearest sampling - .init_state::() - .add_systems(OnEnter(AppState::Setup), load_textures) - .add_systems(Update, check_textures.run_if(in_state(AppState::Setup))) - .add_systems(OnEnter(AppState::Finished), setup) - .run(); -} - -#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Hash, States)] -enum AppState { - #[default] - Setup, - Finished, -} - -#[derive(Resource, Default)] -struct RpgSpriteFolder(Handle); - -fn load_textures(mut commands: Commands, asset_server: Res) { - // Load multiple, individual sprites from a folder - commands.insert_resource(RpgSpriteFolder(asset_server.load_folder_with_filter( - "textures/rpg_with_waste", - LoadFilter::new( - vec!["textures/rpg_with_waste/tiles/*"], - LoadFilterKind::Black, - vec!["png"], - LoadFilterKind::White, - ), - ))); -} - -fn check_textures( - mut next_state: ResMut>, - rpg_sprite_folder: Res, - mut events: EventReader>, -) { - // Advance the `AppState` once all sprite handles have been loaded by the `AssetServer` - for event in events.read() { - if event.is_loaded_with_dependencies(&rpg_sprite_folder.0) { - next_state.set(AppState::Finished); - } - } -} - -fn setup( - mut commands: Commands, - rpg_sprite_handles: Res, - asset_server: Res, - mut texture_atlases: ResMut>, - loaded_folders: Res>, - mut textures: ResMut>, -) { - let loaded_folder = loaded_folders.get(&rpg_sprite_handles.0).unwrap(); - - // Create texture atlases with different padding and sampling - - let (texture_atlas_linear, linear_sources, linear_texture) = create_texture_atlas( - loaded_folder, - None, - Some(ImageSampler::linear()), - &mut textures, - ); - let atlas_linear_handle = texture_atlases.add(texture_atlas_linear); - - let (texture_atlas_nearest, nearest_sources, nearest_texture) = create_texture_atlas( - loaded_folder, - None, - Some(ImageSampler::nearest()), - &mut textures, - ); - let atlas_nearest_handle = texture_atlases.add(texture_atlas_nearest); - - let (texture_atlas_linear_padded, linear_padded_sources, linear_padded_texture) = - create_texture_atlas( - loaded_folder, - Some(UVec2::new(6, 6)), - Some(ImageSampler::linear()), - &mut textures, - ); - let atlas_linear_padded_handle = texture_atlases.add(texture_atlas_linear_padded.clone()); - - let (texture_atlas_nearest_padded, nearest_padded_sources, nearest_padded_texture) = - create_texture_atlas( - loaded_folder, - Some(UVec2::new(6, 6)), - Some(ImageSampler::nearest()), - &mut textures, - ); - let atlas_nearest_padded_handle = texture_atlases.add(texture_atlas_nearest_padded); - - commands.spawn(Camera2d); - - // Padded textures are to the right, unpadded to the left - - // Draw unpadded texture atlas - commands.spawn(( - Sprite::from_image(linear_texture.clone()), - Transform { - translation: Vec3::new(-250.0, -160.0, 0.0), - scale: Vec3::splat(0.5), - ..default() - }, - )); - - // Draw padded texture atlas - commands.spawn(( - Sprite::from_image(linear_padded_texture.clone()), - Transform { - translation: Vec3::new(250.0, -160.0, 0.0), - scale: Vec3::splat(0.5), - ..default() - }, - )); - - let font = asset_server.load("fonts/FiraSans-Bold.ttf"); - - // Padding label text style - let text_style: TextFont = TextFont { - font: font.clone(), - font_size: 42.0, - ..default() - }; - - // Labels to indicate padding - - // No padding - create_label( - &mut commands, - (-250.0, 250.0, 0.0), - "No padding", - text_style.clone(), - ); - - // Padding - create_label(&mut commands, (250.0, 250.0, 0.0), "Padding", text_style); - - // Get handle to a sprite to render - let vendor_handle: Handle = asset_server - .get_handle("textures/rpg_with_waste/chars/vendor/generic-rpg-vendor.png") - .unwrap(); - - // Configuration array to render sprites through iteration - let configurations: [( - &str, - Handle, - TextureAtlasSources, - Handle, - f32, - ); 4] = [ - ( - "Linear", - atlas_linear_handle, - linear_sources, - linear_texture, - -350.0, - ), - ( - "Nearest", - atlas_nearest_handle, - nearest_sources, - nearest_texture, - -150.0, - ), - ( - "Linear", - atlas_linear_padded_handle, - linear_padded_sources, - linear_padded_texture, - 150.0, - ), - ( - "Nearest", - atlas_nearest_padded_handle, - nearest_padded_sources, - nearest_padded_texture, - 350.0, - ), - ]; - - // Label text style - let sampling_label_style = TextFont { - font, - font_size: 25.0, - ..default() - }; - - let base_y = 80.0; // y position of the sprites - - for (sampling, atlas_handle, atlas_sources, atlas_texture, x) in configurations { - // Render a sprite from the texture_atlas - create_sprite_from_atlas( - &mut commands, - (x, base_y, 0.0), - atlas_texture, - atlas_sources, - atlas_handle, - &vendor_handle, - ); - - // Render a label to indicate the sampling setting - create_label( - &mut commands, - (x, base_y + 110.0, 0.0), // Offset to y position of the sprite - sampling, - sampling_label_style.clone(), - ); - } -} - -/// Create a texture atlas with the given padding and sampling settings -/// from the individual sprites in the given folder. -fn create_texture_atlas( - folder: &LoadedFolder, - padding: Option, - sampling: Option, - textures: &mut ResMut>, -) -> (TextureAtlasLayout, TextureAtlasSources, Handle) { - // Build a texture atlas using the individual sprites - let mut texture_atlas_builder = TextureAtlasBuilder::default(); - texture_atlas_builder.padding(padding.unwrap_or_default()); - for handle in folder.handles.iter() { - let id = handle.id().typed_unchecked::(); - let Some(texture) = textures.get(id) else { - warn!( - "{} did not resolve to an `Image` asset.", - handle.path().unwrap() - ); - continue; - }; - - texture_atlas_builder.add_texture(Some(id), texture); - } - - let (texture_atlas_layout, texture_atlas_sources, texture) = - texture_atlas_builder.build().unwrap(); - let texture = textures.add(texture); - - // Update the sampling settings of the texture atlas - let image = textures.get_mut(&texture).unwrap(); - image.sampler = sampling.unwrap_or_default(); - - (texture_atlas_layout, texture_atlas_sources, texture) -} - -/// Create and spawn a sprite from a texture atlas -fn create_sprite_from_atlas( - commands: &mut Commands, - translation: (f32, f32, f32), - atlas_texture: Handle, - atlas_sources: TextureAtlasSources, - atlas_handle: Handle, - vendor_handle: &Handle, -) { - commands.spawn(( - Transform { - translation: Vec3::new(translation.0, translation.1, translation.2), - scale: Vec3::splat(3.0), - ..default() - }, - Sprite::from_atlas_image( - atlas_texture, - atlas_sources.handle(atlas_handle, vendor_handle).unwrap(), - ), - )); -} - -/// Create and spawn a label (text) -fn create_label( - commands: &mut Commands, - translation: (f32, f32, f32), - text: &str, - text_style: TextFont, -) { - commands.spawn(( - Text2d::new(text), - text_style, - TextLayout::new_with_justify(Justify::Center), - Transform { - translation: Vec3::new(translation.0, translation.1, translation.2), - ..default() - }, - )); -}