From a121b8bcdb5ceec2ce1ac314e6bd33b2427911a8 Mon Sep 17 00:00:00 2001 From: Rokas Puzonas Date: Tue, 27 Jan 2026 07:42:54 +0200 Subject: [PATCH] add tilemap rendering --- README.md | 22 +- build.zig | 6 +- libs/tiled/src/layer.zig | 88 +++++++- libs/tiled/src/tilemap.zig | 13 +- src/assets.zig | 18 +- src/assets/game-2026-01-18.tiled-session | 2 +- .../PNG/Tiles/Tilemap/tilemap.png | Bin 7024 -> 0 bytes .../PNG/Tiles/Tilemap/tilemap_packed.png | Bin 6442 -> 0 bytes .../PNG/Tiles/Tiles/tile_0000.png | Bin 164 -> 0 bytes .../PNG/Tiles/Tiles/tile_0001.png | Bin 178 -> 0 bytes .../PNG/Tiles/Tiles/tile_0002.png | Bin 159 -> 0 bytes .../PNG/Tiles/Tiles/tile_0003.png | Bin 139 -> 0 bytes .../PNG/Tiles/Tiles/tile_0004.png | Bin 129 -> 0 bytes .../PNG/Tiles/Tiles/tile_0005.png | Bin 164 -> 0 bytes .../PNG/Tiles/Tiles/tile_0006.png | Bin 146 -> 0 bytes .../PNG/Tiles/Tiles/tile_0007.png | Bin 160 -> 0 bytes .../PNG/Tiles/Tiles/tile_0008.png | Bin 139 -> 0 bytes .../PNG/Tiles/Tiles/tile_0009.png | Bin 129 -> 0 bytes .../PNG/Tiles/Tiles/tile_0010.png | Bin 183 -> 0 bytes .../PNG/Tiles/Tiles/tile_0011.png | Bin 146 -> 0 bytes .../PNG/Tiles/Tiles/tile_0012.png | Bin 163 -> 0 bytes .../PNG/Tiles/Tiles/tile_0013.png | Bin 113 -> 0 bytes .../PNG/Tiles/Tiles/tile_0014.png | Bin 111 -> 0 bytes .../PNG/Tiles/Tiles/tile_0015.png | Bin 152 -> 0 bytes .../PNG/Tiles/Tiles/tile_0016.png | Bin 146 -> 0 bytes .../PNG/Tiles/Tiles/tile_0017.png | Bin 151 -> 0 bytes .../PNG/Tiles/Tiles/tile_0018.png | Bin 127 -> 0 bytes .../PNG/Tiles/Tiles/tile_0019.png | Bin 133 -> 0 bytes .../PNG/Tiles/Tiles/tile_0020.png | Bin 136 -> 0 bytes .../PNG/Tiles/Tiles/tile_0021.png | Bin 136 -> 0 bytes .../PNG/Tiles/Tiles/tile_0022.png | Bin 132 -> 0 bytes .../PNG/Tiles/Tiles/tile_0023.png | Bin 128 -> 0 bytes .../PNG/Tiles/Tiles/tile_0024.png | Bin 118 -> 0 bytes .../PNG/Tiles/Tiles/tile_0025.png | Bin 121 -> 0 bytes .../PNG/Tiles/Tiles/tile_0026.png | Bin 136 -> 0 bytes .../PNG/Tiles/Tiles/tile_0027.png | Bin 132 -> 0 bytes .../PNG/Tiles/Tiles/tile_0028.png | Bin 110 -> 0 bytes .../PNG/Tiles/Tiles/tile_0029.png | Bin 99 -> 0 bytes .../PNG/Tiles/Tiles/tile_0030.png | Bin 110 -> 0 bytes .../PNG/Tiles/Tiles/tile_0031.png | Bin 116 -> 0 bytes .../PNG/Tiles/Tiles/tile_0032.png | Bin 115 -> 0 bytes .../PNG/Tiles/Tiles/tile_0033.png | Bin 110 -> 0 bytes .../PNG/Tiles/Tiles/tile_0034.png | Bin 99 -> 0 bytes .../PNG/Tiles/Tiles/tile_0035.png | Bin 110 -> 0 bytes .../PNG/Tiles/Tiles/tile_0036.png | Bin 207 -> 0 bytes .../PNG/Tiles/Tiles/tile_0037.png | Bin 178 -> 0 bytes .../PNG/Tiles/Tiles/tile_0038.png | Bin 209 -> 0 bytes .../PNG/Tiles/Tiles/tile_0039.png | Bin 191 -> 0 bytes .../PNG/Tiles/Tiles/tile_0040.png | Bin 127 -> 0 bytes .../PNG/Tiles/Tiles/tile_0041.png | Bin 207 -> 0 bytes .../PNG/Tiles/Tiles/tile_0042.png | Bin 143 -> 0 bytes .../PNG/Tiles/Tiles/tile_0043.png | Bin 202 -> 0 bytes .../PNG/Tiles/Tiles/tile_0044.png | Bin 186 -> 0 bytes .../PNG/Tiles/Tiles/tile_0045.png | Bin 127 -> 0 bytes .../PNG/Tiles/Tiles/tile_0046.png | Bin 180 -> 0 bytes .../PNG/Tiles/Tiles/tile_0047.png | Bin 145 -> 0 bytes .../PNG/Tiles/Tiles/tile_0048.png | Bin 195 -> 0 bytes .../PNG/Tiles/Tiles/tile_0049.png | Bin 194 -> 0 bytes .../PNG/Tiles/Tiles/tile_0050.png | Bin 187 -> 0 bytes .../PNG/Tiles/Tiles/tile_0051.png | Bin 151 -> 0 bytes .../PNG/Tiles/Tiles/tile_0052.png | Bin 142 -> 0 bytes .../PNG/Tiles/Tiles/tile_0053.png | Bin 150 -> 0 bytes .../PNG/Tiles/Tiles/tile_0054.png | Bin 150 -> 0 bytes .../PNG/Tiles/Tiles/tile_0055.png | Bin 129 -> 0 bytes .../PNG/Tiles/Tiles/tile_0056.png | Bin 157 -> 0 bytes .../PNG/Tiles/Tiles/tile_0057.png | Bin 176 -> 0 bytes .../PNG/Tiles/Tiles/tile_0058.png | Bin 195 -> 0 bytes .../PNG/Tiles/Tiles/tile_0059.png | Bin 173 -> 0 bytes .../PNG/Tiles/Tiles/tile_0060.png | Bin 168 -> 0 bytes .../PNG/Tiles/Tiles/tile_0061.png | Bin 168 -> 0 bytes .../PNG/Tiles/Tiles/tile_0062.png | Bin 182 -> 0 bytes .../PNG/Tiles/Tiles/tile_0063.png | Bin 190 -> 0 bytes .../PNG/Tiles/Tiles/tile_0064.png | Bin 99 -> 0 bytes .../PNG/Tiles/Tiles/tile_0065.png | Bin 131 -> 0 bytes .../PNG/Tiles/Tiles/tile_0066.png | Bin 191 -> 0 bytes .../PNG/Tiles/Tiles/tile_0067.png | Bin 139 -> 0 bytes .../PNG/Tiles/Tiles/tile_0068.png | Bin 187 -> 0 bytes .../PNG/Tiles/Tiles/tile_0069.png | Bin 129 -> 0 bytes .../PNG/Tiles/Tiles/tile_0070.png | Bin 99 -> 0 bytes .../PNG/Tiles/Tiles/tile_0071.png | Bin 128 -> 0 bytes .../PNG/Tiles/Tiles/tile_0072.png | Bin 156 -> 0 bytes .../PNG/Tiles/Tiles/tile_0073.png | Bin 126 -> 0 bytes .../PNG/Tiles/Tiles/tile_0074.png | Bin 158 -> 0 bytes .../PNG/Tiles/Tiles/tile_0075.png | Bin 207 -> 0 bytes .../PNG/Tiles/Tiles/tile_0076.png | Bin 204 -> 0 bytes .../PNG/Tiles/Tiles/tile_0077.png | Bin 178 -> 0 bytes .../PNG/Tiles/Tiles/tile_0078.png | Bin 163 -> 0 bytes .../PNG/Tiles/Tiles/tile_0079.png | Bin 158 -> 0 bytes .../PNG/Tiles/Tiles/tile_0080.png | Bin 217 -> 0 bytes .../PNG/Tiles/Tiles/tile_0081.png | Bin 177 -> 0 bytes .../PNG/Tiles/Tiles/tile_0082.png | Bin 166 -> 0 bytes .../PNG/Tiles/Tiles/tile_0083.png | Bin 178 -> 0 bytes .../PNG/Tiles/Tiles/tile_0084.png | Bin 204 -> 0 bytes .../PNG/Tiles/Tiles/tile_0085.png | Bin 176 -> 0 bytes .../PNG/Tiles/Tiles/tile_0086.png | Bin 141 -> 0 bytes .../PNG/Tiles/Tiles/tile_0087.png | Bin 137 -> 0 bytes .../PNG/Tiles/Tiles/tile_0088.png | Bin 114 -> 0 bytes .../PNG/Tiles/Tiles/tile_0089.png | Bin 136 -> 0 bytes .../PNG/Tiles/Tiles/tile_0090.png | Bin 151 -> 0 bytes .../PNG/Tiles/Tiles/tile_0091.png | Bin 145 -> 0 bytes .../PNG/Tiles/Tiles/tile_0092.png | Bin 130 -> 0 bytes .../PNG/Tiles/Tiles/tile_0093.png | Bin 129 -> 0 bytes .../PNG/Tiles/Tiles/tile_0094.png | Bin 136 -> 0 bytes .../PNG/Tiles/Tiles/tile_0095.png | Bin 152 -> 0 bytes .../PNG/Tiles/Tiles/tile_0096.png | Bin 145 -> 0 bytes .../PNG/Tiles/Tiles/tile_0097.png | Bin 130 -> 0 bytes .../PNG/Tiles/Tiles/tile_0098.png | Bin 129 -> 0 bytes .../PNG/Tiles/Tiles/tile_0099.png | Bin 136 -> 0 bytes .../PNG/Tiles/Tiles/tile_0100.png | Bin 172 -> 0 bytes .../PNG/Tiles/Tiles/tile_0101.png | Bin 130 -> 0 bytes .../PNG/Tiles/Tiles/tile_0102.png | Bin 166 -> 0 bytes .../PNG/Tiles/Tiles/tile_0103.png | Bin 134 -> 0 bytes .../PNG/Tiles/Tiles/tile_0104.png | Bin 132 -> 0 bytes .../PNG/Tiles/Tiles/tile_0105.png | Bin 181 -> 0 bytes .../PNG/Tiles/Tiles/tile_0106.png | Bin 197 -> 0 bytes .../PNG/Tiles/Tiles/tile_0107.png | Bin 180 -> 0 bytes .../PNG/Tiles/Tiles/tile_0108.png | Bin 141 -> 0 bytes .../PNG/Tiles/Tiles/tile_0109.png | Bin 99 -> 0 bytes .../PNG/Tiles/Tiles/tile_0110.png | Bin 140 -> 0 bytes .../PNG/Tiles/Tiles/tile_0111.png | Bin 137 -> 0 bytes .../PNG/Tiles/Tiles/tile_0112.png | Bin 139 -> 0 bytes .../PNG/Tiles/Tiles/tile_0113.png | Bin 141 -> 0 bytes .../PNG/Tiles/Tiles/tile_0114.png | Bin 99 -> 0 bytes .../PNG/Tiles/Tiles/tile_0115.png | Bin 140 -> 0 bytes .../PNG/Tiles/Tiles/tile_0116.png | Bin 137 -> 0 bytes .../PNG/Tiles/Tiles/tile_0117.png | Bin 139 -> 0 bytes .../PNG/Tiles/Tiles/tile_0118.png | Bin 118 -> 0 bytes .../PNG/Tiles/Tiles/tile_0119.png | Bin 99 -> 0 bytes .../PNG/Tiles/Tiles/tile_0120.png | Bin 118 -> 0 bytes .../PNG/Tiles/Tiles/tile_0121.png | Bin 140 -> 0 bytes .../PNG/Tiles/Tiles/tile_0122.png | Bin 135 -> 0 bytes .../PNG/Tiles/Tiles/tile_0123.png | Bin 147 -> 0 bytes .../PNG/Tiles/Tiles/tile_0124.png | Bin 173 -> 0 bytes .../PNG/Tiles/Tiles/tile_0125.png | Bin 147 -> 0 bytes .../PNG/Tiles/Tiles/tile_0126.png | Bin 144 -> 0 bytes .../PNG/Tiles/Tiles/tile_0127.png | Bin 136 -> 0 bytes .../PNG/Tiles/Tiles/tile_0128.png | Bin 137 -> 0 bytes .../PNG/Tiles/Tiles/tile_0129.png | Bin 159 -> 0 bytes .../PNG/Tiles/Tiles/tile_0130.png | Bin 164 -> 0 bytes .../PNG/Tiles/Tiles/tile_0131.png | Bin 144 -> 0 bytes .../PNG/Tiles/Tiles/tile_0132.png | Bin 136 -> 0 bytes .../PNG/Tiles/Tiles/tile_0133.png | Bin 136 -> 0 bytes .../PNG/Tiles/Tiles/tile_0134.png | Bin 159 -> 0 bytes .../PNG/Tiles/Tiles/tile_0135.png | Bin 164 -> 0 bytes .../PNG/Tiles/Tiles/tile_0136.png | Bin 175 -> 0 bytes .../PNG/Tiles/Tiles/tile_0137.png | Bin 129 -> 0 bytes .../PNG/Tiles/Tiles/tile_0138.png | Bin 167 -> 0 bytes .../PNG/Tiles/Tiles/tile_0139.png | Bin 117 -> 0 bytes .../PNG/Tiles/Tiles/tile_0140.png | Bin 99 -> 0 bytes .../PNG/Tiles/Tiles/tile_0141.png | Bin 176 -> 0 bytes .../PNG/Tiles/Tiles/tile_0142.png | Bin 154 -> 0 bytes .../PNG/Tiles/Tiles/tile_0143.png | Bin 179 -> 0 bytes .../PNG/Tiles/Tiles/tile_0144.png | Bin 174 -> 0 bytes .../PNG/Tiles/Tiles/tile_0145.png | Bin 158 -> 0 bytes .../PNG/Tiles/Tiles/tile_0146.png | Bin 160 -> 0 bytes .../PNG/Tiles/Tiles/tile_0147.png | Bin 185 -> 0 bytes .../PNG/Tiles/Tiles/tile_0148.png | Bin 168 -> 0 bytes .../PNG/Tiles/Tiles/tile_0149.png | Bin 170 -> 0 bytes .../PNG/Tiles/Tiles/tile_0150.png | Bin 160 -> 0 bytes .../PNG/Tiles/Tiles/tile_0151.png | Bin 157 -> 0 bytes .../PNG/Tiles/Tiles/tile_0152.png | Bin 195 -> 0 bytes .../PNG/Tiles/Tiles/tile_0153.png | Bin 194 -> 0 bytes .../PNG/Tiles/Tiles/tile_0154.png | Bin 147 -> 0 bytes .../PNG/Tiles/Tiles/tile_0155.png | Bin 123 -> 0 bytes .../PNG/Tiles/Tiles/tile_0156.png | Bin 139 -> 0 bytes .../PNG/Tiles/Tiles/tile_0157.png | Bin 123 -> 0 bytes .../PNG/Tiles/Tiles/tile_0158.png | Bin 120 -> 0 bytes .../PNG/Tiles/Tiles/tile_0159.png | Bin 183 -> 0 bytes .../PNG/Tiles/Tiles/tile_0160.png | Bin 175 -> 0 bytes .../PNG/Tiles/Tiles/tile_0161.png | Bin 178 -> 0 bytes .../PNG/Tiles/Tiles/tile_0162.png | Bin 177 -> 0 bytes .../PNG/Tiles/Tiles/tile_0163.png | Bin 171 -> 0 bytes .../PNG/Tiles/Tiles/tile_0164.png | Bin 171 -> 0 bytes .../PNG/Tiles/Tiles/tile_0165.png | Bin 184 -> 0 bytes .../PNG/Tiles/Tiles/tile_0166.png | Bin 180 -> 0 bytes .../PNG/Tiles/Tiles/tile_0167.png | Bin 180 -> 0 bytes .../PNG/Tiles/Tiles/tile_0168.png | Bin 164 -> 0 bytes .../PNG/Tiles/Tiles/tile_0169.png | Bin 166 -> 0 bytes .../PNG/Tiles/Tiles/tile_0170.png | Bin 140 -> 0 bytes .../PNG/Tiles/Tiles/tile_0171.png | Bin 140 -> 0 bytes .../PNG/Tiles/Tiles/tile_0172.png | Bin 117 -> 0 bytes .../PNG/Tiles/Tiles/tile_0173.png | Bin 99 -> 0 bytes .../PNG/Tiles/Tiles/tile_0174.png | Bin 126 -> 0 bytes .../PNG/Tiles/Tiles/tile_0175.png | Bin 126 -> 0 bytes .../PNG/Tiles/Tiles/tile_0176.png | Bin 128 -> 0 bytes .../PNG/Tiles/Tiles/tile_0177.png | Bin 179 -> 0 bytes .../PNG/Tiles/Tiles/tile_0178.png | Bin 193 -> 0 bytes .../PNG/Tiles/Tiles/tile_0179.png | Bin 182 -> 0 bytes .../PNG/Tiles/Tiles/tile_0180.png | Bin 131 -> 0 bytes .../PNG/Tiles/Tiles/tile_0181.png | Bin 161 -> 0 bytes .../PNG/Tiles/Tiles/tile_0182.png | Bin 162 -> 0 bytes .../PNG/Tiles/Tiles/tile_0183.png | Bin 131 -> 0 bytes .../PNG/Tiles/Tiles/tile_0184.png | Bin 171 -> 0 bytes .../PNG/Tiles/Tiles/tile_0185.png | Bin 173 -> 0 bytes .../PNG/Tiles/Tiles/tile_0186.png | Bin 151 -> 0 bytes .../PNG/Tiles/Tiles/tile_0187.png | Bin 151 -> 0 bytes .../PNG/Tiles/Tiles/tile_0188.png | Bin 209 -> 0 bytes .../PNG/Tiles/Tiles/tile_0189.png | Bin 207 -> 0 bytes .../PNG/Tiles/Tiles/tile_0190.png | Bin 135 -> 0 bytes .../PNG/Tiles/Tiles/tile_0191.png | Bin 109 -> 0 bytes .../PNG/Tiles/Tiles/tile_0192.png | Bin 140 -> 0 bytes .../PNG/Tiles/Tiles/tile_0193.png | Bin 159 -> 0 bytes .../PNG/Tiles/Tiles/tile_0194.png | Bin 135 -> 0 bytes .../PNG/Tiles/Tiles/tile_0195.png | Bin 141 -> 0 bytes .../PNG/Tiles/Tiles/tile_0196.png | Bin 176 -> 0 bytes .../PNG/Tiles/Tiles/tile_0197.png | Bin 141 -> 0 bytes .../PNG/Tiles/Tiles/tile_0198.png | Bin 166 -> 0 bytes .../PNG/Tiles/Tiles/tile_0199.png | Bin 125 -> 0 bytes .../PNG/Tiles/Tiles/tile_0200.png | Bin 118 -> 0 bytes .../PNG/Tiles/Tiles/tile_0201.png | Bin 179 -> 0 bytes .../PNG/Tiles/Tiles/tile_0202.png | Bin 189 -> 0 bytes .../PNG/Tiles/Tiles/tile_0203.png | Bin 198 -> 0 bytes .../PNG/Tiles/Tiles/tile_0204.png | Bin 127 -> 0 bytes .../PNG/Tiles/Tiles/tile_0205.png | Bin 127 -> 0 bytes .../PNG/Tiles/Tiles/tile_0206.png | Bin 179 -> 0 bytes .../PNG/Tiles/Tiles/tile_0207.png | Bin 179 -> 0 bytes .../PNG/Tiles/Tiles/tile_0208.png | Bin 178 -> 0 bytes .../PNG/Tiles/Tiles/tile_0209.png | Bin 173 -> 0 bytes .../PNG/Tiles/Tiles/tile_0210.png | Bin 128 -> 0 bytes .../PNG/Tiles/Tiles/tile_0211.png | Bin 164 -> 0 bytes .../PNG/Tiles/Tiles/tile_0212.png | Bin 156 -> 0 bytes .../PNG/Tiles/Tiles/tile_0213.png | Bin 171 -> 0 bytes .../PNG/Tiles/Tiles/tile_0214.png | Bin 151 -> 0 bytes .../PNG/Tiles/Tiles/tile_0215.png | Bin 178 -> 0 bytes .../PNG/Tiles/Tiles/tile_0216.png | Bin 182 -> 0 bytes .../PNG/Tiles/Tiles/tile_0217.png | Bin 193 -> 0 bytes .../PNG/Tiles/Tiles/tile_0218.png | Bin 184 -> 0 bytes .../PNG/Tiles/Tiles/tile_0219.png | Bin 196 -> 0 bytes .../PNG/Tiles/Tiles/tile_0220.png | Bin 182 -> 0 bytes .../PNG/Tiles/Tiles/tile_0221.png | Bin 189 -> 0 bytes .../PNG/Tiles/Tiles/tile_0222.png | Bin 198 -> 0 bytes .../PNG/Tiles/Tiles/tile_0223.png | Bin 165 -> 0 bytes .../PNG/Tiles/Tiles/tile_0224.png | Bin 174 -> 0 bytes .../PNG/Tiles/Tiles/tile_0225.png | Bin 151 -> 0 bytes .../PNG/Tiles/Tiles/tile_0226.png | Bin 145 -> 0 bytes .../PNG/Tiles/Tiles/tile_0227.png | Bin 159 -> 0 bytes .../PNG/Tiles/Tiles/tile_0228.png | Bin 160 -> 0 bytes .../PNG/Tiles/Tiles/tile_0229.png | Bin 169 -> 0 bytes .../PNG/Tiles/Tiles/tile_0230.png | Bin 180 -> 0 bytes .../PNG/Tiles/Tiles/tile_0231.png | Bin 179 -> 0 bytes .../PNG/Tiles/Tiles/tile_0232.png | Bin 177 -> 0 bytes .../PNG/Tiles/Tiles/tile_0233.png | Bin 170 -> 0 bytes src/assets/map.tmx | 106 ++++++++-- src/assets/tilemap.tsx | 2 +- src/engine/frame.zig | 30 ++- src/engine/graphics.zig | 200 +++++++++++++++--- src/engine/math.zig | 4 + src/engine/root.zig | 39 ++-- src/engine/screen_scaler.zig | 83 +++++--- src/game.zig | 138 +++++++++--- 250 files changed, 586 insertions(+), 165 deletions(-) delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tilemap/tilemap.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tilemap/tilemap_packed.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0000.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0001.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0002.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0003.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0004.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0005.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0006.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0007.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0008.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0009.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0010.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0011.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0012.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0013.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0014.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0015.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0016.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0017.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0018.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0019.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0020.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0021.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0022.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0023.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0024.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0025.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0026.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0027.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0028.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0029.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0030.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0031.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0032.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0033.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0034.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0035.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0036.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0037.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0038.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0039.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0040.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0041.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0042.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0043.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0044.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0045.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0046.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0047.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0048.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0049.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0050.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0051.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0052.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0053.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0054.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0055.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0056.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0057.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0058.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0059.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0060.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0061.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0062.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0063.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0064.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0065.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0066.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0067.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0068.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0069.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0070.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0071.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0072.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0073.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0074.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0075.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0076.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0077.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0078.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0079.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0080.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0081.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0082.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0083.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0084.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0085.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0086.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0087.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0088.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0089.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0090.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0091.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0092.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0093.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0094.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0095.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0096.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0097.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0098.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0099.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0100.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0101.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0102.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0103.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0104.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0105.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0106.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0107.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0108.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0109.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0110.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0111.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0112.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0113.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0114.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0115.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0116.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0117.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0118.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0119.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0120.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0121.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0122.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0123.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0124.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0125.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0126.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0127.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0128.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0129.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0130.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0131.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0132.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0133.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0134.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0135.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0136.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0137.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0138.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0139.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0140.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0141.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0142.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0143.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0144.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0145.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0146.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0147.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0148.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0149.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0150.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0151.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0152.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0153.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0154.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0155.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0156.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0157.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0158.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0159.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0160.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0161.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0162.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0163.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0164.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0165.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0166.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0167.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0168.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0169.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0170.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0171.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0172.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0173.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0174.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0175.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0176.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0177.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0178.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0179.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0180.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0181.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0182.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0183.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0184.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0185.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0186.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0187.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0188.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0189.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0190.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0191.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0192.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0193.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0194.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0195.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0196.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0197.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0198.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0199.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0200.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0201.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0202.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0203.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0204.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0205.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0206.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0207.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0208.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0209.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0210.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0211.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0212.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0213.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0214.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0215.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0216.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0217.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0218.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0219.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0220.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0221.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0222.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0223.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0224.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0225.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0226.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0227.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0228.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0229.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0230.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0231.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0232.png delete mode 100644 src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0233.png diff --git a/README.md b/README.md index 51fb2d6..7c50d55 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,12 @@ -# Game template +# Gaem + +* Run & gun +* Nuclear throne -esque +* Single gun type +* Single map +* Single enemy type +* Collect letters to win, up to 7 letters we have 8 character sprites +* The word is WINNER ## Run @@ -16,15 +24,3 @@ Cross-compile for Windows from Linux: ```sh zig build -Dtarget=x86_64-windows ``` - -## TODO - -* Use [Skribidi](https://github.com/memononen/Skribidi) instead of fontstash for text rendering -* Support for audio formats (Might not need all of them, haven't decided): - * QOA, maybe [qoa.h](https://github.com/phoboslab/qoa/blob/master/qoa.h)? - * Flac, maybe [dr_flac.h](https://github.com/mackron/dr_libs/blob/master/dr_flac.h)? - * Wav, maybe [dr_wav.h](https://github.com/mackron/dr_libs/blob/master/dr_wav.h)? - * Mp3, maybe [dr_mp3.h](https://github.com/mackron/dr_libs/blob/master/dr_mp3.h)? -* Gamepad support. - * WASM Support. Currently a build config isn't provided for this target. - * Update build config for other platforms to reduce binary size. All of the video and audio drivers aren't needed, only gamepads diff --git a/build.zig b/build.zig index db5ef6e..d013157 100644 --- a/build.zig +++ b/build.zig @@ -2,6 +2,8 @@ const std = @import("std"); const sokol = @import("sokol"); const builtin = @import("builtin"); +const project_name = "game-2026-01-18"; + pub fn build(b: *std.Build) !void { const target = b.standardTargetOptions(.{}); const optimize = b.standardOptimizeOption(.{}); @@ -105,12 +107,12 @@ pub fn build(b: *std.Build) !void { // from here on different handling for native vs wasm builds if (target.result.cpu.arch.isWasm()) { try buildWasm(b, .{ - .name = "sokol_template", + .name = project_name, .mod_main = mod_main, .dep_sokol = dep_sokol, }); } else { - try buildNative(b, "sokol_template", mod_main, has_console); + try buildNative(b, project_name, mod_main, has_console); } } diff --git a/libs/tiled/src/layer.zig b/libs/tiled/src/layer.zig index 18901d8..970550e 100644 --- a/libs/tiled/src/layer.zig +++ b/libs/tiled/src/layer.zig @@ -94,7 +94,7 @@ pub const TileVariant = struct { try temp_tiles.appendSlice(scratch.allocator(), tiles.items); } else if (node.isTag("chunk")) { - const chunk = try initChunkDataFromXml(scratch.allocator(), scratch, lexer, encoding); + const chunk = try initChunkDataFromXml(arena, scratch, lexer, encoding); try temp_chunks.append(scratch.allocator(), chunk); continue; @@ -105,9 +105,16 @@ pub const TileVariant = struct { try iter.finish("data"); - return .{ - .fixed = try arena.dupe(u32, temp_tiles.items) - }; + if (temp_chunks.items.len > 0) { + return .{ + .chunks = try arena.dupe(Chunk, temp_chunks.items) + }; + } else { + return .{ + .fixed = try arena.dupe(u32, temp_tiles.items) + }; + } + } fn parseEncoding( @@ -136,13 +143,76 @@ pub const TileVariant = struct { return result; } - pub fn getBounds(self: TileVariant) void { - _ = self; // autofix + const Bounds = struct { + left: i32, + right: i32, + top: i32, + bottom: i32, + + pub fn width(self: Bounds) u32 { + return @intCast(self.right - self.left); + } + + pub fn height(self: Bounds) u32 { + return @intCast(self.bottom - self.top); + } + }; + + pub fn getBounds(self: TileVariant) Bounds { + if (self.data == .fixed) { + return Bounds{ + .left = 0, + .right = @intCast(self.width), + .top = 0, + .bottom = @intCast(self.height), + }; + } else if (self.data == .chunks) { + const chunks = self.data.chunks; + + var result = Bounds{ + .left = 0, + .right = 0, + .top = 0, + .bottom = 0 + }; + if (chunks.len > 0) { + result.left = chunks[0].x; + result.right = chunks[0].x + @as(i32, @intCast(chunks[0].width)); + result.top = chunks[0].y; + result.bottom = chunks[0].y + @as(i32, @intCast(chunks[0].height)); + for (chunks[1..]) |chunk| { + result.left = @min(result.left, chunk.x); + result.right = @max(result.right, chunk.x + @as(i32, @intCast(chunk.width))); + result.top = @min(result.top, chunk.y); + result.bottom = @max(result.bottom, chunk.y + @as(i32, @intCast(chunk.height))); + } + } + + return result; + } else { + unreachable; + } } - pub fn get(self: TileVariant, x: usize, y: usize) ?u32 { - if ((0 <= x and x < self.width) and (0 <= y and y < self.height)) { - return self.data[y * self.width + x]; + pub fn get(self: TileVariant, x: i32, y: i32) ?u32 { + if (self.data == .fixed) { + if ((0 <= x and x < self.width) and (0 <= y and y < self.height)) { + const x_u32: u32 = @intCast(x); + const y_u32: u32 = @intCast(y); + return self.data.fixed[y_u32 * self.width + x_u32]; + } + } else if (self.data == .chunks) { + for (self.data.chunks) |chunk| { + const ox = x - chunk.x; + const oy = y - chunk.y; + if ((0 <= ox and ox < chunk.width) and (0 <= oy and oy < chunk.height)) { + const ox_u32: u32 = @intCast(ox); + const oy_u32: u32 = @intCast(oy); + return chunk.data[oy_u32 * chunk.width + ox_u32]; + } + } + } else { + unreachable; } return null; } diff --git a/libs/tiled/src/tilemap.zig b/libs/tiled/src/tilemap.zig index c6cde2e..14d6bc4 100644 --- a/libs/tiled/src/tilemap.zig +++ b/libs/tiled/src/tilemap.zig @@ -215,7 +215,18 @@ fn getTilesetByGid(self: *const Tilemap, gid: u32) ?TilesetReference { return result; } -pub fn getTile(self: *const Tilemap, layer: *const Layer, tilesets: Tileset.List, x: usize, y: usize) ?Tile { +pub fn getTile(self: *const Tilemap, tilesets: Tileset.List, gid: u32) ?Tile { + const tileset_ref = self.getTilesetByGid(gid & GlobalTileId.Flag.clear) orelse return null; + const tileset = tilesets.get(tileset_ref.source) orelse return null; + const id = gid - tileset_ref.first_gid; + + return Tile{ + .tileset = tileset, + .id = id + }; +} + +pub fn getTileByPosition(self: *const Tilemap, layer: *const Layer, tilesets: Tileset.List, x: usize, y: usize) ?Tile { assert(layer.variant == .tile); const tile_variant = layer.variant.tile; diff --git a/src/assets.zig b/src/assets.zig index 4e93fec..9986b19 100644 --- a/src/assets.zig +++ b/src/assets.zig @@ -4,6 +4,7 @@ const tiled = @import("tiled"); const Math = @import("./engine/math.zig"); const Engine = @import("./engine/root.zig"); +const STBImage = @import("stb_image"); const Gfx = Engine.Graphics; const Audio = Engine.Audio; @@ -21,6 +22,8 @@ font_id: FontName.EnumArray, wood01: Audio.Data.Id, map: tiled.Tilemap, tilesets: tiled.Tileset.List, +tileset_texture: Gfx.TextureId, +tile_size: Engine.Vec2, pub fn init(gpa: std.mem.Allocator) !Assets { const font_id_array: FontName.EnumArray = .init(.{ @@ -57,11 +60,24 @@ pub fn init(gpa: std.mem.Allocator) !Assets { var tilesets: tiled.Tileset.List = .empty; try tilesets.add(gpa, "tileset.tsx", tileset); + + const tileset_image = try STBImage.load(@embedFile("assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/tilemap_packed.png")); + defer tileset_image.deinit(); + const tileset_texture = try Gfx.addTexture(&.{ + .{ + .width = tileset_image.width, + .height = tileset_image.height, + .rgba = tileset_image.rgba8_pixels + } + }); + return Assets{ .font_id = font_id_array, .wood01 = wood01, .map = map, - .tilesets = tilesets + .tilesets = tilesets, + .tileset_texture = tileset_texture, + .tile_size = .init(16, 16) }; } diff --git a/src/assets/game-2026-01-18.tiled-session b/src/assets/game-2026-01-18.tiled-session index fed28a2..6b9e78a 100644 --- a/src/assets/game-2026-01-18.tiled-session +++ b/src/assets/game-2026-01-18.tiled-session @@ -26,7 +26,7 @@ "scaleInEditor": 1 } }, - "last.imagePath": "/home/rokas/code/games/game-2026-01-18/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tilemap", + "last.imagePath": "/home/rokas/code/games/game-2026-01-18/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles", "map.fixedSize": false, "map.lastUsedFormat": "tmx", "map.tileHeight": 16, diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tilemap/tilemap.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tilemap/tilemap.png deleted file mode 100644 index d14ffbc190f699a049d786710668e1d31c50bb80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7024 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

rnT<^;JoHyY(8ik!4%4YM*jFe-?&W!uq4ZI4mx z;G@nRX6T~!(P__oDK;-#rmm_KUAw4mP|b;E0yEFXEHr`c=lh=>JUz4C&Vgb|Tfxk0 zEc+YtFLP6`4diQ20n%r*%J^|N77qfYvx|(tcL-D011cVMB(dvD(Lg4%)~j&tzh<40 z8bMH`?KOEqKC`QgQmKuZcB`trd@}Z#vTh*2-N62kUpo?&ju1t`zkbeaTeX}5*9ISB(@KgJA6=F)FSkpy*mX0`)b%*w8Z3T2;>M_T=mEjmoTot!P`L zhp*#yDN#bf_y2mB-*OO&=u@< z8_Hh8(kDiTuvPoAtz6&z&WGX57SY%BZMQqWoZ;{FsXFrgPsY1O*LLz zB6_Rj>f4OZshQT3)s0~Hv)lXL5@n&GLOWyFR+8{}sc=PMY#`(kjcu!7saASdo1I>hq$ z@FDH~?AyBM_8fF8tY<~r-b}<(l)kDV!d3Mt1I|{Mn#!SeqXR4K{Q0zi;BueIn801}oNct>YAamlzVxHK0Y^$JFqsPd!Qh_aIG{)%x0L25C&!PZ^k0;Dfnc=2(6lfB$y@aqVO0$o-Lg>ds7~XjlZ^4~ajuEcvY2|Ae!+ z+msVWxE2twIRvQO6}W3_HWwa#O}sHQP1fo@`SPNHS^&4V4=FdX1xH!K445YDQ|o6W v2K>?kWF?cy_9adgZ#9I|a>Pn~54FEJMOlBm{Yv8KV*)VNx6rH7agP2UozSwd diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0000.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0000.png deleted file mode 100644 index c70060d5c74f2ac7ccb1cb7acd494ba4b8fb07d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFY60fys?X0Vu3-(10K;CB6Ad**3HOZV|e*OS}U}w*&3*w!PC{xWt~$( F698uuF9ZMp diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0001.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0001.png deleted file mode 100644 index 8b23f3b6fc91f98190ce67732c20f5f7cd392e89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFD789Cl@0=EmY`$guOCY*(kZ R=}Dkr44$rjF6*2UngCG#FO~oR diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0002.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0002.png deleted file mode 100644 index 9ca917d0410c961c45f3a6635ec0f38ecf3622d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFSXYA^>bP0l+XkK8rdqs diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0003.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0003.png deleted file mode 100644 index 2452e84927b8f82ef7849a33be52f1c11844a1f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF z9l7g|ta#^c!lvI6-$0X`wF z9l7g|ta#^c&%^10w3?osX5v( ZGQ@D0YlaHUbOEYm@O1TaS?83{1OR8@CKvz! diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0005.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0005.png deleted file mode 100644 index 08118c7c1f88398023c0efa1c448301ed376845e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF=aKq^?Oq%^SP8B@$9CR%$FXlxbxt)Kojcz;Ne})GNRG>O(;744$rjF6*2U FngGoGFna(1 diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0006.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0006.png deleted file mode 100644 index 244bb4adf3d07a753e34fefbdaca0e987e5da3e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF zKzi_!@pqvGk}7{YNq`N6BKgoFrI79Q>vL&<$ z3K(lJHg-+wGHm9Suy~lT;((-9KwAfw-_aHc2H(pv3)?sHoCa!T@O1TaS?83{1OUOM BEl~gf diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0008.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0008.png deleted file mode 100644 index 1886dc1efdfbc4fd9f0d281fd80de49e4ff49ff6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF z$vc+K{qe-z$h-Q+k;A1eYk}fgo-U3d9M_Y7{Qv(yoK2yS+v85V@bmnGM;^G?PWZv6 kwvV~<{QdvQT8u&rNtdlZDEf5S0Ch2Vy85}Sb4q9e0G=c*{{R30 diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0009.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0009.png deleted file mode 100644 index cac425d5677d46c541dd04e8f590981c815bf4ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 129 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF z$vc+K{qe-z$h-Q+k;A1eYk}elo-U3d9M_XO{{R1Pf4GR_qpZu6>&%^10w3?osX5v( ZGQ@D0YlaHUbOEYm@O1TaS?83{1OSJZCX)aF diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0010.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0010.png deleted file mode 100644 index 7c93da480bcae7e9c86d14a502b4f8fca754baab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF!lvI6-$0X`wF zK>F~pm+nU1GiM$7H_t~M$Y(4G@(X5gcy=QV$WifhaSY+Oo}BO?>cD{wTpSW%YwNal oDT;7N{QJN5|M?H{93JWno#tluQan{>0@X8ky85}Sb4q9e0A$1}`v3p{ diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0012.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0012.png deleted file mode 100644 index 77b8ad30f3671133313e6d993870cb365e771d5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 163 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF_$DvZ)#b7^W2z78V8-7BU&f#7r@eXfkNyKFY%ope}QIwrs#!lvI6;>0X`wF zhmXBxhTQq(Y#eu&0Y-2*>s0h^<*ynb;IAddV^|1TWL@VV!Ks1e9j*boFyt I=akR{0DdDJ4*&oF diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0014.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0014.png deleted file mode 100644 index 8e86c60f01eb1de20802dba4235b3d71371b043c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6;>0X`wF zhmXBxhTQq(Y#epr?yt2*>s02T@zIM4bh$axkn?R@r&`%jPPeB!j1`pUXO@ GgeCxWJ|1TP diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0015.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0015.png deleted file mode 100644 index 6848c9a20432cc9fb281bebb85d79ccc4285cbbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF zK>F~pm+nU1GiM$7H_t~M$Y(4G@(X5gcy=QV$kFn2aSY+Oo}3VMa7&Y8_SIFPJge*0 v{yMtB%*13$V&$Lz6>U%d|NpN(mw`d@v(dwI;il_=x)?lN{an^LB{Ts51^+S+ diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0016.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0016.png deleted file mode 100644 index 4aa2234708b8de1f448a6c7035e5fc348d1dd8e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF zK>F~pm+nU1GiM$7H_t~M$Y(4G@(X5gcy=QV$WifhaSY+Oo_rxIA?n};E)I!n>!ZGQ oD~fPP?ECj${`?1d4i9yPonq!C9G4>x1JyHly85}Sb4q9e09EoTm;e9( diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0017.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0017.png deleted file mode 100644 index 6d8c8f8616bf8b7d707130f493bf044b554af96a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF zK>F~pm+nU1GiM$7H_t~M$Y(4G@(X5gcy=QV$kFt4aSY+Oo_rzeLRLb=)~u^sZC_Vk sTc5!lvI6-$0X`wF z9l7g|ta#^c!lvI6;>0X`wF z9l7g|ta!J$?cAiW3&(+i>Ygr+Asp9}BUo8@0+Li`%wT=g)Tzgo5@|7!Rb^UZXR1Te dMWd8Rh7Lu|@*i@O1TaS?83{1OT)FClUYv diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0020.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0020.png deleted file mode 100644 index fa3a419024f276c75ced081f7f65425cbed08f47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF z9l7g|ta#^cAe(IEtIB(DHc$(Lr>mdKI;Vst0KYFPX#fBK diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0021.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0021.png deleted file mode 100644 index 4d46da4473d9f4ee3ede8ea3ce0415c049cf42f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF z9l7h>jl7Snc(=Ii+}z1V(m-)_PZ!4!j_b)k{{R0U%qH?ke8P?Y@*Z#41ot~0Nf-Di h-~5AJ{ojEj3`^fEQA06 diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0022.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0022.png deleted file mode 100644 index c71083d908aecf712f7e8d081750e78155459d46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF z9l7h>jl7Snc(=Ii+}z1V(m-)#PZ!4!j_b)C|Nj5CXKsq%SNiv#S@6BXk>B4P9@%s- ccnhd7I5^k}cb|`33RKSE>FVdQ&MBb@0MF?tHUIzs diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0023.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0023.png deleted file mode 100644 index 14a6a7b26d825dec8a9f8967c5eadfbf52b81bae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF z$vc+K{qe-z$h-Q+k;A1eYk}hOo-U3d9M_X0{{8=7&&Kn}x@X6KNsl|MopX;a<7;MM Y_<725<30PM4M3#~p00i_>zopr0G!+@-T(jq diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0024.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0024.png deleted file mode 100644 index a1b9f845f04e57f3b246abca08cf513faca75017..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6;>0X`wF z$vc+K{qdyw#*tGTm2E&l2~QWt5RU7~5v(jcDMF_Y9MMtOm?0Lz!?37NEAV2OfGAK6 NgQu&X%Q~loCID_|ALIZ4 diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0025.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0025.png deleted file mode 100644 index 047c45d5d2176339e1f26531e500fa4b41c07c49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF z$vc+K{qe-z$h-Q+k;A1eYk}eto-U3d9M_Y7{Qv)7m(8f-^+$t83igv&7z!3zZNAtR REdx};;OXk;vd$@?2>@&uC9nVh diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0026.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0026.png deleted file mode 100644 index 1ad5306395f3b6f77b20a039254829b990351a2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF z$vc+08+p(D@ud335!s7{LO^kKPZ!4!j_b)k{{R0U%qH?ke8P?Y@*Z#41ot~0Nf-Di h-~5AJ{ojEj3{x{EYtu1 diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0027.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0027.png deleted file mode 100644 index a22cf542f3816236f0e94b1b3430fcc6942c5457..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF z$vc+08+p(D@ud335!s7{LO^k4PZ!4!j_b)C|Nj5CXKsq%SNiv#S@6BXk>B4P9@%s- ccnhd7I5^k}cb|`33RKSE>FVdQ&MBb@0OY$Uh5!Hn diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0028.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0028.png deleted file mode 100644 index 56a8d9d5a7a9c8f08a7e1024661a1946f5d651df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|G(24#Lo9le zOUyt0JAdH7fdJ!Fxx-tvw@Z4k`l!5?Fip795Xj87l99nhoJ}lO@bNC79tKZWKbLh* G2~7a#U>_6! diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0029.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0029.png deleted file mode 100644 index 9355b4397386e3f1a5794f134d22950bb175c18e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|WIbIRLo9le u=UBczQP0N3Agnseomav%;Y!276b1%YerB<*oD?shLIzJ)KbLh*2~7YZMHm|Z diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0030.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0030.png deleted file mode 100644 index b3fc30531645702bad385514a4c315f94721442d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6;>0X`wF zhmXBxhTQq(YDmPZ!4!j_b)0TeCv7nZI%{crVg0^b5DN0Ln3Vy85}Sb4q9e E04jDHbpQYW diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0031.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0031.png deleted file mode 100644 index ae49f4051dc6a6a16487cb697d7332135f9c4c10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6;>0X`wF zhmXBxhTQq(Y#en5Ts0h^<+n+RR)V8C=#VO=e(duGiw&lDKLKPz8gh LtDnm{r-UW|;wl~) diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0032.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0032.png deleted file mode 100644 index 56556e175076d2fda634f38073304a6f294f008d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6;>0X`wF zhmXBxhTQq(Y#esHcl#2*>qgj;O6!qRdSXm;_g!P-ifR(zscmzi=;50fVQj KpUXO@geCyaUmjNg diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0033.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0033.png deleted file mode 100644 index 56a8d9d5a7a9c8f08a7e1024661a1946f5d651df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|G(24#Lo9le zOUyt0JAdH7fdJ!Fxx-tvw@Z4k`l!5?Fip795Xj87l99nhoJ}lO@bNC79tKZWKbLh* G2~7a#U>_6! diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0034.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0034.png deleted file mode 100644 index 9355b4397386e3f1a5794f134d22950bb175c18e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|WIbIRLo9le u=UBczQP0N3Agnseomav%;Y!276b1%YerB<*oD?shLIzJ)KbLh*2~7YZMHm|Z diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0035.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0035.png deleted file mode 100644 index b3fc30531645702bad385514a4c315f94721442d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6;>0X`wF zhmXBxhTQq(YDmPZ!4!j_b)0TeCv7nZI%{crVg0^b5DN0Ln3Vy85}Sb4q9e E04jDHbpQYW diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0036.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0036.png deleted file mode 100644 index 75d41aa60f3e15164bff286a9d9f7a433e9f1580..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFgTe~DWM4fq?<qMLyV5g&vfiF9jv*Y^lM5P|*iYS`54>!`%I#^I*J1}TFBDGUs! Xr4@Jc-8pUzG?u~B)z4*}Q$iB}^|(3f diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0038.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0038.png deleted file mode 100644 index f70af534c4d8b979b6280e710cce69d2233d85d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFt?Z&RWdxb2*~k+=9dyFWl7#*!evUqqt;fQLlJwnXZGx3TzO}El}MiRl+A*@ jyXH3jWPkND=`(}dL*egBxOa*HO=j?P^>bP0l+XkKKwm=< diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0040.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0040.png deleted file mode 100644 index 1de9c08f608ab57fd796f86b8397cd2451d44978..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6;>0X`wF z?nd5=+s++X@y>#&>jY3x(bL5-gyVX00xvIbf`d}pxj6?8Oq(Wl;J~)5t1OE+cbGBk X^OoW&UvTj%P%(q2tDnm{r-UW|p!Ovn diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0041.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0041.png deleted file mode 100644 index b720ac91ec45a5608664c80a5dfd2e82c8c33493..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF?!i(?4K_2hsiCN@Wn1cNrF93JMhWPvn;GzKmv m!{*NJZetGP9S)4GJPb>3NXOoM_$3FZjlt8^&t;ucLK6V<&?`Lv diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0043.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0043.png deleted file mode 100644 index b96d36614e69794f60cfe118567c837403f1f554..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFQz<|d&P=1p` zn8CdRk_tEK|Ib`ya-q6bfL|r&+jq9#Y6==B#V1=yoC#ehc;(ZDjyEM&otAuelw~nv ese1eVH}je4eA%Ct9eD{fl)=;0&t;ucLK6T7zd?xr diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0045.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0045.png deleted file mode 100644 index 584f1cd39a58e5dc94a7ed2c7a8c16aee96d378c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6;>0X`wF z?nd6#H;&Bx@kIQSiXl)?(bL5-gyVX00xvIbf`d}pxj6?8Oq(Wl;J~)5t1OE+cbGBk X^OoW&UvTj%P%(q2tDnm{r-UW|r$;3) diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0046.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0046.png deleted file mode 100644 index 8ad0b6f634f9e4bd586d57325dfaada2395c60a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFf-ZN(%xxcdG_?etMpd4dKkY6x^!?PP{K#r%Ui(?4K^<e5oG6OrNGUC>5+U5m$KHbjF~}(2VU-KwA;VfrKee63?D4WfTxB?&v7o mSz$OOkS~$rkSMbxBZJpuLrb~LoP|I`89ZJ6T-G@yGywo7G(HLd diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0049.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0049.png deleted file mode 100644 index 0344112b8e2077fe53e3902d21895f41c0d3622f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFEal|aXmTV0NbTY z4l2=75-JQkGf$>DG%5OedfxQ#I^4Rc@JyxQjGvh| dLv-sg28M&hvh!2_tppj);OXk;vd$@?2>{piJn#Sj diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0051.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0051.png deleted file mode 100644 index 57e6fb9070bbbe12341c0f07a53a93a1ad7d11e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF_sm&G8cSz~=}qkdN*Q~)IEHXsPYy6@V_;KdOJ-ve2s0{U{1n@uRG{h8 t)~z7XAkxej*2Xy{F`-HCky4YhIKu{0DOpb5@*bde22WQ%mvv4FO#oCMDK!89 diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0052.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0052.png deleted file mode 100644 index a142c6582b860a149a7df71b88910d1d4370cc81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF zhmXBX46B?u>quki>^ mul;xa!~ZOc2@FhsSQsux7}bd_3_T6h$l&Sf=d#Wzp$Py$R4c#$ diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0053.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0053.png deleted file mode 100644 index 25e1994ebeb358b82095d4b326ed98ee85df26fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF_sm&G8cSz~=}qkdN*Q^&IEHXsPc~>{P-SCFW)lcYGALvG6x*Owpy|`5 tAhAQka7RO^ojEHnTB diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0054.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0054.png deleted file mode 100644 index 7760da965f3063b87b0977bbebc4ce362c13057b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFs01hYa$W;Tn%66XRA rB}gpNK6cn)hB8xn#{$p97fcK(lVxvR{B(5!Py>UftDnm{r-UW|Lo_VZ diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0055.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0055.png deleted file mode 100644 index dd4e95ba0baef8811a952b1cea5009dd7799b1c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 129 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6;>0X`wF zpUZ#V5kV YP%o^RvRh?I2v9kLr>mdKI;Vst0F7xOoB#j- diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0056.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0056.png deleted file mode 100644 index 62256e894398ff656a8b62d464e0d3073d0b8554..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFs00!HR^W;TJROPUfS yj2)KDS-_(%ahO$)HMD0wW3W!g!GL2)d<@(U@_!fb?9K=3WAJqKb6Mw<&;$TZN-S*v diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0057.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0057.png deleted file mode 100644 index 9ec6067a1ebcaa20d7adb2e75369cdee9bef62ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFNR)sX$T2k|4ie28U-i(tsR)PZ!4!j_baC8+jQNd6+XJ zTGE-1FnIXQSGrd(I^nSQl1+N&G?&^0pX5=oJvhV3G%7rS;a1_p*<1`~LfZ^=|3z2m mI=_gB3VVD{X8y<8MCON9f}c0&L<9qkX7F_Nb6Mw<&;$SmZ9hl= diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0059.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0059.png deleted file mode 100644 index 7258e24c25221983427c0e2721a3354a8001664f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF zM`{Y)jl4gfU2}hBhyJ3vpFnXRPZ!4!j_b)k_*r-alCG}$&vQR)|E%)`xnEbmhRTH`ycYeJ3Bv?v}!lvI6-$0X`wF zM`{W`pIzf_ozZu@V4_;vm7w~}#dZ^fVgkbU*}f1dgo3%wZrsatS}UW+*j PG?Ky7)z4*}Q$iB}Xiq-s diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0061.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0061.png deleted file mode 100644 index 4918b91bdbde297fea754a1105163a19b3022175..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF zpU=Oi$z%1s|G5}yewnSDSmV75 PXe5KDtDnm{r-UW|ps+x- diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0062.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0062.png deleted file mode 100644 index 321bfd146168505fc7f565c19eb1dcff1b17d7a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF!lvI6-$0X`wF zKstHHvg#X0+>N|7yWPToe8!R>zhDN3XE)M-oB&T3#}JO|$q5_&A3kv4!+(2b=FjWD zvP;Z}Py5d(_+N5H{Mxwl3IBOK{;+SX+Z)BHlBaw3{D;?BKjhouy)WAv{E3#TYdH8% iYr+F|L7w=>k_aHZj33Il@zD|5F+)l3!lvI6;>0X`wF zzn`AGzp~@=*)>ZGnWKP$s-7;6Asp9}BUo8@43xP13Je!`G<52yX}S0lKr-E0m}1B0ilpUXO@geCwwTqFYk diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0066.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0066.png deleted file mode 100644 index 7aded89989bc3ad563d824d65be9b644c0bbef0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF;{Uf6Tt z0>g?14VMnn0D(gstVRcl7IrnQ5@?$=Nz0={^b7}UW*H-sz~Q4ejvl!wp~0Ne(IBCy iAjxs~#*HIKB^YFT1U_ASk#-DdEQ6=3pUXO@geCy+Fh70( diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0067.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0067.png deleted file mode 100644 index af9a5dc3230aead82d3edcea1435267f69675d63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF zK>G99HNT&pbT{%A+gkDf$Y(4G@(X5gcy=QV$dUDQaSY+Oo}8c{DZ?OG?{K7EpxCx! gC)bfVtSL+kbyA#H8GD6J0~IoOy85}Sb4q9e0O^|~=>Px# diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0068.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0068.png deleted file mode 100644 index 0e9e91c35acf352b1e879959d1a48d633c2b7b6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFs01hYa$W;Tn%66XYt xBuFgOPBRNUl#noEannJAgC@saIWroB7<_VN@OjErS36 diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0073.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0073.png deleted file mode 100644 index a90a68b2af034778362b949ab020d95cc8545031..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6;>0X`wF zpUA5y8y~Yos00!HR^X10bP0l+XkK%cw5j diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0075.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0075.png deleted file mode 100644 index fc718030e9eb5dd8a90fe916799b88d6a5ee2bf4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF~J^oW}WGt4U}Lk3GxeOaCmkj4akY`ba4#fxE_1vAa8>K z53@u43pQCsF%9Js1_!TuqPctib1V^2Ja~LxduoHp+D;DrTUoa@Ena3HWww;>#G2HG zk^tRF3>6(;zCE|S$057)u}GvH!+b-7Tsd*wZu!}!ENc^ib})Fl`njxgN@xNAPohO4 diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0076.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0076.png deleted file mode 100644 index 09bbe035a369f96ca6ba36873cb73a9cba55a980..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFNR)sX$T2k|4ie28U-i(tw-@PZ!4!j_bK+H;OhW2rvh5 zNgfat5I4BA`bgZwH~YKTw=MgnU-|vq&iNHDUrl(b-4OSa-Gf)_z?yA$6jN@8lpCpA wu6@#Sl;Mc7i!-N;r)7Mm#qGZidG+h#WrBsSeqGBS543~9)78&qol`;+0JyS8F#rGn diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0077.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0077.png deleted file mode 100644 index fa87971db7ed05397c1ea75d079630146abef87d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF>F1?|#PbQG)_mTdp; zV|#fK|385r3hBA2R{br(tq0c3{2apb`QHPs$1L`H*4y9UPdINF(iiA`vX>!o_WEju Y4{ya=<{VV}05qAw)78&qol`;+09~Iz$^ZZW diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0078.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0078.png deleted file mode 100644 index bc6aff69eb51ab723eeb604ee36635db7aeededd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 163 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFI;uyklz4YWkP6h)G=RoTwZ5H(oVUb<`eN11h z{UU#;Il^z5qZ)UMR)T{}Xa}R*2mT}9ygslUp3WO%@U4`Qp+c;-)=mB+&?p8^S3j3^ HP6##cq$r8FbLfjR}%-zWQ)%r_yKsm;eAirP+hi5m^fSh$;~m zavm_?VQ~;`)Oo}kvxL`;d&vaz4R@uO{(b#CX|a>c|49imubL^m_%`FK!{3WHSd)}i z?zI%V__I_m|JW4cJ_A<=Mx~yjZw(rmk9A+(3gG1k`8%!nPK-QXk$T)&o%PRvRxx!lvI6-$0X`wF zKstHHvg#X0+>N|7yWPToe8!R>zhDN3XE)M-9A{4##}JO|$q5b&|M(pa{o|kTG2ec| z$81~X=DX|u@H-^^m1omdKI;Vst0MF|>qW}N^ diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0082.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0082.png deleted file mode 100644 index 83d22af187becadf2786f1693a06bdfa7ed684b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF zK>GL7lb_G7aX0ez&(b{r{v*4@jQBL>&hXWaM{)$jPbB@=DtD5H!EA%*`!)O8P6N$g@O1Ta JS?83{1OQ&jG@Jkc diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0083.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0083.png deleted file mode 100644 index ccef1a580ec5332b96ab8882f1cdfd7684391027..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF zK>G99HNT&pbT{%A+gkDf$Y(4G@(X5gcy=QV$Z_#>aSY+Oo}BRG{DA`p{`_a2Q1O@D zW6v#qmAbX;T>nn7Z{{;Fu#e?c{Sm+R-+=@2TSYut+L}5%1Ps42Gk?DNftg2vfuZ%F WO#aQTyT5?uF?hQAxvXV*-jYmIV0)GdMiEkp|>Mc)B=-a9poFeUS5j0S~i7 zt&PKiSOpViiOH;8pY<(n)laqB(!X!jbww4A7tfB02;HrXh_rZp;mDhqV%>V!Z diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0086.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0086.png deleted file mode 100644 index ce21d90e596008a40f92c30b49d5dda1baa53b73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF zK>F~pmosM_aX0eb&-qyc$Y(4G@(X5gcy=QV$dUJSaSY+Oo}94Z_Td8!vwv)t_xN+> jxJunxcf|u;jSLK*m4x-J8u(rTl`?p``njxgN@xNAz``m$ diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0087.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0087.png deleted file mode 100644 index 9d50a7a612368fbe064d96c69327560dec18a836..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF!lvI6;>0X`wF zhmXCSIqOJc>FlLmXJ!EfMLb;`LpZJ{N3gQ+ED=r+;9|*OVK6?X)S1*}u@flI;OXk; Jvd$@?2>{LF9e4l$ diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0089.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0089.png deleted file mode 100644 index 7b64a4f13c1aa5962d255f4a991a245af7f257a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF)VL`pgV*o20*9x10YCsGh;o)z4*}Q$iB}SvV*U diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0090.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0090.png deleted file mode 100644 index 2b9fa2d0be082da122c8e0212ca117d30e977589..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF z9l7g|ta$hN?3%@G=L9rZ{{zL%JY5_^IIf2tG2~+q5MVj*_kZv=p?ME9tJXRxrC2UB wINBiX7uFPREum_l**r`ApovZGR`Jqk`D(MxVJaoUKob}|UHx3vIVCg!02}r#>;M1& diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0091.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0091.png deleted file mode 100644 index 3f9f843913fea779faf06d50b99bb35af0669276..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF z9l7g|ta$hN?3%@G=L9rZ{{zJhJY5_^IIbs0u(I$3Bwg2P`}+U<|D+%P|G%$S2;^4E qayU}&^T>L_4?eXn$2(OkSQsk4S;}sCDZUM;m%-E3&t;ucLK6VJf-x@u diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0092.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0092.png deleted file mode 100644 index b016776b485a1ea92ef32de3482f51d5da2529c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6;>0X`wF z9l7g2pIx)K?cD2U{gFUH6;Bt(5RU7~9IQ-i9EQRkE}D#;p{u7gbxc)A5^b8%HN9a4 aGsE)>N=H8y+KK?xGkCiCxvX!lvI6-$0X`wF z9l7g|ta$hN?3%@G=L9rZ{{zJpJY5_^IIbuE;Ai1+5xn1cq}(8o=h3xh)qjm0;RQ*e Z4A(8~M43Xmt^(CEc)I$ztaD0e0svs|CYJyJ diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0094.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0094.png deleted file mode 100644 index 0be28e359bbd4ad94ff7fa0065d5dbccf3601a59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF z9l7g|ta$hN?3%@G=L9rZ{{zLzopr0I9etoB#j- diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0095.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0095.png deleted file mode 100644 index e27ae9961d4fc4ee11150779a6462f04092fd077..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF z$vc+K{qf}U*)`QSjvRiJeHbWi?&;zf!f`$H$U$BP0Rh*8_v!lvI6-$0X`wF z$vc+K{qf}U*)`QSjvRiJeHbWi;OXKR!f`!0f|Z3QAnCeR+t>f+|0n(U|NnixLLj$N qmcx;HpGVdce(!lvI6;>0X`wF z$vc*PKD(y+#*y>W13G|$DxNNmAsp9}Iarz4I1Gh7Tr?RwLsw60>X@pKB-%8iYkI>9 aW`^e%l#YHZv=srWXYh3Ob6Mw<&;$S;VkJ)i diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0098.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0098.png deleted file mode 100644 index 5af45ff26adfb9b0e9b5d3679f3ad2ddacc8cd6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 129 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF z$vc+K{qf}U*)`QSjvRiJeHbXN;OXKR!f`$M2R{psi{SmnBjpBxJddt5tNv^32rozy ZWw>r>C(0Dkbrq!lvI6-$0X`wF z$vc+K{qf}U*)`QSjvRiJeHbXN?&;zf!f`$M2R{psMd$khCZ%t(K3AG|I3)eA|NWn5 hwWCl%lIR2mhW+X`OGI9TKLToD@O1TaS?83{1OP3rERO&H diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0100.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0100.png deleted file mode 100644 index 78fcfa5b22825151db57d66dd307c1b843d0b59f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF&XUfOl&4?6OAT3eDvtinghQgHDL2_xezFz^N1sj!Bxg}L6AV(Bq6KjK*2K%44!S0mn7=l Rt^>_v@O1TaS?83{1OPLEHhBO5 diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0101.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0101.png deleted file mode 100644 index 940db3ff561bceaf10b994719d39a01592f14905..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF zhmXB%ES>%N?3$Ugj&v9WJp+m>db&7wD5iWxjz{an^LB{Ts5&7LSU diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0102.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0102.png deleted file mode 100644 index 62964183f4e74aa8c42203f43a7d3522a6236a1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF&XUfOl%g1JtR*R1Qiw<7BU)5IdDKy z>Cq#W6pJngNj<$6Jc90y7S2bGo|I5w4dDxHJ`)h+l+M8^!OSpASeo_roPbiGX$+pO KelF{r5}E*yN;35T diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0103.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0103.png deleted file mode 100644 index a29e8dbe5ed91950984969bfd08a252d75dedb5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 134 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF zhmXDde0EJ^>Fk-aj+hD_r~!(rdb&7!lvI6-$0X`wF zhmXDde0EJ^>Fk-aj+hD_r~!&Ad%8G=a9mIR!Oy~Tqa$|pwdRhi3h%N*m^4l^q}^oh cED&L0a85Q4iZpkK0xDPkbt)cvtf+$k)XpJ=^QKB93=vZW1Jhx7#X~T Wq^%Y^luH3kV(@hJb6Mw<&;$TSwloF+ diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0106.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0106.png deleted file mode 100644 index 092a63c4e9d03616d77ee886a29312ee78f32b6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF=}Bm5W81l7MO&MZ%1TurLv^L$lD0;Pm5DBfKFz%` lF;je-1)njjEi7adVvuf8W@!Dj^eE6|22WQ%mvv4FO#quOKBWKv diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0107.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0107.png deleted file mode 100644 index 60a8e2e2b2518d644ce3fb61f0f3653c2c878f4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF!lvI6-$0X`wF z9l7g|ta$hN?3%@G=L9rZ{{zK!JY5_^IIbs0eEt8wzAg0s|9|NbfB(O)Rro0H^XItZ m73R+O2~0=+@=T6kRc3e{V=4P)(P}%OJ_b)$KbLh*2~7Z-h%!F_ diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0109.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0109.png deleted file mode 100644 index 2851d30da767103b5a4894586b93a4a5833f269f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|WIbIRLo9le uWA2o_vu9>)=oC7;n5{?3AnQPa5d(uOKeJf%8ZQx`LIzJ)KbLh*2~7Yy))=1v diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0110.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0110.png deleted file mode 100644 index c95ffb68671910ec3c7a3a2e760fd0884e81a781..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 140 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF z9l7g|ta$hN?3%@G=L9rZ{{zLfJzX3_IIbuE`2YXER@?ut4v(t;{txH5|DU<@zeVT% lghzHA+-m2PQ^FfL89ZaH-!5EzybY+0!PC{xWt~$(698e`F{J!lvI6-$0X`wF z9l7g|ta$hN?3%@G=L9rZ{{zJ}JY5_^IIbuE`2YXE7MsFHE{`kC9iQqQ9{sLY_$cY} i=eXmQ!<^MAoD8{^HmO~eCmsOxFnGH9xvX!lvI6-$0X`wF z9l7g|ta$hN?3%@G=L9rZ{{zLfJY5_^IIbs0eEt8wzU^v3l6}XI|NreK?BG{=H;-MY k{$SDy7uz`-+@~=xM6a?D*yNNX1k}ag>FVdQ&MBb@0LYpy4FCWD diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0113.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0113.png deleted file mode 100644 index efcadab7667614e8597b30aabbbe7df61e54b530..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF z$vc+K{qf}U*)`QSjvRiJeHbXN!lvI6-$0X`wF z$vc+K{qf}U*)`QSjvRiJeHbXN?djqe!f`$M$N&HTwc7rFb$C?$_kTFg{r}9J|1CQA lCp@z2;8r`QoD$y1$>14l{dVE%<844~44$rjF6*2UngH#NGnfDX diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0116.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0116.png deleted file mode 100644 index 618ea755a60ccb79472d7ca248d02ad5789e9202..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF z$vc+K{qf}U*)`QSjvRiJeHbXN;pyTS!f`$M$N&HTwb&Fsa(P^7?)X&i@aT8F!beG$ iKgS)f9OkS};bh3Qv`Ou%Jn;aihr!d;&t;ucLK6V`O)#MV diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0117.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0117.png deleted file mode 100644 index 1c6135cc3e08e4cf3f33cfeb8dfc8c01da06dd5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF z$vc+K{qf}U*)`QSjvRiJeHbXN<>}%W!f`!0;_Lta^=(%RlI%Nv{Qqw^VF$m`yLs$F k^#_wyxY*9w;69CkA$paKz$T|8A)qb>Pgg&ebxsLQ08(i%00000 diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0118.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0118.png deleted file mode 100644 index ded08d3e7ba197e088e05fcc073172c6f6d8a48d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF zhmXB%ES>%N?3$Ugj&v9WJp+o1db&7!lvI6-$0X`wF zhmXB%ES>%N?3$Ugj&v9WJp+o1db&7!lvI6-$0X`wF zhmXDde0EJ^>Fk-aj+hD_r~!&=d%8G=a9mIR@&DKP(6;~o9gk#le3bY2lg=Rc->@V6 lb(rCw|Ex;?ns>}#VeolpV|4k>(^Wui44$rjF6*2UngCFhG1mY9 diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0122.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0122.png deleted file mode 100644 index 16df4ea315fe37d3c536eddffffb1cb353bc3ba3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF zhmXDde0EJ^>Fk-aj+hD_r~!(rdAc};a9mI3*k1p4KBMEG?f?JJZ+vLq(b^iZH{Y}) gg8$LK<6aC5fAY;^szqB419dQXy85}Sb4q9e02j|KqyPW_ diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0123.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0123.png deleted file mode 100644 index 00791dbc7557c32ed1135bf776f61c625d354631..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFJP&I?6tDnm{r-UW|t)nO? diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0124.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0124.png deleted file mode 100644 index 1f266bd08e393110d9fc06169a46be8d0e874003..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF zK>Gjx|3_B5TikZ;U*4~6Kt5whkY6x^!?PP{K#skqi(?4K_2dKxrqvP>GiHRF7!-V{ zO-OjK=|8i|zw6AM>r2@sW_&-UpOEn5x4g%V|BOO^q(vlVY~eF$C{<)&n4Bai96RA- Q2GA%5Pgg&ebxsLQ01tRMEdT%j diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0125.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0125.png deleted file mode 100644 index 00791dbc7557c32ed1135bf776f61c625d354631..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFJP&I?6tDnm{r-UW|t)nO? diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0126.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0126.png deleted file mode 100644 index a8c079ad8990771e1b68ba8eacbbe4405036444b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 144 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF z9l7g|ta$hN?3%@G=L9rZ{{zMKJzX3_IIbs0eEt8wp3PvRRPzpgm3Pe@yPr3D{d2my p_7=a=wdRh{{q>BUp{oU07%t_Q-dM$b@)=MogQu&X%Q~loCIGp8F@gX9 diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0127.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0127.png deleted file mode 100644 index 48df7c31beca5c02e99c13a2b22e76c9597db03b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF z9l7g|ta$hN?3%@G=L9rZ{{zL!lvI6;>0X`wF zM^?Q1e0I&^wsXu?9#?>Z+MX_sAsp9}BerIRYB2ZA=yKFy5{^<>Cl+(}l#jwjlgWx% hVHq0E85%~640jrp1eYASuL9J@;OXk;vd$@?2>@ZaC&d5& diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0129.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0129.png deleted file mode 100644 index 81651ed4fdfa49f97d25e1a18864d151202166a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6;>0X`wF zM^?P+$X&mpGyIqo<2w2*>s02v!yz@5K#At{5m7y5?kxOqd~cY(vg95yQ67 z)d!Aj$#h7%snZs^&_Pw(d2>UH@|+VaLaU7$g%lPuWY{QkH;TQw3N(zt)78&qol`;+ E09slxDF6Tf diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0130.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0130.png deleted file mode 100644 index c6334c3f8acb97847ee6a08b80a417dd09ffa83b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF z9l7g|ta!J$?cC?HYwFY=Ujm9dd%8G=a9mgIvF1Bqz~i(tKkuqyv##m&Q|T}6d8oN1 zRxmX(1S_m<_ypF5iFC9>08jxM1;yi?tucc3DMbnDMs-^A-Y)WAJqK Kb6Mw<&;$U!lvI6-$0X`wF z$vc+K{qf}U*)`QSjvRiJeHbXN@9E+g!f`!0;_Lta^=t+krJ8r}tGsLO*!{fG>z~ur qwYT_{t~Gar?yqO;3|%e2!f+|a^u{Xglh1%!89ZJ6T-G@yGywoj3o~^9 diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0132.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0132.png deleted file mode 100644 index 634ffc08c973b2fb5ba7ee3c1df636e63b54706c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF z$vc+K{qf}U*)`QSjvRiJeHbXN?&;zf!f`$M2R{ps#*tcukK#TJJL)f_JUsI6KhNv` i@Bba$z{MfJ!mwkN)zYg`XZV3y7(8A5T-G@yGywpN<}Zo> diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0133.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0133.png deleted file mode 100644 index f9a700737e472cc1f6165865d75279af09ed5862..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6;>0X`wF zbALSfe0ELsjU(Bs-q`{LwLD!MLpZJ{M{Las)nM+K(dDSaBpju%PAulGm%zpnP3J3X gE-d9)=+L0R@FZ2KlW}^-SD-EiPgg&ebxsLQ0H2X600000 diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0134.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0134.png deleted file mode 100644 index 4eda5b024af8a93711b5221b1000afabffaecb6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6;>0X`wF zbALQZ-m$Fu#t{wY@})pQM^6{W5RU7~5v(jc-isTKTrp5Ebj`^WnJ`1@*oK^IB8F|D zs}CI6lIf6iQ>QI-p@XWn^X7&YmdKI;Vst E0G9+Y%m4rY diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0135.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0135.png deleted file mode 100644 index edbcf90b07878b7202976a1afbb77f498d703006..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF z$vc+K{qdyw#*xow*Zj$>*8_?>d%8G=a9meCvr)9cK!7RW+u1NNvE$YE*k&G&uyEk= z@YAeg=C5EkHs?>}+2!$AZ{MN5mMVeIUEdbh359)>Ysm@<=bq|lx|`)l-EW|A44$rj JF6*2UngBXZHbDRY diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0136.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0136.png deleted file mode 100644 index 6a20b0c5733a0083b896faa830a67b55d5efa7f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF&XUYfrW)4g@uU*VL?TVj0Vg~hgNW; z9=O^d(bUw(bL^Owo?Zf50Lvn7_QRg6Cjyw57wCznr*GhpkkE9NWIGekw$YFwDPD?I TwkO^TXe@)LtDnm{r-UW|BOWwQ diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0137.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0137.png deleted file mode 100644 index 3dbe4b6350b387003b7f005ad5f769bed3d054b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 129 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF zhmXB%ES>%N?3$Ugj&v9WJp+m>c)B=-a9mIR!Oy~Tqa#3}LEuKp!3Y2U*Z-FcV`OY% ZU?}Z3s(32Rm<&|Q;OXk;vd$@?2>`2jC)NM} diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0138.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0138.png deleted file mode 100644 index f7c54342e50826762b0151963ba0b985389dc2a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF&XR$g(8K8MP_LX##5#QNH{2{Fo-g) z6ciL`F^*ZVD`tY^F%Km_t$;Qmi32V%4Ou-?dJi@nY>+%<(8k2D%w6imE#66AfW|R+ My85}Sb4q9e0J=prrT_o{ diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0139.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0139.png deleted file mode 100644 index 3dbceb9e57a92045c41ab5feea17a516275e5ee9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 117 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|^gUf1Lo9le zOUyt0JKwT-(b&|;APbBk#b;Vc5{ehVDQxEkiGDycpp$J NgQu&X%Q~loCIF-$Acz0} diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0140.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0140.png deleted file mode 100644 index b7b968b376fce12663d6884006ccb64c46749bd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|WIbIRLo9le vOUyt0JMX}lu*l`}3dY53JyHfUco-Nm6d509_o}i26*73b`njxgN@xNAWT_eE diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0141.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0141.png deleted file mode 100644 index 26355ab2c295f6c729d1939d4a2495cdcf6a994e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF(WhCfhN$SCI(MeKbLh*2~7Z>I4bx6 diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0143.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0143.png deleted file mode 100644 index 0e37bb0b5bb6b6ee79136bea2920af849314eadd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFzopr02&oF9{>OV diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0144.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0144.png deleted file mode 100644 index 26f16509af4586942d51befbbfb3ea7ccdaab935..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF8#5#*!evUjrH8Oa*`njxgN@xNAs<189 diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0146.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0146.png deleted file mode 100644 index 1991161f9f1bdee87b90e2760b10eb85a6f648a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF8#5#*!evU(_u*qN@22}a-@R-DP>!)A$S;_|;n|HeAjjU*#W95AdNK!Z z0t3^vfVKdQ1drwmnLL@QdU=|9?@sW1{gm|ilhOo^j)#3`8oXCdmzG{^%ypFWB^Rru cvI#H4m0E47gWh-c0F7esboFyt=akR{0IJ43zyJUM diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0148.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0148.png deleted file mode 100644 index 76011bbe73395d65119622ce555f88dae774a145..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF(_u*qN@22}a-@R-DP>!)A$S;_|;n|HeAV<&B#W95AdNK!Z zLPJA(_u*qN@22}a-@R-DP>!)A$S;_|;n|HeAjiPd#W95AdU65- z^RqenXj{+o=1=dM07|&JH2z|EhDbNH4Pgg&ebxsLQ E0M0HjlHr;xWR%ivr5<+Y~{{+yX8P`1|UR8CqS!>YTFx1`(%c6t%};?pGvm0#Q|&I)sGU0n7VXgY(ZtDnm{r-UW|;MGQN diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0153.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0153.png deleted file mode 100644 index 2a0a0360b7d1d748ec5ae1707c234370019a6a42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFl!OYvvUf+j!ZR* mt9C2-c$7a&<_-VE3Wj(^(Y~%-Ew(_z89ZJ6T-G@yGywnyO+w26 diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0154.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0154.png deleted file mode 100644 index 7b00732c5dc344b95e21a2ae50df40b89f346790..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6;>0X`wF zM`{W`pIvi*WrxSpYH6ULsi%u$2*>qg4pt_%l%~e1iY5tHnc4!@hpv`z+PaLfbE<<< rO6X;+whf^U8#hF*PSCLsyj diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0155.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0155.png deleted file mode 100644 index 9b6800b946209ea19c1c77319cba7c83a9deb776..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6;>0X`wF zM`{W`pIvi*WrxSpYH6ULtfz}(2*>qg4pt^M7Qq7t4xBo$HR~!w6*73b`njxgN@xNAIT0g( diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0156.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0156.png deleted file mode 100644 index 3a0f0ec4145c813324978e71c8fdc0f86745ecf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6;>0X`wF zM`{W`pIvi*WrxSpYH6ULuBVG*2*>qg4pt^M7D0w35<9{+wi&I7+A83(hCy)kffkL9 j8C=TC4sv!#xX3bOM<^sG{oB6*sFA_b)z4*}Q$iB}ToNa? diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0157.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0157.png deleted file mode 100644 index 68082ea3e0a37743e82a02dde73c3e9391ccc653..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6;>0X`wF zM`{W`pIvi*WrxSpYH6ULtfz}(2*>s02v!!J6v536M=niONYa`R!Jrh@%EYi>r{-P0 S0$FRILIzJ)KbLh*2~7YOA0e9n diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0158.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0158.png deleted file mode 100644 index 7b69954cb0fd4bfa1cd85f4e4276ff27f2f79236..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6;>0X`wF zM`{W`pIvi*WrxSpYH6ULl&6bh2*>s02v!!J6rspS2PGeFmxdh+9hew;xHMV}H$}1l PRWW$F`njxgN@xNAcwZjB diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0159.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0159.png deleted file mode 100644 index fda008309a90f198c5ab90dc3348a4c9a889fbf6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF?W)HHa+6$*HGeUm*zn4JWakLn)n&1mb~+__n?gVCHlM|=V! Z!{%A4%N`oUp8}f2;OXk;vd$@?2>|?5HbDRY diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0160.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0160.png deleted file mode 100644 index b298f5be1818909882a9c750122135906ad67bcb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF(WhCfhX3s)78&qol`;+0I>NvcK`qY diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0162.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0162.png deleted file mode 100644 index 43fffecd99d46f42af8e52fe2e778ba747185047..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFgpHW>R9S+0PAND|H#{MEOpk$am1t1a TM%E)hvlu*G{an^LB{Ts5@l7&3 diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0163.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0163.png deleted file mode 100644 index 6b48d1ba17ed5e4ce4518b69ed663bba097ca285..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF8#5#*!evU^7f?Uo=jvhVg!KuQOBC*)uL6Ae6v5(=Lhe|FE(}j+RGK3x%KFkx9F$HJ} NgQu&X%Q~loCIFmtG>iZM diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0164.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0164.png deleted file mode 100644 index 417faf6d1e2d18f5549c324ee289566c8caef6ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF8#5#*!evUn9XobR?F5f%s<^ngyTD&W3_FWrs2g(nq10!lEJ1o;IsI6S+N2IM$;x;Tb#Tu=7!PGDf# zX41B0%N7@F2*+ZDS;p)Z&<)hIJ+#+6>vt WRaswViLL;e!rSvL diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0167.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0167.png deleted file mode 100644 index 3e0e92900f2d738325faa9524df4112e186de6d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF$mH{qgkK#s#HWO8GRe=PL;>3oo z9TLrq69jqK9NIJ`7$g@aG^}wG;7JJ5GiVdu^vJ~Ez+nc4xuvSxHG1ZK1De9%>FVdQ I&MBb@0IHob5&!@I diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0169.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0169.png deleted file mode 100644 index 16be070c1bcf31c293a79a94e6b6ced6f6ce7be5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF$mH{s0g2o0DHdTRwK(Azm&yo#F z#}XJ)Seh9pByzDixM@fztQKTp3UpLB%&NAODfxit@!lvI6-$0X`wF zKzin^BaNlA-Hp7JetJp*`HUq&e!&b5&u*jvIdYyZjv*Y^lQ+bE{cqp=HcKMWT-s%g ho9d#6N3xt)82CkX_ZnNQxC&Is;OXk;vd$@?2>|KcCTRcw diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0171.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0171.png deleted file mode 100644 index 06cc0197994e383c8eca67ab7707a8ef7cf2f21d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 140 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF zKzin^BaNlA-Hp7JetJp*`HUq&e!&b5&u*jvIdYyZjv*Y^lYjiL59K}l|NnY{BXTuI hyhGjvTQG_;Gu&vmG}Ea5Hwmbc!PC{xWt~$(695|5C+GkG diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0172.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0172.png deleted file mode 100644 index aabbaf0334fdaae22b7bdd0b8d5c7c558f0562cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 117 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6;>0X`wF zM`{W`pIvi*WrxSpYH6ULxTlL_2*>qgj@YePqRcZm7zGob2o?l0oa|P$KGQejF;EGE Mr>mdKI;Vst08i>5eE!lvI6;>0X`wF zM`{W`pIvi*WrxSpYH6ULf~SjP2*>s0h^<+n8q7Tctb)OfN4x|!CTaC}^Dr8+GH5ZX Vuj^OmiUO)-@O1TaS?83{1OQj0Aff;O diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0175.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0175.png deleted file mode 100644 index 707bca1fc664e617f670a93bb5cde5f65ba4cb56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6;>0X`wF zM`{W`pIvi*WrxSpYH6ULf~SjP2*>s0h^<+n8q5;}SOtR}U6eZ_7?si*J3>_i8T@@T V-A~_@a0RMm@O1TaS?83{1OQjhAxZ!M diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0176.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0176.png deleted file mode 100644 index 062d274cac8aec6a028381e06c15595959218b6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6;>0X`wF zM`{W`pIvi*WrxSpYH6ULlBbJf2*>qgj@YePqRuCb6a?9lEL|Bnbps)Pf$6B= V_1`U5ZUaqY@O1TaS?83{1OV}WHv<3w diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0178.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0178.png deleted file mode 100644 index 2540e2d4c6e1ccd75a4263bf71f61ad1bad486f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF7p= jTx9#u$GgwE&Uu%f2eX(=^hK>$pxF$bu6{1-oD!M<1*<=b diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0179.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0179.png deleted file mode 100644 index 4fd5985a362a240977a5b40338576c57d0e647ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFM!SjzkM9)3w3tlT4>89 diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0180.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0180.png deleted file mode 100644 index e38e171257fe21d1be9a317084f57d59346ca58b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6;>0X`wF zK>F~pm+nU13#J{k2XYuog8YIR9G=}s19BuhT^vI=t|vzvJh0&ChAzgAMG_Lzf_xYl Yn!XE2{+aNe9jJ!E)78&qol`;+0J<3@0RR91 diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0181.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0181.png deleted file mode 100644 index 79eb5deb2763f194da5790e7053aece056b938e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF@~ diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0183.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0183.png deleted file mode 100644 index e38e171257fe21d1be9a317084f57d59346ca58b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6;>0X`wF zK>F~pm+nU13#J{k2XYuog8YIR9G=}s19BuhT^vI=t|vzvJh0&ChAzgAMG_Lzf_xYl Yn!XE2{+aNe9jJ!E)78&qol`;+0J<3@0RR91 diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0184.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0184.png deleted file mode 100644 index e47f830aac992c5df59b7b6ad902dcd5ecd0c793..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF&V@7pToyqx*K^*N}F^6%##qDD_N6;fe+(na_L9<-qk?C~r1fXUH MPgg&ebxsLQ0H&V@7pToyqx*K^*N}F^6b1*A9(F u#tDfmObUXj0tGBaJqH<1aIi9G88TeEsr2{gM9U_iUItHBKbLh*2~7YCdMwHS diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0187.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0187.png deleted file mode 100644 index 2d01e4b3ba9320528bd62405bbed94b834c3c08e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFonE=+K+Wn(z7QR%`JrKcW1y$qhNelF{r5}E)Bz$|M3 diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0188.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0188.png deleted file mode 100644 index e254dafda9ca32dfb7680a19235d4186f66d117c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFZpDsx)_2c8GUl(8b^dQrd=F>~gQu&X%Q~loCIB4h BNb3Lq diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0189.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0189.png deleted file mode 100644 index c85423f5e57d929c9b75caf9193671fd48c3262b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFmKS%dZ^!%)d(5eVXxxw~;dXsqG3o#IMZg1=_*j>FVdQ&MBb@06_Li Az5oCK diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0190.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0190.png deleted file mode 100644 index 4347e344b2971c270cd0e56fdac8552c7aaa6af5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6;>0X`wF zM`{W`pIvi*WrxSpYH6ULrl*Tz2*>qgj@YePqRcZm7zGn|bX*7xG*Idm_Hb!D;uNmS fDztDR2NOfZ9|c~mB_EanH8FU)`njxgN@xNA%PS@G diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0191.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0191.png deleted file mode 100644 index a6a2b9ef8acf404285c360d2090dc37d77432fae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;OS+@4BLl<6e(pbstUx|nfKQ0) z=d)|>uk5hWQUfU$@^ogTe~DWM4f D?noSt diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0192.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0192.png deleted file mode 100644 index 7987777eee6a398c156aee605c895531d5600a2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 140 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6;>0X`wF zM`{W`pIvi*WrxSpYH6ULo~Mgr2*>s0h^<+n8q8B>sB$IwvI=QCx`@nS=vKV4mPOFp kS#nWWYnxF^o02fY{x6C*WafWZ2Gq&m>FVdQ&MBb@0GG5Vb^rhX diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0193.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0193.png deleted file mode 100644 index d200c153dc7038e9eb4fd021d8ab34adbec6301f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6;>0X`wF zpUH|l%WI80>)M*P{=%A|Yyt$!8dCmzIq18r>LJEr+GHjH&8^vB-1scZS>FVdQ&MBb@ E06hXQ%m4rY diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0194.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0194.png deleted file mode 100644 index c4a5e8929ed2f3f5905a3e3939a9ccc76aea89c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;OS+@4BLl<6e(pbstUx|nfKQ0) z{goY`&#qxj{_hVI(eZR~4B@z*{Nw-phxW#Y?cD@+v8&lP3I=@mP~Ud!CQt7lp58q? fy`LTL{Qu9mT|j8zsf>w|Kz$6Ju6{1-oD!M!lvI6-$0X`wF zKzin^BZrT@bT{(;X7OV!kk42WgTe~DWM4f^`R?X diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0196.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0196.png deleted file mode 100644 index a5c9d03c4e9f59397cf2efba8195f3695fdc5edc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF zK>Gjx|3_B5TikZ;U*4~6Kt5whkY6x^!?PP{K#r5Ai(?4K_2dKxhGn4+IolUCHa`Ad z&&Iay|9^glPAi3vTk9B^uiyW{%5$drKXd1Qho*=Bt6AC9*4py&@T``aaE5`QVY1k( U<(9ku0!?G^boFyt=akR{020YOhX4Qo diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0197.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0197.png deleted file mode 100644 index aa3051717b62232c248380c080c19b540906ec0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF zKzin^BZrT@bT{(;X7OV!kk42WgTe~DWM4f^`R?X diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0198.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0198.png deleted file mode 100644 index 5711ed3661409acb39ab06be137dd3034b345135..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF zKzin^BZrT@bT{(;X7OV!kk42W>)Y`?RG(SsZEjyzeDqkkvBV~|vU8|#vxe3y4g84CdSF}(!zC$dZ&&ZJHazy%A_m}myIhkH6pB!uqd45G8JZLU~suA V9DDnsju_A=22WQ%mvv4FO#n7@HWUB= diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0202.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0202.png deleted file mode 100644 index dfd9a4143e548c637ccfe5ae11fea5d54aacb40d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 189 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF_?C4w9=DE_6(2>+0?n)^a{_^r+w&0bX9-BkN}9 f9zA+gw~>)S^ODpJ^U16r;~6|%{an^LB{Ts5T^u@M diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0203.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0203.png deleted file mode 100644 index d68aac22582efa438809909aba480c056d36a3fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFNuF_lRxPs^Mg$oG=hk!lvI6-$0X`wF zjis{>AA31-))99j?@ytz96)h7PZ!4!j_b)kwq{+`YFqE^>?~PV$QZf*-~a#qoQw=x X&si&cG_bP0l+XkK0;wh& diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0205.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0205.png deleted file mode 100644 index 91267e6f33c2dcbed341ba551f373094e0f497ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF zjis{>AA31-))99j?@ytz96)h7PZ!4!j_b)0TeGfKwOzQdqM|Kywb+{UAOHW`yRtC+ X{%%$vS-|=OsFK0c)z4*}Q$iB}Kr|?5 diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0206.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0206.png deleted file mode 100644 index 28795ce45976727b78164f0653035f5f755ba38a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFxVHd|Pwzjr5CF6!$Q>RS%@Y*S<MX5 zp`cj;kipH{XcUszb45TrUBpdjmPba$3Joo1Pft(NBZAxY98=f=!Zm!XXD~9H-=-$g T_~BM9&>RL&S3j3^P6 z0udG_L50JnA{8168$5CA6D1+HT WxvNfF)+qpuW$<+Mb6Mw<&;$TYiZN>d diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0209.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0209.png deleted file mode 100644 index 7004eac842b4e828440d91061f3d9ae44486b322..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF*nd=7{YNqnWL1kIiM{-Ra{kp$tXr5rh(%~ zfglerFQd_%DLoe@PZ_isPI;K~h9_0xpoG_!lvI6-$0X`wF zjis{>AA31-))99j?@ytz96)h-PZ!4!j_b)kwq{+eYFqEU_>p8?p>D+a55NEa|2{>4 ZVbMCPoUa^r<^z>7c)I$ztaD0e0sxvZD$4)> diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0211.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0211.png deleted file mode 100644 index ac5a67df455589fb2af720b368cd873a5ed1bc3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFdsi{RU8ou_VYZn8D%MjWi&~*we)^gyVX0LIY!3GDm_zoAI0} z2O17WaGnzoF)wE$09L diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0212.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0212.png deleted file mode 100644 index 9b93ff3056920491a3f4c2bd52ea35f9d11d3273..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFMhkWE@~%NM0to{GeJ{F;E+Wr>mdKI;Vst0GB)}V*mgE diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0213.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0213.png deleted file mode 100644 index c23c2d5490e6d2f68c4fed4ef98a5c14c402ba4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFmdKI;Vst00nz7=l}o! diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0214.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0214.png deleted file mode 100644 index 2abdcbf6aac71e096a76c5d2cf31f4db0bca9bf9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF&W-sjKjxXx*K`Fotp3fD92b5{MC@CXnPXk@w08Up!i7Cts Y=IQD!Yo2m20nK6XboFyt=akR{0HGf@!~g&Q diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0217.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0217.png deleted file mode 100644 index 2b90ad481e5293423cf9a2b88d5387cdb81995dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF&V@7pToyqx*K^-Re&dJIouAqEYg5%Nz$pX#k7q*xfIPbObT)T(kga>=3-r@5e-d;h$%rh6O k%$TOOq9sW|VhS_E#fJuwpKbnc1RBZU>FVdQ&MBb@0B~eH#Q*>R diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0218.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0218.png deleted file mode 100644 index f2c4a56ec11710b5f1e5961e6351857c5ea4ce7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF`K$93eUHx3vIVCg!0N;;2rT_o{ diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0219.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0219.png deleted file mode 100644 index 40fe5b2d72abaa2395ba0e526c137b40d0a787dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFD%h@RkJGxTxf5f)WX4`K7s3J~CMaoiQta6q*6p~#X|O{WUX%*+apE|Or7 XKQ676#P`(Eal|aXmSqq1nVB zAt9mJKuF?7(9{M6o)aEMY)qyCheJ#ZB&IS>XVPRd42o$uzjJI9BFU>n#kbk>gTe~DWM4fQzJLT diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0222.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0222.png deleted file mode 100644 index ff9a612018b0475622dd2d74b2a00b174aad9332..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF4-?*@OcJ4lpK~7!+)oy>zK+ID=$vnrGHY$%M8^LQ@#U8CNkHN-?vtx~e+tx^w!p px7LB4O9dLrCL(hgr!#4@FuFU&4zbYM9Wz{DgNMpUXO@ GgeCwGfG}#j+S3j3^P6V4QOuHOV(v=o9Fcabuf6k`njxgN@xNA3-2mK diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0226.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0226.png deleted file mode 100644 index c8da18ac9e64d320a04d4b771f565c65f36a275f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF zK>Gg5jw3aN?nd5k?kju+@)=8l{DK)Ap4~_Ta+Ez?978y+Cnq>Cf2(ge^8dfXqiUN8 lKeozE{!t~rjAe}k(4>}f0mtmydQw2;44$rjF6*2UngC!8D%=17 diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0227.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0227.png deleted file mode 100644 index 35824346749418d09b27f1a1a99ef58622abc4e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF?M5RU7~2?y9?8W>zQH%Ra) zv`yZ)k!!}o9G#4&V*zGuoeq)(M-AQjz z4;*V?P-#{48`=rh(6g{bht=fJ(Hj;bv&$qH7}i$E VzU#KP76qEc;OXk;vd$@?2>>T!F;@Tp diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0231.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0231.png deleted file mode 100644 index 4c55985ba5c7761a7c42f2c9454f9ecf969419d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF=0Zn7@boFyt=akR{0D4X>>Hq)$ diff --git a/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0232.png b/src/assets/kenney_desert-shooter-pack_1.0/PNG/Tiles/Tiles/tile_0232.png deleted file mode 100644 index 3905d29570365f651bd7035d2f19271edafe3514..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFgTe~DWM4f)oL%j diff --git a/src/assets/map.tmx b/src/assets/map.tmx index ef74196..e03bc97 100644 --- a/src/assets/map.tmx +++ b/src/assets/map.tmx @@ -1,23 +1,78 @@ - + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,325, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,343, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,343 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +326,326,326,326,326,326,326,327,0,0,0,0,0,0,0,0, +344,254,344,344,344,344,344,345,0,0,0,0,0,0,0,0, +344,344,344,344,254,344,344,345,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,343, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,343, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,361, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,20,20,0,0,0, -0,0,0,0,0,0,0,0,0,0,20,20,20,20,0,0, -0,0,0,0,20,20,110,110,0,0,20,0,20,20,0,0, -0,0,0,110,20,0,110,110,110,0,0,20,20,0,0,0, -0,0,0,110,20,110,110,110,110,0,0,20,0,0,0,0, -0,0,0,0,20,20,110,110,110,0,0,20,0,0,0,0, -0,0,0,0,0,20,0,0,0,0,20,20,0,0,0,0, -0,0,0,0,0,20,0,0,0,0,20,0,0,0,0,0, -0,0,0,0,0,20,0,0,0,20,20,0,0,0,0,0, -0,0,0,0,20,20,0,0,20,20,0,0,0,0,0,0, -0,0,0,0,0,20,20,20,20,0,0,0,0,0,0,0, +344,344,254,344,344,344,344,345,0,0,0,0,0,0,0,0, +344,254,344,344,344,344,254,345,0,0,0,0,0,0,0,0, +362,362,362,362,362,362,362,363,0,0,0,0,299,299,0,0, +0,0,0,299,299,299,299,299,0,299,299,299,429,299,0,0, +0,0,0,299,299,299,299,299,299,299,299,299,299,299,0,0, +0,0,299,299,299,299,299,299,299,299,299,299,300,299,0,0, +0,0,299,299,299,299,300,299,299,300,299,299,299,0,0,0, +0,0,0,299,299,299,299,299,299,299,300,299,299,0,0,0, +0,0,0,299,299,429,299,299,299,299,299,299,299,299,0,299, +0,0,0,299,299,299,299,300,299,299,299,299,299,299,299,299, +0,0,0,299,299,299,299,299,299,300,299,299,429,299,299,299, +0,0,0,299,299,299,299,299,299,299,299,299,299,299,300,299, +0,299,299,299,299,299,300,299,299,299,299,299,299,299,299,299, +0,0,299,299,299,299,299,299,299,299,299,299,299,299,299,299, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 @@ -28,17 +83,22 @@ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,20,20,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,20,20,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,299,299,299,0,0,0,0,0,0,0,0,0,0, +299,299,299,299,299,299,0,0,0,0,0,0,0,0,0,0, +0,0,299,299,299,299,299,0,0,0,0,0,0,0,0,0, +299,299,299,299,299,299,299,0,0,0,0,0,0,0,0,0, +299,299,299,299,299,299,0,0,0,0,0,0,0,0,0,0, +299,299,299,299,299,0,0,0,0,0,0,0,0,0,0,0, +299,299,299,0,0,0,0,0,0,0,0,0,0,0,0,0, +299,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + + diff --git a/src/assets/tilemap.tsx b/src/assets/tilemap.tsx index b66a44d..9c9efde 100644 --- a/src/assets/tilemap.tsx +++ b/src/assets/tilemap.tsx @@ -1,4 +1,4 @@ - + diff --git a/src/engine/frame.zig b/src/engine/frame.zig index 22f5a28..0d879ef 100644 --- a/src/engine/frame.zig +++ b/src/engine/frame.zig @@ -11,6 +11,7 @@ const AudioData = AudioSystem.Data; const AudioCommand = AudioSystem.Command; const GraphicsSystem = @import("./graphics.zig"); +const TextureId = GraphicsSystem.TextureId; const GraphicsCommand = GraphicsSystem.Command; const Font = GraphicsSystem.Font; @@ -174,7 +175,7 @@ fn pushAudioCommand(self: *Frame, command: AudioCommand) void { }; } -fn pushGraphicsCommand(self: *Frame, command: GraphicsCommand) void { +pub fn pushGraphicsCommand(self: *Frame, command: GraphicsCommand) void { const arena = self.arena.allocator(); self.graphics.commands.append(arena, command) catch |e|{ @@ -182,6 +183,14 @@ fn pushGraphicsCommand(self: *Frame, command: GraphicsCommand) void { }; } +pub fn prependGraphicsCommand(self: *Frame, command: GraphicsCommand) void { + const arena = self.arena.allocator(); + + self.graphics.commands.insert(arena, 0, command) catch |e|{ + log.warn("Failed to push graphics command: {}", .{e}); + }; +} + pub fn playAudio(self: *Frame, options: PlayAudioOptions) !void { self.pushAudioCommand(.{ .play = .{ @@ -211,14 +220,17 @@ pub fn popScissor(self: *Frame) void { }); } -pub fn drawRectangle(self: *Frame, pos: Vec2, size: Vec2, color: Vec4) void { - self.pushGraphicsCommand(.{ - .draw_rectangle = .{ - .pos = pos, - .size = size, - .color = color - } - }); +const DrawRectangleOptions = struct { + rect: Rect, + color: Vec4, + texture: ?struct { + id: TextureId, + uv: Rect, + } = null +}; + +pub fn drawRectangle(self: *Frame, opts: GraphicsCommand.DrawRectangle) void { + self.pushGraphicsCommand(.{ .draw_rectangle = opts }); } pub fn drawLine(self: *Frame, pos1: Vec2, pos2: Vec2, color: Vec4, width: f32) void { diff --git a/src/engine/graphics.zig b/src/engine/graphics.zig index 4b56b13..ff070bc 100644 --- a/src/engine/graphics.zig +++ b/src/engine/graphics.zig @@ -42,12 +42,17 @@ const Options = struct { }; pub const Command = union(enum) { + pub const DrawRectangle = struct { + rect: Rect, + color: Vec4, + texture: ?struct { + id: TextureId, + uv: Rect, + } = null + }; + set_scissor: Rect, - draw_rectangle: struct { - pos: Vec2, - size: Vec2, - color: Vec4 - }, + draw_rectangle: DrawRectangle, draw_line: struct { pos1: Vec2, pos2: Vec2, @@ -68,15 +73,40 @@ pub const Command = union(enum) { pop_transformation: void }; +const Texture = struct { + image: sg.Image, + view: sg.View, + info: Info, + + const Info = struct { + width: u32, + height: u32, + }; + + const Id = enum(u32) { _ }; + const Data = struct { + width: u32, + height: u32, + rgba: [*]u8 + }; +}; +pub const TextureId = Texture.Id; +pub const TextureInfo = Texture.Info; + +var gpa: std.mem.Allocator = undefined; + var main_pipeline: sgl.Pipeline = .{}; var linear_sampler: sg.Sampler = .{}; var nearest_sampler: sg.Sampler = .{}; var font_context: fontstash.Context = undefined; +var textures: std.ArrayList(Texture) = .empty; var scale_stack_buffer: [32]Vec2 = undefined; var scale_stack: std.ArrayList(Vec2) = .empty; pub fn init(options: Options) !void { + gpa = options.allocator; + sg.setup(.{ .logger = options.logger, .environment = sglue.environment(), @@ -148,6 +178,7 @@ pub fn init(options: Options) !void { } pub fn deinit() void { + textures.deinit(gpa); imgui.shutdown(); font_context.deinit(); sgl.shutdown(); @@ -164,7 +195,7 @@ pub fn drawCommand(command: Command) void { popTransform(); }, .draw_rectangle => |opts| { - drawRectangle(opts.pos, opts.size, opts.color); + drawRectangle(opts); }, .set_scissor => |opts| { sgl.scissorRectf( @@ -270,7 +301,7 @@ pub fn endFrame(clear_color: Vec4) void { sg.commit(); } -pub fn pushTransform(translation: Vec2, scale: Vec2) void { +fn pushTransform(translation: Vec2, scale: Vec2) void { sgl.pushMatrix(); sgl.translate(translation.x, translation.y, 0); sgl.scale(scale.x, scale.y, 1); @@ -278,35 +309,84 @@ pub fn pushTransform(translation: Vec2, scale: Vec2) void { scale_stack.appendAssumeCapacity(scale_stack.getLast().multiply(scale)); } -pub fn popTransform() void { +fn popTransform() void { sgl.popMatrix(); _ = scale_stack.pop().?; } -fn drawQuad(quad: [4]Vec2, color: Vec4) void { +const Vertex = struct { + pos: Vec2, + uv: Vec2 +}; + +fn drawQuad(quad: [4]Vertex, color: Vec4, texture_id: TextureId) void { + sgl.enableTexture(); + defer sgl.disableTexture(); + + const view = textures.items[@intFromEnum(texture_id)].view; + // TODO: Make sampler configurable + sgl.texture(view, nearest_sampler); + sgl.beginQuads(); defer sgl.end(); sgl.c4f(color.x, color.y, color.z, color.w); - for (quad) |position| { - sgl.v2f(position.x, position.y); + for (quad) |vertex| { + const pos = vertex.pos; + const uv = vertex.uv; + sgl.v2fT2f(pos.x, pos.y, uv.x, uv.y); } } -pub fn drawRectangle(pos: Vec2, size: Vec2, color: Vec4) void { - drawQuad( - .{ - // Top left - pos, - // Top right - pos.add(.{ .x = size.x, .y = 0 }), - // Bottom right - pos.add(size), - // Bottom left - pos.add(.{ .x = 0, .y = size.y }), - }, - color - ); +fn drawQuadNoUVs(quad: [4]Vec2, color: Vec4) void { + sgl.beginQuads(); + defer sgl.end(); + + sgl.c4f(color.x, color.y, color.z, color.w); + for (quad) |pos| { + sgl.v2f(pos.x, pos.y); + } +} + +fn drawRectangle(opts: Command.DrawRectangle) void { + const pos = opts.rect.pos; + const size = opts.rect.size; + + const top_left = pos; + const top_right = pos.add(.{ .x = size.x, .y = 0 }); + const bottom_right = pos.add(size); + const bottom_left = pos.add(.{ .x = 0, .y = size.y }); + + if (opts.texture) |texture| { + const uv = texture.uv; + const quad = [4]Vertex{ + .{ + .pos = top_left, + .uv = .init(uv.left(), uv.top()) + }, + .{ + .pos = top_right, + .uv = .init(uv.right(), uv.top()) + }, + .{ + .pos = bottom_right, + .uv = .init(uv.right(), uv.bottom()) + }, + .{ + .pos = bottom_left, + .uv = .init(uv.left(), uv.bottom()) + } + }; + drawQuad(quad, opts.color, texture.id); + } else { + const quad = .{ + top_left, + top_right, + bottom_right, + bottom_left + }; + drawQuadNoUVs(quad, opts.color); + } } fn drawLine(from: Vec2, to: Vec2, color: Vec4, width: f32) void { @@ -317,7 +397,7 @@ fn drawLine(from: Vec2, to: Vec2, color: Vec4, width: f32) void { const top_right = to.add(step.rotateLeft90()); const bottom_right = to.add(step.rotateRight90()); - drawQuad( + drawQuadNoUVs( .{ top_right, top_left, bottom_left, bottom_right }, color ); @@ -326,3 +406,71 @@ fn drawLine(from: Vec2, to: Vec2, color: Vec4, width: f32) void { pub fn addFont(name: [*c]const u8, data: []const u8) !Font.Id { return try font_context.addFont(name, data); } + +fn makeView(image: sg.Image) !sg.View { + const image_view = sg.makeView(.{ + .texture = .{ .image = image } + }); + if (image_view.id == sg.invalid_id) { + return error.InvalidView; + } + return image_view; +} + +fn makeImageWithMipMaps(mipmaps: []const Texture.Data) !sg.Image { + if (mipmaps.len == 0) { + return error.NoMipMaps; + } + + var data: sg.ImageData = .{}; + var mip_levels: std.ArrayListUnmanaged(sg.Range) = .initBuffer(&data.mip_levels); + + for (mipmaps) |mipmap| { + try mip_levels.appendBounded(.{ + .ptr = mipmap.rgba, + .size = mipmap.width * mipmap.height * 4 + }); + } + + const image = sg.makeImage(.{ + .width = @intCast(mipmaps[0].width), + .height = @intCast(mipmaps[0].height), + .pixel_format = .RGBA8, + .usage = .{ + .immutable = true + }, + .num_mipmaps = @intCast(mip_levels.items.len), + .data = data + }); + if (image.id == sg.invalid_id) { + return error.InvalidImage; + } + + return image; +} + +pub fn addTexture(mipmaps: []const Texture.Data) !TextureId { + const image = try makeImageWithMipMaps(mipmaps); + errdefer sg.deallocImage(image); + + const view = try makeView(image); + errdefer sg.deallocView(view); + + assert(mipmaps.len > 0); + const index = textures.items.len; + try textures.append(gpa, .{ + .image = image, + .view = view, + .info = .{ + .width = mipmaps[0].width, + .height = mipmaps[0].height, + } + }); + + return @enumFromInt(index); +} + +pub fn getTextureInfo(id: TextureId) TextureInfo { + const texture = textures.items[@intFromEnum(id)]; + return texture.info; +} diff --git a/src/engine/math.zig b/src/engine/math.zig index f620d92..e38d759 100644 --- a/src/engine/math.zig +++ b/src/engine/math.zig @@ -22,6 +22,10 @@ pub const Vec2 = extern struct { }; } + pub fn initFromInt(T: type, x: T, y: T) Vec2 { + return .init(@floatFromInt(x), @floatFromInt(y)); + } + pub fn initAngle(angle: f32) Vec2 { return Vec2{ .x = @cos(angle), diff --git a/src/engine/root.zig b/src/engine/root.zig index bc7b691..faacfcc 100644 --- a/src/engine/root.zig +++ b/src/engine/root.zig @@ -7,6 +7,7 @@ const sapp = sokol.app; pub const Math = @import("./math.zig"); pub const Vec2 = Math.Vec2; +const rgb = Math.rgb; pub const Input = @import("./input.zig"); @@ -156,19 +157,22 @@ fn sokolFrame(self: *Engine) !void { const frame = &self.frame; + const screen_size = Vec2.init(sapp.widthf(), sapp.heightf()); + { _ = frame.arena.reset(.retain_capacity); + const arena = frame.arena.allocator(); const audio_commands_capacity = frame.audio.commands.capacity; frame.audio = .empty; - try frame.audio.commands.ensureTotalCapacity(frame.arena.allocator(), audio_commands_capacity); + try frame.audio.commands.ensureTotalCapacity(arena, audio_commands_capacity); const graphics_commands_capacity = frame.graphics.commands.capacity; const scissor_stack_capacity = frame.graphics.scissor_stack.capacity; frame.graphics = .empty; - frame.graphics.screen_size = .init(sapp.widthf(), sapp.heightf()); - try frame.graphics.commands.ensureTotalCapacity(frame.arena.allocator(), graphics_commands_capacity); - try frame.graphics.scissor_stack.ensureTotalCapacity(frame.arena.allocator(), scissor_stack_capacity); + frame.graphics.screen_size = screen_size; + try frame.graphics.commands.ensureTotalCapacity(arena, graphics_commands_capacity); + try frame.graphics.scissor_stack.ensureTotalCapacity(arena, scissor_stack_capacity); frame.pushScissor(.init(0, 0, sapp.widthf(), sapp.heightf())); frame.time_ns = time_passed; @@ -180,24 +184,24 @@ fn sokolFrame(self: *Engine) !void { frame.input.released_keys = .initEmpty(); } + if (self.frame.graphics.canvas_size) |canvas_size| { + _ = ScreenScalar.apply( + &self.frame, + screen_size, + canvas_size, + rgb(0, 0, 0), + ); + } + { Gfx.beginFrame(); defer Gfx.endFrame(frame.graphics.clear_color); - { - var screen_scaler: ?ScreenScalar = null; - if (self.frame.graphics.canvas_size) |canvas_size| { - screen_scaler = ScreenScalar.push(self.frame.graphics.screen_size, canvas_size); - } - - Gfx.drawCommands(frame.graphics.commands.items); - - if (screen_scaler) |ctx| ctx.pop(); - } + Gfx.drawCommands(frame.graphics.commands.items); if (frame.show_debug) { try self.game.debug(); - try showDebugWindow(); + try showDebugWindow(&self.frame); } } @@ -206,7 +210,7 @@ fn sokolFrame(self: *Engine) !void { } } -fn showDebugWindow() !void { +fn showDebugWindow(frame: *Frame) !void { if (!imgui.beginWindow(.{ .name = "Engine", .pos = Vec2.init(240, 20), @@ -216,6 +220,9 @@ fn showDebugWindow() !void { } defer imgui.endWindow(); + imgui.textFmt("Draw commands: {}\n", .{ + frame.graphics.commands.items.len, + }); imgui.textFmt("Audio instances: {}/{}\n", .{ Audio.mixer.instances.items.len, Audio.mixer.instances.capacity diff --git a/src/engine/screen_scaler.zig b/src/engine/screen_scaler.zig index e795f93..405b990 100644 --- a/src/engine/screen_scaler.zig +++ b/src/engine/screen_scaler.zig @@ -2,19 +2,26 @@ const Gfx = @import("./graphics.zig"); const Math = @import("./math.zig"); const Vec2 = Math.Vec2; +const Vec4 = Math.Vec4; const rgb = Math.rgb; +const Frame = @import("./frame.zig"); + const ScreenScalar = @This(); // TODO: Implement a fractional pixel perfect scalar // Based on this video: https://www.youtube.com/watch?v=d6tp43wZqps // And this blog: https://colececil.dev/blog/2017/scaling-pixel-art-without-destroying-it/ -window_size: Vec2, translation: Vec2, scale: f32, -pub fn push(window_size: Vec2, canvas_size: Vec2) ScreenScalar { +pub fn apply( + frame: *Frame, + window_size: Vec2, + canvas_size: Vec2, + color: Vec4 +) ScreenScalar { // TODO: Render to a lower resolution instead of scaling. // To avoid pixel bleeding in spritesheet artifacts const scale = @floor(@min( @@ -26,42 +33,48 @@ pub fn push(window_size: Vec2, canvas_size: Vec2) ScreenScalar { translation.x = @round(translation.x); translation.y = @round(translation.y); - Gfx.pushTransform(translation, .init(scale, scale)); + frame.prependGraphicsCommand(.{ + .push_transformation = .{ + .translation = translation, + .scale = .init(scale, scale) + } + }); + frame.popTransform(); + + frame.drawRectangle(.{ + .rect = .{ + .pos = .init(0, 0), + .size = .init(window_size.x, translation.y), + }, + .color = color + }); + + frame.drawRectangle(.{ + .rect = .{ + .pos = .init(0, window_size.y - translation.y), + .size = .init(window_size.x, translation.y), + }, + .color = color + }); + + frame.drawRectangle(.{ + .rect = .{ + .pos = .init(0, 0), + .size = .init(translation.x, window_size.y), + }, + .color = color + }); + + frame.drawRectangle(.{ + .rect = .{ + .pos = .init(window_size.x - translation.x, 0), + .size = .init(translation.x, window_size.y), + }, + .color = color + }); return ScreenScalar{ - .window_size = window_size, .translation = translation, .scale = scale }; } - -pub fn pop(self: ScreenScalar) void { - Gfx.popTransform(); - - const bg_color = rgb(0, 0, 0); - const filler_size = self.translation; - - Gfx.drawRectangle( - .init(0, 0), - .init(self.window_size.x, filler_size.y), - bg_color - ); - - Gfx.drawRectangle( - .init(0, self.window_size.y - filler_size.y), - .init(self.window_size.x, filler_size.y), - bg_color - ); - - Gfx.drawRectangle( - .init(0, 0), - .init(filler_size.x, self.window_size.y), - bg_color - ); - - Gfx.drawRectangle( - .init(self.window_size.x - filler_size.x, 0), - .init(filler_size.x, self.window_size.y), - bg_color - ); -} diff --git a/src/game.zig b/src/game.zig index e54c647..8977237 100644 --- a/src/game.zig +++ b/src/game.zig @@ -7,6 +7,7 @@ const Assets = @import("./assets.zig"); const Engine = @import("./engine/root.zig"); const imgui = Engine.imgui; const Vec2 = Engine.Vec2; +const Rect = Engine.Math.Rect; const rgb = Engine.Math.rgb; const Game = @This(); @@ -20,7 +21,7 @@ pub fn init(gpa: Allocator, assets: *Assets) !Game { return Game{ .gpa = gpa, .assets = assets, - .player = .init(50, 50) + .player = findSpawnpoint(assets) orelse .init(0, 0) }; } @@ -28,16 +29,100 @@ pub fn deinit(self: *Game) void { _ = self; // autofix } + +fn findSpawnpoint(assets: *Assets) ?Vec2 { + const map = assets.map; + for (map.layers) |layer| { + if (layer.variant != .object) { + continue; + } + const object_layer = layer.variant.object; + for (object_layer.items) |object| { + if (object.shape != .point) { + continue; + } + const point = object.shape.point; + if (std.mem.eql(u8, object.name, "spawnpoint")) { + const tile_height: f32 = @floatFromInt(map.tile_height); + const tile_width: f32 = @floatFromInt(map.tile_width); + return .init(point.x / tile_width, point.y / tile_height); + } + } + } + return null; +} + +fn drawTilemap(self: *Game, frame: *Engine.Frame) void { + const texture = self.assets.tileset_texture; + const texture_info = Engine.Graphics.getTextureInfo(texture); + + const map = self.assets.map; + + const tile_size = Vec2.init(1, 1); + for (map.layers) |layer| { + if (layer.variant != .tile) { + continue; + } + + const tile_layer = layer.variant.tile; + const layer_bounds = tile_layer.getBounds(); + for (0..layer_bounds.height()) |oy| { + const y = layer_bounds.top + @as(i32, @intCast(oy)); + + for (0..layer_bounds.width()) |ox| { + const x = layer_bounds.left + @as(i32, @intCast(ox)); + const tile_gid = tile_layer.get(x, y) orelse continue; + const tile = map.getTile(self.assets.tilesets, tile_gid) orelse continue; + + const tilemap_width_in_tiles = @divExact(texture_info.width, tile.tileset.tile_width); + var uv: Rect = .{ + .pos = Vec2.initFromInt( + u32, + @rem(tile.id, tilemap_width_in_tiles), + @divFloor(tile.id, tilemap_width_in_tiles), + ).multiply( + .initFromInt(u32, tile.tileset.tile_width, tile.tileset.tile_height) + ), + .size = self.assets.tile_size, + }; + uv = uv.divide(.init(@floatFromInt(texture_info.width), @floatFromInt(texture_info.height))); + + var rect = Rect{ + .pos = .init(@floatFromInt(x), @floatFromInt(y)), + .size = .init(1, 1) + }; + rect = rect.multiply(tile_size); + + frame.drawRectangle(.{ + .rect = rect, + .color = rgb(255, 255, 255), + .texture = .{ + .id = self.assets.tileset_texture, + .uv = uv + } + }); + } + } + // map.getTile(layer, tilesets) + } +} + pub fn tick(self: *Game, frame: *Engine.Frame) !void { const dt = frame.deltaTime(); - const canvas_size = Vec2.init(100, 100); + const canvas_size = Vec2.init(20, 15); frame.graphics.canvas_size = canvas_size; if (frame.isKeyPressed(.F3)) { frame.show_debug = !frame.show_debug; } + frame.pushTransform( + canvas_size.divideScalar(2).sub(self.player), + .init(1, 1) + ); + defer frame.popTransform(); + var dir = Vec2.init(0, 0); if (frame.isKeyDown(.W)) { dir.y -= 1; @@ -53,44 +138,41 @@ pub fn tick(self: *Game, frame: *Engine.Frame) !void { } dir = dir.normalized(); - if (dir.x != 0 or dir.y != 0) { - try frame.playAudio(.{ - .id = self.assets.wood01 - }); - } + // if (dir.x != 0 or dir.y != 0) { + // try frame.playAudio(.{ + // .id = self.assets.wood01 + // }); + // } - self.player = self.player.add(dir.multiplyScalar(50 * dt)); + self.player = self.player.add(dir.multiplyScalar(5 * dt)); const regular_font = self.assets.font_id.get(.regular); - frame.drawRectangle(.init(0, 0), canvas_size, rgb(20, 20, 20)); - const size = Vec2.init(20, 20); - frame.drawRectangle(self.player.sub(size.divideScalar(2)), size, rgb(200, 20, 20)); + self.drawTilemap(frame); + + frame.drawRectangle(.{ + .rect = .init(0, 0, canvas_size.x, canvas_size.y), + .color = rgb(20, 20, 20) + }); + const size = Vec2.init(1, 1); + frame.drawRectangle(.{ + .rect = .{ + .pos = self.player.sub(size.divideScalar(2)), + .size = size, + }, + .color = rgb(200, 20, 20) + }); if (dir.x != 0 or dir.y != 0) { - frame.drawRectanglOutline(self.player.sub(size.divideScalar(2)), size, rgb(20, 200, 20), 3); + frame.drawRectanglOutline(self.player.sub(size.divideScalar(2)), size, rgb(20, 200, 20), 0.1); } frame.drawText(self.player, "Player", .{ .font = regular_font, - .size = 10 + .size = 1 }); - - const map = self.assets.map; - const tilesets = self.assets.tilesets; - _ = tilesets; // autofix - - for (map.layers) |layer| { - if (layer.variant != .tile) { - continue; - } - const tile_layer = layer.variant.tile; - _ = tile_layer; // autofix - // map.getTile(layer, tilesets) - } } pub fn debug(self: *Game) !void { - _ = self; // autofix if (!imgui.beginWindow(.{ .name = "Game", .pos = Vec2.init(20, 20), @@ -100,5 +182,5 @@ pub fn debug(self: *Game) !void { } defer imgui.endWindow(); - imgui.text("Hello World!\n"); + imgui.textFmt("Position: {}, {}", .{ self.player.x, self.player.y }); }