From 9147db6fdc05d1825f5def379e0ea3190ad1377f Mon Sep 17 00:00:00 2001 From: John Alanbrook Date: Thu, 26 Feb 2026 15:54:11 -0600 Subject: [PATCH] more examples --- clay.cm | 12 +- examples/bisect.ce | 45 +++ examples/bunny.png | Bin 0 -> 449 bytes examples/enemies/barnacle_attack_a.png | Bin 0 -> 1382 bytes examples/enemies/barnacle_attack_b.png | Bin 0 -> 1397 bytes examples/enemies/barnacle_attack_rest.png | Bin 0 -> 1133 bytes examples/enemies/bee_a.png | Bin 0 -> 2062 bytes examples/enemies/bee_b.png | Bin 0 -> 1726 bytes examples/enemies/bee_rest.png | Bin 0 -> 2069 bytes examples/enemies/block_fall.png | Bin 0 -> 1307 bytes examples/enemies/block_idle.png | Bin 0 -> 1249 bytes examples/enemies/block_rest.png | Bin 0 -> 1225 bytes examples/enemies/fish_blue_rest.png | Bin 0 -> 2120 bytes examples/enemies/fish_blue_swim_a.png | Bin 0 -> 2092 bytes examples/enemies/fish_blue_swim_b.png | Bin 0 -> 1951 bytes examples/enemies/fish_purple_down.png | Bin 0 -> 1964 bytes examples/enemies/fish_purple_rest.png | Bin 0 -> 1966 bytes examples/enemies/fish_purple_up.png | Bin 0 -> 1934 bytes examples/enemies/fish_yellow_rest.png | Bin 0 -> 2035 bytes examples/enemies/fish_yellow_swim_a.png | Bin 0 -> 2028 bytes examples/enemies/fish_yellow_swim_b.png | Bin 0 -> 1872 bytes examples/enemies/fly_a.png | Bin 0 -> 2043 bytes examples/enemies/fly_b.png | Bin 0 -> 1978 bytes examples/enemies/fly_rest.png | Bin 0 -> 1987 bytes examples/enemies/frog_idle.png | Bin 0 -> 1882 bytes examples/enemies/frog_jump.png | Bin 0 -> 1392 bytes examples/enemies/frog_rest.png | Bin 0 -> 1311 bytes examples/enemies/ladybug_fly.png | Bin 0 -> 1748 bytes examples/enemies/ladybug_rest.png | Bin 0 -> 1527 bytes examples/enemies/ladybug_walk_a.png | Bin 0 -> 1501 bytes examples/enemies/ladybug_walk_b.png | Bin 0 -> 1513 bytes examples/enemies/mouse_rest.png | Bin 0 -> 1153 bytes examples/enemies/mouse_walk_a.png | Bin 0 -> 1243 bytes examples/enemies/mouse_walk_b.png | Bin 0 -> 1240 bytes examples/enemies/saw_a.png | Bin 0 -> 1687 bytes examples/enemies/saw_b.png | Bin 0 -> 1804 bytes examples/enemies/saw_rest.png | Bin 0 -> 1624 bytes examples/enemies/slime_block_jump.png | Bin 0 -> 764 bytes examples/enemies/slime_block_rest.png | Bin 0 -> 685 bytes examples/enemies/slime_block_walk_a.png | Bin 0 -> 767 bytes examples/enemies/slime_block_walk_b.png | Bin 0 -> 760 bytes examples/enemies/slime_fire_flat.png | Bin 0 -> 1168 bytes examples/enemies/slime_fire_rest.png | Bin 0 -> 1507 bytes examples/enemies/slime_fire_walk_a.png | Bin 0 -> 1572 bytes examples/enemies/slime_fire_walk_b.png | Bin 0 -> 1524 bytes examples/enemies/slime_normal_flat.png | Bin 0 -> 631 bytes examples/enemies/slime_normal_rest.png | Bin 0 -> 905 bytes examples/enemies/slime_normal_walk_a.png | Bin 0 -> 972 bytes examples/enemies/slime_normal_walk_b.png | Bin 0 -> 920 bytes examples/enemies/slime_spike_flat.png | Bin 0 -> 941 bytes examples/enemies/slime_spike_rest.png | Bin 0 -> 1210 bytes examples/enemies/slime_spike_walk_a.png | Bin 0 -> 1273 bytes examples/enemies/slime_spike_walk_b.png | Bin 0 -> 1245 bytes examples/enemies/snail_rest.png | Bin 0 -> 1561 bytes examples/enemies/snail_shell.png | Bin 0 -> 939 bytes examples/enemies/snail_walk_a.png | Bin 0 -> 1531 bytes examples/enemies/snail_walk_b.png | Bin 0 -> 1551 bytes examples/enemies/worm_normal_move_a.png | Bin 0 -> 1007 bytes examples/enemies/worm_normal_move_b.png | Bin 0 -> 989 bytes examples/enemies/worm_normal_rest.png | Bin 0 -> 690 bytes examples/enemies/worm_ring_move_a.png | Bin 0 -> 1046 bytes examples/enemies/worm_ring_move_b.png | Bin 0 -> 1012 bytes examples/enemies/worm_ring_rest.png | Bin 0 -> 840 bytes examples/fonts/c64.ttf | Bin 0 -> 28164 bytes examples/fonts/dos.ttf | Bin 0 -> 79584 bytes examples/fonts/teenytinypixels.ttf | Bin 0 -> 14336 bytes examples/paladin.ce | 303 +++++++++++++++ examples/paladin_simple.ce | 99 +++++ examples/rope.jpg | Bin 0 -> 262144 bytes examples/test_line2d.ce | 315 ++++++++++++++++ examples/test_particles.ce | 301 +++++++++++++++ examples/test_shape2d.ce | 352 ++++++++++++++++++ examples/test_sprite.ce | 206 ++++++++++ examples/test_text.ce | 256 +++++++++++++ examples/test_tilemap.ce | 187 ++++++++++ examples/tiles/block_blue.png | Bin 0 -> 468 bytes examples/tiles/block_coin.png | Bin 0 -> 849 bytes examples/tiles/block_coin_active.png | Bin 0 -> 851 bytes examples/tiles/block_empty.png | Bin 0 -> 431 bytes examples/tiles/block_empty_warning.png | Bin 0 -> 676 bytes examples/tiles/block_exclamation.png | Bin 0 -> 808 bytes examples/tiles/block_exclamation_active.png | Bin 0 -> 809 bytes examples/tiles/block_green.png | Bin 0 -> 468 bytes examples/tiles/block_plank.png | Bin 0 -> 1130 bytes examples/tiles/block_planks.png | Bin 0 -> 1449 bytes examples/tiles/block_red.png | Bin 0 -> 468 bytes examples/tiles/block_spikes.png | Bin 0 -> 1118 bytes examples/tiles/block_strong_coin.png | Bin 0 -> 773 bytes examples/tiles/block_strong_coin_active.png | Bin 0 -> 756 bytes examples/tiles/block_strong_danger.png | Bin 0 -> 765 bytes examples/tiles/block_strong_danger_active.png | Bin 0 -> 747 bytes examples/tiles/block_strong_empty.png | Bin 0 -> 442 bytes examples/tiles/block_strong_empty_active.png | Bin 0 -> 417 bytes examples/tiles/block_strong_exclamation.png | Bin 0 -> 735 bytes .../tiles/block_strong_exclamation_active.png | Bin 0 -> 718 bytes examples/tiles/block_yellow.png | Bin 0 -> 468 bytes examples/tiles/bomb.png | Bin 0 -> 1097 bytes examples/tiles/bomb_active.png | Bin 0 -> 1083 bytes examples/tiles/brick_brown.png | Bin 0 -> 367 bytes examples/tiles/brick_brown_diagonal.png | Bin 0 -> 563 bytes examples/tiles/brick_grey.png | Bin 0 -> 367 bytes examples/tiles/brick_grey_diagonal.png | Bin 0 -> 563 bytes examples/tiles/bricks_brown.png | Bin 0 -> 553 bytes examples/tiles/bricks_grey.png | Bin 0 -> 572 bytes examples/tiles/bridge.png | Bin 0 -> 618 bytes examples/tiles/bridge_logs.png | Bin 0 -> 1124 bytes examples/tiles/bush.png | Bin 0 -> 1146 bytes examples/tiles/cactus.png | Bin 0 -> 1811 bytes examples/tiles/chain.png | Bin 0 -> 763 bytes examples/tiles/coin_bronze.png | Bin 0 -> 1210 bytes examples/tiles/coin_bronze_side.png | Bin 0 -> 377 bytes examples/tiles/coin_gold.png | Bin 0 -> 1233 bytes examples/tiles/coin_gold_side.png | Bin 0 -> 378 bytes examples/tiles/coin_silver.png | Bin 0 -> 1137 bytes examples/tiles/coin_silver_side.png | Bin 0 -> 377 bytes examples/tiles/conveyor.png | Bin 0 -> 635 bytes examples/tiles/door_closed.png | Bin 0 -> 433 bytes examples/tiles/door_closed_top.png | Bin 0 -> 1210 bytes examples/tiles/door_open.png | Bin 0 -> 125 bytes examples/tiles/door_open_top.png | Bin 0 -> 988 bytes examples/tiles/fence.png | Bin 0 -> 434 bytes examples/tiles/fence_broken.png | Bin 0 -> 564 bytes examples/tiles/fireball.png | Bin 0 -> 1409 bytes examples/tiles/flag_blue_a.png | Bin 0 -> 763 bytes examples/tiles/flag_blue_b.png | Bin 0 -> 768 bytes examples/tiles/flag_green_a.png | Bin 0 -> 764 bytes examples/tiles/flag_green_b.png | Bin 0 -> 767 bytes examples/tiles/flag_off.png | Bin 0 -> 355 bytes examples/tiles/flag_red_a.png | Bin 0 -> 767 bytes examples/tiles/flag_red_b.png | Bin 0 -> 767 bytes examples/tiles/flag_yellow_a.png | Bin 0 -> 765 bytes examples/tiles/flag_yellow_b.png | Bin 0 -> 768 bytes examples/tiles/gem_blue.png | Bin 0 -> 838 bytes examples/tiles/gem_green.png | Bin 0 -> 835 bytes examples/tiles/gem_red.png | Bin 0 -> 837 bytes examples/tiles/gem_yellow.png | Bin 0 -> 829 bytes examples/tiles/grass.png | Bin 0 -> 1563 bytes examples/tiles/grass_purple.png | Bin 0 -> 1306 bytes examples/tiles/heart.png | Bin 0 -> 669 bytes examples/tiles/hill.png | Bin 0 -> 389 bytes examples/tiles/hill_top.png | Bin 0 -> 976 bytes examples/tiles/hill_top_smile.png | Bin 0 -> 1262 bytes examples/tiles/hud_character_0.png | Bin 0 -> 652 bytes examples/tiles/hud_character_1.png | Bin 0 -> 517 bytes examples/tiles/hud_character_2.png | Bin 0 -> 616 bytes examples/tiles/hud_character_3.png | Bin 0 -> 676 bytes examples/tiles/hud_character_4.png | Bin 0 -> 499 bytes examples/tiles/hud_character_5.png | Bin 0 -> 645 bytes examples/tiles/hud_character_6.png | Bin 0 -> 665 bytes examples/tiles/hud_character_7.png | Bin 0 -> 638 bytes examples/tiles/hud_character_8.png | Bin 0 -> 670 bytes examples/tiles/hud_character_9.png | Bin 0 -> 672 bytes examples/tiles/hud_character_multiply.png | Bin 0 -> 532 bytes examples/tiles/hud_character_percent.png | Bin 0 -> 653 bytes examples/tiles/hud_coin.png | Bin 0 -> 1403 bytes examples/tiles/hud_heart.png | Bin 0 -> 921 bytes examples/tiles/hud_heart_empty.png | Bin 0 -> 917 bytes examples/tiles/hud_heart_half.png | Bin 0 -> 1033 bytes examples/tiles/hud_key_blue.png | Bin 0 -> 989 bytes examples/tiles/hud_key_green.png | Bin 0 -> 984 bytes examples/tiles/hud_key_red.png | Bin 0 -> 988 bytes examples/tiles/hud_key_yellow.png | Bin 0 -> 982 bytes examples/tiles/hud_player_beige.png | Bin 0 -> 1387 bytes examples/tiles/hud_player_green.png | Bin 0 -> 1370 bytes examples/tiles/hud_player_helmet_beige.png | Bin 0 -> 1686 bytes examples/tiles/hud_player_helmet_green.png | Bin 0 -> 1681 bytes examples/tiles/hud_player_helmet_pink.png | Bin 0 -> 1680 bytes examples/tiles/hud_player_helmet_purple.png | Bin 0 -> 1802 bytes examples/tiles/hud_player_helmet_yellow.png | Bin 0 -> 1659 bytes examples/tiles/hud_player_pink.png | Bin 0 -> 1401 bytes examples/tiles/hud_player_purple.png | Bin 0 -> 1401 bytes examples/tiles/hud_player_yellow.png | Bin 0 -> 1352 bytes examples/tiles/key_blue.png | Bin 0 -> 660 bytes examples/tiles/key_green.png | Bin 0 -> 660 bytes examples/tiles/key_red.png | Bin 0 -> 660 bytes examples/tiles/key_yellow.png | Bin 0 -> 660 bytes examples/tiles/ladder_bottom.png | Bin 0 -> 319 bytes examples/tiles/ladder_middle.png | Bin 0 -> 169 bytes examples/tiles/ladder_top.png | Bin 0 -> 354 bytes examples/tiles/lava.png | Bin 0 -> 513 bytes examples/tiles/lava_top.png | Bin 0 -> 789 bytes examples/tiles/lava_top_low.png | Bin 0 -> 597 bytes examples/tiles/lever.png | Bin 0 -> 1040 bytes examples/tiles/lever_left.png | Bin 0 -> 1321 bytes examples/tiles/lever_right.png | Bin 0 -> 1323 bytes examples/tiles/lock_blue.png | Bin 0 -> 731 bytes examples/tiles/lock_green.png | Bin 0 -> 731 bytes examples/tiles/lock_red.png | Bin 0 -> 731 bytes examples/tiles/lock_yellow.png | Bin 0 -> 800 bytes examples/tiles/mushroom_brown.png | Bin 0 -> 668 bytes examples/tiles/mushroom_red.png | Bin 0 -> 657 bytes examples/tiles/ramp.png | Bin 0 -> 616 bytes examples/tiles/rock.png | Bin 0 -> 1025 bytes examples/tiles/rop_attached.png | Bin 0 -> 762 bytes examples/tiles/rope.png | Bin 0 -> 202 bytes examples/tiles/saw.png | Bin 0 -> 1764 bytes examples/tiles/sign.png | Bin 0 -> 714 bytes examples/tiles/sign_exit.png | Bin 0 -> 1170 bytes examples/tiles/sign_left.png | Bin 0 -> 835 bytes examples/tiles/sign_right.png | Bin 0 -> 829 bytes examples/tiles/snow.png | Bin 0 -> 485 bytes examples/tiles/spikes.png | Bin 0 -> 861 bytes examples/tiles/spring.png | Bin 0 -> 691 bytes examples/tiles/spring_out.png | Bin 0 -> 1358 bytes examples/tiles/star.png | Bin 0 -> 1353 bytes examples/tiles/switch_blue.png | Bin 0 -> 866 bytes examples/tiles/switch_blue_pressed.png | Bin 0 -> 613 bytes examples/tiles/switch_green.png | Bin 0 -> 864 bytes examples/tiles/switch_green_pressed.png | Bin 0 -> 613 bytes examples/tiles/switch_red.png | Bin 0 -> 864 bytes examples/tiles/switch_red_pressed.png | Bin 0 -> 613 bytes examples/tiles/switch_yellow.png | Bin 0 -> 864 bytes examples/tiles/switch_yellow_pressed.png | Bin 0 -> 612 bytes examples/tiles/terrain_dirt_block.png | Bin 0 -> 1102 bytes examples/tiles/terrain_dirt_block_bottom.png | Bin 0 -> 639 bytes .../tiles/terrain_dirt_block_bottom_left.png | Bin 0 -> 793 bytes .../tiles/terrain_dirt_block_bottom_right.png | Bin 0 -> 784 bytes examples/tiles/terrain_dirt_block_center.png | Bin 0 -> 669 bytes examples/tiles/terrain_dirt_block_left.png | Bin 0 -> 668 bytes examples/tiles/terrain_dirt_block_right.png | Bin 0 -> 653 bytes examples/tiles/terrain_dirt_block_top.png | Bin 0 -> 755 bytes .../tiles/terrain_dirt_block_top_left.png | Bin 0 -> 931 bytes .../tiles/terrain_dirt_block_top_right.png | Bin 0 -> 820 bytes examples/tiles/terrain_dirt_cloud.png | Bin 0 -> 1041 bytes .../tiles/terrain_dirt_cloud_background.png | Bin 0 -> 1038 bytes examples/tiles/terrain_dirt_cloud_left.png | Bin 0 -> 886 bytes examples/tiles/terrain_dirt_cloud_middle.png | Bin 0 -> 615 bytes examples/tiles/terrain_dirt_cloud_right.png | Bin 0 -> 764 bytes .../tiles/terrain_dirt_horizontal_left.png | Bin 0 -> 961 bytes .../tiles/terrain_dirt_horizontal_middle.png | Bin 0 -> 667 bytes .../terrain_dirt_horizontal_overhang_left.png | Bin 0 -> 1264 bytes ...terrain_dirt_horizontal_overhang_right.png | Bin 0 -> 1198 bytes .../tiles/terrain_dirt_horizontal_right.png | Bin 0 -> 1007 bytes examples/tiles/terrain_dirt_ramp_long_a.png | Bin 0 -> 614 bytes examples/tiles/terrain_dirt_ramp_long_b.png | Bin 0 -> 274 bytes examples/tiles/terrain_dirt_ramp_long_c.png | Bin 0 -> 864 bytes examples/tiles/terrain_dirt_ramp_short_a.png | Bin 0 -> 747 bytes examples/tiles/terrain_dirt_ramp_short_b.png | Bin 0 -> 560 bytes .../tiles/terrain_dirt_vertical_bottom.png | Bin 0 -> 850 bytes .../tiles/terrain_dirt_vertical_middle.png | Bin 0 -> 659 bytes examples/tiles/terrain_dirt_vertical_top.png | Bin 0 -> 984 bytes examples/tiles/terrain_grass_block.png | Bin 0 -> 1106 bytes examples/tiles/terrain_grass_block_bottom.png | Bin 0 -> 638 bytes .../tiles/terrain_grass_block_bottom_left.png | Bin 0 -> 791 bytes .../terrain_grass_block_bottom_right.png | Bin 0 -> 783 bytes examples/tiles/terrain_grass_block_center.png | Bin 0 -> 666 bytes examples/tiles/terrain_grass_block_left.png | Bin 0 -> 666 bytes examples/tiles/terrain_grass_block_right.png | Bin 0 -> 654 bytes examples/tiles/terrain_grass_block_top.png | Bin 0 -> 755 bytes .../tiles/terrain_grass_block_top_left.png | Bin 0 -> 932 bytes .../tiles/terrain_grass_block_top_right.png | Bin 0 -> 820 bytes examples/tiles/terrain_grass_cloud.png | Bin 0 -> 1044 bytes .../tiles/terrain_grass_cloud_background.png | Bin 0 -> 1044 bytes examples/tiles/terrain_grass_cloud_left.png | Bin 0 -> 885 bytes examples/tiles/terrain_grass_cloud_middle.png | Bin 0 -> 615 bytes examples/tiles/terrain_grass_cloud_right.png | Bin 0 -> 764 bytes .../tiles/terrain_grass_horizontal_left.png | Bin 0 -> 961 bytes .../tiles/terrain_grass_horizontal_middle.png | Bin 0 -> 667 bytes ...terrain_grass_horizontal_overhang_left.png | Bin 0 -> 1268 bytes ...errain_grass_horizontal_overhang_right.png | Bin 0 -> 1202 bytes .../tiles/terrain_grass_horizontal_right.png | Bin 0 -> 1007 bytes examples/tiles/terrain_grass_ramp_long_a.png | Bin 0 -> 614 bytes examples/tiles/terrain_grass_ramp_long_b.png | Bin 0 -> 274 bytes examples/tiles/terrain_grass_ramp_long_c.png | Bin 0 -> 864 bytes examples/tiles/terrain_grass_ramp_short_a.png | Bin 0 -> 744 bytes examples/tiles/terrain_grass_ramp_short_b.png | Bin 0 -> 560 bytes .../tiles/terrain_grass_vertical_bottom.png | Bin 0 -> 859 bytes .../tiles/terrain_grass_vertical_middle.png | Bin 0 -> 658 bytes examples/tiles/terrain_grass_vertical_top.png | Bin 0 -> 983 bytes examples/tiles/terrain_purple_block.png | Bin 0 -> 1272 bytes .../tiles/terrain_purple_block_bottom.png | Bin 0 -> 588 bytes .../terrain_purple_block_bottom_left.png | Bin 0 -> 717 bytes .../terrain_purple_block_bottom_right.png | Bin 0 -> 742 bytes .../tiles/terrain_purple_block_center.png | Bin 0 -> 583 bytes examples/tiles/terrain_purple_block_left.png | Bin 0 -> 576 bytes examples/tiles/terrain_purple_block_right.png | Bin 0 -> 590 bytes examples/tiles/terrain_purple_block_top.png | Bin 0 -> 698 bytes .../tiles/terrain_purple_block_top_left.png | Bin 0 -> 924 bytes .../tiles/terrain_purple_block_top_right.png | Bin 0 -> 944 bytes examples/tiles/terrain_purple_cloud.png | Bin 0 -> 1300 bytes .../tiles/terrain_purple_cloud_background.png | Bin 0 -> 1201 bytes examples/tiles/terrain_purple_cloud_left.png | Bin 0 -> 1066 bytes .../tiles/terrain_purple_cloud_middle.png | Bin 0 -> 813 bytes examples/tiles/terrain_purple_cloud_right.png | Bin 0 -> 1063 bytes .../tiles/terrain_purple_horizontal_left.png | Bin 0 -> 1009 bytes .../terrain_purple_horizontal_middle.png | Bin 0 -> 704 bytes ...errain_purple_horizontal_overhang_left.png | Bin 0 -> 1226 bytes ...rrain_purple_horizontal_overhang_right.png | Bin 0 -> 1249 bytes .../tiles/terrain_purple_horizontal_right.png | Bin 0 -> 1026 bytes examples/tiles/terrain_purple_ramp_long_a.png | Bin 0 -> 757 bytes examples/tiles/terrain_purple_ramp_long_b.png | Bin 0 -> 270 bytes examples/tiles/terrain_purple_ramp_long_c.png | Bin 0 -> 937 bytes .../tiles/terrain_purple_ramp_short_a.png | Bin 0 -> 695 bytes .../tiles/terrain_purple_ramp_short_b.png | Bin 0 -> 584 bytes .../tiles/terrain_purple_vertical_bottom.png | Bin 0 -> 769 bytes .../tiles/terrain_purple_vertical_middle.png | Bin 0 -> 574 bytes .../tiles/terrain_purple_vertical_top.png | Bin 0 -> 1142 bytes examples/tiles/terrain_sand_block.png | Bin 0 -> 1313 bytes examples/tiles/terrain_sand_block_bottom.png | Bin 0 -> 729 bytes .../tiles/terrain_sand_block_bottom_left.png | Bin 0 -> 807 bytes .../tiles/terrain_sand_block_bottom_right.png | Bin 0 -> 791 bytes examples/tiles/terrain_sand_block_center.png | Bin 0 -> 683 bytes examples/tiles/terrain_sand_block_left.png | Bin 0 -> 674 bytes examples/tiles/terrain_sand_block_right.png | Bin 0 -> 686 bytes examples/tiles/terrain_sand_block_top.png | Bin 0 -> 1003 bytes .../tiles/terrain_sand_block_top_left.png | Bin 0 -> 1182 bytes .../tiles/terrain_sand_block_top_right.png | Bin 0 -> 1085 bytes examples/tiles/terrain_sand_cloud.png | Bin 0 -> 1284 bytes .../tiles/terrain_sand_cloud_background.png | Bin 0 -> 1234 bytes examples/tiles/terrain_sand_cloud_left.png | Bin 0 -> 1218 bytes examples/tiles/terrain_sand_cloud_middle.png | Bin 0 -> 966 bytes examples/tiles/terrain_sand_cloud_right.png | Bin 0 -> 1174 bytes .../tiles/terrain_sand_horizontal_left.png | Bin 0 -> 1186 bytes .../tiles/terrain_sand_horizontal_middle.png | Bin 0 -> 905 bytes .../terrain_sand_horizontal_overhang_left.png | Bin 0 -> 1407 bytes ...terrain_sand_horizontal_overhang_right.png | Bin 0 -> 1435 bytes .../tiles/terrain_sand_horizontal_right.png | Bin 0 -> 1195 bytes examples/tiles/terrain_sand_ramp_long_a.png | Bin 0 -> 778 bytes examples/tiles/terrain_sand_ramp_long_b.png | Bin 0 -> 270 bytes examples/tiles/terrain_sand_ramp_long_c.png | Bin 0 -> 869 bytes examples/tiles/terrain_sand_ramp_short_a.png | Bin 0 -> 811 bytes examples/tiles/terrain_sand_ramp_short_b.png | Bin 0 -> 506 bytes .../tiles/terrain_sand_vertical_bottom.png | Bin 0 -> 919 bytes .../tiles/terrain_sand_vertical_middle.png | Bin 0 -> 695 bytes examples/tiles/terrain_sand_vertical_top.png | Bin 0 -> 1155 bytes examples/tiles/terrain_snow_block.png | Bin 0 -> 1369 bytes examples/tiles/terrain_snow_block_bottom.png | Bin 0 -> 719 bytes .../tiles/terrain_snow_block_bottom_left.png | Bin 0 -> 798 bytes .../tiles/terrain_snow_block_bottom_right.png | Bin 0 -> 783 bytes examples/tiles/terrain_snow_block_center.png | Bin 0 -> 673 bytes examples/tiles/terrain_snow_block_left.png | Bin 0 -> 665 bytes examples/tiles/terrain_snow_block_right.png | Bin 0 -> 677 bytes examples/tiles/terrain_snow_block_top.png | Bin 0 -> 990 bytes .../tiles/terrain_snow_block_top_left.png | Bin 0 -> 1267 bytes .../tiles/terrain_snow_block_top_right.png | Bin 0 -> 1132 bytes examples/tiles/terrain_snow_cloud.png | Bin 0 -> 1328 bytes .../tiles/terrain_snow_cloud_background.png | Bin 0 -> 1267 bytes examples/tiles/terrain_snow_cloud_left.png | Bin 0 -> 1267 bytes examples/tiles/terrain_snow_cloud_middle.png | Bin 0 -> 967 bytes examples/tiles/terrain_snow_cloud_right.png | Bin 0 -> 1294 bytes .../tiles/terrain_snow_horizontal_left.png | Bin 0 -> 1264 bytes .../tiles/terrain_snow_horizontal_middle.png | Bin 0 -> 892 bytes .../terrain_snow_horizontal_overhang_left.png | Bin 0 -> 1476 bytes ...terrain_snow_horizontal_overhang_right.png | Bin 0 -> 1424 bytes .../tiles/terrain_snow_horizontal_right.png | Bin 0 -> 1220 bytes examples/tiles/terrain_snow_ramp_long_a.png | Bin 0 -> 770 bytes examples/tiles/terrain_snow_ramp_long_b.png | Bin 0 -> 270 bytes examples/tiles/terrain_snow_ramp_long_c.png | Bin 0 -> 857 bytes examples/tiles/terrain_snow_ramp_short_a.png | Bin 0 -> 804 bytes examples/tiles/terrain_snow_ramp_short_b.png | Bin 0 -> 498 bytes .../tiles/terrain_snow_vertical_bottom.png | Bin 0 -> 908 bytes .../tiles/terrain_snow_vertical_middle.png | Bin 0 -> 687 bytes examples/tiles/terrain_snow_vertical_top.png | Bin 0 -> 1203 bytes examples/tiles/terrain_stone_block.png | Bin 0 -> 964 bytes examples/tiles/terrain_stone_block_bottom.png | Bin 0 -> 488 bytes .../tiles/terrain_stone_block_bottom_left.png | Bin 0 -> 654 bytes .../terrain_stone_block_bottom_right.png | Bin 0 -> 658 bytes examples/tiles/terrain_stone_block_center.png | Bin 0 -> 503 bytes examples/tiles/terrain_stone_block_left.png | Bin 0 -> 540 bytes examples/tiles/terrain_stone_block_right.png | Bin 0 -> 538 bytes examples/tiles/terrain_stone_block_top.png | Bin 0 -> 556 bytes .../tiles/terrain_stone_block_top_left.png | Bin 0 -> 763 bytes .../tiles/terrain_stone_block_top_right.png | Bin 0 -> 767 bytes examples/tiles/terrain_stone_cloud.png | Bin 0 -> 919 bytes .../tiles/terrain_stone_cloud_background.png | Bin 0 -> 963 bytes examples/tiles/terrain_stone_cloud_left.png | Bin 0 -> 774 bytes examples/tiles/terrain_stone_cloud_middle.png | Bin 0 -> 537 bytes examples/tiles/terrain_stone_cloud_right.png | Bin 0 -> 764 bytes .../tiles/terrain_stone_horizontal_left.png | Bin 0 -> 834 bytes .../tiles/terrain_stone_horizontal_middle.png | Bin 0 -> 540 bytes ...terrain_stone_horizontal_overhang_left.png | Bin 0 -> 1021 bytes ...errain_stone_horizontal_overhang_right.png | Bin 0 -> 1009 bytes .../tiles/terrain_stone_horizontal_right.png | Bin 0 -> 825 bytes examples/tiles/terrain_stone_ramp_long_a.png | Bin 0 -> 605 bytes examples/tiles/terrain_stone_ramp_long_b.png | Bin 0 -> 344 bytes examples/tiles/terrain_stone_ramp_long_c.png | Bin 0 -> 610 bytes examples/tiles/terrain_stone_ramp_short_a.png | Bin 0 -> 598 bytes examples/tiles/terrain_stone_ramp_short_b.png | Bin 0 -> 477 bytes .../tiles/terrain_stone_vertical_bottom.png | Bin 0 -> 698 bytes .../tiles/terrain_stone_vertical_middle.png | Bin 0 -> 508 bytes examples/tiles/terrain_stone_vertical_top.png | Bin 0 -> 850 bytes examples/tiles/torch_off.png | Bin 0 -> 740 bytes examples/tiles/torch_on_a.png | Bin 0 -> 1473 bytes examples/tiles/torch_on_b.png | Bin 0 -> 1481 bytes examples/tiles/water.png | Bin 0 -> 507 bytes examples/tiles/water_top.png | Bin 0 -> 801 bytes examples/tiles/water_top_low.png | Bin 0 -> 598 bytes examples/tiles/weight.png | Bin 0 -> 1256 bytes examples/tiles/window.png | Bin 0 -> 1049 bytes film2d.cm | 2 +- fx_graph.cm | 27 +- graphics.cm | 2 +- particles2d.cm | 8 +- 393 files changed, 2091 insertions(+), 24 deletions(-) create mode 100644 examples/bisect.ce create mode 100644 examples/bunny.png create mode 100644 examples/enemies/barnacle_attack_a.png create mode 100644 examples/enemies/barnacle_attack_b.png create mode 100644 examples/enemies/barnacle_attack_rest.png create mode 100644 examples/enemies/bee_a.png create mode 100644 examples/enemies/bee_b.png create mode 100644 examples/enemies/bee_rest.png create mode 100644 examples/enemies/block_fall.png create mode 100644 examples/enemies/block_idle.png create mode 100644 examples/enemies/block_rest.png create mode 100644 examples/enemies/fish_blue_rest.png create mode 100644 examples/enemies/fish_blue_swim_a.png create mode 100644 examples/enemies/fish_blue_swim_b.png create mode 100644 examples/enemies/fish_purple_down.png create mode 100644 examples/enemies/fish_purple_rest.png create mode 100644 examples/enemies/fish_purple_up.png create mode 100644 examples/enemies/fish_yellow_rest.png create mode 100644 examples/enemies/fish_yellow_swim_a.png create mode 100644 examples/enemies/fish_yellow_swim_b.png create mode 100644 examples/enemies/fly_a.png create mode 100644 examples/enemies/fly_b.png create mode 100644 examples/enemies/fly_rest.png create mode 100644 examples/enemies/frog_idle.png create mode 100644 examples/enemies/frog_jump.png create mode 100644 examples/enemies/frog_rest.png create mode 100644 examples/enemies/ladybug_fly.png create mode 100644 examples/enemies/ladybug_rest.png create mode 100644 examples/enemies/ladybug_walk_a.png create mode 100644 examples/enemies/ladybug_walk_b.png create mode 100644 examples/enemies/mouse_rest.png create mode 100644 examples/enemies/mouse_walk_a.png create mode 100644 examples/enemies/mouse_walk_b.png create mode 100644 examples/enemies/saw_a.png create mode 100644 examples/enemies/saw_b.png create mode 100644 examples/enemies/saw_rest.png create mode 100644 examples/enemies/slime_block_jump.png create mode 100644 examples/enemies/slime_block_rest.png create mode 100644 examples/enemies/slime_block_walk_a.png create mode 100644 examples/enemies/slime_block_walk_b.png create mode 100644 examples/enemies/slime_fire_flat.png create mode 100644 examples/enemies/slime_fire_rest.png create mode 100644 examples/enemies/slime_fire_walk_a.png create mode 100644 examples/enemies/slime_fire_walk_b.png create mode 100644 examples/enemies/slime_normal_flat.png create mode 100644 examples/enemies/slime_normal_rest.png create mode 100644 examples/enemies/slime_normal_walk_a.png create mode 100644 examples/enemies/slime_normal_walk_b.png create mode 100644 examples/enemies/slime_spike_flat.png create mode 100644 examples/enemies/slime_spike_rest.png create mode 100644 examples/enemies/slime_spike_walk_a.png create mode 100644 examples/enemies/slime_spike_walk_b.png create mode 100644 examples/enemies/snail_rest.png create mode 100644 examples/enemies/snail_shell.png create mode 100644 examples/enemies/snail_walk_a.png create mode 100644 examples/enemies/snail_walk_b.png create mode 100644 examples/enemies/worm_normal_move_a.png create mode 100644 examples/enemies/worm_normal_move_b.png create mode 100644 examples/enemies/worm_normal_rest.png create mode 100644 examples/enemies/worm_ring_move_a.png create mode 100644 examples/enemies/worm_ring_move_b.png create mode 100644 examples/enemies/worm_ring_rest.png create mode 100644 examples/fonts/c64.ttf create mode 100644 examples/fonts/dos.ttf create mode 100644 examples/fonts/teenytinypixels.ttf create mode 100644 examples/paladin.ce create mode 100644 examples/paladin_simple.ce create mode 100644 examples/rope.jpg create mode 100644 examples/test_line2d.ce create mode 100644 examples/test_particles.ce create mode 100644 examples/test_shape2d.ce create mode 100644 examples/test_sprite.ce create mode 100644 examples/test_text.ce create mode 100644 examples/test_tilemap.ce create mode 100644 examples/tiles/block_blue.png create mode 100644 examples/tiles/block_coin.png create mode 100644 examples/tiles/block_coin_active.png create mode 100644 examples/tiles/block_empty.png create mode 100644 examples/tiles/block_empty_warning.png create mode 100644 examples/tiles/block_exclamation.png create mode 100644 examples/tiles/block_exclamation_active.png create mode 100644 examples/tiles/block_green.png create mode 100644 examples/tiles/block_plank.png create mode 100644 examples/tiles/block_planks.png create mode 100644 examples/tiles/block_red.png create mode 100644 examples/tiles/block_spikes.png create mode 100644 examples/tiles/block_strong_coin.png create mode 100644 examples/tiles/block_strong_coin_active.png create mode 100644 examples/tiles/block_strong_danger.png create mode 100644 examples/tiles/block_strong_danger_active.png create mode 100644 examples/tiles/block_strong_empty.png create mode 100644 examples/tiles/block_strong_empty_active.png create mode 100644 examples/tiles/block_strong_exclamation.png create mode 100644 examples/tiles/block_strong_exclamation_active.png create mode 100644 examples/tiles/block_yellow.png create mode 100644 examples/tiles/bomb.png create mode 100644 examples/tiles/bomb_active.png create mode 100644 examples/tiles/brick_brown.png create mode 100644 examples/tiles/brick_brown_diagonal.png create mode 100644 examples/tiles/brick_grey.png create mode 100644 examples/tiles/brick_grey_diagonal.png create mode 100644 examples/tiles/bricks_brown.png create mode 100644 examples/tiles/bricks_grey.png create mode 100644 examples/tiles/bridge.png create mode 100644 examples/tiles/bridge_logs.png create mode 100644 examples/tiles/bush.png create mode 100644 examples/tiles/cactus.png create mode 100644 examples/tiles/chain.png create mode 100644 examples/tiles/coin_bronze.png create mode 100644 examples/tiles/coin_bronze_side.png create mode 100644 examples/tiles/coin_gold.png create mode 100644 examples/tiles/coin_gold_side.png create mode 100644 examples/tiles/coin_silver.png create mode 100644 examples/tiles/coin_silver_side.png create mode 100644 examples/tiles/conveyor.png create mode 100644 examples/tiles/door_closed.png create mode 100644 examples/tiles/door_closed_top.png create mode 100644 examples/tiles/door_open.png create mode 100644 examples/tiles/door_open_top.png create mode 100644 examples/tiles/fence.png create mode 100644 examples/tiles/fence_broken.png create mode 100644 examples/tiles/fireball.png create mode 100644 examples/tiles/flag_blue_a.png create mode 100644 examples/tiles/flag_blue_b.png create mode 100644 examples/tiles/flag_green_a.png create mode 100644 examples/tiles/flag_green_b.png create mode 100644 examples/tiles/flag_off.png create mode 100644 examples/tiles/flag_red_a.png create mode 100644 examples/tiles/flag_red_b.png create mode 100644 examples/tiles/flag_yellow_a.png create mode 100644 examples/tiles/flag_yellow_b.png create mode 100644 examples/tiles/gem_blue.png create mode 100644 examples/tiles/gem_green.png create mode 100644 examples/tiles/gem_red.png create mode 100644 examples/tiles/gem_yellow.png create mode 100644 examples/tiles/grass.png create mode 100644 examples/tiles/grass_purple.png create mode 100644 examples/tiles/heart.png create mode 100644 examples/tiles/hill.png create mode 100644 examples/tiles/hill_top.png create mode 100644 examples/tiles/hill_top_smile.png create mode 100644 examples/tiles/hud_character_0.png create mode 100644 examples/tiles/hud_character_1.png create mode 100644 examples/tiles/hud_character_2.png create mode 100644 examples/tiles/hud_character_3.png create mode 100644 examples/tiles/hud_character_4.png create mode 100644 examples/tiles/hud_character_5.png create mode 100644 examples/tiles/hud_character_6.png create mode 100644 examples/tiles/hud_character_7.png create mode 100644 examples/tiles/hud_character_8.png create mode 100644 examples/tiles/hud_character_9.png create mode 100644 examples/tiles/hud_character_multiply.png create mode 100644 examples/tiles/hud_character_percent.png create mode 100644 examples/tiles/hud_coin.png create mode 100644 examples/tiles/hud_heart.png create mode 100644 examples/tiles/hud_heart_empty.png create mode 100644 examples/tiles/hud_heart_half.png create mode 100644 examples/tiles/hud_key_blue.png create mode 100644 examples/tiles/hud_key_green.png create mode 100644 examples/tiles/hud_key_red.png create mode 100644 examples/tiles/hud_key_yellow.png create mode 100644 examples/tiles/hud_player_beige.png create mode 100644 examples/tiles/hud_player_green.png create mode 100644 examples/tiles/hud_player_helmet_beige.png create mode 100644 examples/tiles/hud_player_helmet_green.png create mode 100644 examples/tiles/hud_player_helmet_pink.png create mode 100644 examples/tiles/hud_player_helmet_purple.png create mode 100644 examples/tiles/hud_player_helmet_yellow.png create mode 100644 examples/tiles/hud_player_pink.png create mode 100644 examples/tiles/hud_player_purple.png create mode 100644 examples/tiles/hud_player_yellow.png create mode 100644 examples/tiles/key_blue.png create mode 100644 examples/tiles/key_green.png create mode 100644 examples/tiles/key_red.png create mode 100644 examples/tiles/key_yellow.png create mode 100644 examples/tiles/ladder_bottom.png create mode 100644 examples/tiles/ladder_middle.png create mode 100644 examples/tiles/ladder_top.png create mode 100644 examples/tiles/lava.png create mode 100644 examples/tiles/lava_top.png create mode 100644 examples/tiles/lava_top_low.png create mode 100644 examples/tiles/lever.png create mode 100644 examples/tiles/lever_left.png create mode 100644 examples/tiles/lever_right.png create mode 100644 examples/tiles/lock_blue.png create mode 100644 examples/tiles/lock_green.png create mode 100644 examples/tiles/lock_red.png create mode 100644 examples/tiles/lock_yellow.png create mode 100644 examples/tiles/mushroom_brown.png create mode 100644 examples/tiles/mushroom_red.png create mode 100644 examples/tiles/ramp.png create mode 100644 examples/tiles/rock.png create mode 100644 examples/tiles/rop_attached.png create mode 100644 examples/tiles/rope.png create mode 100644 examples/tiles/saw.png create mode 100644 examples/tiles/sign.png create mode 100644 examples/tiles/sign_exit.png create mode 100644 examples/tiles/sign_left.png create mode 100644 examples/tiles/sign_right.png create mode 100644 examples/tiles/snow.png create mode 100644 examples/tiles/spikes.png create mode 100644 examples/tiles/spring.png create mode 100644 examples/tiles/spring_out.png create mode 100644 examples/tiles/star.png create mode 100644 examples/tiles/switch_blue.png create mode 100644 examples/tiles/switch_blue_pressed.png create mode 100644 examples/tiles/switch_green.png create mode 100644 examples/tiles/switch_green_pressed.png create mode 100644 examples/tiles/switch_red.png create mode 100644 examples/tiles/switch_red_pressed.png create mode 100644 examples/tiles/switch_yellow.png create mode 100644 examples/tiles/switch_yellow_pressed.png create mode 100644 examples/tiles/terrain_dirt_block.png create mode 100644 examples/tiles/terrain_dirt_block_bottom.png create mode 100644 examples/tiles/terrain_dirt_block_bottom_left.png create mode 100644 examples/tiles/terrain_dirt_block_bottom_right.png create mode 100644 examples/tiles/terrain_dirt_block_center.png create mode 100644 examples/tiles/terrain_dirt_block_left.png create mode 100644 examples/tiles/terrain_dirt_block_right.png create mode 100644 examples/tiles/terrain_dirt_block_top.png create mode 100644 examples/tiles/terrain_dirt_block_top_left.png create mode 100644 examples/tiles/terrain_dirt_block_top_right.png create mode 100644 examples/tiles/terrain_dirt_cloud.png create mode 100644 examples/tiles/terrain_dirt_cloud_background.png create mode 100644 examples/tiles/terrain_dirt_cloud_left.png create mode 100644 examples/tiles/terrain_dirt_cloud_middle.png create mode 100644 examples/tiles/terrain_dirt_cloud_right.png create mode 100644 examples/tiles/terrain_dirt_horizontal_left.png create mode 100644 examples/tiles/terrain_dirt_horizontal_middle.png create mode 100644 examples/tiles/terrain_dirt_horizontal_overhang_left.png create mode 100644 examples/tiles/terrain_dirt_horizontal_overhang_right.png create mode 100644 examples/tiles/terrain_dirt_horizontal_right.png create mode 100644 examples/tiles/terrain_dirt_ramp_long_a.png create mode 100644 examples/tiles/terrain_dirt_ramp_long_b.png create mode 100644 examples/tiles/terrain_dirt_ramp_long_c.png create mode 100644 examples/tiles/terrain_dirt_ramp_short_a.png create mode 100644 examples/tiles/terrain_dirt_ramp_short_b.png create mode 100644 examples/tiles/terrain_dirt_vertical_bottom.png create mode 100644 examples/tiles/terrain_dirt_vertical_middle.png create mode 100644 examples/tiles/terrain_dirt_vertical_top.png create mode 100644 examples/tiles/terrain_grass_block.png create mode 100644 examples/tiles/terrain_grass_block_bottom.png create mode 100644 examples/tiles/terrain_grass_block_bottom_left.png create mode 100644 examples/tiles/terrain_grass_block_bottom_right.png create mode 100644 examples/tiles/terrain_grass_block_center.png create mode 100644 examples/tiles/terrain_grass_block_left.png create mode 100644 examples/tiles/terrain_grass_block_right.png create mode 100644 examples/tiles/terrain_grass_block_top.png create mode 100644 examples/tiles/terrain_grass_block_top_left.png create mode 100644 examples/tiles/terrain_grass_block_top_right.png create mode 100644 examples/tiles/terrain_grass_cloud.png create mode 100644 examples/tiles/terrain_grass_cloud_background.png create mode 100644 examples/tiles/terrain_grass_cloud_left.png create mode 100644 examples/tiles/terrain_grass_cloud_middle.png create mode 100644 examples/tiles/terrain_grass_cloud_right.png create mode 100644 examples/tiles/terrain_grass_horizontal_left.png create mode 100644 examples/tiles/terrain_grass_horizontal_middle.png create mode 100644 examples/tiles/terrain_grass_horizontal_overhang_left.png create mode 100644 examples/tiles/terrain_grass_horizontal_overhang_right.png create mode 100644 examples/tiles/terrain_grass_horizontal_right.png create mode 100644 examples/tiles/terrain_grass_ramp_long_a.png create mode 100644 examples/tiles/terrain_grass_ramp_long_b.png create mode 100644 examples/tiles/terrain_grass_ramp_long_c.png create mode 100644 examples/tiles/terrain_grass_ramp_short_a.png create mode 100644 examples/tiles/terrain_grass_ramp_short_b.png create mode 100644 examples/tiles/terrain_grass_vertical_bottom.png create mode 100644 examples/tiles/terrain_grass_vertical_middle.png create mode 100644 examples/tiles/terrain_grass_vertical_top.png create mode 100644 examples/tiles/terrain_purple_block.png create mode 100644 examples/tiles/terrain_purple_block_bottom.png create mode 100644 examples/tiles/terrain_purple_block_bottom_left.png create mode 100644 examples/tiles/terrain_purple_block_bottom_right.png create mode 100644 examples/tiles/terrain_purple_block_center.png create mode 100644 examples/tiles/terrain_purple_block_left.png create mode 100644 examples/tiles/terrain_purple_block_right.png create mode 100644 examples/tiles/terrain_purple_block_top.png create mode 100644 examples/tiles/terrain_purple_block_top_left.png create mode 100644 examples/tiles/terrain_purple_block_top_right.png create mode 100644 examples/tiles/terrain_purple_cloud.png create mode 100644 examples/tiles/terrain_purple_cloud_background.png create mode 100644 examples/tiles/terrain_purple_cloud_left.png create mode 100644 examples/tiles/terrain_purple_cloud_middle.png create mode 100644 examples/tiles/terrain_purple_cloud_right.png create mode 100644 examples/tiles/terrain_purple_horizontal_left.png create mode 100644 examples/tiles/terrain_purple_horizontal_middle.png create mode 100644 examples/tiles/terrain_purple_horizontal_overhang_left.png create mode 100644 examples/tiles/terrain_purple_horizontal_overhang_right.png create mode 100644 examples/tiles/terrain_purple_horizontal_right.png create mode 100644 examples/tiles/terrain_purple_ramp_long_a.png create mode 100644 examples/tiles/terrain_purple_ramp_long_b.png create mode 100644 examples/tiles/terrain_purple_ramp_long_c.png create mode 100644 examples/tiles/terrain_purple_ramp_short_a.png create mode 100644 examples/tiles/terrain_purple_ramp_short_b.png create mode 100644 examples/tiles/terrain_purple_vertical_bottom.png create mode 100644 examples/tiles/terrain_purple_vertical_middle.png create mode 100644 examples/tiles/terrain_purple_vertical_top.png create mode 100644 examples/tiles/terrain_sand_block.png create mode 100644 examples/tiles/terrain_sand_block_bottom.png create mode 100644 examples/tiles/terrain_sand_block_bottom_left.png create mode 100644 examples/tiles/terrain_sand_block_bottom_right.png create mode 100644 examples/tiles/terrain_sand_block_center.png create mode 100644 examples/tiles/terrain_sand_block_left.png create mode 100644 examples/tiles/terrain_sand_block_right.png create mode 100644 examples/tiles/terrain_sand_block_top.png create mode 100644 examples/tiles/terrain_sand_block_top_left.png create mode 100644 examples/tiles/terrain_sand_block_top_right.png create mode 100644 examples/tiles/terrain_sand_cloud.png create mode 100644 examples/tiles/terrain_sand_cloud_background.png create mode 100644 examples/tiles/terrain_sand_cloud_left.png create mode 100644 examples/tiles/terrain_sand_cloud_middle.png create mode 100644 examples/tiles/terrain_sand_cloud_right.png create mode 100644 examples/tiles/terrain_sand_horizontal_left.png create mode 100644 examples/tiles/terrain_sand_horizontal_middle.png create mode 100644 examples/tiles/terrain_sand_horizontal_overhang_left.png create mode 100644 examples/tiles/terrain_sand_horizontal_overhang_right.png create mode 100644 examples/tiles/terrain_sand_horizontal_right.png create mode 100644 examples/tiles/terrain_sand_ramp_long_a.png create mode 100644 examples/tiles/terrain_sand_ramp_long_b.png create mode 100644 examples/tiles/terrain_sand_ramp_long_c.png create mode 100644 examples/tiles/terrain_sand_ramp_short_a.png create mode 100644 examples/tiles/terrain_sand_ramp_short_b.png create mode 100644 examples/tiles/terrain_sand_vertical_bottom.png create mode 100644 examples/tiles/terrain_sand_vertical_middle.png create mode 100644 examples/tiles/terrain_sand_vertical_top.png create mode 100644 examples/tiles/terrain_snow_block.png create mode 100644 examples/tiles/terrain_snow_block_bottom.png create mode 100644 examples/tiles/terrain_snow_block_bottom_left.png create mode 100644 examples/tiles/terrain_snow_block_bottom_right.png create mode 100644 examples/tiles/terrain_snow_block_center.png create mode 100644 examples/tiles/terrain_snow_block_left.png create mode 100644 examples/tiles/terrain_snow_block_right.png create mode 100644 examples/tiles/terrain_snow_block_top.png create mode 100644 examples/tiles/terrain_snow_block_top_left.png create mode 100644 examples/tiles/terrain_snow_block_top_right.png create mode 100644 examples/tiles/terrain_snow_cloud.png create mode 100644 examples/tiles/terrain_snow_cloud_background.png create mode 100644 examples/tiles/terrain_snow_cloud_left.png create mode 100644 examples/tiles/terrain_snow_cloud_middle.png create mode 100644 examples/tiles/terrain_snow_cloud_right.png create mode 100644 examples/tiles/terrain_snow_horizontal_left.png create mode 100644 examples/tiles/terrain_snow_horizontal_middle.png create mode 100644 examples/tiles/terrain_snow_horizontal_overhang_left.png create mode 100644 examples/tiles/terrain_snow_horizontal_overhang_right.png create mode 100644 examples/tiles/terrain_snow_horizontal_right.png create mode 100644 examples/tiles/terrain_snow_ramp_long_a.png create mode 100644 examples/tiles/terrain_snow_ramp_long_b.png create mode 100644 examples/tiles/terrain_snow_ramp_long_c.png create mode 100644 examples/tiles/terrain_snow_ramp_short_a.png create mode 100644 examples/tiles/terrain_snow_ramp_short_b.png create mode 100644 examples/tiles/terrain_snow_vertical_bottom.png create mode 100644 examples/tiles/terrain_snow_vertical_middle.png create mode 100644 examples/tiles/terrain_snow_vertical_top.png create mode 100644 examples/tiles/terrain_stone_block.png create mode 100644 examples/tiles/terrain_stone_block_bottom.png create mode 100644 examples/tiles/terrain_stone_block_bottom_left.png create mode 100644 examples/tiles/terrain_stone_block_bottom_right.png create mode 100644 examples/tiles/terrain_stone_block_center.png create mode 100644 examples/tiles/terrain_stone_block_left.png create mode 100644 examples/tiles/terrain_stone_block_right.png create mode 100644 examples/tiles/terrain_stone_block_top.png create mode 100644 examples/tiles/terrain_stone_block_top_left.png create mode 100644 examples/tiles/terrain_stone_block_top_right.png create mode 100644 examples/tiles/terrain_stone_cloud.png create mode 100644 examples/tiles/terrain_stone_cloud_background.png create mode 100644 examples/tiles/terrain_stone_cloud_left.png create mode 100644 examples/tiles/terrain_stone_cloud_middle.png create mode 100644 examples/tiles/terrain_stone_cloud_right.png create mode 100644 examples/tiles/terrain_stone_horizontal_left.png create mode 100644 examples/tiles/terrain_stone_horizontal_middle.png create mode 100644 examples/tiles/terrain_stone_horizontal_overhang_left.png create mode 100644 examples/tiles/terrain_stone_horizontal_overhang_right.png create mode 100644 examples/tiles/terrain_stone_horizontal_right.png create mode 100644 examples/tiles/terrain_stone_ramp_long_a.png create mode 100644 examples/tiles/terrain_stone_ramp_long_b.png create mode 100644 examples/tiles/terrain_stone_ramp_long_c.png create mode 100644 examples/tiles/terrain_stone_ramp_short_a.png create mode 100644 examples/tiles/terrain_stone_ramp_short_b.png create mode 100644 examples/tiles/terrain_stone_vertical_bottom.png create mode 100644 examples/tiles/terrain_stone_vertical_middle.png create mode 100644 examples/tiles/terrain_stone_vertical_top.png create mode 100644 examples/tiles/torch_off.png create mode 100644 examples/tiles/torch_on_a.png create mode 100644 examples/tiles/torch_on_b.png create mode 100644 examples/tiles/water.png create mode 100644 examples/tiles/water_top.png create mode 100644 examples/tiles/water_top_low.png create mode 100644 examples/tiles/weight.png create mode 100644 examples/tiles/window.png diff --git a/clay.cm b/clay.cm index b2f6276e..e6ff867d 100644 --- a/clay.cm +++ b/clay.cm @@ -87,16 +87,17 @@ function annotate_tree(node, root_height, parent_node) { } clay.layout = function(fn, size) { + var sz = is_array(size) ? {width: size[0], height: size[1]} : size lay_ctx.reset() _next_id = 0 var root_id = lay_ctx.item() - lay_ctx.set_size(root_id, size) + lay_ctx.set_size(root_id, sz) lay_ctx.set_contain(root_id, layout.contain.row) var root_node = { id: root_id, - config: meme(base_config, {size: size}), + config: meme(base_config, {size: sz}), children: [] } @@ -107,10 +108,10 @@ clay.layout = function(fn, size) { lay_ctx.run() // Annotate tree for clay_input (boundingbox, CHILDREN, PARENT) - annotate_tree(root_node, size.height, null) + annotate_tree(root_node, sz.height, null) // Build flat drawable list and attach to tree root - root_node.drawables = build_drawables(root_node, size.height) + root_node.drawables = build_drawables(root_node, sz.height) return root_node } @@ -384,9 +385,10 @@ clay.button = function(str, action, configs) { }] var _configs = is_array(configs) ? configs : [configs] + var merged = process_configs(_configs) clay.zstack(array(btn_config, _configs), function() { - clay.text(str, {color: {r:1,g:1,b:1,a:1}}) + clay.text(str, {color: {r:1,g:1,b:1,a:1}, font_path: merged.font_path}) }) } diff --git a/examples/bisect.ce b/examples/bisect.ce new file mode 100644 index 00000000..bfc13f30 --- /dev/null +++ b/examples/bisect.ce @@ -0,0 +1,45 @@ +log.console("bisect: start") +var sprite = use('sprite') +var clay = use('clay') +var core = use('core') +var fx_graph = use('fx_graph') +var sdl_gpu = use('sdl_gpu') +log.console("bisect: modules loaded") + +core.start({ + width: 640, + height: 480, + title: "Paladin Simple", + framerate: 60, + update: function(dt) {}, + render: function() { + var win_size = core.window_size() + var graph = fx_graph.create() + + var ui_scene = clay.layout(function() { + clay.container({padding: 20, contain: clay.contain.content}, function() { + clay.vstack({ + padding: 20, + spacing: 10, + width: 200 + }, function() { + clay.text("PALADIN UI", {font_size: 24, color: {r:1, g:0.8, b:0.2, a:1}}) + clay.text("Item 1") + clay.text("Item 2") + }) + }) + }, [win_size.width, win_size.height]) + + graph.add_node('render_view', { + root: ui_scene, + camera: {pos: [0, 0], width: win_size.width, height: win_size.height, anchor: [0, 0], ortho: true}, + target: 'screen', + clear_color: {r:0,g:0,b:0,a:0} + }) + + return graph + }, + input: function(ev) { + if (ev.type == 'quit') $stop() + } +}) diff --git a/examples/bunny.png b/examples/bunny.png new file mode 100644 index 0000000000000000000000000000000000000000..79c31675083b7ffc272a6370bc189360bde484d0 GIT binary patch literal 449 zcmV;y0Y3hTP)SOJFMz`0@qn1GK$9W|wOohG3Lai}FkWLtiT<2<{JbM8>W7|R$! zUuNqg#gmKmsTnILy&K;zJjd^_40xy)%EA1>FWWk~LFpr>Et|!Hv(V>Hs9!2xEQJ>~!qz76HLsxFXdG zs5~GjUDeD6dXvG$_#HtoUok|M-X@BSTy{VK4P?TJZcz}O&FVzD0fZu8Yajr@?2aYL r_Q@_>J=ju&>AqoA-=wzwF98MsNX4z>%{`Tbh##H;uVf^5u`o22;^4GOx)7_$r1|gT^?P8E#C-4b@Aad3z@ee0!g=o9u=ucG;H|B( zxM=6bdByGC_TRPmzjN%EUB7=*pJ`fpaax9NOp42g^N3ceWo2$yMQp*0;_2z>K|xHZ zWYpf5fBe{p{`&D*Sz=91SF~i~adCOqp830N>hiEe!FKJ`miV$_;;miXw}#i+l8Zk( zOg%VDMLSmNrd+~w(c+wQtX$l)W8%@#)4g!(u3p}@X63hM=DBI;Rzho`V9Bdn+s}>l zg=d{jKVV%>Z~8-550}aA!t8Fc;B(*Zx!)HtGxL&3CX*nw|D~k=fPW6)_XVkZ zevz|ocZmQ#Rg=fdkN0|Xhh{#YS*ix1W8K^~x~W>;HzfL7!X-~d{{PnrYaPhA)8{G4FL8hrTPtA{Z^_|RILC%3@XThD!=r|w3OEe3c3S)_FDiU z1W?vgHToE-AVnUds=Bv{03i#&g#q6eH!3!5EZ!&x;Br`lnb`_gvoo6ghPMW+j#!Q( z6GlLGrO33BHAW^zz+;TMw%7nZeU%3XnCnS#jv&nyPuTFlAa&WJu09)pZNsFZgxPoB z5}R(>Ji_`Wx$I{l$fnQ_;p2p>aX|F52?RNZNjogvm6Ky4)bUBBd(3>^Q9poUR>M8F z#6h<`VHFp$2>{2bw{j?oo%(r~B;>Hti_fA70Q)f1CyKw%l*{E$g!B#JJum@a6-S40 z&~)sIYWo^K-_iK;86m@?qL$VUEi-~M*p@YQY}0?@0Ep8ZBG8by09c(Yitm)G>Llb8 z0H<^~iwhY8ppv4+TKu&Z`*!!`&5lg7_?#&xV7wSbhuK;Oc~k>24eRk-gLS9e@ z41kK@NCWHwpz8>gf+GMefs6n-oai({f#5LK#51_FvXXI060wZrW5$%3gW*_n+E5F zhY21S&!n!N%}*3dL&?<#Kde0o&;2K6Tksnq}~C2A9YK{Xnmy%!4fl)x&w}YESiCsd@_mApw6A<|*W~ z=eFAdU{|x6V)4ncriAt>X{qHDb2ZYC@Kb+Tb2-%k^d8!em-lT8xvZiqUaCFyFO4Fc z%4mS3upFVD^@5hFKLv6n^HrYNcQ}%{>W>P^=mZyA_%RSK$M2oWVe7)^3eqcj5%)|; oMh5BE0n$be60e~*BBM9|0gTl^+30pDZ~y=R07*qoM6N<$g6YAfBLDyZ literal 0 HcmV?d00001 diff --git a/examples/enemies/barnacle_attack_b.png b/examples/enemies/barnacle_attack_b.png new file mode 100644 index 0000000000000000000000000000000000000000..0dd260d1a6861df82c29407539c5301a03774f24 GIT binary patch literal 1397 zcmV-*1&aEKP)jLNzr&Gc!aq zG(a^qK>z>%{`Tbh##H;uVf^5u{_@xQzB;vKDJ-QC{Oh@$qj zIQ-m}(2(|-bF|Hh^k-Ch&6w_cV3EXp@4|WRqj|uvVBp=b_`|=*-?jLmp{B*f$hU^q z*`)bpWp21==f-)(^Y8UPJ50-m^H@b}Sy^Jy(bIoZpWCYWZ%m4*WYmaOs)>n@adCNZ zT86)K?B&Pzm|ef#mw)`&i2nNVv}EH!K}@;1yvvgA@~}ixM`OEf>at?u)Ry?ccJ1xn z_N`sr+LDV!J61h7OX{Xv!gSH%oO7&P+_Piiu3p}~aO<{a<+o?%xoPNDLTjz9v7une zg=d|sTifaB>CcVzT~2RJKVX%Wo5+IkeSL(nXWn;EmH+?$t6JOEnfm&=E%o*FH8nxH zYw64jz~}$~01$LiPE#*Wf8Ss4pO3F^AI}fJKL7z^P*nf`1ENVpK~z}7&6j6iA~6t$ zBZ?GPz25Eh?7jEiyC@(CdMH(4A>aQp2@8{L;P2kt{|(t}<{>kgWU{3BA4UFKfTxkk zp+HmNZI|~gfVzT^v!=PZ##wx*SE>ax)fP&sYbv*$p6URuf~DL_6@Yp%c5XG9-Y?pv zlgYUvp)#OGnEc8!9SEycXg{TS+ffOi@Q^*^g#@7Z@W3Cu6#(_v{z(9yFrnTapz!$@ z4f06=NNUe%lPM5m0_@MW$o4ZvOcx2es=9Maz;QPpdY0OtNE@j$-raqyp8^IDz#sDe4pD)4|hFAdLDCz?9K5D8yKy;OGYXp2} z_Mbjuz^n}*N)0Zk-`aLm6}dp8RRa7flD|qof*O`l=oY<5SO9n;;Y7YF+h5^+t3={} zj2WR-vd>roU^8t=JMiZX*#DT6I=3u06WlFcXhprqw+tfR4HA_B5W_lCfY%TNGi7wQ z6#b#PPzkVLeW>!{eq9N0tt;>tzfgRAGsB68M(!Wgw6Z z+}owYvQIk|$Q#Zg(>*~n4<6qJc+`9#W(RsT($40;?*n%fsqR%m00000NkvXXu0mjf DfVH8L literal 0 HcmV?d00001 diff --git a/examples/enemies/barnacle_attack_rest.png b/examples/enemies/barnacle_attack_rest.png new file mode 100644 index 0000000000000000000000000000000000000000..fee0a360428b18d4f9c451fac30951bbaf9b121b GIT binary patch literal 1133 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 literal 0 HcmV?d00001 diff --git a/examples/enemies/bee_b.png b/examples/enemies/bee_b.png new file mode 100644 index 0000000000000000000000000000000000000000..f06d4e2afc1e9f90faca0415f6336b44d1a765ee GIT binary patch literal 1726 zcmV;v20{6WP)oKmY&${m)4Hzcc;hk@4~J{@Gjn@W%e#as23|`S$Pq%tQLUG5*m?{o7@zsIZKT zmez^ynq;LG(me-q7 z_2$!(lAM>9q4)9F{Kh=n-{QrwmQ_VOiH?^?NK@6KGmw>>_vyHUYd$|eN=Zpn)uAv| zRbNFaoUf_!|0-QD2J%g*kyFU7^mj*yr0;h$Mq zV~viM{?$(S;+NOl;M28LzNJ@ha(jo0k@3%4>*2ZJ+TM$emA}T! zK0Zo`i<5qVitpW=?(XpQ*>#GHl=j(ne}9Ml>Akzc$UQzvhh16H^7H-JT1H1w*WBUX>2vW;yfp_VxGpigHKDm@@nO{9RpV?eFpM^7BnaKC`p8?XfOrXK?uW`c6(*{{H^V z%+KPFD^gNo|JPARM_Bs0E&u=jH8nw|O#*TN000nlQchD(uU|jUFW;YUj~@@e?|%Tf z&LVOE00W*$L_t(o!|j%5SJXfhh64**5_Ylo-h1!8_uhN&z4zV~D+<_qLr?()D;7`` z6ckqJgw1Y#h;wHqA=xD0Iezo(`z4#1d7quh+?jis;C~e31NZLt3$L~Od5d6ENW$TaKW6zuG1q1u_^#(6Act()M58m061yb zh;b7atXMo_?wslK7AZ#;981e7l60hiG+Ijl0q`C-GW6HgZ{J_sdi#3HvzM>lEL^fy zvgdfzD$2v{{t^IxqzR)g|CRtZ0dV`?noT#re%GVbo;X+qM*uANSLOdefGY?v8v*8H z!1~SGwu|xCJbKy%CL0032PjyU|04qfW-VR0eCE_?7mBfl?bz+nR}K(hE0{p|H989e zhK#@NqFP4?!#zeSpi^LA2lEOsV6bdQ8VdgQhJHK+I{+Yp?jpd&jL9yQU=_8E0Unq+ zibw{Y*8tE9+wP=1e3ce}#{q0Zj}s=8dA++GS3iW?gP&XoW}1gPYy?(KK~6od}OfOrzk44l@Y!pg34 zsTx28`ix^s-34^FFn;KHuCRiuyvC3Bq4+>qao`Upv0{}Jt=~OH0Ky~VT{NTP#Bi{N zG*=C3>X)97kp7Oo2v~;?>G(rMdYl+?nrl)^ZZ^DS=PChulc*n3uOS*3000gw(hAby zXgUYOOsP>hv=i02e~0 z0?^mlU(^6VE!#9dd$!$~&R@O&poz4EU^vj9C?JtsgNgDs5ftyOX<}#Q=OMN;~%+ZA0RFIh3g)Y40VTZxIta zXe+(18G5ao6>CuHz6^*W4Fh?e@6zoCwOd#zFTff;ywiBGfs}tYQSR|@BqJml2aw4tq)k7 z-IH?_{*SW%BR(X_vOhqtzzD=uKz5RjA7UUk=|f3k*RN1GoTA0-XdFWiz&67tm9GKwrm>3#=SW|hX;?1px~z`v>!Ie$MLhS|@``f6n#;C~1F0bQB! U@=c+H(EtDd07*qoM6N<$g7rUocmMzZ literal 0 HcmV?d00001 diff --git a/examples/enemies/bee_rest.png b/examples/enemies/bee_rest.png new file mode 100644 index 0000000000000000000000000000000000000000..ab2cd959fe0c7cae5cd06eb80d528cb034d3bc7d GIT binary patch literal 2069 zcmV+w2jLNzr&G&Ddn zGek5rKmY&$)t_DY$w~CQLi@uw>!mitwxj*hPUDt1NbLs7I?bqg`_p^Hv6krQ>P}BuXKHkmnV_n&xzX0yy1v7Vjg_&pxTB@3 z;^gN2>Ah-ebic#N)3sH;rB_KxRg!~S)6>`S&s)O8$l~PQRYg4R+?&nQ+0fJ1@7N&for-Qnepjg;Ks+VNLQ`FhsaB_Q}pQhX3XGOH5Yw*>%E} zI(2n{>EF2e`uqLYTC0aY%gfIF%|+OxHC0#Qdvzs zvb)0G;^y1nFe$9<>~9==j!C>>+kXM^7Hl3*4y&*_4M}l_4oMp z_xSku`SH^0Bb!pYEPRy@d< zGEGH3*xljU-{aTZ;MLmR;^yeq+u!Br>+J6E>+bO5=IQ6^?AqSq(bwGS?eEjs-R$r1 z@A32S^7G5m*YWf8@$&S})!Fm(_Ve}j^!4}k_V>li((SP>_xSk!{{Hy+`f^@6{r&y> z{QS+GH;Qscb7M_fT4cP$%fH9Xu!uDL$Uot!FXrj&=_^ z?d9d?`nxaSMdv$MD9?C$OF@yyK6Qc_~O#LME3EC1I~M@Lxy|Nr{BEj2Yk z+a}F10000GbW%=JKTmJ3kAE*;pWh$P?+?EKsX`ki000D}Nklj&5?$7m4KJCcl&! z5R4c+!age^?3Wd`H$`LtAmHePBbzn(T`l2&3n1r^mSn1J)TryP zy|S5+%5wMV>=OoVI) z_@FYSX*Fx>e)#sAuYO%wb@~u$l?-jhEX@)r=MzS%7oAG1 zhRD!LG+QLi@i71_Km*u+8|;5swY~MH9otUhbC%K^(Ew}<=dBiwqwi2 zO{XyZ<4(O6hib_Lz&a&s>ZtvyFIpEZdE@6vo94HiN%V!9JCf!qOKb!;Qu`~Z{f!G3 zZ*BSDq%N)rWKjYOVFKVeH-P=A-2SIqH-G%m+>>#`LjpY=gB@VCzwq<c_0!&G&+Lw?X9eGGFCaR3;&TTyP)9Z}%0 zaQK1ypNKF{7yo^}AN;qA&@E`f{)rk!nHaE_2}tMDtik^I-@b3V@s6q&Jli0g#Lq6|7=C2TWu&FCui*`VIFz$Oh`M9HwFc zUx!iAQt)1takx?HkK*3*Xsg+a0-~4!#%sJJ*LzPW#A@e>TjPXQA-ZDHbVkyGTkVl#;ek`aq?o&Q zS2)yqI%-x#-i0yFb3WOCJbzy}RZc*vaYM>}LEM7kjbl64ec9RDooQA25N|C zhFRc%Q76J^J=lIk)q*>9TXb}MT3Tc;&2oiaQ8dwZKRH1`wRMqXQ!UDG&~!-Ld`;?& zV0u_iZcV*W6N(t z--B1%drZ%9L^rTqmXlQ_zh*4SZvX%P#%exB;D;c%VBUUDF3fT6lV&wFK~Io~k^lez z4RlgYQ=eZy&yU|vFMkj3zW`$PTEqYV15`;wK~z}7otNiZ>M$6^D=7Q!J>7fH>z;tf zaIz~y1yrO|^8bIhN!p}on?m7yC^RSMm%J~}QyL+l$mQ|-oxrA?e!s`11_gBSdVHX3 z`8-|%a1VfB_*6^u#JaBwgdd$p-pY%n-1Nn@x6!4Iz!(&)%*ml_$B zCScSrpjL!}ZRgfE>b&7#2xT!~>a0!tV!PSQUT}=FDGHcrm)~td?eYjS6tL0;aMHxu z=2$Bf(5`~40%-DTpn!HA{I2A)JdXpYKR+8f{!iJ$7oKkd)SuB@0|F7U8(iN2P;4`z zesWUh`#OMTb9Q0jGXP>gK0Q5hcfs{3K(l2iGs4QJ0M<4m^l{eL0W@2WFvm5Y0VsC$ zV84;i*QzXnjpu54s9KKr6rjdy4ORO&J;LadB`82|Bjp){F|HvPfZk>iyf{Hn0I?rF zAGJ!Q%7a=+m9&ibmz5G!<&q#MK#f;gs*Wz%jZ!@I$r3t%W+Rm-!W`ES3_x$Q2wt2Z zD8OvvLLRK+3W5UQ-5Xi{h=;e5$+CWg|of8)V(U_ronaBcx;9Tva+QbwbAV%eB4K}lHFaVS|21Iy(hzigUI>2?2Jj7D~Eb{=%0HowfT$Y#O5q=XR@g?|( zt|_w+0t3+7{@)_|&nu_@@BtsvIrNOosnd!-(fdAr*$^WnylI-L# RZt4I4002ovPDHLkV1k5iQs@8x literal 0 HcmV?d00001 diff --git a/examples/enemies/block_idle.png b/examples/enemies/block_idle.png new file mode 100644 index 0000000000000000000000000000000000000000..90269649b625f485e81c046e18aa2622c4784e12 GIT binary patch literal 1249 zcmV<71Rnc|P)o7A-ZB%SYldQWKK?4Q%FopOIA}; zT{=2NG0t;9s&P2fdOq2JMBarwe_uLkRyb8oL&|l(sz_zNIsQl zD#vUq$Zg7PL7iz;zk6JXSx6$gV?Q}T(|JxKy=2XBL+OlO=!;#`bw}ZbStr71KR-%( zSWe=NV@yCr)`wv|*nULSf;)9vFU@i^(RS;PVc>vK$aGC#M?^ujbuG$o&~!-Ld`(?l zXKqqVKsrNLMn@pIVPi~6%Yk3mc}mQ0Lga{C>WyIRkYnV9SK@M$6FD=4d+y|;U>Hq(D zlD0{c<}HWz`GB@}pSw*MS0aV=_yV%*Rr`!rmIFScDB+i2Af!4@C=et9|B&h`Lw;T0 z52-E_@?$|z>(9lO(rKm7q|-~WIn5A6f@yKXA{?cdS@zKb*qDLkti!pPwx={#Sp5HxL&D&1ZbAMS%_ZWsqA0Iu;ep!^0-bIf03Rr?BCS zfZ)fcr$_K9Ku!fF?x2VYJ5B{G78QJ*<($C8yh5y-oDt}_zQ5Bdl^S(c!Pbk75=x^; zI29Q6M$5=fkyltbxdj#Q7^lQ2taVet2zbmYpgK`d0l^Qi54z=Y?ZFsGolF_wSG6)q z?TRRpn2c>$-$t^g6iE+wQA=XU=Bj7Qsfa*j+1tQi4@?c-r6;yzZUUfPb zUFa@$bsR>phbAil-o?Jo395Ly@461d2zF8bt#e(wx3UU6aJ7J**ZF1di}cU8(OfWX8!)jOMdy?AYMM!?ra#h$^@PjtiN zngFl%KL~a05;~B*gmJ2fe8f5Gd0ZLz)Bfs@$9gMF8vC-$*mpByb}i|qhy=h(<(eGLqiR6%;ejOkHhg?f`$^pNN!p$()p3!Ow(BxBU8yan^{o`ybm`l^&Gn>{ zdUAb}Zu`PM)pdOO)>m@dm&oSZFT1JBe!6=Phdl#cXKn9*M{oWEys=t{0@^RY00000 LNkvXXu0mjfT~I*} literal 0 HcmV?d00001 diff --git a/examples/enemies/block_rest.png b/examples/enemies/block_rest.png new file mode 100644 index 0000000000000000000000000000000000000000..d00191d721987ec3c0ab830f3914757928e24451 GIT binary patch literal 1225 zcmV;)1UCDLP)ldr#+yTheq!l(syoBOq5Mn|Y`SWG}gJ=lIk z)q*>9TQALWG|_hJk73||QC~+y$aGCXwRJ7ZZ_so|+~J`fdOK01b3fPE%i>KhKZfPcMHD@4o;qwKiw~00SLK zL_t(o!=;yZcd9TPhN-qLynEl}G$Y1L}AYFkAM-~S8TB#@B64~}r(Kd|ud zK9Kb2Nu;=*P(+r4+JFhlawKFFC47iRVw&f~B2g*`k7&L!64nLbnC3IFFcw5fe<8J+ z&np8apI=Qa5JMCRhVfrxvx>*ej^W-g65t6)DL#_I(-4;e=wmABN06LC)qsRYFsdjM ziScy$ZNQ|{H%_6U@8y*Lx`IkYSz)mRtnKJ(6tzEir-H2#UI(2aSOV+-C5*-Y-H75OiK& zEi?XCe}#__w+TA0_+ES9Fe#J1`dnCI;TZfpY?ipI=^{!M6Z86PUP< zVplkECg8DMA=Y^=2uv(0>~)iK0v)#w_qyeByTvQ`dZ}GTX_qKx0;AsU8rds}3M;3N zU;+{2lsSd9ZYnr|h@&te`Znse%cNdQ&xWbj`mg z(=$#VAqY&2Q(+2w-BfS_5%UVDP8CdG$7CQ+&UIbE1nBHTzkjJhPjRZ_aDoFgSsCyt z&UHc1z|;MpdJHGnNB#Hee+bn5#@Bb~FCX%o3kP z)gKy+*8qWuaT*T}^;YS|MlrLU-scswu^^wtgz1@z`W(995fb?0WE00000NkvXXu0mjfF%T>8 literal 0 HcmV?d00001 diff --git a/examples/enemies/fish_blue_rest.png b/examples/enemies/fish_blue_rest.png new file mode 100644 index 0000000000000000000000000000000000000000..c4729ba9d2aa9f1d50af872edc769e9317c35062 GIT binary patch literal 2120 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 literal 0 HcmV?d00001 diff --git a/examples/enemies/fish_purple_down.png b/examples/enemies/fish_purple_down.png new file mode 100644 index 0000000000000000000000000000000000000000..772aef3feab145aed756eaf956aab50857d76250 GIT binary patch literal 1964 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 AVgLXD literal 0 HcmV?d00001 diff --git a/examples/enemies/fish_purple_up.png b/examples/enemies/fish_purple_up.png new file mode 100644 index 0000000000000000000000000000000000000000..7f71c221ea23c498bb5c6f373b73766988c808bc GIT binary patch literal 1934 zcmV;92XXj`P)jK{Yi&H8nsqG(j~rKr}Q!G&DdpH9#~pKr}Q!F)>0j zGek2pKmY&$PEJ@;Q(ZbbMX6-eKR-%DL{CCJP&_5QQTFkj>=(%p?oL$7fcI%Z>zRHL4%ZT!wU&KQ>RJ(8IoLt3i zONmoIXmCf4RY7WYPL#oT?4(%Im{!1^SjmV{ty@BJ$%OKyQ`K-tj#)r)p;gXjM1!VO z)qF{wUqE=6T)t90XTp2!bWD+gOQ)Do#F9|EnNh`&Pr6t?Z=F`hQa)#2L3wUVig!R4 zVd1!F=eB3&wPxj(RlmS@>$GL#vt#3QOp=33sCG}3h*ql0lJ2%=n?UEQ%~-m6;Lw}#iSVBoP~;jLWVtX$l(V&Sh}->+WYu3p}=W8$b+ z*grc=tXtfyTidN%+^${SsaV;oTHC5w+SZx+x@+k*H9@b21dsp#01$LiPE)VXFF)T; zZ@-V9?|&Z;UjSXJYli>;1j|W8K~z}7-IwQo+C~`1342IN_a5oqd+(9%z4zX`SxuU> zN$c9NQ`-SAVq-AG3*bM(u z0A(`vcN$HUP5^C(5Sr}@hS6@uowObRy$uS@?63$u7KgdhwT;#R5aV%kIxH54Q`XT> z=mWU$xRp5UYw;EQ*RdJEh({eww@)l881cmu?e-#mqBa2-@E~^^H;F-_QA;01KkV87 z8VCH`78_!S(YXDI-_n`@295B4(;n2YBt{e9KqJ0wBzoe`bi3VY{P21IGWGzlWgq8z z2yO_^-gOR|N$5?S9$Ekj4fv#9YvkmFbR6y)9X&ms4u$US_dy9Tq4zJh5MfP5xB|j+ zM@LVC=O;p;AJG7l1^{Q#-w2SG6Rty@XPk8&ydbeZ^ci|~Z3bA!5^~Li!aUTj9!rG& z&;#IG3w0zxBBVR{bmLfJzczrj*a)B_VMZkUfHN?D!|Y#Ui6_yM%|fdID638QN3ZgH zt3@P~B@OQ!KK$s??CgQWW5O7lmFfY|25H~C6(bVzxn{F`OaLU=-;=*B9YYeHkcQbP z1wbkSlb^oJ@!}-PrMVDFpW6#8JC~eV`gQiekvAr#T0zMGcA@X_ufE^{BU}tkVxdMR zQ7SHHQrSY3Ws^xP;l+`_cRQ~UM%%jpoPf}?=gMNU#!q+y+;mq$F|r&a1R^2%nsGiq5~dmzzP?rp zUIM_p0)VHm8-R=1>~gu$s#HV?`J8+mk(Dv7)hI7#F9Tq=VhVT@?gikYWHeQ5iV|e& zmvSB*Yh)x>>(hS2<53vsxdr{ULA@CeFq=*s#$s4@cnDP z;C*P&aoI;s+>K_D@Zcj4`Qhv1DpuYJ{rBGUfEe#o?ndGy$tJLYvef@xpwG&?{3zcy zfRIBFT6zl#L%KcTFwS!LQJiFc@yp|x0Y%jzlo~rGO@1J^^4VeO1zLaOz_LzTT`q>+ZXw0(eNjTKad24pzck}= zS!o^TL~_o7Uw%#2vHtW+Q1x`90icQ2mGn>9LZPsfCZ{7Oy#;_lh?l<4D_d0HP{wN# z)Bx7rc#+`J2cY`nMFOP@fWI=;Ygd(k)tjm+XFPR)jqIvZ3c~6svWINC0jRjh2`HWv z5u5%gY{&^XenbBhC}$5rig)T;L}6oh2~vFTA$4#fDG1u}15#NcfEVu2jvsVu>k@!= z{J?9UjG!4m_}(ZHwBt1{o0hF+nsmKs7Z$G&Ddn zGek5rKmY&$?z1rZ$wm0SIsVj6`NBT?$wm6TG5pO(@~kWIsw?uYEAp)?`^rV=tTgbd zE31Gu^R6r2l`QtOEAXi+-Iyc6cNxrt9b-{D@UJxEo-KM_Iaf+Ok7+jNnk($1E9|;L z#Dp*9qb-GJIrFtS^|(2NVmI!mENoLcSV}$l#zoMWFZH`T>Y^|B#YObFKH#S=SWG|U zqA%;9E%(Ag?y55Q!ane?HnM&(^S3+ozCiA(G|7!G@vt<|i!IuaEKEc`j%POc$w#?< zFiS!{_P##yvNiO&KCg!}!j3b!j52pwIQz^=^RF)Sw>j{uFiSx`_rXB1eKGvVKl;Bj z`Mx!ITsY*pL;cT4igQ7?hcf%kO8mw=v5!4~aYv(nHJ5ic`^-mlXGZzMKKjK#_rN~o z!cX(BE2>-(q*V{@tSP*LFok6|_OdMRs4MTMEBeYu=9eq^$Vd6dMg7xGR!2NQJ3s!_ zPI6v4rjSZaMLteRL;ccB?xic}r6<>sA>*GVwP_Xiwk*7ZFpF76V0v@G$fE3k+(;i)gkm@>SOGiO~z)uAx@yD#phEbXEz^RF!S zv@GhMD?vR!{?ST7KSKDnELlxG`ME6n#5%K@OWC+i?xZZ}nJe?EdSS0`noMO zH9_oh?f3uy01$LiPE(I>Pp?1UU!NZ@f6u=U?*POca;E?Q1n5abK~z}7?U(0U8%Gev z4F^Sf`tgMMQPdeZ2kfT zX{BlM7cc|%6UT9r`#MpKYjdAf%5l9}3b_T)-*=+}k^Vv73XWSjPPmfRR{D}Q&Mm-d(Sh_6$&^0| zB1<8R-nzP88cC&g7J~Z*BorBL;d`+#8Ga1rCGAuV(|e z^xSinFF(IDhk#LDfVYG^;V_5{gGf?{rr+ngWEuQccrpPU-2mOy?<}%Aon2S0T6M)` z7uMFsq-cgBm*NMkRcA7pv{?dV?9w$YJw1qbIUJ4cQ&STYGZ$S@b_7H)8vo_En5=Z1 z%!W(>9X58f@I2oGyoArV-6Ot>YrS+xu7_`!VsWFgN`XRb+Vv-o)>G+l0KT5$Z9ZRr zBvKoW!;lazdr^Xb0h>E04+`zry@(G2KNP*%Yx6uKq9v^*N(B(WusRO$qB*JeBO@Xn zJ>XB3h3*yjWs@A&s!(9a_DLV)WpfJMBR(*Mcq*AJTSxisGyaBMHZChLR$M?eywWPE z_XLmn{eZh%fxu0K-_QS*slc%KdMHDHcSzp*N%w&F4ae3Io>wU_IECH3${gr@RPf$) zI1m_)#g2I2AiPR}!6E!vEx;yMh1cK_C=-_yMu4~IRrK|V{NNEY~Qc6N{O#0TK_ zY~CUzgC!nYC^R5@cpkK^L{=84pPj8=!>_p(9=I5iu7{P`S~`G*u9 zG7G{&F0TN-z8v1{DV(}33jUALr{Q|3u1$JL~o;cobkQik#L&ahv4**x2-@JMO2cSSKe{k(aYFRcQK;;BO7z zPB*`S=Kstx%}8~n;~?dQ;1dF#h(U=YM-41%h13U&R#lm3y{Y+*dM^bZ4BbYm+EW~c zt(Qu;#*kGTg|peVuRg1)s#?4D%7#S97Te%I5RF6zeIqNlUR<_w90*K6Dm4^+Z~l(a`O>TNxbrqduIJqqod1d@A-x!Ay{&s6Iq?! z3`R@vdjy85{Tv+FOEU1hkNb2|cF?u;#dhjIx*(7Hf-ou7kgASu7tV`Cd0jZP!ldl@ z8gP1Q*5!9&VfCs*swVF%kJg;)n4I&@q%D?s(*iGDg&NHIW|QIc#q*R3{0j#z%)LWC R^B({J002ovPDHLkV1gr0;mQC2 literal 0 HcmV?d00001 diff --git a/examples/enemies/fish_yellow_swim_a.png b/examples/enemies/fish_yellow_swim_a.png new file mode 100644 index 0000000000000000000000000000000000000000..b820ac8dd2aa7f7d279d1baa32ee99c0d295d1c9 GIT binary patch literal 2028 zcmV-P)0hF+nsmKs7Z$G&Ddn zGek5rKmY&$?z1rZ$wm0SIsVj6Mn+LLH$yx;NLpHC`NBT?$whu_rgN!pe^pIGWfzi@UJ$qelhd6JN3Rm?y5A&jW6-AG}@3X(2FfhL_UsZ zHu=d%xqdK9LO%AsKJv0P^twK;hcm*CGr5d1cUd_5%t`aFF7&rK@T)LOK|c4vK(T!> z`oA;$$UphMHF;b(M5XMg7xGR!2NQJ3s!_ zPNtAbPDw*uU1$B$Ozx#C_qHs&gD_1+K8tTSjeAJ%rYp>@O_z5!nuba7sVwQ8EBCZ4 za$Y*|t1G;aGiO~zu!uDJyD#phEbXEz^RF!Sv@GhMD`r+a;i)hF(Mmx-LhZ3G__i!r zO+ER!EI~a#`@}l4noHTZPVS^E=$R|kp)m5TEb^-?^Q|oLt1S7rEXbHL?W8O8uPo@B zE9sjn=b0;7Q$+Q$Eb5&r^2|{7vn=z^y^qAT;REbyr; z?xif~nk(v_E9;;u@~kZJsx0lJE9{{w>6|O?r!4TOEdSS0`noMOH9=LmoXh|K01$Li zPE(I>Pp?1UU!NZ@f6u=U?*POca;E?Q1no&gK~z}7?U(0U8%Gd_4qt1~_8Vc9Khrg*s!=8Q3KV6vC^MoT$()q+1c2UBC?Q{q&i?*>g@Q$Mt3? zWEVhxKZ*@T2ZsFXIc~!w;fn2c`XCf8F2L&10bxaIArJ$RRS-sRO-(NisHR=Y>8S)v zMmozgqrsp%wE!Y#b80)dxB#n@0=+Nci^uzdM?mC{a{*j+@kQ&_T~?Y!pitR>cZ9u> z2#Ab=NJ@-m!0*3$E&P^$DggsM09{odK0Pu!+j-;0jn`j$MRj#tj%GM|4ZgtI3}&-g zpCLeUC$u`dyAkhnx$0YHW~Qd*ue`kMD2QM*f$MNH*=U|DrgQ-V4)!>Cp6>=;#^*hr zG5=N7KAMu7;T@((I;gB#ARmV++jz9@a+eG6EfjC|`v;=Y>PP}oLb%LL2?8b@?x8#= zwBYm-J_P)5>?WVX`=W#v+l$o-Ab?@@^z)Lwo3 z9Of096{kmha2WB0RH|$<<-5-M8&27zqQKa21GVyME2rKQJQfH5?sf-*w-LUB|0`XA zVezp)O@MdF-UrC^fcK5YHxr)MC@{E$UA)Fz=zUD|-hCt(9F511`rakHMuEW;?$iqK z^~8G#hw0#B@mEE`Vq>rXILUC^&e~e1q|i*ghv2{XeAl*Zw*VjUcJdht1_u9< z!Hyn$td)YG)4%`KFZ3)YA`!1+h|f?cPy|}xVa@9EBp(2OVApQB7(C~7gu{bMjF-aL z24rP{e)xYuNy&u`;$}#>A6HkCm%`zb$zfHNa4=243IESuU9v{p5*~N(J+;77C+m{Q zn8N=GWBW-6SV-_3w252w66(N1!M@kh3R*Hbequ`IkHN@4r16kdARD=X3XnZDvVcps zTgC4fKM_i1@&zn|wWNxy0%ozYiSlISA64)to(zSKztyDWt%WuQi$NtF?{_*oC{H$C z;(h{u`oSy7alj|u*ef(;@Nk%{n#0JC{7GuKn z`BJWi`)dxUcobl*s+!hFafj^v#Khe8yB?;c*q{_uiC3yJRcQQ=;O~jtNe{n?*8lW2 z&B%SF=P>2P;FBVrj6;hgR}E}y`P2uiUelRqziIuMdM^hb3g1n-+VdQSZIoNM&Xmy` z#k<+w@4v37sMxgWhPq_f5#Jg(6pKcO{A266Ufi~eUb0mA0lWQH?8<`(d*-KRO6kd6 z{FY{7)C!N>3mu)nEw1wKxTOeaB;I_?Grwh~-qkrf()}YxLa=7PC$a{k1&p@fj|mJ* z`z<(dfK=cmU-#*vG|;{E%|7aYke9>vg19JEP^ymY6Yq-!Iel>G#YJiO0dRV2Hstoj z!WuP~R9()WJbFvEYjW0aCVi32o0s{~m9N99Z!w$Be0ZK#fqwx@=&%8SSYu590000< KMNUMnLSTZV#qzWO literal 0 HcmV?d00001 diff --git a/examples/enemies/fish_yellow_swim_b.png b/examples/enemies/fish_yellow_swim_b.png new file mode 100644 index 0000000000000000000000000000000000000000..c886a7400a2b76e3f9d207ec2fdf339ca4b4c5c8 GIT binary patch literal 1872 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 Z{{plJ-H5PbJ9+>B002ovPDHLkV1m6SDI)*? literal 0 HcmV?d00001 diff --git a/examples/enemies/fly_b.png b/examples/enemies/fly_b.png new file mode 100644 index 0000000000000000000000000000000000000000..3d6670a1d73b70e49d677a097a01e9cf233bb51a GIT binary patch literal 1978 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 VbJ4ahT%iB}002ovPDHLkV1kx31$+Pi literal 0 HcmV?d00001 diff --git a/examples/enemies/frog_idle.png b/examples/enemies/frog_idle.png new file mode 100644 index 0000000000000000000000000000000000000000..11f7826cec2217da7ae144b0ca5efd63cf32534e GIT binary patch literal 1882 zcmV-g2c`IlP)BHH zMo~96Ln5<$9;$dL!h|woRwurJAB$>J)14=3S{s>gBzIseR!}NkR3x^3BD8%Ut9c~1 ze6J>e3;wdm^%YBes4Z zuX`Y_dNe*oE69d9%#I|ueG5a$A*>U z!z#svGe=1*zk)8LbufQq6Om^cpmhKL|1~v1EXjv>!s;{t000nlQchE^Pj4T8k3TQZ z?+>3}-@gF(vnyNx00f#zL_t(o!|j*nTN_6ZhZlq_=~PJXz4zX`o!)z~oj6YH#C9CV ziCY|+Lt;ZP#6-AY5Dc8GKtc#f*Z#2V%lDa6u+k~z~xm;ayL;0&9=rm0FO^` zAb(AOz}~-nv`96uYFuQp1!@6s{a``mD(VQUZB2DRBitKM%POqyYAI12HQDGxp{f7@ z60oe=Y2j?83q*HdRaK+(m5T+-s^~zeG{B9e$~+Q114XrnL7z1fn33MaAgBw$Y5;Tq z?kXF@mt;)SEd9Kg zKD)nU06^5r2Hgk&dFug`{ozXwQ~=h8FXYArxNNEcC~37*H13>cTwvD_rzr~v5U4TB zl8E1o%36%OEJ3hcfI2Fu3s|dJ^EMV*z}QkSxfHMh2*#imppYu+Z_#XooeWw50VtrT z>PS&@J@aOQ7zUjImM=k=u$*W6mSSo3HI)H=g*B5yX|uvBaDbl;9>XK&_O77f z?X_ai34{+5<;^$v?YX`EvO&k*ao ztR_iw2-ZuI6oY#!ay5Irt32=dpng#+H{7phY z`&)8N^&7(&-wG~ZoA?Qo&|e4`9h2*5$pH9eBLCnln=U@+0tMDfb4zkvCCY%*_}4KS zL;(*`9bmKGK**)O8qeQLUC;qP0pJHafE?$5*nQLmn#U*tAP2t!;7414JjypA(o0>4 zTG}O$4VArty2(Sr&Sd-93@s)LJ$iX*UM7TD0E>DCzusa;SSG()%2n zjf4$E<&ZNMXbj1&bdm<~5TDL4P{4%_hdZhE{r&rV`j76`hxu?Od?vpSF6{Zt7I5|9 z<5Q=p3%5Paj|ZHI;KGOC!n?MBtInK27w*tb2LK2#Q{Kjg*g2LsN0l%%=2Dy*;=EI? zn>_V1bzwevEBsvIL)F86O=3Mu@33OqUD3u!xZ#TFP1J>{u4{2g&;tO0t?xv@wAOJ6 zOZ}^(^!ttC$(hMhXAXaP`kF0_AW#4f^?hylekr8^+O?sq4}oJ(+%8@={Q30c7blKS zb)|2*ll^ifaI~{JVslLs2dwCZ7oHTw%a5F#nWipa9`A;g0ya~pAfPT-e07@-aACNXP^jHaz~ptAA3paziU!FFvsO;4tKo zx$q2ZC64tD9U!II?-M{(B@XYiiZe@B4dVsCeaY!f3^r>p!dtzBT zw$t_7cd(16AAulnE1!Ly9V~*QKN_{<)ehJ5l+OjFZ2hz3Tp@vXW8l0Hqyg6c17iDt UxQODKkN^Mx07*qoM6N<$f+S5|N&o-= literal 0 HcmV?d00001 diff --git a/examples/enemies/frog_jump.png b/examples/enemies/frog_jump.png new file mode 100644 index 0000000000000000000000000000000000000000..a5ace2294ffcd997d8638912de3ba9e5acd047a9 GIT binary patch literal 1392 zcmV-$1&{iPP)4bXygRWG+TXfPjcBOiDpPOe#@KGCD&aZdguESR`Xq zqUXvNg<=_hUsKbaP*7Vhh-ir5yF5Hd%JJd7?%DDC_fu0{F?C;w$g^$PtmOFcGe=2X zU1!(y=rUtgd)>4#Y+EjxaYoOUmE^;(>e4N(d0^J1G(JTwwthLxjx$hBFOh66q;)L6 zf-+iCFn?qdk!Sz^|1~v1EXjvo`Z7TP000nlQchD(uRqUUkDqUU@82H}FTVhLLG#K0 z00Z<%L_t(o!;M#GW8yFjH8Vg)Z|{A*?z?WTEnI<8+Oi>mB>(@HTrAu14DdeC@MJZ~Q16-xXIS;KCup$Ws3ok5lWoLyzIobdP zCsTmDAI#qC9{AF@B1-FcN8oVT*e}Yf8`nlu(L*k zcn$n1j)h4844B3KELn4`z9o?J3=h3Ja7 zmymz|G@cO~X68L0yvFzee{Od=+fCv9F(wG)C3CPe42eD$%zYvY?>m8@Ih$CJ}9)6d;*1OO8RZX zi9kiV2F@8@&A)k)&;p4g898bySHXnMfb+Sc3RJ+2n*p0pQw4A}>TM_hfpHC|aki;I zPum09!aEQg^?3UPs1LLD;OWP?&7R-(Z$gf{`lBi^(DE7O;Wz{8tx!c@mB0eFBw(>9 z4(~z}p7cQGC4mY(0ViPwt|p>DkRdR+3Nz6<-$39lT!EX%wE`#MO59B(0b3LJ5{8>9 zw6!qe)3~=zAnXfatm%31YOO$c&lAZrr1H09jp1;3tM~%AK5-=3#HDsQpet1cJ7Rh3`t*ZLNyD625Dk*JUec+$Oop9=7j^dukb zaaU-%5b3e_l{UH2D*@r|<H+tL$t~L{6?Na4O5J zPpm10ebSOLk#MH!YEyxVyoc10S5m{|>%}og1?)&M;arOYUUC|Ut3bDq7kXu>HDJ|H zE$9!52_6*y69U}=UPtJr7pe&^ZTI1Z<~MBjVDBH`>kqltovL0avw@=kkH`E1JY5pJ zeJ=!FZUevshYHwaI_WKv{vLk&n+hyHfBf{}&75`c4{9!0th%^0dAvAW3iuTnySSM& z3pw(Lb0iA9hT~UKodC_DP~VD@5of9ewrz9*(mL+I~3+n|;@VK89j zt!fpLLP)4%M@cbkTQXx-M$eY7>e7|u!!DX}G(JUO z)}<}2c{$9EEw+9ze`GAbf-a@~5Oh*b zQ%|oy&tH#kf1mH)9}h3T07M-aLjV8+!AV3xR9M4}S7(EwKnxufQKWdix9xk|+@fb+ z8=@lc|9{Rgy`sDiyZVGTnIw~BK%2m|D*;5^Z!>^8qAIq)sQ~z&AEXQ|+e2KV#kl|+ z7O+zZH5)E0b4~AnKr=0YnpY@*-;Z~j9J^S2N#dGC0(JQ7aFY>)Od<|tu5K3a(fd)x zF`mck94DE`!KZwq0Cd)TnH@p2g|RRRAOm*UQEUoK0MG+*Rsylv3m`xS%wlZBF6PE4 z+|IlQ04)o%VVXiWhPgYLfWn3F$pV2a%Uv`IvoQDdmINdXi}-*6gtWd%ms9zYxJKyc!u`-;$66zw6i{qZT-nxUi1#xZ)QI^mG9tN^)V16da!mIH)^P zJnLH^q6?|tP=#C|kQ&;63GkBiDj)1{EDT)$&sb~r@ajdc1ehDhr7^8g0ZSe+x>^`9 z_pBCIe5i5(S1qgbY_CL4t}EzNHtC$$QVRR3CuJh$Ox4vT0u6OcB945LI%}jC#|jZ} z)j{n}ivwJ88;h%;X`w32%2J1>)le@$N2nS2)sN7AQLpg~foZN z$vX|KO8)l-z4`!kPS0>RXfY=&m$bY&#_Jqx`4>pwB0amg`9f|?b?Ss@o{ra#Lqr<| zkg-UB?a1-)SiF^|XvZ~QC}|)c*ku$JFb{rO(#;dvEC8KweZN1wlJBw=oNW=wikii* zz6z>BI4TXxGtkWj5bw?^0`rBH(}8mNR>9KBk>*mbrqPABax2Kg?%1v(YzK}^{|8$| ViQRRl7jFOn002ovPDHLkV1ne;Pdfkr literal 0 HcmV?d00001 diff --git a/examples/enemies/ladybug_fly.png b/examples/enemies/ladybug_fly.png new file mode 100644 index 0000000000000000000000000000000000000000..c912b39d8729da443f6e690ceefeaecd66e86ce4 GIT binary patch literal 1748 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 literal 0 HcmV?d00001 diff --git a/examples/enemies/ladybug_walk_a.png b/examples/enemies/ladybug_walk_a.png new file mode 100644 index 0000000000000000000000000000000000000000..56489ab3bc224140b537a7a24ceff3bf7f21a923 GIT binary patch literal 1501 zcmV<31tR*1P)oKmY&$hf!DTVqxxUYePd)l2KP}Pg~MNMT%EoJUmH7MOC#%N;*16X=!&tLQ^YmZEj6XT}nz> zNl9AULqkkVT|hujc1~IFadCo0Pwr@FOg%?DJWEJOSy548Nl97hRaARTROLoQmPJg_ zLqp|pag0SxIXOnNL`bPbNq9w2!ewaNLqf+xMNmdoT1HiFMpFO(|M7KoQc_|^M_A=U zK{Yi&R4W$o0000GbW%=Jk6*7(-yfeZZ_j@}55MmKPlI{@000BjNkl=UduP z6o=zN2m!nI-g^(Lwpu$Jb?>_O0QaJRDA61Ew|mdIGmPgE+K>J|h2)->vlFB0A7z{X zP5>u>{|l(}Q&koVu)O7IRJqqG22jGy5m8b&pfc@}RVbh$h<1Od@WN*m2q*=s;Sq;w zWEieZ@yu_Q2Dm(CSw4UtY*rku75G&FRWW_(3$8f8}V>4p*NV+hb~}{iF~T#{*QiOdYv2wJCDpJqBQTa`z}pyOYc8 zX{nVz2WRobs@)E-DeY6GKa7c;|G8uo5CwI9&zqgr>^>UJ}fV+v~F(RL#A(-#Vu(*Q}mzw~kd zVNAHd0Wj283F)WL=LQ!CU&BEs8?Ya;BRq;_?g9r`03@WI9;$~_^k)E)Xdi>iC?o9g z^(WSP5CIUu09J!ugfzf*O8NxpsN*hp6#&|42Fy~6VEv2e8)8b-3Ge|_-U66R?BzxE;ZAsWMB?5q}`Lg50 zGA1Y*r~dEc7%l3;BsDQOK#gQ9bxgHk9RmE_2sQY~+|5Ub#_bS>l8DE*sZTYSgmMNj zVH`(z#?%r zlKc|-qE!Ke12+z--r&K^OxS89Xm=!|uv`ET#DxMGfTy1UaL9Y_sSD7PHPxvtSp|>S ziH9119@f1`9AxYjsxh2LgGF#1o;QH~Pi+LZRYCS`+wO7KXA`H%z*X>Qc6QZquF)78 zi8h1lv-j>M@^#WJSW1-?01-T-^V2)++91w)A1rAy9p8@T1l$qB z_0iZv(X8Hx;HQM20^~v_WNlX3zaUbKo1~t|sk%A%y$io)Ob(ETJGp%y(X_VCZmvGo z@Alr-0Pp4PmvDH#m$)?zPRwWA{J{Z`gCC>_edA?>SHioY!tICBJc;Z>^Gl(KnGZM$ z(1|7KqGj@r?PBfao5>$6%HFG9u9i1YsCBTEeJ1?{8qzEOGqzPW00000NkvXXu0mjf Deh!ez literal 0 HcmV?d00001 diff --git a/examples/enemies/ladybug_walk_b.png b/examples/enemies/ladybug_walk_b.png new file mode 100644 index 0000000000000000000000000000000000000000..8957a6549751781e6247b2cf304066b30d09fa83 GIT binary patch literal 1513 zcmV{)7jEt7W#mdOY z%|k;|mzSa3+}}b%QgU*CH#bAx-r+hrNKQ^&Ks7R4Bk zRa-wlP0~a~Ha0>&K1)zgU+raNf;&M;Nm|j-)w;UCI5^YmZEj0TTTM+}+e1S#7F8}}o*GWV{ zR9M69m*-#FKp4jvA{)B*-h1z1)z(p0-P<~FE4W30B0}Io{_5Uyce&h!=m+e(e*C=( zN1iXwPOydlQMO~iG2nj#_<~rzqXImRYK^Gc;W-Mx#mou9RXM14)DVP zM9>cagfF53V71rdg;m1K#T%bdZSkH0D?* zkr1M+n7cFv8Sn;@*s-)UNDVUEau;Misks4qiCYqOjLQU=NSh`ok;4A3S&SBTVHz7a zO@LQwx>%-qNF73^DlDqmg9wR~5+$KzQmJ+9Q!PnCwE=M9k9XwR6U|9Jv-*VKs%#Ys z@RJ6>$#;S=dxls=)2x<2ikSfLe7-KVjRhdbE}<{FWq=1(iqW~|Oen@k;O@vJV7UOm z%K@+$FRLoLaxTc8o_9RdSIg zB=vQeuk44-4>WlrK@rBN!8ijX832un5mBe;%b4a0TLIWFe&)BMIhs-9AbF2G9_?Wn z&>;FeijYj06Aw0^1^nWxF65w%f4{SnM3P2L2W_N+B7iLQ2~?);lQELt*5PQQu}r`i zUC0uEysd7O=fexu0umsoRVcst4~Mfddspc{mWl`gtN%?iW!h3#(ueQC1hL7aR)$75~+tJzayUgIu z*xS|I%EiorhL6qE*=K2T$-&E%cZPwFo|~(=m#4P4!_2O_!^h9n#?I7tdV{#a$-&Cf z&DGjQNmiPpth2txjh(EAmZhJ6j@rG;zQfCLbA08y%YcQBUSVvAZhc8fRLarT*S^cG zvbe#@(8J5ok(Zy++1*oAUT11_!N<&eW^_zNQiX_+SWQ}3UTiu$NY9|Ls;u9Kkr}9zYhQ(`y|N#00O;9L_t(o!|j$=ciKP@MirVQ1R}ln-g_^0+)L~j z><~Jp*rKkq|Nkj7yDA_Fkdkxq#P?uZ-kFQ0E<)xXCCmYHz#K3K%mM!cAjy$f8YC)z z1CYg}VJj|1LjvTq;ZiIVAYyox3IPzgOQ$+us&?38Qcwc|V$8ljpthPlo(d@tKt|i% z7dooENl=3T;^^O{<9fZz2#Ejy1r1kS{`Af8-77p$X9H4T_LX`x9KQVtC(2Af6h9~H z2N>@9#~^r9cu0K#_mLe4(D(X32fz?xkY)iA*g;;vV+8zyGnt#IY|LU&4}dlC!bK0@ z$%_XZ5aFe=CQWexBs^$smfijhLdc_s2rxu2JK>CoJO)s)hOP629Jl~w0Fal@_*AK^ z)b^AL?kPG4wz+Zt%5TE7)Z$ZxKTGxcJ$z6F*A!eJWUb-JL2+db37hNICvWSzUSnAp z0pJ!{FA%Ll{q$5r#3vK*4FLKvwiW_Z#g1x;XbtKw9>_koYa^h<0)pJf?VOwNdGlW9Ds~4G&;or*tp@P}FWPYu1U95FZKQ?#M0B zYfemLj$E@EF_jTStFLtZGd0tPd#yXU5=HHbl|m(BmT?dM^Wh^6sKv{=Uf%}4G%gh0 zNO>AUjq5xBT#;5QH^TtvRej4a7aRG>=j)EWl~pAjn30S*UmX7c@Yah9 T$zMp{00000NkvXXu0mjf5H}+E literal 0 HcmV?d00001 diff --git a/examples/enemies/mouse_walk_a.png b/examples/enemies/mouse_walk_a.png new file mode 100644 index 0000000000000000000000000000000000000000..0b721725e887cf67124751b829fb30f61245538b GIT binary patch literal 1243 zcmV<11SI>3P)jK{Yi&G&Ddn zGe9#lL;wH)U0!HFJxNnjU07IROG{Q-T4XvpMNUpwO-@;ReumS^(zm?ASXyL}m!IUy z)!@$9>%q|5)!gyB%!h`L+tJy|#ms_+kImHCXK8ZD!OMMvjZ#-+m8P|%vc9ai!fA7X zdx)2rpr}AXPdYnDly`5v0YtfUSVuSMpDq%+?k!E(%Id}(ABE4xy8-W zz{t+4hnK#`&BM#l%hT9SPg>ikx#zIL%hA?nYII~)W5bxJa9(V(yTU&|O1#C)Jv~X( z+TNk5u~t}PlccoP+~D)M%QZDYyTr?^_3vW<000nlQchD(ACGT;pReD)&o4jkUk?CN zgZ1P900Q$#L_t(o!|j&$L*g(L$D@E?q2>18d+)ux?YZ^zJO?;&Afh6pO`AXd@{+C; zswwv?-=8}2K7Av3uPFPULLEQ{&;fJ+hX9mVJRXmAwF^k6EUuom09wLw)tinEP?DBk zYE*!dVRm_4*NYMa)Y`tdLO?%i^g7d{L;>`IeVN#5)R+_9@_?9NPsmfAh=eRag8*{G zr+d#BAuS1r)3vpVA29jg$$dzKCIw&){3U`O8dJ{?2tov?O%4$9$S@v55Sk1CcJL?B zp8PQk<0X9_lL5e&8Ues01$+oU76Kp*5d`eXD+-vRFOre~owNwS0N2_DymbItn}F92 zAfp}%&|qD_egnVz`2LOE9Gp|7b*HGhyPB#1o#3KiU#(-R?XdxWb5Jv0uMhwVJiH*- zFJN1P`|i0!UbjgL01X`2Kfmb%tS*l(*@W2{9)`wGyk+zJ0M-h}Fs`qQQEY5-#4vLr z2?x$vE0tcbGls+(SZ6U_Dg+Bb8O)E_5$DSjrfF`mEFke9jBE$L@8~DX=8O&KqX2Uc zHaGw@)s1Qx*9)Yz)>$BneBBNJ)*uEXwDBVtZ;((8)ja|L=HLQlHD6K}aX)F4b-mnZ z?F1C{w+k>ipvSWxzzfw%9%^}}(%K0K;|^Ug?EzTs_qHIUql0*ex_Cn_lE3*j!jUn#n?H8hB8 z&PMFbqJ*=rO!GUDQ?-7@Nuipx%Q#1$eEuQ{ApMt2vot~NQqWNNMyikqDqQ9PSPB66 zR{j@ z3G@bwYDHE`oJ`RPN?^3P!$wY-bkl6q)RZ(Mlkk4y{{ige{$=^`bYcJi002ovPDHLk FV1m$7Ql0<+ literal 0 HcmV?d00001 diff --git a/examples/enemies/mouse_walk_b.png b/examples/enemies/mouse_walk_b.png new file mode 100644 index 0000000000000000000000000000000000000000..b9b0d727fe51ba776bc0c111141e96155aa8910d GIT binary patch literal 1240 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 literal 0 HcmV?d00001 diff --git a/examples/enemies/saw_b.png b/examples/enemies/saw_b.png new file mode 100644 index 0000000000000000000000000000000000000000..2d86aa4cc38d97ce9f6892f094c83166eee21392 GIT binary patch literal 1804 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 WG5-S#T3J2-0000BGRQu0v z{Md+j!(~#&c2L2TO5>v{#)Vp1WG%LSJlB?VbbL3`kzd7dhQeP($9t2(S{k5q`noOu z|NmL=ur)P7EXjxZmqG{t000YgQchFv-)}#EAFq#}zW{Cr+2Q~I0l`T`K~z}7?Uz?` zfuQ?bJyR2vG*e04#vxe!oAGA=Hckm==_Y=P@%Hu!5Ddx7iBK<7On__~n*<+P3|H zd<9`f0uJz9OSg7;@BxGw2{?c3+^wCP#0vOk{0ywc`@$k;;G5BFV0l8<05_v|!Tc>X z>0R{9KRySJvo=k0O`b&5{1>P&4?Axfn(trm&@j<%#_LTA@K6?34O2B4($v-`( zy$ct@_$K{j+Kk-!Z?eC021o|b+46cI0Jf}sHb5UXuoU3jcQ#n^4XpFL0>osEr%1QH uLXx}?)O<_qc`2}aFYyJACCwFhB=iF~dNXFv$&ZKt0000V literal 0 HcmV?d00001 diff --git a/examples/enemies/slime_block_rest.png b/examples/enemies/slime_block_rest.png new file mode 100644 index 0000000000000000000000000000000000000000..6cbb02f6628321e1a117668ae78b467cad313c4e GIT binary patch literal 685 zcmV;e0#f~nP)9%KCM@Csz zFHPtLppAC@BbWLp(k=igZomf^q!|owZA zZV506b3_0VQoB6AqnIp!oIuO70TL7S;n_^Y0aw%jZW-_y?z1%rH+Vf^)BwH#yz`0! z2%`oN1H@4heW3*h5JnBaD?Yg%4j_!WChq;L%HLO;RyAs$LJ*=&9FT3V7|l)m1Mo3B zP&9jC1WaQ4K$RU&m;iHt1uee-m@@&;hI$0MT6G2B&;SlA0NuDL4KM`=nE-+B(3|M^ z0o!AYUg?0xi1Q*n{Nxh6iSK!SB?#EAPx<>d(RblQSU-usOxqPY|F-$Hu>vB#e1rkg zQDwsi*rbC?0m$Z!F;9M6OdJ_N6&pCza^#Uk^77@-rSs=?eC$)S7EijRDd*rXfhEr@ T);?K>00000NkvXXu0mjfyu%sG literal 0 HcmV?d00001 diff --git a/examples/enemies/slime_block_walk_a.png b/examples/enemies/slime_block_walk_a.png new file mode 100644 index 0000000000000000000000000000000000000000..95c2734ea212ab8a0fe23c67ae8740b5ce32b626 GIT binary patch literal 767 zcmV74dD+?9zrVvWV^%aiMNsIdAFO#Dr*}Hllls0o z`_FFt*ogYZRC&W?QpR>r!IV7LmMX@DbaZ@LT4XJ@emByQU&U~S!e2$ldy~Oh8lZIg zx-I|z|5@;`H8nvj$%k)kk2L@Q01I?dPE&91-+wrARz$EE(rql8K%ba^Y!%Z^I6|R0L;R5(i zfQ%rkDxj3A%0dPOh=5sQ7?1@V$_4-la7pq33S5>o?La9_E5n511JdrQa9~owjih}5 z#Ff|pC73|~2S(w5oMAYK!sV!A7&#n}ccSVC`95amF+dTkF#^B{Gm99&!L{`AOM*!Q z@Cc+l9l#m6eRvu<{D1^q07-!TcDvn^BB&7yFfAw(&qs_nz#LYM-^cT4K5E1O_MdLq zn{C@4k*~mv7{Ctx&eW}&?oa?`!~l*TI&E_E5=S_U^@&iu5 zYIw?DKk~kX6JdDI|Cm+-cmJ!)zcVdBXUppd0FEj(Hb4yyEE>lAK~mr)23I{04}{O%nKEI3EB2002ovPDHLkV1kKXQ)2)C literal 0 HcmV?d00001 diff --git a/examples/enemies/slime_block_walk_b.png b/examples/enemies/slime_block_walk_b.png new file mode 100644 index 0000000000000000000000000000000000000000..ba9f5a6db68bc2a16d43cc5f4e3b1f3be04eb538 GIT binary patch literal 760 zcmV74dD+?9zrVvWV^%aiMNsIdAFO#Dr*}Hllls0o z`_FFt*ogYZRC&W?QpR>r!IV7LmMX@DbaZ@LT4XJ@emByQU&U~S!e2$ldy~Oh8lZIg zx-I|z|5@;`H8nvj$%k)kk2L@Q01I?dPE&91-+w$gglI03*iYQG!iw7nZNi~fq zrpyK?)2XEf+)THXT`EJy>dKL7)TBcKHOng&Fm1NPhPb`Qma1_;m%Dm~Z-3<$8Gsma@9;qOBR0N8(!*sE!p z@4lx14FIsC|1%@G+3pko8UVn4&^gJ?bzlelM%W6B>C4oBR^T_FJuqDP_W&}Wx1fK= zboecv8h>&QENiLj`Vu;cLF13^!fya>TPC2^Q%pd!x-mg*s?At{9>yK0-@&*S3qXDV zm#~47ApiveC~*NbjJpt^i*YR$pxsyCO;q~rc&|~tfdTjGnFs0m(-q@Me0KXoM!J;l8nl9 qSSG`^$le#7ai0@XEbWxQk@6SY3_cQ&Pxp=h00006n literal 0 HcmV?d00001 diff --git a/examples/enemies/slime_fire_flat.png b/examples/enemies/slime_fire_flat.png new file mode 100644 index 0000000000000000000000000000000000000000..5aa9fe740c8213218d631c42b3a7fd87a0f65b79 GIT binary patch literal 1168 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 JPDHLkV1nr6z)}DJ literal 0 HcmV?d00001 diff --git a/examples/enemies/slime_fire_walk_a.png b/examples/enemies/slime_fire_walk_a.png new file mode 100644 index 0000000000000000000000000000000000000000..12f34a258f1c6bf4bd7da2ad2f1d05d5a7972d5b GIT binary patch literal 1572 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 literal 0 HcmV?d00001 diff --git a/examples/enemies/slime_normal_walk_a.png b/examples/enemies/slime_normal_walk_a.png new file mode 100644 index 0000000000000000000000000000000000000000..fe78a465d9d2e64272f73ec8d5ff0f01d8f5a708 GIT binary patch literal 972 zcmV;-12g=IP)>ZV-IgRbtYP?>YI%aZOtJ4~Tq$+2hN&5HEUkoHqYW5IUq(v$bS zaO-hehDkwKk8P>HbL_iq>d%e!t$@qamiYR*E!LU(H8nxHYw0t=@RR@m01$LiPE$Xh zUyrXJ-+xbU&kye}zW`36$iDyp0&z)1K~z}7?UreqnlKQ@@mj@*yWO^X-}kM%)>YR7 zP(Ts#{l89`34x$cq3|x4`)q0~d>PXjM^sY)#Ls`yE}CDii{04QPrZwY>? z2O+Q}Zy16s0H6nr5lxiInmOo@5mccb0tiHOZY2Y#1)Usjv2_j(5&&w@16ORW`^!_8 zrsxWKp%wtD-qSVP!ILHGBn6;f^V3Pd zWd2K<2>^%54}aqJX1Tn%P4$0|>_XXl`bIP9DbfeB_woKr=HyH8nsnF+wvlL@_ZzH8nsqG(a>oK{PZ#H8nvs zH9#~pKmY&$Q%7S(J626UV2D<#cTkn7WYo)&?y+ay{pr2?%VGZV*Z%tP{`Tbj*ofMa zi^_hw$%OLaoO92O_0ou<@~}k9hx5>o_Eth`qGQUCTC_blOI=QHUPX0pOp3j5>q$Xa z$b#{OXPv@%?vHJ$pCa@%cM5JI+cv|0q%cDnJFO02QDD{2u^St}7Z!smp2!fU0Qg z3~7p51RzT7b*|cy_zpnbTfd_{c?&>H>|Lurd_|dk>jOS&$~k}*W^N6QU_*v!E#oM} zEI=#D{pajkkf)gyA>>U!gZr&TuvNwjCn$dd6#ngK*PY&Ug|d6jkNC-gM_nG!_4f+97Thm4S3rc=rR(3 zs30Up=^3~W_V*9YG6;6$ze)N6>PSe9Rp1=+#NY?W04GOBCxrmiHdr&ki^scv;zybk0?a)GIDBUu1IC2_ z)ImVpf*0I>QOr+m1l+}2SJ%FOeO1s;?_kgqn54hxPWl3^NMM$I{Js<56U;^;LJp6+ z`0v3fk`B8Kc1Ysu1N2e&YvlLA?Q=>0^8>#h!hzD@lm7N|3C8{78V3pz$_pktDRw7k uN)wWcrBNOcUD9|rw(45DMDSAlZ{-hMGnA#E?OP%M0000$E^qIrCUMMhGQm!H+!-^R<)qo=OR(A7yv zR6p97F3X8`dV_Lye{ghtyu-+Kc!9UR#fXiTz{kyumZ33qUr6DgE}C&fhH*DQM>|+m z(AL}1*xh4mcScE7Z+L_*E2^+RM?_3P);tSbx`Q2R^+KZV_Yq^e#p<%b;z#8&C*uwtxKtfP3EO9k!){s zeX_g4z{t+R%FsY>W4*=9yTi(*u)3zQyl336H`0;2#LJSQty%D}EXjv8H9;CUQs@8x z01$LiPE&6`-ybiZe^0N^kMF-<4*=gLz*_(S0v1U`K~z}7?UiSHn=llG6&naKNJ%=< z-OTQ0@8ucWvEv%MgRUr`|Nkc<2_u7JON4$b=L^q8IxmL@-3yrgM}Z8G0Wv@a$N(AO ze*!?;whb*c0L>6C8>Ivc{DfF26#x>ULMi|Y@buZs*NlKt0H&Go8-D&u9sx)Le8qTs z`-wCHPz1nRTQ8&$fFb~{R4U7|2tW}4SF6?cvIsyC0AEqPkwgHB0Qd{lnj`{H1i(L- zRwhRn4*((n{?7E4w?sZUz!U-SPp(zo5->5qrrRF}fL~nif}YTl0t#ezXW|qJ zy9{6^0ceJ4k-eKc+GB(%1pqX6p_&3&-c8*xz z;M?I4fcWdXEc$%QY4*;F#RsiN*Ab1pN{}Ki00t`^&!g5kLK;3*jSxSg(CYiw#a`3% z9Of_tK&RD_cUGc1>x9(Xe)}Q4L;=0P-wUdx#qLpfE!8rMLXXD)3HOl-r=fV P00000NkvXXu0mjfP;ICb literal 0 HcmV?d00001 diff --git a/examples/enemies/slime_spike_rest.png b/examples/enemies/slime_spike_rest.png new file mode 100644 index 0000000000000000000000000000000000000000..7ded1b9a07837eea52f36f66143b4abc87d63c07 GIT binary patch literal 1210 zcmV;r1V#IaP)f$hW@5a&~`pc!6+q zeTa>gz{kyumZ6A_myMUAF?C-*+L$khXj06Z(%9Y5*4t6mpGT5-E}C&;Yj;LTRd0BN zM22yUnx;J0mQA&dVCJtmt$%#Ju0^heP{EWs)sr$>Qq9!aEw+Bj(bq!Un?>H9Na3J4 zOioFje@m%`R^+KSKu0d5bxPx-Ge=3t&(y`u(lKmXimI(~&8{rJf-jM5vb(}GK1FYH zeZa`h!phJ>dumYVs5@9yGf+-9(viKz%)7(NrLelDvb-_Pj4iEsF3X8i>#AqmuQbq( zP3EOm?XA1S%aWn3S@5tmH9;)NhZEgK2mk;85Oh*bQ{P{oFF$X8kFOuUPw&qU0HUFi zg#Z8p2uVaiR9M69msfk*FcgLb0TPzG_nz6S*$^OMrVWJBmes+i!LjxKe?WaCOUU3! zpWgMm@q?`M`ty-=jzKs6Qs_V6UjqWMSS+$IH$X~iL@{YjfDx~03281sK;v4R3jhWl z+=fE*2cQIwUHyN(u+iveYI^|qr00|-97*IaydgfpOxfoDB>3Zy70l64ZzJZ?FTd)L3OWc6+74(E0iKtgVD4}r!%6FpY z=s!X92su z0M{1s2nZz&K=rWp+fePWY5-8&4G^K}uGaQdllE&>dM7A30gN)*K2|Ms+@=LGY7dB# z_|l$gqrDO#gzNzH`OPAmKO7kvvXNqw5EiTfG=7~5lJF7+APTnfYO7}zkA)0$aj&K3VfKOv z5Y$J`)uH9{%?|X84Apbk(;`5E8c-O^*70Hv$eNDHT1EvxfEYNjiN`%|flfIg7QzAm z_F%q(Z6(vq%y&oyvXGnrByhAgzz)jkh{+NU)_9{ptPizw*oShk7vdZMRb;2<2hiKm zLn0gi$LI+A(h;;O4uBjUknxRFom~5=o6dj(mPN$sFg^YknpQTh&VVkf(HuZi(9yKc zDL%c_FD^-#0nqU>|1>PSB*6xN>kSg#sAIo?E8|8#rT^&ku`d9u!iK+PESpvV8v0v* zfI6!w1Q6DLUHAiBvg3$&J*xYOziP0Wgm_E1xbgvb56wZS2c)KVyc7Bjc9vL8BwfYB z;tBD_-xy^2dvoap0UMoF1EH}bHGhgsw>J89>RCaH?i@#+!xLfaFO)zq;Uzp77QU1I Y0D$tukqGwDb^rhX07*qoM6N<$g8BI?#Q*>R literal 0 HcmV?d00001 diff --git a/examples/enemies/slime_spike_walk_a.png b/examples/enemies/slime_spike_walk_a.png new file mode 100644 index 0000000000000000000000000000000000000000..53ec2fa4a0e2165091795b0505de95cdc241b56b GIT binary patch literal 1273 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 Hu0mjfe+xRO literal 0 HcmV?d00001 diff --git a/examples/enemies/snail_rest.png b/examples/enemies/snail_rest.png new file mode 100644 index 0000000000000000000000000000000000000000..096f0359b08a4a930f49a0d3e67d680fe9c1b81b GIT binary patch literal 1561 zcmV+!2Il#RP)jLNqi$G&DdnGe9*pKr=H$H8nsq zG(a>oKmY&$){U0TgdOUpT)}r4;+%8Uno_)wGk#_{-IybCUOHx0Jil+z=b&4YZ#LqR zH)~NkOhP_@TsPN=EX#V8qklDjQ=i0ixyg8;%YLrjmw(!bPV%fQ@~}j8Ryf~`Hd#$Q zylvg+nJY~{U`jwf-HJl0ToJ~3#iUga?yM>6pDWdaX6~y{&V#OCOFP<CD)N5!gSHKX%* zD@{c{^|36~p)i+sH^F`{uwxVUwK%YdH0GBp?4c{~r!0$aIEYrN;i)gifAB>+R`|Cp z?XfO*P?eZnzsQ&}Rzhp{v@DQXw5ep&v1i`nkt?BK$%@HTpHB|Rg7NygE#i+W)|vXcYw0yL zLEjV`y8r+H5Oh*bQ;#n{-%rmUf3IJk4{z_k0Dz9f*8l(n6G=otR9M69R%v4rNf2!k z5)uZ2$F95Uwd=7Sd#Jm*-Wu;Sn#&_GmobUvf`ni|Uf>Wx^QG7`~E1wtnL zxn)CIovvz>i>pTBQ9z-YKqvD5HIH8{lxmDMN@U$q5Zp1eO1B?>4j-RitJ%ov6}`Ij z4t8{V0!}RMwMcgv+n2*<6-xnr&CQhDGNb_t@lF=#2$(JG^UJknsB#uPBoJ-z36vlC zRi>1x*`h`^?RpA}oP@hFF6x}fSSLO9$x96 zQy75NI{mBUWsl!Dgm6MY25)_Vx4Ht$b^s=U6<@8)N;!0s03B)J4z-XgFpYlj`avPU zX9}p!R|36MLZ%dhhR|h5Qx0`-Q@AmO1$ARF(8FRt4g{*)Nys50dV)n9RJT(B6JZVO zY-yMOf+9?T8%-N$nLm?M%2Al)g=}C5c*whKB@*xt;|--Iw9F?Cfs!Z$1=60S zSipDzaQ7C(ag%m(6>5dN#h>H3K#goft!bXuwQT?x}CC z;F=KybFocu0B`IQwTtJE+mvr^m_>6MDS%-qe}489+0UQt_PpRZ+K!(_&egOYf zDo;Q_f6CE|+_;T&@NQV)mSO;HAb`h76GtkQk<0S(Ui~301)azmYhDkA3_d{YPcI?;k|~8e-T!TV-!=J@xnKom@Y}$^0+vtnN1k&p z{yOz7{`FBQ_rWa&0x;K)D5ZwRWdJW8C)FSKo6!$k9n+_F79tO60VqMQ0*ozK{6CYp zcIIJ&#<^oxVf~7f`>_Zj0YXP{vq}zl{0ZgZ@WGp(2q#WHyg;jCGm|h=Nx<8Di$>#P zWg+>32Hq8Wb?A^KaMxS@2R085sUXI6ax;Ssi}y$XYH&|&1Ha<+EO4ORdEGkyHCx$C zqrY2~xP6|k_k?*x*&f2?C2QLXUHqQd7T*>>>c40@v7Xi+--gsLGzoR%zM4zu00000 LNkvXXu0mjf8A#U+ literal 0 HcmV?d00001 diff --git a/examples/enemies/snail_shell.png b/examples/enemies/snail_shell.png new file mode 100644 index 0000000000000000000000000000000000000000..2e3232bbbafefde1f64d9f21a3c8ab97378822dc GIT binary patch literal 939 zcmV;c162HpP)oKmY&$kXp2FOo~N2R>ptuO+R3WR;qtfpI$|E$%OLDhx4gq)S+O>#C-2}P?fP~ z-o0?^W=Vj}iuA~W@xpoTRzhpPbL`NN_B}XD(v$a?UBA0+>eQC_!FKJ>jrG=<`ZYB{ zx@+mNBmNlx000nlQchEkPoLkd!+9WXLfZ*Gp+5nw%D+0g6&82Nnlbsc74({L7lOBJKv0Aubw z%PML=%a|vl_ZHyd=da73s%5()BF1k39wsl|38#XYxZAJU>;6js`d^p0JU^9pVH=KE zwF!pq|BdPojdyJ~DdMU}(E!{5ygTB;;C5FmDuQI2OM>|f;57dE_WsP$3*-_A6SocM zf&Uu)6C%C@<9cpD$bjIq0PaM_PyEY^*bdZ`9z-Th9l#0*izkx)3sMGWrXqn$s7qf1 zFael=K&mg4Lb@=*34)*!403=l0Ga;)9ZykNMj-vnsIV0=k-z~1Dc~ghw^$D;-hrA@ zNZ7;YJPPpO$)0&g0S9&~5(-}~WKDqtg97aO!5q^qHvm(oR5PQU>x*fa0MJWU zm0HPl7g7C%w(1E0&SH$q7NmnD^f+BolHHvKVBLiGVx<{I!GXJPlm@Hs!q>2okf&NF zOPZD>bGwpVi34oXQ1j^i+HTmR=Jj$*=}1G?68S(XqV$FT79$ED+F6i89QOLNWMxHjLXU-g~(k=^>m`2$bwu;x_PHH-iN N002ovPDHLkV1i#|syhGx literal 0 HcmV?d00001 diff --git a/examples/enemies/snail_walk_a.png b/examples/enemies/snail_walk_a.png new file mode 100644 index 0000000000000000000000000000000000000000..40ec0e7756a86583356be3eaee40da417b97faeb GIT binary patch literal 1531 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 literal 0 HcmV?d00001 diff --git a/examples/enemies/worm_normal_move_a.png b/examples/enemies/worm_normal_move_a.png new file mode 100644 index 0000000000000000000000000000000000000000..59cbb98b226991fcdff87ed41992c53a616e1e3e GIT binary patch literal 1007 zcmVoKmY&$Ty~8(c*KOh<2hV=J$s}u zfnb|*)$v%s}K$z1rUWtXo?Q)yBG-Hritl~vbVQrGGPp9BMgtk11!9Yh=I)Tb# zvE^roqlv)ffWhoOlhr(p(M6%&Ua#akaF{kiR5d$FVt<%AV})q6=6IyURH@-FNo_W7 zzmLlBH8nv&pWXD+TAly^01$LiPE+5HKTmI89}my3FMprE?*Ockq`3e90(?nCK~z}7 z?UiYFqA(POv9ieO?0dKA-nvw))oN>9a0gT(|NpN{ZbA?tXU^%FkHh_-koV@vn~>ZH z#eWPT17v^*FnAaA( zt&sf`B;v_NE6`dj(;yE1FA)tgdhvB=B1Gr4FvFY zvh%oHtpvduw8)w_f?4PSeDm%-Za8c=o9)A3>Uqz}{_lO??}Ldw&FjM65WvR=?D+U- zgX8Ep?LGMF`ypX}PG6ue0f2#%4T+OboOxF)vF6j5BnkHs0DLtmph-0wA)DouLqItR zc#Z&d{MM#`HvR0dTx=tZV-9}xzl|e6od8t)GskZ|3h1Q)!6aIP%7yP=R9O2Qwvqt* z=n`J9Z#J8o>rlHz=yvC|&sLxcq$+E^#9ecOvJEW+cfHGRr|HFbFpXDcxwj{?gCeebT(Sop;$5TGj;Vprh*wf~rCb5#Hge7g^zR-*pH*{|(MKPQQPumq$ zombVimPkspz}58qvaYG=995y3lH+Jv>R!+iS4mFZ6@NM5(9pOSiz2BOyNIOZ1tLX! dRa9c_e*hP0K>Jz8qiz5I002ovPDHLkV1i0O)^Gp- literal 0 HcmV?d00001 diff --git a/examples/enemies/worm_normal_move_b.png b/examples/enemies/worm_normal_move_b.png new file mode 100644 index 0000000000000000000000000000000000000000..fd74ebc279c24573c967edfa2f8f7fa49cdca133 GIT binary patch literal 989 zcmV<310wv1P)oKmY&$gSXl}kkfLTxj&J~I%9=#x#(G};x~1|d8^Jlgt|VI&of?$XNaRceXKHB zf;(!DI8SIlnb|m2aXW|3fWhoVP+>TG#$&PNJc`dac*Ht^$~gv&Fivzngtj?cdq784OImD- z$L=;lRE5Otd%x>qf0$3F;Aphwc%;Nsso_PT-ig5FFG+1SZ@-Vq@HI6-L7(07P}q(D z000nlQchD(Kc8=p->=VKAAb)ozwZEtoEd`v00MbQL_t(o!|heqcB3#5#SPP)ZRx!^ zj!P2v5;u&4F*fM`zh*U(z+jY|le2Gom=}=lovWFF840C-G$9p81yX@jAQeajQh`+9 zKNrX-qOSYCu8WGcPtD#kEHP6)_(f8UI}8b})nFe}Fe zI24e`5lVrJDG>opXS=iIYUR4C)pEu*bWP2Ejs*f5Jz{$9dZD??DLsf{qh%C3XP8C> zG$W)~w&SeVj$>PxRv(4&*7vdHC{PeeD)E2ld5iKIg|@aAUhjdrPk(xIJBpP9%uula z$#E8^5L#pIk#wi7*VxBwhGnsUK{)pxC}AJ>-oXl2ZgI%NTv7;G5Fr1ah0w|SX7hd$ zr&&<5#TxO<>Omb80Wzp#&MEfC3a4?_n}aKdemrjbEwX-jeryG4Eb8zr1<2qS$N#z^ z_R2ZyWs9xf#BVnh{4xl#IEEY`1HXZnXH?*ff`<#Q910w5iQOP{2hXQqzYz*R0b>z3 zbDaAd<29-O_70&IJX>KQLxEp-)uuIQ6Uc_**^KwZ1mNW6(Y6^zHY5Vjr(IaKFE^XZ zHme-y;s1W}!_t2`?wJ1Ovo5|1o$J+fEgFg1Jyd+39?3x!eh~qc<((uQ7PMnXr z;He2EGD*6@?s#JQlMY{}1K2p`FG4qxX1czBs#HzdK9gb6eK?_*Sq1RoI&3D^&T*@a z_x;B;&Q#LaK;g}^+gKi*Tc7VwN1Ckfc6BMo^vo+3#`ww%W~3Bl%8{WeiDa*shncVH zKG$@Z(wRJ+@S^n9&BPnT1>sv)Tl^-$u}R;)8|9qHieZR3`BU0oLVqSg#r7Wu00000 LNkvXXu0mjf1_{O5 literal 0 HcmV?d00001 diff --git a/examples/enemies/worm_normal_rest.png b/examples/enemies/worm_normal_rest.png new file mode 100644 index 0000000000000000000000000000000000000000..b18eccdc9fa0a2368c9f02a45b8d19dc2fa79576 GIT binary patch literal 690 zcmV;j0!{siP)0lH9#>jK{PZ#Gc!OmG(a>oK{Yi%G&DdpH9<5qKr}Q!0000x zYL7X7$T)b!W3lCSyy|he=suIxJdM#hK1+kQ+Fq~Za+|qIq~A+gY&APdY_Q!tiqBcB z;x=-?MWNnkwB|sZ+d!DpJa?i#i@!KeXgi0_J$sKwp6L%HgCU=%J4NcK|!D0`c8GT0000DbW%=JAD=Jp zUyo1EuRnjk0H8betpET4kV!;AR9M69l-YKIFc3fykiC1|t@{qLDzg0le|07h6ze$! z`qqc6`Om1prjSkP{V}pcFoDrANy0R{-d7!wAT>CUIP}4!5a8&PBquwyeYoK8 zb^lK1MR{Ppc#d8cg}NjNi}Qtr%;8PX9|+1p1bU97s}aFRWGgHXSoyT`&0i=*NH!5) zqn~ddq^C8>_aNBQi7xW)&jNh%8dY4@zJE4*i@jMfIzL)JwUJagL&kNNY3*3TwkI-t z3#5eOt}eejk^=B^&f0+=*1m7MO&KKj2Ev>Rg&xDvQ%p8k|NZh1x3oi YZ=`mx*60Z0i2wiq07*qoM6N<$f(8FGbpQYW literal 0 HcmV?d00001 diff --git a/examples/enemies/worm_ring_move_a.png b/examples/enemies/worm_ring_move_a.png new file mode 100644 index 0000000000000000000000000000000000000000..5214b51a405258c0431691448ff57934f7a067e9 GIT binary patch literal 1046 zcmV+x1nK*UP)jLNhZ&H8nsqG(a^qK`}8wG&Ddo zG(a>oKmY&$jeAJ@#5(xBIKh)X_r*s+KSH{eL_az|U`spKi7Zt`Jo3v;@ySd5%|*d} zFX5amOhP`eh&1n~ESGmTt8y_)KtAZDC$M7^^s_6>gdN$qPW{hFfLu5I%tN!9OYEU5 z^sg-Ku`bMmE!UAD)uAxskt?KC58z^y}sVw!eEVXGByKoo3 zq)hw6I9gLgws3`5Q6?DyFM z-rK(3vKqjtXH*)f7+4YjQrfRn$><6jyc6>6J?=yq#g9x&9ze^6SL{^Yh=7-sh!FN& zQFMN#WLYBMl~t-l6DWXH_1KwFbso8=)3qAUMZk-O)$MSf7^wgt0i%KCssz@|YLp2X z3IIaN4QmFzk{3Au3+Ipo?`KxMKd0)~t?pp(+v-nA0B}pqX`lO+k&GZAOrNj26XL22 z@HrbE`hX#un1iqEMNYb~3XI^q9Nf@}&0?WY+$7V@1jez_rVkapVK?Q2=tY1VCK{4k*xJ57zpb z-1~r|NI-81xTIE*1By^vg97Mh^#QF&z$F8~M;ueD#sM{ku3P&=1i)ne*8Uy@jA1LG zBz<0kd3v!}T%3vlLvb6l!j)Xp)Fjd!w*+!kt6h;uz|i|so2vylI?Ac=Hjg9Lcqndz z*12t;3l$ujyiFmu{f*ATfaOlw0PFs4c<=kp+Uz*Wa2gRKw9VE0A76j+{4c*kK9l7; z3Eoh2-VjD(G347wJo)W_Z_It!gxAt!x228D2OjZYj#isTJLF5tLQ}<2UF}I_aj>oH zYA7USr2d}II&|<}(9?k`QdqpGa4YP QRR91007*qoM6N<$g5Pc6!2kdN literal 0 HcmV?d00001 diff --git a/examples/enemies/worm_ring_move_b.png b/examples/enemies/worm_ring_move_b.png new file mode 100644 index 0000000000000000000000000000000000000000..841636a20f817041ad93efea2621dbb0d866103a GIT binary patch literal 1012 zcmVoKmY&$;i)g|zexANL;cJ{?4c{TdoYx8HkNcY!G16Fyh8G|KIxn*{mn)Aw=9cq zI9gLgjeAJgwoBcZBkrsz{K`SKX%%u_I;N0HU`spqv@B~;I^~or=9eq)r!3=`ULaJ(- zx}q@;%Sep}q*2xjmBnJ@WpZMaMd>Agu6Zj-)1v^C^Hx+22>=88cb`X-iEU3Nqi2W? zkI%1Lt?TpS!)1>O8*_lc%WWUnZXkQqZoLF*J&Z)}pv_yMbAZ8?&!$YR@z`<3V{7WV zZ(am_iF)?vft6tZAkFeOs&1|BkU)<0Rs?*tM6X_Rs~e1vrT~c*=oZ8&Y?=t@FL+kL zWv!s;CM=+B=euN4BA~ozcJnrCgf1yie|1X8_S0`OJX%+gQNirQb zYYy3=`IN8&`Lxp(A-ypFjNUDmdXYk$+9qsK2`bp4>%W~b-BJr4Re_LF2F}S zBT~f{>jDhBG~DBWJy;wC(3(0S;F}+vMvB-C0MI~T1A}A*a%0levv&! z6V~zbFMwG49x@HdMBcmz(A{9@4I2D9*a#;)Zh&_e$(Mtd>GA@)QW^4Beef6o^jOOV z+#6QFytrh69=^^|72%KG&jBS^S~2ESGW-K2?mXLXggdE28v9;+K0nfQ9NxuB%D)ShavaoKmY&$mv=Y!#Yg$cNq}58`nxaVkt=mpIM<0R>6|M+IzR8HEbO5x<&-NyJwHJ| zLgm6w`oA;3q)h(RPG?<3@WMj-!#L}oEA6o^t8y{;w=9cdHr1gpu!uBfRy_R3KfI7L zU`so;cra^GI`pqB^|35kQ$+f`F|(RWO+`N8sW0)VEcdi5`@}kaW;y7YE9RFg{?STV zO+C!6O~{xs?xZaH!8ZTbQR0s)`noMOH9-JE0TKWJ01$LiPE&6WACKSfpU1-cP;TwFQ70?CkJeQr|R! zW&op~?a6>H`;0)cfV~Y@t60_#8KCsUtJUx=3oL1FR?x1RQM;c55(pwHn;c;AkJGc* z_o4_CN&bb}6GfgMpPh1})g%pE%7vdZqYeaMuJ=a%1v(pKi$AX}2Ws!W*B-!J0B&^v z3@)#@b&FsI4D<8*aqPpf0E7krL_^F5g6p{E&CYWx`Tg{~10F`n3kBep2>{pVO#nB% zHDWA)k2jnn;CvzgFGj%48i1`OW6Lp&XZ!`wj^j4G2*4}A!z7&M2?`)s=NB$yz@su1 z0RCs89cBusr50$NB=(b*ArSzQ{Y+GUkW`u~f6mhI@z3Rx81P3*gV%H?viNpcl{h%< z*cha_oJXN{m}7K0q`8gr-kAWm8Q?dzrn#fI<6&pp{4ON9Jn9$#;a7Ro86}yF*ZHFy z%mQu9bdg@A2dyiZWd#8XN|k+6)vTn|zvr)uqUzL&+iQ+e)*Y)-#9gtR)c6;&Wg&=B SJMDu20000Ku{Jx{Ax?63fl~QqalZvV(=WblQ?80AvlXK zO2w|)mg?ym8Byr5^L?C;ZEN4X^^Nm}|De?50;SG8b9*|~7Q5roCvfh2_^#THiph~; zoKx@MJAeDm?A1Hey|Xp->Qlc3z0%L%_^O?$tGo1i^(ma6g+^XSYG?YF zm(Kqer9QS^sfj0bb@pU8tvq!=skWrUBcK#THA5MIte+Z>{6m@VjPMXigMXOe*bxIu^5gCfn!vlevaJEn+#i3&< z5^A&wZ;`y?@L4&cy3)?5V|zqV$1~cTC zK~t*8)J8!;`ukJ>W9~x~|Ns4n3(4>JQaT-6yL=?r)7L&o$6+qk;VB-#FKMWLGd@htr-W!su?v!YL=RKb)} zx>wz=9#=n9|Dgued(pjKnOEUed9^j4tF4%Kaw3{2O-xBlPs~cpNz6~2nplxIEpc|D zC-FCl+Y+}YKA-qv;;V`05um6nxb^RCjZ|=XQ z|Hl4@`XB4x+rO{>jsCa$M+VLqxO|{>;JSeu2kssC`oKd2j}1IN@Z`WV11}Bq4ZJ?^ z#=zSH?+hFr7#TccaNXd=gPRAh8N6}up~1%n_YUqGd}HwK!I7crA#bR0sA=fqLz{;( zLsty-3}uI&9(rczrJ=r|*N5I1dVA=dp^;%VTsiCwuN%I2_=@44;hTo<9Ns&;Z}^Sj zw}%f6j~pC9KIJExL$OA!Qy*6;b*(}1pVX7;MT_DTZ{Wc?-~?qfMP@cCH<-XYy0o*f4Kkg{-^r)_aEqgXTTd+H?Vo2ZQy#K zcpp%F7$|;wVDG@Q1HT*S2Z{%P;=4f61BwlUmkg!`uN}O1@ZrJ72cH_;KX_p9ogoDj zYk*?&(4|8uptu7l_5#IchkiHI4-^jo#dm?C9-cj1Gu$wI$?%Th?C{OQUm1RCc>nN$ z;dh1)8x-lC6I5*E_alQUI`S-zFvg6uj$BW8QMzvA;`hHQ<-Vm#y}X9y{jE~t|L&hE z<^AjT{bt`Ul-l>DeYfrV1nc%)@#61a{BP_dFP6UWC)QLCdeLfdsvf|%wR&&$_p6_* zezf`rIJyPjo2sv`zOnks>Km#z&mF9e&V9D}pOu>X0DI1T65nQgZ^ZY8xu@gzQl+Yn z&RsjVZtj}7r_Qa%(Gh$PR~@W6RQ1QI_p0_+-B5LU)o)QZmlUcX{~U0db4aPF1!aR% zqf^yXq?@U#>`2*2*`LaemK`nw1^gZ?J5=_^viHgg$`0Zf!CG&{gk6qKw%0f zOnEQ1hViW%N!xw&X|4wGex}|e_4;D{aeW!in6KW9Qk&kYx9cl(yYA3kx*Ij!`UZWQ zZGXGn-=*)drF%!!+=)K+tUdQ7)S!0sM`Ny_zo_rR?<4p^8{NlN`Yn9_E7)ESNo}ys zw0sryLu?zt@EVzm?;5{NBR9C1bbt$5}Q{AJsAl_e6zf()Fos12^t>&p(WYh+< zYC^vjwA*R=wxiFr=zRrfb%V~8pw%iuAf zhQXyrrPXe=LtUrdRoAOmF)zDD9aR6Vey)C_ey{ec3^MpdiaLN1?`*VB;AQsCSQ8Pd>to7%3Y<2McNS=FnqQoHmFNO2AHxDHbM zr9J!A50D-A;&-pw2ie0%_ozG6o$4#IW)=dMSSU z)DZA_6KK7qmjRV`)qeq%gMV>P+M0Mpt!(!Mkc$4rNZs&f>QSH&A+V5VCT*B9tBH9d z_5JEW^&RyS^;w3Z{fbep~CkuD_>F6 zR&;&QBSrsFTvU8Y@kPZ~7k{Jp#p2;uJa$^_tk}lb&9U2J---Qe?3b|@V*{}Rv3E)) zmCPzhl&mb-R+25bx#ZT82THzK@73FNN|%?OR@zc}e(B|E}!DDg9aLdlOHZxM||e6Yrb&{fP%Al}-?2fX>%buS)W9s^;w@&@#)ZuBB(-PAz zn|9N*JElD{?U`xsOh0M*nbU8W{_W|n%$PExX~y;$_s{tE8E?&;HuJ+Xx6ZtB<^wao zHFIF*@XW*IMdee*b2_inSG+D?VBAK*cvJo~U@H;%626DqgF2v*Ji)ta5(kipuqsAFXVy?5e!J^3#=H zto(<{hbteie5&#%mH$@RSNWfnhh`VdE}Ok__NLi8XJ0-0?%Cg)-9P)#oLO^L%(-Yz z*PPGK`Nugwp7YwAx2j@Qi>fwMU0AiN>aMEitKOVDW9}_;KRfrkb6=@0tzKANSDmi@ zO!X7h|F8OpSM9C$c6eX#9`#=Ij?~0zPN>;bb6w4yHBZ(2u{Ke=q4wI^1GNX|oiK0d zyw-U)&3ka(x90t7{(N{{1VbODvqhYTVX3HV%4*CPHHYA|1?v4=$+bnZsG5PcWi@5| zhPNX0I*b)2`)YLr-=k>GdG?5@d=!O0=?xFS7jzq0DUltSm|jUgF{MbJYu6}jYC==02B zD`P;*c)pgtTtrNCI+`m{F5)HVais~Fe7WLc2di3HG3-Tj3ShmUMl@|smy#gL8upbw zu05tsep}et(GKtPH6MXw)HtX+Ek?-$^dN7Lj$3^Zy<)VDs`rdFl?M8d%vjQRn(I|$ zxV#U_BSu5fIX2XBHW}LK;t;1Cb}FG_@##i zdXM7+lu`Kcmt&sD!ffFr;Tb0*&jxZ-z(VvoN>5!)UMT=zI6{*dsseM+8l{$wi4l;i zh{%viR^lEm&}n#a5?{=)Kpc1}7Jnr@s*#aE7Oke$#9GW581aE5c!oBzAz9Ix+RB(D zq)Aw?jJf{d?lmzRdro+w7pABpQQ%>&_R5Td$m7eau2hj3@qO5g9GMFW1iM^YGNgRm zcr{h5j01d(U(UvQBNs1u;u&4}L+bJsO77UrE}YFpCTDfZC$pJ=M}2_LQv-UTpc;X0 z68p?~VN*JflRe_hpUsrxI^!|4B7Wu@q8OwnS~{)5j>A!qdL1^u!qp%d6|T&=X9JKm?96UixFbpU+55 zXp*ALtU{4;ii;Eo1)oBse4ve)8OT9!=APDdIgT8;iO)IRc}zdj5{;v@CPi+fMATTK z*HCM*89L@7SXz*_Yf0J+8zdlv94*MXo_HV8W)vc9P@rYy-iVu}7_E;hS31jxR!&pV z)@ceoeP1rb+#HnYInJ*ro7*UdXyLN0^C)T~al|uBasHem5RZA|pvcExB1G*YG7kDP zgA(Lrn=ulQBPb1}qArw)aqMg=^9)jiL`QLbKnRO?GM#~n94n1SALkrF@(b-P^u=TN z>#QrdiXQ+~ql1Z6nJYOE?Vg%&T;=>;v>+`W2^y^9T#4F2R$tz6qKWO;ljEbyVkFpC{`-bpSFQ5hkGi*OKJ#qQ+5xrCW{V*Dg7 zSVH8+L}Dvgik-zB=^vzT+7=_~Ob(z8*xq@Rv%X{(!8_my;~+#T+$6t>+cUa|gB*z@ z)Iv5t7nl;}k(?tzi+Q;6i#F(tJ@X1B1si5w+61ZFW@X8EF$Yesr<|LC1h$VBJqi^z;IYSCu^YKiP*aasg6Wc|tjcb@K zihFCgP9;&x5d<|YklNN5tJdOf9P2Lwq^Or1BrQSMB5gBh0O=YiYV^gPBklV+c-<;i z0C%nx$Q*mr=3usw9B*U+TSL=iT4(nda5gsAf{I|lc6^e`p^?kJFr?5Be_{S*f8k$9 z$BCKIY>{0E(%*RGHzf($R&5bs4e5||{eZ!|K$j6Lgadky7>)706 z>?fIt;~Hbo;1N|lP{+t#=xUlMET!Q{XY6FHFY9}rVQ-ULa~@+N$V!Gjd(?)Y1q2)O zv{h8?fNy~#k1YKi6g%{kc2@dY+&|`NQ}5&gcdQ>|#Iqm@ zl=jy}oXkvkL|nM1=gSpSW?y0?BQc@`%37Xg#xoXm4f>=+THIKQn%SpNCT*g`IUQrt z&g}rTr5web2(H9Hhu`4FV|oGaUr0YnD05rR+!zBf#39S_C4JW8(9s9&vE(M7d`x&e zHX)c_vhzv225sor&L?>c?9z1^Uk=3VII*b*)fOo_s6NkKqBWOq}A|-NB4z5)M9eN72 zD>Ob6&}tl1*qfP(JOvf!%k-B(f2<|LsEDOxZo`>_%-Ts!;z2AXeizcEg4e*tqGfGw zJ%Ex?Lm8u3<|dkou5!+uk^Mo$ztp3#kp-5)oigGjo9_$07hs;_d*(#m6%EVhdW+S` ziQ|f70FgxyWF5yk(LF?S6n;X}QKYtR4KE%>U!a6S4-x50Xl7Gk3EgUtb`(FAD0kLi zJuNCRb2vzCqQVRzOpUTpGO?~tDd_n&Pxw+DGsDp)LXmrygG4$r^G2;m&T-4kBYetc zg&&qsY{_3It5}8JBKQZT4tol*9wW~k(<_CaXuG4e5nFL%KT_d+9@E1|VVoS`a;3`wygS5PM@#cw5q5?q;$U3AA!3w3_KuR=D`H(C zs73Lc=QsB00pAv`bGgbH4z`KNAzq_c`}xz8fRUVoe;hYQ7e#<`-KFACrqyCUdEu5LL(lpU6WIOowUIoZY9 z^tYgX)R6k1CFWvQ`X+S;{~lnkS{Kx5RBja9IKQS|j=$)5(8L{i3tGq?KK(uFuHgI; zjT~ppmuMNr7X1f=-5GOD%~_3j$h?_RK)vaw1?WMJ0eX3MAO?Q?%H1q_2%ORJiJJJ6 zdqDF<8shCXmff){3(Af%CE{Gj9TQv0!iV6E&d-kkcS=qlGU%K3?l_>qapXIhm(tf| z!78Zp4nJqO#Kw87?0t`5DTH!0t`Ls$K&QLg8;^v%!gnm1aTPu}96+{?<3Tm?$bEuEYq4Z!g^nh`FTk;skFDE>@Pk3eE-$S*;E zAIBkt^5RlP88MHH8`2Nm(c7*g0RiKmoH_TBCoI^SBmDR+{S3kE0D``iKVTdnYP5%J zzN-YS@6HlE*)WzPi&?2B!=K0CBK8ps#ex0VpxA+SA#M7FtXkc?kaEa%EhJQ5moYq+ z@ky)m85YR{)Q3JMGmijf)9|dsm~rph+4+pb0DpPS#*L67sqo`3rKDvTcGQUfEGEa1 z(Ht+ymZTu~5P6=HXmQs|S?hQT-+%>@$q9H9MRWhmqvX3*Ovk!ZT zrNtj5gRqX{EL%Wc-_K>d9MgjUvdsRm7g>DC#hxy0i{$hve#M8xo-%&Qr~=kFYjVPI zq7+^U_$vrGu* zrUd+F^*fG8aWhrPJ^A+p1yO3}HfiU6LpB^!Psy`>uBC*=cM$|u$|m*QF~+51+XhI` z7s7tVV?SGqO^6D8LA*iccY&E?E&j@bnC~*bPNHdJIcDDY)GmtkjGpTM&9*%)be^dnBlLw0=04VRPZ{l@$5b7sc~rIOz66@ z?{6i%`lO*JFr-Hga9o9Xk*BRUY)A)UVUKz`15 z9GS+MIS^Kf8aEya)S@HjR9uxFwv^m+vH4i$V@6*LZRUv!i%bgcV4^&CzX`b)b#@fR zHDh=nIWVvD+7@kW??^}S_jzoHoJKjrIZga8D33n3}(_j>P5zcQtPns z43C&8u!`HC8!dyek(*=CEIMaf&h$l+fJOZo0@9kGC(i=&H?&qO;e7zv$uWi(a>;XUe=ar(s7D~`8F=-Y!=HG}rB zPxK50??syo|GGR4BKZzp5U{;@svah>cVVL(g~10k)XVU~_>gDCSI3cck9u`n{azdA zOkBMx`h{@1KG@nl(E(jdq|z7sO+uCFO5%w3A{eNCyl{5TBS*)0Kkk&Vr_NDg){sOf zcMh2Tcs+`N&#yeQVa80%dwu?H{?2DJ<=QH}+Kg59IWptlhjRXHpCmJu;qwh4DM+^v z{Fo`I39nvJH)c-8BP9`CB|}{k1 zS6LU+&)n53!IkoH6eMbbjFBS`8DdDj#8r?aM&ylNsDb2pf15)oWW;Ab@+1v2$26k= zU6nW(Zc(m4*u%-rRSGjbTX0U!dlAHr7zU(7o~DlZn{Z-Z>L^Id6=j!arQSXBZKOB+ zg%UZ^)42MVs}r0t312h&g0=H`LUu^Y&2f~uH>t=YHmrBD!&b;#J`K5IPIPG@&N`Uq zz*FpMMn}K3SXK0sxt!QkuB*9gAV?0rXBg|~98xR@Pv0Ln3zZl#xSO1AysAmZaz1aK zcQUodke|3ie!ng3_>0l#xk*G6v>L5(n`tc2H7yL_R$$# z5?bUQmWzHP=lDzX9fDFO2b&?7r*dB4I50=k>tuaR+J!h`olvFD@TQPGUEko|$-rzY z61ZF?ayhBs-Z*c@%L=tvt;8D=#*oTV_UCdTRz?Y(Q$-en!oZ0kd&kr_hQPx=QFIEr zJ$s0`$LbYSLLS6mNXwt1Nc+$nNly!neFi&_Oma<}CDDQa zlRg^y)W%(r(!*qgl$j7El-z)LgGg4MCS9J(ML{Wxsk@OfBq2jrj zOD8^sL#ZYIQ1*bt=FY5vFsHrDHK@NVBP1ViWaD#yVkN=S-WTxo&siuyjPl|uS0H7y zad)~L611GNI{9K8@oCD~5Fkiu)PkFD8;N1oTdVl!actm-mZM=P;7HcFaxIs)ndIsf z?Lv82BTt5aC~E8q0~V&IkcQhNKOaU5<|#g{$PrfL$c^eg4YTI;rOA;oG{v|0ON?c# z74LI3&I0`V?@|88*&^|AqM2tDxoV)_(<|KbN6d$$&wp08QBUMJB3yeB4>#Kr>3AKS zRNeDJB5MFEnK3ycIqk%5^aMVMEmt58i6*|y#<|)+V#mJP;9`pY5Rk>KoPDsZS8^6c zEogfpOhnyWj(2?NjiLBVa=P@`CE=Vy!)mye0e{%9dmlQo=VX7UT@@B!IH)(NCR z?{*S#Y;&8dll%u(Xk~I=8Rjw{QVrr!xv+My9Ai&U_BS3m&W@+ccaC>(GQ&2mUi^d@ zIBX>=%6Xrflw2?F-Gs(blfR0@8Gr2EqnCtdG&#+W`OLD+E`^84=eWCj5tLO{_HqVK zkC_#>y`r=XOAXA|*8y1KV6etaIgFZ*A4@{V{|#zN-*gg)RKX(^<*1kYn{t0$%6TYL z3zIq>j1ZF$N$?i}A+cbVf#@4&MZobz>=GQSNJI#695ds5;BW2qD(brzb28E0T=g+y zKJ*XHjVTq=v0S_mf~<2aDIr9&zRD?nOifpwIu%~4kaKj6*2wv_C#+ntYWcF6Go}|s z$0?UYI4sE{Nr%93{_^GX=dV~XKX0#JV)m41N3?!8^2E^xj~rM&Ke2pyV*c`@U&xhi z;W3Y*59&+wC6KdHpAO08!#7$#l(m{w zaE`5ys7VEBTaKz_1wFQ05NK1VRuw#G>xyts#lt5z)P z?A~@#)2bETdEK4fIh`Gy=cl*zwx_y-Rck()?(WHSc6dt{En6BauWjh+&a`_=SDs2n z_2>gCBw~2AwC~DXz1S34*VC11O}BZSz1j9mN4m%B-0Eewr#&)i-Ja@BwPw@ZUQasf z?aE}gdp+4yM_a19&AXr@)7sgV_VDWDu1v?ap0!@4qqV)a4HVA1pdnZ7ZSCy#7BpwN z)2&(Wyp~NHo6b6Gfd?Aif{m@+>2wE)EN%j$^UpnJ!J^S1T-4d?ozrlUx8dAPYam8@ zJEY6>fNV!L$8vFZx-HX_?aplJ&8GeHkO-W1o3>tSXL~zjAY9$)ZP1`S-D8vmRIN~8 zt=HAvc~u4)QG1d%qPL0UZJoP1+B;Ki-q!BUordVH^cJrtlZEB1gljzDx5LYJdbOjq zSlqg5#lmcNZ#uiXD_u*$I=kC|E79o$!|on-%yA(;nGRrW)D>~odg+~8V5pq>AmL@Q zJ>H^pXVxIPXjkXft=?6s?o6r!^`s40y4q8_J!nlNoX}ox4^;NnQO$*0VSlf?7kI2i zeI9<0A)9ISGCNb-U|Gs_6;K4_RJV_RK&DiW*M(E`qLkOuxiz~h)tyFF>kbg`U?1B@9Bh5JF;+4oMWqw^tR4y zCIuHrc_-o>+C7;qpwrs9b7#7{HIr&T2^MNicR)o#v%9mm+vp3=@1fnr@o{!rFAgOb zQrWSsDSQ{2V67d)YeV*4Y}u+4ar^xwB=lwYR7uvU@bq8vCOwCsOW`Ro@d#6z=j;SGgW{oZ$TBlL=3@^54 zO%^RWK$&ex{{kFk(5KV9ywk&O0W z;;99AacBmmw2_BBTGS?J+oaCIwg4?e4z}EgHf)(Td_@|0JN7AK?X8B=PS7O!lyn!kZ^53PPwg0UVGN0#_}>ncvY_Ru+T*gtVrb8(T!>!X zK#$(I8``AN-yueC;cH{*Gfs<6w4--39v#Qgx;XzKPU6?Tb!jDs4iQYlQ@7xk9zT}# z#Ak^BIW9s=%HaFxBH%>p&^}igyJZZ5(%#7}-qHoMQU+VeB;z6N0TH53D|=WoIC&SM zB=PSV)Wkoi1=}Cn{{)9DsJ5bg#>A(*h}YNUD$rn#5S^I^#`6EMapDVw>5tNj*@=jx z@a-|>EO6pEN-0@v2aYL$XXD31JZ`{iiy504)4K;P=-J0Z!$qxRi*|!@I6B0_^igIL z9tmpnrJ!#!bJ71(uoh*PNM$aN3@ZJc_c8ZwLn|Vi!Y}oq)+a*CPV}c8w}28UGMDnz z&GcVJF*$IwV+=8?(_7i!dChLL??qcDsmuAK$;fahOH4>#j%ac=I5JSOKPNUN_ldp> zA(b0FV-m*@$28*!ScJt@d~~vobL(O^?Hq7t54G((x>Y)^g7+38+8-jz}}*h z`mgXF_OtYd_1SnM@;Q2gK3AWoKcdgq8}%lAf&Qren7&Y7gg3Nbf_JoEsxQ-*>&-f) zx9C>9qdkpxC~w1i+B0}l`wqOTeJ9@5-ii0MUx~N1_vozd)mQ0V`f9yfU!$+p*Xir= z4)+`NP5Neii{7I@f%h-}wf>a;8~wNX)B0BZ8U1(qHvL(ByZ)U1y#4~-$o}{GOZtE5 zFY7z>o%$>KE`7JYM}Jk{tMAkQpzqfY=m+)J^#9iXsK2fs(huuz=x^#r^tbf?(U0nX z(vRuK^|#Ht#gpo<)R~wPd>HRDUyos%1NM39Bbc~t#K3(4CSV`K`^_)HJJv73TgorR zJE8xt{%8Fi{ayVp`g{8O`Um<+y;nb_pVrUlXY~*Db9iU;kMxiAPxMdq&-C;9=lU1= zm-<)w*ZSY|Z}e~NJI*gtn^j8xdvU6}yK`4>SBcrTr?+Nf8$qRGa#f4$S1+;0NqfG@)-SXBrMBLlUuoL6w5(iKi2p*TJ1b{b z8m^$)Y4(uGkt1=$q^&hI>&X{%KFu; zSjGw#miuSwma)P>%ff2cWR)w_2ih8iTUu6Im{(gVR$G|smWz(78w8ko(+=F5NqU7( zsNQy{Hw{}_>MS^Q7XLb957b+Nb=J;x*3NZSfI2HcouP;J^&&u>quXeYjh%7cDo|(q z0ms(P^_G9VZNlB*Tsx7^^@RAijX||l3t>(>Ef@Uj0^D6d` zV7EQ249!-CW-CLpm7&?n(A*+{+TOV<-5m_n;_j?DC=PQ{6iZut}Q=k~S42Z7N9GRFJf(AZb%U z(ju0$sUT@nLDHszWSt<8tP_JIZ7N9GRFJf(AZb%U(x!r>O$AAt3X(PzByB24+EkFV hsUT@nLDFiTw5cH3Y&C5WM3RCO*e1-OZmFeiNv)+9wIyq@=taYE!cWaDFIGQbexi38XM}M|E)Q{aj+i$!+jD{Xv?=9Ltbj8)TUVi87k=-Hm{XwWrJheWNj|yTX%xZtU z5_|k#J2kah?ZmJpR&l2gde!PM@QzrncZb^Bf_QC1?Sx9k z@e-}aQ_nfoE5*a(nN}+QpRYoRtMl{!$6{)Swa4~aef9q}wZX4wM|x|#U3q`??ETfi zwO_}M@q3hKSY3G>H6|-RE7#QH9`=?;v}wyMgERJ5wyVwc|7d{Pk=o~%UuG5cUR{!1 z%R+nGPepfzEwaU9!(HKn;ltq*;WOcn!ha244u2B95&kUvMR+JY9R4BvEc`M&Cc~et zy}ka9`n&5Ntbe5bvHGX$e^h_4{~hD?>wVBf30!n zzYG5q{!e%`JW;vx=XB?e?R-9*@tI;IQv(#56%8y z_Ah6@H~Zb$Z_Ivm_K#=3H2cNbnb|MQJ}~?F*;RX2?H%7cvUlO$1$+DU_UxJ6vv<#) zAD#B2<&S*gk&iv{zDHj7$d!*=@wZ?8+fVM^wflR!zrOpcyC2;B<=r#8KfC)AyFa}9 zy}RGMd*|-g?7m_5b-S=o6I93j;E?!7vo&hXr9c zEDVc;j-z35SQ3_oFC;d$Zt;RWH$@WSw- za8}qFUL4L2=Y(^^dEq7DrQ!UrEnE;@7G54+5ndTC3>Ss%;o@*fxHMcAE)Q3P9pTDw zRd`jnI$RU34cCS1!>hv$;l^-NculxD+#(s@8g2`(4Y!9o!kx11yX6m^`qkSzI=i}i zdi(n44YUmo&0jFQaM8%<;w4MRmMvega(rTPYSr{1tJfU5cHR07hi%++_z_1Qb@VZt zk3H`A6Ha{ANhfbP<=LkyQa`v z-uu4r{ttZUgCG9LAAIy=Jl+|;aqpjh``3w} ze-hsC)-V3&@b-J&^!3mGS$N}r3a_(6;{S1+^zS#lFgJZ5g!M1b|F)k0>00fr+a9RR z{`v#qwB=vW(e(>ox#59OTR%R2`jw~MU%N;fZR=IBc0#54`tdXFuTP(G_W4uW#_t`! z_j#AzJATIaj_sG;-##6wc3gJvwvFTWhjY%qQvW~q{E7RwY#VD7FWa{5cwMKR>*y36 ze(yG2;i_~6(O9){uMX;1|AO)R>xXPT|HbFufA?u)_is6E+t|d!`04jQxb^(|A3SYr zV%s(y)!AsNT71Wqi&LAs)aK5$+TU$gIp_TQw~XB%w%vO#*F5L^sfqjVzW3g-d&NiE zejq&9Qc(-76`)P&l(?KIuHXZ;J#IsbIEbYk0v zAaSn?GxGcP(6vq*)>=vYJan{Izb^e^^rnJ;=hud6pJ`j$_M!Tg`q$b+`$_E&b?oRo zqw^24}N0s$Ado}I&J6; z^G{lE#_)*?uU+`=MN1dmH*(_0Z6lu_`PRr!M&G{p-o=kB`To*-#*P{L%(7#beRBCr zmj8UkvK1GvylCZ{#&4e(pSXQ;)#OK}ZdesoePH^qL)IR0_aVDhZ(9AMHP2u3r9(Fz z`u4S9?d#VqUEja{+Vx-B@S+VfhrM^>$fmIA*iE0<^y9kYixBU2&i%$9evoF@)H&1=}X@{KlF)F%vUdc_0>0=bi+$-_{@#tH(qtqnw!pk&BE90dd*L7 zKI-PT-2DEVAGrCUn}2c3&@Jn4Is2BKx7>HjgSR}sbH&axciz48^E>z5y6M)-Z~e%v ze{s4>Zv}7BK^aqBrqnSc zbJ}IJ|6vU6^z$DG^EQrsLAc&^(zaC5MMYProwRL6w$&a_ou^aV9)2KniS{Jg_wc5} zYZLP)mhivyM{>GPiSAzAvZmOf)K%M0s)lr^E1It|Su)Mo-Yzw6RMFyp&nTb_#nyJj zTh1tm4ChwsmNos_b^C5{P@@^5L9|a4&gO~E7hNPeEV?*tFHPIab~(pmFgR9lypW28 z#&Jz8MQEh*2#s5{>k@6EouWOWy=uyU%3~@Isk~5hf#`_pM)e!gHn(4*-*Wv{=r=m_ zKv*d{zRRRm2yMd4wTab7M@e=_SSG|-Nn?-UA$$V^@Q3E-i((1ziKQ%p&vx;+ z!1)}4i=iqPGJqM$Q@AC6n-{^#^o!BqFK`C(;7f>d=>fQebM&15&}IIc6*{sn*HH4K zQE%-0k?M-=#o@1KVtPx{=wZP%s1hV_C|ZX)3gH*s+6Ik~0_KUS4(fR5kha;6wD2pS z0_iPo_)Qy9l130puh5V?awYEA&e8g@-KA}0&lQn5!UFej1X=_TAvnqlMI94ytdT6h z%@d9~ZZm)m9?(|Xw~vPCw^zWjHiA z-520~k=h0KqwW*YACd$zF7zUj-m2k58POF%Mi>ZDjq4u_j0bcKM&vBdMa@9q-wXuY zMJzxppkcKb4mJGDtwN1nc&Gli~vP@b}7TFOGF5YJ{AWc5Eubo zd$XdVC!0D@0ynhqV7HETyGNJO$Wx!9>1HHP=$esyXo0Lj7X&DsN%lP_7eEjFWSEL!5=(8qvV!KyNex%=Oe-SCPDfTW_+YOW_(Bq zgh4{w73nzALqQwr7qv>IVmjF?3~-(QeHBA$mRlc26>&I@Pu9cA+8N+4Xox)z#RO9LNj+C4eU;W*s4N0ZyMP7!@(}47bG#!9?U3zu#Up$#7Vm$Ia+~ft zh1s(7vG7B{jr?+kgs@>}$OW*gscm>Cx` z@N7?)AP+7>1mK4Z0F?gJziZ`_VQ5PV_R1LG1f#&UYvC#FBd4ybj_jF#ssEw8irT)g zx^^#0aQw0U2YMuH=H}>jQf2IdGWOsx0_70pIo?ql`(V4Y54N!n&cm07M3;$jJ-TEl zpY9lRN_0|mx*@wtBA)DME?;+pn$ggw2@`$L3vhpQ9KiR9NZ<>$9(fjpCwOEVBV!xh zXuJD5{*ABWC-BKNmWslg`M6=gxVAZFLKJ0Aioze)UM0%4r$w=qLxc<9019qZaw|Sy zyhJ?zzr{T;!*fO4%CjM1D{ciqxQ> zB$7pPNTak0xS5ak8hxt@5~OZv)?m_cbO#2p>+7sz-pV=K9gQ}Z9SHaZ7wxaFQDVD= zw>xLVqgi^N+6pgF5Fd)Qzz_TZH}K~cFxL|PKP*{qAGhPC0nSR49UA_{+W;^B|&$QSuZ%>A>z za^~DuB*t|~2&pgxfW!uL6|4e(p&mcMxA77D1|O-5;)AqeaZAq9DiP}(qER?BxnRvm z#VlN$#(gd+x8u-`5vP0wQyvWOP`hAEKOawNS3BqwGp<5=z&V!^?Iq6B{&}q!lr^12 zlw_8BjH#lN6h*pY90ivEc(`##kpQ@}cSLt3N@2wO-^!Hu^=b~SOTQG;Q#_g>qI$cgDA%xCd#!oic){HDD}sPQomXB2+`xx_6ef2;aLrP9LKoEi~M&L z6|0JhHB_uADk=k9OF3d`(V;(#io=SEGKY@9a6CsGZ#Eq(PNL!@8z*7H5N%Crx)HiT zibZQDspVu7F{>9RpvR=@mW!^}HeQGnI@u@MB}zoaE73IAg;#>hCyH(s1!3rMph+zJ z1W`1P^wB(cjpWhxBK^1y=)--;__+_7$1~9UdQmh#F1kY3Jw)Zz`jM4Ps18j-(d=qb zG>cX_-?g|&+g$f>QQCimDEB>56zv@)il!H+jHc&{9xIBLY5&PBsCcj}pma7bdwOe; z5fA}OaXjz)K^ab9*vPRp?|n+g0YE;mV0}kW*pIccox%V4v+G-#xP()8={makV&wtl zcv6JJpk$U718MDoI{i~DOSru<{23@_u?)DthCrV_$*DCaBX2ypCW=1UUf%GMWbzs5 z@`&w>hDNL-OR(S;m`fbf)@5+sHc`xrF8xB$a!vu&VMYU@Bz_!+`Cxtk2iIEBqE1&) zNlU?cfNN9EZlMn3M-Z(+E~h=V^d!q}Fl=Wwp;>0gBuBD}OiHjnkSyRSj_pfv?`jGedw5D-_mG%*FELMt3UEDC2HU*hHa8rYg5k!-T^G$={yw*7c;dz6t_%55^}vaOVJODH`drQo3!gg}(2KN3mJfenTuTj#*kruK~>Izuyt#wZhM za>uz$uUSI44I@Q3jiCegY-0#0jh_vM*Wkl8eg;Ii%J3XK2+x6H_oy->ZYAH&T?K~) zGbGv!dbR5k7@)ViOa!dkZ|yYs*jScU>#FtE!B^{;3jn>;m+#R3&O(beYltXmJ8h*m z&yD&XmKPy!c3{%%=-g#xq=>mYOgCmjEZs+t7>|v#gFx+SMxCgh#*X7y)5@?%*%gkV z-#E9>WxWs9rZO@^hEPH-x5ISsI_mH?yby201&I34F`@<+>UOV7^3H<`m6@v*WUVWT zL^q8`SaQNTj1i8|N@M0XSYU@>26Z=#7!05%iF1Mx;3Rn_6bI!vk^*7@Nx^auTvlGH zvDE==T>&aEvv<{+Nuq8W=w0T&Z)$L?^XxO21XwragzGG22#U&$Znlg?jRCJ!Oy(H*!p3n=sfDRZqPQ zg&1%nppme}pQ>+Bnybd*4>GVH33B}@QLeu#ZLb#Px`&E#pS2CEm;|FIixG}KD*B4i zi4w(e4J@A})W~B}*FqLhEF1Kq`-g=Pgy9cM=vEm^?h?h40SjUgK!R0Z#TGwEn+oqAqEm5iAnvfICDt+B@K&xGcVgOJgMyF2i(ho&p^uPnk_6Wfc7Pr6{fB=kPf1NXPP(x<8 zHW}uAF|%@}kSNz?8Cbu}`)RtNZiWottwWRs(opJYB)sFDcr~)2exNZ^o}y>&OJ}Gw z{&7B!n4|%Sxa`CsADkX>W3U6Fh@57aJm#LNF&V&TE?J+$CN$V%a)>ej!n$QxHdAdG zHYvT00Q;B*AsXIY|L{&@kPV8VQFteDXGsGoaz9*05H51Zg~4V9xN|1XC6EUq@6?am zp?lIf_@xQl3fsU2s0R$F2mG)NvIk5PfWVP0#wDz8Mizj)tZzmS#oQLT zSsBaXFUpV8)7qcsx=)&M!vONpIwxt@v*Z*)V}IVqB+Ow=x{WkHA&ocBnq~3JQV@KY z^#~e_>IyFg2AXgoi9G2br`SmcF~u$$P*ZcW4mKTrXw4*q6>%d52Y|EKC)Bch?pGHm z`PA>G#?T@Yg;6#PlhI-wH{KXGNbPD$B~rp>oh;N~(oJhGwJzFc|J&6oAc{DMpmdxD z!@&q(0vp9p@Yz9?(F0M22*dF>6z5~FFigb6!In0BH^r|?PbPIsY{lB*6yQg6DtKnN zWKHm9&8KO)Jk4kqrD^@5?$g*c!5KTI35yPrxgI!WDJN*n_uW!ss)C`Uv0m25Pt~+a zzCSI27>I+i=3GII!O7@rAv+krj$r_2L*DEM1Cd{^D9#2Rus?#6DEeR<`67SM<%rx^ zJkH5=m+5*4hVlPpqGT#;Pl$5dq$uZ4HE<;@M9A2hQj(}2tkn|@aFyv+nheDRxHL@$ zvM~eK$E3=nZZP3jh_O#7)vsl+Cf3ST%HHim636(#Ei8!!g?;sgs6iTz@i)T21+QQSh& z+#gEgirMb+xSMWAfJ+k{897SJ;DOc28@2GGL#P>Nd=3?o$(M1p|@L&=Irmq8fM z2;53(G!}}5yM>}uPnWp|P6i!sjMsV`oST~N_&>{_Z3@eblm7$Qj2ik;#0kno3qQ(Y zDbN!mW?DD#1hLX)&il2af$6)<4jH&arx+Nz!xCF$#`}tIKqh{zds}oIcF*;F9&o+vB`}No!0^!)1{mMn(AP zR`VPdsfSG@ih;p4EK-kAQJ>fAFQMzVr05Ig^hT%R5yKoYT#WgZy~Q?NjA4Ho5_ECg z5Orhq$c=`9y;wZ194%hkU^ERv-dv;6Kpn^S;zk@zNlc5dE#D(~LY_>0@UuVWFRTY) zgM9#Rj;2pF+3|4r7(TDY=?7L|vpp)4xWW)d1v9v2WK1;olPY+U*RFV0Ws2bvOy9#Z zGKsDs3LN4h<&-@3jGT}Ix5P#lH004Nh_={?%r^Fv%;za#a%j4F@eE%{36r_#dNvXc^41u|RwdtYewF1y%N$zomIqv1-0H9Dd(d|Kz@7w{DI8 zp(KI8If_6kQ0#-`fP@2uEokI6Y0x~!m{Ka>lyeDI!68zC;zLk!90c9J3!iC?#ioC^ zXRyYnE?EJE2iU?zc!gvBm3d>Akma8hy6Dd6NBl)4bZ;2Vp;2hPojOsp&NecL&qPJd zS61bgE0isNbDTB}!#8*ekKBe^!Xtiw=D}#h=(jW8v#dCVD9JIT{iHsQ8Lbi1B5;=5 z{;dYfc`Dk6$3@3$A1n6JVM7wLpH_K}hQA;d+Nx&ne=lOFMxF%PVlz;f?bHu>I-@u^ z$tOU_F$)`gm>JqoSovAv>@b55zlZf@dJ8d|{F6 zw#tqXF7q{8J8cs2r)-cOG0rjyONLn=z`r&&J0unDkE38FscdZ~sYY+qN5!%pbLSFI zXKh@(E})jK+ZWEwp1hyy>xM+NG8y&`2h6*HMtG87`dS>&8$p6p6E~~|0$O5fl=5|r z#ZA?;R<<{GFzKT)qMV%^T;ck_Bj67JU=!F0+g*uHh~g+5i^4bth2c0T4T)hl?DxJf zPQf*BiV0B+0#G5>f|47@bW-KYdY_#2rn#hCkwMG@+l*d}!8}180E!wEFXOs42Dd;I ze54HoIJV=nZQ2I%N3;ze#9jD+(r)T$?>tf3N&*cO9`Nh`!JSnaY0&pWk^^OKk%7m}|oQ834ypX0D4w;^-}2w-E_ z67}eSdUU|`NQSu|y5KtKf_i2uI3C*q%W{7!4;LnJJPo_Dd*Tb|lI{-tVDqI-kp&Yp z;LYud=g0^gveXet$N^D@5+QRpkLTWO4zMFiRoBtB&0f97*6^A`xaJi+17@L}Cqxou595>W5o z5$A(igtXcdB{t>WP31v_=1Eaodq$|Gr$fl%k|?CiX>kQ$)*ThW0A(nuN7P)X(Yt9K zQ}k>DjxABO5koj8V$kvNE{+c=MS^Op07sH4nTfo4JqO=2H%#mR6w zDDrhk@#ea`=V?D9YtY!dT_#`Tj5A<(4p*?okTs!-)WIJtb?2RncF5>(TmydVNm|li z{Y_Sv_&}~D5tyaV*AX1}SNi&B_)|1vzCNr2(9pu98LSeNLNl-kg)RIpWBVW@GlRw0 zO%D}X(8iN9gE|!HLXjlah9sd#62)<8l#Eo}g|SwWF(k)rksgx6SWq~@6ss>EDlgxi z!vML>V;})DTKWf=EPe6EV+q-L&z#}z(q_lP-!d{`PmA(8Hf)u#Ur-N9oQck+GB!zE zK{_;%rgIF<#wKYxtkHB7AJ>}B-G|Kx=y=s!A}RfDf}WYrjt@j+v}Of0 zf#!LyY(mYX>G&c;cSvkpv|YzdsEpK5YiFX}qAo=o2PtwK7RtF;Cb2rQD++2-PgYGm z@Q1|$f#ag|aJVSn zU11UI16tt~)sgvoNORS}hnsq@%BDt}(IKLYs&0H2J%g;;)}e*0YL+Gv(JkLI*d@9( z18zqIm%2>OmqSz_H~T|hxJ9j34iKmD)e>5a{nu58mXQKZ-qW!2{mq{pK-}fi7K}2s zK8(v)B}`dZhk;(%YP+856aHbOam{pJxH9+mERQuypp95oSHl8Q?=m+jC$e@Ztl?J? zyL37V&DfQdf$$ki&OX(vvcH8(Ei15PFx-JO^6HX;#hqMmY0 zoHm=$HMf~|ySd=?HZPFd&TNdm4mjJwSa=Equ<<(YCoEN}h z8pgyCi3T3cHsD2A&Eun~3zd1VBtlJ!!d3IrM3()4o@g#Y&;hk*jbNZihq?S`8za( zrpVs%ijazzWvAkGEIgWKyucG3yf$3|9?R$fkG-monXjn7v#;a_TcpQ?-Fc2?9oN0$ zYp>!S7HHhrinPcZgZgnCB+gB;UKZqFbRX*P;-Ud~Iuz@}%K^TOz7@wRGy7TsdQvrX z)|%NPI_D4FVcc|pJ!5U8aH=CH9B9QCeM8UD;n=iG9ZL=$*Zdds@l?E&29t6l8|$fiR6c-gbSXfm9Oj^z7zM(@C|p?N!<0c;?%yh; zy6VUc5g^eKp;|zi+mExs08SQoe57MvG#LyD2XUj}MGxB4zi2a4wH-NUS{$*9XEn@n zRtN*&0-Of7XffvNl3J#1B*oYTF`d@aYL2Jh$TnFz$NAc#JjPv-XyvJ?%7AKRd14wC zk9oS<99uiCyLs?O{`7i1KgS_QR7aO;i6}tBG34jHqRg%UN^Z2&!4bCLi2-%=L2z(O z4h+%hcc8Db-vQT?`Y}RY2AchqNpWp#*3G{8sd)f^Njys~Y*;1d`(^{2segG5++cWJ zj!(Ac$i2f_>@n&9PY@<$#SxM+!)isj61B5|SB=*Op~;Obs*(@UXD9C@zi7=P`odMx zj3N#F4m3oYi9$pk?5wlV|ET2l`|FTIW@0X+Yhm98U(K4bPKS*-_v#fQyhbESIQ!6O z(9gXse?R*29~2@uNj5GvF~#6e|NF^C(p%f>s=+L>zmL!K@pe z@X>Z%vs4Im{i=gv;Uy%aET6!h%Q~@3{wx8s#MWvoRk8=#QKCQCjtydn5odss(syjto+04>20T!y zGGpX$_(1mIxiSUDJkSB%MC{W?b@|Z=lI%U zY?*!zw##|gF2|vHWQFaLX%Qi@fNZ;!^*d>FJ{$8S!}XKtu{*WRqcBSCUoUt2j2=-x5*bC>fJ|WIE z5bVp&d{%!Nz7;Ud?Gi5P13xp86(G|tRT(K)W&wGr9zwk#7vECR@tjIR^ z5KG|9?KN<+HDQDeMlz#pc_K~E(~pK<T7ic)2U_jyo;eXc^we}fE{S#N2#^;s?6XU)M;<~#-1sYCSNt6O8a={u;6 z;6NVTNUoDbmXkHqW-iDnzza)lxCHAr5r>PdTb+V3;2E11*yy}vmXd9dOKEs~arg%& z+M08z!88nkFX3~@pBsV6-J;Z^C$QFSg`C9gg`9+Qz&g&!qXLy~*+EmSh&#GoOu2L| zeBa|4x^Bf-;spLbEK2Uf+ZyLc(WX{o5WMVzfKN_Fki!u6wOL^IZjq(y3jA&RqBH05 zpAI?EXYeF@pO9tEjB1<8XaP~g)kNgLlc>+xXl0Z-X+J|$*)M{TPz|CES+%42O40&%mpG#9-{9 zPi0z1tB9FU>?6mI#8YOn9366-he?=q28MJgh6WHS5E2ETGN$PalS1upoxY9m!HkW4 zF%ra5CYv9}4s2|wwZFKu)`uhdJC|&=03Rv?Kan!%`R&t{l|gBlK^9p4w2tmeiakmqGdlOW11|1>OG7XdBt|1pm^&`!Nh2{) z80r;Wq-}te`lIeGsS-GlJFh+dyFj7pQZmNq)6O?f2fUZREBfl3~VDI z?2M-2Yp4v2&g(2HIYs#{!PZvELa!G{`{E}P?zF3BZ zS!f=kwt8D(fGlk#0Z(U1RCJz&JIiV-k(K%4kiso8V=XZq^@k|o)q(I}XJ3XKRT%8)yupxHN7uR1zM%g6>cAL%(yl?v1MWmG4D^gu}P>)5A- z)IR4yi9Euvktesx@$oK2fIsmOz}yS;uloSg<#;&TjVw|Pjhbj=la)cKlpSP=COgg} zGdXUU>6c!O-Eu?h6?b7^7Q6L0Lb;3;r8nDaM8Pc|3OB2yYxShC>`6(4TpQbzJR13Z zT|;$mz!I$oLpDMPgVuJL`=De8VZ1fZ4OOz~3Yg8sE-c3ENY@7$xOVl0`?lP{;Mf-I z^hQ`_;a3DAsT|+Z+)rK88}ITFwf*x#+w&;J({8(YgU&@&t!*Dr`w8c$i}7)Z7*8YeU zI>s%V#>8PVQ3hPV3LDsH?j^JW141xZuw1y=`fW0Z2*wXg@R_stJZHlPdV=0Nhq#d^ z@}i#yg_S7ZhR5&EYD@~WT&JK8PVa6cuO4YVW-yqJ8MDeH=~*#ie$ad5e0G+=Y~!ic zF5nmadKLk#ymzLeu3XX7DQ_JkMo(FPbIIIRXCg;%1zGMBXfQ&;)1&YL&hRhiMttE= z9GRu!mu9)PipDIqyD^GTF}MUB2jHMI$yN&_Ta0OksLwW|1$Rb|64(VCl`mFs%q)4~ z-5F^Glh6NS9UVo_LGN{x6cKHu>1CG)2tn3B1(4FtW%R>h+qWQe+GjDVu#`y?_4>o5awo<}&C?I(LXauk)zkD__v{1!=su!?~85G-9Q z0K#X9+n#E}P|MtHarj5R_fUR`$;bXojpT0g)GQ(ic5paLHABcqU zJL-t)^q;y_hlLG@63tN^B4wX<^XRhBOrp72nWZN_J%O5u^6a0|bzuS4TPMjl?&&|C ziJN1K28r|qs>=$hqvI$q|B*-VFX>M?*rM1^q@Hp) z=2XVT6ytjoQ;-Y-gL;1obyoTdIXF}TW$DQ=lxABsQ8ppmt^>#T+$ZAG4Ay1T2ZY6q zJv<9-=s1oIe#CXl8V19w_JsS!S@unECa*=Us4cZSvs#9|GUVY%*bPSRVZYU>njLDc z^vwDdmj3d8Qzt7Dh;L@xEFCwNBj1Kg!{M{UGG7tstLF0i)@ZBaDHv2&JNr|6!6NK= zppnH@6k5p#lB9BvIIEnu0~#73j80t~=PB)(de*PbF+i>_;98!anWtv}3ZQMqw)QGH zvK%$}wRApJds(*H#d-@B)~nABi`ra3UCn?;+>55*O7M+;qbEQSKL-ra6Z-)@_DA3p zCEjxlh9vO_fR62zqRU0|{BOmMDgrILUC~4GjG$c{h0$ml630+Qk!6>DZeYk2CBg_n zgz*|E6Z|xq24mok+KW_n)OK_pRUH%AFhMdiE;^xKpURV>Pk-5$;cja`4*W3`_YW=j z7IHu86$i%Si`0r_DBOa>QYf zC%Qn^PMHZsSBvJECV=DZ*!!GcXX()MsSr$%@dMV_bv zdAVn!I^=`}db(=}3PjBvMwrX8?vTYxC0mSQE#TqbSa?y$l78z-ld30Gb(&G&E32_2I= zbvitIJj5}HTk%mv-I7Zq3+fzcs4E`~YSq3?Ceqh1RLJ-NR$~Ro2Oq)~_%qxn$KnSW zi}&}cIdX7gM+_Pb|0sw0+)J+X6DkmrQ|bKn9j*a{^oX|Wnn1|Y{SXRc)_cShpFx3X z{fqyL_BSG<#sC!|o`&!CbgHWcU z3=X9BET`qQL+MwVNBFly0q$CA1zZpt;DlgCUz0qPGFHH`<+Fu@+V=dDu>m-aUu}u# zP%(Q1^OVde{OKb&mQA8P=Z0U`q-Tp33mSmD?E^8V~ zcNLV>hGxi>$dsOxjLj3x>zHD}OkFAV4n*4rc1b7vFUIecwE>T1W(nv3ufsmE3~<@K z5X!q~$&p}y6dH;S&>KhvmSf9oqZ78txj2r#0QDp(Tr0m{>wriewVA%=5|aY+f*jni z5BIewcx}5E&{j_fupdvNI#i~;C~ZV^sp!-DupX9e2`b|E5_Ncnzhn^5vm@~q{{tBH zug*e?G@sX{PPg)Re-3mYjxNYx)E>f@qZLM!V}3Hj9Qi8AXeG1HBZ)by!csk}@`)f6 zj!-;aU<4$=Gzf*yPuUbPA;$%`E}MPD8bN;MOITaV6rhi;z`uqI85>ofbWvDa)7t^Z z^g=Ltqsz727nh=^hz4;hILEDGrY;)a!l=3~?L&(+7}o+JI2Mg#UAWvLQM3;e;2zh- zT9=8UefFb$>PgY5$6BdhA<=`H zUq6^T;-o|+yJ?AY*f#cp1GcM-^859}e(U-nbnXEqH{@Oe78=UQF^dHjlFbYE#wm8s z&0}6_c(1$^zP9=k5T;1{21AMYRpSeMxdW3kD9jR5#SCaME%OYj)U0*b4IK>=(Hu`| z&`gk0{}h8dByCA_dF@tShKgkUTjOR-O|L(oj^+!7JUc3Pz{#foKhQ z4v!U(3KF{TD9;%{;s{WpE@s%L$*_;uVV`Z-#~2yaVw>~`uk|p;KG;TdAORG1xqke7 zTqDIR73gL6sOXr{bKC{7F4o%k5$2@si)``sQJGyDqZ;J7uz5+x`PoDpdjxLs8vBau zE9rg;WqC|0r^=FqE{2gJCBjDcu52{@D)Yu*=g%n+WTD*pcdW{WJI2p3S^la2&q%)} zOzUCTbEd}ISj%3%y-hmC`1FlOR$^&RrA?Q`#^#QZ!W-5m3g56w zNzmfIOEbs+g^K?lBkt=NWJ#t!jEhF7zqM+J^&LO2NTr8 zz&ueH;5wd_j-+i+03-ngxbCDVZb5(>7hNT~Li7+(_7msXf2b(uk{9oC$3XJF3Netcg}--Koj<1eOTpbQP_v&wbi%|cCc7~QP-6Ib7wMY3OBg$!EKA| zZTo!NrZ39jMu!s}Ln2_PVwHHIf&{(I7@vp3<~DtgXmOff?n}?i0Df2uF@cl`FePnm z7Yl$N{so%=D*c9NNur1vF_AiPF5(*%MSL8O_z>F)QI125h!Zh#JYwW{#K?6KBlU=o zdc??it3^2vYoe`)mUgWZ#cDT*V#OQN_Ti%JKT?$Aj~3>Vo zb^XIsMhny>{gSBA!1>y6EumXLXjE zvB&;ANV3IHS>8kNu}9Rr4j8rfIzYJ+e=4dRbEnO1mx7u$reZmiNr-L(876tpQ7U(+ zjApt;(O!=z67_Dyptg}b+GIbP!CrwIu0amP`EzNC>!2+(gQmC+n&Lb(#d&B7&ErQ$ ziK4L%Q8Y&V5o+Uv%Iw>uGMYO=<>^$nT9o70h;lrB!}ZZ7*IzHn@f$=r4u9DsdNh8r z)cvF~;!{~Lk~}HrbvY51VDPmg@T4Pnm}5o`bxib=PK7@FWn8FF{5pm^i;JLE(5kv9 ztpSAqaZqPKWu#8aX*C+bzwjL>_S>f)=k<%i)jU!5t=0Kxiugoe2ANoRzFHIw4T-V> z76c-D29?kd`_aTAQ8Y0rI<5U^gYuN<0#T%lgt?A?D{?OTKUkgHv0JWr!2UeKk_J4= zX7BB2EZ(m(w?DW?Mc;^>i!`<}8XjV1)K(Mw3M79U0oILvpkNvl{a{TUqR0p@z#A&F zez{AR=0mf=4IoV=wfYyag!cjS)wI({7U?7-J6274wrg#q-Pj_wiEOY* zDE3G_ZHGVF%{KTAZy*AZt4vHdkBADN_q2K+y-8l{}#^;K87It0jO-u)w20PO;aad6! zlB>OF0RFLd_=m=rpfdXoku0!E_#%&jqG66JF`nxp6EuiS*pFtxXk>$okPr2s5%r)A z*ISh+sKY&TW?gZvc_@5dk;bI&GiCQHpW}%Zu!vI@8D6gn)5)GKzv)TX;9sqt*4=|z z0XN|AGSU9D4OUZ+6|52^ufY=Fj`Jo&&3>(ZwYI_MLt7H(xh$cy3?JOLT)+`C+XN`* z9jsZY*`}+hvvIU1WlMXCt~pn5gp{i%eAKh&9ZH?`W!&!6EA{t@`Fq5$cw_-jouX{x z>ufi_S4`Wg%NUvZq4GIh0VhmhH#*@!N>&&o0vbsk+H~0g(bxx4nL6NvTVZU79XP>= z@{953O3FTKA~&2r)#4EtePlAJ_i;;!31z1=7~_% zfd^OxDuO5KJX&E97OhNu;3j-_s2<$lp76Uw6n^2Aed8_OQUT4vRovoHu1z>#=Vf+b zc8`+Hk8Hq-V@&mCKrEz0I|fz0KIt~YWFa0!Wf9yiykyY+Q- z?Z+9dFU9})dO_aO6aE>y$WwYVc3DoB*W%L3*iRJ)lsz}W1F=}Fm0YBZ?8q6ta6Ebe zgy0-~pcmH%+vtP+`HQWU@!K*cA16BlUAFR+&p9)dei(9pn?{9hMjNM?Dy1@_)4TlwyP(UDxAWG0kYs8~e20 z{;8MF?&8%N~g@h=6cO&&b*$8_J}+{6B9xsZypY>S3ATh+|r()`}+DOI4var zA1(p3ibV1_Z|T`?Cv$OLBC>h!rZ}+eT)GFM)y!q?6*y-+Ol&Vo5m#|+A*~G<R|6kJqt{*Rh?ywo)$Kiq2Aw=*Nn3 z=`Z>vhvoiwD=~`k4m=6(#;QPEyq?n2il7?EgsFiFwiB(+$2`tJpEyj13a_d zC?3JPH#`p`+UQ@xDvee4g;lkkd=1Q22-(~549~HWDYYg_QWS}?4M*TT{X%j`Fu*y( z=iv@o;u+gW7F;7oqp4P*?qXanzv5C1nMmUH^@v&JQ<0wrY0a6n!iInq)jFXk3Q`%nDl1r3+ zpLA^Rnkfg}P^={k)i=+S@9KHHVF0M!1}s|MLz8rWeW`m}GK6l?J(M_wuJ9ssffr4Q zV$D!T3alDSM)y#3k2LWrw$VM7UFx3w=$`ucU0hLgPyI8{eK~C%z44jp-ri7bxDB`X zFZm_7=TQzE{Qp?z)?KnxaQ`|7CJh95dzU-?fpk6?*3^D`Mk9eX?qsu`Hui?4lQ*Da zxa~;WNMlmlc))7W(*Lm$qyq)f@DOwlMd#F`bFPQKQ;&z>-*^YtC66inex>fm{t4A{ z{wh(-I>)kY}t_= zYoMiLq9DBY4qJ1aCN$?+IF{?$u-g8xoOS-_>#+m)bkbLxZ^WzLnZ4SU5wSML@*%ty zZ*KKsbVeQM%`xZ>xetiC?$E8HIg+3rDNz4RJel)y1V6YwD@#_Mi7O}5R5Q6Pitbez zb^$k(jX0pBW__Y`IiaxrAMMtqE0^UK!$9TqD9PL`U)#T9n}Kkg!T$jaB__`4+2`x{ zN*Uj?ozcjveKRHY2gE!%49oXw5&+iTCW`RdMZqZq#lm1(!GIMY1+csO6S^>Vj=}vo2BvDF4)j=4GtkEbJ}xfwaUsj-JcTz( zBF}3ONaT6e$5s~DKoNDA1E|5WLk3zgleU`HDZ~OB`sI07ty_&>q8ySK(X;i5^4c}@ zg*c)vMd=A+{80QKivAE2;vn+o=cFsEcq%iHSsnR_0CY~gXcHxKBqneVcS14@cTiL| zmqX6ixx`thspY`^BjjQ-V#PnR;MTjuUwq8XUQLA@eK|UN0Zsmw`p<)5qILrQvNFok zp3yb?g(pmcsDa;L)9{3RsmFJyL%#5ipLB`BKk{Xy8Va7WA2S;k#nd=1uR*U&E>*JL zl-OiPDLXj!Gyq0mPLFNlA1D}Gr}IJ}=jQG!C<-R%=)fS1(WpLAz`tK~nP^OUR4zL^ zTxVQ$`s4G#N z3IqI))fsMPdceu%)|n4g;Aptyfps<yGo#-JmG=f$qp>I3Cj-6(v4VPkiFI{5*KY|5Cb{^UunQV#*=a zWx`||1h;kd1VjAKQ%X7v_#cg^>*mq$MA4ylK%y_IZZPc!L})Bbjf*lM-W-4IdaJa5 zIt@0o`d;g{zlYNM7^W?@_NQBa9~IuqaX@QTziB)+^)33er1D?Y*kU}EF$T2h=@fk&=4ktIiV3Wfd|nTItOGE zme1 zW3xY|s_zT@oQf*-(p(~D?SV=LtR;$XtgRGt`Q^uD*x93QjrBa4n9-rp z_G7$mk*`IdWHf4~M;_$crXO-e?k-;<59~mZFY^Bnl5aD-Bj;XSe69%e|AKtI=kBoj zZ9Ixmf(0Cxz`v*uKjgT{-kunF%IoHAa0+rmM3B+~r zGWsDYLeGdOeF4X8qTs+TOa2@|P`ydGDeo^)qfGecdW)=wNTp)Y7f zv}O2ak4Oo7&EL$(>r^?CFqEH~MQ)u%Iz#xt+vtK2Ab8A>P~zP@K~;%Y!(ohAy-1_V zT-Dow`G89ZsIFgZkGAov&a{nRaa==t+K)Erc|d_=T8BRovw>l>p5K*S=~q<3!@(m; z*%gT~JNE_6{hv-m!7j?aNwYUqB1aqy_Bh=fIuO0}TJoC`%h2IH7JK>=aaZ-RJnO@g zU*ueq{K$FG2YLYC*apJck71)P^b&JPZ38vv1ByPV{}0tiCAmL9?ndb@t@*5**1t6xktLM?b zI8O&G>{LCcHRx0|)*N@x*$?xqx1pIo!Df;s=G4@5M=dntXoV(n?5WI@R8(^C=+x8| zLjz4J(e29U1W1-6R33>8jhdoR69P5QNLQukVaR)IE%x5{_CuFqLCs?TQw{b!xqs0D z=^#BY9Xn@xP!wr8)(>kNY5J&M#`=ozDp-GTX{OFXelovFyt-{EO?n4FA~eQ&(Gugy zejVq5Meil}Sb*E9+bxuk>Or3|@zys=x}<-lef%Nm&c;{bBHG92i(?;bamrx{$HdKZfAbU|H=ynO4XIM5xonZtdbakAg-!ICMRzKCSn_Fdw>KzK0|rFd z#_@-)aGsi}%#$w)pjhH&jZ9Qc$2Qv=&o@-$l}s?sL<7&HKu{7ae^V|tz&vKH7swW4m;5jIcx7E>3)@97Nza5Q=UrKE*ci8~r0{ zjz_#S5&&jBcn$fkjyxO3|ebD0vsf_hp1jZ^`JTVcB@5(ch*>2`8(KTd5 z#7FCx*RV1cW|p*9-idX2T%psC*ZO`&_TqH1YV|@}SDt0q6Q$7sA2K@|;(K z$GP-t?%;C9MbII7<~A|)7o95_0ZD`amXQEU=pQ}77Tcf!cHlZj-{=_hpvj!;>5uE2 zd-K2>_jVo6t<~mQLs`?Z`D9r`{`W-GujlCau4$ewuboG>uDJsg9Q9k*2!o#e@D*6L z3d1}pt_oKZ(JX8LglLpi#IR2p(;pH=b8O?ac(1dLx8jv!qM%XE_$ujJ4R6#4RAVVk z*|ovFXb%>E+PJ2_WUYOdSs}-u9(PIZ=Puc%vb!YLC>H@_x64UKv*7a(%h3k? zAS91g@TC=^_!68Tc|axS+CH|Pa+2&HDPHEKNqKmZSFG^VvS}B|qve=zh$3a~-MdS5 zqAqbPU_f=W$)yb#x^r+2&Vj?=6ts~#9FsP$5M9}_&OFOLm+bjoTYc6Ha$ZL&%{WA~ z>xL%w#uP>qQf6Xd^>WnL2#H zIW>*A1}Y-}l{E1HDlxo46*K@wb%*R6wmfwUk%WKof*fNFD_$0Mi4=iCtuoE#w+eDR7)nV=U zD=e}PHmPR@2`d{>8ToU*V+}A%J(vSdWX!2dCMEgDe2`ZS+fWn1E*m@}DyY*V0a1dc zl#8TFgXfkQJjY-PLue_ zN~(yGx5w&D$`}LEj!>h^U;y0OZJdxF!72R&t=awrMPl%-_0Bew>3@O1?AJruY{tkXdA0*F)yUY%?P^ zZf&15uyIa%hvSp9vBWZcZ!E|2zL?hL!Fa@%M_MbbEPI&VC>V7HanamBQ+_kzRPEQ` z18cP}Z6N>V4~|6%yPWl2#rfe&c^t|IZg7=yoQdtqR~fUs^B}TB%TPpRd}DuL95sT2 z5^>Qg%%f@QBJ-l8gD_4Vu>fnwE9QEB)DVo_$w zYR_xZO|`FYkEggyTn*e&l$Ns1{5n8Sd?x$h$rM@{!C!QN>VP8l0Yx|(Ff=Zj-`80A zyleU*XZUB7Ls;POZx?}>1Pv&*fepnk-7pz65Z{{0q=tDavL*RnazVn(PakMnzZ;?WXxzvOd8R9<0O^V;^L-$oz!jh4s5o z7pRB5DV}IjK&L*fcVDLWeg;{X=GzB@o_qx?NmHo7h+v9%O?rX>p+#uVE;A$yitTxg zaiD~R(VhJ*2fWkBuZB4Lbrv?jnS&Y*auGPiJrIWlQ|8;Ew-5vYvW;lv`Wv8lOYJhXLPu|;1SgUFW6Wc?NJ$f@<2qryHJ<*v+XWK8Vsa3 zFJ>Y+K$WV_KtcO$iIcr!w^N+u=UPy;;2`A$!s)*73f=!Mc+?Qqd|`&ZiJrZSqIgp@7dq`9NdCTj>rTZ*>Lq_ct^K0hne$MuTOIix>Lo3GI$&+n5e$l1SjVp&qz%H^o{gyGfgfte z+5cN~(4ObohT?37Wmfb>2}MI{85l%(!KhsV;Hb-anf4JwOJBpNsfT;60rwn_QJc;j zA?K3+Xp;YumNh|KftO;_5@g0$D%P+>Wh{VJqul|OOWn|dMeG-)1txEEQFo^jIXxmc zHMwK#CPR}guEd|~;vjOD>6h=EXDhyQJ}7%KEb-2f%}+4Uga7bP@pX@YQS%dhL3#f{ zvAGTKriYMvLpDAp>3EDmg7_0U#tM6j^(S!6drKWESfco^%GC`fM6|C%b6sl7oz@om zi`Y0I@9#9B_s~gvCPR#E$(n9%T*VE(q!&KJ(5yLIs(so!q0Rdz)k&`6}PvZ49+-G~M8OT>9s(lX%^Zpl=9}21R|g zH?m>ZXI?+Lt%>&LQ0q=^fjkXu>srOwmwu0SCEKwKIZ?rY>Y-yMC%ttuM zEP2)39=S0u#cA-ZHpFXjBkwfC9z3>U-(cX~Z&|@6cjV9|*&~T`ttkJlu#)j+7UxHM za~gT*st~?GWi2V=4?%MZeIqiY8w} zMG%yXBz_5kiOuS@4U~F|dtlUdA8f~X=U$H|{*@ci?v#tJay-q01X&Cqb7zt9V)kzO zWQja?u}4=@+llpRAdPfSwzSP0xg%!W+G(27Ws_$BpEj>+m$}z1j zxWI0^rDInV3c^-$Aizp&rkJtG$8~Y{-zcvr`%Ve%T!s$(ITiB`E=CW=E~>J&yWy58 z?LOzYi|L^*riXlN$S|%)97~@3S!-Cp!CD&@dhpdtvtRmRkHWg+iObmV#O@lu%iD+t zrHs3DQTOET!aB@#t%uMRekF4w%Go{CSoHWzGwgn^c(H*Z`Sim_PlK%{K0nWQv`}n71o?U?Y~|lEfFk zl{ry)E8cHOgk#YQ)&~nU*I)$)_HUy=qkYI2n|xeMn~ic^;aI~)aX92z zlRQ~N!o)am9={`r)pSOjx2}0B&XZP{JfF}_tXK26^cJx<-Y40o;g#cn?!q0@ovQZP z?1eT;f%LJO(mqX^z$%L5gUyVUs{uJC$F;|fmfV#b3>y6&4L0(xJX)M11K8f0`vErK zs|9a^nxUvkixV-%kxMDcnP+(P^*ft{dp%ar3M7r?n)yVF^)W!W1k$*pr&lRqs2iqB zpU8PIT+Ns8qX$7nR2Eq7e`V^uvc@0!_?$dj4xLj2>u@L$S5h zz4`GJ?hpyNUCaZtE*v|}Iga^F^e~U06`SvgercSwA{JL83^00wMUV_d%a1nMh~a%< zGyV;}XG!5{jHt!CH}F!@Fb}{C4M`lhES~fFX>MwHFG0^TFeSX{ex{pC-3nYsW)0a3 zvUQklgxaJT=!DiZbW(Z;&w_f4YV{79S!%?Z>wZGQ+)V-!V@b-B`p7`+O-kwR73q7* zhh4>C9nsdb%7$O?E!e>jezqK7%<-zp8fi5@r6lrMYb z6vd3jvP$!ir;?{+39&aO?pz z>@il&P#E#oa_H!*NngYZ^mV{^;X#nDGx~y(+q8nWMPlzKK#7>vHOB@y7g{Q91mZ5h7@Ob1Sxmt+#kvs>tg0_+Xa;tT5XF zT?z>^w1(j^*ubJge&$E{Gk_e#kPD91nJC;)Uw%K?TMu!~}>1G=w_DN&^`)#lOq3JTw?rJPaZl{ou5b7iOdu zOU-`j2A!}>x9!m7fewU+A#)pye59dCgOJiH4c?mrZ-x~TB4*t!oqk+`NbrKSc9>ki z7d0-n+$@Hp$czhnPGdvWt_vIW8K%wQgm7{=H9RN0Ae2`>#V3m1k< z!WH3F;ks~RxFx(c+|}{LnXo-v6!U^p!j?!U!g!>(cq7(IIp`jxVXTZ7vh5y#4Y7@v zn=!k$+cqQOW;?dcI569c19Lp1-fS~=KQ6jTbV77GZLdk&ho?|r0&g6mOV>sd%UX`92wuOoXfct61GdPaE6wQ5Pty*=f>0b`>5$E-)4c#NNt=2_BZ!K!^qXzgOJmfmLF5&r z$EnOT11QIGmAdG-w%bG}L|ObdDLSPe*Twh&VvL{3kwZiYL#su(K2E?C##+&J`VFYO zUKD2_Q#?$R__$GYfhf)~EQ)gg=tqbWqK_0E5ye?>l$y$$MOTR8AS*?25ZZmRDEm(l zrTxzqrTwRha?R63x#sDj@NkAGJUmB~HsMgT35SA*7l?9Q9BPB;i$u@TZ=K3G7mh{S z&laWa=ZGSUb48KGd7?*)zC`q;`c0{f)8TN)`(>ibMR7d%d8H`)TqsKWFA}Bw+eNpD zUMzZvezg5kQQCf)DEGWvlzUzwO51VL7mHpc`YQd-Qu%68oE2WL6@}O9MBxGFg$JA$ zS=}IttZo#2spw6juh9?r-Xco-apdDgZxf~cw~NyLJ4BJ&U5b+XT@s{d!JoxXE6?@+ zfA4-ix4@Lj{(npv?SHRLApQG~ut%ZElNh`vmG|GE%1ryPZ-4tAJ;?rpoll(KLf+Ng zrZ`U;KcHy5IDVRZwLXY=xPa*d9dWvF@vLxe*cM)?D7+(F6K+rpzCFAyydk_fye+&l zyeGUbd?$Q{k}@00tBv{B`aD$|Z5R6asw+HsW1N2T&+l{c%*HIGyIIF)G=5O$)< zwCN<3PfF!eR6a#zu6e4;r>cyL0a>&YsG^-f727}+*L$HT^=FB4FJNk`&ZYflt9*7U z15M|tO#5G|@=I0bUKgl*fy%TWSbBLX14$RE%r&>Gyj^AP2Mk@RvP012sSNyFsWR6D zeqNs5YzD!)%7ve?#TpP?`I^Mdi1sO#9!e@>^5+w^aTumAU3SRDOrbwEtZy z)82QB($3#a+rKBu^?qNJ`uB-)ulI|-U+2>P52*ZsRQ|BaA6A+6e^ljyZ z&f5I6JuJ%g7Nz=8QSP-^RBf*ad2qT*pH9xf^#q2iIE;-9Ga zr=sG=RQ$N8_z4w1DJp(S#ZQZh)ZfTmlr&9{E4n#Fy$6@N0;Vc7;@YT4{jXe+p3}}1 z>GAnok=}cgE7Hr$az%O6&s6+%~WhIDvqP# zxT4||Do!aXPNm}1qT&Tqyr8IfAr&tyD$b$eoTB0tRJ@|7xPpo+ii%fL@oFj<7i5Xd zOl@^-aZGl4hUCn0s5VjhWde+tg9{*HzCTa2Q~L%*0SJx<7@z<{T@+v#5?vw+D6kJu zfUXqf7(ijED4?)PKlT9#9ioTpz9coPR9+_vFsxDeT-6_z%7DY+sw0_UA0V+_6p#QQ z&Q%$J;F#k@Ip&14ePY^vmgq66KUs8(ew_1cQO-F{lygo`+h?Th=ZJ1m{qsbhuOH`} zDatu766Kt;M2{2Qs`kEE<*h2;uJU;*zgXq-MYrj9fqpO3k88YA^mfq;Mb8txNc3f* z7mHq^-=+FprXR=d5ark_MLG5=(aS`y7QIHlYxTQMKaRaYlw)rc<=C4I!@Qr#V?e7ET9RCiC>{xwmq`Rk&b{|3a{RrbTkvH$^%BKZ$bw+eA5^gog9qF3S18Ez0@tOxy2D+rJ~q`M)d5`R@_s{NEGh{QE>X z|GlD||31-giGEl-eMIF?>36?=U(jzxzpv`|HU0ivzi;dJes~{xAbd>pKWm%v2dNkR zgG4_r`Y~<)7g6s0hoT(!Nl}jbj41m*o3=lfw*N?!DBOD@ zWB->Z$Nq~b$No%|`hQis$3!31_7kE{iaw-x3p*P%Kc zTkEo8Yu&2T^=iHB6YUojR@Dad8%)Q}Psc7$9mg(YpXi9_sD7(eUM{*=bfqZAj6ZDK z6WSiv_GGG`PTOllIsVW@*QWY)qMU!2DA(O6%5jH_a-Ad6_L2X$y{mg};=1DZ$d*ll zlNu5d2nm&eP@uM~T}k+hFB>7iaj?OFArQz~T3Z5HQlyogxM>2@_93rr+D@m_PCwFi zrqky>w2ysiANtgX{t11|bo$VTPSW4+?pav|!=w+L$xJKF?(dwlNB5q+y7%tA_nh5T zJ_Drw2$1@tKL?5>3@B? zA&>uGpKtE?6nBxtxbj4LQ~9Wzt4@*5lW7zv-t)1=p3*P$5!^rr3pei#Zc6{peMb-C zSXWA8;fnDiH_a`Jv+5^WFxTx6Y@r{QHFVqT_GUq&+q0KBbbFTXQ662M< zyajvSIdU zbI9na$r}QlMQjMxI5uDFnEyTUp7q1j==2rMQ83pr&C>DxhI{FeIa7*1Np;L-ZcuQe zL!h&Wjrq>2)OfXH7LlVM*CDt-!G#V%fr3If&$y5ESuUn>tisz4SZQ!Aw_{_@GotXp z9>}_(!^*;I`vuTkK&5YJ8|dwj^#OTXP(SErK%WQAYkNQF=YUTES=os*IJOIP59r;% zz1SXreg#NdIHzERCyi^qnE@t%yMU*04A*^29{`?*>>w})JOtbU{0eXocm%qv&_}WD z0gvmyO_Pm+$8r6)z6)Ic?VP0#GF=D7%@4QzOMpbuQa#&cW-&H&3m+Hn_1`|bg09~)yg za0SS7tOCb@H6R-%ZDhlw?M)zUX9GP6YysIw1vDG!1K_*BE5LOi&+BVI%D)bz{C$qA z;MDnVY}R?SmBZ)}8AG``{WpxfcoN@vEW8~x)bFGjz8Lv$I`to>84bf|Daym=_;>D^ z3hy<1cptt>Jk(_5Pk56#y+jXd^7h}&DTlT`oaQH1kNG|68~&EQBCOW6@1yLDMWHt? zys>PXMx*S+LKcHC_;JmW(gN@FAC%_Juzyp!%M8l2(%t5H`Ki(fe33sX-D7shKb6MK z)v^6b_Zc_#5lU0K`6!AawvZNd*gsG@2EW!{mF~hN{}ZLV@t(sqrQ>F&{8s56vtRzA z^fvQC42xkl{XSESCE@=H@U6oWKaB61{U&ja9;7vR#tNVqrIG|ygRd-U79pK@%cA&{AU9@cHb%5bTab^g(lHn~%X~+bwbFkzV+2pOU9#yY#__`>cFP`eg@v zxzEY-vP)ioPj|QMk(XpIe7mp6KKU{{yaVXT7<$_)`_bd^ffs!UeCKPp`Vr-~)82#5 zr$)R8zw;hEy=1R>8UE*ehzCoU0ka=bVFxh=It177VROVBMTFQO>QE9bkG04}J<6CY z{L~|;Ta1pGFvraa1P7gh-+IzaVQDu9|8*V}|2#%Y(^%P^!D8-3G>AEK33YxRe(kGh z7@P{+K?%obYFD*B6e%({6OF>LR_SN;LQ zlsHoRo%y94gg^Wc)`btlD}GeIYJMn#G6etlu%yH>zcAkx*ZfM-<|Ff6$w*d?!EZh) zV=^uia$HWxNjW8_Wm2Z(jO6634$aT3P zZ^%u#C2z`Yxg&3hCyP>$qWH2T%e}2?Ih9J~6dgrZF|C+U%qkvJ98nxq98;WBoKifa zcvdkVqLWh8d>zf#(R>}v*U@|(&DYU<9nII#d>zf#(R>}v*U|HHG=C@Gw_0wN7b||V z?iKvd2v;*1$;Z!mD=S|7O34qr_Lo8;^echa>(`s*O061i zTCKoqb=5;nH#L&)sryYN!5_M=GuBtG27aT7PPtsGZuj4Al~=urUoH60H2l>{ZMj_V zD%D!>G}V?HUL~lv$;DvXeBQwyl}eGY6o^!tNb8}L8xfg^7>$Urh&UDzBN35RA`_+K zMnBI+S!AP>(@{EZByl4hH%iAMP0d8g>BtPXO+>l7kv-`)5gp1zSvXNTR=||q$ka?* zIZ8Pb*^`Ov$wVpJ)8fyw?GtRLVvjz`)MBMru#pBSaZny{_x(9 KiGLnG75_ITQ-hiS literal 0 HcmV?d00001 diff --git a/examples/fonts/teenytinypixels.ttf b/examples/fonts/teenytinypixels.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ebc33a5629fd347803a88c5e05cfac5a7729ff7c GIT binary patch literal 14336 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 VpnnVAy&RjX!GQfJpQEe(`xisGiG=_F literal 0 HcmV?d00001 diff --git a/examples/paladin.ce b/examples/paladin.ce new file mode 100644 index 00000000..ae0bdacc --- /dev/null +++ b/examples/paladin.ce @@ -0,0 +1,303 @@ +log.console("paladin game starting") + +var time = use('time') +var random = use('random').random + +var core = use('core') +var sprite = use('sprite') +var text2d = use('text2d') +var particles2d = use('particles2d') +var compositor = use('compositor') +var film2d = use('film2d') +var tilemap2d = use('tilemap2d') +var clay = use('clay') + +var sprites = [] // Keep references for cleanup +var emitters = [] // Particle emitters +var bunnies = [] // Bouncing bunnies for Y-sort test + +// Cameras +var world_camera = { + pos: {x: 2.5, y: 2.5}, + width: 5, + height: 5, + anchor: {x: 0.5, y: 0.5} +} + +var hud_camera = { + pos: {x: 0, y: 0}, + width: 640, + height: 360, + anchor: {x: 0, y: 0} +} + +// Group effects definition - THIS IS THE KEY PART +var group_effects = { + 'bloom': { + effects: [{type: 'bloom', threshold: 0.1, intensity: 5, blur_passes: 1}] + }, + 'masked_fire': { + effects: [ + {type: 'bloom', threshold: 0.1, intensity: 5, blur_passes: 0}, + {type: 'mask', channel: 'alpha', mask_group: 'mask_text'} + ] + }, + 'corner_fire': { + effects: [{type: 'mask', channel: 'alpha', mask_group: 'corner_mask'}] + } +} + +// Compositor config - pure data +var compositor_config = { + clear: {r: 0, g: 0, b: 0, a: 1}, + planes: [ + { + name: 'world', + plane: 'world', + camera: world_camera, + resolution: {width: 500, height: 500}, + presentation: 'letterbox', + clear: {r: 0.1, g: 0.1, b: 0.9, a: 1} + }, + { + name: 'hud', + plane: 'hud', + camera: hud_camera, + resolution: {width: 640, height: 360}, + presentation: 'integer_scale', + clear: {r: 0, g: 0, b: 0, a: 0}, + layer_sort: { + '100': 'y' // Bunny layer uses Y-sort + } + }, + { + name: 'ui', + plane: 'ui', + camera: hud_camera, + resolution: {width: 640, height: 360}, + presentation: 'integer_scale', + clear: null + } + ], + group_effects +} + +function init_game() { + // Cleanup old sprites + var i = 0 + for (i = 0; i < length(sprites); i++) + sprites[i].destroy() + sprites = [] + emitters = [] + bunnies = [] + + // World sprites + + // Background Tilemap + var tiles = [] + var x = 0 + var y = 0 + for (x = 0; x < 5; x++) { + tiles[x] = [] + for (y = 0; y < 5; y++) { + tiles[x][y] = 'examples/tiles/terrain_dirt_cloud' + } + } + + sprites[] = tilemap2d({ + plane: 'world', + layer: 0, + tiles: tiles, + tile_width: 1, + tile_height: 1, + offset_x: 0, + offset_y: 0 + }) + + sprites[] = sprite({ + plane: 'world', + layer: 10, + image: 'examples/enemies/saw_a', + pos: {x: 1, y: 1}, + anchor_x: 0.5, + }) + + // HUD sprites + sprites[] = text2d({ + plane: 'hud', + groups: ['mask_text'], // Effect routing only + layer: 50, + text: 'PALADIN', + pos: {x: 640/2 - 270, y: 360/2}, + font: 'examples/fonts/dos', + size: 150 + }) + + var masked_fire = particles2d.create({ + plane: 'hud', + groups: ['masked_fire'], // Effect routing only + layer: 40, + image: 'examples/tiles/fireball', + width: 40, + height: 40 + }) + sprites[] = masked_fire + emitters[] = particles2d.emitters.create({ + pos: {x: 320, y: 180}, + spawn_area: {width: 500, height: 200}, + velocity: {x: 0, y: 50}, + velocity_var: {x: 30, y: 30}, + life: 2, + rate: 60, + scale: 3, + scale_var: 0.3, + color: {r: 1, g: 0.6, b: 0.2}, + handle: masked_fire + }) + + sprites[] = sprite({ + plane: 'hud', + groups: ['corner_mask'], // Effect routing only + layer: 60, + image: 'examples/tiles/fireball', + pos: {x: 600, y: 40}, + width: 50, + height: 50, + anchor_x: 0.5, + anchor_y: 0.5 + }) + + var corner_fire = particles2d.create({ + plane: 'hud', + groups: ['corner_fire'], // Effect routing only + layer: 70, + image: 'examples/tiles/fireball', + width: 25, + height: 25 + }) + sprites[] = corner_fire + emitters[] = particles2d.emitters.create({ + pos: {x: 600, y: 40}, + spawn_area: {width: 30, height: 30}, + velocity: {x: 0, y: 30}, + velocity_var: {x: 20, y: 20}, + life: 1.5, + rate: 10, + scale: 1, + scale_var: 0.2, + color: {r: 1, g: 0.5, b: 0.1}, + handle: corner_fire + }) + + var bloom_fire = particles2d.create({ + plane: 'hud', + groups: ['bloom'], // Effect routing only + layer: 80, + image: 'examples/tiles/fireball', + width: 48, + height: 48 + }) + sprites[] = bloom_fire + emitters[] = particles2d.emitters.create({ + pos: {x: 100, y: 100}, + spawn_area: {width: 50, height: 50}, + velocity: {x: 100, y: 0}, + velocity_var: {x: 40, y: 40}, + life: 2.5, + rate: 12, + scale: 1.2, + scale_var: 0.4, + color: {r: 1, g: 0.8, b: 0.3}, + handle: bloom_fire + }) + + // Bouncing bunnies - exactly two, big, bottom of screen, Y-sort layer 100 + var bunny = null + for (i = 0; i < 2; i++) { + bunny = sprite({ + plane: 'hud', + layer: 100, // This layer has Y-sort enabled + image: 'examples/bunny', + pos: {x: 320 + (i == 0 ? -20 : 20), y: 340}, + width: 96, + height: 96, + anchor_x: 0.5, + }) + + bunny._base_y = 340 + bunny._t = i * 0.7 // phase offset so they don’t match + bunny._amp = 240 // bounce height in pixels + bunny._speed = 1 * random() // bounce speed + sprites[] = bunny + bunnies[] = bunny + } + + + log.console("World initialized - " + text(length(film2d.query({}))) + " drawables") +} +var json = use('json') +var last_time = 0 + +function update(dt) { + // Update all particle emitters + var i = 0 + for (i = 0; i < length(emitters); i++) + particles2d.emitters.update(emitters[i], dt) + + // Update bouncing bunnies + // Update bouncing bunnies (vertical bob only) + var b = null + var cycle = null + var u = null + for (i = 0; i < length(bunnies); i++) { + b = bunnies[i] + b._t += dt + + // Bob between base_y and base_y - amp using triangle wave + cycle = (b._t * b._speed) % 2 + u = cycle < 1 ? cycle : 2 - cycle + b.pos.y = b._base_y - u * b._amp + + // Optional: if your Y-sort uses an explicit key, keep it in sync + // b.y_sort_key = b.pos.y + } + +} + +function render() { + // 1. Build Clay UI + var clay_tree = clay.layout(function() { + clay.vstack({gap: 10, padding: 20, align: 'center'}, function() { + clay.text("Clay UI Sample", {font_size: 24, color: {r:1,g:1,b:0}}) + clay.image('examples/tiles/key_blue', {size:{width:32,height:32}, color: {r:1,g:0,b:0}}) + clay.container({size: [200, 100], background_color: {r:0.2, g:0.2, b:0.2, a:0.8}, padding: 10}, function() { + clay.vstack(function() { + clay.text("List Item 1") + clay.text("List Item 2") + clay.text("List Item 3") + }) + }) + }) + }, {width: 640, height: 360}) + + // Assign clay drawables to UI plane + compositor_config.planes[2].drawables = clay_tree.drawables + compositor_config.planes[2].clear = {r: 0, g: 0, b: 0, a: 0} + + var plan = compositor.compile(compositor_config) + + return compositor.execute(plan) +} + +init_game() + +core.start({ + width: 1280, + height: 720, + title: "Paladin - Data Oriented", + framerate: 60, + update: update, + render: render, + editor: function(ui) { + } +}) diff --git a/examples/paladin_simple.ce b/examples/paladin_simple.ce new file mode 100644 index 00000000..d4fb2d89 --- /dev/null +++ b/examples/paladin_simple.ce @@ -0,0 +1,99 @@ +// paladin_simple.ce - Simple test for prosperon rendering + +log.console("paladin simple test starting") + +var sprite = use('sprite') +var clay = use('clay') +var core = use('core') +var fx_graph = use('fx_graph') +var sdl_gpu = use('sdl_gpu') + +var fcfg = {font_path: 'examples/fonts/dos'} + +core.start({ + width: 640, + height: 480, + title: "Paladin Simple", + framerate: 60, + update: function(dt) {}, + render: build_render_graph, + input: function(ev) { + if (ev.type == 'quit') $stop() + } +}) + +function build_render_graph() { + var win_size = core.window_size() + var graph = fx_graph.create() + + // Simple sprite scene + var scene = { + type: 'group', + children: [{ + type: 'sprite', + image: 'examples/tiles/fireball', + pos: {x: win_size.width / 2, y: win_size.height / 2}, + width: win_size.height / 2, // Half screen height + height: win_size.height / 2, + anchor_x: 0.5, + anchor_y: 0.5, + color: {r: 1, g: 1, b: 1, a: 1} + }] + } + + var camera = { + pos: [0, 0], + width: win_size.width, + height: win_size.height, + anchor: [0, 0], + ortho: true, + background: {r: 0.2, g: 0.2, b: 0.3, a: 1} + } + + // Render to screen + + var ui_scene = clay.layout(function() { + clay.container({padding: 20, contain: clay.contain.content}, function() { + // Top-left HUD panel + clay.vstack({ + background_image: 'examples/tiles/brick_brown', + slice: 0.33, + padding: 20, + spacing: 10, + width: 200 + }, function() { + clay.text("PALADIN UI", [{font_size: 24, color: {r:1, g:0.8, b:0.2, a:1}}, fcfg]) + + clay.hstack({spacing: 10}, function() { + clay.image('examples/tiles/hud_heart', {width: 24, height: 24}) + clay.text("x 3", [{font_size: 20}, fcfg]) + }) + + clay.button("PAUSE", function() { log.console("Pause clicked") }, fcfg) + + // Scissored scroll area test + clay.container({ + width: 160, height: 60, + background_color: {r:0, g:0, b:0, a:0.5}, + clipped: true + }, function() { + clay.vstack({offset: {x:0, y: -10}}, function() { + clay.text("Item 1", fcfg) + clay.text("Item 2", fcfg) + clay.text("Item 3", fcfg) + clay.text("Item 4", fcfg) + }) + }) + }) + }) + }, {width: win_size.width, height: win_size.height}) + + graph.add_node('render_view', { + root: ui_scene, + camera: {pos: [0, 0], width: win_size.width, height: win_size.height, anchor: [0, 0], ortho: true}, + target: 'screen', + clear_color: {r:0,g:0,b:0,a:0} // Cleared transparent + }) + + return graph +} diff --git a/examples/rope.jpg b/examples/rope.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6b5cf4669f770f62fae36706109af53c726a4ab7 GIT binary patch literal 262144 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

po1^%HTJa1%5BOuL-e1EFzuK<#!*>;@l4DZJ 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 0.08) { + typewriter_timer = 0 + typewriter_index++ + if (typewriter_index > length(typewriter_text)) { + typewriter_index = 0 + } + typewriter = texts[length(texts) - 1] + typewriter.text = text(typewriter_text, 0, typewriter_index) + } +} + +function render() { + var plan = compositor.compile(compositor_config) + return compositor.execute(plan) +} + +init() + +core.start({ + width: 500, + height: 500, + title: "Test Text Features", + framerate: 60, + update: update, + render: render +}) diff --git a/examples/test_tilemap.ce b/examples/test_tilemap.ce new file mode 100644 index 00000000..cd6b622a --- /dev/null +++ b/examples/test_tilemap.ce @@ -0,0 +1,187 @@ +log.console("test_tilemap starting") + +var time = use('time') + +var core = use('core') +var tilemap2d = use('tilemap2d') +var text2d = use('text2d') +var compositor = use('compositor') +var film2d = use('film2d') +var math = use('math/radians') + +var tilemaps = [] +var labels = [] +var t = 0 + +var camera = { + pos: {x: 250, y: 250}, + width: 500, + height: 500, + anchor: {x: 0.5, y: 0.5} +} + +var compositor_config = { + clear: {r: 0.05, g: 0.05, b: 0.1, a: 1}, + planes: [ + { + name: 'main', + plane: 'main', + camera: camera, + resolution: {width: 500, height: 500}, + presentation: 'stretch', + clear: {r: 0.05, g: 0.05, b: 0.1, a: 1} + } + ] +} + +function make_grid(w, h, img) { + var tiles = [] + var x = 0 + var y = 0 + for (x = 0; x < w; x++) { + tiles[x] = [] + for (y = 0; y < h; y++) { + tiles[x][y] = img + } + } + return tiles +} + +function init() { + // Tilemap 1: Normal (top-left) + tilemaps[] = tilemap2d({ + plane: 'main', + layer: 0, + tiles: make_grid(4, 4, 'examples/tiles/terrain_dirt_cloud'), + tile_width: 25, + tile_height: 25, + offset_x: 0, + offset_y: 14 + }) + labels[] = text2d({ + plane: 'main', + layer: 10, + text: "Normal", + pos: {x: 50, y: 480}, + font: 'examples/fonts/dos', + size: 14, + color: {r: 1, g: 1, b: 1, a: 1} + }) + + // Tilemap 2: Opacity 0.5 (top-right) + tilemaps[] = tilemap2d({ + plane: 'main', + layer: 0, + tiles: make_grid(4, 4, 'examples/tiles/terrain_dirt_cloud'), + tile_width: 25, + tile_height: 25, + offset_x: 10, + offset_y: 14, + opacity: 0.5 + }) + labels[] = text2d({ + plane: 'main', + layer: 10, + text: "Opacity 0.5", + pos: {x: 280, y: 480}, + font: 'examples/fonts/dos', + size: 14, + color: {r: 1, g: 1, b: 1, a: 1} + }) + + // Tilemap 3: Red tint (bottom-left) + tilemaps[] = tilemap2d({ + plane: 'main', + layer: 0, + tiles: make_grid(4, 4, 'examples/tiles/terrain_dirt_cloud'), + tile_width: 25, + tile_height: 25, + offset_x: 0, + offset_y: 4, + tint: {r: 1, g: 0.3, b: 0.3, a: 1} + }) + labels[] = text2d({ + plane: 'main', + layer: 10, + text: "Red Tint", + pos: {x: 50, y: 230}, + font: 'examples/fonts/dos', + size: 14, + color: {r: 1, g: 1, b: 1, a: 1} + }) + + // Tilemap 4: Green tint (bottom-right) + tilemaps[] = tilemap2d({ + plane: 'main', + layer: 0, + tiles: make_grid(4, 4, 'examples/tiles/terrain_dirt_cloud'), + tile_width: 25, + tile_height: 25, + offset_x: 10, + offset_y: 4, + tint: {r: 0.3, g: 1, b: 0.3, a: 1} + }) + labels[] = text2d({ + plane: 'main', + layer: 10, + text: "Green Tint", + pos: {x: 280, y: 230}, + font: 'examples/fonts/dos', + size: 14, + color: {r: 1, g: 1, b: 1, a: 1} + }) + + // Tilemap 5: Animated opacity (center bottom) + tilemaps[] = tilemap2d({ + plane: 'main', + layer: 0, + tiles: make_grid(3, 3, 'examples/tiles/terrain_dirt_cloud'), + tile_width: 30, + tile_height: 30, + offset_x: 6, + offset_y: 0, + opacity: 1 + }) + labels[] = text2d({ + plane: 'main', + layer: 10, + text: "Animated Opacity", + pos: {x: 180, y: 20}, + font: 'examples/fonts/dos', + size: 14, + color: {r: 1, g: 1, b: 0, a: 1} + }) + + log.console("test_tilemap initialized with " + text(length(tilemaps)) + " tilemaps") +} + +function update(dt) { + t += dt + + // Animate opacity on the center tilemap + var animated_tilemap = tilemaps[4] + animated_tilemap.opacity = 0.3 + 0.7 * abs(math.sine(t * 1.5)) + + // Animate tint on the red tilemap (pulse) + var red_tilemap = tilemaps[2] + var pulse = 0.5 + 0.5 * math.sine(t * 2) + red_tilemap.tint.r = 0.5 + 0.5 * pulse + red_tilemap.tint.g = 0.2 * pulse + red_tilemap.tint.b = 0.2 * pulse +} + +function render() { + var plan = compositor.compile(compositor_config) + return compositor.execute(plan) +} + +init() + +core.start({ + width: 500, + height: 500, + title: "Test Tilemap Features", + framerate: 60, + update: update, + render: render +}) diff --git a/examples/tiles/block_blue.png b/examples/tiles/block_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..4ec5cf5bbe1d33a6eb39a8d96978d39211f6b984 GIT binary patch literal 468 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCilm0(?ST zO-&t4OdMdOqoJV_kP8<9stU_#N~)jXwd8*1fv474{niCD>?fWq+w&@9<->|4M;zwd zHY++{)p*Lh^pHix5zD$0_A_rTu? z&C=>0*E7!M)JVB6Q^<5plwL@QSxDc6T+?+*&vHn}gk|N1SMii*&2UK7cT4V* zXvAtq%yLc3Zb!&&O5=!M(|J?FXhXneME09*>X2p0ZAQmyMe>(x+k8&fcuc`&LfLvv zzhpthX++zBS-oRH`k!(&H9_8fPl9JA!vFvP3v^OWQ*ZCze?K3ukDtE)ROcB?0006& zNklL@ci_jq531E@$0QU3o=+wMRxpi)WL+N!PE{@?-qJ_Pz8 zO&rH*lTNR9GPGW=L)suFj`MJ`wg&_}o*LMrLt3Xs)*@Z}`WTIlhBg{~pt4Ku;q&!q zWv?K;Cy05o1H7SD0FIV+2294|)X>J`$r&(7t!z>N-t7SI1t7JwDqz21Y_qS|lzb|H zDCS^sRHrZdQ~+BpY+DB?`&0ltw>m)C=T8Gzc8=8n%03mq{($EWN*JQSlriQ~B?u*- zY8dGc=Rb<~AkMBA56;I*KJ|%2883`ctwbsXe1pP85{AhFe{CW&z!2}%PqL~_e7x_W z0bnL>e!Y`*zgzRGh+BXex-aKy>zFU`*i;V?!Sa2t+I>8H6pO1q-rkfa`yx+g&H)JBv89SAYw7pZD|AShzqaMO)eTzO;e>?wGm`>y`@HNJ@2cb zj72;%d@rQw%i)|yhZo})3pQ6*>fOk4i$h&ph5B;+zs33cTbwKVOrtH%)qRWp7RO?* zY!CRf(|-y8j;!ByfNvaNiI_XTZ1i7Z@+9qMgJ+vG8J%%>hT*$wukVWK-D!31Y}9w1 b7KncXxHvcMVoQmE00000NkvXXu0mjf9PfOE literal 0 HcmV?d00001 diff --git a/examples/tiles/block_coin_active.png b/examples/tiles/block_coin_active.png new file mode 100644 index 0000000000000000000000000000000000000000..22af29bca6ce350c1ab6d45f70780bdb2a342a90 GIT binary patch literal 851 zcmV-Z1FZasP)L*XqVlXP@24#N%|-jcHq5R~?xZaAuPpiM z*X5l>>8oJup)2R4QtY{U^wqECmn-9zIQ{tX_v6azpDXE{EBo=}__r+eu`K13EBCZ4 z8xQ0{|XR74&GK+NqLis0m;1<;x9_SBa%YbJu`8EOgQW&YD3GlLAoTLGtfTs!w(*e_6ob78zHI;3a{$5%L*aljNvcNLi zRsvwQotMIECidm_iIo(rQBWdJt_B{D#Xz;B^`RopokBIaC`ctm6>sE1knHOX)++01 zUG+sQ!l~waA&y`7=RDfKYQI>ZxZ1+s4h)Yt*oIliFW3Jg&hH;_uADQqjyPA(E$T-c zgR`eRG^$ zXQaoJIFA((Rv)LNpJ+*a+7`Y)#c_U!#jp8ArlyX2lO6BX`Jew>J^^SJcS(?6aQ^%I z_4e}X`{(ax2zf5)0~EgN>Eaj?aro`^okGn9Jg$L)Wt-nyxBdTr@`m1m&h(ZUCA(Tz z-dicip;*K5D8f#skNLw@iIxIY%W&p}HGvujCa?dbaA|(YyzlL2i&sq-thqA#%@QHg zzYS?dQWIXTWh_fFH_$!(b3^LPyaX#xU-1c-8~!l)CGq@WxK-sGvOR3U%>dJ|1m`r? zWA7ZU^oA|43J48*;BbtAnaAJ&kWgq8-5$Tzp;72s(|_Urj8nGMW-`=n`ew4=I=jw{ z-Ng&uuoqW0{eSo2%fquT*Yu~C*0_JEO<7m|kd-g>Ez3NqdPWhw?-)IQpM*H8nxKV?o}2PoZ_` zC;$Ke3v^OWQ*ZCze?K3ukDtE)ROcB?00052NkldjlWuArrpo)E5b7S2?xeAaX__k03?m21Ff^iaGcnCsj@C>7=J^QCO`_zZ zq!3+vEiCH^lw~c1QzujYxq70s;?^kM5+bYj#B{TICcxL3zX~zu*Lz_ z4WK~k19$`2>>m=^Zw3LUhm=l(fQO_80lUjfLYLhj;P{f#aS-s5)c*t|am>&F=K7RB zrFRq{4uksf4Gg%aUT^Qi0L+iRAD$QjV2%BDt1mMMAg#uNgfE3w*API~{Z+TRVTc)& z>t@xB3yDEBmUb;ZBnwsgY1a}#0AXhe^>m5^0EnwW%Gx0I7xddsr1fx^(f)3h1bFW% zIRsEAQtY34R}@zO;9j)JYoeGzPGfxpJYG+FQIrLQZ4`q}O5_38A0dnqP(fimGxgj% zv?8^M46+zgm6LJ?O823a|xcLiu0l(7_BMsUB0000< KMNUMnLSTZB@g5lf literal 0 HcmV?d00001 diff --git a/examples/tiles/block_exclamation.png b/examples/tiles/block_exclamation.png new file mode 100644 index 0000000000000000000000000000000000000000..fae233af2f1bdfc1dbd8d1a7a278daba99b96fcd GIT binary patch literal 808 zcmV+@1K0eCP)X2o}Yem6kLdk7LzhpthX++m}Oub`4 z`k!(&H9_8fPtX3$k^lez3v^OWQ*ZCze?K3ukDtE)ROcB?0006bNklvDoX z429Q#iaxn$K$(JDiRF$8PDFDtg*0~Chk0}7; zx2gd7m|p=4I4~S}Q4ZoYhRDYh0MP}%yQC#fK7MPd%3_MQ(LG9ebdAte z*8_D|1~wN{X(R~TZIhna?jWg-kxae9@2}IYTf;TH5&>|-Uv%HTl-r{U02P>Mzyzv5 z1VF9LM@PB8{yku;^S5*Wc-GSZ&v1DC+ql<&J^eNwqA`ak$HQ0OJ9&2!70N?^kT zz{;D%%A2}Y&W|`~gB@CVXBvSr;*7MBM!XTH#LC1GXBp2E;gUV#5ND*~h@;B?E^3cB z`5!R=SJqD+;1d^E5$~O2PX0LFJVooV#j_MJcDo_! zkSrXhdSR=Ifac`^H62mAJfxav;n&M_dM0W*eZkC@sKDp&%+e52D*`bC9$i9r4=nR^s^QRdbaWlifylFXi5~ zLKhtm)LB^AR7|0fAaJujX{|SqRK`fQdhq|t(^X5jhaM3C8{R!7>gL;{2mlor8Ndjt zKmN%?F5&ri1?B4)=DFZSfl1Uk%gfb!n@D}3pjHfwJbbt$0Siy;2uAl-g1EA(VpJ+4y zdLhg^|gNOq-U=6mOx5XM97ywwnLO+y7i+hVG2KcrQdBcn48&oF$q n`1vh8y*stW6DRwrQG?`fm#+)XAXWz+00000NkvXXu0mjf)yQ=c literal 0 HcmV?d00001 diff --git a/examples/tiles/block_green.png b/examples/tiles/block_green.png new file mode 100644 index 0000000000000000000000000000000000000000..adce23959198c4e192eb51c3f4ac53e742b1f8bf GIT binary patch literal 468 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCilm0(?ST zO-&t4OdMdOqoJV_kP8<9stS9u(tT2eQ+1Z%*&f|(b^09{2K6Zc2d9`{n&|a-vDUFx znWbg&Ybs@zmuntwkzQ1)u)bR3V6)t+3aJGpksmggnmX#7Z10>nPZnqvcS(?6aQ^%I z_4e}X`{(ax2zf5)!@$7EKLo4nw`0`mfa17Fl6Qhr!ZeY#`PCYwZ~ z=Dk0~lsgZ(d~cYg>|1bTjcAXHn4{{`Ekc^BT?2eoRz(&p<2<)HLFp0qujd9fzYC7d z{K)b(R`Ok`#`|*>O>U91CLEaik>!=M$Afb<(FS|Yw}JV!?dh=vyzhGUA9G(F@|$D* z#hE{Uxpp;abb!$heaD(dN7T>t=Razlwm*U~?3%Q1!C@xuZRK&AKUe3@JFs2UpD%iq t@wD{dea2OGo8QK6C~^0EACz`TKlSaubJbUlr2zwp!PC{xWt~$(697ud!#e-~ literal 0 HcmV?d00001 diff --git a/examples/tiles/block_plank.png b/examples/tiles/block_plank.png new file mode 100644 index 0000000000000000000000000000000000000000..26a07d500d4946b4a8985109c2d47e7a34096c76 GIT binary patch literal 1130 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 literal 0 HcmV?d00001 diff --git a/examples/tiles/block_spikes.png b/examples/tiles/block_spikes.png new file mode 100644 index 0000000000000000000000000000000000000000..1bdac7198f4d1619a964f2e3c507d36ca0a66929 GIT binary patch literal 1118 zcmV-k1flzhP)%`2{$IjKBtG1h| zw1SC{o1?0qsIQr)vah+qvAe{lv%RCQxr&mRhK`hvmYuY{#gm(&s7AA5y`uudOvaG@N~AM4A088kGONTYFXYh?0k-CIwYKZlD>wgi5WoTWAjFic zSA@9vhl2nP05K)Jd^W>5Ar1n#0K4ZgFA?R7JYUT0eC8s61CZ|Xd^F=fmF{Rci-pLA zoQt3YM3X3hDoJd$75WzB>^#t~%yo=9apiIqDJ zkPRRXZ3MpL-=CM)zfPI;%mxVQIY0<}#qR@+|5(6!h5*<}v=R7Io!8Kd2{A;s;3`f#jqgczEJzKk)Fxw8Rglbv$ue^aHZ54>9-EG{wf8L~#EoDErVJIu6%&zMK| zNtI_|n|})fC9&}tG=GW@k(CehsM`woldTWJgnx*1|66F-?gj{9J|3f?^ZAF$B|y+E zjQiH0!gg79MU;K8|3PixM|?0Fc1IS{VfR;)(L^v8!*Wmv>cT%ktpp-8mB9MJSF)+>(NB-a0D4 kzl+YmdZ|t^Z=(A68<1!#pgbv@<^TWy07*qoM6N<$f|ZB|*Z=?k literal 0 HcmV?d00001 diff --git a/examples/tiles/block_strong_coin.png b/examples/tiles/block_strong_coin.png new file mode 100644 index 0000000000000000000000000000000000000000..59993dfa65b27daded53bfcdae63bd90e0b0de98 GIT binary patch literal 773 zcmV+g1N!`lP)0jGek5rKr=HyH8nsqG(a^qK`}8wG&DdpH9#~pKmY&$vtB-9 zLOp6kJeO)&<%U<@fK+KqMemYi+ImgMbWOTuLf3dq%x_1xU_Yo>I)70^m{K^mW<{b_ zIjmYcrdK+kR5+?xJET@Q$b@C8TRhTsO4fKx%5X=nTRgE{J;rWE&T~n*VL!HGK)Yf< zqE$KCdriJ+L#A0e)^|&}V?ecEKCWIp`k!*%eovoNILd8CH8nxKV?oDvyMzD$01R|e zPE#Kb?_b}4KQE7;zW^$4WWE3Z0p3YOK~z}7?UzYg!Y~kqqpYPW`@ZkAP+D3jkl_FS zTh1i3ihAgTg9n)dgv0wjS>_8*m}#21e4$Xd5DSoe4q#@Q`HObtQINXaQ7MzL=X(Ut zPfRYLIGde_HJcUXA{g#orFzn+Y6bU_p{8Cdm(Ij0m1}imrJyOqo+{W2(ToKxK{fy{ zTCqR~s$nmYTLHzO`0s+`hAaO=Al?&}cnJQNAhbp!E7TT*9+%~XS^}rT@iZu1x9Ca#PRrrA_x%))=~P_0U8{F0OlX~l3gz4mk){wK>*voL2l=B z?(cB4fjPK|1uo|Uq*j4k$_mE=&cnn4*n%T4$LJKd>IYc>==^-1$2J`S?4F;IcPMskvO;s_3Kqhg=}v4O*!5?Z+}+h-Yt zX(=P!CdFAUUc~?d0cF!JlyIsNz1ztw^Jz%F(roYZO7m=;OVza^-f}gsb!P&z@FvdV zzwsfU2o5}99ex)i=3~RHfWSwF8v%*G8ommMyfVasKAlHHUkcLj(beF=&;>Nj4Ai{# z=zQ-DNrPoCcU6{|#yz}&kME2=pOLS3Gp9KT1E2pN6hfT$+!I#D00000NkvXXu0mjf D+bd9| literal 0 HcmV?d00001 diff --git a/examples/tiles/block_strong_coin_active.png b/examples/tiles/block_strong_coin_active.png new file mode 100644 index 0000000000000000000000000000000000000000..50c904dc72056e1744b7f75966c4c3b99d437fd7 GIT binary patch literal 756 zcmV0jGek5rKs7Z$Gc!OmG(a^qK`}8wG&DdpH9#~pKmY&$@~kZG zz=vN$LF0&D*nCpuhF6zrS@p3j>6|NSL_B#+L6}lFz^y;mn-L_ zQv31b`Rdp8+`PzyWvpF6?xZa7sVwx>ulM81_p~hRxqA4wEaj9d{rK_l$Cc%sMbUFf zv0Xj%uPo`SVEUhO|NsBuk1O7OPoGpcy<E3t$T(V50LW?$i&m0MKb1PcJqd0qmszw*pxGPG8W+V#J-)5d>HT6?F&|tb~9f zfI3ixgl(W20t?B`UWp?(z^!Tn)eu`a%n6~CTe5s+=VqG8mTr;SSuS3+0X76=O}kLS ziRx(2lf5h^A^A#MyWdxuyVki>ozhM|cw- m-$i}CC|~cqq&W!_pZ{M0>S_sF?$T`l00000jGek5rKr=HyH8nsqG(a^qK`}8wG&DdpH9#~pKmY&$(soL* zT|KB+I%7gTYD7HVfK=s%SMQQ!+ImgMbWLeXMVD$>*LY0KZ%3|PJ+oduqE zd~Bpjm2xg}Q~jTQ%poaA*Y#?xUa$L-LnE~+4I^Ez`N~scK+(@JMIE6+9-#1qf(z&w z#zk@rqZeERVyD+_T@ov^y*t0DVICvcR5@ehdtVv_SJ@5CeqB z3i}|E24sY5{vLn}VV(oXH*m-U_)B24SuDmQWx!tIV3xKTuwLPCR%<2TM5Ctb?mjR+ zDFGhFXSTR!j6D^A7C2s4|9D>k21EriDu94n0loqVxE0_lK!9Wct^x!I3%KUc;VS@u zuz*E(0J~fT01y^%*dFe<3SuBSfn5ZoD~N&U7R(ti=Wc`$h;M<#0E@d3LLjw-8S5wl zk~`qK8M`0?l1n&qEq)yZK(fF*VbKaNAYhRQ(fep7o`@v~pa(yTufQBW$4>0jGek5rKs7Z$Gc!OmG(a^qK`}8wG&DdpH9#~pKmY&$`Rdp4 zsVwQ7E9t9X@~kXhLqX$+U)X$7<%U<6YFXo!IP9S-YD7GkQaE``LHqIK_1wJZnJea( zE9I0c__r+Xq%8NeEbO^@{rK_7gk`KK(~_8&?0oQx zd7r$r2P4QZjHcFVwL-}u5v@tW$S|}}c{B>t!V*(65UP{`DlaH{fT3+)CC9dh(L*45 zdfnbtVR~J9mWVRDpg;JOoIyX>(QE_+L2!@-4kW|^vI5O#0XZSc=KvYup3ehtA8IHyM!~(;@43C zum$FfMJl|3fCUpG_h>S2#1aIMgP)~OV76b=H-h{E1dt=R6%G`5$Ji~(yXh&453xv~ z@5KlNJpP>L$KS&C!0~^{JJ40$Zi@1o?eqVG{{S4nfO9Mc!1+|j0uuQ|$N*CLSYQFk z{9QeiI&uB<=#7!9e&L(x>x5vKg8lxt{c$6y~&P!Z7!>U zX7Q8+`31}KzmLCPZ?E4!e?Nm(e#$A_Z?B&gYck+*y~v?8Maz!CQEt|+ z|MHo^6I5R{Oj)>-IW1lPR-|LL>`~8263=pk+|Ah5CO_Ugqv3*1#0thHRfi2s39YwzQopKtv1DCayfhcB}%SCOwob})rvxDHXe;jkfr~Tu;uzvDo9)kl6%n;&_ zuz{U_-XGpM@4^%L1%CB!VD|W{l*5>0&#isoa<#}ab^iqWx$gO`=aw;Yq}*z|XRbSq yDXBQq(4%mv_>Uibe}13XdoT6TPhqC{|MNeqY~A@MXod^Wmkge+elF{r5}E)gt))5u literal 0 HcmV?d00001 diff --git a/examples/tiles/block_strong_exclamation.png b/examples/tiles/block_strong_exclamation.png new file mode 100644 index 0000000000000000000000000000000000000000..8d096f6f68fefc5e32a6c67ea768e1cb471bef1a GIT binary patch literal 735 zcmV<50wDc~P)0jGek5rKr=HyH8nsqG(a^qK`}8wG&DdpH9#~pKmY&$(soL! zSvzAwJ!(We$aGCKdf3ixnV!CT|IwM zL$_u{m{K^}drh`uK(k&x&T~n|Zbr&*N63U_u3kN+S31^sOuJ%0w_rb}SvtCALZntX zqE!e?KpepT7VqZ)Cmz00Fy6L_t(o!|j*Xj>0eyMZNTpE%e?yB$PlXWBC8?+Ob2z z!tO(6BCUkPeTedMk38c$aV$*JOlPv$?3pOEWYTCBrkOdjl~I8BIfCM*5V0tL*qhJ= zl&8}pQPXKz7a>&l@`WQqg}myeP?%h$SUM3^DpqpJs{vIhcT~Vm%4z_pNiqTbvK9cO zq!M=8au1*oJpUsgJmKp91(27Jk}tr20)_{a!v;88(AqjYfCGUX4#2JhELX0(+5psT z24D^_^O8FQn9~6^z^3m3`nU$03^)J`{NWh@95?{i2e{7(7zUf5w_!*IV2qYNVEGWG za5=yLEzokkr6PanMR zfwlGlYl{WI1#AYB(RlfgLvjf zOUpl4THK?}YAS!zdi@_f6JQS^wf`Fs+8+?^0R+EKxC4;0jGek5rKs7Z$Gc!OmG(a^qK`}8wG&DdpH9#~pKmY&$`Rdo} zpDX2tSC?v8*nCpsh+khrLF17t>#}Y4v@GnQEAgo;m{K@uL_B#+LF~DD_v6a_`0@1B zul3x#@~kY#gk|ZgV60t1=$R|{w=DbdMZmCOC$1n#-1mI}6cD#g(EtCj^bCSZ@<2CLsj|xZ zVEJ-R%`|t!5r$!uwMwOOCI%6$jIb~a?aYoQ1%-2l6bvD9Sp>N^p*B#R&rih6=T)@{ zA*a`hY7f=n7e-zLRicbhAhLBGR(i^V) zFF|lgncyY(Pr>Yf@z?@y3o2WWC-5MS#}U{~fc3`rH!eWaW(ZaQi=)Z{U_}?$0PZ*x zjByP%S#SUt93V<#v_js(ue>7p@dy}2 zx^!_5s!101sLMG_cosKO(8BY`I*nLn*o;Ok?rBt22=l@FJusa};Fv4{F2Eg5N0W7; zhvXqnxI@IXzpEZ3dqfaenFP*l3l4jT)8ldKa))@iJx1n>r5(Lk+T2&0*^zw5eEmOo zCc*wYW%hpyQuDFlQ9$4$!-IgtUk&#HA|D!J!II8PLwM!M&llD0-6%5`q08(452`(0vY%Eb(*OVf07*qoM6N<$g2_}s A^8f$< literal 0 HcmV?d00001 diff --git a/examples/tiles/block_yellow.png b/examples/tiles/block_yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..2e4ce5c71bfa8b239de251e124a46dfff1a5ddc5 GIT binary patch literal 468 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCilm0(?ST zO-&t4OdMdOqoJV_kP8<9s`_*$;MZQmhC=sQZJrNT>Q65>UtDkc`=Ht1v#w{>`M#W^ z{d9`<{KvPr4U%PaR^}A|;W^tDU`32{{ zzh7@JzrKI|euj|el0FO!j7**`jv*0;-%j5xbVxzK)!Zv?MWx{5?g>x+*9VEo%4*Cw zIZ0C2!Zm2acN6b}tmi7ZA|uafYo6u_l4U#h-FT)g*C)${In1-069OK*zw-UE*ROvq zCz;BAMf<8~$=+qm;xjqOxY^A>@F$ncbzSY3Rv$$>T3dc_^qCy|s2tI;qv@m8)6y^L zYb4!2NK8qq`0?pmkFtgK;hX9k(q$T}9t+@iHj7tAn2dBz>9PB`tM(bZox53Q;gZQcFFy#EYW_QSuDU!07)T7Bu6{1-oD!MoKmY&$)Ot^9Oh!LHP(MFTzHm%AIY>Dse~H#bF;UP!ZROG-XMN=jR4OGQsl zU|&Z>OG{g+XG%^^UQ|LuP*7lFQC5FjR6RXRKtNGFJx`uuNkKtSKR-==R7XusUOzcO zJ3C2;L{>sVR6#*gMMYLdMpxc`Pf}81H8nv;M_8KP z^z#4!01$LiPE${h-#;&JpU4a0^&(TK~z}7?U!kHqA(POwMqpE zboPDU+UYXZwo@0-aTyq@sPO;)%y6?nLW0IK-+JbLf*jw+B=>Tc+R;B+?LXlD0Fdow zW+SqO+;(R69suJYA$Cx=vNwmmG;{%W!kK9n&ow=ODu$$A@SU+2>;yX{;k7=Mvz?#|1>?HvG?>|o!hdOLj0B&-^lMdA{ zmd{l8Vm2i}D_eeB5WX?}uiNKIGWSAk-aJ2vQ3klM+_~t!D(g=cla#Zm=MzK=i2%gH zsB^l0@HN*j1vRl?D7hD61-01r9v1q$RB2&^36>bjs800Jl{vugWMkK0z#V8cmPxvU(=DXPfG(2z-I{cH-IaH(8)n=j2GfiHEl4bo@q&_`U8Qf`NFd5E^2B8c+BsG1jW zHd9XYM4c;Hcw4RMiSyoZWGlrQ-d~+!;tgGEM$$U zwR`AdjbrAJIkmi1c9GW9)@-YX7}L@o`z+IuM-FSRxe?hs!!d2ez;g5#E2T2;O`ibJ P00000NkvXXu0mjfg5J*s literal 0 HcmV?d00001 diff --git a/examples/tiles/bomb_active.png b/examples/tiles/bomb_active.png new file mode 100644 index 0000000000000000000000000000000000000000..e84611eed23159961d8734902de3a3b98403f382 GIT binary patch literal 1083 zcmV-B1jPG^P)=FVt7+~DN1yu`f3%fiag$IjI0?C$&g{LItX#?8~Z!pX$U()jrK z;^yhd&eWc&wA9+(zsJqz>+Rd%FdeR)y~w}*xupbRoQ0JQV&n=c#1j zOuAms3hJ`u9TomRZ&RfuF(Fu@lu?uV#{u*Ib)VMQcqZ;5S1WP_|C3=_YwIZ?Q~-wH ze<6ECQ53MjoG3yBbW8nY>mMqA6#M;rNOs`}0GO%ur#}f6a0C}s0qp#x^GgaD#_L=X za2F;IfHQnb@Bf)}0C6eg5fcOqS{wkL^w|*nPbB|{dkG6R3CgxPfCc|OTW0!ws|O&H zZ7wR4u=eu&`dz9AAP3vz!#W|ndB0RhM{x#e+J~?!o;6MeuW``i-%4Tzii0H2mH900+ojQ0^DMq-)Qt$j^3 zZ``ibiI81<&5K<7d1~MRWDkk{0!U^MD!EQ2=xkX)Oz)rqAhCI_1DF@7NvtJ3tS6?h zOpYRe7ArfWO28%fN;TV}b;b_=m@87Mx_YozmP_=e9U951-E@Y8gQ7U^# zt7~i9>L$jtwA((*bmf-A+N*Cw4$p8+N71kx{sm!d80FdtNuvM&002ovPDHLkV1l~_ BN+19L literal 0 HcmV?d00001 diff --git a/examples/tiles/brick_brown.png b/examples/tiles/brick_brown.png new file mode 100644 index 0000000000000000000000000000000000000000..c99b359d8c49eddf108709a03a558ec6e27e1f8d GIT binary patch literal 367 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCim50(?ST zO-&t4OdJdiolHy|O-&sQ4S^&`1VRECK!qQtq(5v5emf(tE+%+-R^;YVx7W{KKfixJL#FwHmq76?o-U3d z5r^MiJ;`@ifyXt_XwroS1xsDL4oUQ&o0cpK2d||!%S9oF$-lz zJwe$SJs$&)`IIDl&#;!9QJA2{Y$wRPpT+ObUr(llE*-uIiDgP3ZV6Z4nJ+IEJ4O1! zQ}(65|1H^T&Y8d9Y?boI=bIkZD>L&L9B|mC?pk(vr_KTg0igRCJYD@<);T3K0RUIV Bia-DW literal 0 HcmV?d00001 diff --git a/examples/tiles/brick_brown_diagonal.png b/examples/tiles/brick_brown_diagonal.png new file mode 100644 index 0000000000000000000000000000000000000000..203e07dd91d9743b2805bf7638f0815a10297844 GIT binary patch literal 563 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCilu1AIbU zO-vk3OdNp7)D(yufuy0K6NGDQ>|$&Tl`=F0DFbS{-w+t-;q`V#UQt*;n!oSc2}$wp zE|)9)x|72~oSdJwg}>=bct0tnE+%+SZPN6t$P+E8B>`?Px?(nz$9G10JZ=fS+MV%Z zPX4?kPe*H)U-OIZ)%gSMJ^bIV6KJ|XNswQ#e|>+x{eAiM=lSFJ&)0v?VD#(W90mqP zYfl%)kch)?ujPg}8HgPCxY9sE_>HHww(3%&W8eSR(P-c(+e+uDwdmMlK8dqwgDy*=*i&A3v}!eCThA7I;_w|G~^>v!5+ zj9KOJdIks5T=E%q?s-=Qq*`}vI{5ur@q+IcnRl5pPLpa{zuo3k>ep=1d-uK>eLbYT zZu`D-_ACpw=WCc;KlJy*pX#dP(~fQVaKl7EEOjDd+K8vr`@9;VHH(yfE pMSNgf9N^xqBDYCNps}7=hH;Uq$)RtP-++<@gQu&X%Q~loCIILA@7VwV literal 0 HcmV?d00001 diff --git a/examples/tiles/brick_grey.png b/examples/tiles/brick_grey.png new file mode 100644 index 0000000000000000000000000000000000000000..35b1d971a5451c746d31a31617e267f1ec1ab924 GIT binary patch literal 367 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCim50(?ST zO-vk3O&!3<(Zs~T(9p@y5X1nA07)PMD!g<5@qrWPD=HhW-+9nCVfxK`j~A}oxM}yH z-FpumJA1jJrtQV+ce{_AHZ^rL<7vMJ)WA~`94@emGrY_*TIZMglz*g66@ugpx)SU%atc#xQe0$yERU8M>)nsNo z=waF6Qj%bP%w2Nx<;JUv*QO*KYn;jR!-eOMkj01Z?3@jnn=BF%XLKFN_J31ZUl&yp znCCEGe#*b!lfT_l+0$tD+Ue2xr4Q|$&Tl`=F0DFbTSd+cmjc;cP=j}wz}a&pVB+`JbS zk?iLmwQ2XE=9ZpgXD?sB^Wft3I~A3U8#Zn4n=pO%-b3kGC8salSh8$wMNQk`(-)7O zIQ#U)>yEzZ4i4TgUccLY-+QV@5`@0&mX^kzW#d#qhI&t zFfcG$d%8G=L>zv5EjPT$K;*#3l?D>RZ#=cNRhJqa`~JTs&-v7?!+Xz!&n=7B`hVZj z`hY}ajD-r5V8;P@#urnH=bepEIPfgi{;CeogS*##oEj?2&5l+$e4qb&SKSv5mRI>v zmeJcC8vgCQ`uULv$Exo@A^Wn|UoUOuV)`2HbZ)cAw!zn&SNOS$wsAhtILU u`I34r;sfL20QYVcxlKv}jrGhjjLScp9149gYd$cD89ZJ6T-G@yGywpLm-~eP literal 0 HcmV?d00001 diff --git a/examples/tiles/bricks_brown.png b/examples/tiles/bricks_brown.png new file mode 100644 index 0000000000000000000000000000000000000000..914f3a212065ee4504f4100c4e435fb90862e960 GIT binary patch literal 553 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCij|1AIbU zO-&t4OdMdOqoJV_kP8<9s;Y|#o}Lx?uqpWMjJzpv9w$nCJ0m^zr#RlM^1WW+b3EJi zeoM^l#>h|8v!Awwf1Hwjq9yf3SImz&`EU9Xj%K=io|bt!&;4wH$KGVeU-OGhO&#ym z`I~p|)C3yMT@vIMod5oQy}kVU{`vbELY_zv5{U%?NfdK1;K*ojd zb~kWGJ@{{baa-WRG#}&389fi}GLq(ec6d06QPG7Xa8k$-6;GChQf!KBqSnm3Jlg#{ ztSnQ*nL55+*EsK;^r>cvdh(0a=L=7sis=33XdEnOaCI}A#>~tH9pCJvOD5S3YtmG! znS|vGDw#};%?dQSjvv+RVwSbIDgMKSt3UXM>OO-{e0lwy!(?I z=kmTe(Qs$m^X-#(a+XZxm5k88T_3;htf86xj{c2tvC)x+a_R5wUNq=4c)Xm%u%^V5 zA#9fl!|U$t3}LA%4AorL4EnJ`4O8F!PIg(vqaAyxw`Hmx=K-(ltT)V6f_CX0_!{-1 zA)jGg`D^{X;?MT{+{yUm)UF4N+BX2@^24m5sKNU(R5BNph zoY;7H-_85-CmL?ulfJ2C^}&A*W6l{B25Do?376CAwN5garOCXon6}aIvBUMwrk zHnna* zPc`%Za97MVt z3!f6_u|LJ}c(&`|4Cj-%ZU@txZrAvoXi2?U<$E;K<$8tB-ekvL^NWBkxmV{eR+{`6 zXt6*^kYDh5e*O6M@9pLL>+}8Z&)?6$|5^Pq0|R5Yr;B4q#NoHoj<0Jr5OAG4Zvw;1 zz2cWR6F&dn|IKEZ&CFI-X7Bl}tcmX~vUtmN=)RCxmKv#}zUPXGRp6upm(IyfHF@iD zA=P8o!~-cAJ_28kK7ChG7&}Y&`rbKZO4pt@F~+RPNDP}GeZ$4XUt{W~refC=6p*a@k$~G@4IkQ;l{IwD}u{6Ky6GWMIaR};UXw7KRP+OVMCF~P? zkVk#S(xxBm|KC>T$IDL25;|zO>u(*?x#z1-oi=sf*_^IWv5KY0_nAJ6p;lu|@YVy} z^D2Ri$$~%lE4~HfHOEZ8d+fe8N1XjvGcVIf$HY~F2Rh3RJmoJ~CMdyKKIZ}7;l?jN zs*ZB5v$>^Q+Lp^GmGJdP#C`Ge?;j`I%IRz`-uUC^G`?w<7O!nN=yPoM#Y0D;-G0?3 uT$eh#=wsUAZ~q$u*>o>3LD7nc5A2DHM2hVrwKf8SpTX1B&t;ucLK6T9Fa?eP literal 0 HcmV?d00001 diff --git a/examples/tiles/bridge_logs.png b/examples/tiles/bridge_logs.png new file mode 100644 index 0000000000000000000000000000000000000000..771f542d74187743808e7701da4509cf13046ed3 GIT binary patch literal 1124 zcmV-q1e^PbP)oKmY&$ynSL>NJ`(2Y2A%y$AV+ne^l*|VvA!|^OkA!m}{46S=NPK!Dd3pbWO`{ zN0eSj;gM@{R#5MfWafxjbWld|lxNk8XyJlWWp6Kid=qNQ^{>c(Q`>uLPI|}K}|wO_L^<@oNw8BO~YtIepE-EVoAPmOiDgNuyH=ZB$ch?0o_C6Y)q)d)~t4;g5x7YQS2>WL^y=w{N0qKxJn zq`bq(d;fq^(twxWscbP$=Yit>8 zZ9Bq2F^_4z<#ww(jFX;QBz47g3y(-@XRdossOa`iNL1~*7CIPdFu=Xdi`^X)v8?tc zfa-4HS)%7N>pP%Huey|I*DYe98B?JGCS91BEo|Fv^cj0`>)za|f@})Jp29zcJG6XZ ztlt2#m_eQ{rt#7Wp1^Alrkp*GHDfhve(?ayY))*DpI^+a8e?lAav)6)PbR704ko)` zYQHKm_E7)13@lN;{82A3R$A?YG&?LIuV5XQkZmES_E7Tj7i43;dIf{p7LH`)Ha!Hlxt+n{K;5t6f}<2W>fQ& zn0&SYJw-$#kG~71M!jbk%)GzRt2h1%iQ9zULZ(CNQyTUIohHjtKWfSDvAO2tdMHUt zR{B+@vCcbEme0OzAcn0_&uW(umD?fI8Y1E~%8mpz7>C_1+@(beJwEK5h90zaE!r_v zEGuGaU^4X}N%&qcl~gDfziD#5g(2>dP+h5P^kSi_DTfhUOt3W~IX#539QhYh$lyOC qHi!*kgV-Q8hz(+c*dR9eJN^Lhd^PNxz}pW10000oKmY&$Q0S*s?5tDksx!}yKG~NtV^%NAi9XqwO5>wO-=99%mq_8EJ=c~>v)RQ{ZlThfWEy{>6%!)hK zlseUvHPDYu<)tplh&*gyN0N9mM@cZvi$&j_N#dbY>#IiJoHi8IfQMc$oM?5r|cQZ2TAPUfaK)RHlEUoy^(Jl2&m&WttDk1W4}FU*Qa z;h-*>aWH>mEvOE~IreH9;)NhjTg-djJ3c5Oh*b zQ?HLd-)}EZ4`1)kAD@4}0PjU6g#Z8ofJsC_R9M69l;?k$$1TIZOkb?yjyV#vFi^sf8SFzcTPoIuNo=ez08+hD-}FbaU)I$Hk-rRGmgw}h2& zxslsVe}f=>0E2gMz&$8-GqSLFy4L!M3C0dc1;oDrXwxV7BEJaXJDj90fF=dZAYGLT zdxY=kO`^YOIv#}34rE#3YVZc zh>$A5Gq2qP037NS7z9vMA(38I1$g?deD!cZRf!#u0i2q>BZ*wu%r5L%MR{eyMFoX z#B41Qi5(6QrOKa;&=fv|t>Dt+g=qNVLLq6g5U8FPGhl&Ypb09EbC=Gw&a6(QmXUek zj-X(Ow-I_&j!w_-tv|Dnk3^Ualt=Er#n$TWf$Ou7M0FzidR`#gmo*9cX5yi0^|Nq1s1l0Njnr zG0rqX9})tx0dVwwPT4yK0${pIBiI7C$z{se$|pr6Bduu%0P~su4g7y9mv}{?00000 M07*qoM6N<$g62dExc~qF literal 0 HcmV?d00001 diff --git a/examples/tiles/cactus.png b/examples/tiles/cactus.png new file mode 100644 index 0000000000000000000000000000000000000000..7834e90349ac36c4ad53dbe2079188dff62dd5c1 GIT binary patch literal 1811 zcmV+u2kiKXP)E4O9gEQMrD;i6XU zttYQ^G(1E~FqHHChYc7~?C#-TMplVC0h9#eACZ=yt=%_hNPA9C#!NNu5>)tmNQUJH$X=(k!(qxe<-nbD6@Aa zr*9>sZ6~aAI@OaiM@d%XsVcpHQ|qcIvv^JBr6;d-CaQ5JrEW2GUn;$RDY|?+SXC*x zdn?3*DY|_t$A(R{jWj+*Ev#3Y(#q9&FQM2!VCQ4tUY zRGJWA+2vonc{97q0&f@ce(>`dXXneC*N5vd6~X2ZsW@zc`B$9T2Jdw%y12dkT>=EJ z(j;EtZU9b~(jqQr=K!8*KNnw06IqJSv3u~H0tEW|skE$1Iz@F5Is}ODbzE+cIQ&oS z4A707R|(yn0C@QF44gR?9p5A}9z6xCGq@RA0pP%1zbpqgYr1R(W!c{g&TJ15K!GJ$ zj@B9^D$7ftg3uOV2miI4rv&h(tu3I7d^Ic|sI|xed6?co;Anz$^Ckd@fpp+>E8uh> zO}0Gs81HhT0N9c**ATfZHwCxbZUzX{Pzki;htmYmj|2MIsZ<;iga$Wp3JN%n1J1+V z;BhrHhgoo=fSQTG-f=k?h42j0&{TXa0Jk+D{EuqWrZ|3gw#ttOC!aQmMK2fXY^;yx0h!6|9$4(8p740Dnr$rET4g6hJH3pkIFI z(FY%XOs2lI0#qfULf#1A;QZ5p&E0aTQhj8ff6x+ePvJ%-qN_jwA`LH+|Jls)%tCS> zg!m8+7*dq`W~$OGzbL2r&!1TzwN6&!@#EzA3;UKACoW~IR z<?>v!Wqb6U|E9)NSAGNM9nhIXL+ocWaEHD7@ocIbnjX1$iMjH7TK}Nea}Gn` z+8#Nap+YEcZjqCezzL71x85dMv%~=u5jklI=uzChU!Qpl5WC8WHIjBnUOb+KuRa)@i4Fg z^!Plgo8Nr<<1c^1!@&B*B6JyM3_J|lJ$Zbh`INKT*_(-XxJ-r=lQ2M@Jc7@QwZ{Y= z2I#ZThP6lVqP;_a4{J^)Uc_In5S7gU=%m=o^?(28MSq9i6J7uS002ovPDHLkV1g%E BD0=_^ literal 0 HcmV?d00001 diff --git a/examples/tiles/chain.png b/examples/tiles/chain.png new file mode 100644 index 0000000000000000000000000000000000000000..0b5d5a021d846f6ee3a27f2dc00432d41db38f46 GIT binary patch literal 763 zcmVjK{PZ#H8nsqG(a^qKr=H$0000z zK1p3-YJG!=NlR5>W^R<6qH1qYxsjzW)enCP_V`gu9frnOCVdd!S(bU+bt+YTu zOW)(?z{t;zke5|iV$|8*Y;AYO&C|HN!d6&gnV_gyU1qkw#;&%#kC&dQvblnaka&54 z*WBRT-{YjFt;^Eby~fR6VQhGOhKP=rWovTi>+XJqj6FR`vb(}|eSn+b%}GQ-R9M69me+Q|FbqJM2@rP|$}D>m z$YNwT{r|tJM+~?Lu}dEty~M|su4ToRlmncENWLNoujG1;x5%Xd9+oF0k018}mJLW{ zc^{w&&(f3z)R4l0>aLz3+}3ryzD0z9&MnY#Efr8g8b_-93So=b1uY0Sbnb|jOQ`@A zY3!-82VswndJuYav`5QoDxiQgeCjW9oSmEv10O9HQUN3ghg*O{JOnX-dUhcWAP%Sk zfL3Kuhy!p0s+s@*%3<^)VgURL!ZHv6KqaJM_zA!P2rEDg$m2tV^MD5gb39wkO8|gE z2tE(+iM;}306-z9-~q({1p7pQR!jyIH93Gr9Qfn`pTq@C20-n1CJ!)oHwbY6@!xVg zJfP!R

5+j_mIm4i9h)m-vtaGFQ3n+VP8IyKR}POm1@5NV>{KH|Z`XJ?CLR`7!l} z;^(a3P0T?uU|`}^MVQhiW0ul%YOk}DHl7Gm8cwQ~L$o(2DX&O+-m;|XSi+==LolQJ zu94&38hyP>TAvBiIzFTwo&4=mSl**4TdFcmSrr;Z=8X}nR?}Y=*XI+qf4RH3{=K|s t{Xy0rWc@+bA7uSO)*od3!N2Sez5#84HQh@=`Jey*002ovPDHLkV1l{dO!@!- literal 0 HcmV?d00001 diff --git a/examples/tiles/coin_bronze.png b/examples/tiles/coin_bronze.png new file mode 100644 index 0000000000000000000000000000000000000000..68a5cf74148b075e71bb0a65463d8de632e3ec82 GIT binary patch literal 1210 zcmV;r1V#IaP)yKj0bWE&Q zH|mXG;)h(ZS~*+QUY=`K*oa}(c~IkqS>%RV&~;Ack7b8mQRI$e zsc%-`gILyuUc!A{=7?M6hg#cyRNjJC*L+jMeP7yrQ{shKo@!R#f>+OUOwWB*t8rSN zYgf{MS>J(H(|1pYUsBkIV9IVuxnV!jc22r;Q+iiU-GEiWdt78qOX!PU!e~T%Sx|RW zO3-~)xpGp5UQyVGVVPu4(SBE?YEi&?TT4Gf&wN$SdsVJ&QN?RUx^z_BgIQroMp#Bi zja^JuL`Ha2O5=uG>5O0AgIK6kG}?({!e>NGK}E`MNn}k*zhy!|J3~M^LycZdV@yh7 zOG#r(Nzs2;<%U>eOi4^YMOH*bxp7irN=V0SM{G_=OFu;5gjr%sNI*J5$ZkpUmT0P0 zHQ$3+<%d|US2yyNXzGk!?2cgSjb7%5S?i8q>y2NwUOl*AKD%K*uURUJUmp+ezdrz-mFFP<00L4;L_t(o!|j&$U(-Moz*A`2KtwdruS<_g374Jrx9mYLTkAac_{e|0cQj?$RdF1g$1GRE>yh)?C~XYzu4H?g!>@w zf(Wc?S@g}xiqrUaxC#h;`|U@5m`tBIJ3BbjLJhi`KsFXM?f+>qb!Ju7_;K0s4P#z% z6VNws=nrRfQ7^yJHVd!Ri6ZtSRqvnLHM<0}liQ zxN^*AE7QaUzk!d)vib8^R0-+(!h*NJfupI^Mhug}f)wx$xMD;}43m()CoJd(x~Kp{ zals294fGf_k1$*X>BjNZVKn z>4yS>L16tcOL@a$Op6G1tFf@gaALsqGud-CcS%VFWG*?x^)fZ1aMJ`=ueN7i_?>cMG z-JO@)+B$Et<}CZUV8}7s1tSwB{;oL0dPUK~{x4a2p;;bN^1J3KA=ro}li;o#2m*m8 Y!z7Y0J6HB+#{d8T07*qoM6N<$f*tfZsQ>@~ literal 0 HcmV?d00001 diff --git a/examples/tiles/coin_bronze_side.png b/examples/tiles/coin_bronze_side.png new file mode 100644 index 0000000000000000000000000000000000000000..730646ec2dc7eef5783bb75872df85710c457794 GIT binary patch literal 377 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCilW1AIbU zO-vk&jU5aPolH#~O-vk3O&x#;Ea+lr2;u_SKm=4iJKS+YdHj|HM>i|SNDnVRTgSyw zjt?hhpJ++lQ=8;y?ec4W(cWao7hN$xqkb*j@&TxauO!GXxIbRr-v9jl_x$?v_pfJQ z>$nvRl-ca*;usQf`0cfwLd^y|ECEgo@iTsJdi?+YIgba5nUi{4C3Bai-QV#!?OT!& zo5T-hhfL;+T^uK@j!3vNovY)Rs=^Ri;XRj6;|=fIORx%c48Ne9-o zSKmfH6gkPT@AlCLXBh-5ju;$ZVCMND!Pe2x5LEm{`p<*Oj4|xV?SJ$BeA{2o!c|jl zUupk!%lo_2#M#@<9$g(Dq}F%#{KO@yh0pGu*>{oa-YFh~57zzAp%;o2?)bUuTp LtDnm{r-UW|OyH7? literal 0 HcmV?d00001 diff --git a/examples/tiles/coin_gold.png b/examples/tiles/coin_gold.png new file mode 100644 index 0000000000000000000000000000000000000000..344397ebd604eaa04170d4c63a23a3ae16106778 GIT binary patch literal 1233 zcmV;?1TOoDP)0jGe9#lL^L!&G&Ddp zH9-IX0OOJ>=b0+znJM0kDd(Ch-HR#eo+{^>Dcp!C;+QAolq>C~D(0Lh;E^c2W*X&| zE7*!7%6J~ckTLM9EAy`_`G}DkRrgt;akS)WHG2D$N!EGFfX*chxDs5Fd*qJWpoGH$GA>NlPpLjLx zq$|mFAKHs0cw0E&lP1=OBdL8e(vK~|k17pp$l_uSgCheyw%6K5bY#r8zB%gOR76R(nkl(r8RL;F<(Vnlo-WjpExdy;R!BTc zLOx7HK96WNOhZ2Aq%CApJBMjEOF=%nfG}iJJ7Z8gVo*Einkzs%KR`S`yJZ?EaHzV@1`v9s4VH5E7gG|(|#n-d?U_zBFlCm$a5gwiYeHHC+naq z@~teuY8~^gEa{vp#&93-sVu{79@~c~@u@87oh$mfE$W^t@vAKHsx0cAEA68z?xig3 zp)2pFEbE^u@~kX1H9;aghK&FK01tFhPE)Us-_I{^f1e*;5AVM}0M^EsGynhsS4l)c zR9M69mS=m@Fc5&9HcmX*d+%NL-evE-TJ|2@dl!;Y!YUgIg#vY1rOkiDx|8h0DYhKG z@%a68I$5tH<+1LBA^(UF2m-gH zF?Dij>9oc6_>?&>xCzJ!9RAAKx%NJ=>m>Xd5~h00000NkvXXu0mjf2In%@ literal 0 HcmV?d00001 diff --git a/examples/tiles/coin_gold_side.png b/examples/tiles/coin_gold_side.png new file mode 100644 index 0000000000000000000000000000000000000000..66dc04448f7884f3f00ea381f5157aa7d2b2b9e3 GIT binary patch literal 378 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCilW1AIbU zO-vk&jU7x)fymL&(8T^vIq4!^y&Q>fX1hb6#?LH@>_>9YU-m%B0XdrnT#IhCPp`uo^i^UdOu z4G$cUX9$w+nC9YeRq>dIP{B9n6(Wo$4n@BzaY)LK+Lbr+!!C7Zsi?Ql6r#D8`>|9={$uv}JP)iS+}`vb-v0lua=@eA zvv2<1xv=)V*?tRy9L2c5bBqde3j0*nb{M};`_>!wDJ-p_@qQ)KwuNuM3MI9a0o~8w M>FVdQ&MBb@0BdZIKL7v# literal 0 HcmV?d00001 diff --git a/examples/tiles/coin_silver.png b/examples/tiles/coin_silver.png new file mode 100644 index 0000000000000000000000000000000000000000..f6d57ca5950b50416d0569b94d76245502f015ca GIT binary patch literal 1137 zcmV-%1djWOP)rm?26ySc;4x4_4*xx&E7&$7G2l%cH0&()o&w7T5$j&C<)#*Ui+~%+uJ&(AC7u(!II;i$01tFhPE*gHua7T( z-)~v?qhO+NF zrG*v&_o$$ND2plWKc;ieOqwQ|OzIs^-m94}Id3}YlR4wt@t^oSfhXAh0!i>kbA*CL z3dAfUAQvG}qS-uQ(XBu#$rch-+z8}Q1j{BaR@Yv+i{lcBTOfvMdDjZzcpXk7A(>0S z7Jss8h0!(f?^j_K$aL}3hkqD3dlh4!U;Agdn?=9+tT^@liYQ`oq)W7%fA`rJKqAk_p#(Q z`3ZIca{a_Q5^sCQSgxSi`jll2R>3K_b0M~Dq@xT4a~y&%z^-3~?8lf#@E-Vy9El&J zqj89N1RsE}K*y@4oyK7TVjjUq;2ZEz)3gK*4?z5YL!bfQfv34q9}fEFJ|J7YqHm`AV#)WizPyN_bb zBj{fQ&RjFp4;;d9(dlC%pY!!q%AEmP9y`yXey7hlKsJ<{YmE4FQr~!A51PonYA2A$ z69#XkbzZ)DkW|q(DvM#8dKF&i+)gXaljBFSqq}8 zBaUo7qJ)EP4_S)OSS}QE%o78!kf|2^`r1fra2d>=MNu00000NkvXXu0mjf DP$5Uh literal 0 HcmV?d00001 diff --git a/examples/tiles/coin_silver_side.png b/examples/tiles/coin_silver_side.png new file mode 100644 index 0000000000000000000000000000000000000000..b1577581732a5fdfff1c6d26914bec9cc0831369 GIT binary patch literal 377 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCilW1AIbU zO-vk&jU7x)9ZgLg3=N%3OdNqCV78;Nu?vs^Lmw=gbm)P5T zEm*ZVI3%un(i|_J@Wsp5UAyyO#irdSE?fng#t^KT1=Pb=666=$A8&tN-v9l5eg66D z_cMHz>HPzg+3e}!7!q;#?X{gkhZT5O0)*ll4t{5S_iz6IC9(X%En3QaBX-s>C5FUv5^~jE}q2nWdtVpDWzuSnkKB zm64lwo-KVQ&x75uJok768r^xAc?=FT^d~lOObLkU``092W7P0EVeSU|wfFyh?{{c? z|1SFd?Rnq!-hT7wz=q17uhOS8 literal 0 HcmV?d00001 diff --git a/examples/tiles/conveyor.png b/examples/tiles/conveyor.png new file mode 100644 index 0000000000000000000000000000000000000000..e7e82461929f8a934a7209524dfd237e13e1509b GIT binary patch literal 635 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCilO0(?ST zO-vk2P2tE9$Tc){0+J8}RF&>)yQ$FpNvH9F6X*LTOs}YHymS9?Lu+3{r1h#zI~^SZ zDr(y7?0oi@o4L4z`Z?MkJ9~Ne-a|Lg*hBW8-aU>1J;3>}c(9quIp4!T)2w zQIxx#wYBHJX+|$zzjJqwFg11DedM%Q3inN*ecUBMe!=ha@6WeiFJIrkpW)iPbwI~5 zwtBiahD02GI{oIPLka?}7j>kL)!x}GZF(g0|Nrl7D=tnET>j#j@B3y=&$+=(OFWIw zRo>uU#4(|B(E@R=8HIKXMQmOMEbTm&pATx62d^}UzWBrmPqwt(tlJhm1=E|&fk2G85%f{Wvu;N(nnH@$FIxOrBxr>WUfQ+IInQ>ADOw9-L zxNc@Q-&MNyd^#JqBj10?9J8QAgEs-uk$z13X0bOPu=P3h;jYv+2KG4%vM1c1&~*8+ z(E?UkyTg8tAAe7?zkb3sq^7jyfuj4hX1(}?*N*MtN2(GYZ0!Fm+%IDDc?Xak`1Qb% z+t-@+{*mshX3mf0|EHAUe*4+6{1xr5SA}dpCHk|Z%$4icvvEIzdi7L9AUtRZ3NJQBQ(ZOtoP`v|vF&K~PRe zR<2(|rd>r}LqS49Qe8|_S3p5zPEwy-MxRtTM@LvSH9@^&LEe5(yTr?QB=n>J007lV zL_t(o!|m7E4uUWc1yI~~MON8G5IgGsf1gzm$^(frMvZaqBjKKqGNnNSnRAuX6RGdM zb~Ogx1RPrOPr$Jy415Dvq`A!8B?2=C%A_F$2yLj6QUC{(4Do;^uaBdhOm76x57B@P z9bJ@(Ot7$k3#K8eME6y|0Bg{Nl0l9JG_^0fQ}h}b4M0rLz@`a!Xuxj*2^t78weJ%q zaU0kDjI^1y)iZbjZ95lbe^31$Fd$#UtH5KNS7cy$>&FTGTqxu;W(l8-3^2gJF9ZDF b_+j7z*-xY=|AW1H00000NkvXXu0mjfPfDT6 literal 0 HcmV?d00001 diff --git a/examples/tiles/door_closed_top.png b/examples/tiles/door_closed_top.png new file mode 100644 index 0000000000000000000000000000000000000000..5fb7ee0a09d63af4310126f237cebb6b12419baf GIT binary patch literal 1210 zcmV;r1V#IaP)P)t-sH8nsqG(a^qKs7Z%G&DgpG(a^qKrt~vGc!anF+w#pKr=HyG&Ddo zG(a>oKmY&$nVX`{)!NE%N48@?s8~9=VL!)fMZ#-Drdc}Cb4jsXJ;P{2yoYqVrJuvb z%dA>E(bd}DaNUB>r&T~oDcud)PP1M=m+Ivl)R5-kieaUS` zqE$JjS30*~Kf9}_*WBQ)TRh8dM}vfns#!a~WI?)SLfd>!&2UJ@ZbrMYv9DY`+~MWB zx4FD;Qqp!xq*ghiRyoCKL~Lz$yJA4u-s53nY{tmV!Dd3dby~^L)x492ylF|WvbV#_ z(bacLq^7OBfo#jt*wb}NOG{SV-{a!u>A=X((bU+z#?7u?J-mBkj*yqp*W9&VKG%3m z#?8~^=<7g0OS`?opHw*L>+Ur*LEe5(y<Rzsj-vd=lcYo8})4kfDjhqf&faG&H?ff*WLzma{&?b-9^-Mrt;K4?L zzGnbjKL3NQ{66=e0FGvOE>cR>45dnu93eUaoJRI1r95v@zI0;L;j{R$sWPTj~naxYnQKpsDf05MMp7+v>augkiN02B07BKb7X`V!eZk)6(TsSKgul zaQlt;PS=}BAi?ic060H28Lw7T>ISyz|(j@B|a_Mm0VT{dEIzR32;L?FF3!a z;?FQ5zLWih%I?JRAVGwCqX;(w24H_U&or$yj1O-=D%ySrXJ=GKne$vD1qtZI4#o%% z@t;4+sL9bA)aa!AlidUYIUVp6bipM7FhhFYd_br_D#P71FI^LCsl}!<(HWW^w zhCvPA!0cc`2#Q}^y+f@o!oOEQP@W=#HS}q)h9_0ppr9Cs{Er!%-8W}oe^%!3QyRua zkos7S$WVs{V_aIH2^3*?wHwAlZ`CPU3NiK?EMc+N^j(2b@Mt~oh_r)qVhR#qY@=lk zqZ^Dt3R7Z^<`GsZpur-VV}3gi*KD=LOTA(5!8U(O&fjEcuLeE*L1#(m;NwIn+75^= z+<>i;BT|gJ`UjjO-3;5@N Y-x!wOxLQ`b?f?J)07*qoM6N<$f&>;eWdHyG literal 0 HcmV?d00001 diff --git a/examples/tiles/door_open.png b/examples/tiles/door_open.png new file mode 100644 index 0000000000000000000000000000000000000000..be39e5f080527d8b1b2b6df7b7289ef698836b45 GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0L3?#3!&-4XSEa{HEjtmSN`?>!lvI6;>0X`wF zrlyX&kDPXQk60xukOUNz_jGX#u{fQaz`@%a#megK>?|qa#tMNQ!VC;8n_gUKTb;-Q PRLbD#>gTe~DWM4fY?>Xk literal 0 HcmV?d00001 diff --git a/examples/tiles/door_open_top.png b/examples/tiles/door_open_top.png new file mode 100644 index 0000000000000000000000000000000000000000..df3c007bf2d836faddd965720d8cbd761f73287e GIT binary patch literal 988 zcmV<210(#2P)oKmY&$nVX`{)!M_x%Q!ei(bd{OKu0V)MK|xSL zLQ=rU&(YM_y~fRskeAWd+*Vj)Lqk)$y~4)L)8**vKtN0A>+Ur*LA%7uM@LwQ`|gGS z000nlQchFPuirmUk8dvzAD>@;@4o<*Uy8H<00MYPL_t(o!|jyEV&X6mhLwH1lby$w`1xNj;C!lc^v(;&-TJGi*nh zthOg0k!JzQC-wkndX5Dur>CO;$&LGK;7Xb0wkp1Y>@zp1UF|q%NfvEmx!hiMR1nOla2xn>?B;W|%Z}RJlsS~2<1vhEh zN-x%cbWZw*J?{kpgj`Ai!2B$@zncAXdprk?+s|qxIAI~|iG~1ZV2{#M#s9IZE=@=Si{B& zH>k?4-4I=~D%NpT;jT#{#&~vz6UgdrsOs!#V|yn?Awv#C6LAM`*kw52lHK4uij~R} zv4{%{YkuoS=ys0A-?-}`5jFgQXI(1_V0F>B21_kICZ2WNNOjQIL;yC?d58u)cq@ef z+(XBR1{mH}Bf$HQTG0T@`!^xLJ976>42S_SAO^&M7!U*gE8s7UfM1(ce~23Z0000< KMNUMnLSTZarNLtW literal 0 HcmV?d00001 diff --git a/examples/tiles/fence.png b/examples/tiles/fence.png new file mode 100644 index 0000000000000000000000000000000000000000..e683f8e680a4c57b53d9765dedb87640b76b0f02 GIT binary patch literal 434 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCij=0(?ST zjg1{lO&v{4fFuY389-!c=wxUJ5;Qh;0SW@uzMYWNogDVCDfsP-y!#D-4<}|9g#~<^ zlKy^DN?lCwulYsuLoD_tI|7ZmSLc8J%#WEsJ-j7Be!=nf{rBhZub0<<&wrj_`ctWH zpu`7H7srr@!*8$L6lyZyVZET?t-0Wh-oyX@gQGN-&Ru5r;}Orv$7jz<76z=Smq}<~ zWRv*NXyh+osJlNtr6W?W#vx>dd)JT3iMe~bxu@K=O%naf(`sTHDZ^MTFaGAQUc+Ab zUv(YaPWSKMF5BSG{rm6ZooAHQSgId92~@npY~Ih|!k=SjcGiP?Tls6N+p8aDeaehW zGn##c{ZfHG``3TGYVqc;tf$#29NxM@M`S=#c*jMjxQz# z=g##2`I!rf#qVa%+-|P*x!T&G+L^JgpONjK%z`?fbfzD+2@Q?G|Kw{J{)qU9M>pv{ Q0{Wf7)78&qol`;+0Mr+&kpKVy literal 0 HcmV?d00001 diff --git a/examples/tiles/fence_broken.png b/examples/tiles/fence_broken.png new file mode 100644 index 0000000000000000000000000000000000000000..bfa66c2bfe015bfe7ff3db4a065dacde66703409 GIT binary patch literal 564 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCikD0(?ST zO-vks$kY@{LKudIPC$mSu?tXDxP#-{2}zYcj@`*&8E%elR*o$`R%>D%3p^d)&d8e- z;+W-P<7eyWZ)5kcDR@hQ`itwHFdmK=g++@@C48%?vfzC;QIaf{rBg;mp{+X&~kyrh=GC8#nZ(x zB;xSfDL2cS3`AVlGb_y961G;k#WDKu|Nrrx1`g{yW2(Y;|C;c*;@!D80gnfr5+9iK zf#^V!#IZS_74~gakm9qD=TX+_P>WIP$y>uOST1;E`qw%BbIuo>Wqfs)jhQ_*{z>IS zGm|^FlP*49@YX-R)K9N@BJSH{ktkvzg~S zm?qx+H&aa@a@BUlKkT2MI0#>nb`qVllF3a(r?dKl*B`FW)#ndg6<+dv-m$M;nN3e7 yKA!Wg{FZyo6FUoylhX|73{PO)>4|^_#2eTfVAGZYtGlQqApUXO@geCyXzwmhg literal 0 HcmV?d00001 diff --git a/examples/tiles/fireball.png b/examples/tiles/fireball.png new file mode 100644 index 0000000000000000000000000000000000000000..d19053a7a458acbf06dd04ab11023e8f02846452 GIT binary patch literal 1409 zcmV-{1%CR8P)0kG(a^qKs7Z$G&Ddn zGek5rKmY&$+Gsi5X*b+yH;Yj^;A}O>WH;JuG2m=8RzN+LRXE{nG~Q}9+h{r4XgJ<$ zHsx2@TFR5QwH zF3D*w%X%|tL_a_|KW#`l?RF`YQaV&VKg)bIwO%;;iz&8WHOqZAWJNmrh9;?AG0T59 zzGW}DU^KjAF}h+hvvWCsT0Cb?KI3jO;cYYAX*lR|F6?zG-D)@Ha4*?sI{S$z;%zhh zjV$SME$wwG{EI33hbH@mCHsdb>vSvpiz?@FFY$OL{EREn36{gN;6cqjgq zGX9n_{+2WDb}99HBmIvp^Li!zmox8oDEfaO{gW{Mm^A;HH8nLsoz`|M0000GbW%=J zPcP43kFP(UAAfJ(?+?EKkN1U|0008GNklXIB$J6owa4H_67{d+)vX-h1!8 ziy(q1sEDE{h)Pqc2qXd_5D2CaLK-Q%f6FNeoa0W+5XqsS_LW~!REnXDs2450Z73c$r<%QRIP%?n{V&;Z~K zApQ9MP#Dlx_bu?#vkz=2V*`@lSq>cW@VHfMWn~u(N&d0kEN_5D`iM?m+JhHh6o&{)HZ2 zulo$xU?~Am0IQ?PmX8TVM|^GWw*v75Q2-&A)lmRSpx9OxELs5tIH8MDk3>K@EFo{O z>C!dRN27Up=Xd{cU9@^+NO`me3IMan+W|AEy?2W)YEKXWWZ<=3K!8GY{JKE>yNCeD z*q8uV3i}-eHUkE{@9NI;Kb$^R5bW#hq-qcWl<+${Y7G{fp64y*4?uvY)6zzd8!;+% zJ=}_2Ot2lTHe^@l)Px0azj*Sf^+DyZp|eP-BnB|>JF8$1*@Ojn^ZI4$m^vk8%!El9TcHFT1waYQ;qV%e0Z4!iX){yCPfpGFY$xV2si~r- zSh5iba25+Nd=Bzgb98e-fv)`6QBXoifXeihr_fRo?PS6P;p+99x9{A#eDU0Q{4AlL zjVxibY2@(?S4K2kWy(0myHrEr{>L8-PNLAFDXW%Al!?Ez1Rw$U{{g=M0~*yjCH4GV P00000NkvXXu0mjf&_jD4 literal 0 HcmV?d00001 diff --git a/examples/tiles/flag_blue_a.png b/examples/tiles/flag_blue_a.png new file mode 100644 index 0000000000000000000000000000000000000000..c1c564f12191f6fbcddf0f6bfed9a5683755b14d GIT binary patch literal 763 zcmV{0wvl&NgrF_RWebGs-v|)i?-0%XD*&F z6Zm{Wrx9;NGzN_15Qy6?pU`UK1DVQeQp5(&mgC|2bw8m#p>IN4*T{3-1u(mrFAbcC zcO`#C38r8eik4JKSC_Zmbr$gkmPdXy#KErSk8kfVw`0GSGTFg2{!I_gt3=?JD-Tx1mlhX~^Lx5t;K=ZDvi&#zo?yn@URQZD!xg8W@LX2BHl86G4X{(g&l z2^OvgIPMhMoGwHQl;A2wV9z{8=TS5%!8KE0xy;T5ccqjd>eB*yHfQG%OAuZ5x8p-+ z8J877#|UZ>_noq+lTMWu;I7DXhDq5L?kGufYJu5ovjizksd>0SD(YqifvoOWhcE?5 t*Tm(u@zP-Tf`cX4YsHcaazQR2d;>|0kG(a^qKrt~vG&DdoG(a^qKr=HyH8nspGek8tKs7Z%G&Dgp zG(a>oKmY&$HA7%EI7l^0a5XV})K(I972sLR33&m^DXeJa?ixV}&gH$y;O22zt zK$z1xTzfx}$vbL~I8SIkgtk7D)jyfpJ(1KtmDWF(*g%`wJ&)5ojnP1z+dPZVJBZKj zlV&z=zutaNH8nv&pWU-^14;k@01$LiPE#L`&o8g;MOM!es?yJhd3!qYM}LSjq+nBAV$BY&U~GIuSKV zR@_ZhRbF8acod6&|Hk%nvw+F)`*xP1(G?9lOaqc4vgrW+zGmy4JCu%Y*C06}w-2ye z&8?ee%l58ck1aO<%nuMQpx3v4>N+}|7)~U;*)lLxx#B*zXppYSQ81}2ey%15dlox5(Fg)Y*GLe3z**6+ynrO@YXO?79f64 z_?8qGa6VoiU!EVH-rhgIjt8768ZGAmR(LiK;1s}b0;fGl1@Pa1;=fP;fA3MQ<^?8s z0eFFc-W04&H^5qD1>pIaxr}yz`8dTeQUF3`L;~R2bR2+co004rFzg3OpsdoUhe?ve ziUDCxcgMZfL=ge05-Ea}QusE3w$$>bgX+g=L?B)!OJd5x6zw=b6Ig~Y&V)VjAb`U0 y@s7v}S{48|T=W*GX9M=M^#Uk>yude+3RLqV})K(Ge=1;k!&S#T`jG7Gf+-3Y+LP-WI#GY;)7Jbdt5G>aW9By zEw+9vzk)PAMKN_>Fn?q+T2d~gbtb)mC%%Fxz=I~cfGNU*CAoho#DpZbe z$A<2cW*VS$-hNLtH9;)NhZ)l*ID<%76)MWV*UT0)SMI?P4KC5S9vc$FyBi!!s7{N z07w;ejHn`GUpUwZr7)%>93qgz4dnE(g`z?xicvJQ7O3GCDm$&o()KvLh<*eD98J3S znC=8VpU`Pk)I%B_Msf(m?T$z2wDEyN<<(Ni2G5o&!u9K3OnpM%gu1Sg>o`kbdbLOl zoQQW7Z$$;BpzE?4S4mTnTkqM+XoHzcel^6wuHl*GJ51U18Yz<xI+p~zl7z#-QW;KYZnsj<$&m$%?_?8H6gB7>o>A4>b`_6b2m(7Y&SqWNeLF>%- z{pgRZ1i=P_tb&WI0{;*}^!54n^7Q!d{QCZp3yxQi`9aDB|3Z+z3&$+5AfMqun#12O zzn5U?xPa|g(B||YTA&2iDT4XbWpp0AK?yFIf|5 uK$2xq7n-<-4;U zHU?j7Pki1PeZM~7&4lD<9Z{zn<0qyBKWGT_ad3Uqo2OnnO(NT=!SU=~UZ=?FYCXEBl zYP%aW4>haqtk*o!qO!eSd0U;<(N^u_ZSN+hNi8V3SLbhP>Zo(FUCM7gFVLX^B|(0{ z{qpDa*T2u_kDq_v-oJi7gLzuZQU(UbJ)SO(ArXh)UcX+{=u@^yN}FCX{M(oJve$Y_Ti#VgOQrq%8=`!Vdv8wtd40XRv_8WbegU}! z*XJmh%FgxUF`srYM^b84%*T1rTTXU8lK<^+yYo_8dg$%DC%?|vqhrak%if_p={Dzq z(q7Yv0!#-wpLTI1JesDU;d#K1F~ID=m*daW7!rE6w`ry_mc8e^Kj{(UyX((ypT7L~ z@aNaRkAG~ic3u3`<^b3EXN-54e)vAv!oHH>pLD<eYYPGs0&Cd@0UL{Ua*_h-pgTe~DWM4fKutf= literal 0 HcmV?d00001 diff --git a/examples/tiles/flag_off.png b/examples/tiles/flag_off.png new file mode 100644 index 0000000000000000000000000000000000000000..d077251d5311bf5a7252b6db1daaa8e13d676e0c GIT binary patch literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCilW1AIbU zO-&sj$i&0}h>VS0OiUb&jX`Xnl56dW6H|iUOh|s%82r35`cZGPkAv&|`he4o@y|M< z9yA2D#s$8enDVGO#KFpWe|5~e$!Vshj`!;PnHbyV0QGZ~1o;Ku&!7K(J->haeufV} zLK%Ug3q4&NLn02py>L>fS%Ie^F=X1V_gC2N{kNQL(Q_-=qU@8rOz{cz6*pkI06+2mu(nU#T#W$<+Mb6Mw<&;$T(^n`c- literal 0 HcmV?d00001 diff --git a/examples/tiles/flag_red_a.png b/examples/tiles/flag_red_a.png new file mode 100644 index 0000000000000000000000000000000000000000..679196b2422f213dfe15aea0263f225651ddb025 GIT binary patch literal 767 zcmVjLNzr&G&DdoG(j{pKr}Q!H8nsrH9#~pKr=H$Gc!On zH9<5qKmY&$PBA-QFE^_uCYmTJOEy7?DlTU(HEcOSMKV2+DJv#QKLOU#6UsMK|xkGL3cVqu0BESkz_zRL*j!} zzk6JmJV8J;LE1t=f;&OEKS7N=L18#S+&ntoJv`bwIp9A%**ZAkKt9(vH{(G+)i*WM zHZ;;SGwzdSyd)#ueor+uLFGe1K8q*&0000GbW%=JFV7!uk58}f-=BXEUq8P9#Sg1y z0005DNkl$r^b?x63x=U+@hItP`qeLNCyMENEdf zs5ShpaeEm3VoU}S-Gj1kuOa%hTiY>-*=|cP=0SD(PkhfvoOW xhcE>|*TmJc(b8b|f`cX4YsHcaazQR2`~c+zZ8jr2n#BMB002ovPDHLkV1jAoM7RI| literal 0 HcmV?d00001 diff --git a/examples/tiles/flag_red_b.png b/examples/tiles/flag_red_b.png new file mode 100644 index 0000000000000000000000000000000000000000..6c16eb20b362db4def444c750db033924c0acf72 GIT binary patch literal 767 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 Q)&Kwi07*qoM6N<$f;KjNK>z>% literal 0 HcmV?d00001 diff --git a/examples/tiles/gem_green.png b/examples/tiles/gem_green.png new file mode 100644 index 0000000000000000000000000000000000000000..b0a23cde4a387fcd971a2b5f26c2c0c9d07be141 GIT binary patch literal 835 zcmV-J1HAl+P)0lH9$2rKr}Q!Gc!OnH9#~pK{Yi%G&DdnGek5rKrt~vG&Dc} z001GTb|b5KB${v}k83J@Vk>f9C!KO7uX`r6eJhA)FI-bEQ%^EPNHaV{G0BTcMrB3IjQ0S;M(2gRLZ62w3F?C-vM@cY$WKig* zF>G5ek!&(!R!QQaG(JTyh-gvis4>lqGFnng>KdInS9^jm6oyeyfnfLEd+*(<)$VQWZYBKxzflr~ zNhArjPp`^*>EU}lJRvzz^1nn$1c@LK{HZ`Q^^8N1(RIy;F910w0xKI=04ygO5Kq9( zI~Ir|@babdu}yGXE^!P>biQUcQNsp9CgA3ML(UKj1bL2u5oCgVwZ0EASD5X?_0S*^ zq=Nh<47dx}3k)f~05s=eHDn<$WVr&>trqA!d}uK3mJ048CRd=l)gqmTPXzO}T|_N# z1*pj6;S0%(ZOa989==k{$pxcy9@c4QrGk-98pgLM6?`!;0w@*qeb6xZbD;ojg#LFL zMzD#tBv)X%)rmJ6MsOSH~R1Z4gM{lBA%wzG-PzOMTQ zM1B_+b>Vqnc!q)Y+ki&f4*nq>f4KU?X|htOxcL?CSmIA-L&u@1rDcEd z9o=a0exTB0QEmN#k+o!#U3NoJ!dpU4`Qa4@-~}~7a?MKwiQr!dz5yRJ?tDEdFG&CZ N002ovPDHLkV1lZ-XSM(U literal 0 HcmV?d00001 diff --git a/examples/tiles/gem_red.png b/examples/tiles/gem_red.png new file mode 100644 index 0000000000000000000000000000000000000000..0eab013a3c9f6637cdfc28b1d3aab423b42ecf70 GIT binary patch literal 837 zcmV-L1G@Z)P)0lH9$2rKr}Q!Gc!OnH9#~pK{Yi%G&DdnGek5rKrt~vG&Dc} z006)*E~GCp#WFInF*ATNIPPd@?rCZ5XJ_teYFaZq-$q64Wn?}yKV>vLNHji-G&t>P zXzpxm?Pg_kF*oN-O6+4|v^6!#H8oN-K2S3}a5X%tEH1?>DpNH+nm0PmIXHqlLFP$E zcRE3sJVEPRTVXgsxj#YZPfm?IL8CoEOEy73H9>4SLCtAvZ%I+^YiikTZo*|~lT};C zEGxu7K~^_G$t^6}LP5$eE$m`p>|tQcFfYzAFwZhE>t0>zTUyaHGU{1a(ls;bS50lH9$2rKr}Q!Gc!OnH9#~pK{Yi%G&DdnGek5rKrt~vG&Dc} z008~YMg7rA{?SSO&qw{wNd3)4_P8>TYBtG?FX5alVoy8Xmn?2qI!i)6`oA+kJ3pOt zHN1i_%#klwNYgk8%R>FkL+hX`?4c|C$w2L+EBwel{Kq}+r7Zl#JMX6~fN@9r#5wS& zEc?PY`@uEwsx0!XEcLN0^R6uPuPp!9QTnEU}lJRvzz^1nn$1c@LK{HZ`Q^^8N1(RIy;F910w0xKI=04ygO5Kq9(I~Ir| z@bcA4*(NAgsvLt7op0DJG_b*t3AlORkTb*rL7rn^1eqYed9VdB7npiSS7;CkQbE2B z1Fi!)14D{00Ihj=8*&sFvRr}cR!ejq-ZepnlKY6s73glYKcrGlAH8YX`x6rhbT`%c3M4$+q6 z3QV`U_(sDBj)fmm7WKC<_e?^+z^?dH&Zkj*dg_sY%%7nDcT~}KHu2dvao>c#jWNoJ zD!za)$A>P*hc3s4Int6m)|E8Oj4Hr^Ey;%|ynQaoh%Cf}KG~Q#%Z)W$RYTsKIE8CH z&XGjjoITiKPw1ye;-Nydhe3pHQtGKv>Z(k=kXG)kSnsbnt$#<7cq_w$ zE~IrbT2d~JYA%{_E{9r9E{kY0MoBYJO;_%&Hqnq#>8Mldt54^r zEv-zKiZi>+?y)DfGWX( zIn#)T}&hcz`ps*i@+0000GbW%=JuTLM} zFJC{;zi*#^kM9ov@h3;N0009bNkl9_CaJ;~=vUw~&9Y5*G4U%pW!D2RBh!7%tn3E&JB7q5t=O2IuIhP|c?fC*eW^S$qf zRH?u)>>YSzPysl>FP>BP0D>Oqu`clHMFGHu1~`joPxjPbgL>@47%|m-pV&2+EaucYaCssyW0a;Ssy>r4G0nrh7E(TcBBV6 zz*>JaTHjq=W7;1dZvlam5@@!y$LGvlxF{k>nRHCj3l-efS_r8MI*LjOoM? zR}z3b+?=1|o9`bW2p0GCs}Gk}7>z@RDzxhUK5?)hz(3!2mThO-0(|D>aJ};iilhl? zJqARxJ2G-FUxOHW(h{Ua1$o}w93MLXHrVsyDRNC}fl{1U-(WyY%@v!vn@xzJp*~Tp zoXzLtD*V79C$dX)0h?X0YBBnLkbzbb6{<)nZHB?jiOy{=c+0T6F(T}(1iU@fztythu?xiO@8hxtG|fyf&7?`bT64egYv z>rHJpuf)P*OUzX&v$;LBHxo{F_GCsH6P(Pr+HN+hs?g4`oo&Keh`5yjmYI{AiO^2x zRjRUDVcF^pTSP4YQKq^{GT6rhz@LC8uMxJjh=i+JL?VE=kc^Ye<)32m6ny-apTz(G N002ovPDHLkV1lDB*LVN` literal 0 HcmV?d00001 diff --git a/examples/tiles/grass_purple.png b/examples/tiles/grass_purple.png new file mode 100644 index 0000000000000000000000000000000000000000..aae18a940492e72c6fa3d642145eda89cc6d8869 GIT binary patch literal 1306 zcmV+#1?BpQP)R@M=whVM%wgVd8>EsC!hGu3g@)UEQ%@;j?4ow`k^~Q_+x1 zx{F(_t6STsSlFvt+oMy`qEgYFT*j1FyR2N?X+no!NOyWvm%VQ4X-$H(WaO1tyo+0` zX+nm-aqO>T+@Dd;oMOVVV&Sh|->zQXe^Q>XW!;`#$C*#Ze^Z}lN`Qb>piMtuXGwrv zKX*<)V3<$Fu3X={ZRvnips88fnqR=8SJ81ukDgP^Z$^z?KzOHG)?Gh#rdic+NROdb z&_p^_o>R+2I#g~(j9x%@o>0!SVdKGc?y+ay!FBJ!b?(4)?wMD^wq@nJZ0em{$97JX zp;^tKQqY`Y!9qAvy>RQhZ0Va}!Mttiyl(58V8Bc~U#VQzl2o~}VB@e~;hj&+p;FMo zcJH=j<~%n`vS8w*Rn(qO&A@Z*zjE!jXy?9h?7nd9p;FPVUEiu%+OJ*Us#@D?M~9?T z)I2vzvts0+QO~qw<)2W_xM}FOXXiaQOS)|7tz6!$TivBq)v#XSs8`ssVdJr2;ypP_ zwPoeFXy>_U=(uU;rdHOYRMVnU(y3V4t6JQb-C4r&rgtWaXSr%eQCdx@+mQ zW8|}9hA9D-qhVS?(QKZff#W@2t)`@h!B>AmEYKzr8(`Ah4!4D z(@#4eXXbtG%-nlNw(cKICIKXX1dsp{Kmter2_OL^!2bXc8ih&^rjio^x19It^$JZU zfKs96ewkXk>emX~3S~NgE}IjYT8?gwKE<7_69?$HwWih)G7+~<44~xC_io*B;A(Y! z)BSsoeplo?c=n>HzWT!HQ(nFXr3gTSku4pC`8~b;mdNtb)LrMQ+7pU6ska1Opw!Xx~J9!bd|7 z$zqdVwk-$B9+J?uKXID?2*jH@#JMtt_4-#r2O$k4(y z>>#f#9^HLtVQ2&pAHG6ZpYb~rILKGLd~Rjs901&=_?}Q`WeyP^@dk;^`#=jh)|byg z9-1|uzz#g|gY)KDM0~QQ4nS-pWkJ##l#k7ak8B&yGnqX5j)v#Q0Pzh%S$|wqO;2z$& zV()Gz$@M0714)vAc>Esyioe;)SOQmbaz9DtnhkEZ!JJEy+b`De3u~|jWWQ2x QxBvhE07*qoM6N<$f*oOWz5oCK literal 0 HcmV?d00001 diff --git a/examples/tiles/heart.png b/examples/tiles/heart.png new file mode 100644 index 0000000000000000000000000000000000000000..9bd588c0bede962965772e5beef1ea96d5147680 GIT binary patch literal 669 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCilu1AIbU zO-&sP4V{dQ9e@lI6GsyhAj8qn5X1np5u~xP3sBSK(CAgMiSIHpUIYcU2ZmSshCK6h zf0vz|;_CM{HRWY!$m{sHo4I*Dw(jrq@?J%RZ%a&h>gJN~8R%f?ayB#jg}>jS)Qkv6 zuQy4FPYVk_mX2p(Ve*e|e zG3#z1L-#}ly;h-SgWVzwQ<#}F7&*SJXSVsrk-qVN+(Y3Ax&6tyY$87<>}zr>kKu5d zSkDo&qSB6Q#zu*92SqD+>nxMMA48sPopRyJ+uxVBJbU`YBkN#!rRl^v9#&oMw8Gj* z%WlrK`!i2ScOB$BF5mL5#(AmwzrKep4l@58g5L_i_&Hs%zA*axUU#R)hTqZqe#KO% zi0oMUsLsl2=9*>ZVr&0@x_R-KvDVVNTfddho8Rl_+fiXYf4@=8^Sc&?;p=_V53l*l x`f{r1~0D69h}>oaY$V@cTgHyjw544$rjF6*2UngEuk9hd+B literal 0 HcmV?d00001 diff --git a/examples/tiles/hill.png b/examples/tiles/hill.png new file mode 100644 index 0000000000000000000000000000000000000000..357ffdbd1844b2cbe988ec41f113b277fa9685ca GIT binary patch literal 389 zcmV;00eb$4P)F8hEXju>wtja2aI^pb0QyNpK~z}7?bo}O!ypUdHm`>R9w&=glo z0k<5Xdg|5}PMPMdEUxYYD%EYk?bYfA5LYey7xHQ=e>lX|MZgQH3xLCPbW^P}%00000NkvXXu0mjf4o#g8 literal 0 HcmV?d00001 diff --git a/examples/tiles/hill_top.png b/examples/tiles/hill_top.png new file mode 100644 index 0000000000000000000000000000000000000000..f3748da732abcd0212515d95c4014f181cf74a93 GIT binary patch literal 976 zcmV;>126oEP)0kG(j;jK{Yi%Gc!aqG(a;mKs7Z$G&Ddo zG(Z3V06SP!KG&BgynuD8Yj#zk(yTek#R0DAy$b00MAHL_t(o!{yd#SK2@n2H>bH2}@h;zN)n@ zP(=g<3IajM9`5}Af76-EBm~HWWb&z}?*~1{aGyIjlQAf-1SyrZdKj%-5`9jI`=eT^ zE_YI`s40QN`cjbkVG2OiYD-~inz|1t2j$atuQTWA^xD&as3Za6X8{E-?0xPcwt zKOZKv4&zecH>)@Z0F@2Uru|P7TW<*OnNZ+Bb+v)p^_F3i_)y`)Gv5gc6c~2x`!CVf z3&$kl*nEfr0tf8;_{tOwl@s=>fY7 zMG91Lf-~r*YrP)g3*JTrC%EW?k*S=f`+zejxCb|HT#_{o&QMa=F`S+plkD-nvLmIi z$N1x0iF&eNkAkKs^yg<=25{Mtsw?au-V&+&K!DxD?{dI|)goZX0Y(Toa)2EIwjAJw zfG!7+5Fr05aGw)!y_|pr`G5uF0(AD0lm|@119?DqCj9@u3}8Q5>(@_KfVTEFUVfQ? zjn-KK(^+_N-y6~au3?G3wd@B(tn^0t4v@NaETCs- y9RuiN$esvbdyororRvv!X+b_<0XYHqzk$ENCR0I?#l$`U00000kG(j;jK{Yi%Gc!aqG(a;mKs7Z$G&Ddo zG(Z3V04&9ZCY^FBhG$XVqdwP{C%l3%$cik#fG5ek!&il zd@ZbbLDrg5=&3Ehhca4HKiZfwV^&b;s5;e?FNkPOwT&gafIeefD8PeF=A}Nv~ zwthU!OVB)NYp$A&jRM_KT& zH8nvj$%iAhe!^MoQUCw|4|GyaQ?HLd-ycseZx4T8pYOi_`Y6{W0009?Nkl zN-qQog(C@Dk#I=lC-IDOH1_mNv8X&DU^ek2P-1ohfEl$LIw1@x!%;56_K$=Od8DrFk@G}aF5WpOnKx(4Y zw({^hKA0Fl_E3c^-~_2Hb#;iJLJ$FBq=FTAJXva|h;QUEN~D5%751kJM>@VDHArL) z3U4)ITJ=Z`AqgMD&fYs?dg-h9NJ)4be|+yF-l*ZN5RoMG`Bn7;(D0E;NcbQg8oo47 z0QedH@CUfXu>{cf2k6^?onGb3t;We^}_+|4lTdoE(>7nZ#)6p1=>+|3fnAz zu`8Z{t@;*!1L`c33}MEkrddxdikQ*r_OEhK5` znr^ju8St!w@;c719v)tk)I`^-%U7J{#RJeqho^OI$D=!Fe+qzhkSAmNlyJR||C4Ej4GRW}zXB*IM^4||K12bIk{@?&=(4TAo{J#Nz Y0cFvCKPRRf`~Uy|07*qoM6N<$g6GycBLDyZ literal 0 HcmV?d00001 diff --git a/examples/tiles/hud_character_0.png b/examples/tiles/hud_character_0.png new file mode 100644 index 0000000000000000000000000000000000000000..c26a1f46d3095ebf574938bd05b70726e7ed4ece GIT binary patch literal 652 zcmV;70(1R|P)XMPR;00Fp3L_t(o!|j*b zl7k=&hSk=3LVK=f;r*Yo2D^nQ4xyc$*`4vfvn8K_gd}>$FXe534e;B5ET5FIPXJlU zl@75hfa&HE5jg?kkT2vhIv`G@$*t?9+KCV{Dqym22l1o2E2R%a06W0yi_ld+;J1_p z$YE_IW|I4eD1ZP~-skqB0Ur`Z0PNuSngu|d0qolW%(wwi59weB?8jxL$zC*oj;(-V z5rMb5@vqzpfY+SOfGcE^4UnN7G1a`)1Gh}aq_E7Cf&vuN~$uc`jb{)DfQr(puoFVBw5wl z^_sZ10wNT7T{0$ty|En7F$#QyJ3?p5S6t|g4j2HkIX@NzsILYGOx+nOyI#%J`whL- zIAHiw1}i6;(~Ylmck_tzny~KubpUmfxuG?$4q5(k#^OojGUmm_+6a= literal 0 HcmV?d00001 diff --git a/examples/tiles/hud_character_1.png b/examples/tiles/hud_character_1.png new file mode 100644 index 0000000000000000000000000000000000000000..9adceff1c6465d0faa4ffd5429e58775e78fa886 GIT binary patch literal 517 zcmV+g0{Z=lP)Q;k)W-T zqOOyntpET3w7$mN;pNZO+xYqUn5MG2#LMdK@A32W*4yBwvb@2{(BtRopRBjY(AKTE z!IGh^|Ns9{-*0dL000nlQchDJufN})k8fYkFHaBeKYsv>dmAPI00A*cL_t(o!|m7G za)Tfc24It_L=fpAiH&mD_kYTU1=FddGaP0*z2Lue+)of#$3_&UsXzt(0BAU8B|twK zV-AF60__$5H`~h4Qu$$3%eG>6=%8`CU4JCjk@ID8O77YfK5i;HLix zTT~h_jJx_ofMUJ8LMA})@s|(C1@^uGMI4g-t4&dISA4V1+IuFdbfIrO!vH?Mlg@8K}6(|7c z0lVt=k;1P-%c7gA-$(iZ_zNTw7=HuI5Cw1(09tGOKK0Rnh9Jw+&YS?K3X}u!t6(>x zR6%6)K6vcJFg&pZD;pMcx#>mjt&(+(evb@&Y;Ogz~y2Q($thbn^viSM=|So0004(Nkl+m?bb z3`Mykm*NPb0@D8fUrJg=s0QaSyv&+K-il1T34DS}4}2_IoRL}UDWwnWUqZcL{Zn#8DvRR#jYlTc0)(2fFl zpm-*qw49wl3VfuQo}9HLb(6PZCLU}B)tS~Y4hT#spK)#38Y}`L%C9E@v?me)17dB) zFS`@D11tc9`y$|p);>O!Q`^I4mPo%q0ouv)E~>w6l|eqx1*m8F)nsfRp30p)iJn&+ zIF;uDs$nXaXt_!_>_lUSsy1`+BOtIHxE>I_RA4or*t!F)!4|-AGr(QA6<|QNSjHLy zMDkMzpcm2)`N-}3X$u+F&OyRvyI!&XTi*fy7w`ZCv?=@lszlHL000000GcRL_t(o!|j*b zmVz)0MN#fZaa67X)BgWg4r!|`7=~2WtThkhNzrWE^qe$$=MTf%0XyK&0jyB*CLoCU zBeE!T2KXm#M|^Mtu!Juo2^|1Tul`$xCY*9IAXoW!p`*F16TH>m9~)t!FJ&zm4Uo$G zLD(_e;bBAq6iEI=7-18P0!XoZA#T9+DFFE5O}qwdBB26$1kk_-6aYwYL;wN+ApsB= z4GeW#8vrP(AOM(j0VG!NqH+eDb4j?!s!eis2WW!!fB}?bfF`K8&V)d1QCTC701F(el;<_mxrN^}o6z+Xz> zS;dehBrSoiZEMTeu!JM2CxQsNOQ%+0T1z{<4Jd$2nW<6BsAhXewgK#E=US=J6_A>C z&~&yJh=3!vG(7aZbvsnpIlcfAyeB`pYP1PR?K^EA9p)wvy;iWMtQs8KE@HOQlx0N& zf|PxZZ$jEJr(SLRJ|I^k_egeTQiYivb^Kx>d4U6t+>IGp{@V_ z|C80B^(eN0hD%{j1I6F zz+x&O?L0f#g$9`B7Bf0IFUm~-B-sjBxd!+!UFsGPYk^W=906bmsV^{8 z*g1e~%+cc!)C$rJ>)^9StJ4#}I190AyWk5P>{t?pPyqCc_=mvRIHAr0mfU+OGaL}! pK#2-_!mn;Be literal 0 HcmV?d00001 diff --git a/examples/tiles/hud_character_5.png b/examples/tiles/hud_character_5.png new file mode 100644 index 0000000000000000000000000000000000000000..c13d0a3bbdce3ca3d46e7b8a10eac7305c3abad4 GIT binary patch literal 645 zcmV;00($+4P)Zf`T3Zpvbw~}t9#dlHkN~I^`u>R* zas^N?0cC}{0RdcKvvJe#bV>k8xFj#QU+v^^F>5Kzv@7S@HeOg~#{iMc9ORRaogv1G zfB-z$K$R*VC6gi$0G}5~)X{62A_AbP4?==ISe1qVXeXl#QeI4@$Tt*N%=@dfL z3E%FvEhM;Ea}>~`SIb5Xw8-F(3qi^uPLN)@QS9tXD?DdcQz1KwO}iJQlJZGQNTjYU z;?3lJ%vAGX7e&(=-3x-C3_T7vYxyfZf`T4E5!KSjjjEZ%;oT-(L^!zkdMu0Oeu;00G5GL_t(o!|j*b zl7cV{h7kpN09Nq?2&M1;luH6q%GNc-*_plIzjVlFoBT;2`1(-62G{_950H5tu}=Vb z*NZ2s0V3^CS+Wjr=qByu3cwyBRXq@R>Rv1kwi(oA_RZ z!bErg8024-`l%8Qk5~+`Y`9 z6Mz+Hrtk`lkVbSPar*-30?z18gbb)^if{4!xkoST`sdH4erj|wqXHN_KC@7BIU*qy zL_oAC0k~j52pRxtSm=d@M8qV3eS@cNcnd}VU=8$7-CuYqaJi^<0CWKa_8tI(xOD+^ z?QDlPfVQcuG;mKqAES(^!BU|g0IOHbn_Bn*F!fVkw631`y$Ve??`#?%w498seDVUI z6U{KW&N`C_*e&L%ZG`weK)kXdmN6j=6ni2r`iU};U@IRh_YHOw0MwzoYUfB0q^XR1 z>AZ+PDQ7D<0g_v*+3YqhiJK|JcO!L~22(lgwuHP~!}0B^zBj$bnMxh1X207akM-wt zPwja6VwnyRar5toWYvqN%rlf=+xNl-`0s#k-Zv&`3a9zX00000NkvXXu0mjfKRGza literal 0 HcmV?d00001 diff --git a/examples/tiles/hud_character_7.png b/examples/tiles/hud_character_7.png new file mode 100644 index 0000000000000000000000000000000000000000..3a725e37056e8787993065ea622d6f140154ceda GIT binary patch literal 638 zcmV-^0)hRBP)58w7$mi^YrTN@8jp{*4yCE)!Ue+vY)KC`1$#*xWUNK z){>#E|NsAr)E49b000nlQchFPFJIq}Pp_YEzkeSO?>_*(uUIhv00F8=L_t(o!|j*Z zl7cW0MUgc?h$G6TZ2$k2LsK9mc9VcL4^u_IVUpt|eRGZ0^~j8`US2I`o{w#^L0GL)4b^lp8424DjZ23?vj4=~HPt*ej zFUJ-18TJw?z#8Thl!OZQ(Vz78Fbh>16L7;$;#Mm2L>BNs(_{k>$pSJW5lO%(VC7=y zp|j_QC0aRp?jhR&7zLDa5PY1&Er24Re-b^U0IGnJFcAq*1vIn(6rc*oHw2&nRluDx z5dlyI)OZlk0Hz3NNfQwOR~FFICL#c#?BcP9d=DTPZwKXkl2YPoLIW;S7~FGh4~aH< z$rLDQnTb;`)m=Fj@%ew@1pEiU YFRyATI&{aOS^xk507*qoM6N<$g0IsU7ytkO literal 0 HcmV?d00001 diff --git a/examples/tiles/hud_character_8.png b/examples/tiles/hud_character_8.png new file mode 100644 index 0000000000000000000000000000000000000000..2ff2f50e6a48b49a92dcb58db07aba32601590a7 GIT binary patch literal 670 zcmV;P0%84$P)h15Crn0TL z!IGh^|NsBqh9_zO000nlQchEEkFQUE&o964-(MdOpFaSS7AuDU00GKLL_t(o!|j*b zl7cV{hH>Rg!IiU=(!T#wuBlq7jZ3OCJ9}a7WXMOF=MpL(Tj9>0ZtkP`t+`wOn_HuRdX zrvXZM_c$rbY6v1_6hHy~t$MUs;I(i8yYq{ka%}`~K>$DoMg*Xs9^p2C!G{JDIOo$k zgk&2~K>=?*kbH5Y4S=QrmUYy!x&3+-(7yqw;XH#MK(~R({KW4K$w5+tG6G=6%Gl7V zaQH$S@oXKcNcTw&rJG#;n%aphwK8XE;ftb$Sl~#QP;LSsg|+FUrtf=8j_DSFS&gWpHjS<2$Tk3$n$=NS8G$oY1c3RZx(o!q z7N;Mevm>AaPIeAj)Auvv)t ziI_6#Y;@(U{gDZeOy^ur_r_LqFC=xiUgx_Mt?5ACbWay0bZ;rmTC;$O-xe)=@!4n6 zwcKmX%cBSPr0`udtKFSZhVg5wZc%AtpZ^OVz`qCl0FQ(*nT)s+VgLXD07*qoM6N<$ Eg2o0tQvd(} literal 0 HcmV?d00001 diff --git a/examples/tiles/hud_character_9.png b/examples/tiles/hud_character_9.png new file mode 100644 index 0000000000000000000000000000000000000000..a894b1370d643e917b22327d71b90df7acb96914 GIT binary patch literal 672 zcmV;R0$=@!P)Iavb@&Y;Ogz~+~MV)thc(v%lP^E$k5i9rn2Mb z>XMKX000nlQchDJ?@!Nfk6*9fFF$_|pT7WWr6QvM00GQNL_t(o!|j*Z zl7cW0MG@HvIHLk$$nyVRIdZfmx?yP2KZ}0RfDSXGeFjg zr*?T33Mg}7tB8XDiFj8U0BH1;?rXZ~dLH%1mS6#?I)9|{q2Z{$$q5cn!eQ1+Q(V2G z!2y)}2Wjin!M7C#P{GMw&P9PxU;q%nvwYVHz?mOF;2d`V}2Y>~m>%P1Ins@>A z?bOu?kPwO33xFh=9#1Aq^{ zO{+rzb`*Lh#L0|f?gc<8F(dytx18vY!lAG{KTpNP4*(lp&od{fo@Pv-O-={#v z^n+Nq3E;y$s->xp%q}h$q$mK{&zqvsEux~tb>%xj9D8b8P@o6PV=x%4>Ff&P@@R|p zb{*)#A|bQU@qi{^xMp@G>wXsD0jjqf!-0;jLRtpsFc`xD>PVD$fSRsGCaK<5Cebl-Bui8J?9 z_NH=N_!lhCqFL_{_g6R7DAkDO^Ie%FZQCZ>|Ah_k4*);#GAGy#U;&5#0000mt&*UulA^AYp{&Xnp|O3<1sJ{hoOb2#p-6(D^iKf25he}rqzG3)iJBL{PFVE-FYIp& zKz?Wp;oQ%KAAlQp1MI3@5Aa@BG9Cbq(%SaxO6dh;=m0nhonV|nLJ&}YX8^j^MUbd( zJI)-q2y!I!&PluyXuUfNIRB$Oc`mtdgRxlcBAV zpskszssI20w7$mN;pM@~(9hM|*4yCm^Yovrx9aWhy2Q)l=jzDN)~&d~`1$#!vb>n4 zvj6}8lA*0=+yLGH000nlQchE!PmixJZ{J_PAJ0F3?+*a9WIsLt00Fs4L_t(o!|j&a zl7k=+M7>`knyVVc$o&6Tt_&a~OUg<1X{(%BagzKqDfWZL9wE-HI9zO$|>~?xQRe}#>4=!3X*#-!?fsEqBP|kE+cdZ+s&afg` z8GYD|OLcZFH~$HE0gm^9n+D8pv*gRdN|?2SrcRCHke0?W(um$UO?@Xc#QPw&t<)CO zRnPz!h?6;BtY+E_yt#PZUMv88V8`IZ&n{~A0smt z;q-vtRT6vSKXt^y$~HjnkiEY%>MB^tD6T1NO_2a*jZ*)UlteCV1{-+6-pwng6s zgDDP-N4L8cj$W(=MoJG#`N$g-^katAbTO>^oc`}wCjK6d^A&I|%{DFolN9QZ8;z2d zn18$vdbv7Ju*_IARQ@?seVR>Dn1hT58yOiTld$jDz+4&7kZ$vUtUJd;jFumiapA8R zNP3Wc57SCo49|^09d&cgr=nh^8_KGYdFN0>;>pg=o^TRYAgG_^0ywNoUMwmhAvrBA zEBr_7dLt-`)C&xZz&W}w7;LF@hRdy(Edg3uT9<3U^P&3 z#~)qf1FJ%CiV2M8Am&N{v3PK8ZGE8vSgi%$WSBj@aG?L9;ZUmS0Nv`h2_?YBB)KJ-l zt}HX$>)=c%$bS$|%KGY(7_~vBaYU=Dj>*ry)Fj1Y<1V2G#BY56<`f;t$e-Y;+iPoO z?^cPTWRoYa8!1-iYuXd4w!L8Y_jc=QtF+$|5YoTbJcanO$?EF&w=jh}3z`<7G%EKh zA6EM^v7k&KJk&MR*8Cy@2TS4ZMu$FYKyU z)sIz3=^$y|X;WQv=`Fv+%3RHJpxP;XReh}baalRhfG%vhs&x3_M($4NF9A5(mQ_>O zf@sIDoUldf<^}Ds?@+0@z`)r-y{x%CV@e@LGg4>?t!WpTlAyK>xvLdW*g9FENi|P&z}a`>_5nUYt9jWPPY`W-9caLU(Uc zS5m~80ZUAgaS`r#FBPAFYQn@ah_GJsmxd2 z1!FzOUBz2U_t*ju~5g4zQ1n@9W(VbHVPd&%uMmGY6$n!2>0+uZxKQ+5)7K+Yrg3m$@q49Roxl)7Wh;6gem_6#FIdDYjh3G F_y-W@rs@Cy literal 0 HcmV?d00001 diff --git a/examples/tiles/hud_heart.png b/examples/tiles/hud_heart.png new file mode 100644 index 0000000000000000000000000000000000000000..0222d381abbec8024dfee250f593033f4f9342db GIT binary patch literal 921 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCilK1o(uw z{wDt5{}GC4H*nWy`^?Cf_L8E;cl_U}J@^XBaoSHIWsajzo6 z-{GLyZ&O18#EL*nvY-aWg zf4``xl!k_mL#Y|*=>?xYeSVXa7~$ykw6O4FY3WmEM^jTrpnHo-W^MpFMW7_eFSx${ ze7t_X|9biR^WX31w`bTTW0uCiz*OSt;usQf`0cctvsM}KG!#0!aBbe*cYDQ-25X^@ zfA7CGNerALHgo3g&oftl^Zpck$)q#sZ{QU62aG@FGtQFa+`MK}q-g+`)@ja!tDmP{ zSwC&pH1-A8&KIrRRNe69`F?NTvura=jiS$di+Q%$Fz?uA%Xewr0*Psir%L{Ov+Foo z7^{Bs&216RV7`POe-E2YIQ6Z8#g}Wr|M~2aM$0`;F{owjKXF0s-42`9IR71Tx3>Iq zn!Sl7q2R92+CJ@$CDJT+EB0C~$~)Q1mDJGoL2&!bJr4V~$E}}lf6!j8_D9XL*>Uo5 zYB83FG&&fk{$Q}qnCq0;@ZMSZ)|Lcuc}G#E5Bwk4a$fi=&(9QIFfr#>L*b1g<5-RZ z)^`fJ6?yzR*Ib|em7y(W@53}#MF!`F^e>53LZ?J(t}KpKV|bt<*bu`YZ+GOMe7RqP z;f>3xJVzQBW0{XFP}|FT=5cvO7o%@Q|E8N0o;9Ap0Pvp|mD~c{(`s|l^am&HO$LlPg88-i!YJaBlPo>ne iAD_w$SB?VYlD^L7UZ@99f7=H!;onzf*$q~__<=V#8GcXaewwrusW z6K9ui-WwH_($LVcd+(w2^ny>HJ|91SH7q>w&i%(PUcZ~PaILASBhbCd1=2f#P7x>x z@(ZqyKi{9fUjDwn{`~#+{O=j^w$4srU|=fnba4!cIQ(|n^|C_-JPtQgW|kPA))H_# z#3%US|Nl^LNr4T{xAuK?@&7ilWN(V6<>&rMrx_$4*fVRnDV#A0UA$(oi0Cw-1E-#A zuZ-p0>Lt|>WPN(+89ByBr|)}*da_A`8qM}Ek4d{M=;wA>^4zjw`9u}QkXv=x{P1M6PT2gaEUR~CEne~>e~<0H)U zf%p2IB!<7qDyy%i-f3qHU%xZbk>h~&0oy7AORiKVxmOqU1Q`mZa5!i+u)k0G|DE0X zfc1@w%3qE)*x54Qa}52(C2?H-f&jDB2SJz3dcDl;(R(T{i2f`;Sp7IlU9Kyfp{pX%yfg9M z>$okAiq>&1-0!^V(&AH7)HhF)6?Cd!C20DzF!OV^^X+fNi(miRc_D7X{#na*gmHz; z`Cxh6X1AW9@U7g={TufD{#y86_(Z)&>e^My-tliKUgPri#m~}j&3vl$oE-)=Cf^o| zwTmulC}4Rwd69ckNzXTf9d%E|eZ&4;S|xHNzBJQuyQ1yC$7cO6xBUGh|I6i{t?Syz hYuf1zJO%3a`vq6t*!!2O8JI2^JYD@<);T3K0RY#c&4mB} literal 0 HcmV?d00001 diff --git a/examples/tiles/hud_heart_half.png b/examples/tiles/hud_heart_half.png new file mode 100644 index 0000000000000000000000000000000000000000..b3ed8f2c30e3b3b0264ec032f5c90e09e5c99c43 GIT binary patch literal 1033 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WMyDrWDW2M zas5vU02=ZxJA2KJgD-*tn_GI?1H&sS8!ukDap}fgZ||_a3Df7S+WIy%;f+hUH&a~wUdPA1%gES%@Z{ZxPdDv3x?$7y_j!4*BEnyW zhHOhrad7Z$zZw>v_$Dba!qF=#Dy5;JBR##~)2GjO z?mvE7Soq@gyN{)%lNPRh>g;H0>Ie*g*|&OXfPNDw3GxfBk3XN^FTei2zyAFF_WbV| zB9Ba}XJBBO?CIhd5^?zLwDjsn20X`arW|^^_g38ZT|sW#B?goD+>(s<{dc$YKKE#Y z^R0cm+yAeAGVx1y^65!IPsO#ivaMnKZ>*4CVRSn6s>X{2bCT3pX0%qiEIqM!nm<#3 zSMg4+XIcjyJ)a&L@`%w*@NU&y!Qk!1y!zMY>g_45l1V(m7!p%gYw|hu<~GqiJ+F2M zx5*?N`hNWI%#g!|0-u5y{?(U@E!KOtgeRflE0=8c^6ftFE3Vv@UUs;+W*?J$DAR?R zYx(2)r(e1JEoYmfP3)cKwddy)B{|4F$bDA)tyfNVd(>KU>npW;%1>N-owj-Bc7MA+ ziO0;|G)YYODqi5d-*0DJ;C02>!t3roITqif#BxCX0Oyq#fmfMB$~AAUsc1N5*H|lI zWbVt+U@T+MA6#X`dnL<{Np^yBnw-J*9s!1EhU}6|Qx>1YKRjD464>`gFf0u=OmOm0 zYVh9Q%@`lHhT&U6OM8J5o6G~l19BoumorrU>3-M6D1S0te|Bl6+>JAj+r9f;8*Crd zB&AgwiYhY*b20vT;_oFtjj_CC4|}%%ERWQ)`@K!4zx%^|L+RYk`q?TgW5O0n@q94b zc~Gk9y>-QOwgADPO;roHIhuY<(qw*6`$RPJw)&5c(vGgPv_H+7adgwo&UKCVo&Wt+ zoK;*H8tFX!HHYG+I=S^nzqg85-BeWU*?w_K?A4id-4%Y3_8KbHs|Kf}VA$bCuuU{A`Ue3M)EzGE3NYz1c)I$ztaD0e0sw8v0crpM literal 0 HcmV?d00001 diff --git a/examples/tiles/hud_key_blue.png b/examples/tiles/hud_key_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..e05d443726ddca16c88d7a51ce0b8079048900d5 GIT binary patch literal 989 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCily2Ka=y z{wD@m&WZd0|&%pus!J=P+u+_vwGnQM%>U%HuNh-E^vsZXI< zK#93enoZp%^N=#@;sw^t$IP5UmMvRtT`vZQBF>ySZy8f<)pEwBd{IL~ zhh59I^z;H#YcGcxmuJmd@bu~PsHl{iH*Z^K^?&;G+0oI*)YQ>&{#~F){l7`h0Qy0o zB*-r~-d}%ze*b-W`}OnR*PrKSu=f7Bg@J*o-qXb~B;xSfX*Z|Mau8?>yyR$hz4F`L)BS*80gDXZ1zuB^ ztxNVZWxO?*xavB4#$1EdZm|tl&;C5@w^^>?XStcc*}RYC+vOV8-T&N}*$|#4+u(SA ze_Mn^a}|e!`EA`rd5`W}oh$GP+o)V`vYKJmOy522|9&^TIF+h+LX^RBd%m>&H}-=Z z2}jiv`4c1)C)(dIa@frykY9a2Zb8nMex-VY#D)tRj2FIFYs&}O9{G3vNm6el&r&Cb zulLj5uKa)fJip<>#i9%(dX(5A=33+~-rXSlYyW>c#qZ~e zk4|CMh%hr|_^u`Jdw*O#Q$zxXQ$uU{n>U-j|C#>Y(^QPffH|)0w#EPH;p_cR=I$0q z*uZc{^?m)no?rJ5SU>u{H%2#=F~WJX3B&P1r7IsU1`GWc-evudjrl@rLk4RgTfPD> zo804H_tpNDt>-XMKW}h;(!TuDddmumYAa{`*gZ{P!BYl)5d%-VCUO1Ne>x858TBG; z)ffbRR~~4yIo9=|FKSK&=ZdWd&OcXBInTTJ%I*hzmuuFDH_tsVpZUQbspW5#MV~2W z8SJTFKjGYD(!7<*>!54Dn({-OKR^Of*KKel44sb@Yt^xFT-?%M&?{R~nKYeIX= zjZ-2UGSfuA3-mHC{Z*5&@}o?l{vw4rnS1`rzHVT4Q=Yp-?``H5hHLXO)^*Qb%Dq2YE=}=W)mCbwEzkI$^#Q+X;#Z412g+UplPQCztDnm{r-UW|`sCo< literal 0 HcmV?d00001 diff --git a/examples/tiles/hud_key_green.png b/examples/tiles/hud_key_green.png new file mode 100644 index 0000000000000000000000000000000000000000..c73d98095a62a9903e6b412fb69eb7037aafb5eb GIT binary patch literal 984 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCikH1^9%x z{wD7`qdpgSX9KRv?8&&SB$S7%q)OI)Y_D(TM4%@%~u->df z!_s)&ZFMCjH41C1q?eSb?yQ$uP$IXo!YC@pIKa=(FTyY<`plX0ikoU08anhR=IAXc zO;0Z{v2)eg-!yC1f~QZPM@6OFym{N8KIPM=&yJ2hrlyWMC)yyd zo0al3Ypf92^Z)gd)wA!qsqQ>w`6pcIkNnlEuA$s}>!(~`kaA$QkX!JosO1$$J!`-g zjj3y{v1_>$2JU&)v1`3toR`N|1UmHIjY7#%%eaL{>k+sfllq6JgL)X5u| zH+)%fNoJa9Hx5@xu4&)eJ_qYX7!BIdojd%}KT4*ZWW3 z&isG;e0NKNhA2bhua)o1nrF><{^x%EUUw!t<&TWhCN9Y>k)PJ`FMq%PiM`!UhN28Y z)6Vi7*vt3x-+J@;3}O;Y;t3CBt@po?{eLw*sCO#EnTF~2w@vzgdNqIglWnn_7a|$n zZF*Dxv*lO(Va<>1aSNw?Vpy{XA&Rp8q&)*>R%yu*Fxs9fx(~|0QjB`h%NcPWcj_@vf zb6;~wcM0#zY0nvwpS^!Gw>S6Cv?i0UD?QYkE$4bY`}fdm|1-O92U05;O&9_#P41oT zNM&5MGt|bxhHuH?=gi)I&pN6l*&q5${%gKQnNQ+v&ZJ#imS1H0V0$m-xp`>kv#Nj> zs~+d>ocf(_>(>*~OTHbQv;Y6p$(}vhY5SbM+LkSiJ}$rM%A<*GUTaFdHZPeJn|;;x xndYQ9b34D?TJ5i)dvQrt^x4RrjDN%%?796vY`MXtECWoW44$rjF6*2UngHg%;+BqxtR2rgI+m2woYd1jpsse+-1MlH<{lO0L<`3-b4NeFh;l2(GiT19Gc;Ii>)6oH zvD4l$J-xue)bW;+K^*9;4nj!tisK2`}R8Ad?A1IU%?@UiE+#e-hU5cOsVqt^ZsOOe`HUK7sJ>4 z&)&}be|&v8=fMCi2BxpU_s_DKTAu#7|9?$0OO4wTW*ueE+b{HVIRDRaZ)J2?s)t;N0)ih$5xgflui5jLA+V_cs#>{KT_#$m4%-v=NY8_ z_fwp^Jp05J8)gaP`sHP2+df2dUAnSdX)e#R60MnE4^OQ-Tl=Q*^e3hahDn?9_skYN z&E!+OdPjSOOvmr@?9=9)5&W*icW9>C@B9dM8H1>sDy5nJi&-C3@7Z}Sf0feNuL~}O z9=~0r{r+wC>xt$bZ@Vq)|7)vH770I7)B39Vjn{TQ`;?VOm3gOLc`+reQ+4;Xys9(7 xE|%89S8uKM*T_A&BrEdx=1+nj;u-!iaL)N^!Kc))2AE12JYD@<);T3K0RXUE(3$`M literal 0 HcmV?d00001 diff --git a/examples/tiles/hud_key_yellow.png b/examples/tiles/hud_key_yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..e373f9b0c55dddfb1adc4e6fed5b788122b23134 GIT binary patch literal 982 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCik{2l#}z z{wDCG=FQvRFVp$7TBo;nN>QBE{{4r$^DXvF zFn+jFzoew*)m-hgFq{45tR8-2%o42Qzn}7QB+0oI*)YS3UE?uA(m))9?0d&1UNswP~ zyuSbb{`~v$_Uq@ruRqVvFpFcdAp-+bou`XqNW|f{(=w}PIS3pN-07He`M2M!)5lzr z-!5Fq5*QHq)jh<^c3E%w&VXFuJot=%sD<|ZJvLDPTU!cx(_NER-G1Hq5enI z;i8gSWG-JokH+e};D)Q`e=0A&%;WI4S~~IU`v>LwB^%b<=N7oivF?l-!`wah-8&W7 zeo8cCW!bK=`}|%eebbTEHy+ztl`uQPt!f50ujNrH1J!=wGD zZw3Efe_vj>Y2g$GmPhLQZp&tr&HecQ$4^#{4?QQ?Bitr!`&b(x@MHgf%cI}V6(60# z+!0__+;V62g!li;K1(hXZ8^XiQE>d6-tPnTKRLsbH5rT^q;6mP;Qz0OcP01bPG>5S zYS^v!YyNzJ|IsDAe;cQ-UaG^8l`)U)frVesESu`a$Mvpd>NlJiw8RD0E1Y|v>(%V2 zpZNFv%y{W3jAB0|Uqw#-{`SRDp}F^B<{8%Cf5bFJ=D|dUv^UBXd!PK;%wWpCW5L%G z3?1+FnYR5fjB5FQN(s?_!KQ+`!X-Mo?ee$auS^DWkrQ4?0Cgz<-eGUZ>$zOI{FfziY3ZiTt> zEY>Y&);wZ7`q*KOy?jKGk^7x)3y$`y{fV-L2VN|jd_~o^SES+n$7fdiS9YmfUmO!Y z_g(kent|=AC%u#gw#8*4@`KtIh(RWCZd19CalV*)N=8oW-`4Hb!N;M4_uG(c{If!=Q!X&%*ra*)=smuYq0v|Nr8{tK-XIH~;_u5Oh*bQ?GA7 zUyt8^PoEzz&+oqv0IQwSAOHXZ-AP12R9M61S7%$|KoAZfNR8Kf(<^#+b^(#16bqtM zA;Hp?e6`cPuQ6^GqbxhZ?v_)g!V5JghR0mM=TV6EI}kQ_aGAq zPLNnh&m~B&Bmxm6R_01bD0~E~_S>%}oqLYX^#KB%=YG{G&Ri&VI7dcbMvzRA z(dGS2g8NHaOeNI>NeaK&n<>z1QW{AWfgZ*6Nt>JR=IbLuJ%7l5YERH2s>=ywli3%7*Aan*XP_i3q1m6Q?C_D{&@%z$BSU5!%2dxt>f;b*uTst)6@jF?Zp%otMxJaO< z`40AvpkOXR0gM*k%d{>KMC<_a@X=g~kE{$BLPQ`)@d~tz;dnX0cnB?Ch17yT$D$Nz z2anAMa7-Z-(L;9#R`CpAWCqXNG3#j)k1$lx=F9$6 ziv2IRTBVKHv|M5i0bV0)0yogW_kWf+KYRM_$@DYE(4e!>v#*q9*ASb~2yQKl1KHc( z?d*J*P7kc*TNq(`va3i0SP@L@h)PhF5q#L$c|V<&sR#zzqK}UN0F#vF|MLCw7uG*q zXH|SG0Y@N$vf95Kh~Pj?aG)T-tJHRic)qXl-#@1!9${C(>*P8Ii)}Q2Dv~JwG+o=6 zaS?Q#gJi|oWCymx-=(o33-? zA%X_fc@2f@>@<{Ja5a?dYy7+M*4s+H1eg1BtnMef@nyG|Z>ase_Dnj|~6-002ovPDHLkV1h8Q%47fl literal 0 HcmV?d00001 diff --git a/examples/tiles/hud_player_green.png b/examples/tiles/hud_player_green.png new file mode 100644 index 0000000000000000000000000000000000000000..17338f43c1dc9489a1c0002ef8460ed9d0f9f3a3 GIT binary patch literal 1370 zcmV-g1*Q6lP)A*5;Swxn5S<9m?VpCA6k$LOFI!I2T!MnWD z&Nn_sN}`G@Sxi+`Uq3%eP*7Vrig#F8Vp>{cMn+LntdB%+Xh4p1KazcS;=W0Qbx@*- ze(%OsvX^q@yd+3JYu~m`n1VxtcTtRi$=ld++P6iTgnRA8U0r8%=e|E&TV~3taO1i> zQdE?d8VFgo|G?YaG0rBa#_Wj`VtUL2EJF`3UMp^qyDE~4+Bpl6fM8lES5`;2y2Qs1H1o4&h+ym*A zcp!rK%G?(o6fS~Q^Vc6H?H7*rBEqftP#Q zOeOpY5)^);JM%%eLB~k=5vVcTpR~C7QNA`J)bc0%U#$sR#8htrmEyl+rp+e}1Za;< z_WwINh3ZK_`RkBb@5ykgoEM%6h4YHBto3NCLz(m#UHO(v7JB5P2 z00q#Ryq0NIAPAWOf5Fc3@Focjmkm4C=YQynjg7FZVJPRqCK*gjKseA zMf6ZDf>pc&7?}oxWds8Nw8XoxY7s<@)iz#XsOU>kp+amME>VjBpAj~JC#WwcsMB5O znomkGbBIl71kcRq^0$FA+eutM!wB1xnMESNjNrjec?y0_3BOE#X*~c9ZPCX?06-=` z(E8x;@Zg8;wPsmdL~x4^`!_fHw~XL}yk1T~@gCpY98Yzd&|U{5`2OwNcTV6~dl2AL zYS~G=opRg?5m@U1oMKnO=Oo<&p^Rsy!qDu*cMMJtlh2Eqcz%`NDP;~eX$WoKJwgN1}e&37=-XrkfPbq^K_p@D_y zT|v%gwDfaqDzqAQ0QPWAo5Q&`@*l3JN9K4=JBKUH7A{X7{l+`R&qPYdEie>YpcwKd zSC=Tp^&GIl$|Q>7p-@DLbaZ8CnreaH>p{Wzb-23r6iJFx;M1&07*qoM6N<$f|U8N#sB~S literal 0 HcmV?d00001 diff --git a/examples/tiles/hud_player_helmet_beige.png b/examples/tiles/hud_player_helmet_beige.png new file mode 100644 index 0000000000000000000000000000000000000000..c57a83cfd3b6434383378ad275ddaedd8e36ccc9 GIT binary patch literal 1686 zcmV;H25I?;P)<;=I1gnZh)r@Ez?E5|P+&?* zTUl9YV`Fk_Yk5{yX7ls(fPjqX=<1A&meJAGy1KxlqpO#fq1@cxU0rQpSX)w3Vs&+a zgM*Lf&$~4>L1krhM@Lxy|Nr8{t1w3HbN~PV5Oh*bQ?GAdKaWq}e=i@O&+oqv0K4&d z(f|MiNJ&INR9M61m*-m>M-awO5~%C!Bu?TKr}xB3Y^OK(-n(&)ae-j44cI_}0ST~- zB!e10NvG5Pt=XB~y}P|4&X2z(^G&*We>Xd`vpc7(dqGqF%YaBImf;o)MV=QB&U74> z2?qxxdeR*aOZOxK0TMkOU-Lk?0KMYv%avM#TdlGzqUc=%pz^gZ*X9k$=4+ghQM&=+ zDRing3=eD6@nI_N4~S#Cy&ko-j*!xl8o!yTOql&9gJpq`%6_n4+wk`Yo(Kj*bBWTAVz=PgDnghq$1|b0E<%+VHj}cp87R>-TS^F0*hnh?Y`B4&e}5rBBcEw@xjJLgWTb{rA)7smm%HPa=y5fQ-Px zU=!dTn9lw5!;iYK8?V2*;pLa;>vM!mQkNz01&s>;n}EIbnJ(Fl{#W{6VH49-fQL?izH9wXU4Q5cfL79Y61@Rv0`LgB9@KSzu$?v5&SVX1V>@edJDUf}Xb`}t`#@P2qQA=q*1_(4JNqFaAH0810zeIn zG8KgEhiZoxGA~E)-o9*h-^aHlK%N(|qdJdu4B?6dICvnNJs|1H6%jzveX-zRak+a6 z#teR%I4%|pp@diCLO1=~eJDZ63c$Kt)8cZzKjyFh;}UpOtZT(~y@##w#CH`7@P0O= zgxv#%Vht!)=REaS@ga^VipPXvACWG3Bx2!DOK%&J6z7mvW<%PJF;6+(2hyOYxW>f# z5OckLt&gu{uJ77)KChNtgQ7HOCfJ}_>pp0v68@tu%R{H!b<|b64%FB9o6E)mH+?%07*qoM6N<$g4k(GzyJUM literal 0 HcmV?d00001 diff --git a/examples/tiles/hud_player_helmet_green.png b/examples/tiles/hud_player_helmet_green.png new file mode 100644 index 0000000000000000000000000000000000000000..74f76d62857885edf613aef8c94b79310c5028c1 GIT binary patch literal 1681 zcmV;C25$L@P)fu^PEJ@nJV;fxmPUGRP@;)lU2I87T1$?6dU}RS zsE9z0bUA!yZ`iY0%cF8~e|OrqYHE35)vSKSuue{2TU%>g&8B_UxPHsBb=tOHv6*Mq zuTz$WRG*7fRAf+udrfn3OJQe8SYlSEkVZyPJW^C_Y>Y&cY=>3# z%A+JmKYQD`US4cixte3utx!;4N=jQS)n(SMy1KxlqpO#fq1@cxU0rQbQet&=frEpOH8nwf+`DCEbVo;6 z|NsA8)T%rcyK4Xd01$LiPE)UMUq6pe-+wP3pU>~V4*W?j+e(Y-jGXZ`*x4``*`w(pj4K zmm>Yk1Rj?!!o=tD%$2|$sntou?VKRc6s}oFxGCU>Akb8^6$=UzK{NmQbS771lFLkU zFPi^AAhXz~b3=+CLpjC~ksA^CLuiyQDi%`A@@~itzRicT|vX6(V;#-Xp`pH;c|Hg}gD5k|BUZ8)h26 z{z0V@AFNR6Krhb6mMKbG!Vm-_2!LBT4Zq_H!>bP~T<&cFhUF`XO%ALB0znYk7x1?r zf9-cTo<>0BE{1Uxte~xfMglp^D%kTK{MWuO5LE6#6fIF=2DJ>!1_C#C01MEqS`$=m zf(xVE1-F49#4-?t0Jf{@jdc1(eGWi&mr8r8QI>^}P9Q^4hFAsLRdoc6M`#rUg39~S zt}3`N1PECpXoemD&%gmvz*ewrr7j#22s%pFt5vXsUTD?`d_?;QEeshXAZknrMg|3j zy~Kpfl=6{4d>R3a5gY zNVjVE%kc-qWEPGmo<$^pj6h(}1lR-dbULn=GJctcaV@Q?Ux>*V*aF5x08OA;2_a0U zsY_rpcLIYrBp5g~K0ZEmk}4;sh;nLRP6Sisa{2R#*HjrN%F&}!4G3VA3M`3e)erc| z$@%@DETzileopWmrXI#g=mTCxw3;B8SCf;+CqP+8l~)s-fR`~M5X`Vy)CkJQ7o3>T zlw-%r8bOi`bVO+7ENf*g1d!99oMws^0<>~gXk|W3Jwg)8Wtzl+*Qn@8>@f`!j&p&I zGb{HwfUwF90NpvQ4@OxI4dbjGD4k9ksndL*%ySVvrC=S5##eq^Qq|RKt_TEB10_WO zF5{tEV}*>09<2I7gU4VW&ym z#eyy*@M;`xgzx(VB}nKF=$C7lU(TPp?D0pQgGENaRt(p>TVGFXqZo$o(5Hc? zStNZgpT1!GYRa@I3X5idE~>f4i)JWbzv|LF)KU#sUAf`19i%IDK3fpcg)D{Fg0j9W>ZereMm&m{)ZzNaP-ULv7rch9RGCrecpPs*XN(xZ=c^KX(V3B<^L~# beI3eg{#cs!SFufW00000NkvXXu0mjf#i1CM literal 0 HcmV?d00001 diff --git a/examples/tiles/hud_player_helmet_pink.png b/examples/tiles/hud_player_helmet_pink.png new file mode 100644 index 0000000000000000000000000000000000000000..235b0c48f4c56d3056e451e60afbbc7b0f3822b2 GIT binary patch literal 1680 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 FV1j9nD#!o; literal 0 HcmV?d00001 diff --git a/examples/tiles/hud_player_pink.png b/examples/tiles/hud_player_pink.png new file mode 100644 index 0000000000000000000000000000000000000000..6e412f0c21c7eac84a0fba88a44d61156531e0e9 GIT binary patch literal 1401 zcmb7E`9BnR0G-Ut3JIyiCdWD|LRP7e8H+JFLm9F;KM}1d*JQ1u(O{e-XNeihIM$t; zm>E;X8pbi?8WTARY20+^yZRIMeLnBK-`?l*-VcvxXM++Kl@o*Svi`4|AYOIKCj3ve9@3k%xWYVRIxxqFUV;I zJD)*i7b7%@=^DbrCUs!$e~B#vHQk)@1|G9#>%;N_s}HazI|8Cw0|+gS{$No6$n7Al zj(Rfylyt66&D3N3!Rltk?a;MK#;AWhm{|f7^PsV}J2C?lGeBNjzSBLb7jCwHWQp2Z zcP9dHr$Jp0C}Z+6%RwQnn_Rv$`F8F7((cA4GmJQrT$pd;!y!BeS&iA2o{aQ@*0`*? z@T6>WH;`TrNH0JOXEyJ}Zo|JIxuyd9Xrzf=ZS4u#2h)r(KlVtdqO)_4?6;K+wzqMp z#u~f5wT((8Yb*2%Xc7frHi`1aqi1Td&H%ri7F4wHeVHpY{hu`U-LbdN+{JwB{zSvrKIoCn*DaV zVDN>IY3LQICGc3ioC*%f)q74^Oh#7MFP>YCp(94@T0dnrg z@21(*uBgUOd`*P(jZYAqxw`lhe+LK!PQyP7%O~|XY^*?Bu1!~=`Dhe9zB>y7q6%C#njqdB&)_| z(_DQWv<_8jP@S*7Qr08fDvJx%hOIhl@j8#P)91~U5pcsX;tJj!FOpN5s4HICFS9pDx-86~XIjLUc)#j5iX*8H(UBy{z3G$uYW;Uce;wOXnrX56MOrO)yN<25 z?yA2+kSi}DC6;U`l>U=x{sxzGMJSv`6tx%ph9_@uihDmw|8dP5w6!{9Y_zN4= zGT39+iJmnTwc=6@rB$YiZEB~@J`ZXYuYZ!JYC>i2tJ_ktw&be+fzL|{_;VXr{u$xZ ztIu45vP1Y7-x^=|MKwR`VO}i1%S0_$N3!tO)3Exi2aj-s+pLT9fGX$m%c;eTzO6aB zU%xXhh{{*)N?)dI+iY(rsV>Ot=!GLZW~~cWC^-#c^q(~puIrIS%;eJ!bH=Q=nu#y- zGsbDm@fHE8s3p$uYLRAY$#nD>hb0{{z%}%G=h|C3<#g_R>C;LlPxJDJ+XljY!D_vf zr)c5SR-Qz;%Lq2Sp)pW`c$FFYM5b2alt!$=?lpS}gHQd!Ln%w{r$TusluC^8r6-Ga zWWzy7g16o#%IT~WPLQH*zw`B@rI{Z3$f$A|Sm)}iL_!0^AG4Y)@jt#4f;O`;tuk@P F{|CLo=5_!8 literal 0 HcmV?d00001 diff --git a/examples/tiles/hud_player_purple.png b/examples/tiles/hud_player_purple.png new file mode 100644 index 0000000000000000000000000000000000000000..eb901b21e28ca77d779f41e91fa6e60c196eeff6 GIT binary patch literal 1401 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 literal 0 HcmV?d00001 diff --git a/examples/tiles/key_red.png b/examples/tiles/key_red.png new file mode 100644 index 0000000000000000000000000000000000000000..be98a1849a9e5c72c38b16fa3e92b2297e1ce548 GIT binary patch literal 660 zcmV;F0&D$=P) zK~^_G+Co8LI6=8TLB=a8z$YflFD|?!BhWK3)i*UYH9_S=L9bD|K>z>%5Oh*bQ%`Sy zKVKh@-|w%VFTc+Z0Eb{DuK)l6qDe$SR9M69mf3QHAQXm86Gt0lroPWxIjZF_vt}~^DeSJ~M3uV5Jir5Tz9%f^0AkpA zl9u@NP17`?H~<`&H#VTTSdK|40${LGNJN$GTH{$qzzY0_oySZNTN|+Lrk{s1<%#oC ziQ?K!MaR+tKnx5K(B#7LAfO{ylvn^bGHf|(JI^>k77(6Zz;IIsK&}5RppPByINyRJ zy^mNb$6atY$fh>^7@2`My7AcUsgL;iGRNJxaNC@J7;*-Z$|cn3OuQM=Rf;*12{nO> zS3~Oi49mtPS`MT<2=Q*nbm2`wA+VO&7ZBppkO!bk;BE)!b!nCx zI!t_B?eB2O2` zkch)?r`;@SRuF0P74}@zvL$no+Dh)S*6;NPsvKl_*pF?wJe%)7ud&X2_H$`l{x4m` zz|p|)<2b`Mg_S~)8{`=tr6{}QPWs`;;C-Z5sEohiUCUD0x%?elzxsx5ncKDM;`ff{ zOf!DjNaN>k8Jp?qWkgX>}8owg$x!3>vJ7y zH_A*7VmXkobV7&L?XAZ)_cf^g;J5Cdsj$r~;kK_mfBGrm=gWnTZk^fHHW1>g6<}(kqD=d2VcvikQ){zd+ zu$=Ho;mB&m%dO_Dtp}pg;vG85o#h(zIxkNOl23Sdc>?=}<*PL2_fFR-jjel`(syo? z-*u}_uDR`z^FtnetlE3%2Csjb(#_sh#onXgz7wvwt$CHoJnh~yukGfwy%oF%Zdt4T sb-m^idjIK>4quUf6PXkkm>8~`@6(Fz4p+H)4;YgSp00i_>zopr07n)V6#xJL literal 0 HcmV?d00001 diff --git a/examples/tiles/ladder_bottom.png b/examples/tiles/ladder_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..c30d3d26f98e5946652b6c23096bdd516468b5be GIT binary patch literal 319 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|emUKs7M+SzC{oH>NS%G|m0G|+7 z6B7qRLnl*HM^jS=ARCB)GS@47Dt#Oq{T$cCI-V`?m>*)XHyNnF@m`((wiR{GKo#sI zL4LveN&n+X`o*+V=Ju3H3J0(A zr)BhT&n{@k&0no_|p00i_ I>zopr0IlkBrvLx| literal 0 HcmV?d00001 diff --git a/examples/tiles/ladder_middle.png b/examples/tiles/ladder_middle.png new file mode 100644 index 0000000000000000000000000000000000000000..990b7275c100981551aea1de885d73847b6099d1 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|emUKs7M+SzC{oH>NS%G~10G|+7 zAU!|CVsEmesj1_=I)6>&XKFwp#*!evU^GZ;Kw L{an^LB{Ts5V4N@( literal 0 HcmV?d00001 diff --git a/examples/tiles/ladder_top.png b/examples/tiles/ladder_top.png new file mode 100644 index 0000000000000000000000000000000000000000..4f0f57f69f92d4a6056c8e8ee14a165c5dba5f19 GIT binary patch literal 354 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCik_0(?ST zO-&t4OhCxg)DcWN7#cc31c6HGVuBww1;3qu>gnPb5^?zL)RRIj3OuZj`=n3v z{QJM2&mgX0`ebt-`7K%{znrFC`Xw-_fkj1uk<(+r-UBwhUO%Om9?LwY_r+0Z#k9iiqDznf(_jjVaOko(C zg+6NxqqxI8`-H9g^0sU{XRM&l`eth4PKHlG3FrCC^cwbv?BLqL@G0Se@DH&gGl4cY merJ`d50K(qAn(1nQNCg7v)nH^U-kk$z~JfX=d#Wzp$P!pjfV07 literal 0 HcmV?d00001 diff --git a/examples/tiles/lava.png b/examples/tiles/lava.png new file mode 100644 index 0000000000000000000000000000000000000000..8be111a72cbc9f115ec2606df483c3ed9f9c42c9 GIT binary patch literal 513 zcmV+c0{;DpP)lriviA>3mn_d~u`-ms{f+GEoE&i1<{ERBzWhMQRFXn6``-LU;dm!#~BI@^>NPX(a!d zHTr)b+hQgdM_YaX00Bu!L_t(o!|j&qZi6rkMze11plc!bdqUp-DTfe36C;UPwW*po zzu^!Y$NJDPaT=hkpG3oh{GGr%6=v@4>h}qZ3u#So1}HFAq-{Q22N0-KqPIxd($|$p z70_6X&-G2EI%q29t=s6jNC_$!5y~zHF@B@#HNlTL1Um%5SwC}i_pnb8oX^flT_EOb z_nn*T0RmgRYMny1H1NV2z((@9xeXS&(r)j4cH=;IqOoc@h#0$Wo^LB_PUXynpY=Y0 z<}$94oB#!cv$)MGZvX-sOSBkKT>3g?u>u;a(YexTtb?XvUYd=@u^6F(5k~QH5HfZh z_VyP+70I!lIrEF$CtzG>ORNhRCAqZ2TYvx;r=+0>m;M#Q1dvd)%=HaJ6Uqs-*~(>OIjxgz}u|w^@00000NkvXXu0mjf D)@J4t literal 0 HcmV?d00001 diff --git a/examples/tiles/lava_top.png b/examples/tiles/lava_top.png new file mode 100644 index 0000000000000000000000000000000000000000..796d6f4a7a9e62804c0002c23c08f4f8164c3b7f GIT binary patch literal 789 zcmV+w1M2*VP)oK{Yi&H8nsqG(a^qKr=H$F)>0lH9#{nKr}Q!0002p zWhU@-A?9-`@{%?4hcLf+IOJ<2_To09Xea!YH1>NS?R_oWV?l<%z!xhfFb^uGyIGy{*^NNf+G8cCHsgc{f{mEk}owiLEB;``hOt* znKg%*6D9xv01b3fPE)V%Pd{&e-wz+3U%vomJWcTc00H4iL_t(o!|jxLQ-VMkhqufF z?LMtc%>yGqK;>M{@BgKeVIiQsbZTlEpFbJ)d4GGnFF56;(`^bpM6=t-KLgIiLMyBR zPTIVJZZE{sJ8rWD9U-L9>H;B4Ld;(LE2{%#gBYm&VkcpE)NHe=%c?R;YFs}rkRVOc z>|l!LTUR#;p3U6?2~vk}(#Vsv8=t2xD+z^>3Y07f0a;BLfF!vbkQDUlg&<8bkTJzK zNx~~g9m;b*PqOG^PMsxSveakd8Zp!FcM~ji@inS(@i^fX=<5j2`f9=!EX9bzs}960 z2{C)|uV##;6=G~WY5=<;~M8rb0kQU%$Atq`PPk9jAwN-M}pKLKHg7C zSC*f;CdCw{29UBO1T-UN0OI&|Oj6LR7lJg&Si=;rZrz2pA0TY#RRyU-dU}|bu54Oe z>^t>C9=@3s0Rs<-q2zT97vxQ0A@*u**S))X#V8l!uKFgVg-J6!W^dZFHB|A`-!Q1=*GX$jZ^`v8+io#@(%-xIncZN)H&yLNt-}6Fi_h%_ zPqI~d6RaO)s=RN|dy%L7t=ll&&+dMP`mA*8Z`BH~3Y4Grn7ysl{WI0%U5V0*GVRU9 zmUog>9jzVirK_fx-2r>BiJ*PvdWT z5lVmlZ+~ml#LuTSbI;qNW9sde-x(@)2`^yrf}#K62{(7`On$MgZ1#aoXWy0{I(%$` z=#Aa0XWU)9QE$VU*G$pUGn`N6{I1yMly}Q0=E;Zq558aS-TIYlDdW5kJI~K-nD$~? z!kl>7tr0%IXBjh=&XDe%E-`EE=kWDGdmI`Ztfrg^P~5|G;K$Lq!8+^vnW7$rHGLFI zj$|xdQr$lN311Pj4*P*kQ%Yx)^lY%Zucq<($tC{^Yqw2JyIvnHiNCmOfzK~iJyVai zNjJZJ%whbyBk{+F1NF`O>iHLM{mOJqZsv!YQ!^T-wJZfW!OX?y^ISv5QkCPz`km)W zPsH!-ILRc(@-e{3neil7!vy|%zm0qBxH3B9IgUv?rLbNRoX@vM#oFP%auGw3y4MGF a7JKW;LsHs>8-4);o59o7&t;ucLK6UC_W-Q` literal 0 HcmV?d00001 diff --git a/examples/tiles/lever.png b/examples/tiles/lever.png new file mode 100644 index 0000000000000000000000000000000000000000..7e49ce1de2134a9e6ddf85532f16829f0ea9adc6 GIT binary patch literal 1040 zcmV+r1n>KaP)jK{Yi%G&DdpH9<2oKr}Q!F)>0k zG(a>oKmY&$<#BQATw8lhRFhR(>|$Z%Mntl`#+awIrnA1Qx52Bp!p}iLjXXia%F(yL z$YD4^cY1@hz{plGIie>h#mv*X!^*L|#XvPdm^?wm%hG{_jn}`mUoSVXwY;67sk*<$ zi7GCmJwa?aLFi9T!ewZmPklcTU=+9m!QAL&e}pj$X>-~z5QfDaz;W*TzVDMGG(boQjY*SU6wLqsC)LW9(c0QZo=!8_yGJ%fR#zu_RyDYCo)z%!1yqt@i>67p+;lofc#LayfGjL?$hOR z&sVuT4VIiSAkDpJdPpJz&6!VNq|_xjvT*3uYkPTQhdm%1f23eshD?T0Ve(B3w{^k-p*mb z#5)75Oc+4j?^=MB^KMfW!1HJs0+PYw00Ve2CrtqPwCC;Aj!!-dogCL3&z8==4JZ_a zYqj~*SM=1Z3UjgW7QhR?(e6joZfIXROjAG3ZC|TfM^jNOI=*`0`9JS=9)&u)&z|L? z8YLh=7S><)7JuJy6?N{tt*FC3WGO%rPLOjZX1{Yox)V{H!75To0w5lD=VJP<8&OvT zaUOo~DF6$;ZGzXso~zN`1AN;AFG~x6`mKxjyRKGUv5GqGP7DXo{=;~m(8eJ!v;z&8 zV$CJB2HzWK7Z`e7Hemxs{*|pyTw9fq1-7Ay-keOm4;`2w$p8BO7hn79K|O$nqu!GN z06Iub4WP385@@-ihERk45&-HB#(abT0000< KMNUMnLSTZaMcBju literal 0 HcmV?d00001 diff --git a/examples/tiles/lever_left.png b/examples/tiles/lever_left.png new file mode 100644 index 0000000000000000000000000000000000000000..5d93bce7acda924905f27b470eade0122f681449 GIT binary patch literal 1321 zcmV+^1=jkBP)oKmY&$?PX-PVPw@>TbV;g@NseOXlUn5O596I>s(u5J4EkpZs}E2zk6KPhhgWR zd)>32ZcWpFIr-|9St$sQ>*f}@BCnm-#D!wHo%`q^-F)NxVD#$G? zbT~iIGcwgTHKZ^yvn3>9I6;6bFhw#wcq}sBa8a$Fo#mr~cRE4U!@PP}PU4MY#6UsI zMmJ+jN`Zup%Yk3#gKs7u_bdpZm@sEgq0CRFf zjkW-OchK;gnco$io`F2r0eGqV$LSoXd5-+{ivzrL^5&eOCh|8R3~;iO=XTDjs=AvD z1bw0aNZ(u(y$>G*ccMdN%pnSZ1T=yBz9TBtd*L(^04#t6&@!uQ!S47u90F98u0~UY^3zNkFK3KyZE8v4*IYXiX#CE|7=p%zJL4XY5 zu2=vsp_W9?fi}nkEcA($l2NV@!om^< zSQNY141ga(=x6 z;^vJk)dlj`ZR=ra0794UeXaZKF|pIc+&VH|?p=4Y*;kM9L?_7$=g}0RfY&edHtK{2 z-S6_KqwGWF3HSvbR|#!f^M+3GkDVgdf8HgC;WY)cTAoYI<*VNxfZbbkKYi{*EQ5-@ ziKKKw&|9}dfgAQYaX)_kOo7oxD6AtK^#BgAdhz60p-h=oB)Dq>@SROPE>zSqF2q|4 zfd1hj-F|B_`304n+|oye!sP_MM}kdAY@qRavdAd8uBRdanUt#mu$WULIQv@BqBV?S zBxUWuSO6ZU7*3xqmMM)v#5BuI#{lqF8U(A&v0?>{ZNj%fjlb?005lp2j6Yqhs5Gu3 z!SAKS2au`ZZxAwk2>gYz3R4Uet7-tguX0&10nn$0AOWU*eCjjNRNNeaG=#X;L1K?l z3MMG+|HSxLL*o;rdH{ZGH? za3oKmY&$=u%O(VPw@>TkU0JVLL?WRaECpN|{4P?r3P-OG@x@aicv!>s(v!ZfD!wHo z&@(dUgLV@yhuRa@C@ZtGuOZ%I+8Z&;Y8wWhPavc1Nux53zA zNM|lJ-#Xly2HwMdV{dFys^B+y1&M?z{teQ(o8)^ zs$F3~IYj13M~6{YOEy7PH$k~SLE1t=QBqx$m!M>3aEgtVTU=+ZK0(4|Xq};{xWUP_ zzsN{PRKLg0$yd)#>b#?BOX3f*t`QnuQ0&lN9MaU zEx2QMo(`i?6yQL{do--zk)s$9pM_M40w9HlHKM%-fY1VI5Cllbc3@GfDA+^X zf`tTC^p5k7!L}4J0QA8CAHWy17!d4*Mr3=3^ItFvSqK1i++QmI5rAyXVXPd02mprJ z0^`3pUk*SN@aPr|=!XD&wg4A$*Dv)l8I+rC0j}hbu05!1!0)jKxR}Gbcca%h0W*VQ z02i`9pCh_@o8EvB0D9@{!=9H0;1l>ah+Hf_uN*+q-RMp`RzP}sHr*Ca`&L#P5>X^`_d-YyVq}csgYNSELP&= ziPPBs1sMYM01m@F6kaV-I(7UB0=zcnXkCB{yGOG{i=MrG4}Ur81H3r+rD9b*SILc9 z6M+3g6NdfzaQYiodU)MfnFv`43_yYWrHsw5q)U|2D|m4=#g_pC!0#w^41ayO#Az8v zF{ZMG%mQF`=?VP#Ov$1Q4kE#}5(9wot&f7$+DNI2M%LiJQED1-064)Ejz3eXstn#m z%6M2<0XTqc9eW<4>pHeX-YGujF5eu7AAcGFgHOGFg zJA}G4V~}f^zA#R7KbhG%e#kd8qDVxH%0yKw zAvzTbRKo(PszeA2MIbVLYw5ZVjIOt6Qzqr;wd14GiK=BnnKlk+({2p-$eaPwFpj_& zhIt0eBPwPBba6m80glMMI$pY9l zKMlB_*W4_CUBdx~4ZXI>+y-_Hzm3bC=k1o++sLfRy^&@EC(2;<-5ZIoJHaW=3IwfqMBR=)AAT%YRo6*)#!29_(d`AIJ-qV}|^wZne zM*zb#Fhl@$?$i9+|B(v+p}eyFXE4AY>A**v7qT`~hKD`P~#}fH?pF N002ovPDHLkV1iqWOt%04 literal 0 HcmV?d00001 diff --git a/examples/tiles/lock_green.png b/examples/tiles/lock_green.png new file mode 100644 index 0000000000000000000000000000000000000000..5a29dba93e5054b9f171407e9384c369c1a259ad GIT binary patch literal 731 zcmV<10wn#3P)iN-M*HO5>w9(veWXlqail zDYtqdhgd?rhaGQ7D#nE%uX`V?c^sv79jA92qID_5gdl-b9;$dK!Gjv0bXoAQ9BD)~ zH9;)Nhc6@-W#Pz?*DsuCeA6oJU}tz()#Fs9j|O_`LV*S3#JJF1omWm-6(MY}QJBXb6H!#DzC z82TB|kErMg(8U4W1UMqY1BaFCt`6B9W(@}{H(r#@GON$7;efRlXPpJGYdF9=B@1BJ z{50TxUURbmb`1v{cJ$gVa~s$-{5I~lp10j+ZzHoN_ePqJohak^cW)%V?gXbea}1#M zf+Rf+0XRV_4jh;TOlDwU!2$~~V6%V?1_CZ%;ISxh$@ZVXz%2_rfPw2N1Kfdu`c=Ab z)xkjH!b-lw)bbnfTlvPflF#?=F;8Qy`2{pc~5f=Fidab z5CM$Rzz6}@xli+N|3@nPhw{euU%&u=qyryuUfKTh{}Jc!9&w;&Wjrvz^#?IPN7gzafKfqpeZPrJVA{-LDxMzrzW#Pz?*DsuCeA6oJU}tz{TKFow~hO_`LV*S3#JJF1omWx6<^OS>`PBXb6H(>wxW zn)(^gkErMg(7^$n1UMqY1Bb2aZV%ZVW(^1IS6-CWKC92J;efRlXPpJGYdF9=B@1BJ z{50TxUURbmb`1v{mh{>(a~s$-{5EcOp10d%ZzHoN_ePrcohbeJcW)%V?gXbea}1#M zf+Rf+0XRV_4jfnnOcr2Z#sV`iV6%V?1_CZ%;ISxh#rB`Tz%>ipgMr&A1Kfdu+GVc~5f=FiLOZ z2my@Kz!(A8xli+N|3@nPhw{euU%&u=qyryup4tBE{}Jc!9&w;&Wjrv!^(QevN7f+@ z7}5cj#B=8W(;vi>ClQMco+2qSI@94f8op(GUyi4DRgg-Uc1aSV@&}5-`Q6D_^u+)G N002ovPDHLkV1gDiFVO%1 literal 0 HcmV?d00001 diff --git a/examples/tiles/lock_yellow.png b/examples/tiles/lock_yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..397c8009ad241a0781d59dbeae5b7758d1d815fa GIT binary patch literal 800 zcmV+*1K<3KP)TiV+nY7{%Spm-9Isszz-}P@&q&C4Ak~g4{K`S}vn#4x z5y5vEv|Sh7m?OJz7yH9F`nxanv@86`KhcUSvRoG6m?g({9)NL2^2|{By)l}GNy~g6 z<((#%cQ@3BA>pYnqklE=t}44{9O$Jdqf!vASrofv8qBUu{mn)D!8YWoJh59AwP_Xi zv@GkNE8~$X=9eqwlq>kREa{vppHB|;u`KABE8>qU|JPBsU>P+vLHfEaUiUXZ0000B zbW%=JZ|~oKKOe7;pT7W9=NU`@00G2FL_t(o!|m7Cc7i|<2H>?T>Af0z@4YMbLh=3I zCM;28xFDG!cgcUD7wrG(aly001VQjIe<-9P6AJm6Pb)J)@TlZ?I1o@BBp@)a>L^|o zjH`b^u)S+raMY+RhGuYb?Na z&acgFw*juPZsT+zNsFodHi9+Z-bkH@s3p?*>5XKqi56zDwuvf6qGvHQ5br6bWaDVyTmgAP13d_2(ZC}F6f|%P`_E|L3Ig|N;GzwH z2Q-krHuuMAG?2U*8{eTlmXr8f`BEMmpD*80p2kGx2xJnZ$2rwM0{s*T$en(}90|yu zfIJ0gnYXb;0P1F-P5}C5ppOTt@L8y$feHjFXh3oLfA9wTuV}z}q(dKZ-eLdc|A_N< zk2u(~G975p`VAf6BWsNY)c63)^trQ1={NPsllhzto<8PebmqgeHhc%^{h&U*3tqpA e(sud1TKN-_yur9?6Iyuy0000Ic literal 0 HcmV?d00001 diff --git a/examples/tiles/mushroom_brown.png b/examples/tiles/mushroom_brown.png new file mode 100644 index 0000000000000000000000000000000000000000..dd2eeb8c77dcc9637a0334d6fb02461a083b05bf GIT binary patch literal 668 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCijM2l#}z znwU5k8#@3=ATl+DA`=rwV`CRnQ%6HXCqqL=h!l_nnbll;U~coF#oe>&a&u!NSEhUU zdiZV5_Kpe;@2#&aN>AH7f8wmJ#{H{izU+>D)1UabCDg&n`R# zdHwhE_cQ!9XW(UEV9fAzaSVw#{C3LqqGkgD*UpVEC)^YM9=B2PsEXj9|KXM4Qw+~4 ztM*^46q35TShQp6x&Iw1EKUkA^kF~Ct~UWGf5Vv$cN)nw$1iZP6p3q;72WWYrLgW5 zdxO1g>I$(riAhf;vgC*4uMn9bw&s4m=drSWwyBX9TCVP0Y$H)+aP^V|>lX&bBW;iQ z6Kq-%1HNl6nZ@+2rR0vm!M6fU?HL<6eeRr5e(O79W2P{FdZ}8Y6ZZ@Grw1=AS3Tjw zwC9lB%QnkhM~-WsRmnJb>Y$#^2I-LfEnJLp({{KvdKb)#4A5fmdLZO;s)=)YLaf-D znXFqTt`YnBBPsN=eJID59gJtvw`cyUGg}@!?O@r|Q0=!$=I;-b{z{p-rat)^pZ>ju z(@z{PSy)ZVysWj(PH@-m+#<73-sJcx))JX_Vk29x95#Qta-H;C5fg>4Kb$KY6Pu$O tVxL-y?K!mJr0#+64Lz)110Sh`B8ahIxfI8X(!?z`-yiHB1boO#Eb$sgPayB#j zeO_L#jpOPGb(QG}-Y%Z&>>Qh{9T(d=COdk)NlHAlxVt<#dO}6^tBCLjN3Rz_fkzx1 zpZj?2w0C@PV2O{d`@8Jyo4I)omM(`7L^1_q4F^WoXC?f4|A0 z(XV5o-(_UH*)#R|#`aGqmi)Z3`9oph$I{ZL&W=FWs@2N80=kdCB*-uLzWn_9_5Jbo z{OA4k-|uIbzOQc~0|R5Ur;B4q#NoG7(u-t_jd92$ZB)^e$jW?2=|7jX+-O$rdB@GzwW|Gx zD39?8wn~1F-4)IE7&6c1BOP*N`iPJckU&z|sF=xzIm)P3MpeD~)zFj#_E_Pm+ zqWc>DIaSl{)J&N7YGqPK*(166ZP(u~d7hPO+wmYHmDciE{@CtwUPc)I$ztaD0e0s!Wq30MFC literal 0 HcmV?d00001 diff --git a/examples/tiles/ramp.png b/examples/tiles/ramp.png new file mode 100644 index 0000000000000000000000000000000000000000..af037737bc7c82dbda211a1aef1bdc64a8b887a2 GIT binary patch literal 616 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCijk1o(uw znwU5sAxBeFAaVdAV`Ct4F*I}nvJDL#fogy{th4$%4?J~n4=db!-^$M0J1WO2xwU!w zEpv~!z~u6>J+JJ#_uI8>Gjj^@T5{iE#$}6&BW6VhtQt?*&%Bwj<(XyO3G>oJ4s&iN z)z7e~K4v%Vx>^4I!ksU|a+>;2eE?eRIREaOwXFMqHu0AP`32YSU*GRdD`qe-FlKnVIEF+VetZ3NRg-}L>w_&>tW3FEzppN5z18x)ez%&SbFa!w$=z=v zH(LI8&+AUSp5FGCxt@7RvR>#9i=~X7inm2LSx@A~b6PS!2%4w7!R33IQ>werjn*t% z?#cOG2TEQBUSMVBa1{S`U{zq`L>A^fCTj5_2N~pfV+|ZGUuaEkP_ST#D`4DGz?9G$ z%%J&&!D1o51Ls}_w-@XJP3#Tab__Zdj4K|nH#jjga4IsWurPKAurWBXbZ{FgXt^}b z5MWngV&LEwP|#>-n83iy#3b;6JK%tJ1LJ%Kb{i(97vfe6qNY4um8O?Rxgj*S=@6vGWPtm1HTK_ zM=5`C{iW(-<Bf literal 0 HcmV?d00001 diff --git a/examples/tiles/rock.png b/examples/tiles/rock.png new file mode 100644 index 0000000000000000000000000000000000000000..455696cb6726cacfed086cd9b381d55401a3e286 GIT binary patch literal 1025 zcmV+c1pfPpP)oK{GQ%F)=|kH9#~pKr}Q!H8nsn zF+wynKmY&$&e7JevbTMKicU{jtG2&qYILEgv8lAZuDQWhSYu&gY z&D7c6k(Zx%d4Zg%w1|$EnWwU~zsG=uj;6A_o~yR1vbk1QVUCcO<>>1`Kugio*xcXa z$!Y@x2WnVX_)ZFfCAN!;P(u)D*Qqpr)+*x%#lz{t8V z=IO@G)6Uh}!^_c2OIFd>+}Ymaq^7OC#?6wUt?29SH8nxI#LGdjp7;O&01$LiPE$Y6 z->+YPPY*9|kMEx!zW{Aila2rY0;WksK~z}7?UvbgqCgOaJ24Zth?CjZtdmg_qb9C# zMO084-v4#dRWx)X&5|>BbNp}QK-Xs#wLz-?C~^QC00+PU@ZSOoB~5ceI@Yvec0kEd zi(~|xIdMA81bFAftB?Uu!IS-S8d9s*huc~P064H|)2OydE=YhfJN7_Tx@S*Hselvs zpOzBvn>{&71wj7$lv*7(r0L3{7r?Hh019wOU+&zf#u!5}1pqa0Pfb^)NiRMRJ|GVc zZ0U5*e*-K=H(3VEAO=aL2;dZM zw})W|){sIAu2${6%0Al%Kn|~|vG?+3lrGV!DeXHkJ`m9c7g#jQp(#>1Uh(URs4D&8 zQ7&x~%z+=l5i6R=m0Xy*90UULWz1n9BLdikO1mdjCh^-~BOOqblNBOtgbT#aVJ{gV zWSC8_!7BlPKoQAF?i+qOh7RRCQ8-Up?#sMYS+&xqOEbtwsxcmO2fgMYBg z?EcJ|2QTcRCZ}T7e**Gt3cx&+rV0#e%Ex vHuE^Sl|CK$Zp^{0pN&lBjn7UHK(+b`AhgbiKL4%400000NkvXXu0mjf?{4IS literal 0 HcmV?d00001 diff --git a/examples/tiles/rop_attached.png b/examples/tiles/rop_attached.png new file mode 100644 index 0000000000000000000000000000000000000000..dfbc1e1c14bf1126ffad8421ae9c0a0441703c3b GIT binary patch literal 762 zcmV0lH9<8sKr}Q!H8nsqG(a>oKr}Q!Gc!Ol zGeiIY0767iyJ$#|Wm&G2jk3MPOGi+2d4sr+gMm~@qgp}6Y)7l4rMhiUWNLN6Wu;u)D*qxxzg+LE(p7XhuP-x4@{hy{fjqz1w{Tj+rAwY|$a_-voQ?God4}4~)I%$DTkKHizE85L&{nKmz%h*Zd4S60Sf* zx6*pSWQ`(Ai`H&4;tG(s)$>Mkz7}Lz7H*8n+KUr+fKQoCuQb9!!7Q$5Wp1T-4}cKv zjCR$YAZcS>Q7+O@)#%0<=NNDTkRaqh!5dQ!@1_ux$hX5q%1ft|H zfH(mX4CrcFH!vW;;CworBOn9;2Fhm!K>&TSo1f@`fc2v}|F8}Q=<28sNS%G|^0G|+7 zApN8@{6%-{y*mGQlhaI19XB4|vK1)GSQ6wH%;50sMjDV4=IP=X;&J@#6+>PIM;_*b zj|I3KCn$7?a6R*Xx_-~Itt@Yv?{V;0u)imUpZTN*6pAaBOK5VQD+S u)~HyZ&%o2j%jBHEdx!n|!P)}(d9`n&`x5&(?^ObAVDNPHb6Mw<&;$UrfJ6!a literal 0 HcmV?d00001 diff --git a/examples/tiles/saw.png b/examples/tiles/saw.png new file mode 100644 index 0000000000000000000000000000000000000000..7c372a7f97140f0c449705d8676898ac2019b720 GIT binary patch literal 1764 zcmVnz?rmL>Dy|TEyn4qbFiw_=p{mZ++RxV8MMhGuxxvcO*P5cMeua#jq^qg2xq5+zp{cN?t+a=bn1YCo zn4qV5frpfupn!*tjhUrqYj$sQeUF=`b$f-m!pf<$ytco_$k zV{W#;$5vQlt+&6Lprw3*h>nz+fQ62~$IZCG$*{S>(%Id_%+j;G#F?eA(b(L_&eX%p z(a_e~rmV4pjh4vJ)x5;Zh>n+hgN?z-&%w&jm7%SKij4zQxVb zij|b?Y zwka)cbRvWR`ao03+5n)%UHI4c|A0O#k%%P{am%tIpkKE+fUW=`!kXha!0HPI7?HNi zj%*2_b$3ssD+myE4{FcZ4uH;jI{W>AKF^S{tpn(mr#tEebmRPQrs~XQx3;!^wA}!D zx?C>L9WhJZz*Tg60R7PVHB~n31=MV1U+9aFfL_*i!)`c)M{d9qM}J6fvcbI`06^Ji za|n&6V?z_AQfYB<@nB|Q^-$B(6&M`=fNn*2-*VYcnx4`Q06|#ZZ+Yxs%+Ut{Aa?VT zuy@c3uz97=X%Q{~3FUfrV|4@tuQE#?(3Tn;SgLV7I%XmqQ2PyszxmKqHvR^ie%%WP z^eaFOUw3c3>9X;A(E4sq0la=-Des?vk(swmui+#PRAg9g07fFZKaShp@#&j8+tBk~ z21dlt0X!1Fg9Q{|rj+^!JCwd-UHh9b<<~G*8!&<0qI?Bx^n!RkL&&wsR%`MZA!kI>0!&cGWftZTHxju2(qNI|@iX@R zN%%kcoRFf{uQCICi(UifkqZJ`AmkYjLpFsAL4Yi15s+1F8sID;pK`zyA!q$BU=<4i zkO-1NfOCXg=73KKITr*-L0T{%iXJGyL*a*D=Lwkt!RLgW7fs+MBMJazyN7?q#}ZIt zBVLRCEA0CXPEB27KUYN4Yu3Fe_4oN_=Y@a2-&04(}F%oEL+ zJPI(o3jrraSDVvZ|K+W!Xxdj3%%MJJLM(6sFXnbZxnh;Y(5>|J^fUxhRXHNZW5EYK zMx%+VsIZJyYy2r=zUmHVAnd^eHV=ncPD6d%R0)L#^v@XK^b97hsz0Swu~yxcKHNU#&&n@UJhd`@KnB_;aHIYS$;x#E;7VJgp0xaS z6q7P9@<;xxjD@8x+zkn@{?PSHSS$)W8zCSO4rsi5C`%ikhAeF(vdD)4cv@@7;^eh$ z_H{X7JpcgvD)r#f1+RP`ONt+l*B2cFh5p%qJo$a z@&SMd`hlZYXC3`yBMIOK5f1>IdG{+ve}}pO_HBpoZAH6582Ul=nVF$@UD)!mgg*+as!fKhh-z^ili4iy^v{_DANxx`#pr51ISmx4(px^2ON0Y zz3i@t1+yptSuBIB8BgTBVHXbFFh6Waz?v5SAA9M-9Ce=q9(TI<86B^Uzt^d~{-EQ< z(fF8)Yp1JgIKYereYIma$?H> literal 0 HcmV?d00001 diff --git a/examples/tiles/sign.png b/examples/tiles/sign.png new file mode 100644 index 0000000000000000000000000000000000000000..c3352a847257b3adc6d3e7e4cd9e3d5312fa0a24 GIT binary patch literal 714 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCik91o(uw z8XLQqnmWLcqp`7riHReSYhnULhK5dthK>*}P*bhH{i+1J&B=Dtvm!rENq^WBTo)7k zep1TY8F_os?54zdlmxh~O!vB6=@;qb;AQ7zXW=j-(k{Txp+C(2Xvey$FuFvv$>IR$A^EPU2Cqg3Gj+D8XWvDvb<{EX2xLI z2ZyxvAN7bCJUYdYclG1nM~i$P&slb~vdnJPI))otd{)~egi56_AJCe+sM#hVKrVIT z<0w1l$4x4UrcB&^yAvziw0L$uF!5}SjZW9yI%BI7!{zJDUk;vTO!vLZ@K#}mf+)*d z=>_E%gY;QTzA(%cVeo&yT)gzPsRj3q&6_uce^oyid0=9%Y$&5=fmlIOvU;e4&>U8o zdylR+YbkJ^(_Pe8Cz!DO`TfEJ%)4EpT4Il^;dhxb!SvpKv8Qb&um7a=eC^-4mM?Oq zu#%2~P#r@>!11(*13atdvNOC}9<7t$&DzNEpJRWAvZKPDWxS=^3QuUuT)cCnMEU>e z<0b5OxKHM)nV*bv#58evTo2>K5)9OS&(2w)BTn%N8m@w71wn6h& s?cs~e7Hx0Zov-C+|KE6rv7Yw>X9)lO$wqr8f>JAkr>mdKI;Vst0Gv@PSpWb4 literal 0 HcmV?d00001 diff --git a/examples/tiles/sign_exit.png b/examples/tiles/sign_exit.png new file mode 100644 index 0000000000000000000000000000000000000000..92ce9e3692c1eb208545778a9acd343ab0e360f2 GIT binary patch literal 1170 zcmV;D1a13?P)oKmY&$*nLp+$*IX~K=;wH^ueC!s)WmON8y`u=dFq2k7Lz{VBnEws$f2SPd~F` zKIW{5?Yo%UmT&B_jPSLO?5Kg)j%VG5TF`)2=$vxZc1Y@?df|do?U-(UTvPFsXYZ0^ zmugvALO{G`K9pWaNtk+WK({6G{I76<;|+C1r3%^#Z7ocslLgv~}vxx_ce+BccjG%;={R zC*Y)SPz(WyzDvf26R^=gDgo)*f5o6Kd4!E9xZ%cfKK~R@`TR0ElgcnW*PcRY4Xnco zVwS=Ime9)qPa)L>tmJYmpmMpDE?|{~(y9$u38BJ2o+ldI1lne)kJsxHq-n38)ZDwyV+wJoc>G zfV%Ypa>#kPh%@ib87sofG%LFSbq*MUN1@&es2mb9^XGz)a)p2QBO@+Ay#UrBMYNDB zC*Yc)m5@WitpafE1YC)Bql}O84?8yCvRb7S{s0>`YXT^(;pdD@-#j4B+1^ErC zEq3t1`odqj324!ud@KM3;YUCU``DHYfK%+;%n8Co>%assc8?QZ#SUy?w@V>_`;D3m zxW{b!B0j%<#hidy0jL>*pa}mqa|6UKg34XMG>(tVL);bwh4-{g=@?-XH70E$DcS&@ zN(WXNZSoGMbPrKF#tWW1gzWR@j0|XZQ}e1Pm8C@DfC-9(w-pO;=mf96CY>woow4TLC4G~%3dkn_eH;Y%3<2%^QmJ&AW%HEY!PFhq zJM2u?b*zEdWX}cxj_h6xXO-2k=yV#A0YUSF09gpoo0_II!d9f`l(d(|^329k4|fQn zDyOY#5?nR@@67L+wcX(MU0#zCO3LE~`PU_nu$1Rj*B>B(RXG_RkQCSbXgnMs9`*Xc k;dR;e{fp%V@V^260o&9Li05}=rvLx|07*qoM6N<$f)U{y$^ZZW literal 0 HcmV?d00001 diff --git a/examples/tiles/sign_left.png b/examples/tiles/sign_left.png new file mode 100644 index 0000000000000000000000000000000000000000..5de18a7ebe862f4c33b351796c5465e756cc89b9 GIT binary patch literal 835 zcmV-J1HAl+P)oKs7Z$F)=|gF+wynKr}Q!Gc!ap zGe9*pKmY&$ZdMZ{~(sV}Ld`-t|KcQSc%x^;P zl4O2dQ=Vc;s$MzzpK``(J~cH#-hNLh8NpBh000nlQchFfZ;wwuuYaE}AMd{pU(W#i zIY^NJ00H+&L_t(o!|j*Zc7iYvhNH5|(tY3eMXOe8>#nT@^8QcM1Spaagvnjc>3@S_ z{*O3GW(KrTEL*XtRLv0lhzjkd8YHq5I6$ihX=zYECE%pN0JYFGyqXh@hT)eQ1Ypwn zj|YCNIYrb>06?eyOFz-`nB36I157&QfuGWV-Z4u69NluGpmlskon%EV-N*%)?kegd z7BEV$h-!-gc6#Z1ETG4%sVW56ZhDN*iQN@d0U+{!wXeOkY9F4`aRw6mFT7&yHt3on z@$AoHIQz>EWc{{Mmi7Ayc3zv;XGI%NRR_{T~BlKuoB>rVi({*M??k@fe9&m{mP z=U+x;28Fr1u>U;s<)3Gfh@`!qaVhoP~t5;;h~cv!bBUbeLB1 zn-kk;y24i1DGi8nVpfV<4xpNO?Y^zK#Q@7GeBsDzwoAXU`~&_9;0JC6M=ikQt>pj! N002ovPDHLkV1m-(XS4tS literal 0 HcmV?d00001 diff --git a/examples/tiles/sign_right.png b/examples/tiles/sign_right.png new file mode 100644 index 0000000000000000000000000000000000000000..22b9cf02a2b48ecdf3e7dd987b2cbe39ab7f9bfa GIT binary patch literal 829 zcmV-D1H$}?P)Y**S-gE>_?&OBcVG0FYv_txSx8EBP)3Vm zR((%Ds$f3Vi)gcBKB;F)R6;|PUP$AFRkLeL?T}*Ac}{**M?pJ8iCIYHhF8dhWz%&> z%56bPK0?oNL_aw}&2U4!WR@KR!4>+D9K2H-^kB&6AU?@CcbieN!8<^7+?oejZk*pSTJd5-^; zX3zhfxWvrD+{M@x6H?V`ZhqLp6{8x=V^;8hRu7WVus|tDMZ*DQQ5v3n@QjAymof%0 z;Qq%0f0hp*>IMSPp?~Vnb3W!5^x}X4w>mwN${jNAh1|ao=o(%L7OLbcbtjM3cpGtDgQ3$LCD~Ee+Z)wijUl{^}Pp+})<>y!} zFvc(MctxVV2j~Z$M;9Vs|DY8v&2{TDLlD63R+yh#wIG1)ut?PRAOKi?m^_h$7fg%Ss% zQ8J|o3|?uL5H8TdMnk;uxgmsZh!)m)tpY#|=2<613u`k#^n)fA2v?(_#iITZx*s-S zQt(X_GwllBpF(eC_8?7(eVF`&M|s{4ESC!W_Gv((PXdyC3Ly0ffZWFesXl73sQS3U zqUa+B%VHllSQLHKU{Up52LH`Br2U@(a7w(qBlle<-iV$2_xioM&tGY#e9-((MOw5} zCso@i3|JY5ZM_)aR5FkIWiuaeG&}zbN7iAx@Hdu!;I9Hd;*UotH1o|)00000NkvXX Hu0mjf1rcRy literal 0 HcmV?d00001 diff --git a/examples/tiles/snow.png b/examples/tiles/snow.png new file mode 100644 index 0000000000000000000000000000000000000000..4a50492bdcab7acc5e077c3a2aac447fb974fe2f GIT binary patch literal 485 zcmV@f^Z)bs|MmI*`uzX)`v30r|LF1m>GJ>m{{Q>^|Lyeu^7sGv`~T+f z|K;%i|NsB*>KUv6000nlQchEkPv37pU$4(EpC9jkzYhQ);0yu)009w6L_t(o!|jvF zVuK(MKuMwo5y|Ef1$F-aD;tN{Vk8FJW9QvO=ILzg^hX#8NI(J-kbndvAOQ(T@DBwd zPVZxyIym~-Tt1UwrS#2W-V8-G8S-Gi&{@lgf~INq;2m}t&;atIKp zNJ@DeZ|epe%JC;M{z(ue-?&?Ptkd4{GfXW63J3pF`~z)QWA`Eu*!e32aI;gH z2uGkKcE5rk3Y*4|3M&xl-X3TO#q`ewmEy$IG?DGz4%ZoU0} bMTMbX>y8^$)H~Xz00000NkvXXu0mjfs@V4; literal 0 HcmV?d00001 diff --git a/examples/tiles/spikes.png b/examples/tiles/spikes.png new file mode 100644 index 0000000000000000000000000000000000000000..0c38f262d84f3efc0ff2427b0a28770655b5042a GIT binary patch literal 861 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 literal 0 HcmV?d00001 diff --git a/examples/tiles/switch_blue_pressed.png b/examples/tiles/switch_blue_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..2b7cde9ab3ab9014d935a806d0b54cafc1eef858 GIT binary patch literal 613 zcmV-r0-F7aP)|TxY<@&$_?HK0Zpz(b&e#)LOLgShMd$qTs*B&Q7Z5N~h$y!^%2E zS3ON)M{keG&(>0|>QPc%l$W4Vki1>7>0Gw*SE18FUU^T5u}XKFr>nC!JxspF%~hDl zP^{@epWR@(_07}SH8nxG!phrJgdP9@01k9gPE*gHuODykUym<8e-FO^gDNz^NZ_VnEh29LRwW{^Xx-3TG(u00000NkvXXu0mjfWpD-} literal 0 HcmV?d00001 diff --git a/examples/tiles/switch_green.png b/examples/tiles/switch_green.png new file mode 100644 index 0000000000000000000000000000000000000000..261478105c81b5f542d88d8654a597ea319c0ab1 GIT binary patch literal 864 zcmV-m1E2hfP)0h zF+nsmKmY&$QRk>S)00Emn>^H&HP4PW(veT)rcL6cG0clr?5#7-jX<%5Jal9@(ve5p zp1Z`$K0Zpr$UOmzsJrm%Zj?g$~x7PMZS(x>#9PjfnER#?3ZAMnTw_M6-xl@UYF(*-74@EXjv8H9@(;$^qD<8vpj;JDNC@~n`$B=fIq;H=dP@-)o{qV%h`lS z@HHzkf%)CQ@)nNr9tyTa6Q)Ek&kHzc;wfA~^MIEyFA?ahfcg$j7T}#aD?yJ7;0PUr z8aR$<;hiiR2szPX)S`EA5A93x@ogx$h1EXVBca8Zz#zMA+4~8PEdPYe8NJvV+@Vvl zY@OS7pondsw@At<+$s&GK-X(2Cksi->%wG!6Y!5u4uhFFJUND3D)8(e1-2&ymq98n qh2Sck;7SN?(g|*aAV^6jV1h3Jx1|85m{5NJ00002_aK0ZoYTxZ73)Ir#pL)x1!%Zk6p&N$MMHP4Q^!^$^G zOg(;TI8;)}&(=KDl~Gb%l$W4Fse(t-nnk{jMcbS^XnCzKSsXB%|x?^ zI@6OZ$%jeapv}|SH8nxG!pb`|+nfLZ01k9gPE*gHuODykUym<8e-FO^gDNw{G=M@L zWrBKSLYfMY@o|Mu%~>30EfdEx6IWKaDg&|u9AvgGGsHv=*$wp1u^3OY&Y6xE^glxm zD9(B$MhsYIy|QM&z8|n>z^NZ_VnEh29LRwW0C}HoAS^BX00000NkvXXu0mjfZ4>~% literal 0 HcmV?d00001 diff --git a/examples/tiles/switch_red.png b/examples/tiles/switch_red.png new file mode 100644 index 0000000000000000000000000000000000000000..d17c438d468dfda782f6cb6e0b9e3be2a30afb8e GIT binary patch literal 864 zcmV-m1E2hfP)0h zF+nsmKmY&$@K8?jTw3T)PV7ud@?>M_NJi{SN%3Q1=SD>FZf>2Ssldq3y1&ND(bzsd zN?TlKyTr@G$|$ZJN=(~OPfR#NpGHb>K1St4Lh(^g?rUqw&(`ftOX^8SQBqx$m!PXiOO!-O=TcBu zIz;hoY-Bt|r>nER#?3%BLhnya!%R)_b#=|t+4EFVx9HVT`D##nU{|(*9 z&mb@tdSaU=#UoM zLN6o;a-g5c^6uUVcl0PBCMOrr2Kte-#s_E9rL4hbf2xUy0R8|Yp1ZWVUdJITE@v4Y z!Pl(F1m;%*8(TQaTPWBTO_&nFJTKs)ji+!0?F(MQyhNb00vabcS%6O(tOPwSfFpDe zYT-Ddg*UQjA>>4lQH$Qe8mdb2@pUM;hE)~SNN6c0FvxCC_I|fpGLnBWsTZ>0c@jto@*0000xxyTr@D$j{5s*gif=ouR42$&(={=U6hxg>`Y4WQBTiKPPa--=TcB`K1QoZOO!-Or>nC-HbTC}&BIJh z>`O`ILqYRYQq9xZH8nxG!pbUAkjDT301k9gPE*gHuODykUym<8e-FO^gDNlrQP-T!*0%WxvAZSuj6G;<(1@uAEn1S95=)+?2cJ;lt zJf45O71xJ)6QE{KAG*#n{+6fXhS__l^}vWuT>MHqH~b477}Wt;-;EpMR)hjjGzjTU zFK&!Shal9HFMtB`B?=$;;BIffmtyaC`He@Ik3!`W5R-EMZXXY?A96U__p*?P1)#C7 z?BM$O)sQnL95$|HK(=3@bC zP?Yvagcz_%du79bZ9ibkfKxx<#DKJCIFJD!C5xYK-c1G#00000NkvXXu0mjfJv0T@ literal 0 HcmV?d00001 diff --git a/examples/tiles/switch_yellow.png b/examples/tiles/switch_yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..d41115983461fb040d131740aeaf52c95ff1a10f GIT binary patch literal 864 zcmV-m1E2hfP)0h zF+nsmKmY&$|J7{&-F*ALIRDOG{J}x~)M@_3O8UGr`@}>1!9Rd(NBg}t%b`g8z&!rP zPQ%I1ouR3_#LLUk*ucooy1&LgK1y3$XU5IczsJt{yD_@M%KOGi<+V@$&|#*BN=`>Z zbYe!onoQZOPX66{`^irI(`Ej~O!~Sn{@Zr_!bAJNI?2!0vye+sQeBjnpqhS3|J-?6 zP(<>+P-j_1r>nER#?3)KLjA-@%%e^JeBQa?4{6P&RP#eSz-vkyszaOGRhW8L*B?$`f`J5;815eO} zUPut+KtGY?-M$lU=}|&VPA;Gg^do8Y56+rPS%l60R1*;a`~gNhcYSrafkQT3&I&w& zuUVA|%&!KvHgJ@;P_QJLFeQR{Uci0}PvHt$`@DpCi9lxs)OT>Q0PoaU33^-rN9Z8b z#BoFmZ)DL#$cY}K7QKVpXit)lZ$iNhtoG102`$A02HEY%-cNXC`LAr%?2u4nT0n=; zZbL4>FVC*~{K6NF-RO8?0?VLRwS|>v(O|>+63p?Lb)_b_;^A|lpcD>0tVkGNVgfn@ z{BCbN_7oY9d);t6X$vL{v95Bmkbt6W5`jj3oSk|zb9zP+Njkm6hh7Q}>BZLI4xN)_ z`^2^bMQr<|O;XO`R%tK=dR|*OSxDMm4<-YgfPZj&6wJ)g@d4ygfoBIPustET2vTt& q1efUqmqKuzPH-&*K}s?K6MO>D+NA*Ti1h*h0000nC;K0?06&CH`s z{J}r^x-I|6QO(oYH8nxG!paPNevJSC01k9gPE()HuODykUq6p8e-FO^^db$60003~ zNkl^Kj6TCQ$OIufUIXYkOLod#Gh`7bM-v{0000~0G%CNe^$IjHp zYd^%y(zUI@aYV#*Prss;+j~r=vb*k+ zX2xnh-hNNd)!Mtn%QZDY9Q6wi0000DbW%=JU!OnEkKa!(e-H1!057#RXaE2L*hxe| zR9M5!m)T;XFc^iYwu0hJXY0Oi(^ae1R;^lh#jQoG`u=Y+`3VV25(b!?ITy6@aXv_D zfk~0tv=km}s1;qX0weipxC$j9G=A$>@CU64;n?6$0)M5d8k}@y@*pE~f$;FHu;9h*N`yI~BY-;Z(q4w?f3JU?~Vz@avGj3P2&Q2NL*)5sb5svu<}X z78N>^F3O}M5R4}?D~}ys-R9&JE`g09-Hy0!D;xqhW)&<41r-oH{Gu(|?a|O0$k$bunz__Xn`d$UEP83vN;g{#-^7(}x zq7B7$te^sGPYp&~V=k0mhj;~j5cEA~5!YG4qFG-y-811IM!=hi@B(Hg!U{Mu5l&#u z#6Jjv=f4#6G_B`XadSq{)8H>4R#ZLQBfxd@kSed3&De={tX6OtJ57>5M;@x z3-e`LLEE#S&$74M+3fa>d^$r_MM}UxN`VcVKWM)M&4gsGxyn%z>%07*qoM6N<$f>bCF8~^|S literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_dirt_block_bottom.png b/examples/tiles/terrain_dirt_block_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..17c480c73ab59954776b42db9b3edf1e13b17dd7 GIT binary patch literal 639 zcmV-_0)YLAP)_r*x4_7{!^*O}#KFnW$j{Zj$IZ09#tG2(((bvt>*}%xo!phLf(AKrT#;dlz$cxWUP-xWP3wL8h|1&(+$y#LJVT;-3Hj0k}y-K~z}7?Uvb+f-n$8d)zk!27yFH zWFY_lixc*QbVn$Bn6lk1nO3il-yhl_)Apxf(`nlFU-!a3w)l9emDplF<6Sqhdj1kOr` zl`}?gz2C2>AzL^&2fe+J!4(vTA*K~L2NUB8ii3_HY5KqvGzT4*$7L#P9P&+~VXb8C z%dBahY;tJts>fYA)O0J$?e z8y^UG+`d5K_95VEEy7hnkB238-cILu_!5ov=}huBOy|g>r*HK<*?9Cno!=t(nVAm| Z`~p&BF6`UC=VAZ=002ovPDHLkV1f`wI*I@Q literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_dirt_block_bottom_left.png b/examples/tiles/terrain_dirt_block_bottom_left.png new file mode 100644 index 0000000000000000000000000000000000000000..2d2ab997de88bdeab0992ec2c363c24ecd69e94f GIT binary patch literal 793 zcmV+!1LpjRP)!y2Hv=SYxWP zxxB^8zQ@hQ%+kxz*QvF>w7$m1&C|`(*|opNu)4y;%+jm2zs%Cuz{t+R%FxQt)~mL@ zwZF#6(AK}l&b`LW$IjHa!O5+-!8J8Orn0-w)!Mtn%Z3^pW&i*H4RlgYQ;*+&pFhuE zFYgaezW{<28&LoN0s2WqK~z}7-Imvyf-n$9-CksSx2zr9MNk1tc>f36NoWa~i3&IS z`Cs{YW=NH`m(z>Mlu-i}9FTt|7>~A)(U>a6xFlGuw`tZZtR3gMpuo6-;;BHz zx`O6Hpkq~G;zF<`l9b@>88-@e3EiIX9fI942-?n5EkPS@|M_6SV!2$TANl@0l*=WK z2^LERNlP3MIOTSU>w*O5C9QFM*V5a|id;}&eH9Z=1sRUQFv1ix7lH!wozoR2E(9`G zN;*?WXG!wls}K}eE-6CsRG?yAL31I{v8pg}!XNKs4}l#GT?G{9Q zp~!qUdkLa}UroTgIQAHOge`Zg3788@yZk!5Jq51kX=}*>oht&@6SYHqEBbcw{^?v2 zB<(yizkDOS-=AST7Zey%&^#5WSd^&KndFTV5WLK4Oy?#DUa9FTelHVxI!|oYI0eCd zozZs7H{rX6;N}_x-5LT*JcsUEb%D5q&HKl9Re>dTp>jZAUDg#?SIwFN%Q`>1s3`aY XyD4}0UN_o200000NkvXXu0mjfns0BP literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_dirt_block_bottom_right.png b/examples/tiles/terrain_dirt_block_bottom_right.png new file mode 100644 index 0000000000000000000000000000000000000000..83f3c05a32526cee62b389191e164c4f9be41e59 GIT binary patch literal 784 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 literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_dirt_block_top_left.png b/examples/tiles/terrain_dirt_block_top_left.png new file mode 100644 index 0000000000000000000000000000000000000000..dda4cff2948a5517be2153343455e8a034461677 GIT binary patch literal 931 zcmV;U16=%xP)oKr=H$Gc!OmG(Z3V0J*}-thd0a zwZ7$tS&?K@=ZRb7g;(N@W9p4y>k zL(_Ff%56c*fnUSR(bjiK$!tK}d`+;s!-ZZ^;DAxTdtBLiOW1iz$j{ZsYd^fj%d@@3 z%hA`q$IaDtNYZphu)4yvzsJVS)6CM?y~fO|w!g&8(#_M^!phLf(ALM!)WFEjtG2$l z!O6eJ&aJq?#C1=dRvT)KwL zzU<|)o#3r9e9-GB4FtQ&@Ygi`(LkWwy?%<)t1nPSd!^v_pY(fk!7@(Mm>is4AXQRd zki;>qPR^u@>8o5XNMc+LN)mJi7m1n60*b38r}3v#8yA8StG{C7Ou+Ho{r#OzVdg|o z;sQlg*fsEp__lBmn>b002ovPDHLk FV1mKA%Y^^{ literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_dirt_block_top_right.png b/examples/tiles/terrain_dirt_block_top_right.png new file mode 100644 index 0000000000000000000000000000000000000000..87583510434e7192ed60cc4bdeb71dc78ca7fefc GIT binary patch literal 820 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 literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_dirt_horizontal_middle.png b/examples/tiles/terrain_dirt_horizontal_middle.png new file mode 100644 index 0000000000000000000000000000000000000000..41b4d3596d214a78ab8c906cc5735a93b6b850b2 GIT binary patch literal 667 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 O!r6;nxx&iAb4|aZma>JN zlV-+hKHh#$rn0-c#LLgs+FU$@ivR!uHc3Q5R9M5smU~;9FcikmbQgDZUN$$K)2{Sl zi_WrwY!-?x;ro9i10_vPIKc*d9^e1Ud){9IB%A}h(&X~K)Zc&q8+G;juGIOjKc#^4 zZU_y)`QCv$0s-0}5MX&2vTxtr5E@{au~KdbFypQWsK*PvyVw)~RJ_o1Lj=e;_%B)^ zp!)ZrSje!=Dxj(z3&6O|jYxnm06t^x2niUy=5I!f)by+g0l0X6b2G0IzI<&!0FLKE zZU`{rt_Y~dX~b;%<0lFMIG!vP35A$ni%YL41mJkFvFixwM=yW=FcHAsrznmP`!k_^ z8IOf^Y9c`1wTkNqr6jH_0|8XLj#&GLVTKVv$1y_r!_~Pv-CBRaA%7c?@eGUV3P6bZh$CRU%RY}$D{=&wnp}1SaE<_e77As)t(fwO#==;(q~f$sHWmtD z^DT|VMA&`QSZ3+9P&zXaO+G05HkDg9z12&aeW=^G qBKrt5@N#IHK%D1;&I87?03HD0h$iDnw=d}c00001sg z(7}sx%Fx!p$j}|E$*s7-#%ey^eov;dySv28 z&(+%8hsF*700IL^L_t(o!|j&aa)K}rhPOxSu^tN2+9Fsh0+#UpPgep#vSbs8_NFua zZ$!WBHl1^apTJ<~DbO2`U^2{#3@0`QNsy$O zNSgFFfLcx~lJtW#09CFkN=_PpF2{uZt;~O5dH$s({{GJ;i zfAG&Z;euOfi4zoYV$)5FZ{?fpyoJ7Zb?aJR4DJ}SG61_S+iL|32^Q&Vk#wP3O!5AW zMZ+x`3(ajB3&~Mq*+g$eqK&SxP+V#(hp0Zf(Sd3#GzS&qC0!gSEHCNeKx3>hanRvr ziJ5~QS4+A$hHbdP$*s7-#mv&i&C|2J#kIf3x`k}K z#mmjp*~rh;tG2()(%7rEzRS_qr?b4j$Iima(8tcy%Fx!gz{tSJ&b`LW!HaUql6a=F zyVZ6`=!;!?SWd=jKJJrdH8nxI#LLgs+TMOo&un)^00002bW%=JUjR$6jH3Vm0aZyv zK~z}7rPb?l!XOj`;O)I?y)|hrrj4zZ`2KHL2*g6nD4gAYFtgvloEZS_xZoEoKnfb* z1pJT!j--GiDQJKb@J$LhkpfPnpaD)W044MQBUpeC93U44KrEaAsqha71rLx3J|GeT zKq7>IKo|k(0`{bU11aD@3L4-9e3AkbDL|2e1~|b0l+Xi$Wmq4O00i+32K$6e{ z*=s2l46xR3%33NIpwU1hy@dhpCxB?d0IQ{1X12C1ifx);r%>5eR+uNY$WjDvjMYxL z?5cPHqxz!uh#0{ErLEU_o7e6XWt`9hW#i7Se~5N7T%;*u1azy}P**C~Kz?4SW_DYE y@-x@KJlMJUZ-#)XA0CxT5} zyTZm50mYbM=&lPzAuusj*m*W91Pe!Ug}sjXQ-G_u>!k#nvy*~RnvOPAC^rP7bP4&6 z+;!wqp$T&AR!A-sL?AI&jNEmpPy_-`CzB~%h1MxA1QO#rFNxQGMP?njR1^XgtBSM} zK{~0RRdl%fS+6Lr5073Oe8I!Se9*>M>ZN@i$}~=?W`12g}b`ymiMvw!va@ zB9K`97dcpLToDNTkqq)*`kfc`iD_LZ3PFK;aL2u+p)l*YLOYQl_!aD3Ia(uk-8hkW z5X@cFj-`dpTdDbRM(Q=smomq6Re>H=dYs|w2Rq-ztmeigP6^aq3frV8bT zpg+Km?_2DuUvMrJnjo*M)0rkt1Q!Y-kk~$*H6CjMiY?RG;Hcn&J-D1FC8sl0Ttam( zXu$Q>HJv~BXKUiXw@_^a`*6MSn`}2w-4E*cAWffs6Pxwm^aOsid;~2ho}31ZzYeX( zs`bYfe+^i`_$|zz?<+k<^Zt3xZvX_0?}A_I3j+}2Mr~m)}07*qoM6N<$f~1U>NB{r; literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_dirt_vertical_middle.png b/examples/tiles/terrain_dirt_vertical_middle.png new file mode 100644 index 0000000000000000000000000000000000000000..3f140373f1fb75d7873f773b43d96a8d8a078db5 GIT binary patch literal 659 zcmV;E0&M+>P)$IZFI%Erypyv57R z(%7lBzO}!{&C}V%%+j>J#>>&yu)4y;%+kWj(5tq;%Fx!p$j+;_zO}!`zsJtW(ALM! z)V;>cxWUP-xWP3wL8h|1&(+$y#LE^#y(a(w0nAB6K~z}7?U&njf-n$8?L|dU0kKFF zM5_7!Uu+2EIx|#pt+u*4FFfoyTfsO9lTT6HuO%nTMs0S23a+d_DA=seqShNK;B!xK zYR-K%CoB%RBQO|OVB8Y87%FhC1rWOmifh4{s7`^$+Zq(?cAbKb4+~y7A4q;L2*g(p z-|rB}wXz-|I8@a^uC|c#0EsA02oBXnlx%sKPO!M!QzT*fySHmj$`gC zV7%jSs0Ml&cP(ilDy?sr%5!}SBgc9eOv8uXSmI_Us)?z9&!2H)*_I!o$}P3A_}rUF z`%*34a*u5+kUIi{T?LFAZV6m$E3mlYS^%-Dptv`YCx|%zz+hkD>kYS$ILzOPn0v%Q tIXvQUc#yj7h~u}&pFgS}=z#Gnf-mG&E!-*%6sZ6J002ovPDHLkV1gT0K(qh= literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_dirt_vertical_top.png b/examples/tiles/terrain_dirt_vertical_top.png new file mode 100644 index 0000000000000000000000000000000000000000..81e00e3e148c6f15146a60aa0cce74412481f7ab GIT binary patch literal 984 zcmV;}11J26P)0jGek5rKr}Q!H8nspGe9&nKmY&$sIlajkz`ZqjbLL;O5=o9=ZRa{dP~P^KiqsxKsrO>gH+3bU%z`?*m+9G&(*%i&8Tl! z!^_d&fKhr_PO!Sd#mv&RzsJ4C%*M^ryv57Q(bvb$)Wpov%Fx!Uw!h8O*}%xo%+lDx z%FwH}zPQ23zsJt4xWT`omc(^W&v8WCdrYRXyT)oh?vrNTeor+uLA%7u&(+#4AhtmO z000bhQchFPKi_X353lc^U%vpmaPa>C00MYPL_t(o!_AgyccL&9hUu=YC1P=RK8_xDp~Nd-!L^(_c~PBu&yYzIMbd6ic%==TT7@+%eu z7nusjRf0huO36nqF7Yy3=eR5&n0;ihy`iY{3PHfIcowMTL%2L8u8)sOyla0#NAdGYKX~64ZOI zIK8^AkmVVH-y0_B`Kr3i1p&iqg^F_m5z7iSr-Br}bbsS?U$P1vrvmcETQ^G5ed85r zUFL#-VNoI18RrBd<`t@X%BeucqJrbDWiw6%ktRgJ>%B1a*sG}mPzbxTV5n9eK_*QQ zH0Kc5k74*|&moBHPR)+y5s3Mp1rLssTx!K}n)wBAyB&7l9&!sDsI~E;7Jr*t?Ysi$ zweU6AE%H40m3syia#kyOpg2YELb`)m;oI15K;O$TMA!3NVGnqol}N`Wf$PO5Y-=|} zxT_J6dOS2sRkxg!rwT#9>S{$?uYVeT<`kSjtjCHDU+=_c_u&cWvt3YuT!%EMqSGMn zY=U5uUC7jb??lmTq_4NW42R$Sd43;k^uI zf;-oJHa|saOGP!(ca&a8K9y)I$ZaaeY$Cg3BfVtPc}_n$L5W#N%56d6hFQ~fM<>E) z&2U3K*nULSf;)9vFU@i^(RSZ|Q0yKgQiCf@+QQUk@&~!-X zi(MeOVdRKh*m+9KZ$j*lW8{Tb>WyIHgH+3JL*Ii}+j~sUaYQA*W;d{1mXlR1$!^AK zK1Se&Ah=*I%yI6MX5M~JH8nwaXxkeA000eiQchD}pFhu!-%l@p5AVMKFSRyk0008n zNkl%K43U9DPMwOaRmX%VZw|C3C9Lc)@S0p@1T1+9FX z50Y9SQW7VosA_cOGf`DlVrEf-O_ed6Ack1m0l;( z?5@{GEtFB6D5$`!j}~T9b^C=}#S4uORsEvjJamck~$xY8T+-3nfvD5${1FVD;6 z^9wyBH5Avef(pz%RTy!Vxln!`;uiEl(083hTxSJ~#@n*toC)tR0^Upn7cessRKS^u zU;=X{{z2eB|D~YY>vg>CheD?8Iz1PS24_^wP>um%tcr6 zHfa5}NETgq*>`te3Q{lK-_d1XGPVkx7+(5HVfzwUe9LN>x+>GvdomeWiw0{)*CM$2 Y2jjpMO>GQL2LJ#707*qoM6N<$f{q&T9smFU literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_grass_block_bottom.png b/examples/tiles/terrain_grass_block_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..11d17f73d50342fa496f56b2be60a94b5482f933 GIT binary patch literal 638 zcmV-^0)hRBP)5N|Cfm7CZNy=?O*m+9F zYd_zAQ09nQ=ZRb7h+NQgNbHbf%x^;Lk74bRWa5KV5XCEgIDN_ zUEqLG+j~sUaYQvWLB?u6?vrNTeot|R#`6FG0k=s+K~z}7?Uvb+f-n$8d)zmK0f9tC zWPtzw#R+Q?(jB4jVal5Oq@M0$NGKX8C+0l(4&}`JF~Q-OiyRMBF~$|aGt1j#Pplp1 zU}9WBalo*tpgG`JSJ*gESeDfM>*C-X==P?h;R{iTbI8Xet5$MB(Kx}f5-ev3oK;z_ zoH2sy{eDFa*}}m&=5@39CZ9h(+8%YIq0}LE>mISkZ%$VYb9%6 zWKHvAlS6k^600RL6bB5O3Yr6sb%l*Xv12Lq3`|`v;?kV$icgyhvjwN@B9fh`VvK*< zVDXc0k;JD43&xefa!a~fH@O*uh2&sjz2p@K467xtIN(@U*f=0K;DK6#w|5*29BswM zg?$O#-f%E}+tzP`VKFk$FFR^J@b-N&nkHan$&>|%@JRwLTUaXyCkec&#cTF(U-z?V zdr)=l+p7-Gy)1CuXyhJ54_O*`F7H)r>?vTWwB Y0=i5u1CQRhJpcdz07*qoM6N<$f~UzP-T(jq literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_grass_block_bottom_left.png b/examples/tiles/terrain_grass_block_bottom_left.png new file mode 100644 index 0000000000000000000000000000000000000000..26d75270a98af8410435ff3867f8c014d27026dc GIT binary patch literal 791 zcmV+y1L*vTP)C&-F<~t1Qig4_kXZX0zyJ&g1}9` z{#WXmIf0-VTRTWxA;ZG^R#id#w*|B59x|O##TXX^+i;&I++yuG&jdNf6%YW3LWQyJ&~jYZ$EIYfR)hg2`>?pM?erwDJyLU2laA7My2-9LptYyUbI8jKvbHUF2M#Vp*Z%!ihwc;Oz&l z6|fS#ec~+LgqH}2nDB3LXo^Q##mw2`ogX1EgRzZ$?lOUUgkTiMBNV_X8ARoRfGrg0 z@8&2$Fm~$+A}5ZWD0+k~x9bTa8jj(=qiSbO3V@yHwR3KwsB2Q1`m2=1GV zwp+Fd{RV=YYY+??2n_xl2JiI+{1SGrAN{%lgYQD^fWWwHDlo3v4F!gAes)n)@C#Tv VcoXNXWp@Ao002ovPDHLkV1n?xSo8n@ literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_grass_block_bottom_right.png b/examples/tiles/terrain_grass_block_bottom_right.png new file mode 100644 index 0000000000000000000000000000000000000000..5ac9b60a23eeffdfe2e45377105fcf9e2425c250 GIT binary patch literal 783 zcmV+q1MvKbP)9V&~io9c1Y58O45Q`iCIX~c}_n$LCADXUq?jJbVk~KQrvt^$!tL3fm7dq zQ0a_b=ZRb6gjUvfN!WQx=7?I#Z9(ggVeOG*?2u#Rh+NQgNX&0S~0%z=PoT!HbD0Ag8z z^FknFsGxWzz%f_QJQ2`1RqW!4V55)&1&_<GVP(krj&~rno2ZpA{VupXHt^d4WxSFu6hE##b|Kng8 z2cIm#m>Mi17Y55T$ggfN#RiMa!C>JSDt7TwM}oMl*u@KhjG=umSNHhc#WxY;ZB_SJiAk&g)cLj^{>%9aJaLm$D6|L!_i zTaW7vXa5=WyImW31hxmmH@C+H3Qov(2u7|u+EoI%B(Rg);M(LJO8JNoc==t3eDpSO zo-2TWV_bpp@^tpaChEiKEOSqJI{UAz{!H6CeR?|gldDJZ2PUYhjJA6wI9CwV;v=Xi z2fCdp&sv`iX+t+s8WDfUd1oQqk1}*SeCRdZQ}{t}ZV1Bws-CccpTkpz{C# N002ovPDHLkV1hwZW5xgg literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_grass_block_center.png b/examples/tiles/terrain_grass_block_center.png new file mode 100644 index 0000000000000000000000000000000000000000..a8e6d04a34c23fd35add0364fe607725edac3795 GIT binary patch literal 666 zcmV;L0%iS)P)f2 zL+OoS--B1^i(TM=QQLb=&v8V?YCi6hX5M~JEX7>10005aNkluH89K0F;o-tWPN7R`hXD_$2_Qgl<WI+~$CBDZ?u$4qePEXbv`}6&weQ(=1CV1Z3p zaiFkSa*qRzv7(Oyhjj_&aVRz>2fn>2>F~6^tf|4F9F(}Zug2SIpg^?K=4gRhTB8M< zreBN}l;N%49WSWQVPhUYF7QN1ef+S%k*DrV5iIfD8!iy|;tven- Af&c&j literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_grass_block_left.png b/examples/tiles/terrain_grass_block_left.png new file mode 100644 index 0000000000000000000000000000000000000000..7811ca173d64587b8037f7e17fd9f6f20380ca40 GIT binary patch literal 666 zcmV;L0%iS)P)VdjWh*?LRXcS+E6NaToI%x^;MkYnwUWaNcc;)7J`jbO`fL)Cdr--B1_jbZ4E zUEqLG+j~sUaYQvWLB?u6?vrNTeoszNY>WT^0niwgn*GJ}im?&<7&$f~COaf?EYN1utiOMqr62KcXLt1v~QNc54K5 zcAiZ^QB{SlO!7Bq1Vwcxfh#l~_2Fa=7{(Pa9|aP_3XF4sz;)BqkOJp}Kw>(#rozSt zfr_=1?U}^3LV5Wr1rn<%GBC~sIyMzJ9|R`W6*g|&RGT0t5i}@I-|vs#7yNLQAbjb% z&_Uq07ZR;MQrbu^%5bK9wy|tzBU;l~=o=rdYAoR{a%n8*@`FTq#u^L6l^y9?iltj# zp~eF9Q6RCNVwUTi3v{feK;YQSPEP&xK%(?@N&jy1oQD7L7XS!+r;90f6C`_Dv}Xp7UVCnWfV~3QXxk@l0&ybep}0ZV4dv6*$)dA43JjI{}W3g66G&#!}J8TS4a7$UVXN^26gR*nN(2M<6k-z&Q{Yj4Lp12^79o)fH3VTnh{qKipSP zTnau)fWa%{1J9V`tw4R1!S*XAlF#cSGu#rua$nK$?WSoqTg|n=FNX@vm+D+eE(M=i zMcsi_T=2w(-^>aEZ)G-V*n2mYq(1W0302_ocWf+&@{6ZDP>sdqPGdQh>gbjytg-kU zG!}!QqK{iQ62!Kmk86RCp@QO_0LMl_^HxA(sp#Y2N(;%K3eqASB8YN6!$#qPXeLhF zED9FH^2q1G0yTjL3%YxI7cAJzC0xUIK^S($kaLj6ar)0E@vj7Fmi2xL>){yIMIS0aTcQ7<|}(h o3YiZQAxMS{7}H5JeX$Ye7luPV-zs6vVE_OC07*qoM6N<$g7Mobx&QzG literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_grass_block_top.png b/examples/tiles/terrain_grass_block_top.png new file mode 100644 index 0000000000000000000000000000000000000000..8e1cb3554207883fa18fec33967abda9e369546c GIT binary patch literal 755 zcmVc_BD-Tg*?=<7btJxJMBar%-GtS4Na2A~LEM5k z)Oyo(M>^JgD8y-|35QeAw?yj}1 zTWdg6RInD_|IJEF)P&3=1Czm`c4QP54mw`1R%=W_bI@^; zm8r0C$YV2N=U`$z;^Kf|HR9rcV_jk6K;cuw&Vj}v;^L50EKM*DKeGzQR2bumU=eO* zg$t}5=U`%7L2BuyHuy`7)KYoU0K#2NUZN7Y7Wh5f=v>>k1nO z3ZEi&4m1`K7l*V!eR#o4T+O`TOxuV zQ<6OKMHqPAz!o>TTm$9<}#QUI6qsf(RoCSwRG(eXF=U`%7A^BoF)VUP+LHVA$DiJ45>a l;17n!%VAPQ;P^u+Q@@|RJOGrX8%zKI002ovPDHLkV1ldEX)yo* literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_grass_block_top_left.png b/examples/tiles/terrain_grass_block_top_left.png new file mode 100644 index 0000000000000000000000000000000000000000..ece744615958b0a7d133b5066dd7e46b7440eb27 GIT binary patch literal 932 zcmV;V16%xwP)c_>5N`MwRJ1VZ9IQpG0t<}e^4N~Vbyj> z>yKgKfm0{KXeh*L&~!-Hc}nMrTkMcy%x^;AfKlX#TeoyX`W)EZ1bpQYW3v^OW zQ{O)yZ=VnEuV23ay%K6C0006@Nkl zfByRX=Inds5O1r4`!7Caj`22d|54@~58uJBSqlMvf)`o#cK_AS-%E#h_!gdJ-fFu!yPvhoRSH3L%RZe>^BpP=#-@AFuo}+Pn%uBgw5$G|L(7v z3H(An1CW}R5X$$!ML-O?{#E^XFqvq_YYR;I{{(&z_|^%ba3HuQvpl#qwd=Sfm`wR9 zJk>riJr@Fuce=+jlcH>goC!jLw-<|DQ4)fQIIZqfoD)Gv|EL*0ZU zy<|1gcR18~J9S$jx?(wBQbg5)C&OtrKSeFdZ#{}+Lce)8(|JAEelgB-LA7-xzGXar zUo_EnK-+;Pz-Q)&S~}Kz>yKg3bV%5FO5uT1JJ)^SfKlv_W6Wb%90!c(cR9M5+)>&JEKoo#sTTE@= zOViZcEfrBv2@wDPpNbi_S51JW|OmFsHRzsaig#Q*sMW;fh2qW@I+b<0Y1wF-YFnwo=EEyfHF&@^%#&dPhdR+;G7V6rvRPoK{Yi%G&DdnGek5rKs7Z%0002s zfKlUwR^o$H=ZRZ5)OtYMfg`bk!0kBS2jOIK9y+4Yd_q4O*+>f;)9vFU@j2*nT(Dc|o;x;*DcI*?`b=NWXhr*m+7c z(RM`Mg)+}|U>@Z>6w-^IGS?|d)A z=*7`V@x-E@7oIMeu;)c%v!X*U$!KD_auU&`5V-N_T8X<{;3lSPCgD;+lJyU=hlPT_ zWD14D>;W?*K@g#LJG=gh+1;VN2ngr_Wc@XgrN@wR2>jT{tRu*5K$ST38*IX3DPOBi zmQ1adFF|FKeh0^c>$YFonyi?ulD`dA&!I<=xn8_Df0RewUT0{R3F^5;^+p}G`^J8s zt4qPok_2+Pj7Hs=7k2&+|D!r}sEZuY-M_%?*LVxB}yvz{E6vz6aNZLJ9;fcW)rwGJE)@ z6etIU6z~`A?s%4Nn=3w7^}59$4S~Y?lG~15S6mYay!UeSVvpVZ{H1?mvn~`;pzuCy zd7s~&D1}|;3Mo)8*_nxllMm(KIt?O7LqDx8xoHR2QNj52tMqv3V1kwM?**0C9i&wW zD$H{xpflPTdu+DE_||G-b&H?TInAM4I4|lLSJ=FGPB-9$0*1)n#o)S@kdx9!Y%fMg z%;WbzltR{Z&c|*#smd1~;R84kiZ2zT9*>zE8c8;6M~u3$a@#u;;|K9*hus|vF&95W?1^ktS$-*Uz1xw^v@GSUG1b+egh3LNtB1gXf O0000I8{zM zYF0ddUr;_km{~qC&T~MjaYM>}Ha|t#dP~i4Lq3&gI@WyakYg>%Zy>p0Zc9TkMcy z>yKeC&2l~1e%5zMH`96Cd`<0WyINi(TZ1T;PCF$QW1nae`r4;m?VK*Q1KEX3Us1MTxFE3PS6VXwe9qVl+Y(1U@}{Ys{6~ zFq{R^^>ERcGsUp36Fp+}x8r-6j5cF3nZ5Y7Wr%>_hHkBFX#umfLVGtLpc4?+=181Q zgHD#dE(Oc+ESLE)S|Q0p7nJ z3s36u*04~w57o}I`!fs5bX-`_9=&Y8f&^f4(b{5TWvSXPL2o(lpG ziwe2!aZVs&UV+tJ&IB?R6@Huv{8nRIf!ApyL0N4=)H1K&>*IV(5PW$T1oJHKoIqZ_ z|E8ud?@Zw0Lgy9IDOfvKo&x2dU;_I(cSa%gn;Nb?Ga>L#{@Dy_0Rxp8g(3&%M=ipnxzfOY)LeLL!LtfkdbyQ$J zw?gL3!32Twp9szu6P%Od#RSLXVllx5F>}1&uF<%gR1vvhjbz3pcb3504MBarx*naJiWGBLCI@WwawRJVpcjALo zH`949&2lEdXEf1v&~!*X*?`!2NSyS6E6h>7@fmnu8=mMpMvhO4$gg^^q1MGnR z|L>_5TfSGi(tz{AbogFSbnbUF*6<(}>(r;BXeO%=CfjpUvsu+hLG449O(LkxW)lhK zRR8Pl&(qViLRdU4`%BAd#jsdjz;0SOjEnxKoe2c;3qFfQr`c{lR|t!QU@`6NJy#5q zSGaQ+oM|4Uzr%uq^FaN)BR{nn6zqr2Kh&3X77~0Rz>j1@{oTuNyBiV^`^QO=9Lq(! zq9Bn`t6wkpg!1QTI2@@(OY~dd5>G5n3r0hEt{z!gZ57)m-R{1_34zA$2-e%&2ue&V zd^{Hv_~HKkfl~On5|nr>;wnO12_SYyaNXucP+~md)-lfo7{d{&4!IJz7%M_t3C5o2 z5xQP*B)A;>5gA;<5m=`<5ZnzO^9=5&^Js1aC8iZVo(nK`6@IP+1-|HCi}WvSMTjeb z-ni{Q<>}wTk)lp>BPj4fV;+sTb*#t*25*TYx8Mj>hg=B&-WGywJVMn=t^{DWAp{LP zLe~p!3y!{xzaPO7e_eB1@anuV!By|CNbkxwOmQaPXq#$z(<`2Cy&I}dbM{eetgk^# zD}0K50}ea?9; zMlmBq9dQ=>0u^>0aKE5bP<6vY0x=@~OJ;bGhXpUlyWm~$p9uZ|*`R?!lV02Z00000 LNkvXXu0mjfb1j7# literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_grass_cloud_middle.png b/examples/tiles/terrain_grass_cloud_middle.png new file mode 100644 index 0000000000000000000000000000000000000000..d5f6ffb96d2a2811644c5414c0a61a0ca04439c6 GIT binary patch literal 615 zcmV-t0+{`YP)oK{PZ#H8nv10088LSLcaa>WyIFfKe&MYbU~J>5N_~ z$80FXY9qa5;)7J?h+622UF?u!&~!+@dt4y7VJpaO*m+9pk73_`P~?bQ%x^+tOiIgd zL)M33+j~skgI9W3PS0^fEXi&qzh*bEU6zwo#%ewwxL`)$hu(fqH8nx*lV&c=adDK$ z|G@r)h8r}=4ni(Ee2Y219P*2irnh*znola=)tFP224%c;EIr#8t z`=B1F8c2!5eZ8tw9`1k5Q0=J4kT}Y-GT09c_CLblmCBg|q5AA;$jO-lWpdw7O7Flp z|5VAxt`*LWfmwd~>z2>B>%7Bee!}J8*q(4Z2)A27&}v%~lEdVnb4Wldvcuw9#phs{ zRD2GW>l1>*!RCbM*ulYv%H7WA=rqi2;5Kk21HWJi5(?JX<(L2f002ovPDHLkV1g!i BBi8@` literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_grass_cloud_right.png b/examples/tiles/terrain_grass_cloud_right.png new file mode 100644 index 0000000000000000000000000000000000000000..7a627c05aedc38412d877e6dab0d67e25a8d88da GIT binary patch literal 764 zcmVB;v~^lU)q+0RfID?tG|_e~%5NvaXdt;^D8y<(wRJ1VZP<%nuengP2g0z$KSLg%amoZrwiau*&znp*;qPDt@Le>+ zD+V}LfPd?=zh@2p8Et@m5ZrgR+q(x#pwkP2pvxW}ErB6BA3U*#XWLg;2SIPhA8dhb zzbnpTfWKb*#_z9m0QhVEdU_(;Gr%tE3D^}N%{YN|2}ts4xm;lc-uFP7f7l?Q>oK5a zNa(u&U{(oJ7XX%J!qoQw%qpSlF@Wck(02jId9?UqTa0AF)CG{{`Qkg?VvhYD>)phgZ|F%X#{4Rfc^E2JroF*Apv_l zLX_;(D6Khwz`MA1*NL3z?gCC#Lf<2Y-Bdx&5T;&~F57Zee+BO)N~v_+&*m(Fb?F}t uT}}wYaSl`snHC~r=RiH@4!{BUC%`X~7{bJsTtZQa7jcnUvXEG#*r+QeW_O0YLs>-+gmzb zuJltokUk~OV|Q7&%he|9(rA}^t&UquPn7s7?@ft!chNkWZF{56;!2g>%?6W;WzRaI zjLw%nYz)3o;&G$WOaE-q>;A;I6H^{E1U~PKelsEYNk`0?e5V)Pu}@mVU-c$DY7V(w z?Q=Tc`Fx?v{pN7<4Y8{G)22-h)j64WEXz(|M}pgfcD*x&K>xm*oOZ9y|JmEypMc)u zEeY}qj-PLTzW=^|y*~f@{S49?A43=zm_j^V977@wFP;9p>Xv~->(wQ!LU;Clm%Evm zY7i|g#IbPN@xSrjraf!VOD((f^KkP1`<0GHr%yayd3E;Lw>OkJww1ryy)k#if*$>V>SwBZR5dXrGNxPk^{!ditZ4LK z=6qtN!o`;Uj$aDC%qM!8teE2NPRV;E@`1}yGg(WbIrzW2#JuG%e_jZB@SW|*gYOCT z#Rq$Aw!iwbjA>idea8de>K`b0{4sgEQ>Sqs`($30$qF+hbcNWPJRQQNcuKxDHgPk> zEuX0w|F&e=Be*+na_o4qZ<_M2{QuW|zM9&d68-0K{^tC*^JmFV68!z3*L~$Qe&G=H zCUHIcT+>~g?tDyT=Sv?cJTQ+{zyFr?&$jose=A2fhIil1v$5sh$+gGra^Qo?=<;p4 ctp6E!c7MLOPwn4HV8UbYboFyt=akR{04`OsV*mgE literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_grass_horizontal_middle.png b/examples/tiles/terrain_grass_horizontal_middle.png new file mode 100644 index 0000000000000000000000000000000000000000..53e5351af5ce43c288858404b8c0a6b06d83b3ac GIT binary patch literal 667 zcmV;M0%ZM(P)c-+xdm$Za&ycF=T4?2u#Fc}nGnSvS*p>yKgWk!0tITg-1l}hgC%7MG_e}db5OAyF>%0fJ!0a3V_Bi& zK;bH)=Rji-F>y#cmLymOA6W$}Dva@(;1GNj6&$d3oP&yS1;qiws)FWF$BXbYt8md& z=r~k(A0|bG`+7vrLB(>!!~w(gh=~J^WrdCdg{z331C2$*#35->Ti4%-r=9Ds#Zw!B zHBHm0#h*NWyT8n=FYC+=W{nqsY zz6Sgnm#(|iHL4usLE%etxAY*Xye8QB<>{95*0@EKgNktl#S4MwH@`%EPnrOdLopyo zIbLmmNDhf*JJb(}W9J_M4Y!ip{dl literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_grass_horizontal_overhang_left.png b/examples/tiles/terrain_grass_horizontal_overhang_left.png new file mode 100644 index 0000000000000000000000000000000000000000..8f5a70352325b0c52d57481845123fd8839ad61a GIT binary patch literal 1268 zcmVoKmY&$zHm(5hh1Y#N;+y*Jbzz6s&P0~PD9FmpCby^^~VIjI==8Il#QcNeqX>?FVR6;|3R7aj-Nkr9x zJ=lIbbz45!fH%{5IMjMN)_gM0bwRatC&Fkd$803NW#NHSE68orc}`zPM3i1giCIXg zXG&>HMKR8ELEM6RSWZAXLqOYsEy{1mbWO8sOXrDO?2u#7bV%5FN5N|Mk74GBTHt_DK=!;$AgH+^&SL%&m%Wp&5draShSI==o zH?UonlT|FqZY95F#%ewwxL`)$hc3)^Wv;Y7A5Oh*bQ?GAdKTnSz zpD)kf55Mn!0L^u~?f?J-Hc3Q5R9M5MmuF+zFc5~7W11QcvRp9t$@snZ@#$nN38^%O6qHWeF#>^I$=Gp&0FtA&-47s{vHJp~ z!2fdQ?c$;pBak{w{P!PQF$1Zj0W((YKttI7XsQo@f&mXKD>prNdfJK+h`c=yt?%2d zn1M(Orlx!Lo$l_^haxfuzs`I0pXc!K!3Kb*Jr}SG4I~5ryot(fE-#A%aHn9-1w@Tt z?}urA2;Q7`0rM^(s(>ZaG(YWySCHEl0L`15CZCH7FwNDVJ`4VZRshhvA=x})^)tRB z>a#iP)k2F0P+36iEq#m9I{;r6tBBHFfG1yFUtfhGSMQ*1$0DiXP2fB>`2kwuP#vdGw z6IpVY4j}Y$Ra|nqd^SFy7Fet79|sYa zj9w1tC`G2>3Au4mcigC7uqmEBTt_OIh8L{Nr-*i5M=EK;b6#dsIJ;IX8UY=tWO=rq zIb!$-53k_?RSUe1w>V^V+;JQ!qEnp)9rX#IW56v8_Wz}(qSbCP}KqN1hqBU-O?5Ws3QsQJeA#=+>Zgk%}n^`xbcb2 z-T}A@g*{5Hjcpw4_XfaK3?%}`$+fMG^#c(k0}#foM5f!bvow+e>CwIb(2zkTk?sf3 e!6?INv7Ud6d+^;bRtRoKmY&$zHm&TTt0M6Ki-F3P(DCD*?>T*aXM;NJbzz9%6>RiPBuS9)`wv`*L`D5 zN<-a*kz`XLx?(lbcObc8K9y)H$85B9TH}OP)p<=IMjMA%5Op3f_hj^KsrM}+kwz@Na2A~$aGD!YfIR9N|tt9CJT#u%GijmactlNswJsBqGGTKrKObThZ8z0$E-N&M1(h&>%=I z>fqqx#!GAnyAz;#{uCK}?gf&xf!Z*OVEqL&c!e7mRjp>%%98X93SzDVsD3?`o}g#S zk)WB)=d0A&wRO}4CxYe?oN>8HpGNn=i6D=Ac0?Io8-nqtv0clwu4k>_y)M`j#jPA) zu&)XBsX1tZ+y_wiYVMrC{^Pb6{Wv7OmiMO<=~fg3qyl#%6^b z#{w266?WVZ(AcctaZSL+69u1R0UxUhJB|g4`$|xPv*BM@!!usO!iz8;A_N!1e_9PM zSaFJH@Jp4(Yz2cSp&%fzFs)$nIQ}k>_+;=0*5Jgd(D~)ppFap*f&z~~;K8j{gG*Au zMe~ z6wE`xt;>3=E|DAxD*Y~N0BEJ?NKjLh8lwYIze7O_Jx(ptsn4=D07rrb5;Uj@gurw` zzmI;qr;2h)HsSmm8h~f200levPp4*T;&*k8IaL6AryO?aC*T+_`2kZS82f$qgh1GOP-(>~-;EsaK%JO8776=32Tu>+`m*V6mG3E!riJ(v{ zrjqHnWrG;-h5@@AY&@fZd0u+DU?DOW1h&N&L;^97A51NQzGlQ1a}-tUKgs6vB-%?= Q_5c6?07*qoM6N<$f;n{-!THMUujE4Ha|r>*L_3Xgp^)LHPUxJm1yIHRw24#iCIX}f?Gd1 zK`O^=Ah}`Fc}_jpeni!RJ9S$((|Iw@b286$Uq?j9bWJ+ed_lE!E68mp!e}VOY9zj8 z;ek^))OtbOfFU@l6k73||QRIkR?U7{6 zZ$j*lW8Z&J=!;$IjbP$~ROE$M%Wp&5draShSI==oH?UonlT{_ZW-Q5W#%ewwxL`)$ zhc3)=k!KF5Z~=7Koh#%-_>Y&}DU z6=!Zxy?J41ow<&4f&%lS=r|*w`1bDZ zR;G~iTu|TzDp8^0M8IQFq2?eEF|W{Z5XdmA(D7U#VqT%*L?Fk7Ld`*-#+gFLL9nnW zL2xzui)wbI3Y2+Ca5MWyYIY-wi<}b_Sgw$9M!;iHA?LY(;`8YrRMYdaLdA)I;_GQj zYI@Bo)EopN<`p^)f)XBk7apgO#VOAP1s=L+&R$wli1CaQ0fQl*8;C+4#{~iopJiQl znNienBH%u8$-bq_l__E zlTjy?X3)pO`8@8A7R&d*!-9TVvDhVirb{ptpx*#2JPaqg2+xIW9KtS!Lsgvci9+B9 z^ac|6vUtI%f)f;2u8?td7lQIlH1OECg!_!Z8_90tqg)~9!8iPW-$}=pBh`as1m9#O z{{VlsEuL&|kf3fM_>Egovk>gVsmoaKYo8pt45$C~J3aQ<96Xbn<;nGt-O;zPW^?#n dbyl+D|9>4b4&ITuUY-B|002ovPDHLkV1nJR(yssj literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_grass_ramp_long_a.png b/examples/tiles/terrain_grass_ramp_long_a.png new file mode 100644 index 0000000000000000000000000000000000000000..644d418bc51b05f56f85f5061e3b26296afff651 GIT binary patch literal 614 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCil41^9%x z8X7v8nmPb^mrLFKS4QugmHfCR>|tZ@q6r~q3!LZAPdb(Bc&Wtgc((o9i7D;vUMB0J z@6`C7$#;4)A^CNG;_Ygm=bh2J=A@i2bTQu$J8g1k@Vdm)`Of#7!=JQKR?I(a^8o1MmRA);$ZGjv~sYx$n3<)E#MZ>C~%1J0jGL{strTm2PO$7JG)Gl95a(9W)mj{ z5vFL1GIX{PTIWLEL zIX8#59McMzA`US>;LvYSWNS!F5|B_5XqfN7Xvf5PW$Wvcj?AjN?Y0YMBov)orx*8& zMQTFj8^K10`7ang>&*WB%r{?%ZNrIK>Sob9p0&rRnaU rr~j4lKD+p4*{<0eCom{K``>8)UtF`6q1G}B7!3@bu6{1-oD!MNS%G|m0G|+7 zQ&R^+Lnk25d_(NC$)P$Y^Hlez-K+C=zT0Acxzc`qj=7ho!j1&D2koY&j(TSbHQslt z0aY`X1o;KemuEPbY}yOt)_J-(hIkx*dn%f-K|z4!z|yYJGf8Z#ZyeMLS$Z3gnjC5tDf*H`y$XK N44$rjF6*2UngD%M#&~inJmsZwyN!fZ!;ek`>j9%k}R+559(soLR zrDH6$V9jtt%56cej8jjkTiSk7({)F4kx#pBK;M5*Nu*bteMan%W9yG$E3{sJn^)3- zP%5)sH%dw7h+5@`SwEj_?U7{XiCfZiM#pPE+kHtd9ZB_wQ?Nk7!ZEi#Yd;#zob4N(PWRJg`FjDi&CIsN(<=x$~M)-K#fB+oN zh1?Ke#$6FmkJE_7v%@0_0XUwlRtbez-iS*;AppmVja^4bKYD)t#Y6ymlcG36^cF%r z8IOf^VIn}@wTkNqr6jH_0|8XLj(GI@VTKVv$1y_rl z?Dh$20>GUV3P6bZh$CS7mc5&zR^$jUHM{Nz;2Z(`EELLoTQTJmjfJsnO~q-SY%CPQ z=35$ziLm>qu`JRXp>$y)ntV|9Ln^m!`kOIOS`A zNX{TUj>w}-`e4|_1VSQI9Q%MLplSjsN)mEHQiwzYs1Zg@AoPe+AAunEMk{&(5hbJY q6xm0hk(Wc$1mZj&bRIDN3*avfC??~Zi_xn90000P)qO*?g4-+xfpc}nY#VKp^DZK`7Ch+6EBW9^Y-=ZRa)Z$drTe$aGCWyIHgH%S~ht+va>5XA1#A?fLL*Ii}=!;$8fKl6fOwVydAh=*I%yGtQKHh#$ z?vrNahX&;U00IC>L_t(o!|j%7Q^GJ1hSw92!vgkDw6uuy!lwWK*O~O7*=AE3@QX9P zU&!!epP3y(HoyjCdpsV$zH#1myWR78y#{urVVI!DFi@a3Ai->s^Gs$Y21$@+d7UgB zZUD8MR;1YnX#lERRg|1G09}q14W|sCD{mDNCk&u3uN0W82FT5#7)%9THf?#$YXcxWo95F6BNVv2;*|kpybukKx{XlfCBGL2C?5P1 zPKDr3+F}PhcG7p#;#>J9KeaIQuI^mx%h4@kMh0NlWqYlFA;B_x<;j-1%@iL#STx*V zu+ZFOu#g-LmQD1|6K!;Zh2qj+IYiCTjSkdcp*g4+Z#l<-!t$1L9B7OceH?VS-O|rN zkE<=`I26O~QYXUm6H({*&5b;aYt4YAm&7}Dy|U7`4=bx$M>DyGoWxJSoz`?_E*{i zKyXPAgv~7+22?rCLB+H}$D1ck*quZne&T33^gLnCJ#pen;Ck98Oj7>k`?y>D?)%_x a3Vr~pxYlOWnmXRA^M5xvP47(Mzlg_jK#Q45g8YKx8N4_2EM{O}4E1zz42d|r^yPIw)@EqX$p~x!Z z$><(rz@YwMwn%{z>l}}R4093~y z}pBwzAGsZ^$^v^tm-IW!*O2uH0Dhu$AX_8OJGXajqFU~n^dy85}Sb4q9e09Fy*N&o-= literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_grass_vertical_bottom.png b/examples/tiles/terrain_grass_vertical_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..bb2b73503e26de20053fcd7446f915e3da240d33 GIT binary patch literal 859 zcmV-h1ElyTr}Y(U(6 zP2+@C-+xf&iCbSsM96ea?U7{Rfm7OkQr34#%56dBh+6EBW8{Tb*m+9ih+NQgNX&0S z>WyH_Z$sjPRNsSF)p|{XYDn1qpE`Cb_?D+b4cgiS1`FDm=^Qz z6jN8-=0u>dTjAoGfMU!b_SdDN6xf(5+`O2Ug1IL`;jUwT6yPfU`dWh3*-F7E&qu2& zlv{#PzJPor{yK7{Fa!eo6^cs*5h%@hjfx`I7%Tn>%Wn$Nn zD@7^Lv98G538bByTq=k_VXhc2j0pax7(6M3CZKhF6}mbcNgc&YfnCSErDlD3i#u{# zF7e}`I_aj6uF}USh&MTvPtUaeuN*9KF@O}YuVC`+9xQ+Fo&p9-GW>uH6I0>j_F(xO z%8%~w(=}LZP6P_;f1(D9i)#XjU$VY<@vr?~e_~pfic(PGF5Gc4@)86+@vvbw<9$*O|&cha|s8@~&i z2zvc~Z&ihIOVI1%*SC@S>KB|Vg&`1ieLB;mndDMI1PZ&Sv%ynCK(S*wTO1W!umhL# zY|ZIR6<1K*iRy5@@lEF!{@t2*@C{V!(JoxC!zSA`RCl8qK1eI1-@;}sIyr_P%@9Eo zipM7rAz(-Kkb3=y lNdaT~dk59p2YdUX`2~IWoXk_%+Cl&T002ovPDHLkV1i=Bir@eM literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_grass_vertical_middle.png b/examples/tiles/terrain_grass_vertical_middle.png new file mode 100644 index 0000000000000000000000000000000000000000..ea3c52c4ee0842de36452ef9d0e2a69d446a8bc2 GIT binary patch literal 658 zcmV;D0&V??P)WyIHgH+3JL)Cdr--B1_jbZ4E zUEqLG+j~sUaYQvWLB?u6?vrNTeoxAQ>%ss40n155K~z}7?U(Cvf-n$9?L|dU0jWq7 zM5=lJS8NF6vdJzLoat@4e{kmPcT|X*IC~exN7UMS-DYQF1^j0VcH66{?T!k#+!0)w zYhTR;i~Af148|20w*(OT3Y=?!kD-F%T5u(*Q{eHo1_g&hr=a7*f*I!n$?alWU6xRY9gOk(6VslUR+u^tBV@K&>_XJtqHs_gT$mHEWoKs7Z$H8nspGe9&nKmY&$$!tK= zbw|o=K_|m$B)(WyH`Z$j;nWa5KV?2u#R zg;&dOL)&{y--B1raYUArRX4C*EXi&qzh=g2J|MVYM&O4o%yBg}LEe5(?vrM-;~bj+ z000bhQchD3KOf(3@2}6FU%vpgKK@Vu00MVOL_t(o!_AgyccL&DM(M81KAq{l?|W_C z9m-OrRf)p?|254^APY%U@XVQcK4A3nTtae0jZblma>+E8#xrKgG)rY8X~JP~bzC5; zi>aVIE|@YAERPFk83YR}Fg&ZBAKjuEb9;1NJA>BB0v4DsI=DbNb8!GY6AR$=1Qo~$ zH1Yo7;}t5DD_BRPgpW0Z9`{Z!pGPz1`SNt{5uqBcmW(xgd_Xs&+_^yyxVmP*jiAF( zfgB>}#)AD(q3lz^buqy;6=+uP?rzFjQh^e0{|til$%e^-tsn??w(|=5gF!zTe#e4f zH&fxbO3)ubDLG|#2M@D#j>`gq*(v?4Z;Cpv5Cja1SCQ+CbAlAVzrDSy6lzWd42L+f zLdU6q$Ff4K^IQ-xEGpzWGHHOI zF^9mu55s$V4nbshs&+JwK+OLvICh-mRx6Iv$S;8HcG$ih=N33nYvVyR{x&z;c?HmG z;(M^0yQ>zbXw$- z4G?Uw8=3m^P85w+`hN54aQLG;&;Nr>|K;~z{e$sO1RrZ>v~c9gBl!RT002ovPDHLk FV1g#uz3Bh| literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_purple_block.png b/examples/tiles/terrain_purple_block.png new file mode 100644 index 0000000000000000000000000000000000000000..9ebbe56ec7ecc7953bd8a674ebfc28febd1d2725 GIT binary patch literal 1272 zcmViJl#?8~Qyu``S*0{CIrd8Icw7sr_(6hb8nV_h(zs6@& zdV64zQ%7UXiuAp3>&AcZqj|v8miWPp;?R)x$%OJhJ50iP?vHJ$USVv2g^sej!mzr+ zv}EIWe1^5Z$Ej}7%Fxz5JxR4@<*c{BsAtluS=zV2$gQ}*xM}CP!pgIt&8%D7t+>I< z(bvDn&ZxA!!O73f)7i3_&ZSw?%ZKyJlJ0R@hP!R*!FKJffXh}`W4CAKreM;mw!XN* z$*{Y_uU_7&vbnm$%EipmuZz#Z%Fw5?yt%x~rBl_w$j-#f(y3V4tG2(q#mlv)&8fA% zs8-juuFSs2&BxBvw7$l(W8$lI(Xzb6$j{Zx(%7U@)TXk#)|vXx)!Mpi=`}S$yTr?t zL&|6X000kkQchE!UmveO&yO$PPk#^ZzW{q%lobE~11U*FK~z}7)t6^?+AtV}-7EqI zx_6ts_uivvl7^WDVT3RfHh6&k|EVN{ZCMV)`j-2FBk7*|$gdKFU(Sui+a0~G{^kqS z@9K5fc_qo=PlvN+&~25LKW+YRuzXJ)T`7h5v- z_a0S%cweIZ&!Q$XzjQBZ08tDX{XZfh$`8RsJwV((r1RBC3MwACf#VF}A8w0!Kye=x zdTYopf00|F{M$#kuwPUGa=l6vx^@qz?_^Di|5H~!e7w4>0c1IXPa7jj88rSY6T*H* z@zM5T1TN|Ua{QDyG(%pNQ-psSmyH0qc+)9Q`Zq|C8>kVdmGe#Eld+ z`f>8xOZidbm3DUCDGxxB@XycaJF!sjlqdaq!R%7i3f;(>-GSMnu6zxE+MQqRO)#RC zeD0P`Dt@6gy+dsee%W4R`&n4TFWcyKe}N6KfM56RsE|9BJgT5+=Xlh!U9tc!QQyXM zZU+KgE?JE)p?uQ;n=T%=otvwc%D7wI#H}Zf`bJxmx$(3qtuJfq>a?|+Z=PexyLzIz$Ii38#kIf2sIF=)7inv&#bq=!phLa z%+k8U%CNh`xWUP*w!Wvcyu8KBw7$m3&(*25zOuZ;zQ@hP%+jm2zre`O$IjHu(%3aM zL8h|1&(+$y#LM}5=imSU0g*{WK~z}7?U&h>f-nq*GvbOYDm&;D-v1?q4olJ|^@5u@ z9KYL7V_L|cBXk@|Ct@n-R`M;-7pUuNeB<3MzScdk>l_|bPk!S3DOV#duM4P0YWwt| zW*i>IkHn^r6+!e<0aYKdK3|wUR9q zsHz~k^X?u6RnL#793I-9=b7{8XFKBZxAwz+ZU{8WG&SAyi{0`|BX2p-TuJub~Yc_3|~apmAV zv@7`*Kzo6EZg?+9e%T8a#$FIS+6xBOUf@013m9%MaDEGWfwW0;--7es|4jd)!0$>n aP~Z)Jx9YwwVJZCp0000Iz$IhyCD16$M@?qKD2=(W9^`F zG!q=zn5aey{*kM|Em%y)Yn7jti)%sBqj)b7=eW2Qh;U=`O(^m>_(>qd)Z|lv!tzWY z)id7NJ=|@bat#jS2!!zlX+Gd4WE{ z;q$v$R^aI>l#UX3k5vWUQ@x_V^X~5+N(%k}4t6tN!*x>b00000NkvXXu0mjfxiV8m literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_purple_block_bottom_right.png b/examples/tiles/terrain_purple_block_bottom_right.png new file mode 100644 index 0000000000000000000000000000000000000000..47afe9d34c11ab4c1edc959ccebbfdde407cc2d3 GIT binary patch literal 742 zcmVFbw7kpF*SEmPthd0q!phCl z*}=)r!phLP!^*I`!??l8tG2$y%+kEY%crxvvb@B;$IZyk)wI6GskOeu%+jm2zre`O z$IjHu(%3aML8h|1&(+$y#LGs8Alm={01b3fPE(KHf1f|kUoY(V}Ih5f4|7#mk8YeRot2A$x{rZ_E33N}{*l}9y ztb(YNYU~_zGuRvC`8b^Md=`##sh{pi10j`;I6O+lUN)``#BxpfdMUIl{AeIVhE>HtB$#A~D=Fz;Pv_92uB#<%BsgI9E3V zG#9w{2Iqp+K=(conhOj^a{-CW1fa2x?=GQV8jBTRcC&w^(N3Oqf`NQ!c4O%V+ z@6zDj!Js}t*>o^y%k{5s7aM%F)jRMmH0XSPmTCiDqjXWzb2E7MoD5noo`b>D!=tD4 Y5Bv-xiI4xgyZ`_I07*qoM6N<$f_|o8l>h($ literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_purple_block_center.png b/examples/tiles/terrain_purple_block_center.png new file mode 100644 index 0000000000000000000000000000000000000000..0c046ebee5cc5bd302f9a82fdcde56bd93f874c2 GIT binary patch literal 583 zcmV-N0=WH&P)Iz$Ii38#kIf2xx&h~z{t(h*{HOF;(bufEz`@DS!phLP z!^*h9$*Z=$#mv&MyTiQ2%crxv$j{ZZzQ(@C&9c12skOeq$j+;_zr@Va$IjHu(%7c5 zyU*3yyTr@x(!TTn00EClL_t(o!|j*Zx`Hqagmc7Qb^%$m@cvIJ^spptQZMw1kGcJE zOe>lBgpO0%i82v%UurYx4eI)ugggtAYuyWWor8nwRUSBgDAgzz*9PjI+dRLkSq={4 zBZl|N0tWWFA#5P%Hi7)GH z#kR4|0!Qm?#J080JSXdnW1CxNj!y>Mx)MozHn7*#kiY>Q)Z^0Z69+OTT31dShxSWt z2Ajce45o7BUVdDz5?{*Il2NV#N9AhBDp#J9a>e4xmE&tDS289oPfHx%{&@bt;0-YX V-Y5(_V4?s3002ovPDHLkV1mTPBeVbj literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_purple_block_left.png b/examples/tiles/terrain_purple_block_left.png new file mode 100644 index 0000000000000000000000000000000000000000..e914acc62cd42399891a864d3f42dd54edbb9f5f GIT binary patch literal 576 zcmV-G0>AxF;(bu=Y$f&fuxx&i9$rpBTdyO z#C<*LX-M(4>iu?U%_OZD6M3xQAK3(>Am&;8xV^gk>{ z$H4~yz{BJZAQAZ_fY$}%%MFZ3d=@~7t}-scioh2Eq&x2M(M7Nv3A$tIyQ)eM!f_(_ zBx?~wJc|PV*~Qy~gKNS2!12Rdjd5`;P)%m@tWk3ud=MxVm^@G^)4(FSnvsS`teOnq0GK5|IMU*vPC z)^~ho_p4bT5?@-mz&~4ISD3(2ttaz~le4>#=cLx_T;oEjb&jv4)+4^Q$v8`V8E31u zjd2z@8fT-nt#Rf#8E0JE+&FW55^&>6BJo*ZkE;=ZF9LI1t?(QP=(uv>I1zl3O|S{R zCun#^maD{<F;(buT7ysWptxx&h~z{tVL&&|`>!phLP z!^*I`!^OOopD!I6=cz=_Wyr!nvP;Ew7K-aCa68kb+cb>2B$n|9iAWySJe%sKUm>&b^ zc((q0q>+e!1`uW1XC#202T-@+db1`4@*;p5c9dm92H<4?9lz1*|K(MHf6Q=J=Y}F^ zZvtNBQv%vHNek?YG-*AvdF1*c1US!Sf&Aj)?!^2U;I1d@Pgge*@y`I~QteYGfIbBD z{VpHw)vmZ+CBuF5UGGW4s~|r%QnegjlpSR;T(hhmpKi=QEA3DZfphWtHQN9Y&pR;> zj~UMD6dpO3;}5+k)qc;E>q?e9*PO#FrY3H}V$ji~!sAtm6 z)7h$7+Owd|!O73U%FwL0z^Ajku)D*rUf#L9%cfw`yv579!^*FV&$nmhtG2$SQ`NY^ z$;Hglvb@BoR@cbS)w5&bt98+-wZ62z#=ghRwyw;;$j-#f(#Ou!saV;ow!gKf&CJr+ zq*BzTvb)xq`ZYB{x@+mr)!Mtn%X=@24gdfFz)3_wR9M69mDh5EFc3vIi5>S|aKXl% z-jYcF|7j5lU5)~@uObeqhai~jH1go}Slt_wSK4k81XUg| z!5St-nNjVNdP57Rs5}k8>swM3xO%rW&QW+skL;2@9-Y;dPIrenq&^G4L5H1LXMzjJ zd>();?ddfOmymd1ioRu@tzYGV`^+2F7M39LfNKK2KVKfj?zo)$ewBxqaPNzJ{~o8P zJPn8!kFtL(;v9vC^vJU4mobObgX7G$I(hKhtZvWAD}6h2oGK59;C7Ru%&3k@y{?N= zRGtQ)@RSt&;Od=1l%w#F9@!>+d^)QKo$eNKNPQN7oKJRUpEFcI=JNpL>QAq`sD#7= zQ}jLaZ2c+^+-IJsc98^;2UL?L;57nlduoJY7aCLBuJUv%n*)&_nAz{E@_%c6b1D1F z=D9!=KD!r;qBr;zDE0ZpVvkroniiL+%s+1?lU-qEd5udvbG2<;QT-~<-HkS#)y0(E ggCbx5a%}?eFMP=)BE~4rSpWb407*qoM6N<$f~xyw3;+NC literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_purple_block_top_left.png b/examples/tiles/terrain_purple_block_top_left.png new file mode 100644 index 0000000000000000000000000000000000000000..51c18006c50c4036f5a058edb831742ebc0ac154 GIT binary patch literal 924 zcmV;N17rM&P)oKmY&$$%OLI zkoJXVoxO1D&5HEGdG4cmz{Y>@T~2SylJ2*L*R6odaax9%bF@D@Ow^Y6dti~vhx5B_ z>cMvHv%ST!Vd1QN(6ztDx4_7#XVSH1<*m5DrCHO>)7iPg%FEH$xM}C8w7jZW+N`(0 z!O73Fpv}U{(63(Ju)D*ri_f~l%C~3c#mv&Hw!XN*$);e^xxCAzQ`M)lyu8KBt98+{ zW8$b**S4D)XdV@q*BzTvb)xq z`ZYB{x@+mr)!Mtn%UX0;F8}}l40KXXQ%|p7kKZqEAMby^0AVIDp8x;?DoI2^R9M69 zmDzIIFcd)Drfpi%C2hKAYtrls`wj^Z2n0;LOaK2Vm9DWZ*^(aQ=}X%4!VE_~_-Y2p z*Z|g_uN4X}d<_ix_{(R$HZ<_Y_j3huJx>F#>F3YyKfZnSG%z+^(dT!*c$ygS0`EO- z41+xX*~<~2Te#zS+q+x)`+){VfdoEzn;!yA47vr|yMZ=z3;cI`IRkHloPm#d1ABP` z!IKTNYQ+aavDQ*}2;7~B{K=iOLggXg+>Ek*bmPP*d>C+?TH4nf4ylgR}bW? zUZXN2R2n^nhrsxl4$5p*i;j0Z#w%1F0=Pfq20ftT4f{Ao;llvN4cKj1GNP~NG%$zM zM*&^vI^L;;R;WA#kUilB{YA%{*eFKf!vI1}*lk!crLX5U5r@=A0aU$a_w0Is zQpkK9KvpO59SdcU_#_Yx3jDT_0I_ER~?uhD7S5ehk$u0 z@|R}x_f`4uR30p|emO`E5QUG9^>*5~`6E#3<9nfe&g%1d`Vf`*dE;0000oKr}Q!0001m zXPtRnkX=r1dti~haO=>J_M>^g#((g_dG5`M^vQ(s%aZOtJ50BR*O_y)t$@pMT87Jq z^VF93yKU;hcI~yl#;knMv0>q}y~Ve{$hBtWxM}C8XVR^>z`4T8rCHO<(buT7yv@_u zthd0bS=zzL&%(;kv!KndUf!^~!^Ovb@B;$IZmd(zU0}$j{ZOSlO$#zre`O$IjHu(%7U@ z)TXk#)|vV>H9@*->Ce^LyTr?hxb6}F000eiQchD3pHJT}ACF(J?|;7l1Q!DW0006v zNklIwzi|_1zuyJ0Os|F=q(CV3I~#8Yn%KI#REHU@b6F}kbEo~cwaWK zQ#O$NBLUm4wMKG3YSnBz$FBkb;%Z-}_pgFADxU^|i>c_R7eR``XMrGS@xB!>NIeNy zRlv>pYkAJAcH7cJ5;CO}y{l$zw8^aWZ&jJwk z@sVt@t0~!jA2LWi9e~yey|a@hyE+t*cs2mXKR2EpKhJXkbj%siI#j@W zA#hVjz;UYWf!q(;RmaKkt3Zgj-jnIQ>u`cj~U2<3V~W8>cdTYHa?#DxY2JlcngFlk5Ufc=}!F@V>)dfl|*r zEbck2&+GgpD)a2iWYAZbAztGW&pmAuPd0v@7v4sf>}qMK-a_90oyYYy5dQ(ME;MT@ S;L5WA0000qpGA*)VsvXrn0-%nflMw+BG#nx@+le>X1DE000nlQchDp zZ%<#3-+!;aFAty3AMXH&fIqJQ00U4-L_t(o!|j*XR~kVShgVVBvTS-c_L{`ldk5?d zY=BZkK-|jz|CG6R+YGxo(alqG{5`-r-`vl+b2x_!CmLxFhQeX}kqL)G!FIEd!`EP3 ze{$kMTM+5geWf#E2qJOaXW|hMM6rG(IkvN-J~BHyW62RTM2VmSo_Yq=CuXn*>NQmLP&;tjbo&mM1yZOX) zcc}yLnSu`V#8%Tswh~Z_f}xZjL2Aer3^#pc*cOcX6O7t|ls`er7Bqe49}ui&vYVUP zY-ayYg7Tyne!VG~@#d3dTOeKBx%n%}i5I`SkQ{*|Wm@@9iHVD6$RaI}vb*m3<#cXl zCYMVelIM2}-_1(2;C2EUrLJnXOcp-R$Yxx8ANa(rEs!rO(C8}Fo+Q1MofzD{h*jW~ zOW6^~avIyfEq9=ozROIImko}`Pm@JjAm{d&OT+qwv;4|RK7V#ZoJ?5blnzc z*Z0uqg2hRDitL(PhYp&4z#NezzyPmZ;Y0o2g5tvz%qX5Q>4RcEox7^pY-=uEvqWR|r zj2QUkI;Z){9DcdBk=KSlL4%aGaRM~5?!DvVQekbaP*@uGr0Y;Aa3W9MZc1Jo)~so) zvEhMBH-zwHM#3W$ygRgV^Wf$MJOIpzL3lcD<;Uzuxa7%$#-tj9=lPOHeJBtS0=(|# zrFmG3nWL_Nqh^EJQEK2AX%5r^{)fi6iwoAUZ4A3kqYpRe7tDcNjK;h;47%2|9yN|x zz%37`*JDvpWDR=5;COvHAEm~9QRG_(X}aDvP~n;13nT${W)Cs-#1LZV^nlnZ5C!TG zp@`^8gi`SK^-uz$=)hkdG2Wvb6+AZ5*&$GiocNb{7Ca076TvSf$`F&XOF3=;0000< KMNUMnLSTX&ahWjy literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_purple_cloud_background.png b/examples/tiles/terrain_purple_cloud_background.png new file mode 100644 index 0000000000000000000000000000000000000000..53794aef977d19904dfcf11e340c65963eece786 GIT binary patch literal 1201 zcmV;i1Wx;jP)dPqrBdti~haO=&A^wgI4XHFrwam4@#;knM zv0>rC$IaRo1(~#>K*sHd`q*Bz@nfj)(yEQdI&(+$xYw5eh%TK^GYybcQ4@pEpR9M69m)BR~ zKop0web?T5*In1%DI$oyfPf+>MMVVlJ>Cqb zIptn+O+DhYCi5=90!cc{-8r+n+?j;4eXhO2ITh#S)`{P~sI|PtL7+aC=Vs?qsmdFZ zO3lyCl^<10u#l`YoaBNji0oB7WiO%&BFT!!BqKyH1@)uB>1b4WW1`XN;3ycTuwa*5 z^$jTvW~h(U?P38LKv40JAQ^+ojp1(t0WX5U04^QlNC#bt((CUJhpTT)INa~=Rg^B$ z12>Mp4k|s})dthuqYUEGagK~4;IDd!KR{|hFdXtC2o0Npk*cSRn1V@ff=N>l@+JtG zf~v>-2ZHrjW@jgpi5>k-kY94bA9v(hocU7T6v)>PcK$)O;=~`WWlJE-v3mYnW@6(p ze3KT)nFD+MT0Fh7l1|5u@%2}RA7o@&P*^05QlmP^;~Sq>j16GpM}#jHOo4V&B#o|9 z?aA^NYKQ3D9K<@|#T(5MXj&ZFfJYvPUjE6hA>etP!^e-~o3ubnA2LIO`tzK$wIxZg zJHIphFs;!7*nNd#iWkV<-C}kl&5sMP8%+V;jik{vgX8uz?UQOn=S73B5sr7GB~aBI zv;mJ4iC)`QnE)^796o*y-=qbqbixb`>Q@ul&CP5!af+|c7=9wDv_M!UjZ&`}CuH^i z*hID1_#NTPf+;}a6KT|Z6M@zL4O!87+2H4dKZ(c^Ae4YM;E^)CdHh05fWPP*K7In< zqy;E@$qcQo9-$eAUuIFg012lQ7mzJ9Kh-%aK;o*waeEGdK|oe(90Z-F0Ji~;JPF7p zg3hzX&$zUcYoi2>2A8&REzJp9IA3!DABQ@c5p*C9`C7dTT78J)`SyzF%*Cq>9%shw zw<1>Bd7ixPr%L-ye7|J;?Yr?*?YuCd-9Ov;Gj+Uj;S2T_)|w?!HnY2koL)h@;^IF!g=nGZK;)+ zpo@=}rd8HRNmRJC%x-adsIcMvHt$@q1Vd1QN(6hb8 zwZF!=Y3HbC(zRygx4_7yS<|h!z`4T8thd0Zw7j#R&8k`2!phLHx4mU&aJ#|A#mmrw zg^jO^&#zwIu)D*!!O5mz(zj>ky2Hw=w!WvcyromsxxCBF(%3#fN~l)Xwyw;zr_Hlt z;;C5Kt98+|zQ(DwzQ@kgtG2(gyu?vcUBt}No};Q;U1y|H)VsvXrn0-%nflMw+BG#n zx@+k;B8k2L000nlQchDpZ{L5vPhXF(pARq3AMXH?q?c#_00N3hL_t(o!|j(>bK)=* zMzu>qXhz$6Z>d|-D`Dq8(4a<-!l1L!uVKc^xeq}7lc`sV~M3D zBSa7!k7bRpp@Q^d!-yhCXN^dL6r6v*{&8zd4-te{==o=F^pHWA4q#mm9fYj&uU8`o zXoIJ^{%Y;{=B61Ui2nDy(4V|CLxwgmR@Y23lHlz|M8P{VqToYR!A4Ypd2a=^(rLH* zrQ0pl1RMl6yFq;SMwvy#L7-f97J27NaU$SMpeUtzUQ&GFa$BHux4n4#)Ou7cp0wNF z+U;Uhz(H`kLyLMwRipKGZq->t90clhj~4yytJk|$od`G+sA>^vz^pnj-JBXv0JA%npyNM~(W~Wb$h=sW${11cL)wwBqs#t#>dWvxqndNOMGs z{QJK(7^Yh%zHqrMAd_S7%#P2^L9Dk^6>Ql-0{fvrQgLaL3lCAkMb+RFYj26jL_+ zObWZ3;m$$;aG kXBRob5%VB;5Zn{Ne=$m(6K@H&t^fc407*qoM6N<$f;W{6W&i*H literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_purple_cloud_middle.png b/examples/tiles/terrain_purple_cloud_middle.png new file mode 100644 index 0000000000000000000000000000000000000000..e52c268e7f677b43c0714e63bf283b63a5c49130 GIT binary patch literal 813 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 literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_purple_horizontal_middle.png b/examples/tiles/terrain_purple_horizontal_middle.png new file mode 100644 index 0000000000000000000000000000000000000000..6e48eee3668b283e94b3c5b08c20b17b610fdd1b GIT binary patch literal 704 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 literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_purple_ramp_long_b.png b/examples/tiles/terrain_purple_ramp_long_b.png new file mode 100644 index 0000000000000000000000000000000000000000..3eac2c0dbf0a5c4fa255547844d6ef77cb53824f GIT binary patch literal 270 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|emUKs7M+SzC{oH>NS%G|m0G|+7 zQ&R^+Lnk0_)68?r5-zQYzP&yD*^!#}mnMIoS-i#5F=9#3mEA{9Uz_>M)YNfT_RHME z{PTgTnM;EFg6GRK985Ot1#+uAT^vI^j=w$S&DfwIz;a<>m*klwvCR>!Tp#>}j@z^Jsnt+>Iny~U|m z*|@>Uv}EJU(buG2(4~&Vt+>F+(AKh<&bPqGsI#Ld&$u)D*$!^*|X(!a;fr?b2@H9@q##;LWwyv56_w!gy4(8$l##LUvZ z$IZvi)WFEj%+lD_nfjzs)Vgcwrn0-c#LLgs+Iz*gY5)KNb4f%&R9M69mFs(xFcik| zI&af$Zq?rGrmJnWbu0hj&Nuu ze}K&&_*AGsd_WNbK)tm+f9=siRR|{^GdJhYDO5S408lc9)5k4p=*2S}Apz6}M>+PX zCI93OLnr|Cy2$o{ymR?eFHu0Y4RMxhpO%QMbHv-TOB7H?`Eg3bUjr0ke>)EVsGrIa z2Lb5Co7V-x>4)KBf)AT4f-uv{twJ~~)9x0Vf4gJ3Q2*k=LkVEX)E+QRm=xx_$z$iV z05G;N{RPux`A@{_N2g9Rj+cC`mF}*c;I=T2(Hx>nA*pLT>FhJ97e9W&NdIg1O_8XNq* z56an-M|IA(*MJv?my##9v2Lq!*UFi^cY0OSpab&SCe|5pV?j8$i)qvC9veE9z^_ z)skwiRX%90hG6%o@U`X&wbVnj)c+rvD;#1rS5roFwE>6d2uRaE@>*VMT&&qp00000 LNkvXXu0mjfM?>x^ literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_purple_ramp_short_a.png b/examples/tiles/terrain_purple_ramp_short_a.png new file mode 100644 index 0000000000000000000000000000000000000000..f6f97ec64111b777bf60fb0495eda1d6e577a826 GIT binary patch literal 695 zcmV;o0!aOdP)Fb zw7jghz|GUy%ZKy9$RRsq{sxuSq)ptw{o3*U=|dmeN|K`}scfhZKhEd# z=aLJP&RegshT`srBPT zHbLAmXn|bs{PnxFv_TvjMDs}Kt`8+j$Qg`4<|DX#G?PvshXyN<3AoB-BE3Kk3<4Z< zKpmgt;?)`i+NQp%T_TwPZVf_qj4^Z;7(;hKW4J?bF^DV+q80tXDhjeHPkqi%|C&No zIZi1&J*p-w?==E-+WUNeQZ_8_H3Fp~mq!YP<2_Lni@0`WZxFu)_4me$qDr8T!g1Y^ z(n)<#aFwfi%_KFi?k#?4X`4eW?4#oyz;L+1O;3#VHuYWY^_FAY9$0RhYB7g*Hea|6 zhU3?+oWh?i^;;anL0jM07w16EMw+9xUK}(|xwcO6_HEta9ojnPUD`V0ww#H!j>?(i z*K+pSx>L>!2j%Rvb+4Rhj>;Lfb*h{xZUj`hqHx>_{Bm`|Z~+e5r@GlsT%c`&a-~9X zq3+B>@DTiszzkRF<%h$SIewZF!# zebKPH!>qT!wZF%!w!XT<%Cfw~t+>F;(bvt>*}=)rtG2(#&eWuK%Eipm#LUvb$j-dQ z%goZ)zQ@hT&(*Yp)~tNcv0>q+vb)QN^Kn{+q*Bz@nff&~LA%7u&(+$xYw63s?j!&J z00MMUPE%h1OR$Wi00047Nkl`RYg2Z{Dl_K>w8<~ zhp%t|bUY0bj)2ZyLxc`so>6r<_v_&VX!7YJ^Z{N%FW@8e10I3{kP9wAEI0wF;0A=k z03Z{F0Fi(+T_u?VDBdm$b}!_MzVSsa`ODRdWmEKAzY%SmW;3bed_GaKoz(&=U3SNp ztM>aP;Q*+-Q)QMbB@~W;+Qg^NmkH>eOl_A%uFf(fKuIzn$bbPs2)G3);1tAwOZW%W WR#3WI@s0BU00003zH$B_uG8}MzHYG1hs#DRf0ro5}8#|?rU8N}5a7%XR_jnH>5 z(%{^uaR2PzW#XZMe>z}(IQgLr{Au9(GstJYCX%ZL{${A+;VAgtMQ1NGIve=Yz#RmQ zE|u#GY6kA(r)%QRL|Qw+7xuLF9c2R;xEg5-c}#g%2YKX$KK>-vGI2ju?`+zE0YY&- zR9*G8xj4cI4pMm?{%{;}H)4)reeX!@nqnRBcZhXuoL|Pe99Iym8fVPW zIIFQujWgs?sEE?ERSp_y zC8-ZOxRk9@QG7I$7&Jv;v1Bp%9-8&I<@Kg~2h3vf2$x1JRvWEa<020r44AxyWGb`3 zfaR0c=h@AG73?JCc7Z(%7|UjI@v3u~?5*+_woNQaFm&hH00000NkvXXu0mjfo``QN literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_purple_vertical_middle.png b/examples/tiles/terrain_purple_vertical_middle.png new file mode 100644 index 0000000000000000000000000000000000000000..e927ee63e77a5366310fbf8d788c550cbd273498 GIT binary patch literal 574 zcmV-E0>S->P)O8Fy4xkyWPK|NlvWI880LlQHp$ za9>aQK$lci41R|^W%8#t6pd#CDEMbq0TE=FXYuAf3HVY{C&DUK997#9)&x0{hDk552rIRnO<|MRW-eG!rLEm zHdMMT#WVHeKo?jBY07%5@0lH9#~pKr}Q!G&Dc} z003Q1Z-r-_!g=n-fAG+d_Q{0u&5HEBaO}*2Fqz{s^`<)~-UvYF1m$Ih%<+pD&|xWUP{XXdTA!KPr+%hA_+ zV3Es*^VF93yKU;hcI~fT-mtsFxx&i0Y3I7b%B5M;#mv&Ew7jp2&&|`>#LUvb$j+;_ zzrxDUsaV;yr_H&%%crxvrBl_s#mlt5#eo}K~z}7?Uh$|+AtV~-DW3b@4fflZId(!D-!|)NZ2@7a*+Q2eI*%e%Tgft zqUZFa?*+(u&iBZlI7mu2OM6SR$J6ot$#i%;%`NRlr9wYi+umKIt+guXdUu&FL*Tle z8Hk{h4#!reHzxH@W^!YCWsFvJDn#&|j;=@b1~Yn1>%I{IeSu!xMSAHgbSq8dt4DX0 z9#Yz*&@H^yb)UCC5Ga2#fk404r|YzdF2zGWNA#iLa)TKj(nmtnwI z-OB;L8-ag-)-u6h*;NKjL7zK8pDFOW6ZlO**=7C#!F({j3bXNYgUXA*M{WE|)C-2}7?GN-iB z3rGFpHm*eA7g;iKnlS}9ndcfkcqNZ>*owjDZS6ytPhv}eahUBkQxxKK`~!1gJZ^Bh zJPeaby8tgeaGU0+$2h_9hb8P3;LK&MdY)fquqZGZWm!yONs><&w`-Q)D>*r#I`^&ws%`kP&}65;mnGHhS);pISqe2>iTACXO^yfJ!;8(d8HN zxQnb9eACuG0J##f1PI-;-DZk(jE;XIE{w+vPL~JwWYR7`&mnHp9Q6oAI39XNP65)+ zYSr`nOhcl;Xq08Dgd{1=R(Y<%9RjilQ{*D(gG3CjRi6bxqxmoR8UpPxx{uZ9;Zr?< zdL_d<`_;d%oL{NdshoNf`JwH6k@2?_cdS1;`7?h63jEP|FRVY+s>e9W@uzk1Vo^)A z>UmyLWjB-6=uS#@k)$+R`|_(zWs0}xM^|0c;OgJIT)&9m4+J_&XBpb?=l}o!07*qo IM6N<$g1+oXk^lez literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_sand_block.png b/examples/tiles/terrain_sand_block.png new file mode 100644 index 0000000000000000000000000000000000000000..7abba388a0044a7995366b2e29751bd7a6d004b8 GIT binary patch literal 1313 zcmV++1>X9JP)SKS^mzMfT3FlwL@tm5J4MNa%}Q z?!K9cSx7%QLDP9o$7?_0gH*_DK^MbSIBft--K4!c}nrbq3w}m>5XCJg;(i}Ue9qv>bH>Svx>=VKyKg0a6{skYvzbr+I~{fbVlpBlG%Do?Y)=q!JX~Amh#1;#%ezQ z;KJvzhwhVR^T(w%H9_8fPv!4DS^xk54RlgYQ(uqYpFdA8e-F>U?*IhIvnT)n142ne zK~z}7rI%-0>Oc^Mqx8V-z1e&33W(UdC>9hDQ7IywKmz2~-`S9?BqWl=^C6JUo_A&^ zJi{}Dqal-pByDw-vXP|4#2X28v0ChP&9Ymp0>Io^*QHK#17Nn-b;@o=04wJobx(S| zv`TrslkQQDU&YBK6UC7G;hFA3fR);ZQM6IXj z%QxMPV8FOaKgBQ%^>RCo0qsu^DwW~741ndPGhjelf1Y7b?mhtcnwC`qN?>G4wOaX} zIV$S`6cM16P&8>!!ln%nLiNPC1Jhz_K^#6MloQ zC}lv=h2SUY8{QxVh|)O9&tS+Vm0y+wR{}s9{u4$~FTs@oppP5!_AS3;qY{8+e;!B~ zQ1qLYZOQ=9d;ez)*+~08$?d^_Ts-*1YSdFOp2L6&((|Eu_u(^V5d$if$K1Xe_kQk? zH%I}h(%^%O0omi7C1LR~y00d9WohR)ivd-ny>;Q)?}EHN7!`J`?{O9}pjy4nUho_K z#tW@Q7lL18Z+U|hAWGwVbP7WXx#)rHYx$C)o;gA z1{7Tgo{B8S+5td+0$(s>I~(|cAB1;Vb~oG}pr`~YYvK)n6lB20-TpP*Gu2~QRisn((=<=Z+McmBam4u10sP0jsRWEw+KnaHk8hq^{%4?)6p0`9n8 zSYXX~xsL!(lYow7G2tW5f9$ X`Kk$&G*YWZ00000NkvXXu0mjfcJ_E? literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_sand_block_bottom.png b/examples/tiles/terrain_sand_block_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..0a73fa8662e013326749bd38b23501f3c78b7bc4 GIT binary patch literal 729 zcmV;~0w(>5P)yTs6az)j4Na2A~*LzRje^A_fP1AKp$7?^z zZ9(UWTj+~j<%e0}hFQ>bNYZvn%Wp%?aYfmBOWS))&2U5Ok74bRWaETZ>5N|1cS-4u zVeF7&;DAxdY(U?GSI==o*m+9ojbPe-QsjkK(sV}Vh+5=`T+DAm;)7H*H9^K|KJJrd z-hNL2;1vL;Fc@Beg7A_0s92088N>GA#% zBJ<4f>M*koZ0u<<;d9iPz}61_%e zLW+PZs|Z|1A-MqX7(*t$)ngFjFO>ozj__XjG;F=6QTg5 z(z{+KKQr8J23a9jCkhn+>`l0mrpf^Z-{TeleMkYQ1%Mdqq)VCuE=*1k%$mi`g23US zS}Zi3!^7v(EG!4a@iACHq8Guj5L5(!$|xki0V1XlV_%fvEFj5!j6)upJJN11pl?gX z#yR4O{jSu~PS{Q_xb$Vl$E+`s+xVpR#Jmj6dCwrr!1*jmUT&(V(2kY5Pp))jb6Xzn zhhSTe#xle5$ERkt-U}xgWQ)VWkJ@_Xr%&2?QBT;q+|EE-uWaXfTd!^BN?QlEv&z;V z+F5?xfbFaXfZDkRP}9y3Kt(%40Jd+%V3h!9(}ryTK6`L}3&5BG#@s(5GqtfOYyhx& z)C}k*Oc-b)YKoKqc`i`G1Y7By+z8x8C5x(@3tUn9>z*EB_IdYUYUcu#SY*d$64@$i zR?Y=8wO9F`;d6m|cx1Jh3$zCFH|B!M{%YpJ>p#=q0(`a9KLC6KX~@*taMZ#C00000 LNkvXXu0mjf5z|#u literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_sand_block_bottom_left.png b/examples/tiles/terrain_sand_block_bottom_left.png new file mode 100644 index 0000000000000000000000000000000000000000..7b92c5c79c07930df41e1ef8dce721b4f8f20f3d GIT binary patch literal 807 zcmV+?1K9kDP)@Na>7T;f7h~iCfKaMcaE!*?LRsk73PlL(_Ff z)^|zijbYz|SLB6P*m+9ojbPw_QORsT&v8WLh+NEXLgIr|+I~{zh+5KgMm04-#%ez9 zlV;w2PiP;}G5`Po3UpFVQx7lipWnY9k6!>XTvT5G00Hw!L_t(o!{wLRc7iYvhHb00 zbYE>jlL!YQ&e8|13(e@Bw}W{Au`$I2&ESU}y}bEPOC{5ODsbI=L^ ze9atWl|003#dNo_|9S}|EWRWSEh*oK-1KK5PnJfk!1$H|AD zP4>j3jA#Av1X;NH6DB#{RBdAz5S2|%bmg}dKHM_6ZT+a^8M39=1#BJa)##ldE6?Z_ zvvro3woVn7t#c*Ew=<`$Q`?zs>&$kh+B#=DlWZN^&glitb|wS3+L-}hv@;KY($3rf zUi})t$~amg02$grS0)3}a{(&_eUD1U-e_|HK&MK;fH#5*b9oy1(N>aT&P08 zEoOr;7ZN}X0&V9ba?$_*002ovPDHLkV1k0oW#j+= literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_sand_block_bottom_right.png b/examples/tiles/terrain_sand_block_bottom_right.png new file mode 100644 index 0000000000000000000000000000000000000000..6eab6028680c27ba39fdd5a50927a60fc503d28d GIT binary patch literal 791 zcmV+y1L*vTP)F7%Wp&Jj9$=mNbHbf=ZRa*a6{R8OXGxA&2dH2c1q!fS=)O| z({)GKc}muIN$Zbc&v8WQjbX`bK;MH`>WyIJg;(H!QOs{bG1(7@~g?0?_S%%fFRLy!X;E^v41kfmP0@gES(PIBpqiN8%O|X8*%YHU>nJF zT_f3s-hmVkT88W%Ceo;z{PsG|w)ga8MR$}LX_niM7i`)j16_Jjyzg4{Ox$ndLx0;r z#*Y3@6sL!(W%dKA_Qjd0{IbZl8zwl`w=&5rFa~VGa=}183@yWv*kP4oNijo-MS`q@3ZX^M~)y1WR^$R85 V48e3UhJ*kB002ovPDHLkV1gghUw;4q literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_sand_block_center.png b/examples/tiles/terrain_sand_block_center.png new file mode 100644 index 0000000000000000000000000000000000000000..49d97f3b531a2a01146668c6245ba65997bfc3d8 GIT binary patch literal 683 zcmV;c0#yBpP)yTr}Y(Uj{P3DVU+<{c(hgs;0UDb9-$7?^(az)>NQ0IwT?U7{H zdr#baP1AKp;ek`iZ9&_6OyP!E(soMAZ$r&-MbLCe*?LRkgjUUPL+p@a>5XCPjbQ1F zUf6j`>yKg9cS*@?K+kbR--B1+fKlXySK5A3(sV}Vh+5=`T+DAm;)7JiYCi6hX5M~J zEOh6p0005TNkloCZ7K zac++F#&NEVb>KLwV*SrJi`NY}&T0T?oErcQ;|u}Rj58RZQaaG#R0BZsL7R34n2%BI z4B(Msbp`N1bh`rFd$6GHhiD7__OH>7BHHa9^peojxk&wNXUG8Ja#bmMetWgcRet`} z`_s5w<)=qmEmtMyRhH|Bd2^lRddXt9{-djYx#sKXpz+lP=%9&kBX9HN`V0RO$`RG% R(R2U+002ovPDHLkV1ijWNS6Qr literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_sand_block_left.png b/examples/tiles/terrain_sand_block_left.png new file mode 100644 index 0000000000000000000000000000000000000000..a423c3fa6ce909e445c96c5c7a15ed59eee7c8df GIT binary patch literal 674 zcmV;T0$u%yP)yKgVkYmzzO5=o9&~!-4Z$sgRS=)O|)^|zYgIDQ| zVa;$u*m+9nj9%G#OUZ0N;DAx&h+O1_SIloh+I~{fbVlNXRL^ll=7?G~H9^K|KJJrd z-hNLF5?#^&00Fv5L_t(o!|j*Zl7cW0MV-xE5phQZ1lf{F`2VjP;t)WlLjqd!V0m9G zBYnCd-kYNLohfahN$q>DEg*dXU_h)pqn33}9HWrw3Ls4OQN8?V6Rr|Kh!>kG)n@Dw z0s@rAs5FNF*%-)FZ4Lw2+F9`65cw+zKuD<986!vc2vG)P>Z54^Imc*71Ofm<6njKj z03d68z6XHV(CD85(PB3)m!@et%|7%r?ThPnQDj}1t^mq(*cAVzFdxJem2VD|s{~Mb ziuUC-4!e^Os@_K@N`W zEPjQ%1tZPJ>->VtqRtra7QFcy`{GP2$M~>53&=9EzJTU%sQSU03U%9Dn96S}xZDVo zV?EL8jG3YN?P7fp%nQg02a{)y^{Sl}W4+PN@>rMJxiQui?JSCQ(9YF`!p`z6fdNW( zmH;GnRsl5FSpvxHI-sp|3%L3fuH%Z)k zwy}dA1E?OZifTMu<&qw*jZ!>Z6`DWQ;R^jAIb2^ao{t3l0N{z&J^~F66#xJL07*qo IM6N<$g682gGXMYp literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_sand_block_right.png b/examples/tiles/terrain_sand_block_right.png new file mode 100644 index 0000000000000000000000000000000000000000..d793e0f773eaf303d02742ba0d255c3b3fd82a66 GIT binary patch literal 686 zcmV;f0#W^mP)yTsNfm7&5XB@Y(Um` zN$Zbc+>>2|lzW>t|a*P_70c?6x+yBaw z4Bw2v{G*NYgKFP>{^V+$Yv_*vHi>Tl9EDO!6EGxYEQJ^QiAxIrE4ALMQHgi~p!e%y zNfp4@j&7ttS3Gv*Z$)>P1u{S_!*>{Sd?+~v;AN!uW%wQHgUN9KS9b~TTarqF7=W>( zyHq!Qr-b1EE+_3=AxoO}pcpN{M!yE&9JPRhP>^LSB&fG9IzrLMYLFFxywqe00;o7c z`3$C$Vo4Q{=i6+i0*brs+&`IR+sgtO0G8qKo83{9-vB3}h>&qvMj(~Z>vn@eY-LjoATUXjyzHUl8!(M^|tlHTCFtoD`K-13F09>u`JgftV#ks^a07L*t4M4xi ze=ygnAorq^S8Ee%pThG2V;go0Gd`;%9gX5iY_Rg-~ zhgsEjNc766)p<%e1I%c|+M zjQ7y5&2U4~c1q-=dEtgx^T?*?i(S}xO6s?e@4%bTbV%EKOwDmc_RXy2s(|2)VC127 z*?LRMZ$ss$eDK1b)^|zYgjVT|Vd;!s=ZRb4fm86ooylxK=(CE?aYW;UR^gFk--B1* ze^Bwnq3*t!?2u#r-oWCQYubKN>$#HZjbPGrM&yN8;DAx zGm3i#fL|H)8~~3Q^^X7!3R{INfSs{BtdAK08*tj=T57=N&>X;P!QZd(N?JhPaq{r` zBiQj;O2E)@HFOtSK?eta3V2-d{5y;pJU}U?*UO{pFfJgkw7&F&fsuS?B{DGG?SkynNoa$zbQC7cFu+YsswQ}J** zz}50O-Ch(Z#WVl__uC}neQ~=>Kk;vRk7LpqSS1_!M}24t2sw9| zOSz4@{}vd*ADdn=hd71OZJQVzdXHE>)wXrd8h({~u@EEH0jaAV^|Nl+BV00x&VYE* zY=eC+gl*vMV29HW7DGpEsOl5p%#$fMVGK@Be6&s5B*RkMM!K`Hqn9vbV(b0Ccewrs ZfZt{Gbx>Zg&;bAd002ovPDHLkV1npE?REeF literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_sand_block_top_left.png b/examples/tiles/terrain_sand_block_top_left.png new file mode 100644 index 0000000000000000000000000000000000000000..c86ee8f20da5cc0f83bad523449c8534b4be2bfe GIT binary patch literal 1182 zcmV;P1Y!G$P)oKr}Q#F)=|kH9#~pKr}Q!G&Dc}003H5S^3qqzp9yy ze|dCjY30hX;ek^@KS}0`UfzLH=dy_FkYoJWy4872--lWD&aUB8W8|cH&2dHPj9$`qO6976>yKgQiCgo?rpIeP;gMw4cS+xb zR@iw;>5XCEgICXSM9FMG{@%dkg;(H!QTENO@WGwrh+N=`UGKn~>$#HZjbP$~RO+{o z;+Jdi!k^}dTH1b6?Yx%KbVlg2irIQg%x^;KwvNVXKIgHA|KP$kH9_;orS6kv-hNLy zHp*83000VfQchD3kFQTJ-|v6F0JYlh)Bpei)Ja4^R9M69mHAWJKorN*YE^pQcWYa< zwpuHqs372lqH>>dsRTkG1QHoV0xxA5rC5YPnN!{uC^_RvfV=dhmYD8McGgTmfDs@O+o+N zg$V$&5byy0SX?d?x)wyCujhVyaieQd6l%f3*REwzXa?DcF23<$tzaH-PZwT>UCFvM zfoemn7z13x(Km8~vzo>J&{1*N zep3;#Q~=CWKhR~W!uZNy=%C&ZMIt~~hMcTb@f##p0nB#bhd81PHF*gq4=_yZ8c7BK zq@#VzC>6=}>NK_J~1OP<9KpD?Vb!GllZ)t^)oCMI8 zK~ON30ALINDi$Ey_uc}%NB~%dW-QpfeGPzV0MxS>v!|Fp#a;sg83N2o25>vcZ@=kF za$Kf~Bm)GbG|iZ0FzMCoWDTEEOP0shS&?p&tvs)9fF*Ybi-00tU*6W;k9kJ2USI$w>fh z83ei0DM=awfJ*zw_Op3OFA@Njp&1KyZ(T`}X#muVbnQ$rze+!q3}gr}tN(z12f&8u z-BAyPa%FlbM6+zJjHKSmhv!EAT?YV;fehz|#A`jzo)Q6JbQo6tp0au4y+AC3MklmB zIeD>=%CP5wy_YMY2_rD7G1v!P=@`e^BGynhq07*qoM6N<$f&wQ&82|tP literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_sand_block_top_right.png b/examples/tiles/terrain_sand_block_top_right.png new file mode 100644 index 0000000000000000000000000000000000000000..37c7ab5c00ad1ade0efb3a410e454cab8f9c9178 GIT binary patch literal 1085 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 literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_sand_cloud_right.png b/examples/tiles/terrain_sand_cloud_right.png new file mode 100644 index 0000000000000000000000000000000000000000..78fa9868b16a2eb698b8a564eecd592f24a8705e GIT binary patch literal 1174 zcmV;H1Zn$;P)G;*Dd_az)j7P2-(%+<{czhgsp2XX}t-S4Kzr*0=K2xqx+X z_RXyG$fnG-p`B?}?7EchzM1B&gQ#y<+9vgGnr_o|N6m0U%Wp%! zdtBtCdF{QI)^|zoz?bHae*oiD4Hp0a0>eo}K~z}7?U(0Q;y@I| zqZ9!lZtuHp@AfW51Pg+qVgV6B#R3Tg0^$GPnK3gVlZ3?ZZIAa;$b0wqE)&klgOO~= z?;l`?M()H&cI9LH1W3}bvrmBJ0|cgJL(|jmCtf3h#~uLc=?h3;>;qb@33v?s0LGsK zf|Kdk(B$N+vB#~}698as0ia$!YCVI$DcgWfXKWlELLY#sH|RO^Zi?4=i3HqZc7j07)`b3dHp zL)35ua0Qj)xTGeAj#61Xys?;!a0t-ET3N%jY)s$2^&5ArtssjU&}^P_X&fUQo2T93 z8@ZU~&Se7)P{sI^t!@$XkL)jMxB|F^%2z5GO$;5Sb9i`jDHE(9KpSgg6W4M{ef!Qg z+_AZVENVczeOZa(7?I>6?T%c@#c1VHHqZc7jL$i4hnPR+MycUOfbJMNismo7dvyUo z`Ha4O?^`jvLiT$5$p>rqVI03a44qz}dN z2{A7e|Kj_DtV89X03#lfLjRvafa=!(fQANq26nes+pPltF}$oMhfmLK1b}j~?m_av o{jPw=pwAFsRS$p%z<&bx2k6#Ty=Y`+KmY&$07*qoM6N<$f`=hD1ONa4 literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_sand_horizontal_left.png b/examples/tiles/terrain_sand_horizontal_left.png new file mode 100644 index 0000000000000000000000000000000000000000..7daba42faa6f4206788965b515e3953c48a7189f GIT binary patch literal 1186 zcmV;T1YP@yP)c1Y%}gXoK0$7?_5iCfouPv^3T?U7{T znr`mCnc;?6&~!-Bc1rQYq1=2;<)?hbH>Zz?hVe5}!--B1WyIFie1caLgIr|=(CF1dQ0oMlG=V!?2u#Pmuv03mgI$3@WGwxwvOhATGDhz#%ez2 zv4{WQ!tRr1H8nx=$EDtWPe1l{#{d8T4RlgYQ(uqYpFdB3FAvYZ?*J>4QfL4G0>eo} zK~z}7#g}JW;y@69bEkk}uJ_)1QO_r&$+HZ5g~e*OPj(EzpzI0jRL3YtV7uArm=V~fI;I2@a{klV7xVLN12F6jl>hKi z+aL^!W$ZttLT0eS(ln6kVa~0_p}*A|z!(&_sf!2|?Fe61{{O)KksSh{JEz>*W?g z7NEw&{R8^+gMAUB3PiC~_tRwi>m^Yn3aHxXE3OJ^p2#YGP%8Uribra->={B90L1Pd zcDzaI46ckL_I3eA6##Hji}nIqDXk;aOyT0u+6e$e!9W{7%3ej1te0Jc;v@lVBO4WU z87xi~K)!5|(<51M9g+ZmGmqA>8u6R}KrMiL%6?QNTea*jpo1*n!?^$$jU3Mx&JnUe zKpY*?rym{(7*!w$X+A@fo#E4hKon55(N|m*RMvgV_(8gmp(*aGRN|)ySs)=cHnHRP zrOx0AIAU`{!l(jCI<5qJ0q0?@BajQ@;=#(XBoPGzZ7dX46v-uDSko4Fa50hqwh<2s zx~RoD0PX)Qyzbrcd8a5La5Bt5VIM%j@sN;cfI4Cok1} zqe@#`cPoF0=?t!+Y=+#BwSM8$I^0F4QarFA2rG&JU3Xp**3ajLLy^R|#@oJEJp6mC z;qL%rhk|dTeG}xhink48g@R|J2`=G!Dkw*=pdl=dX2|eib%^qvYY7;pcj;PsZCr45 z?fd$E(Wrp6bj)2mS(Y&?U~P7j0+t;gn=~l+3kQ2JsDhDv3jhEB07*qoM6N<$g3i)A A{r~^~ literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_sand_horizontal_middle.png b/examples/tiles/terrain_sand_horizontal_middle.png new file mode 100644 index 0000000000000000000000000000000000000000..b83d0f1a7ffcb766f74f7225ddbc58b0031136a7 GIT binary patch literal 905 zcmV;419tq0P)^e|fX#75<)?h$jbPb&OX!PT<%e16jbX`bK5N|AgjVd3W9YMr--B1`w~+C~q3^((&v8WIk!0$PVDQ16>$#HJep2LxSJHGw@WP+q zfKls@Vd9r-=7?J4h+OTwmdtNL;EG-9wvOV1RK{vP=dp+X;KDUELGF`g^T(y$eox$o zxY_^!0zOGZK~z}7?U(6Nqd*jeany0feK%^%Vq#np%_1S}ghdq6Bl7+)Gc0MkgWZu- zJ5^Jb=MNOQ=R3D=Q%!|?Wfb=X0DlkNQl1OQ_O zz_<%QiD`&}tNgQV9C_*-fEP=3=j1EVbi8*DT~|%49Do|qc9AgO(J-?i0057!Kmz1< zSa2UP6AqxYQ39So3Qqwqu_W7W!ZuWaJ~0&Dv~4M|av{|16@->3FO;IfimThqh5%vM zw_DQ!?;y{pD+e&VW%n@?4wz|UPuZSa)|RWQ6AW7}jv{Op=+FZ0s^ zIc=;>0|dd-ah~zJe2iA^r+@|>5NVfR%^=qr{{#OG&SoxvB+E(H-AVoaq5vy0^^!Y1 z@$WARh+Sp?d!TLO9GM7!ZJ8fScO1FE5*lH{f;;IrdSXQ<(q->sggi*Ey-VVeW;%l+ zD;YQ@{Y?D04J@2|sG9nqXgKv$?pTxw=!K7U|0K`Ymru;az6(F~wuN3{y+QphgpB$I fdoKmY&$R6;}e(Xsp3xLQ?NjemK+s+n|ZY4pmd{@%dl%CY?0y!q9&;ek^@KS}n^ zu1Y>a<%e08U`x(;Pgz1heNR8CWJRWxiA+F6y?9y3bWM?DQ`LD*5N|Ht%L26WYu;^=!;#xa7@s2 zNaLDr?!KAad`&<)L*s;2dRR`!Yd`0*h_h=;Uq?iVSxD1$N8yH9;DAx(r+mwAL)Ldm z>bH>c#iQ@QoAJb<*sn>yKg5c1q1~L*Ii}>5XCPjbO=aK;MK`@WP+r zk!0<8L-U>gdSpfTF8V{H3dTolrDtKyzL;Om_K*9pc4wUpsBH-8wx#xYrhN%t``gnZfPFA9Xn1D1e#~ynqZg-*GYlq z0{jfbZ$OYjf|LP4VK~kV6MB&Lr(9(=Kb20$juE^76~@djXb)eQXE2h0VdCjUEzyhV zIKvPHn#zzRmjsz1cMrZ0k1c9R?#^U6=A@! zU+HkA{5bhaW(xqKprnk~v0+iNosLZql9L3m4BrZ)N@;Sk0P=l?9PajklkkE8<<-L> zrK86^v;{~|wNPLu-1y{sAxdU4zE?m6eo=ks42D5@1hd)55rQ&9!Gj!ReNKD$+})J5^@|I3giFA6M3aBpn~U)YR- zTGAxS5!9d(x)1aVio4A(WyE=t$;3WF5YYTqe@tr)zelANNf2028`yVR41wgdd`S}o z!k+!{lQNQ*3g~LS2KH_upf$NdAk2bw4BS~&XCEN&NCKKZRXl~qbeg;nd>S(WNaTdg5MaW5+Fd>u8X11O%{RM~_=z?WfFHryh N002ovPDHLkV1l%NlCuB+ literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_sand_horizontal_overhang_right.png b/examples/tiles/terrain_sand_horizontal_overhang_right.png new file mode 100644 index 0000000000000000000000000000000000000000..def0e2f14445197b43bb2726a2b7e18252699bf2 GIT binary patch literal 1435 zcmV;M1!Ve(P)oKmY&$J~%*hYH8)lvHRG#jemJsRaw8Pnf~6uK|e{(cu%NrSYky$`PH@d&aO&6 zLY81lrj?0IKt;WHS*m13eNR8;i(bfdP502R;go0PhgsEmO_5|%R6;}RkYnC~Qf^XA z9vg2c1YicSz}B}%56c%Yd@4;NPbjD^3}O? zP)2}taj9oY^vbB;e^6ION9~bhKRH3+fm6)2q2q*B=!;$Hj9%uggXgk{*LzR1YfI{l zVEECo{M)?eiCeyKOyinv&~!-cy_Y~bL(_Ff^2MWiSWaI@MEcgZiCIYCfKl+mpW%jC z&2U5U#G&uNo7Q(p*m+9ejbP=ceB_~Z>bH=~Z$sI7OXQ?^<*I=0zM1yTtmw0f--B1r zaYW&fWa*7z$!tL1gjUUQMbdUk+j~sxx|Gv-PUMAG>yKgVkYnVCT=2o2%x^;Aie1`% zQsRwc(sV}Vh+5)-h7?F#`#p%#E;_j;8KxaeznW!eC! zFM(GgWI7Rep;FQV{dQs($sdb(*y6P58Mur8R5OCcCiS}~$B^S51Xyx_OlCE|(h$BLaDbL!wp+q@v#xIM^GS;K|3N?*2MD8>VQGw=HYMX-U)zc-=~Hw? z0vsTY0CB}s?)#pIkoBnVxndXxAbCJz6U#P)vqfo$yQA@IupK(sF3$gf;REFFf-d0+ z*nwfdJ~~5;l>;0gh2rs!A^n@$Xen7C^DZG-(04Np^tgjVcS(XY=B%sIb z%)Qad^X5XCRx|Ha%ir<4*;gMwDgjUaSM9FMG z>yKgNg;(&woy>1S;EG+~fKlX#T;hXN^T?*`kYn0@QsS3u(sV}axsvU?mgb0B>b8!? zYCh+&hyUQh?vrLUH9_;orQUu|1qKT!0000DbW%=JUyt9PKTj`z56{2v00hXhC;$Kg z$w@>(R9M5Um*-pJKoG{cQ$+E4?_TeE*1N;Af`APRf>NajC;~|!kYfJ%+g-AOEZHL@ z_kP2f_cyb%dDdqfvIUK~-7e>iwj8omjk`we0c835h)sYz4hRm>g68I)PCY<`QELFG zd-oyXnstCEPQm-I1DL!C2*Zvm3rZ$E-n*iB8vuqZ0ib@|67Rq>SO#2Oc_-l*Z2+o^ zCIF>+GffRX>JNwuKymHZ$*L~;q%WW(2weoPD0=m0=nH7J0rTys(}RP+W1(HYmkFReV!;z1AsQN34y9kaXJ9#!-=syoFx)z z07bc2AsJxkxt=sS0O))6wFWt1v!9G|5a1jt&v5}|F#QayaR|`D+SxMi-r7MHJ)qS( z)kN{I{sKq;gOQ;OP#BdvVznS8#-?3!|0VJ%=BOLn{F}4TtIOAv&S@Zx& zN-;q-;e0L9J9Jz;$fQ&Q3DC9iCI3u=M7aD{qBsoz+Q9GQiMNWV0H8hX9@ke$KqpAcsumjbtDUSej9k*_t%Cv>6nNm4ajk zU{(JIP=PA)yl+7Bk}t&TU!;v=^X}sf!zZoGo4Se`U#7o_{o7EB(;wAxv1X?DKVRkd zl#jw!H2thsLWSO;mk0a5FjHL6AO*fSYmo8>u00OLx*h|7+YaC%0Jv-b;0a`>4Zt+o zx-0`;Osh+m#r9vl#cQ9P#Zz|L+*}>@R$upso#lIMXt=%p{{;jPK80*y82tbM002ov JPDHLkV1h1;KmY&$ literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_sand_ramp_long_a.png b/examples/tiles/terrain_sand_ramp_long_a.png new file mode 100644 index 0000000000000000000000000000000000000000..3e932e3a5082185a47cd384aa51370907f176008 GIT binary patch literal 778 zcmV+l1NHogP)0lH9!CW0LN=T({)GNeo)tYPuzi2&v8WA zdQ0V}eB`8g?U7{Fc}?7WP2h@M=8In6e^BI*V$gC$$!tK@jbg}dLgJ`>(soMejbYGq zNa2QA;ek`-hgs)|Tibg~%Wp%?aYf2)LEnQ{+I~{#i(SodL+XuSUDXby3$>NnVo}_5!1w<;CX^8<1d{j8 z=Px+IFAw1^fdyDZ1;%3>K>!@#0vH0mesKg$COCosIKl-m1bqMC2$)WB1Oae_3t$Kj zkS78_mS6xmA_B+|F+iM{14Ie<_{0$~8sP{6;0PDM5b*wnBfz$C1Oae_3t$KjkS78_ zmS6xm0tPhOnzl6~UPTG8{4{%1czO{eLcp?$T2-820l$V20eu>!UN3pXk|sug{N0BLA+ zIYP%YW*1#!$Q(tHlPR-CIC+p5Kx(L*8tmk007+R-e!ZoJV+vOBFcq+Evl2JNS%G|m0G|+7 zQ&R^+Lnk2b;lz}us~SEYS@?SAr0*Bj|Gl$s^Zbc^UV+ayw%@Ds|Nr2Ssj1`V<4X@@ z?Dzvz&0G@X7d&5{;b5|9FOXa1>EamTas2HmZ^i}%0hS93yCm17uy2lNOm1k|G{3FPHF0Qs_)z;D!oN(x=e&(ip?3!-ahFa>kkkEis=dFUrYd`CdW9Exq$ZSB) zdr>I8;ek`|!JXK7O51x(&2U4|bV%WbS;=fb%Wp&X(67>VO8wlv z&2dHX#G&JaR@r(>)^|zkxsvLQV9#+x?2u#WjbYz|SLuvi>yKgOs(|5jAqr=wO3P`Im+MuTV|Gy)IQAlq{fO9;)A1n7s4&>e_IY2(% zze!%7f97)k_(gJY`AH%n+Li)P0 z;r|*CXS-!CzzR)d1~6W$`ht_t6;U&Bwv8?AAVQuDZ4+1=0^Ds_>Xez};xORm zbOe{n7Vt1U*6jvu)a8Z=KFS>HH&!J=M#ws*{@m1cg_H`6bs&RwR3Sntkt6b&S{0grXMo#z1Ic4h-Y?aTo< z?JNSMw6ie4irdg;y#Rnnqt$Z*YS5~=fpDbAd4X^sj`9K{f3R5jU*eFe&;A*QwvFpuJGGKnJ!nR^ItC46WlEoxm*X{*i8Yr vmn*rR`l$ftg5&RiCrosw5Wx8lQYMbTvu+xF00000NkvXXu0mjf^~9|m literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_sand_ramp_short_a.png b/examples/tiles/terrain_sand_ramp_short_a.png new file mode 100644 index 0000000000000000000000000000000000000000..f32f3a1a088eb7b5382b5744a59933cf102a9e81 GIT binary patch literal 811 zcmV+`1JwM9P)WyIOjbYe%O37?M>yKgIgICXSMCpuP2`uJ5QWp#?rK|?F19WR0t#u3*ueY0R}B&vV}K;|oZi3A{W2uZ9h4~RW4qmc|8Tvn z*Xz4}zmJlJ1Ra2spaqZ-^Z*iqCg7NWHcTGIwjlvguIa>xPyi@(@IZxdazKCpr8asF z{e%PoP}9c1b65=|907LnN-lKV;T3=Y0UdkF+jz8ZMfc+dlokX4VCNP^*B&0{=AQQ~ zbeR(hz%whIP*rh40k~#OW2#F4pWxU@k5XL%qUK5o=!?k>!=a|THM|Vbj(}pWmv?pd z`^(;Q0ReG54@WBQQ8>>n7Y6{PHu&M3fFh=V5KE#MHS7Tw)QT3Qe%=KJ7D_}RwTORf5`p2o&Bw;9Cx06V~>9qZumJwP01 zl~~_t7=~_Ym5pV?k8@?L!*M%usT0OfHm2Plnm4WMS6RR9&^Tm@+F zW_1~B3IN*azz}mlHgLWvz{(yyG6gJnEE<18un&@jF^ly({|R~DHQ!{wT$Zn~7T pmTOH18pI zN(-NFZ2$k@kg2KTy*mGQlhZyQU;6$*r904Krjj7P;CKe_4Lyq)7#QU}T^vIq4lli$ z8Fk1(pygqaV@!aU@1jS?j2`|o-@?vxFh#Abyq3LU{;%)@tm4}e7=r{Fgf}R$=6Enl zgP0$jxo%8kDqEt!pzhKj^o>DThQTR=VSfS3okN@-xPGXyuJL5d1}k*r;#kt)z{OPH z#G;YNZ*YiFfo0FpcX|1HnD)(zn+sB{`#|J_+-%?F*Zmm3Zal3${Q^^|?X2Fnhb$Fp zXSMPri0^8Me8CvDkYA#eB|$i-!PA3DOp#Zjg=c|yQA5-TrYJ>zjaEhnbsk17#?ujz zBErir{Av2Kr+`ye;E=cBcJAj6MaSx$*e6Iny`%Dl;pILf4o!uYr_M`7FExA#u?v$@ tyTqVIYHHVP2`AN<%e0^fmGpvQ_5{Y&~imzM?}?j zNXT?e%x^;CgH*?BKgeuA-+xfjc1q!fS<7!j--B1_j9$}qN6>Ug*LzRRaYfH@MAmmn z?2u#WjbX`bK<9~D?U7{7a6{XBOxSr!+s zAoS)ZU%!BRP59IaX|Eaci%OCJLZ;rF1E6aIW!>B9=iW3FqyhXgJovdC?=Va*0zesh zx{Q~&^fwC<`{5{i=q&lzwZxtnm+`yzH-e0u-k(%*v8h`27z-m#p6kjF zK3{Iy(sQ9@q#1DNmUuGpZ2igp6+wL0?rgITBWdg0QK4e%*%_&5>-^;6cFx*5H+gP5 z7u$MaJLlTEWIKy&o!idzS;ISSD714LFr#mZFWJrmle#_$nAxor)5CXD8L%HMsK!(Q?9T-po@mi==FJ8AQn`8RqPgH(9Ye;N zbLT=q@*g!94&ZXh@vow}0MP*HfmVgMYDZtga;001C*3gx1L0suNKt3O3M t06MFdkypyTsSi(cG;ROES_KhSbT;ek`=i(SlbLf?N-$ZSB> zc1YrbRLX5Z?2u#7bV%8HOUrLV({)GIcS+KAO3iUa--B1zdr#qpS?Y~o>5N|IiCgWF zWXWtm+j~sujbY7jL*#{5>yKgMgjU>qP1t!#;DAxuep1hIMACFd=7?G~H9^K|KJJrd z-hNMxZvL(S00GZQL_t(o!{wK0bAm7shVAWzc#9&a+$1#c|9@SH1q95oF*BWM`+j0b z_SvwLeRmjqmMRo9X+6`}fhwT*J%Gr-XDxt7hzSPZbsY89FezmSf}?ni8vxx*yiI%E z5CS&dHKYq5pYf>*=mWaPILD&oJV1F2Bq;tZIUi8!W62JWQEwv;K*)H# zyf1p4d~C`ArA%ZrkR?X%&HJc`ObCD{TH06#KyO^613=$*v z`(Rt2IekW1^hC+li=jViAVKC&RBc@>h^<4MRc!0xkPX-W d@aOttfG=|e)jTV@%N+m!002ovPDHLkV1ny`Mri;5 literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_sand_vertical_top.png b/examples/tiles/terrain_sand_vertical_top.png new file mode 100644 index 0000000000000000000000000000000000000000..e4bbbc89047ab528fdaef62a5ea4877727284493 GIT binary patch literal 1155 zcmV-}1bq96P)oKrt~vG&DgqH9#~pKr}Q!G&Dc}008TdW6*L%>9vg9 zfmG_Yj^Tk*;go0Wx|H65QtrN)&2dFqRauRHdB3We^T?+3%Bc6yum0Y^bZTk(*0=f9 zwdKmOK|e|L%c|9ONXKhGrj?1vY(V9weCDl#;gMwDgIDLWi15On>$#HIdQ0n%Vb5_y z^2MX_)w%oFxPWzW_RXx!wV~shZr6KH(soMdi(TP{S>=aW)^|zij9%=JW8|TA>bH>7 zbw}{Qo$bAs;EiDAs(|mno6vMf%Wp&Eg;(Q*R@{6|*m+9de^BJ4dFhQ|+I~{aa6{XB zOzn|m;+JdRgjVN?TjGOM$!tK&WAo5X$2@askU8u$n2j zdiF=I!-+;6x<>nOO;NA~&eMqwojPF?DA>#613iF)W9a1oXGDfST{el`I75I-690e& z8Z6$qL;#`yeF*4dx3mFXzOn4nU=6^;YWrcGtOHmU0`!xK7p>-(M6!kYvm1z<6rVo4Nakp9(`6juT)#*opxxH16fp)7ANKS(Aj0c2y` z`5H^plmS4$Q$8`sT{-%*Avb3wfJ6w;ju#7B&4psTjQ~Ta&oH?={K;8xz;M`VS4rH} zc1tiw0You`;y9q<&)g14V$6#VZ!`W10!*QTuj1HqQQlsB7H7N$ISUS$PCqJHvfdR1=Sd0@nt|&I2u;Qm=|9HT!9@~JX~^&LK}0+M_b_< z{A=52L?(uV?yNc+?cAZTI9STlVh{%t33b#CSFmHZ?79zEcySdk%+>;|b-e#qz(3r0 V_G0ji$h!al002ovPDHLkV1fm5F>U|= literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_snow_block.png b/examples/tiles/terrain_snow_block.png new file mode 100644 index 0000000000000000000000000000000000000000..aa97486f4903f48fbd0dcf851b8d8b732f8170ef GIT binary patch literal 1369 zcmV-f1*ZCmP)`;y~WJP(c7uDzTM~bnV_h^&fUb!($wVn$k*$;#m&mp-ow)6zRA_W%GATl z(Y?sh*W&K0w!gl|&Bf2yzrVx%{{Qy+|8#VG@b>?Wjg(qiWa#n#<>lx4{QvX#|3N`a zUSVwQ^#6c`j;5xo)!*yQ*Wu#r``_yLv%ST<#?W|thO)cDz{t+T)#}OI^{2DE#@O#Y zJxRdH(X_tC+UWbg%-X`x;>XU^sIFdvbnXt$H~yvt+>I>)7i|@*vQY-sIio*k*0H?Au)D*zz{u9+`qJX~!phL&?*7Qz^`^4B|NsBb)!Mtn%jNL@H8nxV8B{+2 z000eiQchD}kKdm^PcMHD&%f^g1jw@}000AANkluLxAMrHc*IF9EVm!k+E zy@Qif35@dqFwfcp0!aD`I1Y370)Uq_EgO&mMm$xmmd@~lk{Un~0+P-12#`;vO058; z1DqQg&ZUxh1b_kXvwtlJt9gz;bw*jZ037$_Ph>t%A1(-xNQ3oIaUQ_GKDWald8WRxphARkWkxO4CCFo)N8S|O^O?BmiK2$IDUxlKi~RXY9O3{z+0A0Q7C`6M`K1*FKQnn|9Cu zWHW&WQc54WJ9r3WvItOyx?hnXOxFFs!QYj8%EASd%XitmR)80je`0wrdq*4i0I4*7 zO@R1M?i;HSAaZfK$xPk_TcptlUfw*th#)`(s(8rUdzKTn2ZGFs!y;wj0xFf8$UeQ` zM~2S;ht34wkKE7(K7fAmW3Uv+J9?T5J zF>poI${eXgW58<03}76ACjcr|P?4V;0agR1gB!VqhmgrA^TQp~bQslhxkwdqQC%0^ zbh&1f+Gku$(^YT#mZq;2r9Zud+CHnUrdqms>x-%NV@&g{H>G00000NkvXXu0mjf>ZQ&9 literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_snow_block_bottom.png b/examples/tiles/terrain_snow_block_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..f0f8d8521d278ae62b2dadc14dfbd01873263f69 GIT binary patch literal 719 zcmV;=0x`;v%ST>$IZ9F$h^hNxx&h^yu_!oys5Rm#?8~i z%h9m9!m_-?tG2$!&eW~Az_-B2thd0p!O6?f*Ui(}$j{Zm$vpusI~IR z&aJq?%+lDkzsJhZ*1E&Wu)D*>%+kcn(yO+=!phLV$j&u2L8h|1&(+$y#LHN;Wh4Lq z0q{vgK~z}7?U(6xf-n$;ZQT$=#SK^1L_-7b|9VX#0gOZjIqm7`@%|A5^UV;LJKD?Y zG|seAPxZ2ndIK2X%H<;zwu=i9@K*U&b;pA_i$t3`>Glp4N>#sB$=hH{=J(y&Mb-#L@s0<^VoG8@*a+!m$Uw*Uv zK>=AI-=rE<0Q^n3(zYrAme}JC0MlRq)B!-PO*WwI0T(VWj%V%SW^wF^&|WG<=J4=2 zDZ)xXnjYf?Bzh4aD?wENsEkVT8zA8#7)P=UZvjajVN675=}7xs0bOb~&XZT{_O+IF z#zB6;Wu!7bW+RzAz-PTDmSs5JX8~EpUQm;~-c-*dNVU38u61R5TOS?~u&pOkmElIy zb30of5~qM{F&Y1;trvd!qODi;f~~9V47By9?c8kZjqUu@)`9J;v-O8|R$n(@JL>_U zc5VPPv@-gik%O7dU#>=5(My9d)a7ntNCKen?Z&{?x~F4(!fs`m_^ z3&O(_x5HduHQ2u~7j*X5Fc;qcnf?~wtE2t_;2Q~)rW$xZ=!XCR002ovPDHLkV1i~8 BX)pi) literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_snow_block_bottom_left.png b/examples/tiles/terrain_snow_block_bottom_left.png new file mode 100644 index 0000000000000000000000000000000000000000..f8b62dae711c9016435b3275bbb92b83bf1604e8 GIT binary patch literal 798 zcmV+(1L6FMP)z$I8&wt+>I&%+jm2zre`Oy2HxF%+j#C!@|nYH8nw|vb)dK+PlQdzx=2$ z0000AbW%=J4=?YZ-@hM^UjQ;(R9^r90rN>jK~z}7-Iv*Rf-n$>EcN9bf zR3Ht!|64WT6j_=La#jC3lgu|mWd1o^eIrFhbt9^ZTUSIt30*E=>>kY$fWWlJ`S>k_ z&}PNiLEs*-VgSV2?lRl)0zG`Ug^5xCg!@2CD(In~0VP@s_7D;QnKIUU=yH>j0H_RC zqnDmfP6i;g*OZHM(=)qB>rnv^9?c?SY@6BS_(?kq0MdusIYZWg+sp69%WME!_$@PK z0I+SFPzu2O7s>;?!Lna6Zs~dY0V@WCSYRq1J_TW-6cC0RZy^%B@HSyc1PGOpNuC0H z)fpxW8+{>?-0^*I!b%-!GEW$vGs?y3$%*-dXla&j{2n+Aij4kpkR&&Ji|&bO86*Ae z44HYlK}b$ERSOs)Rr%ypSN>X&!yO=O>nF9y7&@v|!q$;q!RQQG`Jh|Q)_LOEI#WWn zE|i?y&VshiY-hf$bK99|>w@h}vvp!SXBPz9nGO(YXAXeV&LRLtI|~Cu^=|+xaB^e- zLu3ctAsvvN3q+~-eN=Py#+nNRH^c`r&%m7vf8Po#8inQN0!^1V7itLbNZ8=ag%nUn zfG3$RmL>u`%K+~1CA1^}@h!ef0F>L9@KPPnxWR<`hgMa965m2)A%GkK1C&Nx5}+v8 c&00mk4^3;mZKV~Vp#T5?07*qoM6N<$f(WX2oB#j- literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_snow_block_bottom_right.png b/examples/tiles/terrain_snow_block_bottom_right.png new file mode 100644 index 0000000000000000000000000000000000000000..a6ca0f962d1a28e8c2038c1a7e7f3a049bc90fa4 GIT binary patch literal 783 zcmV+q1MvKbP)iy~WJF$IZ3B#>30esF*&(*TL#Kz6ju)4ymx4^5mzOlT-wZF%-zQ(x0$;;8# z%+lDu$Ihs@Vfp`msv!ef16eR{PS2Y|&UbGD_hhUkW$GqG{e2Wd)e-^y12VuS zmF;hrTK-BLkq`?A{)tcy_034Hdwns({WSF*+iE9^6e&1c1(?0NAFof?&!9 zXwa|aKYphD00H7$V8SG{^~^s3$Z`yb<8?6S*~vUuX9gU=)kaqQ0NAAhzVGC1SaY7@ z@xW32<3t*c^Jnj)a{JWESB!_Hk>>hlwqV=G8Sv2a;->GCGx5-dY<=z_qrft;;^a_u zff*BZC{9h~uVuO20o<{^Q*j17bhlcpe*k$8S^A)R&asYXI1XRuTdFlyu`S{$*Z=$u)4yxz{tVL&#bq=%Fx!y(ALY**T~P+wZF%$xWTl( z#>~>#zsJs~w7tE?%(}zMu)D*>%+kcn(!$EntG2(u$j+v+yU*3yyTr>KjwihU00G5G zL_t(o!|j(>mx3@5h1s>2wHKsFNn)h@|KGO+4PZ7Q19|ay_P)yfW(=7-2P>Cpm@6gz zWaWnX2NZxilaI02&F5k4msTs~I$z=T>$$SkfHaNp4&vV7s9|aXKy5UN%K$|i{tjAP z4k$D}Dh|$3u0O7T%HjoTWH2^fu8h~b;A%K=~1_M+o20ES_07yA#^WK2qIjX$@JW}kw03L`= zUx4!n7TW(1UBTb|HM&Vc`rU&;9tS2DY0Y+q3?MF7m6F%D*ScKg=ij_P+T|)gJ<@5p zDmm}6T*qm&Fj=lw7Q5{qUG2-YTu(=XuQosjI>H@)%$Msgx&50W<-etF00000NkvXX Hu0mjf&L&hl literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_snow_block_left.png b/examples/tiles/terrain_snow_block_left.png new file mode 100644 index 0000000000000000000000000000000000000000..1e28b5b5418899d77e154a7afc4f7efd3039b88a GIT binary patch literal 665 zcmV;K0%rY*P)%#?8~W z!N{?^#K+Fmt+>Few!Xp1&#=0}vb@C0(bvk**0{mRw7$lyx4^Z($H~yv%+lDu$Ii&l z)wjUNsI~Xb(yO+=y2Hw_yTic9&aJq?#mv&e%Fs16L8h|1&(+$y#LMIgA@~3Q z0lG;JpHt7us==8zyyf_oM-@Ope$uRoP zm9;g?glb!4;3IqVA7zI>W03dJdKLWsf zX#CHBcyn0POUo=<=094Njm33`ICigGHvr=z$LhZn6@!?f@*`oTY5-%Gcvs(J^CyX* z>Ro(c3J%{*p$tkG!$oIJ%;XnRgi7$IzV$cR72u0q3)XtQ~Bcrmm5Sm){}Lcu`@3d`7@%Zl2|!|J6+nlb zC4k(n6V^-jfSX^F)nI`ByK7`Hpmh9TKw$q z*S*HfwZF&2%+js6!NADQ%+lDaw!gZ=%CNh`#mv&e%Fs16L8h|1&(+$y#LL*bgLMD^ z0mey0K~z}7?U&hlf-n$;ZC&buqPQ!Yh$Ly?{a>$yPgIhbB$nRP_FTf`pE1dt!A=3G zTcCP;^;xP@w9p>`9An=AxCkYL#9&Cmc>*u?V~e0;;?1JU&@uhwB0v0G8pDH@mMUzXQ%fjM7UVE0 zyr0{kj@Yb0ON(fF4LD6)b<^wQDUEPXyq7Ty-fs{$3sNaLZmJPWb5!@_T37Cb@bVe6 zw)OK=W|W&AJ!k7ZHoQSX%DUgPbxhW_4iBp*Y#mRIw{z3h(d628Hru+fowc@Z+0K}) zEA1>_H>I6nFTnv;?Q8%T+Svx6X=iHyu3=P6+W=B=E@=w@6#&`-Fz%Hf%xx;jLv{{Z zZDQ+Fcs+nTT&+)2GhEFw4p;qMwi~X7_Q_y79*|FOKpx53ER=KAjS|HI4C&EEFu^8duu z>b1Ye#n$bsw!XN*$=m7s(c$>N%h=}d|F^)%w7$l})92sp{j9gZ>+}Dxy27%&#Kzd~ zt+>F+(ALP$)xO8g%iZ?J&eW*1z1`~kyvESR&C|ij&;9=Yzs%aJ3 z==;pl*vin>u)D+3;`qVO;JU-g%hA`p#?02``pwhXtG2(y%+kKe)z9Gf#mv&c$j-vb z(5AAx$lLWbH9`OX|K;%i&(+$y#LL{L{Ap8@v#Zf) z_C#ZhF>V-8Hi0aNv~m9bA1MROFpM)NP)+5g@?w#5L? zy9%fNlt$JSVIl#{HfRyyA>bZL)b%oILmQ1$WrVW;ej8%b<0=`>2Kf5E%eI$AMllNj z!2K%Ccwb)aF-zG1Uth$}7_zI2Z+UfGKw1g6P_n94viT~iDhF0!j&ydM-hO%Z4luh;0{VMj0S2$uB8cY7={#Bg$0s(j-W4(ID?Z>#kq@ZF<`N1 z8P%xZc9Ukju56<4s?j1$Bp}hoC;1hI9I5h0MmP)Lw;@&MTqVQV0AD{Y*!G6RC}sf` zi@PnFAvCsH%u+VMS4Vn>As2=;;ni^gX|)WPD0VJ@1Avbju$8`k^WZ)6QdxlRg{EC2ui M07*qoM6N<$f;*2FT>t<8 literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_snow_block_top_left.png b/examples/tiles/terrain_snow_block_top_left.png new file mode 100644 index 0000000000000000000000000000000000000000..a901b289c7841a56811d5c876d59a2303c59c001 GIT binary patch literal 1267 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 literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_snow_cloud_left.png b/examples/tiles/terrain_snow_cloud_left.png new file mode 100644 index 0000000000000000000000000000000000000000..666f818a7853a9732f7345eb5e29e057e144922d GIT binary patch literal 1267 zcmV&hR|MU3&K|xII^#7)&tIpc#ue!s&$F9>GJ=(#m%R)yirqK zy~xt|`~R=G!o|zbwZF#l^7DXzi17CRy~fVs?fcN$<;={_m6@P;dxN>c%E#IAzsuOD zw7k^h`P=FHi;tJ`_y6_z|K{-j{r>;!^Z&8D#LeFJ!_()t!N|40$E>%&+UWbVzQ)4P z;>6YJ#@O%J=K8|Q(6_+It+>FRqpGN_v$(;@tG2$;;rOz=#KF(tyvES5y28cQ?YqIo z-Rk`4@&CWf+O4?3ZgG0!?*3(GaHzDs$?)KYswXcW03R00Q$#L_t(o!|j)6SK>evhNB{&K(f8} z-n+VMU0r)`*cDK!ilC?c&Nd6S1b2x;sWQ*=6Sf58 zJDA`hSvvya$Shxhg(qWg#g1A9n~ER`j$?4k#A+0Mmg)*OGD~BV)Uq2X!gD9p6cs`dY)Ut(gCIN97max1g2+c3_ zVMQ)`!7>V&oH}|xegr`R4)S{vI|f*CJemcA8Rg{HPn6;`0mp?yi;ChbXmq5a!JPJ5 z0iB##pj*a7c2%$pZ9o?U9^=KJRjO9fBs*BJHl#m|M%|lP3_0X;Ip(-BtVX z)!phg4;$pe{EnUUPX5r)Xa=-K^WV#;Dqhvo&V_P89%}JosKt291vIYlB+x7Oxhn7QnW>5zqRZ>{cZQ`Q!_H-A6a+5(WXd zl?(qGd>*f1zDWRHYqLeVwZUzkO%Nc5=@-C9w|GfY$pVJ)20VUsdo(uFE{l1V0^3{) dE(QOI;4j;||CO2(7w!N6002ovPDHLkV1k44oj3ph literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_snow_cloud_middle.png b/examples/tiles/terrain_snow_cloud_middle.png new file mode 100644 index 0000000000000000000000000000000000000000..eda3c1fa6373e21085347dcfc650bbbc1ae6c1cd GIT binary patch literal 967 zcmV;&133JNP)WskOe9nV_}5 z#?<8bczc7*-uAu7(!kE$K0iu}kC(T>$lB=pvAo2>(BjG5_1o$Do};Q|XK=W|$*8Tf zvbVjfw!XK($g;e|^gxWK>5*tEXJ#n$cN?ftvK#>Uw1*yj4RzsJJL(8JT`#MSDo zx4^Kv!pYFq-|YR-;rP79(5SS%NJ&)E;`nZHdaby@zs%ad$Ii>$_TB3I!O!5ZyTjJy z`htaxy2HxE%+jm2zgt~rzRA_k;P<=4%cios$lLY*|Nk{LLC@9Nq>xfBgp9`NY{IGToa*jd5SPB7>%y= zMpzg&jRY8%cVmSfq?k1owVq!)U=7O2c6WkGBj%4p43kxjF;s z#yK5tE6_N*LKqf|$2UePEIjVU9q-z^FkUil2#6F!&iJ9cM3Qq|c|#eW2=4r-w%vg< zYfiNs^-L72;3->#5$EVf~j92U~0g-~p8K31B zNOEMzuPEa*fp>;l88Z_drwhEiKcV9tl~Se&T=#A(?s(qW>Qbw8ftT0nS0p*H)sL(m zQ;;;X3m*JPmR0^gu54LSfa0&TgZa>nxv%^```dLOR8uSGlF>HboFPR;RXwbcR-?3kroyp3lK6 peOgHg&lo+XAaNFgg*xRg literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_snow_cloud_right.png b/examples/tiles/terrain_snow_cloud_right.png new file mode 100644 index 0000000000000000000000000000000000000000..75c24c9658307a256f0935dd54ee1b8d206e7a8c GIT binary patch literal 1294 zcmV+p1@ZccP)lu=K}`Dm|MU3&v%STqv%JjG z*vHP)wZF#g^#8lX&8DWSy~xt3wZ7Kl^}@{5-|G0_>-(|2$F;%C#n0Hq(cQVj%(ueL z#mmq>KT5B;!o9`J(AwouQ(eHx(aP1~z|P(E`Tz3r^MHVe>+}ES@c+%&<>Bo5(AwtN zHE#z_LZ5SzsuOPzQ)7T=XiUAi;tJ$?fb~l z+p)aF!qDQx)#|*)(A4Dl#@O$;!O6G5$jRLG(c$>4x4^Bqz}o2hu)4yvzsIPwz2EHp z*yj4d&*0ta{KCr6tG2$fyu`b~#-5|9sI9ZDxWT{2&cDps%iZ>Fae7EeRApyyvbVj- z(AKTF!?3%jayx3tG2(y%+k8U%GTxj(&G5x?fuW-_q)W)$lLX%vb+EP z|IgLhH8nxy@c$ymUdjLf01$LiPE(Js&mS+JPj3%j@87>ae*m|4XORE^0{=-wK~z}7 z?U(0Q;y@I|qo@=iZ127I-t1j>b$1oPt|$sv0Z{}&r6s}eU+>H?lOBlS+aB*Hn7Q}& z9+NpI4~jP-r?Y`>aaTm~X62yk1n_)oQ=I_b0SHvdghoalcicn-n>hf~jSG-KnFo|g z9q<_H0kmHOgeIzNLYnj?0qI3{Gz~xG0f{Y~9U!O* zpa_-EtyKr4M_G1Rz7h`R5P+>{rdAJOX^CHpC?o~!8oxk=+%67D0qP&9BV1er974rH zp=XAQ=SgvPXv!Bt00!&1cs%*Ac6@Dyr2qa#85w|iL43>LM1tY8G94`9^lWGvN92Gn z((9)>)uN)f2snm{q*8%z*!pr-<5UZ{c#IThh6COd0&ql2-z(lXOl%68W%p(ot_=Pl z=|4*-A_s8XTj2CeLc_FgYA7$i%7eZ`oSsXq;(!vsy?Xur9VzlCCI!TvD2j`K6R2o5 zyMh;2Q*+qbFXsD6@dzo-4Xn&(5#W?)eUt1(0?0in0?_Ybetsg3&2507c1x zc31M<_^bc3!l(xTZOpF>z!rL7z6UknpFdIA^Z`KkqFFze>?@c1lAQlR^uC5AQ59f7 zpq2)QPQ2N!c547Y z8+KaNheIo^2Y_m#n;V4(?zFmWIzC;1QJn+M0sjf$A7GF?(0r)5@c;k-07*qoM6N<$ Ef|Tl^`v3p{ literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_snow_horizontal_left.png b/examples/tiles/terrain_snow_horizontal_left.png new file mode 100644 index 0000000000000000000000000000000000000000..eba8d783e84fab588aa4fd51faa2b30d79347f05 GIT binary patch literal 1264 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 AKmY&$ literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_snow_ramp_long_b.png b/examples/tiles/terrain_snow_ramp_long_b.png new file mode 100644 index 0000000000000000000000000000000000000000..61e1a25003fe1002432b4ed6073667a476708f1e GIT binary patch literal 270 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|emUKs7M+SzC{oH>NS%G|m0G|+7 zQ&R^+Lnk0_|Cw9IZoGf^_V1-fKYsuH|L*Jm&6~IT`9++#{dM<|)BpefH#K#9`r-c- z%UpM$YUYw4zu@`u3D9B~jl%p`Am;Ubf??F7Rn z`?P}NT=x#BvMrM6NQ!vCyj;Q~Nue{bv0v&%Mq{ts35kR9#ygT(^J}(D%Ucr?+SLGb O1%s!npUXO@geCwt`)O1F literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_snow_ramp_long_c.png b/examples/tiles/terrain_snow_ramp_long_c.png new file mode 100644 index 0000000000000000000000000000000000000000..6ba04cb9b99ef130a3e80b75bea1f62724f40f1d GIT binary patch literal 857 zcmV-f1E&0mP)_^`gs$lCFzv%ILZytBQ!O5(*z_7Z)vb@Bow7u^2|EspX`~Cl|xWM7<{kOo# z!O73GzQ)qx_{z}Mt+>I-(ALY**T~P+zsJtT*zdp0+BG#n%+lDfyTiT4%(}zM#LUvG zw!g*9(!$Enz{t-3|NqF__2uyYrn0-w)!Mtn%T`ddcmMzbBS}O-R9M5!)@f6NFc1b{ zyzg6Ek6N|%v}&!;7L~&$s44&d2MOUQq#F`o#_|1F*(VvuZd6<#?{D8Uug^aVd3gMy zxxD(IQCzni!2#q6E+9)}0CGeoAVVlqKbmPa1;qM2OeiEudnh1oKw=IM(lcB6i6oG* z4L-pD-Zr#WE@A=jayH08KmZ}r3)VPnUfhzSp+I>xJ+uSr_(Zfi6Y6d4lW)5Y&-MDIBU<10L&aJ1+pz?aT+H+F1Yy+F1t3XlH4F7q6kM zdIPty50VoMZ02RRupdc6mP6=qse0SFM#awejU7w1`azidHiNdN$TZdr8a;aOqsc&}2I1)&7I z^3o~Ol^~RWJKi*ArUdW^zLRzsGbJEquZ)1cxWXtJ7`kr;*AdziP$EP}`tA`uc&;EI zN#@Z|$32YZh2`o9pw)&rTo6#qMG0|r+8Bo7aF-C8S<6IP1cDk?T$j9F3v-vgNq;*SdzsZd*0b1{6gG=k?_(dBjAI=fegMehtP|^d4WcN_ ztg3Ntj&(3m>T#}(bvVw)fTK35VqF?%8K6DR)c~z=ZU8ilvkstUoa+GX{j4q$LjgcL z8yI2_$OkU41-SW3k8J@<5sTK3Ko3E(v<4gqf&C>W35nw%IR_xVp+$Os7Jz4eR~sNN z*Zh4pz0BI>%D<@kchR(5NnG~?n#)z=@V{KH&lA=_r*!^_dW$IZvi)XLD-#?8~Z z!^*$M&cVsgy~fPQ&(+M**u~7!%hA`u%Fw&Z->bI2#LUvb$j-yk<;vLVrn0-*===5g z|A2sq$lLY*|Nk{LLA%7u&(+%H@c%$ZqeB1y00MMUPE%h1OR$Wi0003UNklxR03o!1UpNA8;RJXEe31e+q<{@62*3$=Cj|sjKp+JH zI3WU*um>3701yIJvDxj^E8w&3)hV0+uh0Qb0dKLze17c|&>X9;TtWvlO|iJK3+I6J zVHSFTUFZX5VE|Z#Az%~|fK5mNCLsw}gfw6fGJsyl0cs%&XoWnW6h;7@Fb1dutYdXq zK01Z=7o_KaMY9J^40aLvcgD>w?9{>OV07*qoM6N<$f&l>CW&i*H literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_snow_vertical_bottom.png b/examples/tiles/terrain_snow_vertical_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..5a01a3f0f083526c574d770351c11cbc7a945dcf GIT binary patch literal 908 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 Rzbya&002ovPDHLkV1lrldZhpW literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_stone_block.png b/examples/tiles/terrain_stone_block.png new file mode 100644 index 0000000000000000000000000000000000000000..6a0a20dcd663930f54984d9496e17ccd8c4540bc GIT binary patch literal 964 zcmV;#13UbQP)oK{PZ#0000^ zPFzksI)%FNQ(ZEbvCUv99w!>hKxPfuNOaezWXQP0)drn0+UUTrls zLA%7ukI#df0000DbW%=JkFVb^pFe-k5ARRE0Od)UivR!uT1iAfR9M5^*V%HLFcb!0 zCB_(o+qCK4X5aTcb{y|ZFqnw-{okcJVoWfLK$_;J{{_QXI^PHe3l3_~D5|`o)%=pF zX)Cg-gq4UM<+{(Ex*P$ORbMEpl@L(tzF_Jq1vEH6?B0w}^6_l>o4SZuTS=fN_^D0l@+`3=zQCfF&S_9Jevv>h$`3nD9#C@u;B_LP zCkFH)z!U?_2=K%J?_Ge~BH*?FxGVxL*}#Qe1lSi}(|{dIArMOz(EQE@J~Rt}-{084 z*)ALS;n-&^V9j>-n`t13#V&|TvY49*{9@OCEChbCf!#tN_`|B-hx#@f$jGz1lsPvL z%;WV>0Y8wFcK{wNYq3zvdf*4>6i}~JE@FQfMrc` zfms@u(a96biU2Zqk_R{$q4i`u4zziJb^>sD0rx)zS{aWr7m(O_p1FbGDZTUX0U0R^ zeBuSx6M)VO=*z(IEDyL&*I&~=*>MaYKOW@)dK#dsJt8L*fN$k5&S~zh)6x@v=$YQ4 z1E4(aH?VJE84n3;~F;KiX>8B mtGspZjjE*aRcn$OR{jNGht?Dt2&{Vm0000P)P)t-stG2$Vw7j*y#>mgrt+>F(&C{{G#IL!+$IjHn%+j;H#i+EsskOeR zv%Ivv#>&vv!O73e(%8Dg%CNh`tG2&2H9^nS+NQF*yTr={y@ZKcJ}`zyBOADfM|U=m zI(s|N%!fx>f6M_*1i*X<6o4E6ApqTSJ&6D+2Xsyl_|se`l4}m|pH`rHYfo|g$>snr zR5jJo_5Ko|D>T|FAoZAdlPM4`A3YlroreXKeyl1W)p=IU#`gej2Kx9pS`A40!~;R# zO(X><3MjnI2)v1unkNq4W(0m99H5N=!v)Mnfvzw_tAKL|oY{cA(9XjH3aiXBV8;bS z1OOL+5ZJ36(9rs2mr#2L;3=F6Pyp~GcfcV(l^}Z1>Tj2@2L~{x(hHMmj9cxv?Z17m e06#0U0pJ&i32%AGSmvMr0000kN literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_stone_block_bottom_left.png b/examples/tiles/terrain_stone_block_bottom_left.png new file mode 100644 index 0000000000000000000000000000000000000000..27f49b2b2795c1a0c076d57c726b2d970f5e82c1 GIT binary patch literal 654 zcmV;90&)F`P)jK{Yi%Gc!aqG(a>oKrt~wG&DdnGe7_U0Emv4sI9YJ zVQi|hxkW}&xx&h=xWRyhj;pr5yv56?w7h3(bh5j`#?8~MxWKQu!mPKz#mv&Py~U}u zzQ@kgr?b4u(AKoR#;CNt!O73e(%7)O!@9%DtG2&2H9^nS+NQF*yTr@#k12`(000Yg zQchFP-!GpJ@4p|9UjX_>T{Zv!0h>ugK~z}7-PYN9f-n#UP`at5i*3afWeFsqf%kvD z5<&`Of_1`;_P_BnCg(yXGkD*1Dl1SFu|kU;4S z#ACo7p5M#$*Z}w#z#-7=#ke3ilHf60)g&gu09l|7b4s?&$EIA^PiMFGN+8v*oN2MTE4Ty#SrSbz*0ifSJiATxmS9FSRFaY_teyG$sc3j6273J;vQ zU{?mj@O+E{I0X2mz)Ho2@%Af0DxT>)jRbn}5MM oH84$(fIpv21bqK~apws90EZr^1EL9M=l}o!07*qoM6N<$f(W}NY5)KL literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_stone_block_bottom_right.png b/examples/tiles/terrain_stone_block_bottom_right.png new file mode 100644 index 0000000000000000000000000000000000000000..0c313834a7af13e0a9481f8d80bd30900e826faa GIT binary patch literal 658 zcmV;D0&V??P)n+D zVQjm>#;v%)sugK~z}7-PYN5gCGz9P`f9gZMr39Gwy(j z|NnbMjSVp3$;eC6c_hp|QHL44dMNzb8tPA_46k;GTLIFd5K0t9iUU#sB1HiS1QHY= z20{ZW8CjO&fjrCp02w(J$YqiWP%J~1lqk^2Y6@$C=hsC_8~t3_K()B1Qm#&S!Z&G0x;M<`nIt( z^S9kPI{|v(E0;%3my7qwq5(5xpKr(Q}5g1_TFrk3@pynTH zJYYFsR|rHfKSBW<0{l{7)6F~MK+}F^!q^x9ANby*^NDM~x|_H)Gux+qzEQpw>ir$HoWFqkK`Bk=m sfOw@#%!nIsPn>|oBXI!cPYP)t-stG2$Vw7j*y#>mgr#?8~MxWLEG)Ty<;#mv&V!pg0&vv!O73e(%7i9y}HB7u)D*nw!hES+NQF*yTr>uo}P*T00CD?L_t(o!|m7G zl7k=&08n~U+gb$!xc~p9+X`w(=q2vXbZ2WG8FF4sLR4Qr4D|^><6Muzxkd&wJ&Q&J zbR6hJK%a>O@YiTtEeCYl-f{=v8d?hIm^cDP3K#--Dd4lfIec^H&dUHh-?58;%Y5gu z2*`cw4+4sNz=7u*G|*dz!xw=TT7WyYL2p&KxPgW{wnKGbaV&tRExuUa)pa0L{x*ivYs`BLaLT z{vW_*juc=sM+&f+BLyBe(+d0oQ1JZXDS-E1-~iw`mdvuaLo2-hmOvWXgg4WskE6vq zw8DjL`Aclc9GhlYM}W{;mR_~lB?F(S+yeb<*<69Y3T&i+A^=DMNP(>p{Q3=LZ?+M@ tyWa~-!PFmBx~c9SH+_xs>u|OUncvLhasd<@;T8Y@002ovPDHLkV1l_}>pTDe literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_stone_block_left.png b/examples/tiles/terrain_stone_block_left.png new file mode 100644 index 0000000000000000000000000000000000000000..2906e4ff46d39481b6495707e80f7879a05ac749 GIT binary patch literal 540 zcmV+%0^|LOP)I(%+kls)Ty<;r?b4Q zx4^T##lgwX%Fx!#(%7`V#;CNty2Hw_yThxtzcn>M&(+$dvb(#)%kpyIa4+tNlUF~FUT6T{8S&!WIUiA|N#r*D5Gzv9v*VkGf()XJQ>UTn*=H2jDZY4*wbL z&DHmEel`i_@&bV)=( zR9M69*V}S~AP@#%+Z1+UCezwEK-+#ehlx6{jFXUGN)jSWhu8sl5yQ*ZM2AA~^ zuz7jL*Ec*Fb_65?JUpG81c(q2B%q7r1%WnFUr5013EU0=cV_pq`ypT}e-5agJ<+}! zNB}m*lY!a=YCFQb6v;i&jxaCE0rom^sk{p<<}o<+YB<`^PHe(~YizHE0N#m>|Ie7U zS3_X46Jy^H|G;+u*ymj`5W7sNz}sV$!ToIWJ&}2UqLvHg0w+NQ#AyNc`XH9vZK`K_ cK|0UCCzVEy%o_WtwEzGB07*qoM6N<$f@~!CIsgCw literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_stone_block_top.png b/examples/tiles/terrain_stone_block_top.png new file mode 100644 index 0000000000000000000000000000000000000000..13c2c9968700281ae3f9774d210b1c99bdab4827 GIT binary patch literal 556 zcmV+{0@MA8P)hKxPfuNOaezWXQ8hI|&(+$dvb$bhZM($FXVtM1Si69=9avEpKv(iJAPRBLuYu?E>61lg~Zy#1Q4dw zzMDjRK*LR>12}oKmY&$PEK5Z zf{ciZl}SoiR99qBP+weJYpArmT3TsuZ+>oWeN$6lPfuK4UTj1}P)$u+bb5wubAL`y zUQA3|tG2#cT4*>pL}g`kSXgIbVsOaM)y2%xwZFzuQD8_&S4l}%QBq)jgO10})Ty<; zV`Fk?Xm@schD%FWt+>HrVsW{`%580YUteytzQ)SX*1^fov%STvx4^o?%FNQ(r?b4M zw7syq!>hKxPfuNOaezWXQP0)dH8nw|vb$bhZM($FmQvX70000CbW%=JPp@B(-!E?; z?|;7lVJ0x200051NklRW4O<{)6tG;;yD`Uu!X$JhSL$D8KHcB3sx(mkfQ zjr!MPXb1+-2e^WVK!9=kw^|MWJ;J`GU3NReAsYB}V=qb4J*MCSH`;gt4S@i91Xw>k zfWCu^iJcGV+BtzvUSN_JuzwQpP6N&e$Sx;DU%wQsjB5hRcF}% z#R{Wj0;B~XB>)`D8dzACivt!G65tFXTq-~$0WlR|B;@Y_@}e(i0tO3UkO>&^L7yLG z0^nu(2fhJlk^R<6fT~Wt6M+N-{5=+Vmrea^9^f85p)JG~S`^x`_gMHYo6b)HKu#D8 zho$H>315l;@K;NTk1E6p2D4Touq6M$ZvoEI0?#o(NDBy2pdvzm9PN8Qd$EE6?%I@B t{8JF_M|r+)bD#t-J&*T!|60ihz5r9#d-5<1WP1Pr002ovPDHLkV1iY}Lk0i< literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_stone_block_top_right.png b/examples/tiles/terrain_stone_block_top_right.png new file mode 100644 index 0000000000000000000000000000000000000000..efd49ed2ec0f2d0d27245857582cbba60631b1ea GIT binary patch literal 767 zcmVoKr}Q!0000) zL{L#tUsF?HtG2#QPFzq>UsP9Qe}arjN?3@Cm0VnFT3TsdUTkh|eNRtZO-);EbANPt zhE7mkI5H$ZG2x}ZnVC}%Fx!q$RL8h|1US4gx#LM9jY5xEK01b3fPE!w` zPv0*ek6*9vf4=|(7XtzS00E~-L_t(o!|m2*bAm7!z;U{V-Fxrho^^vPX;^;$uhRqs zL%^hj_C8Z0Yh3h>SXE*QWg3pkOn+R0s^A#pgq5~x+Flp1~+Y>gBA}(NL7!J%Z zMts272^(_(+6>SV07(=rEK!t5z`=?Gk`+rz1*maAO$As9{XamT&Ffr1ZwB25P*3?T_HBKs?>>d%s+KvAUudUW3V+pEPX xFx@tVZ@v_S`=bDdFd$EVE0FPd*}sn-V%+g+AY|7Bq z$IjGKQ(#C)S4l}%O-)-+P+wkNY;ALYSXgJVyu?LDQm?tfs>vpmnpg9#vWvUqgO+A#1UPnNQ`bX!MW<(IyH!E%s!9-Xc^LqD2?5x@6ln4*Y=x zC5g|$=+bI*2^y)v=OJ06PH!IUx8yfy*l3vI1DB0?zorFSiPC&wk_qH`vv81OE5{dpgQvyU*E2JR9d6+Gq_1drck08bR~-YC!+?>`9xSL48yFhFn8{TnI{ z6y&wQCsE*I1~5eda~#+*%7DXs{}7KGTPXkz?v(*%9$;6y2QL_a8_tfuUDl@^(-^NC zW`~{F_IDV7`@t?P&x@DK%jncDZh8clv_9ntPnrK`+^2oEVBn4v4yZ&1*i=ay_so46 zU>|`7X|vya^DlV^-hnp)`~@}{C#`15nMeQt002ovPDHLkV1f_onP30_ literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_stone_cloud_background.png b/examples/tiles/terrain_stone_cloud_background.png new file mode 100644 index 0000000000000000000000000000000000000000..f9213b8a1b34e2371efe933d208278195f7e7eb2 GIT binary patch literal 963 zcmV;!13dhRP)R99ql zdWKF=UVw;`TwH5ROk1d}vshebkeZ}|ij;3}epXgwX=!*zM^tBLc57>TQB+@TbAFei ztFyhuZf<>OXm`rc)~K|+tG2#)dxOEr&r?%iO-)-#NmocnS5Q!2US4c%bAMP^XFWYh znV_h^#>}s|!m+%>eSnF@%g{bQN?ToLo};R=x4nCVjj6T1r?b3BNmNTqSZ!^5Uteym zxWT!?%E!*sthd0mzsAMP(#X%%JUmEZVsNm#!_3myVq$T+!^)_%y|li@tG2&ZSYuC5 zU2$=MLPAl`)!H>RL8h|1US4gx#LHpfb^ZVV0$@o*K~z}7<=1C-n=ljxV0Aa?ZnO8^ zJ8@#iNxTx<7_i+k1poh!E;f+H|@YAiS0JScZ zmPk1qz|4YS7}((##LEf023;3s!XcE&Hng+WVm;YO1Yqim)-056lN)HYx$I6N!1Lxb zya@#F`kG4R1I0_?-DX~5=E z2yn>)KJJNuy|)Fxmjf|yFewI(sl6`(_HBP617M2;t{QehHa2#mMI{sXEUteKZ}OcK zz!ppdK8b;M0O)MdjR3Y_1}opOsQwKuMh;tad7vKwT=1Ne5w_^^0F?#kKMGXi^>@<1 zWgNJa2K)=Y{=%0BGBPf(DGO{R082pZ%e}kA^U3P{29z$5 zX}pO|l`n-R-o#}>V6R0VRe(nXRtSB8e`7;>49y1qjXx-%D_uAF4KPl^SK1T+bXqtU z^4=4{T)3qO&|6gi3kiQx7NCC;*pvmf5`ZZSm~kL~I%j#3I}iW>002ovPDHLkV1gEOwd?=@ literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_stone_cloud_left.png b/examples/tiles/terrain_stone_cloud_left.png new file mode 100644 index 0000000000000000000000000000000000000000..8b2444fb646b46fccb75f7c90f961b525a195714 GIT binary patch literal 774 zcmV+h1Nr=kP)grPEcM>PF!hecx!8VM@Lj|Z+=!*WM^k~P*7iPZhdHIce1y=h>n+DVQf=V zV49t#h>Mj-NLN!-Vq9HnO-)-&Oj}-FY(+*=sNmo%(U|d{lXKHk(v%IObzN@yryv57K%+jc|ynlj>vb(~wy~VV?#;mu%Vq$P& zVsXsU*vHP)tG2(Ww7syq!@9%DPfuNOae&X&+CoB6rn0*=H9=lpZM($F;w;LY0000E zbW%=JpWiI35Pb<(S7)as%H@pc1GPu8Ap#XNx2ROUnIF4-i!O;TZcaKS6 z;Cy~khBko!dHp8G@Fox-XK+=f1g1VjsPg{&*CkTuZ-C=ehz`=T9P379#7S!6&T+xufZ zI^dIk3QWEIX(Rx70kkU6CW|e^JL^1Z1p#drfPBu|I&;4u2hc;ju{vuy>&?Kv&ZFKR zfFHK2M@)C|FBvl7+(^?-RG_msGGjit)#HaDLt29dATyFWpa57hXWr2O#yKTcg4X`G_FJDsd*j0%{DgXcg07*qoM6N<$ Ef|lGwi2wiq literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_stone_cloud_middle.png b/examples/tiles/terrain_stone_cloud_middle.png new file mode 100644 index 0000000000000000000000000000000000000000..577766afc33544c116d455a7192650c648157e0c GIT binary patch literal 537 zcmV+!0_OdRP)jQ8XP;a}{A2hJ`?RkNbIY+oq7i$f0po(>>yuV0pp|rlA6^{de`T(T=3&$*# bN~!(;-j!x|*FJ>*00000NkvXXu0mjf>_75K literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_stone_cloud_right.png b/examples/tiles/terrain_stone_cloud_right.png new file mode 100644 index 0000000000000000000000000000000000000000..b391b19614b306cf389cdbb6ffcf93b89f2a3b74 GIT binary patch literal 764 zcmVOXm?XnV2F;FvbVinVQgMr zY;<~tPEcM=OMjVq$T} z&eY7(*sHd`sI&;Ef10TY3_pw=h7*N(2JM0o4OC@bsDh zR2pR9`Gp8n>zck#0vft8!~i>x2GbKVVBY&(uV1N$WKnjmbpuGwhU;v1D-u^R>3xt3^ket&+Cp_L+Id4m#?*hx4?b<2p!l3{l z_R<19QM--&prq^u?P)B)$XPJx=f~(1oKr}Q#G&Dc} z00354Wlc?6PEcO2xx#dMhIM;~jgy^TUTjZKTt`P#Zf<=*Kum9MeraiVI5;}d|zK~$IjHs(AL4p&$PbAsIo1&(+$dvb!}k zL0(>MyTr?t!|%-i000hjQchE!uOHtpk3Y{3fA3Gf0J5VAR{#J3)Ja4^R9M5+*JpQv zFcb!0I&7WYd++Jqdn1aJng9P=nowIYKw`)j`+k8VxzCA);fjloT;03Hz0!lQX zL;-R%AV&sL8V%4=4{ktngbHB6fxTTaaC=Pw4$@>GeM1D2hlZ9R0U1rdyLSWNFKt7k z1Yp4cu)jmDPtpKzLAsIo1&(+#BH9@AbyIx*xyTr?$t$F_d00BTr zL_t(o!|m5;Z^9rLz;Sk;Uh}N>u*alQzW?W2hnSQHc<|Xwwlw{}Q{WfUS{m8$m$4oI z2T;>?@Z=in1JHmz+Zs=lwW7w{eeJ_5ij1k7+?%0mF3ntNaz6a+vJ*gWF^+XR4z zI~C;1OSc8wBogU=#%83$}jzy*|bPM>}Cuk^xzE z*KZ{qK)N!puB!7!t7=ULO5|c)1nf;KsDS7x5IKIzBmkT|J2D`*_Q^v799;^$Qh_%BvXNr|0000TuMqP=euIvPi7&QBh!ATx()tabjX{v%ST% zzQ(V)!m+%>sIo1&(+$dvb!}kL0(>MyTr@O@WOfk000nl zQchD}ACI4JPv5WaKQF(}4}Sp3m{1k~00L=AL_t(o!_C)Mdz&y624IrZ#Kr;Ay_+`O zdt~pli5*Yk0hodj{{O$Cl8nO;NCMsTyCdkl4@V%ylJt3M+G@QHN<_ltS{0NH0+clX zM1V>ahyl3uXNRxP&Rm!P#?49AJxQ;j`t`@OL3993z#)AQ6{x`a+id|rgTOu4y|Z_4 zdWr`8g$Z(!bx%T5c-L)rXoHwQJE|`Zpm*@76NmwOfgo@o3Uow);C}+XvVao?@RkKU zp##Sr3-FFlNWhDQ38az+nj3WBL6ZTzdO-({cId$7)H|X94?TasNdmK2JVtz&_;><% zPOrbu1YXjC9VRe)L#y9M^_O%YBNu)mP69w%T9+j_@%lfBTha;yMziw4+qx+Npnoh^ zi>veTc=4d)@i`x$K)}vwH8okefDWQryiNkwe84IMhVu(Q6+Yk=1b$M0UcWz$rQh$R zfF;z!b}rDH66qxYUB2ld3mA~V01y5>e`63pJ^c8R2TU`9>%%b+P*D%xivpJspf5w< z*Q6le#{jh&evM@T9jynnqDlk!mzv!b02I`OHECpg%6tHRmB9L(1TG2yctwELCvxZE z1yuZt-I@@Kg%?-|U0&c_8VCjZ8z*28Kq!D#vW;D`eitvY4+NmAcqV~u#tDN24D|Q+ z;YAz>KS@XoBcNfV7WBYq;2R&a09}zm>M0zbh?Ck-5>amsa8~#jPI{|#W;6g1i}RG- z8uDzadIk}l11)o_IDiha@l&kTGPkx10&qGtIe9>QdS#lU(P+X8pvPEQ<2^g)Mv<0f rApp-QJlV@4z&uN}il)`;L{t9&5yd{|x*n@N00000NkvXXu0mjf!bZ85 literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_stone_horizontal_overhang_right.png b/examples/tiles/terrain_stone_horizontal_overhang_right.png new file mode 100644 index 0000000000000000000000000000000000000000..e4cc4ee917d2a6f8e087793efa49771d715c36b6 GIT binary patch literal 1009 zcmV0jGe9*pKr}Q!H8nsqG(j{pKr}Q!H8nsnF+nvoK{PZ#H8nsp zGek5rKmY&$PEcNTdxut7Wv{uyO-);LdWLUveT|cyKtN1xZhdKKcwSy?PfuJ&M^rdC zL~n0?PEK5iigtxkyM?Nl8~xQeaV0U}$J}P*7h>OITxLa$;g}euIu&Tx()ta8_7jv%SS< zYIMiW)Tgt&skOeezQ#pHQmnVYZEbvCUv6GuY&|_mp{cQmj+d*pzsk_osIo1&(+$dvb!}kL0(>MyTr>s2mAH_000nl zQchDJUvH0}Pp|LaFF(J}4}Sm~C%z*900Lb}L_t(o!?o9Ef1)q|25|0L6;R0Seb?K2 zc5kiKy4qSRhzByh|EIWwQAvOV$nTz)!1G4}L?SpPQm?IQ9@_=dXp<&2CJorM7VqEUfQO}JTa3hyP6538_vrmC z7T`Um1BXn&JEZkLd2App-CoBIb9vb+4zz46vvBjdKc(dXu5jQq+-yK#H5XtL2{&v0 zw2mD)8IKpSjK>oiaN_^5VEsiR6ACbbfP?|lBrwee&=@)Z0~RUC1}PB#Ao`zs(PFiXBn=qaoz zc>%8%@Aty@$nif_^8sYeNB$RDX<&YhE`_6F@uJZ>RK!s9yysfSv^OjPo}X z0{DjZb#&r|p6Z>%_~HEad@*+V)~q=U4Fa|gz(3H%`vym zHUIQZHP(-S_7`^l;w)IFs34wv|4gyED1j1y(Y#rzDWEX$dw3SDvJ!PBU}(+dDler@ z0oDy|cpYD@${;l)FgFZC(@vWB0#Q^YkdYh<&&H|@vcmwxm0J>^CL0jp3S9xrB!EV} fuBsJT06Fsy`W!y(-sfBL00000NkvXXu0mjf?w7y< literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_stone_horizontal_right.png b/examples/tiles/terrain_stone_horizontal_right.png new file mode 100644 index 0000000000000000000000000000000000000000..7e89fe07cbd11e4ca2db7e191c0395b64cbe1158 GIT binary patch literal 825 zcmV-91IGM`P)Mk6Tx+|*#*vqwR#s#^JxN|+Y<7Bvh>n+`sj)>yQbOITxLa$;g}euIu$T4|`Xyu8KBtG2$y%+hCSbh5j`Vq$Q!y~U@qys5Rmthc~z zZG2x}ZpY5l!O73c(AKE5y|li@%+lDaw!g5u!@9%DPfuNOaezWXQP0)drn0*=H9=lp zZM($F*FE`G0000DbW%=JkFVdKFFy}|@6W$a0Q~3c{Qv*~&q+i*TY$|gX7G}G_@F0}(xiAij1t5SRaAQ61zKoaoNuD0W+F_fQn_oRG*f|TCJzT1rp+%0P5rv30wStsut`m2mt+aw1t3$^#!whS{^Hv zin$|IJ%&J#3qTF}>KVGGxB)2i(bvciSc6MJz{-gNMNwcN3Ru4aRA@kj0_15xo(yC) z8lYwG-GGKg1sr(+yW3>o>Y4%^q{u+(jtHc83@t+fGMavK>jr?UwxLmSe%b>7`+MZ| zX&L|y$v~M3fHGjHK3W>>*(=!w$x1L_!{c>Lb32PmH60;-Dr-~h7@_W1N& z4<<@=4lFj?0E{)@A_pMVSb>_PKiL130e_EZU=RU5(HRH;&1VQC1b`Pbw}rWZCOQE# zlH>&5-#+ZoGb}cE!l_RPK!d9Y5DSS6-|=8#KK_3LW6kasOvB>0SFV5fDmB=&0XlnSydYY7$+>CL@T8Uj1d-) z*+ACT?&>gM0qCTyrF9)7p!?qCC~%)9K?3yK;o!sn{I06`fh_S$b_Tv;H+iO#GQp8e5=7LCpEHF zJV>*>#jLl$!O73c(AKB3yr{IjWo2}3Zhg$s*ilkojgy_a!^$-^L4b&pPEcO3yThxt zzf4S9T3TswaezWXQC?nc&(+$dvb(#)%i4I{rT_o|m`OxIR9M69)>~JDFbn|Tx(jSF z2Mn!NE#83t{}UZ8g|ul4nLc}(E-AQ1;};`=>j3b0!~x*2?Kt@0${Qa@DW4+6J)?8E&$pVHn;(j5U|DdTR0;I z5FtQdK)@Lp0Fm~G)s$2jfFnVuwoixug2Bc)Oj!p5>>3n1({w$-VB_s`Q=jk0Uf#I% z8+|VI7nxZo^Kk_(0NkBJ1<=l+0%+&hKv9;kWjyx<8W#&FaN8CnfMbA@fW{O54?sJI z3ZR`s1<=l+0`XzG0>1zxxIUQ$^nS|pJ%|AT_n5WIGJR&QHYKFO8ECHWOle<^YL{ih z4+a}s;+t4Hdu-fgl>_L}l5VQ>J~H4LbKe8u$L1CI`@jtqU=ARtfUtozj{%ikuiBok w2LQhP7CZ{Z`7rOt0a(R{K8N+WK3nO^Z*1&B{hpn+&Hw-a07*qoM6N<$f;`q3Pyhe` literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_stone_ramp_short_a.png b/examples/tiles/terrain_stone_ramp_short_a.png new file mode 100644 index 0000000000000000000000000000000000000000..b54b9605791aa518f55268d72f65b9ffa89ece76 GIT binary patch literal 598 zcmV-c0;&CpP)F^0m`OxIR9M69*V}S~AP@jhnwv>ejhYq%+64Unk8CO+ zmqi5Ihfc?RWZ=BGH&GuM@Av!t^P%ITZQIwnu2KI(As(0z5&*w24^&;pW!yZ%EKqSH zJi;u{@USooa2^&Adqz=|u>cST;2C8s;0g-B(SRc;fW-s0U;`KN&AaXr0=St`7C`kK z8UoCmw1BI=a}5H9U;*}}5TJ#nK>sF%#Q>ASazF|S$fkfje82xb&!nILG6fI_40j0= zf&|FHDcwc^7zkuY`-2panK);C>#Tqy198+zcT<2!yi=~;=ch53ckcV0IF~|7Q}xCQ zECAe|lL~;IlL~;IV*_PTm?`6#7oc1$poD2#CIJ`%I0;~$_%Q#gsK)5peM z);NGDE$UvS-X+64L+(Bhvuv)wUj<%L0ptKA6(BaS#qqy>BJJ^30_N@)u@sE;q4q}! kY{EsKo9}aRwh=GC00zVfrt4R1qyPW_07*qoM6N<$f>xvuH2?qr literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_stone_ramp_short_b.png b/examples/tiles/terrain_stone_ramp_short_b.png new file mode 100644 index 0000000000000000000000000000000000000000..57b6a2b1b3302f03c2d59a5212e9dc389bae7581 GIT binary patch literal 477 zcmV<30V4j1P)hKxsIzWku|KC|mATeAS8enGC&I# zfEBI)DJ%d^z?UfCAPP8$LI5-YpP~RS3h<&308N+yNr*uA!3zBfM&TczO(=oaacsRs0Sv@7 z3t&(5p#Yp~7cftcV|NRf1*G}z7O)B#m{x#M$bee|HlYSMOQWiQrIU5QAZ!5J!WOV8 z6u?yOPnNe?07D53me-wur#Ra$_j}X-kbwtZNli$=?%tCE-p_gVq>z9|?@8eg#`n;0 T64zXt00000NkvXXu0mjf6aT+5 literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_stone_vertical_bottom.png b/examples/tiles/terrain_stone_vertical_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..f088afefab3a6b7ae6872effe778a377bee23cd3 GIT binary patch literal 698 zcmV;r0!96aP)oKr}Q#00021 zw!WyXv%A5@sImgrJv~WYVQj6qz{btfMMhGHj+e2##G$FNuerj-%+j*E z!e?r9$IjHVy~U`sy{Wanr?b4YzQ)SX*1^fo%+lDp!^*I`!>hKx&(+#BH9@AbySv28 zMVrOP0000DbW%=JpC5nUKQGUZ5AVNE0Mgqu0ssI3yh%hsR9M5^*4L7QAQT2*Hr2wG z^xiZoM56Eib_;RHB1neg=3+PJf@GNazez0TfUdmCmL;<2)qo_=3#IZrfdNTjR00Ab z6No@S(NIo6nr3hyOVc~R7|WnQ#zQJVpa9VT1_jtZ15Q6rXr7m z?L8ehip{y1pWA?=22im{O@P_}S_f!+dpr$+5*rXx1(3I9$Bf$90C8&-;8Hza3q8Lm zZGaG*o2u>c{zpJ;X|&Ej)5`>#Of_Nqr)OhB=K%q>i{%V7b)H|%#^(Th2CA=@oTJV_ zX1?N?0mzd`6F^LW$kUA4P?AT@Q!ja%QGo~wL>f>)f#OAh*fK<&fpr~NgMo5ub{-gD zIm);IUr^v(11J=rbzn?vz|qX#&Jtv-0CEa96*U1WC;1H+@a2O|>{E$qFEpvn66J(_ z^5_5sd>y$@CAHa(cr-vmz8)S@y%)}QeBS&xOZ(`JuCnm`t9O=h${fU1#R+!K9&H+ g{UOi@P*^3u0nq}`uCJ9QHvj+t07*qoM6N<$g6}^$T>t<8 literal 0 HcmV?d00001 diff --git a/examples/tiles/terrain_stone_vertical_middle.png b/examples/tiles/terrain_stone_vertical_middle.png new file mode 100644 index 0000000000000000000000000000000000000000..ae06ec7c8e39cf5f8b07a3ca5ec376393fc6e65a GIT binary patch literal 508 zcmVA$;=BE-7g3 zXQrXU(S#iu17qf4eB9ByE))d@{5Uu1QSAh>HP$d9J0ieK93x55U ywAV)jgxzn$QV{E-rkm>F^;Xd0_}1SYJn#+b(R~*ZjHRNmzM)iE(v-Wo2|rOIT=VcVlC6Vq$S(VsNv)#jLl$%Fx!q$=ytKZ?y2HxM z(%4^LZm6`qu)D*nw!cS5SaETHI5<_ue~6vv=ZI9FO;Z zodQ-|VhjYTN|oCG0wMdHPZj~96>(N`1zlec=ghjUujE$aP7MuKW0a}3y5VR7Ytp>Ccz)}OO1PIiC;75Q<5pX5|E=0gK zA9(OYfcLOR10E3}KqLz|I^YAFRRM5($OrCgeBfl_-SdDgFRE|QKt#k7gsja3s{H<{ z5UBBinh=QUy#9KW4UApahjHCrB$EW_`AHll!2SY8N`Oy74*!Y0fPcucgzIdjMRZPjW=8j?@{tFjah)>Q^9L9h7%I7SwQ5ZS0=u9?G)fM z0Y?0P;D-Qvw%?WpvJTU{z$t#(C;R){Ki2&eU__EJW`SE%7BFuK0G_cMS>OgX5x{jM co$DC*1PED>$-h?u6#xJL07*qoM6N<$g7o8O$^ZZW literal 0 HcmV?d00001 diff --git a/examples/tiles/torch_off.png b/examples/tiles/torch_off.png new file mode 100644 index 0000000000000000000000000000000000000000..e36aa936f0fb7e8fe1df7d87712e115a7130c7fd GIT binary patch literal 740 zcmVoKmY&$Z+L`haedt1oX><{*@j-obWLMxcg3!x+1}&E&C|QR!b(0u!M3wsM?{`tNyDCbLe+Bt z4U{(Uyoi$L4NyeQ1)$yQMoe`PArGLV9qh0H9Rx7M0PK$=j_@v+B0v-SPm$xg4@$1< zL?=vW3IJ7<&;!ncDF^g$N$~;r2=4&&*?>L(ca))X0UC_@0DuQaFyzCO8W(_$@FE6W z=x@jXEEwIxtTWqxhM_%7vA6*AfiMZ&*nk^~(Z$3BfLr*}9%8>F0BZY{(Uz=B13(r4 ziUY=J|M(5SEDe|y1Y9=(y@$c(Di2sqS*JK%Ndu1TIyg!L1f~2(fPn1}aslWvEzlu^ zEPsfOVIjOs_OqV=uw&fE^A1Js!s}c^4KXR1;j4~@$>K@aQ1qDm1?n~=OF1nKe*^AG zSWDtxl9fwNQ*GCA-}WcZ^fdvjpT8$Q<9SpVFC)=`01ko&nts}90LuNuz3FGtW{~&JFEHGqQ*}=jpJf#^~fKhzR%gjpJJ9DC*jCzW}&-w`LaqiH9#~pK=`vtG&DdpH9;{kLie&t_OnVg zH9#~pK=!jr_p(YeGeGyVN-;4(`m;@1jiVm`&x5P2z`6?3+x8Xhr;zF8HWI`ky-bi75MwEBT%|`kgrRg)8)uHT9=N z_Ix7vr9b(pL-?sf`->y_r$GFf9{ZIb{g^fVsucX38vU9!{H7N8o;v=&2m7Eq{HzcD zz6Sc4HTjP%`lUbmj4Jt-GWv=gSxiFhpG^CiHu$PT{k04Ep*;SaH}|hc`lLSnojLuq z3PC(U`K(3vhbZ=;K21bI_K-3D#{&GJJNc?a{hvDfra)wl&%e97$aGEolQ8$NNZW!|_pnLwrfu)Di0I_u-lIv0 zY(@RK2=}o`#jd3Lq(1nrM*f;M!M3xhXG+rX zm7AQQ=aEhLejxg(LSIKj*}IG1flkA+tk;WX+1}&q&$`CV)1G2UlwL^wmoxsAGX0S+ z{gW{JhbH=iBl>|N`hXz)kS+U#CHsje{EjUAj4S+#DgVp>|Cu%D>+X`Ft=@i5_p?hi zH9@RAaqhrQ}2(D&rff!Z;wA8pRb>P&);8vFE3B;UmxEOzdyh407?+* zIsgCzKS@MER9M5km-ScMP!z|z4TcOWP^dxY?(XjHZn!%Pcem0O#s=G9Thrx*zjF7c zeQ8==tUG7lA9B(wpFX+wB{8{_WKD5690^vJhD=HhClQsO9V5V+PeO#a*Z>=dBxg*3 z49NWWc0zj=N&w94MBbQ25^pE`SDIjrl9v%$nDf!bXQL7n!4&L3T%x`vCO0l+Odw-nM{1o$s4NzwtpBEGU1 z(kBt%zes;CG7f1I<0$(^6$1EgPy?f(OpHGMPW37TcuWo2QxG3$f7fWXSfKoZ2)F5D{ z#2vkc?vfe(fVwKyE>_j)2DGv3piMVGsg(a8z|GEgYXY#DhHw-5S^53A4MVEUgzY?s zf78>oI=`z2J#(t{+jkj?P7vn3K>F${2-<@xc(zuuuP^Jw}y bi*nRo_a=WE)=AgT00000NkvXXu0mjf2X@WS literal 0 HcmV?d00001 diff --git a/examples/tiles/torch_on_b.png b/examples/tiles/torch_on_b.png new file mode 100644 index 0000000000000000000000000000000000000000..ad61c2cc0d152f486fe3e416a34e847f79b8b9cf GIT binary patch literal 1481 zcmV;)1vdJLP)WNi{V@1jietV`mDPUn$L_A^e#h z`I|TUpga4JE&Glw{g^cSl_34768Eb`_K7U@lQs37Jo%$N`;#8|r9b2h{L;0ve_pwR$hbZ=t zG4-B2{=x+IuSoEvOj%4q`l&)?R6}ogg#Mg2mUKq@q(1ziJ85x!zQV)guU*KgoS>SU z#=x_wmXGR~O~1Rlz{tZ?k{ zuB7~;J^H6X{hc}Zu1490URPadvujJshGwOhm1Apny}!eooS{lSLaAp;!M3wZP+a(a zApN-r{>K7eM?~4Xi}I;U!?LW`i)Pv0|Cu%D>+X`Ft=@i5_p?hi zH9@7dquxqPKw(aJ?LUfsj;v#ben6hsI}h3^po{dPZa@KTK4}14yZUx8 zv1d=vkzj-{ zWr{t9FaMyL68ym_dVP!0(5BdpbnmOEyFn2^1GgEIz?y?)QBOp`Gz}~>P9_%M;bgPN z6H>_IX`Y&Er-!p!Fmq*J=Z-Ca8HDQqd_$zOiTl((`c# z6oux!-c^OX-ucij$i2kr8h}iU+n{KEm8p41bzoeq4oJrsKZmM1HlPktZBSxW1tdXs z<{3h(DgwZED9Kg@6hn65juv3s0#@8Z6u<%5dcFo#vHewOtFInP9I60FVxH$`U2K30 zZQ*%R6A$2M7HxH`I_GGSpRr0$t-Ga=WNK1N-Z-G>7xNDII4M|STP-fpa?(;kpXBNX~I3= z1zJ5q{UbC&&LgcuwKSC!;F+;-`5*-hhOftFgmkLb4@(-BX@~-bJ!n2vA|Do9bo7Vqdvg&EN@Tc1UeaifE!uF2R|8BnXc*gl;w(Ydv z|ANl{TdwE0$m=u!00BcuL_t(o!|j&qZo)7OM#EsE1=i+%PssZ}J_; z|9cXT^z0rvxe*{R z)u%Q{WNHI1j0S8ZUz*!speyb4F%~xtbSG*f=ZlEkb^Ur<*>a{Pj(l&|2`pFf9>ppa}&NHeZA) xZt<2-g4puGCV0J&C7ugeatm4iCuIGa;0sS$>EzX=0lH9#{nKr}Q!0001E zvFL}v?!4Le-Qn}Fv%_`7_h-27ZEk#j%>87x?Zw^sVqkwk<p<@{f=>S?<0 zczTGl)%JMC`F_3ayuZ(d&;PL9|C`qTt=#{J(EpCo|CH4Kq1gYY+W$2*L0hip>Fxi5 z&i}OE|LamTmjD0&4RlgYQ?F0&Z$E$E4elw5@hFT`zd<3+r3AcOmuIWy#J!R@nnw@0X+x|e7Zo1Y( z(c#nWnhHph{*Vz~Z{6J&Z1!K*R6rcsS+8y~=>0f#(<%f!xWKBKa4_9M0w{`)Q=USc z-UvvOsmTc67lo>TIIP=A-DEvsoVrXPW#i3^9cAWSy-u+4jK{pghwG)Pz}w|)b{9*z zU}NM09z9@GO}O2gcWq~`Zz*%mV4H|lI%HkD)eoYqZ(6tySJX)6DLsq81eV=A9+YY literal 0 HcmV?d00001 diff --git a/examples/tiles/water_top_low.png b/examples/tiles/water_top_low.png new file mode 100644 index 0000000000000000000000000000000000000000..dc47c21348fe957d44119b087df215be526ab79d GIT binary patch literal 598 zcmV-c0;&CpP)oK{Yi%H8nvrG(a^qKr=H$H8nsnF+wvlKr}Q!0001I zxb9=I=)BqY-Qn|x!R~Ete1FXSu(QK;#P?*j?QFd9VqUesHX}a*U)%Je9?YzIw zc*glPH9=dh=jrYLg3kZJHB9;d000eiQchFvuTO73f8P(EA78%!d@HIw0003=NklZy*07Yq|aqGUAO=IG&;0pi$Z7n1C;GmMpTgw@r9Om2u;OS0)5-5QZD1j0v zffD>*fo1Ea!_aN*Hi2cE+it?c#*h`*PAA5BG}Z-{*)6cOfjN}SwvT5E=p_xqgM0oP z{C>KzwqC&Gj3;~@GbW%Vx+NIrSBDK2(|lx1Kpo~r<0Xb>>-^P=1TS!gAQ?(#C?H+| zVEpFIDVEnq0WI+g!FYqQtbjU_w-M)7r0a)9!h50$Fn8!!m>@WWWx6@VggzcxwgnasQiskiDKui2mFy0a(E1-^W=kk)s kMgEn@0mz*w!JiQP0Qrx?8YyJ3Gynhq07*qoM6N<$f>#C@RR910 literal 0 HcmV?d00001 diff --git a/examples/tiles/weight.png b/examples/tiles/weight.png new file mode 100644 index 0000000000000000000000000000000000000000..74ddf67be40cc81e3fae6e7cb9d139482f2aab4e GIT binary patch literal 1256 zcmVP)0lH9#~pKr}Q!G&Ddp zH9<5qKmY&$wYhaCClLUTK)0sbgnyOHEm)uenoIVam|gwZ6y6&(^oV z$fT*Tw7S8UoTOJ-WLQ~bijSDGy24OWTs}TZs;Qe9+baGjy4v%ST@$j{5s*uTfl#mv*n(AK-d%dfb>frO2|#m&0I z%E!&rxWLG@y~eV;#9Lfvyv5AJ%F({Y&B4ger>nE9w!g^E)x^uvo~g9W)7dpOLAk=p z00?YW0000GbW%=JZ=c^^PcIMeAJ4Cke?PwfQ|hH?0009^Nkl`oXiI4uz@^6H|Nn>Ttbr7QE%Sal%eptp-QyGJ*<@+CjDeNOX#tzi z#5Z}vfA4`xmCQ7Q8&=w$n!%%^RS{R8)WhB#lMmk@lsaV00>z633|P-@ZvcHOF)CN0i1XF zJJu_RUP81CQ6z)kAc6o7Lk+a7VI(Oye?ViQn>37UYJ!1gh~%w3V7-Ir4Mc0=yNvdf zfgY34-TZ;|;iK!me+$v3^fIQ88|Z17{jGnJw&b^IearxQ?{*7=6DLq7gF@F8nP3Jf zSiNN2Ht6_G$Ky}Q9M7=iNJ|h`G69&Qg z4XA&E!~=j)GJvWa2mgK2LE>;c`nVD2@VXUTIAYNBA6nPEio_rR9QFeZ7)1Ur(yi2=-lov`lXGYnb0!(m3e391}E)S;yO zi$)COkQy@8D|V$$tC;5oadnW3wrv+hm=SBjRZq#Ff(OVIYqUR|YepO}OwP z>Vj4gMFe>?A1KU-OcO5D}IF|QE1ZMOE$ek}vGxW<~Fe5TeB#`?s z`$D@yVMb({Sn}0{)l;gX4hC?mkx^4Rv=6`H(=~;C$JS7J91G~#UIn}T#8rUGsKt7`eb@ILjrL2X*jC_#GbY6l^ zg=RWIfR+UVvhQ5X_iDHo&7c$X1%q|6bY3i$1lC$sAPnn1NyrCr!<#}Iv0k zG(a>oKmY&$czJ=$&(zo4;5ax%(bd{OKu?jEpE^27XKHkro1)Iu+TY{nR##y^KTSkL zRfvw4Z*zS+J4rk|OWfh*)Y;yHgp4*eLOwoBVPb5mvbjY?RyjFFnV_g_ZFkw;+Ur*K}SbeyTr?A*0)vw z000nlQchDp-*2xEPmeF3e_ziZ@4o=mhK4Kv00Om1L_t(o!|j&YcH%G$hF#W%1ekrM z`wo<+~Cb>fB52R*sq#yB3Ed%>j#J^$6xfv zixrLg7fKM(w*ZXa!tBkbg|D74jFI&!2B!KSg8%$x5vZFv5Dry>3y9lv+3dBklUHJKhVzAtV(5_RmcEtJz=II?t$1?OMGFAb|aj2fzXjI6qMQ%T09% znm-i60q1+v4giQj0u_1w9U0Yst8>2T)?hVK*hh~Gl|WzN@!VbB_zOr z?LE$4DEUY9XykjpQN4Tv7iu1X^MM;46GBV^pogrMS3t518cgh_EW;XjH&_!Q&|eaiQVcN%#$XH! zbDE&GII`F1NVMr5O=u>KK^u3!PzQ>Vy;dbrU)o-Fp^z*JMWh)#702rV$KsT_X$IeD z27@@Gu%6HC5S=}f@n`r?Fu22SwAP%40j5o_nZOqTeOhbSp=ywEp8!2RMqfSO zJ|cV$Mj1Zz+x3t8*W2J3XIWkRg>?B!Gt!&;rwx27ZybYexX=B_MhHC;lg@tt*sN2@ TbTk7b00000NkvXXu0mjfzwz7b literal 0 HcmV?d00001 diff --git a/film2d.cm b/film2d.cm index 025370d5..4316b91b 100644 --- a/film2d.cm +++ b/film2d.cm @@ -253,7 +253,7 @@ film2d.query = function(selector) { } // All drawables - var draws = array(registry, id => registry[id]) + var draws = array(array(registry), id => registry[id]) result = array(result, filter(draws, d => d.visible != false)) return result } diff --git a/fx_graph.cm b/fx_graph.cm index 6d8978ce..bf1ecadc 100644 --- a/fx_graph.cm +++ b/fx_graph.cm @@ -58,6 +58,7 @@ // Output: {commands} var fx_graph = {} +var NODE_EXECUTORS = {} fx_graph.add_node = function(type, params) { var local_params = params || {} @@ -77,29 +78,30 @@ fx_graph.set_output = function(output_handle) { // Execute graph using backend fx_graph.execute = function(backend) { - var sorted = this.topological_sort() + var self = this + var sorted = self.topological_sort() var node_outputs = {} var all_commands = [] - + arrfor(sorted, function(node) { var executor = NODE_EXECUTORS[node.type] if (!executor) { log.console(`fx_graph: No executor for node type: ${node.type}`) return } - - var resolved_params = this.resolve_inputs(node.params, node_outputs) + + var resolved_params = self.resolve_inputs(node.params, node_outputs) resolved_params._node_id = node.id - + var result = executor(resolved_params, backend) node_outputs[node.id] = result - + // Collect commands from this node if (result && result.commands) { all_commands = array(all_commands, result.commands) } }) - + return {commands: all_commands} } @@ -126,8 +128,6 @@ fx_graph.topological_sort = function() { // NODE EXECUTORS // ======================================================================== -var NODE_EXECUTORS = {} - // render_view: Render scene tree to target using a renderer NODE_EXECUTORS.render_view = function(params, backend) { var root = params.root @@ -385,8 +385,8 @@ function fit_to_screen(target_spec, window_size) { return {x: x, y: y, width: w, height: h} } -// Export fit_to_screen for external use fx_graph.fit_to_screen = fit_to_screen + function make_fxgraph() { return meme(fx_graph, { nodes: [], @@ -395,6 +395,7 @@ function make_fxgraph() { }) } -make_fxgraph.fit_to_screen = fit_to_screen - -return make_fxgraph +return { + create: make_fxgraph, + fit_to_screen: fit_to_screen +} diff --git a/graphics.cm b/graphics.cm index 11f83023..8efb7967 100644 --- a/graphics.cm +++ b/graphics.cm @@ -286,7 +286,7 @@ graphics.texture = function texture(path) { ipath = res.find_image(id) if (!ipath) { - // If still not found, return notex + if (id == 'notex') return null return graphics.texture('notex') } diff --git a/particles2d.cm b/particles2d.cm index f223f23b..b8deb2f0 100644 --- a/particles2d.cm +++ b/particles2d.cm @@ -137,7 +137,7 @@ var factory = function(props) { return newparticles } -// Attach emitter helpers to factory -factory.emitters = emitters - -return factory \ No newline at end of file +return { + create: factory, + emitters: emitters +} \ No newline at end of file