mettagrid 0.2.0.23__tar.gz → 0.2.0.25__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.
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/PKG-INFO +2 -2
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/benchmarks/test_mettagrid_env_benchmark.cpp +0 -1
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/bindings/mettagrid_c.cpp +120 -8
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/bindings/mettagrid_c.hpp +6 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/actions/action_handler.hpp +7 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/actions/move.hpp +8 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/actions/orientation.hpp +11 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/actions/resource_mod.hpp +7 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/actions/rotate.hpp +8 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/demos/README.md +1 -1
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/demos/demo_train_gym.py +1 -1
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/demos/demo_train_pettingzoo.py +15 -35
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/demos/demo_train_puffer.py +15 -74
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/mettagrid.egg-info/PKG-INFO +2 -2
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/mettagrid.egg-info/SOURCES.txt +0 -2
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/README.md +1 -1
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/pyproject.toml +1 -1
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/__init__.py +3 -3
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/config/mettagrid_config.py +1 -1
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/core.py +14 -12
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/envs/gym_env.py +8 -10
- mettagrid-0.2.0.25/python/src/mettagrid/envs/gym_wrapper.py +41 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/envs/pettingzoo_env.py +5 -6
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/maze.py +5 -2
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/mirror.py +33 -9
- mettagrid-0.2.0.25/python/src/mettagrid/mapgen/tools/gen.py +48 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/tools/gen_scene.py +11 -17
- mettagrid-0.2.0.25/python/src/mettagrid/mapgen/utils/show.py +19 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/utils/storable_map.py +23 -51
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mettagrid_c.pyi +1 -2
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/renderer/miniscope/interactive.py +3 -3
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/test_support/actions.py +58 -59
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/types.py +3 -3
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/util/grid_object_formatter.py +2 -2
- mettagrid-0.2.0.25/tests/mapgen/utils/test_storable_map_io.py +12 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_action_compatibility.py +57 -68
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_actions.py +1 -1
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_agent_resource_sharing.py +5 -3
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_assembler_partial_usage.py +9 -9
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_buffer_reuse.py +2 -1
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_buffers.py +6 -6
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_chest.py +16 -16
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_global_obs_config.py +10 -12
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_global_observations.py +2 -2
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_gym_env.py +3 -5
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_interactive.py +5 -5
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_inventory_regeneration.py +3 -3
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_mettagrid.py +3 -3
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_move.py +30 -49
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_new_env_hierarchy.py +3 -2
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_observations.py +20 -46
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_pettingzoo_env.py +3 -3
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_resource_loss.py +3 -3
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_resource_mod.py +13 -17
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_rewards.py +3 -4
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_rotate.py +1 -1
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_visitation_counts.py +6 -3
- mettagrid-0.2.0.23/python/src/mettagrid/envs/gym_wrapper.py +0 -63
- mettagrid-0.2.0.23/python/src/mettagrid/mapgen/load.py +0 -32
- mettagrid-0.2.0.23/python/src/mettagrid/mapgen/tools/gen.py +0 -94
- mettagrid-0.2.0.23/python/src/mettagrid/mapgen/tools/view.py +0 -25
- mettagrid-0.2.0.23/python/src/mettagrid/mapgen/utils/show.py +0 -21
- mettagrid-0.2.0.23/tests/mapgen/utils/test_storable_map_io.py +0 -22
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/.bazelrc +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/.clang-format +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/.clang-tidy +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/.gitignore +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/BUILD.bazel +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/CPPLINT.cfg +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/LICENSE +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/MANIFEST.in +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/MODULE.bazel +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/Makefile +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/README.md +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/bazel_build.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/benchmarks/BUILD +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/benchmarks/test_mettagrid_env_benchmark.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/README.md +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/boxout.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/choose_wisely.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/corners.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/corridors.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/cylinder.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/cylinder_easy.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/easy_memory.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/emptyspace_outofsight.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/hall_of_mirrors.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/hard_memory.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/honeypot.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/journey_home.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/knotty.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/labyrinth.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/little_landmark_easy.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/little_landmark_hard.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/lobster_legs.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/lobster_legs_cues.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/medium_memory.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/memory3.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/memory_palace.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/memory_swirls.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/memory_swirls_hard.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/obstacles0.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/obstacles1.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/obstacles2.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/obstacles3.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/passing_things.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/radial_large.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/radial_maze.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/radial_mini.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/radial_small.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/rooms.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/spacey_memory.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/spiral_chamber.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/swirls.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/tease.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/tease_small.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/thecube.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/venture_out.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/walkaround.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/walls_outofsight.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/walls_withinsight.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/wanderout.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/which_way.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/navigation_sequence/you_shall_not_pass.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/object_use/shoot_out.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/object_use/swap_in.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/configs/maps/object_use/swap_out.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/BUILD.bazel +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/README.md +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/actions/attack.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/actions/change_glyph.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/actions/get_output.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/actions/noop.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/actions/put_recipe_items.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/actions/swap.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/config/mettagrid_config.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/core/event.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/core/grid.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/core/grid_object.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/core/hash.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/core/types.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/objects/agent.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/objects/agent_config.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/objects/assembler.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/objects/assembler_config.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/objects/chest.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/objects/chest_config.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/objects/constants.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/objects/converter.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/objects/converter_config.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/objects/has_inventory.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/objects/inventory.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/objects/inventory_config.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/objects/production_handler.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/objects/recipe.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/objects/usable.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/objects/wall.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/renderer/hermes.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/systems/clipper.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/systems/clipper_config.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/systems/observation_encoder.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/systems/packed_coordinate.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/cpp/include/mettagrid/systems/stats_tracker.hpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/demo.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/ensure_mettascope.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/lint/BUILD +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/lint/README.md +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/lint/clang_tidy.bzl +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/lint/clang_tidy_wrapper.sh +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/mettagrid.egg-info/dependency_links.txt +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/mettagrid.egg-info/entry_points.txt +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/mettagrid.egg-info/requires.txt +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/mettagrid.egg-info/top_level.txt +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/migrate_to_toplevel.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/AGENTS.md +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/__init__.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/bindings/__init__.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/bindings/bindings.nim +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/cors_http_server.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/actions/arrow.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/actions/attack1.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/actions/attack2.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/actions/attack3.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/actions/attack4.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/actions/attack5.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/actions/attack6.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/actions/attack7.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/actions/attack8.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/actions/attack9.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/actions/attack_nearest.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/actions/converting.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/actions/get_items.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/actions/icons/attack.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/actions/icons/attack_nearest.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/actions/icons/change_color.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/actions/icons/get_items.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/actions/icons/move.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/actions/icons/noop.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/actions/icons/put_items.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/actions/icons/rotate.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/actions/icons/swap.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/actions/icons/unknown.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/actions/put_items.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/actions/swap.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/actions/thoughts.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/actions/thoughts_lightning.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/actions/unknown.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/agents/agent.e.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/agents/agent.n.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/agents/agent.s.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/agents/agent.w.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/agents/footprints.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/agents/frozen.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/agents/future_arrow.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/agents/past_arrow.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/agents/path.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/crosshair.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/dash.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/effects/halo.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/emoji/alien.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/emoji/angry.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/emoji/down.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/emoji/happy.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/emoji/left.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/emoji/love.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/emoji/poo.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/emoji/right.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/emoji/sad.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/emoji/skull.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/emoji/sparkle.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/emoji/up.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/fidget/fonts/IBMPlexMono-Regular.ttf +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/fidget/fonts/IBMPlexSans-Bold.ttf +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/fidget/fonts/IBMPlexSans-Regular.ttf +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/fidget/fonts/NotoSansJP-Regular.ttf +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/fidget/fonts/jsMath-cmbx10.ttf +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/fidget/hHmLTy7slXTOej6opPqWpz.json +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/fidget/hHmLTy7slXTOej6opPqWpz.lastModified +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/fidget/images/05bab347bacaede7606b8e59426dc42b155a8fd6.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/fidget/images/11f0598c7a572fe7461bc54b07423b7b5e3e7a60.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/fidget/images/42480bc49710a5f0ebfafe1e1a7785068db37106.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/fidget/images/621976c3803ef1eea0c316c0e86e1bc31bd6dba4.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/fidget/images/79d04b14381789498b35cbd1ae05eb578ededb5f.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/fidget/images/7b2b3374ea1a80648e8c68a472dcbba188af3e8e.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/fidget/images/86e7f3e8b46af021592fa055ecb606c6b0825c12.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/fidget/images/ac4765273b78fb68ac1e913e54c54224b7f6f215.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/fidget/images/b765480fbb089bf76a68424612eeb48ddd95ccc7.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/fidget/images/eb9f0db464f0f04a52566cd211a561f76d1bcc2a.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/fidget/images/f10e39779ee551c9d46a527d2ea2a67f434f2867.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/fonts/Inter-Regular.ttf +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/info.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/meta_grid_icon.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/minimapPip.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/agent.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/altar.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/armory.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/assembler.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/block.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/carbon_ex_dep.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/carbon_extractor.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/charger.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/chest.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/chest_carbon.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/chest_germanium.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/chest_oxygen.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/chest_silicon.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/clay_oven.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/clipped_carbon_extractor.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/clipped_germanium_extractor.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/clipped_oxygen_extractor.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/clipped_silicon_extractor.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/converter.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/empty.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/factory.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/floor.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/generator.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/generator_blue.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/generator_green.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/generator_red.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/geranium_extractor.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/germanium_ex_dep.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/germanium_extractor.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/ice_tower.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/ice_vase.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/lab.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/lasery.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/mine.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/mine_blue.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/mine_green.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/mine_red-1.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/mine_red.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/oxygen_ex_dep.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/oxygen_extractor.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/palm_tree.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/silicon_ex_dep.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/silicon_extractor.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/temple.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/unknown.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/wall.0.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/wall.e.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/wall.fill.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/wall.n.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/wall.ne.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/wall.ns.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/wall.nse.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/wall.nw.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/wall.nwe.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/wall.nws.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/wall.nwse.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/wall.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/wall.s.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/wall.se.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/wall.w.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/wall.we.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/wall.ws.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/wall.wse.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/water_well.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/weaving_loom.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/objects/wheat_field.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/replays/pens.json.z +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/agent_id.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/armor.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/battery.blue.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/battery.green.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/battery.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/battery.red.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/battery_blue.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/battery_green.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/battery_red.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/blue_gem.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/blueprint.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/bread.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/carbon.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/coal.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/coconut.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/copper_ore.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/decoder.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/diamond.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/energy.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/germanium.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/gold_ore.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/green_gem.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/heart.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/ice_granade.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/iron_ore.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/laser.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/lizard_hide.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/modulator.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/oil.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/ore.blue.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/ore.green.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/ore.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/ore.red.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/ore_blue.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/ore_green.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/ore_red.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/oxygen.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/palm_fiber.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/red_gem.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/resonator.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/reward.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/salt_water.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/sand.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/scrambler.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/silicon.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/sisal.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/snake_skin.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/snow_ball.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/star.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/stone.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/straw_hat.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/turtle_shell.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/unknown.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/water.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/wheat.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/yellow_gem.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/resources/yucca_fiber.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/selection.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/target.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/tile.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/trace/attack.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/trace/attack_nearest.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/trace/change_color.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/trace/frozen.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/trace/get_items.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/trace/invalid.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/trace/move.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/trace/move_8way.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/trace/move_cardinal.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/trace/noop.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/trace/put_items.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/trace/rotate.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/trace/swap.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/trace/unknown.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/view/grid.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/data/white.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/mettascope.nimble +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/src/mettascope/actions.nim +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/src/mettascope/agenttable.nim +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/src/mettascope/agenttraces.nim +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/src/mettascope/common.nim +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/src/mettascope/envconfig.nim +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/src/mettascope/footer.nim +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/src/mettascope/minimap.nim +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/src/mettascope/objectinfo.nim +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/src/mettascope/panels.nim +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/src/mettascope/pathfinding.nim +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/src/mettascope/replays.nim +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/src/mettascope/settings.nim +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/src/mettascope/shell.html +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/src/mettascope/sim.nim +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/src/mettascope/timeline.nim +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/src/mettascope/utils.nim +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/src/mettascope/worldmap.nim +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/src/mettascope.nim +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/nim/mettascope/src/mettascope.nims +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/README.md +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/base_config.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/builder/__init__.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/builder/building.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/builder/empty_converters.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/builder/envs.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/config/__init__.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/config/mettagrid_c_config.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/demo.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/envs/__init__.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/envs/mettagrid_env.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/envs/puffer_base.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/map_builder/__init__.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/map_builder/ascii.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/map_builder/assembler_map_builder.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/map_builder/map_builder.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/map_builder/maze.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/map_builder/perimeter_incontext.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/map_builder/random.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/map_builder/utils.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/__init__.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/area.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/mapgen.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/mapgen_ascii.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/random/float.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/random/int.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scene.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/__init__.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/ascii.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/auto.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/bsp.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/convchain.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/copy_grid.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/README.md +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/amcnicky_arrival_choice.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/amcnicky_arrival_double_pillar.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/amcnicky_arrival_feature_with_door.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/amcnicky_arrival_flooded_fountain.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/amcnicky_arrival_single_pillar.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/amcnicky_arrival_underground_garden.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/angelslayer_arrival_pentagon.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/co_arrival_square_in_a_square_in_a_square.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/co_arrival_two_rings.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/denvon_arrival_hothouse.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/denvon_arrival_planthouse.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/denvon_arrival_waterhouse.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/doesnt_arrival_eight_statues.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dolorous_arrival_somebody's_watching_me.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_boxes_within_box.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_boxorama.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_line_fractal.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_long_road.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_radiant.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_rooms_a.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_rooms_with_view.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_shelter.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_snail.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_ternary.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_three_bigger_balls.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_three_smaller_balls.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_a.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_b.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_c.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_d.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_e.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_f.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_g.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_h.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_i.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_j.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_tiny_k.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_triangle_fractal.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_arrival_windows_large_door.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dpeg_chamrin_arrival_tetris.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dysonsfear_arrival_angles.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dysonsfear_arrival_boulevard.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/dysonsfear_arrival_nine_rooms.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ebering_hopf_link.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ebering_trefoil_3fold.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ebering_trefoil_twist.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/eino_arrival_druids_welcome.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/eino_arrival_tree_alley.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/eino_arrival_water_cross.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/eino_arrival_water_star.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/erik_arrival_blinker_ship.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/erik_arrival_triangle_huge.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/erik_arrival_triangle_large.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/erik_arrival_triangle_medium.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/erik_arrival_triangle_small.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/giann_bridges.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/giann_forest_graveyard.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/giann_horns.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/giann_wishing_wells.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/grunt_arrival_crossed_arrows.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/grunt_arrival_lava_bath.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ldierk_walled_garden.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ldierk_walled_garden_2.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lemuel_arrival_cross.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lemuel_arrival_funnel.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lemuel_arrival_lava_pool.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lightli_arrival_chessboard.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lightli_arrival_flooded_house.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lightli_arrival_lavapool.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lightli_arrival_maybe_door_vault.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lightli_arrival_statue_moat.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lightli_iron_boxes.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/lightli_molten_gateway.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/matt_arrival_grand_opening.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/matt_arrival_los_fun.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/matt_arrival_refuge.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/matt_arrival_spirals.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_diagonal_passages.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_doors.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_four_houses.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_open_corners.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_plants_in_alcoves.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_pointy.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_radiant_lines.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_three_doors.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_up_and_down.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/minmay_arrival_wavy_path.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/mrwooster_arrival_arrow.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/mrwooster_arrival_statue.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/mrwooster_arrival_statue_2.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/mrwooster_arrival_statue_3.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ms813_arrival_door_cone_large.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ms813_arrival_door_cone_med.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ms813_arrival_door_cone_small.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ms813_arrival_square_statues.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/mushboom_english_gardens.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ncdulo_halloftheorcs.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ncdulo_lavacross.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ncdulo_smallfort.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ncdulo_watergridlock.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/ncdulo_wetmaze.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/nzn_arrival_crosshair.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/nzn_arrival_depleted_hourglass.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/nzn_arrival_water_spiral.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/onia_arrival_mini_spirals.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/onia_arrival_pyramid.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/pf_arrival_petrified_forest.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/psy_arrival_basics.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/psy_arrival_conway.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/psy_arrival_dodecagon.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/psy_arrival_heroes.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/psy_arrival_radial01.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/psy_arrival_radial02.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/psy_arrival_whirlpool.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/reono_arrival_forest_river.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/reono_arrival_mine.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/roderic_chinese_lattice_arrival.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/roderic_crossed_star.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/roderic_dead_forest.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/saegor_arrival_simple_a.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/saegor_arrival_simple_b.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/saegor_arrival_simple_c.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/saegor_arrival_simple_d.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/saegor_arrival_simple_e.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/scummos_arrival_checkerplants.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/scummos_arrival_forest.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/scummos_arrival_gate.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/scummos_arrival_hexagon.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/scummos_arrival_simple_crosswalls.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/scummos_arrival_simple_fountains.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/scummos_arrival_star.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/spicycebolla_green_bress_n_ham.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/spicycebolla_green_bress_n_ham_2.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/tarquinn_simple_flora_water_a.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/tarquinn_simple_flora_water_b.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/tarquinn_simple_flora_water_c.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/tarquinn_simple_flora_water_d.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/tarquinn_simple_flora_water_e.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/tarquinn_simple_flora_water_f.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/wander_arrival_chamber.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/wander_arrival_desolate.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/wheals_arrival_linesprint.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/wheals_arrival_shading.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/convchain/zelgadis_glass_arrival_small.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/amcnicky_arrival_choice.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/amcnicky_arrival_double_pillar.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/amcnicky_arrival_feature_with_door.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/amcnicky_arrival_flooded_fountain.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/amcnicky_arrival_single_pillar.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/amcnicky_arrival_underground_garden.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/co_arrival_square_in_a_square_in_a_square.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/co_arrival_two_rings.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/denvon_arrival_hothouse.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/denvon_arrival_planthouse.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/denvon_arrival_waterhouse.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/doesnt_arrival_eight_statues.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dolorous_arrival_somebody's_watching_me.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_boxes_within_box.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_boxorama.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_line_fractal.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_long_road.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_radiant.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_rooms_a.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_rooms_with_view.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_shelter.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_snail.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_ternary.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_three_bigger_balls.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_three_smaller_balls.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_a.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_b.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_c.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_d.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_e.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_f.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_g.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_h.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_i.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_j.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_tiny_k.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_triangle_fractal.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_arrival_windows_large_door.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dpeg_chamrin_arrival_tetris.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dysonsfear_arrival_angles.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dysonsfear_arrival_boulevard.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/dysonsfear_arrival_nine_rooms.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ebering_hopf_link.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ebering_trefoil_3fold.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ebering_trefoil_twist.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/eino_arrival_druids_welcome.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/eino_arrival_tree_alley.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/eino_arrival_water_cross.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/eino_arrival_water_star.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/erik_arrival_blinker_ship.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/erik_arrival_triangle_huge.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/erik_arrival_triangle_large.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/erik_arrival_triangle_medium.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/erik_arrival_triangle_small.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/giann_bridges.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/giann_forest_graveyard.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/giann_horns.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/giann_wishing_wells.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/grunt_arrival_crossed_arrows.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/grunt_arrival_lava_bath.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ldierk_walled_garden.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ldierk_walled_garden_2.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lemuel_arrival_cross.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lemuel_arrival_funnel.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lemuel_arrival_lava_pool.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lightli_arrival_chessboard.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lightli_arrival_flooded_house.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lightli_arrival_lavapool.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lightli_arrival_maybe_door_vault.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lightli_arrival_statue_moat.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lightli_iron_boxes.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/lightli_molten_gateway.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/matt_arrival_grand_opening.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/matt_arrival_refuge.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/matt_arrival_spirals.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_diagonal_passages.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_doors.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_four_houses.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_open_corners.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_plants_in_alcoves.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_pointy.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_radiant_lines.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_three_doors.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_up_and_down.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/minmay_arrival_wavy_path.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/mrwooster_arrival_arrow.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/mrwooster_arrival_statue.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/mrwooster_arrival_statue_2.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/mrwooster_arrival_statue_3.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ms813_arrival_door_cone_large.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ms813_arrival_door_cone_med.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ms813_arrival_door_cone_small.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ms813_arrival_square_statues.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/mushboom_english_gardens.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ncdulo_halloftheorcs.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ncdulo_lavacross.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ncdulo_smallfort.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ncdulo_watergridlock.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/ncdulo_wetmaze.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/nzn_arrival_crosshair.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/nzn_arrival_depleted_hourglass.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/nzn_arrival_water_spiral.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/onia_arrival_mini_spirals.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/onia_arrival_pyramid.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/pf_arrival_petrified_forest.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/psy_arrival_basics.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/psy_arrival_conway.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/psy_arrival_dodecagon.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/psy_arrival_heroes.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/psy_arrival_radial01.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/psy_arrival_radial02.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/psy_arrival_whirlpool.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/reono_arrival_forest_river.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/reono_arrival_mine.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/roderic_chinese_lattice_arrival.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/roderic_crossed_star.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/roderic_dead_forest.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/saegor_arrival_simple_a.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/saegor_arrival_simple_b.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/saegor_arrival_simple_c.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/saegor_arrival_simple_d.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/saegor_arrival_simple_e.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/scummos_arrival_checkerplants.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/scummos_arrival_forest.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/scummos_arrival_gate.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/scummos_arrival_hexagon.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/scummos_arrival_simple_crosswalls.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/scummos_arrival_simple_fountains.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/scummos_arrival_star.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/spicycebolla_green_bress_n_ham.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/spicycebolla_green_bress_n_ham_2.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/tarquinn_simple_flora_water_a.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/tarquinn_simple_flora_water_b.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/tarquinn_simple_flora_water_c.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/tarquinn_simple_flora_water_d.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/tarquinn_simple_flora_water_e.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/tarquinn_simple_flora_water_f.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/wander_arrival_chamber.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/wander_arrival_desolate.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/wheals_arrival_linesprint.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/wheals_arrival_shading.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/dcss/wfc/zelgadis_glass_arrival_small.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/grid_altars.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/inline_ascii.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/layout.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/make_connected.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/mean_distance.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/multi_left_and_right.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/nop.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/radial_maze.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/random.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/random_dcss_scene.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/random_objects.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/random_scene.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/random_yaml_scene.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/remove_agents.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/room_grid.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/spiral.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/transplant_scene.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/varied_terrain.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/wfc.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/scenes/yaml.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/tools/dcss_import.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/types.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/utils/ascii_grid.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/utils/draw.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/utils/make_scene_config.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/utils/pattern.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mapgen/utils/thumbnail.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/mettascope.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/nim/__init__.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/profiling/__init__.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/profiling/memory_monitor.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/profiling/stopwatch.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/profiling/system_monitor.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/py.typed +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/renderer/assets/Inter-Regular.ttf +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/renderer/assets/altar.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/renderer/assets/atlas.json +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/renderer/assets/atlas.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/renderer/assets/converter.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/renderer/assets/generator.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/renderer/assets/items.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/renderer/assets/monsters.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/renderer/assets/ore-0.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/renderer/assets/ore-1.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/renderer/assets/ore-2.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/renderer/assets/ore-3.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/renderer/assets/ore-4.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/renderer/assets/ore-5.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/renderer/assets/ore-6.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/renderer/assets/puffer_chars.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/renderer/assets/wall.png +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/renderer/miniscope/__init__.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/renderer/miniscope/buffer.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/renderer/miniscope/help.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/renderer/miniscope/info_panels.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/renderer/miniscope/renderer.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/test_support/__init__.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/test_support/mapgen.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/test_support/observation_helper.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/test_support/orientation.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/test_support/token_types.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/util/__init__.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/util/debug.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/util/dict_utils.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/util/diversity.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/util/module.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/util/replay_writer.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/python/src/mettagrid/util/stats_writer.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/scripts/build_asan.sh +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/scripts/test_leaks.sh +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/setup.cfg +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/BUILD +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/__init__.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/cpplint.sh +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/map_builder/__init__.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/map_builder/test_ascii.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/map_builder/test_map_builder.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/map_builder/test_maze.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/map_builder/test_polymorphic_serialization.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/map_builder/test_random.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/map_builder/test_utils.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/__init__.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/random/test_float.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/random/test_int.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/scenes/fixtures/dir1/1.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/scenes/fixtures/dir1/2.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/scenes/fixtures/test.map +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/scenes/fixtures/test.yaml +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/scenes/test_ascii.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/scenes/test_auto.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/scenes/test_bsp.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/scenes/test_convchain.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/scenes/test_inline_ascii.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/scenes/test_layout.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/scenes/test_make_connected.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/scenes/test_maze.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/scenes/test_mean_distance.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/scenes/test_mirror.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/scenes/test_multi_left_and_right.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/scenes/test_nop.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/scenes/test_radial_maze.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/scenes/test_random.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/scenes/test_random_dcss_scene.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/scenes/test_random_objects.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/scenes/test_random_scene.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/scenes/test_random_yaml_scene.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/scenes/test_remove_agents.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/scenes/test_room_grid.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/scenes/test_wfc.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/scenes/test_yaml.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/test_mapgen.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/test_scene.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/test_transform.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/test_validate_all_ascii_maps.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/mapgen/utils/test_pattern.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/profiling/test_memory_monitor.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/profiling/test_stopwatch.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/profiling/test_system_monitor.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/renderer/test_miniscope.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/run_test.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_attack_resource_exception.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_clipper.cpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_converter.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_diversity.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_env_config_serialization.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_env_map.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_forbidden_imports.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_grid_object.cpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_grid_objects_properties.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_leaks.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_mettagrid.cpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_observations.cpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_pufferlib_integration.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_resource_mod_config.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_set_inventory.py +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_stats_tracker.cpp +0 -0
- {mettagrid-0.2.0.23 → mettagrid-0.2.0.25}/tests/test_tags.py +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mettagrid
|
|
3
|
-
Version: 0.2.0.
|
|
3
|
+
Version: 0.2.0.25
|
|
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:
|
|
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;
|
|
@@ -285,6 +285,70 @@ void MettaGrid::init_action_handlers() {
|
|
|
285
285
|
_max_action_arg = _max_action_args[i];
|
|
286
286
|
}
|
|
287
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];
|
|
288
352
|
}
|
|
289
353
|
|
|
290
354
|
void MettaGrid::add_agent(Agent* agent) {
|
|
@@ -325,6 +389,7 @@ void MettaGrid::_compute_observation(GridCoord observer_row,
|
|
|
325
389
|
|
|
326
390
|
// Build global tokens based on configuration
|
|
327
391
|
std::vector<PartialObservationToken> global_tokens;
|
|
392
|
+
int flat_action = flat_action_index(action, action_arg);
|
|
328
393
|
|
|
329
394
|
if (_global_obs_config.episode_completion_pct) {
|
|
330
395
|
ObservationType episode_completion_pct = 0;
|
|
@@ -337,7 +402,8 @@ void MettaGrid::_compute_observation(GridCoord observer_row,
|
|
|
337
402
|
}
|
|
338
403
|
|
|
339
404
|
if (_global_obs_config.last_action) {
|
|
340
|
-
|
|
405
|
+
ObservationType action_value = static_cast<ObservationType>(std::max(0, flat_action));
|
|
406
|
+
global_tokens.push_back({ObservationFeature::LastAction, action_value});
|
|
341
407
|
global_tokens.push_back({ObservationFeature::LastActionArg, static_cast<ObservationType>(action_arg)});
|
|
342
408
|
}
|
|
343
409
|
|
|
@@ -651,7 +717,56 @@ void MettaGrid::set_buffers(const py::array_t<uint8_t, py::array::c_style>& obse
|
|
|
651
717
|
}
|
|
652
718
|
|
|
653
719
|
py::tuple MettaGrid::step(const py::array_t<ActionType, py::array::c_style> actions) {
|
|
654
|
-
|
|
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
|
+
}
|
|
655
770
|
|
|
656
771
|
auto rewards_view = _rewards.mutable_unchecked<1>();
|
|
657
772
|
|
|
@@ -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&
|
|
880
|
-
names.append(
|
|
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
|
-
|
|
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
|
};
|
|
@@ -169,7 +169,7 @@ flag.
|
|
|
169
169
|
|
|
170
170
|
**PettingZoo test closes env**: Don't try to reuse the same env instance after `parallel_api_test`; create a new one.
|
|
171
171
|
|
|
172
|
-
**Action data types**: Make sure actions are `int32` for
|
|
172
|
+
**Action data types**: Make sure actions are `int32` scalars for the discrete action space.
|
|
173
173
|
|
|
174
174
|
**SB3 shape complaints**: Verify you're using the single-agent wrapper and that obs/action spaces match SB3
|
|
175
175
|
expectations.
|
|
@@ -63,7 +63,7 @@ def demo_single_agent_gym():
|
|
|
63
63
|
from gymnasium import spaces
|
|
64
64
|
|
|
65
65
|
assert isinstance(env.observation_space, spaces.Box), "Single-agent obs space should be Box"
|
|
66
|
-
assert isinstance(env.action_space, spaces.
|
|
66
|
+
assert isinstance(env.action_space, spaces.Discrete), "Single-agent action space should be Discrete"
|
|
67
67
|
print("Single-agent Gymnasium compatibility verified")
|
|
68
68
|
|
|
69
69
|
env.close()
|
|
@@ -78,10 +78,8 @@ def demo_random_rollout():
|
|
|
78
78
|
actions = {}
|
|
79
79
|
for agent in env.agents:
|
|
80
80
|
action_space = env.action_space(agent)
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
else:
|
|
84
|
-
actions[agent] = action_space.sample()
|
|
81
|
+
assert isinstance(action_space, spaces.Discrete)
|
|
82
|
+
actions[agent] = int(action_space.sample())
|
|
85
83
|
|
|
86
84
|
_, rewards, terminations, truncations, _ = env.step(actions)
|
|
87
85
|
|
|
@@ -124,14 +122,8 @@ def demo_simple_marl_training():
|
|
|
124
122
|
policies = {}
|
|
125
123
|
for agent in env.possible_agents:
|
|
126
124
|
action_space = env.action_space(agent)
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
policies[agent] = (
|
|
130
|
-
np.ones((len(action_space.nvec), max(action_space.nvec))) / action_space.nvec[:, np.newaxis]
|
|
131
|
-
)
|
|
132
|
-
elif isinstance(action_space, spaces.Discrete):
|
|
133
|
-
# Discrete case
|
|
134
|
-
policies[agent] = np.ones(action_space.n) / action_space.n
|
|
125
|
+
assert isinstance(action_space, spaces.Discrete)
|
|
126
|
+
policies[agent] = np.ones(action_space.n) / action_space.n
|
|
135
127
|
|
|
136
128
|
_, _ = env.reset(seed=42)
|
|
137
129
|
total_rewards = {agent: 0 for agent in env.possible_agents}
|
|
@@ -145,36 +137,24 @@ def demo_simple_marl_training():
|
|
|
145
137
|
for agent in env.agents:
|
|
146
138
|
if agent in policies:
|
|
147
139
|
action_space = env.action_space(agent)
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
probs = policies[agent][i, :nvec]
|
|
153
|
-
probs = probs / probs.sum()
|
|
154
|
-
action.append(np.random.choice(nvec, p=probs))
|
|
155
|
-
actions[agent] = np.array(action, dtype=np.int32)
|
|
156
|
-
elif isinstance(action_space, spaces.Discrete):
|
|
157
|
-
# Discrete case
|
|
158
|
-
probs = policies[agent] / policies[agent].sum()
|
|
159
|
-
actions[agent] = np.random.choice(action_space.n, p=probs)
|
|
140
|
+
assert isinstance(action_space, spaces.Discrete)
|
|
141
|
+
probs = policies[agent]
|
|
142
|
+
probs = probs / probs.sum()
|
|
143
|
+
actions[agent] = int(np.random.choice(action_space.n, p=probs))
|
|
160
144
|
else:
|
|
161
|
-
|
|
145
|
+
action_space = env.action_space(agent)
|
|
146
|
+
assert isinstance(action_space, spaces.Discrete)
|
|
147
|
+
actions[agent] = int(action_space.sample())
|
|
162
148
|
|
|
163
149
|
_, rewards, terminations, truncations, _ = env.step(actions)
|
|
164
150
|
|
|
165
151
|
for agent, reward in rewards.items():
|
|
166
152
|
if agent in policies and agent in actions and reward > 0:
|
|
167
|
-
action_taken = actions[agent]
|
|
153
|
+
action_taken = int(actions[agent])
|
|
168
154
|
action_space = env.action_space(agent)
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
policies[agent][i, a] *= 1.1
|
|
173
|
-
policies[agent][i] /= policies[agent][i].sum()
|
|
174
|
-
elif isinstance(action_space, spaces.Discrete):
|
|
175
|
-
# Discrete case
|
|
176
|
-
policies[agent][action_taken] *= 1.1
|
|
177
|
-
policies[agent] /= policies[agent].sum()
|
|
155
|
+
assert isinstance(action_space, spaces.Discrete)
|
|
156
|
+
policies[agent][action_taken] *= 1.1
|
|
157
|
+
policies[agent] /= policies[agent].sum()
|
|
178
158
|
|
|
179
159
|
total_rewards[agent] += reward
|
|
180
160
|
|
|
@@ -32,7 +32,7 @@ import numpy as np
|
|
|
32
32
|
|
|
33
33
|
# MettaGrid imports
|
|
34
34
|
# Note: MettaGridEnv inherits from PufferEnv, so it's fully PufferLib-compatible
|
|
35
|
-
from mettagrid import MettaGridEnv
|
|
35
|
+
from mettagrid import MettaGridEnv, dtype_actions
|
|
36
36
|
from mettagrid.builder.envs import make_arena
|
|
37
37
|
from mettagrid.config.mettagrid_config import MettaGridConfig
|
|
38
38
|
|
|
@@ -75,20 +75,8 @@ def demo_puffer_env():
|
|
|
75
75
|
# Generate random actions compatible with the action space
|
|
76
76
|
from gymnasium import spaces
|
|
77
77
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
actions = np.zeros((env.num_agents, len(env.action_space.nvec)), dtype=np.int32)
|
|
81
|
-
for i in range(env.num_agents):
|
|
82
|
-
for j, n in enumerate(env.action_space.nvec):
|
|
83
|
-
actions[i, j] = np.random.randint(0, n)
|
|
84
|
-
else:
|
|
85
|
-
# Box case
|
|
86
|
-
actions = np.random.randint(
|
|
87
|
-
env.action_space.low,
|
|
88
|
-
env.action_space.high + 1,
|
|
89
|
-
size=env.action_space.shape,
|
|
90
|
-
dtype=np.int32,
|
|
91
|
-
)
|
|
78
|
+
assert isinstance(env.action_space, spaces.Discrete)
|
|
79
|
+
actions = np.random.randint(0, env.action_space.n, size=(env.num_agents,)).astype(dtype_actions, copy=False)
|
|
92
80
|
|
|
93
81
|
_, rewards, terminals, truncations, _ = env.step(actions)
|
|
94
82
|
print(f" - Step successful: obs {observations.shape}, rewards {rewards.shape}")
|
|
@@ -123,17 +111,8 @@ def demo_random_rollout():
|
|
|
123
111
|
# Generate random actions for all agents
|
|
124
112
|
from gymnasium import spaces
|
|
125
113
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
actions = np.zeros((env.num_agents, len(env.action_space.nvec)), dtype=np.int32)
|
|
129
|
-
for i in range(env.num_agents):
|
|
130
|
-
for j, n in enumerate(env.action_space.nvec):
|
|
131
|
-
actions[i, j] = np.random.randint(0, n)
|
|
132
|
-
else:
|
|
133
|
-
# Box case
|
|
134
|
-
actions = np.random.randint(
|
|
135
|
-
env.action_space.low, env.action_space.high + 1, size=env.action_space.shape, dtype=np.int32
|
|
136
|
-
)
|
|
114
|
+
assert isinstance(env.action_space, spaces.Discrete)
|
|
115
|
+
actions = np.random.randint(0, env.action_space.n, size=(env.num_agents,)).astype(dtype_actions, copy=False)
|
|
137
116
|
|
|
138
117
|
_, rewards, terminals, truncations, _ = env.step(actions)
|
|
139
118
|
total_reward += rewards.sum()
|
|
@@ -195,63 +174,25 @@ def demo_pufferlib_training():
|
|
|
195
174
|
# Initialize simple policies based on action space type
|
|
196
175
|
from gymnasium import spaces
|
|
197
176
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
action_preferences = []
|
|
201
|
-
for n in env.action_space.nvec:
|
|
202
|
-
action_preferences.append(np.ones(n) / n)
|
|
203
|
-
else:
|
|
204
|
-
# Box: track preferences for discretized bins
|
|
205
|
-
action_low = env.action_space.low
|
|
206
|
-
action_high = env.action_space.high
|
|
207
|
-
num_bins = 10
|
|
208
|
-
action_preferences = np.ones((env.num_agents, env.action_space.shape[1], num_bins))
|
|
177
|
+
assert isinstance(env.action_space, spaces.Discrete)
|
|
178
|
+
action_preferences = np.ones(env.action_space.n)
|
|
209
179
|
|
|
210
180
|
for _ in range(max_steps):
|
|
211
181
|
# Sample actions based on current preferences
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
for j, n in enumerate(env.action_space.nvec):
|
|
217
|
-
probs = action_preferences[j] / action_preferences[j].sum()
|
|
218
|
-
actions[i, j] = np.random.choice(n, p=probs)
|
|
219
|
-
else:
|
|
220
|
-
# Box case
|
|
221
|
-
actions = np.zeros((env.num_agents, env.action_space.shape[1]), dtype=np.int32)
|
|
222
|
-
for i in range(env.num_agents):
|
|
223
|
-
for j in range(env.action_space.shape[1]):
|
|
224
|
-
# Convert preferences to probabilities
|
|
225
|
-
probs = action_preferences[i, j] / action_preferences[i, j].sum()
|
|
226
|
-
# Sample bin and convert to action value
|
|
227
|
-
bin_idx = np.random.choice(num_bins, p=probs)
|
|
228
|
-
action_range = action_high[i, j] - action_low[i, j] + 1
|
|
229
|
-
action_val = int(action_low[i, j] + (bin_idx * action_range) / num_bins)
|
|
230
|
-
action_val = np.clip(action_val, action_low[i, j], action_high[i, j])
|
|
231
|
-
actions[i, j] = action_val
|
|
182
|
+
probs = action_preferences / action_preferences.sum()
|
|
183
|
+
actions = np.random.choice(env.action_space.n, size=env.num_agents, p=probs).astype(
|
|
184
|
+
dtype_actions, copy=False
|
|
185
|
+
)
|
|
232
186
|
|
|
233
187
|
_, rewards, terminals, truncations, _ = env.step(actions)
|
|
234
188
|
total_reward += rewards.sum()
|
|
235
189
|
steps += 1
|
|
236
190
|
|
|
237
191
|
# Simple "learning": increase preference for actions that led to positive rewards
|
|
238
|
-
if
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
for j in range(len(env.action_space.nvec)):
|
|
243
|
-
action_preferences[j][actions[i, j]] *= 1.1
|
|
244
|
-
else:
|
|
245
|
-
# Box learning
|
|
246
|
-
for i in range(env.num_agents):
|
|
247
|
-
if rewards[i] > 0:
|
|
248
|
-
for j in range(env.action_space.shape[1]):
|
|
249
|
-
# Find which bin the action belonged to
|
|
250
|
-
action_range = action_high[i, j] - action_low[i, j] + 1
|
|
251
|
-
bin_idx = int((actions[i, j] - action_low[i, j]) * num_bins / action_range)
|
|
252
|
-
bin_idx = np.clip(bin_idx, 0, num_bins - 1)
|
|
253
|
-
# Increase preference for this bin
|
|
254
|
-
action_preferences[i, j, bin_idx] *= 1.1
|
|
192
|
+
if rewards.any():
|
|
193
|
+
for action, reward in zip(actions, rewards, strict=False):
|
|
194
|
+
if reward > 0:
|
|
195
|
+
action_preferences[action] *= 1.1
|
|
255
196
|
|
|
256
197
|
if terminals.any() or truncations.any():
|
|
257
198
|
_, _ = env.reset()
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mettagrid
|
|
3
|
-
Version: 0.2.0.
|
|
3
|
+
Version: 0.2.0.25
|
|
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:
|
|
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
|
|
@@ -399,7 +399,6 @@ python/src/mettagrid/map_builder/random.py
|
|
|
399
399
|
python/src/mettagrid/map_builder/utils.py
|
|
400
400
|
python/src/mettagrid/mapgen/__init__.py
|
|
401
401
|
python/src/mettagrid/mapgen/area.py
|
|
402
|
-
python/src/mettagrid/mapgen/load.py
|
|
403
402
|
python/src/mettagrid/mapgen/mapgen.py
|
|
404
403
|
python/src/mettagrid/mapgen/mapgen_ascii.py
|
|
405
404
|
python/src/mettagrid/mapgen/scene.py
|
|
@@ -724,7 +723,6 @@ python/src/mettagrid/mapgen/scenes/dcss/wfc/zelgadis_glass_arrival_small.yaml
|
|
|
724
723
|
python/src/mettagrid/mapgen/tools/dcss_import.py
|
|
725
724
|
python/src/mettagrid/mapgen/tools/gen.py
|
|
726
725
|
python/src/mettagrid/mapgen/tools/gen_scene.py
|
|
727
|
-
python/src/mettagrid/mapgen/tools/view.py
|
|
728
726
|
python/src/mettagrid/mapgen/utils/ascii_grid.py
|
|
729
727
|
python/src/mettagrid/mapgen/utils/draw.py
|
|
730
728
|
python/src/mettagrid/mapgen/utils/make_scene_config.py
|
|
@@ -8,7 +8,7 @@ name = "mettagrid" # Do not change! Has to be 'mettagrid' for our PyPi package
|
|
|
8
8
|
dynamic = ["version"]
|
|
9
9
|
description = "A fast grid-based open-ended MARL environment"
|
|
10
10
|
authors = [{ name = "David Bloomin", email = "daveey@gmail.com" }]
|
|
11
|
-
requires-python = ">=3.11"
|
|
11
|
+
requires-python = ">=3.11,<3.13"
|
|
12
12
|
license = "MIT"
|
|
13
13
|
readme = "README.md"
|
|
14
14
|
urls = { Homepage = "https://daveey.github.io", Repository = "https://github.com/Metta-AI/mettagrid" }
|
|
@@ -47,7 +47,7 @@ _LAZY_ATTRS: Dict[str, Tuple[str, str]] = {
|
|
|
47
47
|
),
|
|
48
48
|
"validate_action_space": ("mettagrid.types", "validate_action_space"),
|
|
49
49
|
"get_observation_shape": ("mettagrid.types", "get_observation_shape"),
|
|
50
|
-
"
|
|
50
|
+
"get_action_count": ("mettagrid.types", "get_action_count"),
|
|
51
51
|
# Supporting classes
|
|
52
52
|
"GameMap": ("mettagrid.map_builder.map_builder", "GameMap"),
|
|
53
53
|
"ReplayWriter": ("mettagrid.util.replay_writer", "ReplayWriter"),
|
|
@@ -71,7 +71,7 @@ if TYPE_CHECKING:
|
|
|
71
71
|
dtype_truncations,
|
|
72
72
|
)
|
|
73
73
|
from mettagrid.types import (
|
|
74
|
-
|
|
74
|
+
get_action_count,
|
|
75
75
|
get_observation_shape,
|
|
76
76
|
validate_action_space,
|
|
77
77
|
validate_observation_space,
|
|
@@ -108,7 +108,7 @@ __all__ = [
|
|
|
108
108
|
"validate_observation_space",
|
|
109
109
|
"validate_action_space",
|
|
110
110
|
"get_observation_shape",
|
|
111
|
-
"
|
|
111
|
+
"get_action_count",
|
|
112
112
|
# Supporting classes
|
|
113
113
|
"GameMap",
|
|
114
114
|
"ReplayWriter",
|
|
@@ -112,7 +112,7 @@ class GlobalObsConfig(Config):
|
|
|
112
112
|
|
|
113
113
|
episode_completion_pct: bool = Field(default=True)
|
|
114
114
|
|
|
115
|
-
# Controls
|
|
115
|
+
# Controls whether the last_action global token is included
|
|
116
116
|
last_action: bool = Field(default=True)
|
|
117
117
|
|
|
118
118
|
last_reward: bool = Field(default=True)
|