diff --git a/Cargo.toml b/Cargo.toml index ed2b369f5f..be7ae76c1d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1781,6 +1781,17 @@ 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 new file mode 100644 index 0000000000..c8f57e34cf Binary files /dev/null and b/assets/textures/rpg_with_waste/chars/gabe/gabe-idle-run.png 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 new file mode 100644 index 0000000000..8ccaee928e Binary files /dev/null and b/assets/textures/rpg_with_waste/chars/hat-guy/hat-guy.png 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 new file mode 100644 index 0000000000..30f45f0525 Binary files /dev/null and b/assets/textures/rpg_with_waste/chars/mani/mani-idle-run.png differ diff --git a/assets/textures/rpg_with_waste/chars/sensei/sensei.png b/assets/textures/rpg_with_waste/chars/sensei/sensei.png new file mode 100644 index 0000000000..18ac1809f0 Binary files /dev/null and b/assets/textures/rpg_with_waste/chars/sensei/sensei.png 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 new file mode 100644 index 0000000000..8953346538 Binary files /dev/null and b/assets/textures/rpg_with_waste/chars/vendor/generic-rpg-vendor.png differ diff --git a/assets/textures/rpg_with_waste/chars/waste.txt b/assets/textures/rpg_with_waste/chars/waste.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/assets/textures/rpg_with_waste/mobs/boss_bee.png b/assets/textures/rpg_with_waste/mobs/boss_bee.png new file mode 100644 index 0000000000..1971387a2a Binary files /dev/null and b/assets/textures/rpg_with_waste/mobs/boss_bee.png differ diff --git a/assets/textures/rpg_with_waste/mobs/fox-run.png b/assets/textures/rpg_with_waste/mobs/fox-run.png new file mode 100644 index 0000000000..822f0c73dd Binary files /dev/null and b/assets/textures/rpg_with_waste/mobs/fox-run.png differ diff --git a/assets/textures/rpg_with_waste/mobs/kobold-idle.png b/assets/textures/rpg_with_waste/mobs/kobold-idle.png new file mode 100644 index 0000000000..516018d9e0 Binary files /dev/null and b/assets/textures/rpg_with_waste/mobs/kobold-idle.png differ diff --git a/assets/textures/rpg_with_waste/mobs/slime-blue.png b/assets/textures/rpg_with_waste/mobs/slime-blue.png new file mode 100644 index 0000000000..f2d3d4423f Binary files /dev/null and b/assets/textures/rpg_with_waste/mobs/slime-blue.png differ diff --git a/assets/textures/rpg_with_waste/mobs/slime-green.png b/assets/textures/rpg_with_waste/mobs/slime-green.png new file mode 100644 index 0000000000..919af57148 Binary files /dev/null and b/assets/textures/rpg_with_waste/mobs/slime-green.png differ diff --git a/assets/textures/rpg_with_waste/mobs/slime-orange.png b/assets/textures/rpg_with_waste/mobs/slime-orange.png new file mode 100644 index 0000000000..a897ba1a85 Binary files /dev/null and b/assets/textures/rpg_with_waste/mobs/slime-orange.png 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 new file mode 100644 index 0000000000..37783159d6 Binary files /dev/null and b/assets/textures/rpg_with_waste/mobs/worm-run-idle.png 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 new file mode 100644 index 0000000000..6a56a788c3 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-barrel01.png 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 new file mode 100644 index 0000000000..8d7317cd53 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-barrel02.png 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 new file mode 100644 index 0000000000..0d25801629 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-barrel03.png 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 new file mode 100644 index 0000000000..2abb8fb338 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-board01.png 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 new file mode 100644 index 0000000000..aaf1cfa9ed Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-board02.png 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 new file mode 100644 index 0000000000..6a46853702 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-board03.png 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 new file mode 100644 index 0000000000..1edbc13d2d Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-board04.png 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 new file mode 100644 index 0000000000..a9756774b8 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-bridge.png 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 new file mode 100644 index 0000000000..9980613d04 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-crate01.png 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 new file mode 100644 index 0000000000..af1ca4cf8f Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-crate02.png 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 new file mode 100644 index 0000000000..1670c61166 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-crate03.png 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 new file mode 100644 index 0000000000..b51f50a7c8 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence-complete.png 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 new file mode 100644 index 0000000000..df77e2e7c8 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw01.png 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 new file mode 100644 index 0000000000..23e1e584e0 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw02.png 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 new file mode 100644 index 0000000000..b8bb8d37ec Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw03.png 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 new file mode 100644 index 0000000000..40067176ea Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw04.png 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 new file mode 100644 index 0000000000..464e659bf6 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw05.png 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 new file mode 100644 index 0000000000..f6e9deb7b7 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw06.png 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 new file mode 100644 index 0000000000..524ac91b78 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw07.png 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 new file mode 100644 index 0000000000..5521d89e6c Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw08.png 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 new file mode 100644 index 0000000000..444353ee27 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw09.png 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 new file mode 100644 index 0000000000..4c7d37ef4e Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw10.png 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 new file mode 100644 index 0000000000..f66d54c0b7 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw11.png 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 new file mode 100644 index 0000000000..dbf962e9df Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw12.png 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 new file mode 100644 index 0000000000..ed53feeda8 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw13.png 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 new file mode 100644 index 0000000000..ef14b1cf64 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw14.png 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 new file mode 100644 index 0000000000..48306b30f8 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw15.png 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 new file mode 100644 index 0000000000..f039c9877e Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw16.png 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 new file mode 100644 index 0000000000..21b2079e89 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw17.png 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 new file mode 100644 index 0000000000..434ccb7e12 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw18.png 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 new file mode 100644 index 0000000000..2bb913e39c Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw19.png 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 new file mode 100644 index 0000000000..2205296b85 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw20.png 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 new file mode 100644 index 0000000000..223f358a48 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw21.png 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 new file mode 100644 index 0000000000..c137ab8042 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw22.png 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 new file mode 100644 index 0000000000..8f69161186 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw23.png 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 new file mode 100644 index 0000000000..8f2286f0e6 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw24.png 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 new file mode 100644 index 0000000000..32b1813fa5 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence-raw25.png 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 new file mode 100644 index 0000000000..34e11a6b45 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence01.png 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 new file mode 100644 index 0000000000..66e1c204ca Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence02.png 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 new file mode 100644 index 0000000000..d41b816abc Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence03.png 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 new file mode 100644 index 0000000000..d1374f8ecb Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence04.png 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 new file mode 100644 index 0000000000..8baa1857da Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence05.png 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 new file mode 100644 index 0000000000..c70a71b1e7 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence06.png 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 new file mode 100644 index 0000000000..4c5fe0f1d7 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence07.png 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 new file mode 100644 index 0000000000..0e46720a14 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence08.png 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 new file mode 100644 index 0000000000..189e4a52c6 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence09.png 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 new file mode 100644 index 0000000000..2645e20cdc Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence10.png 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 new file mode 100644 index 0000000000..57f7e9a003 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence11.png 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 new file mode 100644 index 0000000000..38c1a6505e Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence12.png 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 new file mode 100644 index 0000000000..78890e5914 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence13.png 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 new file mode 100644 index 0000000000..0dfed6aac0 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fence14.png 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 new file mode 100644 index 0000000000..313b7aff52 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fish01.png 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 new file mode 100644 index 0000000000..7ce035d59c Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fish02.png 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 new file mode 100644 index 0000000000..17693a6c14 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fish03.png 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 new file mode 100644 index 0000000000..610dce6fd6 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-fish04.png 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 new file mode 100644 index 0000000000..464523232f Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-flower01.png 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 new file mode 100644 index 0000000000..cd30eca5a3 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-flower02.png 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 new file mode 100644 index 0000000000..4d1373bbb3 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-flower03.png 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 new file mode 100644 index 0000000000..2820f5eb96 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-flowers.png 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 new file mode 100644 index 0000000000..f7718c95fb Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-grass01.png 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 new file mode 100644 index 0000000000..a5e38a8ba9 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-grass02.png 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 new file mode 100644 index 0000000000..007f3b7318 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-house-inn.png 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 new file mode 100644 index 0000000000..5f158afab5 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-loot01.png 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 new file mode 100644 index 0000000000..57732b9358 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-loot02.png 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 new file mode 100644 index 0000000000..b0c154a1b2 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-loot03.png 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 new file mode 100644 index 0000000000..83c2852320 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-loot04.png 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 new file mode 100644 index 0000000000..3eaf8173e4 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-loot05.png 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 new file mode 100644 index 0000000000..8a2d5770d2 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-mini-lake.png 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 new file mode 100644 index 0000000000..150a645baa Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-rock01.png 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 new file mode 100644 index 0000000000..4803105cef Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-rock02.png 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 new file mode 100644 index 0000000000..ed8db5184b Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-rock03.png 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 new file mode 100644 index 0000000000..8a1c3a01c7 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-rock04.png 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 new file mode 100644 index 0000000000..1b5c5d1444 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-rock05.png 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 new file mode 100644 index 0000000000..79d8a58a82 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-rock06.png 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 new file mode 100644 index 0000000000..f0e7e170a7 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-rod.png 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 new file mode 100644 index 0000000000..2bea8b4075 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-trasure-open.png 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 new file mode 100644 index 0000000000..dbf5bf81a8 Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-treasure-closed.png 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 new file mode 100644 index 0000000000..6ddb47c45f Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-tree01.png 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 new file mode 100644 index 0000000000..ef3976b66b Binary files /dev/null and b/assets/textures/rpg_with_waste/props/generic-rpg-tree02.png 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 new file mode 100644 index 0000000000..07bab3c2a7 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-Slice.png 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 new file mode 100644 index 0000000000..3cdcd66c6f Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile-waterfall01.png 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 new file mode 100644 index 0000000000..dcfe37f634 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile-waterfall02.png 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 new file mode 100644 index 0000000000..293a6b58dc Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile-waterfall03.png 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 new file mode 100644 index 0000000000..32f1053a7a Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile-waterfall04.png 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 new file mode 100644 index 0000000000..f72d7ead1f Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile-waterfall05.png 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 new file mode 100644 index 0000000000..b61f16d2e3 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile-waterfall06.png 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 new file mode 100644 index 0000000000..8d0259e0d9 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile-waterfall07.png 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 new file mode 100644 index 0000000000..5c6c3fc136 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile01.png 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 new file mode 100644 index 0000000000..0fbf90abb8 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile02.png 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 new file mode 100644 index 0000000000..3dacf2f659 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile03.png 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 new file mode 100644 index 0000000000..dfb9977a33 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile04.png 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 new file mode 100644 index 0000000000..b02478171e Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile05.png 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 new file mode 100644 index 0000000000..dbc12c8b89 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile06.png 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 new file mode 100644 index 0000000000..1bf5aa69bc Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile07.png 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 new file mode 100644 index 0000000000..c6a715cce5 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile08.png 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 new file mode 100644 index 0000000000..d73be99417 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile09.png 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 new file mode 100644 index 0000000000..dedf2095b0 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile10.png 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 new file mode 100644 index 0000000000..d0f43fc290 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile11.png 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 new file mode 100644 index 0000000000..fbde8a9cc5 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile12.png 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 new file mode 100644 index 0000000000..546b7fe321 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile13.png 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 new file mode 100644 index 0000000000..7476a1df2d Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile14.png 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 new file mode 100644 index 0000000000..b825171009 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile15.png 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 new file mode 100644 index 0000000000..d0eab48e51 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile16.png 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 new file mode 100644 index 0000000000..c108608bd6 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile17.png 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 new file mode 100644 index 0000000000..7e8c31c9b8 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile18.png 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 new file mode 100644 index 0000000000..798bd1f599 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile19.png 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 new file mode 100644 index 0000000000..570419757b Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile20.png 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 new file mode 100644 index 0000000000..53e54e39f5 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile21.png 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 new file mode 100644 index 0000000000..bd8226a40a Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile22.png 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 new file mode 100644 index 0000000000..c9ca882522 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile23.png 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 new file mode 100644 index 0000000000..b4cc644973 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile24.png 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 new file mode 100644 index 0000000000..40af80f1cf Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile25.png 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 new file mode 100644 index 0000000000..d751b823a8 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile26.png 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 new file mode 100644 index 0000000000..8a02dc2745 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile27.png 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 new file mode 100644 index 0000000000..37fe95b73b Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile28.png 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 new file mode 100644 index 0000000000..578299ee36 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile29.png 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 new file mode 100644 index 0000000000..3a57cbf646 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile30.png 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 new file mode 100644 index 0000000000..a87b16d7f8 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile31.png 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 new file mode 100644 index 0000000000..c051b75f6d Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile32.png 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 new file mode 100644 index 0000000000..ad559527ed Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile33.png 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 new file mode 100644 index 0000000000..a2f9c1420d Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile34.png 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 new file mode 100644 index 0000000000..527e7dd791 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile35.png 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 new file mode 100644 index 0000000000..efcb8c0cbe Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile37.png 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 new file mode 100644 index 0000000000..07bab3c2a7 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile38.png 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 new file mode 100644 index 0000000000..0b13fb6628 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile39.png 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 new file mode 100644 index 0000000000..191bdf0a71 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile40.png 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 new file mode 100644 index 0000000000..cc70b01883 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile41.png 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 new file mode 100644 index 0000000000..8b01739cde Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile42.png 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 new file mode 100644 index 0000000000..35babee8b0 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile43.png 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 new file mode 100644 index 0000000000..b6271ed7c7 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile44.png 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 new file mode 100644 index 0000000000..d37df80a65 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile45.png 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 new file mode 100644 index 0000000000..243933f772 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile46.png 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 new file mode 100644 index 0000000000..2d568b4d59 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile47.png 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 new file mode 100644 index 0000000000..d7827d52ba Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile48.png 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 new file mode 100644 index 0000000000..f2d0f65546 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile49.png 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 new file mode 100644 index 0000000000..c3dccca8c2 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile50.png 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 new file mode 100644 index 0000000000..ca94b8c398 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile51.png 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 new file mode 100644 index 0000000000..44bd6653ec Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile52.png 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 new file mode 100644 index 0000000000..5ca24fa27f Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile53.png 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 new file mode 100644 index 0000000000..0808a563b3 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile54.png 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 new file mode 100644 index 0000000000..413224486e Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile55.png 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 new file mode 100644 index 0000000000..5a37f17250 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile56.png 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 new file mode 100644 index 0000000000..4e98383113 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile57.png 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 new file mode 100644 index 0000000000..c250464a87 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile58.png 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 new file mode 100644 index 0000000000..a0cde78a93 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile59.png 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 new file mode 100644 index 0000000000..6e67cbb19d Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile60.png 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 new file mode 100644 index 0000000000..bc5c8aad64 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile61.png 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 new file mode 100644 index 0000000000..f5f4e07ada Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile62.png 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 new file mode 100644 index 0000000000..2805264711 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile63.png 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 new file mode 100644 index 0000000000..9aa272da9c Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile64.png 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 new file mode 100644 index 0000000000..a60a2d4c96 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile65.png 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 new file mode 100644 index 0000000000..1de9294ace Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile66.png 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 new file mode 100644 index 0000000000..b53c74e306 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile67.png 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 new file mode 100644 index 0000000000..3eb1031859 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile68.png 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 new file mode 100644 index 0000000000..51a490cc33 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile69.png 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 new file mode 100644 index 0000000000..07bab3c2a7 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile70.png 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 new file mode 100644 index 0000000000..e82a487c35 Binary files /dev/null and b/assets/textures/rpg_with_waste/tiles/generic-rpg-tile71.png 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 new file mode 100644 index 0000000000..e7b2fd085a Binary files /dev/null and b/assets/textures/rpg_with_waste/ui/generic-rpg-ui-inventario.png 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 new file mode 100644 index 0000000000..fab304a230 Binary files /dev/null and b/assets/textures/rpg_with_waste/ui/generic-rpg-ui-inventario01.png 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 new file mode 100644 index 0000000000..7b1a1d8976 Binary files /dev/null and b/assets/textures/rpg_with_waste/ui/generic-rpg-ui-inventario02.png 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 new file mode 100644 index 0000000000..b2c9c7001d Binary files /dev/null and b/assets/textures/rpg_with_waste/ui/generic-rpg-ui-inventario03.png 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 new file mode 100644 index 0000000000..27fe22397c Binary files /dev/null and b/assets/textures/rpg_with_waste/ui/generic-rpg-ui-inventario04.png 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 new file mode 100644 index 0000000000..0842f8510a Binary files /dev/null and b/assets/textures/rpg_with_waste/ui/generic-rpg-ui-text-box.png differ diff --git a/assets/textures/rpg_with_waste/waste.txt b/assets/textures/rpg_with_waste/waste.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/crates/bevy_asset/src/folder.rs b/crates/bevy_asset/src/folder.rs index c591c88688..83e7a2082f 100644 --- a/crates/bevy_asset/src/folder.rs +++ b/crates/bevy_asset/src/folder.rs @@ -1,6 +1,8 @@ +use std::{path::Path, sync::Arc}; + use alloc::vec::Vec; -use crate::{Asset, UntypedHandle}; +use crate::{io::ErasedAssetReader, Asset, UntypedHandle}; use bevy_reflect::TypePath; /// A "loaded folder" containing handles for all assets stored in a given [`AssetPath`]. @@ -13,4 +15,5 @@ pub struct LoadedFolder { /// The handles of all assets stored in the folder. #[dependency] pub handles: Vec, + pub filter: Option bool + Send + Sync + 'static>> } diff --git a/crates/bevy_asset/src/lib.rs b/crates/bevy_asset/src/lib.rs index 4b29beae79..fce2e2769a 100644 --- a/crates/bevy_asset/src/lib.rs +++ b/crates/bevy_asset/src/lib.rs @@ -1618,7 +1618,7 @@ 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_folder("text",None); gate_opener.open(a_path); gate_opener.open(b_path); gate_opener.open(c_path); diff --git a/crates/bevy_asset/src/server/mod.rs b/crates/bevy_asset/src/server/mod.rs index e120888616..fa201ddd66 100644 --- a/crates/bevy_asset/src/server/mod.rs +++ b/crates/bevy_asset/src/server/mod.rs @@ -26,7 +26,7 @@ use alloc::{ }; use atomicow::CowArc; use bevy_ecs::prelude::*; -use bevy_platform::collections::HashSet; +use bevy_platform::collections::{HashMap, HashSet}; use bevy_tasks::IoTaskPool; use core::{any::TypeId, future::Future, panic::AssertUnwindSafe, task::Poll}; use crossbeam_channel::{Receiver, Sender}; @@ -944,7 +944,11 @@ 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<'a>(&self, path: impl Into>) -> Handle { + pub fn load_folder<'a>( + &self, + path: impl Into>, + filter: Option bool + Send + Sync + 'static>>, + ) -> Handle { let path = path.into().into_owned(); let (handle, should_load) = self .data @@ -959,23 +963,34 @@ impl AssetServer { return handle; } let id = handle.id().untyped(); - self.load_folder_internal(id, path); + self.load_folder_internal(id, path, filter); handle } - pub(crate) fn load_folder_internal(&self, id: UntypedAssetId, path: AssetPath) { + pub(crate) fn load_folder_internal( + &self, + id: UntypedAssetId, + path: AssetPath, + filter: Option bool + Send + Sync + 'static>>, + ) { async fn load_folder<'a>( source: AssetSourceId<'static>, path: &'a Path, reader: &'a dyn ErasedAssetReader, server: &'a AssetServer, handles: &'a mut Vec, + filter: Option bool + Send + Sync + 'static>>, ) -> 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 let Some(ref filter_fn) = filter { + if !filter_fn(path) { + continue; + } + } if reader.is_directory(&child_path).await? { Box::pin(load_folder( source.clone(), @@ -983,6 +998,7 @@ impl AssetServer { reader, server, handles, + filter.clone(), )) .await?; } else { @@ -1030,11 +1046,12 @@ impl AssetServer { }; let mut handles = Vec::new(); - match load_folder(source.id(), path.path(), asset_reader, &server, &mut handles).await { + let filter_clone = filter.clone(); + match load_folder(source.id(), path.path(), asset_reader, &server, &mut handles,filter).await { Ok(_) => server.send_asset_event(InternalAssetEvent::Loaded { id, loaded_asset: LoadedAsset::new_with_dependencies( - LoadedFolder { handles }, + LoadedFolder { handles,filter:filter_clone }, ) .into(), }), @@ -1690,7 +1707,11 @@ pub fn handle_internal_asset_events(world: &mut World) { 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()); + server.load_folder_internal( + folder_handle.id(), + parent_asset_path.clone(), + None, + ); } } }; diff --git a/examples/2d/texture_atlas.rs b/examples/2d/texture_atlas.rs index 25106adcfb..45b6ef380d 100644 --- a/examples/2d/texture_atlas.rs +++ b/examples/2d/texture_atlas.rs @@ -31,7 +31,7 @@ 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_folder("textures/rpg",None))); } fn check_textures( diff --git a/examples/asset/asset_loading.rs b/examples/asset/asset_loading.rs index 49d2dca279..cecbb28845 100644 --- a/examples/asset/asset_loading.rs +++ b/examples/asset/asset_loading.rs @@ -52,7 +52,7 @@ fn setup( // to load. // If you want to keep the assets in the folder alive, make sure you store the returned handle // somewhere. - let _loaded_folder: Handle = asset_server.load_folder("models/torus"); + let _loaded_folder: Handle = asset_server.load_folder("models/torus",None); // If you want a handle to a specific asset in a loaded folder, the easiest way to get one is to call load. // It will _not_ be loaded a second time. diff --git a/examples/asset/folder_filter.rs b/examples/asset/folder_filter.rs new file mode 100644 index 0000000000..a4fb9f5598 --- /dev/null +++ b/examples/asset/folder_filter.rs @@ -0,0 +1,296 @@ +//! In this example we generate four texture atlases (sprite sheets) from a folder containing +//! individual sprites. +//! +//! 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 std::sync::Arc; + +use bevy::{asset::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( + "textures/rpg_with_waste", + Some(Arc::new(|path| { + info!("{:?}", path); + !path.is_dir() && path.extension().unwrap() == "png" + })), + ))); +} + +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/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() + }, + )); +}