diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-00.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-00.png new file mode 100644 index 0000000000000000000000000000000000000000..b18cc68b9279e9238febd16e8012dd91f4b050ba Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-00.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-01.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-01.png new file mode 100644 index 0000000000000000000000000000000000000000..478adb012a8f316f723ca8eb43e1a86e1d498313 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-01.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-02.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-02.png new file mode 100644 index 0000000000000000000000000000000000000000..979e334d47df0d2b6a18746b40ccef54243ca959 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-02.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-03.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-03.png new file mode 100644 index 0000000000000000000000000000000000000000..f447d1de4fc8d204a49e54adee6a9d1f9d16ae0e Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-03.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-04.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-04.png new file mode 100644 index 0000000000000000000000000000000000000000..0a89a03415d67a6f30645951091616d03d866148 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-04.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-05.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-05.png new file mode 100644 index 0000000000000000000000000000000000000000..68a86b7a34317695a1e329af3b59c0ff5b0737f1 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-05.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-06.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-06.png new file mode 100644 index 0000000000000000000000000000000000000000..196849b1183c8e27fd28c7e833847b6b6dd2b79b Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-06.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-07.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-07.png new file mode 100644 index 0000000000000000000000000000000000000000..824131d09e8063a3c6563d446c50b4391dcdc3ce Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-07.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-08.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-08.png new file mode 100644 index 0000000000000000000000000000000000000000..88096af4e40cddbb9dedafe3e634031624825236 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-08.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-09.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-09.png new file mode 100644 index 0000000000000000000000000000000000000000..d3c2ba3541cd909b2643a8ce898619e48b010476 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/0-tiles-09.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-00.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-00.png new file mode 100644 index 0000000000000000000000000000000000000000..eec9d7cc1b37ceb31a4a41eabb02d5f597a12200 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-00.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-01.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-01.png new file mode 100644 index 0000000000000000000000000000000000000000..8f955f447159f0f666c6c1d3a3585bc9c28cbd64 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-01.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-02.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-02.png new file mode 100644 index 0000000000000000000000000000000000000000..7a41ac46b2490c23307fbfc670a3614d665270b4 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-02.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-03.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-03.png new file mode 100644 index 0000000000000000000000000000000000000000..9592d44a4bd45c0b12de5487a3c78876086b1760 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-03.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-04.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-04.png new file mode 100644 index 0000000000000000000000000000000000000000..8f9b130d4ef5a693e659c84928432903756c9059 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-04.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-05.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-05.png new file mode 100644 index 0000000000000000000000000000000000000000..b5245fb6034dec4b6d6d9a3eba9819da50278585 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-05.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-06.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-06.png new file mode 100644 index 0000000000000000000000000000000000000000..e65376a12a3855d996531a185302bb1ba7083362 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-06.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-07.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-07.png new file mode 100644 index 0000000000000000000000000000000000000000..01e1c7b37fa8cd5f6e0ba7bfa04fb89f14f421b8 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-07.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-08.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-08.png new file mode 100644 index 0000000000000000000000000000000000000000..8c0c60f1ae8b11f89b9702aeafa19f6346074eed Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-08.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-09.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-09.png new file mode 100644 index 0000000000000000000000000000000000000000..5a4bc697f2c0685cb9dafd1b8d0faf894204b567 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/1-tiles-09.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-00.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-00.png new file mode 100644 index 0000000000000000000000000000000000000000..83e2e595fed3160e26385c1a9bc9304e16bcd2cc Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-00.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-01.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-01.png new file mode 100644 index 0000000000000000000000000000000000000000..5da3a967ebf8c482b97fe196c3ffcd24169dc563 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-01.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-02.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-02.png new file mode 100644 index 0000000000000000000000000000000000000000..eb635a27e934ab9d45a524f26ce7965567a02599 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-02.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-03.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-03.png new file mode 100644 index 0000000000000000000000000000000000000000..9845f43482ffd2bdd7b103f0a76d75d58bfb6af0 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-03.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-04.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-04.png new file mode 100644 index 0000000000000000000000000000000000000000..4323a8943d5f233fc34eb077e067529c946f492d Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-04.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-05.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-05.png new file mode 100644 index 0000000000000000000000000000000000000000..39a4e07469ec5ca14ae1e670a3ca53c408b08560 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-05.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-06.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-06.png new file mode 100644 index 0000000000000000000000000000000000000000..2b781cc2fb567a981f638783b66f94b0fe38ef2c Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-06.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-07.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-07.png new file mode 100644 index 0000000000000000000000000000000000000000..92195204e14d7a9843a0fed8f6a318b5c87f860c Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-07.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-08.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-08.png new file mode 100644 index 0000000000000000000000000000000000000000..67f882f11c0b19e7768da14feea32fef5b1f7858 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-08.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-09.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-09.png new file mode 100644 index 0000000000000000000000000000000000000000..721f85c1f5eb4ebc7c4f378ccfd5681d590f1a62 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/2-tiles-09.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-00.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-00.png new file mode 100644 index 0000000000000000000000000000000000000000..b2a9cd5a970d78077e0518cea9d9387a7688a9cc Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-00.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-01.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-01.png new file mode 100644 index 0000000000000000000000000000000000000000..872c55d38aeff764c8246d8b6c8e66a072df1947 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-01.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-02.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-02.png new file mode 100644 index 0000000000000000000000000000000000000000..b4e39a82bc0165f72f5422aab7b85891e81e72f9 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-02.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-03.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-03.png new file mode 100644 index 0000000000000000000000000000000000000000..2762076f66c6a34674311ca4f00ffb639adc7114 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-03.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-04.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-04.png new file mode 100644 index 0000000000000000000000000000000000000000..4f4815fd05736a2b607cff3228d4ee3fe5017df3 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-04.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-05.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-05.png new file mode 100644 index 0000000000000000000000000000000000000000..099ed69ebe474b87bed89f0331391c19f08e1559 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-05.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-06.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-06.png new file mode 100644 index 0000000000000000000000000000000000000000..8ec7e8fc1316d658cc4c33cc18df4299231df923 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-06.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-07.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-07.png new file mode 100644 index 0000000000000000000000000000000000000000..6bdee06bd80e12990d6ecc67b733d63aa79e436b Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-07.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-08.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-08.png new file mode 100644 index 0000000000000000000000000000000000000000..3abacd3dad053732bbe0a73135730f3429d0d2c6 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-08.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-09.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-09.png new file mode 100644 index 0000000000000000000000000000000000000000..9b625e9b5058aa9bed8d71a9b4fbd4a504a86275 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/3-tiles-09.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-00.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-00.png new file mode 100644 index 0000000000000000000000000000000000000000..2c9bfd1e0b39a97ce91c03141e30b44348a6c8e5 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-00.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-01.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-01.png new file mode 100644 index 0000000000000000000000000000000000000000..8447111c20aa294bf28a21abcd92f28cb7ee725c Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-01.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-02.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-02.png new file mode 100644 index 0000000000000000000000000000000000000000..9c79a128b6081abe4df11a05857bb0957edaff9d Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-02.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-03.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-03.png new file mode 100644 index 0000000000000000000000000000000000000000..6db04eb5360585698159d430da971cca6d8a1e12 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-03.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-04.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-04.png new file mode 100644 index 0000000000000000000000000000000000000000..0d6febcd7e924190173280752ecf3ca1b6f3c58c Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-04.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-05.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-05.png new file mode 100644 index 0000000000000000000000000000000000000000..c34471ea7ad79523b933f0b05ee2fbd4d48b1fc7 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-05.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-06.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-06.png new file mode 100644 index 0000000000000000000000000000000000000000..239d863a279e82dab07fb3ff3e4caaba5f1a2311 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-06.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-07.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-07.png new file mode 100644 index 0000000000000000000000000000000000000000..d26f6d2b214cb7e0bb2cb4b240ebee1a2cc4c3c8 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-07.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-08.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-08.png new file mode 100644 index 0000000000000000000000000000000000000000..84556364c4d48b1bbd23bbcb8d231d750e657595 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-08.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-09.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-09.png new file mode 100644 index 0000000000000000000000000000000000000000..db988cdb144eb60eb8b7bfb44b5a9578b6184d4e Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/4-tiles-09.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-0-tiles-00.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-0-tiles-00.png new file mode 100644 index 0000000000000000000000000000000000000000..ca182080720e00cc0fa4bcca0ce3f0564f683a30 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-0-tiles-00.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-0-tiles-01.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-0-tiles-01.png new file mode 100644 index 0000000000000000000000000000000000000000..56d0fbdbb136a94bd6f5d9be42e732c1f7e2da03 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-0-tiles-01.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-0-tiles-02.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-0-tiles-02.png new file mode 100644 index 0000000000000000000000000000000000000000..66d6dd157942fd101c6f1f16563d649c8b1e4c7f Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-0-tiles-02.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-0-tiles-03.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-0-tiles-03.png new file mode 100644 index 0000000000000000000000000000000000000000..59c73c2316023be040e5059aa3d9f1983628c4d2 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-0-tiles-03.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-1-tiles-00.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-1-tiles-00.png new file mode 100644 index 0000000000000000000000000000000000000000..b2ea85492ada6af058ca9e59479cce49a2a5aeae Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-1-tiles-00.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-1-tiles-01.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-1-tiles-01.png new file mode 100644 index 0000000000000000000000000000000000000000..fc3e25be55e037c1ca33a202a56b395aa8010e05 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-1-tiles-01.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-1-tiles-02.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-1-tiles-02.png new file mode 100644 index 0000000000000000000000000000000000000000..0c64cf9fba6cf3d8ffc1570a181789d4067c7b96 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-1-tiles-02.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-1-tiles-03.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-1-tiles-03.png new file mode 100644 index 0000000000000000000000000000000000000000..0a9e03a24722229c7c261b07428c72fa4ecebe8e Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-1-tiles-03.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-2-tiles-00.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-2-tiles-00.png new file mode 100644 index 0000000000000000000000000000000000000000..1bdf3556ed1f1bcc70a944bb076465c00be1ea22 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-2-tiles-00.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-2-tiles-01.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-2-tiles-01.png new file mode 100644 index 0000000000000000000000000000000000000000..033861401f0957f1f181807db6f3d1d4bc2a9af1 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-2-tiles-01.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-2-tiles-02.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-2-tiles-02.png new file mode 100644 index 0000000000000000000000000000000000000000..60372a1cbe781dac92160bf6bf2fb8fb354bdd88 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-2-tiles-02.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-2-tiles-03.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-2-tiles-03.png new file mode 100644 index 0000000000000000000000000000000000000000..e9a884815a3e0b8d61e851f3a0d9e9a0512f8537 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-2-tiles-03.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-tiles-00.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-tiles-00.png new file mode 100644 index 0000000000000000000000000000000000000000..597eab585df65d916fe2fba133a31cdc2c4cc14d Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-tiles-00.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-tiles-01.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-tiles-01.png new file mode 100644 index 0000000000000000000000000000000000000000..7a0be78c7f17eb76d04f89435494e1624580b623 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-tiles-01.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-tiles-02.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-tiles-02.png new file mode 100644 index 0000000000000000000000000000000000000000..36c0b4da139c3206e480a7e134cda453caea90b4 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-tiles-02.png differ diff --git a/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-tiles-03.png b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-tiles-03.png new file mode 100644 index 0000000000000000000000000000000000000000..7315e9ffad5087c323d40d16e5fc6b86b6245f37 Binary files /dev/null and b/pd/doc/4.data.structures/pd-l2ork/sprite-game/omnibus/5-tiles-03.png differ diff --git a/pd/nw/pd_canvas.html b/pd/nw/pd_canvas.html index 18f74ee1f28e28f19e361ccb172c981c7cd39396..6be95dc7a17c5d0b3f96233d2a6caefac0ed1bc4 100644 --- a/pd/nw/pd_canvas.html +++ b/pd/nw/pd_canvas.html @@ -156,7 +156,7 @@ var canvas_events = (function() { pdgui.gui_canvas_sendkey(name, 1, evt, hack); pdgui.set_keymap(key_code, hack); } - pdgui.gui_post("keydown time: keycode is " + evt.keyCode); +// pdgui.gui_post("keydown time: keycode is " + evt.keyCode); last_keydown = evt.keyCode; //evt.stopPropagation(); //evt.preventDefault(); @@ -176,7 +176,7 @@ var canvas_events = (function() { pdgui.gui_canvas_sendkey(name, 1, evt, evt.charCode); pdgui.set_keymap(last_keydown, evt.charCode); - pdgui.gui_post("keypress time: charcode is " + evt.charCode); +// pdgui.gui_post("keypress time: charcode is " + evt.charCode); // Don't do things like scrolling on space, arrow keys, etc. //evt.stopPropagation(); evt.preventDefault(); @@ -184,7 +184,7 @@ var canvas_events = (function() { keyup: function(evt) { var my_char_code = pdgui.get_char_code(evt.keyCode); pdgui.gui_canvas_sendkey(name, 0, evt, my_char_code); - pdgui.gui_post("keyup time: charcode is: " + my_char_code); +// pdgui.gui_post("keyup time: charcode is: " + my_char_code); evt.stopPropagation(); evt.preventDefault(); }, diff --git a/pd/nw/pdgui.js b/pd/nw/pdgui.js index 02f767c2c05bb7a814e4d40dcc753ef4e92dc472..d854f3f3b95ad2926f7a06f89cad49aac84188e6 100644 --- a/pd/nw/pdgui.js +++ b/pd/nw/pdgui.js @@ -13,7 +13,7 @@ exports.get_pwd = function() { } var fs = require('fs'); // for fs.existsSync -var path = require('path'); // for path.dirname path.extname +var path = require('path'); // for path.dirname path.extname path.join // local strings var lang = require('./pdlang.js'); @@ -3083,6 +3083,124 @@ function gui_drawnumber_vis(cid, parent_tag, tag, x, y, scale_x, scale_y, } } +var drawimage_data = {}; // for storing base64 image data associated with + // each [draw image] command +exports.flub = drawimage_data; + +function gui_drawimage_new(obj_tag, file_path, canvasdir, flags) { + var drawsprite = 1, + image_seq, + i, + matchchar = '*', + files, + ext, + img; // dummy image to measure width and height + image_seq = flags & drawsprite; + if (!path.isAbsolute(file_path)) { + file_path = path.join(canvasdir, file_path); + } + file_path = path.normalize(file_path); + if (fs.existsSync(file_path) && fs.lstatSync(file_path).isDirectory()) { + + } + files = fs.readdirSync(file_path) + .sort(); // Note that js's 'sort' method doesn't do the + // "right thing" for numbers. For that we'd need + // to provide our own sorting function + drawimage_data[obj_tag] = []; // create empty array for base64 image data + for (i = 0; i < files.length && i < 1000; i++) { + ext = path.extname(files[i]); + +// todo: tolower() + + if (ext === '.gif' || + ext === '.jpg' || + ext === '.png' || + ext === '.jpeg' || + ext === '.svg') { + + gui_post("we got an image at index " + i + ": " + files[i]); + // Now add an element to that array with the image data + drawimage_data[obj_tag].push({ + type: ext === '.jpeg' ? 'jpg' : ext.slice(1), + data: fs.readFileSync(path.join(file_path, files[i]),'base64') + }); + } + } + gui_post("no of files: " + i); + if (i > 0) { + img = new pd_window.Image(); // create an image in the pd_window context + img.onload = function() { + pdsend(obj_tag + ' size ' + this.width + ' ' + this.height); + }; + img.src = 'data:image/' + drawimage_data[obj_tag][0].type + + ';base64,' + drawimage_data[obj_tag][0].data; + } else { + gui_post("drawimage: warning: no images loaded"); + } +} + +function gui_drawimage_vis(cid, x, y, obj_tag, seqno, parent_tag) { + var item, + g = get_item(cid, parent_tag), // main <g> within the scalar + len = drawimage_data[obj_tag].length, + i, + img, + image_container; + if (len < 1) { + return; + } + // Wrap around for out-of-bounds sequence numbers + if (seqno >= len || seqno < 0) { + seqno %= len; + } + image_container = create_item(cid, 'g', { + id: obj_tag + 'image_container' + }); + for (i = 0; i < len; i++) { + item = create_item(cid, 'image', { + x: x, + y: y, + id: obj_tag + i, + visibility: seqno === i ? 'visible' : 'hidden', + preserveAspectRatio: "xMinYMin meet" + }); + item.setAttributeNS('http://www.w3.org/1999/xlink', 'href', + 'data:image/' + drawimage_data[obj_tag][i].type + ';base64,' + + drawimage_data[obj_tag][i].data); + image_container.appendChild(item); + } + g.appendChild(image_container); + + // Hack to set correct width and height + img = new pd_window.Image(); + img.onload = function() { + var w = this.width, + h = this.height; + for (i = 0; i < len; i++) { + configure_item(get_item(cid, obj_tag + i), { + width: w, + height: h + }); + } + }; + img.src = 'data:image/' + drawimage_data[obj_tag][0].type + + ';base64,' + drawimage_data[obj_tag][0].data; +} + +function gui_drawimage_index(cid, obj_tag, index) { + var i, + len = drawimage_data[obj_tag].length, + image_container = get_item(cid, obj_tag + 'image_container'), + last_image, + image = image_container.childNodes[index], + last_image = image_container.querySelectorAll('[visibility="visible"]'); + for (i = 0; i < last_image.length; i++) { + configure_item(last_image[i], { visibility: 'hidden' }); + } + configure_item(image, { visibility: 'visible' }); +} + function add_popup(cid, popup) { popup_menu[cid] = popup; } diff --git a/pd/src/g_template.c b/pd/src/g_template.c index 9833b27b7c1e206c67bfed4efde635558ffc37e6..93ec6371dd92031adc77754d9c86802776a13333 100644 --- a/pd/src/g_template.c +++ b/pd/src/g_template.c @@ -1678,9 +1678,11 @@ void svg_sendupdate(t_svg *x, t_canvas *c, t_symbol *s, } else if (s == gensym("index")) { - sys_vgui("pdtk_drawimage_index .x%lx.c .x%lx .draw%lx.%lx %d\n", - glist_getcanvas(c), parent, parent, data, drawimage_getindex(parent, - template, data)); + //sys_vgui("pdtk_drawimage_index .x%lx.c .x%lx .draw%lx.%lx %d\n", + // glist_getcanvas(c), parent, parent, data, drawimage_getindex(parent, + // template, data)); + gui_vmess("gui_drawimage_index", "xxi", + glist_getcanvas(c), parent, drawimage_getindex(parent, template, data)); } else if (s == gensym("points")) { @@ -6825,7 +6827,7 @@ static void *drawimage_new(t_symbol *classsym, int argc, t_atom *argv) x->x_deleteme = 0; char *classname = classsym->s_name; char buf[50]; - sprintf(buf, ".x%lx", (t_int)x); + sprintf(buf, "x%lx", (t_int)x); pd_bind(&x->x_obj.ob_pd, gensym(buf)); int flags = 0; @@ -6848,8 +6850,13 @@ static void *drawimage_new(t_symbol *classsym, int argc, t_atom *argv) the source. ".x%lx" is the name for the parent tk image and ".x%lx.i" is the tag given to a scalar's canvas image item. */ - sys_vgui("pdtk_drawimage_new .x%lx {%s} {%s} %d\n", (t_int)x, - x->x_img->s_name, dir->s_name, x->x_flags); + //sys_vgui("pdtk_drawimage_new .x%lx {%s} {%s} %d\n", (t_int)x, + // x->x_img->s_name, dir->s_name, x->x_flags); + gui_vmess("gui_drawimage_new", "xssi", + x, + x->x_img->s_name, + dir->s_name, + x->x_flags); post("deleteme is %d", x->x_deleteme); return (x); } @@ -6858,6 +6865,7 @@ void drawimage_size(t_drawimage *x, t_float w, t_float h) { x->x_w = w; x->x_h = h; +post("w is %g and h is %g", w, h); } static int drawimage_getindex(void *z, t_template *template, t_word *data) @@ -7068,17 +7076,31 @@ static void drawimage_vis(t_gobj *z, t_glist *glist, t_glist *parentglist, sys_vgui("pdtk_drawimage_vis .x%lx.c %d %d .x%lx .x%lx.i %d ",*/ int xloc = fielddesc_getcoord(&x->x_xloc, template, data, 0); int yloc = fielddesc_getcoord(&x->x_yloc, template, data, 0); - sys_vgui("pdtk_drawimage_vis .x%lx.c %d %d .x%lx .x%lx.i %d \\\n", - glist_getcanvas(glist), xloc, yloc, x, data, - (int)fielddesc_getfloat(&x->x_value, template, data, 0)); - //sys_vgui(".x%lx.x%lx.template%lx scalar%lx\n", glist_getcanvas(glist), - // glist, data, sc); - sys_vgui(".x%lx.x%lx.template%lx scalar%lx %s%lx.%lx " - ".draw%lx.%lx\n", glist_getcanvas(glist), - glist, data, sc, - (in_array ? ".scelem" : ".dgroup"), - (in_array ? parentglist : parent), data, - x, data); + + //sys_vgui("pdtk_drawimage_vis .x%lx.c %d %d .x%lx .x%lx.i %d \\\n", + // glist_getcanvas(glist), xloc, yloc, x, data, + // (int)fielddesc_getfloat(&x->x_value, template, data, 0)); + //sys_vgui(".x%lx.x%lx.template%lx scalar%lx %s%lx.%lx " + // ".draw%lx.%lx\n", glist_getcanvas(glist), + // glist, data, sc, + // (in_array ? ".scelem" : ".dgroup"), + // (in_array ? parentglist : parent), data, + // x, data); + + char parent_tagbuf[MAXPDSTRING]; + sprintf(parent_tagbuf,"%s%lx.%lx", + in_array ? "scelem" : "dgroup", + in_array ? (long unsigned int)parentglist : (long unsigned int)parent, + (long unsigned int)data); + + gui_vmess("gui_drawimage_vis", "xiixis", + glist_getcanvas(glist), + xloc, + yloc, + x, + (int)fielddesc_getfloat(&x->x_value, template, data, 0), + parent_tagbuf); + /* need to revisit all these tags, they are getting confusing... */ // sys_vgui(".x%lx.c itemconfigure .x%lx.x%lx.template%lx\\\n", // glist_getcanvas(glist), glist_getcanvas(glist), glist, data);