mettagrid 0.2.0.22__tar.gz → 0.2.0.24__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of mettagrid might be problematic. Click here for more details.

Files changed (881) hide show
  1. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/.bazelrc +9 -0
  2. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/Makefile +37 -29
  3. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/PKG-INFO +2 -2
  4. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/benchmarks/test_mettagrid_env_benchmark.cpp +0 -1
  5. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/bindings/mettagrid_c.cpp +131 -19
  6. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/bindings/mettagrid_c.hpp +6 -0
  7. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/actions/action_handler.hpp +7 -0
  8. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/actions/move.hpp +8 -0
  9. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/actions/orientation.hpp +11 -0
  10. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/actions/resource_mod.hpp +7 -0
  11. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/actions/rotate.hpp +8 -0
  12. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/objects/agent.hpp +0 -3
  13. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/objects/assembler.hpp +19 -0
  14. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/objects/chest.hpp +4 -3
  15. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/objects/constants.hpp +5 -4
  16. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/objects/converter.hpp +0 -3
  17. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/objects/converter_config.hpp +0 -6
  18. mettagrid-0.2.0.24/cpp/include/mettagrid/systems/clipper.hpp +228 -0
  19. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/demos/README.md +1 -1
  20. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/demos/demo_train_gym.py +1 -1
  21. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/demos/demo_train_pettingzoo.py +15 -35
  22. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/demos/demo_train_puffer.py +15 -74
  23. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/mettagrid.egg-info/PKG-INFO +2 -2
  24. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/mettagrid.egg-info/SOURCES.txt +9 -7
  25. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/README.md +1 -1
  26. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/bindings/bindings.nim +9 -0
  27. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/fidget/hHmLTy7slXTOej6opPqWpz.json +1203 -1756
  28. mettagrid-0.2.0.24/nim/mettascope/data/fidget/hHmLTy7slXTOej6opPqWpz.lastModified +1 -0
  29. mettagrid-0.2.0.24/nim/mettascope/data/objects/clipped_carbon_extractor.png +0 -0
  30. mettagrid-0.2.0.24/nim/mettascope/data/objects/clipped_germanium_extractor.png +0 -0
  31. mettagrid-0.2.0.24/nim/mettascope/data/objects/clipped_oxygen_extractor.png +0 -0
  32. mettagrid-0.2.0.24/nim/mettascope/data/objects/clipped_silicon_extractor.png +0 -0
  33. mettagrid-0.2.0.24/nim/mettascope/data/resources/decoder.png +0 -0
  34. mettagrid-0.2.0.24/nim/mettascope/data/resources/modulator.png +0 -0
  35. mettagrid-0.2.0.24/nim/mettascope/data/resources/resonator.png +0 -0
  36. mettagrid-0.2.0.24/nim/mettascope/data/resources/scrambler.png +0 -0
  37. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/mettascope.nimble +1 -1
  38. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/src/mettascope/actions.nim +44 -54
  39. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/src/mettascope/common.nim +17 -4
  40. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/src/mettascope/envconfig.nim +1 -2
  41. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/src/mettascope/footer.nim +2 -1
  42. mettagrid-0.2.0.24/nim/mettascope/src/mettascope/objectinfo.nim +133 -0
  43. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/src/mettascope/pathfinding.nim +27 -26
  44. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/src/mettascope/replays.nim +39 -2
  45. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/src/mettascope/timeline.nim +6 -3
  46. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/src/mettascope/utils.nim +15 -29
  47. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/src/mettascope/worldmap.nim +64 -38
  48. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/src/mettascope.nim +30 -23
  49. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/src/mettascope.nims +2 -0
  50. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/pyproject.toml +5 -17
  51. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/__init__.py +3 -3
  52. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/config/mettagrid_c_config.py +0 -1
  53. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/config/mettagrid_config.py +1 -3
  54. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/core.py +15 -12
  55. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/envs/gym_env.py +8 -10
  56. mettagrid-0.2.0.24/python/src/mettagrid/envs/gym_wrapper.py +41 -0
  57. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/envs/pettingzoo_env.py +5 -6
  58. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/mapgen.py +26 -11
  59. mettagrid-0.2.0.24/python/src/mettagrid/mapgen/scenes/__init__.py +1 -0
  60. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/maze.py +5 -2
  61. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/mirror.py +33 -9
  62. mettagrid-0.2.0.24/python/src/mettagrid/mapgen/tools/gen.py +48 -0
  63. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/tools/gen_scene.py +11 -17
  64. mettagrid-0.2.0.24/python/src/mettagrid/mapgen/utils/show.py +19 -0
  65. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/utils/storable_map.py +23 -51
  66. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mettagrid_c.pyi +1 -4
  67. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/renderer/miniscope/interactive.py +3 -3
  68. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/test_support/actions.py +58 -59
  69. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/types.py +3 -3
  70. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/util/grid_object_formatter.py +24 -2
  71. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/BUILD +8 -4
  72. mettagrid-0.2.0.24/tests/mapgen/utils/test_storable_map_io.py +12 -0
  73. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_action_compatibility.py +57 -68
  74. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_actions.py +1 -1
  75. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_agent_resource_sharing.py +5 -3
  76. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_assembler_partial_usage.py +28 -9
  77. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_attack_resource_exception.py +0 -2
  78. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_buffer_reuse.py +2 -1
  79. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_buffers.py +6 -7
  80. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_chest.py +16 -16
  81. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_clipper.cpp +4 -1
  82. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_converter.py +0 -3
  83. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_global_obs_config.py +10 -12
  84. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_global_observations.py +2 -2
  85. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_grid_objects_properties.py +0 -1
  86. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_gym_env.py +3 -5
  87. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_interactive.py +5 -5
  88. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_inventory_regeneration.py +3 -3
  89. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_mettagrid.cpp +4 -8
  90. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_mettagrid.py +3 -3
  91. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_move.py +30 -49
  92. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_new_env_hierarchy.py +3 -2
  93. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_observations.py +20 -166
  94. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_pettingzoo_env.py +3 -3
  95. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_resource_loss.py +3 -3
  96. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_resource_mod.py +13 -20
  97. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_rewards.py +3 -5
  98. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_rotate.py +1 -1
  99. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_visitation_counts.py +6 -3
  100. mettagrid-0.2.0.22/cpp/include/mettagrid/actions/change_color.hpp +0 -40
  101. mettagrid-0.2.0.22/cpp/include/mettagrid/systems/clipper.hpp +0 -156
  102. mettagrid-0.2.0.22/nim/mettascope/data/fidget/hHmLTy7slXTOej6opPqWpz.lastModified +0 -1
  103. mettagrid-0.2.0.22/nim/mettascope/src/mettascope/objectinfo.nim +0 -69
  104. mettagrid-0.2.0.22/python/src/mettagrid/envs/gym_wrapper.py +0 -63
  105. mettagrid-0.2.0.22/python/src/mettagrid/mapgen/load.py +0 -32
  106. mettagrid-0.2.0.22/python/src/mettagrid/mapgen/tools/gen.py +0 -94
  107. mettagrid-0.2.0.22/python/src/mettagrid/mapgen/tools/view.py +0 -25
  108. mettagrid-0.2.0.22/python/src/mettagrid/mapgen/utils/show.py +0 -21
  109. mettagrid-0.2.0.22/test_pointer_init +0 -0
  110. mettagrid-0.2.0.22/test_pointer_init.cpp +0 -39
  111. mettagrid-0.2.0.22/test_uninitialized.cpp +0 -29
  112. mettagrid-0.2.0.22/test_uninitialized.o +0 -0
  113. mettagrid-0.2.0.22/tests/mapgen/utils/test_storable_map_io.py +0 -22
  114. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/.clang-format +0 -0
  115. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/.clang-tidy +0 -0
  116. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/.gitignore +0 -0
  117. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/BUILD.bazel +0 -0
  118. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/CPPLINT.cfg +0 -0
  119. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/LICENSE +0 -0
  120. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/MANIFEST.in +0 -0
  121. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/MODULE.bazel +0 -0
  122. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/README.md +0 -0
  123. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/bazel_build.py +0 -0
  124. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/benchmarks/BUILD +0 -0
  125. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/benchmarks/test_mettagrid_env_benchmark.py +0 -0
  126. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/README.md +0 -0
  127. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/boxout.map +0 -0
  128. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/choose_wisely.map +0 -0
  129. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/corners.map +0 -0
  130. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/corridors.map +0 -0
  131. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/cylinder.map +0 -0
  132. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/cylinder_easy.map +0 -0
  133. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/easy_memory.map +0 -0
  134. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/emptyspace_outofsight.map +0 -0
  135. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/hall_of_mirrors.map +0 -0
  136. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/hard_memory.map +0 -0
  137. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/honeypot.map +0 -0
  138. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/journey_home.map +0 -0
  139. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/knotty.map +0 -0
  140. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/labyrinth.map +0 -0
  141. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/little_landmark_easy.map +0 -0
  142. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/little_landmark_hard.map +0 -0
  143. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/lobster_legs.map +0 -0
  144. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/lobster_legs_cues.map +0 -0
  145. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/medium_memory.map +0 -0
  146. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/memory3.map +0 -0
  147. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/memory_palace.map +0 -0
  148. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/memory_swirls.map +0 -0
  149. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/memory_swirls_hard.map +0 -0
  150. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/obstacles0.map +0 -0
  151. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/obstacles1.map +0 -0
  152. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/obstacles2.map +0 -0
  153. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/obstacles3.map +0 -0
  154. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/passing_things.map +0 -0
  155. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/radial_large.map +0 -0
  156. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/radial_maze.map +0 -0
  157. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/radial_mini.map +0 -0
  158. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/radial_small.map +0 -0
  159. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/rooms.map +0 -0
  160. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/spacey_memory.map +0 -0
  161. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/spiral_chamber.map +0 -0
  162. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/swirls.map +0 -0
  163. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/tease.map +0 -0
  164. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/tease_small.map +0 -0
  165. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/thecube.map +0 -0
  166. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/venture_out.map +0 -0
  167. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/walkaround.map +0 -0
  168. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/walls_outofsight.map +0 -0
  169. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/walls_withinsight.map +0 -0
  170. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/wanderout.map +0 -0
  171. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/which_way.map +0 -0
  172. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/navigation_sequence/you_shall_not_pass.map +0 -0
  173. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/object_use/shoot_out.map +0 -0
  174. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/object_use/swap_in.map +0 -0
  175. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/configs/maps/object_use/swap_out.map +0 -0
  176. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/BUILD.bazel +0 -0
  177. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/README.md +0 -0
  178. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/actions/attack.hpp +0 -0
  179. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/actions/change_glyph.hpp +0 -0
  180. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/actions/get_output.hpp +0 -0
  181. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/actions/noop.hpp +0 -0
  182. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/actions/put_recipe_items.hpp +0 -0
  183. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/actions/swap.hpp +0 -0
  184. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/config/mettagrid_config.hpp +0 -0
  185. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/core/event.hpp +0 -0
  186. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/core/grid.hpp +0 -0
  187. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/core/grid_object.hpp +0 -0
  188. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/core/hash.hpp +0 -0
  189. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/core/types.hpp +0 -0
  190. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/objects/agent_config.hpp +0 -0
  191. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/objects/assembler_config.hpp +0 -0
  192. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/objects/chest_config.hpp +0 -0
  193. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/objects/has_inventory.hpp +0 -0
  194. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/objects/inventory.hpp +0 -0
  195. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/objects/inventory_config.hpp +0 -0
  196. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/objects/production_handler.hpp +0 -0
  197. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/objects/recipe.hpp +0 -0
  198. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/objects/usable.hpp +0 -0
  199. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/objects/wall.hpp +0 -0
  200. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/renderer/hermes.hpp +0 -0
  201. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/systems/clipper_config.hpp +0 -0
  202. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/systems/observation_encoder.hpp +0 -0
  203. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/systems/packed_coordinate.hpp +0 -0
  204. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/cpp/include/mettagrid/systems/stats_tracker.hpp +0 -0
  205. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/demo.py +0 -0
  206. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/ensure_mettascope.py +0 -0
  207. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/lint/BUILD +0 -0
  208. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/lint/README.md +0 -0
  209. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/lint/clang_tidy.bzl +0 -0
  210. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/lint/clang_tidy_wrapper.sh +0 -0
  211. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/mettagrid.egg-info/dependency_links.txt +0 -0
  212. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/mettagrid.egg-info/entry_points.txt +0 -0
  213. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/mettagrid.egg-info/requires.txt +0 -0
  214. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/mettagrid.egg-info/top_level.txt +0 -0
  215. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/migrate_to_toplevel.py +0 -0
  216. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/AGENTS.md +0 -0
  217. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/__init__.py +0 -0
  218. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/bindings/__init__.py +0 -0
  219. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/cors_http_server.py +0 -0
  220. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/actions/arrow.png +0 -0
  221. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/actions/attack1.png +0 -0
  222. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/actions/attack2.png +0 -0
  223. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/actions/attack3.png +0 -0
  224. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/actions/attack4.png +0 -0
  225. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/actions/attack5.png +0 -0
  226. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/actions/attack6.png +0 -0
  227. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/actions/attack7.png +0 -0
  228. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/actions/attack8.png +0 -0
  229. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/actions/attack9.png +0 -0
  230. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/actions/attack_nearest.png +0 -0
  231. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/actions/converting.png +0 -0
  232. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/actions/get_items.png +0 -0
  233. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/actions/icons/attack.png +0 -0
  234. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/actions/icons/attack_nearest.png +0 -0
  235. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/actions/icons/change_color.png +0 -0
  236. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/actions/icons/get_items.png +0 -0
  237. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/actions/icons/move.png +0 -0
  238. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/actions/icons/noop.png +0 -0
  239. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/actions/icons/put_items.png +0 -0
  240. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/actions/icons/rotate.png +0 -0
  241. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/actions/icons/swap.png +0 -0
  242. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/actions/icons/unknown.png +0 -0
  243. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/actions/put_items.png +0 -0
  244. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/actions/swap.png +0 -0
  245. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/actions/thoughts.png +0 -0
  246. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/actions/thoughts_lightning.png +0 -0
  247. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/actions/unknown.png +0 -0
  248. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/agents/agent.e.png +0 -0
  249. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/agents/agent.n.png +0 -0
  250. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/agents/agent.s.png +0 -0
  251. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/agents/agent.w.png +0 -0
  252. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/agents/footprints.png +0 -0
  253. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/agents/frozen.png +0 -0
  254. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/agents/future_arrow.png +0 -0
  255. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/agents/past_arrow.png +0 -0
  256. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/agents/path.png +0 -0
  257. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/crosshair.png +0 -0
  258. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/dash.png +0 -0
  259. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/effects/halo.png +0 -0
  260. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/emoji/alien.png +0 -0
  261. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/emoji/angry.png +0 -0
  262. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/emoji/down.png +0 -0
  263. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/emoji/happy.png +0 -0
  264. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/emoji/left.png +0 -0
  265. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/emoji/love.png +0 -0
  266. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/emoji/poo.png +0 -0
  267. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/emoji/right.png +0 -0
  268. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/emoji/sad.png +0 -0
  269. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/emoji/skull.png +0 -0
  270. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/emoji/sparkle.png +0 -0
  271. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/emoji/up.png +0 -0
  272. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/fidget/fonts/IBMPlexMono-Regular.ttf +0 -0
  273. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/fidget/fonts/IBMPlexSans-Bold.ttf +0 -0
  274. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/fidget/fonts/IBMPlexSans-Regular.ttf +0 -0
  275. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/fidget/fonts/NotoSansJP-Regular.ttf +0 -0
  276. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/fidget/fonts/jsMath-cmbx10.ttf +0 -0
  277. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/fidget/images/05bab347bacaede7606b8e59426dc42b155a8fd6.png +0 -0
  278. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/fidget/images/11f0598c7a572fe7461bc54b07423b7b5e3e7a60.png +0 -0
  279. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/fidget/images/42480bc49710a5f0ebfafe1e1a7785068db37106.png +0 -0
  280. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/fidget/images/621976c3803ef1eea0c316c0e86e1bc31bd6dba4.png +0 -0
  281. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/fidget/images/79d04b14381789498b35cbd1ae05eb578ededb5f.png +0 -0
  282. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/fidget/images/7b2b3374ea1a80648e8c68a472dcbba188af3e8e.png +0 -0
  283. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/fidget/images/86e7f3e8b46af021592fa055ecb606c6b0825c12.png +0 -0
  284. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/fidget/images/ac4765273b78fb68ac1e913e54c54224b7f6f215.png +0 -0
  285. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/fidget/images/b765480fbb089bf76a68424612eeb48ddd95ccc7.png +0 -0
  286. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/fidget/images/eb9f0db464f0f04a52566cd211a561f76d1bcc2a.png +0 -0
  287. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/fidget/images/f10e39779ee551c9d46a527d2ea2a67f434f2867.png +0 -0
  288. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/fonts/Inter-Regular.ttf +0 -0
  289. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/info.png +0 -0
  290. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/meta_grid_icon.png +0 -0
  291. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/minimapPip.png +0 -0
  292. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/agent.png +0 -0
  293. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/altar.png +0 -0
  294. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/armory.png +0 -0
  295. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/assembler.png +0 -0
  296. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/block.png +0 -0
  297. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/carbon_ex_dep.png +0 -0
  298. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/carbon_extractor.png +0 -0
  299. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/charger.png +0 -0
  300. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/chest.png +0 -0
  301. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/chest_carbon.png +0 -0
  302. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/chest_germanium.png +0 -0
  303. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/chest_oxygen.png +0 -0
  304. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/chest_silicon.png +0 -0
  305. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/clay_oven.png +0 -0
  306. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/converter.png +0 -0
  307. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/empty.png +0 -0
  308. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/factory.png +0 -0
  309. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/floor.png +0 -0
  310. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/generator.png +0 -0
  311. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/generator_blue.png +0 -0
  312. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/generator_green.png +0 -0
  313. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/generator_red.png +0 -0
  314. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/geranium_extractor.png +0 -0
  315. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/germanium_ex_dep.png +0 -0
  316. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/germanium_extractor.png +0 -0
  317. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/ice_tower.png +0 -0
  318. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/ice_vase.png +0 -0
  319. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/lab.png +0 -0
  320. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/lasery.png +0 -0
  321. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/mine.png +0 -0
  322. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/mine_blue.png +0 -0
  323. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/mine_green.png +0 -0
  324. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/mine_red-1.png +0 -0
  325. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/mine_red.png +0 -0
  326. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/oxygen_ex_dep.png +0 -0
  327. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/oxygen_extractor.png +0 -0
  328. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/palm_tree.png +0 -0
  329. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/silicon_ex_dep.png +0 -0
  330. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/silicon_extractor.png +0 -0
  331. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/temple.png +0 -0
  332. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/unknown.png +0 -0
  333. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/wall.0.png +0 -0
  334. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/wall.e.png +0 -0
  335. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/wall.fill.png +0 -0
  336. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/wall.n.png +0 -0
  337. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/wall.ne.png +0 -0
  338. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/wall.ns.png +0 -0
  339. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/wall.nse.png +0 -0
  340. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/wall.nw.png +0 -0
  341. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/wall.nwe.png +0 -0
  342. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/wall.nws.png +0 -0
  343. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/wall.nwse.png +0 -0
  344. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/wall.png +0 -0
  345. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/wall.s.png +0 -0
  346. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/wall.se.png +0 -0
  347. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/wall.w.png +0 -0
  348. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/wall.we.png +0 -0
  349. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/wall.ws.png +0 -0
  350. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/wall.wse.png +0 -0
  351. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/water_well.png +0 -0
  352. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/weaving_loom.png +0 -0
  353. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/objects/wheat_field.png +0 -0
  354. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/replays/pens.json.z +0 -0
  355. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/agent_id.png +0 -0
  356. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/armor.png +0 -0
  357. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/battery.blue.png +0 -0
  358. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/battery.green.png +0 -0
  359. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/battery.png +0 -0
  360. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/battery.red.png +0 -0
  361. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/battery_blue.png +0 -0
  362. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/battery_green.png +0 -0
  363. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/battery_red.png +0 -0
  364. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/blue_gem.png +0 -0
  365. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/blueprint.png +0 -0
  366. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/bread.png +0 -0
  367. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/carbon.png +0 -0
  368. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/coal.png +0 -0
  369. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/coconut.png +0 -0
  370. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/copper_ore.png +0 -0
  371. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/diamond.png +0 -0
  372. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/energy.png +0 -0
  373. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/germanium.png +0 -0
  374. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/gold_ore.png +0 -0
  375. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/green_gem.png +0 -0
  376. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/heart.png +0 -0
  377. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/ice_granade.png +0 -0
  378. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/iron_ore.png +0 -0
  379. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/laser.png +0 -0
  380. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/lizard_hide.png +0 -0
  381. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/oil.png +0 -0
  382. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/ore.blue.png +0 -0
  383. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/ore.green.png +0 -0
  384. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/ore.png +0 -0
  385. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/ore.red.png +0 -0
  386. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/ore_blue.png +0 -0
  387. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/ore_green.png +0 -0
  388. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/ore_red.png +0 -0
  389. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/oxygen.png +0 -0
  390. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/palm_fiber.png +0 -0
  391. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/red_gem.png +0 -0
  392. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/reward.png +0 -0
  393. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/salt_water.png +0 -0
  394. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/sand.png +0 -0
  395. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/silicon.png +0 -0
  396. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/sisal.png +0 -0
  397. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/snake_skin.png +0 -0
  398. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/snow_ball.png +0 -0
  399. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/star.png +0 -0
  400. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/stone.png +0 -0
  401. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/straw_hat.png +0 -0
  402. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/turtle_shell.png +0 -0
  403. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/unknown.png +0 -0
  404. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/water.png +0 -0
  405. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/wheat.png +0 -0
  406. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/yellow_gem.png +0 -0
  407. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/resources/yucca_fiber.png +0 -0
  408. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/selection.png +0 -0
  409. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/target.png +0 -0
  410. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/tile.png +0 -0
  411. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/trace/attack.png +0 -0
  412. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/trace/attack_nearest.png +0 -0
  413. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/trace/change_color.png +0 -0
  414. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/trace/frozen.png +0 -0
  415. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/trace/get_items.png +0 -0
  416. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/trace/invalid.png +0 -0
  417. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/trace/move.png +0 -0
  418. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/trace/move_8way.png +0 -0
  419. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/trace/move_cardinal.png +0 -0
  420. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/trace/noop.png +0 -0
  421. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/trace/put_items.png +0 -0
  422. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/trace/rotate.png +0 -0
  423. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/trace/swap.png +0 -0
  424. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/trace/unknown.png +0 -0
  425. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/view/grid.png +0 -0
  426. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/data/white.png +0 -0
  427. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/src/mettascope/agenttable.nim +0 -0
  428. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/src/mettascope/agenttraces.nim +0 -0
  429. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/src/mettascope/minimap.nim +0 -0
  430. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/src/mettascope/panels.nim +0 -0
  431. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/src/mettascope/settings.nim +0 -0
  432. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/src/mettascope/shell.html +0 -0
  433. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/nim/mettascope/src/mettascope/sim.nim +0 -0
  434. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/README.md +0 -0
  435. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/base_config.py +0 -0
  436. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/builder/__init__.py +0 -0
  437. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/builder/building.py +0 -0
  438. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/builder/empty_converters.py +0 -0
  439. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/builder/envs.py +0 -0
  440. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/config/__init__.py +0 -0
  441. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/demo.py +0 -0
  442. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/envs/__init__.py +0 -0
  443. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/envs/mettagrid_env.py +0 -0
  444. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/envs/puffer_base.py +0 -0
  445. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/map_builder/__init__.py +0 -0
  446. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/map_builder/ascii.py +0 -0
  447. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/map_builder/assembler_map_builder.py +0 -0
  448. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/map_builder/map_builder.py +0 -0
  449. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/map_builder/maze.py +0 -0
  450. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/map_builder/perimeter_incontext.py +0 -0
  451. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/map_builder/random.py +0 -0
  452. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/map_builder/utils.py +0 -0
  453. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/__init__.py +0 -0
  454. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/area.py +0 -0
  455. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/mapgen_ascii.py +0 -0
  456. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/random/float.py +0 -0
  457. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/random/int.py +0 -0
  458. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scene.py +0 -0
  459. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/ascii.py +0 -0
  460. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/auto.py +0 -0
  461. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/bsp.py +0 -0
  462. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/convchain.py +0 -0
  463. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/copy_grid.py +0 -0
  464. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/README.md +0 -0
  465. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/amcnicky_arrival_choice.yaml +0 -0
  466. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/amcnicky_arrival_double_pillar.yaml +0 -0
  467. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/amcnicky_arrival_feature_with_door.yaml +0 -0
  468. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/amcnicky_arrival_flooded_fountain.yaml +0 -0
  469. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/amcnicky_arrival_single_pillar.yaml +0 -0
  470. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/amcnicky_arrival_underground_garden.yaml +0 -0
  471. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/angelslayer_arrival_pentagon.yaml +0 -0
  472. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/co_arrival_square_in_a_square_in_a_square.yaml +0 -0
  473. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/co_arrival_two_rings.yaml +0 -0
  474. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/denvon_arrival_hothouse.yaml +0 -0
  475. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/denvon_arrival_planthouse.yaml +0 -0
  476. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/denvon_arrival_waterhouse.yaml +0 -0
  477. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/doesnt_arrival_eight_statues.yaml +0 -0
  478. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dolorous_arrival_somebody's_watching_me.yaml +0 -0
  479. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_boxes_within_box.yaml +0 -0
  480. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_boxorama.yaml +0 -0
  481. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_line_fractal.yaml +0 -0
  482. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_long_road.yaml +0 -0
  483. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_radiant.yaml +0 -0
  484. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_rooms_a.yaml +0 -0
  485. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_rooms_with_view.yaml +0 -0
  486. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_shelter.yaml +0 -0
  487. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_snail.yaml +0 -0
  488. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_ternary.yaml +0 -0
  489. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_three_bigger_balls.yaml +0 -0
  490. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_three_smaller_balls.yaml +0 -0
  491. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_a.yaml +0 -0
  492. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_b.yaml +0 -0
  493. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_c.yaml +0 -0
  494. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_d.yaml +0 -0
  495. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_e.yaml +0 -0
  496. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_f.yaml +0 -0
  497. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_g.yaml +0 -0
  498. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_h.yaml +0 -0
  499. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_i.yaml +0 -0
  500. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_j.yaml +0 -0
  501. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_k.yaml +0 -0
  502. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_triangle_fractal.yaml +0 -0
  503. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_windows_large_door.yaml +0 -0
  504. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_chamrin_arrival_tetris.yaml +0 -0
  505. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dysonsfear_arrival_angles.yaml +0 -0
  506. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dysonsfear_arrival_boulevard.yaml +0 -0
  507. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dysonsfear_arrival_nine_rooms.yaml +0 -0
  508. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ebering_hopf_link.yaml +0 -0
  509. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ebering_trefoil_3fold.yaml +0 -0
  510. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ebering_trefoil_twist.yaml +0 -0
  511. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/eino_arrival_druids_welcome.yaml +0 -0
  512. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/eino_arrival_tree_alley.yaml +0 -0
  513. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/eino_arrival_water_cross.yaml +0 -0
  514. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/eino_arrival_water_star.yaml +0 -0
  515. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/erik_arrival_blinker_ship.yaml +0 -0
  516. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/erik_arrival_triangle_huge.yaml +0 -0
  517. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/erik_arrival_triangle_large.yaml +0 -0
  518. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/erik_arrival_triangle_medium.yaml +0 -0
  519. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/erik_arrival_triangle_small.yaml +0 -0
  520. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/giann_bridges.yaml +0 -0
  521. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/giann_forest_graveyard.yaml +0 -0
  522. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/giann_horns.yaml +0 -0
  523. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/giann_wishing_wells.yaml +0 -0
  524. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/grunt_arrival_crossed_arrows.yaml +0 -0
  525. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/grunt_arrival_lava_bath.yaml +0 -0
  526. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ldierk_walled_garden.yaml +0 -0
  527. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ldierk_walled_garden_2.yaml +0 -0
  528. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lemuel_arrival_cross.yaml +0 -0
  529. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lemuel_arrival_funnel.yaml +0 -0
  530. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lemuel_arrival_lava_pool.yaml +0 -0
  531. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lightli_arrival_chessboard.yaml +0 -0
  532. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lightli_arrival_flooded_house.yaml +0 -0
  533. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lightli_arrival_lavapool.yaml +0 -0
  534. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lightli_arrival_maybe_door_vault.yaml +0 -0
  535. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lightli_arrival_statue_moat.yaml +0 -0
  536. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lightli_iron_boxes.yaml +0 -0
  537. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lightli_molten_gateway.yaml +0 -0
  538. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/matt_arrival_grand_opening.yaml +0 -0
  539. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/matt_arrival_los_fun.yaml +0 -0
  540. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/matt_arrival_refuge.yaml +0 -0
  541. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/matt_arrival_spirals.yaml +0 -0
  542. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_diagonal_passages.yaml +0 -0
  543. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_doors.yaml +0 -0
  544. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_four_houses.yaml +0 -0
  545. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_open_corners.yaml +0 -0
  546. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_plants_in_alcoves.yaml +0 -0
  547. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_pointy.yaml +0 -0
  548. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_radiant_lines.yaml +0 -0
  549. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_three_doors.yaml +0 -0
  550. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_up_and_down.yaml +0 -0
  551. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_wavy_path.yaml +0 -0
  552. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/mrwooster_arrival_arrow.yaml +0 -0
  553. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/mrwooster_arrival_statue.yaml +0 -0
  554. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/mrwooster_arrival_statue_2.yaml +0 -0
  555. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/mrwooster_arrival_statue_3.yaml +0 -0
  556. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ms813_arrival_door_cone_large.yaml +0 -0
  557. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ms813_arrival_door_cone_med.yaml +0 -0
  558. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ms813_arrival_door_cone_small.yaml +0 -0
  559. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ms813_arrival_square_statues.yaml +0 -0
  560. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/mushboom_english_gardens.yaml +0 -0
  561. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ncdulo_halloftheorcs.yaml +0 -0
  562. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ncdulo_lavacross.yaml +0 -0
  563. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ncdulo_smallfort.yaml +0 -0
  564. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ncdulo_watergridlock.yaml +0 -0
  565. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ncdulo_wetmaze.yaml +0 -0
  566. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/nzn_arrival_crosshair.yaml +0 -0
  567. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/nzn_arrival_depleted_hourglass.yaml +0 -0
  568. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/nzn_arrival_water_spiral.yaml +0 -0
  569. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/onia_arrival_mini_spirals.yaml +0 -0
  570. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/onia_arrival_pyramid.yaml +0 -0
  571. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/pf_arrival_petrified_forest.yaml +0 -0
  572. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/psy_arrival_basics.yaml +0 -0
  573. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/psy_arrival_conway.yaml +0 -0
  574. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/psy_arrival_dodecagon.yaml +0 -0
  575. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/psy_arrival_heroes.yaml +0 -0
  576. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/psy_arrival_radial01.yaml +0 -0
  577. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/psy_arrival_radial02.yaml +0 -0
  578. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/psy_arrival_whirlpool.yaml +0 -0
  579. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/reono_arrival_forest_river.yaml +0 -0
  580. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/reono_arrival_mine.yaml +0 -0
  581. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/roderic_chinese_lattice_arrival.yaml +0 -0
  582. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/roderic_crossed_star.yaml +0 -0
  583. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/roderic_dead_forest.yaml +0 -0
  584. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/saegor_arrival_simple_a.yaml +0 -0
  585. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/saegor_arrival_simple_b.yaml +0 -0
  586. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/saegor_arrival_simple_c.yaml +0 -0
  587. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/saegor_arrival_simple_d.yaml +0 -0
  588. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/saegor_arrival_simple_e.yaml +0 -0
  589. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/scummos_arrival_checkerplants.yaml +0 -0
  590. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/scummos_arrival_forest.yaml +0 -0
  591. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/scummos_arrival_gate.yaml +0 -0
  592. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/scummos_arrival_hexagon.yaml +0 -0
  593. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/scummos_arrival_simple_crosswalls.yaml +0 -0
  594. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/scummos_arrival_simple_fountains.yaml +0 -0
  595. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/scummos_arrival_star.yaml +0 -0
  596. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/spicycebolla_green_bress_n_ham.yaml +0 -0
  597. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/spicycebolla_green_bress_n_ham_2.yaml +0 -0
  598. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/tarquinn_simple_flora_water_a.yaml +0 -0
  599. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/tarquinn_simple_flora_water_b.yaml +0 -0
  600. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/tarquinn_simple_flora_water_c.yaml +0 -0
  601. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/tarquinn_simple_flora_water_d.yaml +0 -0
  602. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/tarquinn_simple_flora_water_e.yaml +0 -0
  603. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/tarquinn_simple_flora_water_f.yaml +0 -0
  604. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/wander_arrival_chamber.yaml +0 -0
  605. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/wander_arrival_desolate.yaml +0 -0
  606. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/wheals_arrival_linesprint.yaml +0 -0
  607. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/wheals_arrival_shading.yaml +0 -0
  608. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/convchain/zelgadis_glass_arrival_small.yaml +0 -0
  609. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/amcnicky_arrival_choice.yaml +0 -0
  610. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/amcnicky_arrival_double_pillar.yaml +0 -0
  611. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/amcnicky_arrival_feature_with_door.yaml +0 -0
  612. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/amcnicky_arrival_flooded_fountain.yaml +0 -0
  613. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/amcnicky_arrival_single_pillar.yaml +0 -0
  614. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/amcnicky_arrival_underground_garden.yaml +0 -0
  615. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/co_arrival_square_in_a_square_in_a_square.yaml +0 -0
  616. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/co_arrival_two_rings.yaml +0 -0
  617. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/denvon_arrival_hothouse.yaml +0 -0
  618. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/denvon_arrival_planthouse.yaml +0 -0
  619. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/denvon_arrival_waterhouse.yaml +0 -0
  620. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/doesnt_arrival_eight_statues.yaml +0 -0
  621. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dolorous_arrival_somebody's_watching_me.yaml +0 -0
  622. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_boxes_within_box.yaml +0 -0
  623. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_boxorama.yaml +0 -0
  624. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_line_fractal.yaml +0 -0
  625. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_long_road.yaml +0 -0
  626. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_radiant.yaml +0 -0
  627. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_rooms_a.yaml +0 -0
  628. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_rooms_with_view.yaml +0 -0
  629. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_shelter.yaml +0 -0
  630. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_snail.yaml +0 -0
  631. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_ternary.yaml +0 -0
  632. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_three_bigger_balls.yaml +0 -0
  633. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_three_smaller_balls.yaml +0 -0
  634. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_a.yaml +0 -0
  635. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_b.yaml +0 -0
  636. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_c.yaml +0 -0
  637. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_d.yaml +0 -0
  638. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_e.yaml +0 -0
  639. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_f.yaml +0 -0
  640. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_g.yaml +0 -0
  641. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_h.yaml +0 -0
  642. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_i.yaml +0 -0
  643. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_j.yaml +0 -0
  644. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_k.yaml +0 -0
  645. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_triangle_fractal.yaml +0 -0
  646. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_windows_large_door.yaml +0 -0
  647. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_chamrin_arrival_tetris.yaml +0 -0
  648. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dysonsfear_arrival_angles.yaml +0 -0
  649. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dysonsfear_arrival_boulevard.yaml +0 -0
  650. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dysonsfear_arrival_nine_rooms.yaml +0 -0
  651. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ebering_hopf_link.yaml +0 -0
  652. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ebering_trefoil_3fold.yaml +0 -0
  653. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ebering_trefoil_twist.yaml +0 -0
  654. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/eino_arrival_druids_welcome.yaml +0 -0
  655. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/eino_arrival_tree_alley.yaml +0 -0
  656. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/eino_arrival_water_cross.yaml +0 -0
  657. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/eino_arrival_water_star.yaml +0 -0
  658. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/erik_arrival_blinker_ship.yaml +0 -0
  659. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/erik_arrival_triangle_huge.yaml +0 -0
  660. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/erik_arrival_triangle_large.yaml +0 -0
  661. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/erik_arrival_triangle_medium.yaml +0 -0
  662. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/erik_arrival_triangle_small.yaml +0 -0
  663. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/giann_bridges.yaml +0 -0
  664. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/giann_forest_graveyard.yaml +0 -0
  665. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/giann_horns.yaml +0 -0
  666. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/giann_wishing_wells.yaml +0 -0
  667. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/grunt_arrival_crossed_arrows.yaml +0 -0
  668. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/grunt_arrival_lava_bath.yaml +0 -0
  669. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ldierk_walled_garden.yaml +0 -0
  670. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ldierk_walled_garden_2.yaml +0 -0
  671. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lemuel_arrival_cross.yaml +0 -0
  672. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lemuel_arrival_funnel.yaml +0 -0
  673. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lemuel_arrival_lava_pool.yaml +0 -0
  674. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lightli_arrival_chessboard.yaml +0 -0
  675. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lightli_arrival_flooded_house.yaml +0 -0
  676. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lightli_arrival_lavapool.yaml +0 -0
  677. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lightli_arrival_maybe_door_vault.yaml +0 -0
  678. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lightli_arrival_statue_moat.yaml +0 -0
  679. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lightli_iron_boxes.yaml +0 -0
  680. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lightli_molten_gateway.yaml +0 -0
  681. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/matt_arrival_grand_opening.yaml +0 -0
  682. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/matt_arrival_refuge.yaml +0 -0
  683. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/matt_arrival_spirals.yaml +0 -0
  684. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_diagonal_passages.yaml +0 -0
  685. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_doors.yaml +0 -0
  686. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_four_houses.yaml +0 -0
  687. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_open_corners.yaml +0 -0
  688. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_plants_in_alcoves.yaml +0 -0
  689. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_pointy.yaml +0 -0
  690. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_radiant_lines.yaml +0 -0
  691. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_three_doors.yaml +0 -0
  692. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_up_and_down.yaml +0 -0
  693. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_wavy_path.yaml +0 -0
  694. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/mrwooster_arrival_arrow.yaml +0 -0
  695. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/mrwooster_arrival_statue.yaml +0 -0
  696. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/mrwooster_arrival_statue_2.yaml +0 -0
  697. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/mrwooster_arrival_statue_3.yaml +0 -0
  698. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ms813_arrival_door_cone_large.yaml +0 -0
  699. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ms813_arrival_door_cone_med.yaml +0 -0
  700. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ms813_arrival_door_cone_small.yaml +0 -0
  701. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ms813_arrival_square_statues.yaml +0 -0
  702. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/mushboom_english_gardens.yaml +0 -0
  703. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ncdulo_halloftheorcs.yaml +0 -0
  704. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ncdulo_lavacross.yaml +0 -0
  705. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ncdulo_smallfort.yaml +0 -0
  706. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ncdulo_watergridlock.yaml +0 -0
  707. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ncdulo_wetmaze.yaml +0 -0
  708. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/nzn_arrival_crosshair.yaml +0 -0
  709. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/nzn_arrival_depleted_hourglass.yaml +0 -0
  710. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/nzn_arrival_water_spiral.yaml +0 -0
  711. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/onia_arrival_mini_spirals.yaml +0 -0
  712. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/onia_arrival_pyramid.yaml +0 -0
  713. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/pf_arrival_petrified_forest.yaml +0 -0
  714. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/psy_arrival_basics.yaml +0 -0
  715. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/psy_arrival_conway.yaml +0 -0
  716. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/psy_arrival_dodecagon.yaml +0 -0
  717. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/psy_arrival_heroes.yaml +0 -0
  718. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/psy_arrival_radial01.yaml +0 -0
  719. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/psy_arrival_radial02.yaml +0 -0
  720. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/psy_arrival_whirlpool.yaml +0 -0
  721. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/reono_arrival_forest_river.yaml +0 -0
  722. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/reono_arrival_mine.yaml +0 -0
  723. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/roderic_chinese_lattice_arrival.yaml +0 -0
  724. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/roderic_crossed_star.yaml +0 -0
  725. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/roderic_dead_forest.yaml +0 -0
  726. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/saegor_arrival_simple_a.yaml +0 -0
  727. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/saegor_arrival_simple_b.yaml +0 -0
  728. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/saegor_arrival_simple_c.yaml +0 -0
  729. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/saegor_arrival_simple_d.yaml +0 -0
  730. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/saegor_arrival_simple_e.yaml +0 -0
  731. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/scummos_arrival_checkerplants.yaml +0 -0
  732. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/scummos_arrival_forest.yaml +0 -0
  733. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/scummos_arrival_gate.yaml +0 -0
  734. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/scummos_arrival_hexagon.yaml +0 -0
  735. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/scummos_arrival_simple_crosswalls.yaml +0 -0
  736. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/scummos_arrival_simple_fountains.yaml +0 -0
  737. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/scummos_arrival_star.yaml +0 -0
  738. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/spicycebolla_green_bress_n_ham.yaml +0 -0
  739. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/spicycebolla_green_bress_n_ham_2.yaml +0 -0
  740. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/tarquinn_simple_flora_water_a.yaml +0 -0
  741. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/tarquinn_simple_flora_water_b.yaml +0 -0
  742. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/tarquinn_simple_flora_water_c.yaml +0 -0
  743. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/tarquinn_simple_flora_water_d.yaml +0 -0
  744. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/tarquinn_simple_flora_water_e.yaml +0 -0
  745. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/tarquinn_simple_flora_water_f.yaml +0 -0
  746. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/wander_arrival_chamber.yaml +0 -0
  747. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/wander_arrival_desolate.yaml +0 -0
  748. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/wheals_arrival_linesprint.yaml +0 -0
  749. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/wheals_arrival_shading.yaml +0 -0
  750. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/dcss/wfc/zelgadis_glass_arrival_small.yaml +0 -0
  751. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/grid_altars.py +0 -0
  752. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/inline_ascii.py +0 -0
  753. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/layout.py +0 -0
  754. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/make_connected.py +0 -0
  755. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/mean_distance.py +0 -0
  756. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/multi_left_and_right.py +0 -0
  757. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/nop.py +0 -0
  758. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/radial_maze.py +0 -0
  759. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/random.py +0 -0
  760. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/random_dcss_scene.py +0 -0
  761. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/random_objects.py +0 -0
  762. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/random_scene.py +0 -0
  763. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/random_yaml_scene.py +0 -0
  764. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/remove_agents.py +0 -0
  765. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/room_grid.py +0 -0
  766. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/spiral.py +0 -0
  767. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/transplant_scene.py +0 -0
  768. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/varied_terrain.py +0 -0
  769. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/wfc.py +0 -0
  770. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/scenes/yaml.py +0 -0
  771. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/tools/dcss_import.py +0 -0
  772. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/types.py +0 -0
  773. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/utils/ascii_grid.py +0 -0
  774. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/utils/draw.py +0 -0
  775. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/utils/make_scene_config.py +0 -0
  776. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/utils/pattern.py +0 -0
  777. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mapgen/utils/thumbnail.py +0 -0
  778. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/mettascope.py +0 -0
  779. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/nim/__init__.py +0 -0
  780. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/profiling/__init__.py +0 -0
  781. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/profiling/memory_monitor.py +0 -0
  782. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/profiling/stopwatch.py +0 -0
  783. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/profiling/system_monitor.py +0 -0
  784. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/py.typed +0 -0
  785. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/renderer/assets/Inter-Regular.ttf +0 -0
  786. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/renderer/assets/altar.png +0 -0
  787. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/renderer/assets/atlas.json +0 -0
  788. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/renderer/assets/atlas.png +0 -0
  789. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/renderer/assets/converter.png +0 -0
  790. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/renderer/assets/generator.png +0 -0
  791. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/renderer/assets/items.png +0 -0
  792. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/renderer/assets/monsters.png +0 -0
  793. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/renderer/assets/ore-0.png +0 -0
  794. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/renderer/assets/ore-1.png +0 -0
  795. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/renderer/assets/ore-2.png +0 -0
  796. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/renderer/assets/ore-3.png +0 -0
  797. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/renderer/assets/ore-4.png +0 -0
  798. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/renderer/assets/ore-5.png +0 -0
  799. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/renderer/assets/ore-6.png +0 -0
  800. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/renderer/assets/puffer_chars.png +0 -0
  801. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/renderer/assets/wall.png +0 -0
  802. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/renderer/miniscope/__init__.py +0 -0
  803. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/renderer/miniscope/buffer.py +0 -0
  804. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/renderer/miniscope/help.py +0 -0
  805. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/renderer/miniscope/info_panels.py +0 -0
  806. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/renderer/miniscope/renderer.py +0 -0
  807. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/test_support/__init__.py +0 -0
  808. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/test_support/mapgen.py +0 -0
  809. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/test_support/observation_helper.py +0 -0
  810. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/test_support/orientation.py +0 -0
  811. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/test_support/token_types.py +0 -0
  812. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/util/__init__.py +0 -0
  813. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/util/debug.py +0 -0
  814. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/util/dict_utils.py +0 -0
  815. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/util/diversity.py +0 -0
  816. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/util/module.py +0 -0
  817. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/util/replay_writer.py +0 -0
  818. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/python/src/mettagrid/util/stats_writer.py +0 -0
  819. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/scripts/build_asan.sh +0 -0
  820. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/scripts/test_leaks.sh +0 -0
  821. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/setup.cfg +0 -0
  822. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/__init__.py +0 -0
  823. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/cpplint.sh +0 -0
  824. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/map_builder/__init__.py +0 -0
  825. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/map_builder/test_ascii.py +0 -0
  826. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/map_builder/test_map_builder.py +0 -0
  827. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/map_builder/test_maze.py +0 -0
  828. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/map_builder/test_polymorphic_serialization.py +0 -0
  829. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/map_builder/test_random.py +0 -0
  830. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/map_builder/test_utils.py +0 -0
  831. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/__init__.py +0 -0
  832. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/random/test_float.py +0 -0
  833. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/random/test_int.py +0 -0
  834. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/scenes/fixtures/dir1/1.yaml +0 -0
  835. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/scenes/fixtures/dir1/2.yaml +0 -0
  836. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/scenes/fixtures/test.map +0 -0
  837. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/scenes/fixtures/test.yaml +0 -0
  838. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/scenes/test_ascii.py +0 -0
  839. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/scenes/test_auto.py +0 -0
  840. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/scenes/test_bsp.py +0 -0
  841. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/scenes/test_convchain.py +0 -0
  842. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/scenes/test_inline_ascii.py +0 -0
  843. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/scenes/test_layout.py +0 -0
  844. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/scenes/test_make_connected.py +0 -0
  845. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/scenes/test_maze.py +0 -0
  846. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/scenes/test_mean_distance.py +0 -0
  847. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/scenes/test_mirror.py +0 -0
  848. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/scenes/test_multi_left_and_right.py +0 -0
  849. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/scenes/test_nop.py +0 -0
  850. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/scenes/test_radial_maze.py +0 -0
  851. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/scenes/test_random.py +0 -0
  852. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/scenes/test_random_dcss_scene.py +0 -0
  853. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/scenes/test_random_objects.py +0 -0
  854. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/scenes/test_random_scene.py +0 -0
  855. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/scenes/test_random_yaml_scene.py +0 -0
  856. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/scenes/test_remove_agents.py +0 -0
  857. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/scenes/test_room_grid.py +0 -0
  858. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/scenes/test_wfc.py +0 -0
  859. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/scenes/test_yaml.py +0 -0
  860. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/test_mapgen.py +0 -0
  861. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/test_scene.py +0 -0
  862. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/test_transform.py +0 -0
  863. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/test_validate_all_ascii_maps.py +0 -0
  864. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/mapgen/utils/test_pattern.py +0 -0
  865. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/profiling/test_memory_monitor.py +0 -0
  866. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/profiling/test_stopwatch.py +0 -0
  867. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/profiling/test_system_monitor.py +0 -0
  868. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/renderer/test_miniscope.py +0 -0
  869. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/run_test.py +0 -0
  870. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_diversity.py +0 -0
  871. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_env_config_serialization.py +0 -0
  872. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_env_map.py +0 -0
  873. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_forbidden_imports.py +0 -0
  874. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_grid_object.cpp +0 -0
  875. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_leaks.py +0 -0
  876. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_observations.cpp +0 -0
  877. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_pufferlib_integration.py +0 -0
  878. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_resource_mod_config.py +0 -0
  879. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_set_inventory.py +0 -0
  880. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_stats_tracker.cpp +0 -0
  881. {mettagrid-0.2.0.22 → mettagrid-0.2.0.24}/tests/test_tags.py +0 -0
@@ -20,6 +20,15 @@ build:dbg --compilation_mode=dbg
20
20
  build:dbg --copt=-O0
21
21
  build:dbg --copt=-g
22
22
  build:dbg --strip=never
23
+ build:dbg --copt=-fsanitize=address
24
+ build:dbg --copt=-fsanitize=undefined
25
+ build:dbg --copt=-fsanitize=float-divide-by-zero
26
+ build:dbg --copt=-fno-sanitize-recover=all
27
+ build:dbg --copt=-fstack-protector-strong
28
+ build:dbg --linkopt=-fsanitize=address
29
+ build:dbg --linkopt=-fsanitize=undefined
30
+ build:dbg --linkopt=-fsanitize=float-divide-by-zero
31
+ build:dbg --test_env=ASAN_OPTIONS=detect_leaks=0
23
32
 
24
33
  # Test configuration
25
34
  test --test_output=errors
@@ -19,81 +19,89 @@ help:
19
19
 
20
20
  # Debug build
21
21
  build:
22
- @echo "🔨 Building debug..."
22
+ @echo "Building debug..."
23
23
  bazel build --config=dbg //:mettagrid_c
24
24
 
25
25
  # Production release build
26
26
  build-prod:
27
- @echo "🔨 Building release..."
27
+ @echo "Building release..."
28
28
  bazel build --config=opt //:mettagrid_c
29
29
 
30
30
  # Build and run benchmarks
31
31
  benchmark:
32
- @echo "🔨 Building C++ benchmarks..."
32
+ @echo "Building C++ benchmarks..."
33
33
  bazel build --config=opt //benchmarks:test_mettagrid_env_benchmark
34
- @echo "📂 Creating build-release directory..."
34
+ @echo "Creating build-release directory..."
35
35
  mkdir -p build-release
36
- @echo "📋 Copying benchmark binaries..."
36
+ @echo "Copying benchmark binaries..."
37
37
  cp -f bazel-bin/benchmarks/test_mettagrid_env_benchmark build-release/
38
38
  chmod +x build-release/test_mettagrid_env_benchmark
39
- @echo "🏃 Running C++ benchmarks..."
39
+ @echo "Running C++ benchmarks..."
40
40
  # Note: Using the copied binary instead of 'bazel run' to avoid Python environment issues
41
- ./build-release/test_mettagrid_env_benchmark || echo "⚠️ C++ benchmark failed - this may be due to Python environment issues"
42
- @echo "🏃 Running Python benchmarks..."
41
+ ./build-release/test_mettagrid_env_benchmark || echo "C++ benchmark failed - this may be due to Python environment issues"
42
+ @echo "Running Python benchmarks..."
43
43
  uv run pytest benchmarks/test_mettagrid_env_benchmark.py -v --benchmark-only
44
44
 
45
45
  # Run unit tests
46
46
  test: build
47
- @echo "🧪 Running unit tests..."
48
- bazel test //tests:tests_all
47
+ @echo "Running unit tests..."
48
+ bazel test --config=dbg //tests:tests_all
49
49
 
50
50
  # Generate coverage report
51
51
  coverage:
52
- @echo "🔨 Building with coverage..."
53
- @echo "⚠️ Note: C++ coverage on macOS is currently not supported by bazel"
52
+ @echo "Building with coverage..."
53
+ @echo "Note: C++ coverage on macOS is currently not supported by bazel"
54
54
  @echo " Running tests instead..."
55
- bazel test //tests:tests_all
56
- @echo "Tests completed successfully"
55
+ bazel test --config=dbg //tests:tests_all
56
+ @echo "Tests completed successfully"
57
57
  @echo " For Python coverage, use: make pytest-coverage"
58
58
 
59
59
  # Alias for clang_tidy that only fails on errors (not warnings)
60
60
  tidy:
61
- @echo "🔍 Running clang-tidy (errors only)..."
61
+ @echo "Running clang-tidy (errors only)..."
62
62
  @bazel test //lint:clang_tidy --test_output=errors --nocache_test_results
63
- @echo "Clang-tidy check complete (use 'make tidy-verbose' to see all warnings)"
63
+ @echo "Clang-tidy check complete (use 'make tidy-verbose' to see all warnings)"
64
64
 
65
65
  # Run clang-tidy with full output showing all warnings
66
66
  tidy-verbose:
67
- @echo "🔍 Running clang-tidy with full output..."
67
+ @echo "Running clang-tidy with full output..."
68
68
  @bazel test //lint:clang_tidy --test_output=all --nocache_test_results
69
69
 
70
70
  # Formatting
71
71
  format-check:
72
- @echo "🔎 Checking code formatting..."
72
+ @echo "Checking code formatting..."
73
73
  @clang-format --dry-run --Werror -style=file $(shell find src include tests -name '*.c' -o -name '*.h' -o -name '*.cpp' -o -name '*.hpp')
74
- @echo "All files are correctly formatted"
74
+ @echo "All files are correctly formatted"
75
75
 
76
76
  format-fix:
77
- @echo "🛠️ Reformatting code..."
77
+ @echo "Reformatting code..."
78
78
  @clang-format -i -style=file $(shell find src include tests -name '*.c' -o -name '*.h' -o -name '*.cpp' -o -name '*.hpp')
79
- @echo "Code reformatted"
79
+ @echo "Code reformatted"
80
80
 
81
81
  # Python
82
82
  install:
83
- @echo "📦 Installing package..."
83
+ @echo "Installing package..."
84
84
  @cd ../.. && uv sync --active --inexact --frozen
85
85
 
86
- pytest: install
87
- @echo "🐍 Running Python tests..."
88
- @cd ../.. && uv run pytest packages/mettagrid/tests
86
+ pytest:
87
+ @echo "Preparing environment for Python tests (ASAN disabled)..."
88
+ @cd ../.. && DEBUG= uv sync --active --inexact --frozen
89
+ @echo "Building C++ extension without ASAN (opt config)..."
90
+ @cd ../.. && PYTHONPATH=packages/mettagrid DEBUG= uv run python -c "import bazel_build as bb; bb._run_bazel_build()"
91
+ @echo "Running Python tests (ASAN disabled)..."
92
+ @cd ../.. && DEBUG= uv run pytest packages/mettagrid/tests
89
93
 
90
- pytest-coverage: install
91
- @echo "📊 Running Python tests with coverage..."
92
- @cd ../.. && uv run pytest packages/mettagrid/tests --cov=mettagrid --cov-report=term-missing --cov-report=html:packages/mettagrid/htmlcov
94
+ pytest-coverage:
95
+ @echo "Preparing environment for Python tests (ASAN disabled)..."
96
+ @cd ../.. && DEBUG= uv sync --active --inexact --frozen
97
+ @echo "Building C++ extension without ASAN (opt config)..."
98
+ @cd ../.. && PYTHONPATH=packages/mettagrid DEBUG= uv run python -c "import bazel_build as bb; bb._run_bazel_build()"
99
+ @echo "Running Python tests with coverage (ASAN disabled)..."
100
+ @cd ../.. && DEBUG= uv run pytest packages/mettagrid/tests --cov=mettagrid --cov-report=term-missing --cov-report=html:packages/mettagrid/htmlcov
93
101
 
94
102
  # Cleanup
95
103
  clean:
96
- @echo "🧹 Cleaning build artifacts..."
104
+ @echo "Cleaning build artifacts..."
97
105
  bazel clean
98
106
  rm -rf .venv uv.lock
99
107
  rm -f coverage.info *.gcda *.gcno *.profraw *.profdata
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mettagrid
3
- Version: 0.2.0.22
3
+ Version: 0.2.0.24
4
4
  Summary: A fast grid-based open-ended MARL environment
5
5
  Author-email: David Bloomin <daveey@gmail.com>
6
6
  License-Expression: MIT
7
7
  Project-URL: Homepage, https://daveey.github.io
8
8
  Project-URL: Repository, https://github.com/Metta-AI/mettagrid
9
9
  Keywords: gridworld,minigrid,rl,reinforcement-learning,environment,gym
10
- Requires-Python: >=3.11
10
+ Requires-Python: <3.13,>=3.11
11
11
  Description-Content-Type: text/markdown
12
12
  License-File: LICENSE
13
13
  Requires-Dist: boto3>=1.38.32
@@ -55,7 +55,6 @@ GameConfig CreateBenchmarkConfig(size_t num_agents) {
55
55
  actions_cfg.push_back({"swap", action_cfg});
56
56
  actions_cfg.push_back({"put_items", action_cfg});
57
57
  actions_cfg.push_back({"get_items", action_cfg});
58
- actions_cfg.push_back({"change_color", action_cfg});
59
58
  actions_cfg.push_back({"change_glyph", change_glyph_cfg});
60
59
 
61
60
  std::map<std::string, std::shared_ptr<GridObjectConfig>> objects_cfg;
@@ -12,13 +12,12 @@
12
12
 
13
13
  #include "actions/action_handler.hpp"
14
14
  #include "actions/attack.hpp"
15
- #include "actions/change_color.hpp"
16
15
  #include "actions/change_glyph.hpp"
17
16
  #include "actions/get_output.hpp"
18
- #include "actions/resource_mod.hpp"
19
17
  #include "actions/move.hpp"
20
18
  #include "actions/noop.hpp"
21
19
  #include "actions/put_recipe_items.hpp"
20
+ #include "actions/resource_mod.hpp"
22
21
  #include "actions/rotate.hpp"
23
22
  #include "actions/swap.hpp"
24
23
  #include "core/event.hpp"
@@ -107,8 +106,6 @@ MettaGrid::MettaGrid(const GameConfig& game_config, const py::list map, unsigned
107
106
  _action_handlers.push_back(std::make_unique<ChangeGlyph>(*change_glyph_config));
108
107
  } else if (action_name == "swap") {
109
108
  _action_handlers.push_back(std::make_unique<Swap>(*action_config));
110
- } else if (action_name == "change_color") {
111
- _action_handlers.push_back(std::make_unique<ChangeColor>(*action_config));
112
109
  } else if (action_name == "resource_mod") {
113
110
  auto modify_config = std::static_pointer_cast<const ResourceModConfig>(action_config);
114
111
  _action_handlers.push_back(std::make_unique<ResourceMod>(*modify_config, action_name));
@@ -260,8 +257,12 @@ MettaGrid::MettaGrid(const GameConfig& game_config, const py::list map, unsigned
260
257
  if (clipper_cfg.unclipping_recipes.empty()) {
261
258
  throw std::runtime_error("Clipper config provided but unclipping_recipes is empty");
262
259
  }
263
- _clipper = std::make_unique<Clipper>(*_grid, clipper_cfg.unclipping_recipes, clipper_cfg.length_scale,
264
- clipper_cfg.cutoff_distance, clipper_cfg.clip_rate, _rng);
260
+ _clipper = std::make_unique<Clipper>(*_grid,
261
+ clipper_cfg.unclipping_recipes,
262
+ clipper_cfg.length_scale,
263
+ clipper_cfg.cutoff_distance,
264
+ clipper_cfg.clip_rate,
265
+ _rng);
265
266
  }
266
267
  }
267
268
 
@@ -284,6 +285,70 @@ void MettaGrid::init_action_handlers() {
284
285
  _max_action_arg = _max_action_args[i];
285
286
  }
286
287
  }
288
+
289
+ build_flat_action_catalog();
290
+ }
291
+
292
+ void MettaGrid::build_flat_action_catalog() {
293
+ _flat_action_map.clear();
294
+ _flat_action_names.clear();
295
+ _action_arg_to_flat.clear();
296
+
297
+ size_t total_variants = 0;
298
+ for (unsigned char max_arg : _max_action_args) {
299
+ total_variants += static_cast<size_t>(max_arg) + 1;
300
+ }
301
+
302
+ _flat_action_map.reserve(total_variants);
303
+ _flat_action_names.reserve(total_variants);
304
+ _action_arg_to_flat.resize(_action_handlers.size());
305
+
306
+ std::unordered_set<std::string> seen_names;
307
+ seen_names.reserve(total_variants);
308
+
309
+ for (size_t handler_index = 0; handler_index < _action_handlers.size(); ++handler_index) {
310
+ auto& handler = _action_handlers[handler_index];
311
+ unsigned char max_arg = _max_action_args[handler_index];
312
+ auto& arg_map = _action_arg_to_flat[handler_index];
313
+ arg_map.assign(static_cast<size_t>(max_arg) + 1, -1);
314
+
315
+ const int max_arg_int = static_cast<int>(max_arg);
316
+ for (int raw_arg = 0; raw_arg <= max_arg_int; ++raw_arg) {
317
+ const ActionArg arg = static_cast<ActionArg>(raw_arg);
318
+
319
+ std::string base_name = handler->variant_name(arg);
320
+ if (base_name.empty()) {
321
+ base_name = handler->action_name();
322
+ }
323
+
324
+ std::string variant = base_name;
325
+ int suffix = 1;
326
+ while (!seen_names.insert(variant).second) {
327
+ variant = base_name + "_" + std::to_string(suffix++);
328
+ }
329
+
330
+ const auto flat_index = static_cast<int>(_flat_action_map.size());
331
+ _flat_action_map.emplace_back(static_cast<ActionType>(handler_index), arg);
332
+ _flat_action_names.emplace_back(std::move(variant));
333
+ arg_map[static_cast<size_t>(arg)] = flat_index;
334
+ }
335
+ }
336
+ }
337
+
338
+ int MettaGrid::flat_action_index(ActionType action, ActionArg arg) const {
339
+ if (action < 0) {
340
+ return -1;
341
+ }
342
+ size_t action_idx = static_cast<size_t>(action);
343
+ if (action_idx >= _action_arg_to_flat.size()) {
344
+ return -1;
345
+ }
346
+ size_t arg_idx = static_cast<size_t>(arg);
347
+ const auto& mapping = _action_arg_to_flat[action_idx];
348
+ if (arg_idx >= mapping.size()) {
349
+ return -1;
350
+ }
351
+ return mapping[arg_idx];
287
352
  }
288
353
 
289
354
  void MettaGrid::add_agent(Agent* agent) {
@@ -324,6 +389,7 @@ void MettaGrid::_compute_observation(GridCoord observer_row,
324
389
 
325
390
  // Build global tokens based on configuration
326
391
  std::vector<PartialObservationToken> global_tokens;
392
+ int flat_action = flat_action_index(action, action_arg);
327
393
 
328
394
  if (_global_obs_config.episode_completion_pct) {
329
395
  ObservationType episode_completion_pct = 0;
@@ -336,7 +402,8 @@ void MettaGrid::_compute_observation(GridCoord observer_row,
336
402
  }
337
403
 
338
404
  if (_global_obs_config.last_action) {
339
- global_tokens.push_back({ObservationFeature::LastAction, static_cast<ObservationType>(action)});
405
+ ObservationType action_value = static_cast<ObservationType>(std::max(0, flat_action));
406
+ global_tokens.push_back({ObservationFeature::LastAction, action_value});
340
407
  global_tokens.push_back({ObservationFeature::LastActionArg, static_cast<ObservationType>(action_arg)});
341
408
  }
342
409
 
@@ -650,7 +717,56 @@ void MettaGrid::set_buffers(const py::array_t<uint8_t, py::array::c_style>& obse
650
717
  }
651
718
 
652
719
  py::tuple MettaGrid::step(const py::array_t<ActionType, py::array::c_style> actions) {
653
- _step(actions);
720
+ auto info = actions.request();
721
+ py::array_t<ActionType, py::array::c_style> converted;
722
+
723
+ auto assign_flat = [&](auto& view, size_t agent_idx, ActionType flat_index) {
724
+ if (flat_index < 0 || static_cast<size_t>(flat_index) >= _flat_action_map.size()) {
725
+ view(agent_idx, 0) = -1;
726
+ view(agent_idx, 1) = 0;
727
+ return;
728
+ }
729
+ const auto& mapping = _flat_action_map[static_cast<size_t>(flat_index)];
730
+ view(agent_idx, 0) = mapping.first;
731
+ view(agent_idx, 1) = mapping.second;
732
+ };
733
+
734
+ if (info.ndim == 1) {
735
+ if (info.shape[0] != static_cast<ssize_t>(_agents.size())) {
736
+ throw std::runtime_error("actions has the wrong shape");
737
+ }
738
+ auto view = actions.unchecked<1>();
739
+ converted = py::array_t<ActionType, py::array::c_style>(
740
+ py::array::ShapeContainer{static_cast<ssize_t>(_agents.size()), static_cast<ssize_t>(2)});
741
+ auto converted_view = converted.mutable_unchecked<2>();
742
+ for (size_t agent_idx = 0; agent_idx < _agents.size(); ++agent_idx) {
743
+ auto flat_index = view(agent_idx);
744
+ assign_flat(converted_view, agent_idx, flat_index);
745
+ }
746
+ _step(converted);
747
+ } else if (info.ndim == 2) {
748
+ if (info.shape[0] != static_cast<ssize_t>(_agents.size())) {
749
+ throw std::runtime_error("actions has the wrong shape");
750
+ }
751
+
752
+ if (info.shape[1] == 1) {
753
+ auto view = actions.unchecked<2>();
754
+ converted = py::array_t<ActionType, py::array::c_style>(
755
+ py::array::ShapeContainer{static_cast<ssize_t>(_agents.size()), static_cast<ssize_t>(2)});
756
+ auto converted_view = converted.mutable_unchecked<2>();
757
+ for (size_t agent_idx = 0; agent_idx < _agents.size(); ++agent_idx) {
758
+ auto flat_index = view(agent_idx, 0);
759
+ assign_flat(converted_view, agent_idx, flat_index);
760
+ }
761
+ _step(converted);
762
+ } else if (info.shape[1] == 2) {
763
+ _step(actions);
764
+ } else {
765
+ throw std::runtime_error("actions has the wrong shape");
766
+ }
767
+ } else {
768
+ throw std::runtime_error("actions has the wrong shape");
769
+ }
654
770
 
655
771
  auto rewards_view = _rewards.mutable_unchecked<1>();
656
772
 
@@ -717,8 +833,8 @@ py::dict MettaGrid::grid_objects(int min_row, int max_row, int min_col, int max_
717
833
 
718
834
  // Filter by bounding box if specified
719
835
  if (use_bounds) {
720
- if (obj->location.r < min_row || obj->location.r >= max_row ||
721
- obj->location.c < min_col || obj->location.c >= max_col) {
836
+ if (obj->location.r < min_row || obj->location.r >= max_row || obj->location.c < min_col ||
837
+ obj->location.c >= max_col) {
722
838
  continue;
723
839
  }
724
840
  }
@@ -760,7 +876,6 @@ py::dict MettaGrid::grid_objects(int min_row, int max_row, int min_col, int max_
760
876
  obj_dict["is_frozen"] = !!agent->frozen;
761
877
  obj_dict["freeze_remaining"] = agent->frozen;
762
878
  obj_dict["freeze_duration"] = agent->freeze_duration;
763
- obj_dict["color"] = agent->color;
764
879
  obj_dict["glyph"] = agent->glyph;
765
880
  obj_dict["agent_id"] = agent->agent_id;
766
881
  obj_dict["action_failure_penalty"] = agent->action_failure_penalty;
@@ -782,7 +897,6 @@ py::dict MettaGrid::grid_objects(int min_row, int max_row, int min_col, int max_
782
897
  obj_dict["conversion_duration"] = converter->conversion_ticks;
783
898
  obj_dict["cooldown_duration"] = converter->cooldown;
784
899
  obj_dict["output_limit"] = converter->max_output;
785
- obj_dict["color"] = converter->color;
786
900
  py::dict input_resources_dict;
787
901
  for (const auto& [resource, quantity] : converter->input_resources) {
788
902
  input_resources_dict[py::int_(resource)] = quantity;
@@ -829,7 +943,8 @@ py::dict MettaGrid::grid_objects(int min_row, int max_row, int min_col, int max_
829
943
  }
830
944
 
831
945
  // Add all recipes information (only non-null recipes)
832
- const std::vector<std::shared_ptr<Recipe>>& active_recipes = assembler->is_clipped ? assembler->unclip_recipes : assembler->recipes;
946
+ const std::vector<std::shared_ptr<Recipe>>& active_recipes =
947
+ assembler->is_clipped ? assembler->unclip_recipes : assembler->recipes;
833
948
  py::list recipes_list;
834
949
 
835
950
  for (size_t i = 0; i < active_recipes.size(); ++i) {
@@ -876,8 +991,8 @@ py::dict MettaGrid::grid_objects(int min_row, int max_row, int min_col, int max_
876
991
 
877
992
  py::list MettaGrid::action_names() {
878
993
  py::list names;
879
- for (const auto& handler : _action_handlers) {
880
- names.append(handler->action_name());
994
+ for (const auto& name : _flat_action_names) {
995
+ names.append(py::str(name));
881
996
  }
882
997
  return names;
883
998
  }
@@ -947,10 +1062,7 @@ py::object MettaGrid::action_space() {
947
1062
  auto gym = py::module_::import("gymnasium");
948
1063
  auto spaces = gym.attr("spaces");
949
1064
 
950
- size_t number_of_actions = py::len(action_names());
951
- size_t number_of_action_args = _max_action_arg + 1;
952
- return spaces.attr("MultiDiscrete")(py::make_tuple(number_of_actions, number_of_action_args),
953
- py::arg("dtype") = dtype_actions());
1065
+ return spaces.attr("Discrete")(py::int_(_flat_action_map.size()));
954
1066
  }
955
1067
 
956
1068
  py::object MettaGrid::observation_space() {
@@ -162,6 +162,10 @@ private:
162
162
  std::mt19937 _rng;
163
163
  unsigned int _seed;
164
164
 
165
+ std::vector<std::pair<ActionType, ActionArg>> _flat_action_map;
166
+ std::vector<std::string> _flat_action_names;
167
+ std::vector<std::vector<int>> _action_arg_to_flat;
168
+
165
169
  // Movement tracking
166
170
  bool _track_movement_metrics;
167
171
  float _resource_loss_prob;
@@ -188,6 +192,8 @@ private:
188
192
  AgentConfig _create_agent_config(const py::dict& agent_group_cfg_py);
189
193
  ConverterConfig _create_converter_config(const py::dict& converter_cfg_py);
190
194
  WallConfig _create_wall_config(const py::dict& wall_cfg_py);
195
+ void build_flat_action_catalog();
196
+ int flat_action_index(ActionType action, ActionArg arg) const;
191
197
  };
192
198
 
193
199
  #endif // PACKAGES_METTAGRID_CPP_BINDINGS_METTAGRID_C_HPP_
@@ -144,6 +144,13 @@ public:
144
144
  return _action_name;
145
145
  }
146
146
 
147
+ virtual std::string variant_name(ActionArg arg) const {
148
+ if (max_arg() == 0) {
149
+ return _action_name;
150
+ }
151
+ return _action_name + "_" + std::to_string(static_cast<int>(arg));
152
+ }
153
+
147
154
  protected:
148
155
  virtual bool _handle_action(Agent& actor, ActionArg arg) = 0;
149
156
 
@@ -88,6 +88,14 @@ protected:
88
88
  return _grid->move_object(actor, target_location);
89
89
  }
90
90
 
91
+ std::string variant_name(ActionArg arg) const override {
92
+ Orientation move_direction = static_cast<Orientation>(arg);
93
+ if (!isValidOrientation(move_direction, _game_config->allow_diagonals)) {
94
+ return ActionHandler::variant_name(arg);
95
+ }
96
+ return std::string(action_name()) + "_" + OrientationFullNames[static_cast<size_t>(move_direction)];
97
+ }
98
+
91
99
  private:
92
100
  const GameConfig* _game_config;
93
101
  };
@@ -125,4 +125,15 @@ inline const char* OrientationNames[8] = {
125
125
  "SE" // 7
126
126
  };
127
127
 
128
+ inline const char* OrientationFullNames[8] = {
129
+ "north", // 0
130
+ "south", // 1
131
+ "west", // 2
132
+ "east", // 3
133
+ "northwest", // 4
134
+ "northeast", // 5
135
+ "southwest", // 6
136
+ "southeast" // 7
137
+ };
138
+
128
139
  #endif // PACKAGES_METTAGRID_CPP_INCLUDE_METTAGRID_ACTIONS_ORIENTATION_HPP_
@@ -63,6 +63,13 @@ public:
63
63
  }
64
64
 
65
65
  protected:
66
+ std::string variant_name(ActionArg arg) const override {
67
+ if (arg == 0) {
68
+ return action_name();
69
+ }
70
+ return ActionHandler::variant_name(arg);
71
+ }
72
+
66
73
  bool _handle_action(Agent& actor, ActionArg /* arg */) override {
67
74
  // Center AoE on actor's position
68
75
  int center_row = static_cast<int>(actor.location.r);
@@ -42,6 +42,14 @@ protected:
42
42
  return true;
43
43
  }
44
44
 
45
+ std::string variant_name(ActionArg arg) const override {
46
+ Orientation orientation = static_cast<Orientation>(arg);
47
+ if (!_game_config->allow_diagonals && isDiagonal(orientation)) {
48
+ return ActionHandler::variant_name(arg);
49
+ }
50
+ return std::string(action_name()) + "_" + OrientationFullNames[static_cast<size_t>(orientation)];
51
+ }
52
+
45
53
  private:
46
54
  const GameConfig* _game_config;
47
55
  };
@@ -31,7 +31,6 @@ public:
31
31
  std::vector<InventoryItem> soul_bound_resources;
32
32
  // Resources that this agent will try to share when it uses another agent.
33
33
  std::vector<InventoryItem> shareable_resources;
34
- ObservationType color;
35
34
  ObservationType glyph;
36
35
  // Despite being a GridObjectId, this is different from the `id` property.
37
36
  // This is the index into MettaGrid._agents (std::vector<Agent*>)
@@ -61,7 +60,6 @@ public:
61
60
  group_name(config.group_name),
62
61
  soul_bound_resources(config.soul_bound_resources),
63
62
  shareable_resources(config.shareable_resources),
64
- color(0),
65
63
  glyph(0),
66
64
  agent_id(0),
67
65
  stats(resource_names),
@@ -216,7 +214,6 @@ public:
216
214
  features.push_back({ObservationFeature::Group, static_cast<ObservationType>(group)});
217
215
  features.push_back({ObservationFeature::Frozen, static_cast<ObservationType>(frozen != 0 ? 1 : 0)});
218
216
  features.push_back({ObservationFeature::Orientation, static_cast<ObservationType>(orientation)});
219
- features.push_back({ObservationFeature::Color, static_cast<ObservationType>(color)});
220
217
  if (glyph != 0) features.push_back({ObservationFeature::Glyph, static_cast<ObservationType>(glyph)});
221
218
 
222
219
  for (const auto& [item, amount] : this->inventory.get()) {
@@ -33,6 +33,7 @@ private:
33
33
  }
34
34
  }
35
35
  }
36
+
36
37
  return positions;
37
38
  }
38
39
 
@@ -83,6 +84,16 @@ private:
83
84
  }
84
85
  }
85
86
 
87
+ // Returns true if the recipe yields any positive output amount (legacy name retained for compatibility)
88
+ bool recipe_has_positive_output(const Recipe& recipe) const {
89
+ for (const auto& [item, amount] : recipe.output_resources) {
90
+ if (amount > 0) {
91
+ return true;
92
+ }
93
+ }
94
+ return false;
95
+ }
96
+
86
97
  public:
87
98
  // Consume resources from surrounding agents for the given recipe
88
99
  // Intended to be private, but made public for testing. We couldn't get `friend` to work as expected.
@@ -298,6 +309,14 @@ public:
298
309
  Recipe recipe_to_use = *original_recipe;
299
310
  if (progress < 1.0f && allow_partial_usage) {
300
311
  recipe_to_use = scale_recipe_for_partial_usage(*original_recipe, progress);
312
+
313
+ // Prevent usage that would yield no outputs (and would only serve to burn inputs and increment uses_count)
314
+ // Do not prevent usage if:
315
+ // - the unscaled recipe does not have outputs
316
+ // - usage would unclip the assembler; the unscaled unclipping recipe may happen to include outputs
317
+ if (!recipe_has_positive_output(recipe_to_use) && recipe_has_positive_output(*original_recipe) && !is_clipped) {
318
+ return false;
319
+ }
301
320
  }
302
321
 
303
322
  std::vector<Agent*> surrounding_agents = get_surrounding_agents();
@@ -76,7 +76,8 @@ private:
76
76
  InventoryDelta deposited = update_inventory(resource_type, transfer_amount);
77
77
  agent.update_inventory(resource_type, -transfer_amount);
78
78
  stats_tracker->add("chest." + stats_tracker->resource_name(resource_type) + ".deposited", transfer_amount);
79
- stats_tracker->set("chest." + stats_tracker->resource_name(resource_type) + ".amount", inventory.amount(resource_type));
79
+ stats_tracker->set("chest." + stats_tracker->resource_name(resource_type) + ".amount",
80
+ inventory.amount(resource_type));
80
81
 
81
82
  // If we couldn't transfer the full delta due to max_inventory, destroy the rest
82
83
  int destroyed = delta - transfer_amount;
@@ -98,7 +99,8 @@ private:
98
99
  if (withdrawn > 0) {
99
100
  update_inventory(resource_type, -withdrawn);
100
101
  stats_tracker->add("chest." + stats_tracker->resource_name(resource_type) + ".withdrawn", withdrawn);
101
- stats_tracker->set("chest." + stats_tracker->resource_name(resource_type) + ".amount", inventory.amount(resource_type));
102
+ stats_tracker->set("chest." + stats_tracker->resource_name(resource_type) + ".amount",
103
+ inventory.amount(resource_type));
102
104
  return true;
103
105
  }
104
106
  return false;
@@ -163,7 +165,6 @@ public:
163
165
  features.reserve(2 + this->inventory.get().size() + this->tag_ids.size());
164
166
 
165
167
  features.push_back({ObservationFeature::TypeId, static_cast<ObservationType>(this->type_id)});
166
- features.push_back({ObservationFeature::Color, static_cast<ObservationType>(this->resource_type)});
167
168
 
168
169
  // Add current inventory (inv:resource)
169
170
  for (const auto& [item, amount] : this->inventory.get()) {
@@ -37,7 +37,9 @@ constexpr ObservationType TypeId = 0;
37
37
  constexpr ObservationType Group = 1;
38
38
  constexpr ObservationType Frozen = 2;
39
39
  constexpr ObservationType Orientation = 3;
40
- constexpr ObservationType Color = 4;
40
+ // This used to be Color, but we removed it. We're leaving this here for backward compatibility, but may fill it
41
+ // in with a more useful feature in the future.
42
+ constexpr ObservationType ReservedForFutureUse = 4;
41
43
  constexpr ObservationType ConvertingOrCoolingDown = 5;
42
44
  constexpr ObservationType Swappable = 6;
43
45
  constexpr ObservationType EpisodeCompletionPct = 7;
@@ -62,7 +64,7 @@ inline const std::map<ObservationType, std::string>& GetFeatureNames() {
62
64
  {ObservationFeature::Group, "agent:group"},
63
65
  {ObservationFeature::Frozen, "agent:frozen"},
64
66
  {ObservationFeature::Orientation, "agent:orientation"},
65
- {ObservationFeature::Color, "agent:color"},
67
+ {ObservationFeature::ReservedForFutureUse, "agent:reserved_for_future_use"},
66
68
  {ObservationFeature::ConvertingOrCoolingDown, "converting"},
67
69
  {ObservationFeature::Swappable, "swappable"},
68
70
  {ObservationFeature::EpisodeCompletionPct, "episode_completion_pct"},
@@ -81,7 +83,6 @@ inline const std::map<ObservationType, std::string>& GetFeatureNames() {
81
83
  // ##ObservationNormalization
82
84
  // These are approximate maximum values for each feature. Ideally they would be defined closer to their source,
83
85
  // but here we are. If you add / remove a feature, you should add / remove the corresponding normalization.
84
- // These should move to configuration "soon". E.g., by 2025-06-10.
85
86
  inline const std::map<ObservationType, float>& GetFeatureNormalizations() {
86
87
  static const std::map<ObservationType, float> feature_normalizations = {
87
88
  {ObservationFeature::LastAction, 10.0},
@@ -92,7 +93,7 @@ inline const std::map<ObservationType, float>& GetFeatureNormalizations() {
92
93
  {ObservationFeature::Group, 10.0},
93
94
  {ObservationFeature::Frozen, 1.0},
94
95
  {ObservationFeature::Orientation, 1.0},
95
- {ObservationFeature::Color, 255.0},
96
+ {ObservationFeature::ReservedForFutureUse, 255.0},
96
97
  {ObservationFeature::ConvertingOrCoolingDown, 1.0},
97
98
  {ObservationFeature::Swappable, 1.0},
98
99
  {ObservationFeature::Glyph, 255.0},
@@ -77,7 +77,6 @@ public:
77
77
  unsigned short cooldown; // Time to wait after producing before starting again
78
78
  bool converting; // Currently in production phase
79
79
  bool cooling_down; // Currently in cooldown phase
80
- unsigned char color;
81
80
  bool recipe_details_obs;
82
81
  EventManager* event_manager;
83
82
  ObservationType input_recipe_offset;
@@ -95,7 +94,6 @@ public:
95
94
  cooldown(cfg.cooldown),
96
95
  converting(false),
97
96
  cooling_down(false),
98
- color(cfg.color),
99
97
  recipe_details_obs(cfg.recipe_details_obs),
100
98
  event_manager(nullptr),
101
99
  input_recipe_offset(cfg.input_recipe_offset),
@@ -160,7 +158,6 @@ public:
160
158
  features.reserve(capacity);
161
159
 
162
160
  features.push_back({ObservationFeature::TypeId, static_cast<ObservationType>(this->type_id)});
163
- features.push_back({ObservationFeature::Color, static_cast<ObservationType>(this->color)});
164
161
  features.push_back({ObservationFeature::ConvertingOrCoolingDown,
165
162
  static_cast<ObservationType>(this->converting || this->cooling_down)});
166
163