diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..10fa23f --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +art/game/__pycache__/ diff --git a/art/game/box_1x2_1-1.meta b/art/game/box_1x2_1-1.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_1x2_1-1.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_1x2_1-1_b.png b/art/game/box_1x2_1-1_b.png new file mode 100644 index 0000000..8685d8c Binary files /dev/null and b/art/game/box_1x2_1-1_b.png differ diff --git a/art/game/box_1x2_1-1_g.png b/art/game/box_1x2_1-1_g.png new file mode 100644 index 0000000..14ef29a Binary files /dev/null and b/art/game/box_1x2_1-1_g.png differ diff --git a/art/game/box_1x2_1-1_r.png b/art/game/box_1x2_1-1_r.png new file mode 100644 index 0000000..a6b647b Binary files /dev/null and b/art/game/box_1x2_1-1_r.png differ diff --git a/art/game/box_2x1_11.meta b/art/game/box_2x1_11.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_2x1_11.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_2x1_11_b.png b/art/game/box_2x1_11_b.png new file mode 100644 index 0000000..cfc33fb Binary files /dev/null and b/art/game/box_2x1_11_b.png differ diff --git a/art/game/box_2x1_11_g.png b/art/game/box_2x1_11_g.png new file mode 100644 index 0000000..a75c188 Binary files /dev/null and b/art/game/box_2x1_11_g.png differ diff --git a/art/game/box_2x1_11_r.png b/art/game/box_2x1_11_r.png new file mode 100644 index 0000000..5b15a55 Binary files /dev/null and b/art/game/box_2x1_11_r.png differ diff --git a/art/game/box_2x2_01-11.meta b/art/game/box_2x2_01-11.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_2x2_01-11.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_2x2_01-11_b.png b/art/game/box_2x2_01-11_b.png new file mode 100644 index 0000000..4c2a951 Binary files /dev/null and b/art/game/box_2x2_01-11_b.png differ diff --git a/art/game/box_2x2_01-11_g.png b/art/game/box_2x2_01-11_g.png new file mode 100644 index 0000000..29bad2d Binary files /dev/null and b/art/game/box_2x2_01-11_g.png differ diff --git a/art/game/box_2x2_01-11_r.png b/art/game/box_2x2_01-11_r.png new file mode 100644 index 0000000..d7261b7 Binary files /dev/null and b/art/game/box_2x2_01-11_r.png differ diff --git a/art/game/box_2x2_10-11.meta b/art/game/box_2x2_10-11.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_2x2_10-11.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_2x2_10-11_b.png b/art/game/box_2x2_10-11_b.png new file mode 100644 index 0000000..32c1898 Binary files /dev/null and b/art/game/box_2x2_10-11_b.png differ diff --git a/art/game/box_2x2_10-11_g.png b/art/game/box_2x2_10-11_g.png new file mode 100644 index 0000000..edd4a73 Binary files /dev/null and b/art/game/box_2x2_10-11_g.png differ diff --git a/art/game/box_2x2_10-11_r.png b/art/game/box_2x2_10-11_r.png new file mode 100644 index 0000000..d7dffd9 Binary files /dev/null and b/art/game/box_2x2_10-11_r.png differ diff --git a/art/game/box_2x2_11-01.meta b/art/game/box_2x2_11-01.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_2x2_11-01.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_2x2_11-01_b.png b/art/game/box_2x2_11-01_b.png new file mode 100644 index 0000000..8b5d161 Binary files /dev/null and b/art/game/box_2x2_11-01_b.png differ diff --git a/art/game/box_2x2_11-01_g.png b/art/game/box_2x2_11-01_g.png new file mode 100644 index 0000000..f50a714 Binary files /dev/null and b/art/game/box_2x2_11-01_g.png differ diff --git a/art/game/box_2x2_11-01_r.png b/art/game/box_2x2_11-01_r.png new file mode 100644 index 0000000..184def9 Binary files /dev/null and b/art/game/box_2x2_11-01_r.png differ diff --git a/art/game/box_2x2_11-10.meta b/art/game/box_2x2_11-10.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_2x2_11-10.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_2x2_11-10_b.png b/art/game/box_2x2_11-10_b.png new file mode 100644 index 0000000..48b1609 Binary files /dev/null and b/art/game/box_2x2_11-10_b.png differ diff --git a/art/game/box_2x2_11-10_g.png b/art/game/box_2x2_11-10_g.png new file mode 100644 index 0000000..5ca026f Binary files /dev/null and b/art/game/box_2x2_11-10_g.png differ diff --git a/art/game/box_2x2_11-10_r.png b/art/game/box_2x2_11-10_r.png new file mode 100644 index 0000000..9e60204 Binary files /dev/null and b/art/game/box_2x2_11-10_r.png differ diff --git a/art/game/box_2x2_11-11.meta b/art/game/box_2x2_11-11.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_2x2_11-11.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_2x2_11-11_b.png b/art/game/box_2x2_11-11_b.png new file mode 100644 index 0000000..4700b24 Binary files /dev/null and b/art/game/box_2x2_11-11_b.png differ diff --git a/art/game/box_2x2_11-11_g.png b/art/game/box_2x2_11-11_g.png new file mode 100644 index 0000000..82114f8 Binary files /dev/null and b/art/game/box_2x2_11-11_g.png differ diff --git a/art/game/box_2x2_11-11_r.png b/art/game/box_2x2_11-11_r.png new file mode 100644 index 0000000..8a2891c Binary files /dev/null and b/art/game/box_2x2_11-11_r.png differ diff --git a/art/game/box_2x3_01-01-11.meta b/art/game/box_2x3_01-01-11.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_2x3_01-01-11.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_2x3_01-01-11_b.png b/art/game/box_2x3_01-01-11_b.png new file mode 100644 index 0000000..9b8ab4b Binary files /dev/null and b/art/game/box_2x3_01-01-11_b.png differ diff --git a/art/game/box_2x3_01-01-11_g.png b/art/game/box_2x3_01-01-11_g.png new file mode 100644 index 0000000..9f259cf Binary files /dev/null and b/art/game/box_2x3_01-01-11_g.png differ diff --git a/art/game/box_2x3_01-01-11_r.png b/art/game/box_2x3_01-01-11_r.png new file mode 100644 index 0000000..22edc55 Binary files /dev/null and b/art/game/box_2x3_01-01-11_r.png differ diff --git a/art/game/box_2x3_01-11-01.meta b/art/game/box_2x3_01-11-01.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_2x3_01-11-01.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_2x3_01-11-01_b.png b/art/game/box_2x3_01-11-01_b.png new file mode 100644 index 0000000..667c5cd Binary files /dev/null and b/art/game/box_2x3_01-11-01_b.png differ diff --git a/art/game/box_2x3_01-11-01_g.png b/art/game/box_2x3_01-11-01_g.png new file mode 100644 index 0000000..f89161f Binary files /dev/null and b/art/game/box_2x3_01-11-01_g.png differ diff --git a/art/game/box_2x3_01-11-01_r.png b/art/game/box_2x3_01-11-01_r.png new file mode 100644 index 0000000..4976436 Binary files /dev/null and b/art/game/box_2x3_01-11-01_r.png differ diff --git a/art/game/box_2x3_01-11-10.meta b/art/game/box_2x3_01-11-10.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_2x3_01-11-10.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_2x3_01-11-10_b.png b/art/game/box_2x3_01-11-10_b.png new file mode 100644 index 0000000..9c39f5d Binary files /dev/null and b/art/game/box_2x3_01-11-10_b.png differ diff --git a/art/game/box_2x3_01-11-10_g.png b/art/game/box_2x3_01-11-10_g.png new file mode 100644 index 0000000..911ee0f Binary files /dev/null and b/art/game/box_2x3_01-11-10_g.png differ diff --git a/art/game/box_2x3_01-11-10_r.png b/art/game/box_2x3_01-11-10_r.png new file mode 100644 index 0000000..437fbd1 Binary files /dev/null and b/art/game/box_2x3_01-11-10_r.png differ diff --git a/art/game/box_2x3_01-11-11.meta b/art/game/box_2x3_01-11-11.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_2x3_01-11-11.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_2x3_01-11-11_b.png b/art/game/box_2x3_01-11-11_b.png new file mode 100644 index 0000000..c035f5b Binary files /dev/null and b/art/game/box_2x3_01-11-11_b.png differ diff --git a/art/game/box_2x3_01-11-11_g.png b/art/game/box_2x3_01-11-11_g.png new file mode 100644 index 0000000..6a7cf92 Binary files /dev/null and b/art/game/box_2x3_01-11-11_g.png differ diff --git a/art/game/box_2x3_01-11-11_r.png b/art/game/box_2x3_01-11-11_r.png new file mode 100644 index 0000000..dc29a62 Binary files /dev/null and b/art/game/box_2x3_01-11-11_r.png differ diff --git a/art/game/box_2x3_10-10-11.meta b/art/game/box_2x3_10-10-11.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_2x3_10-10-11.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_2x3_10-10-11_b.png b/art/game/box_2x3_10-10-11_b.png new file mode 100644 index 0000000..2f88bc4 Binary files /dev/null and b/art/game/box_2x3_10-10-11_b.png differ diff --git a/art/game/box_2x3_10-10-11_g.png b/art/game/box_2x3_10-10-11_g.png new file mode 100644 index 0000000..33e2229 Binary files /dev/null and b/art/game/box_2x3_10-10-11_g.png differ diff --git a/art/game/box_2x3_10-10-11_r.png b/art/game/box_2x3_10-10-11_r.png new file mode 100644 index 0000000..37fbd89 Binary files /dev/null and b/art/game/box_2x3_10-10-11_r.png differ diff --git a/art/game/box_2x3_10-11-01.meta b/art/game/box_2x3_10-11-01.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_2x3_10-11-01.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_2x3_10-11-01_b.png b/art/game/box_2x3_10-11-01_b.png new file mode 100644 index 0000000..38639ba Binary files /dev/null and b/art/game/box_2x3_10-11-01_b.png differ diff --git a/art/game/box_2x3_10-11-01_g.png b/art/game/box_2x3_10-11-01_g.png new file mode 100644 index 0000000..f2eeaee Binary files /dev/null and b/art/game/box_2x3_10-11-01_g.png differ diff --git a/art/game/box_2x3_10-11-01_r.png b/art/game/box_2x3_10-11-01_r.png new file mode 100644 index 0000000..06ff5b9 Binary files /dev/null and b/art/game/box_2x3_10-11-01_r.png differ diff --git a/art/game/box_2x3_10-11-10.meta b/art/game/box_2x3_10-11-10.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_2x3_10-11-10.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_2x3_10-11-10_b.png b/art/game/box_2x3_10-11-10_b.png new file mode 100644 index 0000000..7841710 Binary files /dev/null and b/art/game/box_2x3_10-11-10_b.png differ diff --git a/art/game/box_2x3_10-11-10_g.png b/art/game/box_2x3_10-11-10_g.png new file mode 100644 index 0000000..b25f2a9 Binary files /dev/null and b/art/game/box_2x3_10-11-10_g.png differ diff --git a/art/game/box_2x3_10-11-10_r.png b/art/game/box_2x3_10-11-10_r.png new file mode 100644 index 0000000..80a58ed Binary files /dev/null and b/art/game/box_2x3_10-11-10_r.png differ diff --git a/art/game/box_2x3_10-11-11.meta b/art/game/box_2x3_10-11-11.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_2x3_10-11-11.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_2x3_10-11-11_b.png b/art/game/box_2x3_10-11-11_b.png new file mode 100644 index 0000000..83aa125 Binary files /dev/null and b/art/game/box_2x3_10-11-11_b.png differ diff --git a/art/game/box_2x3_10-11-11_g.png b/art/game/box_2x3_10-11-11_g.png new file mode 100644 index 0000000..82e9eb0 Binary files /dev/null and b/art/game/box_2x3_10-11-11_g.png differ diff --git a/art/game/box_2x3_10-11-11_r.png b/art/game/box_2x3_10-11-11_r.png new file mode 100644 index 0000000..847c502 Binary files /dev/null and b/art/game/box_2x3_10-11-11_r.png differ diff --git a/art/game/box_2x3_11-01-01.meta b/art/game/box_2x3_11-01-01.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_2x3_11-01-01.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_2x3_11-01-01_b.png b/art/game/box_2x3_11-01-01_b.png new file mode 100644 index 0000000..b5d81f4 Binary files /dev/null and b/art/game/box_2x3_11-01-01_b.png differ diff --git a/art/game/box_2x3_11-01-01_g.png b/art/game/box_2x3_11-01-01_g.png new file mode 100644 index 0000000..88313e3 Binary files /dev/null and b/art/game/box_2x3_11-01-01_g.png differ diff --git a/art/game/box_2x3_11-01-01_r.png b/art/game/box_2x3_11-01-01_r.png new file mode 100644 index 0000000..dbd3030 Binary files /dev/null and b/art/game/box_2x3_11-01-01_r.png differ diff --git a/art/game/box_2x3_11-01-11.meta b/art/game/box_2x3_11-01-11.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_2x3_11-01-11.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_2x3_11-01-11_b.png b/art/game/box_2x3_11-01-11_b.png new file mode 100644 index 0000000..184839c Binary files /dev/null and b/art/game/box_2x3_11-01-11_b.png differ diff --git a/art/game/box_2x3_11-01-11_g.png b/art/game/box_2x3_11-01-11_g.png new file mode 100644 index 0000000..dc36c58 Binary files /dev/null and b/art/game/box_2x3_11-01-11_g.png differ diff --git a/art/game/box_2x3_11-01-11_r.png b/art/game/box_2x3_11-01-11_r.png new file mode 100644 index 0000000..3b32467 Binary files /dev/null and b/art/game/box_2x3_11-01-11_r.png differ diff --git a/art/game/box_2x3_11-10-10.meta b/art/game/box_2x3_11-10-10.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_2x3_11-10-10.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_2x3_11-10-10_b.png b/art/game/box_2x3_11-10-10_b.png new file mode 100644 index 0000000..8de459e Binary files /dev/null and b/art/game/box_2x3_11-10-10_b.png differ diff --git a/art/game/box_2x3_11-10-10_g.png b/art/game/box_2x3_11-10-10_g.png new file mode 100644 index 0000000..b03e643 Binary files /dev/null and b/art/game/box_2x3_11-10-10_g.png differ diff --git a/art/game/box_2x3_11-10-10_r.png b/art/game/box_2x3_11-10-10_r.png new file mode 100644 index 0000000..e13af86 Binary files /dev/null and b/art/game/box_2x3_11-10-10_r.png differ diff --git a/art/game/box_2x3_11-10-11.meta b/art/game/box_2x3_11-10-11.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_2x3_11-10-11.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_2x3_11-10-11_b.png b/art/game/box_2x3_11-10-11_b.png new file mode 100644 index 0000000..4449aa0 Binary files /dev/null and b/art/game/box_2x3_11-10-11_b.png differ diff --git a/art/game/box_2x3_11-10-11_g.png b/art/game/box_2x3_11-10-11_g.png new file mode 100644 index 0000000..f767b6d Binary files /dev/null and b/art/game/box_2x3_11-10-11_g.png differ diff --git a/art/game/box_2x3_11-10-11_r.png b/art/game/box_2x3_11-10-11_r.png new file mode 100644 index 0000000..d04d2da Binary files /dev/null and b/art/game/box_2x3_11-10-11_r.png differ diff --git a/art/game/box_2x3_11-11-01.meta b/art/game/box_2x3_11-11-01.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_2x3_11-11-01.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_2x3_11-11-01_b.png b/art/game/box_2x3_11-11-01_b.png new file mode 100644 index 0000000..9561e54 Binary files /dev/null and b/art/game/box_2x3_11-11-01_b.png differ diff --git a/art/game/box_2x3_11-11-01_g.png b/art/game/box_2x3_11-11-01_g.png new file mode 100644 index 0000000..29e0ba7 Binary files /dev/null and b/art/game/box_2x3_11-11-01_g.png differ diff --git a/art/game/box_2x3_11-11-01_r.png b/art/game/box_2x3_11-11-01_r.png new file mode 100644 index 0000000..ae6f53c Binary files /dev/null and b/art/game/box_2x3_11-11-01_r.png differ diff --git a/art/game/box_2x3_11-11-10.meta b/art/game/box_2x3_11-11-10.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_2x3_11-11-10.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_2x3_11-11-10_b.png b/art/game/box_2x3_11-11-10_b.png new file mode 100644 index 0000000..671cea9 Binary files /dev/null and b/art/game/box_2x3_11-11-10_b.png differ diff --git a/art/game/box_2x3_11-11-10_g.png b/art/game/box_2x3_11-11-10_g.png new file mode 100644 index 0000000..bb3b0a6 Binary files /dev/null and b/art/game/box_2x3_11-11-10_g.png differ diff --git a/art/game/box_2x3_11-11-10_r.png b/art/game/box_2x3_11-11-10_r.png new file mode 100644 index 0000000..e07ee67 Binary files /dev/null and b/art/game/box_2x3_11-11-10_r.png differ diff --git a/art/game/box_2x3_11-11-11.meta b/art/game/box_2x3_11-11-11.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_2x3_11-11-11.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_2x3_11-11-11_b.png b/art/game/box_2x3_11-11-11_b.png new file mode 100644 index 0000000..7d99192 Binary files /dev/null and b/art/game/box_2x3_11-11-11_b.png differ diff --git a/art/game/box_2x3_11-11-11_g.png b/art/game/box_2x3_11-11-11_g.png new file mode 100644 index 0000000..d95fcb7 Binary files /dev/null and b/art/game/box_2x3_11-11-11_g.png differ diff --git a/art/game/box_2x3_11-11-11_r.png b/art/game/box_2x3_11-11-11_r.png new file mode 100644 index 0000000..f143e9c Binary files /dev/null and b/art/game/box_2x3_11-11-11_r.png differ diff --git a/art/game/box_3x2_001-111.meta b/art/game/box_3x2_001-111.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_3x2_001-111.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_3x2_001-111_b.png b/art/game/box_3x2_001-111_b.png new file mode 100644 index 0000000..c41bf3b Binary files /dev/null and b/art/game/box_3x2_001-111_b.png differ diff --git a/art/game/box_3x2_001-111_g.png b/art/game/box_3x2_001-111_g.png new file mode 100644 index 0000000..fa79a67 Binary files /dev/null and b/art/game/box_3x2_001-111_g.png differ diff --git a/art/game/box_3x2_001-111_r.png b/art/game/box_3x2_001-111_r.png new file mode 100644 index 0000000..0823bfa Binary files /dev/null and b/art/game/box_3x2_001-111_r.png differ diff --git a/art/game/box_3x2_010-111.meta b/art/game/box_3x2_010-111.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_3x2_010-111.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_3x2_010-111_b.png b/art/game/box_3x2_010-111_b.png new file mode 100644 index 0000000..6db1c86 Binary files /dev/null and b/art/game/box_3x2_010-111_b.png differ diff --git a/art/game/box_3x2_010-111_g.png b/art/game/box_3x2_010-111_g.png new file mode 100644 index 0000000..3f2a208 Binary files /dev/null and b/art/game/box_3x2_010-111_g.png differ diff --git a/art/game/box_3x2_010-111_r.png b/art/game/box_3x2_010-111_r.png new file mode 100644 index 0000000..c5f1cfd Binary files /dev/null and b/art/game/box_3x2_010-111_r.png differ diff --git a/art/game/box_3x2_011-110.meta b/art/game/box_3x2_011-110.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_3x2_011-110.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_3x2_011-110_b.png b/art/game/box_3x2_011-110_b.png new file mode 100644 index 0000000..a2ba1cc Binary files /dev/null and b/art/game/box_3x2_011-110_b.png differ diff --git a/art/game/box_3x2_011-110_g.png b/art/game/box_3x2_011-110_g.png new file mode 100644 index 0000000..3613555 Binary files /dev/null and b/art/game/box_3x2_011-110_g.png differ diff --git a/art/game/box_3x2_011-110_r.png b/art/game/box_3x2_011-110_r.png new file mode 100644 index 0000000..d441967 Binary files /dev/null and b/art/game/box_3x2_011-110_r.png differ diff --git a/art/game/box_3x2_011-111.meta b/art/game/box_3x2_011-111.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_3x2_011-111.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_3x2_011-111_b.png b/art/game/box_3x2_011-111_b.png new file mode 100644 index 0000000..7572289 Binary files /dev/null and b/art/game/box_3x2_011-111_b.png differ diff --git a/art/game/box_3x2_011-111_g.png b/art/game/box_3x2_011-111_g.png new file mode 100644 index 0000000..2c3d15d Binary files /dev/null and b/art/game/box_3x2_011-111_g.png differ diff --git a/art/game/box_3x2_011-111_r.png b/art/game/box_3x2_011-111_r.png new file mode 100644 index 0000000..1d148f1 Binary files /dev/null and b/art/game/box_3x2_011-111_r.png differ diff --git a/art/game/box_3x2_100-111.meta b/art/game/box_3x2_100-111.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_3x2_100-111.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_3x2_100-111_b.png b/art/game/box_3x2_100-111_b.png new file mode 100644 index 0000000..f7395d1 Binary files /dev/null and b/art/game/box_3x2_100-111_b.png differ diff --git a/art/game/box_3x2_100-111_g.png b/art/game/box_3x2_100-111_g.png new file mode 100644 index 0000000..034ee69 Binary files /dev/null and b/art/game/box_3x2_100-111_g.png differ diff --git a/art/game/box_3x2_100-111_r.png b/art/game/box_3x2_100-111_r.png new file mode 100644 index 0000000..c5e1a2b Binary files /dev/null and b/art/game/box_3x2_100-111_r.png differ diff --git a/art/game/box_3x2_101-111.meta b/art/game/box_3x2_101-111.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_3x2_101-111.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_3x2_101-111_b.png b/art/game/box_3x2_101-111_b.png new file mode 100644 index 0000000..596bae4 Binary files /dev/null and b/art/game/box_3x2_101-111_b.png differ diff --git a/art/game/box_3x2_101-111_g.png b/art/game/box_3x2_101-111_g.png new file mode 100644 index 0000000..543f21a Binary files /dev/null and b/art/game/box_3x2_101-111_g.png differ diff --git a/art/game/box_3x2_101-111_r.png b/art/game/box_3x2_101-111_r.png new file mode 100644 index 0000000..6f23da8 Binary files /dev/null and b/art/game/box_3x2_101-111_r.png differ diff --git a/art/game/box_3x2_110-011.meta b/art/game/box_3x2_110-011.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_3x2_110-011.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_3x2_110-011_b.png b/art/game/box_3x2_110-011_b.png new file mode 100644 index 0000000..fcfa358 Binary files /dev/null and b/art/game/box_3x2_110-011_b.png differ diff --git a/art/game/box_3x2_110-011_g.png b/art/game/box_3x2_110-011_g.png new file mode 100644 index 0000000..dfda67b Binary files /dev/null and b/art/game/box_3x2_110-011_g.png differ diff --git a/art/game/box_3x2_110-011_r.png b/art/game/box_3x2_110-011_r.png new file mode 100644 index 0000000..4b3eab8 Binary files /dev/null and b/art/game/box_3x2_110-011_r.png differ diff --git a/art/game/box_3x2_110-111.meta b/art/game/box_3x2_110-111.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_3x2_110-111.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_3x2_110-111_b.png b/art/game/box_3x2_110-111_b.png new file mode 100644 index 0000000..6808a63 Binary files /dev/null and b/art/game/box_3x2_110-111_b.png differ diff --git a/art/game/box_3x2_110-111_g.png b/art/game/box_3x2_110-111_g.png new file mode 100644 index 0000000..6c2d2d4 Binary files /dev/null and b/art/game/box_3x2_110-111_g.png differ diff --git a/art/game/box_3x2_110-111_r.png b/art/game/box_3x2_110-111_r.png new file mode 100644 index 0000000..e085d49 Binary files /dev/null and b/art/game/box_3x2_110-111_r.png differ diff --git a/art/game/box_3x2_111-001.meta b/art/game/box_3x2_111-001.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_3x2_111-001.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_3x2_111-001_b.png b/art/game/box_3x2_111-001_b.png new file mode 100644 index 0000000..2878be9 Binary files /dev/null and b/art/game/box_3x2_111-001_b.png differ diff --git a/art/game/box_3x2_111-001_g.png b/art/game/box_3x2_111-001_g.png new file mode 100644 index 0000000..f5ce4fe Binary files /dev/null and b/art/game/box_3x2_111-001_g.png differ diff --git a/art/game/box_3x2_111-001_r.png b/art/game/box_3x2_111-001_r.png new file mode 100644 index 0000000..e26702c Binary files /dev/null and b/art/game/box_3x2_111-001_r.png differ diff --git a/art/game/box_3x2_111-010.meta b/art/game/box_3x2_111-010.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_3x2_111-010.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_3x2_111-010_b.png b/art/game/box_3x2_111-010_b.png new file mode 100644 index 0000000..fe36f05 Binary files /dev/null and b/art/game/box_3x2_111-010_b.png differ diff --git a/art/game/box_3x2_111-010_g.png b/art/game/box_3x2_111-010_g.png new file mode 100644 index 0000000..f19e173 Binary files /dev/null and b/art/game/box_3x2_111-010_g.png differ diff --git a/art/game/box_3x2_111-010_r.png b/art/game/box_3x2_111-010_r.png new file mode 100644 index 0000000..805143e Binary files /dev/null and b/art/game/box_3x2_111-010_r.png differ diff --git a/art/game/box_3x2_111-011.meta b/art/game/box_3x2_111-011.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_3x2_111-011.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_3x2_111-011_b.png b/art/game/box_3x2_111-011_b.png new file mode 100644 index 0000000..7b4da5f Binary files /dev/null and b/art/game/box_3x2_111-011_b.png differ diff --git a/art/game/box_3x2_111-011_g.png b/art/game/box_3x2_111-011_g.png new file mode 100644 index 0000000..8ae838a Binary files /dev/null and b/art/game/box_3x2_111-011_g.png differ diff --git a/art/game/box_3x2_111-011_r.png b/art/game/box_3x2_111-011_r.png new file mode 100644 index 0000000..d93d3f7 Binary files /dev/null and b/art/game/box_3x2_111-011_r.png differ diff --git a/art/game/box_3x2_111-100.meta b/art/game/box_3x2_111-100.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_3x2_111-100.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_3x2_111-100_b.png b/art/game/box_3x2_111-100_b.png new file mode 100644 index 0000000..3244a3c Binary files /dev/null and b/art/game/box_3x2_111-100_b.png differ diff --git a/art/game/box_3x2_111-100_g.png b/art/game/box_3x2_111-100_g.png new file mode 100644 index 0000000..d7f664b Binary files /dev/null and b/art/game/box_3x2_111-100_g.png differ diff --git a/art/game/box_3x2_111-100_r.png b/art/game/box_3x2_111-100_r.png new file mode 100644 index 0000000..eb456d4 Binary files /dev/null and b/art/game/box_3x2_111-100_r.png differ diff --git a/art/game/box_3x2_111-101.meta b/art/game/box_3x2_111-101.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_3x2_111-101.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_3x2_111-101_b.png b/art/game/box_3x2_111-101_b.png new file mode 100644 index 0000000..6047159 Binary files /dev/null and b/art/game/box_3x2_111-101_b.png differ diff --git a/art/game/box_3x2_111-101_g.png b/art/game/box_3x2_111-101_g.png new file mode 100644 index 0000000..e52f10d Binary files /dev/null and b/art/game/box_3x2_111-101_g.png differ diff --git a/art/game/box_3x2_111-101_r.png b/art/game/box_3x2_111-101_r.png new file mode 100644 index 0000000..4135dd0 Binary files /dev/null and b/art/game/box_3x2_111-101_r.png differ diff --git a/art/game/box_3x2_111-110.meta b/art/game/box_3x2_111-110.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_3x2_111-110.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_3x2_111-110_b.png b/art/game/box_3x2_111-110_b.png new file mode 100644 index 0000000..fa34e59 Binary files /dev/null and b/art/game/box_3x2_111-110_b.png differ diff --git a/art/game/box_3x2_111-110_g.png b/art/game/box_3x2_111-110_g.png new file mode 100644 index 0000000..955c94e Binary files /dev/null and b/art/game/box_3x2_111-110_g.png differ diff --git a/art/game/box_3x2_111-110_r.png b/art/game/box_3x2_111-110_r.png new file mode 100644 index 0000000..0a00a2d Binary files /dev/null and b/art/game/box_3x2_111-110_r.png differ diff --git a/art/game/box_3x2_111-111.meta b/art/game/box_3x2_111-111.meta new file mode 100644 index 0000000..723fa60 --- /dev/null +++ b/art/game/box_3x2_111-111.meta @@ -0,0 +1 @@ +{class="moveable"} \ No newline at end of file diff --git a/art/game/box_3x2_111-111_b.png b/art/game/box_3x2_111-111_b.png new file mode 100644 index 0000000..050cb53 Binary files /dev/null and b/art/game/box_3x2_111-111_b.png differ diff --git a/art/game/box_3x2_111-111_g.png b/art/game/box_3x2_111-111_g.png new file mode 100644 index 0000000..d294f87 Binary files /dev/null and b/art/game/box_3x2_111-111_g.png differ diff --git a/art/game/box_3x2_111-111_r.png b/art/game/box_3x2_111-111_r.png new file mode 100644 index 0000000..56d9ffd Binary files /dev/null and b/art/game/box_3x2_111-111_r.png differ diff --git a/art/game/gen_composite_boxes.py b/art/game/gen_composite_boxes.py new file mode 100644 index 0000000..57d130b --- /dev/null +++ b/art/game/gen_composite_boxes.py @@ -0,0 +1,136 @@ +#!/usr/bin/env python3 +"""Generate multi-cell "box" sprites for CHROMA SOLSTICE. + +Each cell is 16x16. A single box has a 1px transparent margin on every edge +(so a 14x14 body inside 16x16). For multi-cell blocks we keep that 1px margin +only on the *outer* silhouette of the block -- edges that could touch other +things in the level -- while cells that are part of the same block stay truly +connected (no seam, no internal margin). + +The per-channel fill is the same concentric-ring format as the shipped +box_r / box_g / box_b: a pixel is decided purely by k, its inset depth +(chebyshev distance in from the nearest outside pixel, minus 1; k==0 is the +margin ring and is always transparent). The three channels each leave their +own gaps so the colors underneath stay visible when drawn additively. + + red ON: k in {1,2} or k>=5 (2px ring, 2px gap, solid core) + green ON: k odd or k>=5 (alternating 1px rings, solid core) + blue ON: k==1 or k>=4 (1px ring, 2px gap, solid core) + +Run from inside art/game/ : python3 gen_composite_boxes.py +""" +from itertools import product +from collections import deque +from PIL import Image + +CELL = 16 + +RULES = { + 'r': lambda k: (1 <= k <= 2) or (k >= 5), + 'g': lambda k: (k >= 5) or (k >= 1 and k % 2 == 1), + 'b': lambda k: (k == 1) or (k >= 4), +} + + +def inset_grid(cells, W, H): + """Return k[y][x] for the W*CELL x H*CELL pixel grid (-1 = outside).""" + Wp, Hp = W * CELL, H * CELL + occ = [[False] * Wp for _ in range(Hp)] + for (cx, cy) in cells: + for y in range(cy * CELL, cy * CELL + CELL): + for x in range(cx * CELL, cx * CELL + CELL): + occ[y][x] = True + + INF = 10 ** 9 + dist = [[INF] * Wp for _ in range(Hp)] + dq = deque() + for y in range(Hp): + for x in range(Wp): + if not occ[y][x]: + dist[y][x] = 0 + dq.append((x, y)) + while dq: # multi-source BFS with chebyshev (8-neighbour) steps + x, y = dq.popleft() + for dy in (-1, 0, 1): + for dx in (-1, 0, 1): + if dx == 0 and dy == 0: + continue + nx, ny = x + dx, y + dy + if 0 <= nx < Wp and 0 <= ny < Hp and dist[ny][nx] > dist[y][x] + 1: + dist[ny][nx] = dist[y][x] + 1 + dq.append((nx, ny)) + + k = [[-1] * Wp for _ in range(Hp)] + for y in range(Hp): + for x in range(Wp): + if occ[y][x]: + # the region beyond the image edge counts as outside too + edged = min(x + 1, Wp - x, y + 1, Hp - y) + k[y][x] = min(dist[y][x], edged) - 1 + return k + + +def render(cells, W, H, channel): + k = inset_grid(cells, W, H) + rule = RULES[channel] + img = Image.new('RGBA', (W * CELL, H * CELL), (0, 0, 0, 0)) + px = img.load() + for y in range(H * CELL): + for x in range(W * CELL): + if k[y][x] >= 0 and rule(k[y][x]): + px[x, y] = (255, 255, 255, 255) + return img + + +def connected(cells): + cells = set(cells) + start = next(iter(cells)) + seen = {start} + stack = [start] + while stack: + x, y = stack.pop() + for dx, dy in ((1, 0), (-1, 0), (0, 1), (0, -1)): + n = (x + dx, y + dy) + if n in cells and n not in seen: + seen.add(n) + stack.append(n) + return len(seen) == len(cells) + + +def enum(W, H): + """All connected polyominoes whose bounding box is exactly W x H.""" + coords = [(x, y) for y in range(H) for x in range(W)] + out = [] + for bits in range(1, 1 << (W * H)): + cells = [coords[i] for i in range(W * H) if bits >> i & 1] + if len(cells) < 2: + continue + xs = [c[0] for c in cells] + ys = [c[1] for c in cells] + if min(xs) != 0 or max(xs) != W - 1 or min(ys) != 0 or max(ys) != H - 1: + continue + if not connected(cells): + continue + out.append(cells) + return out + + +def mask_name(cells, W, H): + rows = [['0'] * W for _ in range(H)] + for x, y in cells: + rows[y][x] = '1' + return '-'.join(''.join(r) for r in rows) + + +BBOXES = [(1, 2), (2, 1), (2, 2), (3, 2), (2, 3)] + +if __name__ == '__main__': + total = 0 + for (W, H) in BBOXES: + for cells in enum(W, H): + mask = mask_name(cells, W, H) + for ch in 'rgb': + fn = 'box_%dx%d_%s_%s.png' % (W, H, mask, ch) + render(cells, W, H, ch).save(fn) + total += 1 + print('wrote %d files' % total) diff --git a/generic_moveable.lua b/generic_moveable.lua index dced70c..f92ded3 100644 --- a/generic_moveable.lua +++ b/generic_moveable.lua @@ -2,14 +2,15 @@ require "entity" GenericMoveable = class("GenericMoveable", Entity) -function GenericMoveable:initialize(x, y, color, sprite, name) +function GenericMoveable:initialize(x, y, color, sprite, name, cellShape) Entity.initialize(self, { name = name, x = x, y = y, color = color, collision = "moveable", - sprite = sprite + sprite = sprite, + cellShape = cellShape }) end diff --git a/generic_unmoveable.lua b/generic_unmoveable.lua index 7ab390e..4c15b44 100644 --- a/generic_unmoveable.lua +++ b/generic_unmoveable.lua @@ -2,13 +2,14 @@ require "entity" GenericUnmoveable = class("GenericUnmoveable", Entity) -function GenericUnmoveable:initialize(x, y, color, sprite) +function GenericUnmoveable:initialize(x, y, color, sprite, cellShape) Entity.initialize(self, { x = x, y = y, color = color, collision = "unmoveable", - sprite = sprite + sprite = sprite, + cellShape = cellShape }) end diff --git a/level_editor/object_attributes.lua b/level_editor/object_attributes.lua index 2ab6257..71f0a64 100644 --- a/level_editor/object_attributes.lua +++ b/level_editor/object_attributes.lua @@ -43,10 +43,14 @@ function getAllAssets() local sprite = topFolder .. "/" .. folder .. "/" .. fileToAnalyze globalAssetProperties[name].sprites[color] = sprite - if not globalAssetProperties[name].cells or reanalyzeCells then - globalAssetProperties[name].cells = {} + -- Precompute the occupied-cell shape once per asset/colour and + -- cache it here; entities share this table by reference so + -- collision never rescans pixels at runtime. Keyed per colour + -- (each channel leaves its own gaps) rather than reset per file. + globalAssetProperties[name].cells = globalAssetProperties[name].cells or {} + if not globalAssetProperties[name].cells[color] or reanalyzeCells then globalAssetProperties[name].cells[color] = getCellsFromSprite(sprite) - end + end end end end diff --git a/room.lua b/room.lua index 99d0478..69c1314 100644 --- a/room.lua +++ b/room.lua @@ -570,10 +570,15 @@ function Room:createEntity(class, color, x, y) self:setActiveColor(color, true) elseif props and props.sprites and props.sprites[color] then local sprite = loadSprite(props.sprites[color]) + -- Reuse the cell shape precomputed by getAllAssets (nil/empty falls back + -- to the full sprite rectangle inside Entity), so an L/U/notched block + -- collides on its real cells and its gaps read as empty space. + local cellShape = props.cells and props.cells[color] + if cellShape and #cellShape == 0 then cellShape = nil end if behavior == "moveable" then - entity = GenericMoveable:new(x, y, color, sprite, class) + entity = GenericMoveable:new(x, y, color, sprite, class, cellShape) else - entity = GenericUnmoveable:new(x, y, color, sprite) + entity = GenericUnmoveable:new(x, y, color, sprite, cellShape) end self:registerCollidable(entity, {color}) end