From 2c1127e1522dca89c6710dda0b5e64d8ab89686d Mon Sep 17 00:00:00 2001 From: "Somhairle H. Marisol" Date: Mon, 21 Sep 2026 14:34:09 +0800 Subject: feat(assets): CC0 素材接入与制作管线 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit third_party 收录 Kenney Tiny Farm(CC0,来源 kenney.nl,sha256 a06f75f3…)与 Puny Characters(CC0,opengameart 作者 Shade,sha256 971d7b07…),上游名未改,License 原文保留于包内;新增 scripts/make-cc0-art.py 确定性管线:Kenney 地块 16px → 2x 32px 整数放大(草亮/草深/路径/泥地四块 128x32 图集),Puny 角色 16x24 内容带 2x 精确映射 32x48(2560x48 图集,变体/方向/帧几何与江南人物一致;仅南向素材——北向沿用原朝向、西/东镜像,限制已在脚本注释与 provenance 记录)。 --- .gitignore | 1 + scripts/make-cc0-art.py | 170 +++++++++++ .../LivingVillage.Desktop.Tests.fsproj | 2 + .../Assets/cc0-characters.png | Bin 0 -> 4197 bytes src/LivingVillage.Desktop/Assets/cc0-tiles.png | Bin 0 -> 524 bytes .../LivingVillage.Desktop.fsproj | 2 + third_party/PROVENANCE.md | 16 + third_party/kenney_tiny-farm.zip | Bin 0 -> 191128 bytes third_party/kenney_tiny-farm/License.txt | 22 ++ third_party/kenney_tiny-farm/More Tiny packs.url | 6 + third_party/kenney_tiny-farm/Preview.png | Bin 0 -> 18809 bytes third_party/kenney_tiny-farm/Sample.png | Bin 0 -> 116315 bytes third_party/kenney_tiny-farm/Tilemap/tilemap.png | Bin 0 -> 6150 bytes .../kenney_tiny-farm/Tilemap/tilemap_packed.png | Bin 0 -> 5866 bytes third_party/kenney_tiny-farm/Tiles/tile_0000.png | Bin 0 -> 164 bytes third_party/kenney_tiny-farm/Tiles/tile_0001.png | Bin 0 -> 164 bytes third_party/kenney_tiny-farm/Tiles/tile_0002.png | Bin 0 -> 185 bytes third_party/kenney_tiny-farm/Tiles/tile_0003.png | Bin 0 -> 173 bytes third_party/kenney_tiny-farm/Tiles/tile_0004.png | Bin 0 -> 153 bytes third_party/kenney_tiny-farm/Tiles/tile_0005.png | Bin 0 -> 163 bytes third_party/kenney_tiny-farm/Tiles/tile_0006.png | Bin 0 -> 186 bytes third_party/kenney_tiny-farm/Tiles/tile_0007.png | Bin 0 -> 170 bytes third_party/kenney_tiny-farm/Tiles/tile_0008.png | Bin 0 -> 208 bytes third_party/kenney_tiny-farm/Tiles/tile_0009.png | Bin 0 -> 210 bytes third_party/kenney_tiny-farm/Tiles/tile_0010.png | Bin 0 -> 196 bytes third_party/kenney_tiny-farm/Tiles/tile_0011.png | Bin 0 -> 212 bytes third_party/kenney_tiny-farm/Tiles/tile_0012.png | Bin 0 -> 150 bytes third_party/kenney_tiny-farm/Tiles/tile_0013.png | Bin 0 -> 150 bytes third_party/kenney_tiny-farm/Tiles/tile_0014.png | Bin 0 -> 181 bytes third_party/kenney_tiny-farm/Tiles/tile_0015.png | Bin 0 -> 208 bytes third_party/kenney_tiny-farm/Tiles/tile_0016.png | Bin 0 -> 146 bytes third_party/kenney_tiny-farm/Tiles/tile_0017.png | Bin 0 -> 178 bytes third_party/kenney_tiny-farm/Tiles/tile_0018.png | Bin 0 -> 195 bytes third_party/kenney_tiny-farm/Tiles/tile_0019.png | Bin 0 -> 177 bytes third_party/kenney_tiny-farm/Tiles/tile_0020.png | Bin 0 -> 222 bytes third_party/kenney_tiny-farm/Tiles/tile_0021.png | Bin 0 -> 206 bytes third_party/kenney_tiny-farm/Tiles/tile_0022.png | Bin 0 -> 193 bytes third_party/kenney_tiny-farm/Tiles/tile_0023.png | Bin 0 -> 225 bytes third_party/kenney_tiny-farm/Tiles/tile_0024.png | Bin 0 -> 129 bytes third_party/kenney_tiny-farm/Tiles/tile_0025.png | Bin 0 -> 129 bytes third_party/kenney_tiny-farm/Tiles/tile_0026.png | Bin 0 -> 156 bytes third_party/kenney_tiny-farm/Tiles/tile_0027.png | Bin 0 -> 200 bytes third_party/kenney_tiny-farm/Tiles/tile_0028.png | Bin 0 -> 165 bytes third_party/kenney_tiny-farm/Tiles/tile_0029.png | Bin 0 -> 187 bytes third_party/kenney_tiny-farm/Tiles/tile_0030.png | Bin 0 -> 207 bytes third_party/kenney_tiny-farm/Tiles/tile_0031.png | Bin 0 -> 191 bytes third_party/kenney_tiny-farm/Tiles/tile_0032.png | Bin 0 -> 207 bytes third_party/kenney_tiny-farm/Tiles/tile_0033.png | Bin 0 -> 208 bytes third_party/kenney_tiny-farm/Tiles/tile_0034.png | Bin 0 -> 194 bytes third_party/kenney_tiny-farm/Tiles/tile_0035.png | Bin 0 -> 213 bytes third_party/kenney_tiny-farm/Tiles/tile_0036.png | Bin 0 -> 148 bytes third_party/kenney_tiny-farm/Tiles/tile_0037.png | Bin 0 -> 148 bytes third_party/kenney_tiny-farm/Tiles/tile_0038.png | Bin 0 -> 171 bytes third_party/kenney_tiny-farm/Tiles/tile_0039.png | Bin 0 -> 178 bytes third_party/kenney_tiny-farm/Tiles/tile_0040.png | Bin 0 -> 158 bytes third_party/kenney_tiny-farm/Tiles/tile_0041.png | Bin 0 -> 187 bytes third_party/kenney_tiny-farm/Tiles/tile_0042.png | Bin 0 -> 217 bytes third_party/kenney_tiny-farm/Tiles/tile_0043.png | Bin 0 -> 205 bytes third_party/kenney_tiny-farm/Tiles/tile_0044.png | Bin 0 -> 195 bytes third_party/kenney_tiny-farm/Tiles/tile_0045.png | Bin 0 -> 206 bytes third_party/kenney_tiny-farm/Tiles/tile_0046.png | Bin 0 -> 192 bytes third_party/kenney_tiny-farm/Tiles/tile_0047.png | Bin 0 -> 212 bytes third_party/kenney_tiny-farm/Tiles/tile_0048.png | Bin 0 -> 157 bytes third_party/kenney_tiny-farm/Tiles/tile_0049.png | Bin 0 -> 149 bytes third_party/kenney_tiny-farm/Tiles/tile_0050.png | Bin 0 -> 146 bytes third_party/kenney_tiny-farm/Tiles/tile_0051.png | Bin 0 -> 165 bytes third_party/kenney_tiny-farm/Tiles/tile_0052.png | Bin 0 -> 150 bytes third_party/kenney_tiny-farm/Tiles/tile_0053.png | Bin 0 -> 169 bytes third_party/kenney_tiny-farm/Tiles/tile_0054.png | Bin 0 -> 189 bytes third_party/kenney_tiny-farm/Tiles/tile_0055.png | Bin 0 -> 186 bytes third_party/kenney_tiny-farm/Tiles/tile_0056.png | Bin 0 -> 191 bytes third_party/kenney_tiny-farm/Tiles/tile_0057.png | Bin 0 -> 207 bytes third_party/kenney_tiny-farm/Tiles/tile_0058.png | Bin 0 -> 193 bytes third_party/kenney_tiny-farm/Tiles/tile_0059.png | Bin 0 -> 212 bytes third_party/kenney_tiny-farm/Tiles/tile_0060.png | Bin 0 -> 157 bytes third_party/kenney_tiny-farm/Tiles/tile_0061.png | Bin 0 -> 149 bytes third_party/kenney_tiny-farm/Tiles/tile_0062.png | Bin 0 -> 146 bytes third_party/kenney_tiny-farm/Tiles/tile_0063.png | Bin 0 -> 165 bytes third_party/kenney_tiny-farm/Tiles/tile_0064.png | Bin 0 -> 162 bytes third_party/kenney_tiny-farm/Tiles/tile_0065.png | Bin 0 -> 176 bytes third_party/kenney_tiny-farm/Tiles/tile_0066.png | Bin 0 -> 185 bytes third_party/kenney_tiny-farm/Tiles/tile_0067.png | Bin 0 -> 185 bytes third_party/kenney_tiny-farm/Tiles/tile_0068.png | Bin 0 -> 192 bytes third_party/kenney_tiny-farm/Tiles/tile_0069.png | Bin 0 -> 203 bytes third_party/kenney_tiny-farm/Tiles/tile_0070.png | Bin 0 -> 189 bytes third_party/kenney_tiny-farm/Tiles/tile_0071.png | Bin 0 -> 205 bytes third_party/kenney_tiny-farm/Tiles/tile_0072.png | Bin 0 -> 212 bytes third_party/kenney_tiny-farm/Tiles/tile_0073.png | Bin 0 -> 230 bytes third_party/kenney_tiny-farm/Tiles/tile_0074.png | Bin 0 -> 193 bytes third_party/kenney_tiny-farm/Tiles/tile_0075.png | Bin 0 -> 207 bytes third_party/kenney_tiny-farm/Tiles/tile_0076.png | Bin 0 -> 174 bytes third_party/kenney_tiny-farm/Tiles/tile_0077.png | Bin 0 -> 196 bytes third_party/kenney_tiny-farm/Tiles/tile_0078.png | Bin 0 -> 194 bytes third_party/kenney_tiny-farm/Tiles/tile_0079.png | Bin 0 -> 170 bytes third_party/kenney_tiny-farm/Tiles/tile_0080.png | Bin 0 -> 178 bytes third_party/kenney_tiny-farm/Tiles/tile_0081.png | Bin 0 -> 188 bytes third_party/kenney_tiny-farm/Tiles/tile_0082.png | Bin 0 -> 168 bytes third_party/kenney_tiny-farm/Tiles/tile_0083.png | Bin 0 -> 205 bytes third_party/kenney_tiny-farm/Tiles/tile_0084.png | Bin 0 -> 198 bytes third_party/kenney_tiny-farm/Tiles/tile_0085.png | Bin 0 -> 205 bytes third_party/kenney_tiny-farm/Tiles/tile_0086.png | Bin 0 -> 203 bytes third_party/kenney_tiny-farm/Tiles/tile_0087.png | Bin 0 -> 178 bytes third_party/kenney_tiny-farm/Tiles/tile_0088.png | Bin 0 -> 205 bytes third_party/kenney_tiny-farm/Tiles/tile_0089.png | Bin 0 -> 207 bytes third_party/kenney_tiny-farm/Tiles/tile_0090.png | Bin 0 -> 178 bytes third_party/kenney_tiny-farm/Tiles/tile_0091.png | Bin 0 -> 170 bytes third_party/kenney_tiny-farm/Tiles/tile_0092.png | Bin 0 -> 175 bytes third_party/kenney_tiny-farm/Tiles/tile_0093.png | Bin 0 -> 176 bytes third_party/kenney_tiny-farm/Tiles/tile_0094.png | Bin 0 -> 162 bytes third_party/kenney_tiny-farm/Tiles/tile_0095.png | Bin 0 -> 163 bytes third_party/kenney_tiny-farm/Tiles/tile_0096.png | Bin 0 -> 175 bytes third_party/kenney_tiny-farm/Tiles/tile_0097.png | Bin 0 -> 184 bytes third_party/kenney_tiny-farm/Tiles/tile_0098.png | Bin 0 -> 178 bytes third_party/kenney_tiny-farm/Tiles/tile_0099.png | Bin 0 -> 179 bytes third_party/kenney_tiny-farm/Tiles/tile_0100.png | Bin 0 -> 178 bytes third_party/kenney_tiny-farm/Tiles/tile_0101.png | Bin 0 -> 179 bytes third_party/kenney_tiny-farm/Tiles/tile_0102.png | Bin 0 -> 154 bytes third_party/kenney_tiny-farm/Tiles/tile_0103.png | Bin 0 -> 155 bytes third_party/kenney_tiny-farm/Tiles/tile_0104.png | Bin 0 -> 149 bytes third_party/kenney_tiny-farm/Tiles/tile_0105.png | Bin 0 -> 129 bytes third_party/kenney_tiny-farm/Tiles/tile_0106.png | Bin 0 -> 130 bytes third_party/kenney_tiny-farm/Tiles/tile_0107.png | Bin 0 -> 137 bytes third_party/kenney_tiny-farm/Tiles/tile_0108.png | Bin 0 -> 238 bytes third_party/kenney_tiny-farm/Tiles/tile_0109.png | Bin 0 -> 257 bytes third_party/kenney_tiny-farm/Tiles/tile_0110.png | Bin 0 -> 199 bytes third_party/kenney_tiny-farm/Tiles/tile_0111.png | Bin 0 -> 200 bytes third_party/kenney_tiny-farm/Tiles/tile_0112.png | Bin 0 -> 193 bytes third_party/kenney_tiny-farm/Tiles/tile_0113.png | Bin 0 -> 194 bytes third_party/kenney_tiny-farm/Tiles/tile_0114.png | Bin 0 -> 160 bytes third_party/kenney_tiny-farm/Tiles/tile_0115.png | Bin 0 -> 146 bytes third_party/kenney_tiny-farm/Tiles/tile_0116.png | Bin 0 -> 159 bytes third_party/kenney_tiny-farm/Tiles/tile_0117.png | Bin 0 -> 149 bytes third_party/kenney_tiny-farm/Tiles/tile_0118.png | Bin 0 -> 204 bytes third_party/kenney_tiny-farm/Tiles/tile_0119.png | Bin 0 -> 145 bytes third_party/kenney_tiny-farm/Tiles/tile_0120.png | Bin 0 -> 224 bytes third_party/kenney_tiny-farm/Tiles/tile_0121.png | Bin 0 -> 231 bytes third_party/kenney_tiny-farm/Tiles/tile_0122.png | Bin 0 -> 222 bytes third_party/kenney_tiny-farm/Tiles/tile_0123.png | Bin 0 -> 207 bytes third_party/kenney_tiny-farm/Tiles/tile_0124.png | Bin 0 -> 224 bytes third_party/kenney_tiny-farm/Tiles/tile_0125.png | Bin 0 -> 183 bytes third_party/kenney_tiny-farm/Tiles/tile_0126.png | Bin 0 -> 181 bytes third_party/kenney_tiny-farm/Tiles/tile_0127.png | Bin 0 -> 175 bytes third_party/kenney_tiny-farm/Tiles/tile_0128.png | Bin 0 -> 179 bytes third_party/kenney_tiny-farm/Tiles/tile_0129.png | Bin 0 -> 174 bytes third_party/kenney_tiny-farm/Tiles/tile_0130.png | Bin 0 -> 121 bytes third_party/kenney_tiny-farm/Tiles/tile_0131.png | Bin 0 -> 181 bytes third_party/kenney_tiny-farm/Tilesheet.txt | 9 + third_party/kenney_tiny-farm/Visit Kenney.url | 2 + third_party/kenney_tiny-farm/Visit Patreon.url | 2 + third_party/kenney_tiny-farm/_source-page.html | 328 +++++++++++++++++++++ third_party/puny-characters.zip | Bin 0 -> 235985 bytes third_party/puny-characters/PROVENANCE.md | 11 + .../Puny-Characters/Archer-Green.png | Bin 0 -> 26723 bytes .../Puny-Characters/Archer-Purple.png | Bin 0 -> 27415 bytes .../Puny-Characters/Character-Base.png | Bin 0 -> 19255 bytes .../Puny-Characters/Environment/Dirt.png | Bin 0 -> 651 bytes .../Puny-Characters/Environment/Grass1.png | Bin 0 -> 581 bytes .../Puny-Characters/Environment/Grass2.png | Bin 0 -> 581 bytes .../Puny-Characters/Environment/Tree.png | Bin 0 -> 812 bytes .../puny-characters/Puny-Characters/Mage-Cyan.png | Bin 0 -> 23811 bytes .../puny-characters/Puny-Characters/Mage-Red.png | Bin 0 -> 24230 bytes .../puny-characters/Puny-Characters/Slime.png | Bin 0 -> 1895 bytes .../Puny-Characters/Soldier-Blue.png | Bin 0 -> 25043 bytes .../Puny-Characters/Soldier-Red.png | Bin 0 -> 24825 bytes .../Puny-Characters/Soldier-Yellow.png | Bin 0 -> 25193 bytes .../Puny-Characters/Warrior-Blue.png | Bin 0 -> 24494 bytes .../Puny-Characters/Warrior-Red.png | Bin 0 -> 24614 bytes third_party/puny-characters/_source-page.html | 328 +++++++++++++++++++++ 168 files changed, 899 insertions(+) create mode 100644 scripts/make-cc0-art.py create mode 100644 src/LivingVillage.Desktop/Assets/cc0-characters.png create mode 100644 src/LivingVillage.Desktop/Assets/cc0-tiles.png create mode 100644 third_party/PROVENANCE.md create mode 100644 third_party/kenney_tiny-farm.zip create mode 100644 third_party/kenney_tiny-farm/License.txt create mode 100644 third_party/kenney_tiny-farm/More Tiny packs.url create mode 100644 third_party/kenney_tiny-farm/Preview.png create mode 100644 third_party/kenney_tiny-farm/Sample.png create mode 100644 third_party/kenney_tiny-farm/Tilemap/tilemap.png create mode 100644 third_party/kenney_tiny-farm/Tilemap/tilemap_packed.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0000.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0001.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0002.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0003.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0004.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0005.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0006.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0007.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0008.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0009.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0010.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0011.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0012.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0013.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0014.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0015.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0016.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0017.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0018.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0019.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0020.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0021.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0022.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0023.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0024.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0025.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0026.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0027.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0028.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0029.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0030.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0031.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0032.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0033.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0034.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0035.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0036.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0037.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0038.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0039.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0040.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0041.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0042.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0043.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0044.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0045.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0046.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0047.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0048.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0049.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0050.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0051.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0052.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0053.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0054.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0055.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0056.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0057.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0058.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0059.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0060.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0061.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0062.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0063.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0064.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0065.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0066.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0067.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0068.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0069.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0070.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0071.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0072.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0073.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0074.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0075.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0076.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0077.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0078.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0079.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0080.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0081.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0082.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0083.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0084.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0085.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0086.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0087.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0088.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0089.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0090.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0091.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0092.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0093.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0094.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0095.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0096.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0097.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0098.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0099.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0100.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0101.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0102.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0103.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0104.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0105.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0106.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0107.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0108.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0109.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0110.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0111.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0112.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0113.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0114.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0115.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0116.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0117.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0118.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0119.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0120.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0121.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0122.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0123.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0124.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0125.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0126.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0127.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0128.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0129.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0130.png create mode 100644 third_party/kenney_tiny-farm/Tiles/tile_0131.png create mode 100644 third_party/kenney_tiny-farm/Tilesheet.txt create mode 100644 third_party/kenney_tiny-farm/Visit Kenney.url create mode 100644 third_party/kenney_tiny-farm/Visit Patreon.url create mode 100644 third_party/kenney_tiny-farm/_source-page.html create mode 100644 third_party/puny-characters.zip create mode 100644 third_party/puny-characters/PROVENANCE.md create mode 100644 third_party/puny-characters/Puny-Characters/Archer-Green.png create mode 100644 third_party/puny-characters/Puny-Characters/Archer-Purple.png create mode 100644 third_party/puny-characters/Puny-Characters/Character-Base.png create mode 100644 third_party/puny-characters/Puny-Characters/Environment/Dirt.png create mode 100644 third_party/puny-characters/Puny-Characters/Environment/Grass1.png create mode 100644 third_party/puny-characters/Puny-Characters/Environment/Grass2.png create mode 100644 third_party/puny-characters/Puny-Characters/Environment/Tree.png create mode 100644 third_party/puny-characters/Puny-Characters/Mage-Cyan.png create mode 100644 third_party/puny-characters/Puny-Characters/Mage-Red.png create mode 100644 third_party/puny-characters/Puny-Characters/Slime.png create mode 100644 third_party/puny-characters/Puny-Characters/Soldier-Blue.png create mode 100644 third_party/puny-characters/Puny-Characters/Soldier-Red.png create mode 100644 third_party/puny-characters/Puny-Characters/Soldier-Yellow.png create mode 100644 third_party/puny-characters/Puny-Characters/Warrior-Blue.png create mode 100644 third_party/puny-characters/Puny-Characters/Warrior-Red.png create mode 100644 third_party/puny-characters/_source-page.html diff --git a/.gitignore b/.gitignore index 143ba78..b98e50f 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ scripts/completion_notify_state.json scripts/__pycache__/ opencode.json.before-luna scripts/m3_state.json.corrupt_* +src/LivingVillage.Desktop/_asset-source/ diff --git a/scripts/make-cc0-art.py b/scripts/make-cc0-art.py new file mode 100644 index 0000000..897ec4f --- /dev/null +++ b/scripts/make-cc0-art.py @@ -0,0 +1,170 @@ +#!/usr/bin/env python3 +"""CC0 asset pack integration (third_party -> game atlases). + +Reads the two provenanced CC0 packs in third_party/ (Kenney Tiny Farm tiles, +Puny Characters) and emits Deterministic CC0 Atlases for the prototype: + + src/LivingVillage.Desktop/Assets/cc0-tiles.png 128x32 (4 ground tiles, 32px each) + src/LivingVillage.Desktop/Assets/cc0-characters.png 2560x48 (5 variants x 4 directions x 4 frames, 32x48 cells) + +Mapping strategy (16 -> 32): integer 2x nearest-neighbour upscale of every source +sprite; ground tiles fill the 32x32 cell exactly; Puny sprites keep their +16x24-ish content band (2x -> 32x48) anchored to the cell bottom. + +Paths anchor to REPO/third_party; all outputs are deterministic (fixed poses, +fixed tiles, NEAREST resampling only). +""" + +from PIL import Image +import struct, zlib, hashlib, subprocess +from pathlib import Path + +REPO = Path(__file__).resolve().parents[1] +THIRD = REPO / "third_party" +DESKTOP = REPO / "src" / "LivingVillage.Desktop" +ASSETS = DESKTOP / "Assets" + +OUTLINE = (23, 31, 34, 255) + + +class Canvas: + def __init__(self, width, height): + self.width = width + self.height = height + self.pixels = [[(0, 0, 0, 0)] * width for _ in range(height)] + + def set(self, x, y, color): + if 0 <= x < self.width and 0 <= y < self.height: + self.pixels[y][x] = color + + def get(self, x, y): + return self.pixels[y][x] + + def blit(self, img, ox, oy, scale=2): + px = img.load() + for y in range(img.height): + for x in range(img.width): + c = img.getpixel((x, y)) + r, g, b, a = c + for dy in range(scale): + for dx in range(scale): + self.set(ox + x * scale + dx, oy + y * scale + dy, (r, g, b, a)) + + +def write_png(path, canvas): + raw = bytearray() + for y in range(canvas.height): + raw.append(0) + for x in range(canvas.width): + raw.extend(canvas.pixels[y][x]) + + def chunk(tag, payload): + return ( + struct.pack(">I", len(payload)) + + tag + + payload + + struct.pack(">I", zlib.crc32(tag + payload) & 0xFFFFFFFF) + ) + + header = struct.pack(">IIBBBBB", canvas.width, canvas.height, 8, 6, 0, 0, 0) + data = ( + b'\x89PNG\r\n\x1a\n' + + chunk(b"IHDR", header) + + chunk(b"IDAT", zlib.compress(bytes(raw), 9)) + + chunk(b"IEND", b"") + ) + path.write_bytes(data) + + +def verify_png(path, expected_w, expected_h): + data = path.read_bytes() + assert data[:8] == b'\x89PNG\r\n\x1a\n', path + width, height = struct.unpack(">II", data[16:24]) + assert (width, height) == (expected_w, expected_h), (path, width, height) + idat = b"" + offset = 8 + while offset < len(data): + (length,) = struct.unpack(">I", data[offset : offset + 4]) + tag = data[offset + 4 : offset + 8] + if tag == b"IDAT": + idat += data[offset + 8 : offset + 8 + length] + offset += 12 + length + raw = zlib.decompress(idat) + stride = expected_w * 4 + 1 + assert len(raw) == stride * expected_h, (path, len(raw)) + print(f"ok {path.name} {width}x{height} bytes={len(data)}") + + +def build_cc0_tile_atlas(): + """Four 32x32 ground tiles from Kenney Tiny Farm, upscaled 2x. + + Tile selection is fixed by grid coordinates chosen from the pack's + tilemap_packed.png (grass: two greens; stone path: pale slab; dirt: apricot). + """ + c = Canvas(128, 32) + packed = Image.open(THIRD / "kenney_tiny-farm" / "Tilemap" / "tilemap_packed.png").convert("RGBA") + + def tile(grid_x, grid_y): + return packed.crop((grid_x * 17, grid_y * 17, grid_x * 17 + 16, grid_y * 17 + 16)) + + choices = [(10, 9), (9, 7), (6, 7), (6, 9)] + for index, (gx, gy) in enumerate(choices): + t = tile(gx, gy) + c.blit(t, index * 32, 0, scale=2) + return c + + +def build_cc0_character_atlas(): + """5 variants x 4 directions x 4 frames of 32x48 cells from Puny characters. + + Layout: each 32x48 CELL = source 16x24 content band scaled 2x (32x48), anchored + bottom (feet on the ground line). Directions: the pack provides south-facing + art only; south/north use the same band (pack limitation recorded in the + commit), west/east are mirrored copies so walkers always read toward the player. + """ + c = Canvas(2560, 48) + + variant_files = [ + "Soldier-Blue.png", + "Soldier-Yellow.png", + "Warrior-Blue.png", + "Archer-Green.png", + "Character-Base.png", + ] + variants = [] + for name in variant_files: + im = Image.open(THIRD / "puny-characters" / "Puny-Characters" / name).convert("RGBA") + pose_cells = [] + for i in range(4): + left = 8 + i * 32 + pose_cells.append(im.crop((left, 2, left + 16, 26))) + variants.append(pose_cells) + + cell_w = 32 + for vi, pose_cells in enumerate(variants): + for di in range(4): + for frame in range(4): + sprite = pose_cells[frame].resize((32, 48), Image.NEAREST) + if di in (1, 3): + sprite = sprite.transpose(Image.FLIP_LEFT_RIGHT) + ox = cell_w * ((vi * 4 + di) * 4 + frame) + c.blit(sprite, ox, 0, scale=1) + return c + + + + +def main(): + ASSETS.mkdir(parents=True, exist_ok=True) + targets = [ + ("cc0-tiles.png", build_cc0_tile_atlas(), 128, 32), + ("cc0-characters.png", build_cc0_character_atlas(), 2560, 48), + ] + for name, canvas, w, h in targets: + path = ASSETS / name + write_png(path, canvas) + verify_png(path, w, h) + + +if __name__ == "__main__": + main() diff --git a/src/LivingVillage.Desktop.Tests/LivingVillage.Desktop.Tests.fsproj b/src/LivingVillage.Desktop.Tests/LivingVillage.Desktop.Tests.fsproj index 50cb380..b1b0ac2 100644 --- a/src/LivingVillage.Desktop.Tests/LivingVillage.Desktop.Tests.fsproj +++ b/src/LivingVillage.Desktop.Tests/LivingVillage.Desktop.Tests.fsproj @@ -26,6 +26,8 @@ + + diff --git a/src/LivingVillage.Desktop/Assets/cc0-characters.png b/src/LivingVillage.Desktop/Assets/cc0-characters.png new file mode 100644 index 0000000..7e553a6 Binary files /dev/null and b/src/LivingVillage.Desktop/Assets/cc0-characters.png differ diff --git a/src/LivingVillage.Desktop/Assets/cc0-tiles.png b/src/LivingVillage.Desktop/Assets/cc0-tiles.png new file mode 100644 index 0000000..1e43bc8 Binary files /dev/null and b/src/LivingVillage.Desktop/Assets/cc0-tiles.png differ diff --git a/src/LivingVillage.Desktop/LivingVillage.Desktop.fsproj b/src/LivingVillage.Desktop/LivingVillage.Desktop.fsproj index 33b998d..f7e4029 100644 --- a/src/LivingVillage.Desktop/LivingVillage.Desktop.fsproj +++ b/src/LivingVillage.Desktop/LivingVillage.Desktop.fsproj @@ -34,6 +34,8 @@ + + diff --git a/third_party/PROVENANCE.md b/third_party/PROVENANCE.md new file mode 100644 index 0000000..9552989 --- /dev/null +++ b/third_party/PROVENANCE.md @@ -0,0 +1,16 @@ +# third_party 顶级来源记录 +素材原始 zip 保存在本目录,解包目录在同名文件夹内。 + +## kenney_tiny-farm.zip +- 来源: https://kenney.nl/assets/tiny-farm(直链 https://kenney.nl/media/pages/assets/tiny-farm/dfded1ae3e-1782913588/kenney_tiny-farm.zip) +- 许可: CC0 1.0(包内 License.txt 原文已保留) +- SHA-256: a06f75f312c27eff15a2288475612e6f6699411be7259d408323cd15a790decc +- 大小: 191128 bytes +- 下载: 2026-09-21 13:43 CST + +## puny-characters.zip +- 来源: https://opengameart.org/content/puny-characters(附件直链 https://opengameart.org/sites/default/files/puny-characters.zip,作者 Shade) +- 许可: CC0 1.0(ogart 页面 + itch.io 发布页均标注 CC0) +- SHA-256: 971d7b07eea18fb2cce475cd6554a176ebf783bb064dec5a637ba33c7829320e +- 大小: 235985 bytes +- 下载: 2026-09-21 13:45 CST diff --git a/third_party/kenney_tiny-farm.zip b/third_party/kenney_tiny-farm.zip new file mode 100644 index 0000000..632148e Binary files /dev/null and b/third_party/kenney_tiny-farm.zip differ diff --git a/third_party/kenney_tiny-farm/License.txt b/third_party/kenney_tiny-farm/License.txt new file mode 100644 index 0000000..6535c23 --- /dev/null +++ b/third_party/kenney_tiny-farm/License.txt @@ -0,0 +1,22 @@ + + + Tiny Farm (1.0) + + Created/distributed by Kenney (www.kenney.nl) + Creation date: 01-07-2026 + + ------------------------------ + + License: (Creative Commons Zero, CC0) + http://creativecommons.org/publicdomain/zero/1.0/ + + This content is free to use in personal, educational and commercial projects. + Support us by crediting Kenney or www.kenney.nl (this is not mandatory) + + ------------------------------ + + Donate: http://support.kenney.nl + Patreon: http://patreon.com/kenney/ + + Follow on Twitter for updates: + http://twitter.com/KenneyNL \ No newline at end of file diff --git a/third_party/kenney_tiny-farm/More Tiny packs.url b/third_party/kenney_tiny-farm/More Tiny packs.url new file mode 100644 index 0000000..0347a30 --- /dev/null +++ b/third_party/kenney_tiny-farm/More Tiny packs.url @@ -0,0 +1,6 @@ +[InternetShortcut] +URL=https://kenney.nl/assets/series:Tiny +IDList= +HotKey=0 +[{000214A0-0000-0000-C000-000000000046}] +Prop3=19,11 diff --git a/third_party/kenney_tiny-farm/Preview.png b/third_party/kenney_tiny-farm/Preview.png new file mode 100644 index 0000000..14a393c Binary files /dev/null and b/third_party/kenney_tiny-farm/Preview.png differ diff --git a/third_party/kenney_tiny-farm/Sample.png b/third_party/kenney_tiny-farm/Sample.png new file mode 100644 index 0000000..902c02b Binary files /dev/null and b/third_party/kenney_tiny-farm/Sample.png differ diff --git a/third_party/kenney_tiny-farm/Tilemap/tilemap.png b/third_party/kenney_tiny-farm/Tilemap/tilemap.png new file mode 100644 index 0000000..70f3d42 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tilemap/tilemap.png differ diff --git a/third_party/kenney_tiny-farm/Tilemap/tilemap_packed.png b/third_party/kenney_tiny-farm/Tilemap/tilemap_packed.png new file mode 100644 index 0000000..a778067 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tilemap/tilemap_packed.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0000.png b/third_party/kenney_tiny-farm/Tiles/tile_0000.png new file mode 100644 index 0000000..17f6bc3 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0000.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0001.png b/third_party/kenney_tiny-farm/Tiles/tile_0001.png new file mode 100644 index 0000000..a1e2244 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0001.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0002.png b/third_party/kenney_tiny-farm/Tiles/tile_0002.png new file mode 100644 index 0000000..c995d7e Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0002.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0003.png b/third_party/kenney_tiny-farm/Tiles/tile_0003.png new file mode 100644 index 0000000..76a2f3a Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0003.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0004.png b/third_party/kenney_tiny-farm/Tiles/tile_0004.png new file mode 100644 index 0000000..267b508 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0004.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0005.png b/third_party/kenney_tiny-farm/Tiles/tile_0005.png new file mode 100644 index 0000000..848a4ec Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0005.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0006.png b/third_party/kenney_tiny-farm/Tiles/tile_0006.png new file mode 100644 index 0000000..49d8e64 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0006.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0007.png b/third_party/kenney_tiny-farm/Tiles/tile_0007.png new file mode 100644 index 0000000..2c52e74 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0007.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0008.png b/third_party/kenney_tiny-farm/Tiles/tile_0008.png new file mode 100644 index 0000000..0eba46b Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0008.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0009.png b/third_party/kenney_tiny-farm/Tiles/tile_0009.png new file mode 100644 index 0000000..a4ac6eb Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0009.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0010.png b/third_party/kenney_tiny-farm/Tiles/tile_0010.png new file mode 100644 index 0000000..dc739a3 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0010.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0011.png b/third_party/kenney_tiny-farm/Tiles/tile_0011.png new file mode 100644 index 0000000..73aa569 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0011.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0012.png b/third_party/kenney_tiny-farm/Tiles/tile_0012.png new file mode 100644 index 0000000..33cc2d5 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0012.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0013.png b/third_party/kenney_tiny-farm/Tiles/tile_0013.png new file mode 100644 index 0000000..4a23ee1 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0013.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0014.png b/third_party/kenney_tiny-farm/Tiles/tile_0014.png new file mode 100644 index 0000000..a139080 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0014.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0015.png b/third_party/kenney_tiny-farm/Tiles/tile_0015.png new file mode 100644 index 0000000..1195f55 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0015.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0016.png b/third_party/kenney_tiny-farm/Tiles/tile_0016.png new file mode 100644 index 0000000..6490750 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0016.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0017.png b/third_party/kenney_tiny-farm/Tiles/tile_0017.png new file mode 100644 index 0000000..3ba1406 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0017.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0018.png b/third_party/kenney_tiny-farm/Tiles/tile_0018.png new file mode 100644 index 0000000..df58609 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0018.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0019.png b/third_party/kenney_tiny-farm/Tiles/tile_0019.png new file mode 100644 index 0000000..a6cdf41 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0019.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0020.png b/third_party/kenney_tiny-farm/Tiles/tile_0020.png new file mode 100644 index 0000000..3060362 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0020.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0021.png b/third_party/kenney_tiny-farm/Tiles/tile_0021.png new file mode 100644 index 0000000..ee911f7 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0021.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0022.png b/third_party/kenney_tiny-farm/Tiles/tile_0022.png new file mode 100644 index 0000000..481b28a Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0022.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0023.png b/third_party/kenney_tiny-farm/Tiles/tile_0023.png new file mode 100644 index 0000000..2662fdc Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0023.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0024.png b/third_party/kenney_tiny-farm/Tiles/tile_0024.png new file mode 100644 index 0000000..1e9b2a1 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0024.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0025.png b/third_party/kenney_tiny-farm/Tiles/tile_0025.png new file mode 100644 index 0000000..650ad62 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0025.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0026.png b/third_party/kenney_tiny-farm/Tiles/tile_0026.png new file mode 100644 index 0000000..6ed870a Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0026.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0027.png b/third_party/kenney_tiny-farm/Tiles/tile_0027.png new file mode 100644 index 0000000..16cf308 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0027.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0028.png b/third_party/kenney_tiny-farm/Tiles/tile_0028.png new file mode 100644 index 0000000..222c732 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0028.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0029.png b/third_party/kenney_tiny-farm/Tiles/tile_0029.png new file mode 100644 index 0000000..56e0388 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0029.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0030.png b/third_party/kenney_tiny-farm/Tiles/tile_0030.png new file mode 100644 index 0000000..14a0088 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0030.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0031.png b/third_party/kenney_tiny-farm/Tiles/tile_0031.png new file mode 100644 index 0000000..c837696 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0031.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0032.png b/third_party/kenney_tiny-farm/Tiles/tile_0032.png new file mode 100644 index 0000000..ba32c9e Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0032.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0033.png b/third_party/kenney_tiny-farm/Tiles/tile_0033.png new file mode 100644 index 0000000..4a4769d Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0033.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0034.png b/third_party/kenney_tiny-farm/Tiles/tile_0034.png new file mode 100644 index 0000000..19a4069 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0034.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0035.png b/third_party/kenney_tiny-farm/Tiles/tile_0035.png new file mode 100644 index 0000000..11e7b04 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0035.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0036.png b/third_party/kenney_tiny-farm/Tiles/tile_0036.png new file mode 100644 index 0000000..57c195e Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0036.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0037.png b/third_party/kenney_tiny-farm/Tiles/tile_0037.png new file mode 100644 index 0000000..c454860 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0037.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0038.png b/third_party/kenney_tiny-farm/Tiles/tile_0038.png new file mode 100644 index 0000000..476feba Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0038.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0039.png b/third_party/kenney_tiny-farm/Tiles/tile_0039.png new file mode 100644 index 0000000..1d9a2b9 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0039.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0040.png b/third_party/kenney_tiny-farm/Tiles/tile_0040.png new file mode 100644 index 0000000..a899802 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0040.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0041.png b/third_party/kenney_tiny-farm/Tiles/tile_0041.png new file mode 100644 index 0000000..16afa2d Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0041.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0042.png b/third_party/kenney_tiny-farm/Tiles/tile_0042.png new file mode 100644 index 0000000..82068d2 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0042.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0043.png b/third_party/kenney_tiny-farm/Tiles/tile_0043.png new file mode 100644 index 0000000..981d6ce Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0043.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0044.png b/third_party/kenney_tiny-farm/Tiles/tile_0044.png new file mode 100644 index 0000000..d77e075 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0044.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0045.png b/third_party/kenney_tiny-farm/Tiles/tile_0045.png new file mode 100644 index 0000000..7e0ef66 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0045.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0046.png b/third_party/kenney_tiny-farm/Tiles/tile_0046.png new file mode 100644 index 0000000..0687aa9 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0046.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0047.png b/third_party/kenney_tiny-farm/Tiles/tile_0047.png new file mode 100644 index 0000000..c83f7d9 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0047.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0048.png b/third_party/kenney_tiny-farm/Tiles/tile_0048.png new file mode 100644 index 0000000..e055171 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0048.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0049.png b/third_party/kenney_tiny-farm/Tiles/tile_0049.png new file mode 100644 index 0000000..2c95c77 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0049.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0050.png b/third_party/kenney_tiny-farm/Tiles/tile_0050.png new file mode 100644 index 0000000..7cb103d Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0050.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0051.png b/third_party/kenney_tiny-farm/Tiles/tile_0051.png new file mode 100644 index 0000000..55435df Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0051.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0052.png b/third_party/kenney_tiny-farm/Tiles/tile_0052.png new file mode 100644 index 0000000..afde280 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0052.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0053.png b/third_party/kenney_tiny-farm/Tiles/tile_0053.png new file mode 100644 index 0000000..b321e78 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0053.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0054.png b/third_party/kenney_tiny-farm/Tiles/tile_0054.png new file mode 100644 index 0000000..d772be1 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0054.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0055.png b/third_party/kenney_tiny-farm/Tiles/tile_0055.png new file mode 100644 index 0000000..0c7f259 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0055.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0056.png b/third_party/kenney_tiny-farm/Tiles/tile_0056.png new file mode 100644 index 0000000..05e7d7d Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0056.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0057.png b/third_party/kenney_tiny-farm/Tiles/tile_0057.png new file mode 100644 index 0000000..40b9660 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0057.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0058.png b/third_party/kenney_tiny-farm/Tiles/tile_0058.png new file mode 100644 index 0000000..3d3ec1b Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0058.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0059.png b/third_party/kenney_tiny-farm/Tiles/tile_0059.png new file mode 100644 index 0000000..add81e4 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0059.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0060.png b/third_party/kenney_tiny-farm/Tiles/tile_0060.png new file mode 100644 index 0000000..1d39cb3 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0060.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0061.png b/third_party/kenney_tiny-farm/Tiles/tile_0061.png new file mode 100644 index 0000000..83488ba Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0061.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0062.png b/third_party/kenney_tiny-farm/Tiles/tile_0062.png new file mode 100644 index 0000000..6b1962c Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0062.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0063.png b/third_party/kenney_tiny-farm/Tiles/tile_0063.png new file mode 100644 index 0000000..647dc04 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0063.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0064.png b/third_party/kenney_tiny-farm/Tiles/tile_0064.png new file mode 100644 index 0000000..4199d6e Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0064.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0065.png b/third_party/kenney_tiny-farm/Tiles/tile_0065.png new file mode 100644 index 0000000..7ee60f0 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0065.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0066.png b/third_party/kenney_tiny-farm/Tiles/tile_0066.png new file mode 100644 index 0000000..531e3d0 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0066.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0067.png b/third_party/kenney_tiny-farm/Tiles/tile_0067.png new file mode 100644 index 0000000..907a78e Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0067.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0068.png b/third_party/kenney_tiny-farm/Tiles/tile_0068.png new file mode 100644 index 0000000..58ca8ed Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0068.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0069.png b/third_party/kenney_tiny-farm/Tiles/tile_0069.png new file mode 100644 index 0000000..242aecb Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0069.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0070.png b/third_party/kenney_tiny-farm/Tiles/tile_0070.png new file mode 100644 index 0000000..1c99e93 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0070.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0071.png b/third_party/kenney_tiny-farm/Tiles/tile_0071.png new file mode 100644 index 0000000..925253c Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0071.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0072.png b/third_party/kenney_tiny-farm/Tiles/tile_0072.png new file mode 100644 index 0000000..5b44b4e Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0072.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0073.png b/third_party/kenney_tiny-farm/Tiles/tile_0073.png new file mode 100644 index 0000000..b4a2418 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0073.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0074.png b/third_party/kenney_tiny-farm/Tiles/tile_0074.png new file mode 100644 index 0000000..266152f Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0074.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0075.png b/third_party/kenney_tiny-farm/Tiles/tile_0075.png new file mode 100644 index 0000000..92e3ba4 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0075.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0076.png b/third_party/kenney_tiny-farm/Tiles/tile_0076.png new file mode 100644 index 0000000..0f8f207 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0076.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0077.png b/third_party/kenney_tiny-farm/Tiles/tile_0077.png new file mode 100644 index 0000000..422d17b Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0077.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0078.png b/third_party/kenney_tiny-farm/Tiles/tile_0078.png new file mode 100644 index 0000000..6b5cc6b Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0078.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0079.png b/third_party/kenney_tiny-farm/Tiles/tile_0079.png new file mode 100644 index 0000000..bbc36e3 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0079.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0080.png b/third_party/kenney_tiny-farm/Tiles/tile_0080.png new file mode 100644 index 0000000..1726e86 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0080.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0081.png b/third_party/kenney_tiny-farm/Tiles/tile_0081.png new file mode 100644 index 0000000..41c88da Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0081.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0082.png b/third_party/kenney_tiny-farm/Tiles/tile_0082.png new file mode 100644 index 0000000..5e34af5 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0082.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0083.png b/third_party/kenney_tiny-farm/Tiles/tile_0083.png new file mode 100644 index 0000000..0990c72 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0083.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0084.png b/third_party/kenney_tiny-farm/Tiles/tile_0084.png new file mode 100644 index 0000000..88fdc82 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0084.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0085.png b/third_party/kenney_tiny-farm/Tiles/tile_0085.png new file mode 100644 index 0000000..3880858 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0085.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0086.png b/third_party/kenney_tiny-farm/Tiles/tile_0086.png new file mode 100644 index 0000000..3b6b80e Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0086.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0087.png b/third_party/kenney_tiny-farm/Tiles/tile_0087.png new file mode 100644 index 0000000..348a609 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0087.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0088.png b/third_party/kenney_tiny-farm/Tiles/tile_0088.png new file mode 100644 index 0000000..58931a6 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0088.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0089.png b/third_party/kenney_tiny-farm/Tiles/tile_0089.png new file mode 100644 index 0000000..cec67e3 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0089.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0090.png b/third_party/kenney_tiny-farm/Tiles/tile_0090.png new file mode 100644 index 0000000..447502a Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0090.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0091.png b/third_party/kenney_tiny-farm/Tiles/tile_0091.png new file mode 100644 index 0000000..35dc7c6 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0091.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0092.png b/third_party/kenney_tiny-farm/Tiles/tile_0092.png new file mode 100644 index 0000000..faf58d9 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0092.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0093.png b/third_party/kenney_tiny-farm/Tiles/tile_0093.png new file mode 100644 index 0000000..eaa570b Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0093.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0094.png b/third_party/kenney_tiny-farm/Tiles/tile_0094.png new file mode 100644 index 0000000..479216e Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0094.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0095.png b/third_party/kenney_tiny-farm/Tiles/tile_0095.png new file mode 100644 index 0000000..4961169 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0095.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0096.png b/third_party/kenney_tiny-farm/Tiles/tile_0096.png new file mode 100644 index 0000000..c5df206 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0096.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0097.png b/third_party/kenney_tiny-farm/Tiles/tile_0097.png new file mode 100644 index 0000000..ad01f59 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0097.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0098.png b/third_party/kenney_tiny-farm/Tiles/tile_0098.png new file mode 100644 index 0000000..d12f0bc Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0098.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0099.png b/third_party/kenney_tiny-farm/Tiles/tile_0099.png new file mode 100644 index 0000000..ce81bd6 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0099.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0100.png b/third_party/kenney_tiny-farm/Tiles/tile_0100.png new file mode 100644 index 0000000..097782f Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0100.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0101.png b/third_party/kenney_tiny-farm/Tiles/tile_0101.png new file mode 100644 index 0000000..8908501 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0101.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0102.png b/third_party/kenney_tiny-farm/Tiles/tile_0102.png new file mode 100644 index 0000000..78cb7a4 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0102.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0103.png b/third_party/kenney_tiny-farm/Tiles/tile_0103.png new file mode 100644 index 0000000..95259db Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0103.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0104.png b/third_party/kenney_tiny-farm/Tiles/tile_0104.png new file mode 100644 index 0000000..ef928be Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0104.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0105.png b/third_party/kenney_tiny-farm/Tiles/tile_0105.png new file mode 100644 index 0000000..d86ae44 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0105.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0106.png b/third_party/kenney_tiny-farm/Tiles/tile_0106.png new file mode 100644 index 0000000..7968f87 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0106.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0107.png b/third_party/kenney_tiny-farm/Tiles/tile_0107.png new file mode 100644 index 0000000..49fc174 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0107.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0108.png b/third_party/kenney_tiny-farm/Tiles/tile_0108.png new file mode 100644 index 0000000..6df0178 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0108.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0109.png b/third_party/kenney_tiny-farm/Tiles/tile_0109.png new file mode 100644 index 0000000..d997e33 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0109.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0110.png b/third_party/kenney_tiny-farm/Tiles/tile_0110.png new file mode 100644 index 0000000..f611ab8 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0110.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0111.png b/third_party/kenney_tiny-farm/Tiles/tile_0111.png new file mode 100644 index 0000000..e032474 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0111.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0112.png b/third_party/kenney_tiny-farm/Tiles/tile_0112.png new file mode 100644 index 0000000..c2ed2d2 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0112.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0113.png b/third_party/kenney_tiny-farm/Tiles/tile_0113.png new file mode 100644 index 0000000..975a127 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0113.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0114.png b/third_party/kenney_tiny-farm/Tiles/tile_0114.png new file mode 100644 index 0000000..c5aaa71 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0114.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0115.png b/third_party/kenney_tiny-farm/Tiles/tile_0115.png new file mode 100644 index 0000000..7a22c60 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0115.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0116.png b/third_party/kenney_tiny-farm/Tiles/tile_0116.png new file mode 100644 index 0000000..76e5639 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0116.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0117.png b/third_party/kenney_tiny-farm/Tiles/tile_0117.png new file mode 100644 index 0000000..0a60786 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0117.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0118.png b/third_party/kenney_tiny-farm/Tiles/tile_0118.png new file mode 100644 index 0000000..0f49297 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0118.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0119.png b/third_party/kenney_tiny-farm/Tiles/tile_0119.png new file mode 100644 index 0000000..16b10cf Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0119.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0120.png b/third_party/kenney_tiny-farm/Tiles/tile_0120.png new file mode 100644 index 0000000..611a970 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0120.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0121.png b/third_party/kenney_tiny-farm/Tiles/tile_0121.png new file mode 100644 index 0000000..db9e148 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0121.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0122.png b/third_party/kenney_tiny-farm/Tiles/tile_0122.png new file mode 100644 index 0000000..e0cb25a Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0122.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0123.png b/third_party/kenney_tiny-farm/Tiles/tile_0123.png new file mode 100644 index 0000000..d47f7c3 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0123.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0124.png b/third_party/kenney_tiny-farm/Tiles/tile_0124.png new file mode 100644 index 0000000..fb41ac8 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0124.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0125.png b/third_party/kenney_tiny-farm/Tiles/tile_0125.png new file mode 100644 index 0000000..e226241 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0125.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0126.png b/third_party/kenney_tiny-farm/Tiles/tile_0126.png new file mode 100644 index 0000000..2c8c15a Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0126.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0127.png b/third_party/kenney_tiny-farm/Tiles/tile_0127.png new file mode 100644 index 0000000..7f5fde6 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0127.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0128.png b/third_party/kenney_tiny-farm/Tiles/tile_0128.png new file mode 100644 index 0000000..b36d522 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0128.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0129.png b/third_party/kenney_tiny-farm/Tiles/tile_0129.png new file mode 100644 index 0000000..2b47f3f Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0129.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0130.png b/third_party/kenney_tiny-farm/Tiles/tile_0130.png new file mode 100644 index 0000000..f804a5d Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0130.png differ diff --git a/third_party/kenney_tiny-farm/Tiles/tile_0131.png b/third_party/kenney_tiny-farm/Tiles/tile_0131.png new file mode 100644 index 0000000..b2b6f77 Binary files /dev/null and b/third_party/kenney_tiny-farm/Tiles/tile_0131.png differ diff --git a/third_party/kenney_tiny-farm/Tilesheet.txt b/third_party/kenney_tiny-farm/Tilesheet.txt new file mode 100644 index 0000000..3ecbdd2 --- /dev/null +++ b/third_party/kenney_tiny-farm/Tilesheet.txt @@ -0,0 +1,9 @@ +Tilesheet information: + +Tile size • 16px × 16px +Space between tiles • 1px × 1px +--- +Total tiles (horizontal) • 12 tiles +Total tiles (vertical) • 11 tiles +--- +Total tiles in sheet • 132 tiles \ No newline at end of file diff --git a/third_party/kenney_tiny-farm/Visit Kenney.url b/third_party/kenney_tiny-farm/Visit Kenney.url new file mode 100644 index 0000000..c220c41 --- /dev/null +++ b/third_party/kenney_tiny-farm/Visit Kenney.url @@ -0,0 +1,2 @@ +[InternetShortcut] +URL=http://www.kenney.nl/ \ No newline at end of file diff --git a/third_party/kenney_tiny-farm/Visit Patreon.url b/third_party/kenney_tiny-farm/Visit Patreon.url new file mode 100644 index 0000000..67e9ea5 --- /dev/null +++ b/third_party/kenney_tiny-farm/Visit Patreon.url @@ -0,0 +1,2 @@ +[InternetShortcut] +URL=https://www.patreon.com/kenney/ \ No newline at end of file diff --git a/third_party/kenney_tiny-farm/_source-page.html b/third_party/kenney_tiny-farm/_source-page.html new file mode 100644 index 0000000..c036fc2 --- /dev/null +++ b/third_party/kenney_tiny-farm/_source-page.html @@ -0,0 +1,328 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + Puny Characters | OpenGameArt.org + + + + + + + + + + + + + + + + + + +
+
+
+ +

User login

+ +
+
+ + + +
+
+ + +
+
+ + +
+ + + +
+
+
+ + + +
+
+
+ + + + +
+ +
+
+ + diff --git a/third_party/puny-characters.zip b/third_party/puny-characters.zip new file mode 100644 index 0000000..eca9268 Binary files /dev/null and b/third_party/puny-characters.zip differ diff --git a/third_party/puny-characters/PROVENANCE.md b/third_party/puny-characters/PROVENANCE.md new file mode 100644 index 0000000..6655cdd --- /dev/null +++ b/third_party/puny-characters/PROVENANCE.md @@ -0,0 +1,11 @@ +# puny-characters 来源记录 +- 来源: https://opengameart.org/content/puny-characters (页面附件 puny-characters.zip,作者 Shade) +- 许可: CC0 1.0(ogart 页面 License(s): CC0;itch.io 发布页同为 CC0) +- zip SHA-256: 971d7b07eea18fb2cce475cd6554a176ebf783bb064dec5a637ba33c7829320e(../puny-characters.zip 为原始包,用后校验) +- 下载: 2026-09-21 13:45 CST + +# kenney_tiny-farm 来源记录 +- 来源: https://kenney.nl/assets/tiny-farm(直链 .../dfded1ae3e-1782913588/kenney_tiny-farm.zip) +- 许可: CC0 1.0(包内 License.txt) +- zip SHA-256: a06f75f312c27eff15a2288475612e6f6699411be7259d408323cd15a790decc +- 下载: 2026-09-21 13:43 CST diff --git a/third_party/puny-characters/Puny-Characters/Archer-Green.png b/third_party/puny-characters/Puny-Characters/Archer-Green.png new file mode 100644 index 0000000..2190926 Binary files /dev/null and b/third_party/puny-characters/Puny-Characters/Archer-Green.png differ diff --git a/third_party/puny-characters/Puny-Characters/Archer-Purple.png b/third_party/puny-characters/Puny-Characters/Archer-Purple.png new file mode 100644 index 0000000..f8e0cb4 Binary files /dev/null and b/third_party/puny-characters/Puny-Characters/Archer-Purple.png differ diff --git a/third_party/puny-characters/Puny-Characters/Character-Base.png b/third_party/puny-characters/Puny-Characters/Character-Base.png new file mode 100644 index 0000000..04f780a Binary files /dev/null and b/third_party/puny-characters/Puny-Characters/Character-Base.png differ diff --git a/third_party/puny-characters/Puny-Characters/Environment/Dirt.png b/third_party/puny-characters/Puny-Characters/Environment/Dirt.png new file mode 100644 index 0000000..ea5fefb Binary files /dev/null and b/third_party/puny-characters/Puny-Characters/Environment/Dirt.png differ diff --git a/third_party/puny-characters/Puny-Characters/Environment/Grass1.png b/third_party/puny-characters/Puny-Characters/Environment/Grass1.png new file mode 100644 index 0000000..b592eb3 Binary files /dev/null and b/third_party/puny-characters/Puny-Characters/Environment/Grass1.png differ diff --git a/third_party/puny-characters/Puny-Characters/Environment/Grass2.png b/third_party/puny-characters/Puny-Characters/Environment/Grass2.png new file mode 100644 index 0000000..96b11da Binary files /dev/null and b/third_party/puny-characters/Puny-Characters/Environment/Grass2.png differ diff --git a/third_party/puny-characters/Puny-Characters/Environment/Tree.png b/third_party/puny-characters/Puny-Characters/Environment/Tree.png new file mode 100644 index 0000000..db07f93 Binary files /dev/null and b/third_party/puny-characters/Puny-Characters/Environment/Tree.png differ diff --git a/third_party/puny-characters/Puny-Characters/Mage-Cyan.png b/third_party/puny-characters/Puny-Characters/Mage-Cyan.png new file mode 100644 index 0000000..f276c0a Binary files /dev/null and b/third_party/puny-characters/Puny-Characters/Mage-Cyan.png differ diff --git a/third_party/puny-characters/Puny-Characters/Mage-Red.png b/third_party/puny-characters/Puny-Characters/Mage-Red.png new file mode 100644 index 0000000..96e9621 Binary files /dev/null and b/third_party/puny-characters/Puny-Characters/Mage-Red.png differ diff --git a/third_party/puny-characters/Puny-Characters/Slime.png b/third_party/puny-characters/Puny-Characters/Slime.png new file mode 100644 index 0000000..4c36ca1 Binary files /dev/null and b/third_party/puny-characters/Puny-Characters/Slime.png differ diff --git a/third_party/puny-characters/Puny-Characters/Soldier-Blue.png b/third_party/puny-characters/Puny-Characters/Soldier-Blue.png new file mode 100644 index 0000000..4dfd275 Binary files /dev/null and b/third_party/puny-characters/Puny-Characters/Soldier-Blue.png differ diff --git a/third_party/puny-characters/Puny-Characters/Soldier-Red.png b/third_party/puny-characters/Puny-Characters/Soldier-Red.png new file mode 100644 index 0000000..3e33b13 Binary files /dev/null and b/third_party/puny-characters/Puny-Characters/Soldier-Red.png differ diff --git a/third_party/puny-characters/Puny-Characters/Soldier-Yellow.png b/third_party/puny-characters/Puny-Characters/Soldier-Yellow.png new file mode 100644 index 0000000..c9b737c Binary files /dev/null and b/third_party/puny-characters/Puny-Characters/Soldier-Yellow.png differ diff --git a/third_party/puny-characters/Puny-Characters/Warrior-Blue.png b/third_party/puny-characters/Puny-Characters/Warrior-Blue.png new file mode 100644 index 0000000..03f4c87 Binary files /dev/null and b/third_party/puny-characters/Puny-Characters/Warrior-Blue.png differ diff --git a/third_party/puny-characters/Puny-Characters/Warrior-Red.png b/third_party/puny-characters/Puny-Characters/Warrior-Red.png new file mode 100644 index 0000000..a4b1db8 Binary files /dev/null and b/third_party/puny-characters/Puny-Characters/Warrior-Red.png differ diff --git a/third_party/puny-characters/_source-page.html b/third_party/puny-characters/_source-page.html new file mode 100644 index 0000000..582252e --- /dev/null +++ b/third_party/puny-characters/_source-page.html @@ -0,0 +1,328 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + Puny Characters | OpenGameArt.org + + + + + + + + + + + + + + + + + + +
+
+
+ +

User login

+ +
+
+ + + +
+
+ + +
+
+ + +
+ + + +
+
+
+ + + +
+
+
+ + + + +
+ +
+
+ + -- cgit v1.2.3